From 47cf5518f0f61dbf8066c2273b9f77c2cd7b1751 Mon Sep 17 00:00:00 2001
From: YLouie <929705085@qq.com>
Date: 星期五, 19 九月 2025 17:56:03 +0800
Subject: [PATCH] 销售订单plm同步
---
src/views/quality/Packaging_ledger/index.vue | 508 ++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 384 insertions(+), 124 deletions(-)
diff --git a/src/views/quality/Packaging_ledger/index.vue b/src/views/quality/Packaging_ledger/index.vue
index b4f78d4..f1a80aa 100644
--- a/src/views/quality/Packaging_ledger/index.vue
+++ b/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"
>
@@ -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,6 +33,16 @@
</el-col>
<el-col :span="2">
<el-button
+ 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"
@@ -41,7 +51,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,74 +61,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"
- 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
- 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>
+ :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>
@@ -136,14 +147,61 @@
</packfromadd>
</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 style="width:100%;height: 400px;overflow-y: auto;page-break-before:always;page-break-after: always;">
+ <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;">鍖� 瑁� 浜�:</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;">鍚� 鍚� 鍙凤細</span>
+ </td>
+ <td class="x1111114" colspan=4>{{ item.contractNo }}</td>
+ </tr>
+ <tr class="x1111113">
+ <td class="x1111114" colspan=6>
+ <div style="height: 75px;" >
+ <p style="margin-top: 0;margin-bottom: 0;"><span lang="EN-US" class="x1111112">鍦板潃锛氭睙鑻忕渷鍗楅�氱粡娴庢妧鏈紑鍙戝尯甯稿叴璺�96鍙�</span></p>
+ <p style="margin-top: 0;margin-bottom: 0;"><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>
- <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>
@@ -153,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>
@@ -161,26 +222,82 @@
<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'
import vueQr from 'vue-qr'
import PrintJS from 'print-js'
+import { mapGetters } from 'vuex'
export default {
data(){
return {
- str:"http://192.168.2.213:8080/#/pack?id=50",
+ str:"https://ztms-mes.chinaztt.cn/#/pack?id=",
qrData:[],
diaPrintTab: false,
+ checkShow:false,
multipleSelection: [],
isCheck: false,
dataway:{},
- goid:'',
+ datalist:[],
testStandardParams: [],
packageBoxId:{},
prelang: 'operation',
@@ -270,33 +387,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: '鎿嶄綔',
@@ -304,6 +396,8 @@
minWidth: 120
}
},
+ codeInfo:null,
+ startTime: null,
}
},
components: {
@@ -312,14 +406,80 @@
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
+ })
+ this.table.toolbar.push({
+ text: '涓嬭浇瑁呯娓呭崟',
+ type: 'primary',
+ fun: this.downOrder
+ })
+ }
+ 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){
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;
@@ -327,20 +487,20 @@
printable: 'qrCard',//椤甸潰
type: "html",//鏂囨。绫诲瀷
maxWidth:450,
- targetStyles:['*'],
+ targetStyles:['*'],
style: `@page {
margin:0;
padding: 0;
- size: 360px 170px;
+ size: 323px 210px landscape;
}
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鐨勬墍鏈夋牱寮忥紝寰堥噸瑕�
@@ -349,7 +509,6 @@
},
handleSelectionChange(val){
this.multipleSelection = val
- console.log(this.multipleSelection[0].id,"鏁版嵁");
let lastRow = val[val.length - 1]
this.handleCurrentChange(lastRow)
},
@@ -358,12 +517,14 @@
this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
return
}
+ console.log(this.multipleSelection)
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)
})
@@ -387,18 +548,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
})
},
@@ -411,23 +573,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){
@@ -449,6 +650,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>
\ No newline at end of file
+</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