From 9da0675fa67f1f03f48881b2664da4c01356d1b5 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 23 七月 2025 15:01:08 +0800
Subject: [PATCH] 插回损--功能修改
---
src/views/quality/Packaging_ledger/index.vue | 636 ++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 508 insertions(+), 128 deletions(-)
diff --git a/src/views/quality/Packaging_ledger/index.vue b/src/views/quality/Packaging_ledger/index.vue
index e8f7d18..f1a80aa 100644
--- a/src/views/quality/Packaging_ledger/index.vue
+++ b/src/views/quality/Packaging_ledger/index.vue
@@ -8,19 +8,19 @@
:isShowHide="true"
:prelang="prelang"
:ajaxFun="ajaxFun"
- :options="options"
- @handleSelectionChange="handleCurrentChange"
+ :options="options"
+ @handleSelectionChange="handleSelectionChange"
ref="processconfiguration"
>
- <template #toolbar></template>
+ <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 :span="6">
+ <span>瑁呯鏄庣粏</span>
</el-col>
<el-col :span="8" :offset="4">
<!-- <el-button
@@ -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,6 +51,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="relateOperationParam()"
@@ -50,67 +61,75 @@
</el-row>
</div>
<el-table
- :data="testStandardParams"
- id="testStandardParamTable"
- ref="testStandardParam"
- :default-sort="{ prop: 'index' }"
- highlight-current-row
- height="700"
- style="width: 100%"
- class="l-mes-table"
- border
- stripe
- >
- <el-table-column
- prop="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="parameterFormat"
- align="center"
- width="80"
- >
- <template slot-scope="scope">
- <el-input v-model="scope.row.parameterFormat"></el-input>
- </template>
- </el-table-column>
- <el-table-column label="鍗曚綅" prop="unit" align="center" />
- <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>
@@ -118,7 +137,7 @@
<!-- 鏂板 -->
<packfrom
:currshowlist.sync="addOrUpdateVisible"
- >
+ @refreshDataList="getData">
</packfrom>
<packfromadd
:currshowlist.sync="increase"
@@ -126,19 +145,159 @@
@handleSelectionChange = "preserve"
>
</packfromadd>
- </basic-container>
+ </basic-container>
+ <el-dialog title="鏍囩鍒楄〃" top="5vh" :visible.sync="diaPrintTab" width="500px">
+ <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-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>
+ <div style="background-color: blueviolet;height: 80px;">
+ 1111
+ </div> -->
+ </el-card>
+ </div>
+ </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>
+ <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} 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 {
- goid:'',
+ str:"https://ztms-mes.chinaztt.cn/#/pack?id=",
+ qrData:[],
+ diaPrintTab: false,
+ checkShow:false,
+ multipleSelection: [],
+ isCheck: false,
+ dataway:{},
+ datalist:[],
testStandardParams: [],
packageBoxId:{},
prelang: 'operation',
@@ -154,6 +313,7 @@
lazy: false, // 鏄惁闇�瑕佹噿鍔犺浇
fit: true, // 鍒楃殑瀹藉害鏄惁鑷拺寮�
multiSelect: true, //
+ isEdit:false,
seqNo: true,
isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳
isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳
@@ -227,28 +387,8 @@
searchInfoType: 'datetimerange',
},
],
- toolbar: [
- {
- text: '鏂板',
- type: 'primary',
- fun: this.addOrUpdateHandle
- },
- ],
- operator: [
- {
- text: '鍒犻櫎',
- icon: 'el-icon-delete',
- type: 'text',
- size: 'small',
- fun: this.deleteHandle
- },{
- text: 'xx',
- icon: 'el-icon-delete',
- type: 'text',
- size: 'small',
- // fun: this.deleteHandle
- }
- ],
+ toolbar: [],
+ operator: null,
operatorConfig: {
fixed: 'right',
label: '鎿嶄綔',
@@ -256,26 +396,145 @@
minWidth: 120
}
},
+ codeInfo:null,
+ startTime: null,
}
},
components: {
- ttable,
- packfrom,
- packfromadd
- },
- watch: {
- // renovate() {
- // if (this.innerVisible = false) {
- // this.$nextTick(() => {
- // this.getData()
- // })
- // }
- // }
+ ttable,
+ packfrom,
+ 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;
+ PrintJS({
+ printable: 'qrCard',//椤甸潰
+ type: "html",//鏂囨。绫诲瀷
+ maxWidth:450,
+ targetStyles:['*'],
+ style: `@page {
+ margin:0;
+ padding: 0;
+ size: 323px 210px landscape;
+ }
+ html{
+ zoom:100%;
+ }
+ @media print{
+ width: 323px;
+ height: 210px;
+ margin:7cm 0mm 0mm 0mm;
+ padding: 0mm 10mm;
+ }`,
+ onPrintDialogClose: this.erexcel=false,
+ targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕�
+ font_size: '',
+ });
+ },
+ handleSelectionChange(val){
+ this.multipleSelection = val
+ let lastRow = val[val.length - 1]
+ this.handleCurrentChange(lastRow)
+ },
+ printLabel(){
+ if(this.multipleSelection.length==0){
+ this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
+ return
+ }
+ console.log(this.multipleSelection)
+ this.diaPrintTab = true
+ this.multipleSelection.forEach(item=>{
+ const obj = {
+ packageNo: item.packageNo,
+ contractNo: item.contractNo,
+ packageBoxId:item.id,
+ createUser:item.createUser
+ }
+ this.qrData.push(obj)
+ })
+ },
// 鑾峰彇鏁版嵁鍒楄〃
getData() {
this.$refs.processconfiguration.refreshData()
+ },
+ wayRenovate(){
+ this.getData()
},
//add
addOrUpdateHandle(){
@@ -285,50 +544,171 @@
deleteHandle(row){
dropById({id:row.id}).then((res) =>{
this.getData()
- this.$message.error('鍒犻櫎鎴愬姛')
+ this.$message.success('鍒犻櫎鎴愬姛')
})
},
handleCurrentChange(row){
- console.log(row,"id");
- this.packageBoxId = {
- packageBoxId:row[0].id
+ if(row.state=='鏈姤妫�'){
+ this.isCheck = false
+ }else{
+ this.isCheck = true
}
- this.goid = row[0].id
- list({packageBoxId:row[0].id}).then((res) =>{
- console.log(res,"nihaoa");
+ this.dataway = row
+ this.packageBoxId = {
+ packageBoxId:row.id
+ }
+ this.rightquery()
+ },
+ rightquery(){
+ list({packageBoxId:this.packageBoxId.packageBoxId}).then((res) =>{
this.testStandardParams = res.data.data
})
},
//璇︽儏娣诲姞
relateOperationParam(){
- this.increase = true
+ if (this.dataway.state == "鏈姤妫�") {
+ this.increase = true
+ }else{
+ this.$message.error('璇峰厛閫夋嫨鍖呰椤圭洰')
+ }
},
preserve(datalist){
- console.log(datalist);
- this.testStandardParams = datalist
-
+ this.testStandardParams = this.testStandardParams.concat(datalist);
+ console.log(this.testStandardParams,"---------start");
+ this.datalist = datalist
},
+ //鍙宠竟淇濆瓨
addpreserve(){
- console.log(this.testStandardParams,"淇濆瓨鏁版嵁");
- this.testStandardParams.forEach(el => {
- el.packageBoxId =this.goid
+ this.datalist.forEach(el => {
+ el.packageBoxId =this.packageBoxId.packageBoxId
});
- console.log(this.testStandardParams,"niaho");
- saveList(this.testStandardParams).then((res) =>{
- console.log(res,"淇濆瓨鐨�");
- this.$message.success('淇濆瓨鎴愬姛')
- this.testStandardParams
+ 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);
})
},
+ // 鏍稿
+ 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){
- console.log(row,"");
deledata({id:row.id}).then((res)=>{
this.$message.success('鍒犻櫎鎴愬姛')
- this.testStandardParams
+ 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('妫�楠屾垚鍔�')
+ })
+ },
+ 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)
+ })
+ }
}
},
- computed: {
- },
}
-</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