zss
2023-12-07 95cafbee8f05dc6fbc6256c5cd84bcfe3621107f
src/views/quality/Packaging_ledger/index.vue
@@ -9,10 +9,10 @@
            :prelang="prelang"
            :ajaxFun="ajaxFun"
            :options="options" 
            @currentChange="handleCurrentChange"
            @handleSelectionChange="handleSelectionChange"
            ref="processconfiguration"
            >
        <template #toolbar></template>
              <template #toolbar></template>
            </ttable>
            </el-col>
            <el-col :span="13" style="padding-left: 10px">
@@ -41,6 +41,7 @@
                    </el-col>
                    <el-col :span="2">
                    <el-button
                        v-if="!isCheck"
                        style="float: right; padding: 3px 0"
                        type="text"
                        @click="relateOperationParam()"
@@ -100,7 +101,6 @@
                  <el-input v-model="scope.row.number"></el-input>
                </template>
              </el-table-column>
              <el-table-column label="单位" prop="unit" align="center" />
              <el-table-column
                fixed="right"
                label="操作"
@@ -126,7 +126,33 @@
        @handleSelectionChange = "preserve"
        >
        </packfromadd>
        </basic-container>
      </basic-container>
      <el-dialog title="标签列表" top="5vh" :visible.sync="diaPrintTab" width="500px">
        <div style="width:100%;height: 400px;overflow-y: auto;">
          <div id="qrCard" class="dia_body">
            <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 10px;">
              <el-row>
                <el-col :span="10" :offset="3">序号:</el-col>
                <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col>
              </el-row>
              <el-row>
                <el-col :span="10" :offset="3">包装编号:</el-col>
                <el-col :span="10" style="font-weight: bold;">{{ item.packageNo }}</el-col>
              </el-row>
              <el-row>
                <el-col :span="10" :offset="3">包装台账二维码:</el-col>
                <el-col :span="10">
                  <vueQr :text="JSON.stringify(item)" :size="110" :margin="1"></vueQr>
                </el-col>
              </el-row>
            </el-card>
          </div>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button @click="diaPrintTab = false">取 消</el-button>
          <el-button type="primary" @click="printFun">打 印</el-button>
        </span>
      </el-dialog>
    </div>
</template>
@@ -135,9 +161,15 @@
import ttable from '@/views/common/ztt-table.vue'
import packfrom from './pack-from.vue'
import packfromadd from './pack-fromadd.vue'
import vueQr from 'vue-qr'
import PrintJS from 'print-js'
export default {
    data(){
        return {
          qrData:[],
          diaPrintTab: false,
          multipleSelection: [],
          isCheck: false,
          dataway:{},
          goid:'',
          testStandardParams: [],
@@ -154,7 +186,7 @@
                border: true, // 是否有纵向边框
                lazy: false, // 是否需要懒加载
                fit: true, // 列的宽度是否自撑开
                multiSelect: false, //
                multiSelect: true, //
                isEdit:false,
                seqNo: true,
                isShowHide: true, // 是否显示显影按钮
@@ -235,11 +267,16 @@
                      type: 'primary',
                      fun: this.addOrUpdateHandle
                    },
                    {
                      text: '标签打印',
                      type: 'primary',
                      fun: this.printLabel
                    },
                ],
                operator: [
                    {
                      text: '检验',
                      icon: 'el-icon-delete',
                      icon: 'el-icon-position',
                      type: 'text',
                      size: 'small',
                      fun: this.check
@@ -261,14 +298,77 @@
       }
    },
    components: {
        ttable,
        packfrom,
        packfromadd
        },
        watch: {
      },
      ttable,
      packfrom,
      packfromadd,
      vueQr
    },
    watch: {
      diaPrintTab(newVal){
        if(!newVal){
          this.qrData = []
        }
      }
    },
    methods: {
      //打印按钮
      printFun() {
          this.diaPrintTab = false;
          PrintJS({
              printable: 'qrCard',//页面
              type: "html",//文档类型
                maxWidth:450,
                targetStyles:['*'],
                style: `@page {
                  margin:0;
                  padding: 0;
                  size: 360px 170px;
                }
                html{
                  zoom:100%;
                }
                @media print{
                  width: 360px;
                  height: 170px;
                  margin:0;
                  padding: 0;
                }`,
                onPrintDialogClose: this.erexcel=false,
                targetStyles: ["*"], // 使用dom的所有样式,很重要
                font_size: '',
          });
      },
      handleSelectionChange(val){
        this.multipleSelection = val
        let lastRow = val[val.length - 1]
        this.handleCurrentChange(lastRow)
      },
      printLabel(){
        if(this.multipleSelection.length==0){
          this.$message.warning('请选择一条数据')
          return
        }
        this.diaPrintTab = true
        this.multipleSelection.forEach(item=>{
          let obj = {
            packageNo: item.packageNo,
            contractNo: item.contractNo,
            boxInfo: []
          }
          list({packageBoxId:item.id}).then((res) =>{
            res.data.data.forEach(ele=>{
              obj.boxInfo.push({
                product: ele.product,
                productNo: ele.productNo,
                specs: ele.specs,
                unit: ele.unit,
                number: ele.number
              })
            })
          })
          this.qrData.push(obj)
        })
      },
       // 获取数据列表
      getData() {
        this.$refs.processconfiguration.refreshData()
@@ -288,7 +388,9 @@
        })
      },
      handleCurrentChange(row){
        console.log(row,"一行");
        if(row.state=='已报检'){
          this.isCheck = true
        }
        this.dataway = row
        this.packageBoxId = {
          packageBoxId:row.id
@@ -298,7 +400,6 @@
      },
      rightquery(){
        list({packageBoxId:this.goid}).then((res) =>{
          console.log(res,"nihaoa");
          this.testStandardParams = res.data.data
        })
      },
@@ -312,23 +413,19 @@
      },
      preserve(datalist){
        this.testStandardParams = datalist
      },
      //右边保存
      addpreserve(){
        console.log(this.testStandardParams,"保存数据");
         this.testStandardParams.forEach(el => {
              el.packageBoxId =this.goid
         });
        saveList(this.testStandardParams).then((res) =>{
          console.log(res,"保存成功");
          this.$message.success('保存成功')
          this.rightquery()
        })
      },
      //删除
      deleteadd(row){
          console.log(row,"");
          deledata({id:row.id}).then((res)=>{
          this.$message.success('删除成功')
          this.rightquery()
@@ -336,7 +433,6 @@
      },
      //审核
      check(row){
        console.log(row,"审核");
        let packageBox = {
                id:row.id,
                packageNo:row.packageNo,
@@ -349,7 +445,5 @@
        })
      },
    },
    computed: {
  },
}
</script>