From 901d81f1c56281bab87044d2ff562d8ed8601efa Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 11 三月 2024 09:25:17 +0800
Subject: [PATCH] 完成包装核对功能

---
 src/views/quality/Packaging_ledger/index.vue |  417 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 326 insertions(+), 91 deletions(-)

diff --git a/src/views/quality/Packaging_ledger/index.vue b/src/views/quality/Packaging_ledger/index.vue
index 2230d2d..7f70b34 100644
--- a/src/views/quality/Packaging_ledger/index.vue
+++ b/src/views/quality/Packaging_ledger/index.vue
@@ -19,7 +19,7 @@
                 <el-card>
                 <div slot="header">
                 <el-row>
-                    <el-col :span="8">
+                    <el-col :span="6">
                     <span>瑁呯鏄庣粏</span>
                     </el-col>
                     <el-col :span="8" :offset="4">
@@ -33,7 +33,16 @@
                     </el-col>
                     <el-col :span="2">
                     <el-button
-                        v-if="permissions.quality_packaging_ledger_info_save"
+                        v-if="!isCheck && permissions.quality_packaging_ledger_info_add"
+                        style="float: right; padding: 3px 6px;color:#fff;background-color: #9f7b95;"
+                        type="text"
+                        @click="handleCheck"
+                        >鏍稿
+                    </el-button>
+                    </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"
@@ -52,75 +61,75 @@
                 </el-row>
                 </div>
                 <el-table
-              :data="testStandardParams"
-              id="testStandardParamTable"
-              ref="testStandardParam"
+                    :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>
+                    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>
@@ -139,9 +148,56 @@
       </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>
+          <div class="dia_body" id="qrCard">
+            <el-card v-for="(item, i) in qrData" :key="i" >
+              <div>
+                  <table border="2px" class="x1111116">
+                      <tr class="x1111113">
+                            <td class="x1111114" colspan=6>
+                              <div style="height: 60px;display: flex;margin-top: 4px;">
+                                  <div style="margin-top: 5px;">
+                                  <img width="150" height="48"  src="../../../../public/img/image001.jpg" alt="IMG_256">
+                                  </div>
+                                  <div style="margin-left: 45px;margin-top: 15px ;">
+                                    <span lang="EN-US" class="x1111111">涓ぉ娴锋磱绉戞妧鏈夐檺鍏徃</span>
+                                  </div>
+                              </div>
+                            </td>
+                      </tr>
+                      <tr class="x1111117">
+                            <td class="x1111114">
+                              <span style="font-family: 瀹嬩綋;text-align: center;">鍖�&nbsp;瑁�&nbsp;浜�:</span>
+                            </td>
+                            <td class="x1111114"  colspan=4 >{{ item.createUser }} </td>
+                            <td class="x1111114"  rowspan=3  >
+                              <div style="padding: 1px;">
+                              <vueQr :text=str+item.packageBoxId :size="110" :margin="1"></vueQr>
+                              </div>
+                            </td>
+                      </tr>
+                      <tr class="x1111117">
+                            <td class="x1111114">
+                              <span style="font-family: 瀹嬩綋;text-align: center;">鍖� 瑁� 缂栧彿锛�</span>
+                            </td>
+                            <td class="x1111114" colspan=4>{{ item.packageNo }}</td>
+                      </tr>
+                      <tr class="x1111117">
+                            <td class="x1111114">
+                              <span style="font-family: 瀹嬩綋;text-align: center;">鍚�&nbsp;鍚�&nbsp;鍙凤細</span>
+                            </td>
+                            <td class="x1111114" colspan=4>{{ item.contractNo }}</td>
+                      </tr>
+                      <tr class="x1111113">
+                        <td class="x1111114" colspan=6>
+                          <div style="height: 75px;" >
+                                  <p><span lang="EN-US" class="x1111112">鍦板潃锛氭睙鑻忕渷鍗楅�氱粡娴庢妧鏈紑鍙戝尯甯稿叴璺�96鍙�</span></p>
+                                  <p><span lang="EN-US" class="x1111112">鐢佃瘽/浼犵湡锛�0513鈥�89191125</span></p>
+                          </div>
+                        </td>
+                      </tr>
+                  </table>
+              </div>
+              <!-- <el-row>
                 <el-col :span="10" :offset="3">搴忓彿锛�</el-col>
                 <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col>
               </el-row>
@@ -155,6 +211,9 @@
                   <vueQr :text=str+item.packageBoxId :size="110" :margin="1"></vueQr>
                 </el-col>
               </el-row>
+              <div style="background-color: blueviolet;height: 80px;">
+                        1111
+              </div> -->
             </el-card>
           </div>
         </div>
@@ -163,11 +222,65 @@
           <el-button type="primary" @click="printFun">鎵� 鍗�</el-button>
         </span>
       </el-dialog>
+      <input type="password" id="ScanCodeInfo" v-model="codeInfo" @keyup.enter="keyup" style="opacity: 0;height: 0px;margin: 0px;padding: 0px;position: absolute;top: 0;"></input>
+      <el-dialog title="鏍稿鍒楄〃" top="5vh" :visible.sync="checkShow" width="800px">
+        <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="productNo"
+                show-overflow-tooltip
+                align="center"
+            >
+            </el-table-column>
+            <el-table-column
+                label="浜у搧鍚嶇О"
+                prop="product"
+                show-overflow-tooltip
+                align="center"
+            />
+            <el-table-column
+                label="鎵规鍙�"
+                prop="outBatchNo"
+                show-overflow-tooltip
+                align="center"
+            >
+            </el-table-column>
+            <el-table-column
+                label="鏍稿"
+                prop="isCheck"
+                align="center"
+                show-overflow-tooltip
+                width="80"
+            >
+            <template slot-scope="scope">
+                <i class="el-icon-check" v-if="scope.row.isCheck"></i>
+                <i v-else></i>
+            </template>
+            </el-table-column>
+            </el-table>
+        </el-dialog>
     </div>
 </template>
 
 <script>
-import { pagedata,dropById,list,saveList,deledata,sAuditstatus} from '@/api/quality/Packaging_ledger'
+import { pagedata,dropById,list,saveList,deledata,sAuditstatus,qualityPackageBoxDetail,qualityPackageBox} from '@/api/quality/Packaging_ledger'
 import ttable from '@/views/common/ztt-table.vue'
 import packfrom from './pack-from.vue'
 import packfromadd from './pack-fromadd.vue'
@@ -180,10 +293,11 @@
           str:"https://ztms-mes.chinaztt.cn/#/pack?id=",
           qrData:[],
           diaPrintTab: false,
+          checkShow:false,
           multipleSelection: [],
           isCheck: false,
           dataway:{},
-          goid:'',
+          datalist:[],
           testStandardParams: [],
           packageBoxId:{},
             prelang: 'operation',
@@ -282,6 +396,8 @@
                     minWidth: 120
                   }
             },
+            codeInfo:null,
+            startTime: null,
        }
     },
     components: {
@@ -303,6 +419,11 @@
             text: '鏍囩鎵撳嵃',
             type: 'primary',
             fun: this.printLabel
+          })
+          this.table.toolbar.push({
+            text: '涓嬭浇瑁呯娓呭崟',
+            type: 'primary',
+            fun: this.downOrder
           })
       }
       let arr = []
@@ -341,9 +462,24 @@
         if(!newVal){
           this.qrData = []
         }
+      },
+      checkShow(newVal){
+        if(newVal){
+            // this.$message.success('鎵爜锛氭墦寮�')
+            let input = document.getElementById('ScanCodeInfo');
+            input.focus();
+            this.startTime = setInterval(()=>{
+                input.focus()
+            },1000)
+        }else{
+            this.$message.warning('鎵爜锛氬叧闂�')
+            clearInterval(this.startTime)
+        }
       }
     },
     methods: {
+      //鍖呰璇︽儏
+
       //鎵撳嵃鎸夐挳
       printFun() {
           this.diaPrintTab = false;
@@ -355,16 +491,16 @@
                 style: `@page {
                   margin:0;
                   padding: 0;
-                  size: 360px 170px;
+                  size: 323px 210px;
                 }
                 html{
                   zoom:100%;
                 }
                 @media print{
-                  width: 360px;
-                  height: 170px;
-                  margin:0;
-                  padding: 0;
+                  width: 323px;
+                  height: 210px;
+                  margin:7cm 0mm 0mm 0mm;
+                  padding: 0mm 10mm;
                 }`,
                 onPrintDialogClose: this.erexcel=false,
                 targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕�
@@ -373,7 +509,6 @@
       },
       handleSelectionChange(val){
         this.multipleSelection = val
-        console.log(this.multipleSelection[0].id,"鏁版嵁");
         let lastRow = val[val.length - 1]
         this.handleCurrentChange(lastRow)
       },
@@ -384,10 +519,11 @@
         }
         this.diaPrintTab = true
         this.multipleSelection.forEach(item=>{
-          let obj = {
+          const obj = {
             packageNo: item.packageNo,
             contractNo: item.contractNo,
-            packageBoxId:item.id
+            packageBoxId:item.id,
+            createUser:item.createUser
           }
           this.qrData.push(obj)
         })
@@ -411,18 +547,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
         })
       },
@@ -435,23 +572,62 @@
         }
       },
       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
          });
-         console.log(this.testStandardParams);
+         console.log(this.datalist);
   //       return
-        saveList(this.testStandardParams).then((res) =>{
+        saveList(this.datalist).then((res) =>{
           if(res.status===200){
             this.$message.success('淇濆瓨鎴愬姛')
+            this.datalist = null
             this.rightquery()
           }
         }).catch(error=>{
           console.error(error);
         })
+      },
+    //   鏍稿
+      handleCheck(){
+        if(this.testStandardParams.length>0){
+            this.checkShow = true;
+        }else{
+            this.$message.warning('鏆傛棤鏍稿鏄庣粏')
+        }
+      },
+      keyup(e){
+        var code = ''
+        var str = {}
+        var that = this;
+        try{
+            code = JSON.parse(this.codeInfo)
+            if(code.moNo2==null||code.moNo2==undefined||code.moNo2==''){
+                this.$message.error('璇ヤ簩缁寸爜鏈夎')
+            }else{
+                str = {
+                    moNo2: code.moNo2,
+                }
+                qualityPackageBoxDetail({
+                    outBatchNo:str.moNo2,
+                    packageBoxId:that.packageBoxId.packageBoxId
+                }).then(res=>{
+                    if(res.data.data){
+                        that.rightquery()
+                    }else{
+                        that.$message.error('璇ユ壒娆″彿涓嶅湪瑁呯娓呭崟鍐�')
+                    }
+                })
+            }
+        }catch(e){
+            this.$message.error('璇ヤ簩缁寸爜鏈夎')
+        }
+        this.codeInfo = null
       },
       //鍒犻櫎
       deleteadd(row){
@@ -473,6 +649,65 @@
           this.$message.success('妫�楠屾垚鍔�')
         })
       },
+      downOrder(){
+        if(this.multipleSelection.length==0){
+          this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
+          return
+        }else{
+            qualityPackageBox({id:this.multipleSelection[this.multipleSelection.length-1].id}).then(response=>{
+                console.log(response)
+                // 澶勭悊杩斿洖鐨勬枃浠舵祦
+                const blob = response.data
+                const link = document.createElement('a')
+                link.href = URL.createObjectURL(blob)
+                const disposition = response.headers['content-disposition']
+                let temp = disposition.substring(disposition.lastIndexOf('=') + 1)
+                link.download = decodeURI(temp)
+                document.body.appendChild(link)
+                link.click()
+                window.setTimeout(function () {
+                    URL.revokeObjectURL(blob)
+                    document.body.removeChild(link)
+                }, 0)
+            }).catch((error) => {
+            console.error(error)
+            })
+        }
+      }
     },
 }
 </script>
+<style>
+.x1111111{
+    color: black;
+    font-size: 18pt;
+    font-family: 榛戜綋;
+    justify-content: center;
+    text-align: center;
+}
+.x1111113{
+    border: 1px solid black;
+    height: 40px;
+}
+.x1111117{
+    border: 1px solid black;
+    height: 40px;
+}
+.x1111116{
+    border: 1px solid black;
+    height: 200px;
+    width: 445px;
+}
+.x1111114{
+    border: 1px solid black;
+    width: 80px;
+}
+.x1111115{
+    border: 1px solid black;
+}
+.x1111112{
+    color: black;
+    font-size: 12pt;
+    font-family: 瀹嬩綋;
+}
+</style>

--
Gitblit v1.9.3