From dd61d0f5d1176107de45e0d23e25cc0a761b7124 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期三, 26 六月 2024 15:09:45 +0800
Subject: [PATCH] 修改标准库
---
src/components/do/b1-inspect-order-plan/Inspection.vue | 255 ++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 211 insertions(+), 44 deletions(-)
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index e0ddd8e..629895c 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -60,6 +60,8 @@
width: 100px;
text-align: center;
font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
}
.content {
@@ -133,6 +135,14 @@
.table_caret:active{
opacity: .8;
}
+ >>>input::-webkit-inner-spin-button {
+ -webkit-appearance: none !important; /* 闅愯棌寰皟鎸夐挳 */
+ margin: 0 !important; /* 绉婚櫎寰皟鎸夐挳鐨勮竟璺� */
+ }
+
+ >>>input[type=number] {
+ -moz-appearance: textfield !important; /* 閽堝 Firefox */
+ }
</style>
<style>
.inspection .el-form-item__label {
@@ -155,9 +165,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 {
@@ -259,7 +272,7 @@
<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 != '')"
- @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)">
+ @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" type="number">
<el-button slot="append" type="primary" icon="el-icon-edit" size="mini"
v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button>
</el-input>
@@ -276,12 +289,12 @@
v-else-if="getInspectionValueType(n.i) == 4">/</span>
</template>
<template v-else-if="n.v.ps!=undefined && n.v.ps.value==='缁撹'">
- <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1"
+ <!-- <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1"
class="table_input" v-model="n.v.v" @change="saveInsContext()">
<el-option label="鍚堟牸" :value="1"></el-option>
<el-option label="涓嶅悎鏍�" :value="0"></el-option>
- </el-select>
- <template v-else>
+ </el-select> -->
+ <template>
<span v-if="n.v.v===1" :style="`font-family:${n.v.ff} !important;color: green;`">鍚堟牸</span>
<span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">涓嶅悎鏍�</span>
<span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</span>
@@ -305,13 +318,13 @@
:disabled="state>1" @visible-change="e=>getDic(e,n.i)" @change="saveInsContext()">
<el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option>
</el-select> -->
- <span :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
+ <span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v,n.v.ct) }}</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)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i>
- <div :style="`font-family:${n.v.ff} !important;`">{{currentSample.sampleCode}}</div>
- <i class="el-icon-caret-right table_caret"
+ <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>
@@ -345,7 +358,7 @@
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>
+ <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)" ></span>
</div>
</td>
</tr>
@@ -359,6 +372,7 @@
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"
@@ -468,6 +482,7 @@
<script>
import ValueTable from '../../tool/value-table.vue'
import file from '../../../util/file'
+ import excelFountion from '../../../util/excelFountion'
export default {
props: ['sonLaboratory', 'orderId', 'state'],
components: {
@@ -612,6 +627,7 @@
this.componentData.entity.sonLaboratory = this.sonLaboratory;
this.id = this.orderId;
this.getUserInfo()
+ // excelFountion.handel('SUM(MAX(SUM(A1,B1,C1),2,3)*2-MIN(A1:D3),1,2)')
},
mounted() {
this.getTypeDicts()
@@ -636,6 +652,10 @@
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)
@@ -652,7 +672,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;
@@ -1070,12 +1089,12 @@
} else {
this.param[b.i].resValue = b
} */
- if (b.i !== undefined) {
+ if (b.i !== undefined&&!this.param[b.i].resValue) {
this.param[b.i].resValue = b
}
}
if (b.v.ps != undefined && b.v.ps.value === '缁撹') {
- if (b.i !== undefined) {
+ if (b.i !== undefined&&!this.param[b.i].insResult) {
this.param[b.i].insResult = b
conclusionList.forEach((n, i) => {
if (n.r == b.r && n.c == b.c) {
@@ -1181,11 +1200,18 @@
})
if (item.methodName == '鑷畾涔夋柟娉�' && item.v.ps != undefined && item.v.ps.value == '缁撹') {
if (this.currentSample.insProduct.find(m => m.id == item.i)) {
- let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&');
+ let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask?this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null;
let res = Object.values(comValue)[0]
- let comp = ask.map((m, i) => {
+ let comp = []
+ if(ask){
+ comp = ask.map((m, i) => {
if (m.includes('=')) {
- return res == m.split('=')[1]
+ let str = m.split('=')[1]
+ if(typeof res == 'string'&&typeof str == 'string'){
+ return res.trim() == str.trim()
+ }else{
+ return res == str
+ }
} else if (m.includes('鈮�')) {
return res >= m.split('鈮�')[1]
}else if (m.includes('鈮�')) {
@@ -1205,13 +1231,13 @@
return res >= (k[0] - k[1]) && res <= (k[0] + k[1])
}
})
- if(this.getInspectionValueType(item.i)==1){
- if (comp.every(m => m)) {
- item.v.v = 1
- } else {
- item.v.v = 0
- }
}
+ if (comp.every(m => m)) {
+ item.v.v = 1
+ } else {
+ item.v.v = 0
+ }
+ console.log(this.param)
this.saveInsContext()
}
} else {
@@ -1231,11 +1257,39 @@
}
comResult = sum
break;
+ case 'MEDIAN':
+ let arr = []
+ for (var a in comValue) {
+ arr.push(comValue[a])
+ }
+ comResult = this.median(arr)
+ break;
+ case 'APS':
+ let arr0 = []
+ for (var a in comValue) {
+ arr0.push(comValue[a])
+ }
+ comResult = Math.abs(arr0[0])
+ break;
+ // case 'MAX':
+ // let arr1 = []
+ // for (var a in comValue) {
+ // arr1.push(eval(comValue[a]))
+ // }
+ // comResult = Math.max(...arr1)
+ // break;
+ // case 'MIN':
+ // let arr2 = []
+ // for (var a in comValue) {
+ // arr2.push(eval(comValue[a]))
+ // }
+ // comResult = Math.median(...arr2)
+ // break;
default:
let valueList = [];
item.valueList.forEach(a => {
valueList.push({
- name: `${this.comparisonList[a.c].label}${a.r+1}`,
+ name: `${this.comparisonList.find(e=>e.value==a.c).label}${a.r+1}`,
value: 0,
})
})
@@ -1250,18 +1304,17 @@
valueList.forEach(b => {
str = str.replace(b.name, b.value)
})
- if (item.v.f.includes('/')) {
- if (Object.getOwnPropertyNames(comValue).length == valueList.length) {
- comResult = eval(str)
- } else {
- comResult = ''
- }
- } else {
+ str = str.replaceAll('MAX', 'Math.max')
+ str = str.replaceAll('MIN', 'Math.min')
+ str = str.replaceAll('锛�', ',')
+ try {
if(this.getInspectionValueType(item.i)==1){
comResult = eval(str)
}else{
comResult = str
}
+ } catch (error) {
+
}
break;
}
@@ -1343,10 +1396,10 @@
this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
break;
case 'resValue':
- this.tableList[0].lastValue = value.v.v
+ this.tableList[0].lastValue = value?value.v.v:''
break;
case 'insResult':
- this.tableList[0].insResult = value.v.v
+ this.tableList[0].insResult = value?value.v.v:''
break;
}
}
@@ -1357,7 +1410,70 @@
item.methodName = item.v.f.split('=').length > 1 && item.v.f.split('=')[1].split('(') && item.v.f.split(
'=')[1].split('(')[0] ? item.v.f.split('=')[1].split('(')[0] : '鑷畾涔夋柟娉�';
let valueList = [];
- if (item.v.f.includes(':')) {
+ if(item.v.f.includes('MAX') || item.v.f.includes('MIN')){
+ item.methodName = '鑷畾涔夋柟娉�'
+ let regex = /[=\+\-\*\%\/\^\s]/g
+ let mode = item.v.f.replace(regex, ' ').split(' ');
+ let that = this
+ if(item.v.f.includes('MAX')){
+ item.v.f = Judgment(item.v.f, 'MAX')
+ }
+ if(item.v.f.includes('MIN')){
+ item.v.f = Judgment(item.v.f, 'MIN')
+ }
+ function Judgment(f,type) {
+ let newF = f
+ let mode4 = mode.filter(m => m&&m.includes(type))
+ mode4.forEach(m => {
+ let mode0 = m
+ if(mode0.includes(':')){
+ let r0 = null;
+ let c0 = null;
+ let r1 = null;
+ let c1 = null;
+ let mode1 = mode0.split('(')[1].split(')')[0];
+ let start = mode1.split(':')[0]
+ let end = mode1.split(':')[1]
+ c0 = that.comparisonList.find(j => j.label == start.split('')[0]).value
+ r0 = start.replace(/[a-zA-Z]/g, "") - 1
+ c1 = that.comparisonList.find(j => j.label == end.split('')[0]).value
+ r1 = end.replace(/[a-zA-Z]/g, "") - 1
+ let valueList0 = []
+ for (let i = Number(r0); i <= Number(r1); i++) {
+ for (let u = Number(c0); u <= Number(c1); u++) {
+ valueList0.push({
+ r: i,
+ c: u
+ })
+ }
+ }
+ let valueList1 = []
+ valueList0.forEach(v => {
+ let r = '';
+ let c = '';
+ r = v.r +1;
+ c = that.comparisonList.find(j => j.value == v.c).label
+ valueList1.push(c+r)
+ })
+ let mode3 = type+'('+valueList1.join(',')+')'
+ newF = newF.replace(mode0, mode3)
+ valueList = [...valueList,...valueList0]
+ }else{
+ let mode1 = mode0.replace(type, '').replace(/[=\+\-\*\%\(\)\/\^\s]/g, '');
+ let modeList = mode1.split(',');
+ modeList.filter(m => m && !Number(m)).forEach(m => {
+ let r = m.replace(/[a-zA-Z]/g, "") - 1
+ let c = that.comparisonList.find(j => j.label == m.split('')[0]).value
+ valueList.push({
+ c,
+ r
+ })
+ })
+ }
+ })
+ return newF
+ }
+ }else if (item.v.f.includes(':')) {
valueList = [];
let r0 = null;
let c0 = null;
@@ -1380,9 +1496,9 @@
}
} 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 => {
+ mode.filter(m => m && !Number(m)&&m!='undefined').forEach(m => {
let r = m.replace(/[a-zA-Z]/g, "") - 1
let c = this.comparisonList.find(j => j.label == m.split('')[0]).value
valueList.push({
@@ -1395,6 +1511,24 @@
return item;
})
}
+ },
+ median(arr) {
+ // 瀵规暟缁勮繘琛屾帓搴�
+ const sortedArr = arr.sort((a, b) => a - b);
+ // 璁$畻鏁扮粍闀垮害鐨勪竴鍗�
+ const half = Math.floor(sortedArr.length / 2);
+ // 濡傛灉鏁扮粍闀垮害涓哄鏁帮紝杩斿洖涓棿鐨勫厓绱狅紱濡傛灉涓哄伓鏁帮紝杩斿洖涓棿涓や釜鍏冪礌鐨勫钩鍧囧��
+ if (sortedArr.length % 2) {
+ // 濂囨暟浣嶇疆鐨勫厓绱�
+ return sortedArr[half];
+ } else {
+ // 鍋舵暟浣嶇疆鐨勫钩鍧囧��
+ return (sortedArr[half - 1] + sortedArr[half]) / 2;
+ }
+ },
+ getValue(v){
+ let str = v.v?v.v:(v.ct&&v.ct.s?v.ct.s.length>0&&v.ct.s[0].v:'').replaceAll('\n','<br/>')
+ return str
},
getInspectionValueType(id) {
for (var a in this.currentSample.insProduct) {
@@ -1437,20 +1571,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) {
@@ -1547,7 +1695,6 @@
laboratory: this.sonLaboratory,
}).then(res => {
if (res.code === 200) {
- console.log(res.data)
if(!res.data||res.data.length==0){
this.$axios.post(this.$api.insOrderPlan.submitPlan, {
orderId: this.orderId,
@@ -1571,7 +1718,7 @@
if(lastChar=='-'){
res.data[i] = res.data[i].slice(0, -1);
}
- newData.push(h('p', {style: 'font-size: 12px;'}, (Number(i)+1)+'銆�'+res.data[i]))
+ 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('鎻愮ず',{
@@ -1811,6 +1958,26 @@
}).catch(error => {
})
+ },
+ /**
+ * 灏嗘暟鍊紇淇濈暀ct.fa涓�'##'鍚庣殑鎸囧畾灏忔暟浣嶆暟锛屽苟杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆銆�
+ *
+ * @param v 瑕佹牸寮忓寲鐨勬暟鍊�
+ * @param ct 鍖呭惈鏍煎紡鍖栭厤缃殑瀵硅薄
+ * @param ct.fa 鏍煎紡鍖栭厤缃瓧绗︿覆锛岃嫢鍖呭惈'##'鍒欐寜鐓у叾鍚庣殑鍐呭纭畾灏忔暟浣嶆暟
+ * @returns 鏍煎紡鍖栧悗鐨勫瓧绗︿覆鎴栧師濮嬫暟鍊硷紙鑻ラ厤缃笉绗﹀悎瑕佹眰锛�
+ */
+ toFixed(v,ct){
+ if(v&&ct&&ct.fa&&ct.fa.includes('##')){
+ if(ct.fa.includes('.')){
+ let num = ct.fa.slice(4).length
+ return Number(v).toFixed(num)
+ }else{
+ return Number(v).toFixed(0)
+ }
+ }else{
+ return v
+ }
}
}
}
--
Gitblit v1.9.3