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/rawMaterial/rawMaterial-form.vue | 301 ++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 241 insertions(+), 60 deletions(-)
diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue
index ea50871..ce9ef7b 100644
--- a/src/views/quality/rawMaterial/rawMaterial-form.vue
+++ b/src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -28,16 +28,16 @@
</el-col>
<el-col :span="6">
<el-form-item label="闆朵欢鍙�" prop="code">
- <el-input v-model="dataForm.code">
+ <el-input v-model="dataForm.code" :disabled="dataForm&&dataForm.id!==null&&dataForm.id!==''">
<el-button
slot="append"
icon="el-icon-search"
- :disabled="(resultVal!=null && resultVal!='')"
+ :disabled="dataForm&&dataForm.id!==null&&dataForm.id!==''"
@click="queryCode"></el-button>
<el-button
slot="append"
icon="el-icon-full-screen"
- :disabled="(resultVal!=null && resultVal!='')"
+ :disabled="dataForm&&dataForm.id!==null&&dataForm.id!==''"
@click="Turnonthecamera"></el-button>
</el-input>
</el-form-item>
@@ -86,7 +86,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="鏁伴噺" prop="number">
- <el-input v-model="dataForm.number" :disabled="(resultVal!=null && resultVal!='')" />
+ <el-input v-model="dataForm.number" :disabled="dataForm&&dataForm.id!==null&&dataForm.id!==''" />
</el-form-item>
</el-col>
</el-row>
@@ -94,7 +94,7 @@
<el-col :span="6">
<el-form-item label="鎶ユ鏃ユ湡" prop="startTime">
<el-date-picker
- :disabled="dataForm.id!=null"
+ disabled
v-model="dataForm.startTime"
type="datetime"
format="yyyy-MM-dd HH:mm:ss"
@@ -103,18 +103,23 @@
</el-date-picker>
</el-form-item>
</el-col>
- <el-col :span="6">
- <el-form-item label="鎶ユ浜�" prop="createUser" v-if="dataForm.id!=null">
+ <el-col :span="6" v-if="dataForm.id!=null">
+ <el-form-item label="鎶ユ浜�" prop="createUser" >
<el-input v-model="dataForm.createUser" disabled />
</el-form-item>
</el-col>
- <el-col :span="6">
- <el-form-item prop="projectName" label="椤圭洰鍚嶇О" v-if="dataForm.id!=null">
+ <el-col :span="6" v-if="dataForm.id!=null">
+ <el-form-item prop="projectName" label="椤圭洰鍚嶇О" >
<el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName">
<el-input v-model="dataForm.projectName" disabled ></el-input>
</el-tooltip>
</el-form-item>
</el-col>
+ <el-col :span="6">
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input :disabled="dataForm&&dataForm.id!==null&&dataForm.id!==''" v-model="dataForm.remark" />
+ </el-form-item>
+ </el-col>
</el-row>
</el-form>
</div>
@@ -124,6 +129,9 @@
<el-row style="width:100%;z-index: 10;height:50px;" v-if="resultVal==null">
<el-col :span="12"></el-col>
<el-col :span="12" style="text-align: right;">
+ <el-button v-if="dataForm.id&&resultVal==null" size="small"
+ type="primary"
+ @click="saveTable()">淇濆瓨</el-button>
<el-button v-if="dataForm.id==null" size="small" @click="clickAddLine()">娣诲姞妫�楠岄」鐩�</el-button>
<el-button class="pad-addcol-btn" v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">娣诲姞妫�娴嬪�煎垪</el-button>
<el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">鍒犻櫎妫�娴嬪�煎垪</el-button>
@@ -149,21 +157,30 @@
</el-table-column>
<el-table-column prop="father" label="妫�楠岄」鐩�" width="160">
<template slot-scope="scope">
- <el-input v-if="scope.row.children" style="width:80%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="璇疯緭鍏ユ楠岄」鐩�"></el-input>
+ <el-input v-if="scope.row.children" style="width:80%" :disabled="dataForm.id!=null&&(resultVal!=null && resultVal!='')" v-model="scope.row.father" placeholder="璇疯緭鍏ユ楠岄」鐩�"
+ :ref="'inspectProject'+scope.$index"
+ :id="'inspectProject'+scope.$index"
+ @keyup.native="moveFocus($event, scope.$index, 'inspectProject')"></el-input>
</template>
</el-table-column>
<el-table-column prop="name" label="椤圭洰" width="160">
<template slot-scope="scope">
<div v-if="!scope.row.children">
- <el-input class="inline-input" :disabled="dataForm.id!=null" v-model="scope.row.name"
- placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
+ <el-input class="inline-input" :disabled="dataForm.id!=null&&(resultVal!=null && resultVal!='')" v-model="scope.row.name"
+ placeholder="璇疯緭鍏ラ」鐩悕绉�"
+ :ref="'project'+scope.$index"
+ :id="'project'+scope.$index"
+ @keyup.native="moveFocus($event, scope.$index, 'project')"></el-input>
</div>
</template>
</el-table-column>
<el-table-column prop="unit" label="鍗曚綅" width="160">
<template slot-scope="scope">
<div v-if="!scope.row.children">
- <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�"></el-input>
+ <el-input :disabled="dataForm.id!=null&&(resultVal!=null && resultVal!='')" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�"
+ :ref="'unit'+scope.$index"
+ :id="'unit'+scope.$index"
+ @keyup.native="moveFocus($event, scope.$index, 'unit')"></el-input>
</div>
</template>
@@ -171,8 +188,11 @@
<el-table-column prop="required" label="鏍囧噯鍊�" width="160">
<template slot-scope="scope">
<div v-if="!scope.row.children">
- <el-input :disabled="dataForm.id != null" v-model="scope.row.required"
- placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input>
+ <el-input :disabled="dataForm.id!=null&&(resultVal!=null && resultVal!='')" v-model="scope.row.required"
+ placeholder="璇疯緭鍏ユ爣鍑嗗��"
+ :ref="'standard'+scope.$index"
+ :id="'standard'+scope.$index"
+ @keyup.native="moveFocus($event, scope.$index, 'standard')"></el-input>
</div>
</template>
</el-table-column>
@@ -185,13 +205,16 @@
<el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start">
<el-autocomplete clearable
cache="false"
- ref="testValueInput"
@blur="checkTestValues(scope.row,'blur',$event)"
@select="checkTestValues(scope.row,'select',$event)"
- :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))"
+ :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))"
v-model="scope.row.testValueList[index]"
:fetch-suggestions="querySearch"
- placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" >
+ placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��"
+ :ref="`detectionValue${index}`+scope.$index"
+ :id="`detectionValue${index}`+scope.$index"
+ @keyup.native="moveFocus($event, scope.$index, `detectionValue${index}`)"
+ popper-class="no-keyboard-events">
<template slot-scope="{ item }">
<div>{{ item.value }}</div>
</template>
@@ -220,7 +243,10 @@
<el-table-column prop="note" label="妫�楠屾弿杩�" width="160" >
<template slot-scope="scope">
<div v-if="!scope.row.children">
- <el-input @blur="checkTestValues(scope.row,'blur',$event)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input>
+ <el-input @blur="checkTestValues(scope.row,'blur',$event)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"
+ :ref="`remark`+scope.$index"
+ :id="`remark`+scope.$index"
+ @keyup.native="moveFocus($event, scope.$index, `remark`)"></el-input>
</div>
</template>
</el-table-column>
@@ -275,7 +301,7 @@
</div>
<el-table :data="processConfigFileTableData" height="260px">
<el-table-column
- prop="rawInsNo"
+ prop="no"
align="center"
width="120"
label="鍘熸潗鏂欐楠岀紪鍙�"
@@ -305,11 +331,12 @@
></el-table-column>
<el-table-column align="center" label="鎿嶄綔">
<template slot-scope="scope">
+ <!-- :disabled="(resultVal!=null && resultVal!='')" -->
<el-button
@click="delProcessConfigFile(scope.row)"
type="text"
size="small"
- :disabled="(resultVal!=null && resultVal!='')"
+
>鍒犻櫎</el-button
>
<el-button
@@ -402,6 +429,7 @@
getObj,
updateRawInsProduct,
updateRawInspectsById,
+ updateRawInsProduct2,
updateDeviceById, chooseIFS} from '@/api/quality/rawMaterial'
import {
getProcessConfigFiles,
@@ -460,6 +488,7 @@
unit: '',
number: '',
supplier: '',
+ remark:'',
rawInsProducts: [{
deviceId: 0,
father:'',
@@ -481,9 +510,11 @@
}],
dataRule: {
code:[{ required: true, message: '璇锋壂鎻忛�夋嫨闆朵欢', trigger: 'blur' }],
- startTime: [{ required: true, message: '璇烽�夋嫨鎶ユ鏃ユ湡', trigger: 'blur' }]
+ // startTime: [{ required: true, message: '璇烽�夋嫨鎶ユ鏃ユ湡', trigger: 'blur' }]
},
deviceList: [],
+ keyfield:['inspectProject','project','unit','standard','remark'],
+ keyfield0:['detectionValue0']
}
},
beforeUpdate(){
@@ -507,6 +538,18 @@
this.unqualifiedNum = null
}
},
+ empiricalValueAdd(newVal){
+ if(newVal!=this.keyfield0.length){
+ if(newVal>this.keyfield0.length){
+ this.keyfield0 = []
+ for(let i=0;i<newVal;i++){
+ this.keyfield0.push('detectionValue'+i)
+ }
+ }else{
+ this.keyfield0.splice(this.keyfield0.length-1,1);
+ }
+ }
+ }
},
methods:{
querySearch(queryString, cb){
@@ -620,6 +663,7 @@
this.dataForm.code = param.code
this.dataForm.name = param.name
this.dataForm.formTime = param.formTime
+ this.dataForm.startTime = param.formTime
this.dataForm.unit = param.unit
this.dataForm.specs = param.specs
this.dataForm.supplier = param.supplier
@@ -699,7 +743,9 @@
});
},
addTeatValueColumn(){
- this.empiricalValueAdd = this.empiricalValueAdd + 1;
+ this.$nextTick(()=>{
+ this.empiricalValueAdd = this.empiricalValueAdd + 1;
+ })
},
// 娣诲姞琛�
clickAddLine(row,index) {
@@ -760,32 +806,35 @@
if(this.list){
this.list.forEach(e=>{
if(e.children){
- e.children.forEach(i=>{
+ e.children.map(i=>{
if(i.testValueList.length>1){
- let arr = i.testValue.split(",")
- arr.splice((arr.length-1),1)
- let obj = {
- deviceId: i.deviceId,
- rpId: i.rpId,
- testValue: arr.join(","),
- note: i.note
- }
- updateRawInsProduct(obj).then(res=>{
- if(res.data.code === 0){
- this.init(this.dataForm.id)
- }
- })
+ i.testValueList = i.testValueList.splice(i.testValueList.length-1,1)
+ return i
+ // let arr = i.testValue.split(",")
+ // arr.splice((arr.length-1),1)
+ // let obj = {
+ // deviceId: i.deviceId,
+ // rpId: i.rpId,
+ // testValue: arr.join(","),
+ // note: i.note
+ // }
+ // updateRawInsProduct(obj).then(res=>{
+ // if(res.data.code === 0){
+ // this.init(this.dataForm.id)
+ // }
+ // })
}
})
}
})
+ this.saveTable()
}
},
delTeatValueColumn(){
if (this.empiricalValueAdd - 1 > 0) {
if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
this.empiricalValueAdd = this.empiricalValueAdd - 1;
- this.changeRowResult()
+ // this.changeRowResult()
this.list.forEach(i => {
if(i.children){
i.children.forEach(ele=>{
@@ -793,6 +842,7 @@
})
}
});
+ this.saveTable()
}
}
},
@@ -803,6 +853,8 @@
this.dataForm.rawInsNo = data.rawInsNo
this.dataForm.name = data.name
this.dataForm.formTime = data.formTime
+ this.dataForm.startTime = data.startTime
+ this.dataForm.remark = data.remark
this.dataForm.code = data.code
this.dataForm.specs = data.specs
this.dataForm.unit = data.runit
@@ -915,30 +967,35 @@
if(!isTrue){
return
}
- this.changeState(row)
+ // this.changeState(row)
}
},
- changeState(row) {
+ saveTable() {
+ let rawInsProducts = [];
this.$nextTick(()=>{
- if (row.rpId != null && row.rpId != '') {
- let val = row.testValueList.join(",")
- if (val === undefined || val === '' || val === null) {
- return
+ this.list.forEach(item=>{
+ if(item.children){
+ item.children.forEach(ele=>{
+ let obj = JSON.parse(JSON.stringify(ele))
+ obj.testValue = obj.testValueList.join(",")
+ obj.id = obj.rpId
+ delete obj.testValueList;
+ obj.name = ele.name;
+ obj.father = item.father;
+ obj.unit = ele.unit;
+ rawInsProducts.push(obj)
+ })
}
- let obj = {
- deviceId: row.deviceId,
- rpId: row.rpId,
- testValue: val,
- note: row.note
- }
- updateRawInsProduct(obj).then(res => {
- if (res.data.code == 0) {
- this.$message.success("鏇存柊鎴愬姛")
- } else {
- this.$message.error("鏇存柊澶辫触")
- }
- this.init(this.dataForm.id)
- })
+ })
+ if(rawInsProducts.length>0){
+ updateRawInsProduct2(rawInsProducts).then(res => {
+ if (res.data.code == 0) {
+ this.$message.success("鏇存柊鎴愬姛")
+ } else {
+ this.$message.error("鏇存柊澶辫触")
+ }
+ this.init(this.dataForm.id)
+ })
}
})
},
@@ -989,12 +1046,13 @@
this.list.forEach(item=>{
item.children.forEach(c=>{
c.testValue=c.testValueList.join(",")
+ c.required = c.required.replace(',','锛�').replace('(','锛�').replace(')','锛�')
})
})
data.rawInsProducts = this.list
addRawInspects(data).then(res=>{
this.$message.success("淇濆瓨鎴愬姛")
- // this.$router.go(-1)
+ this.$router.go(-1)
}).catch(error=>{
this.$message.error(error)
})
@@ -1009,11 +1067,134 @@
this.deviceList = res.data.data
})
},
- },
+ moveFocus(event, index, key) {
+ console.log(key, index,key)
+ let keyfield = this.insertArrayAt(this.keyfield,4,this.keyfield0);
+ // enter閿�
+ // if (event.keyCode === 13) { // 鍥炶溅
+ // if (index === this.getLen() - 1 && key === keyfield[keyfield.length - 1]) { // 鏈�鍚庝竴琛屾渶鍚庝竴涓�
+ // console.log('鏈�鍚庝竴琛屾渶鍚庝竴涓棤娉曞洖杞�')
+ // return
+ // }
+ // this.$nextTick(() => {
+ // event.target.blur()
+ // })
+ // if (key === keyfield[keyfield.length - 1]) { // 褰撳墠琛屾渶鍚庝竴涓�,璺宠浆涓嬩竴琛岀涓�涓�
+
+ // } else { // 璺宠浆涓嬩竴涓�
+ // const nextkeyindex = keyfield.findIndex(k => k === key) + 1
+ // this.$nextTick(() => {
+ // document.getElementById(keyfield[nextkeyindex] + index).focus()
+ // })
+ // }
+ // }
+
+ // 鍚戜笂 =38
+ if (event.keyCode === 38) {
+ console.log('鍚戜笂')
+ if (index === 0) { // 绗竴琛�
+ console.log('绗竴琛屾棤娉曞悜涓�')
+ return
+ }
+ document.getElementById(key + index).blur()
+ if(key.includes('detectionValue')){
+ this.$refs[key + index][0].activated = false;
+ }
+ let i = 0;
+ while (true){
+ let dom = document.getElementById(key + (index - 1-i))
+ if(dom){
+ dom.focus()
+ return
+ }else if((index-1-i)==0){
+ return
+ }
+ i++
+ }
+ }
+
+ // 涓� = 40
+ if (event.keyCode === 40) {
+ console.log('鍚戜笅')
+ if (index === this.getLen() - 1) { // 鏈�鍚庝竴琛�
+ console.log('鏈�鍚庝竴琛屾棤娉曞悜涓�')
+ return
+ }
+ document.getElementById(key + index).blur()
+ if(key.includes('detectionValue')){
+ this.$refs[key + index][0].activated = false;
+ }
+ this.$nextTick(() => {
+ let i = 0;
+ while (true){
+ let dom = document.getElementById(key + (index + 1+i))
+ console.log(dom,key + (index + 1+i))
+ if(dom){
+ dom.focus()
+ return
+ }else if((index+1+i)==this.getLen() - 1){
+ return
+ }
+ i++
+ }
+ })
+ }
+
+ // 宸� = 37
+ if (event.keyCode === 37) {
+ console.log('鍚戝乏')
+ if (index === 0 && key === keyfield[0]) { // 绗竴琛岀涓�涓�
+ console.log('绗竴琛岀涓�涓棤娉曞悜宸�')
+ return
+ }
+ document.getElementById(key + index).blur()
+ const prevkeyindex = keyfield.findIndex(k => k === key) - 1
+ this.$nextTick(() => {
+ let dom = document.getElementById(keyfield[prevkeyindex] + index)
+ if(dom){
+ dom.focus()
+ }
+ })
+ }
+
+ // 鍙� = 39
+ if (event.keyCode === 39) {
+ console.log('鍚戝彸')
+ if (index === this.getLen() - 1 && key === keyfield[keyfield.length - 1]) { // 鏈�鍚庝竴琛屾渶鍚庝竴涓�
+ console.log('鏈�鍚庝竴琛屾渶鍚庝竴涓棤娉曞悜鍙�')
+ return
+ }
+ document.getElementById(key + index).blur()
+ const nextkeyindex = keyfield.findIndex(k => k === key) + 1
+ this.$nextTick(() => {
+ let dom = document.getElementById(keyfield[nextkeyindex] + index)
+ if(dom){
+ dom.focus()
+ }
+ })
+ }
+ },
+ insertArrayAt(arr1, index, arr2) {
+ return arr1.slice(0, index).concat(arr2, arr1.slice(index));
+ },
+ getLen(){
+ let arr = []
+ this.list.forEach(item => {
+ arr.push(item)
+ item.children.forEach(child => {
+ arr.push(child)
+ })
+ })
+ return arr.length
+ }
+ }
}
</script>
<style>
+/* .no-keyboard-events * {
+ pointer-events: none;
+} */
.rawMaterial-detail {
width: 100%;
height: 530px;
--
Gitblit v1.9.3