From f2bc9fde40010ddb6fdbc4c36ee9fc0e83af8f03 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 06 三月 2025 16:45:07 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev
---
src/components/basic-container/main.vue | 43
src/views/system/role/index.vue | 429 ++
src/api/system/user.js | 10
src/views/system/dept/index.vue | 189
src/views/business/inspectionOrder/equip-config.vue | 591 ++++
src/api/business/inspectionOrder.js | 0
src/views/system/menu/index.vue | 270 +
src/views/system/user/index.vue | 119
src/views/business/inspectionOrder/fiberoptic-config-two.vue | 1599 ++++++++++
src/main.js | 3
src/utils/lodop.js | 169 +
package.json | 1
src/layout/components/AppMain.vue | 1
src/views/business/inspectionOrder/add.vue | 142
src/views/business/inspectionOrder/fiberoptic-config.vue | 3438 +++++++++++++++++++++++
src/views/business/inspectionOrder/index.vue | 1436 +++++++++
src/views/business/inspectionOrder/cable-config.vue | 311 ++
17 files changed, 8,437 insertions(+), 314 deletions(-)
diff --git a/package.json b/package.json
index 4de8ad7..1bbf543 100644
--- a/package.json
+++ b/package.json
@@ -66,6 +66,7 @@
"vue-cropper": "0.5.5",
"vue-demi": "^0.14.10",
"vue-meta": "2.4.0",
+ "vue-qr": "^4.0.9",
"vue-router": "3.4.9",
"vuedraggable": "2.24.3",
"vuex": "3.6.0",
diff --git a/src/api/business/inspectionOrder.js b/src/api/business/inspectionOrder.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/api/business/inspectionOrder.js
diff --git a/src/api/system/user.js b/src/api/system/user.js
index 032a9ab..7579fd2 100644
--- a/src/api/system/user.js
+++ b/src/api/system/user.js
@@ -138,24 +138,24 @@
// 鑾峰彇浜轰簨绯荤粺缁勭粐
export function selectCompaniesList() {
return request({
- url: "/companies/selectCompaniesList",
+ url: "/system/newUser/selectCompaniesList",
method: "get",
});
}
// 鑾峰彇浜轰簨绯荤粺缁勭粐涓嬬殑浜哄憳
export function selectSimpleList(data) {
return request({
- url: "/companies/selectSimpleList",
- method: "post",
+ url: "/system/newUser/selectSimpleList",
+ method: "get",
params: data,
});
}
// 鑾峰彇浜轰簨绯荤粺缁勭粐涓嬬殑浜哄憳
export function addPersonUser(data) {
return request({
- url: "/companies/addPersonUser",
+ url: "/system/newUser/addPersonUser",
method: "post",
- params: data,
+ data: data,
});
}
// 鑾峰彇瑙掕壊
diff --git a/src/components/basic-container/main.vue b/src/components/basic-container/main.vue
new file mode 100644
index 0000000..0e2eb38
--- /dev/null
+++ b/src/components/basic-container/main.vue
@@ -0,0 +1,43 @@
+<template>
+ <div :class="{ 'basic-container--block': block }" class="basic-container">
+ <!-- <el-card>
+ <slot />
+ </el-card> -->
+ <slot />
+ </div>
+</template>
+
+<script>
+export default {
+ name: "BasicContainer",
+ props: {
+ block: {
+ type: Boolean,
+ default: false,
+ },
+ },
+};
+</script>
+
+<style lang="scss">
+.basic-container {
+ padding: 15px;
+ margin: 10px 15px;
+ // border-radius: 10px;
+ box-sizing: border-box;
+ background-color: #fff;
+ .el-card {
+ width: 100%;
+ box-sizing: border-box;
+ }
+ &:first-child {
+ // padding-top: 0;
+ }
+ &--block {
+ height: 100%;
+ .el-card {
+ height: 100%;
+ }
+ }
+}
+</style>
diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue
index 1eb770d..b7865c9 100644
--- a/src/layout/components/AppMain.vue
+++ b/src/layout/components/AppMain.vue
@@ -50,6 +50,7 @@
width: 100%;
position: relative;
overflow: hidden;
+ background: rgb(245, 247, 251);
}
.fixed-header + .app-main {
diff --git a/src/main.js b/src/main.js
index 49208a3..f6ae7f3 100644
--- a/src/main.js
+++ b/src/main.js
@@ -49,6 +49,7 @@
import { getToken } from "@/utils/auth";
// 鏃堕棿杞崲
import Moment from "moment";
+import basicContainer from './components/basic-container/main'
// 鍏ㄥ眬鏂规硶鎸傝浇
Vue.prototype.getDicts = getDicts;
@@ -92,6 +93,8 @@
Vue.component("FileUpload", FileUpload);
Vue.component("ImageUpload", ImageUpload);
Vue.component("ImagePreview", ImagePreview);
+// 娉ㄥ唽鍏ㄥ眬瀹瑰櫒
+Vue.component('basicContainer', basicContainer)
Vue.use(directive);
Vue.use(plugins);
diff --git a/src/utils/lodop.js b/src/utils/lodop.js
new file mode 100644
index 0000000..8956b12
--- /dev/null
+++ b/src/utils/lodop.js
@@ -0,0 +1,169 @@
+// lodop.js
+//= =鏈琂S鏄姞杞絃odop鎻掍欢鍙奀Lodop鏈嶅姟鐨勭患鍚堢ず渚嬶紝鍙洿鎺ヤ娇鐢紝寤鸿鐪嬫噦鍚庤瀺杩涜嚜宸遍〉闈㈢▼搴�==
+var CreatedOKLodopObject, CLodopIsLocal, CLodopJsState
+
+//= =鍒ゆ柇鏄惁闇�瑕丆Lodop(閭d簺涓嶆敮鎸佹彃浠剁殑娴忚鍣�):==
+function needCLodop() {
+ try {
+ var ua = navigator.userAgent
+ if (ua.match(/Windows\sPhone/i)) return true
+ if (ua.match(/iPhone|iPod|iPad/i)) return true
+ if (ua.match(/Android/i)) return true
+ if (ua.match(/Edge\D?\d+/i)) return true
+
+ var verTrident = ua.match(/Trident\D?\d+/i)
+ var verIE = ua.match(/MSIE\D?\d+/i)
+ var verOPR = ua.match(/OPR\D?\d+/i)
+ var verFF = ua.match(/Firefox\D?\d+/i)
+ var x64 = ua.match(/x64/i)
+ if (!verTrident && !verIE && x64) return true
+ else if (verFF) {
+ verFF = verFF[0].match(/\d+/)
+ if (verFF[0] >= 41 || x64) return true
+ } else if (verOPR) {
+ verOPR = verOPR[0].match(/\d+/)
+ if (verOPR[0] >= 32) return true
+ } else if (!verTrident && !verIE) {
+ var verChrome = ua.match(/Chrome\D?\d+/i)
+ if (verChrome) {
+ verChrome = verChrome[0].match(/\d+/)
+ if (verChrome[0] >= 41) return true
+ }
+ }
+ return false
+ } catch (err) {
+ return true
+ }
+}
+
+//= =鍔犺浇寮曠敤CLodop鐨勪富JS,鐢ㄥ弻绔彛8000鍜�18000(浠ラ槻鍏朵腑涓�涓鍗�):==
+function loadCLodop() {
+ if (CLodopJsState == 'loading' || CLodopJsState == 'complete') return
+ CLodopJsState = 'loading'
+ var head =
+ document.head ||
+ document.getElementsByTagName('head')[0] ||
+ document.documentElement
+ var JS1 = document.createElement('script')
+ var JS2 = document.createElement('script')
+ JS1.src = 'http://localhost:8000/CLodopfuncs.js?priority=1'
+ JS2.src = 'http://localhost:18000/CLodopfuncs.js'
+ JS1.onload = JS2.onload = function() {
+ CLodopJsState = 'complete'
+ }
+ JS1.onerror = JS2.onerror = function(evt) {
+ CLodopJsState = 'complete'
+ }
+ head.insertBefore(JS1, head.firstChild)
+ head.insertBefore(JS2, head.firstChild)
+ CLodopIsLocal = !!(JS1.src + JS2.src).match(/\/\/localho|\/\/127.0.0./i)
+}
+
+if (needCLodop()) {
+ loadCLodop()
+} // 鍔犺浇
+
+//= =鑾峰彇LODOP瀵硅薄涓昏繃绋�,鍒ゆ柇鏄惁瀹夎銆侀渶鍚﹀崌绾�:==
+export default function getLodop(oOBJECT, oEMBED) {
+ var strHtmInstall =
+ '<br><font color=\'#FF00FF\'>鎵撳嵃鎺т欢鏈畨瑁�!鐐瑰嚮杩欓噷<a href=\'install_lodop32.exe\' target=\'_self\'>鎵ц瀹夎</a>,瀹夎鍚庤鍒锋柊椤甸潰鎴栭噸鏂拌繘鍏ャ��</font>'
+ var strHtmUpdate =
+ '<br><font color=\'#FF00FF\'>鎵撳嵃鎺т欢闇�瑕佸崌绾�!鐐瑰嚮杩欓噷<a href=\'install_lodop32.exe\' target=\'_self\'>鎵ц鍗囩骇</a>,鍗囩骇鍚庤閲嶆柊杩涘叆銆�</font>'
+ var strHtm64_Install =
+ '<br><font color=\'#FF00FF\'>鎵撳嵃鎺т欢鏈畨瑁�!鐐瑰嚮杩欓噷<a href=\'install_lodop64.exe\' target=\'_self\'>鎵ц瀹夎</a>,瀹夎鍚庤鍒锋柊椤甸潰鎴栭噸鏂拌繘鍏ャ��</font>'
+ var strHtm64_Update =
+ '<br><font color=\'#FF00FF\'>鎵撳嵃鎺т欢闇�瑕佸崌绾�!鐐瑰嚮杩欓噷<a href=\'install_lodop64.exe\' target=\'_self\'>鎵ц鍗囩骇</a>,鍗囩骇鍚庤閲嶆柊杩涘叆銆�</font>'
+ var strHtmFireFox =
+ '<br><br><font color=\'#FF00FF\'>锛堟敞鎰忥細濡傛浘瀹夎杩嘗odop鏃х増闄勪欢npActiveXPLugin,璇峰湪銆愬伐鍏枫��->銆愰檮鍔犵粍浠躲��->銆愭墿灞曘�戜腑鍏堝嵏瀹冿級</font>'
+ var strHtmChrome =
+ '<br><br><font color=\'#FF00FF\'>(濡傛灉姝ゅ墠姝e父锛屼粎鍥犳祻瑙堝櫒鍗囩骇鎴栭噸瀹夎鑰屽嚭闂锛岄渶閲嶆柊鎵ц浠ヤ笂瀹夎锛�</font>'
+ var strCLodopInstall_1 =
+ '<br><font color=\'#FF00FF\'>Web鎵撳嵃鏈嶅姟CLodop鏈畨瑁呭惎鍔紝鐐瑰嚮杩欓噷<a href=\'CLodop_Setup_for_Win32NT.exe\' target=\'_self\'>涓嬭浇鎵ц瀹夎</a>'
+ var strCLodopInstall_2 =
+ '<br>锛堣嫢姝ゅ墠宸插畨瑁呰繃锛屽彲<a href=\'CLodop.protocol:setup\' target=\'_self\'>鐐硅繖閲岀洿鎺ュ啀娆″惎鍔�</a>锛�'
+ var strCLodopInstall_3 = '锛屾垚鍔熷悗璇峰埛鏂版湰椤甸潰銆�</font>'
+ var strCLodopUpdate =
+ '<br><font color=\'#FF00FF\'>Web鎵撳嵃鏈嶅姟CLodop闇�鍗囩骇!鐐瑰嚮杩欓噷<a href=\'CLodop_Setup_for_Win32NT.exe\' target=\'_self\'>鎵ц鍗囩骇</a>,鍗囩骇鍚庤鍒锋柊椤甸潰銆�</font>'
+ var LODOP
+ try {
+ var ua = navigator.userAgent
+ var isIE = !!ua.match(/MSIE/i) || !!ua.match(/Trident/i)
+ if (needCLodop()) {
+ try {
+ LODOP = getCLodop()
+ } catch (err) {}
+ if (!LODOP && CLodopJsState !== 'complete') {
+ if (CLodopJsState == 'loading')
+ alert('缃戦〉杩樻病涓嬭浇瀹屾瘯锛岃绋嶇瓑涓�涓嬪啀鎿嶄綔.')
+ else alert('娌℃湁鍔犺浇CLodop鐨勪富js锛岃鍏堣皟鐢╨oadCLodop杩囩▼.')
+ return
+ }
+ if (!LODOP) {
+ document.body.innerHTML =
+ strCLodopInstall_1 +
+ (CLodopIsLocal ? strCLodopInstall_2 : '') +
+ strCLodopInstall_3 +
+ document.body.innerHTML
+ return
+ } else {
+ if (CLODOP.CVERSION < '4.1.2.3') {
+ document.body.innerHTML = strCLodopUpdate + document.body.innerHTML
+ }
+ if (oEMBED && oEMBED.parentNode) oEMBED.parentNode.removeChild(oEMBED) // 娓呯悊鏃х増鏃犳晥鍏冪礌
+ if (oOBJECT && oOBJECT.parentNode)
+ oOBJECT.parentNode.removeChild(oOBJECT)
+ }
+ } else {
+ var is64IE = isIE && !!ua.match(/x64/i)
+ //= =濡傛灉椤甸潰鏈塋odop灏辩洿鎺ヤ娇鐢�,鍚﹀垯鏂板缓:==
+ if (oOBJECT || oEMBED) {
+ if (isIE) LODOP = oOBJECT
+ else LODOP = oEMBED
+ } else if (!CreatedOKLodopObject) {
+ LODOP = document.createElement('object')
+ LODOP.setAttribute('width', 0)
+ LODOP.setAttribute('height', 0)
+ LODOP.setAttribute(
+ 'style',
+ 'position:absolute;left:0px;top:-100px;width:0px;height:0px;'
+ )
+ if (isIE)
+ LODOP.setAttribute(
+ 'classid',
+ 'clsid:2105C259-1E0C-4534-8141-A753534CB4CA'
+ )
+ else LODOP.setAttribute('type', 'application/x-print-lodop')
+ document.documentElement.appendChild(LODOP)
+ CreatedOKLodopObject = LODOP
+ } else LODOP = CreatedOKLodopObject
+ //= =Lodop鎻掍欢鏈畨瑁呮椂鎻愮ず涓嬭浇鍦板潃:==
+ if (!LODOP || !LODOP.VERSION) {
+ if (ua.indexOf('Chrome') >= 0)
+ document.body.innerHTML = strHtmChrome + document.body.innerHTML
+ if (ua.indexOf('Firefox') >= 0)
+ document.body.innerHTML = strHtmFireFox + document.body.innerHTML
+ document.body.innerHTML =
+ (is64IE ? strHtm64_Install : strHtmInstall) + document.body.innerHTML
+ return LODOP
+ }
+ }
+ if (LODOP.VERSION < '6.2.2.6') {
+ if (!needCLodop())
+ document.body.innerHTML =
+ (is64IE ? strHtm64_Update : strHtmUpdate) + document.body.innerHTML
+ }
+ //= ==濡備笅绌虹櫧浣嶇疆閫傚悎璋冪敤缁熶竴鍔熻兘(濡傛敞鍐岃鍙ャ�佽瑷�閫夋嫨绛�):==
+
+ LODOP.SET_LICENSES(
+ '',
+ 'EE0887D00FCC7D29375A695F728489A6',
+ 'C94CEE276DB2187AE6B65D56B3FC2848',
+ ''
+ )
+
+ //= ======================================================
+ return LODOP
+ } catch (err) {
+ alert('getLodop鍑洪敊:' + err)
+ }
+}
diff --git a/src/views/business/inspectionOrder/add.vue b/src/views/business/inspectionOrder/add.vue
new file mode 100644
index 0000000..9267eaa
--- /dev/null
+++ b/src/views/business/inspectionOrder/add.vue
@@ -0,0 +1,142 @@
+<style scoped>
+.ins_order_add {
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+
+.ins_order_add::-webkit-scrollbar {
+ width: 0;
+}
+
+.title {
+ height: 60px;
+ line-height: 60px;
+}
+
+.search {
+ width: calc(100% - 40px);
+ background-color: #fff;
+ padding: 5px 40px 5px 0;
+}
+
+.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);
+}
+
+.node_i {
+ color: orange;
+ font-size: 18px;
+}
+
+.el-select-dropdown__item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.pairing {
+ text-align: center;
+ line-height: 36px;
+ margin: 3px 0;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-radius: 4px;
+}
+
+.askRts {
+ width: 100px;
+ font-size: 12px;
+ border-top: 0;
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 2px solid rgba(0, 0, 0, 0.3);
+ text-align: center;
+ background-color: rgba(0, 0, 0, 0.1);
+ outline: none;
+ border-radius: 2px;
+ line-height: 24px;
+ margin-top: 5px;
+}
+.circulateTable {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+}
+.opticalProject {
+ width: 38%;
+}
+.temperatureList {
+ width: 60%;
+}
+.temperatureListTitle {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ line-height: 30px;
+}
+</style>
+<style>
+.ins_order_add .el-input-group__append,
+.el-input-group__prepend {
+ padding: 0 10px;
+}
+
+.ins_order_add .el-tree-node__content {
+ height: 32px;
+ font-size: 14px;
+ border-radius: 2px;
+}
+
+.ins_order_add
+ .el-tree--highlight-current
+ .el-tree-node.is-current
+ > .el-tree-node__content {
+ color: #3a7bfa;
+}
+
+.ins_order_add .has-gutter .el-table__cell .cell {
+ line-height: 30px;
+ background-color: #fafafa;
+}
+
+.ins_order_add .has-gutter .el-table__cell {
+ background-color: #fafafa !important;
+}
+
+.ins_order_add .el-table__row .cell {
+ font-size: 12px;
+}
+
+.ins_order_add .el-table .warning-row .cell {
+ color: #3a7bfa;
+}
+
+.ins_order_add .el-select .is-disabled {
+ background: transparent !important;
+}
+
+.ins_order_add .el-select .is-disabled .el-input__inner {
+ background: transparent !important;
+}
+</style>
+
+<template>
+ <div>add</div>
+</template>
+
+<script>
+export default {};
+</script>
diff --git a/src/views/business/inspectionOrder/cable-config.vue b/src/views/business/inspectionOrder/cable-config.vue
new file mode 100644
index 0000000..575fc95
--- /dev/null
+++ b/src/views/business/inspectionOrder/cable-config.vue
@@ -0,0 +1,311 @@
+<template>
+ <div class="ins_order_config">
+ <div>
+ <el-row class="title">
+ <el-col :span="6" style="padding-left: 20px;text-align: left;">鐢电紗閰嶇疆</el-col>
+ <el-col :span="18" style="text-align: right;">
+ <el-button size="medium" @click="outConfig">
+ <span style="color: #3A7BFA;">杩� 鍥�</span>
+ </el-button>
+ <el-button size="medium" type="primary" @click="save">淇� 瀛�</el-button>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="search">
+ <el-radio-group v-model="currentTab" size="small" style="margin-left: 20px;" @input="changeTab">
+ <el-radio-button label="缁濈紭">缁� 缂�</el-radio-button>
+ <el-radio-button label="鎶ゅ">鎶� 濂�</el-radio-button>
+ </el-radio-group>
+ <div class="search_thing" v-if="currentTab=='缁濈紭'">
+ <div class="search_label">鑺暟锛�</div>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="insulating.num"></el-input>
+ </div>
+ <div class="search_thing" v-if="currentTab=='缁濈紭'">
+ <div class="search_label">妫�楠屾爣鍑嗭細</div>
+ <el-select v-model="insulating.standardMethodListId" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
+ @change="(value)=>methodChange(value)">
+ <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </div>
+ <div class="search_thing" v-if="currentTab=='鎶ゅ'">
+ <div class="search_label">妫�楠屾爣鍑嗭細</div>
+ <el-select v-model="sheath.standardMethodListId" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
+ @change="(value)=>methodChange(value)">
+ <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ <div class="table">
+ <el-table class="el-table" ref="productTable" :data="productList" height="100%" tooltip-effect="dark" border
+ @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
+ :row-class-name="tableRowClassName" @select-all="handleAll">
+ <el-table-column type="selection" width="65" :selectable="selectable"></el-table-column>
+ <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140"
+ show-overflow-tooltip></el-table-column>
+ <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="section" label="鍖洪棿" min-width="120" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px">
+ <template slot-scope="scope">
+ <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)"
+ v-if="active==1&&isAskOnlyRead"></el-input>
+ <span v-else>{{ scope.row.ask }}</span>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+</template>
+
+<script>
+import { Tree } from 'element-ui'
+export default {
+ props: {
+ active: {
+ type: Number,
+ default: () => 0
+ },
+ },
+ data(vm) {
+ return {
+ standardList:[],
+ vaule0:'',
+ currentTab:'缁濈紭',
+ upIndex:0,
+ productList: [],
+ productIds: [],
+ sample: [],
+ tree: '',
+ standards: [],
+ insulating: {
+ standardMethodListId: null,
+ insProduct: [],
+ num: 1
+ },
+ sheath: {
+ standardMethodListId: null,
+ insProduct: []
+ },
+ isAskOnlyRead: false
+ }
+ },
+ mounted() {
+ this.$parent.sampleIds.forEach(a => {
+ for (var i = 0; i < this.$parent.sampleList.length; i++) {
+ if (this.$parent.sampleList[i].id == a) {
+ this.sample.push(this.$parent.sampleList[i])
+ if(this.$parent.sampleList[i].insulating !== undefined && this.$parent.sampleList[i].insulating !== null){
+ this.insulating = this.$parent.sampleList[i].insulating
+ }
+ if(this.$parent.sampleList[i].sheath !== undefined && this.$parent.sampleList[i].sheath !== null){
+ this.sheath = this.$parent.sampleList[i].sheath
+ }
+ break
+ }
+ }
+ })
+ let obj = this.$parent.addObj
+ this.tree = obj.factory + ' - ' + obj.laboratory + ' - ' + obj.sampleType + ' - ' + obj.sample
+ this.selectsStandardMethodByFLSSM2()
+ this.productList = this.insulating.insProduct
+ setTimeout(() => {
+ this.productList.forEach(a => {
+ if (a.state == 1) this.toggleSelection(a)
+ })
+ }, 200)
+ },
+ methods: {
+ outConfig() {
+ this.$parent.cableConfigShow = false
+ },
+ selectProduct(val) {
+ this.productIds = []
+ val.forEach(a => {
+ this.productIds.push(a.id)
+ })
+ },
+ upProductSelect(selection, row) {
+ row.state = row.state == 1 ? 0 : 1
+ },
+ handleAll(e) {
+ if (e.length > 0) {
+ this.productList.map(m => {
+ m.state = 1
+ return m
+ })
+ } else {
+ this.productList.map(m => {
+ m.state = 0
+ return m
+ })
+ }
+ this.$nextTick(() => {
+ this.$refs.productTable.doLayout()
+ })
+ },
+ tableRowClassName({
+ row,
+ rowIndex
+ }) {
+ if (row.state === 0) {
+ return 'warning-row';
+ }
+ return '';
+ },
+ selectable() {
+ if (this.active > 1) {
+ return false
+ } else {
+ return true
+ }
+ },
+ selectsStandardMethodByFLSSM2() {
+ this.standards = []
+ this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+ tree: this.tree
+ }).then(res => {
+ this.standards = res.data.standardMethodList
+ })
+ },
+ methodChange(val) {
+ if (val === null || val === '') return
+ let standard = this.standards.find(a => a.id === val)
+ if(standard!=null && standard.code==='濮旀墭瑕佹眰'){
+ this.isAskOnlyRead = true
+ }else{
+ this.isAskOnlyRead = false
+ }
+ this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ model: this.$parent.addObj.model,
+ standardMethodListId: val,
+ factory: this.tree + ' - '
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ res.data.forEach(a => {
+ a.state = 0
+ })
+ if(this.currentTab==='缁濈紭'){
+ this.insulating.insProduct = res.data
+ }else if(this.currentTab==='鎶ゅ'){
+ this.sheath.insProduct = res.data
+ }
+ this.productList = res.data
+ setTimeout(() => {
+ this.productList.forEach(a => {
+ if (a.state == 1) this.toggleSelection(a)
+ })
+ }, 200)
+ })
+ },
+ toggleSelection(row) {
+ this.$refs.productTable.toggleRowSelection(row, true);
+ },
+ save(){
+ if(this.insulating.insProduct.length === 0 && this.sheath.insProduct.length === 0){
+ this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
+ return
+ }
+ if(this.insulating.insProduct.length !== 0){
+ if(this.insulating.num === null || this.insulating.num === '' || this.insulating.num <= 0){
+ this.$message.error('缂哄皯鑺暟鏃犳硶淇濆瓨')
+ return
+ }
+ }
+ this.sample.forEach(a=>{
+ a.insulating = this.insulating
+ a.sheath = this.sheath
+ })
+ this.$message.success('宸蹭繚瀛�')
+ },
+ changeTab(val){
+ if(val==='缁濈紭'){
+ this.productList = this.insulating.insProduct
+ }else if(val==='鎶ゅ'){
+ this.productList = this.sheath.insProduct
+ }
+ setTimeout(() => {
+ this.productList.forEach(a => {
+ if (a.state == 1) this.toggleSelection(a)
+ })
+ }, 200)
+ }
+ }
+}
+</script>
+
+<style scoped>
+.ins_order_config {
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ }
+
+ .ins_order_config::-webkit-scrollbar {
+ width: 0;
+ }
+
+ .title {
+ height: 60px;
+ line-height: 60px;
+ }
+
+ .search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ }
+
+ .search_thing {
+ width: 300px;
+ display: flex;
+ align-items: center;
+ }
+
+ .search_label {
+ width: 100px;
+ font-size: 14px;
+ text-align: right;
+ }
+
+ .search_input {
+ width: calc(100% - 70px);
+ }
+ .table {
+ margin-top: 10px;
+ background-color: #fff;
+ width: calc(100% - 40px);
+ height: calc(100% - 60px - 80px - 26px - 24px);
+ padding: 20px;
+ }
+</style>
+<style>
+ .ins_order_config .has-gutter .el-table__cell .cell {
+ line-height: 30px;
+ background-color: #fafafa;
+ }
+
+ .ins_order_config .has-gutter .el-table__cell {
+ background-color: #fafafa !important;
+ }
+
+ .ins_order_config .el-table__row .cell {
+ font-size: 12px;
+ }
+
+ .ins_order_config .el-table .warning-row .cell {
+ color: #bababa;
+ }
+</style>
diff --git a/src/views/business/inspectionOrder/equip-config.vue b/src/views/business/inspectionOrder/equip-config.vue
new file mode 100644
index 0000000..ddf3fbd
--- /dev/null
+++ b/src/views/business/inspectionOrder/equip-config.vue
@@ -0,0 +1,591 @@
+<template>
+ <div class="ins_order_config">
+ <div>
+ <el-row class="title">
+ <el-col :span="6" style="padding-left: 20px;text-align: left;">瀛愭牱鍝侀厤缃�</el-col>
+ <el-col :span="18" style="text-align: right;">
+ <el-button size="medium" type="primary" @click="addChild" v-if="active==1">娣诲姞瀛愭牱鍝�</el-button>
+ <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-if="active==1">淇� 瀛�</el-button>
+ <el-button size="medium" @click="outConfig">
+ <span style="color: #3A7BFA;">杩� 鍥�</span>
+ </el-button>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="center">
+ <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" height="50%" tooltip-effect="dark"
+ border highlight-current-row @row-click="rowClick" @current-change="selectSample">
+ <!-- <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></el-table-column> -->
+ <el-table-column type="index" label="搴忓彿" width="65" align="center"></el-table-column>
+ <el-table-column prop="sample" label="鏍峰搧鍚嶇О" align="center" min-width="100">
+ <template slot-scope="scope">
+ <el-input size="small" v-model="scope.row.sample" clearable :readonly="active>1"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="140" align="center">
+ <template slot-scope="scope">
+ <el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
+ :readonly="active>1"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="model" label="鏍峰搧鍨嬪彿" align="center" min-width="100">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.model" filterable allow-create default-first-option placeholder="鏍峰搧鍨嬪彿"
+ size="small" @change="handleChangeModel" :disabled="active>1" style="width: 100%;">
+ <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" width="130" align="center" v-if="!(active>1)">
+ <template slot-scope="scope">
+ <el-input size="small" v-model="scope.row.modelNum" clearable placeholder="闈炲繀濉�"
+ @keyup.enter.native="methodChange(scope.row.standardMethodListId, scope.row)"
+ @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="standardMethodListId" label="妫�楠屾爣鍑�" align="center" min-width="100">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1"
+ placeholder="妫�楠屾爣鍑�" size="small" :loading="methodLoad" @change="(value)=>methodChange(value, scope.row)"
+ @focus="methodFocus" :readonly="active>1" style="width: 100%;">
+ <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column prop="num" label="鏍峰搧鏁伴噺" align="center" width="90">
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" width="120">
+ <template slot-scope="scope">
+ <el-button @click.native.prevent="deleteRow(scope.$index, sampleList)" type="text"
+ size="small">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-table class="el-table" ref="productTable" :data="productList" height="50%" tooltip-effect="dark" border
+ @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
+ :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll">
+ <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column>
+ <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140"
+ show-overflow-tooltip></el-table-column>
+ <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters"
+ :filter-method="filterHandler"></el-table-column>
+ <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="section" label="鍖洪棿" min-width="120" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px">
+ <template slot-scope="scope">
+ <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)"
+ v-if="active==1&&isAskOnlyRead"></el-input>
+ <span v-else>{{ scope.row.ask }}</span>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <el-dialog title="閫夋嫨瀛愭牱鍝�" :visible.sync="selectStandardTree" width="400px" @closed="addObj.sampleNum = 1">
+ <div class="body" style="height: 60vh;overflow-y: auto;user-select: none;" v-if="selectStandardTree">
+ <el-row style="margin-bottom: 10px;">
+ <el-col :span="24">
+ <label>鏍峰搧鏁伴噺锛�</label>
+ <el-input-number v-model="addObj.sampleNum" :min="1" label="璇疯緭鍏ユ暟閲�" size="small"></el-input-number>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small"
+ style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter"
+ @keyup.enter.native="searchFilter"></el-input>
+ </el-col>
+ </el-row>
+ <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label"
+ :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
+ @node-collapse="nodeClose" :default-expanded-keys="expandedKeys" @dblclick.native="activeStandardTree">
+ <div class="custom-tree-node" slot-scope="{ node, data }">
+ <el-row>
+ <el-col :span="24">
+ <span><i
+ :class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i>
+ {{ data.code }} {{ data.label }}</span>
+ </el-col>
+ </el-row>
+ </div>
+ </el-tree>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="selectStandardTree = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="activeStandardTree">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1Dia" width="500px" :show-close="false"
+ :before-close="beforeClose">
+ <div class="body" style="max-height: 60vh;">
+ <el-row v-if="bsm1">
+ <el-col class="search_thing" :span="22">
+ <div class="search_label"><span class="required-span">* </span>鎶ゅ瀵嗗害锛�</div>
+ <div class="search_input">
+ <el-radio-group v-model="bsm1Val" @input="upBsm1">
+ <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" :label="a"></el-radio>
+ </el-radio-group>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">瑕佹眰鍊硷細</div>
+ <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
+ <el-radio-group v-model="bsm1Val" @input="upBsm1">
+ <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai"
+ :label="a">{{JSON.parse(bsmRow.ask)[ai]}}</el-radio>
+ </el-radio-group>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+ export default {
+ props: {
+ active: {
+ type: Number,
+ default: () => 0
+ },
+ },
+ data() {
+ return {
+ saveLoad: false,
+ sampleList: [],
+ productList: [],
+ getProductLoad: false,
+ filters: [],
+ sampleIds: [],
+ isAskOnlyRead: false,
+ selectStandardTree: false,
+ search: '',
+ expandedKeys: [],
+ addObj: {
+ sampleNum: 1,
+ },
+ selectTree: null,
+ models: [],
+ sample: {
+ sampleCode: null,
+ laboratory: null,
+ factory: null,
+ sampleType: null,
+ sample: null,
+ model: null,
+ modelNum: null,
+ sampleNum: 1,
+ isLeave: 0,
+ unit: null
+ },
+ currentMethod: null,
+ methods: [],
+ methodLoad: false,
+ sampleId: null,
+ bsmRow: null,
+ bsm1: false,
+ bsm1Val: null,
+ bsm1Dia: false,
+ list: [],
+ parentSample: []
+ }
+ },
+ mounted() {
+ this.selectStandardTreeList()
+ this.selectStandardMethods()
+ this.$parent.sampleIds.forEach(a => {
+ for (var i = 0; i < this.$parent.sampleList.length; i++) {
+ if (this.$parent.sampleList[i].id == a) {
+ this.sampleList = this.$parent.sampleList[i].childSampleList
+ this.parentSample.push(this.$parent.sampleList[i])
+ break
+ }
+ }
+ })
+ },
+ methods: {
+ selectStandardTreeList() {
+ this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => {
+ this.list = res.data
+ this.list.forEach(a => {
+ this.expandedKeys.push(a.label)
+ })
+ })
+ },
+ save() {
+ if (this.sampleList.length === 0) {
+ this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
+ return
+ }
+ this.parentSample.forEach(a => {
+ a.childSampleList = this.sampleList
+ })
+ this.$message.success('宸蹭繚瀛�')
+ },
+ deleteRow(index, rows) {
+ this.productList = []
+ rows.splice(index, 1);
+ },
+ outConfig() {
+ this.$parent.equipConfigShow = false
+ },
+ addChild() {
+ this.selectStandardTree = true
+ },
+ selectSample(val) {
+ if (val === null) return
+ this.sampleIds = [val.id]
+ },
+ rowClick(row, column, event) {
+ this.currentMethod = row
+ let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId)
+ if (obj && obj.code == '濮旀墭瑕佹眰') {
+ this.isAskOnlyRead = true
+ } else {
+ this.isAskOnlyRead = false
+ }
+ this.sampleId = row.id
+ if (this.active !== 1) {
+ this.sampleIds = []
+ this.sampleIds.push(row.id)
+ }
+ this.productList = row.insProduct
+ setTimeout(() => {
+ this.productList.forEach(a => {
+ if (a.state == 1) this.toggleSelection(a)
+ })
+ }, 200)
+ },
+ toggleSelection(row) {
+ this.$refs.productTable.toggleRowSelection(row, true);
+ },
+ selectable() {
+ if (this.active > 1) {
+ return false
+ } else {
+ return true
+ }
+ },
+ handleChangeModel(e) {
+ let num = this.selectTree.split('-').length;
+ if (num != 5) {
+ this.selectTree = this.selectTree + ' - ' + e
+ } else {
+ let arr = this.selectTree.split('-')
+ let arr0 = arr.slice(0, arr.length - 1)
+ this.selectTree = arr0.join('-') + '- ' + e
+ }
+ },
+ methodChange(val, row) {
+ if (val === null || val === '') return
+ this.currentMethod = row
+ let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId)
+ if (obj && obj.code == '濮旀墭瑕佹眰') {
+ this.isAskOnlyRead = true
+ } else {
+ this.isAskOnlyRead = false
+ }
+ this.getProductLoad = true
+ this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ model: row.model + '-' + row.modelNum,
+ standardMethodListId: val,
+ factory: this.selectTree,
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ res.data.forEach(a => {
+ a.state = 0
+ })
+ row.insProduct = this.HaveJson(res.data)
+ this.getProductLoad = false
+ this.productList = row.insProduct
+ this.$refs.sampleTable.setCurrentRow(row)
+ setTimeout(() => {
+ this.productList.forEach(a => {
+ if (a.state == 1) this.toggleSelection(a)
+ })
+ }, 200)
+ })
+ },
+ methodFocus() {
+ this.selectsStandardMethodByFLSSM()
+ },
+ selectStandardMethods() {
+ this.$axios.get(this.$api.standardTree.selectStandardMethodEnum).then(res => {
+ this.methods = res.data
+ })
+ },
+ selectsStandardMethodByFLSSM() {
+ this.methodLoad = true
+ this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+ tree: this.selectTree
+ }).then(res => {
+ this.methodLoad = false
+ try {
+ if (res.data.standardMethodList.length == 0 && this.selectTree.split('-').length == 5) {
+ let arr = this.selectTree.split('-')
+ let arr0 = arr.slice(0, arr.length - 1)
+ let selectTree = arr0.join('-').substring(0, arr0.join('-').length - 1)
+ this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+ tree: selectTree
+ }).then(ress => {
+ this.methods = ress.data.standardMethodList
+ })
+ } else {
+ this.methods = res.data.standardMethodList
+ }
+ } catch (e) {}
+ })
+ },
+ selectProduct(val) {
+ this.productIds = []
+ val.forEach(a => {
+ this.productIds.push(a.id)
+ })
+ },
+ upProductSelect(selection, row) {
+ row.state = row.state == 1 ? 0 : 1
+ if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1) {
+ if (row.section.indexOf('[') > -1) {
+ this.bsmRow = this.HaveJson(row)
+ }
+ this.bsm1 = true
+ this.bsm1Dia = true
+ } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) {
+ this.bsm1 = false
+ }
+ this.sampleList.map(item => {
+ if (this.sampleIds.indexOf(item.id) > -1) {
+ item.insProduct.map(m => {
+ if (m.id == row.id) {
+ m.state = row.state;
+ }
+ return m;
+ })
+ }
+ return item
+ })
+ },
+ tableRowClassName({
+ row,
+ rowIndex
+ }) {
+ if (row.state === 0) {
+ return 'warning-row';
+ }
+ return '';
+ },
+ handleAll(e) {
+ if (e.length > 0) {
+ this.productList.map(m => {
+ m.state = 1
+ return m
+ })
+ } else {
+ this.productList.map(m => {
+ m.state = 0
+ return m
+ })
+ }
+ this.productList.forEach(p => {
+ if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 1) {
+ if (p.section.indexOf('[') > -1) {
+ this.bsmRow = this.HaveJson(p)
+ }
+ this.bsm1 = true
+ this.bsm1Dia = true
+ } else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) {
+ this.bsm1 = false
+ }
+ })
+ if (e.length > 0) {
+ this.sampleList.map(item => {
+ if (this.sampleIds.indexOf(item.id) > -1) {
+ item.insProduct.map(m => {
+ m.state = 1
+ return m;
+ })
+ }
+ return item
+ })
+ } else {
+ this.sampleList.map(item => {
+ if (this.sampleIds.indexOf(item.id) > -1) {
+ item.insProduct.map(m => {
+ m.state = 0
+ return m;
+ })
+ }
+ return item
+ })
+ }
+ this.$nextTick(() => {
+ this.$refs.productTable.doLayout()
+ })
+ },
+ filterHandler(value, row, column) {
+ const property = column['property'];
+ return row[property] === value;
+ },
+ requestChange(e, row) {
+ this.sampleList.map(item => {
+ if (this.sampleIds.indexOf(item.id) > -1) {
+ item.insProduct.map(m => {
+ if (m.id == row.id) {
+ m.ask = e;
+ }
+ return m;
+ })
+ }
+ return item
+ })
+ },
+ activeStandardTree() {
+ let trees = this.selectTree.split(" - ")
+ if (trees.length < 4) {
+ this.$message.error('鏈�夋嫨瀛愪骇鍝�')
+ return
+ }
+ this.addObj.factory = trees[0]
+ this.addObj.laboratory = trees[1]
+ this.addObj.sampleType = trees[2]
+ if(trees[3]===''){
+ this.addObj.sample = (trees[4] == undefined ? null : trees[4])
+ }else if(trees[3]===undefined){
+ this.addObj.sample = trees[2]
+ }else{
+ this.addObj.sample = trees[3]
+ }
+ this.addObj.model = (trees[4] == undefined ? null : trees[4])
+ this.selectStandardTree = false
+ this.sample.joinName = null
+ this.sample.joinModel = null
+ this.sample.joinNum = 1
+ this.sample.sample = this.addObj.sample
+ this.sample.model = this.addObj.model
+ this.sample.unit = this.addObj.unit
+ this.sample.standardMethodListId = null
+ this.sample.insProduct = []
+ this.sample.id = this.count
+ this.sample.num = this.addObj.sampleNum
+ this.sampleList.push(this.HaveJson(this.sample))
+ this.count++
+ this.$refs.sampleTable.doLayout()
+ },
+ searchFilter() {
+ this.$refs.tree.filter(this.search)
+ },
+ filterNode(value, data) {
+ if (!value) return true;
+ return data.label.indexOf(value) !== -1;
+ },
+ handleNodeClick(val, node, el) {
+ this.selectTree = ''
+ this.models = val.children
+ this.getNodeParent(node)
+ this.selectTree = this.selectTree.replace(' - ', '')
+ let data = this.selectTree.split(' - ')
+ let data2 = ''
+ for (let index = data.length - 1; index >= 0; index--) {
+ data2 += " - " + data[index]
+ }
+ this.selectTree = data2.replace(' - ', '')
+ },
+ getNodeParent(val) {
+ if (val.parent != null) {
+ if (val.data.children === null) {
+ this.selectTree += ' - ' + val.label + ' - ' + ''
+ } else {
+ this.selectTree += ' - ' + val.label
+ }
+ this.getNodeParent(val.parent)
+ }
+ },
+ nodeOpen(data, node, el) {
+ $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
+ },
+ nodeClose(data, node, el) {
+ $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
+ },
+ beforeClose(done) {
+ if (this.bsm1) {
+ if (this.bsm1Val === null || this.bsm1Val === '') {
+ this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊')
+ return
+ }
+ }
+ done()
+ },
+ upBsm1(val) {
+ let sections = JSON.parse(this.bsmRow.section);
+ let asks = JSON.parse(this.bsmRow.ask);
+ let tells = JSON.parse(this.bsmRow.tell);
+ let manHours = JSON.parse(this.bsmRow.manHour);
+ let prices = JSON.parse(this.bsmRow.price);
+ for (var a in sections) {
+ if (val === sections[a]) {
+ this.productList.forEach(p => {
+ if (p.id === this.bsmRow.id) {
+ p.section = sections[a]
+ p.ask = asks[a]
+ p.tell = tells[a]
+ p.manHour = manHours[a]
+ p.price = prices[a]
+ }
+ })
+ break
+ }
+ }
+ },
+ }
+ }
+</script>
+<style scoped>
+ .ins_order_config {
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ }
+
+ .ins_order_config::-webkit-scrollbar {
+ width: 0;
+ }
+
+ .title {
+ height: 60px;
+ line-height: 60px;
+ }
+
+ .center {
+ width: 100%;
+ height: calc(100% - 60px);
+ }
+
+
+ >>>.all-disabled .el-checkbox__input .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #dcdfe6;
+ cursor: not-allowed;
+ }
+
+ .node_i {
+ color: orange;
+ font-size: 18px;
+ }
+
+ .el-select-dropdown__item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+</style>
diff --git a/src/views/business/inspectionOrder/fiberoptic-config-two.vue b/src/views/business/inspectionOrder/fiberoptic-config-two.vue
new file mode 100644
index 0000000..20c02c1
--- /dev/null
+++ b/src/views/business/inspectionOrder/fiberoptic-config-two.vue
@@ -0,0 +1,1599 @@
+<template>
+ <div class="ins_order_config">
+ <div>
+ <el-row class="title">
+ <el-col :span="6" style="padding-left: 20px;text-align: left;">鍏夌氦閰嶇疆</el-col>
+ <el-col :span="18" style="text-align: right;">
+ <!-- <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-if="active==1">淇� 瀛�</el-button> -->
+ <el-button size="medium" @click="outConfig">
+ <span style="color: #3A7BFA;">杩� 鍥�</span>
+ </el-button>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="center">
+ <el-row :gutter="10" style="margin-bottom: 10px;">
+ <el-col :span="9">
+ <div class="grid-content">
+ <h5>濂楃</h5>
+ <div
+ style="display: flex;align-items: center;justify-content: space-between;padding: 0 12px;box-sizing: border-box;">
+ <div class="search-item">
+ <label style="width: 70px;">鏍峰搧鍨嬪彿</label>
+ <span class="models" :title="models">{{models}}</span>
+ </div>
+ <el-radio-group v-model="packageInfo.radio" size="small" @change="isInspection()" :disabled="active!=1">
+ <el-radio :label="0">鍏ㄦ</el-radio>
+ <el-radio :label="1">鎶芥</el-radio>
+ </el-radio-group>
+ </div>
+ <div
+ style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 8px;padding: 0 12px;box-sizing: border-box;">
+ <div class="search-item" style="margin-right: 10px;">
+ <label>濂楃鏁扮洰</label>
+ <el-input v-model="packageInfo.num1" placeholder="璇疯緭鍏�" size="small" @blur="addBushing" :disabled="active!=1"></el-input>
+ </div>
+ <div class="search-item" style="margin-right: 10px;">
+ <label style="width: 100px">姣忔牴绠℃娊妫�鏍囧噯閲�</label>
+ <el-input v-model="packageInfo.standNum" placeholder="璇疯緭鍏�" size="small" @blur="addStandNum" :disabled="active!=1" style="width:70px"></el-input>
+ </div>
+ <div class="search-item">
+ <label style="width: 100px">姣忔牴绠℃娊妫�妫�娴嬮噺</label>
+ <el-input v-model="packageInfo.testNum" placeholder="璇疯緭鍏�" size="small" @blur="addTestNum"
+ style="width:70px"
+ :disabled="packageInfo.radio===0||active!=1"></el-input>
+ </div>
+ </div>
+ <el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px" size="small"
+ @selection-change="handleSelectionChange1"
+ :header-cell-class-name="setClassName0">
+ <!-- <el-table-column
+ type="selection"
+ width="45"
+ :selectable="()=>(active==1)">
+ </el-table-column> -->
+ <el-table-column label="绠¤壊鏍�" show-overflow-tooltip>
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.color" size="mini" :disabled="active!=1" allow-create filterable >
+ <el-option v-for="(color,i) in colors" :key="i" :label="color.lable"
+ :value="color.value"></el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column prop="standNum" label="鏍囬噺" show-overflow-tooltip align="center">
+ </el-table-column>
+ <el-table-column prop="testNum" label="娴嬭瘯閲�" show-overflow-tooltip align="center">
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-col>
+ <el-col :span="15">
+ <div class="grid-content">
+ <h5>妫�娴嬮」淇℃伅</h5>
+ <el-table ref="productTable" :data="detectionItems" tooltip-effect="dark" style="width: 100%"
+ :row-class-name="tableRowClassName"
+ :header-cell-class-name="setClassName"
+ height="283px"
+ size="small" @selection-change="handleSelectionChange2"
+ @select-all="handleAll"
+ @select="upProductSelect"
+ >
+ <!-- <el-table-column type="selection" width="55"
+ :selectable="()=>((currentDetectionItems||this.selectFiberList.length > 0 || this.multiFiberList.length > 0)&&active==1)">
+ </el-table-column> -->
+ <el-table-column label="瀹為獙瀹�" show-overflow-tooltip prop="sonLaboratory" ></el-table-column>
+ <el-table-column prop="inspectionItem" label="妫�楠岄」" show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" show-overflow-tooltip width="100px">
+ </el-table-column>
+ <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="90" show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column prop="price" label="鍗曚环" width="70" show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅" width="70" show-overflow-tooltip>
+ </el-table-column>
+ <!-- <el-table-column prop="manDay" label="棰勮鏃堕棿" width="90" show-overflow-tooltip>
+ </el-table-column> -->
+ <el-table-column prop="ask" label="妫�娴嬭姹�" show-overflow-tooltip width="200px">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.ask" placeholder="璇疯緭鍏�" size="small" :disabled="active!=1" v-if="!isAskOnlyRead"></el-input>
+ <span v-else>{{ scope.row.ask }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="tell" label="瑕佹眰鎻忚堪" show-overflow-tooltip width="150">
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row :gutter="10">
+ <el-col :span="12" v-if="packageInfo.ismiers">
+ <div class="grid-content">
+ <h5>鍏夌氦甯�
+ <el-button size="mini" type="primary" class="btns" @click="addFibers"
+ v-if="active==1">鐢熸垚鍏夌氦甯�</el-button>
+ <!-- <el-button size="mini" class="btns" @click="clearFibers" :disabled="selectBushing.length === 0" v-if="active==1">娓呴櫎</el-button> -->
+ </h5>
+ <div
+ style="display: flex;align-items: center;justify-content: space-between;margin:4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
+ <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
+ <label style="width: 80px;">绾ゅ甫绫诲瀷</label>
+ <el-select v-model="miresModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="selectBushing.length===0||active!=1"
+ >
+ <el-option v-for="(item,a) in miresModels" :key="a" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div> -->
+ <!-- <div class="search-item" style="width: 50%;">
+ <label style="width: 80px;">鍙傝�冩爣鍑�</label>
+ <el-select v-model="miresStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="miresModel===null||active!=1" @focus="selectsStandardMethodByFLSSM2()"
+ @change="(value)=>methodChange2(value)">
+ <el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </div> -->
+ <div class="search-item" style="width: 50%;margin-right: 16px;">
+ <label style="width: 80px;">绾ゅ甫绫诲瀷</label>
+ <el-select v-model="miresModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="selectBushing.length===0||active!=1"
+ >
+ <el-option v-for="(item,a) in miresModels" :key="a" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ <div class="search-item" style="width: 50%;">
+ <label style="width: 80px;">鍙傝�冩爣鍑�</label>
+ <el-select v-model="miresStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="miresModel===null||active!=1"
+ @focus="selectsStandardMethodByFLSSM2()"
+ @change="(value)=>methodChange2(value)">
+ <el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </div>
+
+ </div>
+ <el-table ref="table2" :data="fibersList" tooltip-effect="dark" style="width: 100%" height="270px"
+ size="small" @selection-change="handleSelectionChange" highlight-current-row @row-click="(row, column, event)=>rowClickFiber(row, column, event,1)"
+ :header-cell-class-name="setClassName0">
+ <!-- <el-table-column
+ type="selection"
+ width="55"
+ :selectable="()=>(active==1)">
+ </el-table-column> -->
+ <el-table-column prop="color" label="绠″鑹叉爣" width="90" align="center">
+ </el-table-column>
+ <el-table-column prop="code" label="鍏夌氦甯︾紪鍙�" show-overflow-tooltip align="center">
+ <!-- <template slot-scope="scope">
+ <el-input v-model="scope.row.code" placeholder="璇疯緭鍏�" size="mini" ></el-input>
+ </template> -->
+ </el-table-column>
+ <el-table-column prop="model" label="鍏夌氦甯﹁鏍�" show-overflow-tooltip align="center">
+ <!-- <template slot-scope="scope">
+ <el-input v-model="scope.row.model" placeholder="璇疯緭鍏�" size="mini" ></el-input>
+ </template> -->
+ </el-table-column>
+ <el-table-column prop="standard" label="鍙傝�冩爣鍑�" show-overflow-tooltip align="center">
+ <!-- <template slot-scope="scope">
+ <el-input v-model="scope.row.standard" placeholder="璇疯緭鍏�" size="mini" ></el-input>
+ </template> -->
+ </el-table-column>
+ <el-table-column prop="num" label="鍏夌氦妫�娴嬮噺" show-overflow-tooltip align="center">
+ <!-- <template slot-scope="scope">
+ <el-input v-model="scope.row.num" placeholder="璇疯緭鍏�" size="mini" ></el-input>
+ </template> -->
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-col>
+ <el-col :span="!packageInfo.ismiers?24:12">
+ <div class="grid-content">
+ <h5>鍏夌氦
+ <el-button size="mini" type="primary" class="btns" @click="addFiber"
+ v-if="active==1">鍏夌氦閰嶈壊</el-button>
+ </h5>
+ <div
+ style="display: flex;align-items: center;justify-content: space-between;margin: 4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
+ <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
+ <label style="width: 80px;">鍏夌氦绫诲瀷</label>
+ <el-select v-model="mireModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="selectBushing.length===0||active!=1">
+ <el-option v-for="(item,a) in mireModels" :key="a" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ <div class="search-item" style="width: 50%;">
+ <label style="width: 80px;">鍙傝�冩爣鍑�</label>
+ <el-select v-model="mireStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="mireModel===null||active!=1" @focus="selectsStandardMethodByFLSSM()"
+ @change="(value)=>methodChange(value)" :loading="mireStandardLoading">
+ <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </div> -->
+ <div class="search-item" style="width: 50%;margin-right: 16px;">
+ <label style="width: 80px;">鍏夌氦绫诲瀷</label>
+ <el-select v-model="mireModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ >
+ <el-option v-for="(item,a) in mireModels" :key="a" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ <div class="search-item" style="width: 50%;">
+ <label style="width: 80px;">鍙傝�冩爣鍑�</label>
+ <el-select v-model="mireStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="mireModel===null||active!=1"
+ @focus="selectsStandardMethodByFLSSM()"
+ @change="(value)=>methodChange(value)" :loading="mireStandardLoading">
+ <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ <el-table ref="table3" :data="fiberList" tooltip-effect="dark" style="width: 100%" height="270px"
+ size="small" highlight-current-row @selection-change="handleSelectionChange4"
+ @row-click="(row, column, event)=>rowClickFiber(row, column, event,0)"
+ :header-cell-class-name="setClassName0">
+ <!-- <el-table-column
+ type="selection"
+ width="55"
+ :selectable="()=>(active==1)">
+ </el-table-column> -->
+ <el-table-column prop="bushColor" label="绠″鑹叉爣" width="90" align="center">
+ </el-table-column>
+ <el-table-column prop="color" label="鍏夌氦鑹叉爣" width="120">
+ <!-- <template slot-scope="scope">
+ <el-select v-model="scope.row.color" size="mini" :disabled="active!=1" allow-create filterable >
+ <el-option v-for="(color,i) in colors" :key="i" :label="color.lable"
+ :value="color.value"></el-option>
+ </el-select>
+ </template> -->
+ </el-table-column>
+ <el-table-column prop="model" label="鍏夌氦瑙勬牸" show-overflow-tooltip align="center">
+ </el-table-column>
+ <el-table-column prop="standard" label="鍙傝�冩爣鍑�" show-overflow-tooltip align="center">
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose">
+ <div class="body" style="max-height: 60vh;">
+ <el-row v-if="bsm1">
+ <el-col class="search_thing" :span="22">
+ <div class="search_label"><span class="required-span">* </span>鎶ゅ瀵嗗害锛�</div>
+ <div class="search_input">
+ <el-radio-group v-model="bsm1Val" @input="upBsm1">
+ <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" :label="a"></el-radio>
+ </el-radio-group>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">瑕佹眰鍊硷細</div>
+ <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
+ <el-radio-group v-model="bsm1Val" @input="upBsm1">
+ <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai"
+ :label="a">{{JSON.parse(bsmRow.ask)[ai]}}</el-radio>
+ </el-radio-group>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">鍗曚环锛�</div>
+ <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
+ <el-radio-group v-model="bsm1Val" @input="upBsm1">
+ <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai"
+ :label="a">{{JSON.parse(bsmRow.price)[ai]}}</el-radio>
+ </el-radio-group>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row v-if="bsm2">
+ <el-col class="search_thing" :span="22">
+ <div class="search_label" style="width: 220px;"><span class="required-span">* </span>鏍峰搧鐔旀帴閰嶅鏁伴噺锛�</div>
+ <div class="search_input">
+ <el-input-number size="medium" v-model="bsm2Val" :min="1" :max="bsm2Val3.length" :precision="0" style="width: 70%;"
+ :controls="false" @change="bsm2Up"></el-input-number>
+ <span>MAX锛歿{bsm2Val3.length}}</span>
+ </div>
+ </el-col>
+ <el-col style="margin-top: 6px;">
+ <el-col v-for="(a,ai) in bsm2Val2" :key="ai">
+ <el-col :span="10">
+ <el-select v-model="a[0]" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+ <el-option
+ v-for="(item,index) in sampleList"
+ :key="index"
+ :label="index+1"
+ :value="index+1">
+ </el-option>
+ </el-select>
+ </el-col>
+ <!-- <el-col :span="10" class="pairing">{{a[0]}}</el-col> -->
+ <el-col :span="4" class="pairing" style="border: 0;color: rgba(0, 0, 0, 0.2);">鈥斺��</el-col>
+ <el-col :span="10">
+ <el-select v-model="a[1]" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+ <el-option
+ v-for="(item,index) in sampleList"
+ :key="index"
+ :label="index+1"
+ :value="index+1">
+ </el-option>
+ </el-select>
+ </el-col>
+ <!-- <el-col :span="10" class="pairing">{{a[1]}}</el-col> -->
+ </el-col>
+ </el-col>
+ </el-row>
+ <!-- <el-row v-if="bsm3">
+ <el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
+ <div class="search_label"><span class="required-span">* </span>RTS锛�</div>
+ <div class="search_input">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="bsm3Val"></el-input>
+ </div>
+ </el-col>
+ </el-row> -->
+ </div>
+ </el-dialog>
+ <el-dialog title="RTS濉啓" :visible.sync="bsm3Dia" width="500px" :show-close="false" :before-close="beforeClose0">
+ <el-row>
+ <el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
+ <div class="search_label"><span class="required-span">* </span>RTS锛�</div>
+ <div class="search_input">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="bsm3Val"></el-input>
+ </div>
+ </el-col>
+ </el-row>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import { set } from 'vue'
+ export default {
+ props: {
+ active: {
+ type: Number,
+ default: () => 0
+ },
+ },
+ data() {
+ return {
+ detectionType: null,
+ detectionSelect: [],
+ selectFiberList: [],
+ type:1,
+ saveLoad: false,
+ packageInfo: {
+ radio: 1,
+ num1: null,
+ standNum: null,
+ testNum: null,
+ ismiers: false
+ },
+ tableData: [],
+ tape: {
+ value: ''
+ },
+ options: [],
+ sample: [],
+ models: '',
+ colors: [],
+ wires: [],
+ bushing: [],
+ mireModels: [],
+ mireModel: null,
+ mireStandard: [],
+ mireStandards: null,
+ miresModels: [],
+ miresModel: null,
+ miresStandard: [],
+ miresStandards: null,
+ selectBushing: [],
+ productList: [],
+ productList2: [],
+ fiberList: [],
+ fibersList: [],
+ selectFibers: [],
+ detectionItems: [],
+ currentDetectionItems:null,
+ mireStandardLoading:false,
+ multiFiberList:[],
+ isAskOnlyRead:true,
+ bsm1Dia: false,
+ bsmRow: null,
+ bsm1: false,
+ bsm1Val: null,
+ bsm2: false,
+ bsm2Val: null,
+ bsm2Dia: false,
+ bsm2Val2: [],
+ bsm2Val3: [],
+ sampleIds:[],
+ bsm3Val: null,
+ bsmRow3: null,
+ bsm3Dia: false,
+ sorted: false
+ }
+ },
+ computed: {
+ isAllDisabled() {
+ return this.multiFiberList.length > 0||this.currentDetectionItems||this.active!=1
+ },
+ },
+ watch: {
+ // mireModel(val1,val0) {
+ // if(val1!=val0){
+ // this.mireStandards = []
+ // this.fiberList = []
+ // this.multiFiberList = []
+ // this.detectionItems = []
+ // this.currentDetectionItems = null;
+ // }
+ // },
+ // mireStandard(val1,val0) {
+ // if(val1!=val0){
+ // this.fiberList = []
+ // this.multiFiberList = []
+ // this.detectionItems = []
+ // this.currentDetectionItems = null;
+ // }
+ // }
+ },
+ mounted() {
+ this.$parent.sampleIds.forEach(a => {
+ for (var i = 0; i < this.$parent.sampleList.length; i++) {
+ if (this.$parent.sampleList[i].id == a) {
+ this.sample.push(this.$parent.sampleList[i])
+ this.models += (',' + this.$parent.sampleList[i].model)
+ break
+ }
+ }
+ })
+ console.log(111, this.sample);
+ this.models = this.models.replace(',', '')
+ this.packageInfo.ismiers = this.models.split(',').every(e=>(e.indexOf('d')>-1||e.indexOf('D')>-1)&&!e.includes('ADSS'))
+ if(this.sample[0].bushing === undefined || this.sample[0].bushing === null){
+ this.bushing = []
+ }else{
+ this.bushing = this.HaveJson(this.sample[0].bushing)
+ this.packageInfo.num1 = this.sample[0].bushing.length
+ this.packageInfo.standNum = this.sample[0].bushing[0].standNum
+ this.packageInfo.testNum = this.sample[0].bushing[0].testNum
+ this.bushing.forEach(a=>{
+ if(a.fibers==null || a.fibers.length ==0)a.fibers=[]
+ if(a.fiber==null || a.fiber.length == 0)a.fiber=[]
+ // 鍒ゆ柇鏄惁鍚湁鍏夌氦甯�
+ if(this.packageInfo.ismiers){
+ // this.fibersList = [] // 鏂板
+ // this.fiberList = [] // 鏂板
+ if(a.fibers.length>0){
+ a.fibers.sort((a,b)=>a.id-b.id)
+ a.fibers.forEach(b=>{
+ this.$set(b,'color',a.color)
+ // 鍏夌氦甯�
+ this.fibersList.push(b)
+ // 鍏夌氦
+ b.fiber.forEach(c=>{
+ this.fiberList.push(c)
+ })
+ })
+ } else {
+ a.fiber.forEach(b=>{
+ this.fiberList.push(b)
+ })
+ }
+
+ }else{
+ // this.fiberList = []
+ a.fiber.forEach(b=>{
+ this.fiberList.push(b)
+ })
+ }
+ })
+ }
+
+ this.getTypeDicts1()
+ this.getStandTreeBySampleType()
+ this.getStandTreeBySampleType2()
+ this.selectsStandardMethodByFLSSM2()
+ },
+ methods: {
+ handleSelectionChange(val) {
+ // this.selectFibers = val
+ this.multiFiberList = val
+ },
+ handleSelectionChange1(val) {
+ this.selectBushing = val
+ },
+ handleSelectionChange2(val){
+ this.detectionSelect = val
+ // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦甯�
+ if(this.detectionItems.type == 1) {
+ this.multiFiberList.forEach(item => {
+ this.fibersList.forEach(a => {
+ if(a.ident == item.ident){
+ a.productList = []
+ this.fibersList.find(a => a.ident == item.ident).productList = this.detectionSelect
+ }
+ })
+ })
+
+ }
+ if(this.detectionItems.type == 0) {
+ // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦
+ console.log('000',this.selectFiberList);
+ this.selectFiberList.forEach(item => {
+ this.fiberList.forEach(a => {
+ if(a.ident == item.ident){
+ a.productList = []
+ this.fiberList.find(a => a.ident == item.ident).productList = this.detectionSelect
+ }
+ })
+ })
+ }
+ },
+ handleSelectionChange4(val){
+ this.selectFiberList = val
+ },
+ outConfig() {
+ this.$parent.configShow = false
+ },
+ getTypeDicts1() {
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "鑹叉爣"
+ }).then(res => {
+ this.colors = res.data
+ })
+ },
+ // 濂楃鏁扮洰鐢熸垚琛ㄦ牸鏁版嵁
+ addBushing() {
+ this.bushing = []
+ for(let i = 0; i < this.packageInfo.num1; i++){
+ let bushing = {
+ ident: this.bushing.length + 1,
+ color: this.colors[i].label,
+ standNum: null,
+ testNum: null,
+ fibers: [],
+ fiber: []
+ }
+ this.bushing.push(bushing)
+ }
+ },
+ // 濂楃鏍囧噯閲忚祴鍊�
+ addStandNum() {
+ if(this.selectBushing.length > 0) {
+ this.bushing.forEach(item => {
+ this.selectBushing.forEach(a => {
+ if(item.ident == a.ident) {
+ item.standNum = this.packageInfo.standNum
+ }
+ })
+ })
+ }
+ },
+ // 濂楃妫�娴嬮噺璧嬪��
+ addTestNum() {
+ if(this.selectBushing.length > 0) {
+ this.bushing.forEach(item => {
+ this.selectBushing.forEach(a => {
+ if(item.ident == a.ident) {
+ item.testNum = this.packageInfo.testNum
+ }
+ })
+ })
+ }
+ },
+ isInspection() {
+ this.fiberList = []
+ this.fibersList = []
+ this.detectionItems = []
+
+ // 椤甸潰鏄惁鍚湁鍏夌氦甯�
+ if(this.packageInfo.ismiers) {
+ // 鍏ㄦ
+ if (this.packageInfo.radio == 0) {
+ // 鏍规嵁鏍囧噯閲忚祴鍊兼娴嬮噺
+ if(parseInt(this.packageInfo.standNum) > 0 ) {
+ // 缁欏厜绾ゅ甫璧嬪��
+ this.packageInfo.testNum = this.packageInfo.standNum
+ this.selectBushing = this.bushing
+ this.addFibers()
+ this.multiFiberList = this.fibersList
+ // 榛樿鍕鹃��
+ setTimeout(() => {
+ this.selectBushing.forEach(item =>{
+ let rowToSelect = this.bushing.find(a => a.ident == item.ident)
+ this.$refs.table0.toggleRowSelection(rowToSelect, true)
+ })
+
+ this.multiFiberList.forEach(item =>{
+ let rowToSelect = this.fibersList.find(a => a.ident == item.ident)
+ this.$refs.table2.toggleRowSelection(rowToSelect, true)
+ })
+ }, 200)
+ }
+ }
+ }else {
+ if(this.packageInfo.radio == 0) {
+ if(parseInt(this.packageInfo.standNum) > 0 ) {
+ this.packageInfo.testNum = this.packageInfo.standNum
+ this.selectBushing = this.bushing
+ this.addFiber()
+ // 榛樿鍕鹃��
+ setTimeout(() => {
+ this.selectBushing.forEach(item =>{
+ let rowToSelect = this.bushing.find(a => a.ident == item.ident)
+ this.$refs.table0.toggleRowSelection(rowToSelect, true)
+ })
+ }, 200)
+ }
+ }
+ }
+
+
+
+ },
+ upNum() {
+ this.fiberList = []
+ this.fibersList = []
+ this.detectionItems = []
+ if (this.packageInfo.radio === 0) {
+ this.packageInfo.testNum = this.packageInfo.standNum
+ }
+ if (parseInt(this.packageInfo.standNum) < parseInt(this.packageInfo.testNum)) {
+ this.packageInfo.testNum = this.packageInfo.standNum
+ }
+ if (this.packageInfo.num1 !== null && this.packageInfo.num1 !== '' &&
+ this.packageInfo.standNum !== null && this.packageInfo.standNum !== '' &&
+ this.packageInfo.testNum != null && this.packageInfo.testNum !== '') {
+ let colors2 = []
+ if (this.packageInfo.num1 / this.colors.length > 1) {
+ let num = this.packageInfo.num1 / this.colors.length
+ if (this.packageInfo.num1 % this.colors.length > 0) num += 1
+ for (var i = 0; i < num; i++) {
+ colors2 = colors2.concat(this.colors)
+ }
+ } else {
+ colors2 = colors2.concat(this.colors)
+ }
+ this.bushing = []
+ for (var i = 0; i < this.packageInfo.num1; i++) {
+ let bushing = {
+ color: colors2[i].label,
+ standNum: this.packageInfo.standNum,
+ testNum: this.packageInfo.testNum,
+ fibers: [],
+ fiber: []
+ }
+ this.bushing.push(bushing)
+ }
+ // 缁欏厜绾ゅ甫璧嬪��
+ if(this.selectBushing.length===0){
+ this.selectBushing = this.bushing
+ }
+ // this.miresModels 绾ゅ甫绫诲瀷
+ // this.miresStandards 鍙傝�冩爣鍑�
+ this.fibersList = []
+ this.packageInfo.ismiers = true
+ this.fiberList = []
+ this.selectBushing.forEach(a => {
+ a.fiber = []
+ a.fibers = []
+ for(let j = 0; j < parseInt(a.testNum); j++){
+ let fibers = {
+ id: this.fibersList.length + 1,
+ code: null,
+ color: a.color,
+ model: null,
+ standard: null,
+ num: a.testNum,
+ productList: this.HaveJson(this.productList2),
+ fiber: []
+ }
+ a.fibers.push(fibers)
+ this.fibersList.push(fibers)
+ }
+ })
+ } else {
+ this.bushing = []
+ }
+ },
+ getStandTreeBySampleType() {
+ this.$axios.post(this.$api.standardTree.getStandTreeBySampleType, {
+ laboratory: '閫氫俊浜у搧瀹為獙瀹�',
+ sampleType: '鍏夌氦'
+ }).then(res => {
+ this.mireModels = []
+ res.data.forEach(a => {
+ this.mireModels.push({
+ label: a.model,
+ value: a.sample + ' - ' + a.model
+ })
+ })
+ })
+ },
+ getStandTreeBySampleType2() {
+ this.$axios.post(this.$api.standardTree.getStandTreeBySampleType, {
+ laboratory: '閫氫俊浜у搧瀹為獙瀹�',
+ sampleType: '鍏夌氦甯�'
+ }).then(res => {
+ this.miresModels = []
+ res.data.forEach(a => {
+ this.miresModels.push({
+ label: a.model,
+ value: a.model
+ })
+ })
+ })
+ },
+ selectsStandardMethodByFLSSM() {
+ this.mireStandards = []
+ this.mireStandardLoading = true
+ this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+ tree: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦 - ' + this.mireModel
+ }).then(res => {
+ this.mireStandardLoading = false
+ this.mireStandards = res.data.standardMethodList
+ })
+ },
+ selectsStandardMethodByFLSSM2() {
+ this.miresStandards = []
+ this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+ tree: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel
+ }).then(res => {
+ this.miresStandards = res.data.standardMethodList
+ })
+ },
+ methodChange(val) {
+ // if (val === null || val === '') return
+ // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ // model: this.mireModel.split(' - ')[1],
+ // standardMethodListId: val,
+ // factory: ''
+ // }, {
+ // headers: {
+ // 'Content-Type': 'application/json'
+ // }
+ // }).then(res => {
+ // res.data.forEach(a => {
+ // a.state = 0
+ // })
+ // this.productList = res.data
+ // setTimeout(() => {
+ // this.productList.forEach(a => {
+ // if (a.state == 1) this.toggleSelection(a)
+ // })
+ // this.addFiber()
+ // }, 200)
+ // })
+
+ // 灏嗕笅鎷夋鍊艰祴鍊肩粰鍏夌氦 鐩戝惉鍘婚櫎
+ if(this.selectFiberList.length == 0) {
+ this.$message.error('璇烽�夋嫨鏁版嵁')
+ return
+ }
+ this.selectFiberList.forEach(item => {
+ this.fiberList.forEach(a => {
+ if(a.ident == item.ident){
+ a.model = this.mireModel.split(' - ')[1] // 鍏夌氦瑙勬牸
+ a.noSplitModel = this.mireModel // 鍏夌氦瑙勬牸
+ if(this.mireStandards != null) {
+ a.standard = this.mireStandards.find(a => a.id == this.mireStandard).code // 鍙傝�冩爣鍑�
+ }
+ }
+ })
+ })
+ if (val === null || val === '') return
+ if(this.mireStandards == null ) return
+ this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ model: this.mireModel.split(' - ')[1],
+ standardMethodListId: val,
+ factory: ''
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ this.detectionItems = []
+ if(res.data != null && res.data.length != 0){
+ res.data.forEach(a => {
+ a.state = 0
+ })
+ this.detectionItems = res.data
+ this.detectionType = 0
+ this.$set(this.detectionItems,'type',0)
+ }
+
+ })
+ },
+ methodChange2(val) {
+ // if (val === null || val === '') return
+ // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ // model: '',
+ // standardMethodListId: val,
+ // factory: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel + ' - ',
+ // }, {
+ // headers: {
+ // 'Content-Type': 'application/json'
+ // }
+ // }).then(res => {
+ // res.data.forEach(a => {
+ // a.state = 0
+ // })
+ // this.productList2 = res.data
+ // setTimeout(() => {
+ // this.productList2.forEach(a => {
+ // if (a.state == 1) this.toggleSelection(a)
+ // })
+ // this.addFibers()
+ // }, 200)
+ // })
+
+ if(this.multiFiberList.length == 0) {
+ this.$message.error('璇烽�夋嫨闇�瑕佹洿鏀圭殑鏁版嵁')
+ return
+ }
+ if (val === null || val === '') return
+ this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ model: '',
+ standardMethodListId: val,
+ factory: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel + ' - ',
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
+ this.detectionItems = []
+ if(res.data != null && res.data.length != 0){
+ res.data.forEach(a => {
+ a.state = 0
+ })
+ this.detectionItems = res.data
+ this.detectionType = 1
+ this.$set(this.detectionItems,'type',1)
+ }
+
+ // 缁欓�変腑鐨勫厜绾ゅ甫璧嬪��
+ for(let i= 0; i < this.fibersList.length; i++){
+ this.multiFiberList.forEach(item => {
+ if(this.fibersList[i].ident == item.ident){
+ this.fibersList[i].model = this.miresModel // 绾ゅ甫瑙勬牸
+ this.fibersList[i].num = this.miresModel.replace('鑺�','') // 鍏夌氦妫�娴嬮噺
+ this.fibersList[i].productList = this.detectionItems // 妫�娴嬮」
+ this.miresStandards.forEach(a => {
+ if(a.id == this.miresStandard) {
+ this.fibersList[i].standard = a.code // 鍙傝�冩爣鍑�
+ }
+ })
+ }
+ })
+ }
+ })
+ },
+ addFiber() {
+ // 鏈�鏂�
+ let colors2 = []
+ if (this.packageInfo.num1 / this.colors.length > 1) {
+ let num = this.packageInfo.num1 / this.colors.length
+ if (this.packageInfo.num1 % this.colors.length > 0) num += 1
+ for (var i = 0; i < num; i++) {
+ colors2 = colors2.concat(this.colors)
+ }
+ } else {
+ colors2 = colors2.concat(this.colors)
+ }
+ this.fiberList = []
+ // 閫夋嫨浜嗗厜绾ゅ甫
+ if (this.packageInfo.ismiers) {
+ if(this.multiFiberList.length != 0){
+ this.multiFiberList.forEach((a,index) => {
+ a.fiber = []
+ for (var i = 0; i < parseInt(a.num); i++) {
+ let fiber = {
+ ident: this.fiberList.length + 1,
+ bushColor: a.color,
+ color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+ model: null,
+ noSplitModel: null,
+ standard: null,
+ fibersIdent: a.ident,
+ productList: []
+ }
+ this.fiberList.push(fiber)
+ }
+ })
+ } else {
+ this.selectBushing.forEach((a,index) => {
+ a.fiber = []
+ for (var i = 0; i < parseInt(a.testNum); i++) {
+ let fiber = {
+ ident: this.fiberList.length + 1,
+ bushColor: a.color,
+ color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
+ model: null,
+ noSplitModel: null,
+ standard: null,
+ productList: []
+ }
+ this.fiberList.push(fiber)
+ }
+ })
+ }
+ }else {
+ this.fiberList = []
+ let flag = true
+ // 鎸夌収椤哄簭鐢熸垚鍏夌氦鑹叉爣
+ let colors2 = []
+ if (this.packageInfo.num1 / this.colors.length > 1) {
+ let num = this.packageInfo.num1 / this.colors.length
+ if (this.packageInfo.num1 % this.colors.length > 0) num += 1
+ for (var i = 0; i < num; i++) {
+ colors2 = colors2.concat(this.colors)
+ }
+ } else {
+ colors2 = colors2.concat(this.colors)
+ }
+ // 鏍规嵁濂楃鐨勬祴璇曢噺鐢熸垚瀵瑰簲鐨勬暟閲忕殑鍏夌氦鏁版嵁
+ this.selectBushing.forEach((item,index) =>{
+ if(item.testNum != null && item.testNum != ''){
+ for(let i =0; i < parseInt(item.testNum); i++){
+ let fiber = {
+ ident: this.fiberList.length + 1,
+ bushColor: item.color,
+ color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
+ model: null,
+ standard: null,
+ productList: []
+ }
+ this.fiberList.push(fiber)
+ }
+ }else {
+ flag = false
+ }
+ })
+ if(!flag){
+ this.$message.error('璇峰~鍐欏厜绾ゆ娴嬮噺')
+ return
+ }
+ }
+ // 浜屼唬
+ // // 鏄惁閫夋嫨濂楃
+ // if(this.selectBushing.length == 0) {
+ // this.$message.error('鏈�夋嫨濂楃')
+ // return
+ // }
+ // this.fiberList = []
+ // let flag = true
+ // // 鎸夌収椤哄簭鐢熸垚鍏夌氦鑹叉爣
+ // let colors2 = []
+ // if (this.packageInfo.num1 / this.colors.length > 1) {
+ // let num = this.packageInfo.num1 / this.colors.length
+ // if (this.packageInfo.num1 % this.colors.length > 0) num += 1
+ // for (var i = 0; i < num; i++) {
+ // colors2 = colors2.concat(this.colors)
+ // }
+ // } else {
+ // colors2 = colors2.concat(this.colors)
+ // }
+ // // 鏍规嵁濂楃鐨勬祴璇曢噺鐢熸垚瀵瑰簲鐨勬暟閲忕殑鍏夌氦鏁版嵁
+ // this.selectBushing.forEach((item,index) =>{
+ // if(item.testNum != null && item.testNum != ''){
+ // for(let i =0; i < parseInt(item.testNum); i++){
+ // let fiber = {
+ // ident: this.fiberList.length + 1,
+ // bushColor: item.color,
+ // color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
+ // model: null,
+ // standard: null,
+ // productList: []
+ // }
+ // this.fiberList.push(fiber)
+ // }
+ // }else {
+ // flag = false
+ // }
+ // })
+ // if(!flag){
+ // this.$message.error('璇峰~鍐欏厜绾ゆ娴嬮噺')
+ // return
+ // }
+
+
+ // 鏈�鍒�
+ // let colors2 = []
+ // if (this.packageInfo.num1 / this.colors.length > 1) {
+ // let num = this.packageInfo.num1 / this.colors.length
+ // if (this.packageInfo.num1 % this.colors.length > 0) num += 1
+ // for (var i = 0; i < num; i++) {
+ // colors2 = colors2.concat(this.colors)
+ // }
+ // } else {
+ // colors2 = colors2.concat(this.colors)
+ // }
+ // this.fiberList = []
+ // let model = this.mireModel.split(' - ')[1]
+ // let standard = this.mireStandards.find(a => a.id == this.mireStandard).code
+ // if (this.packageInfo.ismiers) {
+ // if(this.selectFibers.length === 0){
+ // this.$message.error('鏈�夋嫨鍏夌氦甯�')
+ // return
+ // }
+ // this.selectFibers.forEach((a,index) => {
+ // a.fiber = []
+ // for (var i = 0; i < parseInt(a.num); i++) {
+ // let fiber = {
+ // bushColor: a.color,
+ // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+ // model: model,
+ // standard: standard,
+ // productList: this.HaveJson(this.productList)
+ // }
+ // a.fiber.push(fiber)
+ // this.fiberList.push(fiber)
+ // }
+ // })
+ // } else {
+ // this.selectBushing.forEach((a,index) => {
+ // a.fiber = []
+ // for (var i = 0; i < parseInt(a.testNum); i++) {
+ // let fiber = {
+ // bushColor: a.color,
+ // color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
+ // model: model,
+ // standard: standard,
+ // productList: this.HaveJson(this.productList)
+ // }
+ // a.fiber.push(fiber)
+ // this.fiberList.push(fiber)
+ // }
+ // })
+ // }
+ },
+ addFibers() {
+ // if(this.selectBushing.length===0){
+ // this.$message.error('鏈�夋嫨濂楃')
+ // return
+ // }
+ // this.fibersList = []
+ // let standard = this.miresStandards.find(a => a.id == this.miresStandard).code
+ // this.packageInfo.ismiers = true
+ // this.fiberList = []
+ // this.selectBushing.forEach(a => {
+ // a.fiber = []
+ // a.fibers = []
+ // for (var i = 0; i < parseInt(a.testNum); i++) {
+ // let fibers = {
+ // code: null,
+ // color: a.color,
+ // model: this.miresModel,
+ // standard: standard,
+ // num: a.testNum,
+ // productList: this.HaveJson(this.productList2),
+ // fiber: []
+ // }
+ // a.fibers.push(fibers)
+ // this.fibersList.push(fibers)
+ // }
+ // })
+
+ if(this.selectBushing.length == 0) {
+ this.$message.error('鏈�夋嫨濂楃')
+ return
+ }
+ // 濂楃鐨勬祴璇曢噺 * 閫夋嫨鐨勫厜绾ゅ甫鏁伴噺
+ this.fibersList = []
+ this.selectBushing.forEach(item => {
+ for(let i = 0; i < parseInt(this.packageInfo.testNum); i++){
+ let fibers = {
+ ident: this.fibersList.length + 1,
+ color: item.color,
+ code: null,
+ model: null,
+ standard: null,
+ num: null,
+ fiber: [],
+ productList: []
+ }
+ this.fibersList.push(fibers)
+ }
+ })
+ },
+ rowClickFiber(row, column, event,type){
+ console.log('row',row);
+ if(type == 1) {
+ this.fiberList = row.fiber
+ if(row.productList != null && row.productList.length > 0) {
+ this.detectionItems = []
+ this.detectionItems = row.productList
+ }
+ if(row.fiber != null && row.fiber.length > 0) {
+ this.fiberList = []
+ this.fiberList = row.fiber
+ }
+ }else if (type == 0){
+ this.detectionItems = []
+ this.detectionItems = row.productList
+ }
+ // if(type == 1) {
+ // if((row.model == null || row.model == '') && (row.standard == null || row.standard == '')){
+ // this.detectionItems = []
+ // return
+ // }
+ // if(row.model != null && row.model != ''){
+ // this.miresModel = row.model
+ // this.selectsStandardMethodByFLSSM2()
+ // }
+ // setTimeout(() => {
+ // if(row.standard !=null && row.standard != ''){
+ // this.miresStandard = this.miresStandards.find(a => a.code == row.standard).id
+ // }
+ // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ // model: '',
+ // standardMethodListId: this.miresStandard,
+ // factory: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel + ' - ',
+ // }, {
+ // headers: {
+ // 'Content-Type': 'application/json'
+ // }
+ // }).then(res => {
+ // // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
+ // this.detectionItems = []
+ // if(res.data != null && res.data.length != 0){
+ // this.detectionItems = res.data
+ // this.detectionType = 1
+ // this.$set(this.detectionItems,'type',1)
+ // if (row.productList != null && row.productList.length > 0) {
+ // let product = JSON.parse(JSON.stringify(row.productList))
+ // setTimeout(() => {
+ // product.forEach(p => {
+ // let rowToSelect = this.detectionItems.find(item => item.id === p.id);
+ // if (rowToSelect) {
+ // this.toggleSelection(rowToSelect);
+ // }
+ // });
+ // },200)
+ // }
+ // }
+ // })
+ // },1000)
+ // }else if(type == 0) {
+ // if((row.noSplitModel == null || row.noSplitModel == '') && (row.standard == null || row.standard == '')){
+ // this.detectionItems = []
+ // return
+ // }
+ // if(row.model != null && row.model != ''){
+ // this.mireModel = row.noSplitModel
+ // this.selectsStandardMethodByFLSSM()
+ // }
+ // setTimeout(() => {
+ // if(row.standard !=null && row.standard != ''){
+ // this.mireStandard = this.mireStandards.find(a => a.code == row.standard).id
+ // }
+ // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ // model: this.mireModel.split(' - ')[1],
+ // standardMethodListId: this.mireStandard,
+ // factory: ''
+ // }, {
+ // headers: {
+ // 'Content-Type': 'application/json'
+ // }
+ // }).then(res => {
+ // this.detectionItems = []
+ // if(res.data != null && res.data.length != 0){
+ // res.data.forEach(a => {
+ // a.state = 0
+ // })
+ // this.detectionItems = res.data
+ // this.detectionType = 0
+ // this.$set(this.detectionItems,'type',0)
+
+ // if (row.productList != null && row.productList.length > 0) {
+ // let product = JSON.parse(JSON.stringify(row.productList))
+ // setTimeout(() => {
+ // product.forEach(p => {
+ // let rowToSelect = this.detectionItems.find(item => item.id === p.id);
+ // if (rowToSelect) {
+ // this.toggleSelection(rowToSelect);
+ // }
+ // });
+ // },200)
+ // }
+ // }
+ // })
+ // },1000);
+ // }
+ },
+ toggleSelection(row) {
+ this.$refs.productTable.toggleRowSelection(row, true);
+ },
+ tableRowClassName({
+ row,
+ rowIndex
+ }) {
+ if (row.state === 0) {
+ return 'warning-row';
+ }
+ return '';
+ },
+ handleAll(e) {
+ if (e.length > 0) {
+ console.log(this.detectionItems);
+ this.detectionItems.map(m => {
+ m.state = 1
+ return m
+ })
+ } else {
+ this.detectionItems.map(m => {
+ m.state = 0
+ return m
+ })
+ }
+ if (e.length > 0) {
+ if(this.multiFiberList.length > 0){
+ this.multiFiberList.map(item => {
+ item.productList.map(m=>{
+ m.state = 1;
+ return m;
+ })
+ return item
+ })
+ }else{
+ this.currentDetectionItems.productList.map(m=>{
+ m.state = 1;
+ return m;
+ })
+ }
+ } else {
+ if(this.multiFiberList.length > 0){
+ this.multiFiberList.map(item => {
+ item.productList.map(m=>{
+ m.state = 0;
+ return m;
+ })
+ return item
+ })
+ }else{
+ this.currentDetectionItems.productList.map(m=>{
+ m.state = 0;
+ return m;
+ });
+ }
+ }
+ this.bsmRow3 = []
+ this.detectionItems.forEach(p => {
+ if(this.type==1){
+ if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 1) {
+ if (p.section.indexOf('[') > -1) {
+ this.bsmRow = this.HaveJson(p)
+ }
+ this.bsm1 = true
+ this.bsm1Dia = true
+ } else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) {
+ this.bsm1 = false
+ }
+ if (p.bsm === '1' && p.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && p.state === 1) {
+ this.bsm2 = true
+ this.bsm1Dia = true
+ if(this.bsm2Val2.length === 0){
+ this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2
+ this.computationalPairing(this.sampleList.length)
+ this.bsm2Val2 = this.HaveJson(this.bsm2Val3)
+ }
+ } else if (p.bsm === '1' && p.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && p.state === 1) {
+ this.bsm2 = false
+ }
+ }
+ // if (p.ask.includes('RTS')&&p.state === 1) {
+ // p.rts = ''
+ // this.bsm3Val = ''
+ // this.bsm3Dia = true
+ // this.bsmRow3.push(p)
+ // }
+ })
+
+ if (e.length > 0) {
+ this.sampleList.map(item => {
+ if (this.sampleIds.indexOf(item.id) > -1) {
+ item.insProduct.map(m => {
+ m.state = 1
+ return m;
+ })
+ }
+ return item
+ })
+ } else {
+ this.sampleList.map(item => {
+ if (this.sampleIds.indexOf(item.id) > -1) {
+ item.insProduct.map(m => {
+ m.state = 0
+ return m;
+ })
+ }
+ return item
+ })
+ }
+ this.$nextTick(() => {
+ this.$refs.productTable.doLayout()
+ })
+ },
+ upProductSelect(selection, row) {
+ row.state = row.state == 1 ? 0 : 1
+ if(this.selectFiberList.length > 0){
+ this.selectFiberList.map(item => {
+ item.productList.map(m=>{
+ if(m.id == row.id){
+ m.state = row.state;
+ }
+ return m
+ })
+ return item
+ })
+ }else{
+ this.currentDetectionItems.productList.map(m=>{
+ if(m.id == row.id){
+ m.state = row.state;
+ }
+ return m;
+ });
+ }
+ if(this.type==1){
+ if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1) {
+ if (row.section.indexOf('[') > -1) {
+ this.bsmRow = this.HaveJson(row)
+ }
+ this.bsm1 = true
+ this.bsm1Dia = true
+ } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) {
+ this.bsm1 = false
+ }
+ if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && row.state === 1) {
+ this.bsm2 = true
+ this.bsm1Dia = true
+ if(this.bsm2Val2.length === 0){
+ this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2
+ this.computationalPairing(this.sampleList.length)
+ this.bsm2Val2 = this.HaveJson(this.bsm2Val3)
+ }
+ } else if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && row.state === 1) {
+ this.bsm2 = false
+ }
+ }else{
+ this.bsm1Dia = false
+ }
+ // if (row.ask.includes('RTS')&&row.state === 1) {
+ // this.bsmRow3 = null;
+ // row.rts = ''
+ // this.bsm3Val = ''
+ // this.bsm3Dia = true
+ // this.bsmRow3 = row
+ // }else{
+ // this.bsm3Dia = false
+ // }
+ },
+ computationalPairing(n){
+ const nums = [];
+ for (let i = 1; i <= n; i++) {
+ nums.push(i);
+ }
+ this.bsm2Val3 = this.HaveJson(this.permute(nums))
+ },
+ setClassName({ column }) {
+ if (column.type == 'selection' && !this.isAllDisabled) {
+ return 'all-disabled'
+ }
+ },
+ setClassName0({ column }){
+ if (column.type == 'selection' && this.active!=1) {
+ return 'all-disabled'
+ }
+ },
+ clearFibers(){
+ this.packageInfo.ismiers = false
+ this.fibersList = []
+ this.bushing.forEach(a=>{
+ a.fibers = []
+ })
+ },
+ save(){
+ // if(this.bushing.length === 0){
+ // this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
+ // return
+ // }
+ // for(let a in this.bushing){
+ // if(this.bushing[a].fibers.length===0&&this.bushing[a].fiber.length===0){
+ // this.$message.error(this.bushing[a].color+'绠¤壊鏍囧绠$己灏戦厤缃棤娉曚繚瀛�')
+ // return
+ // }
+ // }
+ // this.sample.forEach(a=>{
+ // a.bushing = this.bushing
+ // })
+ // this.$message.success('宸蹭繚瀛�')
+ // this.$emit('saveFiberopticConfig')
+
+ if(this.bushing.length === 0){
+ this.$message.error('缂哄皯濂楃鏃犳硶淇濆瓨')
+ return
+ }
+ this.bushing.forEach(item=>{
+ // 濡傛灉鍏夌氦甯︽湁鍊�
+ if(this.fibersList.length != 0) {
+ this.fibersList.forEach(a=>{
+ a.fiber = this.fiberList.filter(b=>b.fibersIdent == a.ident)
+ })
+ item.fibers = this.fibersList // 鍏夌氦甯�
+ item.fiber = [] // 鍏夌氦
+ }else {
+ // 濡傛灉鍏夌氦甯︽病鏈夊��
+ item.fibers = [] // 鍏夌氦甯�
+ item.fiber = this.fiberList // 鍏夌氦
+ }
+ })
+ this.sample.forEach(a=>{
+ a.bushing = this.bushing
+ })
+ this.$message.success('宸蹭繚瀛�')
+ this.$emit("saveFiberopticConfig");
+ },
+ beforeClose(done){
+ if (this.bsm1) {
+ if (this.bsm1Val === null || this.bsm1Val === '') {
+ this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊')
+ return
+ }
+ }
+ if (this.bsm2) {
+ if (this.bsm2Val2.length === 0) {
+ this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊')
+ return
+ }
+ let set = new Set()
+ for (let i=0;i<this.bsm2Val2.length;i++){
+ let num0 = set.size
+ set.add(JSON.stringify(this.bsm2Val2[i]))
+ let num1 = set.size
+ if(num1==num0){
+ this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅')
+ return
+ }
+ set.add(JSON.stringify(this.bsm2Val2[i].reverse()))
+ let num2 = set.size
+ if(num1==num2){
+ this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅')
+ return
+ }
+ }
+ }
+ done()
+ },
+ beforeClose0(done){
+ if(!this.bsm3Val){
+ this.$message.error('RST蹇呴』濉啓')
+ return
+ }else{
+ if(Array.isArray(this.bsmRow3)){
+ this.bsmRow3.forEach(item=>{
+ item.rts = this.bsm3Val
+ })
+ }else{
+ this.bsmRow3.rts = this.bsm3Val
+ }
+ }
+ done()
+ },
+ upBsm1(val) {
+ let sections = JSON.parse(this.bsmRow.section);
+ let asks = JSON.parse(this.bsmRow.ask);
+ let tells = JSON.parse(this.bsmRow.tell);
+ let manHours = JSON.parse(this.bsmRow.manHour);
+ let prices = JSON.parse(this.bsmRow.price);
+ for (var a in sections) {
+ if (val === sections[a]) {
+ this.productList.forEach(p => {
+ if (p.id === this.bsmRow.id) {
+ p.section = sections[a]
+ p.ask = asks[a]
+ p.tell = tells[a]
+ p.manHour = manHours[a]
+ p.price = prices[a]
+ }
+ })
+ break
+ }
+ }
+ },
+ bsm2Up(val){
+ let list = []
+ for(let a=1;a < this.bsm2Val3.length + 1;a++){
+ list.push(a)
+ }
+ let set = new Set()
+ let size1 = set.length
+ while(set.size < val){
+ set.add(Math.ceil(Math.random() * this.bsm2Val3.length))
+ }
+ this.bsm2Val2 = []
+ for(let a of set){
+ this.bsm2Val2.push(this.HaveJson(this.bsm2Val3[a-1]))
+ }
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .ins_order_config {
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ }
+
+ .ins_order_config::-webkit-scrollbar {
+ width: 0;
+ }
+
+ .title {
+ height: 60px;
+ line-height: 60px;
+ }
+
+ .center {
+ width: 100%;
+ height: calc(100% - 60px);
+ }
+
+ .grid-content {
+ background: #fff;
+ border-radius: 4px;
+ box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.05);
+ }
+
+ .grid-content h5 {
+ color: #3A7BFA;
+ font-weight: 400;
+ line-height: 32px;
+ padding-left: 16px;
+ box-sizing: border-box;
+ border-bottom: 1px solid #eee;
+ }
+
+ .search-item {
+ display: flex;
+ align-items: center;
+ line-height: 36px;
+ }
+
+ .search-item label {
+ width: 90px;
+ font-size: 12px;
+ color: #606266;
+ /* text-align: right; */
+ }
+
+ .btns {
+ margin: 8px 0 8px 10px;
+ }
+
+ >>>.el-table th.el-table__cell>.cell {
+ padding-top: 2px !important;
+ padding-bottom: 2px !important;
+ }
+ >>>.all-disabled .el-checkbox__input .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #dcdfe6;
+ cursor: not-allowed;
+ }
+ .models{
+ font-size:14px;
+ width:320px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+</style>
diff --git a/src/views/business/inspectionOrder/fiberoptic-config.vue b/src/views/business/inspectionOrder/fiberoptic-config.vue
new file mode 100644
index 0000000..eeeb0dc
--- /dev/null
+++ b/src/views/business/inspectionOrder/fiberoptic-config.vue
@@ -0,0 +1,3438 @@
+<template>
+ <div class="ins_order_config">
+ <div>
+ <el-row class="title">
+ <el-col :span="6" style="padding-left: 20px; text-align: left"
+ >鍏夌氦閰嶇疆</el-col
+ >
+ <el-col :span="18" style="text-align: right">
+ <el-button
+ size="medium"
+ type="primary"
+ @click="save"
+ :loading="saveLoad"
+ v-if="active == 1"
+ >淇� 瀛�</el-button
+ >
+ <el-button size="medium" @click="outConfig">
+ <span style="color: #3a7bfa">杩� 鍥�</span>
+ </el-button>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="center">
+ <el-row :gutter="10" style="margin-bottom: 10px">
+ <el-col :span="9">
+ <div class="grid-content">
+ <h5>濂楃</h5>
+ <div
+ style="
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 12px;
+ box-sizing: border-box;
+ "
+ >
+ <div class="search-item">
+ <label style="width: 70px">鏍峰搧鍨嬪彿</label>
+ <span class="models" :title="models">{{ models }}</span>
+ </div>
+ <el-radio-group
+ v-model="packageInfo.radio"
+ size="small"
+ @change="isInspection()"
+ :disabled="active != 1"
+ >
+ <el-radio :label="0">鍏ㄦ</el-radio>
+ <el-radio :label="1">鎶芥</el-radio>
+ </el-radio-group>
+ </div>
+ <div
+ style="
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 8px;
+ padding: 0 12px;
+ box-sizing: border-box;
+ "
+ >
+ <div class="search-item" style="margin-right: 10px">
+ <label>濂楃鏁扮洰</label>
+ <el-input
+ v-model="packageInfo.num1"
+ placeholder="璇疯緭鍏�"
+ size="small"
+ @blur="addBushing"
+ :disabled="active != 1"
+ ></el-input>
+ </div>
+ <div class="search-item" style="margin-right: 10px">
+ <label style="width: 100px">姣忔牴绠℃娊妫�鏍囧噯閲�</label>
+ <el-input
+ v-model="packageInfo.standNum"
+ placeholder="璇疯緭鍏�"
+ size="small"
+ @blur="addStandNum"
+ :disabled="packageInfo.radio === 0 || active != 1"
+ style="width: 100px"
+ ></el-input>
+ </div>
+ <div class="search-item">
+ <label style="width: 100px">姣忔牴绠℃娊妫�妫�娴嬮噺</label>
+ <el-input
+ v-model="packageInfo.testNum"
+ placeholder="璇疯緭鍏�"
+ size="small"
+ @blur="addTestNum"
+ :disabled="packageInfo.radio === 0 || active != 1"
+ style="width: 70px"
+ ></el-input>
+ </div>
+ </div>
+ <el-table
+ ref="table0"
+ :data="bushing"
+ tooltip-effect="dark"
+ style="width: 100%"
+ height="203px"
+ size="small"
+ @selection-change="handleSelectionChange1"
+ :header-cell-class-name="setClassName0"
+ >
+ <el-table-column
+ type="selection"
+ width="45"
+ :selectable="() => active == 1"
+ >
+ </el-table-column>
+ <el-table-column label="绠¤壊鏍�" show-overflow-tooltip>
+ <template slot-scope="scope">
+ <el-select
+ v-model="scope.row.color"
+ size="mini"
+ :disabled="active != 1"
+ allow-create
+ filterable
+ >
+ <el-option
+ v-for="(color, i) in colors"
+ :key="i"
+ :label="color.lable"
+ :value="color.value"
+ ></el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="standNum"
+ label="鏍囬噺"
+ show-overflow-tooltip
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="testNum"
+ label="娴嬭瘯閲�"
+ show-overflow-tooltip
+ align="center"
+ >
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-col>
+ <el-col :span="15">
+ <div class="grid-content">
+ <h5>妫�娴嬮」淇℃伅</h5>
+ <el-table
+ ref="productTable"
+ :data="detectionItems"
+ tooltip-effect="dark"
+ style="width: 100%"
+ :row-class-name="tableRowClassName"
+ :header-cell-class-name="setClassName"
+ height="283px"
+ size="small"
+ @selection-change="handleSelectionChange2"
+ @select-all="handleAll"
+ @select="upProductSelect"
+ >
+ <el-table-column
+ type="selection"
+ width="55"
+ :selectable="
+ () =>
+ (currentDetectionItems ||
+ this.selectFiberList.length > 0 ||
+ this.multiFiberList.length > 0) &&
+ active == 1
+ "
+ >
+ </el-table-column>
+ <el-table-column
+ label="瀹為獙瀹�"
+ show-overflow-tooltip
+ min-width="100"
+ prop="sonLaboratory"
+ ></el-table-column>
+ <el-table-column
+ prop="inspectionItem"
+ label="妫�楠岄」"
+ min-width="100"
+ show-overflow-tooltip
+ >
+ </el-table-column>
+ <el-table-column
+ prop="inspectionItemSubclass"
+ min-width="100"
+ label="妫�楠岄」瀛愰」"
+ show-overflow-tooltip
+ width="100px"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="methodS"
+ label="璇曢獙鏂规硶"
+ min-width="90"
+ show-overflow-tooltip
+ >
+ </el-table-column>
+ <el-table-column
+ prop="price"
+ label="鍗曚环"
+ width="70"
+ show-overflow-tooltip
+ >
+ </el-table-column>
+ <el-table-column
+ prop="unit"
+ label="鍗曚綅"
+ width="70"
+ show-overflow-tooltip
+ >
+ </el-table-column>
+ <!-- <el-table-column prop="manDay" label="棰勮鏃堕棿" width="90" show-overflow-tooltip>
+ </el-table-column> -->
+ <el-table-column
+ prop="ask"
+ label="妫�娴嬭姹�"
+ show-overflow-tooltip
+ width="200px"
+ >
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.ask"
+ placeholder="璇疯緭鍏�"
+ size="small"
+ :disabled="active != 1"
+ v-if="!isAskOnlyRead"
+ @change="changeASk(scope.row, 'ask')"
+ ></el-input>
+ <span v-else>{{ scope.row.ask }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="tell"
+ label="瑕佹眰鎻忚堪"
+ show-overflow-tooltip
+ width="150"
+ >
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.tell"
+ placeholder="璇疯緭鍏�"
+ size="small"
+ :disabled="active != 1"
+ v-if="!isAskOnlyRead"
+ @change="changeASk(scope.row)"
+ ></el-input>
+ <span v-else>{{ scope.row.tell }}</span>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row :gutter="10">
+ <el-col :span="12" v-if="packageInfo.ismiers">
+ <div class="grid-content">
+ <h5>
+ 鍏夌氦甯�
+ <el-button
+ size="mini"
+ type="primary"
+ class="btns"
+ @click="addFibers"
+ v-if="active == 1"
+ >鐢熸垚鍏夌氦甯�</el-button
+ >
+ <!-- <el-button size="mini" class="btns" @click="clearFibers" :disabled="selectBushing.length === 0" v-if="active==1">娓呴櫎</el-button> -->
+ </h5>
+ <div
+ style="
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin: 4px 0 6px 0;
+ padding: 0 12px;
+ box-sizing: border-box;
+ "
+ >
+ <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
+ <label style="width: 80px;">绾ゅ甫绫诲瀷</label>
+ <el-select v-model="miresModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="selectBushing.length===0||active!=1"
+ >
+ <el-option v-for="(item,a) in miresModels" :key="a" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div> -->
+ <!-- <div class="search-item" style="width: 50%;">
+ <label style="width: 80px;">鍙傝�冩爣鍑�</label>
+ <el-select v-model="miresStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="miresModel===null||active!=1" @focus="selectsStandardMethodByFLSSM2()"
+ @change="(value)=>methodChange2(value)">
+ <el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </div> -->
+ <div class="search-item" style="width: 30%; margin-right: 16px">
+ <label style="width: 80px">绾ゅ甫绫诲瀷</label>
+ <el-select
+ v-model="miresModel"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="(item, a) in miresModels"
+ :key="a"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ <div class="search-item" style="width: 30%">
+ <label style="width: 80px">鍙傝�冩爣鍑�</label>
+ <el-select
+ v-model="miresStandard"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%"
+ :disabled="miresModel === null || active != 1"
+ @focus="selectsStandardMethodByFLSSM2()"
+ @change="(value) => methodChange2(value)"
+ >
+ <el-option
+ v-for="item in miresStandards"
+ :key="item.id"
+ :label="item.code"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ <div class="search-item" style="width: 30%; margin-right: 16px">
+ <label>鍏夌氦妫�娴嬮噺</label>
+ <el-input
+ :disabled="miresModel === null || active != 1"
+ v-model="miresNum"
+ placeholder="璇疯緭鍏�"
+ size="small"
+ style="width: 100%"
+ @change="miresNumChange"
+ ></el-input>
+ </div>
+ </div>
+ <!-- <el-table ref="table2" :data="fibersList" tooltip-effect="dark" style="width: 100%" height="270px"
+ size="small" @selection-change="handleSelectionChange" highlight-current-row @row-click="(row, column, event)=>rowClickFiber(row, column, event,1)"
+ :header-cell-class-name="setClassName0"> -->
+ <el-table
+ ref="table2"
+ :data="fibersList"
+ tooltip-effect="dark"
+ style="width: 100%"
+ height="270px"
+ size="small"
+ @selection-change="handleSelectionChange"
+ highlight-current-row
+ :header-cell-class-name="setClassName0"
+ >
+ <el-table-column
+ type="selection"
+ width="55"
+ :selectable="() => active == 1"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="color"
+ label="绠″鑹叉爣"
+ width="90"
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="code"
+ label="鍏夌氦甯︾紪鍙�"
+ show-overflow-tooltip
+ align="center"
+ >
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.code"
+ placeholder="璇疯緭鍏�"
+ size="mini"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="model"
+ label="鍏夌氦甯﹁鏍�"
+ show-overflow-tooltip
+ align="center"
+ >
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.model"
+ placeholder="璇疯緭鍏�"
+ size="mini"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="standard"
+ label="鍙傝�冩爣鍑�"
+ show-overflow-tooltip
+ align="center"
+ >
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.standard"
+ placeholder="璇疯緭鍏�"
+ size="mini"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="num"
+ label="鍏夌氦妫�娴嬮噺"
+ show-overflow-tooltip
+ align="center"
+ >
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.num"
+ placeholder="璇疯緭鍏�"
+ size="mini"
+ ></el-input>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-col>
+ <el-col :span="!packageInfo.ismiers ? 24 : 12">
+ <div class="grid-content">
+ <h5>
+ 鍏夌氦
+ <el-button
+ size="mini"
+ type="primary"
+ class="btns"
+ @click="addFiber"
+ v-if="active == 1"
+ >鍏夌氦閰嶈壊</el-button
+ >
+ </h5>
+ <div
+ style="
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin: 4px 0 6px 0;
+ padding: 0 12px;
+ box-sizing: border-box;
+ "
+ >
+ <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
+ <label style="width: 80px;">鍏夌氦绫诲瀷</label>
+ <el-select v-model="mireModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="selectBushing.length===0||active!=1">
+ <el-option v-for="(item,a) in mireModels" :key="a" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ <div class="search-item" style="width: 50%;">
+ <label style="width: 80px;">鍙傝�冩爣鍑�</label>
+ <el-select v-model="mireStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
+ :disabled="mireModel===null||active!=1" @focus="selectsStandardMethodByFLSSM()"
+ @change="(value)=>methodChange(value)" :loading="mireStandardLoading">
+ <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </div> -->
+ <div class="search-item" style="width: 50%; margin-right: 16px">
+ <label style="width: 80px">鍏夌氦绫诲瀷</label>
+ <el-select
+ v-model="mireModel"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="(item, a) in mireModels"
+ :key="a"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ <div class="search-item" style="width: 50%">
+ <label style="width: 80px">鍙傝�冩爣鍑�</label>
+ <el-select
+ v-model="mireStandard"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%"
+ :disabled="mireModel === null || active != 1"
+ @focus="selectsStandardMethodByFLSSM()"
+ @change="(value) => methodChange(value)"
+ :loading="mireStandardLoading"
+ >
+ <el-option
+ v-for="item in mireStandards"
+ :key="item.id"
+ :label="item.code"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ <!-- <el-table ref="table3" :data="fiberList" tooltip-effect="dark" style="width: 100%" height="270px"
+ size="small" highlight-current-row @selection-change="handleSelectionChange4"
+ @row-click="(row, column, event)=>rowClickFiber(row, column, event,0)"
+ :header-cell-class-name="setClassName0"> -->
+ <el-table
+ ref="table3"
+ :data="fiberList"
+ tooltip-effect="dark"
+ style="width: 100%"
+ height="270px"
+ size="small"
+ highlight-current-row
+ @selection-change="handleSelectionChange4"
+ :header-cell-class-name="setClassName0"
+ >
+ <el-table-column
+ type="selection"
+ width="55"
+ :selectable="() => active == 1"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="bushColor"
+ label="绠″鑹叉爣"
+ width="90"
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column prop="color" label="鍏夌氦鑹叉爣" width="120">
+ <template slot-scope="scope">
+ <el-select
+ v-model="scope.row.color"
+ size="mini"
+ :disabled="active != 1"
+ allow-create
+ filterable
+ >
+ <el-option
+ v-for="(color, i) in colors"
+ :key="i"
+ :label="color.lable"
+ :value="color.value"
+ ></el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="model"
+ label="鍏夌氦瑙勬牸"
+ show-overflow-tooltip
+ align="center"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="standard"
+ label="鍙傝�冩爣鍑�"
+ show-overflow-tooltip
+ align="center"
+ >
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ <el-dialog
+ title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"
+ :visible.sync="bsm1Dia"
+ width="60%"
+ :show-close="false"
+ :close-on-press-escape="false"
+ :close-on-click-modal="false"
+ :before-close="beforeClose"
+ v-loading.fullscreen.lock="bsm1DiaLoading"
+ >
+ <div v-if="bsm1" class="body" style="max-height: 60vh; overflow: scroll">
+ <el-row>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">
+ <span class="required-span">* </span>鎶ゅ瀵嗗害锛�
+ </div>
+ <div class="search_input">
+ <el-radio-group v-model="bsm1Val" @input="upBsm1">
+ <el-radio
+ v-for="(a, ai) in JSON.parse(bsmRow.section)"
+ :key="ai"
+ :label="a"
+ ></el-radio>
+ </el-radio-group>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">瑕佹眰鍊硷細</div>
+ <div
+ class="search_input"
+ v-show="bsm1Val !== null && bsm1Val !== ''"
+ >
+ <el-radio-group v-model="bsm1Val" @input="upBsm1">
+ <el-radio
+ v-for="(a, ai) in JSON.parse(bsmRow.section)"
+ :key="ai"
+ :label="a"
+ >{{ JSON.parse(bsmRow.ask)[ai] }}</el-radio
+ >
+ </el-radio-group>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">鍗曚环锛�</div>
+ <div
+ class="search_input"
+ v-show="bsm1Val !== null && bsm1Val !== ''"
+ >
+ <el-radio-group v-model="bsm1Val" @input="upBsm1">
+ <el-radio
+ v-for="(a, ai) in JSON.parse(bsmRow.section)"
+ :key="ai"
+ :label="a"
+ >{{ JSON.parse(bsmRow.price)[ai] }}</el-radio
+ >
+ </el-radio-group>
+ </div>
+ </el-col>
+ </el-row>
+ <!-- <el-row v-if="bsm3">
+ <el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
+ <div class="search_label"><span class="required-span">* </span>RTS锛�</div>
+ <div class="search_input">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="bsm3Val"></el-input>
+ </div>
+ </el-col>
+ </el-row> -->
+ </div>
+ <div v-if="bsm2">
+ <el-row>
+ <el-col class="search_thing" :span="24">
+ <div class="search_label" style="width: 180px">
+ <span class="required-span">* </span>鏍峰搧鐔旀帴閰嶅鏁伴噺锛�
+ </div>
+ <div class="search_input">
+ <!-- <el-input-number
+ size="medium"
+ v-model="bsm2Val"
+ :min="1"
+ :max="bsm2Val3.length"
+ :precision="0"
+ style="width: 70%"
+ :controls="false"
+ @change="bsm2Up"
+ ></el-input-number>
+ <span>MAX锛歿{ bsm2Val3.length }}</span> -->
+ <el-input-number
+ size="medium"
+ v-model="bsm2Val"
+ :min="1"
+ :max="bsm2Val3Length"
+ :precision="0"
+ style="width: 55%"
+ :controls="false"
+ @change="bsm2Up"
+ ></el-input-number>
+ <span>MAX锛歿{ bsm2Val3Length }}</span>
+ <el-switch
+ v-model="selfConnectBoolean"
+ @change="selfConnect"
+ active-color="#13ce66"
+ style="margin-left: 20px"
+ active-text="鏄惁鑷帴"
+ ></el-switch>
+ </div>
+ </el-col>
+ </el-row>
+ <div
+ class="body"
+ style="overflow-y: scroll; min-height: 400px; height: 400px"
+ >
+ <el-row>
+ <el-col :span="11">
+ <span>鏍峰搧A:</span>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <span>鏍峰搧B:</span>
+ </el-col>
+ </el-row>
+ <el-row v-for="(a, ai) in bsm2Val2" :key="ai" style="margin: 10px 0">
+ <el-col :span="11">
+ <el-select
+ v-model="a[0]"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="(item, index) in fiberList"
+ :key="index"
+ :label="
+ sampleList[0].sampleCode +
+ '-' +
+ item.bushColor +
+ '-' +
+ item.color
+ "
+ :value="index + 1"
+ >
+ </el-option>
+ </el-select>
+ </el-col>
+ <el-col
+ :span="2"
+ class="pairing"
+ style="text-align: center; border: 0; color: rgba(0, 0, 0, 0.2)"
+ >鈥斺��</el-col
+ >
+ <el-col :span="11">
+ <el-select
+ v-model="a[1]"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="(item, index) in fiberList"
+ :key="index"
+ :label="
+ sampleList[1].sampleCode +
+ '-' +
+ item.bushColor +
+ '-' +
+ item.color
+ "
+ :value="index + 1"
+ >
+ </el-option>
+ </el-select>
+ </el-col>
+ </el-row>
+ </div>
+ <!-- <el-row>
+ <el-col style="margin-top: 6px">
+ <el-col v-for="(a, ai) in bsm2Val2" :key="ai">
+ <el-col :span="10" class="pairing">{{a[0]}}</el-col>
+ <el-col :span="10" class="pairing">{{a[1]}}</el-col>
+ </el-col>
+ </el-col>
+ </el-row> -->
+ </div>
+ <span slot="footer" class="dialog-footer" v-if="bsm2">
+ <el-row>
+ <el-button type="primary" @click="save1" :loading="saveLoad"
+ >纭� 瀹�</el-button
+ >
+ </el-row>
+ </span>
+ </el-dialog>
+ <el-dialog
+ title="RTS濉啓"
+ :visible.sync="bsm3Dia"
+ width="500px"
+ :show-close="false"
+ :before-close="beforeClose0"
+ >
+ <el-row>
+ <el-col
+ class="search_thing"
+ :span="22"
+ style="display: flex; align-items: center"
+ >
+ <div class="search_label">
+ <span class="required-span">* </span>RTS锛�
+ </div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="bsm3Val"
+ ></el-input>
+ </div>
+ </el-col>
+ </el-row>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+export default {
+ props: {
+ active: {
+ type: Number,
+ default: () => 0,
+ },
+ inspectionItemST: {
+ type: Number,
+ default: () => 0,
+ },
+ //淇濆瓨鐨勫厜绾ょ啍鎺ラ厤瀵规暟缁�
+ fiberPairing: {
+ type: Array,
+ default: () => {
+ return [];
+ },
+ },
+ },
+ data() {
+ return {
+ bsm2Val2Copy: [],
+ selfConnectBoolean: false,
+ loadingText: "鍔犺浇涓�",
+ bsm1DiaLoading: false,
+ bsm2Val3Length: null,
+ fiberLoss: [],
+ isBsm2Val2: false,
+ sampleList: [],
+ miresNum: null,
+ errOrFiberList: [],
+ errOrFiberRibbonList: [],
+ detectionType: null,
+ detectionSelect: [],
+ selectFiberList: [],
+ type: 1,
+ saveLoad: false,
+ packageInfo: {
+ radio: 1,
+ num1: null,
+ standNum: null,
+ testNum: null,
+ ismiers: false,
+ },
+ tableData: [],
+ tape: {
+ value: "",
+ },
+ options: [],
+ sample: [],
+ models: "",
+ colors: [],
+ wires: [],
+ bushing: [],
+ mireModels: [],
+ mireModel: null,
+ mireStandard: [],
+ mireStandards: null,
+ miresModels: [],
+ miresModel: null,
+ miresStandard: [],
+ miresStandards: null,
+ selectBushing: [],
+ productList: [],
+ productList2: [],
+ fiberList: [],
+ fibersList: [],
+ selectFibers: [],
+ detectionItems: [],
+ currentDetectionItems: null,
+ mireStandardLoading: false,
+ multiFiberList: [],
+ isAskOnlyRead: true,
+ bsm1Dia: false,
+ bsmRow: null,
+ bsm1: false,
+ bsm1Val: null,
+ bsm2: false,
+ bsm2Val: null,
+ bsm2Dia: false,
+ bsm2Val2: [],
+ bsm2Val3: [],
+ sampleIds: [],
+ bsm3Val: null,
+ bsmRow3: null,
+ bsm3Dia: false,
+ isLoading: false,
+ };
+ },
+ computed: {
+ isAllDisabled() {
+ return (
+ this.multiFiberList.length > 0 ||
+ this.currentDetectionItems ||
+ this.active != 1
+ );
+ },
+ },
+ watch: {
+ bsm1Dia(newVal) {
+ if (!newVal) {
+ this.isLoading = false;
+ }
+ },
+ // mireModel(val1,val0) {
+ // if(val1!=val0){
+ // this.mireStandards = []
+ // this.fiberList = []
+ // this.multiFiberList = []
+ // this.detectionItems = []
+ // this.currentDetectionItems = null;
+ // }
+ // },
+ // mireStandard(val1,val0) {
+ // if(val1!=val0){
+ // this.fiberList = []
+ // this.multiFiberList = []
+ // this.detectionItems = []
+ // this.currentDetectionItems = null;
+ // }
+ // }
+ },
+ mounted() {
+ this.$parent.sampleIds.forEach((a) => {
+ for (var i = 0; i < this.$parent.sampleList.length; i++) {
+ if (this.$parent.sampleList[i].id == a) {
+ this.sample.push(this.$parent.sampleList[i]);
+ this.models += "," + this.$parent.sampleList[i].model;
+ break;
+ }
+ }
+ });
+ this.sampleList = this.$parent.sampleList;
+ console.log("this.sample", this.sample);
+ this.models = this.models.replace(",", "");
+ this.packageInfo.ismiers = this.models
+ .split(",")
+ .every(
+ (e) =>
+ (e.indexOf("d") > -1 || e.indexOf("D") > -1) && !e.includes("ADSS")
+ );
+ if (
+ this.sample[0].bushing === undefined ||
+ this.sample[0].bushing === null
+ ) {
+ this.bushing = [];
+ } else {
+ this.bsm2Val2 = this.fiberPairing;
+ this.bushing = this.HaveJson(this.sample[0].bushing);
+ this.packageInfo.num1 = this.sample[0].bushing.length;
+ this.packageInfo.standNum = this.sample[0].bushing[0].standNum;
+ this.packageInfo.testNum = this.sample[0].bushing[0].testNum;
+ this.bushing.forEach((a) => {
+ if (a.fibers == null || a.fibers.length == 0) a.fibers = [];
+ if (a.fiber == null || a.fiber.length == 0) a.fiber = [];
+ // 鍒ゆ柇鏄惁鍚湁鍏夌氦甯�
+ if (this.packageInfo.ismiers) {
+ // this.fibersList = [] // 鏂板
+ // this.fiberList = [] // 鏂板
+ if (a.fibers.length > 0) {
+ a.fibers.forEach((b) => {
+ // 鍏夌氦甯�
+ this.fibersList.push(b);
+ // 鍏夌氦
+ // this.fiberList = []
+ // this.fiberList = b.fiber
+ });
+ } else {
+ a.fiber.forEach((b) => {
+ this.fiberList.push(b);
+ });
+ }
+ } else {
+ //this.fiberList = []
+ a.fiber.forEach((b) => {
+ this.fiberList.push(b);
+ });
+ }
+ });
+ }
+ this.getTypeDicts1();
+ this.getStandTreeBySampleType();
+ this.getStandTreeBySampleType2();
+ this.selectsStandardMethodByFLSSM2();
+ },
+ methods: {
+ // 鑷帴
+ selfConnect() {
+ if (this.selfConnectBoolean) {
+ // this.bsm2Val2 闇�瑕佺殑鏈�缁堢粨鏋� this.fiberList 涓嬫媺妗嗗唴瀹�
+ // 杩囨护鍑哄绠″拰鑹叉爣涓�鑷寸殑鏁版嵁 浠ュ強鐩稿簲鐨勪笅鏍�
+ let newFiberList = [];
+ let resultList = [];
+ for (let i = 0; i < this.fiberList.length; i++) {
+ let data = this.fiberList[i];
+ if (data.bushColor == data.color) {
+ newFiberList.push([data.bushColor, i + 1]);
+ }
+ }
+ // 鏍规嵁瀛楀吀杩涜涓�涓帓搴�
+ for (let i = 0; i < this.colors.length; i++) {
+ let color = this.colors[i];
+ for (let j = 0; j < newFiberList.length; j++) {
+ let newColor = newFiberList[j];
+ if (color.value == newColor[0]) {
+ newFiberList[j].push(color.orderNum);
+ }
+ }
+ }
+ newFiberList.sort((o1, o2) => o1[2] - o2[2]);
+ // 鏍规嵁瑙勫垯杩涜璧嬪�� 1-2 3-4 5-6 7-8 9-10
+ for (let i = 0; i < newFiberList.length; i++) {
+ // 閬垮厤澶氭寰幆
+ if (newFiberList.length < 2 * i + 1) {
+ break;
+ }
+ if (
+ newFiberList.length == 2 * i + 1 &&
+ newFiberList.length % 2 != 0
+ ) {
+ resultList.push([]);
+ } else {
+ resultList.push([
+ newFiberList[2 * i][1],
+ newFiberList[2 * i + 1][1],
+ ]);
+ }
+ }
+ this.bsm2Val2 = resultList;
+ console.log("bsm2", this.bsm2Val2);
+ // MAX 璧嬪��
+ this.bsm2Val3Length = resultList.length;
+ this.bsm2Val = resultList.length;
+ } else {
+ this.computationalPairing(this.selectFiberList.length);
+ }
+ },
+ // 缁熶竴淇敼鍏夌氦妫�娴嬮噺
+ miresNumChange() {
+ const regex = /\d+/;
+ const match = this.miresModel.match(regex);
+ let num = 0;
+ if (match) {
+ num = Number(match[0]);
+ }
+ if (num < this.miresNum) {
+ this.$message.error("鍏夌氦妫�娴嬮噺涓嶈兘澶т簬鍏夌氦瑙勬牸");
+ return;
+ }
+ if (this.miresNum < 0) {
+ this.$message.error("鍏夌氦妫�娴嬮噺涓嶈兘灏忎簬0");
+ return;
+ }
+ this.fibersList.forEach((item) => {
+ this.multiFiberList.forEach((a) => {
+ if (a.ident == item.ident) {
+ item.num = this.miresNum;
+ }
+ });
+ });
+ },
+ handleSelectionChange(val) {
+ // this.selectFibers = val
+ this.multiFiberList = val;
+ if (val.length > 0) {
+ this.rowClickFiber(val[val.length - 1], null, null, 1);
+ }
+ },
+ handleSelectionChange1(val) {
+ this.selectBushing = val;
+ },
+ handleSelectionChange2(val) {
+ this.detectionSelect = val;
+ // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦甯�
+ if (this.detectionItems.type == 1) {
+ this.multiFiberList.forEach((item) => {
+ this.fibersList.forEach((a) => {
+ if (a.ident == item.ident) {
+ a.productList = [];
+ this.fibersList.find((a) => a.ident == item.ident).productList =
+ this.detectionSelect;
+ }
+ });
+ });
+ }
+ if (this.detectionItems.type == 0) {
+ // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦
+ this.selectFiberList.forEach((item) => {
+ this.fiberList.forEach((a) => {
+ if (a.ident == item.ident) {
+ a.productList = [];
+ this.fiberList.find((a) => a.ident == item.ident).productList =
+ this.detectionSelect;
+ }
+ });
+ });
+ // 閫夋嫨鐨勬椂鍊欏氨灏唂iberList鐨勫�艰祴鍊肩粰瀵瑰簲鐨刦iberList
+ setTimeout(() => {
+ if (this.multiFiberList.length > 0) {
+ this.multiFiberList.forEach((item) => {
+ this.fibersList.forEach((a) => {
+ if (a.ident == item.ident) {
+ a.fiber = this.fiberList;
+ }
+ });
+ });
+ }
+ }, 100);
+ }
+ },
+ handleSelectionChange4(val) {
+ this.selectFiberList = val;
+ console.log(val);
+ if (val != 0) {
+ this.rowClickFiber(val[val.length - 1], null, null, 0);
+ }
+ },
+ changeASk(row, type) {
+ if (type == "ask") {
+ // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿
+ if (row.tell.indexOf("卤") != -1) {
+ let left = row.tell.substring(0, row.tell.indexOf("卤"));
+ let right = row.tell.substring(row.tell.indexOf("卤") + 1);
+ // 濡傛灉鍙互杞寲涓烘暟鍊�
+ if (!isNaN(Number(left)) && !isNaN(Number(right))) {
+ if (row.ask.indexOf("-") != -1) {
+ let left1 = row.ask.substring(0, row.ask.indexOf("-"));
+ let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
+ if (
+ Number(left1) != Number(left) - Number(right) ||
+ Number(right1) != Number(left) + Number(right)
+ ) {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪");
+ // row.ask =
+ // Number(left) -
+ // Number(right) +
+ // "-" +
+ // (Number(left) + Number(right));
+ }
+ } else {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑙勮寖");
+ // row.ask = left + "-" + right;
+ return;
+ }
+ }
+ // 濡傛灉瑕佹眰鎻忚堪宸﹁竟涓嶈兘杞寲涓烘暟鍊�
+ else if (isNaN(Number(left)) && !isNaN(Number(right))) {
+ const regex = /[~-]/;
+ const match = left.match(regex);
+ // 宸﹁竟鍚湁 - ~ 绗﹀彿
+ if (match) {
+ let newLeft = "";
+ if (left.includes("锛�")) {
+ newLeft = left.replace("锛�", "(");
+ }
+ if (left.includes("锛�")) {
+ newLeft = newLeft.replace("锛�", ")");
+ }
+ const regexTwo = /\((\d+(\.\d+)?)([~-])(\d+(\.\d+)?)\)/;
+ const matchTwo = newLeft.match(regexTwo);
+ let leftTwo = Number(matchTwo[1]) - Number(right);
+ let rightTwo = Number(matchTwo[4]) + Number(right);
+ console.log(matchTwo);
+ console.log(leftTwo, rightTwo);
+
+ console.log(row.ask.indexOf("-"));
+ if (row.ask.indexOf("-") != -1) {
+ let left1 = row.ask.substring(0, row.ask.indexOf("-"));
+ let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
+ if (Number(left1) != leftTwo || Number(right1) != rightTwo) {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪");
+ // row.ask = leftTwo + "-" + rightTwo;
+ }
+ } else {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑙勮寖");
+ // row.ask = leftTwo + "-" + rightTwo;
+ return;
+ }
+ }
+ }
+ }
+ // 濡傛灉瑕佹眰鎻忚堪鍚湁鈮� < 鈮� > 绗﹀彿
+ const regex = /[鈮�<鈮�>]/;
+ const match = row.tell.match(regex);
+ if (match) {
+ // 绗﹀彿涓嶄竴鑷�
+ if (row.ask.indexOf(match[0]) != 0) {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪");
+ return;
+ } else {
+ // 绗﹀彿涓�鑷�
+ // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿 骞朵笖鍚湁&鍙� 鈮�0.69&鈮�0.76 瑕佹眰鎻忚堪
+ if (row.tell.indexOf("&") != -1) {
+ if (row.ask.indexOf("&") == -1) {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪");
+ // row.ask = row.tell;
+ return;
+ } else {
+ let left = row.tell.substring(0, row.tell.indexOf("&"));
+ let right = row.tell.substring(row.tell.indexOf("&") + 1);
+
+ let leftAsk = row.ask.substring(0, row.ask.indexOf("&"));
+ let rightAsk = row.ask.substring(row.ask.indexOf("&") + 1);
+ if (leftAsk != left || rightAsk != right) {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪");
+ }
+ }
+ } else {
+ // 娌℃湁&鍙�
+ const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, "g");
+ const matchTow = row.tell.match(regex);
+ let right = Number(matchTow[0].split(match[0])[1]);
+ let left = row.ask.substring(row.ask.indexOf(match[0]) + 1);
+ if (Number(left) != Number(right)) {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪");
+ // row.ask = match[0] + right;
+ }
+ }
+ }
+ }
+
+ // 濡傛灉瑕佹眰鎻忚堪鍚湁鑼冨洿
+ const regexTwo = /[~-]/;
+ const matchTwo = row.tell.match(regexTwo);
+ const matchAsk = row.ask.match(regexTwo);
+ if (matchTwo) {
+ let left = row.tell.substring(0, row.tell.indexOf(matchTwo[0]));
+ let right = row.tell.substring(row.tell.indexOf(matchTwo[0]) + 1);
+
+ if (!isNaN(Number(left)) && !isNaN(Number(right))) {
+ let leftAsk = row.ask.substring(0, row.ask.indexOf(matchAsk[0]));
+ let rightAsk = row.ask.substring(row.ask.indexOf(matchAsk[0]) + 1);
+ if (
+ Number(leftAsk) != Number(left) ||
+ Number(rightAsk) != Number(right)
+ ) {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪");
+ // row.ask = left + "-" + right;
+ }
+ }
+ }
+ }
+
+ // 鍏堝嬀閫夌殑鎯呭喌涓�
+ this.detectionSelect.forEach((item) => {
+ if (item.id == row.id) {
+ item.ask = row.ask;
+ item.tell = row.tell;
+ // 鍏夌氦 0 鍏夌氦甯� 1
+ if (item.isFibers == 0) {
+ this.selectFiberList.forEach((a) => {
+ this.fiberList.forEach((b) => {
+ if (b.ident == a.ident) {
+ b.productList.forEach((item) => {
+ if (item.id == row.id) {
+ item.ask = row.ask;
+ item.tell = row.tell;
+ }
+ });
+ }
+ });
+ });
+ }
+ if (item.isFibers == 1) {
+ this.multiFiberList.forEach((a) => {
+ this.fibersList.forEach((b) => {
+ if (b.ident == a.ident) {
+ b.productList.forEach((item) => {
+ if (item.id == row.id) {
+ item.ask = row.ask;
+ item.tell = row.tell;
+ }
+ });
+ }
+ });
+ });
+ }
+ }
+ });
+ },
+ outConfig() {
+ this.$parent.configShow = false;
+ },
+ getTypeDicts1() {
+ this.$axios
+ .post(this.$api.enums.selectEnumByCategory, {
+ category: "鑹叉爣",
+ })
+ .then((res) => {
+ this.colors = res.data;
+ });
+ },
+ // 濂楃鏁扮洰鐢熸垚琛ㄦ牸鏁版嵁
+ addBushing() {
+ this.bushing = [];
+ for (let i = 0; i < this.packageInfo.num1; i++) {
+ let bushing = {
+ ident: this.bushing.length + 1,
+ color: this.colors[i].label,
+ standNum: null,
+ testNum: null,
+ fibers: [],
+ fiber: [],
+ };
+ this.bushing.push(bushing);
+ }
+ },
+ // 濂楃鏍囧噯閲忚祴鍊�
+ addStandNum() {
+ if (this.packageInfo.testNum > this.packageInfo.standNum) {
+ this.$message.error("妫�娴嬮噺涓嶈兘澶т簬鏍囧噯閲�");
+ this.packageInfo.testNum = this.packageInfo.standNum;
+ }
+
+ if (this.selectBushing.length > 0) {
+ this.bushing.forEach((item) => {
+ this.selectBushing.forEach((a) => {
+ if (item.ident == a.ident) {
+ item.standNum = this.packageInfo.standNum;
+ }
+ });
+ });
+ }
+ },
+ // 濂楃妫�娴嬮噺璧嬪��
+ addTestNum() {
+ if (
+ parseInt(this.packageInfo.testNum) > parseInt(this.packageInfo.standNum)
+ ) {
+ this.packageInfo.testNum = this.packageInfo.standNum;
+ this.$message.error("妫�娴嬮噺涓嶈兘澶т簬鏍囧噯閲�");
+ }
+ if (this.selectBushing.length > 0) {
+ this.bushing.forEach((item) => {
+ this.selectBushing.forEach((a) => {
+ if (item.ident == a.ident) {
+ item.testNum = this.packageInfo.testNum;
+ }
+ });
+ });
+ }
+ },
+ isInspection() {
+ this.fiberList = [];
+ this.fibersList = [];
+ this.detectionItems = [];
+ // 椤甸潰鏄惁鍚湁鍏夌氦甯�
+ if (this.packageInfo.ismiers) {
+ // 鍏ㄦ
+ if (this.packageInfo.radio == 0) {
+ if (
+ this.packageInfo.standNum == null ||
+ this.packageInfo.standNum == ""
+ ) {
+ this.$message.error("璇峰厛杈撳叆鏍囧噯閲�");
+ return;
+ }
+ // 鏍规嵁鏍囧噯閲忚祴鍊兼娴嬮噺
+ if (parseInt(this.packageInfo.standNum) > 0) {
+ this.packageInfo.testNum = this.packageInfo.standNum;
+ // 缁欏厜绾ゅ甫璧嬪��
+ this.bushing.forEach((item) => {
+ item.testNum = this.packageInfo.testNum;
+ item.standNum = this.packageInfo.standNum;
+ this.$refs.table0.toggleRowSelection(item, true);
+ });
+
+ this.addFibers();
+ this.multiFiberList = this.fibersList;
+ // 榛樿鍕鹃��
+ setTimeout(() => {
+ // this.selectBushing.forEach(item =>{
+ // let rowToSelect = this.bushing.find(a => a.ident == item.ident)
+ // this.$refs.table0.toggleRowSelection(rowToSelect, true)
+ // })
+
+ this.multiFiberList.forEach((item) => {
+ let rowToSelect = this.fibersList.find(
+ (a) => a.ident == item.ident
+ );
+ this.$refs.table2.toggleRowSelection(rowToSelect, true);
+ });
+ }, 200);
+ }
+ }
+ } else {
+ if (this.packageInfo.radio == 0) {
+ if (
+ this.packageInfo.standNum == null ||
+ this.packageInfo.standNum == ""
+ ) {
+ this.$message.error("璇峰厛杈撳叆鏍囧噯閲�");
+ return;
+ }
+ if (parseInt(this.packageInfo.standNum) > 0) {
+ this.packageInfo.testNum = this.packageInfo.standNum;
+ this.bushing.forEach((item) => {
+ item.testNum = this.packageInfo.testNum;
+ item.standNum = this.packageInfo.standNum;
+ this.$refs.table0.toggleRowSelection(item, true);
+ });
+ console.log(this.bushing);
+ this.selectBushing = this.bushing;
+ this.addFiber(1);
+ // 榛樿鍕鹃��
+ setTimeout(() => {
+ // this.selectBushing.forEach(item =>{
+ // let rowToSelect = this.bushing.find(a => a.ident == item.ident)
+ // this.$refs.table0.toggleRowSelection(rowToSelect, true)
+ // })
+ this.fiberList.forEach((item) => {
+ this.$refs.table3.toggleRowSelection(item, true);
+ });
+ }, 200);
+ }
+ }
+ }
+ },
+ upNum() {
+ this.fiberList = [];
+ this.fibersList = [];
+ this.detectionItems = [];
+ if (this.packageInfo.radio === 0) {
+ this.packageInfo.testNum = this.packageInfo.standNum;
+ }
+ if (
+ parseInt(this.packageInfo.standNum) < parseInt(this.packageInfo.testNum)
+ ) {
+ this.packageInfo.testNum = this.packageInfo.standNum;
+ }
+ if (
+ this.packageInfo.num1 !== null &&
+ this.packageInfo.num1 !== "" &&
+ this.packageInfo.standNum !== null &&
+ this.packageInfo.standNum !== "" &&
+ this.packageInfo.testNum != null &&
+ this.packageInfo.testNum !== ""
+ ) {
+ let colors2 = [];
+ if (this.packageInfo.num1 / this.colors.length > 1) {
+ let num = this.packageInfo.num1 / this.colors.length;
+ if (this.packageInfo.num1 % this.colors.length > 0) num += 1;
+ for (var i = 0; i < num; i++) {
+ colors2 = colors2.concat(this.colors);
+ }
+ } else {
+ colors2 = colors2.concat(this.colors);
+ }
+ this.bushing = [];
+ for (var i = 0; i < this.packageInfo.num1; i++) {
+ let bushing = {
+ color: colors2[i].label,
+ standNum: this.packageInfo.standNum,
+ testNum: this.packageInfo.testNum,
+ fibers: [],
+ fiber: [],
+ };
+ this.bushing.push(bushing);
+ }
+ // 缁欏厜绾ゅ甫璧嬪��
+ if (this.selectBushing.length === 0) {
+ this.selectBushing = this.bushing;
+ }
+ // this.miresModels 绾ゅ甫绫诲瀷
+ // this.miresStandards 鍙傝�冩爣鍑�
+ this.fibersList = [];
+ this.packageInfo.ismiers = true;
+ this.fiberList = [];
+ this.selectBushing.forEach((a) => {
+ a.fiber = [];
+ a.fibers = [];
+ for (let j = 0; j < parseInt(a.testNum); j++) {
+ let fibers = {
+ id: this.fibersList.length + 1,
+ code: null,
+ color: a.color,
+ model: null,
+ standard: null,
+ num: a.testNum,
+ productList: this.HaveJson(this.productList2),
+ fiber: [],
+ };
+ a.fibers.push(fibers);
+ this.fibersList.push(fibers);
+ }
+ });
+ } else {
+ this.bushing = [];
+ }
+ },
+ getStandTreeBySampleType() {
+ this.$axios
+ .post(this.$api.standardTree.getStandTreeBySampleType, {
+ laboratory: "閫氫俊浜у搧瀹為獙瀹�",
+ sampleType: "鍏夌氦",
+ })
+ .then((res) => {
+ this.mireModels = [];
+ res.data.forEach((a) => {
+ this.mireModels.push({
+ label: a.model,
+ value: a.sample + " - " + a.model,
+ });
+ });
+ });
+ },
+ getStandTreeBySampleType2() {
+ this.$axios
+ .post(this.$api.standardTree.getStandTreeBySampleType, {
+ laboratory: "閫氫俊浜у搧瀹為獙瀹�",
+ sampleType: "鍏夌氦甯�",
+ })
+ .then((res) => {
+ this.miresModels = [];
+ res.data.forEach((a) => {
+ this.miresModels.push({
+ label: a.model,
+ value: a.model,
+ });
+ });
+ });
+ },
+ selectsStandardMethodByFLSSM() {
+ this.mireStandards = [];
+ this.mireStandardLoading = true;
+ this.$axios
+ .post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+ tree: "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦 - " + this.mireModel,
+ })
+ .then((res) => {
+ this.mireStandardLoading = false;
+ this.mireStandards = res.data.standardMethodList;
+ });
+ },
+ selectsStandardMethodByFLSSM2() {
+ this.miresStandards = [];
+ this.$axios
+ .post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+ tree:
+ "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " + this.miresModel,
+ })
+ .then((res) => {
+ this.miresStandards = res.data.standardMethodList;
+ });
+ },
+ methodChange(val) {
+ // if (val === null || val === '') return
+ // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ // model: this.mireModel.split(' - ')[1],
+ // standardMethodListId: val,
+ // factory: ''
+ // }, {
+ // headers: {
+ // 'Content-Type': 'application/json'
+ // }
+ // }).then(res => {
+ // res.data.forEach(a => {
+ // a.state = 0
+ // })
+ // this.productList = res.data
+ // setTimeout(() => {
+ // this.productList.forEach(a => {
+ // if (a.state == 1) this.toggleSelection(a)
+ // })
+ // this.addFiber()
+ // }, 200)
+ // })
+
+ // 灏嗕笅鎷夋鍊艰祴鍊肩粰鍏夌氦 鐩戝惉鍘婚櫎
+ if (this.selectFiberList.length == 0) {
+ this.$message.error("璇烽�夋嫨鏁版嵁");
+ return;
+ }
+
+ if (val === null || val === "") return;
+ if (this.mireStandards == null) return;
+ this.$axios
+ .post(
+ this.$api.standardTree.selectStandardProductList,
+ {
+ model: this.mireModel.split(" - ")[1],
+ standardMethodListId: val,
+ factory: "",
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ }
+ )
+ .then((res) => {
+ this.detectionItems = [];
+ if (res.data != null && res.data.length != 0) {
+ res.data.forEach((a) => {
+ a.state = 0;
+ });
+ this.detectionItems = res.data;
+ this.detectionType = 0;
+ this.$set(this.detectionItems, "type", 0);
+ }
+ this.mireStandards.find((a) => a.id == val).code == "濮旀墭瑕佹眰"
+ ? (this.isAskOnlyRead = false)
+ : (this.isAskOnlyRead = true);
+ this.selectFiberList.forEach((item) => {
+ this.fiberList.forEach((a) => {
+ if (a.ident == item.ident) {
+ a.model = this.mireModel.split(" - ")[1]; // 鍏夌氦瑙勬牸
+ a.noSplitModel = this.mireModel; // 鍏夌氦瑙勬牸
+ if (this.mireStandards != null) {
+ a.standard = this.mireStandards.find(
+ (a) => a.id == this.mireStandard
+ ).code; // 鍙傝�冩爣鍑�
+ }
+ }
+ });
+ });
+ });
+ },
+ methodChange2(val) {
+ // if (val === null || val === '') return
+ // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+ // model: '',
+ // standardMethodListId: val,
+ // factory: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel + ' - ',
+ // }, {
+ // headers: {
+ // 'Content-Type': 'application/json'
+ // }
+ // }).then(res => {
+ // res.data.forEach(a => {
+ // a.state = 0
+ // })
+ // this.productList2 = res.data
+ // setTimeout(() => {
+ // this.productList2.forEach(a => {
+ // if (a.state == 1) this.toggleSelection(a)
+ // })
+ // this.addFibers()
+ // }, 200)
+ // })
+ if (this.multiFiberList.length == 0) {
+ this.$message.error("璇烽�夋嫨闇�瑕佹洿鏀圭殑鏁版嵁");
+ return;
+ }
+ if (val === null || val === "") return;
+ this.$axios
+ .post(
+ this.$api.standardTree.selectStandardProductList,
+ {
+ model: "",
+ standardMethodListId: val,
+ factory:
+ "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " +
+ this.miresModel +
+ " - ",
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ }
+ )
+ .then((res) => {
+ // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
+ this.detectionItems = [];
+ if (res.data != null && res.data.length != 0) {
+ res.data.forEach((a) => {
+ a.state = 0;
+ });
+ this.detectionItems = res.data;
+ this.detectionType = 1;
+ this.$set(this.detectionItems, "type", 1);
+ // 鍒ゆ柇鏄惁涓哄鎵樿姹�
+ this.miresStandards.find((a) => a.id == val).code == "濮旀墭瑕佹眰"
+ ? (this.isAskOnlyRead = false)
+ : (this.isAskOnlyRead = true);
+ }
+ // 缁欓�変腑鐨勫厜绾ゅ甫璧嬪��
+ // for(let i= 0; i < this.fibersList.length; i++){
+ // this.multiFiberList.forEach(item => {
+ // if(this.fibersList[i].ident == item.ident){
+ // this.fibersList[i].model = this.miresModel // 绾ゅ甫瑙勬牸
+ // this.fibersList[i].num = this.miresModel.replace('鑺�','') // 鍏夌氦妫�娴嬮噺
+ // this.fibersList[i].productList = this.detectionItems // 妫�娴嬮」
+ // this.miresStandards.forEach(a => {
+ // if(a.id == this.miresStandard) {
+ // this.fibersList[i].standard = a.code // 鍙傝�冩爣鍑�
+ // }
+ // })
+ // }
+ // })
+ // }
+ for (let i = 0; i < this.multiFiberList.length; i++) {
+ for (let j = 0; j < this.fibersList.length; j++) {
+ if (this.multiFiberList[i].ident == this.fibersList[j].ident) {
+ this.fibersList[j].model = this.miresModel; // 绾ゅ甫瑙勬牸
+ this.fibersList[j].num = this.miresModel.replace("鑺�", ""); // 鍏夌氦妫�娴嬮噺
+ this.miresStandards.forEach((a) => {
+ if (a.id == this.miresStandard) {
+ this.fibersList[j].standard = a.code; // 鍙傝�冩爣鍑�
+ }
+ });
+ }
+ }
+ }
+ });
+ },
+ addFiber(isInspection) {
+ //閲嶆柊鍏夌氦閰嶈壊锛屾竻绌虹啍鎺ラ厤瀵�
+ this.isBsm2Val2 = false;
+ this.bsm2Val2 = [];
+ // 鏈�鏂�
+ let colors2 = [];
+ if (this.packageInfo.num1 / this.colors.length > 1) {
+ let num = this.packageInfo.num1 / this.colors.length;
+ if (this.packageInfo.num1 % this.colors.length > 0) num += 1;
+ for (var i = 0; i < num; i++) {
+ colors2 = colors2.concat(this.colors);
+ }
+ } else {
+ colors2 = colors2.concat(this.colors);
+ }
+ // 鏍规嵁姣忔牴绠℃娊妫�鏍囧噯閲� 纭畾 棰滆壊寰幆
+ this.fiberList = [];
+ // 閫夋嫨浜嗗厜绾ゅ甫
+ if (this.packageInfo.ismiers) {
+ if (this.multiFiberList.length != 0) {
+ let count = 0;
+ console.log("this.multiFiberList", this.multiFiberList);
+ // 鏍规嵁姣忔牴绠℃娊妫�鏍囧噯閲� 纭畾 棰滆壊寰幆
+ let groupedByColor = this.multiFiberList.reduce((groups, value) => {
+ if (!groups[value.color]) {
+ groups[value.color] = Number(value.num);
+ } else {
+ groups[value.color] += Number(value.num);
+ }
+ return groups;
+ });
+ if (groupedByColor[groupedByColor.color]) {
+ groupedByColor[groupedByColor.color] =
+ groupedByColor[groupedByColor.color] + Number(groupedByColor.num);
+ } else {
+ this.$set(
+ groupedByColor,
+ groupedByColor.color,
+ Number(groupedByColor.num)
+ );
+ }
+ const regex = /\d+/;
+ const match = this.miresModel.match(regex);
+ console.log("groupedByColor", groupedByColor);
+ this.multiFiberList.forEach((item) => {
+ if (groupedByColor[item.color]) {
+ // 鎷垮埌褰撳墠鐨勫厜绾ゅ甫瑙勬牸 纭畾棰滆壊寰幆
+ let modelNumber = this.packageInfo.standNum;
+ if (match) {
+ modelNumber = Number(match[0]);
+ }
+ let colors3 = colors2.slice(0, modelNumber);
+ if (item.num == null || item.num == "") {
+ item.num = 0;
+ }
+ // 纭畾棰滆壊寰幆
+ for (var i = 0; i < parseInt(item.num); i++) {
+ let fiber = {
+ ident: this.fiberList.length + 1,
+ bushColor: item.color,
+ color: colors3[count].label,
+ model: null,
+ noSplitModel: null,
+ standard: null,
+ fibersIdent: item.ident,
+ productList: [],
+ };
+ this.fiberList.push(fiber);
+ count++;
+ count = count % modelNumber;
+ }
+ }
+ });
+ // this.multiFiberList.forEach((a, index) => {
+ // a.fiber = [];
+ // if (index > 0 && index < this.multiFiberList.length) {
+ // if (
+ // this.multiFiberList[index].color ==
+ // this.multiFiberList[index - 1].color
+ // ) {
+ // // 鏍规嵁姣忔牴绠℃娊妫�鏍囧噯閲� 纭畾 棰滆壊寰幆
+ // //let colors3 = colors2.slice(0,this.packageInfo.standNum)
+ // for (var i = 0; i < parseInt(a.num); i++) {
+ // let fiber = {
+ // ident: this.fiberList.length + 1,
+ // bushColor: a.color,
+ // // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+ // color: colors2[count].label,
+ // model: null,
+ // noSplitModel: null,
+ // standard: null,
+ // fibersIdent: a.ident,
+ // productList: [],
+ // };
+ // this.fiberList.push(fiber);
+ // count++;
+ // }
+ // } else {
+ // // 鏍规嵁姣忔牴绠℃娊妫�鏍囧噯閲� 纭畾 棰滆壊寰幆
+ // let colors3 = colors2.slice(0, this.packageInfo.standNum);
+ // for (var i = 0; i < parseInt(a.num); i++) {
+ // let fiber = {
+ // ident: this.fiberList.length + 1,
+ // bushColor: a.color,
+ // // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+ // color: colors3[i].label,
+ // model: null,
+ // noSplitModel: null,
+ // standard: null,
+ // fibersIdent: a.ident,
+ // productList: [],
+ // };
+ // this.fiberList.push(fiber);
+ // }
+ // }
+ // } else {
+ // for (var i = 0; i < parseInt(a.num); i++) {
+ // let fiber = {
+ // ident: this.fiberList.length + 1,
+ // bushColor: a.color,
+ // // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+ // color: colors2[i].label,
+ // model: null,
+ // noSplitModel: null,
+ // standard: null,
+ // fibersIdent: a.ident,
+ // productList: [],
+ // };
+ // this.fiberList.push(fiber);
+ // }
+ // }
+ // });
+ } else {
+ let count = 0;
+ let colors3 = colors2.slice(0, this.packageInfo.standNum);
+ this.selectBushing.forEach((item, index) => {
+ if (item.testNum != null && item.testNum != "") {
+ item.standNum = Number(item.standNum);
+ for (let i = 0; i < parseInt(item.testNum); i++) {
+ let fiber = {
+ ident: this.fiberList.length + 1,
+ bushColor: item.color,
+ color: colors3[count].label,
+ model: null,
+ standard: null,
+ productList: [],
+ };
+ this.fiberList.push(fiber);
+ count++;
+ count = count % this.packageInfo.standNum;
+ }
+ }
+ });
+ }
+ } else {
+ this.fiberList = [];
+ let flag = true;
+ // 鎸夌収椤哄簭鐢熸垚鍏夌氦鑹叉爣
+ let colors2 = [];
+ if (this.packageInfo.num1 / this.colors.length > 1) {
+ let num = this.packageInfo.num1 / this.colors.length;
+ if (this.packageInfo.num1 % this.colors.length > 0) num += 1;
+ for (var i = 0; i < num; i++) {
+ colors2 = colors2.concat(this.colors);
+ }
+ } else {
+ colors2 = colors2.concat(this.colors);
+ }
+ let colors3 = colors2.slice(0, this.packageInfo.standNum);
+ let count = 0;
+ // 鏍规嵁濂楃鐨勬祴璇曢噺鐢熸垚瀵瑰簲鐨勬暟閲忕殑鍏夌氦鏁版嵁
+ this.selectBushing.forEach((item, index) => {
+ if (item.testNum != null && item.testNum != "") {
+ item.standNum = Number(item.standNum);
+ for (let i = 0; i < parseInt(item.testNum); i++) {
+ let fiber = {
+ ident: this.fiberList.length + 1,
+ bushColor: item.color,
+ color: colors3[count].label,
+ model: null,
+ standard: null,
+ productList: [],
+ };
+ this.fiberList.push(fiber);
+ count++;
+ count = count % item.standNum;
+ }
+ // else {
+ // for (let i = 0; i < parseInt(item.testNum); i++) {
+ // let fiber = {
+ // ident: this.fiberList.length + 1,
+ // bushColor: item.color,
+ // color:
+ // colors2[
+ // i + parseInt(item.testNum) * index > colors2.length
+ // ? 0
+ // : i + parseInt(item.testNum) * index * index
+ // ].label,
+ // model: null,
+ // standard: null,
+ // productList: [],
+ // };
+ // this.fiberList.push(fiber);
+ // }
+ // }
+ } else {
+ flag = false;
+ }
+ });
+
+ if (!flag) {
+ this.$message.error("璇峰~鍐欏厜绾ゆ娴嬮噺");
+ return;
+ }
+ }
+ // 浜屼唬
+ // // 鏄惁閫夋嫨濂楃
+ // if(this.selectBushing.length == 0) {
+ // this.$message.error('鏈�夋嫨濂楃')
+ // return
+ // }
+ // this.fiberList = []
+ // let flag = true
+ // // 鎸夌収椤哄簭鐢熸垚鍏夌氦鑹叉爣
+ // let colors2 = []
+ // if (this.packageInfo.num1 / this.colors.length > 1) {
+ // let num = this.packageInfo.num1 / this.colors.length
+ // if (this.packageInfo.num1 % this.colors.length > 0) num += 1
+ // for (var i = 0; i < num; i++) {
+ // colors2 = colors2.concat(this.colors)
+ // }
+ // } else {
+ // colors2 = colors2.concat(this.colors)
+ // }
+ // // 鏍规嵁濂楃鐨勬祴璇曢噺鐢熸垚瀵瑰簲鐨勬暟閲忕殑鍏夌氦鏁版嵁
+ // this.selectBushing.forEach((item,index) =>{
+ // if(item.testNum != null && item.testNum != ''){
+ // for(let i =0; i < parseInt(item.testNum); i++){
+ // let fiber = {
+ // ident: this.fiberList.length + 1,
+ // bushColor: item.color,
+ // color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
+ // model: null,
+ // standard: null,
+ // productList: []
+ // }
+ // this.fiberList.push(fiber)
+ // }
+ // }else {
+ // flag = false
+ // }
+ // })
+ // if(!flag){
+ // this.$message.error('璇峰~鍐欏厜绾ゆ娴嬮噺')
+ // return
+ // }
+
+ // 鏈�鍒�
+ // let colors2 = []
+ // if (this.packageInfo.num1 / this.colors.length > 1) {
+ // let num = this.packageInfo.num1 / this.colors.length
+ // if (this.packageInfo.num1 % this.colors.length > 0) num += 1
+ // for (var i = 0; i < num; i++) {
+ // colors2 = colors2.concat(this.colors)
+ // }
+ // } else {
+ // colors2 = colors2.concat(this.colors)
+ // }
+ // this.fiberList = []
+ // let model = this.mireModel.split(' - ')[1]
+ // let standard = this.mireStandards.find(a => a.id == this.mireStandard).code
+ // if (this.packageInfo.ismiers) {
+ // if(this.selectFibers.length === 0){
+ // this.$message.error('鏈�夋嫨鍏夌氦甯�')
+ // return
+ // }
+ // this.selectFibers.forEach((a,index) => {
+ // a.fiber = []
+ // for (var i = 0; i < parseInt(a.num); i++) {
+ // let fiber = {
+ // bushColor: a.color,
+ // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+ // model: model,
+ // standard: standard,
+ // productList: this.HaveJson(this.productList)
+ // }
+ // a.fiber.push(fiber)
+ // this.fiberList.push(fiber)
+ // }
+ // })
+ // } else {
+ // this.selectBushing.forEach((a,index) => {
+ // a.fiber = []
+ // for (var i = 0; i < parseInt(a.testNum); i++) {
+ // let fiber = {
+ // bushColor: a.color,
+ // color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
+ // model: model,
+ // standard: standard,
+ // productList: this.HaveJson(this.productList)
+ // }
+ // a.fiber.push(fiber)
+ // this.fiberList.push(fiber)
+ // }
+ // })
+ // }
+ },
+ addFibers() {
+ // if(this.selectBushing.length===0){
+ // this.$message.error('鏈�夋嫨濂楃')
+ // return
+ // }
+ // this.fibersList = []
+ // let standard = this.miresStandards.find(a => a.id == this.miresStandard).code
+ // this.packageInfo.ismiers = true
+ // this.fiberList = []
+ // this.selectBushing.forEach(a => {
+ // a.fiber = []
+ // a.fibers = []
+ // for (var i = 0; i < parseInt(a.testNum); i++) {
+ // let fibers = {
+ // code: null,
+ // color: a.color,
+ // model: this.miresModel,
+ // standard: standard,
+ // num: a.testNum,
+ // productList: this.HaveJson(this.productList2),
+ // fiber: []
+ // }
+ // a.fibers.push(fibers)
+ // this.fibersList.push(fibers)
+ // }
+ // })
+
+ if (this.selectBushing.length == 0) {
+ this.$message.error("鏈�夋嫨濂楃");
+ return;
+ }
+ let colors2 = [];
+ if (this.packageInfo.num1 / this.colors.length > 1) {
+ let num = this.packageInfo.num1 / this.colors.length;
+ if (this.packageInfo.num1 % this.colors.length > 0) num += 1;
+ for (var i = 0; i < num; i++) {
+ colors2 = colors2.concat(this.colors);
+ }
+ } else {
+ colors2 = colors2.concat(this.colors);
+ }
+ colors2 = colors2.splice(0, this.packageInfo.standNum);
+ // 濂楃鐨勬祴璇曢噺 * 閫夋嫨鐨勫厜绾ゅ甫鏁伴噺
+ this.fibersList = [];
+ this.selectBushing.forEach((item) => {
+ for (let i = 0; i < parseInt(this.packageInfo.testNum); i++) {
+ let fibers = {
+ ident: this.fibersList.length + 1,
+ color: item.color,
+ colorShow: item.color + "-" + colors2[i].label,
+ code: null,
+ model: null,
+ standard: null,
+ num: null,
+ fiber: [],
+ productList: [],
+ };
+ this.fibersList.push(fibers);
+ }
+ });
+ },
+ rowClickFiber(row, column, event, type) {
+ // console.log("row", row);
+ // this.type = type
+ // if(this.active===1){
+ // if(type==0){
+ // let standard = null;
+ // try{
+ // standard = this.miresStandards.find(a => a.id == this.miresStandards)
+ // }catch(e){}
+ // if(standard&&standard.code=='濮旀墭瑕佹眰'){
+ // this.isAskOnlyRead = false;
+ // }else{
+ // this.isAskOnlyRead = true;
+ // }
+ // }else{
+ // let standard = null;
+ // try{
+ // standard = this.mireStandards.find(a => a.id == this.mireStandard)
+ // }catch(e){}
+ // if(standard&&standard.code=='濮旀墭瑕佹眰'){
+ // this.isAskOnlyRead = false;
+ // }else{
+ // this.isAskOnlyRead = true;
+ // }
+ // }
+ // }
+ // if(this.type==1){
+ // if (this.active !== 1) {
+ // this.sampleIds = []
+ // this.sampleIds.push(row.id)
+ // }
+ // }
+ // this.currentDetectionItems = row
+ // this.detectionItems = row.productList
+ // if(this.detectionItems === null) return
+ // setTimeout(() => {
+ // this.detectionItems.forEach(a => {
+ // if (a.state == 1) this.toggleSelection(a)
+ // })
+ // }, 200)
+ if (type == 1) {
+ this.fiberList = row.fiber;
+ if (
+ (row.model == null || row.model == "") &&
+ (row.standard == null || row.standard == "")
+ ) {
+ this.detectionItems = [];
+ return;
+ }
+ if (row.model != null && row.model != "") {
+ this.miresModel = row.model;
+ this.selectsStandardMethodByFLSSM2();
+ }
+ setTimeout(() => {
+ if (row.standard != null && row.standard != "") {
+ this.miresStandard = this.miresStandards.find(
+ (a) => a.code == row.standard
+ ).id;
+ }
+ this.$axios
+ .post(
+ this.$api.standardTree.selectStandardProductList,
+ {
+ model: "",
+ standardMethodListId: this.miresStandard,
+ factory:
+ "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " +
+ this.miresModel +
+ " - ",
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ }
+ )
+ .then((res) => {
+ // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
+ this.detectionItems = [];
+ if (res.data != null && res.data.length != 0) {
+ res.data.forEach((a) => {
+ a.state = 0;
+ this.$set(a, "isFibers", 1);
+ });
+ // 鍒ゆ柇鏄惁涓哄鎵樿姹�
+ this.miresStandards.find((a) => a.id == this.miresStandard)
+ .code == "濮旀墭瑕佹眰"
+ ? (this.isAskOnlyRead = false)
+ : (this.isAskOnlyRead = true);
+ if (!this.isAskOnlyRead) {
+ row.productList.forEach((a) => {
+ res.data.forEach((b) => {
+ if (a.id == b.id) {
+ b.ask = a.ask;
+ b.tell = a.tell;
+ }
+ });
+ });
+ }
+ this.detectionItems = res.data;
+ this.detectionType = 1;
+ this.$set(this.detectionItems, "type", 1);
+
+ if (row.productList != null && row.productList.length > 0) {
+ let product = JSON.parse(JSON.stringify(row.productList));
+ setTimeout(() => {
+ product.forEach((p) => {
+ let rowToSelect = this.detectionItems.find(
+ (item) => item.id === p.id
+ );
+ if (rowToSelect) {
+ this.toggleSelection(rowToSelect);
+ }
+ });
+ }, 200);
+ }
+ }
+ });
+ }, 500);
+ } else if (type == 0) {
+ if (
+ (row.noSplitModel == null || row.noSplitModel == "") &&
+ (row.standard == null || row.standard == "")
+ ) {
+ this.detectionItems = [];
+ return;
+ }
+ if (row.model != null && row.model != "") {
+ this.mireModel = row.noSplitModel;
+ this.selectsStandardMethodByFLSSM();
+ }
+ setTimeout(() => {
+ if (row.standard != null && row.standard != "") {
+ this.mireStandard = this.mireStandards.find(
+ (a) => a.code == row.standard
+ ).id;
+ }
+ this.$axios
+ .post(
+ this.$api.standardTree.selectStandardProductList,
+ {
+ model: this.mireModel.split(" - ")[1],
+ standardMethodListId: this.mireStandard,
+ factory: "",
+ },
+ {
+ headers: {
+ "Content-Type": "application/json",
+ },
+ }
+ )
+ .then((res) => {
+ this.detectionItems = [];
+ if (res.data != null && res.data.length != 0) {
+ res.data.forEach((a) => {
+ a.state = 0;
+ this.$set(a, "isFibers", 0);
+ });
+ // 鍒ゆ柇鏄惁涓哄鎵樿姹�
+ this.mireStandards.find((a) => a.id == this.mireStandard)
+ .code == "濮旀墭瑕佹眰"
+ ? (this.isAskOnlyRead = false)
+ : (this.isAskOnlyRead = true);
+ if (!this.isAskOnlyRead) {
+ row.productList.forEach((a) => {
+ res.data.forEach((b) => {
+ if (a.id == b.id) {
+ b.ask = a.ask;
+ b.tell = a.tell;
+ }
+ });
+ });
+ }
+ this.detectionItems = res.data;
+ this.detectionType = 0;
+ this.$set(this.detectionItems, "type", 0);
+
+ if (row.productList != null && row.productList.length > 0) {
+ let product = JSON.parse(JSON.stringify(row.productList));
+ setTimeout(() => {
+ product.forEach((p) => {
+ let rowToSelect = this.detectionItems.find(
+ (item) => item.id === p.id
+ );
+ if (rowToSelect) {
+ this.toggleSelection(rowToSelect);
+ }
+ });
+ }, 200);
+ }
+ }
+ });
+ }, 500);
+ }
+ },
+ toggleSelection(row) {
+ this.$refs.productTable.toggleRowSelection(row, true);
+ this.upProductSelect(null, row);
+ },
+ tableRowClassName({ row, rowIndex }) {
+ if (row.state === 0) {
+ return "warning-row";
+ }
+ return "";
+ },
+ handleAll(e) {
+ if (e.length > 0) {
+ console.log(this.detectionItems);
+ this.detectionItems.map((m) => {
+ m.state = 1;
+ return m;
+ });
+ } else {
+ this.detectionItems.map((m) => {
+ m.state = 0;
+ return m;
+ });
+ }
+ if (e.length > 0) {
+ if (this.multiFiberList.length > 0) {
+ this.multiFiberList.map((item) => {
+ item.productList.map((m) => {
+ m.state = 1;
+ return m;
+ });
+ return item;
+ });
+ }
+ // else {
+ // this.currentDetectionItems.productList.map((m) => {
+ // m.state = 1;
+ // return m;
+ // });
+ // }
+ } else {
+ if (this.multiFiberList.length > 0) {
+ this.multiFiberList.map((item) => {
+ item.productList.map((m) => {
+ m.state = 0;
+ return m;
+ });
+ return item;
+ });
+ }
+ // else {
+ // this.currentDetectionItems.productList.map((m) => {
+ // m.state = 0;
+ // return m;
+ // });
+ // }
+ }
+ this.bsmRow3 = [];
+ this.detectionItems.forEach((p) => {
+ if (this.type == 1) {
+ if (
+ p.bsm === "1" &&
+ p.section !== "" &&
+ p.section !== null &&
+ p.state === 1
+ ) {
+ if (p.section.indexOf("[") > -1) {
+ this.bsmRow = this.HaveJson(p);
+ }
+ this.bsm1 = true;
+ this.bsm1Dia = true;
+ } else if (
+ p.bsm === "1" &&
+ p.section !== "" &&
+ p.section !== null &&
+ p.state === 0
+ ) {
+ this.bsm1 = false;
+ }
+ if (
+ p.bsm === "1" &&
+ p.inspectionItem === "鍏夌氦鎺ュご鎹熻��" &&
+ this.sampleList.length > 1 &&
+ p.state === 1 &&
+ !this.isBsm2Val2
+ ) {
+ if (this.checkSampleCodeHasNull()) {
+ this.$message.error("鐔旀帴閰嶅鐨勬牱鍝佺紪鍙蜂笉鑳戒负绌�");
+ return;
+ }
+ this.bsm2 = true;
+ this.bsm1Dia = true;
+ if (this.bsm2Val2.length === 0) {
+ this.bsm2Val =
+ ((this.selectFiberList.length + 1) *
+ this.selectFiberList.length) /
+ 2;
+ this.computationalPairing(this.selectFiberList.length);
+ this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
+ }
+ } else if (
+ p.bsm === "1" &&
+ p.inspectionItem === "鍏夌氦鎺ュご鎹熻��" &&
+ p.state === 1
+ ) {
+ this.bsm2 = false;
+ }
+ }
+ // if (p.ask.includes('RTS')&&p.state === 1) {
+ // p.rts = ''
+ // this.bsm3Val = ''
+ // this.bsm3Dia = true
+ // this.bsmRow3.push(p)
+ // }
+ });
+
+ if (e.length > 0) {
+ this.sampleList.map((item) => {
+ if (this.sampleIds.indexOf(item.id) > -1) {
+ item.insProduct.map((m) => {
+ m.state = 1;
+ return m;
+ });
+ }
+ return item;
+ });
+ } else {
+ this.sampleList.map((item) => {
+ if (this.sampleIds.indexOf(item.id) > -1) {
+ item.insProduct.map((m) => {
+ m.state = 0;
+ return m;
+ });
+ }
+ return item;
+ });
+ }
+ this.$nextTick(() => {
+ this.$refs.productTable.doLayout();
+ });
+ },
+ save1() {
+ if (this.bsm2) {
+ if (this.bsm2Val2.length === 0) {
+ this.$message.error("鐗规畩椤圭洰蹇呴』澶勭悊");
+ return;
+ }
+ const tempList = this.HaveJson(this.bsm2Val2);
+ let set = new Set();
+ for (let i = 0; i < tempList.length; i++) {
+ let num0 = set.size;
+ set.add(JSON.stringify(tempList[i]));
+ let num1 = set.size;
+ if (num1 == num0) {
+ console.log(set);
+ console.log(tempList);
+ this.$message.error("鍏宠仈椤圭洰涓嶈兘閲嶅");
+ return;
+ }
+ // set.add(JSON.stringify(tempList[i].reverse()))
+ // let num2 = set.size
+ // if (num1 == num2) {
+ // console.log(111,set);
+ // console.log(111,tempList);
+ // this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅')
+ // return
+ // }
+ }
+ //杞崲鐔旀帴閰嶅鐨勭紪鍙�
+ // let transformList = []
+ // for(let i=0;i<this.bsm2Val2.length;i++){
+ // let colorIndex1 = Number(this.bsm2Val2[i][0]-1)
+ // let colorIndex2 = Number(this.bsm2Val2[i][1]-1)
+ // let code1 = this.sampleList[0].sampleCode + '-' + this.fiberList[colorIndex1].bushColor + '-' + this.fiberList[colorIndex1].color
+ // let code2 = this.sampleList[1].sampleCode + '-' + this.fiberList[colorIndex2].bushColor + '-' + this.fiberList[colorIndex2].color
+ // transformList.push([code1,code2])
+ // }
+ this.isBsm2Val2 = true;
+ // console.log(this.bsm2Val2);
+ // console.log(transformList);
+ // this.$parent.fiberPairing = JSON.stringify(this.bsm2Val2)
+ }
+ this.bsm1Dia = false;
+ this.isBsm2Val2 = false;
+ this.fiberLoss = [];
+ },
+ upProductSelect(selection, row) {
+ let list = this.detectionSelect.filter(
+ (item) => item.inspectionItem == "鍏夌氦鎺ュご鎹熻��"
+ );
+ if (list.length > 0) {
+ this.fiberLoss = list.map(
+ (item) => item.inspectionItem + "" + item.inspectionItemSubclass
+ );
+ }
+ if (row.inspectionItem == "鍏夌氦鎺ュご鎹熻��") {
+ this.fiberLoss.push(
+ row.inspectionItem + "" + row.inspectionItemSubclass
+ );
+ }
+ let arr = [...new Set(this.fiberLoss)];
+ console.log("list", list);
+ console.log("this.fiberLoss", this.fiberLoss);
+ console.log("arr", arr);
+ row.state = row.state == 1 ? 0 : 1;
+ if (this.selectFiberList.length > 0) {
+ this.selectFiberList.map((item) => {
+ item.productList.map((m) => {
+ if (m.id == row.id) {
+ m.state = row.state;
+ }
+ return m;
+ });
+ return item;
+ });
+ } else {
+ this.currentDetectionItems.productList.map((m) => {
+ if (m.id == row.id) {
+ m.state = row.state;
+ }
+ return m;
+ });
+ }
+ if (this.type == 1) {
+ if (
+ row.bsm === "1" &&
+ row.section !== "" &&
+ row.section !== null &&
+ row.state === 1
+ ) {
+ if (row.section.indexOf("[") > -1) {
+ this.bsmRow = this.HaveJson(row);
+ }
+ this.bsm1 = true;
+ this.bsm1Dia = true;
+ } else if (
+ row.bsm === "1" &&
+ row.section !== "" &&
+ row.section !== null &&
+ row.state === 0
+ ) {
+ this.bsm1 = false;
+ }
+ if (
+ row.bsm === "1" &&
+ row.inspectionItem === "鍏夌氦鎺ュご鎹熻��" &&
+ row.state === 1 &&
+ !this.isBsm2Val2
+ ) {
+ if (this.sampleList.length < 2) {
+ this.$message.error("鏍峰搧鏁伴噺涓嶈冻澶熻繘琛岄厤瀵规搷浣�");
+ return;
+ } else {
+ if (this.checkSampleCodeHasNull()) {
+ this.$message.error("鐔旀帴閰嶅鐨勬牱鍝佺紪鍙蜂笉鑳戒负绌�");
+ return;
+ }
+ // this.bsm2 = true;
+ // this.bsm1Dia = true;
+ arr.length == 3 ? (this.bsm2 = true) : (this.bsm2 = false);
+ console.log("arr", arr);
+ if (this.bsm2) {
+ this.computationalPairing(this.selectFiberList.length);
+ // 榛樿灞曠ず涓�瀵逛竴
+ // this.bsm2Up(this.selectFiberList.length);
+ // if (this.bsm2Val2.length === 0) {
+ // this.bsm2Val = this.selectFiberList.length;
+ // this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
+ // console.log(222, this.bsm2Val2);
+ // } else {
+ // this.bsm2Val = this.selectFiberList.length;
+ // }
+ // if (this.bsm2Val2.length === 0) {
+ // this.bsm2Val =
+ // ((this.fiberList.length + 1) * this.fiberList.length) / 2;
+ // this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
+ // console.log(222, this.bsm2Val2);
+ // } else {
+ // this.bsm2Val = this.fiberPairing.length;
+ // }
+ }
+ }
+ } else if (
+ row.bsm === "1" &&
+ row.inspectionItem === "鍏夌氦鎺ュご鎹熻��" &&
+ row.state === 1
+ ) {
+ this.bsm2 = false;
+ }
+ } else {
+ this.bsm1Dia = false;
+ }
+ // if (row.ask.includes('RTS')&&row.state === 1) {
+ // this.bsmRow3 = null;
+ // row.rts = ''
+ // this.bsm3Val = ''
+ // this.bsm3Dia = true
+ // this.bsmRow3 = row
+ // }else{
+ // this.bsm3Dia = false
+ // }
+ },
+ checkSampleCodeHasNull() {
+ const emptyCodeArr = this.sampleList.filter(
+ (ele) => ele.sampleCode == null
+ );
+ return emptyCodeArr.length > 0;
+ },
+ computationalPairing(n, isValue = false) {
+ this.bsm1Dia = true;
+ this.isLoading = true;
+ this.$axios
+ .get(this.$api.insOrder.permute + "?num=" + n + "&isValue=" + isValue)
+ .then((res) => {
+ this.bsm2Val3Length = this.HaveJson(res.data.resultData);
+ if (this.bsm2Val2.length === 0) {
+ this.bsm2Val = this.selectFiberList.length;
+ this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
+ console.log(222, this.bsm2Val2);
+ } else {
+ this.bsm2Val = this.selectFiberList.length;
+ }
+ this.bsm2Up(this.selectFiberList.length);
+ this.isLoading = false;
+ });
+ // const nums = [];
+ // for (let i = 1; i <= n; i++) {
+ // nums.push(i);
+ // }
+ // this.bsm2Val3 = this.HaveJson(this.permute(nums));
+ },
+ permute(nums) {
+ const result = [];
+ function backtrack(temp, nums) {
+ if (temp.length === 2) {
+ result.push([...temp]);
+ return;
+ }
+ for (let i = 0; i < nums.length; i++) {
+ // if (temp.includes(nums[i])) continue;
+ // 閬垮厤閲嶅鏁板瓧
+ if (temp.length > 0 && nums[i] < temp[temp.length - 1]) continue; // 瑙勫畾椤哄簭锛岄伩鍏嶉噸澶嶇粍鍚�
+ temp.push(nums[i]);
+ backtrack(temp, nums);
+ temp.pop();
+ }
+ }
+ backtrack([], nums);
+ return result;
+ },
+ setClassName({ column }) {
+ if (column.type == "selection" && !this.isAllDisabled) {
+ return "all-disabled";
+ }
+ },
+ setClassName0({ column }) {
+ if (column.type == "selection" && this.active != 1) {
+ return "all-disabled";
+ }
+ },
+ clearFibers() {
+ this.packageInfo.ismiers = false;
+ this.fibersList = [];
+ this.bushing.forEach((a) => {
+ a.fibers = [];
+ });
+ },
+ save() {
+ // if(this.bushing.length === 0){
+ // this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
+ // return
+ // }
+ // for(let a in this.bushing){
+ // if(this.bushing[a].fibers.length===0&&this.bushing[a].fiber.length===0){
+ // this.$message.error(this.bushing[a].color+'绠¤壊鏍囧绠$己灏戦厤缃棤娉曚繚瀛�')
+ // return
+ // }
+ // }
+ // this.sample.forEach(a=>{
+ // a.bushing = this.bushing
+ // })
+ // this.$message.success('宸蹭繚瀛�')
+ // this.$emit('saveFiberopticConfig')
+ // if(this.inspectionItemST == 1) {
+ // this.$message.success('宸蹭繚瀛�')
+ // this.sample.forEach(a=>{
+ // a.bushing = this.bushing
+ // })
+ // this.$emit('saveFiberopticConfig')
+ // return
+ // }
+
+ let flag = true;
+ let flags = true;
+
+ // 鍏夌氦妫�娴嬮」淇℃伅鏍¢獙
+ this.fiberList.forEach((item) => {
+ if (item.productList.length > 0) {
+ item.productList.forEach((row) => {
+ // 濡傛灉妫�娴嬭姹傛垨鑰呰姹傛弿杩颁负绌�
+ if (row.ask == null || row.ask == "") {
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ }
+ if (row.tell == null || row.tell == "") {
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ }
+ // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿
+ if (row.tell.indexOf("卤") != -1) {
+ let left = row.tell.substring(0, row.tell.indexOf("卤"));
+ let right = row.tell.substring(row.tell.indexOf("卤") + 1);
+ // 濡傛灉鍙互杞寲涓烘暟鍊�
+ if (!isNaN(Number(left)) && !isNaN(Number(right))) {
+ if (row.ask.indexOf("-") != -1) {
+ let left1 = row.ask.substring(0, row.ask.indexOf("-"));
+ let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
+ if (
+ Number(left1) != Number(left) - Number(right) ||
+ Number(right1) != Number(left) + Number(right)
+ ) {
+ //this.$message.error("11111");
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flag = false;
+ }
+ } else {
+ //this.$message.error("2222");
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flag = false;
+ }
+ }
+ // 濡傛灉瑕佹眰鎻忚堪宸﹁竟涓嶈兘杞寲涓烘暟鍊�
+ else if (isNaN(Number(left)) && !isNaN(Number(right))) {
+ const regex = /[~-]/;
+ const match = left.match(regex);
+ // 宸﹁竟鍚湁 - ~ 绗﹀彿
+ if (match) {
+ let newLeft = "";
+ if (left.includes("锛�")) {
+ newLeft = left.replace("锛�", "(");
+ }
+ if (left.includes("锛�")) {
+ newLeft = newLeft.replace("锛�", ")");
+ }
+ const regexTwo = /\((\d+(\.\d+)?)([~-])(\d+(\.\d+)?)\)/;
+ const matchTwo = newLeft.match(regexTwo);
+ let leftTwo = Number(matchTwo[1]) - Number(right);
+ let rightTwo = Number(
+ Number(matchTwo[4]) + Number(right)
+ ).toFixed(6);
+ if (row.ask.indexOf("-") != -1) {
+ let left1 = row.ask.substring(0, row.ask.indexOf("-"));
+ let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
+ if (
+ Number(left1) != leftTwo ||
+ Number(right1) != rightTwo
+ ) {
+ //this.$message.error("33333");
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flag = false;
+ }
+ } else {
+ //this.$message.error("44444");
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flag = false;
+ }
+ }
+ }
+ }
+ // 濡傛灉妫�娴嬭姹傚惈鏈夆墹 < 鈮� > 绗﹀彿
+ const regex = /[鈮�<鈮�>]/;
+ const match = row.tell.match(regex);
+ if (match) {
+ // 绗﹀彿涓嶄竴鑷�
+ if (row.ask.indexOf(match[0]) != 0) {
+ //this.$message.error("555555");
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flag = false;
+ } else {
+ // 绗﹀彿涓�鑷�
+
+ // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿 骞朵笖鍚湁&鍙� 鈮�0.69&鈮�0.76 瑕佹眰鎻忚堪
+ if (row.tell.indexOf("&") != -1) {
+ if (row.ask.indexOf("&") == -1) {
+ //this.$message.error("妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪");
+ // row.ask = row.tell;
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ } else {
+ let left = row.tell.substring(0, row.tell.indexOf("&"));
+ let right = row.tell.substring(row.tell.indexOf("&") + 1);
+
+ let leftAsk = row.ask.substring(0, row.ask.indexOf("&"));
+ let rightAsk = row.ask.substring(row.ask.indexOf("&") + 1);
+ console.log("&", left, right, leftAsk, rightAsk);
+ if (leftAsk != left || rightAsk != right) {
+ //this.$message.error("88888");
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flag = false;
+ }
+ }
+ } else {
+ const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, "g");
+ const matchTow = row.tell.match(regex);
+ let right = Number(matchTow[0].split(match[0])[1]);
+ let left = row.ask.substring(row.ask.indexOf(match[0]) + 1);
+ if (Number(left) != Number(right)) {
+ //this.$message.error("666666");
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flag = false;
+ }
+ }
+ }
+ }
+ // 濡傛灉瑕佹眰鎻忚堪鍚湁鑼冨洿
+ const regexTwo = /[~-]/;
+ const matchTwo = row.tell.match(regexTwo);
+ const matchAsk = row.ask.match(regexTwo);
+ if (matchTwo) {
+ let left = row.tell.substring(0, row.tell.indexOf(matchTwo[0]));
+ let right = row.tell.substring(row.tell.indexOf(matchTwo[0]) + 1);
+ if (!isNaN(Number(left)) && !isNaN(Number(right))) {
+ let leftAsk = row.ask.substring(
+ 0,
+ row.ask.indexOf(matchAsk[0])
+ );
+ let rightAsk = row.ask.substring(
+ row.ask.indexOf(matchAsk[0]) + 1
+ );
+ if (
+ Number(leftAsk) != Number(left) ||
+ Number(rightAsk) != Number(right)
+ ) {
+ //this.$message.error("777777");
+ this.errOrFiberList.push(
+ "鍏夌氦绠″鑹叉爣" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flag = false;
+ }
+ }
+ }
+ });
+ }
+ });
+
+ // 鍏夌氦甯︽娴嬮」淇℃伅鏍¢獙
+ this.fibersList.forEach((item) => {
+ if (item.productList.length > 0) {
+ item.productList.forEach((row) => {
+ if (row.ask == null || row.ask == "") {
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ }
+ if (row.tell == null || row.tell == "") {
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.color +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ }
+ // 濡傛灉妫�娴嬭姹傚惈鏈夋璐熷彿
+ if (row.tell.indexOf("卤") != -1) {
+ let left = row.tell.substring(0, row.tell.indexOf("卤"));
+ let right = row.tell.substring(row.tell.indexOf("卤") + 1);
+ // 濡傛灉鍙互杞寲涓烘暟鍊�
+ if (!isNaN(Number(left)) && !isNaN(Number(right))) {
+ if (row.ask.indexOf("-") != -1) {
+ let left1 = row.ask.substring(0, row.ask.indexOf("-"));
+ let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
+ if (
+ Number(left1) != Number(left) - Number(right) ||
+ Number(right1) != Number(left) + Number(right)
+ ) {
+ // this.$message.error('11111')
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.colorShow +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flags = false;
+ }
+ } else {
+ // this.$message.error('2222')
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.colorShow +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flags = false;
+ }
+ }
+ // 濡傛灉瑕佹眰鎻忚堪宸﹁竟涓嶈兘杞寲涓烘暟鍊�
+ else if (isNaN(Number(left)) && !isNaN(Number(right))) {
+ const regex = /[~-]/;
+ const match = left.match(regex);
+ // 宸﹁竟鍚湁 - ~ 绗﹀彿
+ if (match) {
+ let newLeft = "";
+ if (left.includes("锛�")) {
+ newLeft = left.replace("锛�", "(");
+ }
+ if (left.includes("锛�")) {
+ newLeft = newLeft.replace("锛�", ")");
+ }
+ const regexTwo = /\((\d+(\.\d+)?)([~-])(\d+(\.\d+)?)\)/;
+ const matchTwo = newLeft.match(regexTwo);
+ let leftTwo = Number(matchTwo[1]) - Number(right);
+ let rightTwo = Number(matchTwo[4]) + Number(right);
+ if (row.ask.indexOf("-") != -1) {
+ let left1 = row.ask.substring(0, row.ask.indexOf("-"));
+ let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
+ if (
+ Number(left1) != leftTwo ||
+ Number(right1) != rightTwo
+ ) {
+ // this.$message.error('33333')
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.colorShow +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flags = false;
+ }
+ } else {
+ // this.$message.error('44444')
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.colorShow +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flags = false;
+ }
+ }
+ }
+ }
+ // 濡傛灉妫�娴嬭姹傚惈鏈夆墹 < 鈮� > 绗﹀彿
+ const regex = /[鈮�<鈮�>]/;
+ const match = row.tell.match(regex);
+ if (match) {
+ // 绗﹀彿涓嶄竴鑷�
+ if (row.ask.indexOf(match[0]) != 0) {
+ // this.$message.error('555555')
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.colorShow +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flags = false;
+ } else {
+ // 绗﹀彿涓�鑷�
+ if (row.tell.indexOf("&") != -1) {
+ if (row.ask.indexOf("&") == -1) {
+ // this.$message.error("妫�娴嬭姹備笉绗﹀悎瑕佹眰鎻忚堪");
+ // row.ask = row.tell;
+ } else {
+ let left = row.tell.substring(0, row.tell.indexOf("&"));
+ let right = row.tell.substring(row.tell.indexOf("&") + 1);
+
+ let leftAsk = row.ask.substring(0, row.ask.indexOf("&"));
+ let rightAsk = row.ask.substring(row.ask.indexOf("&") + 1);
+ console.log("&", left, right, leftAsk, rightAsk);
+ if (leftAsk != left || rightAsk != right) {
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.colorShow +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flags = false;
+ }
+ }
+ } else {
+ const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, "g");
+ const matchTow = row.tell.match(regex);
+ let right = Number(matchTow[0].split(match[0])[1]);
+ let left = row.ask.substring(row.ask.indexOf(match[0]) + 1);
+ if (Number(left) != Number(right)) {
+ // this.$message.error('666666')
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.colorShow +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flags = false;
+ }
+ }
+ }
+ }
+ // 濡傛灉瑕佹眰鎻忚堪鍚湁鑼冨洿
+ const regexTwo = /[~-]/;
+ const matchTwo = row.tell.match(regexTwo);
+ const matchAsk = row.ask.match(regexTwo);
+ if (matchTwo) {
+ let left = row.tell.substring(0, row.tell.indexOf(matchTwo[0]));
+ let right = row.tell.substring(row.tell.indexOf(matchTwo[0]) + 1);
+ if (!isNaN(Number(left)) && !isNaN(Number(right))) {
+ let leftAsk = row.ask.substring(
+ 0,
+ row.ask.indexOf(matchAsk[0])
+ );
+ let rightAsk = row.ask.substring(
+ row.ask.indexOf(matchAsk[0]) + 1
+ );
+ if (
+ Number(leftAsk) != Number(left) ||
+ Number(rightAsk) != Number(right)
+ ) {
+ // this.$message.error('777777')
+ this.errOrFiberRibbonList.push(
+ "鍏夌氦甯�" +
+ item.colorShow +
+ " " +
+ row.inspectionItem +
+ " " +
+ row.inspectionItemSubclass
+ );
+ flags = false;
+ }
+ }
+ }
+ });
+ }
+ });
+ if (this.bushing.length === 0) {
+ this.$message.error("缂哄皯濂楃鏃犳硶淇濆瓨");
+ return;
+ }
+ this.bushing.forEach((item) => {
+ // 濡傛灉鍏夌氦甯︽湁鍊�
+ if (this.fibersList.length != 0) {
+ // this.fibersList.forEach(a=>{
+ // a.fiber = this.fiberList
+ // })
+
+ // item.fibers = this.fibersList // 鍏夌氦甯�
+ let fibersFilter = this.fibersList.filter(
+ (a) => item.color == a.color
+ );
+ fibersFilter.forEach((aa) => {
+ aa.fiber = aa.fiber.filter((b) => b.bushColor == aa.color);
+ });
+ item.fibers = fibersFilter;
+ item.fiber = []; // 鍏夌氦
+ } else {
+ // 濡傛灉鍏夌氦甯︽病鏈夊��
+ item.fibers = []; // 鍏夌氦甯�
+ item.fiber = this.fiberList.filter((a) => item.color == a.bushColor); // 鍏夌氦
+ //item.fiber = this.fiberList // 鍏夌氦
+ }
+ });
+ if (!flag || !flags) {
+ // 娑堟伅鎻愮ず
+ this.errOrFiberRibbonList = [...new Set(this.errOrFiberRibbonList)];
+ this.errOrFiberList = [...new Set(this.errOrFiberList)];
+ let list = [...this.errOrFiberRibbonList, ...this.errOrFiberList];
+
+ let newData = [];
+ const h = this.$createElement;
+ for (let i in list) {
+ const lastChar = list[i].slice(-1);
+ if (lastChar == "-") {
+ list[i] = list[i].slice(0, -1);
+ }
+ newData.push(
+ h(
+ "p",
+ { style: "font-size: 14px;color: red;" },
+ Number(i) + 1 + "銆�" + list[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.$message.success("宸蹭繚瀛�");
+ this.sample.forEach((a) => {
+ a.bushing = this.bushing;
+ });
+ this.$emit("saveFiberopticConfig", eventData);
+ console.log("this.sample", this.sample);
+ // 娓呯┖閿欒娑堟伅
+ this.errOrFiberList = [];
+ this.errOrFiberRibbonList = [];
+ })
+ .catch(() => {
+ // 娓呯┖閿欒娑堟伅
+ this.errOrFiberList = [];
+ this.errOrFiberRibbonList = [];
+ });
+ } else {
+ this.$message.success("宸蹭繚瀛�");
+ this.sample.forEach((a) => {
+ a.bushing = this.bushing;
+ });
+ let eventData = {
+ bushing: this.bushing,
+ fiberPairing: this.bsm2Val2,
+ };
+ this.$emit("saveFiberopticConfig", eventData);
+ console.log("this.sample", this.sample);
+ }
+ },
+ beforeClose(done) {
+ if (this.bsm1) {
+ if (this.bsm1Val === null || this.bsm1Val === "") {
+ this.$message.error("鐗规畩椤圭洰蹇呴』澶勭悊");
+ return;
+ }
+ }
+ if (this.bsm2) {
+ if (this.bsm2Val2.length === 0) {
+ this.$message.error("鐗规畩椤圭洰蹇呴』澶勭悊");
+ return;
+ }
+ let set = new Set();
+ for (let i = 0; i < this.bsm2Val2.length; i++) {
+ let num0 = set.size;
+ set.add(JSON.stringify(this.bsm2Val2[i]));
+ let num1 = set.size;
+ if (num1 == num0) {
+ this.$message.error("鍏宠仈椤圭洰涓嶈兘閲嶅");
+ return;
+ }
+ set.add(JSON.stringify(this.bsm2Val2[i].reverse()));
+ let num2 = set.size;
+ if (num1 == num2) {
+ this.$message.error("鍏宠仈椤圭洰涓嶈兘閲嶅");
+ return;
+ }
+ }
+ }
+ this.isBsm2Val2 = true;
+ done();
+ },
+ beforeClose0(done) {
+ if (!this.bsm3Val) {
+ this.$message.error("RST蹇呴』濉啓");
+ return;
+ } else {
+ if (Array.isArray(this.bsmRow3)) {
+ this.bsmRow3.forEach((item) => {
+ item.rts = this.bsm3Val;
+ });
+ } else {
+ this.bsmRow3.rts = this.bsm3Val;
+ }
+ }
+ done();
+ },
+ upBsm1(val) {
+ let sections = JSON.parse(this.bsmRow.section);
+ let asks = JSON.parse(this.bsmRow.ask);
+ let tells = JSON.parse(this.bsmRow.tell);
+ let manHours = JSON.parse(this.bsmRow.manHour);
+ let prices = JSON.parse(this.bsmRow.price);
+ for (var a in sections) {
+ if (val === sections[a]) {
+ this.productList.forEach((p) => {
+ if (p.id === this.bsmRow.id) {
+ p.section = sections[a];
+ p.ask = asks[a];
+ p.tell = tells[a];
+ p.manHour = manHours[a];
+ p.price = prices[a];
+ }
+ });
+ break;
+ }
+ }
+ },
+ bsm2Up(val) {
+ if (this.selfConnectBoolean) {
+ this.bsm2Val2 = [];
+ // this.bsm2Val2 闇�瑕佺殑鏈�缁堢粨鏋� this.fiberList 涓嬫媺妗嗗唴瀹�
+ // 杩囨护鍑哄绠″拰鑹叉爣涓�鑷寸殑鏁版嵁 浠ュ強鐩稿簲鐨勪笅鏍�
+ let newFiberList = [];
+ let resultList = [];
+ for (let i = 0; i < this.fiberList.length; i++) {
+ let data = this.fiberList[i];
+ if (data.bushColor == data.color) {
+ newFiberList.push([data.bushColor, i + 1]);
+ }
+ }
+ // 鏍规嵁瀛楀吀杩涜涓�涓帓搴�
+ for (let i = 0; i < this.colors.length; i++) {
+ let color = this.colors[i];
+ for (let j = 0; j < newFiberList.length; j++) {
+ let newColor = newFiberList[j];
+ if (color.value == newColor[0]) {
+ newFiberList[j].push(color.orderNum);
+ }
+ }
+ }
+ newFiberList.sort((o1, o2) => o1[2] - o2[2]);
+ // 鏍规嵁瑙勫垯杩涜璧嬪�� 1-2 3-4 5-6 7-8 9-10
+ for (let i = 0; i < newFiberList.length; i++) {
+ // 閬垮厤澶氭寰幆
+ if (newFiberList.length < 2 * i + 1) {
+ break;
+ }
+ if (
+ newFiberList.length == 2 * i + 1 &&
+ newFiberList.length % 2 != 0
+ ) {
+ resultList.push([]);
+ } else {
+ resultList.push([
+ newFiberList[2 * i][1],
+ newFiberList[2 * i + 1][1],
+ ]);
+ }
+ }
+ resultList.length = val;
+ console.log("resultList", resultList);
+ this.bsm2Val2 = resultList;
+ console.log("this.bsm2Val2", this.bsm2Val2);
+ } else {
+ // if (val == this.bsm2Val3.length) {
+ // this.bsm2Val2 = [];
+ // this.computationalPairing(this.selectFiberList.length,true);
+ // if (this.bsm2Val2.length === 0) {
+ // this.bsm2Val =
+ // ((this.selectFiberList.length + 1) * this.selectFiberList.length) / 2;
+ // this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
+ // } else {
+ // this.bsm2Val = this.selectFiberList.length;
+ // }
+ // this.bsm1DiaLoading = false;
+ // console.log('loading',this,this.bsm1DiaLoading);
+ // } else {
+ // 涓�瀵逛竴
+ this.bsm1DiaLoading = true;
+ let list = [];
+ let length = this.selectFiberList.length;
+ if (val) {
+ let num = 0;
+ if (val > length) {
+ num = length;
+ } else {
+ num = val;
+ }
+ for (let i = 1; i <= num; i++) {
+ list.push([i, i]);
+ }
+ }
+ // 鍓╀綑鐨勬寜鐓ц鍒欐潵鎵ц
+ if (val > length) {
+ for (let i = 1; i <= length; i++) {
+ for (let j = 1; j <= length; j++) {
+ if (list.length < val) {
+ if (i < j) {
+ list.push([i, j]);
+ }
+ }
+ }
+ }
+ }
+ this.bsm2Val2 = list;
+ this.bsm1DiaLoading = false;
+ }
+ //}
+ },
+ },
+};
+</script>
+
+<style scoped>
+.ins_order_config {
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+.models {
+ font-size: 14px;
+ width: 80%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.ins_order_config::-webkit-scrollbar {
+ width: 0;
+}
+
+.title {
+ height: 60px;
+ line-height: 60px;
+}
+
+.center {
+ width: 100%;
+ height: calc(100% - 60px);
+}
+
+.grid-content {
+ background: #fff;
+ border-radius: 4px;
+ box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.05);
+}
+
+.grid-content h5 {
+ color: #3a7bfa;
+ font-weight: 400;
+ line-height: 32px;
+ padding-left: 16px;
+ box-sizing: border-box;
+ border-bottom: 1px solid #eee;
+}
+.search {
+ width: calc(100% - 40px);
+ background-color: #fff;
+ padding: 5px 40px 5px 0;
+}
+
+.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);
+}
+.search-item {
+ display: flex;
+ align-items: center;
+ line-height: 36px;
+}
+
+.search-item label {
+ width: 90px;
+ font-size: 12px;
+ color: #606266;
+ /* text-align: right; */
+}
+
+.btns {
+ margin: 8px 0 8px 10px;
+}
+
+>>> .el-table th.el-table__cell > .cell {
+ padding-top: 2px !important;
+ padding-bottom: 2px !important;
+}
+>>> .all-disabled .el-checkbox__input .el-checkbox__inner {
+ background-color: #edf2fc;
+ border-color: #dcdfe6;
+ cursor: not-allowed;
+}
+</style>
diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index f2e1fd8..4fb5f8d 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -1,9 +1,1439 @@
<template>
- <div>妫�楠屼笅鍗�</div>
+ <div>
+ <div>
+ <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="medium"
+ type="primary"
+ @click="dialogVisible1 = true"
+ :loading="exportCheckedLoading"
+ >瀵煎嚭妫�楠岀粨鏋�</el-button
+ >
+ <el-button size="medium" type="primary" @click="print"
+ >鏍囩鎵撳嵃</el-button
+ >
+ <el-button size="medium" type="primary" @click="playOrder(1)"
+ >涓嬪崟</el-button
+ >
+ </el-col>
+ </el-row>
+ </div>
+ <basic-container>
+ <div class="search" :style="`height: ${more ? 130 : 80}px;`">
+ <el-row :gutter="10" style="width: 100%">
+ <el-col :span="20" style="display: flex; flex-wrap: wrap">
+ <div class="search_thing" style="width: 20%">
+ <div class="search_label">濮旀墭缂栧彿锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="componentData.entity.entrustCode"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div class="search_thing" style="width: 20%">
+ <div class="search_label" style="width: 120px">
+ 澶栭儴濮旀墭缂栧彿锛�
+ </div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="componentData.entity.outEntrustCode"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div class="search_thing" style="width: 20%">
+ <div class="search_label">鏍峰搧鍚嶇О锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="componentData.entity.sampleName"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div class="search_thing" style="width: 20%">
+ <div class="search_label">鏍峰搧鍨嬪彿锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="componentData.entity.sampleModel"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div class="search_thing" style="width: 20%">
+ <div class="search_label">鏍峰搧缂栧彿锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="componentData.entity.sampleCode"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div class="search_thing" style="width: 40%" v-if="more">
+ <div class="search_label">涓嬪崟鏃堕棿锛�</div>
+ <div class="search_input">
+ <el-date-picker
+ style="width: 100%"
+ v-model="componentData.entity.startAndEndTime"
+ type="daterange"
+ size="small"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ value-format="yyyy-MM-dd"
+ clearable
+ placeholder="閫夋嫨鏃ユ湡"
+ >
+ </el-date-picker>
+ </div>
+ </div>
+ <div class="search_thing" style="width: 20%" v-if="more">
+ <div class="search_label">涓嬪崟浜猴細</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="componentData.entity.name"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div class="search_thing" style="width: 20%" v-if="more">
+ <div class="search_label">宸ョ▼鍚嶇О锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="componentData.entity.engineering"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div class="search_thing" style="width: 20%" v-if="more">
+ <div class="search_label">鐢熶骇鍗曚綅锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="componentData.entity.production"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="4">
+ <div class="search_thing">
+ <el-button
+ type="text"
+ :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
+ style="color: #3a7bfa"
+ @click="more = !more"
+ >{{ !more ? "鏇村" : "鏀惰捣" }}</el-button
+ >
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()"
+ >鏌� 璇�</el-button
+ >
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ </basic-container>
+ <basic-container>
+ <div style="width: 100%; height: 100%" v-show="active == 0">
+ <div class="table">
+ <ul class="tab">
+ <li
+ v-for="(m, i) in tabList"
+ :key="i + 'afgh'"
+ :class="{ active: i == tabIndex }"
+ @click="handleTab(m, i)"
+ >
+ {{ m.label }}
+ </li>
+ </ul>
+ <!-- <ValueTable
+ :style="getStyle()"
+ ref="ValueTable"
+ :url="$api.insOrder.selectInsOrderParameter"
+ :componentData="componentData"
+ :upIndex="upIndex"
+ @getTableData="getTableData"
+ /> -->
+ <lims-table
+ :tableData="tableData"
+ @pagination="pagination"
+ :column="column"
+ :page="page"
+ :tableLoading="tableLoading"
+ ></lims-table>
+ </div>
+ <!-- 瀹℃牳 -->
+ <el-dialog
+ title="涓嬪崟瀹℃牳"
+ :visible.sync="verifyDialogVisible"
+ width="30%"
+ :before-close="handleClose"
+ >
+ <p style="font-size: 16px; color: #333333" v-if="!isPass">
+ 濮旀墭缂栧彿<span style="color: #34bd66">ZTMS2023071001</span
+ >鐨勪俊鎭槸鍚﹂�氳繃
+ </p>
+ <el-form
+ :label-position="labelPosition"
+ :model="formData"
+ label-width="150px"
+ ref="ruleForm"
+ v-else
+ >
+ <el-form-item label="璇疯緭鍏ユ牱鍝佸簱浣嶅彿锛�">
+ <el-input
+ v-model="formData.specificationModel"
+ size="small"
+ style="width: 60%"
+ ></el-input>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-row v-if="!isPass">
+ <el-button @click="handleClose">閫� 鍥�</el-button>
+ <el-button type="primary" @click="submitForm" :loading="upLoad"
+ >閫� 杩�</el-button
+ >
+ </el-row>
+ <el-row v-else>
+ <el-button @click="handleClose">杩� 鍥�</el-button>
+ <el-button type="primary" @click="submitForm" :loading="upLoad"
+ >纭� 瀹�</el-button
+ >
+ </el-row>
+ </span>
+ </el-dialog>
+ <!-- 鎾ら攢 -->
+ <el-dialog
+ title="涓嬪崟鎾ら攢"
+ :visible.sync="quashDialogVisible"
+ width="30%"
+ :before-close="handleClose"
+ >
+ <p style="font-size: 16px; color: #333333" v-if="!isQuash">
+ 濮旀墭缂栧彿<span style="color: #34bd66">{{
+ this.insOrderRow.entrustCode
+ }}</span
+ >鐨勪俊鎭槸鍚︽挙閿�
+ </p>
+ <el-form
+ :label-position="labelPosition"
+ :model="formData"
+ label-width="150px"
+ ref="ruleForm"
+ v-else
+ >
+ <el-form-item label="璇疯緭鍏ユ挙閿�鍘熷洜锛�">
+ <el-input
+ v-model="formData.specificationModel"
+ size="small"
+ style="width: 60%"
+ ></el-input>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-row v-if="!isQuash">
+ <el-button @click="handleClose">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm" :loading="upLoad"
+ >纭� 瀹�</el-button
+ >
+ </el-row>
+ <el-row v-else>
+ <el-button @click="handleClose">杩� 鍥�</el-button>
+ <el-button type="primary" @click="submitForm" :loading="upLoad"
+ >纭� 瀹�</el-button
+ >
+ </el-row>
+ </span>
+ </el-dialog>
+ <!-- 涓嬪彂 -->
+ <el-dialog
+ title="妫�楠屽垎閰�"
+ :visible.sync="issuedDialogVisible"
+ width="400px"
+ :before-close="handleClose"
+ >
+ <div class="body" style="max-height: 60vh">
+ <el-row>
+ <el-col class="search_thing" style="width: 95%">
+ <div class="search_label">
+ <span class="required-span">* </span>绾﹀畾鏃堕棿锛�
+ </div>
+ <div class="search_input">
+ <el-date-picker
+ size="small"
+ v-model="distributeData.appointed"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ value-format="yyyy-MM-dd"
+ style="width: 100%"
+ format="yyyy-MM-dd"
+ >
+ </el-date-picker>
+ </div>
+ </el-col>
+ <el-col class="search_thing" style="width: 95%">
+ <div class="search_label">
+ <span class="required-span" v-show="distributeData.type == 2"
+ >* </span
+ >鎸囨淳浜哄憳锛�
+ </div>
+ <div class="search_input">
+ <el-select
+ v-model="distributeData.userId"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%"
+ clearable
+ filterable
+ @change="changeUser"
+ >
+ <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>
+ </el-col>
+ <el-col
+ class="search_thing"
+ style="width: 95%"
+ v-if="distributeData.userId"
+ >
+ <div class="search_label">
+ <span class="required-span">* </span>璇曢獙瀹わ細
+ </div>
+ <div class="search_input">
+ <el-select
+ v-model="distributeData.sonLaboratory"
+ placeholder="璇烽�夋嫨11"
+ size="small"
+ style="width: 100%"
+ clearable
+ filterable
+ >
+ <el-option
+ v-for="(item, i) in sonLaboratoryList"
+ :key="i + 'oooo'"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-row>
+ <el-button @click="handleClose2">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm2" :loading="upLoad"
+ >纭� 瀹�</el-button
+ >
+ </el-row>
+ </span>
+ </el-dialog>
+ <el-dialog
+ title="鏁版嵁鏌ョ湅"
+ :visible.sync="dataDialogVisible"
+ width="100%"
+ fullscreen
+ >
+ <div style="height: 80vh; overflow-y: auto" v-if="dataDialogVisible">
+ <ValueTable
+ ref="ValueTableDataLook"
+ :rowKey="'insProductId'"
+ :url="$api.insOrder.selectSampleAndProductByOrderId"
+ :componentData="componentDataDataLook"
+ />
+ </div>
+ </el-dialog>
+ <el-dialog
+ top="5vh"
+ :title="deleteTilte"
+ :visible.sync="deleteDialogVisible"
+ :before-close="handleCloseDelete"
+ width="80%"
+ >
+ <div class="table-container" v-if="deleteDialogVisible">
+ <!-- <ValueTable
+ ref="ValueTableDataDelete"
+ :url="
+ $api.insOrder.selectNoProducts +
+ '?orderId=' +
+ orderId +
+ '&ids=' +
+ this.revocationInsProductIds
+ "
+ :componentData="componentDataDelete"
+ :isColumnWidth="true"
+ /> -->
+ <el-table
+ height="500px"
+ ref="revokeTable"
+ @select="handleSelectionChange"
+ @select-all="handleSelectionAll"
+ :data="treeTableData"
+ style="width: 100%"
+ row-key="id"
+ border
+ lazy
+ :load="load"
+ :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
+ >
+ <el-table-column
+ v-if="deleteTilte == '鎾ら攢'"
+ type="selection"
+ width="55"
+ ></el-table-column>
+ <el-table-column
+ prop="sampleCode"
+ label="鏍峰搧缂栧彿"
+ show-overflow-tooltip
+ >
+ </el-table-column>
+ <el-table-column
+ prop="inspectionItem"
+ label="妫�楠岄」"
+ show-overflow-tooltip
+ >
+ </el-table-column>
+ <el-table-column
+ prop="inspectionItemSubclass"
+ label="妫�楠屽瓙椤�"
+ show-overflow-tooltip
+ >
+ </el-table-column>
+ <el-table-column
+ prop="sampleType"
+ label="鏍峰搧鍒嗙被"
+ show-overflow-tooltip
+ >
+ </el-table-column>
+ <el-table-column prop="sample" label="鏍峰搧" show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column prop="model" label="鍨嬪彿" show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column
+ prop="sonLaboratory"
+ label="璇曢獙瀹�"
+ show-overflow-tooltip
+ >
+ </el-table-column>
+ <el-table-column prop="tell" label="瑕佹眰鍊�" show-overflow-tooltip>
+ </el-table-column>
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-row>
+ <el-button @click="handleNo">{{
+ deleteTilte == "鎾ら攢" ? "鍙� 娑�" : "涓嶉�氳繃"
+ }}</el-button>
+ <el-button
+ type="primary"
+ @click="submitDelete"
+ :loading="printLoading"
+ >{{ deleteTilte == "鎾ら攢" ? "纭� 瀹�" : "閫� 杩�" }}</el-button
+ >
+ </el-row>
+ </span>
+ </el-dialog>
+ <!-- 鏁版嵁鏌ョ湅璇︽儏 -->
+ <el-dialog
+ title="鏌ョ湅璇︽儏"
+ :visible.sync="dialogVisible"
+ width="70%"
+ :before-close="handleClose3"
+ >
+ <el-table
+ v-if="type == '鍗曟牴鍨傜洿鐕冪儳' || type == '鏉惧绠�'"
+ :data="viewDetailsList"
+ height="400px"
+ border
+ 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="濂楃"></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="dialogVisible1"
+ width="30%"
+ :before-close="handleClose4"
+ >
+ <span>涓嬪崟鏃ユ湡: </span>
+ <el-date-picker
+ v-model="exportCheckedDate"
+ type="daterange"
+ size="small"
+ value-format="yyyy-MM-dd"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ >
+ </el-date-picker>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="handleClose4">鍙� 娑�</el-button>
+ <el-button type="primary" @click="exportChecked()">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+ <div style="width: 100%; height: 100%" v-if="active > 0">
+ <Add
+ :active="active"
+ :currentId="currentId"
+ v-if="active < 4"
+ :examine="examine"
+ />
+ </div>
+ <el-dialog
+ title="鏍囩鎵撳嵃"
+ :visible.sync="printDialogVisible"
+ width="40%"
+ top="5vh"
+ >
+ <div
+ style="width: 100%; height: 400px; overflow-y: auto"
+ v-loading="loadPint"
+ >
+ <div class="dia_body">
+ <el-checkbox
+ style="margin: 10px 5px"
+ :indeterminate="isIndeterminate"
+ v-model="checkAll"
+ @change="handleCheckAllChange"
+ >鍏ㄩ��</el-checkbox
+ >
+ <el-checkbox-group
+ @change="changePrintCode()"
+ v-model="checkIndexList"
+ >
+ <el-card
+ class="box-card"
+ v-for="(item, i) in qrData"
+ :key="i + 'wwwww'"
+ style="margin-bottom: 15px; font-size: 16px !important"
+ >
+ <el-checkbox
+ :label="i"
+ :key="i"
+ style="position: relative; top: -20px; left: 5px"
+ ><br
+ /></el-checkbox>
+ <div>
+ <el-row style="font-size: 14px; padding-left: 20px">
+ <el-col style="font-weight: bold">{{ item.pName }}</el-col>
+ </el-row>
+ <div style="display: flex">
+ <div>
+ <el-col :span="8" :offset="4">
+ <vueQr
+ :text="
+ 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
+ item.id +
+ '&type=sample'
+ "
+ :size="140"
+ :margin="2"
+ ></vueQr>
+ </el-col>
+ </div>
+ <div style="margin-left: 50px; width: 100%">
+ <el-row>
+ <el-col
+ style="
+ font-weight: bold;
+ text-align: left;
+ font-size: 14px;
+ "
+ ><span>鏍峰搧缂栧彿: </span
+ >{{ item.sampleCode }}</el-col
+ >
+ </el-row>
+ <el-row style="margin-top: 1px; font-size: 14px">
+ <el-col style="font-weight: bold; text-align: left"
+ ><span>濮旀墭鍗曞彿: </span>{{ item.code }}</el-col
+ >
+ </el-row>
+ <el-row style="margin-top: 1px; font-size: 14px">
+ <el-col style="font-weight: bold; text-align: left"
+ ><span>瑙勬牸鍨嬪彿: </span>{{ item.model }}</el-col
+ >
+ </el-row>
+ <el-row style="margin-top: 1px; font-size: 14px">
+ <el-col style="font-weight: bold; text-align: left"
+ ><span>鏍峰搧鍚嶇О: </span
+ >{{ item.sample }}</el-col
+ >
+ </el-row>
+ <el-row
+ style="margin-top: 1px; font-size: 14px"
+ class="ellipsis-multiline"
+ >
+ <el-col style="font-weight: bold; text-align: left"
+ ><span>妫�娴嬮」鐩�: </span>{{ item.item }}</el-col
+ >
+ </el-row>
+ <el-row style="margin-top: 2px; font-size: 14px">
+ <el-col
+ style="
+ font-weight: bold;
+ display: flex;
+ align-items: center;
+ "
+ ><span>鏍峰搧鐘舵��: </span
+ ><el-radio-group
+ :value="item.insState"
+ style="margin-top: 7px; margin-left: 4px"
+ disabled
+ >
+ <el-radio
+ :label="0"
+ style="font-weight: bold; margin-right: 7px"
+ >寰呮</el-radio
+ >
+ <el-radio
+ :label="1"
+ style="font-weight: bold; margin-right: 7px"
+ >鍦ㄦ</el-radio
+ >
+ <el-radio
+ :label="2"
+ style="font-weight: bold; margin-right: 7px"
+ >宸叉</el-radio
+ > </el-radio-group
+ ><el-radio
+ :label="1"
+ style="font-weight: bold; margin-top: 7px"
+ v-model="item.isLeave"
+ disabled
+ >鐣欐牱</el-radio
+ ></el-col
+ >
+ </el-row>
+ </div>
+ </div>
+ </div>
+ </el-card>
+ </el-checkbox-group>
+ </div>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-row>
+ <el-button @click="printDialogVisible = false">鍙� 娑�</el-button>
+ <el-button
+ type="primary"
+ @click="submitPrint"
+ :loading="printLoading"
+ >鎵� 鍗�</el-button
+ >
+ </el-row>
+ </span>
+ </el-dialog>
+ <div
+ class="el-dialog__body"
+ style="
+ overflow-y: auto;
+ margin-top: 0;
+ position: fixed;
+ top: 999px;
+ z-index: 99999;
+ display: none;
+ "
+ >
+ <div id="printMOrder" class="printMOrder" ref="printMOrder">
+ <el-card
+ class="box-card"
+ v-for="(item, i) in checkDataList"
+ :key="i + 'uuuuu'"
+ style="
+ font-size: 0.2cm !important;
+ page-break-after: always;
+ color: #000;
+ box-shadow: none;
+ margin: 0 !important;
+ padding: 0 !important;
+ "
+ >
+ <div style="display: flex">
+ <div>
+ <el-col :span="10" :offset="2">
+ <vueQr
+ :text="
+ 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
+ item.id +
+ '&type=sample'
+ "
+ :size="60"
+ :margin="2"
+ ></vueQr>
+ </el-col>
+ </div>
+ <div style="margin-left: 0.32cm; line-height: 0.22cm">
+ <el-row>
+ <el-col
+ style="font-size: 0.2cm; width: 4cm"
+ class="single-line-ellipsis"
+ ><span>鏍峰搧缂栧彿: </span>{{ item.sampleCode }}</el-col
+ >
+ </el-row>
+ <el-row style="font-size: 0.2cm">
+ <el-col><span>濮旀墭鍗曞彿: </span>{{ item.code }}</el-col>
+ </el-row>
+ <el-row style="font-size: 0.2cm">
+ <el-col><span>瑙勬牸鍨嬪彿: </span>{{ item.model }}</el-col>
+ </el-row>
+ <el-row style="font-size: 0.2cm">
+ <el-col
+ ><span>鏍峰搧鍚嶇О: </span>{{ item.sample }}</el-col
+ >
+ </el-row>
+ <el-row style="font-size: 0.2cm; width: 4cm">
+ <el-col class="ellipsis-multiline"
+ ><span>妫�娴嬮」鐩�: </span>{{ item.item }}</el-col
+ >
+ </el-row>
+ <el-row style="margin-top: 0.01cm; font-size: 0.2cm">
+ <el-col style="display: flex; align-items: center"
+ ><span>鏍峰搧鐘舵��: </span>
+ <span style="white-space: nowrap"
+ ><span v-if="item.insState == 0">鈭�</span
+ ><span class="scor" v-if="item.insState != 0"></span>寰呮
+ <span v-if="item.insState == 1">鈭�</span
+ ><span class="scor" v-if="item.insState != 1"></span>鍦ㄦ
+ <span v-if="item.insState == 2">鈭�</span
+ ><span class="scor" v-if="item.insState != 2"></span>宸叉
+ <span v-if="item.isLeave == 1">鈭�</span
+ ><span class="scor" v-if="item.isLeave != 1"></span
+ >鐣欐牱</span
+ >
+ </el-col>
+ </el-row>
+ </div>
+ </div>
+ </el-card>
+ </div>
+ </div>
+ </basic-container>
+ </div>
</template>
<script>
-export default {};
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+ addCustom,
+ selectCustomPageList,
+ delCustomById,
+ upCustom,
+} from "@/api/business/inspectionOrder";
+import vueQr from "vue-qr";
+import getLodop from "@/utils/lodop";
+import Add from "./add.vue";
+export default {
+ components: {
+ limsTable,
+ Add,
+ vueQr,
+ },
+ data() {
+ return {
+ tableData: [],
+ page: {
+ total: 0,
+ size: 10,
+ current: 0,
+ },
+ tableLoading: false,
+ column: [
+ { label: "濮旀墭缂栧彿", prop: "entrustCode" },
+ { label: "澶栭儴濮旀墭缂栧彿", prop: "outEntrustCode" },
+ { label: "濮旀墭鍗曚綅", prop: "company" },
+ { label: "鏍峰搧鍚嶇О", prop: "sampleName" },
+ { label: "鏍峰搧缂栧彿", prop: "sampleCode" },
+ { label: "鏍峰搧鍨嬪彿", prop: "sampleModel" },
+ { label: "鏍峰搧鏁伴噺", prop: "sampleNum" },
+ { label: "妫�楠岃繘搴�%", prop: "insProgress" },
+ { label: "绱ф�ョ▼搴�", prop: "type" },
+ { label: "澶囨敞", prop: "remark" },
+ { label: "鍒跺崟浜�", prop: "custom" },
+ { label: "绾﹀畾鏃堕棿", prop: "appointed" },
+ { label: "涓嬪崟鏃堕棿", prop: "createTime" },
+ { label: "涓嬪彂鏃堕棿", prop: "sendTime" },
+ { label: "閫�鍥炵悊鐢�", prop: "tell" },
+ { label: "濮旀墭浜�", prop: "prepareUser" },
+ { label: "鎾ら攢鏃ユ湡", prop: "revocationTime" },
+ {
+ dataType: "action",
+ fixed: "right",
+ label: "鎿嶄綔",
+ operation: [
+ {
+ name: "鏁版嵁鏌ョ湅",
+ type: "text",
+ clickFun: (row) => {},
+ },
+ {
+ name: "鎶ュ憡涓嬭浇",
+ type: "text",
+ clickFun: (row) => {},
+ },
+ {
+ name: "瀹℃牳",
+ type: "text",
+ clickFun: (row) => {},
+ },
+ {
+ name: "鎾ら攢",
+ type: "text",
+ clickFun: (row) => {},
+ },
+ {
+ name: "鎾ら攢瀹℃牳",
+ type: "text",
+ clickFun: (row) => {},
+ },
+ {
+ name: "鍒嗛厤",
+ type: "text",
+ clickFun: (row) => {},
+ },
+ ],
+ },
+ ],
+ //old
+ tableHeader: [],
+ type: "",
+ revokeDataAll: [],
+ revokeData: [],
+ treeTableData: [],
+ treeTableData2: [],
+ exportCheckedDate: [],
+ exportCheckedLoading: false,
+ dialogVisible1: false,
+ dialogVisible: false,
+ viewDetailsList: [],
+ deleteTilte: "鎾ら攢",
+ examine: null,
+ deleteList: [],
+ loadPint: false,
+ checkAll: false,
+ isIndeterminate: true,
+ printLoading: false,
+ printDialogVisible: false,
+ //鏄惁瀹℃牳閫氳繃 true鏄� false涓嶆槸
+ isPass: false,
+ //鏄惁瀹℃牳鎾ら攢 true鏄� false涓嶆槸
+ isQuash: false,
+ verifyDialogVisible: false,
+ quashDialogVisible: false,
+ issuedDialogVisible: false,
+ dataDialogVisible: false,
+ formData: {},
+ formData0: {},
+ formData1: {},
+ distributeData: {
+ orderId: "",
+ sampleId: "",
+ appointed: "",
+ userId: null,
+ sonLaboratory: "",
+ },
+ // 浜哄憳鍒楄〃
+ personList: [],
+ currentTableData: [],
+ componentData: {
+ entity: {
+ entrustCode: null,
+ sample: null,
+ sampleName: null,
+ sampleModel: null,
+ sampleCode: null,
+ outEntrustCode: null,
+ state: 0,
+ name: null,
+ engineering: null,
+ production: null,
+ startAndEndTime: [],
+ // orderBy: {
+ // field: '',
+ // order: ''
+ // }
+ },
+ isIndex: true,
+ showSelect: true,
+ select: true,
+ selectMethod: "selectMethod",
+ do: [
+ {
+ id: "dataLook",
+ font: "鏁版嵁鏌ョ湅",
+ type: "text",
+ method: "handleDataLook",
+ disabFun: (row, index) => {
+ return row.state != 1 && row.state != 4;
+ },
+ },
+ {
+ id: "download",
+ font: "鎶ュ憡涓嬭浇",
+ type: "text",
+ method: "download",
+ disabFun: (row, index) => {
+ return row.state != 4 || row.isRatify != 1;
+ },
+ },
+ {
+ id: "verify",
+ font: "瀹℃牳",
+ type: "text",
+ method: "handleVerify",
+ disabFun: (row, index) => {
+ return row.state != 0;
+ },
+ },
+ {
+ id: "quash",
+ font: "鎾ら攢",
+ type: "text",
+ method: "handlEquash",
+ disabFun: (row, index) => {
+ return row.state != 1 && row.state != 0;
+ },
+ },
+ {
+ id: "quashCheck",
+ font: "鎾ら攢瀹℃牳",
+ type: "text",
+ method: "handlEquashCheck",
+ disabFun: (row, index) => {
+ return (
+ (row.state != 1 && row.state != 0) ||
+ this.tabIndex != 1 ||
+ row.isRevocation != 1
+ );
+ },
+ },
+ {
+ font: "鍒嗛厤",
+ type: "text",
+ method: "handleIssued",
+ disabFun: (row, index) => {
+ return (
+ row.state != 1 ||
+ (row.entrustCode != null &&
+ Number(row.assign) > 0 &&
+ row.inspectId != null)
+ );
+ },
+ },
+ ],
+ linkEvent: {
+ sampleName: {
+ method: "selectAllByOne",
+ },
+ },
+ tagField: {
+ type: {
+ select: [
+ {
+ value: 0,
+ type: "success",
+ label: "鏅��",
+ },
+ {
+ value: 1,
+ type: "warning",
+ label: "浼樺厛",
+ },
+ {
+ value: 2,
+ type: "danger",
+ label: "绱ф��",
+ },
+ ],
+ },
+ createUser: {
+ select: [],
+ },
+ orderType: {
+ select: [],
+ },
+ processing: {
+ select: [
+ {
+ value: 1,
+ label: "瀹為獙瀹ゅ鐞�",
+ },
+ {
+ value: 0,
+ label: "濮旀墭鍗曚綅鍙栧洖",
+ },
+ ],
+ },
+ isLeave: {
+ select: [
+ {
+ value: 1,
+ label: "鐣欐牱",
+ },
+ {
+ value: 0,
+ label: "涓嶇暀鏍�",
+ },
+ ],
+ },
+ send: {
+ select: [
+ {
+ value: 1,
+ label: "鑷彇",
+ },
+ {
+ value: 0,
+ label: "鍏朵粬",
+ },
+ ],
+ },
+ },
+ selectField: {},
+ requiredAdd: [],
+ requiredUp: [],
+ needSort: ["createTime", "sendTime", "type", "appointed"],
+ },
+ orderId: "",
+ revocationInsProductIds: "",
+ 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: [],
+ },
+ componentDataDelete: {
+ entity: {
+ // orderId: '',
+ // orderBy: {
+ // field: 'sampleCode',
+ // order: 'asc'
+ // }
+ },
+ isPage: false,
+ isIndex: false,
+ showSelect: true,
+ select: true,
+ selectMethod: "selectDelete",
+ do: [],
+ tagField: {
+ insState: {
+ select: [],
+ },
+ insResult: {
+ select: [
+ {
+ value: 1,
+ label: "鍚堟牸",
+ type: "success",
+ },
+ {
+ value: 0,
+ label: "涓嶅悎鏍�",
+ type: "danger",
+ },
+ ],
+ },
+ },
+ selectField: {},
+ spanConfig: {},
+ requiredAdd: [],
+ requiredUp: [],
+ },
+ deleteDialogVisible: false,
+ entityCopy: {},
+ upIndex: 0,
+ upLoad: false,
+ tabList: [
+ {
+ label: "寰呭鏍�",
+ value: 0,
+ },
+ {
+ label: "寰呮楠�",
+ value: 1,
+ },
+ {
+ label: "宸叉楠�",
+ value: 4,
+ },
+ {
+ label: "閫�鍥�",
+ value: 2,
+ },
+ {
+ label: "鎾ら攢",
+ value: 3,
+ },
+ ],
+ tabIndex: 0,
+ active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝4锛氬厜绾ら厤缃�,榛樿涓�0
+ currentId: null,
+ more: false,
+ insOrderRow: {},
+ checkIndexList: [],
+ checkDataList: [
+ {
+ sampleCode: "11111",
+ },
+ ],
+ qrData: [],
+ multipleSelection: [],
+ sonLaboratoryList: [],
+ queryCount: 0,
+ };
+ },
+ methods: {
+ pagination({ page, limit }) {
+ this.page.current = page;
+ this.page.size = limit;
+ this.getList();
+ },
+ },
+};
</script>
-<style></style>
+<style scope>
+.title {
+ height: 60px;
+ line-height: 60px;
+}
+
+.search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ overflow: hidden;
+}
+
+.search_thing {
+ display: flex;
+ align-items: center;
+ height: 50px;
+ width: 100px;
+}
+
+.search_label {
+ width: 90px;
+ font-size: 14px;
+ text-align: right;
+}
+
+.search_input {
+ width: calc(100% - 90px);
+}
+
+.table {
+ /* margin-top: 10px;
+ background-color: #fff;
+ width: calc(100% - 40px);
+ height: calc(100% - 60px - 80px - 10px - 40px);
+ padding: 20px; */
+}
+
+.tab {
+ list-style-type: none;
+ display: flex;
+ margin-bottom: 12px;
+}
+
+.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-child(5) {
+ border-radius: 0 8px 8px 0;
+}
+
+.tab li.active {
+ border-color: #3a7bfa;
+ color: #3a7bfa;
+}
+
+.el-form-item {
+ margin-bottom: 16px;
+}
+.box-card >>> .el-radio__inner {
+ border-radius: 2px !important;
+}
+.box-card >>> .el-radio__input.is-checked .el-radio__inner::after {
+ content: "";
+ width: 8px;
+ height: 3px;
+ border: 1px solid white;
+ border-top: transparent;
+ border-right: transparent;
+ text-align: center;
+ display: block;
+ position: absolute;
+ top: 3px;
+ left: 2px;
+ transform: rotate(-45deg);
+ border-radius: 0px;
+ background: none;
+}
+>>> .el-radio__label {
+ color: #000 !important;
+}
+.el-dialog__body >>> .el-radio__label {
+ font-size: 8px;
+}
+.el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after {
+ content: "";
+ width: 4px;
+ height: 3px;
+ border: 1px solid #000;
+ border-top: transparent;
+ border-right: transparent;
+ text-align: center;
+ display: block;
+ position: absolute;
+ top: 1px;
+ left: 2px;
+ transform: rotate(-45deg);
+ border-radius: 0px;
+ background: none;
+}
+>>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
+ background: #3a7bfa;
+}
+.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
+ background: transparent;
+}
+.el-dialog__body >>> .el-radio__inner {
+ width: 8px !important;
+ height: 8px !important;
+}
+.el-dialog__body >>> .el-radio__label {
+ padding-left: 2px !important;
+}
+.el-dialog__body >>> .el-card__body {
+ padding: 0 !important;
+}
+.el-dialog__body >>> .el-card {
+ border: none;
+}
+.el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner {
+ border-color: #000 !important;
+}
+.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
+ border: none !important;
+}
+.scor {
+ width: 0.01cm;
+ height: 0.01cm;
+ border-radius: 1px;
+ border: 1px solid #000;
+ display: inline-block;
+}
+.ellipsis-multiline {
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ word-wrap: break-word;
+ max-height: 3em; /* 楂樺害涓哄瓧浣撳ぇ灏忕殑涓ゅ�� */
+ line-height: 1.5em; /* 琛岄珮 */
+ height: 3em; /* 楂樺害涓鸿楂樼殑涓ゅ�� */
+}
+.table-container {
+ height: 70vh;
+ overflow-y: auto;
+}
+.table-container.el-table {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+</style>
diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue
index 2483a2b..6f29249 100644
--- a/src/views/system/dept/index.vue
+++ b/src/views/system/dept/index.vue
@@ -1,6 +1,12 @@
<template>
<div class="app-container">
- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+ <el-form
+ :model="queryParams"
+ ref="queryForm"
+ size="small"
+ :inline="true"
+ v-show="showSearch"
+ >
<el-form-item label="閮ㄩ棬鍚嶇О" prop="deptName">
<el-input
v-model="queryParams.deptName"
@@ -10,7 +16,11 @@
/>
</el-form-item>
<el-form-item label="鐘舵��" prop="status">
- <el-select v-model="queryParams.status" placeholder="閮ㄩ棬鐘舵��" clearable>
+ <el-select
+ v-model="queryParams.status"
+ placeholder="閮ㄩ棬鐘舵��"
+ clearable
+ >
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
@@ -20,8 +30,16 @@
</el-select>
</el-form-item>
<el-form-item>
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鏌� 璇�</el-button>
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲� 缃�</el-button>
+ <el-button
+ type="primary"
+ icon="el-icon-search"
+ size="mini"
+ @click="handleQuery"
+ >鏌� 璇�</el-button
+ >
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+ >閲� 缃�</el-button
+ >
</el-form-item>
</el-form>
@@ -34,7 +52,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['system:dept:add']"
- >鏂板</el-button>
+ >鏂板</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
@@ -43,9 +62,13 @@
icon="el-icon-sort"
size="mini"
@click="toggleExpandAll"
- >灞曞紑/鎶樺彔</el-button>
+ >灞曞紑/鎶樺彔</el-button
+ >
</el-col>
- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+ <right-toolbar
+ :showSearch.sync="showSearch"
+ @queryTable="getList"
+ ></right-toolbar>
</el-row>
<el-table
@@ -54,21 +77,41 @@
:data="deptList"
row-key="deptId"
:default-expand-all="isExpandAll"
- :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
+ :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
- <el-table-column prop="deptName" label="閮ㄩ棬鍚嶇О" width="260"></el-table-column>
- <el-table-column prop="orderNum" label="鎺掑簭" width="200"></el-table-column>
+ <el-table-column
+ prop="deptName"
+ label="閮ㄩ棬鍚嶇О"
+ width="260"
+ ></el-table-column>
+ <el-table-column
+ prop="orderNum"
+ label="鎺掑簭"
+ width="200"
+ ></el-table-column>
<el-table-column prop="status" label="鐘舵��" width="100">
<template slot-scope="scope">
- <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
+ <dict-tag
+ :options="dict.type.sys_normal_disable"
+ :value="scope.row.status"
+ />
</template>
</el-table-column>
- <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="200">
+ <el-table-column
+ label="鍒涘缓鏃堕棿"
+ align="center"
+ prop="createTime"
+ width="200"
+ >
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+ <el-table-column
+ label="鎿嶄綔"
+ align="center"
+ class-name="small-padding fixed-width"
+ >
<template slot-scope="scope">
<el-button
size="mini"
@@ -76,14 +119,16 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:dept:edit']"
- >淇敼</el-button>
+ >淇敼</el-button
+ >
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAdd(scope.row)"
v-hasPermi="['system:dept:add']"
- >鏂板</el-button>
+ >鏂板</el-button
+ >
<el-button
v-if="scope.row.parentId != 0"
size="mini"
@@ -91,7 +136,8 @@
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dept:remove']"
- >鍒犻櫎</el-button>
+ >鍒犻櫎</el-button
+ >
</template>
</el-table-column>
</el-table>
@@ -102,7 +148,12 @@
<el-row>
<el-col :span="24" v-if="form.parentId !== 0">
<el-form-item label="涓婄骇閮ㄩ棬" prop="parentId">
- <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="閫夋嫨涓婄骇閮ㄩ棬" />
+ <treeselect
+ v-model="form.parentId"
+ :options="deptOptions"
+ :normalizer="normalizer"
+ placeholder="閫夋嫨涓婄骇閮ㄩ棬"
+ />
</el-form-item>
</el-col>
</el-row>
@@ -114,26 +165,42 @@
</el-col>
<el-col :span="12">
<el-form-item label="鏄剧ず鎺掑簭" prop="orderNum">
- <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
+ <el-input-number
+ v-model="form.orderNum"
+ controls-position="right"
+ :min="0"
+ />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="璐熻矗浜�" prop="leader">
- <el-input v-model="form.leader" placeholder="璇疯緭鍏ヨ礋璐d汉" maxlength="20" />
+ <el-input
+ v-model="form.leader"
+ placeholder="璇疯緭鍏ヨ礋璐d汉"
+ maxlength="20"
+ />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
- <el-input v-model="form.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" maxlength="11" />
+ <el-input
+ v-model="form.phone"
+ placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
+ maxlength="11"
+ />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="閭" prop="email">
- <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" maxlength="50" />
+ <el-input
+ v-model="form.email"
+ placeholder="璇疯緭鍏ラ偖绠�"
+ maxlength="50"
+ />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -143,7 +210,8 @@
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
- >{{dict.label}}</el-radio>
+ >{{ dict.label }}</el-radio
+ >
</el-radio-group>
</el-form-item>
</el-col>
@@ -158,13 +226,20 @@
</template>
<script>
-import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept";
+import {
+ listDept,
+ getDept,
+ delDept,
+ addDept,
+ updateDept,
+ listDeptExcludeChild,
+} from "@/api/system/dept";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Dept",
- dicts: ['sys_normal_disable'],
+ dicts: ["sys_normal_disable"],
components: { Treeselect },
data() {
return {
@@ -187,36 +262,36 @@
// 鏌ヨ鍙傛暟
queryParams: {
deptName: undefined,
- status: undefined
+ status: undefined,
},
// 琛ㄥ崟鍙傛暟
form: {},
// 琛ㄥ崟鏍¢獙
rules: {
parentId: [
- { required: true, message: "涓婄骇閮ㄩ棬涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "涓婄骇閮ㄩ棬涓嶈兘涓虹┖", trigger: "blur" },
],
deptName: [
- { required: true, message: "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
],
orderNum: [
- { required: true, message: "鏄剧ず鎺掑簭涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "鏄剧ず鎺掑簭涓嶈兘涓虹┖", trigger: "blur" },
],
email: [
{
type: "email",
message: "璇疯緭鍏ユ纭殑閭鍦板潃",
- trigger: ["blur", "change"]
- }
+ trigger: ["blur", "change"],
+ },
],
phone: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜",
- trigger: "blur"
- }
- ]
- }
+ trigger: "blur",
+ },
+ ],
+ },
};
},
created() {
@@ -226,7 +301,7 @@
/** 鏌ヨ閮ㄩ棬鍒楄〃 */
getList() {
this.loading = true;
- listDept(this.queryParams).then(response => {
+ listDept(this.queryParams).then((response) => {
this.deptList = this.handleTree(response.data, "deptId");
this.loading = false;
});
@@ -239,7 +314,7 @@
return {
id: node.deptId,
label: node.deptName,
- children: node.children
+ children: node.children,
};
},
// 鍙栨秷鎸夐挳
@@ -257,7 +332,7 @@
leader: undefined,
phone: undefined,
email: undefined,
- status: "0"
+ status: "0",
};
this.resetForm("form");
},
@@ -278,7 +353,7 @@
}
this.open = true;
this.title = "娣诲姞閮ㄩ棬";
- listDept().then(response => {
+ listDept().then((response) => {
this.deptOptions = this.handleTree(response.data, "deptId");
});
},
@@ -293,31 +368,35 @@
/** 淇敼鎸夐挳鎿嶄綔 */
handleUpdate(row) {
this.reset();
- getDept(row.deptId).then(response => {
+ getDept(row.deptId).then((response) => {
this.form = response.data;
this.open = true;
this.title = "淇敼閮ㄩ棬";
- listDeptExcludeChild(row.deptId).then(response => {
+ listDeptExcludeChild(row.deptId).then((response) => {
this.deptOptions = this.handleTree(response.data, "deptId");
if (this.deptOptions.length == 0) {
- const noResultsOptions = { deptId: this.form.parentId, deptName: this.form.parentName, children: [] };
+ const noResultsOptions = {
+ deptId: this.form.parentId,
+ deptName: this.form.parentName,
+ children: [],
+ };
this.deptOptions.push(noResultsOptions);
}
});
});
},
/** 鎻愪氦鎸夐挳 */
- submitForm: function() {
- this.$refs["form"].validate(valid => {
+ submitForm: function () {
+ this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.deptId != undefined) {
- updateDept(this.form).then(response => {
+ updateDept(this.form).then((response) => {
this.$modal.msgSuccess("淇敼鎴愬姛");
this.open = false;
this.getList();
});
} else {
- addDept(this.form).then(response => {
+ addDept(this.form).then((response) => {
this.$modal.msgSuccess("鏂板鎴愬姛");
this.open = false;
this.getList();
@@ -328,13 +407,17 @@
},
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
handleDelete(row) {
- this.$modal.confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.deptName + '"鐨勬暟鎹」锛�').then(function() {
- return delDept(row.deptId);
- }).then(() => {
- this.getList();
- this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- }).catch(() => {});
- }
- }
+ this.$modal
+ .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.deptName + '"鐨勬暟鎹」锛�')
+ .then(function () {
+ return delDept(row.deptId);
+ })
+ .then(() => {
+ this.getList();
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ },
};
</script>
diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue
index 5a37d9d..50be8f2 100644
--- a/src/views/system/menu/index.vue
+++ b/src/views/system/menu/index.vue
@@ -1,6 +1,12 @@
<template>
<div class="app-container">
- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+ <el-form
+ :model="queryParams"
+ ref="queryForm"
+ size="small"
+ :inline="true"
+ v-show="showSearch"
+ >
<el-form-item label="鑿滃崟鍚嶇О" prop="menuName">
<el-input
v-model="queryParams.menuName"
@@ -10,7 +16,11 @@
/>
</el-form-item>
<el-form-item label="鐘舵��" prop="status">
- <el-select v-model="queryParams.status" placeholder="鑿滃崟鐘舵��" clearable>
+ <el-select
+ v-model="queryParams.status"
+ placeholder="鑿滃崟鐘舵��"
+ clearable
+ >
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
@@ -20,8 +30,16 @@
</el-select>
</el-form-item>
<el-form-item>
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鏌� 璇�</el-button>
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲� 缃�</el-button>
+ <el-button
+ type="primary"
+ icon="el-icon-search"
+ size="mini"
+ @click="handleQuery"
+ >鏌� 璇�</el-button
+ >
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+ >閲� 缃�</el-button
+ >
</el-form-item>
</el-form>
@@ -34,7 +52,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['system:menu:add']"
- >鏂板</el-button>
+ >鏂板</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
@@ -43,9 +62,13 @@
icon="el-icon-sort"
size="mini"
@click="toggleExpandAll"
- >灞曞紑/鎶樺彔</el-button>
+ >灞曞紑/鎶樺彔</el-button
+ >
</el-col>
- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+ <right-toolbar
+ :showSearch.sync="showSearch"
+ @queryTable="getList"
+ ></right-toolbar>
</el-row>
<el-table
@@ -54,20 +77,40 @@
:data="menuList"
row-key="menuId"
:default-expand-all="isExpandAll"
- :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
+ :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
- <el-table-column prop="menuName" label="鑿滃崟鍚嶇О" :show-overflow-tooltip="true" width="160"></el-table-column>
+ <el-table-column
+ prop="menuName"
+ label="鑿滃崟鍚嶇О"
+ :show-overflow-tooltip="true"
+ width="160"
+ ></el-table-column>
<el-table-column prop="icon" label="鍥炬爣" align="center" width="100">
<template slot-scope="scope">
<svg-icon :icon-class="scope.row.icon" />
</template>
</el-table-column>
- <el-table-column prop="orderNum" label="鎺掑簭" width="60"></el-table-column>
- <el-table-column prop="perms" label="鏉冮檺鏍囪瘑" :show-overflow-tooltip="true"></el-table-column>
- <el-table-column prop="component" label="缁勪欢璺緞" :show-overflow-tooltip="true"></el-table-column>
+ <el-table-column
+ prop="orderNum"
+ label="鎺掑簭"
+ width="60"
+ ></el-table-column>
+ <el-table-column
+ prop="perms"
+ label="鏉冮檺鏍囪瘑"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
+ <el-table-column
+ prop="component"
+ label="缁勪欢璺緞"
+ :show-overflow-tooltip="true"
+ ></el-table-column>
<el-table-column prop="status" label="鐘舵��" width="80">
<template slot-scope="scope">
- <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
+ <dict-tag
+ :options="dict.type.sys_normal_disable"
+ :value="scope.row.status"
+ />
</template>
</el-table-column>
<el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime">
@@ -75,7 +118,11 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+ <el-table-column
+ label="鎿嶄綔"
+ align="center"
+ class-name="small-padding fixed-width"
+ >
<template slot-scope="scope">
<el-button
size="mini"
@@ -83,21 +130,24 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:menu:edit']"
- >淇敼</el-button>
+ >淇敼</el-button
+ >
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAdd(scope.row)"
v-hasPermi="['system:menu:add']"
- >鏂板</el-button>
+ >鏂板</el-button
+ >
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:menu:remove']"
- >鍒犻櫎</el-button>
+ >鍒犻櫎</el-button
+ >
</template>
</el-table-column>
</el-table>
@@ -138,15 +188,28 @@
trigger="click"
@show="$refs['iconSelect'].reset()"
>
- <IconSelect ref="iconSelect" @selected="selected" :active-icon="form.icon" />
- <el-input slot="reference" v-model="form.icon" placeholder="鐐瑰嚮閫夋嫨鍥炬爣" readonly>
+ <IconSelect
+ ref="iconSelect"
+ @selected="selected"
+ :active-icon="form.icon"
+ />
+ <el-input
+ slot="reference"
+ v-model="form.icon"
+ placeholder="鐐瑰嚮閫夋嫨鍥炬爣"
+ readonly
+ >
<svg-icon
v-if="form.icon"
slot="prefix"
:icon-class="form.icon"
- style="width: 25px;"
+ style="width: 25px"
/>
- <i v-else slot="prefix" class="el-icon-search el-input__icon" />
+ <i
+ v-else
+ slot="prefix"
+ class="el-icon-search el-input__icon"
+ />
</el-input>
</el-popover>
</el-form-item>
@@ -160,7 +223,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="鏄剧ず鎺掑簭" prop="orderNum">
- <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
+ <el-input-number
+ v-model="form.orderNum"
+ controls-position="right"
+ :min="0"
+ />
</el-form-item>
</el-col>
</el-row>
@@ -168,8 +235,11 @@
<el-col :span="12" v-if="form.menuType != 'F'">
<el-form-item prop="isFrame">
<span slot="label">
- <el-tooltip content="閫夋嫨鏄閾惧垯璺敱鍦板潃闇�瑕佷互`http(s)://`寮�澶�" placement="top">
- <i class="el-icon-question"></i>
+ <el-tooltip
+ content="閫夋嫨鏄閾惧垯璺敱鍦板潃闇�瑕佷互`http(s)://`寮�澶�"
+ placement="top"
+ >
+ <i class="el-icon-question"></i>
</el-tooltip>
鏄惁澶栭摼
</span>
@@ -182,8 +252,11 @@
<el-col :span="12" v-if="form.menuType != 'F'">
<el-form-item prop="path">
<span slot="label">
- <el-tooltip content="璁块棶鐨勮矾鐢卞湴鍧�锛屽锛歚user`锛屽澶栫綉鍦板潃闇�鍐呴摼璁块棶鍒欎互`http(s)://`寮�澶�" placement="top">
- <i class="el-icon-question"></i>
+ <el-tooltip
+ content="璁块棶鐨勮矾鐢卞湴鍧�锛屽锛歚user`锛屽澶栫綉鍦板潃闇�鍐呴摼璁块棶鍒欎互`http(s)://`寮�澶�"
+ placement="top"
+ >
+ <i class="el-icon-question"></i>
</el-tooltip>
璺敱鍦板潃
</span>
@@ -195,8 +268,11 @@
<el-col :span="12" v-if="form.menuType == 'C'">
<el-form-item prop="component">
<span slot="label">
- <el-tooltip content="璁块棶鐨勭粍浠惰矾寰勶紝濡傦細`system/user/index`锛岄粯璁ゅ湪`views`鐩綍涓�" placement="top">
- <i class="el-icon-question"></i>
+ <el-tooltip
+ content="璁块棶鐨勭粍浠惰矾寰勶紝濡傦細`system/user/index`锛岄粯璁ゅ湪`views`鐩綍涓�"
+ placement="top"
+ >
+ <i class="el-icon-question"></i>
</el-tooltip>
缁勪欢璺緞
</span>
@@ -205,10 +281,17 @@
</el-col>
<el-col :span="12" v-if="form.menuType != 'M'">
<el-form-item prop="perms">
- <el-input v-model="form.perms" placeholder="璇疯緭鍏ユ潈闄愭爣璇�" maxlength="100" />
+ <el-input
+ v-model="form.perms"
+ placeholder="璇疯緭鍏ユ潈闄愭爣璇�"
+ maxlength="100"
+ />
<span slot="label">
- <el-tooltip content="鎺у埗鍣ㄤ腑瀹氫箟鐨勬潈闄愬瓧绗︼紝濡傦細@PreAuthorize(`@ss.hasPermi('system:user:list')`)" placement="top">
- <i class="el-icon-question"></i>
+ <el-tooltip
+ content="鎺у埗鍣ㄤ腑瀹氫箟鐨勬潈闄愬瓧绗︼紝濡傦細@PreAuthorize(`@ss.hasPermi('system:user:list')`)"
+ placement="top"
+ >
+ <i class="el-icon-question"></i>
</el-tooltip>
鏉冮檺瀛楃
</span>
@@ -218,10 +301,17 @@
<el-row>
<el-col :span="12" v-if="form.menuType == 'C'">
<el-form-item prop="query">
- <el-input v-model="form.query" placeholder="璇疯緭鍏ヨ矾鐢卞弬鏁�" maxlength="255" />
+ <el-input
+ v-model="form.query"
+ placeholder="璇疯緭鍏ヨ矾鐢卞弬鏁�"
+ maxlength="255"
+ />
<span slot="label">
- <el-tooltip content='璁块棶璺敱鐨勯粯璁や紶閫掑弬鏁帮紝濡傦細`{"id": 1, "name": "ry"}`' placement="top">
- <i class="el-icon-question"></i>
+ <el-tooltip
+ content='璁块棶璺敱鐨勯粯璁や紶閫掑弬鏁帮紝濡傦細`{"id": 1, "name": "ry"}`'
+ placement="top"
+ >
+ <i class="el-icon-question"></i>
</el-tooltip>
璺敱鍙傛暟
</span>
@@ -230,8 +320,11 @@
<el-col :span="12" v-if="form.menuType == 'C'">
<el-form-item prop="isCache">
<span slot="label">
- <el-tooltip content="閫夋嫨鏄垯浼氳`keep-alive`缂撳瓨锛岄渶瑕佸尮閰嶇粍浠剁殑`name`鍜屽湴鍧�淇濇寔涓�鑷�" placement="top">
- <i class="el-icon-question"></i>
+ <el-tooltip
+ content="閫夋嫨鏄垯浼氳`keep-alive`缂撳瓨锛岄渶瑕佸尮閰嶇粍浠剁殑`name`鍜屽湴鍧�淇濇寔涓�鑷�"
+ placement="top"
+ >
+ <i class="el-icon-question"></i>
</el-tooltip>
鏄惁缂撳瓨
</span>
@@ -246,8 +339,11 @@
<el-col :span="12" v-if="form.menuType != 'F'">
<el-form-item prop="visible">
<span slot="label">
- <el-tooltip content="閫夋嫨闅愯棌鍒欒矾鐢卞皢涓嶄細鍑虹幇鍦ㄤ晶杈规爮锛屼絾浠嶇劧鍙互璁块棶" placement="top">
- <i class="el-icon-question"></i>
+ <el-tooltip
+ content="閫夋嫨闅愯棌鍒欒矾鐢卞皢涓嶄細鍑虹幇鍦ㄤ晶杈规爮锛屼絾浠嶇劧鍙互璁块棶"
+ placement="top"
+ >
+ <i class="el-icon-question"></i>
</el-tooltip>
鏄剧ず鐘舵��
</span>
@@ -256,15 +352,19 @@
v-for="dict in dict.type.sys_show_hide"
:key="dict.value"
:label="dict.value"
- >{{dict.label}}</el-radio>
+ >{{ dict.label }}</el-radio
+ >
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="status">
<span slot="label">
- <el-tooltip content="閫夋嫨鍋滅敤鍒欒矾鐢卞皢涓嶄細鍑虹幇鍦ㄤ晶杈规爮锛屼篃涓嶈兘琚闂�" placement="top">
- <i class="el-icon-question"></i>
+ <el-tooltip
+ content="閫夋嫨鍋滅敤鍒欒矾鐢卞皢涓嶄細鍑虹幇鍦ㄤ晶杈规爮锛屼篃涓嶈兘琚闂�"
+ placement="top"
+ >
+ <i class="el-icon-question"></i>
</el-tooltip>
鑿滃崟鐘舵��
</span>
@@ -273,8 +373,30 @@
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
- >{{dict.label}}</el-radio>
+ >{{ dict.label }}</el-radio
+ >
</el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12" v-if="form.menuType != 'M'">
+ <el-form-item prop="status">
+ <span slot="label">
+ <el-tooltip
+ content="閫夋嫨鍙湅鎴戞寜閽紝鍦ㄨ鑹茬鐞嗗鍙厤缃彧鐪嬫垜鐨勬暟鎹潈闄�"
+ placement="top"
+ >
+ <i class="el-icon-question"></i>
+ </el-tooltip>
+ 鍙湅鎴戞寜閽�
+ </span>
+ <el-switch
+ v-model="form.isRersonalButton"
+ inactive-text="涓嶆樉绀�"
+ active-text="鏄剧ず"
+ :inactive-value="0"
+ :active-value="1"
+ >
+ </el-switch>
</el-form-item>
</el-col>
</el-row>
@@ -288,14 +410,20 @@
</template>
<script>
-import { listMenu, getMenu, delMenu, addMenu, updateMenu } from "@/api/system/menu";
+import {
+ listMenu,
+ getMenu,
+ delMenu,
+ addMenu,
+ updateMenu,
+} from "@/api/system/menu";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import IconSelect from "@/components/IconSelect";
export default {
name: "Menu",
- dicts: ['sys_show_hide', 'sys_normal_disable'],
+ dicts: ["sys_show_hide", "sys_normal_disable"],
components: { Treeselect, IconSelect },
data() {
return {
@@ -318,22 +446,22 @@
// 鏌ヨ鍙傛暟
queryParams: {
menuName: undefined,
- visible: undefined
+ visible: undefined,
},
// 琛ㄥ崟鍙傛暟
form: {},
// 琛ㄥ崟鏍¢獙
rules: {
menuName: [
- { required: true, message: "鑿滃崟鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "鑿滃崟鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
],
orderNum: [
- { required: true, message: "鑿滃崟椤哄簭涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "鑿滃崟椤哄簭涓嶈兘涓虹┖", trigger: "blur" },
],
path: [
- { required: true, message: "璺敱鍦板潃涓嶈兘涓虹┖", trigger: "blur" }
- ]
- }
+ { required: true, message: "璺敱鍦板潃涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ },
};
},
created() {
@@ -347,7 +475,7 @@
/** 鏌ヨ鑿滃崟鍒楄〃 */
getList() {
this.loading = true;
- listMenu(this.queryParams).then(response => {
+ listMenu(this.queryParams).then((response) => {
this.menuList = this.handleTree(response.data, "menuId");
this.loading = false;
});
@@ -360,14 +488,14 @@
return {
id: node.menuId,
label: node.menuName,
- children: node.children
+ children: node.children,
};
},
/** 鏌ヨ鑿滃崟涓嬫媺鏍戠粨鏋� */
getTreeselect() {
- listMenu().then(response => {
+ listMenu().then((response) => {
this.menuOptions = [];
- const menu = { menuId: 0, menuName: '涓荤被鐩�', children: [] };
+ const menu = { menuId: 0, menuName: "涓荤被鐩�", children: [] };
menu.children = this.handleTree(response.data, "menuId");
this.menuOptions.push(menu);
});
@@ -389,7 +517,8 @@
isFrame: "1",
isCache: "0",
visible: "0",
- status: "0"
+ status: "0",
+ isRersonalButton: 0,
};
this.resetForm("form");
},
@@ -426,24 +555,25 @@
handleUpdate(row) {
this.reset();
this.getTreeselect();
- getMenu(row.menuId).then(response => {
+ getMenu(row.menuId).then((response) => {
this.form = response.data;
+ this.form.isRersonalButton = Number(this.form.isRersonalButton);
this.open = true;
this.title = "淇敼鑿滃崟";
});
},
/** 鎻愪氦鎸夐挳 */
- submitForm: function() {
- this.$refs["form"].validate(valid => {
+ submitForm: function () {
+ this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.menuId != undefined) {
- updateMenu(this.form).then(response => {
+ updateMenu(this.form).then((response) => {
this.$modal.msgSuccess("淇敼鎴愬姛");
this.open = false;
this.getList();
});
} else {
- addMenu(this.form).then(response => {
+ addMenu(this.form).then((response) => {
this.$modal.msgSuccess("鏂板鎴愬姛");
this.open = false;
this.getList();
@@ -454,13 +584,17 @@
},
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
handleDelete(row) {
- this.$modal.confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.menuName + '"鐨勬暟鎹」锛�').then(function() {
- return delMenu(row.menuId);
- }).then(() => {
- this.getList();
- this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- }).catch(() => {});
- }
- }
+ this.$modal
+ .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.menuName + '"鐨勬暟鎹」锛�')
+ .then(function () {
+ return delMenu(row.menuId);
+ })
+ .then(() => {
+ this.getList();
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ },
};
</script>
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
index 0f5f894..0c3b2c2 100644
--- a/src/views/system/role/index.vue
+++ b/src/views/system/role/index.vue
@@ -2,7 +2,13 @@
<div class="app-container">
<div class="search">
<div>
- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+ <el-form
+ :model="queryParams"
+ ref="queryForm"
+ size="small"
+ :inline="true"
+ v-show="showSearch"
+ >
<el-form-item label="瑙掕壊鍚嶇О" prop="roleName">
<el-input
v-model="queryParams.roleName"
@@ -48,21 +54,50 @@
></el-date-picker>
</el-form-item>
<el-form-item>
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鏌� 璇�</el-button>
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲� 缃�</el-button>
+ <el-button
+ type="primary"
+ icon="el-icon-search"
+ size="mini"
+ @click="handleQuery"
+ >鏌� 璇�</el-button
+ >
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+ >閲� 缃�</el-button
+ >
</el-form-item>
</el-form>
</div>
<div class="addButton mb8">
- <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:role:add']">鏂板</el-button>
+ <el-button
+ type="primary"
+ icon="el-icon-plus"
+ size="mini"
+ @click="handleAdd"
+ v-hasPermi="['system:role:add']"
+ >鏂板</el-button
+ >
</div>
</div>
- <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
+ <el-table
+ v-loading="loading"
+ :data="roleList"
+ @selection-change="handleSelectionChange"
+ >
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="瑙掕壊缂栧彿" prop="roleId" width="120" />
- <el-table-column label="瑙掕壊鍚嶇О" prop="roleName" :show-overflow-tooltip="true" width="150" />
- <el-table-column label="鏉冮檺瀛楃" prop="roleKey" :show-overflow-tooltip="true" width="150" />
+ <el-table-column
+ label="瑙掕壊鍚嶇О"
+ prop="roleName"
+ :show-overflow-tooltip="true"
+ width="150"
+ />
+ <el-table-column
+ label="鏉冮檺瀛楃"
+ prop="roleKey"
+ :show-overflow-tooltip="true"
+ width="150"
+ />
<el-table-column label="鏄剧ず椤哄簭" prop="roleSort" width="100" />
<el-table-column label="鐘舵��" align="center" width="100">
<template slot-scope="scope">
@@ -74,12 +109,21 @@
></el-switch>
</template>
</el-table-column>
- <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180">
+ <el-table-column
+ label="鍒涘缓鏃堕棿"
+ align="center"
+ prop="createTime"
+ width="180"
+ >
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+ <el-table-column
+ label="鎿嶄綔"
+ align="center"
+ class-name="small-padding fixed-width"
+ >
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
<el-button
size="mini"
@@ -87,35 +131,38 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:role:edit']"
- >淇敼</el-button>
+ >淇敼</el-button
+ >
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:role:remove']"
- >鍒犻櫎</el-button>
+ >鍒犻櫎</el-button
+ >
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleView(scope.row)"
- >璇︾粏</el-button>
-<!-- <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">-->
-<!-- <el-button size="mini" type="text" icon="el-icon-d-arrow-right">鏇村</el-button>-->
-<!-- <el-dropdown-menu slot="dropdown">-->
-<!-- <el-dropdown-item command="handleDataScope" icon="el-icon-circle-check"-->
-<!-- v-hasPermi="['system:role:edit']">鏁版嵁鏉冮檺</el-dropdown-item>-->
-<!-- <el-dropdown-item command="handleAuthUser" icon="el-icon-user"-->
-<!-- v-hasPermi="['system:role:edit']">鍒嗛厤鐢ㄦ埛</el-dropdown-item>-->
-<!-- </el-dropdown-menu>-->
-<!-- </el-dropdown>-->
+ >璇︾粏</el-button
+ >
+ <!-- <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">-->
+ <!-- <el-button size="mini" type="text" icon="el-icon-d-arrow-right">鏇村</el-button>-->
+ <!-- <el-dropdown-menu slot="dropdown">-->
+ <!-- <el-dropdown-item command="handleDataScope" icon="el-icon-circle-check"-->
+ <!-- v-hasPermi="['system:role:edit']">鏁版嵁鏉冮檺</el-dropdown-item>-->
+ <!-- <el-dropdown-item command="handleAuthUser" icon="el-icon-user"-->
+ <!-- v-hasPermi="['system:role:edit']">鍒嗛厤鐢ㄦ埛</el-dropdown-item>-->
+ <!-- </el-dropdown-menu>-->
+ <!-- </el-dropdown>-->
</template>
</el-table-column>
</el-table>
<pagination
- v-show="total>0"
+ v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@@ -126,33 +173,68 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="瑙掕壊鍚嶇О" prop="roleName">
- <el-input v-model="form.roleName" placeholder="璇疯緭鍏ヨ鑹插悕绉�" :disabled="title === '鏌ョ湅瑙掕壊'"/>
+ <el-input
+ v-model="form.roleName"
+ placeholder="璇疯緭鍏ヨ鑹插悕绉�"
+ :disabled="title === '鏌ョ湅瑙掕壊'"
+ />
</el-form-item>
<el-form-item prop="roleKey">
<span slot="label">
- <el-tooltip content="鎺у埗鍣ㄤ腑瀹氫箟鐨勬潈闄愬瓧绗︼紝濡傦細@PreAuthorize(`@ss.hasRole('admin')`)" placement="top">
+ <el-tooltip
+ content="鎺у埗鍣ㄤ腑瀹氫箟鐨勬潈闄愬瓧绗︼紝濡傦細@PreAuthorize(`@ss.hasRole('admin')`)"
+ placement="top"
+ >
<i class="el-icon-question"></i>
</el-tooltip>
鏉冮檺瀛楃
</span>
- <el-input v-model="form.roleKey" placeholder="璇疯緭鍏ユ潈闄愬瓧绗�" :disabled="title === '鏌ョ湅瑙掕壊'"/>
+ <el-input
+ v-model="form.roleKey"
+ placeholder="璇疯緭鍏ユ潈闄愬瓧绗�"
+ :disabled="title === '鏌ョ湅瑙掕壊'"
+ />
</el-form-item>
<el-form-item label="瑙掕壊椤哄簭" prop="roleSort">
- <el-input-number v-model="form.roleSort" controls-position="right" :min="0" :disabled="title === '鏌ョ湅瑙掕壊'"/>
+ <el-input-number
+ v-model="form.roleSort"
+ controls-position="right"
+ :min="0"
+ :disabled="title === '鏌ョ湅瑙掕壊'"
+ />
</el-form-item>
<el-form-item label="鐘舵��">
- <el-radio-group v-model="form.status" :disabled="title === '鏌ョ湅瑙掕壊'">
+ <el-radio-group
+ v-model="form.status"
+ :disabled="title === '鏌ョ湅瑙掕壊'"
+ >
<el-radio
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
- >{{dict.label}}</el-radio>
+ >{{ dict.label }}</el-radio
+ >
</el-radio-group>
</el-form-item>
<el-form-item label="鑿滃崟鏉冮檺">
- <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')" v-if="title !== '鏌ョ湅瑙掕壊'">灞曞紑/鎶樺彔</el-checkbox>
- <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')" v-if="title !== '鏌ョ湅瑙掕壊'">鍏ㄩ��/鍏ㄤ笉閫�</el-checkbox>
- <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')" v-if="title !== '鏌ョ湅瑙掕壊'">鐖跺瓙鑱斿姩</el-checkbox>
+ <el-checkbox
+ v-model="menuExpand"
+ @change="handleCheckedTreeExpand($event, 'menu')"
+ v-if="title !== '鏌ョ湅瑙掕壊'"
+ >灞曞紑/鎶樺彔</el-checkbox
+ >
+ <el-checkbox
+ v-model="menuNodeAll"
+ @change="handleCheckedTreeNodeAll($event, 'menu')"
+ v-if="title !== '鏌ョ湅瑙掕壊'"
+ >鍏ㄩ��/鍏ㄤ笉閫�</el-checkbox
+ >
+ <el-checkbox
+ v-model="form.menuCheckStrictly"
+ @change="handleCheckedTreeConnect($event, 'menu')"
+ v-if="title !== '鏌ョ湅瑙掕壊'"
+ >鐖跺瓙鑱斿姩</el-checkbox
+ >
<el-tree
:disabled="title === '鏌ョ湅瑙掕壊'"
class="tree-border"
@@ -163,23 +245,53 @@
:check-strictly="!form.menuCheckStrictly"
empty-text="鍔犺浇涓紝璇风◢鍊�"
:props="defaultProps"
- ></el-tree>
+ >
+ <span class="custom-tree-node" slot-scope="{ node, data }">
+ <span>{{ node.label }}</span>
+ <span>
+ <el-checkbox
+ v-model="data.isRersonal"
+ :true-label="1"
+ :false-label="0"
+ v-if="data.isRersonalButton == 1"
+ @change="(m) => chooseMe(m, data)"
+ :disabled="title === '鏌ョ湅瑙掕壊'"
+ >鍙湅鎴�</el-checkbox
+ >
+ </span>
+ </span>
+ </el-tree>
</el-form-item>
<el-form-item label="澶囨敞">
- <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" :disabled="title === '鏌ョ湅瑙掕壊'"></el-input>
+ <el-input
+ v-model="form.remark"
+ type="textarea"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ :disabled="title === '鏌ョ湅瑙掕壊'"
+ ></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">鍙� 娑�</el-button>
- <el-button type="primary" @click="submitForm" v-if="title !== '鏌ョ湅瑙掕壊'">纭� 瀹�</el-button>
+ <el-button
+ type="primary"
+ @click="submitForm"
+ v-if="title !== '鏌ョ湅瑙掕壊'"
+ >纭� 瀹�</el-button
+ >
</div>
</el-dialog>
<!-- 鍒嗛厤瑙掕壊鏁版嵁鏉冮檺瀵硅瘽妗� -->
- <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
+ <el-dialog
+ :title="title"
+ :visible.sync="openDataScope"
+ width="500px"
+ append-to-body
+ >
<el-form :model="form" label-width="80px">
<el-form-item label="瑙掕壊鍚嶇О">
- <el-input v-model="form.roleName" :disabled="true"/>
+ <el-input v-model="form.roleName" :disabled="true" />
</el-form-item>
<el-form-item label="鏉冮檺瀛楃">
<el-input v-model="form.roleKey" :disabled="true" />
@@ -195,9 +307,21 @@
</el-select>
</el-form-item>
<el-form-item label="鏁版嵁鏉冮檺" v-show="form.dataScope == 2">
- <el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">灞曞紑/鎶樺彔</el-checkbox>
- <el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">鍏ㄩ��/鍏ㄤ笉閫�</el-checkbox>
- <el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">鐖跺瓙鑱斿姩</el-checkbox>
+ <el-checkbox
+ v-model="deptExpand"
+ @change="handleCheckedTreeExpand($event, 'dept')"
+ >灞曞紑/鎶樺彔</el-checkbox
+ >
+ <el-checkbox
+ v-model="deptNodeAll"
+ @change="handleCheckedTreeNodeAll($event, 'dept')"
+ >鍏ㄩ��/鍏ㄤ笉閫�</el-checkbox
+ >
+ <el-checkbox
+ v-model="form.deptCheckStrictly"
+ @change="handleCheckedTreeConnect($event, 'dept')"
+ >鐖跺瓙鑱斿姩</el-checkbox
+ >
<el-tree
class="tree-border"
:data="deptOptions"
@@ -220,14 +344,28 @@
</template>
<script>
-import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
-import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
+import {
+ listRole,
+ getRole,
+ delRole,
+ addRole,
+ updateRole,
+ dataScope,
+ changeRoleStatus,
+ deptTreeSelect,
+} from "@/api/system/role";
+import {
+ treeselect as menuTreeselect,
+ roleMenuTreeselect,
+} from "@/api/system/menu";
export default {
name: "Role",
- dicts: ['sys_normal_disable'],
+ dicts: ["sys_normal_disable"],
data() {
return {
+ // 鍙湅鎴戞暟缁�
+ isRersonalMenuIds: [],
// 閬僵灞�
loading: true,
// 閫変腑鏁扮粍
@@ -258,24 +396,24 @@
dataScopeOptions: [
{
value: "1",
- label: "鍏ㄩ儴鏁版嵁鏉冮檺"
+ label: "鍏ㄩ儴鏁版嵁鏉冮檺",
},
{
value: "2",
- label: "鑷畾鏁版嵁鏉冮檺"
+ label: "鑷畾鏁版嵁鏉冮檺",
},
{
value: "3",
- label: "鏈儴闂ㄦ暟鎹潈闄�"
+ label: "鏈儴闂ㄦ暟鎹潈闄�",
},
{
value: "4",
- label: "鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺"
+ label: "鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺",
},
{
value: "5",
- label: "浠呮湰浜烘暟鎹潈闄�"
- }
+ label: "浠呮湰浜烘暟鎹潈闄�",
+ },
],
// 鑿滃崟鍒楄〃
menuOptions: [],
@@ -287,36 +425,46 @@
pageSize: 10,
roleName: undefined,
roleKey: undefined,
- status: undefined
+ status: undefined,
},
// 琛ㄥ崟鍙傛暟
form: {},
defaultProps: {
children: "children",
- label: "label"
+ label: "label",
},
// 琛ㄥ崟鏍¢獙
rules: {
roleName: [
- { required: true, message: "瑙掕壊鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "瑙掕壊鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
],
roleKey: [
- { required: true, message: "鏉冮檺瀛楃涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "鏉冮檺瀛楃涓嶈兘涓虹┖", trigger: "blur" },
],
roleSort: [
- { required: true, message: "瑙掕壊椤哄簭涓嶈兘涓虹┖", trigger: "blur" }
- ]
- }
+ { required: true, message: "瑙掕壊椤哄簭涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ },
};
},
created() {
this.getList();
},
methods: {
+ // 鍙湅鎴�
+ chooseMe(val, data) {
+ let index = this.isRersonalMenuIds.findIndex((m) => m == data.id);
+ if (index < 0 && val == 1) {
+ this.isRersonalMenuIds.push(data.id);
+ } else if (val == 0 && index > -1) {
+ this.isRersonalMenuIds.splice(index, 1);
+ }
+ },
/** 鏌ヨ瑙掕壊鍒楄〃 */
getList() {
this.loading = true;
- listRole(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+ listRole(this.addDateRange(this.queryParams, this.dateRange)).then(
+ (response) => {
this.roleList = response.rows;
this.total = response.total;
this.loading = false;
@@ -325,7 +473,7 @@
},
/** 鏌ヨ鑿滃崟鏍戠粨鏋� */
getMenuTreeselect() {
- menuTreeselect().then(response => {
+ menuTreeselect().then((response) => {
this.menuOptions = response.data;
});
},
@@ -349,14 +497,14 @@
},
/** 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戠粨鏋� */
getRoleMenuTreeselect(roleId) {
- return roleMenuTreeselect(roleId).then(response => {
+ return roleMenuTreeselect(roleId).then((response) => {
this.menuOptions = response.menus;
return response;
});
},
/** 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋� */
getDeptTree(roleId) {
- return deptTreeSelect(roleId).then(response => {
+ return deptTreeSelect(roleId).then((response) => {
this.deptOptions = response.depts;
return response;
});
@@ -364,13 +512,17 @@
// 瑙掕壊鐘舵�佷慨鏀�
handleStatusChange(row) {
let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
- this.$modal.confirm('纭瑕�"' + text + '""' + row.roleName + '"瑙掕壊鍚楋紵').then(function() {
- return changeRoleStatus(row.roleId, row.status);
- }).then(() => {
- this.$modal.msgSuccess(text + "鎴愬姛");
- }).catch(function() {
- row.status = row.status === "0" ? "1" : "0";
- });
+ this.$modal
+ .confirm('纭瑕�"' + text + '""' + row.roleName + '"瑙掕壊鍚楋紵')
+ .then(function () {
+ return changeRoleStatus(row.roleId, row.status);
+ })
+ .then(() => {
+ this.$modal.msgSuccess(text + "鎴愬姛");
+ })
+ .catch(function () {
+ row.status = row.status === "0" ? "1" : "0";
+ });
},
// 鍙栨秷鎸夐挳
cancel() {
@@ -387,22 +539,23 @@
if (this.$refs.menu != undefined) {
this.$refs.menu.setCheckedKeys([]);
}
- this.menuExpand = false,
- this.menuNodeAll = false,
- this.deptExpand = true,
- this.deptNodeAll = false,
- this.form = {
- roleId: undefined,
- roleName: undefined,
- roleKey: undefined,
- roleSort: 0,
- status: "0",
- menuIds: [],
- deptIds: [],
- menuCheckStrictly: true,
- deptCheckStrictly: true,
- remark: undefined
- };
+ (this.menuExpand = false),
+ (this.menuNodeAll = false),
+ (this.deptExpand = true),
+ (this.deptNodeAll = false),
+ (this.form = {
+ roleId: undefined,
+ roleName: undefined,
+ roleKey: undefined,
+ roleSort: 0,
+ status: "0",
+ menuIds: [],
+ deptIds: [],
+ isRersonalMenuIds: [],
+ menuCheckStrictly: true,
+ deptCheckStrictly: true,
+ remark: undefined,
+ });
this.resetForm("form");
},
/** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -418,9 +571,9 @@
},
// 澶氶�夋閫変腑鏁版嵁
handleSelectionChange(selection) {
- this.ids = selection.map(item => item.roleId)
- this.single = selection.length!=1
- this.multiple = !selection.length
+ this.ids = selection.map((item) => item.roleId);
+ this.single = selection.length != 1;
+ this.multiple = !selection.length;
},
// 鏇村鎿嶄綔瑙﹀彂
handleCommand(command, row) {
@@ -437,12 +590,12 @@
},
// 鏍戞潈闄愶紙灞曞紑/鎶樺彔锛�
handleCheckedTreeExpand(value, type) {
- if (type == 'menu') {
+ if (type == "menu") {
let treeList = this.menuOptions;
for (let i = 0; i < treeList.length; i++) {
this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
}
- } else if (type == 'dept') {
+ } else if (type == "dept") {
let treeList = this.deptOptions;
for (let i = 0; i < treeList.length; i++) {
this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
@@ -451,18 +604,18 @@
},
// 鏍戞潈闄愶紙鍏ㄩ��/鍏ㄤ笉閫夛級
handleCheckedTreeNodeAll(value, type) {
- if (type == 'menu') {
- this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
- } else if (type == 'dept') {
- this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
+ if (type == "menu") {
+ this.$refs.menu.setCheckedNodes(value ? this.menuOptions : []);
+ } else if (type == "dept") {
+ this.$refs.dept.setCheckedNodes(value ? this.deptOptions : []);
}
},
// 鏍戞潈闄愶紙鐖跺瓙鑱斿姩锛�
handleCheckedTreeConnect(value, type) {
- if (type == 'menu') {
- this.form.menuCheckStrictly = value ? true: false;
- } else if (type == 'dept') {
- this.form.deptCheckStrictly = value ? true: false;
+ if (type == "menu") {
+ this.form.menuCheckStrictly = value ? true : false;
+ } else if (type == "dept") {
+ this.form.deptCheckStrictly = value ? true : false;
}
},
/** 鏂板鎸夐挳鎿嶄綔 */
@@ -475,48 +628,48 @@
/** 淇敼鎸夐挳鎿嶄綔 */
handleUpdate(row) {
this.reset();
- const roleId = row.roleId || this.ids
+ const roleId = row.roleId || this.ids;
const roleMenu = this.getRoleMenuTreeselect(roleId);
- getRole(roleId).then(response => {
+ getRole(roleId).then((response) => {
this.form = response.data;
this.open = true;
this.$nextTick(() => {
- roleMenu.then(res => {
- let checkedKeys = res.checkedKeys
+ roleMenu.then((res) => {
+ let checkedKeys = res.checkedKeys;
checkedKeys.forEach((v) => {
- this.$nextTick(()=>{
- this.$refs.menu.setChecked(v, true ,false);
- })
- })
+ this.$nextTick(() => {
+ this.$refs.menu.setChecked(v, true, false);
+ });
+ });
});
});
});
this.title = "淇敼瑙掕壊";
},
// 鏌ョ湅瑙掕壊璇︽儏
- handleView (row) {
+ handleView(row) {
this.title = "鏌ョ湅瑙掕壊";
this.reset();
- const roleId = row.roleId || this.ids
+ const roleId = row.roleId || this.ids;
const roleMenu = this.getRoleMenuTreeselect(roleId);
- getRole(roleId).then(response => {
+ getRole(roleId).then((response) => {
this.form = response.data;
this.open = true;
this.$nextTick(() => {
- roleMenu.then(res => {
- let checkedKeys = res.checkedKeys
+ roleMenu.then((res) => {
+ let checkedKeys = res.checkedKeys;
checkedKeys.forEach((v) => {
- this.$nextTick(()=>{
- this.$refs.menu.setChecked(v, true ,false);
- })
- })
+ this.$nextTick(() => {
+ this.$refs.menu.setChecked(v, true, false);
+ });
+ });
});
});
});
},
/** 閫夋嫨瑙掕壊鏉冮檺鑼冨洿瑙﹀彂 */
dataScopeSelectChange(value) {
- if(value !== '2') {
+ if (value !== "2") {
this.$refs.dept.setCheckedKeys([]);
}
},
@@ -524,11 +677,11 @@
handleDataScope(row) {
this.reset();
const deptTreeSelect = this.getDeptTree(row.roleId);
- getRole(row.roleId).then(response => {
+ getRole(row.roleId).then((response) => {
this.form = response.data;
this.openDataScope = true;
this.$nextTick(() => {
- deptTreeSelect.then(res => {
+ deptTreeSelect.then((res) => {
this.$refs.dept.setCheckedKeys(res.checkedKeys);
});
});
@@ -536,24 +689,26 @@
this.title = "鍒嗛厤鏁版嵁鏉冮檺";
},
/** 鍒嗛厤鐢ㄦ埛鎿嶄綔 */
- handleAuthUser: function(row) {
+ handleAuthUser: function (row) {
const roleId = row.roleId;
this.$router.push("/system/role-auth/user/" + roleId);
},
/** 鎻愪氦鎸夐挳 */
- submitForm: function() {
- this.$refs["form"].validate(valid => {
+ submitForm: function () {
+ this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.roleId != undefined) {
this.form.menuIds = this.getMenuAllCheckedKeys();
- updateRole(this.form).then(response => {
+ this.form.isRersonalMenuIds = this.isRersonalMenuIds;
+ updateRole(this.form).then((response) => {
this.$modal.msgSuccess("淇敼鎴愬姛");
this.open = false;
this.getList();
});
} else {
this.form.menuIds = this.getMenuAllCheckedKeys();
- addRole(this.form).then(response => {
+ this.form.isRersonalMenuIds = this.isRersonalMenuIds;
+ addRole(this.form).then((response) => {
this.$modal.msgSuccess("鏂板鎴愬姛");
this.open = false;
this.getList();
@@ -563,10 +718,10 @@
});
},
/** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
- submitDataScope: function() {
+ submitDataScope: function () {
if (this.form.roleId != undefined) {
this.form.deptIds = this.getDeptAllCheckedKeys();
- dataScope(this.form).then(response => {
+ dataScope(this.form).then((response) => {
this.$modal.msgSuccess("淇敼鎴愬姛");
this.openDataScope = false;
this.getList();
@@ -576,20 +731,28 @@
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
handleDelete(row) {
const roleIds = row.roleId || this.ids;
- this.$modal.confirm('鏄惁纭鍒犻櫎瑙掕壊缂栧彿涓�"' + roleIds + '"鐨勬暟鎹」锛�').then(function() {
- return delRole(roleIds);
- }).then(() => {
- this.getList();
- this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- }).catch(() => {});
+ this.$modal
+ .confirm('鏄惁纭鍒犻櫎瑙掕壊缂栧彿涓�"' + roleIds + '"鐨勬暟鎹」锛�')
+ .then(function () {
+ return delRole(roleIds);
+ })
+ .then(() => {
+ this.getList();
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ })
+ .catch(() => {});
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.download('system/role/export', {
- ...this.queryParams
- }, `role_${new Date().getTime()}.xlsx`)
- }
- }
+ this.download(
+ "system/role/export",
+ {
+ ...this.queryParams,
+ },
+ `role_${new Date().getTime()}.xlsx`
+ );
+ },
+ },
};
</script>
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 6dbbf19..f7d5bc1 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -6,7 +6,7 @@
class="default-theme"
>
<!--閮ㄩ棬鏁版嵁-->
- <pane size="12">
+ <pane size="14">
<el-col>
<div class="head-container addButton">
<el-input
@@ -17,7 +17,7 @@
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
/>
- <el-button
+ <!-- <el-button
style="margin-left: 4px"
type="primary"
plain
@@ -25,7 +25,7 @@
size="mini"
circle
@click="addSchema"
- ></el-button>
+ ></el-button> -->
</div>
<div class="head-container">
<el-tree
@@ -43,7 +43,7 @@
</el-col>
</pane>
<!--鐢ㄦ埛鏁版嵁-->
- <pane size="88">
+ <pane size="86">
<div class="search_form">
<div>
<el-form
@@ -297,9 +297,19 @@
v-for="item in postOptions"
:key="item.id"
:label="item.company"
- :value="item.id + ''"
+ :value="item.id"
></el-option>
</el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="褰掑睘閮ㄩ棬" prop="deptId">
+ <treeselect
+ v-model="form.deptId"
+ :options="enabledDeptOptions"
+ :show-count="true"
+ placeholder="璇烽�夋嫨褰掑睘閮ㄩ棬"
+ />
</el-form-item>
</el-col>
</el-row>
@@ -310,14 +320,15 @@
class="avatar-uploader"
:action="uploadAction"
:show-file-list="false"
+ :headers="upload.headers"
accept=".png, .jpg, .jpeg, .gif"
:on-error="handleUploadError"
:on-success="handleUploadSuccess"
:before-upload="handleBeforeUpload"
>
<img
- v-if="signatureUrl"
- :src="signatureUrl"
+ v-if="form.signatureUrl"
+ :src="javaApi + '/img/' + form.signatureUrl"
class="avatar"
alt=""
/>
@@ -331,14 +342,15 @@
class="avatar-uploader"
:action="uploadAction"
:show-file-list="false"
+ :headers="upload.headers"
accept=".png, .jpg, .jpeg, .gif"
:on-error="handleUploadError1"
:on-success="handleUploadSuccess1"
:before-upload="handleBeforeUpload1"
>
<img
- v-if="pictureUrl"
- :src="pictureUrl"
+ v-if="form.pictureUrl"
+ :src="javaApi + '/img/' + form.pictureUrl"
class="avatar"
alt=""
/>
@@ -423,7 +435,7 @@
<el-tree
:data="datathirdParty"
node-key="companyId"
- :props="defaultProps"
+ :props="companyProps"
@node-click="nodeClick2"
style="height: calc(100% - 42px)"
@node-expand="nodeOpen0"
@@ -462,8 +474,7 @@
<el-table-column type="selection" width="50"> </el-table-column>
<el-table-column prop="employeeID" label="鍛樺伐鍙�">
</el-table-column>
- <el-table-column prop="nickName" label="鍛樺伐濮撳悕">
- </el-table-column>
+ <el-table-column prop="name" label="鍛樺伐濮撳悕"> </el-table-column>
<el-table-column prop="department" label="閮ㄩ棬" min-width="200">
</el-table-column>
<el-table-column
@@ -586,6 +597,10 @@
children: "children",
label: "label",
},
+ companyProps: {
+ children: "children",
+ label: "companyName",
+ },
// 鐢ㄦ埛瀵煎叆鍙傛暟
upload: {
// 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
@@ -602,8 +617,6 @@
url: process.env.VUE_APP_BASE_API + "/system/user/importData",
},
uploadAction: process.env.VUE_APP_BASE_API + "/deviceScope/uploadFile",
- signatureUrl: "",
- pictureUrl: "",
// 鏌ヨ鍙傛暟
queryParams: {
pageNum: 1,
@@ -627,12 +640,14 @@
rules: {
nickName: [{ required: true, message: "璇峰~鍐欏鍚�", trigger: "blur" }],
userName: [{ required: true, message: "璇峰~鍐欒处鍙�", trigger: "blur" }],
- nameEn: [{ required: true, message: "璇疯緭鍏ュ鍚岴N", trigger: "blur" }],
+ // nameEn: [
+ // { required: true, message: "璇疯緭鍏ュ鍚岴N", trigger: "blur" }
+ // ],
status: [{ required: true, message: "璇烽�夋嫨鐘舵��", trigger: "change" }],
roleIds: [{ required: true, message: "璇烽�夋嫨瑙掕壊", trigger: "change" }],
- password: [
- { required: true, message: "瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
- ],
+ // password: [
+ // { required: true, message: "瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
+ // ],
phonenumber: [
{
required: true,
@@ -660,6 +675,7 @@
fatherId: 10001,
nickName: "",
},
+ multipleSelection: [],
};
},
watch: {
@@ -781,7 +797,11 @@
status: "0",
company: "",
roleIds: [],
+ signatureUrl: "",
+ pictureUrl: "",
};
+ // this.signatureUrl = '';
+ // this.pictureUrl = ''
this.resetForm("form");
},
/** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -802,6 +822,7 @@
this.ids = selection.map((item) => item.userId);
this.single = selection.length != 1;
this.multiple = !selection.length;
+ this.multipleSelection = selection;
},
// 鏇村鎿嶄綔瑙﹀彂
handleCommand(command, row) {
@@ -840,8 +861,8 @@
.catch(() => {
this.thirdPartyLoading = false;
});
- if (this.componentData.entity.roleId > 10000)
- this.$message.warning("鐢变簬鏈�変腑鍏蜂綋瑙掕壊锛屾柊澧炵敤鎴峰皢鎴愪负榛樿瑙掕壊");
+ // if (this.componentData.entity.roleId > 10000)
+ // this.$message.warning("鐢变簬鏈�変腑鍏蜂綋瑙掕壊锛屾柊澧炵敤鎴峰皢鎴愪负榛樿瑙掕壊");
},
tranListToTreeData(list, rootValue) {
const arr = [];
@@ -889,7 +910,7 @@
}
},
nodeOpen0(data, node, el) {
- this.currentCompaniesList[node.level - nodeOpen01] = data.id;
+ this.currentCompaniesList[node.level - 1] = data.id;
},
filterNode2(value, data) {
if (!value) return true;
@@ -902,12 +923,6 @@
if (this.currentCompaniesList.length === 0) {
return this.$message.error("璇烽�夋嫨缁勭粐");
}
- /* for (let index = this.currentCompaniesList.length-1; index >1; index--) {
- let obj = this.multipleSelection.find(a=>a.companyId==this.currentCompaniesList[index])
- if(!obj){
- this.currentCompaniesList.splice(index,1)
- }
- } */
let arr = [];
this.currentCompaniesList.forEach((b) => {
let obj = this.companiesList.find((a) => a.companyId == b);
@@ -917,7 +932,7 @@
addPersonUser({
company: arr,
person: this.multipleSelection,
- roleId: this.componentData.entity.roleId,
+ roleId: null,
})
.then((res) => {
if (res.code === 201) {
@@ -938,6 +953,7 @@
/** 鏂板鎸夐挳鎿嶄綔 */
handleAdd() {
this.reset();
+ this.form.deptId = this.queryParams.deptId;
this.open = true;
selectCustomEnum().then((res) => {
this.postOptions = res.data;
@@ -956,6 +972,7 @@
const userId = row.userId || this.ids;
getUser(userId).then((response) => {
this.form = response.data;
+ this.form.password = "";
this.roleOptions = response.roles;
this.$set(this.form, "roleIds", response.roleIds);
this.open = true;
@@ -1075,18 +1092,14 @@
// 濡傛灉涓婁紶鎴愬姛
if (res.code == 200) {
// 鑾峰彇瀵屾枃鏈粍浠跺疄渚�
- let quill = this.Quill;
- // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃�
- let length = quill.getSelection().index;
- // 鎻掑叆鍥剧墖 res.url涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧�
- quill.insertEmbed(
- length,
- "image",
- process.env.VUE_APP_BASE_API + res.fileName
- );
- // 璋冩暣鍏夋爣鍒版渶鍚�
- quill.setSelection(length + 1);
- this.signatureUrl = res.data.url;
+ // let quill = this.Quill;
+ // // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃�
+ // let length = quill.getSelection().index;
+ // // 鎻掑叆鍥剧墖 res.url涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧�
+ // quill.insertEmbed(length, "image", process.env.VUE_APP_BASE_API + res.fileName);
+ // // 璋冩暣鍏夋爣鍒版渶鍚�
+ // quill.setSelection(length + 1);
+ this.form.signatureUrl = res.data.url;
} else {
this.$message.error("鍥剧墖鎻掑叆澶辫触");
}
@@ -1117,18 +1130,14 @@
// 濡傛灉涓婁紶鎴愬姛
if (res.code == 200) {
// 鑾峰彇瀵屾枃鏈粍浠跺疄渚�
- let quill = this.Quill;
- // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃�
- let length = quill.getSelection().index;
- // 鎻掑叆鍥剧墖 res.url涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧�
- quill.insertEmbed(
- length,
- "image",
- process.env.VUE_APP_BASE_API + res.fileName
- );
- // 璋冩暣鍏夋爣鍒版渶鍚�
- quill.setSelection(length + 1);
- this.pictureUrl = res.data.url;
+ // let quill = this.Quill;
+ // // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃�
+ // let length = quill.getSelection().index;
+ // // 鎻掑叆鍥剧墖 res.url涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧�
+ // quill.insertEmbed(length, "image", process.env.VUE_APP_BASE_API + res.fileName);
+ // // 璋冩暣鍏夋爣鍒版渶鍚�
+ // quill.setSelection(length + 1);
+ this.form.pictureUrl = res.data.url;
} else {
this.$message.error("鍥剧墖鎻掑叆澶辫触");
}
@@ -1144,10 +1153,12 @@
.search_form {
display: flex;
justify-content: space-between;
+
.options_button {
margin-top: 3px;
}
}
+
.avatar-uploader ::v-deep .el-upload {
border: 1px dashed #666666;
border-radius: 6px;
@@ -1155,9 +1166,11 @@
position: relative;
overflow: hidden;
}
+
.avatar-uploader ::v-deep .el-upload:hover {
border-color: #409eff;
}
+
.avatar-uploader-icon {
font-size: 20px;
color: #8c939d;
@@ -1166,11 +1179,13 @@
line-height: 90px;
text-align: center;
}
+
.avatar {
width: 90px;
height: 90px;
display: block;
}
+
.addButton {
display: flex;
align-items: flex-start;
--
Gitblit v1.9.3