From 4f805c3b7c8d2f5c04282ea08e734b8b46f9cfc5 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期二, 18 六月 2024 09:57:47 +0800
Subject: [PATCH] 检验下单-项目统计bug
---
src/components/do/b1-inspect-order-plan/Inspection.vue | 372 +++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 347 insertions(+), 25 deletions(-)
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index 0979be9..261e82a 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -155,9 +155,12 @@
}
.inspection .el-input-group__append {
- padding: 0 10px;
+ padding: 0 14px;
color: #3A7BFA;
background-color: #fff;
+ height: 100%;
+ display: flex;
+ align-items: center;
}
.inspection .center-box .el-input__inner {
@@ -182,11 +185,20 @@
.inspection .el-textarea__inner {
min-height: 100% !important;
}
+
+ .inspection .tables .el-input{
+ display: flex;
+ align-items: center;
+ }
</style>
<template>
<div v-loading="loading" class="inspection">
<el-row class="title">
- <el-col :span="12" style="padding-left: 20px;">妫�楠屽崟璇︽儏</el-col>
+ <el-col :span="12" style="padding-left: 20px;">妫�楠屽崟璇︽儏
+ <span style="color: #3A7BFA;"> 鏍峰搧</span>
+ <span v-if="currentFiberOpticTape" style="color: #3A7BFA;"> - 鍏夌氦甯�</span>
+ <span v-if="currentFiberOptic" style="color: #3A7BFA;"> - 鍏夌氦</span>
+ </el-col>
<el-col :span="12" style="text-align: right;">
<el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">鍏夌氦鍒囨崲</el-button>
<el-button size="small" type="primary" @click="fiberOpticTapeVisible=true" v-if="fiberOpticTape.length>0">鍏夌氦甯﹀垏鎹�</el-button>
@@ -226,7 +238,7 @@
<el-input clearable v-model="insOrder.appointed" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
</el-form-item>
<el-form-item label="褰撳墠鏍峰搧浣嶆暟:">
- <el-tag v-if="currentSample.index">{{ `NO.${currentSample.index}` }}</el-tag>
+ <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>
</el-form-item>
</el-form>
</div>
@@ -246,7 +258,7 @@
:rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1"
:style="`background:${n.v.bg};color:${n.v.fc};font-size:${n.v.fs}px;width:${handleWidth(n)}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`">
<div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`"
- :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;`">
+ :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;background:${n.v.bg};`">
<template v-if="n.v.ps!=undefined && n.v.ps.value==='妫�楠屽��' && state==1">
<el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v"
:disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
@@ -299,14 +311,42 @@
<span :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
</template>
<template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧缂栧彿'">
- <div style="display: flex;flex-wrap: nowrap;align-items: center;">
- <i class="el-icon-caret-left table_caret" @click="caretSample(-1)"></i>
- <div :style="`font-family:${n.v.ff} !important;`">{{currentSample.sampleCode}}</div>
- <i class="el-icon-caret-right table_caret" @click="caretSample(1)"></i>
+ <div style="display: flex;flex-wrap: nowrap;align-items: center;width: 100%" :title="currentSample.sampleCode">
+ <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i>
+ <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">{{currentSample.sampleCode}}</div>
+ <i class="el-icon-caret-right table_caret" style="width: 16px;"
+ v-if="!currentFiberOpticTape&&!currentFiberOptic"@click="caretSample(1)"></i>
</div>
</template>
<template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧鍨嬪彿'">
<div :style="`font-family:${n.v.ff} !important;`" v-if="currentSample.model!==undefined&¤tSample.model!==null">{{currentSample.model}}</div>
+ </template>
+ <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='濂楃'">
+ <div style="display: flex;flex-wrap: nowrap;align-items: center;">
+ <!-- <i class="el-icon-caret-left table_caret" @click="caretBushing(-1)"></i> -->
+ <div :style="`font-family:${n.v.ff} !important;`">{{currentBushing?currentBushing.color:''}}</div>
+ <!-- <i class="el-icon-caret-right table_caret" @click="caretBushing(1)"></i> -->
+ </div>
+ </template>
+ <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鍏夌氦甯�'">
+ <div style="display: flex;flex-wrap: nowrap;align-items: center;">
+ <i class="el-icon-caret-left table_caret" @click="caretTape(-1)
+ " v-if="currentFiberOpticTape"></i>
+ <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOpticTape?currentFiberOpticTape.code:''}}</div>
+ <i class="el-icon-caret-right table_caret"
+ v-if="currentFiberOpticTape"
+ @click="caretTape(1)"></i>
+ </div>
+ </template>
+ <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鍏夌氦'">
+ <div style="display: flex;flex-wrap: nowrap;align-items: center;">
+ <i class="el-icon-caret-left table_caret" @click="caretOptic(-1)"
+ v-if="currentFiberOptic"></i>
+ <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOptic?currentFiberOptic.color:''}}
+ </div>
+ <i
+ v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i>
+ </div>
</template>
<span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
</div>
@@ -315,11 +355,25 @@
</tbody>
</table>
</div>
+ <el-upload :action="action"
+ :data="{
+ orderId:id
+ }"
+ v-show="state==1&&fileAdd"
+ :on-success="handleSuccessUp" :show-file-list="false"
+ accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' :headers="headers" :on-change="beforeUpload"
+ style="width: 80px !important;"
+ :on-error="onError" ref='upload'>
+ <el-button size="small" type="primary">闄勪欢涓婁紶</el-button></el-upload>
+ <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList"
+ :componentData="componentData0"
+ :delUrl="$api.insOrderPlan.delfile"
+ :key="upIndex" style="height: 100%;margin-top: 16px;"/>
</div>
<el-drawer title="鍏夌氦鍒囨崲" :visible.sync="fiberOpticVisible" :size="500">
<el-table class="el-table" ref="fiberOpticTable" :data="fiberOptic" height="100%" tooltip-effect="dark" border
highlight-current-row @row-click="handleChangeOptic" :row-class-name="tableRowClassName"
- :current-row-key="currentKey" :row-key="record=>record.index" v-if="fiberOpticVisible">
+ :current-row-key="currentKey2" :row-key="record=>record.index" v-if="fiberOpticVisible">
<el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()">
</el-table-column>
<el-table-column prop="bushColor" label="绠″鑹叉爣" min-width="100px" show-overflow-tooltip></el-table-column>
@@ -332,7 +386,7 @@
<el-drawer title="鍏夌氦甯﹀垏鎹�" :visible.sync="fiberOpticTapeVisible" :size="500">
<el-table class="el-table" ref="fiberOpticTapeTable" :data="fiberOpticTape" height="100%" tooltip-effect="dark" border
highlight-current-row @row-click="handleChangeTape" :row-class-name="tableRowClassName"
- :current-row-key="currentKey" :row-key="record=>record.index" v-if="fiberOpticTapeVisible">
+ :current-row-key="currentKey1" :row-key="record=>record.index" v-if="fiberOpticTapeVisible">
<el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()">
</el-table-column>
<el-table-column prop="code" label="鍏夌氦甯︾紪鍙�" min-width="110px" show-overflow-tooltip></el-table-column>
@@ -345,7 +399,7 @@
<el-drawer title="濂楃鍒囨崲" :visible.sync="bushingVisible" :size="500">
<el-table class="el-table" ref="bushingTable" :data="bushing" height="100%" tooltip-effect="dark" border
highlight-current-row @row-click="handleChangeBushing" :row-class-name="tableRowClassName"
- :current-row-key="currentKey" :row-key="record=>record.index" v-if="bushingVisible">
+ :current-row-key="currentKey0" :row-key="record=>record.index" v-if="bushingVisible">
<el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()">
</el-table-column>
<el-table-column prop="color" label="绠¤壊鏍�" min-width="100px" show-overflow-tooltip></el-table-column>
@@ -417,6 +471,7 @@
<script>
import ValueTable from '../../tool/value-table.vue'
+ import file from '../../../util/file'
export default {
props: ['sonLaboratory', 'orderId', 'state'],
components: {
@@ -424,6 +479,7 @@
},
data() {
return {
+ fileAdd:false,
sampleVisible: false,
taskVisible: false,
submitLoading: false,
@@ -458,6 +514,52 @@
requiredAdd: [],
requiredUp: []
},
+ componentData0: {
+ entity: {
+ insOrderId:''
+ },
+ isIndex: true,
+ showSelect: false,
+ select: false,
+ sort: false,
+ init:false,
+ do: [
+ {
+ id: 'handleDown',
+ font: '涓嬭浇',
+ type: 'text',
+ method: 'handleDown'
+ },{
+ id: 'delete',
+ font: '鍒犻櫎',
+ type: 'text',
+ method: 'doDiy',
+ disabFun: (row, index) => {
+ return this.state!=1
+ }
+ }
+ ],
+ isPage: false,
+ linkEvent: {},
+ tagField: {
+ type:{
+ select:[
+ {
+ value: 1,
+ label: '鍥剧墖'
+ },
+ {
+ value: 2,
+ label: '鏂囦欢'
+ }
+ ]
+ }
+ },
+ currentId: '',
+ selectField: {},
+ requiredAdd: [],
+ requiredUp: []
+ },
upIndex: 0,
insOrder: {},
sampleProduct: [],
@@ -469,6 +571,9 @@
ps: {},
param: {},
currentKey: 1,
+ currentKey0: 1,
+ currentKey1: 1,
+ currentKey2: 1,
comparisonList: [],
excelMethodList: [],
equipOptions: [],
@@ -494,8 +599,19 @@
currentFiberOptic:null,//褰撳墠鍏夌氦
currentBushing:null,//褰撳墠濂楃
tableLoading:false,
+ upLoading:false
}
},
+ computed: {
+ headers() {
+ return {
+ 'token': sessionStorage.getItem('token')
+ }
+ },
+ action() {
+ return this.javaApi + this.$api.insOrderPlan.uploadFile
+ }
+ },
created() {
this.componentData.entity.sonLaboratory = this.sonLaboratory;
this.id = this.orderId;
@@ -507,6 +623,7 @@
this.getComparisonList()
this.getAuthorizedPerson()
this.scrollInit()
+ this.getPower()
},
watch: {
id(val) {
@@ -516,11 +633,17 @@
laboratory: this.sonLaboratory
}).then(async res => {
this.insOrder = res.data.insOrder;
+ this.componentData0.entity.insOrderId = val;
+ this.$refs.fileList.selectList()
this.urgentList.forEach(m => {
if (m.value == this.insOrder.type) {
this.insOrder.typeName = m.label
}
})
+ this.loading = false
+ if(!res.data.sampleProduct||res.data.sampleProduct.length==0){
+ return this.$message.error('璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�')
+ }
this.sampleProduct = res.data.sampleProduct
this.currentSample = this.HaveJson(this.sampleProduct[0])
let list = await this.getCurrentProduct(this.currentSample.id,0)
@@ -537,7 +660,6 @@
})
if (this.currentSample.index == undefined) this.currentSample['index'] = 1
let bushing = this.currentSample.bushing
- this.loading = false
// this.handleTableData()
this.getTableLists();
this.componentData.currentId = val;
@@ -568,6 +690,23 @@
}
},
methods: {
+ getPower(){
+ let power = JSON.parse(sessionStorage.getItem('power'))
+ let fileDel = false
+ let fileAdd = false
+ for (var i = 0; i < power.length; i++) {
+ if (power[i].menuMethod == 'uploadFile') {
+ fileAdd = true
+ }
+ if (power[i].menuMethod == 'delfile') {
+ fileDel = true
+ }
+ }
+ if (!fileDel) {
+ this.componentData0.do.splice(1, 1)
+ }
+ this.fileAdd = fileAdd
+ },
async getCurrentProduct(id,type){
this.tableLoading = true;
let res = await this.$axios.post(this.$api.insOrderPlan.getInsProduct+'?id='+id+'&type='+type+'&laboratory='+this.sonLaboratory)
@@ -588,6 +727,7 @@
this.fiberOpticTape = row.fibers;
}
this.bushingVisible = false;
+ this.currentKey0 = row.index
},
async handleChangeOptic(row, column, event){
this.currentFiberOptic = row;
@@ -604,7 +744,7 @@
this.fiberOpticVisible = false;
let list = await this.getCurrentProduct(row.id,2)
this.getTableLists0(list)
- this.currentKey = row.index
+ this.currentKey2 = row.index
},
async handleChangeTape(row, column, event){
this.currentFiberOpticTape = row;
@@ -628,7 +768,7 @@
// 閰嶇疆鍏夌氦
this.fiberOptic = row.fiber;
}
- this.currentKey = row.index
+ this.currentKey1 = row.index
},
async handleChangeSample(row, column, event) {
this.param = {}
@@ -1247,7 +1387,7 @@
}
} else {
valueList = []
- let regex = /[=\+\-\*\%\(\)\/\s]/g
+ let regex = /[=\+\-\*\%\(\)\/\^\s]/g
let mode = item.v.f.replace(regex, ' ').split(' ');
mode.filter(m => m && !Number(m)).forEach(m => {
let r = m.replace(/[a-zA-Z]/g, "") - 1
@@ -1304,20 +1444,34 @@
}
},
getSystemValue(n) {
+ let code = null
try {
- if (this.param[n.i].equipValue.v.v == null || this.param[n.i].equipValue.v.v == '') {
- this.$message.error('璇峰厛閫夋嫨閲囬泦鐨勮澶�')
- return
- }
+ this.param[n.i].equipValue.forEach(a=>{
+ if(a.r === n.r){
+ if (a.v.v == null || a.v.v == '') {
+ this.$message.error('璇峰厛閫夋嫨閲囬泦鐨勮澶�')
+ return
+ }else{
+ code = a.v.v
+ }
+ }
+ })
} catch (e) {
+ console.log(e);
this.$message.error('鎵句笉鍒拌澶囧唴瀹�')
}
- this.$message.error('閲囬泦澶辫触銆愬凡寮�鏀炬墜鍔ㄦ柟寮忋��')
+ console.log(n, code);
+ fetch('http://localhost:82/寰俊鍥剧墖_20240518100811.png').then(res=>res.blob()).then(blob=>{
+ console.log(blob);
+ const url = URL.createObjectURL(blob)
+ console.log(url);
+ })
+ /* this.$message.error('閲囬泦澶辫触銆愬凡寮�鏀炬墜鍔ㄦ柟寮忋��')
for (var a in this.currentSample.insProduct) {
if (this.currentSample.insProduct[a].id == n.i) {
this.currentSample.insProduct[a].inspectionItemType = 0
}
- }
+ } */
},
getEquipOptions(e, id) {
if (e) {
@@ -1409,20 +1563,67 @@
}
this.addVerifyDia = false
this.submitLoading = true;
- this.$axios.post(this.$api.insOrderPlan.submitPlan, {
+ this.$axios.post(this.$api.insOrderPlan.checkSubmitPlan, {
orderId: this.orderId,
laboratory: this.sonLaboratory,
- verifyUser: this.verifyUser
}).then(res => {
if (res.code === 200) {
- this.$message.success("鎿嶄綔鎴愬姛")
- this.$emit('goback')
+ console.log(res.data)
+ if(!res.data||res.data.length==0){
+ this.$axios.post(this.$api.insOrderPlan.submitPlan, {
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser
+ }).then(res => {
+ if (res.code === 200) {
+ this.$message.success("鎿嶄綔鎴愬姛")
+ this.$emit('goback')
+ }
+ this.submitLoading = false;
+ }).catch(error => {
+ console.error(error)
+ this.submitLoading = false;
+ })
+ }else{
+ let newData = []
+ const h = this.$createElement
+ for (let i in res.data) {
+ const lastChar = res.data[i].slice(-1);
+ if(lastChar=='-'){
+ res.data[i] = res.data[i].slice(0, -1);
+ }
+ newData.push(h('p', {style: 'font-size: 14px;color: red;'}, (Number(i)+1)+'銆�'+res.data[i]))
+ }
+ newData.push(h('p', { style: 'font-size: 16px;color:#000;margin-top:12px' },'浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�'))
+ this.$confirm('鎻愮ず',{
+ title:'鎻愮ず',
+ message: h('div', null, newData),
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: ""
+ }).then(() => {
+ this.$axios.post(this.$api.insOrderPlan.submitPlan, {
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser
+ }).then(res => {
+ if (res.code === 200) {
+ this.$message.success("鎿嶄綔鎴愬姛")
+ this.$emit('goback')
+ }
+ }).catch(error => {
+ console.error(error)
+ })
+ }).catch(() => {})
+ }
+
}
this.submitLoading = false;
}).catch(error => {
console.error(error)
this.submitLoading = false;
})
+ return
},
saveInsContext() {
this.$axios.post(this.$api.insOrderPlan.saveInsContext, {
@@ -1510,6 +1711,127 @@
}
})
this.getTableLists()
+ },
+ caretBushing(num){
+ let index = this.currentKey0 + num
+ if(index < 1){
+ this.$message.error('褰撳墠鏄涓�涓绠�')
+ return
+ } else if(index > this.bushing.length){
+ this.$message.error('褰撳墠鏄渶鍚庝竴涓绠�')
+ return
+ }
+ this.currentKey0 = index
+ this.currentBushing = this.HaveJson(this.bushing[index - 1])
+ this.fiberOpticTape = []
+ this.currentFiberOpticTape = null;
+ this.fiberOptic = []
+ this.currentFiberOptic = null;
+ if( this.currentBushing.fiber&& this.currentBushing.fiber.length>0){
+ // 鐩存帴閰嶇疆鍏夌氦
+ this.fiberOptic = this.currentBushing.fiber;
+ }else if( this.currentBushing.fibers&& this.currentBushing.fibers.length>0){
+ // 閰嶇疆鍏夌氦甯﹀悗锛屽啀閰嶇疆鍏夌氦
+ this.fiberOpticTape = this.currentBushing.fibers;
+ }
+ },
+ async caretTape(num){
+ let index = this.currentKey1 + num
+ if(index < 1){
+ this.$message.error('褰撳墠鏄涓�涓厜绾ゅ甫')
+ return
+ } else if(index > this.fiberOpticTape.length){
+ this.$message.error('褰撳墠鏄渶鍚庝竴涓厜绾ゅ甫')
+ return
+ }
+ this.currentKey1 = index
+ this.currentFiberOpticTape = this.HaveJson(this.fiberOpticTape[index - 1])
+ this.param = {}
+ this.fiberOptic = []
+ this.currentFiberOptic = null;
+ this.currentFiberOpticTape.productList.forEach(a => {
+ this.param[a.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: null,
+ equipValue: [],
+ equipName: [],
+ insResult: null
+ }
+ })
+ this.fiberOpticTapeVisible = false;
+ let list = await this.getCurrentProduct(this.currentFiberOpticTape.id,1)
+ this.getTableLists0(list)
+ if(this.currentFiberOpticTape.fiber&&this.currentFiberOpticTape.fiber.length>0){
+ // 閰嶇疆鍏夌氦
+ this.fiberOptic = this.currentFiberOpticTape.fiber;
+ }
+ },
+ async caretOptic(num){
+ let index = this.currentKey2 + num
+ if(index < 1){
+ this.$message.error('褰撳墠鏄涓�涓厜绾�')
+ return
+ } else if(index > this.fiberOptic.length){
+ this.$message.error('褰撳墠鏄渶鍚庝竴涓厜绾�')
+ return
+ }
+ this.currentKey2 = index
+ this.currentFiberOptic = this.HaveJson(this.fiberOptic[index - 1])
+ this.currentFiberOptic.productList.forEach(a => {
+ this.param[a.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: null,
+ equipValue: [],
+ equipName: [],
+ insResult: null
+ }
+ })
+ let list = await this.getCurrentProduct(this.currentFiberOptic.id,2)
+ this.getTableLists0(list)
+ },
+ handleSuccessUp(response, ) {
+ this.upLoading = false;
+ if (response.code == 200) {
+ this.$message.success('涓婁紶鎴愬姛');
+ this.$refs.fileList.selectList()
+ }
+ },
+ beforeUpload(file) {
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ return false;
+ } else {
+ this.upLoading = true;
+ return true;
+ }
+ },
+ onError(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ },
+ handleDown(row){
+ this.$axios.post(this.$api.insOrderPlan.downFile, {
+ id: row.id,
+ }).then(res => {
+ if (res.code === 200) {
+ let url = '';
+ if(res.data.type==1){
+ url = this.javaApi+'/img/'+res.data.fileUrl
+ file.downloadIamge(url,row.fileName)
+ }else{
+ url = this.javaApi+'/word/'+res.data.fileUrl
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = row.fileName;
+ link.click();
+ }
+ }
+ }).catch(error => {
+
+ })
}
}
}
--
Gitblit v1.9.3