王震
2024-01-12 187cd383e4362059795d0f48b96ca0037f19da6d
src/views/quality/Packaging_ledger/index.vue
@@ -8,7 +8,7 @@
            :isShowHide="true"
            :prelang="prelang"
            :ajaxFun="ajaxFun"
            :options="options"
            :options="options"
            @handleSelectionChange="handleSelectionChange"
            ref="processconfiguration"
            >
@@ -33,6 +33,7 @@
                    </el-col>
                    <el-col :span="2">
                    <el-button
                        v-if="!isCheck && permissions.quality_packaging_ledger_info_add"
                        style="float: right; padding: 3px 0"
                        type="text"
                        @click="addpreserve"
@@ -41,7 +42,7 @@
                    </el-col>
                    <el-col :span="2">
                    <el-button
                        v-if="!isCheck"
                        v-if="!isCheck && permissions.quality_packaging_ledger_info_add"
                        style="float: right; padding: 3px 0"
                        type="text"
                        @click="relateOperationParam()"
@@ -51,66 +52,75 @@
                </el-row>
                </div>
                <el-table
              :data="testStandardParams"
              id="testStandardParamTable"
              ref="testStandardParam"
              highlight-current-row
              height="700"
              style="width: 100%"
              class="l-mes-table"
              border
              stripe
            >
              <el-table-column
                type ="index"
                label="序号"
                align="center"
                width="50"
              />
              <el-table-column
                label="产品"
                prop="product"
                align="center"
              />
              <el-table-column
                label="产品编号"
                prop="productNo"
                align="center"
              >
              </el-table-column>
              <el-table-column
                label="规格型号"
                prop="specs"
                align="center"
              >
              </el-table-column>
              <el-table-column
                label="单位"
                prop="unit"
                align="center"
              >
              </el-table-column>
              <el-table-column
                label="数量"
                prop="number"
                align="center"
                width="80"
              >
                <template slot-scope="scope">
                  <el-input v-model="scope.row.number"></el-input>
                </template>
              </el-table-column>
              <el-table-column
                fixed="right"
                label="操作"
                align="center"
                width="80">
                <template slot-scope="scope">
                  <el-button @click="deleteadd(scope.row)"  size="small">删除</el-button>
                </template>
              </el-table-column>
            </el-table>
                    :data="testStandardParams"
                    id="testStandardParamTable"
                    ref="testStandardParam"
                    highlight-current-row
                    height="700"
                    style="width: 100%"
                    class="l-mes-table"
                    border
                    stripe
                  >
                    <el-table-column
                      type ="index"
                      label="序号"
                      align="center"
                      width="50"
                    />
                    <el-table-column
                      label="产品"
                      prop="product"
                      show-overflow-tooltip
                      align="center"
                    />
                    <el-table-column
                      label="产品编号"
                      prop="productNo"
                      show-overflow-tooltip
                      align="center"
                    >
                    </el-table-column>
                    <el-table-column
                      label="批次号"
                      prop="outBatchNo"
                      show-overflow-tooltip
                      align="center"
                    >
                    </el-table-column>
                    <el-table-column
                      label="规格型号"
                      prop="specs"
                      show-overflow-tooltip
                      align="center"
                    >
                    </el-table-column>
                    <el-table-column
                      label="单位"
                      prop="unit"
                      show-overflow-tooltip
                      align="center"
                    >
                    </el-table-column>
                    <el-table-column
                      label="数量"
                      prop="number"
                      align="center"
                      show-overflow-tooltip
                      width="80"
                    ></el-table-column>
                    <el-table-column
                      v-if="permissions.quality_packaging_ledger_info_operate"
                      fixed="right"
                      label="操作"
                      align="center"
                      width="80">
                      <template slot-scope="scope">
                        <el-button type="text" @click="deleteadd(scope.row)" icon="el-icon-delete"  size="small">删除</el-button>
                      </template>
                    </el-table-column>
                  </el-table>
                </el-card>
            </el-col>
        </el-row>
@@ -128,23 +138,25 @@
        </packfromadd>
      </basic-container>
      <el-dialog title="标签列表" top="5vh" :visible.sync="diaPrintTab" width="500px">
        <div id="qrCard" class="dia_body" style="height: 400px;overflow-y: auto;padding: 0 10px;">
          <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 15px;">
            <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="120" :margin="1"></vueQr>
              </el-col>
            </el-row>
          </el-card>
        <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=str+item.packageBoxId :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>
@@ -161,15 +173,17 @@
import packfromadd from './pack-fromadd.vue'
import vueQr from 'vue-qr'
import PrintJS from 'print-js'
import { mapGetters } from 'vuex'
export default {
    data(){
        return {
          str:"https://ztms-mes.chinaztt.cn/#/pack?id=",
          qrData:[],
          diaPrintTab: false,
          multipleSelection: [],
          isCheck: false,
          dataway:{},
          goid:'',
          datalist:[],
          testStandardParams: [],
          packageBoxId:{},
            prelang: 'operation',
@@ -259,33 +273,8 @@
                    searchInfoType: 'datetimerange',
                },
                ],
                toolbar: [
                    {
                      text: '新增',
                      type: 'primary',
                      fun: this.addOrUpdateHandle
                    },
                    {
                      text: '标签打印',
                      type: 'primary',
                      fun: this.printLabel
                    },
                ],
                operator: [
                    {
                      text: '检验',
                      icon: 'el-icon-position',
                      type: 'text',
                      size: 'small',
                      fun: this.check
                    },{
                      text: '删除',
                      icon: 'el-icon-delete',
                      type: 'text',
                      size: 'small',
                      fun: this.deleteHandle
                    }
                  ],
                toolbar: [],
                operator: null,
                  operatorConfig: {
                    fixed: 'right',
                    label: '操作',
@@ -301,6 +290,52 @@
      packfromadd,
      vueQr
    },
    created(){
      if(this.permissions.quality_packaging_ledger_add){
          this.table.toolbar.push({
            text: '新增',
            type: 'primary',
            fun: this.addOrUpdateHandle
          })
      }
      if(this.permissions.quality_packaging_ledger_labelprint){
          this.table.toolbar.push({
            text: '标签打印',
            type: 'primary',
            fun: this.printLabel
          })
      }
      let arr = []
      if(this.permissions.quality_packaging_ledger_inspect){
        arr.push({
              text: '检验',
              icon: 'el-icon-position',
              type: 'text',
              size: 'small',
              fun: this.check,
              show: {
                val: [
                    '草稿',
                    '未报检',
                ],
                key: 'state'
              }
            })
      }
      if(this.permissions.quality_packaging_ledger_del){
        arr.push({
              text: '删除',
              icon: 'el-icon-delete',
              type: 'text',
              size: 'small',
              fun: this.deleteHandle
            })
      }
      this.table.operator = arr.length>0 ? arr : null
    },
    computed:{
      ...mapGetters(['permissions'])
    },
    watch: {
      diaPrintTab(newVal){
        if(!newVal){
@@ -309,24 +344,33 @@
      }
    },
    methods: {
      //包装详情
      //打印按钮
      printFun() {
          this.diaPrintTab = false;
          PrintJS({
              printable: "qrCard",
              type: "html",
              // header: "原材料检测报告",
              targetStyles: ["*"],
              style: `@page {margin: 0mm 5mm;}
                      html {zoom:100%;}
                      @media print {
                        html,body{
                          width:60mm;
                          height:40mm;
                        }
                      }`,
              ignoreElements: ["no-ignore"],
              orientation: 'portrait'
              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){
@@ -340,24 +384,12 @@
          return
        }
        this.diaPrintTab = true
        console.log(this.multipleSelection);
        this.multipleSelection.forEach(item=>{
          let obj = {
            packageNo: item.packageNo,
            contractNo: item.contractNo,
            boxInfo: []
            packageBoxId:item.id
          }
          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)
        })
      },
@@ -380,18 +412,19 @@
        })
      },
      handleCurrentChange(row){
        if(row.state=='已报检'){
        if(row.state=='未报检'){
          this.isCheck = false
        }else{
          this.isCheck = true
        }
        this.dataway = row
        this.packageBoxId = {
          packageBoxId:row.id
        }
        this.goid = row.id
        this.rightquery()
      },
      rightquery(){
        list({packageBoxId:this.goid}).then((res) =>{
        list({packageBoxId:this.packageBoxId.packageBoxId}).then((res) =>{
          this.testStandardParams = res.data.data
        })
      },
@@ -404,16 +437,25 @@
        }
      },
      preserve(datalist){
        this.testStandardParams = datalist
       this.testStandardParams = this.testStandardParams.concat(datalist);
       console.log(this.testStandardParams,"---------start");
       this.datalist = datalist
      },
      //右边保存
      addpreserve(){
         this.testStandardParams.forEach(el => {
              el.packageBoxId =this.goid
         this.datalist.forEach(el => {
              el.packageBoxId =this.packageBoxId.packageBoxId
         });
        saveList(this.testStandardParams).then((res) =>{
          this.$message.success('保存成功')
          this.rightquery()
         console.log(this.datalist);
  //       return
        saveList(this.datalist).then((res) =>{
          if(res.status===200){
            this.$message.success('保存成功')
            this.datalist = null
            this.rightquery()
          }
        }).catch(error=>{
          console.error(error);
        })
      },
      //删除
@@ -438,4 +480,4 @@
      },
    },
}
</script>
</script>