detailprintDialog.vue 3.89 KB
<template>
  <el-dialog
    title="入库铭牌打印"
    :visible.sync="visible"
    :showprint="showprint"
    width="800px"
    append-to-body
    @close="$emit('update:showprint', false)"
  >
    <div ref="print">
      <el-row>
        <el-button
          size="mini"
          type="primary"
          icon="el-icon-printer"
          @click="print"
          class="no-print pull-right"
          >打印</el-button
        >
      </el-row>

      <div v-for="(item, index) in list" :key="index">
        <div class="table-container">
          <table
            border="0"
            cellspacing="0"
            cellpadding="0"
            class="table-bordered"
          >
            <caption>
              {{
                item.companyName
              }}
            </caption>
            <tbody>
              <tr>
                <td width="23%" scope="col">物料编码</td>
                <td colspan="2" scope="col" class="center">
                  <span>{{ item.materialCode }}</span>
                </td>
              </tr>

              <tr>
                <td>物料名称</td>
                <td class="center">
                  <span>{{ item.materialName }}</span>
                </td>
                <td rowspan="3" width="15%">
                  <qrcode-vue
                    :value="
                      item.materialCode +
                      '/' +
                      item.materialName +
                      '//' +
                      item.totalQty
                    "
                    size="60"
                    level="H"
                    renderAs="svg"
                    style="padding-top: 4px"
                  ></qrcode-vue>
                </td>
              </tr>
              <tr>
                <td>物料规格</td>
                <td class="center">
                  <span>{{ item.materialSpec }}</span>
                </td>
              </tr>
              <tr>
                <td>
                  <div class="fl" style="padding-left: 3px">数</div>
                  <span class="fr" style="padding-right: 3px">量</span>
                </td>
                <td class="center" style="padding: 0">
                  <span>
                    {{ item.totalQty }}
                  </span>
                </td>
              </tr>
              <tr>
                <td scope="col">生产编号</td>
                <td colspan="2" scope="col" class="center">
                  <span>{{ item.batch }}</span>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
  </el-dialog>
</template>

<script>
import QrcodeVue from "qrcode.vue";
export default {
  components: {
    QrcodeVue,
  },
  props: {
    showprint: {
      type: Boolean,
      default: false,
    },
    printlist: {
      type: Array,
    },
  },
  data() {
    return {
      visible: this.showprint,

      list: this.printlist,
    };
  },
  watch: {
    showprint() {
      this.visible = this.showprint;
    },
    printlist() {
      this.list = this.printlist;
    },
  },

  methods: {
    print() {
      this.$print(this.$refs.print);
    },
  },
};
</script>

<style lang="scss" scoped>
.no-print {
  margin-bottom: 20px;
}
.table-container {
  width: 320px;
  margin-right: auto;
  margin-left: auto;
  table {
    white-space: wrap;
    border-collapse: collapse;
  }
  .table-bordered {
    width: 100%;
    margin-bottom: 30px;
    border: 1px solid #ebebeb;
    caption {
      font-size: 17px;
      text-align: center;
      color: #333;
      padding-bottom: 5px;
    }
    tbody {
      tr {
        .center {
          text-align: center;
        }
        td {
          padding: 3px;
          text-align: center;
          box-sizing: border-box;
          vertical-align: middle;
          border: 1px solid #000;
          color: #333;
          span {
            color: #333;
          }
        }
      }
    }
  }
}
</style>