From 6d213775d14a63d18d9eb17b44ba14bd3bb220da Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期四, 07 十二月 2023 10:35:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/quality/Packaging_ledger/index.vue |  441 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 441 insertions(+), 0 deletions(-)

diff --git a/src/views/quality/Packaging_ledger/index.vue b/src/views/quality/Packaging_ledger/index.vue
new file mode 100644
index 0000000..b4837ac
--- /dev/null
+++ b/src/views/quality/Packaging_ledger/index.vue
@@ -0,0 +1,441 @@
+<template>
+    <div class="mod-config">
+        <basic-container>
+        <el-row>
+            <el-col :span="11">
+            <ttable
+            :table="table"
+            :isShowHide="true"
+            :prelang="prelang"
+            :ajaxFun="ajaxFun"
+            :options="options" 
+            @handleSelectionChange="handleSelectionChange"
+            ref="processconfiguration"
+            >
+              <template #toolbar></template>
+            </ttable>
+            </el-col>
+            <el-col :span="13" style="padding-left: 10px">
+                <el-card>
+                <div slot="header">
+                <el-row>
+                    <el-col :span="8">
+                    <span>瑁呯鏄庣粏</span>
+                    </el-col>
+                    <el-col :span="8" :offset="4">
+                    <!-- <el-button
+                        style="float: right; padding: 3px 0"
+                        type="text"
+                        @click="beginItemLayOut"
+                    >
+                        甯冨眬
+                    </el-button> -->
+                    </el-col>
+                    <el-col :span="2">
+                    <el-button
+                        style="float: right; padding: 3px 0"
+                        type="text"
+                        @click="addpreserve"
+                        >淇濆瓨
+                    </el-button>
+                    </el-col>
+                    <el-col :span="2">
+                    <el-button
+                        v-if="!isCheck"
+                        style="float: right; padding: 3px 0"
+                        type="text"
+                        @click="relateOperationParam()"
+                        >娣诲姞
+                    </el-button>
+                    </el-col>
+                </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>
+                </el-card>
+            </el-col>
+        </el-row>
+
+        <!-- 鏂板 -->
+        <packfrom
+        :currshowlist.sync="addOrUpdateVisible"
+        @refreshDataList="getData">
+        </packfrom>
+        <packfromadd
+        :currshowlist.sync="increase"
+        :packageBoxIddata ="packageBoxId"
+        @handleSelectionChange = "preserve"
+        >
+        </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>
+        <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>
+
+<script>
+import { pagedata,dropById,list,saveList,deledata,sAuditstatus} 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'
+import vueQr from 'vue-qr'
+import PrintJS from 'print-js'
+export default {
+    data(){
+        return {
+          qrData:[],
+          diaPrintTab: false,
+          multipleSelection: [],
+          isCheck: false,
+          dataway:{},
+          goid:'',
+          testStandardParams: [],
+          packageBoxId:{},
+            prelang: 'operation',
+            dataListLoading: false,
+            ajaxFun: pagedata,
+            increase:false,
+            addOrUpdateVisible:false,
+            options: {
+                height: 300, // 榛樿楂樺害-涓轰簡琛ㄥご鍥哄畾
+                stripe: true, // 鏄惁涓烘枒椹汗 table
+                highlightCurrentRow: false, // 鏄惁瑕侀珮浜綋鍓嶈
+                border: true, // 鏄惁鏈夌旱鍚戣竟妗�
+                lazy: false, // 鏄惁闇�瑕佹噿鍔犺浇
+                fit: true, // 鍒楃殑瀹藉害鏄惁鑷拺寮�
+                multiSelect: true, //
+                isEdit:false,
+                seqNo: true,
+                isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳
+                isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳
+                isSearch: true, // 楂樼骇鏌ヨ鎸夐挳
+                defaultOrderBy: { column: 'createTime', direction: 'desc' }
+            },
+            table: {
+                total: 0,
+                currentPage: 1,
+                pageSize: 20,
+                data: [],
+                // 鏍囬
+                column: [
+                {
+                  minWidth: 'code',
+                  prop: 'state',
+                  label: '鐘舵��',
+                  sort: true,
+                  isTrue: true,
+                  isSearch: true,
+                  searchInfoType: 'text'
+                },
+                  {
+                    minWidth: '140',
+                    prop: 'packageNo',
+                    label: '鍖呰缂栧彿',
+                    isTrue: true,
+                    isSearch: true,
+                    searchInfoType: 'text',
+                  },{
+                    minWidth: '140',
+                    prop: 'createUser',
+                    label: '鍒涘缓浜�',
+                    isTrue: true,
+                    isSearch: true,
+                    searchInfoType: 'text',
+                  },{
+                    minWidth: '140',
+                    prop: 'contractNo',
+                    label: '鍚堝悓鍙�',
+                    isTrue: true,
+                    isSearch: true,
+                    searchInfoType: 'text',
+                  },
+                  {
+                    minWidth: '140',
+                    prop: 'updateUser',
+                    label: '鏇存柊浜�',
+                    isTrue: true,
+                    isSearch: true,
+                    searchInfoType: 'text',
+                  },
+                  {
+                    minWidth: '130',
+                    width: '150',
+                    prop: 'updateTime',
+                    label: '鏇存柊鏃ユ湡',
+                    sort: true,
+                    isTrue: true,
+                    isSearch: true,
+                    searchInfoType: 'datetimerange',
+                },
+                {
+                    minWidth: '130',
+                    width: '150',
+                    prop: 'createTime',
+                    label: '鍒涘缓鏃ユ湡',
+                    sort: true,
+                    isTrue: true,
+                    isSearch: true,
+                    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
+                    }
+                  ],
+                  operatorConfig: {
+                    fixed: 'right',
+                    label: '鎿嶄綔',
+                    width: 120,
+                    minWidth: 120
+                  }
+            },
+       }
+    },
+    components: {
+      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()
+      },
+      wayRenovate(){
+        this.getData()
+      },
+      //add
+      addOrUpdateHandle(){
+        this.addOrUpdateVisible = true
+      },
+      //鍒犻櫎
+      deleteHandle(row){
+        dropById({id:row.id}).then((res) =>{
+          this.getData()
+          this.$message.success('鍒犻櫎鎴愬姛')
+        })
+      },
+      handleCurrentChange(row){
+        if(row.state=='宸叉姤妫�'){
+          this.isCheck = true
+        }
+        this.dataway = row
+        this.packageBoxId = {
+          packageBoxId:row.id
+        }
+        this.goid = row.id
+        this.rightquery()
+      },
+      rightquery(){
+        list({packageBoxId:this.goid}).then((res) =>{
+          this.testStandardParams = res.data.data
+        })
+      },
+      //璇︽儏娣诲姞
+      relateOperationParam(){
+        if (this.dataway.state == "鏈姤妫�") {
+            this.increase = true
+        }else{
+          this.$message.error('璇峰厛閫夋嫨鍖呰椤圭洰')
+        }
+      },
+      preserve(datalist){
+        this.testStandardParams = datalist
+      },
+      //鍙宠竟淇濆瓨
+      addpreserve(){
+         this.testStandardParams.forEach(el => {
+              el.packageBoxId =this.goid
+         });
+        saveList(this.testStandardParams).then((res) =>{
+          this.$message.success('淇濆瓨鎴愬姛')
+          this.rightquery()
+        })
+      },
+      //鍒犻櫎
+      deleteadd(row){
+          deledata({id:row.id}).then((res)=>{
+          this.$message.success('鍒犻櫎鎴愬姛')
+          this.rightquery()
+          })
+      },
+      //瀹℃牳
+      check(row){
+        let packageBox = {
+                id:row.id,
+                packageNo:row.packageNo,
+                contractNo:row.contractNo,
+                customerId:row.customerId,
+        }
+        sAuditstatus(packageBox).then((res) =>{
+          this.getData()
+          this.$message.success('妫�楠屾垚鍔�')
+        })
+      },
+    },
+}
+</script>
\ No newline at end of file

--
Gitblit v1.9.3