From fb941952ff7d5c03bc2251ec7e5ba0b498987894 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 14 三月 2025 19:31:31 +0800
Subject: [PATCH] 检验任务搬迁
---
src/components/Table/lims-table.vue | 11
src/api/business/inspectionTask.js | 256 +
src/utils/excelFountion.js | 376 ++
src/views/business/inspectionTask/Inspection.vue | 8086 ++++++++++++++++++++++++++++++++++++++++++++
src/views/business/inspectionOrder/add.vue | 17
src/views/business/inspectionOrder/index.vue | 30
src/api/business/inspectionOrder.js | 4
src/utils/file.js | 25
src/views/business/inspectionTask/index.vue | 2065 +++++++++++
9 files changed, 10,837 insertions(+), 33 deletions(-)
diff --git a/src/api/business/inspectionOrder.js b/src/api/business/inspectionOrder.js
index d6fc987..3665efe 100644
--- a/src/api/business/inspectionOrder.js
+++ b/src/api/business/inspectionOrder.js
@@ -111,8 +111,8 @@
export function viewDetails(query) {
return request({
url: '/insOrder/viewDetails',
- method: 'get',
- params: query
+ method: 'post',
+ data: query
})
}
diff --git a/src/api/business/inspectionTask.js b/src/api/business/inspectionTask.js
new file mode 100644
index 0000000..8b3ad4d
--- /dev/null
+++ b/src/api/business/inspectionTask.js
@@ -0,0 +1,256 @@
+import request from '@/utils/request'
+
+// 鍔ㄦ�佽幏鍙杢ab琛ㄥご
+export function getTabHeader(query) {
+ return request({
+ url: '/insOrderPlan/getTabHeader',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鏌ョ湅缁撴灉鎸夐挳
+export function getInsOrderPlanList(query) {
+ return request({
+ url: '/insOrderPlan/getInsOrderPlanList',
+ method: 'post',
+ data: query
+ })
+}
+
+// 瀵煎嚭濮旀墭璐圭敤
+export function exportCommissionFees(query) {
+ return request({
+ url: '/insOrderPlan/exportCommissionFees',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
+
+// 瀵煎嚭寰呮浠诲姟
+export function exportUnInsProducts(query) {
+ return request({
+ url: '/insOrderPlan/exportUnInsProducts',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
+
+// 瀵煎嚭鏌ョ湅妫�楠岀粨鏋淓xcel
+export function exportInsOrderPlanResult(query) {
+ return request({
+ url: '/insOrderPlan/exportInsOrderPlanResult',
+ method: 'post',
+ data: query,
+ responseType: 'blob'
+ })
+}
+
+// 鏌ョ湅妫�楠屼换鍔″垪琛�
+export function selectInsOrderPlanList(query) {
+ return request({
+ url: '/insOrderPlan/selectInsOrderPlanList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 妫�楠屽崟璇︽儏-浠诲姟鍒囨崲
+export function inspectionOrderDetailsTaskSwitching(query) {
+ return request({
+ url: '/insOrderPlan/inspectionOrderDetailsTaskSwitching',
+ method: 'get',
+ params: query
+ })
+}
+
+// 璁ら鎸夐挳
+export function claimInsOrderPlan(query) {
+ return request({
+ url: '/insOrderPlan/claimInsOrderPlan',
+ method: 'post',
+ data: query
+ })
+}
+
+// 妫�楠屾寜閽�
+export function doInsOrder(query) {
+ return request({
+ url: '/insOrderPlan/doInsOrder',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鍒囨崲濂楃/鍏夌氦/鍏夌氦甯﹁褰曟ā鐗堟煡璇㈡楠屽唴瀹�
+export function getReportModel(query) {
+ return request({
+ url: '/insOrderPlan/getReportModel',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鑾峰彇妫�楠岄」鐩拰妯℃澘鍐呭
+export function getInsProduct(query) {
+ return request({
+ url: '/insOrderPlan/getInsProduct',
+ method: 'get',
+ params: query
+ })
+}
+
+// 浜ゆ帴鎸夐挳
+export function upPlanUser(query) {
+ return request({
+ url: '/insOrderPlan/upPlanUser',
+ method: 'post',
+ data: query
+ })
+}
+
+// 鍒ゆ柇浜ゆ帴鐨勮瘯楠屽
+export function upPlanUser2(query) {
+ return request({
+ url: '/insOrderPlan/upPlanUser2',
+ method: 'get',
+ params: query
+ })
+}
+
+// 澶嶆牳鎸夐挳
+export function verifyPlan(query) {
+ return request({
+ url: '/insOrderPlan/verifyPlan',
+ method: 'post',
+ data: query
+ })
+}
+
+// 鏍¢獙妫�楠屼换鍔℃彁浜�
+export function checkSubmitPlan(query) {
+ return request({
+ url: '/insOrderPlan/checkSubmitPlan',
+ method: 'post',
+ data: query
+ })
+}
+
+// 鎻愪氦妫�楠屼换鍔�
+export function submitPlan(query) {
+ return request({
+ url: '/insOrderPlan/submitPlan',
+ method: 'post',
+ data: query
+ })
+}
+
+// 鑾峰彇璁惧鍚嶇О
+export function getEquipName(query) {
+ return request({
+ url: '/insOrderPlan/getEquipName',
+ method: 'get',
+ params: query
+ })
+}
+
+// 淇濆瓨妫�楠屽唴瀹�
+export function saveInsContext(query) {
+ return request({
+ url: '/insOrderPlan/saveInsContext',
+ method: 'post',
+ data: query
+ })
+}
+
+// 涓婁紶闄勪欢鎸夐挳
+export function uploadFile(query) {
+ return request({
+ url: '/insOrderPlan/uploadFile',
+ method: 'post',
+ data: query
+ })
+}
+
+// 鍒犻櫎闄勪欢鎸夐挳
+export function delfile(query) {
+ return request({
+ url: '/insOrderPlan/delfile',
+ method: 'post',
+ data: query
+ })
+}
+
+// 涓嬭浇闄勪欢
+export function downFile(query) {
+ return request({
+ url: '/insOrderPlan/downFile',
+ method: 'get',
+ params: query
+ })
+}
+
+// 濉啓娓╁害涓庢箍搴�
+export function write(query) {
+ return request({
+ url: '/insOrderPlan/write',
+ method: 'post',
+ data: query
+ })
+}
+
+// 娓╁害寰幆鏌ョ湅鍒楄〃鏁版嵁(鍖呮嫭閫氳繃鏍峰搧id,寰幆娆℃暟,娓╁害,寰幆娆℃暟杩涜绛涢��)
+export function temCycle(query) {
+ return request({
+ url: '/insOrderPlan/temCycle',
+ method: 'get',
+ params: query
+ })
+}
+
+// 寮у瀭鐗规畩椤规煡鐪嬪垪琛ㄦ暟鎹�
+export function getSagTemperatureProducts(query) {
+ return request({
+ url: '/insOrderPlan/getSagTemperatureProducts',
+ method: 'get',
+ params: query
+ })
+}
+
+// (鐢靛姏鐨勫簲鍔涘簲鍙�)淇濆瓨妫�楠屽唴瀹�
+export function saveInsContext2(query) {
+ return request({
+ url: '/insOrderPlan/saveInsContext2',
+ method: 'post',
+ data: query
+ })
+}
+
+// 鏍规嵁璁㈠崟id鏌ヨ鏍峰搧淇℃伅
+export function getSampleInfoByOrderId(query) {
+ return request({
+ url: '/insOrderPlan/getSampleInfoByOrderId',
+ method: 'get',
+ params: query
+ })
+}
+
+// 浠诲姟灞曠ず
+export function tasksShow(query) {
+ return request({
+ url: '/insOrderPlan/tasksShow',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鑾峰彇瀛愯瘯楠屽褰撴湀鐨勬�绘楠屼换鍔℃暟閲�
+export function getCurrentMonthPlanTotal(query) {
+ return request({
+ url: '/insOrderPlan/getCurrentMonthPlanTotalBySonLaboratory',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue
index 09ed0e9..bba1d5b 100644
--- a/src/components/Table/lims-table.vue
+++ b/src/components/Table/lims-table.vue
@@ -414,10 +414,20 @@
this.doLayout();
},
},
+ updated() {
+ this.$nextTick(() => {
+ this.$refs.multipleTable.doLayout();
+ });
+ },
mounted() {
this.calculateSpanInfo();
},
methods: {
+ doLayout() {
+ this.$nextTick(() => {
+ this.$refs.multipleTable && this.$refs.multipleTable.doLayout();
+ });
+ },
getWidth(row, row0) {
let count = 0;
row.forEach((a) => {
@@ -489,6 +499,7 @@
if (!linkEvent) {
return this.$message.warning("璇烽厤缃甽ingk浜嬩欢");
}
+ console.log(linkEvent);
linkEvent.vueComponent[linkEvent.method](row);
},
// 鍚堝苟鍗曞厓鏍�
diff --git a/src/utils/excelFountion.js b/src/utils/excelFountion.js
new file mode 100644
index 0000000..693c16e
--- /dev/null
+++ b/src/utils/excelFountion.js
@@ -0,0 +1,376 @@
+
+/**
+ * 璁$畻澶氫釜鏁板�肩殑鍜�
+ *
+ * @param val 鏁板�煎瀷鍙傛暟锛屽彲鍙橀暱鍙傛暟鍒楄〃
+ * @returns 杩斿洖鎵�鏈夊弬鏁扮殑鍜岋紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栧弬鏁扮被鍨嬮潪鏁板�煎瀷锛屽垯杩斿洖null
+ */
+function SUM(...val){
+ try {
+ let num = null;
+ if(val&&val.length>0){
+ val.forEach(item=>{
+ num+=item;
+ })
+ }
+ return num;
+ } catch (error) {
+
+ }
+}
+/**
+ * 璁$畻浼犲叆鍙傛暟涓殑鏈�澶у��
+ *
+ * @param ...val 鍙彉鍙傛暟鍒楄〃锛岀敤浜庤绠楁渶澶у�肩殑鏁板�兼垨鍙浆鎹负鏁板�肩殑绫诲瀷
+ * @returns 杩斿洖鏈�澶у�硷紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栦负null/undefined/''锛屽垯杩斿洖null
+ */
+function MAX(...val){
+ try {
+ let max = null;
+ if(val&&val.length>0){
+ val = val.filter(item=>item!=null&&item!=='')
+ if(val.length>0){
+ max = Math.max(...val)
+ }else{
+ max = null;
+ }
+ }
+ return max;
+ } catch (error) {
+
+ }
+}
+/**
+ * 璁$畻浼犲叆鍙傛暟涓殑鏈�灏忓��
+ *
+ * @param val 鍙彉鍙傛暟锛岀敤浜庤绠楁渶灏忓�肩殑鏁板�兼暟缁�
+ * @returns 杩斿洖浼犲叆鍙傛暟涓殑鏈�灏忓�硷紝濡傛灉浼犲叆鍙傛暟涓虹┖鎴栨墍鏈夊�煎潎涓簄ull鎴栫┖瀛楃涓诧紝鍒欒繑鍥瀗ull
+ */
+function MIN(...val){
+ try {
+ let min = null;
+ if(val&&val.length>0){
+ val = val.filter(item=>item!=null&&item!=='')
+ // console.log(val)
+ if(val.length>0){
+ min = Math.min(...val)
+ }
+ }
+ return min;
+ } catch (error) {
+
+ }
+}
+/**
+ * 璁$畻缁欏畾鏁板�肩殑骞冲潎鍊�
+ *
+ * @param val 鏁板�煎垪琛紝鍙寘鍚换鎰忎釜鍙傛暟
+ * @returns 杩斿洖骞冲潎鍊硷紝濡傛灉鏁板�煎垪琛ㄤ负绌烘垨鍖呭惈闈炴暟鍊奸」锛屽垯杩斿洖null
+ */
+function AVERAGE(...val){
+ try {
+ let num = 0;
+ let arr = [];
+ if(val&&val.length>0){
+ arr = val.filter(item=>item!=null&&item!=='')
+ arr.forEach(item=>{
+ num+=item;
+ })
+ if(arr.length>0){
+ return num/arr.length;
+ }else{
+ return null;
+ }
+ }else{
+ return null;
+ }
+ } catch (error) {
+
+ }
+}
+/**
+ * 璁$畻涓�涓暟鐨勭粷瀵瑰��
+ *
+ * @param val 浠绘剰鏁板��
+ * @returns 杩斿洖璇ユ暟鍊肩殑缁濆鍊�
+ */
+function ABS(val){
+ try {
+ return Math.abs(val);
+ } catch (error) {
+
+ }
+}
+/**
+ * 璁$畻涓�缁勬暟瀛楃殑涓綅鏁�
+ *
+ * @param val 浠绘剰涓弬鏁帮紝闇�瑕佽绠椾腑浣嶆暟鐨勬暟瀛�
+ * @returns 濡傛灉鍙傛暟涓湁鏈夋晥鐨勬暟瀛楋紝鍒欒繑鍥炶绠楀嚭鐨勪腑浣嶆暟锛涘惁鍒欒繑鍥瀗ull
+ */
+function MEDIAN(...val){
+ try {
+ let arr = [];
+ if(val&&val.length>0){
+ arr = val.filter(item=>item!=null&&item!=='')
+ const sortedArr = arr.sort((a, b) => a - b);
+ // 璁$畻涓綅鏁�
+ const half = Math.floor(sortedArr.length / 2);
+ if(arr.length>0){
+ // 濡傛灉鏁扮粍闀垮害鏄鏁帮紝鐩存帴鍙栦腑闂寸殑鍏冪礌
+ if (sortedArr.length % 2 === 1) {
+ return sortedArr[half];
+ } else { // 濡傛灉鏁扮粍闀垮害鏄伓鏁帮紝鍙栦腑闂翠袱涓厓绱犵殑骞冲潎鍊�
+ return (sortedArr[half - 1] + sortedArr[half]) / 2;
+ }
+ }else{
+ return null;
+ }
+ }else{
+ return null;
+ }
+ } catch (error) {
+
+ }
+}
+
+/**
+ * 璁$畻骞�
+ *
+ * @param str 瀛楃涓插舰寮忕殑骞傝〃杈惧紡锛屼緥濡�"2^3"
+ * @returns 杩斿洖璁$畻鍚庣殑骞傚�硷紝濡傛灉琛ㄨ揪寮忔棤鏁堝垯杩斿洖null
+ */
+function CalculatePower(str){
+ try {
+ if(str&&str.includes('^')){
+ let arr = str.split('^');
+ if(arr&&arr.length>1){
+ return Math.pow(arr[0],arr[1]);
+ }else{
+ return null;
+ }
+ }
+ } catch (error) {
+
+ }
+}
+
+
+
+/**
+ * 鏍规嵁鍧愭爣鑾峰彇鍒楀悕
+ * @param {Object} cellId
+ */
+function getColumnNameFromId(cellId){
+ try{
+ if (! Array.isArray(cellId)) {
+ cellId = cellId.split('-');
+ }
+ var i = cellId[0];
+ var letter = '';
+ if (i > 701) {
+ letter += String.fromCharCode(64 + parseInt(i / 676));
+ letter += String.fromCharCode(64 + parseInt((i % 676) / 26));
+ } else if (i > 25) {
+ letter += String.fromCharCode(64 + parseInt(i / 26));
+ }
+ letter += String.fromCharCode(65 + (i % 26));
+ return letter + (parseInt(cellId[1]) + 1);
+ }catch(e){
+ console.log('error',cellId)
+ }
+}
+/**
+ * 鏍规嵁鍒楀悕鑾峰彇鍧愭爣
+ * @param {Object} id
+ * @param {Object} arr
+ */
+function getIdFromColumnName(id, arr) {
+ try{
+ // Get the letters
+ var t = /^[a-zA-Z]+/.exec(id);
+ if (t) {
+ // Base 26 calculation
+ var code = 0;
+ for (var i = 0; i < t[0].length; i++) {
+ code += parseInt(t[0].charCodeAt(i) - 64) * Math.pow(26, (t[0].length - 1 - i));
+ }
+ code--;
+ // Make sure jexcel starts on zero
+ if (code < 0) {
+ code = 0;
+ }
+
+ // Number
+ var number = parseInt(/[0-9]+$/.exec(id));
+ if (number > 0) {
+ number--;
+ }
+
+ if (arr == true) {
+ id = [ code, number ];
+ } else {
+ // id = code + '-' + number;
+ id = {
+ c:code,
+ r:number
+ }
+ }
+ }
+ return id;
+ }catch(e){
+ console.log('error',id)
+ }
+}
+
+/**
+ * 鏇存敼鍙傛暟
+ *
+ * @param f 鍙傛暟鍒楄〃
+ * @returns 杩斿洖涓�涓寘鍚潗鏍囦俊鎭殑鏁扮粍
+ */
+function changeParameter(f){
+ try {
+ let arr = getABCList(f)
+ let arr2 = []
+ arr.forEach(item=>{
+ if(item.includes(':')){
+ let r0 = getIdFromColumnName(item.split(':')[0]).r;
+ let c0 = getIdFromColumnName(item.split(':')[0]).c;
+ let r1 = getIdFromColumnName(item.split(':')[1]).r;
+ let c1 = getIdFromColumnName(item.split(':')[1]).c;
+ for (let i = Number(r0); i <= Number(r1); i++) {
+ for (let u = Number(c0); u <= Number(c1); u++) {
+ arr2.push({
+ r: i,
+ c: u
+ })
+ }
+ }
+ }else{
+ arr2.push(getIdFromColumnName(item))
+ }
+ })
+ return arr2;
+ } catch (error) {
+
+ }
+}
+/**
+ * 鑾峰彇鍖呭惈 ABC 瀛楃鐨勫垪琛�
+ *
+ * @param f 瀛楃涓诧紝鍖呭惈闇�瑕佽В鏋愮殑鍏紡鎴栬〃杈惧紡
+ * @returns 鍖呭惈 ABC 瀛楃鐨勬暟缁勫垪琛�
+ */
+function getABCList(f){
+ try {
+ let regex = /[=\+\-\*\%\(\)\/\^\s]/g;
+ let fouList = [
+ "SUM",
+ 'MAX',
+ 'MIN',
+ 'AVERAGE',
+ 'ABS',
+ ]
+ f = f.replace(regex, ',').replace(new RegExp('"&', 'g'),'').replace(new RegExp('&"', 'g'),'')
+ fouList.forEach(item=>{
+ f = f.replace(new RegExp(item, 'g'),'')
+ })
+ // console.log('f',f)
+ let arr = f.split(',').filter(item=>{
+ return item&& /[a-zA-Z]/.test(item)&&item!='undefined'&&item!='null'
+ });
+ return arr;
+ } catch (error) {
+
+ }
+}
+/**
+ * 鑾峰彇鎵�鏈夊崟鍏冩牸
+ *
+ * @param f 琛ㄦ牸鏁版嵁鎴栫浉鍏冲弬鏁�
+ * @returns 杩斿洖涓�涓璞★紝鍏堕敭涓哄崟鍏冩牸鐨勫敮涓�鏍囪瘑绗︼紙鐢卞垪鍜岃ID鎷兼帴鑰屾垚锛夛紝鍊间负null
+ */
+function getAllCell(f){
+ try {
+ let arr = changeParameter(f)
+ let arr0 = {}
+ arr.forEach(item=>{
+ arr0[getColumnNameFromId(`${item.c}`+'-'+`${item.r}`)] = null
+ })
+ return arr0;
+ } catch (error) {
+
+ }
+}
+
+/**
+ * 璁$畻鍑芥暟
+ *
+ * @param f 瀛楃涓茬被鍨嬶紝琛ㄧず寰呰绠楃殑鍏紡
+ * @param comValue 瀵硅薄绫诲瀷锛岃〃绀鸿鏇挎崲鐨勫崟鍏冩牸鍊硷紝閿负鍗曞厓鏍煎悕绉帮紝鍊间负鏇挎崲鍚庣殑鍊�
+ * @returns 杩斿洖璁$畻鍚庣殑缁撴灉锛屽鏋滆绠楀け璐ュ垯杩斿洖0
+ */
+function compute(f,comValue){
+ try {
+ let str = f
+ // 鑾峰彇鍗曞厓鏍煎搴斿��
+ let arr = getAllCell(f)
+ for (var a in comValue) {
+ if(comValue[a]!=='undefined'&&comValue[a]!=='null'&&comValue[a]!==undefined){
+ if(typeof(comValue[a])=='string'&&comValue[a].includes('^')){
+ // 璁$畻骞傛
+ arr[a] = CalculatePower(comValue[a])
+ } else if (typeof(comValue[a])=='string'&&comValue[a].includes('/')) {
+ arr[a] = comValue[a]
+ } else{
+ arr[a] = comValue[a]
+ }
+ }
+ }
+ // 瑙f瀽鍏紡鍙傛暟锛岀壒鍒槸甯︼細鐨�
+ let arr0 = getABCList(f)
+ let obj = {}
+ arr0.forEach(item=>{
+ if(item.includes(':')){
+ let arr1 = []
+ let r0 = getIdFromColumnName(item.split(':')[0]).r;
+ let c0 = getIdFromColumnName(item.split(':')[0]).c;
+ let r1 = getIdFromColumnName(item.split(':')[1]).r;
+ let c1 = getIdFromColumnName(item.split(':')[1]).c;
+ for (let i = Number(r0); i <= Number(r1); i++) {
+ for (let u = Number(c0); u <= Number(c1); u++) {
+ arr1.push({
+ r: i,
+ c: u
+ })
+ }
+ }
+ let arr2 = []
+ arr1.forEach(m=>{
+ arr2.push(getColumnNameFromId(`${m.c}`+'-'+`${m.r}`))
+ })
+ obj[item.split(':').join('-')] = arr2.join(',')
+ }else{
+ obj[item] = item
+ }
+ })
+ str = str.replace(new RegExp(':', 'g'),'')
+ // 鏇挎崲鍙傛暟
+ for (var a in obj) {
+ str = str.replace(new RegExp(a, 'g'),obj[a])
+ }
+ // 璁$畻
+ for (var a in arr) {
+ str = str.replace(new RegExp(a, 'g'),arr[a])
+ }
+ return eval(str)
+ } catch (error) {
+
+ }
+}
+
+export default {
+ compute,
+ changeParameter,
+ AVERAGE
+}
diff --git a/src/utils/file.js b/src/utils/file.js
index c3a3e7b..d8ff0fd 100644
--- a/src/utils/file.js
+++ b/src/utils/file.js
@@ -59,3 +59,28 @@
image.src = imgsrc;
}
};
+
+
+export function transformExcel(response,tempName){
+ const relType = ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-excel;charset=UTF-8']
+ let type = response.type
+ if (relType.includes(type)) {
+ const blob = new Blob([response], {type: 'application/vnd.ms-excel'})
+ let temp = tempName
+ if(response.headers){
+ const disposition = response.headers["content-disposition"]
+ temp = disposition.substring(disposition.lastIndexOf('=') + 1)
+ }
+ let filename = decodeURI(temp)
+ // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠�
+ const elink = document.createElement('a')
+ elink.download = filename
+ elink.style.display = 'none'
+ elink.href = URL.createObjectURL(blob)
+ document.body.appendChild(elink)
+ elink.click()
+ URL.revokeObjectURL(elink.href) // 閲婃斁URL 瀵硅薄
+ document.body.removeChild(elink)
+ }
+}
+
diff --git a/src/views/business/inspectionOrder/add.vue b/src/views/business/inspectionOrder/add.vue
index 27f393d..c46e5fa 100644
--- a/src/views/business/inspectionOrder/add.vue
+++ b/src/views/business/inspectionOrder/add.vue
@@ -77,10 +77,7 @@
v-show="active == 3 && addObj.companyId"
>閫氳繃</el-button
>
- <el-button
- size="medium"
- @click="$router.push('/business/inspectionOrder')"
- >
+ <el-button size="medium" @click="goBack">
<span style="color: #3a7bfa">杩斿洖</span>
</el-button>
</el-col>
@@ -1916,6 +1913,12 @@
}
},
methods: {
+ goBack() {
+ let path = this.$route.query.isPlan
+ ? "/business/inspectionTask"
+ : "/business/inspectionOrder";
+ this.$router.push(path);
+ },
//涓嬫鏍告煡鏃ユ湡:绂佺敤鍦ㄦ牳鏌ユ棩鏈熷墠鐨勬棩鏈�
disabledDate(time) {
if (time) {
@@ -3363,7 +3366,7 @@
if (res.code === 200) {
this.$message.success("宸叉彁浜�");
this.bsm3Dia = false;
- this.$router.push("/business/inspectionOrder");
+ this.goBack();
}
this.saveLoad = false;
})
@@ -3533,7 +3536,7 @@
this.$message.success("鎻愪氦鎴愬姛");
this.issuedDialogVisible = false;
this.upLoad = false;
- this.$router.replace("/business/inspectionOrder");
+ this.goBack();
//瀹℃牳閫氳繃鍚庯紝鑷姩鎵撳嵃浜岀淮鐮�
//TODO: 鐢靛姏璇曢獙瀹ゆ殏鏃朵笉鐢ㄦ爣绛炬墦鍗�
if (
@@ -4624,7 +4627,7 @@
this.tell = "";
this.$message.success("鎻愪氦鎴愬姛");
this.issuedDialogVisible = false;
- this.$router.push("/business/inspectionOrder");
+ this.goBack();
}
})
.catch((error) => {
diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index 529e504..f7f149c 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -822,12 +822,12 @@
revokeReviewConsistentByProductId,
revokeReviewProduct,
revokeReviewSample,
- upPlanUser2,
updateStatus,
updateInspected,
revocationPassed,
revocationCancel,
} from "@/api/business/inspectionOrder";
+import { upPlanUser2 } from "@/api/business/inspectionTask";
import { getDicts } from "@/api/system/dict/data";
import vueQr from "vue-qr";
import getLodop from "@/utils/lodop";
@@ -1013,7 +1013,9 @@
{
name: "鎶ュ憡涓嬭浇",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => {
+ this.download(row);
+ },
disabled: (row, index) => {
return row.state != 4 || row.isRatify != 1;
},
@@ -1194,7 +1196,9 @@
{
name: "鏌ョ湅",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => {
+ this.viewDetails(row);
+ },
showHide: (row) => {
return (
row.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳" ||
@@ -1628,7 +1632,7 @@
active: 2,
currentId: row.id,
examine: 1,
- isReview: true,
+ isPlan: false,
},
});
},
@@ -1647,23 +1651,6 @@
},
// 涓嬭浇鎶ュ憡
download(row) {
- // let url = row.urlS ? row.urlS : row.url;
- // if (url) {
- // url = url.split(".")[0] + ".pdf";
- // const link = document.createElement("a");
- // link.href = this.javaApi + url;
- // link.target = "_blank";
- // document.body.appendChild(link);
- // link.click();
- // }
-
- // if(row.tempUrlPdf) {
- // const link = document.createElement('a');
- // link.href = this.javaApi + row.tempUrlPdf;
- // link.target = '_blank';
- // document.body.appendChild(link);
- // link.click();
- // }
downReport({ id: row.reportId })
.then((res) => {
let fileName = row.tempUrlPdf;
@@ -2283,6 +2270,7 @@
query: {
active: num,
examine: 0,
+ isPlan: false,
},
});
},
diff --git a/src/views/business/inspectionTask/Inspection.vue b/src/views/business/inspectionTask/Inspection.vue
new file mode 100644
index 0000000..18c7feb
--- /dev/null
+++ b/src/views/business/inspectionTask/Inspection.vue
@@ -0,0 +1,8086 @@
+<style scoped>
+.custom-table .el-table__header-wrapper th {
+ background-color: #87ceeb; /* 鍙甯︽湁my-custom-table绫荤殑琛ㄦ牸鐢熸晥 */
+ color: #fff;
+}
+.container {
+ overflow: auto; /* 纭繚瀹瑰櫒鑳藉寘瑁规诞鍔ㄥ厓绱� */
+ margin-bottom: 10px;
+}
+
+.right-button {
+ float: right;
+}
+.inspection {
+ height: 100%;
+ overflow-y: auto;
+}
+
+.inspection::-webkit-scrollbar {
+ width: 0;
+}
+
+.title {
+ height: 60px;
+ line-height: 60px;
+}
+
+.search {
+ width: 100%;
+ margin-bottom: 10px;
+ background-color: #fff;
+ border-radius: 3px;
+}
+
+.search .form-inline {
+ padding-top: 20px;
+ padding-left: 0px;
+ text-align: left;
+}
+
+.center {
+ width: calc(100% - 40px);
+ /* max-height: 580px; */
+ background-color: #fff;
+ border-radius: 3px;
+ padding: 20px;
+ overflow: auto;
+}
+
+.center-box {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ flex-wrap: wrap;
+ width: 100%;
+ overflow-x: hidden;
+ /* overflow-x: scroll; */
+ cursor: grab;
+}
+
+.center-box:active {
+ cursor: grabbing;
+}
+
+.tables {
+ table-layout: fixed;
+ margin: 5px 5px 16px;
+}
+
+.tables td {
+ height: 40px;
+ width: 100px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+}
+.thermal-table {
+ min-width: calc(100% - 10px);
+ margin: 5px 5px 0;
+ table-layout: fixed;
+}
+.thermal-table td {
+ min-width: 70px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 5px;
+}
+.table-container {
+ overflow-x: auto; /* 浣垮鍣ㄦ敮鎸佹í鍚戞粴鍔� */
+ max-width: 100%; /* 闄愬埗瀹瑰櫒鐨勬渶澶у搴� */
+ margin-bottom: 16px;
+}
+
+.content {
+ display: flex;
+ height: 100%;
+ align-items: center;
+ justify-content: left;
+ padding: 5px;
+ box-sizing: border-box;
+ overflow: hidden;
+ user-select: none;
+}
+
+.content * {
+ user-select: none;
+}
+
+.content-h-0 {
+ justify-content: center;
+}
+
+.content-h-1 {
+ justify-content: start;
+}
+
+.content-h-2 {
+ justify-content: end;
+}
+
+.content-v-0 {
+ align-items: center;
+}
+
+.content-v-1 {
+ align-items: start;
+}
+
+.content-v-2 {
+ align-items: end;
+}
+
+.table_input {
+ width: 100%;
+ height: 100%;
+}
+.table_input >>> .el-input__inner {
+ border-color: rgba(0, 0, 0, 0.5) !important;
+}
+
+.collection {
+ width: 50px;
+ height: 100%;
+ margin-left: 5px;
+ border-color: transparent;
+ background-color: #409eff;
+ color: #fff;
+ border-radius: 4px;
+ font-size: 12px;
+}
+
+.collection:active {
+ opacity: 0.7;
+}
+.table_caret {
+ font-size: 16px;
+ margin: 0 5px;
+ color: rgba(0, 0, 0, 0.5);
+}
+.table_caret:hover {
+ color: #409eff;
+ cursor: pointer;
+}
+
+.table_caret:active {
+ opacity: 0.8;
+}
+>>> input::-webkit-inner-spin-button {
+ -webkit-appearance: none !important; /* 闅愯棌寰皟鎸夐挳 */
+ margin: 0 !important; /* 绉婚櫎寰皟鎸夐挳鐨勮竟璺� */
+}
+
+>>> input[type="number"] {
+ -moz-appearance: textfield !important; /* 閽堝 Firefox */
+}
+>>> .el-form-item__content {
+ display: inline-flex;
+ align-items: center;
+}
+#lineTd {
+ background: #fff
+ url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEiLz48L3N2Zz4=)
+ no-repeat 100% center;
+}
+.background-grey {
+ background-color: #f0f1f5;
+}
+.search_thing {
+ display: flex;
+ align-items: center;
+ height: 50px;
+}
+
+.search_label {
+ width: 120px;
+ font-size: 14px;
+ text-align: right;
+}
+.search_input {
+ width: calc(100% - 120px);
+}
+</style>
+<style>
+.inspection .el-form-item__label {
+ color: #000;
+}
+
+.inspection .el-drawer__header::before {
+ content: "";
+ display: inline-block;
+ width: 4px;
+ height: 30.24px;
+ background: #3a7bfa;
+ border-radius: 10px;
+ margin-left: 32px;
+ margin-right: 8.5px;
+}
+
+.inspection .el-drawer__header {
+ color: #303133;
+ text-align: left;
+}
+
+.inspection .el-input-group__append {
+ padding: 0 14px;
+ color: #3a7bfa;
+ background-color: #fff;
+ height: 100%;
+ display: flex;
+ align-items: center;
+}
+
+.inspection .center-box .el-input__inner {
+ font-size: 12px;
+ padding: 0 6px;
+ text-align: center;
+}
+
+.inspection .el-textarea__inner {
+ padding: 2px;
+}
+
+.inspection .el-textarea__inner::-webkit-scrollbar {
+ width: 0;
+}
+
+.inspection .el-select {
+ display: flex;
+ align-items: center;
+}
+
+.inspection .el-textarea__inner {
+ min-height: 100% !important;
+}
+
+.inspection .tables .el-input {
+ display: flex;
+ align-items: center;
+}
+.thermal-table .el-input {
+ display: flex;
+ align-items: center;
+}
+.custom-dialog .el-dialog__body {
+ max-width: 1000px; /* 璁剧疆鏈�澶у搴� */
+}
+</style>
+<template>
+ <div v-loading="loading" class="inspection">
+ <el-row class="title">
+ <el-col :span="12" style="padding-left: 20px; text-align: left"
+ >妫�楠屽崟璇︽儏
+ </el-col>
+ <el-col :span="12" style="text-align: right">
+ <el-button
+ size="small"
+ type="primary"
+ @click="connectVisible = true"
+ v-show="insOrderState != 2 && state == 1"
+ >浜ゆ帴</el-button
+ >
+ <!-- <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>
+ <el-button size="small" type="primary" @click="bushingVisible=true" v-if="bushing.length>0">濂楃鍒囨崲</el-button> -->
+ <el-button
+ size="small"
+ type="primary"
+ @click="
+ sampleVisible = true;
+ uploadSample();
+ "
+ >鏍峰搧鍒囨崲</el-button
+ >
+ <el-button size="small" type="primary" @click="taskVisible = true"
+ >浠诲姟鍒囨崲</el-button
+ >
+ <el-button
+ size="small"
+ type="primary"
+ @click="addVerifyDia = true"
+ v-if="state == 1"
+ :loading="submitLoading"
+ >鎻愪氦</el-button
+ >
+ <!-- 澶嶆牳 -->
+ <el-button
+ size="medium"
+ type="primary"
+ @click="upInsReview(1)"
+ :loading="reviewLoading"
+ v-if="state > 1"
+ >閫氳繃</el-button
+ >
+ <el-button size="medium" @click="upInsReview(0)" v-if="state > 1"
+ >涓嶉�氳繃</el-button
+ >
+ <el-button size="small" @click="$emit('goback')">杩斿洖</el-button>
+ </el-col>
+ </el-row>
+ <div class="search">
+ <el-form
+ :inline="true"
+ :model="searchForm"
+ class="form-inline"
+ label-width="100px"
+ label-position="right"
+ >
+ <el-form-item label="濮旀墭缂栧彿:">
+ <el-input
+ clearable
+ v-model="insOrder.entrustCode"
+ disabled
+ size="small"
+ placeholder="璇疯緭鍏�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鏍峰搧缂栧彿:">
+ <el-tooltip
+ :disabled="!currentSample.sampleCode"
+ :content="currentSample.sampleCode"
+ >
+ <el-input
+ clearable
+ v-model="currentSample.sampleCode"
+ disabled
+ size="small"
+ placeholder="璇疯緭鍏�"
+ ></el-input>
+ </el-tooltip>
+ </el-form-item>
+ <el-form-item label="鏍峰搧鍚嶇О:">
+ <el-input
+ clearable
+ v-model="currentSample.sample"
+ disabled
+ size="small"
+ placeholder="璇疯緭鍏�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鏍峰搧鏁伴噺:">
+ <el-input
+ clearable
+ v-model="fileterSampleProducts.length"
+ disabled
+ size="small"
+ placeholder="璇疯緭鍏�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="涓嬪彂鏃堕棿:">
+ <el-input
+ clearable
+ v-model="insOrder.sendTime"
+ disabled
+ size="small"
+ placeholder="璇疯緭鍏�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="绱ф�ョ▼搴�:">
+ <el-input
+ clearable
+ v-model="insOrder.typeName"
+ disabled
+ size="small"
+ placeholder="璇疯緭鍏�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="绾﹀畾鏃堕棿:">
+ <el-input
+ clearable
+ v-model="insOrder.appointed"
+ disabled
+ size="small"
+ placeholder="璇疯緭鍏�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="褰撳墠鏍峰搧浣嶆暟:">
+ <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>
+ </el-form-item>
+ <el-form-item label="澶囨敞:">
+ <span style="color: red">{{
+ insOrder.remark ? insOrder.remark : "-"
+ }}</span>
+ <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> -->
+ </el-form-item>
+ </el-form>
+ </div>
+ <div class="center">
+ <div
+ class="search"
+ style="
+ text-align: left;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ "
+ >
+ <div style="display: flex; align-items: center">
+ <span v-if="tableList.length > 0">妫�楠屾ā鏉匡細</span>
+ <el-radio-group v-model="currentTable" size="small">
+ <el-radio-button
+ :label="item.templateId"
+ v-for="(item, index) in tableLists"
+ :key="index"
+ size="small"
+ >{{ item.templateName }}</el-radio-button
+ >
+ </el-radio-group>
+ </div>
+ <div style="display: flex; align-items: center">
+ <span
+ v-if="
+ casing.length > 0 &&
+ tableLists.find((m) => m.templateId == currentTable) &&
+ (tableLists.find((m) => m.templateId == currentTable)
+ .templateName == '鎴愬搧缂嗘楠屽師濮嬭褰�' ||
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName == '浜屾琚鏉愭枡妫�楠屽師濮嬭褰�')
+ "
+ > 濂楃锛�</span
+ >
+ <el-select
+ v-model="currentTab"
+ placeholder="璇烽�夋嫨"
+ clearable
+ @clear="handleChangeSample({ id: currentSample.id })"
+ @change="(m) => handleChange(m, 3)"
+ v-if="
+ casing.length > 0 &&
+ tableLists.find((m) => m.templateId == currentTable) &&
+ (tableLists.find((m) => m.templateId == currentTable)
+ .templateName == '鎴愬搧缂嗘楠屽師濮嬭褰�' ||
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName == '浜屾琚鏉愭枡妫�楠屽師濮嬭褰�')
+ "
+ size="small"
+ :loading="getReportModelLoading"
+ @focus="getReportModel(currentSample.id)"
+ >
+ <el-option
+ v-for="item in casing"
+ :key="item.id"
+ :label="item.color"
+ :value="item.id"
+ >
+ <span style="float: left">{{ item.color }}</span>
+ <el-tag
+ :type="
+ item.state == 1
+ ? 'success'
+ : item.state == 2
+ ? 'warning'
+ : 'danger'
+ "
+ style="float: right; margin-top: 5px"
+ size="small"
+ >
+ {{
+ item.state == 1 ? "宸叉" : item.state == 2 ? "鍦ㄦ" : "鏈"
+ }}
+ </el-tag>
+ </el-option>
+ </el-select>
+
+ <!-- 璇ュ厜绾ゅ甫鐢ㄤ簬鍏夌氦甯︿笅鏈夐」鐩厤缃殑鎯呭喌 -->
+ <span
+ v-if="
+ fibers.filter((f) => f.isExistProduct).length > 0 &&
+ fibers.length > 0 &&
+ tableLists.find((m) => m.templateId == currentTable) &&
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鍏夌氦')
+ "
+ > 鍏夌氦甯︼細</span
+ >
+ <el-select
+ v-model="currentTab"
+ placeholder="璇烽�夋嫨"
+ clearable
+ @clear="handleChangeSample({ id: currentSample.id })"
+ @change="(m) => handleChange(m, 1)"
+ v-if="
+ fibers.filter((f) => f.isExistProduct).length > 0 &&
+ fibers.length > 0 &&
+ tableLists.find((m) => m.templateId == currentTable) &&
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鍏夌氦')
+ "
+ size="small"
+ :loading="getReportModelLoading"
+ @focus="getReportModel(currentSample.id)"
+ >
+ <el-option
+ v-for="item in fibers"
+ :key="item.value"
+ :label="item.bushingColor + '-' + item.code"
+ :value="item.id"
+ >
+ <span style="float: left">{{
+ item.bushingColor + "-" + item.code
+ }}</span>
+ <el-tag
+ :type="
+ item.state == 1
+ ? 'success'
+ : item.state == 2
+ ? 'warning'
+ : 'danger'
+ "
+ style="float: right; margin-top: 5px"
+ size="small"
+ >
+ {{
+ item.state == 1 ? "宸叉" : item.state == 2 ? "鍦ㄦ" : "鏈"
+ }}
+ </el-tag>
+ </el-option>
+ </el-select>
+
+ <!-- 璇ュ厜绾ゅ甫鐢ㄤ簬鍏夌氦甯︽棤椤圭洰锛屼笅闈㈡湁鍏夌氦閰嶇疆鐨勬儏鍐� -->
+ <span
+ v-if="
+ fibers.filter((f) => f.isExistProduct).length === 0 &&
+ fibers.length > 0 &&
+ tableLists.find((m) => m.templateId == currentTable) &&
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鍏夌氦')
+ "
+ > 鍏夌氦甯︼細</span
+ >
+ <el-select
+ v-model="insFibersId"
+ placeholder="璇烽�夋嫨"
+ disabled
+ v-if="
+ fibers.filter((f) => f.isExistProduct).length === 0 &&
+ fibers.length > 0 &&
+ tableLists.find((m) => m.templateId == currentTable) &&
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鍏夌氦')
+ "
+ size="small"
+ >
+ <el-option
+ v-for="item in fibers"
+ :key="item.value"
+ :label="item.bushingColor + '-' + item.code"
+ :value="item.id"
+ >
+ <span style="float: left">{{
+ item.bushingColor + "-" + item.code
+ }}</span>
+ <el-tag
+ :type="
+ item.state == 1
+ ? 'success'
+ : item.state == 2
+ ? 'warning'
+ : 'danger'
+ "
+ style="float: right; margin-top: 5px"
+ size="small"
+ >
+ {{
+ item.state == 1 ? "宸叉" : item.state == 2 ? "鍦ㄦ" : "鏈"
+ }}
+ </el-tag>
+ </el-option>
+ </el-select>
+ <span
+ v-if="
+ fiber.length > 0 &&
+ tableLists.find((m) => m.templateId == currentTable) &&
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鍏夌氦')
+ "
+ > 鍏夌氦锛�</span
+ >
+ <el-select
+ v-model="currentTab"
+ placeholder="璇烽�夋嫨"
+ clearable
+ @clear="handleChangeSample({ id: currentSample.id })"
+ @change="(m) => handleChange(m, 2)"
+ v-if="
+ fiber.length > 0 &&
+ tableLists.find((m) => m.templateId == currentTable) &&
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鍏夌氦')
+ "
+ size="small"
+ :loading="getReportModelLoading"
+ @focus="getReportModel(currentSample.id)"
+ >
+ <el-option
+ v-for="item in fiber"
+ :label="item.bushColor + '-' + item.color"
+ :key="item.id"
+ :value="item.id"
+ >
+ <span style="float: left">{{
+ item.bushColor + "-" + item.color
+ }}</span>
+ <el-tag
+ :type="
+ item.state == 1
+ ? 'success'
+ : item.state == 2
+ ? 'warning'
+ : 'danger'
+ "
+ style="float: right; margin-top: 5px"
+ size="small"
+ >
+ {{
+ item.state == 1 ? "宸叉" : item.state == 2 ? "鍦ㄦ" : "鏈"
+ }}
+ </el-tag>
+ </el-option>
+ </el-select>
+ <el-form
+ :inline="true"
+ :model="otherForm"
+ class="form-inline"
+ label-width="50px"
+ style="padding-top: 0; padding-left: 10px"
+ v-if="PROJECT == '妫�娴嬩腑蹇�'"
+ >
+ <el-form-item label="娓╁害:" style="margin-bottom: 0">
+ <el-input
+ v-model="otherForm.temperature"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="width: 90px"
+ @change="(m) => subOtherForm(m, 'temperature')"
+ ></el-input>
+ <span style="margin-left: 4px">鈩�</span>
+ </el-form-item>
+ <el-form-item label="婀垮害:" style="margin-bottom: 0">
+ <el-input
+ v-model="otherForm.humidity"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="width: 90px"
+ @change="(m) => subOtherForm(m, 'humidity')"
+ ></el-input>
+ <span style="margin-left: 4px">%</span>
+ </el-form-item>
+ </el-form>
+ <el-button
+ type="primary"
+ size="small"
+ v-if="
+ (isGet ||
+ (tableLists.find((m) => m.templateId == currentTable) &&
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName == '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+ temDataAcquisition)) &&
+ PROJECT == '妫�娴嬩腑蹇�' &&
+ state == 1
+ "
+ @click="getDataAcquisitionDevice"
+ :loading="dataAcquisitionLoading"
+ >鏁版嵁閲囬泦</el-button
+ >
+ <el-button
+ :type="dataAcquisitionEidtAble ? '' : 'primary'"
+ size="small"
+ v-if="
+ isGet ||
+ isEdit ||
+ (tableLists.find((m) => m.templateId == currentTable) &&
+ tableLists.find((m) => m.templateId == currentTable)
+ .templateName == '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+ PROJECT == '妫�娴嬩腑蹇�' &&
+ collected &&
+ state == 1)
+ "
+ @click="dataAcquisitionEidtAble = !dataAcquisitionEidtAble"
+ >{{ dataAcquisitionEidtAble ? "鍏抽棴缂栬緫" : "缂栬緫鏁伴噰" }}</el-button
+ >
+ </div>
+ </div>
+ <!-- 甯歌妫�楠屽師濮嬭褰� -->
+ <div
+ class="center-box"
+ id="nav"
+ v-loading="tableLoading"
+ v-if="
+ !tableLists.find((m) => m.templateId == currentTable) ||
+ (tableLists.find((m) => m.templateId == currentTable).templateName !=
+ '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+ !tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鐑惊鐜�') &&
+ !tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('娓╁崌璇曢獙') &&
+ !tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('寮у瀭鐗规�ф楠屽師濮嬭褰�') &&
+ !tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鍗曟牴鍨傜洿鐕冪儳') &&
+ !tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鏋剁┖鍦扮嚎搴斿姏搴斿彉') &&
+ !tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('闃叉尟閿ゅ姛鐜囩壒鎬�') &&
+ !tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鐤插姵璇曢獙妫�楠屽師濮嬭褰�'))
+ "
+ >
+ <table
+ border="1"
+ class="tables"
+ cellpadding="10"
+ v-for="(item, index) in tableList"
+ :key="index + currentTable + currentSample.id"
+ >
+ <tbody>
+ <tr v-for="(m, i) in item.arr" :key="i">
+ <td
+ :id="item.templateId + '-' + n.i + '-' + n.r + '-' + n.c"
+ v-for="(n, j) in m"
+ :key="j"
+ v-if="n.v.mc == undefined || Object.keys(n.v.mc).length === 4"
+ :colspan="n.v.mc && n.v.mc.cs ? n.v.mc.cs : 1"
+ :rowspan="n.v.mc && n.v.mc.rs ? n.v.mc.rs : 1"
+ :style="`background:${n.v.bg ? 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;`"
+ >
+ <template
+ v-if="
+ n.v.ps != undefined &&
+ typeof n.v.ps.value === 'string' &&
+ n.v.ps.value.includes('妫�楠屽��') &&
+ state == 1
+ "
+ >
+ <el-input
+ v-if="getInspectionValueType(n.i) == 1"
+ class="table_input"
+ v-model="n.v.v"
+ :disabled="
+ (getInspectionItemType(n.i) == 1 &&
+ !dataAcquisitionEidtAble) ||
+ (n.u != userId && n.u != undefined && n.u != '')
+ "
+ @input="handleInput(n)"
+ @change="
+ (m) =>
+ changeInput(
+ m,
+ `${item.templateId}-${n.r}-${n.c}-${n.i}`,
+ n,
+ 'getDataType'
+ )
+ "
+ @mousewheel.native.prevent
+ :key="'abc-' + '000' + index + '000' + i + '000' + j"
+ @keydown.enter="
+ changeInput(
+ '',
+ `${item.templateId}-${n.r}-${n.c}-${n.i}`,
+ n,
+ 'getDataType'
+ )
+ "
+ >
+ <!-- <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>
+ <el-input
+ v-else-if="getInspectionValueType(n.i) == 2"
+ class="table_input"
+ type="textarea"
+ 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}`,
+ n,
+ 'getDataType'
+ )
+ "
+ />
+ <el-select
+ v-else-if="getInspectionValueType(n.i) == 5"
+ class="table_input"
+ v-model="n.v.v"
+ :disabled="
+ state > 1 ||
+ getInspectionItemType(n.i) == 1 ||
+ (n.u != userId && n.u != undefined && n.u != '')
+ "
+ @visible-change="(e) => getDic(e, n.i)"
+ @change="
+ (m) =>
+ changeInput(
+ m,
+ `${item.templateId}-${n.r}-${n.c}-${n.i}`,
+ n,
+ 'getDataType'
+ )
+ "
+ >
+ <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;`"
+ 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 &&
+ PROJECT == '瑁呭鐢电紗'
+ "
+ class="table_input"
+ v-model="n.v.v"
+ @change="saveInsContext(n.i)"
+ >
+ <el-option label="鍚堟牸" :value="1"></el-option>
+ <el-option label="涓嶅悎鏍�" :value="0"></el-option>
+ </el-select>
+ <template
+ v-if="
+ PROJECT == '妫�娴嬩腑蹇�' ||
+ (PROJECT == '瑁呭鐢电紗' &&
+ getInspectionValueType(n.i) != 2)
+ "
+ >
+ <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-if="n.v.v === 3"
+ :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`"
+ >涓嶅垽瀹�</span
+ >
+ <span v-else :style="`font-family:${n.v.ff} !important;`"
+ >寰呭畾</span
+ >
+ </template>
+ </template>
+ <template
+ v-else-if="
+ n.v.ps != undefined &&
+ n.v.ps.value === '璁惧缂栫爜' &&
+ state == 1
+ "
+ >
+ <el-select
+ v-model="n.v.v"
+ placeholder="璁惧"
+ :disabled="n.u != userId && n.u != undefined && n.u != ''"
+ class="table_input"
+ @visible-change="(e) => getEquipOptions(e, n.i)"
+ remote
+ @change="(val) => changeEquip(val, n)"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </template>
+ <template
+ v-else-if="
+ n.v.ps != undefined &&
+ n.v.ps.value === '璁惧鍚嶇О' &&
+ state == 1
+ "
+ >
+ <span>{{ n.v.v }}</span>
+ </template>
+ <template
+ v-else-if="
+ n.v.ps != undefined &&
+ n.v.ps.value === '瑕佹眰鍊�' &&
+ state == 1
+ "
+ >
+ <span :style="`font-family:${n.v.ff} !important;`">{{
+ getTell(n.i)
+ }}</span>
+ </template>
+ <template
+ v-else-if="
+ n.v.ps != undefined &&
+ n.v.ps.value === '璁$畻鍊�' &&
+ state == 1
+ "
+ ><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 === '鏈�缁堝��' &&
+ state == 1
+ "
+ >
+ <!-- <el-input class="table_input" type="textarea"
+ :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
+ v-model="n.v.v" @change="saveInsContext()" v-if="getInspectionValueType(n.i) == 2"></el-input>
+ <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v"
+ :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;`">{{
+ 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;
+ 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 &&
+ currentSample.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;`"
+ v-html="getValue(n.v)"
+ ></span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <!-- 寮у瀭鐗规�ф楠屽師濮嬭褰� -->
+ <div
+ v-loading="tableLoading"
+ v-else-if="
+ tableLists.find((m) => m.templateId == currentTable).templateName ==
+ '寮у瀭鐗规�ф楠屽師濮嬭褰�'
+ "
+ >
+ <el-divider></el-divider>
+ <h4
+ style="
+ margin-bottom: 20px;
+ font-size: 24px;
+ font-weight: 400;
+ text-align: center;
+ "
+ >
+ 寮у瀭鐗规�ф楠屽師濮嬭褰�
+ </h4>
+ <el-form
+ :inline="true"
+ :model="sagForm"
+ class="form-inline"
+ label-width="120px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <el-form-item label="鏍峰搧鍨嬪彿" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="sagForm.model"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠屼緷鎹�" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="sagForm.methodName"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <!-- <el-form-item label="璁惧鍚嶇О" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="equipForm.value0"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item> -->
+ <el-form-item label="璁惧鍚嶇О" style="margin-bottom: 0">
+ <el-select
+ ref="sag"
+ multiple
+ collapse-tags
+ style="margin-left: 20px; width: 280px"
+ v-model="equipForm.value0"
+ size="small"
+ @change="blockModifications('sag')"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.label"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璁惧缂栧彿" style="margin-bottom: 0">
+ <el-select
+ multiple
+ collapse-tags
+ style="margin-left: 20px; width: 280px"
+ v-model="equipForm.code0"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="棰濆畾鎷夋柇鍔�/kN" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="sagForm.tensileForce"
+ size="small"
+ placeholder="璇疯緭鍏�"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('棰濆畾鎷夋柇鍔�', m)"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="璺ㄨ窛闀垮害/m" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="sagForm.spanLength"
+ size="small"
+ placeholder="璇疯緭鍏�"
+ @change="(m) => saveSageInfo('璺ㄨ窛闀垮害', m)"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="杞借嵎/kN" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="sagForm.load"
+ size="small"
+ placeholder="璇疯緭鍏�"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('杞借嵎', m)"
+ ></el-input>
+ <!-- <el-select-->
+ <!-- v-model="sagForm.load"-->
+ <!-- :disabled="state > 1"-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- size="small"-->
+ <!-- @change="(m) => saveSageInfo('杞借嵎', m)"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in loadList"-->
+ <!-- :key="item.label"-->
+ <!-- :label="item.value"-->
+ <!-- :value="item.label"-->
+ <!-- >-->
+ <!-- </el-option>-->
+ <!-- </el-select>-->
+ </el-form-item>
+ </el-form>
+ <el-divider></el-divider>
+ <div class="container">
+ <el-button
+ class="right-button"
+ type="primary"
+ size="small"
+ @click="addSag"
+ >娣� 鍔�</el-button
+ >
+ </div>
+ <el-table
+ :data="sagData"
+ class="custom-table"
+ border
+ style="margin-bottom: 20px"
+ >
+ <!-- <el-table-column label="楂樺害 h mm" prop="height" align="center">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.height" style="width: 100%;" size="small" @change="m=>saveSageInfo('楂樺害','height')"></el-input>
+ </template>
+ </el-table-column> -->
+ <el-table-column label="寮у瀭 mm" prop="sag" align="center">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.sag"
+ size="small"
+ style="width: 100%"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('寮у瀭', 'sag')"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="瀵肩嚎娓╁害鈩�" align="center">
+ <el-table-column label="1" prop="value0" align="center">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.value0"
+ style="width: 100%"
+ size="small"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="2" prop="value1" align="center">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.value1"
+ style="width: 100%"
+ size="small"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="3" prop="value2" align="center">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.value2"
+ style="width: 100%"
+ size="small"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="4" prop="value3" align="center">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.value3"
+ style="width: 100%"
+ size="small"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="5" prop="value4" align="center">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.value4"
+ style="width: 100%"
+ size="small"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="6" prop="value5" align="center">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.value5"
+ style="width: 100%"
+ size="small"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+ ></el-input>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="骞冲潎娓╁害鈩�" prop="average" align="center">
+ </el-table-column>
+ <el-table-column label="瀹ゆ俯鈩�" prop="temperature" align="center">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.temperature"
+ style="width: 100%"
+ size="small"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('瀹ゆ俯', 'temperature')"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="寮犲姏kN" prop="remark" align="center">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.remark"
+ style="width: 100%"
+ size="small"
+ :disabled="state > 1"
+ @change="(m) => saveSageInfo('寮犲姏', 'remark')"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" align="center">
+ <template slot-scope="scope">
+ <el-button
+ type="text"
+ size="small"
+ @click="deleteSag(scope.$index)"
+ ><span style="color: red">鍒犻櫎</span></el-button
+ >
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!-- 娓╁害寰幆妫�楠屽師濮嬭褰� -->
+ <div
+ v-loading="tableLoading"
+ v-else-if="
+ tableLists.find((m) => m.templateId == currentTable).templateName ==
+ '娓╁害寰幆妫�楠屽師濮嬭褰�'
+ "
+ >
+ <el-divider></el-divider>
+ <h4
+ style="
+ margin-bottom: 20px;
+ font-size: 24px;
+ font-weight: 400;
+ text-align: center;
+ "
+ >
+ 娓╁害寰幆妫�楠屽師濮嬭褰�
+ </h4>
+ <el-form
+ :inline="true"
+ :model="wareForm"
+ class="form-inline"
+ label-width="100px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="wareForm0.model"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="wareForm0.methodName"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <!-- <el-form-item label="妫�娴嬩緷鎹�:" style="margin-bottom: 0;">
+ <el-input clearable v-model="wareForm0.sample" disabled size="small" placeholder=""></el-input>
+ </el-form-item> -->
+ <el-form-item label="寰幆娆℃暟:" style="margin-bottom: 0">
+ <el-select
+ v-model="wareForm.inspectionItem"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ @change="(m) => wareFormChange(m, 'inspectionItem')"
+ >
+ <el-option
+ v-for="item in numOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="娓╁害:" style="margin-bottom: 0">
+ <el-select
+ v-model="wareForm.inspectionItemSubclass"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ @change="(m) => wareFormChange(m, 'inspectionItemSubclass')"
+ >
+ <el-option
+ v-for="item in temperatureOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ <span style="margin-left: 4px">鈩�</span>
+ </el-form-item>
+ </el-form>
+ <el-divider></el-divider>
+ <el-form
+ :inline="true"
+ :model="equipForm"
+ label-width="100px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <el-form-item label="浠櫒鍚嶇О:">
+ <el-input
+ clearable
+ v-model="equipForm.value0"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="浠櫒缂栧彿:">
+ <el-select
+ v-model="equipForm.code0"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="浠櫒鍚嶇О:">
+ <el-input
+ clearable
+ v-model="equipForm.value1"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="浠櫒缂栧彿:">
+ <el-select
+ v-model="equipForm.code1"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-form>
+ <el-table
+ :data="wareTableData"
+ ref="wareTableData"
+ border
+ v-loading="wareTableDataLoading"
+ style="width: 100%; margin-bottom: 30px"
+ align="center"
+ v-if="
+ (wareForm.inspectionItemSubclass != '20(甯告俯)' &&
+ wareForm.inspectionItemSubclass != '20') ||
+ (wareForm.inspectionItemSubclass == '20(甯告俯)' &&
+ wareForm.inspectionItem == 1) ||
+ (wareForm.inspectionItemSubclass == '20' &&
+ wareForm.inspectionItem == numOptions.length)
+ "
+ >
+ <el-table-column label="搴忓彿" type="index" width="59" align="center">
+ </el-table-column>
+ <el-table-column
+ prop="bushColor"
+ label="绠¤壊鏍�"
+ width="75"
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="code"
+ label="鍏夌氦甯︾紪鍙�"
+ width="105"
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="color"
+ label="鍏夌氦鑹叉爣"
+ align="center"
+ width="90"
+ >
+ </el-table-column>
+ <template v-for="(item, index) in wareLength">
+ <el-table-column
+ prop="value0"
+ label="澶栫"
+ align="center"
+ width="100"
+ :key="new Date().getTime() + '1234567'"
+ >
+ <template slot="header">
+ {{ "澶栫" + (index + 1) }}
+ </template>
+ <template slot-scope="scope">
+ <el-input
+ size="small"
+ v-model="scope.row.arr[index].value0"
+ placeholder=""
+ :disabled="state > 1 || !dataAcquisitionEidtAble"
+ @change="(m) => changeItem(scope.row.arr[index])"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="value1"
+ label="鍐呯"
+ align="center"
+ width="100"
+ :key="new Date().getTime() + '23333333'"
+ >
+ <template slot="header">
+ {{ "鍐呯" + (index + 1) }}
+ </template>
+ <template slot-scope="scope">
+ <el-input
+ size="small"
+ :disabled="state > 1 || !dataAcquisitionEidtAble"
+ v-model="scope.row.arr[index].value1"
+ placeholder=""
+ @change="(m) => changeItem(scope.row.arr[index])"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="comValue"
+ align="center"
+ min-width="150"
+ :key="new Date().getTime() + '364654654'"
+ >
+ <template slot="header">
+ {{ "琛板噺绯绘暟" + item }}
+ </template>
+ <template slot-scope="scope">
+ <span>{{ scope.row.arr[index].comValue }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="resValue"
+ label="琛板噺宸�"
+ align="center"
+ v-if="wareForm.inspectionItemSubclass != '20(甯告俯)'"
+ min-width="90"
+ :key="new Date().getTime() + '434634634634'"
+ >
+ <template slot="header">
+ {{ "琛板噺宸�" + (index + 1) }}
+ </template>
+ <template slot-scope="scope">
+ <span>{{ scope.row.arr[index].resValue }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="insResult"
+ label="缁撹"
+ align="center"
+ min-width="70"
+ v-if="wareForm.inspectionItemSubclass != '20(甯告俯)'"
+ :key="new Date().getTime() + '53457689809808-'"
+ >
+ <template slot="header">
+ {{ "缁撹" + (index + 1) }}
+ </template>
+ <template slot-scope="scope">
+ <span
+ v-if="scope.row.arr[index].insResult === 1"
+ style="color: green"
+ >鍚堟牸</span
+ >
+ <span
+ v-else-if="scope.row.arr[index].insResult === 0"
+ style="color: red"
+ >涓嶅悎鏍�</span
+ >
+ <span
+ v-else-if="scope.row.arr[index].insResult === 3"
+ style="color: #3a7bfa"
+ >涓嶅垽瀹�</span
+ >
+ <span v-else>寰呭畾</span>
+ </template>
+ </el-table-column>
+ </template>
+ </el-table>
+ </div>
+ <!-- 鐑惊鐜�/娓╁崌璇曢獙妫�楠屽師濮嬭褰� -->
+ <div
+ v-loading="tableLoading"
+ v-else-if="
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鐑惊鐜�') ||
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('娓╁崌璇曢獙')
+ "
+ >
+ <el-divider></el-divider>
+ <h4
+ style="
+ margin-bottom: 20px;
+ font-size: 24px;
+ font-weight: 400;
+ text-align: center;
+ "
+ >
+ {{
+ tableLists.find((m) => m.templateId == currentTable).templateName
+ }}
+ </h4>
+ <el-form
+ :inline="true"
+ :model="wareForm"
+ class="form-inline"
+ label-width="100px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="equipForm.value0"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item> -->
+ <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+ <el-select
+ ref="thermalCycle"
+ multiple
+ collapse-tags
+ style="margin-left: 20px; width: 280px"
+ v-model="equipForm.value0"
+ size="small"
+ @change="blockModifications('thermalCycle')"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.label"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+
+ <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="equipForm.value1"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item> -->
+ <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="thermalCyclingInfo.model"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+ <el-input
+ clearable
+ v-model="thermalCyclingInfo.methodName"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ </el-form>
+ <el-divider></el-divider>
+ <el-form
+ :inline="true"
+ :model="equipForm"
+ label-width="100px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <el-form-item label="浠櫒缂栧彿:">
+ <el-select
+ multiple
+ collapse-tags
+ style="margin-left: 20px; width: 280px"
+ v-model="equipForm.code0"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <!-- <el-form-item label="浠櫒缂栧彿:">
+ <el-select
+ multiple
+ v-model="equipForm.code1"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item> -->
+ <!-- <el-form-item-->
+ <!-- label="寰幆娆℃暟:"-->
+ <!-- v-if="thermalCyclingInfo.inspectionItemClass == '鐩存祦鐢甸樆'"-->
+ <!-- >-->
+ <!-- <el-input-number-->
+ <!-- v-model="thermalCyclingInfo.inspectionItem"-->
+ <!-- :min="1"-->
+ <!-- :max="thermalCyclingInfo.max"-->
+ <!-- label=""-->
+ <!-- style="margin-top: 4px; width: 190px"-->
+ <!-- size="small"-->
+ <!-- @change="thermalCyclingChange"-->
+ <!-- ></el-input-number>-->
+ <!-- </el-form-item>-->
+ <el-button
+ type="primary"
+ size="small"
+ style="margin-bottom: 22px; margin-left: 30px"
+ @click="handleAddThermal"
+ v-if="state == 1"
+ >鏂板</el-button
+ >
+ <el-button
+ size="small"
+ style="margin-bottom: 22px"
+ @click="handleDeleteThermal"
+ v-if="state == 1"
+ >鍒犻櫎</el-button
+ >
+ </el-form>
+ <div class="table-container" v-loading="thermalCyclingLoading">
+ <table border="1" cellpadding="10" class="thermal-table">
+ <tr>
+ <td>妫�楠岄」鐩�</td>
+ <td :colspan="thermalCyclingInfo.length">妫�楠岃繃绋嬪��</td>
+ <td style="width: 100px">缁撹</td>
+ </tr>
+ <tr>
+ <td>搴忓彿</td>
+ <td
+ v-for="(m, i) in thermalCyclingInfo.length"
+ :key="i"
+ style="min-width: 150px"
+ >
+ {{ i + 1 }}
+ </td>
+ </tr>
+ <tr v-for="(item, index) in thermalCyclingInfo.arr" :key="index">
+ <td style="width: 100px; text-align: center">{{ item.name }}</td>
+ <td
+ v-for="(m, i) in thermalCyclingInfo.length"
+ :key="i"
+ style="min-width: 150px"
+ >
+ <div
+ style="display: flex; align-items: center; margin-bottom: 5px"
+ >
+ <label
+ style="width: 100px; white-space: nowrap; font-size: 12px"
+ >娓╁害:</label
+ >
+ <el-input
+ clearable
+ size="small"
+ placeholder=""
+ v-model="item.arr[i].value0"
+ :disabled="state > 1"
+ @change="(m) => saveThermalCycling(m, item, 'value0')"
+ ></el-input>
+ <span
+ style="
+ font-size: 12px;
+ margin-left: 13px;
+ margin-right: 13px;
+ "
+ >
+ 鈩�</span
+ >
+ </div>
+ <div
+ style="display: flex; align-items: center"
+ v-if="
+ item.name != '鐜娓╁害' &&
+ thermalCyclingInfo.inspectionItemClass == '鐩存祦鐢甸樆'
+ "
+ >
+ <label
+ style="width: 100px; white-space: nowrap; font-size: 12px"
+ >鐩存祦鐢甸樆:</label
+ >
+ <el-input
+ clearable
+ size="small"
+ :disabled="state > 1"
+ placeholder=""
+ v-model="item.arr[i].value1"
+ @change="saveThermalCycling(null, item, null)"
+ ></el-input>
+ <span style="margin-left: 5px; font-size: 12px"> 惟/km</span>
+ </div>
+ </td>
+ <td>
+ <template
+ v-if="item.name == '鐜娓╁害' || item.name == '瀵肩嚎娓╁害'"
+ >
+ <span>/</span>
+ </template>
+ <template v-else>
+ <span v-if="item.insResult === 1" style="color: green"
+ >鍚堟牸</span
+ >
+ <span v-else-if="item.insResult === 0" style="color: red"
+ >涓嶅悎鏍�</span
+ >
+ <span v-else-if="item.insResult === 3" style="color: #3a7bfa"
+ >涓嶅垽瀹�</span
+ >
+ <span v-else>寰呭畾</span>
+ </template>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <!-- 鍗曟牴鍨傜洿鐕冪儳妫�楠屽師濮嬭褰� -->
+ <div
+ v-loading="tableLoading"
+ v-else-if="
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鍗曟牴鍨傜洿鐕冪儳')
+ "
+ >
+ <el-divider></el-divider>
+ <h4
+ style="
+ margin-bottom: 20px;
+ font-size: 24px;
+ font-weight: 400;
+ text-align: center;
+ "
+ >
+ {{
+ tableLists.find((m) => m.templateId == currentTable).templateName
+ }}
+ </h4>
+ <el-form
+ :inline="true"
+ :model="wareForm"
+ class="form-inline"
+ label-width="100px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+ <el-input
+ v-model="equipForm.value0"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <!-- <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+ <el-select
+ ref="combustion"
+ multiple
+ collapse-tags
+ style="margin-left: 20px;width: 280px"
+ v-model="equipForm.value0"
+ size="small"
+ @change="blockModifications('combustion')"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.label"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item> -->
+ <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+ <el-input
+ v-model="equipForm.value1"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+ <el-input
+ v-model="singleRootVerticalInfo.model"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+ <el-input
+ v-model="singleRootVerticalInfo.methodName"
+ disabled
+ size="small"
+ placeholder=""
+ ></el-input>
+ </el-form-item>
+ </el-form>
+ <el-divider></el-divider>
+ <el-form
+ :inline="true"
+ :model="equipForm"
+ label-width="100px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <!-- <el-form-item label="浠櫒缂栧彿:">
+ <el-select
+ multiple
+ collapse-tags
+ style="margin-left: 20px;width: 280px"
+ v-model="equipForm.code0"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item> -->
+ <el-form-item label="浠櫒缂栧彿:">
+ <el-select
+ v-model="equipForm.code0"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="浠櫒缂栧彿:">
+ <el-select
+ v-model="equipForm.code1"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-form>
+ <table
+ border="1"
+ cellpadding="10"
+ class="thermal-table"
+ style="margin-bottom: 16px"
+ >
+ <tr>
+ <td>妫�楠岄」鐩�</td>
+ <td>鍗曚綅</td>
+ <td>鏍囧噯瑕佹眰</td>
+ <td :colspan="singleRootVerticalInfo.num">妫�楠岃繃绋嬪��</td>
+ <td>妫�楠岀粨鏋�</td>
+ <td>缁撹</td>
+ </tr>
+ <tr v-for="(item, index) in singleRootVerticalInfo.arr" :key="index">
+ <td>{{ item.inspectionItemSubclass }}</td>
+ <td>{{ item.unit }}</td>
+ <td>{{ item.ask }}</td>
+ <td v-for="(m, i) in singleRootVerticalInfo.num">
+ <el-input
+ clearable
+ size="small"
+ placeholder=""
+ v-model="item.value[i]"
+ :disabled="state > 1"
+ @change="(value) => changeSingleRootVertical(value, item)"
+ ></el-input>
+ </td>
+ <td>{{ item.resValue }}</td>
+ <td>
+ <template>
+ <span v-if="item.insResult === 1" style="color: green"
+ >鍚堟牸</span
+ >
+ <span v-else-if="item.insResult === 0" style="color: red"
+ >涓嶅悎鏍�</span
+ >
+ <span v-else-if="item.insResult === 3" style="color: #3a7bfa"
+ >涓嶅垽瀹�</span
+ >
+ <span v-else>寰呭畾</span>
+ </template>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <!-- 鏋剁┖鍦扮嚎搴斿姏搴斿彉 -->
+ <div
+ v-loading="tableLoading"
+ v-else-if="
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('鏋剁┖鍦扮嚎搴斿姏搴斿彉')
+ "
+ >
+ <el-divider></el-divider>
+ <el-form
+ :inline="true"
+ :model="stressStrainInfo"
+ class="form-inline"
+ label-width="80px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <el-row style="width: 100%">
+ <el-col :span="5">
+ <el-form-item label="浠櫒缂栧彿:" style="margin-bottom: 0">
+ <el-select
+ multiple
+ collapse-tags
+ style="margin-left: 20px; width: 200px"
+ v-model="equipForm.code0"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+ <el-input
+ v-model="equipForm.value0"
+ disabled
+ size="small"
+ placeholder=""
+ style="width: 170px"
+ ></el-input>
+ </el-form-item> -->
+ <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+ <el-select
+ ref="stressStrain"
+ multiple
+ collapse-tags
+ style="margin-left: 20px; width: 200px"
+ v-model="equipForm.value0"
+ size="small"
+ @change="blockModifications('stressStrain')"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.label"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+ <el-input
+ v-model="stressStrainInfo.model"
+ disabled
+ size="small"
+ placeholder=""
+ style="width: 170px"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+ <el-input
+ v-model="stressStrainInfo.methodS"
+ disabled
+ size="small"
+ placeholder=""
+ style="width: 170px"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item label="" style="margin-bottom: 0"
+ ><el-button
+ size="small"
+ type="primary"
+ style="margin-left: 40px"
+ @click="addStressStrain"
+ :disabled="state > 1"
+ >娣� 鍔�</el-button
+ ><el-button
+ size="small"
+ type="primary"
+ style="margin-left: 10px"
+ @click="saveStressStrain"
+ :disabled="state > 1"
+ >淇� 瀛�</el-button
+ ></el-form-item
+ >
+ </el-col>
+ </el-row>
+ </el-form>
+ <table
+ style="border-collapse: collapse"
+ border="1"
+ cellpadding="10"
+ class="thermal-table"
+ >
+ <tbody>
+ <tr style="background-color: #f0f1f5">
+ <td id="lineTd" style="background-color: #f0f1f5">
+ <span
+ style="
+ float: left;
+ margin-top: 20px;
+ background-color: #f0f1f5;
+ "
+ >鍔涘��</span
+ >
+ <span
+ style="
+ float: right;
+ margin-top: 0px;
+ background-color: #f0f1f5;
+ "
+ >浣嶇Щ(mm)</span
+ >
+ </td>
+ <td v-for="(m, i) in timeList" :key="i">{{ m }}min</td>
+ <td>鎿嶄綔</td>
+ </tr>
+ <tr v-for="(item, index) in powerList" :key="index">
+ <td>
+ <el-input
+ v-model="item.value"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ ></el-input>
+ </td>
+ <td v-for="(m, i) in timeList" :key="i">
+ <el-input
+ v-model="item.arr[i]"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ ></el-input>
+ </td>
+ <td>
+ <el-button
+ size="small"
+ type="text"
+ @click="delStressStrain(index)"
+ style="color: red"
+ >鍒犻櫎</el-button
+ >
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div
+ style="
+ display: flex;
+ align-items: center;
+ margin-top: 16px;
+ margin-bottom: 20px;
+ "
+ >
+ <span>寮规�фā閲忥細</span>
+ <el-input
+ size="small"
+ style="width: 100px"
+ @change="changeElasticity"
+ v-model="stressStrainInfo.elasticity"
+ :disabled="state > 1"
+ ></el-input>
+ <span style="color: red; font-size: 12px; margin-left: 16px"
+ >鏍囧噯閲忎负锛歿{
+ stressStrainInfo.ask ? stressStrainInfo.ask : "-"
+ }}
+ 锛屼笉鑳借秴杩囨爣鍑嗛噺鐨劼�2</span
+ >
+ </div>
+ </div>
+ <!-- 闃叉尟閿ゅ姛鐜囩壒鎬� -->
+ <div
+ v-loading="tableLoading"
+ v-else-if="
+ tableLists
+ .find((m) => m.templateId == currentTable)
+ .templateName.includes('闃叉尟閿ゅ姛鐜囩壒鎬�')
+ "
+ >
+ <el-divider></el-divider>
+ <el-form
+ :inline="true"
+ :model="powerCharacteristicsInfo"
+ class="form-inline"
+ label-width="80px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <el-row style="width: 100%">
+ <el-col :span="5">
+ <el-form-item label="浠櫒缂栧彿:" style="margin-bottom: 0">
+ <el-select
+ multiple
+ collapse-tags
+ style="margin-left: 20px; width: 280px"
+ v-model="equipForm.code0"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+ <el-input
+ v-model="equipForm.value0"
+ disabled
+ size="small"
+ placeholder=""
+ style="width: 170px"
+ ></el-input>
+ </el-form-item> -->
+ <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+ <el-select
+ ref="shockproofHammer"
+ multiple
+ collapse-tags
+ style="margin-left: 20px; width: 280px"
+ v-model="equipForm.value0"
+ size="small"
+ @change="blockModifications('shockproofHammer')"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.label"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+ <el-input
+ v-model="powerCharacteristicsInfo.model"
+ disabled
+ size="small"
+ placeholder=""
+ style="width: 170px"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+ <el-input
+ v-model="powerCharacteristicsInfo.methodS"
+ disabled
+ size="small"
+ placeholder=""
+ style="width: 170px"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item label="" style="margin-top: 4px"
+ ><el-button
+ size="small"
+ type="primary"
+ style="margin-left: 10px"
+ @click="savePowerCharacteristics"
+ :disabled="state > 1"
+ >淇� 瀛�</el-button
+ ></el-form-item
+ >
+ </el-col>
+ </el-row>
+ </el-form>
+ <table
+ style="border-collapse: collapse; margin-bottom: 20px"
+ border="1"
+ cellpadding="10"
+ class="thermal-table"
+ >
+ <tr
+ style="background-color: #f0f1f5; font-size: 18px; font-weight: 700"
+ >
+ <td colspan="8">(鐤插姵鍓�)鍔熺巼鐗规��</td>
+ </tr>
+ <tr style="background-color: #f0f1f5">
+ <td colspan="4">璋愭尟棰戠巼(Hz)</td>
+ <td colspan="4">鑰楄兘(W)</td>
+ </tr>
+ <tr>
+ <td>1</td>
+ <td>2</td>
+ <td>3</td>
+ <td>4</td>
+ <td>1</td>
+ <td>2</td>
+ <td>3</td>
+ <td>4</td>
+ </tr>
+ <tr>
+ <td v-for="(m, i) in powerCharacteristicsInfo.arr0" :key="i">
+ <el-input
+ v-model="powerCharacteristicsInfo.arr0[i].value"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ ></el-input>
+ </td>
+ <td v-for="(m, i) in powerCharacteristicsInfo.arr1" :key="i + 9">
+ <el-input
+ v-model="powerCharacteristicsInfo.arr1[i].value"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ ></el-input>
+ </td>
+ </tr>
+ </table>
+
+ <table
+ style="border-collapse: collapse; margin-bottom: 20px"
+ border="1"
+ cellpadding="10"
+ class="thermal-table"
+ >
+ <tr
+ style="background-color: #f0f1f5; font-size: 18px; font-weight: 700"
+ >
+ <td colspan="8">(鐤插姵鍚�)鍔熺巼鐗规��</td>
+ </tr>
+ <tr style="background-color: #f0f1f5">
+ <td colspan="4">璋愭尟棰戠巼(Hz)</td>
+ <td colspan="4">鑰楄兘(W)</td>
+ </tr>
+ <tr>
+ <td>1</td>
+ <td>2</td>
+ <td>3</td>
+ <td>4</td>
+ <td>1</td>
+ <td>2</td>
+ <td>3</td>
+ <td>4</td>
+ </tr>
+ <tr>
+ <td v-for="(m, i) in powerCharacteristicsInfo.arr2" :key="i + 19">
+ <el-input
+ v-model="powerCharacteristicsInfo.arr2[i].value"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ @change="(m) => changeArr2(m, i)"
+ ></el-input>
+ </td>
+ <td v-for="(m, i) in powerCharacteristicsInfo.arr3" :key="i + 29">
+ <el-input
+ v-model="powerCharacteristicsInfo.arr3[i].value"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ @change="(m) => changeArr3(m, i)"
+ ></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td v-for="(m, i) in powerCharacteristicsInfo.arr2" :key="i + 39">
+ <span v-if="!m.state">寰呭畾</span>
+ <span v-if="m.state == 1" style="color: green">鍚堟牸</span>
+ <span v-if="m.state == 2" style="color: red">涓嶅悎鏍�</span>
+ </td>
+ <td v-for="(m, i) in powerCharacteristicsInfo.arr3" :key="i + 49">
+ <span v-if="!m.state">寰呭畾</span>
+ <span v-if="m.state == 1" style="color: green">鍚堟牸</span>
+ <span v-if="m.state == 2" style="color: red">涓嶅悎鏍�</span>
+ </td>
+ </tr>
+ </table>
+
+ <div style="margin-bottom: 20px; font-size: 12px; color: red">
+ 鎻愮ず锛�(鐤插姵鍓�)鍔熺巼鐗规�у瓨鍦ㄧ殑鎯呭喌涓嬶紝(鐤插姵鍚�)鍔熺巼鐗规�т笅闈㈢殑鍊奸渶瑕佸湪鐤插姵鍓嶅��*0.8鍜岀柌鍔冲墠鍊�*1.2涔嬮棿銆�
+ </div>
+ </div>
+ <!-- 鐤插姵璇曢獙妫�楠屽師濮嬭褰� -->
+ <div
+ v-loading="tableLoading"
+ v-else-if="
+ tableLists.find((m) => m.templateId == currentTable).templateName ==
+ '鐤插姵璇曢獙妫�楠屽師濮嬭褰�'
+ "
+ >
+ <el-divider></el-divider>
+ <el-form
+ :inline="true"
+ :model="fatigueTestInfo"
+ class="form-inline"
+ label-width="80px"
+ style="
+ justify-content: flex-start;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ "
+ >
+ <el-row style="width: 100%">
+ <el-col :span="5">
+ <el-form-item label="浠櫒缂栧彿:" style="margin-bottom: 0">
+ <el-select
+ multiple
+ collapse-tags
+ v-model="equipForm.code0"
+ :disabled="state > 1"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="margin-left: 20px; width: 200px"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+ <el-input
+ v-model="equipForm.value0"
+ disabled
+ size="small"
+ placeholder=""
+ style="width: 170px"
+ ></el-input>
+ </el-form-item> -->
+ <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+ <el-select
+ ref="fatigueTest"
+ multiple
+ collapse-tags
+ style="margin-left: 20px; width: 200px"
+ v-model="equipForm.value0"
+ size="small"
+ @change="blockModifications('fatigueTest')"
+ >
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.label"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+ <el-input
+ v-model="fatigueTestInfo.model"
+ disabled
+ size="small"
+ placeholder=""
+ style="width: 170px"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+ <el-input
+ v-model="fatigueTestInfo.methodS"
+ disabled
+ size="small"
+ placeholder=""
+ style="width: 170px"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item label="" style="margin-top: 4px"
+ ><el-button
+ size="small"
+ type="primary"
+ style="margin-left: 10px"
+ @click="saveFatigueTest"
+ :disabled="state > 1"
+ >淇� 瀛�</el-button
+ ></el-form-item
+ >
+ </el-col>
+ </el-row>
+ </el-form>
+ <table
+ style="border-collapse: collapse; margin-bottom: 20px"
+ border="1"
+ cellpadding="10"
+ class="thermal-table"
+ >
+ <tr>
+ <td class="background-grey">寮�濮嬫椂闂�</td>
+ <td>
+ <el-date-picker
+ v-model="fatigueTestInfo.startTime"
+ type="datetime"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ style="width: 100%"
+ >
+ </el-date-picker>
+ </td>
+ <td class="background-grey">缁撴潫鏃堕棿</td>
+ <td>
+ <el-date-picker
+ v-model="fatigueTestInfo.endTime"
+ type="datetime"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ style="width: 100%"
+ >
+ </el-date-picker>
+ </td>
+ <td class="background-grey">鏂藉姞寮犲姏</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.tension"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>kN</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="background-grey">婵�鎸櫒鍒板浐瀹氱璺濈</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.distance0"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>m</span>
+ </td>
+ <td class="background-grey">婵�鎸櫒鍒版偓鍨傜嚎澶硅窛绂�</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.distance1"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>m</span>
+ </td>
+ <td class="background-grey">棰戠巼</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.frequency"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>Hz</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="background-grey">娉㈣吂鎸箙</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.amplitude0"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>mm</span>
+ </td>
+ <td class="background-grey">鍗婃尝闀�</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.wavelength"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>m</span>
+ </td>
+ <td class="background-grey">寮洸鎸箙</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.amplitude1"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>mm</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="background-grey">寮洸搴斿彉</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.strain"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>渭 t</span>
+ </td>
+ <td class="background-grey">妗h窛</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.pitch"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>m</span>
+ </td>
+ <td class="background-grey">鎸姩娆℃暟</td>
+ <td>
+ <el-input
+ v-model="fatigueTestInfo.num"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>娆�</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="background-grey">鐩鍙鎹熶激</td>
+ <td>
+ <el-select
+ v-model="fatigueTestInfo.damage"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ >
+ <el-option label="绗﹀悎" value="绗﹀悎" />
+ <el-option label="涓嶇鍚�" value="涓嶇鍚�" />
+ </el-select>
+ </td>
+ <td
+ class="background-grey"
+ v-if="
+ fatigueTestInfo.sampleType &&
+ fatigueTestInfo.sampleType.includes('棰勭粸寮忛噾鍏�')
+ "
+ >
+ 鍏夌氦闄勫姞琛板噺
+ </td>
+ <td
+ v-if="
+ fatigueTestInfo.sampleType &&
+ fatigueTestInfo.sampleType.includes('棰勭粸寮忛噾鍏�')
+ "
+ >
+ <el-input
+ v-model="fatigueTestInfo.attenuation"
+ :disabled="state > 1"
+ size="small"
+ placeholder=""
+ style="display: inline-block; width: 80%"
+ ></el-input>
+ <span>dB</span>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <el-upload
+ :action="action"
+ :data="{
+ orderId: id,
+ }"
+ v-if="state == 1 && fileAdd"
+ :on-success="handleSuccessUp"
+ :show-file-list="false"
+ accept=".jpg,.jpeg,.png,.bmp,.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" v-if="state == 1"
+ >闄勪欢涓婁紶</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="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>
+ <el-table-column
+ prop="color"
+ label="鍏夌氦鑹叉爣"
+ min-width="100px"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="model"
+ label="鍏夌氦瑙勬牸"
+ min-width="130px"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="standard"
+ label="鍙傝�冩爣鍑�"
+ width="100px"
+ show-overflow-tooltip
+ ></el-table-column>
+ </el-table>
+ </el-drawer>
+ <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="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>
+ <el-table-column
+ prop="model"
+ label="鍏夌氦甯﹁鏍�"
+ min-width="110px"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="standard"
+ label="鍙傝�冩爣鍑�"
+ width="90px"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="num"
+ label="鍏夌氦妫�娴嬮噺"
+ min-width="110px"
+ show-overflow-tooltip
+ ></el-table-column>
+ </el-table>
+ </el-drawer>
+ <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="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>
+ <el-table-column
+ prop="standNum"
+ label="鏍囬噺"
+ min-width="100px"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="testNum"
+ label="娴嬭瘯閲�"
+ min-width="100px"
+ show-overflow-tooltip
+ ></el-table-column>
+ </el-table>
+ </el-drawer>
+ <el-drawer title="鏍峰搧鍒囨崲" :visible.sync="sampleVisible" :size="500">
+ <div style="margin-bottom: 20px; margin-left: 20px">
+ <span>鏍峰搧缂栧彿:</span>
+ <el-input
+ v-model="filterSampleCode"
+ size="small"
+ style="width: 40%; margin-right: 20px"
+ clearable
+ @change="filterSampleProduct"
+ placeholder="璇疯緭鍏ユ牱鍝佺紪鍙�"
+ @clear="filterSampleProduct"
+ @keyup.enter="filterSampleProduct"
+ >
+ </el-input>
+ <el-button
+ type="primary"
+ size="small"
+ @click="filterSampleProduct"
+ icon="el-icon-search"
+ >鏌ヨ</el-button
+ >
+ </div>
+ <el-table
+ class="el-table"
+ ref="productTable"
+ :data="sampleProduct"
+ height="100%"
+ tooltip-effect="dark"
+ border
+ highlight-current-row
+ @row-click="handleChangeSample"
+ :row-class-name="tableRowClassName"
+ :current-row-key="currentKey"
+ :row-key="(record) => record.index"
+ v-if="sampleVisible"
+ >
+ <el-table-column
+ type="index"
+ align="center"
+ label="搴忓彿"
+ width="70px"
+ :key="Math.random()"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="sampleCode"
+ label="鏍峰搧缂栧彿"
+ min-width="100px"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="model"
+ label="鏍峰搧鍨嬪彿"
+ min-width="100px"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="insState"
+ label="妫�娴嬬姸鎬�"
+ width="100px"
+ show-overflow-tooltip
+ >
+ <template slot-scope="scope">
+ <el-tag
+ v-for="(item, i) in typeList"
+ :key="i"
+ v-if="item.value == scope.row.insState"
+ :type="item.type"
+ size="medium"
+ style="margin-right: 5px"
+ >{{ item.label }}</el-tag
+ >
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="checkName"
+ label="妫�楠屼汉"
+ min-width="80px"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="isLeave"
+ label="鏄惁鐣欐牱"
+ width="95px"
+ show-overflow-tooltip
+ align="center"
+ >
+ <template slot-scope="scope">
+ <span>{{ scope.row.isLeave == 0 ? "鍚�" : "鏄�" }}</span>
+ </template>
+ </el-table-column>
+ <!-- 妫�楠屽崟浼氭湁涓�涓槸鍚︽湁閰嶅鏍峰搧瀛楁鎺у埗鏄剧ず -->
+ <el-table-column
+ prop="joinModel"
+ label="閰嶅鏍峰搧鍨嬪彿"
+ min-width="130px"
+ show-overflow-tooltip
+ v-if="insOrder.mating > 0"
+ ></el-table-column>
+ <el-table-column
+ prop="joinName"
+ label="閰嶅鏍峰搧鍚嶇О"
+ min-width="130px"
+ show-overflow-tooltip
+ v-if="insOrder.mating > 0"
+ ></el-table-column>
+ <el-table-column
+ prop="joinNum"
+ label="閰嶅鏍峰搧鏁伴噺"
+ min-width="130px"
+ show-overflow-tooltip
+ v-if="insOrder.mating > 0"
+ ></el-table-column>
+ </el-table>
+ </el-drawer>
+ <el-drawer title="浠诲姟鍒囨崲" :visible.sync="taskVisible" :size="500">
+ <ValueTable
+ class="value-table"
+ ref="insOrderPlan"
+ :url="$api.insOrderPlan.inspectionOrderDetailsTaskSwitching"
+ :componentData="componentData"
+ :key="upIndex"
+ style="height: 100%"
+ />
+ </el-drawer>
+ <el-dialog title="妫�楠屽鏍�" :visible.sync="reviewDia" width="500px">
+ <div class="body" style="display: flex; padding: 10px" v-if="reviewDia">
+ <div class="search_label" style="width: 150px">
+ <span class="required-span">* </span>涓嶉�氳繃鐨勭悊鐢憋細
+ </div>
+ <div class="search_input" style="width: 100%">
+ <el-input
+ size="small"
+ clearable
+ v-model="noReason"
+ type="textarea"
+ :autosize="{ minRows: 4 }"
+ ></el-input>
+ </div>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="reviewDia = false">鍙� 娑�</el-button>
+ <el-button
+ type="primary"
+ @click="handleReviewDia"
+ :loading="reviewLoading"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
+ <el-dialog title="鎸囧畾澶嶆牳浜哄憳" :visible.sync="addVerifyDia" width="400px">
+ <div
+ class="body"
+ style="display: flex; padding: 10px; align-items: center"
+ >
+ <div class="search_label" style="width: 150px">
+ <span class="required-span">*</span>澶嶆牳浜�
+ </div>
+ <div class="search_input" style="width: 100%">
+ <el-select
+ v-model="verifyUser"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%"
+ clearable
+ filterable
+ >
+ <!-- <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option> -->
+ <el-option-group
+ v-for="(item, index) in Object.keys(personList)"
+ :key="index"
+ :label="item"
+ >
+ <el-option
+ :disabled="
+ inspectorList.filter((name) => name == op.name).length > 0
+ "
+ v-for="op in personList[item]"
+ :key="op.id"
+ :label="op.name"
+ :value="op.id"
+ >
+ </el-option>
+ </el-option-group>
+ </el-select>
+ </div>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="addVerifyDia = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submit()">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog
+ title="鏁版嵁閲囬泦"
+ :visible.sync="dataGetDia"
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ :show-close="false"
+ custom-class="custom-dialog"
+ >
+ <div>
+ <table border="1" cellpadding="10" class="thermal-table">
+ <tr>
+ <td style="width: 120px">妫�楠岄」</td>
+ <td style="width: 120px">妫�楠屽瓙椤�</td>
+ <td>鏁伴噰鏁版嵁</td>
+ </tr>
+ <template v-for="(item, index) in getData">
+ <tr>
+ <td :rowspan="item.child.length">{{ item.faName }}</td>
+ <td>{{ item.child[0].name }}</td>
+ <td style="text-align: left">
+ <el-checkbox-group
+ v-model="getDataIndex"
+ :max="item.child[0].maxNum"
+ >
+ <el-checkbox
+ v-for="(n, j) in item.child[0].arr"
+ :label="j"
+ :key="j"
+ >{{ n }}</el-checkbox
+ >
+ </el-checkbox-group>
+ </td>
+ </tr>
+ <tr
+ v-for="(m, i) in item.child"
+ :key="i + 'bbbbbbbbbbbbbb'"
+ v-show="i > 0"
+ >
+ <td>{{ m.name }}</td>
+ <td style="text-align: left">
+ <el-checkbox-group v-model="getDataIndex" :max="m.maxNum">
+ <el-checkbox v-for="(n, j) in m.arr" :label="j" :key="j">{{
+ n
+ }}</el-checkbox>
+ </el-checkbox-group>
+ </td>
+ </tr>
+ </template>
+ </table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button
+ type="primary"
+ @click="submitDataGet()"
+ :loading="getDataIndexLoading"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
+ <!-- 浜ゆ帴寮规 -->
+ <el-dialog title="妫�楠屼氦鎺�" :visible.sync="connectVisible" width="400px">
+ <div class="search_thing">
+ <div class="search_label" style="width: 90px">
+ <span class="required-span">* </span>浜ゆ帴浜哄憳锛�
+ </div>
+ <div class="search_input">
+ <el-select
+ v-model="connect.connectPerson"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ filterable
+ >
+ <!-- <el-option
+ v-for="item in personList"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option> -->
+ <el-option-group
+ v-for="(item, index) in Object.keys(handover)"
+ :key="index"
+ :label="item"
+ >
+ <el-option
+ :disabled="
+ inspectorList.filter((name) => name == op.name).length > 0
+ "
+ v-for="op in personList[item]"
+ :key="op.id"
+ :label="op.name"
+ :value="op.id"
+ >
+ </el-option>
+ </el-option-group>
+ </el-select>
+ </div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label" style="width: 90px">
+ <span class="required-span">* </span>璇曢獙瀹わ細
+ </div>
+ <div class="search_input">
+ <el-select
+ v-model="connect.sonLaboratory"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ filterable
+ >
+ <el-option
+ v-for="item in sonLaboratoryList"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="connectVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmConnect" :loading="loading"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import file from "@/utils/file";
+import excelFunction from "@/utils/excelFountion";
+export default {
+ props: ["sonLaboratory", "orderId", "state", "inspectorList", "handover"],
+ components: {
+ limsTable,
+ },
+ data() {
+ return {
+ equipName: [],
+ insFibersId: null, //鍏夌氦甯d
+ insOrderState: null,
+ sonLaboratoryList: [],
+ connect: {
+ connectPerson: "",
+ sonLaboratory: "",
+ },
+ connectVisible: false,
+ filterSampleCode: null,
+ fileterSampleProducts: [],
+ isEdit: false,
+ sagData: [],
+ sagForm: {},
+ dataGetDia: false,
+ wareTableDataLoading: false,
+ fileAdd: false,
+ sampleVisible: false,
+ taskVisible: false,
+ submitLoading: false,
+ searchForm: {
+ sampleName: null,
+ state: null,
+ },
+ id: 0,
+ componentData: {
+ entity: {
+ sonLaboratory: null,
+ userId: 0,
+ },
+ isIndex: false,
+ showSelect: false,
+ select: false,
+ selectMethod: "handleChangeTask",
+ sort: false,
+ do: [],
+ isPage: false,
+ linkEvent: {},
+ tagField: {
+ type: {
+ select: [],
+ },
+ insState: {
+ select: [],
+ },
+ },
+ currentId: "",
+ selectField: {},
+ 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,
+ getReportModelLoading: false,
+ insOrder: {},
+ sampleProduct: [],
+ typeList: [],
+ urgentList: [],
+ currentSample: {}, //褰撳墠鏍峰搧淇℃伅
+ tableList: [],
+ loading: false,
+ ps: {},
+ param: {},
+ currentKey: 1,
+ currentKey0: 1,
+ currentKey1: 1,
+ currentKey2: 1,
+ comparisonList: [],
+ excelMethodList: [],
+ equipOptions: [],
+ userId: 0,
+ reviewLoading: false,
+ reviewDia: false,
+ noReason: "",
+ tableWidth: 1000,
+ currentTable: null,
+ tableLists: [],
+ widthList: [],
+ addVerifyDia: false,
+ verifyUser: null,
+ personList: [],
+ enumList: [],
+ fiberOpticVisible: false,
+ fiberOpticTapeVisible: false,
+ bushingVisible: false,
+ fiberOpticTape: [], //鍏夌氦甯﹀垪琛�
+ fiberOptic: [], //鍏夌氦鍒楄〃
+ bushing: [], //濂楃鍒楄〃
+ currentFiberOpticTape: null, //褰撳墠鍏夌氦甯�
+ currentFiberOptic: null, //褰撳墠鍏夌氦
+ currentBushing: null, //褰撳墠濂楃
+ tableLoading: false,
+ upLoading: false,
+ temptList: null,
+ fiber: [],
+ fibers: [],
+ casing: [],
+ currentTab: null,
+ wareForm: {
+ inspectionItem: 1,
+ inspectionItemSubclass: "20(甯告俯)",
+ },
+ wareForm0: {},
+ numOptions: [],
+ temperatureOptions: [],
+ wareTableData: [],
+ otherForm: {
+ humidity: null,
+ temperature: null,
+ },
+ equipForm: {
+ value0: null,
+ code0: null,
+ value1: null,
+ code1: null,
+ },
+ result: null,
+ worker: null,
+ worker0: null,
+ wareLength: [],
+ dataAcquisitionInfo: {},
+ dataAcquisitionInfoNew: {},
+ dataAcquisitionEidtAble: false,
+ isGet: false,
+ dataAcquisitionLoading: false,
+ collected: false,
+ // 鐑惊鐜�---寮�濮�
+ thermalCyclingInfo: {
+ max: 0,
+ inspectionItem: 1,
+ arr: [],
+ length: 1,
+ inspectionItemClass: null,
+ },
+ thermalCyclingLoading: false,
+ temDataAcquisition: false,
+ // 鐑惊鐜�---缁撴潫
+ getData: [
+ {
+ faName: "娉㈤暱闄勫姞琛板噺",
+ child: [
+ {
+ name: "1285nm~1330nm",
+ arr: [12, 13, 14, 15],
+ },
+ {
+ name: "1525nm~1575nm",
+ arr: [12, 13, 14, 15],
+ },
+ ],
+ },
+ {
+ faName: "鎴嚦娉㈤暱",
+ child: [
+ {
+ name: "鎴嚦娉㈤暱",
+ arr: [12, 13, 14, 15],
+ },
+ ],
+ },
+ ],
+ getDataIndex: [],
+ getDataIndexLoading: false,
+ changeType: null,
+ getDataTypeId: "",
+ getDataType: null,
+ singleRootVerticalInfo: {
+ model: "",
+ methodName: "",
+ num: 0,
+ arr: [],
+ ask: "",
+ elasticity: null, //寮规�фā閲�
+ },
+ loadList: [],
+ // 鏋剁┖瀵煎湴绾�-搴斿姏搴斿彉--寮�濮�
+ stressStrainInfo: {
+ elasticity: null,
+ },
+ timeList: [5, 10, 15, 30, 45, 60],
+ powerList0: [
+ {
+ value: "30%RTS",
+ arr: ["", "", "", "", "", ""],
+ },
+ {
+ value: "50%RTS",
+ arr: ["", "", "", "", "", ""],
+ },
+ {
+ value: "70%RTS",
+ arr: ["", "", "", "", "", ""],
+ },
+ {
+ value: "85%RTS",
+ arr: ["", "", "", "", "", ""],
+ },
+ ],
+ powerList: [],
+ // 鏋剁┖瀵煎湴绾�-搴斿姏搴斿彉--缁撴潫
+ // 闃叉尟閿ゅ姛鐜囩壒鎬�---寮�濮�
+ powerCharacteristicsInfo: {
+ model: null,
+ methodS: null,
+ arr0: [
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ ], //(鐤插姵鍓�)鍔熺巼鐗规��-璋愭尟棰戠巼(Hz)
+ arr1: [
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ ], //(鐤插姵鍓�)鍔熺巼鐗规��-鑰楄兘(W)
+ arr2: [
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ ], //(鐤插姵鍚�)鍔熺巼鐗规��-璋愭尟棰戠巼(Hz)
+ arr3: [
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ ], //(鐤插姵鍚�)鍔熺巼鐗规��-鑰楄兘(W)
+ },
+ powerCharacteristicsCopy: [
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ {
+ value: "",
+ state: 0,
+ },
+ ],
+ // 闃叉尟閿ゅ姛鐜囩壒鎬�---缁撴潫
+ // 鐤插姵璇曢獙---寮�濮�
+ fatigueTestInfo: {
+ model: null,
+ methodS: null,
+ sampleType: null,
+ // 浠ヤ笅鐨勬槸杈撳叆鍙傛暟
+ startTime: null,
+ endTime: null,
+ tension: null,
+ distance0: null,
+ distance1: null,
+ frequency: null,
+ amplitude0: null,
+ wavelength: null,
+ amplitude1: null,
+ strain: null,
+ pitch: null,
+ num: null,
+ damage: null,
+ attenuation: null,
+ },
+ // 鐤插姵璇曢獙---缁撴潫
+ };
+ },
+ // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
+ computed: {
+ headers() {
+ return {
+ token: sessionStorage.getItem("token"),
+ };
+ },
+ action() {
+ return this.javaApi + this.$api.insOrderPlan.uploadFile;
+ },
+ },
+ created() {
+ console.log("妫�楠屼汉鍛�---", this.inspectorList);
+ this.componentData.entity.sonLaboratory = this.sonLaboratory;
+ this.id = this.orderId;
+ this.getUserInfo();
+ },
+ mounted() {
+ this.getSonLaboratoryList();
+ this.getTypeDicts();
+ this.getInsStateDicts();
+ this.getComparisonList();
+ this.getAuthorizedPerson();
+ this.scrollInit();
+ this.getPower();
+ this.startWorker();
+ },
+ watch: {
+ // 鐩戝惉浠诲姟id锛岃幏鍙栦换鍔′俊鎭�
+ id(val) {
+ this.loading = true;
+ this.$axios
+ .post(this.$api.insOrderPlan.doInsOrder, {
+ id: val,
+ laboratory: this.sonLaboratory,
+ })
+ .then(async (res) => {
+ this.insOrder = res.data.insOrder;
+ this.insOrderState = res.data.insState;
+ 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.fileterSampleProducts = JSON.parse(
+ JSON.stringify(res.data.sampleProduct)
+ );
+ this.currentSample = this.HaveJson(this.sampleProduct[0]);
+ let insProduct = this.HaveJson(this.currentSample.insProduct);
+ // 娓╁害銆佹箍搴﹁祴鍊�
+ if (insProduct && insProduct.length > 0) {
+ const filterList = insProduct.filter(
+ (ele) => ele.temperature || ele.humidity
+ );
+ if (filterList && filterList.length > 0) {
+ let { temperature, humidity } = filterList[0];
+ this.otherForm = {
+ temperature: temperature ? temperature : null,
+ humidity: humidity ? humidity : null,
+ };
+ }
+ }
+ // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」
+ let list = await this.getCurrentProduct(this.currentSample.id, 0);
+ console.log(888, list);
+ if (list) {
+ this.currentSample.insProduct = this.HaveJson(list);
+ }
+ // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁�
+ this.param = {};
+ this.changeType = 0;
+ this.currentSample.insProduct.forEach((a, j) => {
+ this.param[a.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: null,
+ equipValue: [],
+ equipName: [],
+ insResult: null,
+ };
+ });
+ this.determineWhetherToCollectData(); //鏄惁闇�瑕佹暟閲�
+ this.getReportModel(this.currentSample.id); //鑾峰彇濂楃銆佸厜绾ゅ甫銆佸厜绾や俊鎭�
+ if (this.currentSample.index == undefined)
+ this.currentSample["index"] = 1;
+ let bushing = this.currentSample.bushing;
+ this.getTableLists(); //澶勭悊妯℃澘鍒楄〃淇℃伅
+
+ this.componentData.currentId = val;
+ this.currentKey = 1;
+ // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁---涓嬮潰淇℃伅鏆傛椂鍙拷鐣�
+ this.fiberOpticTape = [];
+ this.currentFiberOpticTape = null;
+ this.fiberOptic = [];
+ this.currentFiberOptic = null;
+ this.bushing = [];
+ this.currentBushing = null;
+ this.currentTab = null;
+ if (bushing && bushing.length > 0) {
+ this.bushing = bushing;
+ }
+ // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+ this.worker.postMessage(
+ JSON.stringify({
+ modelType: this.sampleProduct[0].model,
+ type: "saveData",
+ tableList: this.tableList,
+ param: this.param,
+ currentTable: this.currentTable,
+ })
+ );
+ });
+ },
+ // 鐩戝惉褰撳墠妯℃澘鍙樺寲
+ currentTable(val1, val0) {
+ if (val0 != null && val1 != val0) {
+ // if(this.tableLists.find(m=>m.templateId==val1)&&(this.tableLists.find(m=>m.templateId==val1).templateName=='鎴愬搧缂嗘楠屽師濮嬭褰�')){
+ // if(this.casing.length>0){
+ // this.handleChange(this.casing[0].id,3)
+ // }
+ // return
+ // }
+ //76:鐤插姵璇曢獙妫�楠屽師濮嬭褰曚笉鎵ц涓嬮潰鐨勬搷浣�
+ if (this.changeType && this.changeType > 0) {
+ // 濡傛灉鏄厜绾ゃ�佸厜绾ゅ甫锛屽垯涓嶆墽琛屼笅闈㈡搷浣�
+ return;
+ }
+ this.tableLists.forEach(async (m, i) => {
+ if (m.templateId == val1) {
+ let list = await this.getCurrentProduct(this.currentSample.id, 0);
+ this.currentSample.insProduct = this.HaveJson(list); //璧嬪�煎綋鍓嶆牱鍝佺殑妫�楠岄」
+ this.param = {}; //鍒濆鍖栦紶鍒板悗绔殑鍙傛暟
+ this.currentSample.insProduct.forEach((a, j) => {
+ this.param[a.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: null,
+ equipValue: [],
+ equipName: [],
+ insResult: null,
+ };
+ });
+ this.getReportModel(this.currentSample.id); //鑾峰彇濂楃銆佸厜绾ゅ甫銆佸厜绾や俊鎭�
+ // 鍘婚噸妯℃澘锛岃繑鍥炴湁鍑犱釜妯℃澘
+ const mySet1 = new Set();
+ this.tableLists = this.currentSample.insProduct.filter((m) => {
+ let num0 = mySet1.size;
+ if (m.templateId != null && m.template != null) {
+ try {
+ mySet1.add(
+ JSON.stringify({
+ template: m.template,
+ templateId: m.templateId,
+ })
+ );
+ } catch (error) {
+ console.log(222, error);
+ }
+ }
+ let num1 = mySet1.size;
+ if (num1 > num0) {
+ return m;
+ }
+ });
+ if (this.tableLists && this.tableLists.length > 0) {
+ this.tableList = null;
+ this.tableList = this.tableLists.filter(
+ (m) => m.templateId == val1
+ );
+ // 瀵规ā鏉胯繘琛屽鐞�
+ this.handleTableData();
+ // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+ this.worker.postMessage(
+ JSON.stringify({
+ modelType: this.sampleProduct[0].model,
+ type: "saveData",
+ tableList: this.tableList,
+ param: this.param,
+ currentTable: this.currentTable,
+ })
+ );
+ }
+ }
+ });
+ }
+ },
+ // 鐗规畩妫�楠岄」--鐩戝惉璁惧淇℃伅鏀瑰彉
+ "equipForm.code0": {
+ deep: true,
+ handler(oldVal, newVal) {
+ this.changEquip("code0");
+ },
+ },
+ "equipForm.code1": {
+ deep: true,
+ handler(oldVal, newVal) {
+ this.changEquip("code1");
+ },
+ },
+ // equipForm:{
+ // deep:true,
+ // handler(oldVal,newVal){
+
+ // }
+ // },
+ },
+ beforeDestroy() {
+ // 鍦ㄧ粍浠堕攢姣佸墠纭繚鍋滄 Worker锛岄伩鍏嶅唴瀛樻硠婕�
+ this.stopWorker();
+ },
+ methods: {
+ blockModifications(val) {
+ // 鎭㈠鍘熷鍊�
+ this.$nextTick(() => {
+ this.equipForm.value0 = JSON.parse(JSON.stringify(this.equipName));
+ if (this.$refs[val]) {
+ this.$refs[val].blur();
+ } else {
+ console.error(`No ref found with name ${val}`);
+ }
+ });
+ },
+ getSonLaboratoryList() {
+ this.$axios
+ .post(this.$api.insOrderPlan.upPlanUser2, {
+ orderId: this.orderId,
+ })
+ .then((res) => {
+ if (res.code === 200 && res.data.length > 0) {
+ this.sonLaboratoryList = [];
+ res.data.forEach((m) => {
+ this.sonLaboratoryList.push({
+ value: m,
+ label: m,
+ });
+ });
+ this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
+ }
+ });
+ },
+ // 鍐呴儴浜ゆ帴
+ confirmConnect() {
+ if (
+ this.connect.connectPerson == null ||
+ this.connect.connectPerson == "" ||
+ this.connect.connectPerson == undefined
+ ) {
+ this.$message.error("鏈�夋嫨浜ゆ帴浜哄憳");
+ return;
+ }
+ if (
+ this.connect.sonLaboratory == null ||
+ this.connect.sonLaboratory == "" ||
+ this.connect.sonLaboratory == undefined
+ ) {
+ this.$message.error("鏈�夋嫨璇曢獙瀹�");
+ return;
+ }
+ this.loading = true;
+ this.$axios
+ .post(this.$api.insOrderPlan.upPlanUser, {
+ orderId: this.orderId,
+ userId: this.connect.connectPerson,
+ sonLaboratory: this.connect.sonLaboratory,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.loading = false;
+ this.$message.success("鎿嶄綔鎴愬姛");
+ }
+ this.connectVisible = false;
+ this.$emit("goback");
+ })
+ .catch((error) => {
+ console.error(error);
+ this.loading = false;
+ });
+ },
+ // 鏍峰搧缂栧彿鎼滅储
+ filterSampleProduct() {
+ console.log(123, this.filterSampleCode);
+ let list = JSON.parse(JSON.stringify(this.fileterSampleProducts));
+ this.sampleProduct = list.filter((m) =>
+ m.sampleCode.includes(this.filterSampleCode)
+ );
+ },
+ //淇敼璁惧
+ changEquip() {
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ (this.tableLists.find((m) => m.templateId == this.currentTable)
+ .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" ||
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("鐑惊鐜�") ||
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("娓╁崌璇曢獙") ||
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("寮у瀭") ||
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("鏋剁┖鍦扮嚎搴斿姏搴斿彉") ||
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("闃叉尟閿ゅ姛鐜囩壒鎬�") ||
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("鐤插姵璇曢獙妫�楠屽師濮嬭褰�")) &&
+ this.equipOptions &&
+ this.equipOptions.length > 0
+ ) {
+ let list = this.currentSample.insProduct.filter(
+ (m) =>
+ m.inspectionItem.includes("鐑惊鐜�") ||
+ m.inspectionItem.includes("娓╁害寰幆") ||
+ m.inspectionItem.includes("娓╁崌") ||
+ m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+ m.inspectionItem.includes("寮у瀭") ||
+ m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+ m.inspectionItem.includes("搴斿姏搴斿彉") ||
+ m.inspectionItem.includes("闃叉尟閿ゅ姛鐜囩壒鎬�") ||
+ m.inspectionItem.includes("鎸姩鐤插姵") ||
+ m.inspectionItem.includes("鑸炲姩鐤插姵")
+ );
+ console.log(123, list);
+ list.forEach((m) => {
+ // 淇濆瓨妫�楠屽��
+ console.log(m);
+ if (m.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳") {
+ this.param[m.id].insResult = {
+ i: m.id,
+ v: { v: m.insResult },
+ };
+ this.param[m.id].resValue = {
+ i: m.id,
+ v: { v: m.resValue },
+ };
+ this.param[m.id].insValue = [];
+ m.value.forEach((item) => {
+ let obj = {
+ i: m.id,
+ v: {
+ v: item,
+ },
+ };
+ this.param[m.id].insValue.push(obj);
+ });
+ }
+ // //閲嶆柊璧嬪�糹nsValue
+ // if(m.insProductResult){
+ // const valueArr = JSON.parse(m.insProductResult.insValue)
+ // valueArr.forEach(ele=>{
+ // this.param[m.id].insValue.push({
+ // i:m.id,
+ // v:{v:ele.v}
+ // })
+ // })
+ // }
+ // 鍒濆鍖栬澶囦俊鎭�
+ this.param[m.id].equipValue = [];
+ this.param[m.id].equipName = [];
+ if (this.equipForm.code0) {
+ // 璧嬪�肩涓�涓澶囩殑淇℃伅
+ // this.equipForm.value0 = this.equipOptions.find(
+ // (m) => m.value == this.equipForm.code0
+ // ).label;
+
+ if (
+ !m.inspectionItem.includes("娓╁害寰幆") &&
+ !m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+ ) {
+ // 璧嬪�艰澶囧悕绉�
+
+ let list1 = [];
+ this.equipOptions
+ .filter((m) => this.equipForm.code0.includes(m.value))
+ .forEach((item) => {
+ list1.push(item.label);
+ });
+ this.equipForm.value0 = [...new Set(list1)];
+ this.equipForm.code0.forEach((item, index) => {
+ this.param[m.id].equipValue.push({
+ i: m.id,
+ v: {
+ v: item,
+ },
+ });
+ this.param[m.id].equipName.push({
+ i: m.id,
+ v: {
+ v: list1[index],
+ },
+ });
+ });
+ console.log("this.equipOptions", this.equipOptions);
+ } else {
+ this.equipForm.value0 = this.equipOptions.find(
+ (m) => m.value == this.equipForm.code0
+ ).label;
+ this.param[m.id].equipValue.push({
+ i: m.id,
+ v: {
+ v: this.equipForm.code0,
+ },
+ });
+ this.param[m.id].equipName.push({
+ i: m.id,
+ v: {
+ v: this.equipForm.value0,
+ },
+ });
+ }
+ // this.param[m.id].equipValue.push({
+ // i: m.id,
+ // v: {
+ // v: code0,
+ // },
+ // });
+ // this.param[m.id].equipName.push({
+ // i: m.id,
+ // v: {
+ // v: value0,
+ // },
+ // });
+ }
+ if (
+ this.equipForm.code1 &&
+ (m.inspectionItem.includes("娓╁害寰幆") ||
+ m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳"))
+ ) {
+ // 璧嬪�肩浜屼釜璁惧鐨勪俊鎭�
+ this.equipForm.value1 = this.equipOptions.find(
+ (m) => m.value == this.equipForm.code1
+ ).label;
+ this.param[m.id].equipValue.push({
+ i: m.id,
+ v: {
+ v: this.equipForm.code1,
+ },
+ });
+ this.param[m.id].equipName.push({
+ i: m.id,
+ v: {
+ v: this.equipForm.value1,
+ },
+ });
+ }
+ // 淇濆瓨鏁版嵁
+ this.saveInsContext(m.id);
+ });
+ }
+ },
+ // 鐤插姵璇曢獙鐗规��---寮�濮�
+ getFatigueTestInfo() {
+ for (let i in this.fatigueTestInfo) {
+ this.fatigueTestInfo[i] = null;
+ }
+ let obj = this.currentSample.insProduct.filter(
+ (m) =>
+ m.inspectionItem.includes("鎸姩鐤插姵") ||
+ m.inspectionItem.includes("鑸炲姩鐤插姵")
+ )[0];
+ // 鑾峰彇璁惧鍒楄〃
+ this.getEquipOptions(true, obj.id);
+ this.fatigueTestInfo.model = this.currentSample.model;
+ this.fatigueTestInfo.methodS = obj.methodS;
+ this.fatigueTestInfo.sampleType = obj.sampleType;
+ this.fatigueTestInfo.id = obj.id;
+ this.fatigueTestInfo.insProductResult = obj.insProductResult;
+ // 鍥炴樉鏁版嵁
+ if (
+ obj.insProductResult &&
+ obj.insProductResult.insValue &&
+ obj.insProductResult.insValue.length > 5
+ ) {
+ this.fatigueTestInfo = {
+ ...this.fatigueTestInfo,
+ ...JSON.parse(obj.insProductResult.insValue),
+ };
+ }
+ },
+ //鐤插姵璇曢獙淇濆瓨鏂规硶
+ saveFatigueTest() {
+ let obj = this.HaveJson(this.fatigueTestInfo);
+ delete obj.insProductResult;
+ delete obj.id;
+ delete obj.model;
+ delete obj.methodS;
+ delete obj.sampleType;
+ this.$axios
+ .post(
+ this.$api.insOrderPlan.saveInsContext2,
+ {
+ id: this.fatigueTestInfo.insProductResult
+ ? this.fatigueTestInfo.insProductResult.id
+ : "",
+ insProductId: this.fatigueTestInfo.id,
+ sampleId: this.currentSample.id,
+ orderId: this.currentSample.insOrderId,
+ insValue: JSON.stringify(obj),
+ templateName: "鐤插姵璇曢獙",
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ }
+ )
+ .then((res) => {
+ if (res.code == 201) {
+ this.$message.error("淇濆瓨澶辫触");
+ return;
+ }
+ this.$message.success("淇濆瓨鎴愬姛");
+ })
+ .catch((err) => {
+ console.log(err);
+ });
+ },
+ // 鐤插姵璇曢獙鐗规��---缁撴潫
+ // 闃叉尟閿ゅ姛鐜囩壒鎬�---寮�濮�
+ getPowerCharacteristicsInfo() {
+ this.powerCharacteristicsInfo.arr0 = this.HaveJson(
+ this.powerCharacteristicsCopy
+ );
+ this.powerCharacteristicsInfo.arr1 = this.HaveJson(
+ this.powerCharacteristicsCopy
+ );
+ this.powerCharacteristicsInfo.arr2 = this.HaveJson(
+ this.powerCharacteristicsCopy
+ );
+ this.powerCharacteristicsInfo.arr3 = this.HaveJson(
+ this.powerCharacteristicsCopy
+ );
+ let obj = this.currentSample.insProduct.filter((m) =>
+ m.inspectionItem.includes("闃叉尟閿ゅ姛鐜囩壒鎬�")
+ )[0];
+ // 鑾峰彇璁惧鍒楄〃
+ this.getEquipOptions(true, obj.id);
+ this.powerCharacteristicsInfo.model = this.currentSample.model;
+ this.powerCharacteristicsInfo.methodS = obj.methodS;
+ this.powerCharacteristicsInfo.id = obj.id;
+ this.powerCharacteristicsInfo.insProductResult = obj.insProductResult;
+ // 鍥炴樉鏁版嵁
+ if (obj.insProductResult) {
+ if (
+ obj.insProductResult.insValue &&
+ obj.insProductResult.insValue.length > 5
+ ) {
+ let obj0 = JSON.parse(obj.insProductResult.insValue);
+ this.powerCharacteristicsInfo.arr0 = obj0.arr0;
+ this.powerCharacteristicsInfo.arr1 = obj0.arr1;
+ }
+ if (
+ obj.insProductResult.comValue &&
+ obj.insProductResult.comValue.length > 5
+ ) {
+ let obj1 = JSON.parse(obj.insProductResult.comValue);
+ this.powerCharacteristicsInfo.arr2 = obj1.arr2;
+ this.powerCharacteristicsInfo.arr3 = obj1.arr3;
+ }
+ }
+ },
+ // 鏀瑰彉鐤插姵鍚庣殑璋愭尟棰戠巼(Hz)
+ changeArr2(val, index) {
+ if (!this.powerCharacteristicsInfo.arr0[index].value || !val) {
+ return;
+ }
+ let num0 = Number(this.powerCharacteristicsInfo.arr0[index].value) * 0.8;
+ let num1 = Number(this.powerCharacteristicsInfo.arr0[index].value) * 1.2;
+ if (Number(val) > num0 && Number(val) < num1) {
+ this.powerCharacteristicsInfo.arr2[index].state = 1;
+ } else {
+ this.powerCharacteristicsInfo.arr2[index].state = 2;
+ }
+ },
+ // 鏀瑰彉鐤插姵鍚庣殑璋愯�楄兘(W)
+ changeArr3(val, index) {
+ if (!this.powerCharacteristicsInfo.arr1[index].value || !val) {
+ return;
+ }
+ let num0 = Number(this.powerCharacteristicsInfo.arr1[index].value) * 0.8;
+ let num1 = Number(this.powerCharacteristicsInfo.arr1[index].value) * 1.2;
+ if (Number(val) > num0 && Number(val) < num1) {
+ this.powerCharacteristicsInfo.arr3[index].state = 1;
+ } else {
+ this.powerCharacteristicsInfo.arr3[index].state = 2;
+ }
+ },
+ //闃叉尟閿ゅ姛鐜囩壒鎬т繚瀛樻柟娉�
+ savePowerCharacteristics() {
+ let obj0 = {};
+ obj0.arr0 = this.powerCharacteristicsInfo.arr0;
+ obj0.arr1 = this.powerCharacteristicsInfo.arr1;
+ let obj1 = {};
+ obj1.arr2 = this.powerCharacteristicsInfo.arr2;
+ obj1.arr3 = this.powerCharacteristicsInfo.arr3;
+ this.$axios
+ .post(
+ this.$api.insOrderPlan.saveInsContext2,
+ {
+ id: this.powerCharacteristicsInfo.insProductResult
+ ? this.powerCharacteristicsInfo.insProductResult.id
+ : "",
+ insProductId: this.powerCharacteristicsInfo.id,
+ sampleId: this.currentSample.id,
+ orderId: this.currentSample.insOrderId,
+ insValue: JSON.stringify(obj0),
+ comValue: JSON.stringify(obj1),
+ templateName: "闃叉尟閿ゅ姛鐜囩壒鎬�",
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ }
+ )
+ .then((res) => {
+ if (res.code == 201) {
+ this.$message.error("淇濆瓨澶辫触");
+ return;
+ }
+ this.$message.success("淇濆瓨鎴愬姛");
+ })
+ .catch((err) => {
+ console.log(err);
+ });
+ },
+ // 闃叉尟閿ゅ姛鐜囩壒鎬�---缁撴潫
+ // 鏋剁┖瀵煎湴绾垮簲鍔涘簲鍙�---寮�濮�
+ getStressStrainInfo() {
+ this.powerList = this.HaveJson(this.powerList0);
+ let obj = this.currentSample.insProduct.filter((m) =>
+ m.inspectionItem.includes("搴斿姏搴斿彉")
+ )[0];
+ // 鑾峰彇璁惧鍒楄〃
+ this.getEquipOptions(true, obj.id);
+ this.stressStrainInfo.model = this.currentSample.model;
+ this.stressStrainInfo.methodS = obj.methodS;
+ this.stressStrainInfo.id = obj.id;
+ this.stressStrainInfo.insProductResult = obj.insProductResult;
+ // 鍥炴樉鏁版嵁
+ this.stressStrainInfo.elasticity = obj.elasticityModulus;
+ if (
+ obj.insProductResult &&
+ obj.insProductResult.insValue &&
+ obj.insProductResult.insValue.length > 5
+ ) {
+ this.powerList = [];
+ let obj0 = JSON.parse(obj.insProductResult.insValue);
+ for (let i in obj0) {
+ this.powerList.push({
+ value: i,
+ arr: obj0[i],
+ });
+ }
+ }
+ let ask = obj.ask
+ ? obj.ask
+ .replace("=", "")
+ .replace("<", "")
+ .replace(">", "")
+ .replace("锛�", "")
+ .replace("锛�", "")
+ .replace("鈮�", "")
+ .replace("鈮�", "")
+ : 0;
+ this.stressStrainInfo.ask = ask;
+ },
+ //鏋剁┖鍦扮嚎搴斿姏搴斿彉淇濆瓨鏂规硶
+ saveStressStrain() {
+ if (
+ this.stressStrainInfo.elasticity == null ||
+ this.stressStrainInfo.elasticity == "" ||
+ undefined == this.stressStrainInfo.elasticity
+ ) {
+ this.$message.error("璇峰厛濉啓寮规�фā閲�");
+ return;
+ }
+ let obj = {};
+ for (let i = 0; i < this.powerList.length; i++) {
+ if (this.powerList[i].value) {
+ obj[this.powerList[i].value] = this.powerList[i].arr;
+ }
+ }
+ obj.elasticityModulus = this.stressStrainInfo.elasticity;
+ this.$axios
+ .post(
+ this.$api.insOrderPlan.saveInsContext2,
+ {
+ id: this.stressStrainInfo.insProductResult
+ ? this.stressStrainInfo.insProductResult.id
+ : "",
+ sampleId: this.currentSample.id,
+ orderId: this.currentSample.insOrderId,
+ insProductId: this.stressStrainInfo.id,
+ insValue: JSON.stringify(obj),
+ templateName: "鏋剁┖鍦扮嚎搴斿姏搴斿彉",
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ }
+ )
+ .then((res) => {
+ if (res.code == 201) {
+ this.$message.error("淇濆瓨澶辫触");
+ return;
+ }
+ this.$message.success("淇濆瓨鎴愬姛");
+ })
+ .catch((err) => {
+ console.log(err);
+ });
+ },
+ // 鍒犻櫎璁板綍
+ delStressStrain(index) {
+ if (this.powerList.length == 1) {
+ this.$message.warning("鑷冲皯闇�瑕佷竴鏉℃暟鎹�");
+ return;
+ }
+ this.powerList.splice(index, 1);
+ },
+ // 娣诲姞璁板綍
+ addStressStrain() {
+ this.powerList.push({
+ value: "",
+ arr: ["", "", "", "", "", ""],
+ });
+ },
+ // 濉啓寮规�фā閲�
+ changeElasticity(e) {
+ if (e) {
+ if (!this.stressStrainInfo.ask) {
+ this.$message.warning("璇峰厛鍘绘爣鍑嗗簱缁存姢鏍囧噯閲�");
+ this.stressStrainInfo.elasticity = null;
+ return;
+ }
+ let num = Math.abs(e - Number(this.stressStrainInfo.ask));
+ if (num > 2) {
+ this.$message.warning("寮规�фā閲忎笉鑳借秴杩囨爣鍑嗛噺鐨劼�2");
+ this.stressStrainInfo.elasticity = null;
+ return;
+ }
+ this.stressStrainInfo.elasticity = e;
+ // else {
+ // this.$axios
+ // .post(
+ // this.$api.insOrderPlan.write2 +
+ // "?id=" +
+ // this.stressStrainInfo.id +
+ // "&elasticityModulus=" +
+ // e
+ // )
+ // .then((res) => {
+ // if (res.code == 201) {
+ // this.$message.error("淇濆瓨澶辫触");
+ // return;
+ // }
+ // this.$message.success("宸蹭繚瀛�");
+ // });
+ // }
+ }
+ },
+ // 鏋剁┖瀵煎湴绾垮簲鍔涘簲鍙�---缁撴潫
+ // 寮у瀭鐗规��---寮�濮�
+ // 鍒犻櫎琛�
+ deleteSag(index) {
+ if (this.sagData.length == 1) {
+ this.$message.warning("鑷冲皯闇�瑕佷竴鏉℃暟鎹�");
+ return;
+ }
+ this.sagData.splice(index, 1);
+ //this.saveSageInfo('楂樺害','height')
+ this.saveSageInfo("寮у瀭", "sag");
+ this.saveSageInfo("瀹ゆ俯", "temperature");
+ this.saveSageInfo("寮犲姏", "remark");
+ this.saveSageInfo("瀵肩嚎娓╁害", this.sagData[this.sagData.length - 1]);
+ },
+ // 娣诲姞寮у瀭妫�娴�
+ addSag() {
+ this.sagData.push({
+ height: null,
+ sag: null,
+ value0: null,
+ value1: null,
+ value2: null,
+ value3: null,
+ value4: null,
+ value5: null,
+ average: null,
+ temperature: null,
+ remark: null,
+ });
+ },
+ // 鍒濆鍖栭〉闈㈡暟鎹�
+ getSageInfo() {
+ let obj = this.currentSample.insProduct.filter((m) =>
+ m.inspectionItem.includes("寮у瀭")
+ )[0];
+ // 鑾峰彇璁惧鍒楄〃
+ this.getEquipOptions(true, obj.id);
+ this.$axios
+ .post(this.$api.insOrderPlan.getSagTemperatureProducts, {
+ sampleId: this.currentSample.id,
+ })
+ .then((res) => {
+ if (res.code == 201) return;
+ let { productVos, sampleVo } = res.data;
+ // 鍥炴樉鍩虹淇℃伅
+ this.sagForm = sampleVo;
+ this.sagForm.productVos = productVos;
+ productVos.forEach((item) => {
+ // 鍒濆鍖栧悗绔弬鏁�
+ this.param[item.insProduct.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: {
+ i: item.insProduct.id,
+ r: 0,
+ c: 0,
+ v: {
+ v: null,
+ },
+ },
+ equipValue: [],
+ equipName: [],
+ insResult: {
+ i: item.insProduct.id,
+ v: {
+ v: null,
+ },
+ },
+ };
+ // 鏈夋暟鎹�->鍥炴樉鏁版嵁
+ if (item.insProduct.insProductResult) {
+ let type = item.insProduct.inspectionItemSubclass;
+ let insValue = JSON.parse(
+ item.insProduct.insProductResult.insValue
+ );
+ if (
+ !(
+ type == "棰濆畾鎷夋柇鍔�" ||
+ type == "璺ㄨ窛闀垮害" ||
+ type == "杞借嵎" ||
+ type == "瀵肩嚎娓╁害"
+ )
+ ) {
+ if (this.sagData.length < insValue.length) {
+ for (let i = this.sagData.length; i < insValue.length; i++) {
+ this.sagData.push({
+ height: null,
+ sag: null,
+ value0: null,
+ value1: null,
+ value2: null,
+ value3: null,
+ value4: null,
+ value5: null,
+ average: null,
+ temperature: null,
+ remark: null,
+ });
+ }
+ }
+ }
+ if (insValue.length > 0) {
+ switch (type) {
+ case "棰濆畾鎷夋柇鍔�":
+ this.$set(this.sagForm, "tensileForce", insValue[0].v);
+ break;
+ case "璺ㄨ窛闀垮害":
+ this.$set(this.sagForm, "spanLength", 100);
+ break;
+ case "杞借嵎":
+ this.$set(this.sagForm, "load", insValue[0].v);
+ break;
+ // case '楂樺害':
+ // insValue.forEach((m,i)=>{
+ // this.sagData[i].height = m.v
+ // })
+ // break;
+ case "寮у瀭":
+ insValue.forEach((m, i) => {
+ this.sagData[i].sag = m.v;
+ });
+ break;
+ case "瀹ゆ俯":
+ insValue.forEach((m, i) => {
+ this.sagData[i].temperature = m.v;
+ });
+ break;
+ case "寮犲姏":
+ insValue.forEach((m, i) => {
+ this.sagData[i].remark = m.v;
+ });
+ break;
+ case "瀵肩嚎娓╁害":
+ let comValue = JSON.parse(
+ item.insProduct.insProductResult.comValue
+ );
+ if (comValue.length > 0) {
+ comValue.forEach((m, i) => {
+ this.sagData[i].average = m.v ? m.v : null;
+ });
+ }
+ insValue.forEach((m, i) => {
+ this.sagData[m.c][`value${m.r}`] = m.v ? m.v : null;
+ });
+ break;
+ }
+ }
+ }
+ });
+ })
+ .catch((err) => {});
+ },
+ // 淇濆瓨鏁版嵁
+ saveSageInfo(type, value) {
+ let obj = this.sagForm.productVos.find(
+ (m) => m.insProduct.inspectionItemSubclass == type
+ );
+ if (obj) {
+ if (type == "棰濆畾鎷夋柇鍔�" || type == "璺ㄨ窛闀垮害" || type == "杞借嵎") {
+ this.param[obj.insProduct.id].insValue = [
+ {
+ i: obj.insProduct.id,
+ r: 0,
+ c: 0,
+ v: {
+ v: value,
+ },
+ },
+ ];
+ } else if (type == "瀵肩嚎娓╁害") {
+ let arr = [];
+ for (let i = 0; i < 6; i++) {
+ arr.push(value[`value${i}`]);
+ }
+ arr = arr.filter((m) => m != null).map((m) => Number(m));
+ let num = 0;
+ arr.forEach((item) => {
+ num += item;
+ });
+ value.average = (num / arr.length).toFixed(2);
+ let comValueList = [];
+ let insValueList = [];
+ this.sagData.forEach((item, index) => {
+ comValueList.push({
+ i: obj.insProduct.id,
+ r: 0,
+ c: index,
+ v: {
+ v: item.average,
+ },
+ });
+ for (let i = 0; i < 6; i++) {
+ insValueList.push({
+ i: obj.insProduct.id,
+ r: i,
+ c: index,
+ v: {
+ v: item[`value${i}`],
+ },
+ });
+ }
+ });
+ this.param[obj.insProduct.id].insValue = insValueList;
+ this.param[obj.insProduct.id].comValue = comValueList;
+ } else {
+ let arr = this.sagData.map((m) => {
+ let obj0 = {
+ i: obj.insProduct.id,
+ r: 0,
+ c: 0,
+ v: {
+ v: m[value],
+ },
+ };
+ return obj0;
+ });
+ this.param[obj.insProduct.id].insValue = arr;
+ }
+ // 杩涜鏁版嵁鐨勪繚瀛�
+ this.saveInsContext(obj.insProduct.id);
+ }
+ },
+ // 寮у瀭鐗规��---缁撴潫
+ // 鏁版嵁閲囬泦
+ getDataAcquisitionDevice() {
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ this.tableLists.find((m) => m.templateId == this.currentTable)
+ .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�"
+ ) {
+ // 娓╁害寰幆妫�楠屽師濮嬭褰�----鏁伴噰----PK8000
+ let temperature = this.wareForm.inspectionItemSubclass;
+ if (typeof temperature == "string" && temperature.includes("(甯告俯)")) {
+ temperature = `20鈩�(甯告俯)`;
+ } else {
+ temperature = temperature + "鈩�";
+ }
+ this.dataAcquisitionLoading = true;
+ this.$axios
+ .post(
+ this.$api.deviceScope.temDataAcquisition,
+ {
+ entrustCode: this.insOrder.entrustCode,
+ sampleCode: this.currentSample.sampleCode,
+ model: this.wareForm0.model,
+ cycles: this.wareForm.inspectionItem,
+ temperature: temperature,
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ noQs: true,
+ }
+ )
+ .then((res) => {
+ this.dataAcquisitionLoading = false;
+ if (res.code != 200) {
+ return;
+ }
+ // 璧嬪�煎洖鏄綪K8000鐨勬暟鎹�
+ this.wareFormChange();
+ });
+ } else {
+ const _than = this;
+ // 涓�鑸殑鏁版嵁閲囬泦
+ _than.dataAcquisitionLoading = true;
+ let urlStr =
+ this.$api.deviceScope.dataCollection +
+ "?entrustCode=" +
+ this.insOrder.entrustCode +
+ "&sampleCode=" +
+ this.currentSample.sampleCode +
+ "&id=" +
+ this.currentSample.id;
+ console.log(_than.fibers);
+ if (_than.fibers && _than.fibers.length > 0) {
+ //褰撳墠閫変腑鐨勫厜绾ゅ甫
+ let currentFibers = _than.fibers.find(
+ (f) => f.id == _than.currentTab
+ );
+ if (null == currentFibers || currentFibers.length == 0) {
+ currentFibers = _than.fibers[0];
+ }
+ urlStr +=
+ "&fiberOpticRibbon=" +
+ currentFibers.bushingColor +
+ "-" +
+ currentFibers.code;
+ }
+ let replaceUrlStr = urlStr
+ .split("")
+ .map((s) => s.replace("#", "%23"))
+ .join("");
+ this.$axios.get(replaceUrlStr).then((res) => {
+ this.dataAcquisitionLoading = false;
+ if (res.code != 200) {
+ return;
+ }
+ this.dataAcquisitionInfoNew = this.HaveJson(res.data);
+ // 瀵规暟閲囧洖鏉ョ殑鍊艰繘琛屽鐞�
+ this.handleDataAcquisition(res.data);
+ });
+ }
+ },
+ handleDataAcquisition(data) {
+ // 鏄惁鍙互缂栬緫鏁伴噰鏁版嵁
+ if (this.dataAcquisitionEidtAble) {
+ this.getDataType = 1;
+ } else {
+ this.getDataType = 2;
+ }
+ this.dataAcquisitionInfo = {};
+ this.getData = [];
+ for (let i in data) {
+ let obj = {
+ faName: i,
+ child: [],
+ };
+ // 寰幆鏁伴噰鏁版嵁
+ for (let j in data[i]) {
+ // 鎷兼帴瀛楃涓� 妫�楠岄」+妫�楠屽瓙椤�
+ let str0 = "";
+ if (i == j) {
+ str0 = i + ",";
+ } else {
+ str0 = i + "," + j;
+ }
+ if (
+ j != "frequency" &&
+ data[i][j] &&
+ (!data[i][j].result || typeof data[i][j].result == "string")
+ ) {
+ // 澶勭悊鏁伴噰淇℃伅鏍煎紡
+ if (data[i][j].result) {
+ this.dataAcquisitionInfo[str0] = {
+ value: data[i][j].result,
+ frequency: data[i].frequency,
+ };
+ }
+ let list = this.tableList[0].arr;
+ // 寰幆椤甸潰鍒楄〃淇℃伅锛屽垽鏂暟閲囨暟鎹搴旈〉闈㈠垪琛ㄤ俊鎭殑妫�楠岄」鏄摢涓紝骞剁粰褰撳墠妫�楠岄」缁戝畾璁惧淇℃伅
+ list.forEach((item, index) => {
+ let num0 = 0;
+ let str = "";
+ item.forEach((m) => {
+ if (
+ m.v.ps &&
+ (m.v.ps.value == "妫�楠屽瓙椤�" || m.v.ps.value == "妫�楠岄」")
+ ) {
+ if (m.v.ps && m.v.ps.value == "妫�楠岄」") {
+ if (num0 == 0) {
+ str = m.v.v + ",";
+ num0++;
+ }
+ }
+ if (m.v.ps && m.v.ps.value == "妫�楠屽瓙椤�") {
+ if (num0 == 1) {
+ str = str + m.v.v;
+ }
+ }
+ }
+ // 缁戝畾璁惧淇℃伅
+ if (
+ data[i][j].equipName &&
+ data[i][j].equipValue &&
+ m.v &&
+ m.v.ps &&
+ m.v.ps.value == "璁惧缂栫爜" &&
+ str0 == str
+ ) {
+ if (!m.v.v) {
+ this.changeEquip(
+ data[i][j].equipValue,
+ m,
+ data[i][j].equipName
+ );
+ }
+ }
+ });
+ });
+ } else if (
+ j != "frequency" &&
+ data[i][j] &&
+ Array.isArray(data[i][j].result)
+ ) {
+ // 濡傛灉杩斿洖鐨勬暟閲囨暟鎹槸鏁扮粍锛屽垯澶勭悊鏁扮粍
+ // 浠ヤ笅閫昏緫涓鸿幏鍙栨瘡涓楠岄」鍙緭鍏ョ殑妫�楠屽�肩殑鏈�澶т釜鏁�
+ let str0 = "";
+ if (i == j) {
+ str0 = i + ",";
+ } else {
+ str0 = i + "," + j;
+ }
+ let list = this.tableList[0].arr;
+ let maxNum = 0;
+ list.forEach((item, index) => {
+ let num0 = 0;
+ let str = "";
+ item.forEach((m) => {
+ if (
+ m.v.ps &&
+ (m.v.ps.value == "妫�楠屽瓙椤�" || m.v.ps.value == "妫�楠岄」")
+ ) {
+ if (m.v.ps && m.v.ps.value == "妫�楠岄」") {
+ if (num0 == 0) {
+ str = m.v.v + ",";
+ num0++;
+ }
+ }
+ if (m.v.ps && m.v.ps.value == "妫�楠屽瓙椤�") {
+ if (num0 == 1) {
+ str = str + m.v.v;
+ }
+ }
+ let num = 0;
+ list[index].forEach((n) => {
+ if (
+ n.v.ps &&
+ n.v.ps.value &&
+ typeof n.v.ps.value == "string" &&
+ n.v.ps.value.includes("妫�楠屽��")
+ ) {
+ num++;
+ }
+ });
+ if (str0 == str) {
+ maxNum = num;
+ }
+ }
+ // 缁戝畾璁惧
+ if (
+ data[i][j].equipName &&
+ data[i][j].equipValue &&
+ m.v &&
+ m.v.ps &&
+ m.v.ps.value == "璁惧缂栫爜" &&
+ str0 == str
+ ) {
+ if (!m.v.v) {
+ console.log(
+ "changeEquip-->>",
+ data[i][j].equipValue,
+ m,
+ data[i][j].equipName
+ );
+ this.changeEquip(
+ data[i][j].equipValue,
+ m,
+ data[i][j].equipName
+ );
+ }
+ }
+ });
+ });
+ // let arr3 = []
+ // for (let l=0 ;i<data[i][j].result.length;i++){
+ // arr3.push({
+ // id:,
+ // value:
+ // })
+ // }
+ // 鑾峰彇鍒版渶澶ф楠屽�艰緭鍏ヤ釜鏁板悗閲嶇粍鏁版嵁
+ let obj0 = {
+ name: j,
+ arr: data[i][j].result,
+ maxNum: maxNum,
+ value: [],
+ };
+ // 濡傛灉鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏皢鏁伴噰鏁版嵁鍦ㄥ脊妗嗕腑灞曠ず锛岀敤鎴烽�夋嫨闇�瑕佹墜鍔ㄩ�夋嫨鏁伴噰鐨勪俊鎭�
+ if (
+ data[i][j].result &&
+ Array.isArray(data[i][j].result) &&
+ data[i][j].result.length > maxNum
+ ) {
+ obj.child.push(obj0);
+ } else {
+ this.dataAcquisitionInfo[str0] = {
+ value: data[i][j].result,
+ };
+ }
+ }
+ }
+ if (obj.child.length > 0) {
+ this.getData.push(obj);
+ }
+ }
+ // 濡傛灉瀛樺湪鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏脊鍑哄脊妗嗛�夋嫨
+ if (this.getData.length > 0) {
+ this.dataGetDia = true;
+ this.getDataIndex = [];
+ } else {
+ // 濡傛灉閮戒笉瀛樺湪锛屽垯锛岃繘鍏ュ鐞嗘暟閲囩嚎绋嬮噷鍘诲鐞嗘暟鎹�
+ try {
+ // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+ this.getDataIndexLoading = false;
+ this.dataGetDia = false;
+ this.getDataTypeId = "";
+ this.worker0.postMessage(
+ JSON.stringify({
+ dataAcquisitionInfo: this.dataAcquisitionInfo,
+ list: this.tableList[0].arr,
+ })
+ );
+ } catch (error) {
+ console.log(1111, error);
+ }
+ }
+ // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋�
+ this.worker0.onmessage = (event) => {
+ let result = JSON.parse(event.data);
+ if (result.method == "changeInput") {
+ // 閲囬泦鍚庣殑鏁版嵁锛岄渶瑕佽繘琛岃绠楃殑绾跨▼杩涜璁$畻
+ let { list, n } = result.value;
+ this.$set(this.tableList[0], "arr", list);
+ this.changeInput(
+ "",
+ `${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,
+ n
+ );
+ } else if (result.getDataTypeId) {
+ // 鑾峰彇鍒版暟閲囨渶鍚庝竴椤癸紝妫�楠岄」鐨処D
+ this.getDataTypeId = result.getDataTypeId;
+ }
+ };
+ },
+ // 濡傛灉瀛樺湪鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏脊鍑哄脊妗嗛�夋嫨锛岃繖閲屾槸寮规鐨勬彁浜�
+ submitDataGet() {
+ if (this.getDataIndex.length == 0) {
+ this.$message.error("璇烽�夋嫨闇�瑕侀噰闆嗙殑鏁版嵁");
+ return;
+ }
+ this.getDataIndex.sort((a, b) => a - b);
+ for (let i = 0; i < this.getData.length; i++) {
+ for (let j = 0; j < this.getData[i].child.length; j++) {
+ // 瀵圭敤鎴烽�夋嫨鐨勬暟閲囦俊鎭繘琛屽鐞嗭紝璧嬪��
+ let arr = [];
+ for (let k = 0; k < this.getDataIndex.length; k++) {
+ arr.push(
+ this.dataAcquisitionInfoNew[this.getData[i].faName][
+ this.getData[i].child[j].name
+ ].result[this.getDataIndex[k]]
+ );
+ }
+ this.dataAcquisitionInfoNew[this.getData[i].faName][
+ this.getData[i].child[j].name
+ ].result = arr;
+ }
+ }
+ this.getDataIndexLoading = true;
+ // 璧嬪�煎畬鎴愬悗闇�瑕佸啀娆¤繘鍏ュ鐞嗘暟閲囩嚎绋嬮噷鍘诲鐞嗘暟鎹�
+ this.handleDataAcquisition(this.dataAcquisitionInfoNew);
+ },
+ // 澶氱嚎绋�
+ startWorker() {
+ if (this.worker) {
+ this.stopWorker(); // 纭繚涔嬪墠鐨� Worker 宸插仠姝�
+ }
+ // 鍒涘缓 Worker 瀹炰緥
+ this.worker = new Worker("/static/js/worker.js");
+ if (this.worker0) {
+ this.stopWorker(); // 纭繚涔嬪墠鐨� Worker 宸插仠姝�
+ }
+ // 鍒涘缓 Worker 瀹炰緥
+ this.worker0 = new Worker("/static/js/worker0.js");
+ },
+ // 鍋滄澶氱嚎绋�
+ stopWorker() {
+ if (this.worker) {
+ this.worker.terminate();
+ this.worker = null;
+ }
+ if (this.worker0) {
+ this.worker0.terminate();
+ this.worker0 = null;
+ }
+ },
+ // 娓╁害寰幆---寮�濮�
+ changeItem(row) {
+ // 鍐呯銆佸绔繘琛岃祴鍊奸�昏緫澶勭悊
+
+ // 璧嬪�煎埌椤甸潰
+ if (row.value0 && !row.value1) {
+ // 璧嬪�煎唴绔�
+ this.$set(row, "comValue", Number(row.value0).toFixed(3));
+ } else if (!row.value0 && row.value1) {
+ // 璧嬪�煎绔�
+ this.$set(row, "comValue", Number(row.value1).toFixed(3));
+ } else if (row.value0 && row.value1) {
+ // 璧嬪�艰绠楀��
+ this.$set(
+ row,
+ "comValue",
+ ((Number(row.value0) + Number(row.value1)) / 2).toFixed(3)
+ );
+ } else {
+ return;
+ }
+ // 璧嬪�煎埌浼犲埌鍚庣鐨勫弬鏁�---鐗规畩椤圭洰蹇呴』涓ユ牸鎸夌収杩欑鏍煎紡浼犲弬锛屽惁鍒欏悗绔瘑鍒笉浜�
+ // 璧嬪�煎唴澶栫
+ this.param[row.id].insValue = [
+ {
+ i: row.id,
+ v: {
+ v: row.value0,
+ },
+ },
+ {
+ i: row.id,
+ v: {
+ v: row.value1,
+ },
+ },
+ ];
+ // 璧嬪�艰绠楀��
+ this.param[row.id].comValue = [
+ {
+ i: row.id,
+ v: {
+ v: row.comValue,
+ },
+ },
+ ];
+ // 鍒ゆ柇缁撴灉锛屽緱鍑虹粨璁�
+ if (this.wareForm.inspectionItemSubclass != "20(甯告俯)") {
+ // 缁欓〉闈㈠垪琛ㄨ祴鍊兼渶缁堝��
+ row.resValue = row.comValue
+ ? Math.abs(row.comValue - Number(row.insProduct.complue)).toFixed(3)
+ : "";
+ // 缁欎紶閫掑埌鍚庣鐨勫弬鏁拌祴鍊兼渶缁堝��
+ this.param[row.id].resValue.v.v = row.resValue;
+ // 鍒ゆ柇缁撹锛岀粰椤甸潰鍒楄〃璧嬪�肩粨璁�
+ if (row.ask && row.resValue) {
+ if (row.ask.includes("<")) {
+ row.insResult = row.resValue < row.ask.split("<")[1] ? 1 : 0;
+ } else if (row.ask.includes(">")) {
+ row.insResult = row.resValue < row.ask.split(">")[1] ? 1 : 0;
+ } else if (row.ask.includes("=")) {
+ row.insResult = row.resValue == row.ask.split("=")[1] ? 1 : 0;
+ } else if (row.ask.includes("鈮�")) {
+ row.insResult = row.resValue >= row.ask.split("鈮�")[1] ? 1 : 0;
+ } else if (row.ask.includes("鈮�")) {
+ row.insResult = row.resValue <= row.ask.split("鈮�")[1] ? 1 : 0;
+ }
+ // 缁欎紶閫掑埌鍚庣鐨勫弬鏁拌祴鍊肩粨璁�
+ this.param[row.id].insResult.v.v = row.insResult;
+ }
+ } else {
+ // 20(甯告俯)榛樿鍚堟牸
+ this.param[row.id].insResult.v.v = 1;
+ }
+ this.$refs.wareTableData.doLayout();
+ // 杩涜鏁版嵁鐨勪繚瀛�
+ this.saveInsContext(row.id);
+ },
+ // 褰撳惊鐜鏁般�佹俯搴︾偣鍙樺寲銆丳K8000鏁伴噰鏃朵細璋冪敤锛屼富瑕佹槸鑾峰彇淇℃伅杩涜鍥炴樉
+ wareFormChange(m, type) {
+ if (
+ this.PROJECT != "妫�娴嬩腑蹇�" ||
+ !this.tableLists.find((m) => m.templateId == this.currentTable) ||
+ this.tableLists.find((m) => m.templateId == this.currentTable)
+ .templateName != "娓╁害寰幆妫�楠屽師濮嬭褰�"
+ ) {
+ return;
+ }
+ if (m && type) {
+ this.wareForm[type] = m;
+ }
+ let wareForm = { ...this.wareForm };
+ if (this.wareForm.inspectionItemSubclass == "20(甯告俯)") {
+ wareForm.inspectionItemSubclass = "20鈩�(甯告俯)";
+ } else {
+ wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass + "鈩�";
+ }
+ this.wareTableDataLoading = true;
+ this.$axios
+ .post(this.$api.insOrderPlan.temCycle, {
+ sampleId: this.currentSample.id,
+ ...wareForm,
+ })
+ .then((res) => {
+ this.wareTableDataLoading = false;
+ if (res.code == 201) return;
+ let { productVos, sampleVo } = res.data;
+ this.wareForm0 = sampleVo;
+ // 鍒濆鍖栦紶鍒板悗绔殑鍙傛暟
+ productVos = productVos.map((m) => {
+ let obj = { ...m, ...m.insProduct };
+ this.param[obj.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: {
+ i: obj.id,
+ v: {
+ v: null,
+ },
+ },
+ equipValue: [],
+ equipName: [],
+ insResult: {
+ i: obj.id,
+ v: {
+ v: null,
+ },
+ },
+ };
+ let insProductResult = obj.insProductResult;
+ // 缁欎紶閫掑埌鍚庣鐨勫弬鏁拌繘琛岃祴鍊硷紝缁欓〉闈㈡暟鎹祴鍊�
+ if (insProductResult) {
+ for (let i in insProductResult) {
+ switch (i) {
+ // 妫�楠屽�艰祴鍊�
+ case "insValue":
+ let insValue = JSON.parse(insProductResult[i]);
+ if (insValue && insValue.length > 1) {
+ // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+ this.param[obj.id].insValue = [
+ {
+ i: obj.id,
+ v: {
+ v: insValue[0].v,
+ },
+ },
+ {
+ i: obj.id,
+ v: {
+ v: insValue[1].v,
+ },
+ },
+ ];
+ // 椤甸潰鏁版嵁璧嬪��
+ obj.value0 = insValue[0].v;
+ obj.value1 = insValue[1].v;
+ } else if (insValue && insValue.length == 1) {
+ // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+ this.param[obj.id].insValue = [
+ {
+ i: obj.id,
+ v: {
+ v: insValue[0].v,
+ },
+ },
+ {
+ i: obj.id,
+ v: {
+ v: "",
+ },
+ },
+ ];
+ // 椤甸潰鏁版嵁璧嬪��
+ obj.value0 = insValue[0].v;
+ obj.value1 = "";
+ }
+ break;
+ // 璁$畻鍊艰祴鍊�
+ case "comValue":
+ let comValue = JSON.parse(insProductResult[i]);
+ if (comValue && comValue.length > 0) {
+ // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+ this.param[obj.id].comValue = [
+ {
+ i: obj.id,
+ v: {
+ v: comValue[0].v,
+ },
+ },
+ ];
+ // 椤甸潰鏁版嵁璧嬪��
+ obj.comValue = comValue[0].v;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ // 鏈�缁堝�艰祴鍊�
+ // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+ this.param[obj.id].resValue = {
+ i: obj.id,
+ v: {
+ v: obj.lastValue,
+ },
+ };
+ // 椤甸潰鏁版嵁璧嬪��
+ obj.resValue = obj.lastValue;
+ // 缁撹璧嬪��
+ // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+ this.param[obj.id].insResult = {
+ i: obj.id,
+ v: {
+ v: obj.insResult,
+ },
+ };
+ }
+ return obj;
+ });
+ // 浠ヤ笅鏄娓╁害寰幆椤甸潰鍛堢幇杩涜澶勭悊锛屽幓閲嶃�佹暟鎹噸缃瓑绛�
+ let arr = [];
+ let arr0 = [];
+ let mySet = new Set();
+ productVos.forEach((m, i) => {
+ let num0 = mySet.size;
+ mySet.add(m.inspectionItemClass);
+ let num1 = mySet.size;
+ if (num0 != num1) {
+ if (i > 0) {
+ arr.push(arr0);
+ }
+ arr0 = [];
+ arr0.push(m);
+ } else {
+ arr0.push(m);
+ }
+ });
+ arr.push(arr0);
+ let arr1 = [];
+ this.wareLength = [];
+ for (let i = 0; i < arr.length; i++) {
+ this.wareLength.push(arr[i][0].inspectionItemClass);
+ }
+ for (let i = 0; i < arr[0].length; i++) {
+ arr1.push([]);
+ }
+ arr.forEach((item, index) => {
+ item.forEach((m, i) => {
+ try {
+ arr1[i].push(m);
+ } catch (e) {
+ console.log(e);
+ }
+ });
+ });
+ let arr2 = [];
+ arr1.forEach((item) => {
+ let obj = {
+ bushColor: item[0].bushColor,
+ code: item[0].code,
+ color: item[0].color,
+ arr: item,
+ };
+ arr2.push(obj);
+ });
+ // 杩欐槸椤甸潰鏈�缁堝憟鐜扮殑鏍煎紡
+ this.wareTableData = arr2;
+ });
+ // 鑾峰彇璁惧鍒楄〃
+ this.getEquipOptions(true, this.currentSample.insProduct[0].id);
+ // this.$refs.wareTableData&&this.$refs.wareTableData.doLayout()
+ },
+ // 娓╁害寰幆---缁撴潫
+ // 鐑惊鐜�---寮�濮�
+ // 寰幆娆℃暟鍒囨崲鏃惰皟鐢�
+ thermalCyclingChange() {
+ this.thermalCyclingLoading = true;
+ this.$axios
+ .post(this.$api.insOrderPlan.temCycle, {
+ sampleId: this.currentSample.id,
+ inspectionItem: this.thermalCyclingInfo.inspectionItem,
+ })
+ .then((res) => {
+ this.thermalCyclingLoading = false;
+ if (res.code == 201) return;
+ let { productVos, sampleVo } = res.data;
+ this.thermalCyclingInfo = { ...this.thermalCyclingInfo, ...sampleVo };
+ // if(this.thermalCyclingInfo.inspectionItem>1){
+ // for(let i in this.param){
+ // if(this.param[i].inspectionItemSubclass){
+ // delete this.param[i]
+ // }
+ // }
+ // }
+ for (let i in this.param) {
+ if (this.param[i].inspectionItemSubclass) {
+ delete this.param[i];
+ }
+ }
+ if (productVos.length > 0) {
+ this.thermalCyclingInfo.inspectionItemClass =
+ productVos[0].insProduct.inspectionItemClass;
+ // 鏍规嵁妫�楠岄」锛屽垵濮嬪寲浼犲埌鍚庣鐨勫弬鏁�
+ productVos.forEach((item) => {
+ this.param[item.insProduct.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: {
+ i: item.insProduct.id,
+ r: 0,
+ c: 0,
+ v: {
+ v: null,
+ },
+ },
+ equipValue: [],
+ equipName: [],
+ insResult: {
+ i: item.insProduct.id,
+ v: {
+ v: null,
+ },
+ },
+ inspectionItemSubclass: item.insProduct.inspectionItemSubclass,
+ };
+ let obj = { ...item, ...item.insProduct };
+ let insProductResult = obj.insProductResult;
+ if (insProductResult) {
+ // 缁欓〉闈㈠垪琛ㄨ祴鍊硷紝缁欏悗绔紶鍙傝祴鍊�
+ for (let i in insProductResult) {
+ switch (i) {
+ case "insValue":
+ // 缁欓〉闈㈠垪琛ㄨ祴鍊�
+ let insValue = JSON.parse(insProductResult[i]);
+ if (insValue && insValue.length > 0) {
+ this.thermalCyclingInfo.length = 0;
+ this.thermalCyclingInfo.arr.forEach((a) => {
+ if (a.name == obj.inspectionItemSubclass) {
+ a.arr = [];
+ for (let i = 0; i < insValue.length; i++) {
+ a.arr.push({
+ value0: insValue[i].v,
+ value1: insValue[i].w,
+ });
+ this.thermalCyclingInfo.length++;
+ }
+ a.insResult = obj.insResult;
+ }
+ });
+ // 缁欏悗绔紶鍙傝祴鍊�
+ this.param[obj.id].insValue = [];
+ insValue.forEach((m) => {
+ this.param[obj.id].insValue.push({
+ i: obj.id,
+ r: 0,
+ c: 0,
+ w: m.w,
+ v: {
+ v: m.v,
+ },
+ });
+ });
+ }
+ break;
+ }
+ }
+ // 缁欏悗绔紶鍙傝祴鍊�
+ this.param[obj.id].insResult = {
+ i: obj.id,
+ v: {
+ v: obj.insResult,
+ },
+ };
+ } else {
+ // 缁欓〉闈㈠垪琛ㄨ祴鍊�
+ this.thermalCyclingInfo.arr.forEach((a) => {
+ if (a.name == obj.inspectionItemSubclass) {
+ a.insResult = null;
+ a.arr = [];
+ a.arr.push({
+ value0: "",
+ value1: "",
+ });
+ }
+ });
+ this.thermalCyclingInfo.length = 1;
+ }
+ });
+ }
+ // 鑾峰彇璁惧鍒楄〃
+ this.getEquipOptions(true, this.currentSample.insProduct[0].id);
+ });
+ },
+ // 娣诲姞妫�楠屽��
+ handleAddThermal() {
+ this.thermalCyclingInfo.length++;
+ this.thermalCyclingInfo.arr.forEach((item) => {
+ item.arr.push({
+ value0: "",
+ value1: "",
+ });
+ });
+ },
+ // 鍒犻櫎妫�楠屽��
+ handleDeleteThermal() {
+ if (this.thermalCyclingInfo.length == 1) {
+ this.$message.error("鏈�鍚庝竴鏉℃暟鎹笉鑳藉垹闄�");
+ return;
+ } else {
+ this.thermalCyclingInfo.length--;
+ this.thermalCyclingInfo.arr.forEach((item) => {
+ item.arr.pop();
+ });
+ // 鍒犻櫎鍚庨渶瑕佷繚瀛樹竴涓嬫暟鎹�
+ this.saveThermalCycling(true, { name: "瀵肩嚎娓╁害" }, true, true);
+ }
+ },
+ saveThermalCycling(m, item, type, isDelete) {
+ console.log(m, item, type);
+ console.log(this.thermalCyclingInfo);
+ // 缁撴灉鍒ゆ柇
+ if (m == "") {
+ m = "0";
+ }
+ if (m && item && type) {
+ if (
+ item.name == "瀵肩嚎娓╁害" ||
+ item.name == "鑰愬紶娓╁害" ||
+ item.name == "鎺ョ画娓╁害"
+ ) {
+ this.thermalCyclingInfo.arr.forEach((a) => {
+ if (a.name == "鑰愬紶娓╁害") {
+ a.arr.forEach((b, i) => {
+ // 鑾峰彇瀵瑰簲鐨勫绾挎俯搴�
+ let num0 = 0;
+ this.thermalCyclingInfo.arr.forEach((c) => {
+ if (c.name == "瀵肩嚎娓╁害") {
+ num0 = c.arr[i].value0;
+ }
+ });
+ // 鍒ゆ柇缁撹
+ if (!num0 || !b.value0) {
+ b.state = null;
+ } else if (Number(num0) > Number(b.value0)) {
+ b.state = 1;
+ } else {
+ b.state = 0;
+ }
+ });
+ let state = a.arr.filter((b) => b.state == null).length;
+ let state0 = a.arr.filter((b) => b.state == 0).length;
+ let state1 = a.arr.filter((b) => b.state == 1).length;
+ if (state > 0) {
+ // 寰呭畾
+ a.insResult = null;
+ } else if (state0 > 0) {
+ // 涓嶅悎鏍�
+ a.insResult = 0;
+ } else if (state1 == a.arr.length) {
+ // 鍚堟牸
+ a.insResult = 1;
+ }
+ }
+ if (a.name == "鎺ョ画娓╁害") {
+ a.arr.forEach((b, i) => {
+ // 鑾峰彇瀵瑰簲鐨勫绾挎俯搴�
+ let num0 = 0;
+ this.thermalCyclingInfo.arr.forEach((c) => {
+ if (c.name == "瀵肩嚎娓╁害") {
+ num0 = c.arr[i].value0;
+ }
+ });
+ if (!num0 || !b.value0) {
+ b.state = null;
+ } else if (Number(num0) > Number(b.value0)) {
+ b.state = 1;
+ } else {
+ b.state = 0;
+ }
+ });
+ let state = a.arr.filter((b) => b.state == null).length;
+ let state0 = a.arr.filter((b) => b.state == 0).length;
+ let state1 = a.arr.filter((b) => b.state == 1).length;
+ if (state > 0) {
+ a.insResult = null;
+ } else if (state0 > 0) {
+ a.insResult = 0;
+ } else if (state1 == a.arr.length) {
+ a.insResult = 1;
+ }
+ }
+ });
+ }
+ }
+ // 缁欏悗绔紶鍙傝祴鍊�
+ this.thermalCyclingInfo.arr.forEach((item) => {
+ for (let i in this.param) {
+ if (this.param[i].inspectionItemSubclass == item.name) {
+ switch (item.name) {
+ case "鐜娓╁害":
+ this.param[i].insResult.v.v = 1;
+ this.param[i].insValue = [];
+ item.arr.forEach((insValue) => {
+ this.param[i].insValue.push({
+ i: i,
+ r: 0,
+ c: 0,
+ v: {
+ v: insValue.value0,
+ },
+ });
+ });
+ break;
+ case "瀵肩嚎娓╁害":
+ this.param[i].insResult.v.v = 1;
+ this.param[i].insValue = [];
+ item.arr.forEach((insValue) => {
+ this.param[i].insValue.push({
+ i: i,
+ r: 0,
+ c: 0,
+ w: insValue.value1,
+ v: {
+ v: insValue.value0,
+ },
+ });
+ });
+ break;
+ case "鑰愬紶娓╁害":
+ this.param[i].insValue = [];
+ item.arr.forEach((insValue) => {
+ this.param[i].insValue.push({
+ i: i,
+ r: 0,
+ c: 0,
+ w: insValue.value1,
+ v: {
+ v: insValue.value0,
+ },
+ });
+ });
+ this.param[i].insResult.v.v = item.insResult;
+ break;
+ case "鎺ョ画娓╁害":
+ this.param[i].insValue = [];
+ item.arr.forEach((insValue) => {
+ this.param[i].insValue.push({
+ i: i,
+ r: 0,
+ c: 0,
+ w: insValue.value1,
+ v: {
+ v: insValue.value0,
+ },
+ });
+ });
+ this.param[i].insResult.v.v = item.insResult;
+ break;
+ }
+ }
+ }
+ });
+ // 淇濆瓨鏁版嵁
+ let currentId = null;
+ for (let i in this.param) {
+ if (this.param[i].inspectionItemSubclass == item.name) {
+ currentId = i;
+ }
+ }
+ if (isDelete) {
+ this.saveInsContext(currentId, true);
+ } else {
+ this.saveInsContext(currentId);
+ }
+ },
+ // 鐑惊鐜�---缁撴潫
+ // 鍗曟牴鍨傜洿鐕冪儳---寮�濮�
+ singleRootVertical() {
+ let obj = this.currentSample.insProduct.filter((m) =>
+ m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+ )[0];
+ this.singleRootVerticalInfo.arr = this.currentSample.insProduct.filter(
+ (m) => m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+ );
+ if (obj) {
+ let tell = obj.tell;
+ this.singleRootVerticalInfo.num = Number(
+ tell.split(",")[1].replace("鏍�", "")
+ );
+ this.singleRootVerticalInfo.model = obj.model;
+ this.singleRootVerticalInfo.methodName = obj.methodS;
+ this.singleRootVerticalInfo.arr.forEach((a) => {
+ this.$set(a, "value", []);
+ a.value = [];
+ for (let i = 0; i < this.singleRootVerticalInfo.num; i++) {
+ this.$set(a.value, i, "");
+ if (a.insProductResult) {
+ let valueList = JSON.parse(a.insProductResult.insValue);
+ if (valueList.length > 0) {
+ this.$set(a.value, i, valueList[i].v);
+ }
+ }
+ }
+ this.$set(a, "resValue", a.lastValue);
+ this.$set(a, "insResult", a.insResult);
+ });
+ this.getEquipOptions(true, obj.id);
+ }
+ },
+ changeSingleRootVertical(value, item) {
+ let arr = item.value.filter((m) => m !== "");
+ if (
+ item.inspectionItemSubclass == "涓婃敮鏋朵笅缂樺拰鐐寲閮ㄥ垎涓婅捣鐐逛箣闂寸殑璺濈"
+ ) {
+ // 姹傛渶灏忓��
+ item.resValue = Math.min(...arr);
+ } else {
+ // 姹傛渶澶у��
+ item.resValue = Math.max(...arr);
+ }
+ // 淇濆瓨鏈�缁堝��
+ this.param[item.id].resValue = {
+ i: item.id,
+ v: {
+ v: item.resValue,
+ },
+ };
+ // 淇濆瓨妫�楠屽��
+ this.param[item.id].insValue = [];
+ item.value.forEach((a) => {
+ let obj = {
+ i: item.id,
+ v: {
+ v: a,
+ },
+ };
+ this.param[item.id].insValue.push(obj);
+ });
+ let ask = item.ask;
+ if (ask) {
+ if (ask.includes("锝�")) {
+ ask = ask.replace("锝�", "~");
+ }
+ if (ask.includes("锛�")) {
+ ask = ask.replace("锛�", ">");
+ }
+ if (ask.includes("锛�")) {
+ ask = ask.replace("锛�", "<");
+ }
+ if (ask.includes("=")) {
+ let val = ask.replace("=", "");
+ item.insResult = item.resValue == Number(val) ? 1 : 0;
+ } else if (ask.includes("鈮�")) {
+ let val = ask.replace("鈮�", "");
+ item.insResult =
+ item.resValue == Number(val) || item.resValue > Number(val) ? 1 : 0;
+ } else if (ask.includes("鈮�")) {
+ let val = ask.replace("鈮�", "");
+ item.insResult =
+ item.resValue == Number(val) || item.resValue < Number(val) ? 1 : 0;
+ } else if (ask.includes("<")) {
+ let val = ask.replace("<", "");
+ item.insResult = item.resValue < Number(val) ? 1 : 0;
+ } else if (ask.includes(">")) {
+ let val = ask.replace(">", "");
+ item.insResult = item.resValue > Number(val) ? 1 : 0;
+ }
+ // 淇濆瓨缁撹
+ this.param[item.id].insResult = {
+ i: item.id,
+ v: {
+ v: item.insResult,
+ },
+ };
+ // 杩涜鏁版嵁鐨勪繚瀛�
+ this.saveInsContext(item.id);
+ }
+ },
+ // 鍗曟牴鍨傜洿鐕冪儳---缁撴潫
+ // 淇濆瓨婀垮害銆佹俯搴︽暟鎹�
+ subOtherForm(m, type) {
+ // let ids = []
+ // for (let i in this.param) {
+ // ids.push(i)
+ // }
+ this.$axios
+ .post(
+ this.$api.insOrderPlan.write,
+ {
+ [type]: Number(m),
+ insOrderId: this.currentSample.insOrderId,
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ noQs: true,
+ }
+ )
+ .then((res) => {
+ if (res.code == 201) return;
+ this.$message.success("淇濆瓨鎴愬姛");
+ });
+ },
+ // 鏉冮檺鑾峰彇
+ getPower() {
+ let power = JSON.parse(sessionStorage.getItem("power"));
+ let fileDel = false;
+ let fileAdd = false;
+ let collected = false;
+ let temDataAcquisition = false;
+ for (var i = 0; i < power.length; i++) {
+ if (power[i].menuMethod == "uploadFile") {
+ fileAdd = true;
+ }
+ if (power[i].menuMethod == "delfile") {
+ fileDel = true;
+ }
+ if (power[i].menuMethod == "isItAllowedToModifyTheCollectedValues") {
+ collected = true;
+ }
+ if (power[i].menuMethod == "temDataAcquisition") {
+ temDataAcquisition = true;
+ }
+ }
+ if (!fileDel) {
+ this.componentData0.do.splice(1, 1);
+ }
+ this.fileAdd = fileAdd;
+ this.collected = collected;
+ this.temDataAcquisition = temDataAcquisition;
+ },
+ uploadSample() {
+ this.$axios
+ .post(this.$api.insOrderPlan.doInsOrder, {
+ id: this.id,
+ laboratory: this.sonLaboratory,
+ })
+ .then(async (res) => {
+ this.sampleProduct = res.data.sampleProduct;
+ });
+ },
+ // 鏍规嵁绫诲瀷銆佷换鍔d銆佸疄楠屽鏉ヨ幏鍙栨牱鍝佺殑妫�楠岄」淇℃伅
+ async getCurrentProduct(id, type) {
+ this.tableLoading = true;
+ let res = await this.$axios.post(
+ this.$api.insOrderPlan.getInsProduct +
+ "?id=" +
+ id +
+ "&type=" +
+ type +
+ "&laboratory=" +
+ this.sonLaboratory
+ );
+ this.tableLoading = false;
+ console.log("getCurrentProduct-->", res.data);
+ return res.data;
+ },
+ handleChangeBushing(row, column, event) {
+ this.currentBushing = row;
+ this.fiberOpticTape = [];
+ this.currentFiberOpticTape = null;
+ this.fiberOptic = [];
+ this.currentFiberOptic = null;
+ if (row.fiber && row.fiber.length > 0) {
+ // 鐩存帴閰嶇疆鍏夌氦
+ this.fiberOptic = row.fiber;
+ } else if (row.fibers && row.fibers.length > 0) {
+ // 閰嶇疆鍏夌氦甯﹀悗锛屽啀閰嶇疆鍏夌氦
+ this.fiberOpticTape = row.fibers;
+ }
+ this.bushingVisible = false;
+ this.currentKey0 = row.index;
+ },
+ async handleChangeOptic(row, column, event) {
+ this.currentFiberOptic = row;
+ this.currentFiberOptic.productList.forEach((a) => {
+ this.param[a.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: null,
+ equipValue: [],
+ equipName: [],
+ insResult: null,
+ };
+ });
+ this.fiberOpticVisible = false;
+ let list = await this.getCurrentProduct(row.id, 2);
+ this.getTableLists0(list);
+ this.currentKey2 = row.index;
+ },
+ async handleChangeTape(row, column, event) {
+ this.currentFiberOpticTape = row;
+ 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(row.id, 1);
+ this.getTableLists0(list);
+ if (row.fiber && row.fiber.length > 0) {
+ // 閰嶇疆鍏夌氦
+ this.fiberOptic = row.fiber;
+ }
+ this.currentKey1 = row.index;
+ },
+ // 鍒囨崲鏍峰搧
+ async handleChangeSample(row, column, event) {
+ // 鍒濆鍖栨暟鎹�
+ this.param = {};
+ // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁
+ this.fiberOpticTape = [];
+ this.currentFiberOpticTape = null;
+ this.fiberOptic = [];
+ this.currentFiberOptic = null;
+ this.bushing = [];
+ this.currentBushing = null;
+ this.sampleVisible = false;
+ this.filterSampleCode = null;
+ this.sampleProduct = JSON.parse(
+ JSON.stringify(this.fileterSampleProducts)
+ );
+ // 璧嬪�兼牱鍝�
+ this.currentSample = this.HaveJson(row);
+ let list = await this.getCurrentProduct(row.id, 0);
+ // 璧嬪�兼牱鍝佹楠岄」
+ this.currentSample.insProduct = this.HaveJson(list);
+ // 鍒濆鍖栧悗绔紶鍙�
+ this.param = {};
+ this.changeType = 0;
+ this.currentSample.insProduct.forEach((a, j) => {
+ this.param[a.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: null,
+ equipValue: [],
+ equipName: [],
+ insResult: null,
+ };
+ });
+ // 鑾峰彇濂楃,鍏夌氦甯�,鍏夌氦鏁版嵁
+ this.getReportModel(row.id);
+ let bushing = this.currentSample.bushing;
+ if (bushing && bushing.length > 0) {
+ this.bushing = bushing;
+ }
+ // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+ this.getTableLists();
+ // this.currentKey = row.index
+ this.currentKey = this.sampleProduct.findIndex((m) => m.id == row.id) + 1;
+ this.currentTab = null;
+ // 鍚戝绾跨▼鍘讳繚瀛橀〉闈㈠垪琛ㄦ暟鎹�,鍚庣浼犲弬,褰撳墠妯℃澘淇℃伅
+ this.worker.postMessage(
+ JSON.stringify({
+ modelType: this.sampleProduct[0].model,
+ type: "saveData",
+ tableList: this.tableList,
+ param: this.param,
+ currentTable: this.currentTable,
+ })
+ );
+ },
+ // 鏉惧绠$殑鍒ゆ柇\濡傛灉changeType涓嶇瓑浜�3閭d箞椤甸潰涓嶅睍绀烘澗濂楃妫�楠岄」
+ handleCasing(inspectionItem) {
+ if (this.changeType != 3) {
+ if (inspectionItem.includes("鏉惧绠�")) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return true;
+ }
+ },
+ // 鑾峰彇濂楃,鍏夌氦甯�,鍏夌氦鏁版嵁
+ getReportModel(id) {
+ if (this.PROJECT != "妫�娴嬩腑蹇�") {
+ return;
+ }
+ this.getReportModelLoading = true;
+ this.$axios
+ .post(
+ this.$api.insOrderPlan.getReportModel +
+ "?sampleId=" +
+ id +
+ "&sonLaboratory=" +
+ this.sonLaboratory,
+ {}
+ )
+ .then((res) => {
+ this.getReportModelLoading = false;
+ this.fibers = res.data["鍏夌氦甯�"];
+ this.fiber = res.data["鍏夌氦"];
+ this.casing = res.data["濂楃"];
+ });
+ },
+ // 濂楃,鍏夌氦甯�,鍏夌氦绛夊垏鎹�,瀵瑰簲鍘熷璁板綍妯℃澘涔熻鍒囨崲
+ async handleChange(m, type) {
+ if (this.fiber && this.fiber.length > 0) {
+ const fiber = this.fiber.find((ele) => ele.id == m);
+ if (fiber) {
+ this.insFibersId = fiber.insFibersId;
+ }
+ }
+ this.changeType = type;
+ if (m) {
+ // 鑾峰彇妫�楠岄」
+ let list = await this.getCurrentProduct(m, type);
+ if (list.length > 0) {
+ // 鍒濆鍖栧悗绔紶鍙�
+ this.param = {};
+ list.forEach((a) => {
+ this.param[a.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: null,
+ equipValue: [],
+ equipName: [],
+ insResult: null,
+ };
+ });
+ // 椤甸潰鍒楄〃鏁版嵁澶勭悊
+ this.getTableLists0(list);
+ // 鑾峰彇濂楃,鍏夌氦甯�,鍏夌氦鏁版嵁
+ this.getReportModel(this.currentSample.id);
+ // 鍚戝绾跨▼淇濆瓨鏁版嵁
+ this.worker.postMessage(
+ JSON.stringify({
+ modelType: this.sampleProduct[0].model,
+ type: "saveData",
+ tableList: this.tableList,
+ param: this.param,
+ currentTable: this.currentTable,
+ bushing: m,
+ })
+ );
+ } else {
+ this.tableLists = [];
+ this.tableList = [];
+ this.$message.error("妫�楠岄」涓虹┖");
+ }
+ }
+ },
+ // 鏀瑰彉浠诲姟
+ handleChangeTask(row) {
+ if (row.length > 0) this.id = row[0].id;
+ this.taskVisible = false;
+ },
+ // 瀛楀吀鑾峰彇淇℃伅
+ getTypeDicts() {
+ this.$axios
+ .post(this.$api.enums.selectEnumByCategory, {
+ category: "绱ф�ョ▼搴�",
+ })
+ .then((res) => {
+ let data = res.data;
+ data.forEach((ele) => {
+ if (ele.value === "0") {
+ ele.type = "success";
+ } else if (ele.value === "1") {
+ ele.type = "warning";
+ } else if (ele.value === "2") {
+ ele.type = "danger";
+ }
+ });
+ this.urgentList = data;
+ this.componentData.tagField.type.select = data;
+ });
+ this.$axios
+ .post(this.$api.enums.selectEnumByCategory, {
+ category: "杞借嵎",
+ })
+ .then((res) => {
+ this.loadList = res.data;
+ });
+ },
+ // 瀛楀吀鑾峰彇淇℃伅
+ getInsStateDicts() {
+ this.$axios
+ .post(this.$api.enums.selectEnumByCategory, {
+ category: "妫�楠屼换鍔$姸鎬�",
+ })
+ .then((res) => {
+ let data = res.data;
+ data.forEach((ele) => {
+ //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃
+ if (["2", "5"].includes(ele.value)) {
+ ele.type = "success";
+ } else if (["1", "3"].includes(ele.value)) {
+ ele.type = "warning";
+ } else if (["0", "4"].includes(ele.value)) {
+ ele.type = "danger";
+ }
+ });
+ this.typeList = data;
+ this.componentData.tagField.insState.select = data;
+ });
+ },
+ // 瀛楀吀鑾峰彇淇℃伅
+ getComparisonList() {
+ this.$axios
+ .post(this.$api.enums.selectEnumByCategory, {
+ category: "琛ㄦ牸鍧愭爣杞崲",
+ })
+ .then((res) => {
+ let data = res.data;
+ this.comparisonList = data;
+ });
+ },
+ // 鑾峰彇妫�楠屽�间负涓嬫媺鏃剁殑涓嬫媺鍒楄〃
+ selectEnumByCategoryOfSelect(val) {
+ this.enumList = [];
+ if (val === undefined || val === null) {
+ return;
+ }
+ this.$axios
+ .post(this.$api.enums.selectEnumByCategory, {
+ category: val,
+ })
+ .then((res) => {
+ this.enumList = res.data;
+ });
+ },
+ tableRowClassName({ row, rowIndex }) {
+ row.index = rowIndex + 1;
+ },
+ // 澶勭悊椤甸潰鍒楄〃鏁版嵁--鍘婚噸,鐢熸垚妫�楠屾ā鏉垮垏鎹㈠垪琛�
+ getTableLists() {
+ const mySet1 = new Set();
+ this.tableLists = this.currentSample.insProduct.filter((m) => {
+ let num0 = mySet1.size;
+ if (m.templateId != null && m.template != null) {
+ try {
+ mySet1.add(
+ JSON.stringify({
+ template: m.template,
+ templateId: m.templateId,
+ })
+ );
+ } catch (error) {
+ console.log(222, error);
+ }
+ }
+ let num1 = mySet1.size;
+ if (num1 > num0) {
+ return m;
+ }
+ });
+ console.log(111, this.tableLists);
+ if (this.tableLists && this.tableLists.length > 0) {
+ this.tableList = null;
+ this.tableList = [this.tableLists[0]];
+ this.currentTable = this.tableLists[0].templateId;
+ // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+ this.handleTableData();
+ }
+ },
+ // 鍏夌氦閰嶇疆鐩稿叧妯℃澘table鍒楄〃
+ getTableLists0(list) {
+ const mySet1 = new Set();
+ this.tableLists = list.filter((m) => {
+ let num0 = mySet1.size;
+ if (m.templateId != null && m.template != null) {
+ try {
+ mySet1.add(
+ JSON.stringify({
+ template: m.template,
+ templateId: m.templateId,
+ })
+ );
+ } catch (error) {
+ console.log(333, error);
+ }
+ }
+ let num1 = mySet1.size;
+ if (num1 > num0) {
+ return m;
+ }
+ });
+ if (this.tableLists && this.tableLists.length > 0) {
+ this.tableList = null;
+ this.tableList = [this.tableLists[0]];
+ this.currentTable = this.tableLists[0].templateId;
+ this.currentSample.insProduct = this.HaveJson(list);
+ // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+ this.handleTableData();
+ }
+ },
+ // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+ handleTableData() {
+ this.excelMethodList = []; //excel鍑芥暟鍒楄〃
+ this.widthList = this.tableList[0].style.columnlen; //椤甸潰瀹藉害--鏍规嵁妯℃澘鏉ョ殑
+ // 鐗规畩妫�楠岄」璁惧鏁版嵁娓呯┖
+ this.equipForm = {
+ value0: null,
+ code0: null,
+ value1: null,
+ code1: null,
+ };
+ // 娓╁害寰幆妫�楠屽師濮嬭褰�--寮�濮�
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ this.tableLists.find((m) => m.templateId == this.currentTable)
+ .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�"
+ ) {
+ // 瀵硅姹傚�艰繘琛屾媶鍒嗗鐞�,杩涜�屽緱鍑洪〉闈㈠唴瀹�
+ let ask = this.currentSample.insProduct.filter(
+ (m) => m.inspectionItem == "娓╁害寰幆"
+ )[0].ask;
+ let askList = ask.split(";");
+ // 鑾峰彇寰幆娆℃暟
+ this.numOptions = [];
+ for (let i = 1; i <= askList[askList.length - 1]; i++) {
+ this.numOptions.push({
+ value: i,
+ label: i,
+ });
+ }
+ let mySet1 = new Set();
+ askList.forEach((m, i) => {
+ if (i < askList.length - 1) {
+ mySet1.add(m.split(",")[0].replace("鈩�", ""));
+ }
+ });
+ // 鑾峰彇娓╁害鐐瑰垪琛�
+ this.temperatureOptions = [];
+ mySet1.forEach((m) => {
+ this.temperatureOptions.push({
+ value: String(m),
+ label: m,
+ });
+ });
+ // 鍒濆鍖栭〉闈㈡暟鎹�
+ this.wareTableDataLoading = true;
+ this.$axios
+ .post(
+ this.$api.deviceScope.temDataAcquisition2,
+ {
+ entrustCode: this.insOrder.entrustCode,
+ sampleCode: this.currentSample.sampleCode,
+ model: this.currentSample.model,
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ noQs: true,
+ }
+ )
+ .then((res) => {
+ this.wareFormChange();
+ });
+ }
+ // 娓╁害寰幆妫�楠屽師濮嬭褰�---缁撴潫
+ // 鐑惊鐜楠屽師濮嬭褰�---寮�濮�
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ (this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("鐑惊鐜�") ||
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("娓╁崌璇曢獙"))
+ ) {
+ // 鏍规嵁瑕佹眰鍊兼媶鍒嗘暟鎹�,寰楀埌椤甸潰娓叉煋鐨勪俊鎭�
+ // let ask = this.currentSample.insProduct[0].ask
+ let ask = this.currentSample.insProduct.filter(
+ (m) => m.inspectionItem == "鐑惊鐜�" || m.inspectionItem == "娓╁崌璇曢獙"
+ )[0].ask;
+ let askList = ask.split(";");
+ this.thermalCyclingInfo.max = Number(askList[askList.length - 1]);
+ let arr = [];
+ for (let i = 0; i < askList.length - 1; i++) {
+ arr.push(askList[i].split(",")[0]);
+ }
+ arr = arr.map((item) => {
+ let obj = {};
+ obj.name = item;
+ if (obj.insResult == null || obj.insResult == undefined) {
+ obj.arr = [
+ {
+ value0: "",
+ value1: "",
+ },
+ ];
+ obj.insResult = null;
+ }
+ return obj;
+ });
+ this.thermalCyclingInfo.arr = arr;
+ // 鍒濆鍖栭〉闈㈡暟鎹�
+ this.thermalCyclingChange();
+ }
+ // 鐑惊鐜楠屽師濮嬭褰�---缁撴潫
+ // 鍗曟牴鍨傜洿鐕冪儳妫�楠屽師濮嬭褰�---寮�濮�
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("鍗曟牴鍨傜洿鐕冪儳")
+ ) {
+ this.singleRootVertical();
+ }
+ // 鍗曟牴鍨傜洿鐕冪儳妫�楠屽師濮嬭褰�---缁撴潫
+ // 寮у瀭妫�楠屽師濮嬭褰�---寮�濮�
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("寮у瀭")
+ ) {
+ this.getSageInfo();
+ }
+ // 寮у瀭妫�楠屽師濮嬭褰�---缁撴潫
+
+ // 鏋剁┖鍦扮嚎搴斿姏搴斿彉妫�楠屽師濮嬭褰�---寮�濮�
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("鏋剁┖鍦扮嚎搴斿姏搴斿彉")
+ ) {
+ this.getStressStrainInfo();
+ }
+ // 鏋剁┖鍦扮嚎搴斿姏搴斿彉妫�楠屽師濮嬭褰�---缁撴潫
+
+ // 闃叉尟閿ゅ姛鐜囩壒鎬ф楠屽師濮嬭褰�---寮�濮�
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("闃叉尟閿ゅ姛鐜囩壒鎬�")
+ ) {
+ this.getPowerCharacteristicsInfo();
+ }
+ // 闃叉尟閿ゅ姛鐜囩壒鎬ф楠屽師濮嬭褰�---缁撴潫
+ // 鐤插姵璇曢獙妫�楠屽師濮嬭褰�---寮�濮�
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ this.tableLists
+ .find((m) => m.templateId == this.currentTable)
+ .templateName.includes("鐤插姵璇曢獙妫�楠屽師濮嬭褰�")
+ ) {
+ this.getFatigueTestInfo();
+ }
+ // 鐤插姵璇曢獙妫�楠屽師濮嬭褰�---缁撴潫
+ // 鏈寰幆涓昏鍋氶〉闈㈡覆鏌撳眰闈㈢殑澶勭悊--鍗曞厓鏍煎悎骞堕澶勭悊
+ this.tableList.forEach((a) => {
+ let mcList = [];
+ a.template.forEach((b) => {
+ if (
+ b.v.mc != undefined &&
+ b.v.mc.cs != undefined &&
+ b.v.mc.rs != undefined
+ ) {
+ mcList.push(b);
+ }
+ });
+ let count = 0;
+ mcList.forEach((b) => {
+ for (var c in a.template) {
+ for (var i = 0; i < b.v.mc.cs; i++) {
+ for (var i2 = 0; i2 < b.v.mc.rs; i2++) {
+ if (
+ a.template[c].c === b.c + i &&
+ a.template[c].r === b.r + i2
+ ) {
+ let bb = this.HaveJson(b);
+ a.template[c].v.v = bb.v.v;
+ a.template[c].v.ps = bb.v.ps;
+ a.template[c].v.fc = bb.v.fc;
+ a.template[c].v.fs = bb.v.fs;
+ a.template[c].v.ht = bb.v.ht;
+ a.template[c].mc = count;
+ break;
+ }
+ }
+ }
+ }
+ count++;
+ });
+ });
+ // 鏈寰幆涓昏鏄帶鍒跺悎骞�,浠ュ強鎺у埗妫�楠岄」淇℃伅鏄惁灞曠ず鍑烘潵,浠ヤ究鍚庣画妫�楠�
+ this.tableList.forEach((a) => {
+ let dels = new Set(); //闇�瑕佸垹闄ょ殑琛�
+ let ids = []; //鎵�鏈夋楠岄」鐨刬d
+ let set3 = new Set();
+ a.template.forEach((b) => {
+ let size1 = set3.size;
+ let size2 = set3.add(b.r).size;
+ if (size1 < size2) {
+ let str = "";
+ let count4 = 0;
+ let isThree = 0;
+ a.template.forEach((c) => {
+ // 鑾峰彇鍒� 妫�楠岄」鍒嗙被+妫�楠岄」+妫�楠屽瓙椤圭殑鎷兼帴,濡傛灉妯℃澘閲岀殑淇℃伅璺熸帴鍙h繑鍥炵殑妫�楠岄」淇℃伅鑳藉鍖归厤鍒欏睍绀哄嚭鏉�
+ if (b.r === c.r) {
+ if (
+ c.v.ps != undefined &&
+ c.v.ps.value === "妫�楠岄」鍒嗙被" &&
+ count4 === 0
+ ) {
+ // 涓夌骇鍒嗙被
+ isThree = 1;
+ } else if (
+ c.v.ps != undefined &&
+ c.v.ps.value === "妫�楠岄」" &&
+ count4 === 0
+ ) {
+ // 浜岀骇鍒嗙被
+ isThree = 0;
+ }
+ if (isThree == 0) {
+ if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」") {
+ if (count4 === 0) {
+ str += c.v.v;
+ count4 += 1;
+ }
+ } else if (
+ c.v.ps != undefined &&
+ c.v.ps.value === "妫�楠屽瓙椤�"
+ ) {
+ if (count4 === 1) {
+ str += c.v.v;
+ count4 += 1;
+ }
+ }
+ } else if (isThree == 1) {
+ if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」鍒嗙被") {
+ if (count4 === 0) {
+ str += c.v.v;
+ count4 += 1;
+ }
+ } else if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」") {
+ if (count4 === 1) {
+ str += c.v.v;
+ count4 += 1;
+ }
+ } else if (
+ c.v.ps != undefined &&
+ c.v.ps.value === "妫�楠屽瓙椤�"
+ ) {
+ if (count4 === 2) {
+ str += c.v.v;
+ count4 += 1;
+ }
+ }
+ }
+ }
+ });
+ if (str != "") {
+ let count2 = 0;
+ for (let i in this.currentSample.insProduct) {
+ let inspectionItemClass =
+ this.currentSample.insProduct[i].inspectionItemClass ==
+ null ||
+ this.currentSample.insProduct[i].inspectionItemClass ==
+ undefined
+ ? ""
+ : this.currentSample.insProduct[i].inspectionItemClass;
+ let inspectionItem =
+ this.currentSample.insProduct[i].inspectionItem == null ||
+ this.currentSample.insProduct[i].inspectionItem == undefined
+ ? ""
+ : this.currentSample.insProduct[i].inspectionItem;
+ let inspectionItemSubclass =
+ this.currentSample.insProduct[i].inspectionItemSubclass ==
+ null ||
+ this.currentSample.insProduct[i].inspectionItemSubclass ==
+ undefined
+ ? ""
+ : this.currentSample.insProduct[i].inspectionItemSubclass;
+ // 濡傛灉鐩哥瓑,閭d箞璇存槑鎵惧埌浜�,骞朵笖鎶奿d瀛樿捣鏉�,鍚庣画妫�楠岄」涔熶細鍦ㄩ〉闈腑鏄剧ず鍑烘潵
+ const itemStr =
+ inspectionItemClass + inspectionItem + inspectionItemSubclass;
+ if (
+ this.currentSample.insProduct[i].templateId ===
+ a.templateId &&
+ itemStr === str &&
+ !(this.changeType != 3 && itemStr.includes("鏉惧绠�"))
+ ) {
+ ids.push({
+ r: b.r,
+ id: this.currentSample.insProduct[i].id,
+ product: this.currentSample.insProduct[i],
+ });
+ break;
+ }
+ count2++;
+ }
+ if (count2 == this.currentSample.insProduct.length) {
+ dels.add(b.r);
+ }
+ }
+ }
+ });
+ // 鎿嶄綔鍒犻櫎
+ dels.forEach((del) => {
+ for (let b = 0; b < a.template.length; b++) {
+ if (a.template[b].r === del) {
+ a.template.splice(b, 1);
+ b -= 1;
+ }
+ }
+ });
+ // 鎿嶄綔璧嬪��--涓昏璧嬪�煎崟浣�,璇曢獙鏂规硶绛変俊鎭�
+ ids.forEach((id) => {
+ for (let b = 0; b < a.template.length; b++) {
+ if (a.template[b].r === id.r) {
+ a.template[b].i = id.id;
+ if (
+ a.template[b].v.ps != undefined &&
+ a.template[b].v.ps.value === "鍗曚綅"
+ ) {
+ a.template[b].v.v = id.product.unit;
+ }
+ if (
+ a.template[b].v.ps != undefined &&
+ (a.template[b].v.ps.value === "璇曢獙鏂规硶" ||
+ a.template[b].v.ps.value === "妫�娴嬫柟娉�")
+ ) {
+ a.template[b].v.v = id.product.methodS;
+ }
+ }
+ }
+ });
+ let set2 = new Set();
+ // 鍚堝苟鐨勬暟鎹鐞�,cs rs 浠h〃鍚堝苟鐨勬暟閲�
+ a.template.forEach((b) => {
+ let size1 = set2.size;
+ let size2 = set2.add(b.mc).size;
+ if (b.mc != undefined && size1 < size2) {
+ b.v.mc.rs = 0;
+ b.v.mc.cs = 0;
+ a.template.forEach((c) => {
+ if (b.mc === c.mc) {
+ if (b.r === c.r) {
+ b.v.mc.cs += 1;
+ }
+ if (b.c === c.c) {
+ b.v.mc.rs += 1;
+ }
+ }
+ });
+ }
+ });
+ });
+ // 鏈寰幆涓昏鏄鍚庣浼犲弬杩涜鍒濆鍖�,鏍峰紡閫昏緫淇敼
+ this.tableList.forEach((a) => {
+ let arrs = [];
+ let set = new Set();
+ let count1 = 0;
+ let conclusionList = []; //缁撹鍒楄〃
+ let finalList = []; //鏈�缁堝�煎垪琛�
+ // 缁撹涓庢渶缁堝�煎湪杩欓噷涓�涓�瀵瑰簲,浠ヤ笅涓や釜鍒楄〃闀垮害鑲畾鏄竴鏍风殑,濡傛灉鏈変笉涓�鏍�,閭d箞澶氬崐鏄ā鏉块厤缃緱闂
+ conclusionList = a.template.filter(
+ (n) => n.v.ps != undefined && n.v.ps.value === "缁撹"
+ ); //缁撹鍒楄〃
+ finalList = a.template.filter(
+ (n) => n.v.ps != undefined && n.v.ps.value === "鏈�缁堝��"
+ ); //鏈�缁堝�煎垪琛�
+ a.template.forEach((b) => {
+ if (
+ b.v.ps != undefined &&
+ b.v.ps.value === "搴忓彿" &&
+ (b.v.mc == undefined || Object.keys(b.v.mc).length === 4)
+ ) {
+ // 瀵瑰簭鍙疯繘琛岃祴鍊�
+ count1++;
+ b.v.v = count1;
+ }
+ if (b.v.ps != undefined && b.v.ps.value === "瑕佹眰鍊�") {
+ // 瀵硅姹傚�艰繘琛岃祴鍊�
+ b.v.v = this.getAsk(b.i);
+ }
+ // 瀵归〉闈㈢殑鍜岀粰鍚庣浼犲弬鐨勬楠屽��,璁$畻鍊�,璁惧缂栫爜,璁惧鍚嶇О,鏈�缁堝��,缁撹杩涜鍒濆鍖�
+ if (
+ b.v.ps != undefined &&
+ typeof b.v.ps.value === "string" &&
+ b.v.ps.value.includes("妫�楠屽��")
+ ) {
+ this.$set(b.v, "v", "");
+ // b.v.v = ''
+ b.u = "";
+ b.i && this.param[b.i] && this.param[b.i].insValue.push(b);
+ }
+ if (b.v.ps != undefined && b.v.ps.value === "璁$畻鍊�") {
+ this.$set(b.v, "v", "");
+ // b.v.v = ''
+ b.i && this.param[b.i] && this.param[b.i].comValue.push(b);
+ }
+ if (b.v.ps != undefined && b.v.ps.value === "璁惧缂栫爜") {
+ // b.v.v = ''
+ this.$set(b.v, "v", "");
+ b.i && this.param[b.i] && this.param[b.i].equipValue.push(b);
+ }
+ if (b.v.ps != undefined && b.v.ps.value === "璁惧鍚嶇О") {
+ this.$set(b.v, "v", "");
+ // b.v.v = ''
+ b.i && this.param[b.i] && this.param[b.i].equipName.push(b);
+ }
+ if (b.v.ps != undefined && b.v.ps.value === "鏈�缁堝��") {
+ // b.v.v = ''
+ this.$set(b.v, "v", "");
+ if (
+ b.i !== undefined &&
+ this.param[b.i] &&
+ !this.param[b.i].resValue
+ ) {
+ this.param[b.i].resValue = b;
+ }
+ }
+ if (b.v.ps != undefined && b.v.ps.value === "缁撹") {
+ if (
+ b.i !== undefined &&
+ this.param[b.i] &&
+ !this.param[b.i].insResult
+ ) {
+ this.param[b.i].insResult = b;
+ conclusionList.forEach((n, i) => {
+ if (n.r == b.r && n.c == b.c) {
+ b.v.f = `(${
+ this.comparisonList.find((j) => j.value == finalList[i].c)
+ .label
+ }${finalList[i].r + 1})`;
+ }
+ });
+ }
+ }
+ set.add(b.r);
+ // 濡傛灉妯℃澘鍒楄〃鐨勫嚱鏁板瓨鍦�,閭d箞鍔犲叆鍒癳xcel鍑芥暟鍒楄〃閲岄潰
+ if (b.v.f) {
+ this.excelMethodList.push(b);
+ }
+ });
+ // 浠ヤ笅鏄牱寮忓鐞嗛�昏緫
+ set = Array.sort(set);
+ set.forEach((b) => {
+ let arr = [];
+ a.template.forEach((c) => {
+ if (c.r === b) {
+ arr.push(c);
+ }
+ });
+ arrs.push(arr);
+ });
+ a.arr = arrs;
+ this.tableWidth = 0;
+ for (let i = 0; i < arrs[0].length; i++) {
+ this.tableWidth +=
+ a.style.columnlen[i] === undefined ? 100 : a.style.columnlen[i];
+ }
+ });
+ // 鏈寰幆涓昏鏄椤甸潰鍙婂悗绔紶鍙傝繘琛屽垵濮嬪寲璧嬪��
+ this.currentSample.insProduct.forEach(async (a) => {
+ try {
+ // 璁$畻鍊艰祴鍊�
+ let comValue = JSON.parse(a.insProductResult.comValue);
+ for (var i = 0; i < comValue.length; i++) {
+ // this.param[a.id].comValue[i].v.v = this.toFixed(comValue[i].v,this.param[a.id].comValue[i].v.ct)
+ if (
+ this.param[a.id].comValue.find(
+ (m) => m.c == comValue[i].c && m.r == comValue[i].r
+ )
+ ) {
+ this.param[a.id].comValue.find(
+ (m) => m.c == comValue[i].c && m.r == comValue[i].r
+ ).v.v = this.toFixed(
+ comValue[i].v,
+ this.param[a.id].comValue.find(
+ (m) => m.c == comValue[i].c && m.r == comValue[i].r
+ ).v.ct
+ );
+ } else if (!comValue[i].c || !comValue[i].r) {
+ this.param[a.id].comValue[i].v.v = this.toFixed(
+ comValue[i].v,
+ this.param[a.id].comValue[i].v.ct
+ );
+ }
+ }
+ } catch (e) {}
+ try {
+ // 妫�楠屽�艰祴鍊�
+ let insValue = JSON.parse(a.insProductResult.insValue);
+ for (let i = 0; i < insValue.length; i++) {
+ if (
+ this.param[a.id].insValue.find(
+ (m) => m.c == insValue[i].c && m.r == insValue[i].r
+ )
+ ) {
+ this.param[a.id].insValue.find(
+ (m) => m.c == insValue[i].c && m.r == insValue[i].r
+ ).v.v = this.toFixed(
+ insValue[i].v,
+ this.param[a.id].insValue.find(
+ (m) => m.c == insValue[i].c && m.r == insValue[i].r
+ ).v.ct
+ );
+ this.param[a.id].insValue.find(
+ (m) => m.c == insValue[i].c && m.r == insValue[i].r
+ ).u = insValue[i].u;
+ // this.param[a.id].insValue[i].v.v = insValue[i].v
+ // this.param[a.id].insValue[i].u = insValue[i].u
+ }
+ }
+ } catch (e) {}
+ try {
+ // 璁惧缂栧彿璧嬪��
+ let equipValue = JSON.parse(a.insProductResult.equipValue);
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ ((this.tableLists.find((m) => m.templateId == this.currentTable)
+ .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" &&
+ a.inspectionItem.includes("娓╁害寰幆")) ||
+ a.inspectionItem.includes("鐑惊鐜�") ||
+ a.inspectionItem.includes("娓╁崌璇曢獙") ||
+ a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+ a.inspectionItem.includes("寮у瀭") ||
+ a.inspectionItem.includes("搴斿姏搴斿彉") ||
+ a.inspectionItem.includes("鎸姩鐤插姵") ||
+ a.inspectionItem.includes("鑸炲姩鐤插姵"))
+ ) {
+ // 鐗规畩椤圭洰鍒濆鍖�
+ this.param[a.id].equipValue = [];
+ for (let i = 0; i < equipValue.length; i++) {
+ this.param[a.id].equipValue.push({
+ v: {
+ v: "",
+ },
+ });
+ }
+ }
+ for (let i = 0; i < equipValue.length; i++) {
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ ((this.tableLists.find((m) => m.templateId == this.currentTable)
+ .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" &&
+ a.inspectionItem.includes("娓╁害寰幆")) ||
+ a.inspectionItem.includes("鐑惊鐜�") ||
+ a.inspectionItem.includes("娓╁崌璇曢獙") ||
+ a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+ a.inspectionItem.includes("寮у瀭") ||
+ a.inspectionItem.includes("搴斿姏搴斿彉") ||
+ a.inspectionItem.includes("鎸姩鐤插姵") ||
+ a.inspectionItem.includes("鑸炲姩鐤插姵"))
+ ) {
+ // 娓╁害寰幆璁惧璧嬪��
+ // this.$set(this.equipForm, `code` + i, equipValue[i].v);
+ // this.param[a.id].equipValue[i].v.v = equipValue[i].v;
+ if (
+ a.inspectionItem.includes("娓╁害寰幆") ||
+ a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+ ) {
+ this.$set(this.equipForm, `code` + i, equipValue[i].v);
+ } else {
+ if (Array.isArray(this.equipForm.code0)) {
+ this.equipForm.code0.push(equipValue[i].v);
+ } else {
+ let arr = [];
+ arr.push(equipValue[i].v);
+ this.$set(this.equipForm, `code0`, arr);
+ }
+ }
+ this.param[a.id].equipValue[i].v.v = equipValue[i].v;
+ } else {
+ // 鏅�氳澶囪祴鍊�
+ if (a.inspectionItem.includes("闃叉尟閿ゅ姛鐜囩壒鎬�")) {
+ let filterList = this.param[a.id].equipValue.filter(
+ (m) => m.v.v != "" && m.v.v != null && m.v.v != undefined
+ );
+ if (filterList.length > 0) {
+ this.param[a.id].equipValue[i].v.v = filterList[0].v.v;
+ } else {
+ this.param[a.id].equipValue[i].v.v = equipValue[i].v;
+ }
+ } else {
+ this.param[a.id].equipValue[i].v.v = equipValue[i].v;
+ }
+ }
+ }
+ } catch (e) {}
+ try {
+ // 璁惧鍚嶇О璧嬪��
+ let equipName = JSON.parse(a.insProductResult.equipName);
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ ((this.tableLists.find((m) => m.templateId == this.currentTable)
+ .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" &&
+ a.inspectionItem.includes("娓╁害寰幆")) ||
+ a.inspectionItem.includes("鐑惊鐜�") ||
+ a.inspectionItem.includes("娓╁崌璇曢獙") ||
+ a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+ a.inspectionItem.includes("寮у瀭") ||
+ a.inspectionItem.includes("搴斿姏搴斿彉") ||
+ a.inspectionItem.includes("鎸姩鐤插姵") ||
+ a.inspectionItem.includes("鑸炲姩鐤插姵"))
+ ) {
+ // 璁惧鍚嶇О鍒濆鍖�
+ this.param[a.id].equipName = [];
+ for (let i = 0; i < equipName.length; i++) {
+ this.param[a.id].equipName.push({
+ v: {
+ v: "",
+ },
+ });
+ }
+ }
+ for (let i = 0; i < equipName.length; i++) {
+ if (
+ this.tableLists.find((m) => m.templateId == this.currentTable) &&
+ ((this.tableLists.find((m) => m.templateId == this.currentTable)
+ .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" &&
+ a.inspectionItem.includes("娓╁害寰幆")) ||
+ a.inspectionItem.includes("鐑惊鐜�") ||
+ a.inspectionItem.includes("娓╁崌璇曢獙") ||
+ a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+ a.inspectionItem.includes("寮у瀭") ||
+ a.inspectionItem.includes("搴斿姏搴斿彉") ||
+ a.inspectionItem.includes("鎸姩鐤插姵") ||
+ a.inspectionItem.includes("鑸炲姩鐤插姵"))
+ ) {
+ // 娓╁害寰幆璧嬪��
+ // this.$set(this.equipForm, `value` + i, equipName[i].v);
+ if (
+ a.inspectionItem.includes("娓╁害寰幆") ||
+ a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+ ) {
+ this.$set(this.equipForm, `value` + i, equipName[i].v);
+ } else {
+ if (Array.isArray(this.equipForm.value0)) {
+ this.equipForm.value0.push(equipName[i].v);
+ } else {
+ let arr = [];
+ arr.push(equipName[i].v);
+ this.$set(this.equipForm, `value0`, arr);
+ }
+ }
+ // 淇濈暀鏈�鍒濈殑涓�涓澶囧悕绉�
+ this.equipName = JSON.parse(
+ JSON.stringify(this.equipForm.value0)
+ );
+ this.param[a.id].equipName[i].v.v = equipName[i].v;
+ } else {
+ // 鏅�氳澶囧悕绉拌祴鍊�
+ if (a.inspectionItem.includes("闃叉尟閿ゅ姛鐜囩壒鎬�")) {
+ let filterList = this.param[a.id].equipName.filter(
+ (m) => m.v.v != "" && m.v.v != null && m.v.v != undefined
+ );
+ if (filterList.length > 0) {
+ this.param[a.id].equipName[i].v.v = equipName[0].v.v;
+ } else {
+ this.param[a.id].equipName[i].v.v = equipName[i].v;
+ }
+ }
+ this.param[a.id].equipName[i].v.v = equipName[i].v;
+ }
+ }
+ } catch (e) {}
+ try {
+ // 鏈�缁堝�艰祴鍊�
+ this.param[a.id].resValue.v.v = this.toFixed(
+ a.lastValue,
+ this.param[a.id].resValue.v.ct
+ );
+ // 缁撹璧嬪��
+ this.param[a.id].insResult.v.v = a.insResult;
+ } catch (e) {}
+ });
+ // 瀵筫xcel鍑芥暟杩涜澶勭悊
+ this.handleExcelMethod();
+ },
+ // 妫�楠屽�艰緭鍏ュ悗瑙﹀彂鐨勫嚱鏁�
+ changeInput(m, code, n, getDataType) {
+ console.log("---->999");
+ // 涓烘暟閲囧畾涔変竴涓�昏緫鍙傛暟
+ if (getDataType == "getDataType") {
+ this.getDataType = 2;
+ }
+ let currentInsItemId = null; //褰撳墠妫�楠岄」id
+ if (n) {
+ currentInsItemId = JSON.parse(JSON.stringify(n.i));
+ // 闇�瑕佺瀛﹁鏁版硶鐨勫彲浠ヨ蛋杩欓噷
+ if (this.PROJECT === "妫�娴嬩腑蹇�") {
+ if (
+ this.currentSample.insProduct.find(
+ (ele) =>
+ ele.id == currentInsItemId && ele.inspectionItem == "浣撶Н鐢甸樆鐜�"
+ )
+ ) {
+ if (parseFloat(n.v.v) >= 100000) {
+ let num2 = new this.$Big(n.v.v);
+ n.v.v = num2.toExponential();
+ }
+ }
+ }
+ // 瀹氫箟涓�涓嚱鏁版潵楠岃瘉鍒嗘暟鏄惁鏈夋晥
+ function isValidFraction(fraction) {
+ const [numerator, denominator] = fraction.split("/"); // 鍒嗗瓙鍜屽垎姣�
+ return !(!denominator || !numerator);
+ }
+ const isTrue = isValidFraction(n.v.v);
+ if (!isTrue) {
+ n.v.v = n.v.v.replace("/", "");
+ }
+ }
+ try {
+ // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+ this.worker.postMessage(
+ JSON.stringify({
+ code: code,
+ tableList: this.tableList,
+ excelMethodList: this.excelMethodList,
+ comparisonList: this.comparisonList,
+ currentSample: this.currentSample,
+ PROJECT: this.PROJECT,
+ param: this.param,
+ currentTable: this.currentTable,
+ getDataTypeId: this.getDataTypeId,
+ modelType: this.sampleProduct[0].model,
+ currentInsItem: n,
+ })
+ );
+ } catch (error) {
+ console.log(444, error);
+ }
+
+ // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋�
+ this.worker.onmessage = (event) => {
+ this.result = JSON.parse(event.data);
+ switch (this.result.method) {
+ case "saveInsContext":
+ this.$nextTick(() => {
+ // this.$delete(this.tableList[0],'arr')
+ this.$set(
+ this.tableList[0],
+ "arr",
+ this.result.value.tableList[0].arr
+ );
+ this.param = this.result.value.param;
+ if (this.result.value.currentInsItemId) {
+ currentInsItemId = this.result.value.currentInsItemId;
+ }
+ // 鐗规畩澶勭悊涓�涓嬬粨璁�,浼氭湁杩欑鐗规畩鎯呭喌
+ for (var i in this.param) {
+ if (
+ this.param[i].insResult &&
+ this.param[i].insResult.v &&
+ this.param[i].insResult.v.v
+ ) {
+ if (this.param[i].insResult.v.v == "鍚堟牸") {
+ this.$set(this.param[i].insResult.v, "v", 1);
+ } else if (this.param[i].insResult.v.v == "涓嶅悎鏍�") {
+ this.$set(this.param[i].insResult.v, "v", 0);
+ }
+ }
+ }
+ this.saveInsContext(currentInsItemId);
+ // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,鍙互鐩存帴淇濆瓨鏁版嵁
+ // if(this.getDataType==2){
+ // console.log("aaaaaa--->>>",currentInsItemId);
+ // this.saveInsContext()
+ // }else{
+ // if(this.isGet&&!this.dataAcquisitionEidtAble){
+ // // if(this.result.value.getDataTypeId==''){
+ // // // 濡傛灉鏄暟閲囦笉鍙紪杈戣緭鍏ョ殑鎯呭喌,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁
+ // // return
+ // // }
+ // // 淇濆瓨鏁版嵁
+ // this.saveInsContext()
+ // // setTimeout(()=>{
+ // // },2000)
+ // }else if(this.isGet&&this.dataAcquisitionEidtAble){
+ // if(this.getDataType==1){
+ // // if(this.result.value.getDataTypeId==''){
+ // // // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁
+ // // return
+ // // }
+ // this.saveInsContext()
+ // }else{
+ // this.saveInsContext()
+ // }
+ // }else{
+ // this.saveInsContext()
+ // }
+ // }
+ });
+ break;
+ case "tableList":
+ this.$nextTick(() => {
+ // 鏇存柊鏁版嵁
+ this.$delete(this.tableList[0], "arr");
+ this.$set(this.tableList[0], "arr", this.result.value[0].arr);
+ });
+ break;
+ case "getCurrentInsProduct":
+ // 鏇存柊椤甸潰鏁版嵁
+ this.getCurrentInsProduct(this.result.value);
+ break;
+ }
+ };
+ },
+ // 鏄惁闇�瑕佹暟閲�
+ async determineWhetherToCollectData() {
+ let res = await this.$axios.get(
+ this.$api.deviceScope.determineWhetherToCollectData +
+ "?managementNumber=''"
+ );
+ this.isGet = res.data;
+ if (
+ this.currentSample.insProduct.filter(
+ (ele) => ele.inspectionItemType == "1"
+ ).length > 0
+ ) {
+ this.isEdit = true;
+ }
+ },
+ // 鏍规嵁鍚庣浼犲弬鏇存柊椤甸潰鏁版嵁 param => this.tableList[0].insProductResult
+ getCurrentInsProduct(pId) {
+ if (!this.tableList[0].insProductResult) {
+ this.tableList[0].insProductResult = {};
+ }
+ for (let m in this.param[pId]) {
+ let value = this.param[pId][m];
+ switch (m) {
+ case "comValue":
+ // 璧嬪�艰绠楀��
+ if (value && value.length > 0) {
+ this.tableList[0].insProductResult[m] = [];
+ value.forEach((a, i) => {
+ let obj = {
+ v: a.v.v,
+ };
+ this.tableList[0].insProductResult[m].push(obj);
+ });
+ try {
+ this.tableList[0].insProductResult[m] = JSON.stringify(
+ this.tableList[0].insProductResult[m]
+ );
+ } catch (error) {
+ console.log(555, error);
+ }
+ }
+ break;
+ // 璧嬪�兼楠屽��
+ case "insValue":
+ if (value && value.length > 0) {
+ this.tableList[0].insProductResult[m] = [];
+ value.forEach((a, i) => {
+ let obj = {
+ v: a.v.v,
+ u: a.u,
+ };
+ this.tableList[0].insProductResult[m].push(obj);
+ });
+ try {
+ this.tableList[0].insProductResult[m] = JSON.stringify(
+ this.tableList[0].insProductResult[m]
+ );
+ } catch (error) {
+ console.log(666, error);
+ }
+ }
+ break;
+ // 璧嬪�艰澶囩紪鍙�
+ case "equipValue":
+ if (value && value.length > 0) {
+ this.tableList[0].insProductResult[m] = [];
+ value.forEach((a, i) => {
+ let obj = {
+ v: a.v.v,
+ };
+ this.tableList[0].insProductResult[m].push(obj);
+ });
+ try {
+ this.tableList[0].insProductResult[m] = JSON.stringify(
+ this.tableList[0].insProductResult[m]
+ );
+ } catch (error) {
+ console.log(777, error);
+ }
+ }
+ break;
+ // 璧嬪�艰澶囧悕绉�
+ case "equipName":
+ if (value && value.length > 0) {
+ this.tableList[0].insProductResult[m] = [];
+ value.forEach((a, i) => {
+ let obj = {
+ v: a.v.v,
+ };
+ this.tableList[0].insProductResult[m].push(obj);
+ });
+ try {
+ this.tableList[0].insProductResult[m] = JSON.stringify(
+ this.tableList[0].insProductResult[m]
+ );
+ } catch (error) {
+ console.log(888, error);
+ }
+ }
+ break;
+ // 璧嬪�兼渶缁堝��
+ case "resValue":
+ this.tableList[0].lastValue = value ? value.v.v : "";
+ break;
+ // 璧嬪�肩粨璁�
+ case "insResult":
+ this.tableList[0].insResult = value ? value.v.v : "";
+ break;
+ }
+ }
+ },
+ // 瀵笶XCEL鍑芥暟杩涜澶勭悊
+ handleExcelMethod() {
+ if (this.excelMethodList.length > 0) {
+ this.excelMethodList.map((item) => {
+ // 寰楀埌姣忎釜鍑芥暟鐨勫弬鏁板垪琛�
+ item.valueList = excelFunction.changeParameter(item.v.f);
+ return item;
+ });
+ }
+ },
+ getValue(v) {
+ // 瀵归〉闈㈠睍绀烘暟鎹繘琛屽鐞�,@,浠h〃鎹㈣
+ let str = v.v
+ ? v.v
+ : v.v === 0
+ ? v.v
+ : v.ct && v.ct.s
+ ? v.ct.s.length > 0 &&
+ v.ct.s[0].v
+ .replace(new RegExp("\n", "g"), "<br/>")
+ .replace(new RegExp("@", "g"), "<br/>")
+ : "";
+ // 瀵规暟鎹繚鐣欏皬鏁扮偣杩涜澶勭悊
+ if (v.ct && v.ct.fa && v.ct.fa.includes(".") && str) {
+ let num = 0;
+ let str0 = v.ct.fa.split(".")[1];
+ num = str0.length;
+ str = Number(str).toFixed(num);
+ }
+ if (v.v && typeof v.v == "string" && v.v.includes("@")) {
+ str = v.v.replace(new RegExp("@", "g"), "<br/>");
+ }
+ return str;
+ },
+ // 鑾峰彇褰撳墠杈撳叆妗嗙被鍨�
+ getInspectionValueType(id) {
+ for (var a in this.currentSample.insProduct) {
+ if (this.currentSample.insProduct[a].id == id) {
+ return this.currentSample.insProduct[a].inspectionValueType;
+ }
+ }
+ },
+ // 鑾峰彇瑕佹眰鎻忚堪
+ getTell(id) {
+ for (var a in this.currentSample.insProduct) {
+ if (this.currentSample.insProduct[a].id == id) {
+ return this.currentSample.insProduct[a].tell;
+ }
+ }
+ },
+ // 鍔ㄦ�佽幏鍙栧崟鍏冩牸瀹藉害
+ handleWidth(n) {
+ let sum = 0;
+ if (n.v.mc && n.v.mc.cs && n.v.mc.c != undefined) {
+ for (let i = 0; i < n.v.mc.cs; i++) {
+ let num = this.widthList[i + n.v.mc.c]
+ ? this.widthList[i + n.v.mc.c]
+ : 100;
+ sum += num;
+ }
+ } else {
+ sum = this.widthList[n.c] ? this.widthList[n.c] : 100;
+ }
+ return sum;
+ },
+ // 瀵硅緭鍏ュ�艰繘琛屾牸寮忔牎楠�
+ handleInput(n) {
+ try {
+ n.v.v = n.v.v.replace(/[^\d.^e\-/+]/g, "");
+ n.v.v = n.v.v.replace(/\.{2,}/g, "."); //鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨�
+ n.v.v = n.v.v
+ .replace(".", "$#$")
+ .replace(/\./g, "")
+ .replace("$#$", ".");
+ n.v.v = n.v.v.replace(/\/{2,}/g, "/"); //鍙繚鐣欑涓�涓�/娓呴櫎澶氫綑鐨�
+ n.v.v = n.v.v
+ .replace("/", "$#$")
+ .replace(/\//g, "")
+ .replace("$#$", "/");
+ } catch (error) {
+ console.log(error);
+ }
+ },
+ getInspectionItemType(id) {
+ for (var a in this.currentSample.insProduct) {
+ if (this.currentSample.insProduct[a].id == id) {
+ return this.currentSample.insProduct[a].inspectionItemType;
+ }
+ }
+ },
+ // 鑾峰彇瑕佹眰鍊�
+ getAsk(id) {
+ for (var a in this.currentSample.insProduct) {
+ if (this.currentSample.insProduct[a].id == id) {
+ return this.currentSample.insProduct[a].ask;
+ }
+ }
+ },
+ getSystemValue(n) {
+ let code = null;
+ try {
+ 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("鎵句笉鍒拌澶囧唴瀹�");
+ }
+ // 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) {
+ console.log(e);
+ if (e) {
+ this.equipOptions = [];
+ let product = this.currentSample.insProduct.find((m) => m.id == id);
+ console.log(product);
+ this.$axios
+ .post(this.$api.deviceScope.selectDeviceByCategory, {
+ inspectionItem: product.inspectionItem,
+ inspectionItemSubclass: product.inspectionItemSubclass,
+ sonLaboratory: product.sonLaboratory,
+ })
+ .then((res) => {
+ if (res.code === 200 && res.data) {
+ this.equipOptions = res.data.map((m) => {
+ m.value = m.managementNumber;
+ m.label = m.deviceName;
+ return m;
+ });
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ },
+ getDic(e, id) {
+ if (e) {
+ for (var a in this.currentSample.insProduct) {
+ if (this.currentSample.insProduct[a].id == id) {
+ let str = this.currentSample.insProduct[a].dic;
+ this.selectEnumByCategoryOfSelect(str);
+ return str;
+ }
+ }
+ }
+ },
+ getUserInfo() {
+ this.$axios.get(this.$api.user.getUserInfo).then((res) => {
+ this.userId = res.data.id;
+ this.componentData.entity.userId = res.data.id;
+ // console.log(1111,this.userId)
+ });
+ },
+ // 澶嶆牳
+ upInsReview(e) {
+ if (e == 1) {
+ // 閫氳繃
+ this.reviewLoading = true;
+ this.$axios
+ .post(this.$api.insOrderPlan.verifyPlan, {
+ orderId: this.orderId,
+ type: 1,
+ laboratory: this.sonLaboratory,
+ tell: null,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.$message.success("鎿嶄綔鎴愬姛");
+ this.$emit("goback");
+ }
+ this.reviewLoading = false;
+ })
+ .catch((error) => {
+ console.error(error);
+ this.reviewLoading = false;
+ });
+ } else {
+ // 涓嶉�氳繃
+ this.reviewDia = true;
+ }
+ },
+ handleReviewDia() {
+ if (this.noReason) {
+ this.reviewLoading = true;
+ this.$axios
+ .post(this.$api.insOrderPlan.verifyPlan, {
+ orderId: this.orderId,
+ type: 0,
+ laboratory: this.sonLaboratory,
+ tell: this.noReason,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.$message.success("鎿嶄綔鎴愬姛");
+ this.$emit("goback");
+ }
+ this.reviewLoading = false;
+ })
+ .catch((error) => {
+ console.error(error);
+ this.reviewLoading = false;
+ });
+ } else {
+ this.$message.error("鏈緭鍏ヤ笉閫氳繃鍘熷洜");
+ }
+ },
+ submit() {
+ if (this.verifyUser === null || this.verifyUser === "") {
+ this.$message.error("璇锋寚瀹氬鏍镐汉鍛�");
+ return;
+ }
+ if (!this.otherForm.humidity) {
+ this.$message.error("璇疯緭鍏ユ箍搴�");
+ return;
+ }
+ if (!this.otherForm.temperature) {
+ this.$message.error("璇疯緭鍏ユ俯搴�");
+ return;
+ }
+ this.addVerifyDia = false;
+ this.submitLoading = true;
+ this.$axios
+ .post(this.$api.insOrderPlan.checkSubmitPlan, {
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ humidity: this.otherForm.humidity,
+ temperature: this.otherForm.temperature,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ if (!res.data || res.data.length == 0) {
+ this.$axios
+ .get(
+ this.$api.insOrderPlan.getEquipName +
+ "?orderId=" +
+ this.orderId +
+ "&sonLaboratory=" +
+ this.sonLaboratory
+ )
+ .then((response) => {
+ console.log(typeof response.data, response.data.length);
+ if (response.data.length > 0) {
+ let newData = [];
+ const h = this.$createElement;
+ for (let i in response.data) {
+ newData.push(
+ h(
+ "p",
+ { style: "font-size: 14px;color: red;" },
+ Number(i) + 1 + "銆�" + response.data[i]
+ )
+ );
+ }
+ newData.push(
+ h(
+ "p",
+ {
+ style:
+ "font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
+ },
+ "浠ヤ笂椤圭洰鏈�夋嫨璁惧锛岀‘瀹氭彁浜わ紵"
+ )
+ );
+ 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,
+ entrustCode: this.insOrder.entrustCode,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.$message.success("鎿嶄綔鎴愬姛");
+ this.$emit("goback");
+ }
+ this.submitLoading = false;
+ });
+ })
+ .catch(() => {
+ this.submitLoading = false;
+ });
+ } else {
+ this.$axios
+ .post(this.$api.insOrderPlan.submitPlan, {
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser,
+ entrustCode: this.insOrder.entrustCode,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.$message.success("鎿嶄綔鎴愬姛");
+ this.$emit("goback");
+ }
+ this.submitLoading = false;
+ });
+ }
+ });
+
+ // this.$axios
+ // .post(this.$api.insOrderPlan.submitPlan, {
+ // orderId: this.orderId,
+ // laboratory: this.sonLaboratory,
+ // verifyUser: this.verifyUser,
+ // entrustCode: this.insOrder.entrustCode,
+ // })
+ // .then((res) => {
+ // if (res.code === 200) {
+ // this.$message.success("鎿嶄綔鎴愬姛");
+ // this.$emit("goback");
+ // }
+ // this.submitLoading = false;
+ // })
+ } else {
+ this.$axios
+ .get(
+ this.$api.insOrderPlan.getEquipName +
+ "?orderId=" +
+ this.orderId +
+ "&sonLaboratory=" +
+ this.sonLaboratory
+ )
+ .then((response) => {
+ console.log(typeof response.data, response.data.length);
+ if (response.data.length > 0) {
+ let newData = [];
+ const h = this.$createElement;
+ for (let i in response.data) {
+ newData.push(
+ h(
+ "p",
+ { style: "font-size: 14px;color: red;" },
+ Number(i) + 1 + "銆�" + response.data[i]
+ )
+ );
+ }
+ newData.push(
+ h(
+ "p",
+ {
+ style:
+ "font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
+ },
+ "浠ヤ笂椤圭洰鏈�夋嫨璁惧锛岀‘瀹氭彁浜わ紵"
+ )
+ );
+ this.$confirm("鎻愮ず", {
+ title: "鎻愮ず",
+ message: h("div", null, newData),
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "",
+ })
+ .then(() => {
+ let newData1 = [];
+ const h1 = this.$createElement;
+ // 鍘婚噸涓嶅悎鏍煎鐞�
+ let set = new Set();
+ res.data.forEach((item) => {
+ if (!set.has(item)) {
+ set.add(item);
+ }
+ });
+ res.data = Array.from(set);
+ for (let i in res.data) {
+ const lastChar = res.data[i].slice(-1);
+ if (lastChar == "-") {
+ res.data[i] = res.data[i].slice(0, -1);
+ }
+ newData1.push(
+ h1(
+ "p",
+ { style: "font-size: 14px;color: red;" },
+ Number(i) + 1 + "銆�" + res.data[i]
+ )
+ );
+ }
+ newData1.push(
+ h1(
+ "p",
+ {
+ style:
+ "font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
+ },
+ "浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�"
+ )
+ );
+ this.$confirm("鎻愮ず", {
+ title: "鎻愮ず",
+ message: h1("div", null, newData1),
+ 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(() => {});
+ })
+ .catch(() => {
+ this.submitLoading = false;
+ });
+ } else {
+ let newData = [];
+ const h = this.$createElement;
+ // 鍘婚噸涓嶅悎鏍煎鐞�
+ let set = new Set();
+ res.data.forEach((item) => {
+ if (!set.has(item)) {
+ set.add(item);
+ }
+ });
+ res.data = Array.from(set);
+ 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;overflow-y: auto;max-height:80vh",
+ },
+ "浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�"
+ )
+ );
+ 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;
+ }
+ });
+
+ // let newData = [];
+ // const h = this.$createElement;
+ // // 鍘婚噸涓嶅悎鏍煎鐞�
+ // let set = new Set();
+ // res.data.forEach((item) => {
+ // if (!set.has(item)) {
+ // set.add(item);
+ // }
+ // });
+ // res.data = Array.from(set);
+ // 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;overflow-y: auto;max-height:80vh",
+ // },
+ // "浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�"
+ // )
+ // );
+ // 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(currentInsItemId, isDelete = false) {
+ // console.log("saveInsContext-->",this.param);
+ try {
+ if (this.param) {
+ let param = null;
+ if (currentInsItemId) {
+ param = { [currentInsItemId]: this.param[currentInsItemId] };
+ } else {
+ param = this.param;
+ }
+ console.log("param-->", param);
+ this.$axios
+ .post(this.$api.insOrderPlan.saveInsContext, {
+ param: JSON.stringify(param),
+ currentTable: this.currentTable,
+ sampleId: this.currentSample.id,
+ orderId: this.orderId,
+ sonLaboratory: this.sonLaboratory,
+ isDelete: isDelete,
+ })
+ .then((res) => {
+ if (res.code == 201) {
+ this.$message.error("淇濆瓨澶辫触");
+ return;
+ }
+ this.$message.success("宸蹭繚瀛�");
+ });
+ // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+ this.worker.postMessage(
+ JSON.stringify({
+ modelType: this.sampleProduct[0].model,
+ type: "saveData",
+ tableList: this.tableList,
+ param: this.param,
+ currentTable: this.currentTable,
+ })
+ );
+ }
+ } catch (error) {
+ console.log(999, error);
+ }
+ },
+ // 璁惧鏀瑰彉
+ changeEquip(val, n, v) {
+ this.$set(n.v, "v", val);
+ this.tableList[0].arr.forEach((item, index) => {
+ item.forEach((m, i) => {
+ if (this.param[m.i]) {
+ this.param[m.i].state = 1;
+ }
+ if (m.i == n.i && m.v.ps && m.v.ps.value == "璁惧鍚嶇О" && v) {
+ this.$set(m.v, "v", v);
+ }
+ });
+ });
+ for (let i in this.param) {
+ if (this.param[i].state != 1) {
+ delete this.param[i];
+ }
+ }
+ if (val && v) {
+ for (let i1 in this.param[n.i].equipName) {
+ if (
+ this.param[n.i].equipName[i1].i === n.i &&
+ this.param[n.i].equipName[i1].r === n.r
+ ) {
+ this.$delete(this.param[n.i].equipValue[i1].v, "v");
+ this.$set(this.param[n.i].equipValue[i1].v, "v", val);
+ this.$delete(this.param[n.i].equipName[i1].v, "v");
+ this.$set(this.param[n.i].equipName[i1].v, "v", v);
+ }
+ }
+ }
+ for (let i in this.equipOptions) {
+ if (this.equipOptions[i].value == val) {
+ for (let i1 in this.param[n.i].equipName) {
+ if (
+ this.param[n.i].equipName[i1].i === n.i &&
+ this.param[n.i].equipName[i1].r === n.r
+ ) {
+ this.$delete(this.param[n.i].equipValue[i1].v, "v");
+ this.$set(this.param[n.i].equipValue[i1].v, "v", val);
+ this.$delete(this.param[n.i].equipName[i1].v, "v");
+ this.$set(
+ this.param[n.i].equipName[i1].v,
+ "v",
+ this.equipOptions[i].label
+ );
+ this.tableList[0].arr.forEach((item, index) => {
+ item.forEach((m) => {
+ if (m.i == n.i && m.v.ps && m.v.ps.value == "璁惧鍚嶇О") {
+ this.$set(m.v, "v", this.equipOptions[i].label);
+ }
+ });
+ });
+ }
+ }
+ }
+ }
+ console.log("param", this.param);
+ console.log("tableList", this.tableList);
+ let ids = [];
+ ids.push(n.i);
+ // 閫夋嫨璁惧闇�瑕佸皢鍚堝苟鐨勫崟鍏冩牸涓�璧疯祴鍊�
+ this.tableList[0].arr.forEach((item, index) => {
+ item.forEach((m, i) => {
+ if (m.i == n.i && m.v.ps && m.v.ps.value == "璁惧鍚嶇О") {
+ if (m.v.mc) {
+ if (m.v.mc.rs) {
+ for (let j = 1; j < m.v.mc.rs; j++) {
+ let value = m.v.v; // 璁惧鍚嶇О
+ this.tableList[0].arr[index + j][i].v.v = value;
+ }
+ }
+ }
+ }
+ if (m.i == n.i && m.v.ps && m.v.ps.value == "璁惧缂栫爜") {
+ if (m.v.mc) {
+ if (m.v.mc.rs) {
+ for (let j = 1; j < m.v.mc.rs; j++) {
+ let value = m.v.v; // 璁惧缂栫爜
+ this.tableList[0].arr[index + j][i].v.v = value;
+ let productId = this.tableList[0].arr[index + j][0].i;
+ ids.push(productId);
+ }
+ }
+ }
+ }
+ });
+ });
+
+ console.log("ids", ids);
+ console.log("tableList2", this.tableList);
+ //淇濆瓨鏁版嵁
+ ids.forEach((id) => {
+ setTimeout(() => {
+ this.saveInsContext(id);
+ }, 100);
+ });
+
+ //this.saveInsContext(ids[i]);
+ },
+ getAuthorizedPerson() {
+ this.$axios.get(this.$api.user.getLaboratoryPersonList).then((res) => {
+ // let data = []
+ // // let userName = JSON.parse(localStorage.getItem("user")).name;
+ // res.data.forEach(a => {
+ // if(!this.inspectorList.includes(a.name)) {
+ // data.push({
+ // label: a.name,
+ // value: a.id
+ // })
+ // }
+ // })
+ this.personList = res.data;
+ });
+ },
+ scrollInit() {
+ // 鑾峰彇瑕佺粦瀹氫簨浠剁殑鍏冪礌
+ const nav = document.getElementById("nav");
+ var flag; // 榧犳爣鎸変笅
+ var downX; // 榧犳爣鐐瑰嚮鐨剎涓嬫爣
+ var scrollLeft; // 褰撳墠鍏冪礌婊氬姩鏉$殑鍋忕Щ閲�
+ nav.addEventListener("mousedown", function (event) {
+ flag = true;
+ downX = event.clientX; // 鑾峰彇鍒扮偣鍑荤殑x涓嬫爣
+ scrollLeft = this.scrollLeft; // 鑾峰彇褰撳墠鍏冪礌婊氬姩鏉$殑鍋忕Щ閲�
+ });
+ nav.addEventListener("mousemove", function (event) {
+ if (flag) {
+ // 鍒ゆ柇鏄惁鏄紶鏍囨寜涓嬫粴鍔ㄥ厓绱犲尯鍩�
+ var moveX = event.clientX; // 鑾峰彇绉诲姩鐨剎杞�
+ var scrollX = moveX - downX; // 褰撳墠绉诲姩鐨剎杞翠笅鏍囧噺鍘诲垰鐐瑰嚮涓嬪幓鐨剎杞翠笅鏍囧緱鍒伴紶鏍囨粦鍔ㄨ窛绂�
+ this.scrollLeft = scrollLeft - scrollX; // 榧犳爣鎸変笅鐨勬粴鍔ㄦ潯鍋忕Щ閲忓噺鍘诲綋鍓嶉紶鏍囩殑婊戝姩璺濈
+ }
+ });
+ // 榧犳爣鎶捣鍋滄鎷栧姩
+ nav.addEventListener("mouseup", function () {
+ flag = false;
+ });
+ // 榧犳爣绂诲紑鍏冪礌鍋滄鎷栧姩
+ nav.addEventListener("mouseleave", function (event) {
+ flag = false;
+ });
+ },
+ // 椤甸潰閲岄潰鍒囨崲鏍峰搧
+ async caretSample(num) {
+ let index = this.currentKey + num;
+ if (index < 1) {
+ this.$message.error("褰撳墠鏄涓�涓牱鍝�");
+ return;
+ } else if (index > this.sampleProduct.length) {
+ this.$message.error("褰撳墠鏄渶鍚庝竴涓牱鍝�");
+ return;
+ }
+ this.currentKey = index;
+ this.currentSample = this.HaveJson(this.sampleProduct[index - 1]);
+ // 鑾峰彇妫�楠岄」
+ let list = await this.getCurrentProduct(this.currentSample.id, 0);
+ this.currentSample.insProduct = this.HaveJson(list);
+ // 鍒濆鍖栧悗绔紶鍙�
+ this.param = {};
+ this.changeType = 0;
+ this.currentSample.insProduct.forEach((a, j) => {
+ this.param[a.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: null,
+ equipValue: [],
+ equipName: [],
+ insResult: null,
+ };
+ });
+ // 鏇存柊椤甸潰鍏夌氦閫夋嫨
+ this.getReportModel(this.currentSample.id);
+ // 椤甸潰鏁版嵁澶勭悊
+ this.getTableLists();
+ // 鏇存柊鍒板绾跨▼
+ this.worker.postMessage(
+ JSON.stringify({
+ modelType: this.sampleProduct[0].model,
+ type: "saveData",
+ tableList: this.tableList,
+ param: this.param,
+ currentTable: this.currentTable,
+ })
+ );
+ },
+ 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) => {});
+ },
+ /**
+ * 灏嗘暟鍊紇淇濈暀ct.fa涓�'##'鍚庣殑鎸囧畾灏忔暟浣嶆暟锛屽苟杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆銆�
+ *
+ * @param v 瑕佹牸寮忓寲鐨勬暟鍊�
+ * @param ct 鍖呭惈鏍煎紡鍖栭厤缃殑瀵硅薄
+ * @param ct.fa 鏍煎紡鍖栭厤缃瓧绗︿覆锛岃嫢鍖呭惈'##'鍒欐寜鐓у叾鍚庣殑鍐呭纭畾灏忔暟浣嶆暟
+ * @returns 鏍煎紡鍖栧悗鐨勫瓧绗︿覆鎴栧師濮嬫暟鍊硷紙鑻ラ厤缃笉绗﹀悎瑕佹眰锛�
+ */
+ toFixed(v, ct) {
+ if (v && ct && ct.fa) {
+ if (ct.fa.includes(".")) {
+ let num = ct.fa.slice(4).length;
+ return Number(v).toFixed(num);
+ } else {
+ return v;
+ }
+ } else {
+ return v;
+ }
+ },
+ },
+};
+</script>
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index c4c94aa..329d4e4 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -1,9 +1,2068 @@
<template>
- <div>妫�楠屼换鍔�</div>
+ <div class="bg-1" style="padding: 15px 5px">
+ <basic-container>
+ <div class="search" :style="`height: ${more ? 100 : 50}px;`">
+ <el-row :gutter="10" style="width: 100%">
+ <el-col :span="16" style="display: flex; flex-wrap: wrap">
+ <div
+ class="search_thing"
+ style="margin-left: 20px"
+ v-if="maxNum > 1"
+ >
+ <div class="search_label">濮旀墭缂栧彿锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="queryParams.entrustCode"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div
+ class="search_thing"
+ style="margin-left: 20px"
+ v-if="maxNum > 2"
+ >
+ <div class="search_label">鏍峰搧缂栧彿锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="queryParams.sampleCode"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div
+ class="search_thing"
+ style="margin-left: 20px"
+ v-if="maxNum > 3"
+ >
+ <div class="search_label">鏍峰搧鍚嶇О锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="鏍峰搧澶х被/鏍峰搧鍚嶇О"
+ clearable
+ v-model="queryParams.sample"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div
+ class="search_thing"
+ style="margin-left: 20px"
+ v-if="maxNum >= 4 || more"
+ >
+ <div class="search_label">妫�楠岀姸鎬侊細</div>
+ <div class="search_input">
+ <el-select
+ size="small"
+ v-model="queryParams.insState"
+ style="width: 100%"
+ clearable
+ @change="refreshTable()"
+ >
+ <el-option
+ v-for="(a, i) in insStateList"
+ :key="i"
+ :label="a.dictLabel"
+ :value="a.dictValue"
+ ></el-option>
+ </el-select>
+ </div>
+ </div>
+ <div
+ class="search_thing"
+ style="margin-left: 20px"
+ v-if="maxNum >= 5 || more"
+ >
+ <div class="search_label">涓嬪彂鏃堕棿锛�</div>
+ <div class="search_input">
+ <div class="search_input">
+ <el-date-picker
+ size="small"
+ clearable
+ @change="refreshTable()"
+ v-model="queryParams.sendTimeRange"
+ type="daterange"
+ value-format="yyyy-MM-dd[T]HH:mm:ss"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ :default-time="['00:00:00', '23:59:59']"
+ >
+ </el-date-picker>
+ </div>
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="8">
+ <div class="search_thing">
+ <el-button
+ v-if="maxNum < 5"
+ type="text"
+ :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
+ style="color: #3a7bfa"
+ @click="more = !more"
+ >{{ !more ? "鏇村" : "鏀惰捣" }}</el-button
+ >
+ <div class="search_thing" style="padding-left: 10px">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()"
+ >鏌� 璇�</el-button
+ >
+ <template>
+ <el-button size="small" type="primary" @click="excelExport"
+ >鏌ョ湅缁撴灉</el-button
+ >
+ <el-button
+ size="small"
+ type="primary"
+ @click="unInsDialogVisible = true"
+ >瀵煎嚭寰呮淇℃伅</el-button
+ >
+ </template>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ </basic-container>
+ <basic-container>
+ <div class="center">
+ <div class="center-options">
+ <el-row>
+ <el-col :span="24">
+ <div
+ style="
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ "
+ >
+ <div style="display: flex; align-items: center">
+ <ul class="tab">
+ <li
+ v-for="(m, i) in tabList"
+ :key="i"
+ :class="{ active: i == tabIndex }"
+ @click="handleTab(m, i)"
+ >
+ {{ m.label.replace("璇曢獙瀹�", "") }}
+ </li>
+ </ul>
+ <div>
+ <el-checkbox
+ @change="changeCheckBox"
+ class="view-self-checkbox"
+ v-model="alone"
+ ><span>鎴戠殑浠诲姟</span></el-checkbox
+ >
+ </div>
+ </div>
+ <div class="center-title">
+ <p>
+ <span>鏈湀浠诲姟鏁伴噺:</span>
+ <span v-if="currentMonthPlanTotal != undefined">{{
+ currentMonthPlanTotal
+ }}</span>
+ </p>
+ <p>
+ <span>鎬昏浠诲姟鏁伴噺:</span>
+ <span v-if="$refs.insOrderPlan != undefined">{{
+ $refs.insOrderPlan.page.total
+ }}</span>
+ </p>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ <lims-table
+ ref="insOrderPlan"
+ highlightCurrentRow
+ :rowClassName="changeRowClass"
+ :tableData="tableData"
+ :height="tableMainHeight + ''"
+ :column="column"
+ @pagination="pagination"
+ :page="page"
+ :tableLoading="tableLoading"
+ >
+ </lims-table>
+ </div>
+ </basic-container>
+ <div v-show="activeFace == 0 && state == 0" style="height: 100%"></div>
+
+ <el-dialog title="鎻愮ず" :visible.sync="claimVisible" width="400px">
+ 鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{
+ sampleUserForm.entrustCode
+ }}</span
+ >鐨勪换鍔�
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="claimVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmClaim" :loading="loading"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
+ <el-dialog title="妫�楠屼氦鎺�" :visible.sync="connectVisible" width="400px">
+ <div class="search_thing">
+ <div class="search_label" style="width: 90px">
+ <span class="required-span">* </span>浜ゆ帴浜哄憳锛�
+ </div>
+ <div class="search_input">
+ <el-select
+ v-model="connect.connectPerson"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ filterable
+ >
+ <el-option-group
+ v-for="(item, index) in Object.keys(personList)"
+ :key="index"
+ :label="item"
+ >
+ <el-option
+ :disabled="
+ userNameList.filter((name) => name == op.name).length > 0
+ "
+ v-for="op in personList[item]"
+ :key="op.id"
+ :label="op.name"
+ :value="op.id"
+ >
+ </el-option>
+ </el-option-group>
+ </el-select>
+ </div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label" style="width: 90px">
+ <span class="required-span">* </span>璇曢獙瀹わ細
+ </div>
+ <div class="search_input">
+ <el-select
+ v-model="connect.sonLaboratory"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ filterable
+ >
+ <el-option
+ v-for="item in sonLaboratoryList"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="connectVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmConnect" :loading="loading"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
+ <div style="width: 100%; height: 100%" v-if="activeFace > 0">
+ <Add :active="activeFace" :currentId="currentId" :examine="examine" />
+ </div>
+ <Inspection
+ v-if="state > 0"
+ @goback="goback"
+ :handover="personList"
+ :sonLaboratoryList="sonLaboratoryList"
+ :orderId="orderId"
+ :inspectorList="inspectorList"
+ :sonLaboratory="componentData.entity.sonLaboratory"
+ :state="state"
+ />
+ <el-dialog
+ title="鏁版嵁鏌ョ湅"
+ :visible.sync="dataDialogVisible"
+ width="100%"
+ fullscreen
+ >
+ <!-- <div
+ style="width: 100%; text-align: right; margin-bottom: 10px"
+ v-if="premissionReviewFun()"
+ >
+ <el-button type="primary" size="small" @click="goReview(currentRow)"
+ >鍓嶅線澶嶆牳</el-button
+ >
+ </div> -->
+ <lims-table
+ ref="dataLookTable"
+ highlightCurrentRow
+ :tableData="dataLooktableData"
+ height="80vh"
+ :column="dataLookColumn"
+ :tableLoading="dataLookTableLoading"
+ >
+ </lims-table>
+ </el-dialog>
+ <!-- 瀵煎嚭寮规 -->
+ <el-dialog
+ :title="title"
+ :visible.sync="dialogVisibleExcel"
+ fullscreen
+ :before-close="handleClose"
+ >
+ <div class="search">
+ <div style="display: flex">
+ <div style="margin-right: 20px">
+ <span>濮旀墭鍗曞彿锛�</span>
+ <el-input
+ size="mini"
+ placeholder="璇疯緭鍏�"
+ clearable
+ style="width: 180px"
+ v-model="excelForm.entrustCode"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ <div style="margin-right: 20px">
+ <span>鏍峰搧缂栧彿锛�</span>
+ <el-input
+ size="mini"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="excelForm.sampleCode"
+ style="width: 180px"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ <div style="margin-right: 20px">
+ <span>妫�楠屼汉锛�</span>
+ <el-select
+ size="mini"
+ v-model="excelForm.sampleName"
+ placeholder="璇烽�夋嫨"
+ @keyup.enter.native="refreshTable()"
+ style="width: 120px"
+ >
+ <el-option-group
+ v-for="(item, index) in Object.keys(personList)"
+ :key="index"
+ :label="item"
+ >
+ <el-option
+ v-for="op in personList[item]"
+ :key="op.id"
+ :label="op.name"
+ :value="op.id"
+ >
+ </el-option>
+ </el-option-group>
+ </el-select>
+ </div>
+ <div style="margin-right: 20px">
+ <span>鏃ユ湡锛�</span>
+ <el-date-picker
+ size="mini"
+ v-model="excelForm.dateTime"
+ type="daterange"
+ range-separator="鑷�"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ format="yyyy-MM-dd"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ >
+ </el-date-picker>
+ </div>
+ </div>
+ <div class="search_thing">
+ <el-button
+ size="mini"
+ type="primary"
+ icon="el-icon-search"
+ @click="excelSearch"
+ >鏌� 璇�</el-button
+ >
+ <el-button
+ size="mini"
+ icon="el-icon-download"
+ type="primary"
+ @click="excelExportTrends"
+ :loading="outLoading"
+ >瀵� 鍑�</el-button
+ >
+ </div>
+ </div>
+ <!-- 琛ㄦ牸鍐呭 -->
+ <el-divider content-position="left">妫�楠岀粨鏋�</el-divider>
+ <br />
+ <div>
+ <el-tabs
+ type="border-card"
+ v-model="activeName"
+ @tab-click="handleClick"
+ >
+ <el-tab-pane
+ v-for="(v, i) in tabs"
+ :key="i"
+ :label="v"
+ :name="i.toString()"
+ >
+ <el-table
+ :data="tabsData"
+ border
+ ref="showResultTable"
+ v-loading="loadingTable"
+ :height="tableHeight"
+ element-loading-text="鍔犺浇涓�"
+ element-loading-spinner="el-icon-loading"
+ element-loading-background="rgba(255, 255, 255, 1)"
+ >
+ <el-table-column
+ label="搴忓彿"
+ type="index"
+ width="60"
+ ></el-table-column>
+ <el-table-column
+ label="濮旀墭鍗曞彿"
+ show-overflow-tooltip
+ prop="entrustCode"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ show-overflow-tooltip
+ label="鏍峰搧缂栧彿"
+ prop="sampleCode"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ label="绠¤壊鏍�"
+ prop="bushing"
+ width="80"
+ ></el-table-column>
+ <el-table-column
+ label="鍏夌氦甯﹁壊鏍�"
+ prop="fibers"
+ width="110"
+ ></el-table-column>
+ <el-table-column
+ label="鍏夌氦鑹叉爣"
+ prop="fiber"
+ width="100"
+ ></el-table-column>
+ <el-table-column
+ label="妫�娴嬮」鐩垎绫�"
+ show-overflow-tooltip
+ prop="inspectionItem"
+ v-if="tabName != '娓╁害寰幆'"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ label="妫�娴嬩汉"
+ prop="userName"
+ width="80"
+ ></el-table-column>
+ <el-table-column
+ label="妫�娴嬫椂闂�"
+ prop="insTime"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ label="涓嬪彂鏃堕棿"
+ prop="sendTime"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ v-for="(v, i) in tableHeader"
+ :label="v.label"
+ :prop="v.prop"
+ :key="i"
+ min-width="120"
+ show-overflow-tooltip
+ :width="calcTableColumnWidth(v.label)"
+ >
+ </el-table-column>
+ </el-table>
+ <el-pagination
+ background
+ style="text-align: right; margin-top: 20px"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ :current-page="currentPage"
+ :page-sizes="[10, 20, 50, 100, 200]"
+ :page-size="pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total"
+ >
+ </el-pagination>
+ </el-tab-pane>
+ </el-tabs>
+ </div>
+ </el-dialog>
+ <!-- 瀵煎嚭濮旀墭璐圭敤寮规 -->
+ <el-dialog
+ title="濮旀墭璐圭敤缁熻瀵煎嚭"
+ :visible.sync="commissionFeesDialogVisible"
+ width="30%"
+ :before-close="handleCloseCommissionFees"
+ >
+ <el-form :model="exportFees" ref="exportFees" :rules="feesRule">
+ <el-form-item label="涓嬪崟鏃ユ湡" prop="commissionFeesDate">
+ <el-date-picker
+ v-model="exportFees.commissionFeesDate"
+ type="daterange"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ >
+ </el-date-picker>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="handleCloseCommissionFees">鍙� 娑�</el-button>
+ <el-button type="primary" @click="exportcommissionFees"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
+ <!-- 瀵煎嚭寰呮淇℃伅寮规 -->
+ <el-dialog
+ title="寰呮浠诲姟瀵煎嚭"
+ :visible.sync="unInsDialogVisible"
+ width="30%"
+ :before-close="handleCloseUnInsDialog"
+ >
+ <el-form
+ :model="unInsProductsData"
+ ref="exportUnInsProducts"
+ :rules="unInsRule"
+ >
+ <el-form-item label="涓嬪彂鏃ユ湡" prop="sendTime">
+ <el-date-picker
+ v-model="unInsProductsData.sendTime"
+ type="daterange"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ >
+ </el-date-picker>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="handleCloseUnInsDialog">鍙� 娑�</el-button>
+ <el-button type="primary" @click="exportUnInsProductsFun"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
+ <!-- 鏁版嵁鏌ョ湅璇︽儏 -->
+ <el-dialog
+ title="鏌ョ湅璇︽儏"
+ :visible.sync="dialogVisible"
+ width="70%"
+ :before-close="handleClose3"
+ >
+ <el-table
+ v-if="type == '鍗曟牴鍨傜洿鐕冪儳' || type == '鏉惧绠�'"
+ :data="viewDetailsList"
+ border
+ height="400px"
+ style="width: 100%"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ width="80px"
+ ></el-table-column>
+ <el-table-column prop="entrustCode" label="濮旀墭鍗曞彿"></el-table-column>
+ <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿"></el-table-column>
+ <el-table-column
+ prop="color"
+ label="濂楃"
+ v-if="viewDetailsList.filter((ele) => ele.color !== '').length > 0"
+ ></el-table-column>
+ <!-- <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column> -->
+ <el-table-column prop="insValue" label="妫�楠岀粨鏋�"></el-table-column>
+ </el-table>
+
+ <el-table
+ v-if="type == '鎶楁媺寮哄害'"
+ :data="viewDetailsList"
+ height="400px"
+ border
+ style="width: 100%"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ width="80px"
+ ></el-table-column>
+ <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column>
+ <el-table-column
+ prop="inspectionItemSubclass"
+ label="妫�楠屽瓙椤�"
+ ></el-table-column>
+ <el-table-column prop="width" label="瀹藉害"></el-table-column>
+ <el-table-column prop="thickness" label="鍘氬害"></el-table-column>
+ <el-table-column prop="testValue" label="妫�楠屽��"></el-table-column>
+ </el-table>
+
+ <el-table
+ v-if="type == '鏂浼搁暱鐜�'"
+ :data="viewDetailsList"
+ height="400px"
+ border
+ style="width: 100%"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ width="80px"
+ ></el-table-column>
+ <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column>
+ <el-table-column
+ prop="inspectionItemSubclass"
+ label="妫�楠屽瓙椤�"
+ ></el-table-column>
+ <el-table-column
+ v-for="(v, i) in tableHeader"
+ :key="i"
+ :prop="`testValue${i}`"
+ :label="`妫�楠屽��${i + 1}`"
+ ></el-table-column>
+ </el-table>
+ </el-dialog>
+ <!-- 璁㈠崟鍩烘湰淇℃伅寮规 -->
+ <el-dialog
+ title="濮旀墭鍗曚俊鎭�"
+ :visible.sync="orderInfoDialog"
+ top="5vh"
+ width="70%"
+ >
+ <el-divider content-position="left">妫�楠屾牱鍝佺紪鍙峰垪琛�</el-divider>
+ <el-table
+ :data="insSampleListData"
+ border
+ height="200"
+ :cell-style="{ textAlign: 'center' }"
+ :header-cell-style="{ textAlign: 'center' }"
+ >
+ <el-table-column label="鏍峰搧缂栧彿" prop="sampleCode"></el-table-column>
+ <el-table-column label="鐘舵��" prop="state">
+ <template slot-scope="scope">
+ <el-tag type="danger" v-if="scope.row.state == 0">寰呮</el-tag>
+ <el-tag type="warning" v-if="scope.row.state == 1">鍦ㄦ</el-tag>
+ <el-tag type="success" v-if="scope.row.state == 2">宸叉</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column label="妫�娴嬩汉" prop="inspectName"></el-table-column>
+ </el-table>
+ <br />
+ <el-divider content-position="left">濮旀墭鍗曞唴瀹�</el-divider>
+ <el-table
+ :data="insProductVOSData"
+ border
+ height="300"
+ :cell-style="{ textAlign: 'center' }"
+ :header-cell-style="{ textAlign: 'center' }"
+ >
+ <el-table-column
+ label="鏍峰搧缂栧彿"
+ prop="sampleCode"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ label="鏍峰搧鍨嬪彿"
+ prop="model"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ label="妫�娴嬮」鐩�"
+ prop="testItem"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ label="妫�娴嬪瓙椤�"
+ prop="testItemChildren"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ label="璇曢獙鏂规硶"
+ prop="testMethod"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ label="鏍囧噯瑕佹眰"
+ prop="requirement"
+ show-overflow-tooltip
+ ></el-table-column>
+ </el-table>
+ </el-dialog>
+ </div>
</template>
<script>
-export default {};
+import { mapGetters } from "vuex";
+import Inspection from "./Inspection.vue";
+import { getYearAndMonthAndDays } from "@/utils/date";
+import { transformExcel } from "@/utils/file";
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+ getCurrentMonthPlanTotal,
+ exportCommissionFees,
+ exportUnInsProducts,
+ exportInsOrderPlanResult,
+ getTabHeader,
+ getInsOrderTemList,
+ getInsOrderPlanList,
+ claimInsOrderPlan,
+ getSampleInfoByOrderId,
+ selectInsOrderPlanList,
+ upPlanUser2,
+ upPlanUser,
+} from "@/api/business/inspectionTask";
+import {
+ selectSampleAndProductByOrderId,
+ viewDetails,
+} from "@/api/business/inspectionOrder";
+import { getDicts } from "@/api/system/dict/data";
+import { getLaboratoryPersonList } from "@/api/system/user";
+import LimsTable from "../../../components/Table/lims-table.vue";
+export default {
+ components: {
+ Inspection,
+ limsTable,
+ LimsTable,
+ },
+ computed: {
+ ...mapGetters(["permissions", "nickName"]),
+ },
+ data() {
+ return {
+ insStateList: [],
+ urgencyDictList: [],
+ tableData: [],
+ column: [
+ {
+ label: "濮旀墭缂栧彿",
+ prop: "entrustCode",
+ minWidth: "160px",
+ width: "160px",
+ dataType: "link",
+ linkEvent: {
+ method: "selectAllByOne",
+ vueComponent: this,
+ },
+ },
+ {
+ label: "濮旀墭鍗曚綅",
+ prop: "company",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "鏍峰搧鍚嶇О",
+ prop: "sample",
+ minWidth: "140px",
+ width: "140px",
+ dataType: "link",
+ linkEvent: {
+ method: "selectOrderInfo",
+ vueComponent: this,
+ },
+ },
+ {
+ label: "鏍峰搧鍨嬪彿",
+ prop: "model",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "绱ф�ョ▼搴�",
+ prop: "type",
+ dataType: "tag",
+ minWidth: "90px",
+ width: "90px",
+ formatData: (params) => {
+ let index = this.urgencyDictList.findIndex(
+ (item) => item.dictValue == params
+ );
+ if (index > -1) {
+ return this.urgencyDictList[index].dictLabel;
+ } else {
+ return null;
+ }
+ },
+ formatType: (params) => {
+ let index = this.urgencyDictList.findIndex(
+ (item) => item.dictValue == params
+ );
+ if (index > -1) {
+ return this.urgencyDictList[index].listClass;
+ } else {
+ return null;
+ }
+ },
+ },
+ {
+ label: "鐘舵��",
+ prop: "insState",
+ dataType: "tag",
+ minWidth: "100px",
+ width: "100px",
+ formatData: (params) => {
+ let index = this.insStateList.findIndex(
+ (item) => item.dictValue == params
+ );
+ if (index > -1) {
+ return this.insStateList[index].dictLabel;
+ } else {
+ return null;
+ }
+ },
+ formatType: (params) => {
+ let index = this.insStateList.findIndex(
+ (item) => item.dictValue == params
+ );
+ if (index > -1) {
+ return this.insStateList[index].listClass;
+ } else {
+ return null;
+ }
+ },
+ },
+ {
+ label: "妫�楠屼汉",
+ prop: "userName",
+ minWidth: "140px",
+ width: "140px",
+ },
+ {
+ label: "澶嶆牳浜�",
+ prop: "checkName",
+ minWidth: "100px",
+ width: "100px",
+ },
+ {
+ label: "绾﹀畾鏃堕棿",
+ prop: "appointed",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "涓嬪彂鏃堕棿",
+ prop: "sendTime",
+ minWidth: "140px",
+ width: "140px",
+ },
+ {
+ label: "妫�楠屽紑濮嬫椂闂�",
+ prop: "insTime",
+ minWidth: "140px",
+ width: "140px",
+ },
+ {
+ label: "鐞嗙敱",
+ prop: "verifyTell",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "鎿嶄綔",
+ dataType: "action",
+ fixed: "right",
+ operation: [
+ {
+ name: "鏁版嵁鏌ョ湅",
+ type: "text",
+ clickFun: (row) => {
+ this.handleDataLook(row);
+ },
+ },
+ {
+ name: "妫�楠�",
+ type: "text",
+ clickFun: (row) => {
+ this.handleInspection(row);
+ },
+ disabled: (row, index) => {
+ return (
+ row.userName == null ||
+ row.insState == 3 ||
+ row.insState == 5 ||
+ (row.userName && !row.userName.includes(this.nickName))
+ );
+ },
+ },
+ {
+ name: "浜ゆ帴",
+ type: "text",
+ clickFun: (row) => {
+ this.handleConnect(row);
+ },
+ disabled: (row, index) => {
+ return (
+ row.userName == null ||
+ row.insState == 5 ||
+ row.insState == 3 ||
+ (row.userName &&
+ !row.userName.includes(this.nickName) &&
+ !this.isLeader)
+ );
+ },
+ },
+ {
+ name: "澶嶆牳",
+ type: "text",
+ clickFun: (row) => {
+ this.handleReview(row);
+ },
+ disabled: (row, userName) => {
+ return (
+ row.userName == null ||
+ row.insState != 3 ||
+ (row.checkName && !row.checkName.includes(this.nickName))
+ );
+ },
+ },
+ {
+ name: "璁ら",
+ type: "text",
+ clickFun: (row) => {
+ this.claimFun(row);
+ },
+ disabled: (row, index) => {
+ return row.userName != null || row.checkName != null;
+ },
+ },
+ ],
+ },
+ ],
+ dataLooktableData: [],
+ insResultList: [
+ {
+ value: 1,
+ label: "鍚堟牸",
+ type: "success",
+ },
+ {
+ value: 0,
+ label: "涓嶅悎鏍�",
+ type: "danger",
+ },
+ {
+ value: 3,
+ label: "涓嶅垽瀹�",
+ type: "",
+ },
+ ],
+ dataLookColumn: [
+ {
+ label: "濮旀墭缂栧彿",
+ prop: "entrustCode",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "鏍峰搧缂栧彿",
+ prop: "sampleCode",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "绠″鑹叉爣",
+ prop: "bushColor",
+ minWidth: "100px",
+ width: "100px",
+ },
+ {
+ label: "鍏夌氦甯︾紪鍙�",
+ prop: "code",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "鍏夌氦鑹叉爣",
+ prop: "color",
+ minWidth: "100px",
+ width: "100px",
+ },
+ {
+ label: "妫�楠岄」",
+ prop: "inspectionItem",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "妫�楠屽瓙椤�",
+ prop: "inspectionItemSubclass",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "妫�楠岀粨鏋�",
+ prop: "lastValue",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "缁撴灉鍒ゅ畾",
+ prop: "insResult",
+ minWidth: "100px",
+ width: "100px",
+ dataType: "tag",
+ formatData: (params) => {
+ let index = this.insResultList.findIndex(
+ (item) => item.value == params
+ );
+ if (index > -1) {
+ return this.insResultList[index].label;
+ } else {
+ return null;
+ }
+ },
+ formatType: (params) => {
+ let index = this.insResultList.findIndex(
+ (item) => item.value == params
+ );
+ if (index > -1) {
+ return this.insResultList[index].type;
+ } else {
+ return null;
+ }
+ },
+ },
+ {
+ label: "鍗曚綅",
+ prop: "unit",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "璇曢獙瑕佹眰",
+ prop: "tell",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "妫�楠屼汉",
+ prop: "checkName",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ label: "妫�楠屾棩鏈�",
+ prop: "checkTime",
+ minWidth: "140px",
+ width: "140px",
+ },
+ {
+ label: "鏍峰搧鍚嶇О",
+ prop: "sample",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "鏍峰搧鍨嬪彿",
+ prop: "model",
+ minWidth: "160px",
+ width: "160px",
+ },
+ {
+ label: "璇曢獙瀹�",
+ prop: "sonLaboratory",
+ minWidth: "120px",
+ width: "120px",
+ },
+ {
+ dataType: "action",
+ label: "鎿嶄綔",
+ fixed: "right",
+ operation: [
+ {
+ name: "鏌ョ湅",
+ type: "text",
+ clickFun: (row) => {
+ this.viewDetails(row);
+ },
+ // showHide: (row) => {
+ // return (
+ // row.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳" ||
+ // row.inspectionItem.includes("鏉惧绠�") ||
+ // row.inspectionItemSubclass.includes("鏉惧绠�") ||
+ // (row.inspectionItem == "鎶楁媺寮哄害" &&
+ // (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+ // row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�")) ||
+ // (row.inspectionItem == "鏂浼搁暱鐜�" &&
+ // (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+ // row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�"))
+ // );
+ // },
+ },
+ ],
+ },
+ ],
+ dataLookTableLoading: false,
+ queryParams: {
+ entrustCode: null,
+ sampleCode: null,
+ sample: null,
+ insState: null,
+ sendTimeRange: [],
+ },
+ page: {
+ total: 0,
+ size: 20,
+ current: 1,
+ },
+ tableLoading: false,
+
+ //old
+ tableHeader: [],
+ type: "",
+ maxNum: 1,
+ isShowMore: false,
+ more: false,
+ dialogVisible: false,
+ viewDetailsList: [],
+ unInsDialogVisible: false,
+ unInsProductsData: {
+ sendTime: [],
+ },
+ exportFees: {
+ commissionFeesDate: [],
+ },
+ feesRule: {
+ commissionFeesDate: {
+ required: true,
+ message: "璇烽�夋嫨涓嬪崟鏃ユ湡",
+ trigger: "change",
+ },
+ },
+ unInsRule: {
+ sendTime: {
+ required: true,
+ message: "璇烽�夋嫨涓嬪彂鏃ユ湡",
+ trigger: "change",
+ },
+ },
+ commissionFeesDialogVisible: false,
+ commissionFeesDate: null,
+ orderInfoDialog: false, //璁㈠崟鍩烘湰淇℃伅寮规
+ tableHeight: 0,
+ tableMainHeight: 0,
+ outLoading: false,
+ trendsTable: [],
+ pageSize: 20,
+ total: 0,
+ currentPage: 1,
+ loadingTable: true,
+ activeName: "0",
+ tabName: null,
+ tabsData: [],
+ tabs: [],
+ selectTab: "",
+ excelForm: {
+ entrustCode: null,
+ sampleCode: null,
+ sampleName: null,
+ dateTime: null,
+ },
+ dialogVisibleExcel: false,
+ examine: null,
+ inspectorList: [], //妫�楠屼汉鍛樺垪琛�
+ alone: false,
+ sampleUserForm: {
+ entrustCode: null,
+ insSampleId: null,
+ userId: null,
+ },
+ claimVisible: false,
+ tabList: [],
+ active: 1,
+ tabIndex: 0,
+ componentDataDataLook: {
+ isPage: false,
+ entity: {
+ id: 0,
+ orderBy: {
+ field: "sampleCode",
+ order: "asc",
+ },
+ },
+ isIndex: false,
+ showSelect: false,
+ select: false,
+ do: [
+ {
+ id: "",
+ font: "鏌ョ湅",
+ type: "text",
+ method: "viewDetails",
+ showFun: (row, index) => {
+ return (
+ row.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳" ||
+ row.inspectionItem.includes("鏉惧绠�") ||
+ row.inspectionItemSubclass.includes("鏉惧绠�") ||
+ (row.inspectionItem == "鎶楁媺寮哄害" &&
+ (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+ row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�")) ||
+ (row.inspectionItem == "鏂浼搁暱鐜�" &&
+ (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+ row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�"))
+ );
+ },
+ },
+ ],
+ tagField: {
+ insState: {
+ select: [],
+ },
+ insResult: {
+ select: [
+ {
+ value: 1,
+ label: "鍚堟牸",
+ type: "success",
+ },
+ {
+ value: 0,
+ label: "涓嶅悎鏍�",
+ type: "danger",
+ },
+ {
+ value: 3,
+ label: "涓嶅垽瀹�",
+ type: "",
+ },
+ ],
+ },
+ },
+ selectField: {},
+ spanConfig: {
+ rows: [
+ // {
+ // name: "entrustCode",
+ // index: 0,
+ // },
+ // {
+ // name: "sampleCode",
+ // index: 1,
+ // },
+ ],
+ },
+ requiredAdd: [],
+ requiredUp: [],
+ },
+ dataDialogVisible: false,
+
+ upIndex: 0,
+ planTotal: 0,
+ state: 0, //0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0
+ activeFace: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0
+ currentId: null,
+ entityCopy: {},
+ orderId: 0,
+ personList: [],
+ connectVisible: false,
+ connect: {
+ connectPerson: "",
+ sonLaboratory: "",
+ },
+ loading: false,
+ currentTime: null,
+ sonLaboratoryList: [],
+ userNameList: [],
+ currentRow: null,
+ insProductVOSData: [],
+ insSampleListData: [],
+ currentMonthPlanTotal: 0,
+ };
+ },
+ created() {
+ this.getLaboratoryDicts();
+ this.getTypeDicts();
+ this.getInsStateDicts();
+ this.getAuthorizedPerson();
+ this.currentTime = getYearAndMonthAndDays();
+ this.getTableHeight();
+ this.handleResize();
+ },
+ mounted() {
+ window.addEventListener("resize", this.getTableHeight);
+ // 鐩戝惉绐楀彛澶у皬鏀瑰彉浜嬩欢
+ window.addEventListener("resize", this.handleResize);
+ },
+ beforeDestroy() {
+ window.removeEventListener("resize", this.getTableHeight);
+ window.removeEventListener("resize", this.handleResize);
+ },
+ watch: {
+ more() {
+ this.getTableHeight();
+ },
+ tabsData() {
+ this.$nextTick(() => {
+ this.$refs.showResultTable &&
+ this.$refs.showResultTable.forEach((e) => e.doLayout());
+ });
+ },
+ },
+ computed: {
+ title() {
+ return this.selectTab + "妫�楠岀粨鏋滄樉绀�";
+ },
+ isLeader() {
+ const power = JSON.parse(sessionStorage.getItem("power"));
+ if (power) {
+ const filterList = power.filter((ele) => ele.menuMethod == "leader");
+ return filterList.length > 0;
+ }
+ return false;
+ },
+ },
+ methods: {
+ pagination({ page, limit }) {
+ this.page.current = page;
+ this.page.size = limit;
+ this.getList();
+ },
+ getList() {
+ this.tableLoading = true;
+ selectInsOrderPlanList({ ...this.queryParams, ...this.page })
+ .then((res) => {
+ if (res.code === 200) {
+ this.tableData = res.data.records;
+ this.page.total = res.data.total;
+ }
+ this.tableLoading = false;
+ })
+ .catch((error) => {
+ this.tableLoading = false;
+ console.error(error);
+ });
+ },
+ getCurrentMonthPlanTotal() {
+ let startTime = null;
+ let endTime = null;
+ if (this.queryParams.sendTimeRange.length > 1) {
+ startTime = this.queryParams.sendTimeRange[0].replace("T", " ");
+ endTime = this.queryParams.sendTimeRange[1].replace("T", " ");
+ }
+ getCurrentMonthPlanTotal({
+ sonLaboratory: this.queryParams.sonLaboratory,
+ startTime: startTime,
+ endTime: endTime,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.currentMonthPlanTotal = res.data;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ // 瀹氫箟涓�涓嚱鏁版潵澶勭悊瑙嗗彛瀹藉害鍙樺寲
+ handleResize() {
+ //瑙嗗彛瀹藉害
+ let windowWidth = window.innerWidth;
+ //鍑忓幓宸﹁竟鑿滃崟鏍忓搴�200锛岄〉杈硅窛40,鍙宠竟鐨勬搷浣滄寜閽搴iewportWidth*33.33333%
+ let viewportWidth = windowWidth - 200 - 40;
+ //鎼滅储琛ㄥ崟鏈�澶у搴�
+ let formMaxWidth = viewportWidth - viewportWidth * 0.3333333;
+ //鍗曚釜鎼滅储妗嗗搴︿负230
+ this.maxNum = formMaxWidth / 250;
+ },
+ // 鏌ョ湅璇︽儏
+ viewDetails(row) {
+ this.dialogVisible = true;
+ if (
+ row.inspectionItem.includes("鏉惧绠�") ||
+ row.inspectionItemSubclass.includes("鏉惧绠�")
+ ) {
+ this.type = "鏉惧绠�";
+ } else {
+ this.type = row.inspectionItem;
+ }
+ let data = {
+ inspectionItem: row.inspectionItem,
+ inspectionItemSubclass: row.inspectionItemSubclass,
+ insProductId: row.insProductId,
+ insSampleId: row.insSampleId,
+ entrustCode: row.entrustCode,
+ sampleCode: row.sampleCode,
+ };
+ viewDetails(data)
+ .then((res) => {
+ if (res.code === 200) {
+ this.viewDetailsList = res.data;
+ if (res.data[0].tableHeader) {
+ this.tableHeader = res.data[0].tableHeader;
+ } else {
+ this.tableHeader = [
+ {
+ testValue0: "",
+ },
+ ];
+ }
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ handleCommand(command) {
+ switch (command) {
+ case "showInsResults":
+ //鏌ヨ妫�楠岀粨鏋�
+ this.excelExport();
+ break;
+ case "exportFees":
+ //瀵煎嚭濮旀墭璐圭敤
+ this.commissionFeesDialogVisible = true;
+ break;
+ case "exportUnInsProducts":
+ //瀵煎嚭寰呮淇℃伅
+ this.unInsDialogVisible = true;
+ break;
+ }
+ },
+ // 瀵煎嚭濮旀墭璐圭敤
+ exportcommissionFees() {
+ this.$refs.exportFees.validate((valid) => {
+ if (valid) {
+ let data = {
+ startTime: this.exportFees.commissionFeesDate[0],
+ endTime: this.exportFees.commissionFeesDate[1],
+ };
+ exportCommissionFees(data)
+ .then((res) => {
+ transformExcel(res, "濮旀墭璐圭敤缁熻.xlsx");
+ this.$nextTick(() => {
+ this.$message.success("瀵煎嚭鎴愬姛");
+ this.commissionFeesDate = null;
+ this.commissionFeesDialogVisible = false;
+ });
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ });
+ },
+ handleCloseCommissionFees() {
+ this.exportFees.commissionFeesDate = null;
+ this.commissionFeesDialogVisible = false;
+ this.$refs.exportFees.resetFields();
+ },
+ // 瀵煎嚭寰呮浠诲姟
+ exportUnInsProductsFun() {
+ this.$refs.exportUnInsProducts.validate((valid) => {
+ if (valid) {
+ let data = {
+ startDate: this.unInsProductsData.sendTime[0],
+ endDate: this.unInsProductsData.sendTime[1],
+ entrustCode: this.queryParams.entrustCode,
+ insState: this.queryParams.insState,
+ sampleCode: this.queryParams.sampleCode,
+ sample: this.queryParams.sample,
+ sonLaboratory: this.queryParams.sonLaboratory,
+ };
+ console.log(data);
+ exportUnInsProducts(data)
+ .then((res) => {
+ transformExcel(res, "寰呮浠诲姟缁熻.xlsx");
+ this.$nextTick(() => {
+ this.$message.success("瀵煎嚭鎴愬姛");
+ this.handleCloseUnInsDialog();
+ });
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ });
+ },
+ handleCloseUnInsDialog() {
+ this.unInsProductsData.sendTime = [];
+ this.unInsDialogVisible = false;
+ this.$refs.exportUnInsProducts.resetFields();
+ },
+ //鍓嶅線澶嶆牳鎸夐挳鏉冮檺鏍¢獙
+ premissionReviewFun() {
+ if (this.currentRow) {
+ let row = this.currentRow;
+ return !(
+ row.userName == null ||
+ row.insState != 3 ||
+ (row.checkName && !row.checkName.includes(this.nickName))
+ );
+ }
+ },
+ //鍓嶅線澶嶆牳鏂规硶
+ goReview(currentRow) {
+ this.dataDialogVisible = false;
+ this.$nextTick(() => {
+ this.handleReview(currentRow);
+ });
+ },
+ //鏌ョ湅妫�楠岀粨鏋�-璁$畻琛ㄦ牸鍒楀搴�
+ calcTableColumnWidth(columnName) {
+ let width = 120;
+ if (columnName) {
+ let clacWidth = 20 * columnName.length;
+ width = clacWidth > width ? clacWidth : width;
+ }
+ return width;
+ },
+ getTableHeight() {
+ const outherMainHeight = this.more ? 386 : 336; //涓昏〃鏍煎叾浣欓珮搴�
+ const otherHeight = 320; // 鍏朵綑楂樺害
+ const tableH = 50; // 璺濈椤甸潰涓嬫柟鐨勯珮搴�
+ const tableHeightDetil = window.innerHeight - tableH;
+ if (tableHeightDetil <= 300) {
+ this.tableHeight = 200;
+ this.tableMainHeight = 200;
+ } else {
+ this.tableHeight = window.innerHeight - tableH - otherHeight;
+ this.tableMainHeight = window.innerHeight - tableH - outherMainHeight;
+ }
+ },
+ // 瀵煎嚭鏌ョ湅缁撴灉鏁版嵁
+ excelExportTrends() {
+ this.$message.warning("姝e湪瀵煎嚭 璇风◢鍚�...");
+ this.outLoading = true;
+ exportInsOrderPlanResult({
+ sampleType: this.tabName,
+ sonLaboratory: this.selectTab,
+ entrustCode: this.excelForm.entrustCode,
+ sampleCode: this.excelForm.sampleCode,
+ createUser: this.excelForm.sampleName,
+ insTime: this.excelForm.dateTime,
+ headerS: JSON.stringify(this.tableHeader),
+ })
+ .then((res) => {
+ this.outLoading = false;
+ this.$message.success("瀵煎嚭鎴愬姛");
+ const blob = new Blob([res], { type: "application/octet-stream" });
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement("a");
+ link.href = url;
+ link.download = "妫�楠岀粨鏋�.xlsx";
+ link.click();
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ handleClose3() {
+ this.dialogVisible = false;
+ },
+ handleSizeChange(val) {
+ this.pageSize = val;
+ let table = JSON.parse(JSON.stringify(this.trendsTable));
+ this.tabsData = table.slice(0, val);
+ console.log(`姣忛〉 ${val} 鏉);
+ },
+ handleCurrentChange(val) {
+ let table = JSON.parse(JSON.stringify(this.trendsTable));
+ this.tabsData = table.slice(
+ (val - 1) * this.pageSize,
+ val * this.pageSize
+ );
+ console.log(`褰撳墠椤�: ${val}`);
+ },
+ handleClick(tab, event) {
+ this.tabName = this.tabs[tab.name];
+ this.getTabHeader(this.tabs[tab.name]);
+ },
+ excelSearch() {
+ this.getTabHeader(this.tabName);
+ },
+ // 瀵煎嚭寮规鑾峰彇tabs椤垫爣绛�
+ excelExport() {
+ this.resetForm();
+ this.outLoading = false;
+ this.activeName = "0";
+ if (this.selectTab == null || this.selectTab == "") {
+ this.selectTab = this.tabList[0].value;
+ }
+ this.loadingTable = true;
+ getTabHeader({
+ sonLaboratory: this.selectTab,
+ samples: "",
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.tabs = res.data.tabHeader;
+ this.tabName = this.tabs[0];
+ this.getTabHeader(this.tabs[0]); // 鑾峰彇鍔ㄦ�佽〃澶�
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ this.dialogVisibleExcel = true;
+ },
+ // samples鑾峰彇鍔ㄦ�佽〃澶�
+ getTabHeader(samples) {
+ getTabHeader({
+ sonLaboratory: this.selectTab,
+ samples: samples,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.loadingTable = true;
+ this.tableHeader = [];
+ this.tableHeader = res.data.tableHeader;
+ let data = {
+ sampleType: samples,
+ sonLaboratory: this.selectTab,
+ entrustCode: this.excelForm.entrustCode,
+ sampleCode: this.excelForm.sampleCode,
+ createUser: this.excelForm.sampleName,
+ insTime: this.excelForm.dateTime,
+ headerS: JSON.stringify(this.tableHeader),
+ };
+ if (samples == "娓╁害寰幆") {
+ // 鑾峰彇琛ㄦ牸鏁版嵁
+ getInsOrderTemList(data)
+ .then((res) => {
+ if (res.code === 200) {
+ this.tabsData = [];
+ this.trendsTable = res.data;
+ // 鍒嗛〉
+ this.total = this.trendsTable.length;
+ this.tabsData = res.data.slice(0, this.pageSize);
+ this.loadingTable = false;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ } else {
+ // 鑾峰彇琛ㄦ牸鏁版嵁
+ getInsOrderPlanList(data)
+ .then((res) => {
+ if (res.code === 200) {
+ this.tabsData = [];
+ this.trendsTable = res.data;
+ // 鍒嗛〉
+ this.total = this.trendsTable.length;
+ this.tabsData = res.data.slice(0, this.pageSize);
+ this.loadingTable = false;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ // 娓呯┖琛ㄥ崟
+ resetForm() {
+ this.excelForm = {
+ entrustCode: null,
+ sampleCode: null,
+ sampleName: null,
+ dateTime: null,
+ };
+ },
+
+ // 鏁版嵁鏌ョ湅
+ handleDataLook(row) {
+ this.dataLookTableLoading = true;
+ selectSampleAndProductByOrderId({ id: row.id })
+ .then((res) => {
+ if (res.code === 200) {
+ this.dataLooktableData = res.data;
+ }
+ this.dataLookTableLoading = false;
+ })
+ .catch((error) => {
+ console.error(error);
+ this.dataLookTableLoading = false;
+ });
+ this.dataDialogVisible = true;
+ },
+ changeCheckBox(val) {
+ this.queryParams.userId = val ? 0 : null;
+ this.refreshTable();
+ },
+ refresh() {
+ if (this.tabList.length > 0) {
+ this.tabIndex = 0;
+ this.queryParams.sonLaboratory = this.tabList[0].value;
+ }
+ this.refreshTable();
+ },
+ claimFun(row) {
+ if (row) {
+ this.sampleUserForm = {
+ entrustCode: row.entrustCode,
+ insSampleId: row.id,
+ sonLaboratory: row.sonLaboratory,
+ };
+ this.claimVisible = true;
+ }
+ },
+ confirmClaim() {
+ this.loading = true;
+ claimInsOrderPlan(this.sampleUserForm)
+ .then((res) => {
+ if (res.code === 200 && res.data) {
+ this.loading = false;
+ this.$message.success("璁ら鎴愬姛");
+ this.claimVisible = false;
+ this.refreshTable("page");
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ this.loading = false;
+ });
+ },
+ refreshTable() {
+ this.getList();
+ this.$nextTick(() => {
+ this.getCurrentMonthPlanTotal();
+ });
+ },
+ changeRowClass({ row, rowIndex }) {
+ if (this.currentTime == row.appointed) {
+ return "highlight-warning-row-border";
+ } else if (this.currentTime > row.appointed) {
+ return "highlight-danger-row-border";
+ }
+ return "";
+ },
+ onReset() {
+ this.searchForm = {
+ sampleName: null,
+ state: null,
+ };
+ this.componentData.entity.insState = null;
+ this.componentData.entity.sampleName = null;
+ this.refreshTable();
+ },
+ onSubmit() {
+ this.componentData.entity.insState = this.searchForm.state;
+ this.componentData.entity.sampleName = this.searchForm.sampleName;
+ this.$nextTick(() => {
+ this.refreshTable();
+ });
+ },
+ handleTab(m, i) {
+ console.log("aaa", m, i);
+ this.selectTab = m.value;
+ this.tabIndex = i;
+ this.queryParams.sonLaboratory = m.value;
+ this.refreshTable();
+ },
+ getTypeDicts() {
+ getDicts("urgency_level")
+ .then((res) => {
+ if (res.code === 200) {
+ this.urgencyDictList = res.data;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ getInsStateDicts() {
+ getDicts("inspection_task_state")
+ .then((res) => {
+ if (res.code === 200) {
+ this.insStateList = res.data;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ // this.$axios
+ // .post(this.$api.enums.selectEnumByCategory, {
+ // category: "",
+ // })
+ // .then((res) => {
+ // let data = res.data;
+
+ // data.forEach((ele) => {
+ // //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃
+ // if (["2", "5"].includes(ele.value)) {
+ // ele.type = "success";
+ // } else if (["1", "3"].includes(ele.value)) {
+ // ele.type = "warning";
+ // } else if (["0", "4"].includes(ele.value)) {
+ // ele.type = "danger";
+ // }
+ // });
+ // this.componentData.tagField.insState.select = data;
+ // });
+ },
+ getLaboratoryDicts() {
+ getDicts("sys_sub_lab")
+ .then((res) => {
+ if (res.code === 200) {
+ this.tabList = res.data.map((ele) => {
+ return {
+ label: ele.dictLabel,
+ value: ele.dictValue,
+ };
+ });
+ if (this.tabList.length > 0) {
+ this.queryParams.sonLaboratory = this.tabList[0].value;
+ }
+ this.refreshTable();
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ selectAllByOne(row) {
+ this.$router.push({
+ name: "showDetails",
+ query: {
+ active: 2,
+ currentId: row.id,
+ examine: 1,
+ isPlan: true,
+ },
+ });
+ },
+ //鏌ョ湅濮旀墭鍗曞熀鏈俊鎭�
+ selectOrderInfo(row) {
+ if (row) {
+ getSampleInfoByOrderId({
+ id: row.id,
+ sonLaboratory: row.sonLaboratory,
+ })
+ .then((res) => {
+ if (res.code == 200) {
+ this.insSampleListData = res.data.insSamples;
+ this.insProductVOSData = res.data.insProductVOS;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ }
+ this.$nextTick(() => {
+ this.orderInfoDialog = true;
+ });
+ },
+ playOrder(num) {
+ this.activeFace = num;
+ },
+ goback() {
+ this.state = 0;
+ this.refreshTable("page");
+ },
+ handleInspection(row) {
+ //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃
+ let inspectorList = [];
+ if (row.userName) {
+ inspectorList = row.userName.split(",");
+ }
+ inspectorList.push(this.nickName);
+ this.inspectorList = inspectorList;
+ this.state = 1;
+ this.orderId = row.id;
+ },
+ handleConnect(row) {
+ this.orderId = row.id;
+ this.connect = {
+ connectPerson: "",
+ sonLaboratory: "",
+ };
+ this.userNameList = row.userName.split(",");
+ this.connectVisible = true;
+ upPlanUser2({
+ orderId: this.orderId,
+ })
+ .then((res) => {
+ if (res.code === 200 && res.data.length > 0) {
+ this.sonLaboratoryList = [];
+ res.data.forEach((m) => {
+ this.sonLaboratoryList.push({
+ value: m,
+ label: m,
+ });
+ });
+ this.connect.sonLaboratory = row.sonLaboratory;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ confirmConnect() {
+ if (
+ this.connect.connectPerson == null ||
+ this.connect.connectPerson == "" ||
+ this.connect.connectPerson == undefined
+ ) {
+ this.$message.error("鏈�夋嫨浜ゆ帴浜哄憳");
+ return;
+ }
+ if (
+ this.connect.sonLaboratory == null ||
+ this.connect.sonLaboratory == "" ||
+ this.connect.sonLaboratory == undefined
+ ) {
+ this.$message.error("鏈�夋嫨璇曢獙瀹�");
+ return;
+ }
+ this.loading = true;
+ upPlanUser({
+ orderId: this.orderId,
+ userId: this.connect.connectPerson,
+ sonLaboratory: this.connect.sonLaboratory,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.loading = false;
+ this.$message.success("鎿嶄綔鎴愬姛");
+ this.refreshTable("page");
+ }
+ this.connectVisible = false;
+ })
+ .catch((error) => {
+ console.error(error);
+ this.loading = false;
+ });
+ },
+ handleReview(row) {
+ this.state = 2;
+ this.orderId = row.id;
+ },
+ getAuthorizedPerson() {
+ getLaboratoryPersonList()
+ .then((res) => {
+ if (res.code === 200) {
+ this.personList = res.data;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
+ },
+ handleClose(done) {
+ done();
+ },
+ getStyle() {
+ return "height: calc(100% - " + (this.more ? "94" : "44") + "px)";
+ },
+ },
+};
</script>
-<style></style>
+<style scoped lang="scss">
+.ins-order-plan-main .title {
+ font-size: 20px;
+ color: #3a7bfa;
+}
+
+.search {
+ background-color: #fff;
+ display: flex;
+ align-items: center;
+}
+
+.search_thing {
+ display: flex;
+ align-items: center;
+ height: 50px;
+ width: 230px;
+}
+
+.search_label {
+ /* width: 90px; */
+ font-size: 14px;
+ text-align: right;
+}
+
+.search_input {
+ width: calc(100% - 70px);
+}
+
+.ins-order-plan-main .search {
+ width: 100%;
+ margin-bottom: 10px;
+ height: 80px;
+ background-color: #fff;
+ border-radius: 3px;
+}
+
+.search .form-inline {
+ height: 50px;
+ padding-top: 20px;
+ padding-left: 20px;
+}
+
+.tab {
+ list-style-type: none;
+ display: flex;
+ padding-inline-start: 0px;
+}
+
+.tab li {
+ line-height: 24px;
+ padding: 6px 14px;
+ font-size: 14px;
+ color: #333333;
+ border: 1px solid #eeeeee;
+ cursor: pointer;
+}
+
+.tab li:nth-child(1) {
+ border-radius: 8px 0 0 8px;
+}
+
+.tab li:nth-last-child(1) {
+ border-radius: 0 8px 8px 0;
+}
+
+.tab li.active {
+ border-color: #3a7bfa;
+ color: #3a7bfa;
+}
+
+.center .center-options .center-title {
+ display: flex;
+ align-items: center;
+ justify-content: right;
+ text-align: right;
+ span:last-child {
+ color: #3a7bfa;
+ font-size: 23px;
+ font-weight: 400;
+ }
+ p:last-child {
+ margin-left: 20px;
+ }
+}
+
+.view-self-checkbox {
+ margin-left: 50px;
+}
+.ins-order-plan-main .el-form-item__label {
+ color: #000;
+}
+
+.ins-order-plan-main .el-table th.el-table__cell > .cell {
+ height: 46px;
+ line-height: 30px;
+}
+</style>
--
Gitblit v1.9.3