| | |
| | | export function viewDetails(query) { |
| | | return request({ |
| | | url: '/insOrder/viewDetails', |
| | | method: 'get', |
| | | params: query |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 卿è·åtab表头 |
| | | 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' |
| | | }) |
| | | } |
| | | |
| | | // å¯¼åºæ¥çæ£éªç»æExcel |
| | | 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 |
| | | }) |
| | | } |
| | |
| | | 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) => { |
| | |
| | | if (!linkEvent) { |
| | | return this.$message.warning("请é
ç½®lingkäºä»¶"); |
| | | } |
| | | console.log(linkEvent); |
| | | linkEvent.vueComponent[linkEvent.method](row); |
| | | }, |
| | | // åå¹¶åå
æ ¼ |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | /** |
| | | * 计ç®å¤ä¸ªæ°å¼çå |
| | | * |
| | | * @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 è¿åä¼ å
¥åæ°ä¸çæå°å¼ï¼å¦æä¼ å
¥åæ°ä¸ºç©ºæææå¼å为nullæç©ºå符串ï¼åè¿ånull |
| | | */ |
| | | 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 妿忰䏿ææçæ°åï¼åè¿å计ç®åºçä¸ä½æ°ï¼å¦åè¿ånull |
| | | */ |
| | | 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] |
| | | } |
| | | } |
| | | } |
| | | // è§£æå
¬å¼åæ°ï¼ç¹å«æ¯å¸¦ï¼ç |
| | | 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 |
| | | } |
| | |
| | | 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) |
| | | } |
| | | } |
| | | |
| | |
| | | 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> |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | goBack() { |
| | | let path = this.$route.query.isPlan |
| | | ? "/business/inspectionTask" |
| | | : "/business/inspectionOrder"; |
| | | this.$router.push(path); |
| | | }, |
| | | //䏿¬¡æ ¸æ¥æ¥æ:ç¦ç¨å¨æ ¸æ¥æ¥æåçæ¥æ |
| | | disabledDate(time) { |
| | | if (time) { |
| | |
| | | if (res.code === 200) { |
| | | this.$message.success("å·²æäº¤"); |
| | | this.bsm3Dia = false; |
| | | this.$router.push("/business/inspectionOrder"); |
| | | this.goBack(); |
| | | } |
| | | this.saveLoad = false; |
| | | }) |
| | |
| | | this.$message.success("æäº¤æå"); |
| | | this.issuedDialogVisible = false; |
| | | this.upLoad = false; |
| | | this.$router.replace("/business/inspectionOrder"); |
| | | this.goBack(); |
| | | //å®¡æ ¸éè¿åï¼èªå¨æå°äºç»´ç |
| | | //TODO: çµåè¯éªå®¤ææ¶ä¸ç¨æ ç¾æå° |
| | | if ( |
| | |
| | | this.tell = ""; |
| | | this.$message.success("æäº¤æå"); |
| | | this.issuedDialogVisible = false; |
| | | this.$router.push("/business/inspectionOrder"); |
| | | this.goBack(); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | |
| | | 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"; |
| | |
| | | { |
| | | name: "æ¥åä¸è½½", |
| | | type: "text", |
| | | clickFun: (row) => {}, |
| | | clickFun: (row) => { |
| | | this.download(row); |
| | | }, |
| | | disabled: (row, index) => { |
| | | return row.state != 4 || row.isRatify != 1; |
| | | }, |
| | |
| | | { |
| | | name: "æ¥ç", |
| | | type: "text", |
| | | clickFun: (row) => {}, |
| | | clickFun: (row) => { |
| | | this.viewDetails(row); |
| | | }, |
| | | showHide: (row) => { |
| | | return ( |
| | | row.inspectionItem == "åæ ¹åç´çç§" || |
| | |
| | | active: 2, |
| | | currentId: row.id, |
| | | examine: 1, |
| | | isReview: true, |
| | | isPlan: false, |
| | | }, |
| | | }); |
| | | }, |
| | |
| | | }, |
| | | // ä¸è½½æ¥å |
| | | 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; |
| | |
| | | query: { |
| | | active: num, |
| | | examine: 0, |
| | | isPlan: false, |
| | | }, |
| | | }); |
| | | }, |
| | |
| | | <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,å³è¾¹çæä½æé®å®½åº¦viewportWidth*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("æ£å¨å¯¼åº 请ç¨å..."); |
| | | 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> |