zouyu
2023-12-06 8e5a40d8a40dec6d44c00f3cbc5f2699b88bdd9d
	modified:   src/views/plan/manufacturingorder/index.vue
modified: src/views/quality/Packaging_ledger/index.vue
已修改2个文件
207 ■■■■ 文件已修改
src/views/plan/manufacturingorder/index.vue 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/Packaging_ledger/index.vue 117 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/manufacturingorder/index.vue
@@ -109,7 +109,7 @@
            @click="labelPrint"
            type="primary"
            style="margin-left:10px;"
            >打印标签
            >标签打印
          </el-button>
          <!-- <el-button
            v-if="permissions.manufacturingorder_update_orderno"
@@ -195,36 +195,32 @@
          </div>
        </span>
      </el-dialog>
      <!-- 标签打印 -->
      <el-dialog title="标签列表" :visible.sync="diaPrintTab" width="500px">
        <div class="dia_body" style="height: 400px;overflow-y: auto;padding: 0 10px;">
          <el-card class="box-card" v-for="(tem, i) in orderDatalist" :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;">{{ tem.customerOrderNo }}</el-col>
            </el-row>
            <el-row>
              <el-col :span="10" :offset="3">零件名称:</el-col>
              <el-col :span="10" style="font-weight: bold;">{{ tem.partName }}</el-col>
            </el-row>
            <el-row>
              <el-col :span="10" :offset="3">订单二维码:</el-col>
              <el-col :span="10">
                <vueQr :text="JSON.stringify(tem)" :size="200" :margin="2"></vueQr>
              </el-col>
            </el-row>
          </el-card>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button @click="diaPrintTab = false">取 消</el-button>
          <el-button type="primary" @click="diaPrintTab = false">打 印</el-button>
        </span>
      </el-dialog>
    </basic-container>
    <!-- 标签打印 -->
    <el-dialog title="标签列表" :visible.sync="diaPrintTab" width="500px">
      <div 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;width:100%">
              <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.moNo2 }}</el-col>
              </el-row>
              <el-row>
                <el-col :span="10" :offset="3">订单二维码:</el-col>
                <el-col :span="10">
                  <vueQr :text="JSON.stringify(item)" :size="80" :margin="2"></vueQr>
                </el-col>
              </el-row>
          </el-card>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="diaPrintTab = false">取 消</el-button>
        <el-button type="primary" @click="diaPrintTab = false">打 印</el-button>
      </span>
    </el-dialog>
  </div>
</template>
@@ -257,6 +253,8 @@
export default {
  data() {
    return {
      checkList: [],
      qrData: [],
      orderDatalist:[],
      diaPrintTab:false,
      showCustomerorder: false,
@@ -1044,7 +1042,6 @@
      }
    })
  },
  computed: {
    ...mapGetters(['permissions'])
  },
@@ -1403,26 +1400,35 @@
        }
      }
    },
    //初始化二维码标签数据
    initQrData(data){
      if(data){
        let index = Number(data.qtyRequired) + Number(data.scrapQty)
        if(index>0){
          for(var i=1;i<= index;i++){
            let obj = {
              moNo: data.moNo,
              moNo2: null,
            }
            let no = (i+"").padStart(3,'0')
            obj.moNo2 = data.moNo + no
            this.qrData.push(obj)
          }
        }
      }
    },
    // table自带事件
    handleSelectionChange(val) {
      let orderData = []
      orderData =val.map( el =>{
         return{
            moNo:el.moNo,
            workShop:el.workShop,
            operationNames:el.operationNames,
            customerOrderNo:el.customerOrderNo,
            customerName:el.customerName,
            mpsNo:el.mpsNo,
            remark:el.remark,
            partNo:el.partNo,
            partName:el.partName,
            unit:el.unit,
            requiredDate:el.requiredDate,
            qtyRequired: el.qtyRequired,
            scrapQty: el.scrapQty
         }
      })
     this.orderDatalist = orderData
      console.log(orderData,"多行选中");
     this.initQrData(orderData[0])
      // 根据状态,禁用表头按钮
      // 筛选出选中记录的状态
      var stateArr = val.map(function(value, index) {
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">
@@ -101,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="操作"
@@ -127,7 +126,31 @@
        @handleSelectionChange = "preserve"
        >
        </packfromadd>
        </basic-container>
      </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>
        <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>
@@ -136,9 +159,14 @@
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:'',
@@ -156,7 +184,7 @@
                border: true, // 是否有纵向边框
                lazy: false, // 是否需要懒加载
                fit: true, // 列的宽度是否自撑开
                multiSelect: false, //
                multiSelect: true, //
                isEdit:false,
                seqNo: true,
                isShowHide: true, // 是否显示显影按钮
@@ -237,6 +265,11 @@
                      type: 'primary',
                      fun: this.addOrUpdateHandle
                    },
                    {
                      text: '标签打印',
                      type: 'primary',
                      fun: this.printLabel
                    },
                ],
                operator: [
                    {
@@ -263,14 +296,71 @@
       }
    },
    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",
              // header: "原材料检测报告",
              targetStyles: ["*"],
              style: `@page {margin: 0mm 5mm;}
                      html {zoom:100%;}
                      @media print {
                        html,body{
                          width:60mm;
                          height:40mm;
                        }
                      }`,
              ignoreElements: ["no-ignore"],
              orientation: 'portrait'
          });
      },
      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
        console.log(this.multipleSelection);
        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()
@@ -315,7 +405,6 @@
      },
      preserve(datalist){
        this.testStandardParams = datalist
      },
      //右边保存
      addpreserve(){
@@ -348,7 +437,5 @@
        })
      },
    },
    computed: {
  },
}
</script>