From 235f0b0e3605082bb2127dc6d87f4a7eef33c6de Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 02 四月 2025 17:14:38 +0800 Subject: [PATCH] 标准库变更联调 --- src/components/Table/lims-table.vue | 9 src/api/standard/standardLibrary.js | 27 src/views/standard/standardLibrary/index.vue | 226 ++- src/views/business/materialOrder/copperOrder.vue | 584 ++++---- src/views/standard/standardLibrary/components/bindSupplierDensityDialogAsk.vue | 96 - src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue | 4 src/views/business/productOrder/components/add.vue | 2870 +++++++++++++++++++++--------------------- src/router/index.js | 20 src/views/standard/standardLibrary/audit.vue | 90 + src/views/structural/capabilityAndLaboratory/capability/index.vue | 2 10 files changed, 1,996 insertions(+), 1,932 deletions(-) diff --git a/src/api/standard/standardLibrary.js b/src/api/standard/standardLibrary.js index dc1da14..1322b23 100644 --- a/src/api/standard/standardLibrary.js +++ b/src/api/standard/standardLibrary.js @@ -271,3 +271,30 @@ data: data, }); } + +// 鏍囧噯鏍戝彉鏇磋褰� +export function standardProductListRecordPage(query) { + return request({ + url: "/updateRecord/standardProductListRecordPage", + method: "get", + params: query, + }); +} + +// 鏍囧噯鏍戝彉鏇磋褰�--鏌ヨ璇︽儏 +export function standardProductListRecordRelPage(query) { + return request({ + url: "/updateRecord/standardProductListRecordRelPage", + method: "get", + params: query, + }); +} + +// 鏌ヨ鏍囧噯搴撴槸鍚﹀瓨鍦ㄥ鏍镐腑鐘舵�� +export function existCheckingRecord(query) { + return request({ + url: "/standardTree/existCheckingRecord", + method: "get", + params: query, + }); +} diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue index f3f3b41..d1e09a6 100644 --- a/src/components/Table/lims-table.vue +++ b/src/components/Table/lims-table.vue @@ -83,7 +83,7 @@ :before-upload="(file) => beforeUpload(file, scope.$index)" :on-change="(file, fileList) => handleChange(file, fileList, scope.$index)" :on-error="(error, file, fileList) => onError(error, file, fileList, scope.$index)" - :on-success="(response, file, fileList) => handleSuccessUp(response, file, fileList, scope.$index)" + :on-success="(response, file, fileList) => handleSuccessUp(response, file, fileList, scope.$index, o)" :on-exceed="onExceed" :show-file-list="false"> <el-button :size="o.size ? o.size : 'small'" type="text" :disabled="o.disabled ? o.disabled(scope.row) : false">{{ o.name }}</el-button> @@ -345,7 +345,7 @@ setCurrent(row) { this.$refs.multipleTable.setCurrentRow(); }, - handleSuccessUp(response, file, fileList, index) { + handleSuccessUp(response, file, fileList, index, o) { if (response.code == 200) { // 娓呴櫎鏂囦欢鍒楄〃骞舵洿鏂板綋鍓嶆枃浠� if (this.uploadRefs[index]) { @@ -355,7 +355,10 @@ this.$message.success("涓婁紶鎴愬姛"); // 閲嶇疆缁勪欢鐘舵�� this.resetUploadComponent(index); - + // 鎴愬姛鍚庡洖璋冨嚱鏁� + if (o.handleSuccessUp) { + o.handleSuccessUp() + } } else { this.$message.error(response.message); } diff --git a/src/router/index.js b/src/router/index.js index 89a0732..a7cda42 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -198,6 +198,26 @@ ], }, { + // 鏍囧噯搴撳彉鏇� + path: "/audit", + component: Layout, + hidden: true, + permissions: ["standard:audit"], + children: [ + { + // 鍙樻洿璇︽儏 + path: "auditDetail", + component: () => import("@/views/standard/standardLibrary/index"), + name: "auditDetail", + meta: { + title: "鏍囧噯搴撳彉鏇磋鎯�", + activeMenu: "/standard/audit", + keepAlive: true, + }, + }, + ], + }, + { // 鐢ㄦ埛绠$悊 path: "/system/user-auth", component: Layout, diff --git a/src/views/business/materialOrder/copperOrder.vue b/src/views/business/materialOrder/copperOrder.vue index 442fcad..290383b 100644 --- a/src/views/business/materialOrder/copperOrder.vue +++ b/src/views/business/materialOrder/copperOrder.vue @@ -6,8 +6,9 @@ <span>閾滃崟涓濅笅鍗�</span> </div> <div> - <el-button v-show="active==1 && addObj.orderType === '杩涘巶妫�楠�'" :loading="noNeedCheckLoad" size="small" type="primary" @click="noNeedCheck">鍏嶆</el-button> - <el-button v-show="active==1" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button> + <el-button v-show="active == 1 && addObj.orderType === '杩涘巶妫�楠�'" :loading="noNeedCheckLoad" size="small" + type="primary" @click="noNeedCheck">鍏嶆</el-button> + <el-button v-show="active == 1" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button> <el-button size="small" @click="goBack"> <span style="color: #3A7BFA;">杩斿洖</span> </el-button> @@ -20,25 +21,27 @@ <el-col :span="6"> <el-form-item class="addObj-form-item" label="鏍峰搧鍚嶇О:" prop="sample"> <el-input v-model="addObj.sample" readonly size="small" style="width: 208px"> - <template slot="append"><el-button slot="append" :disabled="active>1" icon="el-icon-search" - @click="selectStandardTree = true"></el-button></template> + <template slot="append"><el-button slot="append" :disabled="active > 1" icon="el-icon-search" + @click="selectStandardTree = true"></el-button></template> </el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item class="addObj-form-item" label="鍒拌揣鏁伴噺:" prop="qtyArrived" required> - <el-input v-model="addObj.qtyArrived" :disabled="active > 1" class="addObj-info" - clearable placeholder="" size="small"></el-input> + <el-input v-model="addObj.qtyArrived" :disabled="active > 1" class="addObj-info" clearable + placeholder="" size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item class="addObj-form-item" label="鍗曚綅:" prop="buyUnitMeas"> - <el-input v-model="addObj.buyUnitMeas" :disabled="active > 1" clearable class="addObj-info" size="small"></el-input> + <el-input v-model="addObj.buyUnitMeas" :disabled="active > 1" clearable class="addObj-info" + size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item class="addObj-form-item" label="鎵规鍙�:" prop="updateBatchNo"> - <el-input v-model="addObj.updateBatchNo" :disabled="active > 1" class="addObj-info" clearable size="small"></el-input> + <el-input v-model="addObj.updateBatchNo" :disabled="active > 1" class="addObj-info" clearable + size="small"></el-input> </el-form-item> </el-col> </el-row> @@ -46,32 +49,28 @@ <el-col :span="6"> <el-form-item class="addObj-form-item" label="妫�楠岀被鍨�:"> <el-select v-model="addObj.orderType" clearable disabled size="small" style="width: 100%"> - <el-option v-for="(a, ai) in dict.type.check_type" :key="ai" :label="a.label" :value="a.value"></el-option> + <el-option v-for="(a, ai) in dict.type.check_type" :key="ai" :label="a.label" + :value="a.value"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="6"> <el-form-item class="addObj-form-item" label="绾﹀畾鏃堕棿:" prop="appointed"> - <el-date-picker - v-model="addObj.appointed" - :disabled="active > 1" - format="yyyy-MM-dd" - placeholder="閫夋嫨鏃ユ湡" - size="small" - style="width: 100%" - type="date" - value-format="yyyy-MM-dd"> + <el-date-picker v-model="addObj.appointed" :disabled="active > 1" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" + size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd"> </el-date-picker> </el-form-item> </el-col> <el-col :span="6"> <el-form-item class="addObj-form-item" label="鏉愭枡鍘傚:" prop="supplierName"> - <el-input v-model="addObj.supplierName" :disabled="active > 1" class="addObj-info" clearable placeholder="" size="small"></el-input> + <el-input v-model="addObj.supplierName" :disabled="active > 1" class="addObj-info" clearable + placeholder="" size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item class="addObj-form-item" label="鎶芥鏁伴噺:" prop="testQuantity"> - <el-input v-model="addObj.testQuantity" :disabled="active > 1" class="addObj-info" clearable placeholder="" size="small"></el-input> + <el-input v-model="addObj.testQuantity" :disabled="active > 1" class="addObj-info" clearable + placeholder="" size="small"></el-input> </el-form-item> </el-col> </el-row> @@ -79,49 +78,41 @@ <el-col :span="6"> <el-form-item class="addObj-form-item" label="瑙勬牸鍨嬪彿:" placeholder="璇峰~鍐�" prop="partDetail"> <el-tooltip :content="addObj.partDetail" :disabled="!addObj.partDetail"> - <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info" size="small"></el-input> + <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info" + size="small"></el-input> </el-tooltip> </el-form-item> </el-col> <el-col :span="6"> <el-form-item class="addObj-form-item" label="鍒拌揣鏃堕棿:" prop="declareDate"> - <el-date-picker - v-model="addObj.declareDate" - :disabled="active > 1" - format="yyyy-MM-dd" - placeholder="閫夋嫨鏃ユ湡" - size="small" - style="width: 100%" - type="date" - value-format="yyyy-MM-dd HH:mm:ss"> + <el-date-picker v-model="addObj.declareDate" :disabled="active > 1" format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd HH:mm:ss"> </el-date-picker> </el-form-item> </el-col> <el-col :span="6"> <el-form-item class="addObj-form-item" label="澶囨敞:"> - <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :placeholder="active>1 ? '' : '璇疯緭鍏�'" :disabled="active>1" clearable - size="small" type="textarea"></el-input> + <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2 }" + :placeholder="active > 1 ? '' : '璇疯緭鍏�'" :disabled="active > 1" clearable size="small" + type="textarea"></el-input> </el-form-item> </el-col> </el-row> </el-form> </div> <div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px"> - <div v-if="active==1"> + <div v-if="active == 1"> <el-form :inline="true" :model="addObj1" label-width="90px"> <el-form-item label="鏍峰搧鍨嬪彿:" style="margin-bottom: 6px;margin-top: 6px"> - <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'" - allow-create clearable default-first-option filterable - size="small" - @change="changeModel"> + <el-select v-model="model" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" allow-create clearable + default-first-option filterable size="small" @change="changeModel"> <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="妫�楠屾爣鍑�:" style="margin-bottom: 6px;margin-top: 6px"> - <el-select v-model="standardMethodListId" :loading="methodLoad" - :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable size="small" - @change="changeStandardMethodListId" @focus="methodFocus"> + <el-select v-model="standardMethodListId" :loading="methodLoad" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" + clearable size="small" @change="changeStandardMethodListId" @focus="methodFocus"> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> </el-option> </el-select> @@ -129,110 +120,104 @@ </el-form> </div> <div style="margin-bottom: 6px;margin-top: 6px"> - <el-button v-show="active==1" :disabled="sampleList.length === 3" size="small" type="primary" @click="handleSplitCountNum">鎷嗗垎</el-button> + <el-button v-show="active == 1" :disabled="sampleList.length === 3" size="small" type="primary" + @click="handleSplitCountNum">鎷嗗垎</el-button> </div> </div> <div style="height: auto;"> <el-table ref="sampleTable" :data="sampleList" class="el-table sampleTable" highlight-current-row - :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border - max-height="400px" tooltip-effect="dark" @selection-change="selectSample" @row-click="rowClick"> - <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="60"></el-table-column> + :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border max-height="400px" + tooltip-effect="dark" @selection-change="selectSample" @row-click="rowClick"> + <el-table-column v-if="active == 1" :selectable="selectable" type="selection" width="60"></el-table-column> <el-table-column align="center" label="搴忓彿" type="index" width="65"></el-table-column> <el-table-column align="center" label="鏍峰搧鍚嶇О" min-width="100" prop="sample"> <template slot-scope="scope"> - <el-input v-model="scope.row.sample" :readonly="active>1" clearable size="small"></el-input> + <el-input v-model="scope.row.sample" :readonly="active > 1" clearable size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="鏍峰搧缂栧彿" min-width="140" prop="sampleCode"> <template slot-scope="scope"> - <el-input v-model="scope.row.sampleCode" :readonly="active>1" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" - size="small"></el-input> + <el-input v-model="scope.row.sampleCode" :readonly="active > 1" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" + size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="鏍峰搧鍨嬪彿" min-width="100" prop="model"> <template slot-scope="scope"> - <el-select v-model="scope.row.model" :disabled="active>1" allow-create default-first-option filterable - placeholder="鏍峰搧鍨嬪彿" size="small" style="width: 100%;" @change="handleChangeModel"> + <el-select v-model="scope.row.model" :disabled="active > 1" allow-create default-first-option filterable + placeholder="鏍峰搧鍨嬪彿" size="small" style="width: 100%;" @change="handleChangeModel"> <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 v-if="!(active>1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="130"> + <el-table-column v-if="!(active > 1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="130"> <template slot-scope="scope"> - <el-input v-model="scope.row.modelNum" :disabled="active>1|| scope.$index !== 0" clearable placeholder="闈炲繀濉�" - size="small" - @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> + <el-input v-model="scope.row.modelNum" :disabled="active > 1 || scope.$index !== 0" clearable + placeholder="闈炲繀濉�" size="small" + @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> </template> </el-table-column> <el-table-column align="center" label="妫�楠屾爣鍑�" min-width="100" prop="standardMethodListId"> <template slot-scope="scope"> - <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1 || scope.$index !== 0" - :loading="methodLoad" :readonly="active>1" clearable placeholder="妫�楠屾爣鍑�" - size="small" style="width: 100%;" @change="(value)=>methodChange(value, scope.row)" @clear="productList = []" @focus="methodFocus"> + <el-select v-model="scope.row.standardMethodListId" + :disabled="scope.row.model == null || active > 1 || scope.$index !== 0" :loading="methodLoad" + :readonly="active > 1" clearable placeholder="妫�楠屾爣鍑�" size="small" style="width: 100%;" + @change="(value) => methodChange(value, scope.row)" @clear="productList = []" @focus="methodFocus"> <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 v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鍚嶇О" prop="joinName" width="140"> + <el-table-column v-if="addObj.mating == 1" align="center" label="閰嶅鏍峰搧鍚嶇О" prop="joinName" width="140"> <template slot-scope="scope"> - <el-input v-model="scope.row.joinName" :autosize="{ minRows: 1, maxRows: 1}" size="small" - type="textarea"></el-input> + <el-input v-model="scope.row.joinName" :autosize="{ minRows: 1, maxRows: 1 }" size="small" + type="textarea"></el-input> </template> </el-table-column> - <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鍨嬪彿" prop="joinModel" width="140"> + <el-table-column v-if="addObj.mating == 1" align="center" label="閰嶅鏍峰搧鍨嬪彿" prop="joinModel" width="140"> <template slot-scope="scope"> - <el-input v-model="scope.row.joinModel" :autosize="{ minRows: 1, maxRows: 1}" size="small" - type="textarea"></el-input> + <el-input v-model="scope.row.joinModel" :autosize="{ minRows: 1, maxRows: 1 }" size="small" + type="textarea"></el-input> </template> </el-table-column> - <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鏁伴噺" prop="joinNum" width="140"> + <el-table-column v-if="addObj.mating == 1" align="center" label="閰嶅鏍峰搧鏁伴噺" prop="joinNum" width="140"> <template slot-scope="scope"> <el-input-number v-model="scope.row.joinNum" :controls="false" :max="100" :min="1" :precision="0" - size="small" style="width: 80%;"></el-input-number> + size="small" style="width: 80%;"></el-input-number> </template> </el-table-column> <el-table-column align="center" label="寰呮椤规暟閲�" prop="quantity" width="105"></el-table-column> </el-table> - <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName" class="el-table" - :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border - max-height="400px" style="margin-bottom: 10px;" tooltip-effect="dark" - @select="selectOne" @selection-change="selectProduct" @select-all="handleAll"> - <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column> - <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass" show-overflow-tooltip></el-table-column> + <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName" + class="el-table" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border max-height="400px" + style="margin-bottom: 10px;" tooltip-effect="dark" @select="selectOne" @selection-change="selectProduct" + @select-all="handleAll"> + <el-table-column v-if="active == 1" :selectable="selectable" type="selection" width="65"></el-table-column> + <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass" + show-overflow-tooltip></el-table-column> <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip> <template slot="header" slot-scope="scope"> <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> <span>妫�楠岄」</span> - <el-input - v-if="active==1" - v-model="inspectionItem" - placeholder="璇疯緭鍏�" - size="mini" - @input="searchFilterList"/> + <el-input v-if="active == 1" v-model="inspectionItem" placeholder="璇疯緭鍏�" size="mini" + @input="searchFilterList" /> </div> </template> </el-table-column> - <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass" - show-overflow-tooltip> + <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip> <template slot="header" slot-scope="scope"> <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> <span>妫�楠岄」瀛愰」</span> - <el-input - v-if="active==1" - v-model="inspectionItemSubclass" - placeholder="璇疯緭鍏�" - size="mini" - @input="searchFilterList"/> + <el-input v-if="active == 1" v-model="inspectionItemSubclass" placeholder="璇疯緭鍏�" size="mini" + @input="searchFilterList" /> </div> </template> </el-table-column> <el-table-column label="瑕佹眰鍊�" min-width="220px" prop="ask"> <template slot-scope="scope"> - <el-input v-if="active==1&&isAskOnlyRead&&scope.row.inspectionValueType!='5'" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鍊�" - size="small" type="textarea" - @change="e=>requestChange(e,scope.row,'ask')"></el-input> + <el-input v-if="active == 1 && isAskOnlyRead && scope.row.inspectionValueType != '5'" v-model="scope.row.ask" + :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�" size="small" type="textarea" + @change="e => requestChange(e, scope.row, 'ask')"></el-input> <span v-else> <!-- <template v-if="(scope.row.ask.indexOf('D')>-1 ||scope.row.ask.indexOf('W')>-1 @@ -242,18 +227,18 @@ ||scope.row.ask.indexOf('L')>-1)&&active==1"> <input class="askRts" v-model="scope.row.rts" /><br />{{ scope.row.ask }} </template> - <template v-else>{{ scope.row.ask }}</template> --> - <template >{{ scope.row.ask }}</template> + <template v-else>{{ scope.row.ask }}</template> --> + <template>{{ scope.row.ask }}</template> </span> </template> </el-table-column> <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell"> <template slot-scope="scope"> - <el-input v-if="active==1&&isAskOnlyRead" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鎻忚堪" - size="small" type="textarea" - @change="e=>requestChange(e,scope.row,'tell')"></el-input> + <el-input v-if="active == 1 && isAskOnlyRead" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" + clearable placeholder="瑕佹眰鎻忚堪" size="small" type="textarea" + @change="e => requestChange(e, scope.row, 'tell')"></el-input> <span v-else> - <template >{{ scope.row.tell }}</template> + <template>{{ scope.row.tell }}</template> </span> </template> </el-table-column> @@ -262,12 +247,7 @@ <template slot="header" slot-scope="scope"> <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> <span>璇曢獙鏂规硶</span> - <el-input - v-if="active==1" - v-model="methodS" - placeholder="璇疯緭鍏�" - size="mini" - @input="searchFilterList"/> + <el-input v-if="active == 1" v-model="methodS" placeholder="璇疯緭鍏�" size="mini" @input="searchFilterList" /> </div> </template> </el-table-column> @@ -277,28 +257,30 @@ <el-table-column prop="manHour" label="宸ユ椂绯绘暟" width="100" show-overflow-tooltip></el-table-column> --> <!-- <el-table-column prop="deviceGroup" label="璁惧缁�" width="120" show-overflow-tooltip></el-table-column> --> <el-table-column label="鍖洪棿" min-width="120" prop="section" show-overflow-tooltip></el-table-column> - <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130" prop="sonLaboratory" - show-overflow-tooltip></el-table-column> + <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130" + prop="sonLaboratory" show-overflow-tooltip></el-table-column> </el-table> </div> </div> <el-dialog :visible.sync="selectStandardTree" title="閫夋嫨鏍峰搧" width="500px"> - <div v-if="selectStandardTree" v-loading="selectStandardTreeLoading" class="body" style="height: 60vh;overflow-y: auto;user-select: none;"> + <div v-if="selectStandardTree" v-loading="selectStandardTreeLoading" class="body" + style="height: 60vh;overflow-y: auto;user-select: none;"> <el-row> <el-col :span="24"> - <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" - style="margin-bottom: 5px;" suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter" - @keyup.enter.native="searchFilter"></el-input> + <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" style="margin-bottom: 5px;" + suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter" + @keyup.enter.native="searchFilter"></el-input> </el-col> </el-row> <el-tree ref="tree" :data="list" :default-expanded-keys="expandedKeys" :filter-node-method="filterNode" - :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" @node-click="handleNodeClick" - @node-expand="nodeOpen" @node-collapse="nodeClose" @dblclick.native="activeStandardTree"> + :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" + @node-click="handleNodeClick" @node-expand="nodeOpen" @node-collapse="nodeClose" + @dblclick.native="activeStandardTree"> <div slot-scope="{ node, data }" class="custom-tree-node"> <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> + :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> @@ -311,18 +293,17 @@ </span> </el-dialog> <!--鐗规畩鍊煎鐞嗘--> - <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" - :visible.sync="bsm1DiaAll" - min-width="400px" - title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"> + <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false" + :show-close="false" :visible.sync="bsm1DiaAll" min-width="400px" title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"> <div v-for="(item, index) in bsm1DiaList" :key="item.id" class="body" style="max-height: 60vh;"> - <span>{{item.inspectionItem}}</span> + <span>{{ item.inspectionItem }}</span> <el-row v-if="item.bsm1"> <el-col :span="24" class="search_thing" style="height: initial;margin: 5px 0;"> <div class="search_label" style="width: 80px;"><span class="required-span">* </span>閫夐」锛�</div> <div class="search_input"> <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)"> - <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a" style="margin-bottom: 2px;margin-top: 2px;"></el-radio> + <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a" + style="margin-bottom: 2px;margin-top: 2px;"></el-radio> </el-radio-group> </div> </el-col> @@ -331,7 +312,7 @@ <div class="search_input"> <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)"> <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" - :label="a">{{JSON.parse(item.bsmRow.askCopy)[ai]}}</el-radio> + :label="a">{{ JSON.parse(item.bsmRow.askCopy)[ai] }}</el-radio> </el-radio-group> </div> </el-col> @@ -343,51 +324,33 @@ </el-row> </span> </el-dialog> - <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" - :show-close="false" :visible.sync="bsm3Dia" - title="鍖洪棿鍊煎~鍐�" width="800px"> - <el-table - :data="editTable" - height="80vh" style="width: 100%"> + <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" :visible.sync="bsm3Dia" + title="鍖洪棿鍊煎~鍐�" width="800px"> + <el-table :data="editTable" height="80vh" style="width: 100%"> <!-- inspectionItemList --> - <el-table-column - label="妫�楠岄」" - prop="inspectionItemList" - width="180"> + <el-table-column label="妫�楠岄」" prop="inspectionItemList" width="180"> </el-table-column> - <el-table-column - label="鏍峰搧缂栧彿" - prop="sampleCode" - width="180"> + <el-table-column label="鏍峰搧缂栧彿" prop="sampleCode" width="180"> </el-table-column> - <el-table-column - label="鏍峰搧鍨嬪彿" - prop="model" - width="180"> + <el-table-column label="鏍峰搧鍨嬪彿" prop="model" width="180"> </el-table-column> - <el-table-column - label="璇嗗埆绗﹀彿" - prop="symbolItem"> + <el-table-column label="璇嗗埆绗﹀彿" prop="symbolItem"> </el-table-column> - <el-table-column - label="璇嗗埆绗﹀��" - prop="value"> + <el-table-column label="璇嗗埆绗﹀��" prop="value"> <template slot-scope="scope"> - <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small" @input="inputValueHandler(scope.row,scope.$index)"></el-input> + <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small" + @input="inputValueHandler(scope.row, scope.$index)"></el-input> </template> </el-table-column> </el-table> <span slot="footer" class="dialog-footer"> <el-row> - <el-button @click="bsm3Dia=false">鍙� 娑�</el-button> + <el-button @click="bsm3Dia = false">鍙� 娑�</el-button> <el-button :loading="saveLoad" type="primary" @click="save0">纭� 瀹�</el-button> </el-row> </span> </el-dialog> - <el-dialog - :visible.sync="noNeedCheckDia" - title="鍏嶆鎻愮ず" - width="32%"> + <el-dialog :visible.sync="noNeedCheckDia" title="鍏嶆鎻愮ず" width="32%"> <span>纭鍏嶆褰撳墠妫�楠屽崟锛�</span> <span slot="footer" class="dialog-footer"> <el-button :loading="noNeedCheckLoad" @click="noNeedCheckDia = false">鍙� 娑�</el-button> @@ -430,7 +393,7 @@ active: '', currentId: '', sampleSelectionList: [],//鏍峰搧琛ㄦ牸閫変腑鏁版嵁 - editTable:[], + editTable: [], noNeedCheckLoad: false, // 鍏嶆鎸夐挳loading template: null, templates: [], @@ -521,11 +484,11 @@ addObj1: {}, model: null, standardMethodListId: null, - symbolList:['RTS'], - inspectionItem:null, - inspectionItemSubclass:null, - methodS:null, - isBsm2Val2:false, + symbolList: ['RTS'], + inspectionItem: null, + inspectionItemSubclass: null, + methodS: null, + isBsm2Val2: false, isShowInput: false, temId: '', selectiveEcho: [], // 妫�楠屼笅鍗曠殑鏃跺�欏嬀閫夋楠岄」鐩�,濡傛灉浣跨敤绛涢�夋彁浜ゆ樉绀烘楠岄」鐩负绌� 鍥炴樉鍒楄〃 @@ -586,16 +549,16 @@ productListSelected: { deep: true, handler(val) { - if(val.length>0){ - for(let i =0 ; i< val.length; i++){ - if(val[i].inspectionItem.includes('鏉惧绠�')){ + if (val.length > 0) { + for (let i = 0; i < val.length; i++) { + if (val[i].inspectionItem.includes('鏉惧绠�')) { this.inspectionItemST = 1 break; - }else{ + } else { this.inspectionItemST = 0 } } - }else{ + } else { this.inspectionItemST = 0 } } @@ -633,7 +596,7 @@ this.getInfo() // 鑾峰彇鏁版嵁 }, // 鎷嗗垎 - handleSplitCountNum () { + handleSplitCountNum() { this.sample.joinName = null this.sample.joinModel = null this.sample.joinNum = 1 @@ -654,7 +617,7 @@ }) this.count++ }, - noNeedCheck () { + noNeedCheck() { this.$refs['addObj'].validate((valid) => { if (valid) { if (!this.sampleList.every(m => m.standardMethodListId)) { @@ -668,7 +631,7 @@ }) this.getTotal(sampleList) let projectNum = this.totalArr.filter(a => a.state == 1).length - if (projectNum!=0){ + if (projectNum != 0) { this.$message.error('鍏嶆涓嶅彲閫夋嫨妫�楠岄」') return } @@ -679,14 +642,14 @@ } }); }, - handleNoNeedCheck () { + handleNoNeedCheck() { const sampleList = this.HaveJson(this.sampleList) sampleList.forEach(item => { item.insProduct = this.productList }) this.getTotal(sampleList) let projectNum = this.totalArr.filter(a => a.state == 1).length - if (projectNum!=0){ + if (projectNum != 0) { this.$message.error('鍏嶆涓嶅彲閫夋嫨妫�楠岄」') } else { let trees = this.selectTree.split(" - ") @@ -726,24 +689,24 @@ } else { a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum)) } - a.insProduct = a.insProduct.filter(b=>b.state === 1) + a.insProduct = a.insProduct.filter(b => b.state === 1) return a }) }).then(res => { this.noNeedCheckLoad = false this.$message.success('宸叉彁浜�') this.closeOpenPage() - }).catch(e=>{ + }).catch(e => { this.noNeedCheckLoad = false }) } }, // 鑾峰彇鏁版嵁 - getInfo () { + getInfo() { if (this.active != 1) { // 鏌ョ湅娴佺▼ // 璇锋眰鎺ュ彛锛屽洖鏄炬暟鎹� - getInsOrder({orderId: this.currentId}).then(res => { + getInsOrder({ orderId: this.currentId }).then(res => { this.addObj = { ...res.data.insOrder } @@ -767,21 +730,21 @@ } }, //鐗规畩鍊煎~鍐欏鐞� - inputValueHandler(row,index){ - if(row){ - const nextIndex = index+1 + inputValueHandler(row, index) { + if (row) { + const nextIndex = index + 1 for (let i = nextIndex; i < this.editTable.length; i++) { const element = this.editTable[i]; - if(element.model==row.model&&row.symbolItem==element.symbolItem){ + if (element.model == row.model && row.symbolItem == element.symbolItem) { this.editTable[i].value = row.value } } } }, - changeProductList0(){ - this.productList0.forEach(a=>{ + changeProductList0() { + this.productList0.forEach(a => { let obj = this.productList.find(m => m.id == a.id) - if(obj){ + if (obj) { a.state = obj.state a.section = obj.section a.ask = obj.ask @@ -789,12 +752,12 @@ a.price = obj.price a.tell = obj.tell } - if(a.state == 0&&a.bsmRow){ + if (a.state == 0 && a.bsmRow) { a = this.HaveJson(a.bsmRow) } }) }, - searchFilterList () { + searchFilterList() { const vtw = { inspectionItem: this.inspectionItem, // 妫�楠岄」 inspectionItemSubclass: this.inspectionItemSubclass, // 妫�楠岄」瀛愰」 @@ -805,14 +768,14 @@ }) this.changeProductList0() if (isHaveValue) { - for(let i in vtw) { + for (let i in vtw) { if (vtw[i]) { this.productList = this.productList0.filter((item) => { return item[i] && item[i].includes(vtw[i]) }) } } - this.$nextTick(()=>{ + this.$nextTick(() => { this.productList.forEach(a => { if (a.state == 1) this.toggleSelection(a) }) @@ -820,7 +783,7 @@ } else { // 娌℃湁鏌ヨ鏉′欢鏃舵覆鏌撴墍鏈夋暟鎹� this.productList = this.productList0 - this.$nextTick(()=>{ + this.$nextTick(() => { this.productList.forEach(a => { if (a.state == 1) this.toggleSelection(a) }) @@ -828,19 +791,19 @@ } }, containsValue(str) { - if(str){ + if (str) { let symbolItem = '' - this.symbolList.some(value =>{ - if(str.includes(value)){ - symbolItem = value + this.symbolList.some(value => { + if (str.includes(value)) { + symbolItem = value return true } }) return symbolItem } }, - handleAsk(ask,symbolItem, value) { - try{ + handleAsk(ask, symbolItem, value) { + try { let code = [">", "<", "=", "锛�", "锛�", "鈮�", "鈮�", "卤"]; let code2 = ['+', '*', '/', '-'] if (ask.includes('&')) { @@ -884,15 +847,15 @@ return code[index] + '' + num } } - }catch(e){} + } catch (e) { } }, - handleTell(tell,symbolItem, value){ - try{ + handleTell(tell, symbolItem, value) { + try { let num = this.replaceAll(tell, symbolItem, value) return num - }catch(e){} + } catch (e) { } }, - replaceAll(str,find,value) { + replaceAll(str, find, value) { if (str === undefined) { return str } @@ -912,18 +875,18 @@ }) this.getTotal(sampleList) let projectNum = this.totalArr.filter(a => a.state == 1).length - if(projectNum==0){ + if (projectNum == 0) { this.$confirm('妫�楠岄」鐩负绌猴紝鏄惁纭鎻愪氦?', "鎻愮ず", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" }).then(() => { this.saveMethod(sampleList) - }).catch(() => {}) - }else{ - let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b=>a.ask.includes(b)) && a.state == 1) + }).catch(() => { }) + } else { + let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b => a.ask.includes(b)) && a.state == 1) if (isRTS) { - this.editTable = this.handleData(sampleList,this.containsValue, 0) + this.editTable = this.handleData(sampleList, this.containsValue, 0) this.editTable.forEach(item => { item.value = item.modelNum }) @@ -938,55 +901,55 @@ } }); }, - save0(){ - if(this.editTable.every(m=>m.value)){ + save0() { + if (this.editTable.every(m => m.value)) { this.sampleList.forEach(item => { item.quantity = 1 item.insProduct = this.productList }) - let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1) + let sampleList = this.handleData(this.HaveJson(this.sampleList), this.handleAsk, 1) sampleList.forEach(a => { - a.insProduct = a.insProduct.filter(b=>b.state === 1) + a.insProduct = a.insProduct.filter(b => b.state === 1) }) this.saveMethod(sampleList) - }else{ + } else { this.$message.error('璇峰~鍐欒瘑鍒鍊�') } }, - handleData(sampleList,calBack,type){ + handleData(sampleList, calBack, type) { let editTable = [] sampleList.forEach(item => { let obj = { - sampleCode:item.sampleCode, - model:item.model, - symbolList:[], - sampleId:item.id, - modelNum:item.modelNum, + sampleCode: item.sampleCode, + model: item.model, + symbolList: [], + sampleId: item.id, + modelNum: item.modelNum, } if (item.insProduct && item.insProduct.length > 0) { item.insProduct.forEach(a => { if (a.state == 1) { - if(type==0){ + if (type == 0) { let str = calBack(a.ask) - str&&obj.symbolList.push({ - symbolItem:str, - inspectionItem:a.inspectionItem, + str && obj.symbolList.push({ + symbolItem: str, + inspectionItem: a.inspectionItem, }) - }else if(type==1){ + } else if (type == 1) { let arr = this.editTable.filter(b => b.sampleId == item.id) - for (var i=0;i<arr.length;i++){ - if(a.ask){ - if(a.ask.includes(arr[i].symbolItem)){ - let ask = calBack(a.ask, arr[i].symbolItem,arr[i].value) + for (var i = 0; i < arr.length; i++) { + if (a.ask) { + if (a.ask.includes(arr[i].symbolItem)) { + let ask = calBack(a.ask, arr[i].symbolItem, arr[i].value) if (ask) { a.ask = ask } - let tell = this.handleAsk(a.tell, arr[i].symbolItem,arr[i].value) + let tell = this.handleAsk(a.tell, arr[i].symbolItem, arr[i].value) if (tell) { a.tell = tell } } - }else{ + } else { this.$message.error('瑕佹眰鍊间负绌猴紝闇�瑕佸幓鏍囧噯搴撶淮鎶わ紒') } } @@ -1002,21 +965,21 @@ if (b.productList && b.productList.length > 0) { b.productList.forEach(c => { if (c.state == 1) { - if(type==0){ + if (type == 0) { let str = calBack(c.ask) - str&&obj.symbolList.push({ - symbolItem:str, - inspectionItem:c.inspectionItem, + str && obj.symbolList.push({ + symbolItem: str, + inspectionItem: c.inspectionItem, }) - }else if(type==1){ + } else if (type == 1) { let arr = this.editTable.filter(b => b.sampleId == item.id) arr.forEach(f => { - if(c.ask.includes(f.symbolItem)){ - let ask = calBack(c.ask, f.symbolItem,f.value) + if (c.ask.includes(f.symbolItem)) { + let ask = calBack(c.ask, f.symbolItem, f.value) if (ask) { c.ask = ask } - let tell = this.handleTell(c.tell, f.symbolItem,f.value) + let tell = this.handleTell(c.tell, f.symbolItem, f.value) if (tell) { c.tell = tell } @@ -1033,25 +996,25 @@ if (b.productList && b.productList.length > 0) { b.productList.forEach(c => { if (c.state == 1) { - if(type==0){ + if (type == 0) { let str = calBack(c.ask) - str&&obj.symbolList.push({ - symbolItem:str, - inspectionItem:c.inspectionItem, + str && obj.symbolList.push({ + symbolItem: str, + inspectionItem: c.inspectionItem, }) - }else if(type==1){ + } else if (type == 1) { // let ask = calBack(c.ask, c.rts) // if (ask && c.state == 1) { // c.ask = csk // } let arr = this.editTable.filter(b => b.sampleId == item.id) arr.forEach(f => { - if(c.ask.includes(f.symbolItem)){ - let ask = calBack(c.ask, f.symbolItem,f.value) + if (c.ask.includes(f.symbolItem)) { + let ask = calBack(c.ask, f.symbolItem, f.value) if (ask) { c.ask = ask } - let tell = this.handleTell(c.tell, f.symbolItem,f.value) + let tell = this.handleTell(c.tell, f.symbolItem, f.value) if (tell) { c.tell = tell } @@ -1066,25 +1029,25 @@ if (c.productList && c.productList.length > 0) { c.productList.forEach(d => { if (d.state == 1) { - if(type==0){ + if (type == 0) { let str = calBack(d.ask) - str&&obj.symbolList.push({ - symbolItem:str, - inspectionItem:d.inspectionItem, + str && obj.symbolList.push({ + symbolItem: str, + inspectionItem: d.inspectionItem, }) - }else if(type==1){ + } else if (type == 1) { // let ask = calBack(d.ask, d.rts) // if (ask && d.state == 1) { // d.ask = ask // } let arr = this.editTable.filter(b => b.sampleId == item.id) arr.forEach(f => { - if(d.ask.includes(f.symbolItem)){ - let ask = calBack(d.ask, f.symbolItem,f.value) + if (d.ask.includes(f.symbolItem)) { + let ask = calBack(d.ask, f.symbolItem, f.value) if (ask) { d.ask = ask } - let tell = this.handleTell(d.tell, f.symbolItem,f.value) + let tell = this.handleTell(d.tell, f.symbolItem, f.value) if (tell) { d.tell = tell } @@ -1100,11 +1063,11 @@ } }) } - if(type==0){ + if (type == 0) { editTable.push(obj) } }) - if(type==0){ + if (type == 0) { editTable.forEach(a => { a.symbolList.forEach(b => { let arr = a.symbolList.filter(c => c.symbolItem == b.symbolItem); @@ -1113,13 +1076,13 @@ }) editTable.forEach(a => { let mySet = new Set(); - a.symbolList = a.symbolList.filter(b =>{ + a.symbolList = a.symbolList.filter(b => { let num0 = mySet.size; mySet.add(b.symbolItem); let num1 = mySet.size; - if(num0!=num1){ + if (num0 != num1) { return true; - }else{ + } else { return false } }) @@ -1128,23 +1091,23 @@ editTable.forEach(a => { a.symbolList.forEach(b => { let obj = { - sampleCode:a.sampleCode, - model:a.model, - symbolItem:b.symbolItem, - sampleId:a.sampleId, - value:null, - inspectionItemList:b.inspectionItemList, - modelNum:a.modelNum, + sampleCode: a.sampleCode, + model: a.model, + symbolItem: b.symbolItem, + sampleId: a.sampleId, + value: null, + inspectionItemList: b.inspectionItemList, + modelNum: a.modelNum, } editTableNew.push(obj) }) }) return editTableNew - }else{ + } else { return sampleList } }, - saveMethod(sampleList){ + saveMethod(sampleList) { this.saveLoad = true addRawCopperOrder({ copperInsOrder: this.addObj, @@ -1166,7 +1129,7 @@ } else { a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum)) } - a.insProduct = a.insProduct.filter(b=>b.state === 1) + a.insProduct = a.insProduct.filter(b => b.state === 1) return a }) }).then(res => { @@ -1174,7 +1137,7 @@ this.$message.success('宸叉彁浜�') this.bsm3Dia = false; this.closeOpenPage() - }).catch(e=>{ + }).catch(e => { this.saveLoad = false }) }, @@ -1188,7 +1151,7 @@ this.addObj.code = selects.code this.addObj.phone = selects.phone this.addObj.companyId = selects.departId - if(this.active==1){ + if (this.active == 1) { this.selectInsOrderTemplateInfo() } }) @@ -1208,39 +1171,30 @@ handleNodeClick(val, node, el) { this.selectTree = '' this.models = val.children - this.getNodeParent(node) - let flag = false - if (node.level == 3) { - if(node.data.children.length>0){ - node.data.children.forEach(a => { - let key = Object.keys(a) - if(!key.includes('level')) { - flag = true - } - }) - - } - } - this.selectTree = this.selectTree.replace(' - ', '') - if(flag) { - this.selectTree = ' - - ' + this.selectTree - } - let data = this.selectTree.split(' - ') - let data2 = '' - for (let index = data.length - 1; index >= 0; index--) { - data2 += " - " + data[index] - } - this.selectTree = data2.replace(' - ', '') + this.selectTree = this.getReversedTreePath(node) }, - getNodeParent(val) { - if (val.parent != null) { - if (val.data.children === null) { - this.selectTree += ' - ' + val.label + ' - ' + '' - } else { - this.selectTree += ' - ' + val.label + /** + * 鑾峰彇鍙嶅悜鎷兼帴鐨勬爲璺緞瀛楃涓� + * @param {Object} node - 褰撳墠鑺傜偣 + * @returns {string} - 鍙嶅悜鎷兼帴鐨勬爲璺緞 + */ + getReversedTreePath(node) { + const pathParts = []; + + // 閫掑綊鑾峰彇鐖惰妭鐐硅矾寰� + const collectParentLabels = (currentNode) => { + if (currentNode && currentNode.label) { + pathParts.unshift(currentNode.label); // 灏嗗綋鍓嶈妭鐐规爣绛炬彃鍏ュ埌鏁扮粍寮�澶� } - this.getNodeParent(val.parent) - } + if (currentNode.parent) { + collectParentLabels(currentNode.parent); // 閫掑綊澶勭悊鐖惰妭鐐� + } + }; + + collectParentLabels(node); + + // 鎷兼帴璺緞骞惰繑鍥� + return pathParts.join(" - "); }, selectStandardTreeList() { this.selectStandardTreeLoading = true @@ -1249,7 +1203,7 @@ this.list.forEach(a => { this.expandedKeys.push(a.label) }) - this.selectStandardTreeLoading=false + this.selectStandardTreeLoading = false }) }, filterNode(value, data) { @@ -1294,20 +1248,20 @@ }, selectsStandardMethodByFLSSM() { this.methodLoad = true - selectsStandardMethodByFLSSM({tree: this.selectTree}).then(res => { + 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) - selectsStandardMethodByFLSSM({tree: selectTree}).then(ress => { + selectsStandardMethodByFLSSM({ tree: selectTree }).then(ress => { this.methods = ress.data.standardMethodList }) } else { this.methods = res.data.standardMethodList } - } catch (e) {} + } catch (e) { } }) }, addStandardTree() { @@ -1323,7 +1277,7 @@ this.sample.unit = this.addObj.unit this.sample.standardMethodListId = null this.sample.insProduct = [] - this.sample.id = parseInt(i+1) + this.sample.id = parseInt(i + 1) this.sample.childSampleList = [] this.sample.insulating = null this.sample.sheath = null @@ -1356,8 +1310,8 @@ this.sampleId = row.id if (this.active !== 1) { this.sampleIds = [] - this.sampleSelectionList.forEach(ele=>{ - if(ele.id == row.id){ + this.sampleSelectionList.forEach(ele => { + if (ele.id == row.id) { this.sampleIds.push(row.id) } }) @@ -1377,7 +1331,7 @@ selectOne(selection, row) { this.bsm1DiaList = [] row.state = row.state == 1 ? 0 : 1 - if(row.section === null) { + if (row.section === null) { row.section = "" } if (row.sectionCopy === undefined && row.section) { @@ -1397,18 +1351,18 @@ // if (row.price.includes('[')) { // this.$set(row, 'priceCopy', row.price) // } - let arr = this.productList.filter(m=>m.state==1&&row.sectionCopy&&row.sectionCopy.includes(m.sectionCopy)&&m.ask&&m.sectionCopy.indexOf('[')==-1) - if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1&&arr.length==0) { + let arr = this.productList.filter(m => m.state == 1 && row.sectionCopy && row.sectionCopy.includes(m.sectionCopy) && m.ask && m.sectionCopy.indexOf('[') == -1) + if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1 && arr.length == 0) { if (row.sectionCopy.indexOf('[') > -1) { row.bsmRow = this.HaveJson(row) } row.bsm1 = true this.bsm1DiaList.push(row) this.bsm1DiaAll = true - } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0&&arr.length==0) { + } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0 && arr.length == 0) { row.bsm1 = false - }else if(arr.length>0){ - try{ + } else if (arr.length > 0) { + try { row.bsmRow = this.HaveJson(row) let sectionCopy = arr[0].sectionCopy let arr0 = JSON.parse(row.sectionCopy) @@ -1422,7 +1376,7 @@ // row.manHour = arr2[index] // row.price = arr3[index] row.tell = arr4[index] - } catch(e) {} + } catch (e) { } } this.sampleList.map(item => { if (this.sampleIds.indexOf(item.id) > -1) { @@ -1459,14 +1413,14 @@ backtrack([], nums); return result; }, - tableRowClassName({row, rowIndex}) { + tableRowClassName({ row, rowIndex }) { if (row.state === 0) { return ''; } return 'warning-row'; }, selectInsOrderTemplateInfo() { - selectInsOrderTemplate({company: this.addObj.company}).then(res => { + selectInsOrderTemplate({ company: this.addObj.company }).then(res => { this.templates = res.data }) }, @@ -1488,9 +1442,9 @@ } this.getProductLoad = true let selectTreeList = this.selectTree.split(" - ") - this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model) + this.addObj.model && (selectTreeList[selectTreeList.length - 1] = this.addObj.model) selectStandardProductList({ - model: this.addObj.model?this.addObj.model:row.model, + model: this.addObj.model ? this.addObj.model : row.model, modelNum: row.modelNum, standardMethodListId: val, factory: selectTreeList.join(" - "), @@ -1556,12 +1510,12 @@ } }, // 瑕佹眰鍊煎彉鍖栨椂 - requestChange(e, row,type) { + requestChange(e, row, type) { //this.currentMethod 褰撳墠鏍峰搧id - this.sampleList.forEach(item=>{ - if(item.id == this.currentMethod.id){ - item.insProduct.forEach(i=>{ - if(i.id == row.id){ + this.sampleList.forEach(item => { + if (item.id == this.currentMethod.id) { + item.insProduct.forEach(i => { + if (i.id == row.id) { i[type] = e } }) @@ -1583,7 +1537,7 @@ handleAll(e) { if (e.length > 0) { this.productList.map(m => { - if(e.find(a=>a.id == m.id)){ + if (e.find(a => a.id == m.id)) { m.state = 1 } return m @@ -1658,7 +1612,7 @@ return row[property] === value; }, // 鍏ㄩ�夌壒娈婂�煎鐞嗘閫夋嫨瑕佹眰鍊肩殑鍥炶皟 - upBsmAll (item) { + upBsmAll(item) { const i = this.bsm1DiaList.findIndex(obj => obj.id === item.id) if (i > -1) { // 鎵惧埌鐩稿簲鐨勬楠岄」璧嬪�� @@ -1687,7 +1641,7 @@ this.changeProductList0() this.currentMethod.insProduct = this.productList0 }, - save1 () { + save1() { if (this.bsm1DiaList.length > 0) { this.bsm1DiaList.forEach(item => { if (!item.bsm1Val) { @@ -1785,7 +1739,7 @@ // }) }, - goBack () { + goBack() { if (this.active == 1) { this.$router.go(-1) } else { @@ -1805,9 +1759,11 @@ justify-content: space-between; margin-bottom: 10px; } + >>>.warning-row { color: #1890FF; } + .node_i { color: orange; font-size: 18px; diff --git a/src/views/business/productOrder/components/add.vue b/src/views/business/productOrder/components/add.vue index ddd4b4c..d8edd51 100644 --- a/src/views/business/productOrder/components/add.vue +++ b/src/views/business/productOrder/components/add.vue @@ -1,44 +1,44 @@ <template> <div class="app-container"> - <div v-show="!cableConfigShow&&!auxiliaryShow"> + <div v-show="!cableConfigShow && !auxiliaryShow"> <div style="display: flex;justify-content: space-between;align-items:center;"> <div>濮旀墭鍗曚俊鎭�</div> <div> - <el-cascader - v-model="addObj.quarterItemId" - :disabled="active>1" - :options="quarterItemOptions" - size="small" - style="width: 380px" - @focus="getQuarterOnOrderList"></el-cascader> - <el-select v-show="active==1" v-model="template" placeholder="涓嬪崟妯℃澘" size="small" - @change="selectInsOrderTemplateById"> + <el-cascader v-model="addObj.quarterItemId" :disabled="active > 1" :options="quarterItemOptions" size="small" + style="width: 380px" @focus="getQuarterOnOrderList"></el-cascader> + <el-select v-show="active == 1" v-model="template" placeholder="涓嬪崟妯℃澘" size="small" + @change="selectInsOrderTemplateById"> <el-option v-for="(a, ai) in templates" :key="ai" :label="a.name" :value="a.id"> <span style="float: left">{{ a.name }}</span> <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px" - @click.stop="handleDelete(a)"></i> + @click.stop="handleDelete(a)"></i> </el-option> </el-select> - <el-button v-show="active==1" size="small" @click="templateDia=true"> + <el-button v-show="active == 1" size="small" @click="templateDia = true"> <span style="color: #3A7BFA;">淇濆瓨妯℃澘</span> </el-button> - <el-button v-if="active==1&&addObj.sampleType!=undefined&&(addObj.sampleType.indexOf('鐢电紗')>-1 ||addObj.sampleType.indexOf('缁煎悎')>-1)" size="small" type="primary" @click="openCableConfig">鐢电紗閰嶇疆</el-button> - <el-button v-if="active==1&&addObj.sampleType!=undefined&&addObj.sampleType.indexOf('鐢电紗')>-1" size="small" type="primary" @click="openAuxiliaryCore">杈呭姪绾胯姱閰嶇疆</el-button> - <el-button v-show="active==1||(tabIndex==4&&active==2)" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button> + <el-button + v-if="active == 1 && addObj.sampleType != undefined && (addObj.sampleType.indexOf('鐢电紗') > -1 || addObj.sampleType.indexOf('缁煎悎') > -1)" + size="small" type="primary" @click="openCableConfig">鐢电紗閰嶇疆</el-button> + <el-button v-if="active == 1 && addObj.sampleType != undefined && addObj.sampleType.indexOf('鐢电紗') > -1" size="small" + type="primary" @click="openAuxiliaryCore">杈呭姪绾胯姱閰嶇疆</el-button> + <el-button v-show="active == 1 || (tabIndex == 4 && active == 2)" :loading="saveLoad" size="small" type="primary" + @click="save">鎻愪氦</el-button> <!-- 瀹℃牳 --> - <el-button v-show="active==3" :disabled="saveLoad" :loading="saveLoad" size="small" - @click="upInsOrderOfState(2)">涓嶉�氳繃</el-button> - <el-button v-show="active==3" :loading="saveLoad" size="small" type="primary" - @click="upInsOrderOfState(1)">閫氳繃</el-button> + <el-button v-show="active == 3" :disabled="saveLoad" :loading="saveLoad" size="small" + @click="upInsOrderOfState(2)">涓嶉�氳繃</el-button> + <el-button v-show="active == 3" :loading="saveLoad" size="small" type="primary" + @click="upInsOrderOfState(1)">閫氳繃</el-button> <el-button size="small" @click="goBack"> <span style="color: #3A7BFA;">杩斿洖</span> </el-button> </div> </div> </div> - <div v-show="!cableConfigShow&&!auxiliaryShow" style="margin-top: 10px"> + <div v-show="!cableConfigShow && !auxiliaryShow" style="margin-top: 10px"> <div class="search"> - <el-form ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="108px" label-position="right"> + <el-form ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="108px" + label-position="right"> <el-row> <el-col :span="6"> <el-form-item label="濮旀墭缂栧彿:"> @@ -47,8 +47,10 @@ </el-col> <el-col :span="6"> <el-form-item label="妫�楠岀被鍒�:" prop="orderType"> - <el-select v-model="addObj.orderType" :disabled="active>1&&tabIndex!=4" clearable size="small" style="width: 100%;"> - <el-option v-for="(a, ai) in dict.type.check_type1" :key="ai" :label="a.label" :value="a.value"></el-option> + <el-select v-model="addObj.orderType" :disabled="active > 1 && tabIndex != 4" clearable size="small" + style="width: 100%;"> + <el-option v-for="(a, ai) in dict.type.check_type1" :key="ai" :label="a.label" + :value="a.value"></el-option> </el-select> </el-form-item> </el-col> @@ -61,8 +63,8 @@ <el-form-item label="濮旀墭鍗曚綅:" prop="company"> <el-input v-model="addObj.company" disabled placeholder="閫夋嫨濮旀墭鍗曚綅" size="small" style="width: 208px"> <template slot="append"> - <el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search" - @click="openCompanyList"></el-button> + <el-button slot="append" :disabled="active > 1 && tabIndex != 4" icon="el-icon-search" + @click="openCompanyList"></el-button> </template> </el-input> </el-form-item> @@ -71,54 +73,59 @@ <el-row> <el-col :span="6"> <el-form-item label="鑱旂郴鏂瑰紡:" prop="phone"> - <el-input v-model="addObj.phone" :disabled="active>1&&tabIndex!=4" clearable placeholder="閫夋嫨濮旀墭瀹㈡埛" size="small"></el-input> + <el-input v-model="addObj.phone" :disabled="active > 1 && tabIndex != 4" clearable placeholder="閫夋嫨濮旀墭瀹㈡埛" + size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="绱ф�ョ▼搴�:" prop="type"> - <el-select v-model="addObj.type" :disabled="active>1&&tabIndex!=4" clearable size="small"> - <el-option v-for="(a, ai) in dict.type.urgency_level" :key="ai" :label="a.label" :value="a.value"></el-option> + <el-select v-model="addObj.type" :disabled="active > 1 && tabIndex != 4" clearable size="small"> + <el-option v-for="(a, ai) in dict.type.urgency_level" :key="ai" :label="a.label" + :value="a.value"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="鏍峰搧鍚嶇О:" prop="sample"> <el-input v-model="addObj.sample" disabled size="small" style="width: 208px"> - <template slot="append"><el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search" - @click="selectStandardTree = true"></el-button></template> + <template slot="append"><el-button slot="append" :disabled="active > 1 && tabIndex != 4" + icon="el-icon-search" @click="selectStandardTree = true"></el-button></template> </el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="鏍峰搧鏁伴噺:" prop="sampleNum" style="margin-right: 0"> - <el-input-number v-model="addObj.sampleNum" :disabled="active>1" :max="100" :min="1" :precision="0" - size="small" @change="addStandardTree"></el-input-number> + <el-input-number v-model="addObj.sampleNum" :disabled="active > 1" :max="100" :min="1" :precision="0" + size="small" @change="addStandardTree"></el-input-number> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="6"> <el-form-item label="鏍峰搧鐘舵��:" prop="sampleStatus"> - <el-select v-model="addObj.sampleStatus" :disabled="active>1&&tabIndex!=4" size="small"> - <el-option v-for="(a,ai) in dict.type.sample_status_list" :key="ai" :label="a.label" :value="a.value"></el-option> + <el-select v-model="addObj.sampleStatus" :disabled="active > 1 && tabIndex != 4" size="small"> + <el-option v-for="(a, ai) in dict.type.sample_status_list" :key="ai" :label="a.label" + :value="a.value"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="鎶芥鏁伴噺:" prop="testQuantity"> - <el-input v-model="addObj.testQuantity" :disabled="active>1&&tabIndex!=4" clearable size="small"></el-input> + <el-input v-model="addObj.testQuantity" :disabled="active > 1 && tabIndex != 4" clearable + size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="鏉ユ牱鏂瑰紡:" prop="formType"> - <el-select v-model="addObj.formType" :disabled="active>1&&tabIndex!=4" size="small" clearable> - <el-option v-for="(a,ai) in dict.type.form_type" :key="ai" :label="a.label" :value="a.value"></el-option> + <el-select v-model="addObj.formType" :disabled="active > 1 && tabIndex != 4" size="small" clearable> + <el-option v-for="(a, ai) in dict.type.form_type" :key="ai" :label="a.label" + :value="a.value"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="鎶ュ憡鍙戦�佹柟寮�:"> - <el-radio-group v-model="addObj.send" :disabled="active>1&&tabIndex!=4" size="mini"> + <el-radio-group v-model="addObj.send" :disabled="active > 1 && tabIndex != 4" size="mini"> <el-radio :label="1" border style="margin-right: 0">鑷彇</el-radio> <el-radio :label="0" border>鍏朵粬</el-radio> </el-radio-group> @@ -128,7 +135,8 @@ <el-row> <el-col :span="6"> <el-form-item label="鏍峰搧澶勭悊鏂瑰紡:"> - <el-radio-group v-model="addObj.processing" :disabled="active>1&&tabIndex!=4" size="mini" style="display: flex; flex-direction: column;"> + <el-radio-group v-model="addObj.processing" :disabled="active > 1 && tabIndex != 4" size="mini" + style="display: flex; flex-direction: column;"> <el-radio :label="0" border style="margin-right: 0">濮旀墭鍗曚綅鍙栧洖</el-radio> <el-radio :label="1" border>瀹為獙瀹ゅ鐞�</el-radio> </el-radio-group> @@ -136,19 +144,19 @@ </el-col> <el-col :span="6"> <el-form-item label="鐢熶骇鍗曚綅:" prop="production"> - <el-input v-model="addObj.production" :disabled="active>1&&tabIndex!=4" clearable placeholder="璇疯緭鍏�" - size="small"></el-input> + <el-input v-model="addObj.production" :disabled="active > 1 && tabIndex != 4" clearable placeholder="璇疯緭鍏�" + size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="鐢熶骇鍗曚綅EN:" prop="productionEn"> - <el-input v-model="addObj.productionEn" :disabled="active>1&&tabIndex!=4" clearable placeholder="璇疯緭鍏�" - size="small"></el-input> + <el-input v-model="addObj.productionEn" :disabled="active > 1 && tabIndex != 4" clearable placeholder="璇疯緭鍏�" + size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="鏄惁鐣欐牱:"> - <el-radio-group v-model="addObj.isLeave" border :disabled="active>1&&tabIndex!=4" size="mini"> + <el-radio-group v-model="addObj.isLeave" border :disabled="active > 1 && tabIndex != 4" size="mini"> <el-radio :label="0" border style="margin-right: 0">涓嶇暀鏍�</el-radio> <el-radio :label="1" border>鐣欐牱</el-radio> </el-radio-group> @@ -158,44 +166,48 @@ <el-row> <el-col :span="6"> <el-form-item label="濮旀墭浜�:"> - <el-input v-model="addObj.prepareUser" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable size="small"></el-input> + <el-input v-model="addObj.prepareUser" :disabled="active > 1 && tabIndex != 4" + :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="濮旀墭浜鸿嫳鏂�:"> - <el-input v-model="addObj.prepareUserEn" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable size="small"></el-input> + <el-input v-model="addObj.prepareUserEn" :disabled="active > 1 && tabIndex != 4" + :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="澶囨敞:"> - <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable - size="small" style="width: 100%" type="textarea"></el-input> + <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2 }" + :disabled="active > 1 && tabIndex != 4" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable size="small" + style="width: 100%" type="textarea"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="澶囨敞鑻辨枃:"> - <el-input v-model="addObj.remarkEn" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable - size="small" type="textarea"></el-input> + <el-input v-model="addObj.remarkEn" :autosize="{ minRows: 2, maxRows: 2 }" + :disabled="active > 1 && tabIndex != 4" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable size="small" + type="textarea"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="6"> <el-form-item label="鏍峰搧鍚嶇О:"> - <el-input v-model="addObj.sampleView" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable - size="small"></el-input> + <el-input v-model="addObj.sampleView" :disabled="active > 1 && tabIndex != 4" + :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="鏍峰搧鍚嶇О鑻辨枃:"> - <el-input v-model="addObj.sampleViewEn" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable - size="small"></el-input> + <el-input v-model="addObj.sampleViewEn" :disabled="active > 1 && tabIndex != 4" + :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="濮旀墭浜哄伐鍙�:"> - <el-input v-model="addObj.prepareCode" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable - size="small"></el-input> + <el-input v-model="addObj.prepareCode" :disabled="active > 1 && tabIndex != 4" + :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable size="small"></el-input> </el-form-item> </el-col> </el-row> @@ -203,21 +215,18 @@ </div> <div> <div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px"> - <div v-if="active==1"> + <div v-if="active == 1"> <el-form :inline="true" :model="addObj1" label-width="90px"> <el-form-item label="鏍峰搧鍨嬪彿:" style="margin-bottom: 6px;margin-top: 6px"> - <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'" - allow-create clearable default-first-option filterable - size="small" - @change="changeModel"> + <el-select v-model="model" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" allow-create clearable + default-first-option filterable size="small" @change="changeModel"> <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="妫�楠屾爣鍑�:" style="margin-bottom: 6px;margin-top: 6px"> - <el-select v-model="standardMethodListId" :loading="methodLoad" - :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable size="small" - @change="changeStandardMethodListId" @focus="methodFocus"> + <el-select v-model="standardMethodListId" :loading="methodLoad" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" + clearable size="small" @change="changeStandardMethodListId" @focus="methodFocus"> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> </el-option> </el-select> @@ -227,160 +236,150 @@ <div style="display: flex;align-items: center;margin-bottom: 6px;margin-top: 6px"> <span style="width: 150px;font-size: 14px;text-align: right;">鐗规畩鏍囧噯锛�</span> <el-input v-model="specialStandardMethod" :disabled="!isSpecial" clearable size="small"></el-input> - <el-button v-show="active==1" size="small" style="margin-left: 10px" - type="primary" @click="editSpecial">缂栬緫</el-button> + <el-button v-show="active == 1" size="small" style="margin-left: 10px" type="primary" + @click="editSpecial">缂栬緫</el-button> </div> </div> <el-table ref="sampleTable" :data="sampleList" border class="el-table sampleTable" highlight-current-row - :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" - max-height="400px" tooltip-effect="dark" @selection-change="selectSample" @row-click="rowClick"> - <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="60"></el-table-column> + :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" max-height="400px" tooltip-effect="dark" + @selection-change="selectSample" @row-click="rowClick"> + <el-table-column v-if="active == 1" :selectable="selectable" type="selection" width="60"></el-table-column> <el-table-column align="center" label="搴忓彿" type="index" width="65"></el-table-column> <el-table-column align="center" label="鏍峰搧鍚嶇О" min-width="100" prop="sample"> <template slot-scope="scope"> - <el-input v-model="scope.row.sample" :disabled="active>1" clearable size="small"></el-input> + <el-input v-model="scope.row.sample" :disabled="active > 1" clearable size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="鏍峰搧缂栧彿" min-width="100" prop="sampleCode"> <template slot-scope="scope"> - <el-input v-model="scope.row.sampleCode" :disabled="active>1" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" + <el-input v-model="scope.row.sampleCode" :disabled="active > 1" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="鏍峰搧鍨嬪彿" min-width="60" prop="model"> <template slot-scope="scope"> - <el-select v-model="scope.row.model" :disabled="active>1" allow-create default-first-option filterable + <el-select v-model="scope.row.model" :disabled="active > 1" allow-create default-first-option filterable placeholder="鏍峰搧鍨嬪彿" size="small" style="width: 100%;" @change="handleChangeModel"> <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 v-if="!(active>1)" align="center" label="鑺暟" prop="cores" width="130"> + <el-table-column v-if="!(active > 1)" align="center" label="鑺暟" prop="cores" width="130"> <template slot-scope="scope"> <el-input v-model="scope.row.cores" clearable placeholder="闈炲繀濉�" size="small" - @input="spliceString(scope.row, scope.row.standardMethodListId, 'cores')"></el-input> + @input="spliceString(scope.row, scope.row.standardMethodListId, 'cores')"></el-input> </template> </el-table-column> - <el-table-column v-if="!(active>1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="110"> + <el-table-column v-if="!(active > 1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="110"> <template slot-scope="scope"> <el-input v-model="scope.row.modelNum" clearable placeholder="闈炲繀濉�" size="small" @input="methodChange(scope.row.standardMethodListId, scope.row, 'splice')"></el-input> </template> </el-table-column> - <el-table-column v-if="!(active>1)" align="center" label="鏈�缁堟牱鍝佸瀷鍙�" prop="endModels" width="160"> + <el-table-column v-if="!(active > 1)" align="center" label="鏈�缁堟牱鍝佸瀷鍙�" prop="endModels" width="160"> <template slot-scope="scope"> <el-input v-model="scope.row.endModels" clearable placeholder="闈炲繀濉�" size="small"></el-input> </template> </el-table-column> <el-table-column align="center" label="妫�楠屾爣鍑�" min-width="100" prop="standardMethodListId"> <template slot-scope="scope"> - <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1" - :loading="methodLoad" :readonly="active>1" clearable placeholder="妫�楠屾爣鍑�" - size="small" style="width: 100%;" @change="(value)=>methodChange(value, scope.row)" @clear="productList = []" @focus="methodFocus"> + <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model == null || active > 1" + :loading="methodLoad" :readonly="active > 1" clearable placeholder="妫�楠屾爣鍑�" size="small" + style="width: 100%;" @change="(value) => methodChange(value, scope.row)" @clear="productList = []" + @focus="methodFocus"> <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 v-if="!(active>1)" align="center" label="瀵间綋鏉愯川" prop="conductorMaterial" width="100"> + <el-table-column v-if="!(active > 1)" align="center" label="瀵间綋鏉愯川" prop="conductorMaterial" width="100"> <template slot-scope="scope"> <el-input v-model="scope.row.conductorMaterial" clearable placeholder="闈炲繀濉�" size="small" - @input="spliceString(scope.row, scope.row.standardMethodListId)"></el-input> + @input="spliceString(scope.row, scope.row.standardMethodListId)"></el-input> </template> </el-table-column> - <el-table-column v-if="!(active>1)" align="center" label="瀵间綋绫诲瀷" prop="conductorType" width="100"> + <el-table-column v-if="!(active > 1)" align="center" label="瀵间綋绫诲瀷" prop="conductorType" width="100"> <template slot-scope="scope"> <el-input v-model="scope.row.conductorType" clearable placeholder="闈炲繀濉�" size="small" - @input="spliceString(scope.row, scope.row.standardMethodListId)"></el-input> + @input="spliceString(scope.row, scope.row.standardMethodListId)"></el-input> </template> </el-table-column> </el-table> - <el-table ref="productTable" v-loading="getProductLoad" :data="productList" - :row-class-name="tableRowClassName" border class="el-table" - :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" - max-height="400px" style="margin-bottom: 10px;" tooltip-effect="dark" - @select="selectOne" @selection-change="selectProduct" @select-all="handleAll"> - <el-table-column v-if="active==1" :selectable="selectable0" type="selection" width="65"></el-table-column> - <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass" show-overflow-tooltip></el-table-column> + <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName" + border class="el-table" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" max-height="400px" + style="margin-bottom: 10px;" tooltip-effect="dark" @select="selectOne" @selection-change="selectProduct" + @select-all="handleAll"> + <el-table-column v-if="active == 1" :selectable="selectable0" type="selection" width="65"></el-table-column> + <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass" + show-overflow-tooltip></el-table-column> <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip> <template slot="header" slot-scope="scope"> <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> <span>妫�楠岄」</span> - <el-input - v-if="active==1" - v-model="inspectionItem" - placeholder="璇疯緭鍏�" - size="mini" - @input="searchFilterList"/> + <el-input v-if="active == 1" v-model="inspectionItem" placeholder="璇疯緭鍏�" size="mini" + @input="searchFilterList" /> </div> </template> </el-table-column> - <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass" - show-overflow-tooltip> + <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip> <template slot="header" slot-scope="scope"> <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> <span>妫�楠岄」瀛愰」</span> - <el-input - v-if="active==1" - v-model="inspectionItemSubclass" - placeholder="璇疯緭鍏�" - size="mini" - @input="searchFilterList"/> + <el-input v-if="active == 1" v-model="inspectionItemSubclass" placeholder="璇疯緭鍏�" size="mini" + @input="searchFilterList" /> </div> </template> </el-table-column> <el-table-column label="瑕佹眰鍊�" min-width="220px" prop="ask"> <template slot-scope="scope"> - <el-input v-if="(active==1||tabIndex==4)&&(isAskOnlyRead || isSpecial)&&scope.row.inspectionValueType!='5'" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鍊�" - size="small" type="textarea" - @change="e=>requestChange(e,scope.row,'ask')"></el-input> + <el-input + v-if="(active == 1 || tabIndex == 4) && (isAskOnlyRead || isSpecial) && scope.row.inspectionValueType != '5'" + v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�" size="small" + type="textarea" @change="e => requestChange(e, scope.row, 'ask')"></el-input> <span v-else> - <template >{{ scope.row.ask }}</template> + <template>{{ scope.row.ask }}</template> </span> </template> </el-table-column> <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell"> <template slot-scope="scope"> - <el-input v-if="(active==1||tabIndex==4)&&(isAskOnlyRead || isSpecial)" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鎻忚堪" - size="small" type="textarea" - @change="e=>requestChange(e,scope.row,'tell')"></el-input> + <el-input v-if="(active == 1 || tabIndex == 4) && (isAskOnlyRead || isSpecial)" v-model="scope.row.tell" + :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪" size="small" type="textarea" + @change="e => requestChange(e, scope.row, 'tell')"></el-input> <span v-else> - <template >{{ scope.row.tell }}</template> + <template>{{ scope.row.tell }}</template> </span> </template> </el-table-column> <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip> <template slot-scope="scope"> - <el-input v-if="(active==1||tabIndex==4)&&(isAskOnlyRead || isSpecial)" v-model="scope.row.radius" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="鏉′欢" - size="small" type="textarea" - @change="e=>requestChange(e,scope.row,'radius')"> + <el-input v-if="(active == 1 || tabIndex == 4) && (isAskOnlyRead || isSpecial)" v-model="scope.row.radius" + :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="鏉′欢" size="small" type="textarea" + @change="e => requestChange(e, scope.row, 'radius')"> </el-input> - <span v-else>{{scope.row.radius}}</span> + <span v-else>{{ scope.row.radius }}</span> </template> </el-table-column> <el-table-column label="璇曢獙鏂规硶" min-width="120" prop="methodS" show-overflow-tooltip> <template slot="header" slot-scope="scope"> <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> <span>璇曢獙鏂规硶</span> - <el-input - v-if="active==1" - v-model="methodS" - placeholder="璇疯緭鍏�" - size="mini" - @input="searchFilterList"/> + <el-input v-if="active == 1" v-model="methodS" placeholder="璇疯緭鍏�" size="mini" @input="searchFilterList" /> </div> </template> </el-table-column> <el-table-column label="璁¢噺鍗曚綅" prop="unit" show-overflow-tooltip width="100"></el-table-column> <el-table-column label="鍗曚环" prop="price" show-overflow-tooltip width="100"></el-table-column> <el-table-column label="鍖洪棿" min-width="120" prop="section" show-overflow-tooltip></el-table-column> - <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130" prop="sonLaboratory" - show-overflow-tooltip></el-table-column> - <el-table-column v-if="isSpecial&&active==1" label="鎿嶄綔" width="100"> + <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130" + prop="sonLaboratory" show-overflow-tooltip></el-table-column> + <el-table-column v-if="isSpecial && active == 1" label="鎿嶄綔" width="100"> <template slot-scope="scope"> - <el-button v-if="!scope.row.repetitionTag" size="small" type="text" @click="addProductList(productList,scope.row,scope.$index)">鎻掑叆琛�</el-button> - <el-button v-if="!!scope.row.repetitionTag&&scope.row.delete" size="small" type="text" @click="deleteProductList(scope.$index,productList)">鍒犻櫎</el-button> + <el-button v-if="!scope.row.repetitionTag" size="small" type="text" + @click="addProductList(productList, scope.row, scope.$index)">鎻掑叆琛�</el-button> + <el-button v-if="!!scope.row.repetitionTag && scope.row.delete" size="small" type="text" + @click="deleteProductList(scope.$index, productList)">鍒犻櫎</el-button> </template> </el-table-column> </el-table> @@ -388,10 +387,9 @@ </div> <el-dialog :visible.sync="selectUserDia" title="閫夋嫨鍗曚綅" width="70%"> <div v-if="selectUserDia" class="body"> - <lims-table :tableData="tableData1" :column="column1" - :isSelection="true" :handleSelectionChange="selectMethod" - @pagination="pagination1" height="400px" key="tableData1" - :page="page1" :tableLoading="tableLoading1"></lims-table> + <lims-table :tableData="tableData1" :column="column1" :isSelection="true" :handleSelectionChange="selectMethod" + @pagination="pagination1" height="400px" key="tableData1" :page="page1" + :tableLoading="tableLoading1"></lims-table> </div> <span slot="footer" class="dialog-footer"> <el-button @click="selectUserDia = false">鍙� 娑�</el-button> @@ -399,22 +397,24 @@ </span> </el-dialog> <el-dialog :visible.sync="selectStandardTree" title="閫夋嫨鏍峰搧" width="500px"> - <div v-if="selectStandardTree" v-loading="selectStandardTreeLoading" class="body" style="height: 60vh;overflow-y: auto;user-select: none;"> + <div v-if="selectStandardTree" v-loading="selectStandardTreeLoading" class="body" + style="height: 60vh;overflow-y: auto;user-select: none;"> <el-row> <el-col :span="24"> - <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" - style="margin-bottom: 5px;" suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter" + <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" style="margin-bottom: 5px;" + suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter" @keyup.enter.native="searchFilter"></el-input> </el-col> </el-row> <el-tree ref="tree" :data="list" :default-expanded-keys="expandedKeys" :filter-node-method="filterNode" - :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" @node-click="handleNodeClick" - @node-expand="nodeOpen" @node-collapse="nodeClose" @dblclick.native="activeStandardTree"> + :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" + @node-click="handleNodeClick" @node-expand="nodeOpen" @node-collapse="nodeClose" + @dblclick.native="activeStandardTree"> <div slot-scope="{ node, data }" class="custom-tree-node"> <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> + :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> @@ -438,7 +438,8 @@ <el-button :loading="templateLoading" type="primary" @click="addTemplateDia">纭� 瀹�</el-button> </span> </el-dialog> - <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" :visible.sync="issuedDialogVisible" title="妫�楠屼笅鍙�" width="400px"> + <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" + :visible.sync="issuedDialogVisible" title="妫�楠屼笅鍙�" width="400px"> <div class="body" style="max-height: 60vh;"> <el-row> <el-col :span="22" class="search_thing"> @@ -452,7 +453,8 @@ <el-col :span="22" class="search_thing"> <div class="search_label"><span class="required-span">* </span>鎸囨淳浜哄憳锛�</div> <div class="search_input"> - <el-select v-model="distributeData.userId" filterable placeholder="璇烽�夋嫨" size="small" style="width: 100%;" @change="changeUser"> + <el-select v-model="distributeData.userId" filterable placeholder="璇烽�夋嫨" size="small" style="width: 100%;" + @change="changeUser"> <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> @@ -461,7 +463,8 @@ <el-col v-if="distributeData.userId" :span="22" class="search_thing"> <div class="search_label"><span class="required-span">* </span>璇曢獙瀹わ細</div> <div class="search_input"> - <el-select v-model="distributeData.sonLaboratory" filterable placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-select v-model="distributeData.sonLaboratory" filterable placeholder="璇烽�夋嫨" size="small" + style="width: 100%;"> <el-option v-for="item in sonLaboratoryList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> @@ -471,7 +474,7 @@ </div> <span slot="footer" class="dialog-footer"> <el-row> - <el-button @click="issuedDialogVisible=false;closeOpenPage">鍙� 娑�</el-button> + <el-button @click="issuedDialogVisible = false; closeOpenPage">鍙� 娑�</el-button> <el-button :loading="upLoad" type="primary" @click="submitForm2">纭� 瀹�</el-button> </el-row> </span> @@ -489,28 +492,29 @@ </div> <span slot="footer" class="dialog-footer"> <el-row> - <el-button @click="noDialogVisible=false,tell=''">鍙� 娑�</el-button> + <el-button @click="noDialogVisible = false, tell = ''">鍙� 娑�</el-button> <el-button :loading="noLoading" type="primary" @click="submitTell">纭� 瀹�</el-button> </el-row> </span> </el-dialog> <!--鐢电紗閰嶇疆--> - <cableConfig v-if="cableConfigShow" ref="cableConfigShow" :active="active" :isSpecial="isSpecial" :sampleSelectionList="sampleSelectionList" @goBackAdd="goBackAdd"/> + <cableConfig v-if="cableConfigShow" ref="cableConfigShow" :active="active" :isSpecial="isSpecial" + :sampleSelectionList="sampleSelectionList" @goBackAdd="goBackAdd" /> <!--杈呭姪绾胯姱閰嶇疆--> - <auxiliary-wire-core v-if="auxiliaryShow" :active="active" :isSpecial="isSpecial" :sampleSelectionList="sampleSelectionList" @goBackAdd2="goBackAdd2"></auxiliary-wire-core> + <auxiliary-wire-core v-if="auxiliaryShow" :active="active" :isSpecial="isSpecial" + :sampleSelectionList="sampleSelectionList" @goBackAdd2="goBackAdd2"></auxiliary-wire-core> <!--鐗规畩鍊煎鐞嗘--> - <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" - :visible.sync="bsm1DiaAll" - min-width="400px" - title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"> + <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false" + :show-close="false" :visible.sync="bsm1DiaAll" min-width="400px" title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"> <div v-for="(item, index) in bsm1DiaList" :key="item.id" class="body" style="max-height: 60vh;"> - <span>{{item.inspectionItem}}</span> + <span>{{ item.inspectionItem }}</span> <el-row v-if="item.bsm1"> <el-col :span="24" class="search_thing" style="height: initial;margin: 5px 0;"> <div class="search_label" style="width: 80px;"><span class="required-span">* </span>閫夐」锛�</div> <div class="search_input"> <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)"> - <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a" style="margin-bottom: 2px;margin-top: 2px;"></el-radio> + <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a" + style="margin-bottom: 2px;margin-top: 2px;"></el-radio> </el-radio-group> </div> </el-col> @@ -519,7 +523,7 @@ <div class="search_input"> <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)"> <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" - :label="a">{{JSON.parse(item.bsmRow.askCopy)[ai]}}</el-radio> + :label="a">{{ JSON.parse(item.bsmRow.askCopy)[ai] }}</el-radio> </el-radio-group> </div> </el-col> @@ -532,43 +536,28 @@ </span> </el-dialog> <!--鍖洪棿濉啓--> - <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" - :show-close="false" :visible.sync="bsm3Dia" - title="鍖洪棿鍊煎~鍐�" width="800px"> - <el-table - :data="editTable" - height="80vh" style="width: 100%"> - <!-- inspectionItemList --> - <el-table-column - label="妫�楠岄」" - prop="inspectionItemList" - width="180"> + <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" :visible.sync="bsm3Dia" + title="鍖洪棿鍊煎~鍐�" width="800px"> + <el-table :data="editTable" height="80vh" style="width: 100%"> + <!-- inspectionItemList --> + <el-table-column label="妫�楠岄」" prop="inspectionItemList" width="180"> </el-table-column> - <el-table-column - label="鏍峰搧缂栧彿" - prop="sampleCode" - width="180"> + <el-table-column label="鏍峰搧缂栧彿" prop="sampleCode" width="180"> </el-table-column> - <el-table-column - label="鏍峰搧鍨嬪彿" - prop="model" - width="180"> + <el-table-column label="鏍峰搧鍨嬪彿" prop="model" width="180"> </el-table-column> - <el-table-column - label="璇嗗埆绗﹀彿" - prop="symbolItem"> + <el-table-column label="璇嗗埆绗﹀彿" prop="symbolItem"> </el-table-column> - <el-table-column - label="璇嗗埆绗﹀��" - prop="value"> + <el-table-column label="璇嗗埆绗﹀��" prop="value"> <template slot-scope="scope"> - <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small" @input="inputValueHandler(scope.row,scope.$index)"></el-input> + <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small" + @input="inputValueHandler(scope.row, scope.$index)"></el-input> </template> </el-table-column> </el-table> <span slot="footer" class="dialog-footer"> <el-row> - <el-button @click="bsm3Dia=false">鍙� 娑�</el-button> + <el-button @click="bsm3Dia = false">鍙� 娑�</el-button> <el-button :loading="saveLoad" type="primary" @click="save0">纭� 瀹�</el-button> </el-row> </span> @@ -593,11 +582,11 @@ upInsOrder, upInsOrderOfState } from "@/api/business/add"; -import {selectUserCondition} from "@/api/performance/class"; -import {selectsStandardMethodByFLSSM} from "@/api/standard/standardLibrary"; +import { selectUserCondition } from "@/api/performance/class"; +import { selectsStandardMethodByFLSSM } from "@/api/standard/standardLibrary"; import limsTable from "@/components/Table/lims-table.vue"; -import {selectCustomPageList} from "@/api/system/customer"; -import {mapGetters} from "vuex"; +import { selectCustomPageList } from "@/api/system/customer"; +import { mapGetters } from "vuex"; export default { name: 'Add', @@ -606,8 +595,8 @@ cableConfig, AuxiliaryWireCore }, - computed:{ - ...mapGetters(["nickName"]), + computed: { + ...mapGetters(["nickName"]), }, dicts: ['check_type1', 'urgency_level', 'form_type', 'sample_status_list'], data() { @@ -616,7 +605,7 @@ tabIndex: '', currentId: '', sampleSelectionList: [],//鏍峰搧琛ㄦ牸閫変腑鏁版嵁 - editTable:[], + editTable: [], template: null, templates: [], addObj: { @@ -648,8 +637,8 @@ production: null, productionEn: null, companyId: null, - prepareUser:null, // 濮旀墭浜� - prepareUserEn:null, // 濮旀墭浜鸿嫳鏂� + prepareUser: null, // 濮旀墭浜� + prepareUserEn: null, // 濮旀墭浜鸿嫳鏂� prepareCode: '', // 濮旀墭浜哄伐鍙� quarterItemId: '', sampleView: '', // 鏍峰搧鍚嶇О锛堟姤鍛婂睍绀哄瓧娈碉級 @@ -708,19 +697,19 @@ tableLoading1: false, multipleSelection: [], column1: [ - {label: '瀹㈡埛鍚嶇О', prop: 'company'}, - {label: '瀹㈡埛鍗曚綅EN', prop: 'companyEn'}, - {label: '鍗曚綅鍦板潃', prop: 'address'}, - {label: '鍗曚綅鍦板潃EN', prop: 'addressEn'}, - {label: '鍗曚綅鐢佃瘽', prop: 'phone'}, - {label: '鍔犳�ラ搴�', prop: 'num'}, - {label: '瀹㈡埛缂栧彿', prop: 'code2'}, - {label: '宸ュ巶鍩�', prop: 'code'} + { label: '瀹㈡埛鍚嶇О', prop: 'company' }, + { label: '瀹㈡埛鍗曚綅EN', prop: 'companyEn' }, + { label: '鍗曚綅鍦板潃', prop: 'address' }, + { label: '鍗曚綅鍦板潃EN', prop: 'addressEn' }, + { label: '鍗曚綅鐢佃瘽', prop: 'phone' }, + { label: '鍔犳�ラ搴�', prop: 'num' }, + { label: '瀹㈡埛缂栧彿', prop: 'code2' }, + { label: '宸ュ巶鍩�', prop: 'code' } ], page1: { - total:0, - size:10, - current:1 + total: 0, + size: 10, + current: 1 }, selectStandardTree: false, search: null, @@ -748,7 +737,7 @@ distributeData: { appointed: '', userId: '', - sonLaboratory:'' + sonLaboratory: '' }, personList: [], upLoad: false, @@ -777,15 +766,15 @@ addObj1: {}, model: null, standardMethodListId: null, - symbolList:['RTS'], - inspectionItem:null, - inspectionItemSubclass:null, - methodS:null, - isBsm2Val2:false, + symbolList: ['RTS'], + inspectionItem: null, + inspectionItemSubclass: null, + methodS: null, + isBsm2Val2: false, temperatureEngList: [], isShowInput: false, temId: '', - sonLaboratoryList:[], + sonLaboratoryList: [], selectiveEcho: [], // 妫�楠屼笅鍗曠殑鏃跺�欏嬀閫夋楠岄」鐩�,濡傛灉浣跨敤绛涢�夋彁浜ゆ樉绀烘楠岄」鐩负绌� 鍥炴樉鍒楄〃 quarterItemOptions: [], // 鏌ヨ瀛e害淇℃伅 specialStandardMethod: '', @@ -828,10 +817,10 @@ this.model = null this.standardMethodListId = null }, - tabIndex(val){ - if(val==4&&this.active==2){ + tabIndex(val) { + if (val == 4 && this.active == 2) { this.isSpecial = true - }else{ + } else { this.isSpecial = false } } @@ -878,284 +867,244 @@ }) }) } - if(this.tabIndex==4&&this.active==2){ + if (this.tabIndex == 4 && this.active == 2) { this.isSpecial = true - }else{ + } else { this.isSpecial = false } }, - getPrepareUser () { - // this.addObj.prepareUser = JSON.parse(localStorage.getItem("user")).name; - // this.addObj.prepareUserEn = JSON.parse(localStorage.getItem("user")).nameEn - // this.addObj.prepareCode = JSON.parse(localStorage.getItem("user")).account + getPrepareUser() { + // this.addObj.prepareUser = JSON.parse(localStorage.getItem("user")).name; + // this.addObj.prepareUserEn = JSON.parse(localStorage.getItem("user")).nameEn + // this.addObj.prepareCode = JSON.parse(localStorage.getItem("user")).account }, - // 缂栬緫瑕佹眰鍊艰〃鏍� - editSpecial () { - this.isSpecial = true - this.$nextTick(() => { - this.$refs.productTable.doLayout(); - }); - }, - getQuarterOnOrderList () { - getQuarterOnOrder().then(res => { - if (res.code === 200) { - this.quarterItemOptions = res.data - } - }) - }, - //鐗规畩鍊煎~鍐欏鐞� - inputValueHandler(row,index){ - if(row){ - const nextIndex = index+1 - for (let i = nextIndex; i < this.editTable.length; i++) { - const element = this.editTable[i]; - if(element.model==row.model&&row.symbolItem==element.symbolItem){ - this.editTable[i].value = row.value - } + // 缂栬緫瑕佹眰鍊艰〃鏍� + editSpecial() { + this.isSpecial = true + this.$nextTick(() => { + this.$refs.productTable.doLayout(); + }); + }, + getQuarterOnOrderList() { + getQuarterOnOrder().then(res => { + if (res.code === 200) { + this.quarterItemOptions = res.data + } + }) + }, + //鐗规畩鍊煎~鍐欏鐞� + inputValueHandler(row, index) { + if (row) { + const nextIndex = index + 1 + for (let i = nextIndex; i < this.editTable.length; i++) { + const element = this.editTable[i]; + if (element.model == row.model && row.symbolItem == element.symbolItem) { + this.editTable[i].value = row.value } } - }, - changeProductList0(){ - this.productList0.forEach(a=>{ - let obj = this.productList.find(m => { - if(a.repetitionTag){ - return m.id === a.id&&m.repetitionTag == a.repetitionTag - }else{ - return m.id === a.id&&!m.repetitionTag - } - }) - - if(obj){ - a.state = obj.state - a.section = obj.section - a.ask = obj.ask - a.manHour = obj.manHour - a.price = obj.price - a.tell = obj.tell - a.radius = obj.radius - } - if(a.state == 0&&a.bsmRow){ - a = this.HaveJson(a.bsmRow) - } - }) - }, - searchFilterList () { - const vtw = { - inspectionItem: this.inspectionItem, // 妫�楠岄」 - inspectionItemSubclass: this.inspectionItemSubclass, // 妫�楠岄」瀛愰」 - methodS: this.methodS, // 璇曢獙鏂规硶 - } - const isHaveValue = Object.values(vtw).some(item => { - return item - }) - this.changeProductList0() - if (isHaveValue) { - for(let i in vtw) { - if (vtw[i]) { - this.productList = this.productList0.filter((item) => { - return item[i] && item[i].includes(vtw[i]) - }) - } - } - this.$nextTick(()=>{ - this.productList.forEach(a => { - if (a.state == 1) this.toggleSelection(a) - }) - }) - } else { - // 娌℃湁鏌ヨ鏉′欢鏃舵覆鏌撴墍鏈夋暟鎹� - this.productList = this.productList0 - this.$nextTick(()=>{ - this.productList.forEach(a => { - if (a.state == 1) this.toggleSelection(a) - }) - }) - } - }, - // 鑾峰彇鐢ㄦ埛鍒楄〃 - getAuthorizedPerson() { - selectUserCondition({ type: 1 }).then(res => { - let data = [] - res.data.forEach(a => { - data.push({ - label: a.name, - value: a.id - }) - }) - this.personList = data - }) - }, - openCompanyList () { - this.selectUserDia = true - this.getCompanyList() - }, - getCompanyList () { - selectCustomPageList({...this.page1}).then(res => { - this.tableLoading1 = false - if (res.code === 200) { - this.tableData1 = res.data.records - this.page1.total = res.data.total - } - }).catch(err => { - this.tableLoading1 = false - }) - }, - pagination1 (page) { - this.page1.size = page.limit - this.getCompanyList() - }, - selectMethod (row) { - this.multipleSelection = row - }, - selectUser() { - if (this.multipleSelection.length === 0) { - this.$message.error('鏈�夋嫨鏁版嵁') - return - } - this.addObj.company = this.multipleSelection[0].company - this.addObj.code = this.multipleSelection[0].code - this.addObj.companyId = this.multipleSelection[0].id - this.selectUserDia = false - if(this.active==1){ - // TODO - this.selectInsOrderTemplate() - } - }, - containsValue(str) { - if(str){ - let symbolItem = '' - this.symbolList.some(value =>{ - if(str.includes(value)){ - symbolItem = value - return true - } - }) - return symbolItem - } - }, - handleAsk(ask,symbolItem, value) { - try{ - let code = [">", "<", "=", "锛�", "锛�", "鈮�", "鈮�", "卤"]; - let code2 = ['+', '*', '/', '-'] - if (ask.includes('&')) { - // 澶氫釜鏉′欢 - let arr0 = ask.split('&') - let arr1 = [] - arr0.forEach(m => { - let index = code.findIndex(b => m.includes(b)) - if (index > -1) { - let arr = m.split(code[index]).filter(b => !!b) - let num = eval(this.replaceAll(arr[0], symbolItem, value)) - m = code[index] + '' + num - arr1.push(m) - } - }) - return arr1.join('&') - } else if (ask.includes('锝�') || ask.includes('~')) { - let arr0 = [] - if (ask.includes('锝�')) { - arr0 = ask.split('锝�') - } else { - arr0 = ask.split('~') - } - // 澶氫釜鏉′欢 - let arr1 = [] - arr0.forEach(m => { - m = m.replace(symbolItem, value) - const index = code2.findIndex(b => m.includes(b)) - if (index > -1) { - m = eval(m) - } - arr1.push(m) - }) - return arr1.join('锝�') + } + }, + changeProductList0() { + this.productList0.forEach(a => { + let obj = this.productList.find(m => { + if (a.repetitionTag) { + return m.id === a.id && m.repetitionTag == a.repetitionTag } else { - // 鍗曚釜鏉′欢 - let index = code.findIndex(b => ask.includes(b)) - if (index > -1) { - let arr = ask.split(code[index]).filter(b => !!b) - let num = eval(this.replaceAll(arr[0], symbolItem, value)) - return code[index] + '' + num - } - } - }catch(e){} - }, - replaceAll(str,find,value) { - if (str === undefined) { - return str - } - return str.replaceAll(find, value); - }, - save() { - this.$refs['addObj'].validate((valid) => { - if (valid) { - this.sampleList.forEach(item => { - item.specialStandardMethod = this.specialStandardMethod - }) - try { - this.sampleList.forEach(item => { - if (item.insulating){ - let sampleListArr = [] - let insulatingArr = [] - // 鏈夌數缂嗛厤缃椂锛屾瘮杈冪數缂嗛厤缃殑妫�楠岄」鏄惁涓庡闈㈤噸澶� - item.insProduct.filter(a => a.state == 1).forEach(obj => { - sampleListArr.push(obj.id) - }) - item.insulating.insProduct.filter(a => a.state == 1).forEach(obj => { - insulatingArr.push(obj.id) - }) - const sameLength = sampleListArr.filter(id => insulatingArr.indexOf(id) > -1).length - if (sameLength > 0) { - this.$message.error('妫�楠岄」涓庣數缂嗛厤缃楠岄」涓嶈兘閲嶅') - } - throw sameLength > 0 - } - }) - } catch (e) { - console.log('e---', e) - if (e === true) throw e - } - let sampleList = this.HaveJson(this.sampleList) - sampleList.forEach(a => { - if (a.insProduct.length > 0) { - a.insProduct.forEach(c => { - if (this.tabIndex != 4) { - delete c.id - } - }) - } - if (a.endModels) { - a.model = a.endModels - } - a.insProduct = a.insProduct.filter(b=>b.state === 1) - }) - let projectNum = this.totalArr.filter(a => a.state == 1).length - if(projectNum==0){ - this.$confirm('妫�楠岄」鐩负绌猴紝鏄惁纭鎻愪氦?', "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(() => { - this.saveMethod(sampleList) - }).catch(() => {}) - }else{ - let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b=>a.ask.includes(b)) && a.state == 1) - if (isRTS) { - this.editTable = this.handleData(sampleList,this.containsValue, 0) - this.editTable.forEach(item => { - item.value = item.modelNum - }) - this.bsm3Dia = true; - return - } - this.saveMethod(sampleList) - } + return m.id === a.id && !m.repetitionTag } }) - }, - save0(){ - if(this.editTable.every(m=>m.value)){ - let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1) + + if (obj) { + a.state = obj.state + a.section = obj.section + a.ask = obj.ask + a.manHour = obj.manHour + a.price = obj.price + a.tell = obj.tell + a.radius = obj.radius + } + if (a.state == 0 && a.bsmRow) { + a = this.HaveJson(a.bsmRow) + } + }) + }, + searchFilterList() { + const vtw = { + inspectionItem: this.inspectionItem, // 妫�楠岄」 + inspectionItemSubclass: this.inspectionItemSubclass, // 妫�楠岄」瀛愰」 + methodS: this.methodS, // 璇曢獙鏂规硶 + } + const isHaveValue = Object.values(vtw).some(item => { + return item + }) + this.changeProductList0() + if (isHaveValue) { + for (let i in vtw) { + if (vtw[i]) { + this.productList = this.productList0.filter((item) => { + return item[i] && item[i].includes(vtw[i]) + }) + } + } + this.$nextTick(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }) + } else { + // 娌℃湁鏌ヨ鏉′欢鏃舵覆鏌撴墍鏈夋暟鎹� + this.productList = this.productList0 + this.$nextTick(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }) + } + }, + // 鑾峰彇鐢ㄦ埛鍒楄〃 + getAuthorizedPerson() { + selectUserCondition({ type: 1 }).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.name, + value: a.id + }) + }) + this.personList = data + }) + }, + openCompanyList() { + this.selectUserDia = true + this.getCompanyList() + }, + getCompanyList() { + selectCustomPageList({ ...this.page1 }).then(res => { + this.tableLoading1 = false + if (res.code === 200) { + this.tableData1 = res.data.records + this.page1.total = res.data.total + } + }).catch(err => { + this.tableLoading1 = false + }) + }, + pagination1(page) { + this.page1.size = page.limit + this.getCompanyList() + }, + selectMethod(row) { + this.multipleSelection = row + }, + selectUser() { + if (this.multipleSelection.length === 0) { + this.$message.error('鏈�夋嫨鏁版嵁') + return + } + this.addObj.company = this.multipleSelection[0].company + this.addObj.code = this.multipleSelection[0].code + this.addObj.companyId = this.multipleSelection[0].id + this.selectUserDia = false + if (this.active == 1) { + // TODO + this.selectInsOrderTemplate() + } + }, + containsValue(str) { + if (str) { + let symbolItem = '' + this.symbolList.some(value => { + if (str.includes(value)) { + symbolItem = value + return true + } + }) + return symbolItem + } + }, + handleAsk(ask, symbolItem, value) { + try { + let code = [">", "<", "=", "锛�", "锛�", "鈮�", "鈮�", "卤"]; + let code2 = ['+', '*', '/', '-'] + if (ask.includes('&')) { + // 澶氫釜鏉′欢 + let arr0 = ask.split('&') + let arr1 = [] + arr0.forEach(m => { + let index = code.findIndex(b => m.includes(b)) + if (index > -1) { + let arr = m.split(code[index]).filter(b => !!b) + let num = eval(this.replaceAll(arr[0], symbolItem, value)) + m = code[index] + '' + num + arr1.push(m) + } + }) + return arr1.join('&') + } else if (ask.includes('锝�') || ask.includes('~')) { + let arr0 = [] + if (ask.includes('锝�')) { + arr0 = ask.split('锝�') + } else { + arr0 = ask.split('~') + } + // 澶氫釜鏉′欢 + let arr1 = [] + arr0.forEach(m => { + m = m.replace(symbolItem, value) + const index = code2.findIndex(b => m.includes(b)) + if (index > -1) { + m = eval(m) + } + arr1.push(m) + }) + return arr1.join('锝�') + } else { + // 鍗曚釜鏉′欢 + let index = code.findIndex(b => ask.includes(b)) + if (index > -1) { + let arr = ask.split(code[index]).filter(b => !!b) + let num = eval(this.replaceAll(arr[0], symbolItem, value)) + return code[index] + '' + num + } + } + } catch (e) { } + }, + replaceAll(str, find, value) { + if (str === undefined) { + return str + } + return str.replaceAll(find, value); + }, + save() { + this.$refs['addObj'].validate((valid) => { + if (valid) { + this.sampleList.forEach(item => { + item.specialStandardMethod = this.specialStandardMethod + }) + try { + this.sampleList.forEach(item => { + if (item.insulating) { + let sampleListArr = [] + let insulatingArr = [] + // 鏈夌數缂嗛厤缃椂锛屾瘮杈冪數缂嗛厤缃殑妫�楠岄」鏄惁涓庡闈㈤噸澶� + item.insProduct.filter(a => a.state == 1).forEach(obj => { + sampleListArr.push(obj.id) + }) + item.insulating.insProduct.filter(a => a.state == 1).forEach(obj => { + insulatingArr.push(obj.id) + }) + const sameLength = sampleListArr.filter(id => insulatingArr.indexOf(id) > -1).length + if (sameLength > 0) { + this.$message.error('妫�楠岄」涓庣數缂嗛厤缃楠岄」涓嶈兘閲嶅') + } + throw sameLength > 0 + } + }) + } catch (e) { + console.log('e---', e) + if (e === true) throw e + } + let sampleList = this.HaveJson(this.sampleList) sampleList.forEach(a => { if (a.insProduct.length > 0) { a.insProduct.forEach(c => { @@ -1167,1053 +1116,1078 @@ if (a.endModels) { a.model = a.endModels } - a.insProduct = a.insProduct.filter(b=>b.state === 1) + a.insProduct = a.insProduct.filter(b => b.state === 1) }) - this.saveMethod(sampleList) - }else{ - this.$message.error('璇峰~鍐欒瘑鍒鍊�') - } - }, - handleData(sampleList,calBack,type){ - let editTable = [] - sampleList.forEach(item => { - let obj = { - sampleCode:item.sampleCode, - model:item.model, - symbolList:[], - sampleId:item.id, - modelNum:item.modelNum, + let projectNum = this.totalArr.filter(a => a.state == 1).length + if (projectNum == 0) { + this.$confirm('妫�楠岄」鐩负绌猴紝鏄惁纭鎻愪氦?', "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.saveMethod(sampleList) + }).catch(() => { }) + } else { + let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b => a.ask.includes(b)) && a.state == 1) + if (isRTS) { + this.editTable = this.handleData(sampleList, this.containsValue, 0) + this.editTable.forEach(item => { + item.value = item.modelNum + }) + this.bsm3Dia = true; + return + } + this.saveMethod(sampleList) } - if (item.insProduct && item.insProduct.length > 0) { - item.insProduct.forEach(a => { - if (a.state == 1) { - if(type==0){ - let str = calBack(a.ask) - str&&obj.symbolList.push({ - symbolItem:str, - inspectionItem:a.inspectionItem, - }) - }else if(type==1){ - let arr = this.editTable.filter(b => b.sampleId == item.id) - for (var i=0;i<arr.length;i++){ - if(a.ask){ - if(a.ask.includes(arr[i].symbolItem)){ - let ask = calBack(a.ask, arr[i].symbolItem,arr[i].value) - if (ask) { - a.ask = ask - } - let tell = this.handleAsk(a.tell, arr[i].symbolItem,arr[i].value) - if (tell) { - a.tell = tell - } + } + }) + }, + save0() { + if (this.editTable.every(m => m.value)) { + let sampleList = this.handleData(this.HaveJson(this.sampleList), this.handleAsk, 1) + sampleList.forEach(a => { + if (a.insProduct.length > 0) { + a.insProduct.forEach(c => { + if (this.tabIndex != 4) { + delete c.id + } + }) + } + if (a.endModels) { + a.model = a.endModels + } + a.insProduct = a.insProduct.filter(b => b.state === 1) + }) + this.saveMethod(sampleList) + } else { + this.$message.error('璇峰~鍐欒瘑鍒鍊�') + } + }, + handleData(sampleList, calBack, type) { + let editTable = [] + sampleList.forEach(item => { + let obj = { + sampleCode: item.sampleCode, + model: item.model, + symbolList: [], + sampleId: item.id, + modelNum: item.modelNum, + } + if (item.insProduct && item.insProduct.length > 0) { + item.insProduct.forEach(a => { + if (a.state == 1) { + if (type == 0) { + let str = calBack(a.ask) + str && obj.symbolList.push({ + symbolItem: str, + inspectionItem: a.inspectionItem, + }) + } else if (type == 1) { + let arr = this.editTable.filter(b => b.sampleId == item.id) + for (var i = 0; i < arr.length; i++) { + if (a.ask) { + if (a.ask.includes(arr[i].symbolItem)) { + let ask = calBack(a.ask, arr[i].symbolItem, arr[i].value) + if (ask) { + a.ask = ask } - }else{ - this.$message.error('瑕佹眰鍊间负绌猴紝闇�瑕佸幓鏍囧噯搴撶淮鎶わ紒') + let tell = this.handleAsk(a.tell, arr[i].symbolItem, arr[i].value) + if (tell) { + a.tell = tell + } } + } else { + this.$message.error('瑕佹眰鍊间负绌猴紝闇�瑕佸幓鏍囧噯搴撶淮鎶わ紒') } } } - }) - } - if(type==0){ - editTable.push(obj) - } + } + }) + } + if (type == 0) { + editTable.push(obj) + } + }) + if (type == 0) { + editTable.forEach(a => { + a.symbolList.forEach(b => { + let arr = a.symbolList.filter(c => c.symbolItem == b.symbolItem); + b.inspectionItemList = arr.map(c => c.inspectionItem).join(',') + }) }) - if(type==0){ - editTable.forEach(a => { - a.symbolList.forEach(b => { - let arr = a.symbolList.filter(c => c.symbolItem == b.symbolItem); - b.inspectionItemList = arr.map(c => c.inspectionItem).join(',') - }) + editTable.forEach(a => { + let mySet = new Set(); + a.symbolList = a.symbolList.filter(b => { + let num0 = mySet.size; + mySet.add(b.symbolItem); + let num1 = mySet.size; + if (num0 != num1) { + return true; + } else { + return false + } }) - editTable.forEach(a => { - let mySet = new Set(); - a.symbolList = a.symbolList.filter(b =>{ - let num0 = mySet.size; - mySet.add(b.symbolItem); - let num1 = mySet.size; - if(num0!=num1){ - return true; - }else{ - return false - } - }) + }) + let editTableNew = [] + editTable.forEach(a => { + a.symbolList.forEach(b => { + let obj = { + sampleCode: a.sampleCode, + model: a.model, + symbolItem: b.symbolItem, + sampleId: a.sampleId, + value: null, + inspectionItemList: b.inspectionItemList, + modelNum: a.modelNum, + } + editTableNew.push(obj) }) - let editTableNew = [] - editTable.forEach(a => { - a.symbolList.forEach(b => { - let obj = { - sampleCode:a.sampleCode, - model:a.model, - symbolItem:b.symbolItem, - sampleId:a.sampleId, - value:null, - inspectionItemList:b.inspectionItemList, - modelNum:a.modelNum, - } - editTableNew.push(obj) - }) - }) - return editTableNew - }else{ - return sampleList + }) + return editTableNew + } else { + return sampleList + } + }, + saveMethod(sampleList) { + this.saveLoad = true + if (this.addObj.quarterItemId) { + this.addObj.quarterItemId = this.addObj.quarterItemId[1] + } + if (this.tabIndex == 4 && this.active == 2) { + if (this.addObj.createTime) { + delete this.addObj.createTime } - }, - saveMethod(sampleList){ - this.saveLoad = true - if (this.addObj.quarterItemId) { - this.addObj.quarterItemId = this.addObj.quarterItemId[1] - } - if(this.tabIndex==4&&this.active==2){ - if (this.addObj.createTime) { - delete this.addObj.createTime - } - // 閫�鍥炲悗鎻愪氦 - updateInsOrder({insOrder: this.addObj, sampleProduct: sampleList}).then(res => { - this.saveLoad = false - this.$message.success('宸叉彁浜�') - this.bsm3Dia = false; - this.closeOpenPage() - }).catch(e=>{ - this.saveLoad = false - }) - }else{ - // 甯歌鎻愪氦 - addInsOrder({insOrder: this.addObj, sampleList: sampleList}).then(res => { - this.saveLoad = false - this.$message.success('宸叉彁浜�') - this.bsm3Dia = false; - this.closeOpenPage() - }).catch(e=>{ - this.saveLoad = false - }) - } - - }, - upInsOrderOfState(state) { - if (state == 1) { - this.saveLoad = true - upInsOrderOfState({ - state, - id: this.currentId, - companyId:this.addObj.companyId, - laboratory:this.addObj.laboratory, - company: this.addObj.company - }).then(res => { - this.saveLoad = false - this.$message.success('鎻愪氦鎴愬姛') - selectOrderManDay({ - id: this.currentId - }).then(ress => { - this.distributeData.orderId = this.currentId - this.distributeData.appointed = ress.data - }) - setTimeout(() => { - this.issuedDialogVisible = true; - }, 1000) - }) - } else { - // 涓嶉�氳繃 - this.noDialogVisible = true - } - }, - // 涓嬪彂 - submitForm2() { - if (this.distributeData.appointed == null || this.distributeData.appointed == '') { - this.$message.error('绾﹀畾鏃堕棿鏈~鍐�') - return - } - if (this.distributeData.userId == null || this.distributeData.userId == '') { - this.$message.error('鎸囨淳浜哄憳鏈~鍐�') - return - } - if (this.distributeData.userId&&(this.distributeData.sonLaboratory== null ||this.distributeData.sonLaboratory== '')) { - this.$message.error('璇曢獙瀹ゆ湭濉啓') - return - } - this.upLoad = true; - upInsOrder({ - orderId: this.distributeData.orderId, - appointed: this.distributeData.appointed, - userId: this.distributeData.userId, - sonLaboratory:this.distributeData.sonLaboratory - }).then(res => { - this.$message.success('鎻愪氦鎴愬姛') - this.upLoad = false - this.issuedDialogVisible = false + // 閫�鍥炲悗鎻愪氦 + updateInsOrder({ insOrder: this.addObj, sampleProduct: sampleList }).then(res => { + this.saveLoad = false + this.$message.success('宸叉彁浜�') + this.bsm3Dia = false; this.closeOpenPage() }).catch(e => { - this.$message.error('鎻愪氦澶辫触') - this.upLoad = false + this.saveLoad = false }) - }, - getUserNowData() { - getUserNow().then(res => { - let selects = res.data - if (selects == null) return - this.addObj.userId = selects.id - this.addObj.company = selects.company - this.addObj.custom = selects.name - this.addObj.code = selects.code - this.addObj.phone = selects.phone - this.addObj.companyId = selects.departId - this.addObj.production = '涓ぉ绉戞妧瑁呭鐢电紗鏈夐檺鍏徃' - this.addObj.productionEn = 'Zhongtian Technology Industrial Wire&Cable System CO.,LTD' - if(this.active==1){ - this.selectInsOrderTemplate() - } + } else { + // 甯歌鎻愪氦 + addInsOrder({ insOrder: this.addObj, sampleList: sampleList }).then(res => { + this.saveLoad = false + this.$message.success('宸叉彁浜�') + this.bsm3Dia = false; + this.closeOpenPage() + }).catch(e => { + this.saveLoad = false }) - }, - getProNum() { - this.sampleSelectionList.forEach((m, i) => { - this.$set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length) - }) - this.$refs.sampleTable.doLayout() - }, - searchFilter() { - this.$refs.tree.filter(this.search) - }, - nodeOpen(data, node, el) { - $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') - if (node.data.code === '[3]') { - this.sampleViewEn = data.sampleTypeEn - } else if (node.data.code === '[4]') { - this.sampleViewEn = data.sampleEn - } - }, - nodeClose(data, node, el) { - $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') - }, - handleNodeClick(val, node, el) { - this.selectTree = '' - this.models = val.children - this.getNodeParent(node) - let flag = false - if (node.level == 3) { - if(node.data.children.length>0){ - node.data.children.forEach(a => { - let key = Object.keys(a) - if(!key.includes('level')) { - flag = true - } - }) + } - } - } - if (node.data.code === '[3]') { - this.sampleViewEn = val.sampleTypeEn - } else if (node.data.code === '[4]') { - if (node.data.children!==null && node.data.children.length>0) { - this.sampleViewEn = val.sampleEn - } - } - this.selectTree = this.selectTree.replace(' - ', '') - if(flag) { - this.selectTree = ' - - ' + this.selectTree - } - 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) - } - }, - selectStandardTreeList() { - this.selectStandardTreeLoading = true - selectStandardTreeList2().then(res => { - this.list = res.data - this.list.forEach(a => { - this.expandedKeys.push(a.label) - }) - this.selectStandardTreeLoading=false - }) - }, - filterNode(value, data) { - if (!value) return true; - return data.label.indexOf(value) !== -1; - }, - activeStandardTree() { - let trees = this.selectTree.split(" - ") - if (trees.length < 3) { - this.$message.error('鏈�夋嫨瀵硅薄') - return - } - this.addObj.factory = trees[0] - this.addObj.laboratory = trees[1] - this.addObj.sampleType = trees[2] - if (trees[3] === undefined || trees[3] === '' || trees[3] === '- ') { - this.addObj.sample = trees[2] - } else { - this.addObj.sample = trees[3] - } - this.addObj.sampleView = this.addObj.sample - this.addObj.sampleViewEn = this.sampleViewEn - this.addObj.model = (trees[4] == undefined ? null : trees[4]) - this.selectStandardTree = false - this.sampleList = [] - for (var i = 0; i < this.addObj.sampleNum; i++) { - 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.childSampleList = [] - this.sample.insulating = null - this.sample.sheath = null - this.sampleList.push(this.HaveJson(this.sample)) - this.count++ - } - this.$refs.sampleTable.doLayout() - // this.selectsStandardMethodByFLSSM() - }, - selectsStandardMethodByFLSSMList() { - this.methodLoad = true - selectsStandardMethodByFLSSM({ - tree: this.selectTree + }, + upInsOrderOfState(state) { + if (state == 1) { + this.saveLoad = true + upInsOrderOfState({ + state, + id: this.currentId, + companyId: this.addObj.companyId, + laboratory: this.addObj.laboratory, + company: this.addObj.company }).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) - selectsStandardMethodByFLSSM({ - tree: selectTree - }).then(ress => { - this.methods = ress.data.standardMethodList - }) - } else { - this.methods = res.data.standardMethodList - } - } catch (e) {} + this.saveLoad = false + this.$message.success('鎻愪氦鎴愬姛') + selectOrderManDay({ + id: this.currentId + }).then(ress => { + this.distributeData.orderId = this.currentId + this.distributeData.appointed = ress.data + }) + setTimeout(() => { + this.issuedDialogVisible = true; + }, 1000) }) - }, - addStandardTree() { - if (this.selectTree == null) return - this.sampleList = [] - this.productList = [] - for (var i = 0; i < this.addObj.sampleNum; i++) { - 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 = parseInt(i+1) - this.sample.childSampleList = [] - this.sample.insulating = null - this.sample.sheath = null - this.sampleList.push(this.HaveJson(this.sample)) - // this.count++ + } else { + // 涓嶉�氳繃 + this.noDialogVisible = true + } + }, + // 涓嬪彂 + submitForm2() { + if (this.distributeData.appointed == null || this.distributeData.appointed == '') { + this.$message.error('绾﹀畾鏃堕棿鏈~鍐�') + return + } + if (this.distributeData.userId == null || this.distributeData.userId == '') { + this.$message.error('鎸囨淳浜哄憳鏈~鍐�') + return + } + if (this.distributeData.userId && (this.distributeData.sonLaboratory == null || this.distributeData.sonLaboratory == '')) { + this.$message.error('璇曢獙瀹ゆ湭濉啓') + return + } + this.upLoad = true; + upInsOrder({ + orderId: this.distributeData.orderId, + appointed: this.distributeData.appointed, + userId: this.distributeData.userId, + sonLaboratory: this.distributeData.sonLaboratory + }).then(res => { + this.$message.success('鎻愪氦鎴愬姛') + this.upLoad = false + this.issuedDialogVisible = false + this.closeOpenPage() + }).catch(e => { + this.$message.error('鎻愪氦澶辫触') + this.upLoad = false + }) + }, + getUserNowData() { + getUserNow().then(res => { + let selects = res.data + if (selects == null) return + this.addObj.userId = selects.id + this.addObj.company = selects.company + this.addObj.custom = selects.name + this.addObj.code = selects.code + this.addObj.phone = selects.phone + this.addObj.companyId = selects.departId + this.addObj.production = '涓ぉ绉戞妧瑁呭鐢电紗鏈夐檺鍏徃' + this.addObj.productionEn = 'Zhongtian Technology Industrial Wire&Cable System CO.,LTD' + if (this.active == 1) { + this.selectInsOrderTemplate() } - }, - selectSample(val) { + }) + }, + getProNum() { + this.sampleSelectionList.forEach((m, i) => { + this.$set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length) + }) + this.$refs.sampleTable.doLayout() + }, + searchFilter() { + this.$refs.tree.filter(this.search) + }, + nodeOpen(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') + if (node.data.code === '[3]') { + this.sampleViewEn = data.sampleTypeEn + } else if (node.data.code === '[4]') { + this.sampleViewEn = data.sampleEn + } + }, + nodeClose(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') + }, + handleNodeClick(val, node, el) { + this.selectTree = '' + this.models = val.children + this.selectTree = getReversedTreePath(node) + }, + /** + * 鑾峰彇鍙嶅悜鎷兼帴鐨勬爲璺緞瀛楃涓� + * @param {Object} node - 褰撳墠鑺傜偣 + * @returns {string} - 鍙嶅悜鎷兼帴鐨勬爲璺緞 + */ + getReversedTreePath(node) { + const pathParts = []; + + // 閫掑綊鑾峰彇鐖惰妭鐐硅矾寰� + const collectParentLabels = (currentNode) => { + if (currentNode && currentNode.label) { + pathParts.unshift(currentNode.label); // 灏嗗綋鍓嶈妭鐐规爣绛炬彃鍏ュ埌鏁扮粍寮�澶� + } + if (currentNode.parent) { + collectParentLabels(currentNode.parent); // 閫掑綊澶勭悊鐖惰妭鐐� + } + }; + + collectParentLabels(node); + + // 鎷兼帴璺緞骞惰繑鍥� + return pathParts.join(" - "); + }, + selectStandardTreeList() { + this.selectStandardTreeLoading = true + selectStandardTreeList2().then(res => { + this.list = res.data + this.list.forEach(a => { + this.expandedKeys.push(a.label) + }) + this.selectStandardTreeLoading = false + }) + }, + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + activeStandardTree() { + let trees = this.selectTree.split(" - ") + if (trees.length < 3) { + this.$message.error('鏈�夋嫨瀵硅薄') + return + } + this.addObj.factory = trees[0] + this.addObj.laboratory = trees[1] + this.addObj.sampleType = trees[2] + if (trees[3] === undefined || trees[3] === '' || trees[3] === '- ') { + this.addObj.sample = trees[2] + } else { + this.addObj.sample = trees[3] + } + this.addObj.sampleView = this.addObj.sample + this.addObj.sampleViewEn = this.sampleViewEn + this.addObj.model = (trees[4] == undefined ? null : trees[4]) + this.selectStandardTree = false + this.sampleList = [] + for (var i = 0; i < this.addObj.sampleNum; i++) { + 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.childSampleList = [] + this.sample.insulating = null + this.sample.sheath = null + this.sampleList.push(this.HaveJson(this.sample)) + this.count++ + } + this.$refs.sampleTable.doLayout() + // this.selectsStandardMethodByFLSSM() + }, + selectsStandardMethodByFLSSMList() { + this.methodLoad = true + 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) + selectsStandardMethodByFLSSM({ + tree: selectTree + }).then(ress => { + this.methods = ress.data.standardMethodList + }) + } else { + this.methods = res.data.standardMethodList + } + } catch (e) { } + }) + }, + addStandardTree() { + if (this.selectTree == null) return + this.sampleList = [] + this.productList = [] + for (var i = 0; i < this.addObj.sampleNum; i++) { + 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 = parseInt(i + 1) + this.sample.childSampleList = [] + this.sample.insulating = null + this.sample.sheath = null + this.sampleList.push(this.HaveJson(this.sample)) + // this.count++ + } + }, + selectSample(val) { + this.sampleIds = [] + val.forEach(a => { + this.sampleIds.push(a.id) + }) + this.sampleSelectionList = val + }, + selectProduct(val) { + this.productIds = [] + val.forEach(a => { + this.productIds.push(a.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 = [] - val.forEach(a => { - this.sampleIds.push(a.id) + this.sampleSelectionList.forEach(ele => { + if (ele.id == row.id) { + this.sampleIds.push(row.id) + } }) - this.sampleSelectionList = val - }, - selectProduct(val) { - this.productIds = [] - val.forEach(a => { - this.productIds.push(a.id) + } + this.productList = row.insProduct + this.productList0 = JSON.parse(JSON.stringify(this.productList)) + setTimeout(() => { + this.productList.forEach(a => { + if (a.state == 1) { + this.toggleSelection(a) + } else { + this.$refs.productTable.toggleRowSelection(a, false); + } }) - }, - 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 + }, 200) + }, + toggleSelection(row) { + this.$refs.productTable.toggleRowSelection(row, true); + }, + selectOne(selection, row) { + this.bsm1DiaList = [] + row.state = row.state == 1 ? 0 : 1 + if (row.section === null) { + row.section = "" + } + if (row.sectionCopy === undefined && row.section) { + if (row.section.indexOf('[') > -1) { + this.$set(row, 'sectionCopy', row.section) } - this.sampleId = row.id - if (this.active !== 1) { - this.sampleIds = [] - this.sampleSelectionList.forEach(ele=>{ - if(ele.id == row.id){ - this.sampleIds.push(row.id) + } + if (row.ask.includes('[')) { + this.$set(row, 'askCopy', row.ask) + } + if (row.tell.includes('[')) { + this.$set(row, 'tellCopy', row.tell) + } + let arr = this.productList.filter(m => m.state == 1 && row.sectionCopy && row.sectionCopy.includes(m.sectionCopy) && m.ask && m.sectionCopy.indexOf('[') == -1) + if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1 && arr.length == 0) { + if (row.sectionCopy.indexOf('[') > -1) { + row.bsmRow = this.HaveJson(row) + } + row.bsm1 = true + this.bsm1DiaList.push(row) + this.bsm1DiaAll = true + } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0 && arr.length == 0) { + row.bsm1 = false + } else if (arr.length > 0) { + try { + row.bsmRow = this.HaveJson(row) + let sectionCopy = arr[0].sectionCopy + let arr0 = JSON.parse(row.sectionCopy) + let arr1 = JSON.parse(row.ask) + let arr4 = JSON.parse(row.tell) + let index = arr0.indexOf(sectionCopy) + row.sectionCopy = sectionCopy + row.ask = arr1[index] + row.tell = arr4[index] + } catch (e) { } + } + this.sampleList.forEach(item => { + if (this.sampleIds.indexOf(item.id) > -1 || this.currentMethod.id == item.id) { + item.insProduct.forEach(m => { + if (m.id == row.id) { + m.state = row.state; } }) } + }) + this.productList.forEach(item => { + if (item.id == row.id) { + item.state = row.state; + } + }) + this.changeProductList0() + this.currentMethod.insProduct = this.productList0 + this.getProNum() + }, + 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; + }, + tableRowClassName({ row, rowIndex }) { + if (row.state == 1) { + return 'warning-row'; + } else { + return ''; + } + }, + selectInsOrderTemplate() { + selectInsOrderTemplate({ company: this.addObj.company }).then(res => { + this.templates = res.data + }) + }, + // 鍒犻櫎妯℃澘--璋冪敤鎺ュ彛 + handleDelete(row) { + this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + delInsOrderTemplate({ + id: row.id + }).then(res => { + this.$message.success('鍒犻櫎鎴愬姛') + this.selectInsOrderTemplate() + }).catch(e => { + this.$message.error('鍒犻櫎澶辫触') + }) + }).catch(() => { }) + }, + // 淇濆瓨妯℃澘 + addTemplateDia() { + if (this.templateName) { + this.templateLoading = true; + addInsOrderTemplate({ + name: this.templateName, + thing: JSON.stringify({ + addObj: this.addObj, + sampleList: this.sampleList, + selectTree: this.selectTree + }) + }).then(res => { + this.templateLoading = false; + this.templateDia = false; + this.$message.success('淇濆瓨鎴愬姛') + this.selectInsOrderTemplate() + this.templateName = '' + }).catch(e => { + this.templateLoading = false; + }) + } else { + this.$message.error('璇峰~鍐欐ā鏉垮悕绉�') + } + }, + // 鏌ヨ妯℃澘 + selectInsOrderTemplateById(e) { + selectInsOrderTemplateById({ id: e }).then(res => { + let obj = JSON.parse(res.data) + //鍒跺崟浜鸿缃负褰撳墠鐧诲綍鐢ㄦ埛 + let user = this.nickName + obj.addObj.custom = user.name + obj.addObj.userId = user.userId + this.addObj = obj.addObj; + this.sampleList = obj.sampleList; + this.selectTree = obj.selectTree + this.rowClick(this.sampleList[0]) + }) + }, + delSampleAndProduct() { + this.sampleList.splice(scope.$index, 1) + this.productList = [] + }, + spliceString(row, val, type) { + if (type === 'cores') { + const index = this.sampleList.findIndex(item => item.id === row.id) + if (index > -1) { + if (this.sampleList[index].modelNum) { + this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].cores + '*' + this.sampleList[index].modelNum) + } else { + this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].cores) + } + if (this.sampleList[index].modelNum && !this.sampleList[index].cores) { + this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].modelNum) + } + } + } + this.getProductLoad = true + let selectTreeList = this.selectTree.split(" - ") + this.addObj.model && (selectTreeList[selectTreeList.length - 1] = this.addObj.model) + selectStandardProductList({ + model: this.addObj.model ? this.addObj.model : row.model, + modelNum: row.modelNum, + standardMethodListId: val, + factory: selectTreeList.join(" - "), + cores: row.cores, + conductorMaterial: row.conductorMaterial, + conductorType: row.conductorType, + }).then(res => { + res.data.forEach(a => { + a.state = 0 + }) + row.insProduct = this.HaveJson(res.data) + this.getProductLoad = false this.productList = row.insProduct this.productList0 = JSON.parse(JSON.stringify(this.productList)) + this.$refs.sampleTable.setCurrentRow(row) + this.$nextTick(() => { + this.$refs.productTable.doLayout(); + this.upIndex++ + }); setTimeout(() => { this.productList.forEach(a => { - if (a.state == 1) { - this.toggleSelection(a) - }else{ - this.$refs.productTable.toggleRowSelection(a, false); - } + if (a.state == 1) this.toggleSelection(a) }) }, 200) - }, - toggleSelection(row) { - this.$refs.productTable.toggleRowSelection(row, true); - }, - selectOne(selection, row) { - this.bsm1DiaList = [] - row.state = row.state == 1 ? 0 : 1 - if(row.section === null) { - row.section = "" - } - if (row.sectionCopy === undefined && row.section) { - if (row.section.indexOf('[') > -1) { - this.$set(row, 'sectionCopy', row.section) - } - } - if (row.ask.includes('[')) { - this.$set(row, 'askCopy', row.ask) - } - if (row.tell.includes('[')) { - this.$set(row, 'tellCopy', row.tell) - } - let arr = this.productList.filter(m=>m.state==1&&row.sectionCopy&&row.sectionCopy.includes(m.sectionCopy)&&m.ask&&m.sectionCopy.indexOf('[')==-1) - if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1&&arr.length==0) { - if (row.sectionCopy.indexOf('[') > -1) { - row.bsmRow = this.HaveJson(row) - } - row.bsm1 = true - this.bsm1DiaList.push(row) - this.bsm1DiaAll = true - } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0&&arr.length==0) { - row.bsm1 = false - }else if(arr.length>0){ - try{ - row.bsmRow = this.HaveJson(row) - let sectionCopy = arr[0].sectionCopy - let arr0 = JSON.parse(row.sectionCopy) - let arr1 = JSON.parse(row.ask) - let arr4 = JSON.parse(row.tell) - let index = arr0.indexOf(sectionCopy) - row.sectionCopy = sectionCopy - row.ask = arr1[index] - row.tell = arr4[index] - } catch(e) {} - } - this.sampleList.forEach(item => { - if (this.sampleIds.indexOf(item.id) > -1||this.currentMethod.id==item.id) { - item.insProduct.forEach(m => { - if (m.id == row.id) { - m.state = row.state; - } - }) - } - }) - this.productList.forEach(item => { - if (item.id == row.id) { - item.state = row.state; - } - }) - this.changeProductList0() - this.currentMethod.insProduct = this.productList0 - this.getProNum() - }, - 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; - }, - tableRowClassName({row, rowIndex}) { - if (row.state == 1) { - return 'warning-row'; - } else { - return ''; - } - }, - selectInsOrderTemplate() { - selectInsOrderTemplate({company: this.addObj.company}).then(res => { - this.templates = res.data - }) - }, - // 鍒犻櫎妯℃澘--璋冪敤鎺ュ彛 - handleDelete(row) { - this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(() => { - delInsOrderTemplate({ - id: row.id - }).then(res => { - this.$message.success('鍒犻櫎鎴愬姛') - this.selectInsOrderTemplate() - }).catch(e => { - this.$message.error('鍒犻櫎澶辫触') - }) - }).catch(() => {}) - }, - // 淇濆瓨妯℃澘 - addTemplateDia() { - if (this.templateName) { - this.templateLoading = true; - addInsOrderTemplate({ - name: this.templateName, - thing: JSON.stringify({ - addObj: this.addObj, - sampleList: this.sampleList, - selectTree:this.selectTree - }) - }).then(res => { - this.templateLoading = false; - this.templateDia = false; - this.$message.success('淇濆瓨鎴愬姛') - this.selectInsOrderTemplate() - this.templateName = '' - }).catch(e => { - this.templateLoading = false; - }) - } else { - this.$message.error('璇峰~鍐欐ā鏉垮悕绉�') - } - }, - // 鏌ヨ妯℃澘 - selectInsOrderTemplateById(e) { - selectInsOrderTemplateById({id: e}).then(res => { - let obj = JSON.parse(res.data) - //鍒跺崟浜鸿缃负褰撳墠鐧诲綍鐢ㄦ埛 - let user = this.nickName - obj.addObj.custom = user.name - obj.addObj.userId = user.userId - this.addObj = obj.addObj; - this.sampleList = obj.sampleList; - this.selectTree = obj.selectTree - this.rowClick(this.sampleList[0]) - }) - }, - delSampleAndProduct() { - this.sampleList.splice(scope.$index, 1) - this.productList = [] - }, - spliceString (row, val, type) { - if (type === 'cores') { - const index = this.sampleList.findIndex(item => item.id === row.id) - if (index > -1) { + }) + }, + methodChange(val, row, type) { + if (type === 'splice') { + const index = this.sampleList.findIndex(item => item.id === row.id) + if (index > -1) { + if (this.sampleList[index].cores) { + this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].cores + '*' + this.sampleList[index].modelNum) + } else { if (this.sampleList[index].modelNum) { - this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].cores + '*' + this.sampleList[index].modelNum) + const index2 = this.sampleList[index].modelNum.indexOf('脳') + if (index2 === 0) { + this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + this.sampleList[index].modelNum) + } else if (index2 === -1) { + this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].modelNum) + } else { + this.$set(this.sampleList[index], 'endModels', this.sampleList[index].modelNum + this.sampleList[index].model) + } } else { - this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].cores) - } - if (this.sampleList[index].modelNum && !this.sampleList[index].cores) { - this.$set(this.sampleList[index], 'endModels',this.sampleList[index].model + ' ' + this.sampleList[index].modelNum) + this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ((this.sampleList[index].modelNum == null || this.sampleList[index].modelNum == '' || this.sampleList[index].modelNum == 'null') ? '' : (' ' + this.sampleList[index].modelNum))) } } + if (!this.sampleList[index].modelNum && this.sampleList[index].cores) { + this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].cores) + } } - this.getProductLoad = true - let selectTreeList = this.selectTree.split(" - ") - this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model) - selectStandardProductList({ - model: this.addObj.model?this.addObj.model:row.model, - modelNum: row.modelNum, - standardMethodListId: val, - factory: selectTreeList.join(" - "), - cores: row.cores, - conductorMaterial: row.conductorMaterial, - conductorType: row.conductorType, - }).then(res => { - res.data.forEach(a => { - a.state = 0 - }) - row.insProduct = this.HaveJson(res.data) - this.getProductLoad = false - this.productList = row.insProduct - this.productList0 = JSON.parse(JSON.stringify(this.productList)) - this.$refs.sampleTable.setCurrentRow(row) - this.$nextTick(() => { - this.$refs.productTable.doLayout(); - this.upIndex++ - }); - setTimeout(() => { - this.productList.forEach(a => { - if (a.state == 1) this.toggleSelection(a) - }) - }, 200) + } + 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 + let selectTreeList = this.selectTree.split(" - ") + this.addObj.model && (selectTreeList[selectTreeList.length - 1] = this.addObj.model) + selectStandardProductList({ + model: this.addObj.model ? this.addObj.model : row.model, + modelNum: row.modelNum, + standardMethodListId: val, + cores: row.cores, + factory: selectTreeList.join(" - "), + }).then(res => { + res.data.forEach(a => { + a.state = 0 }) - }, - methodChange(val, row, type) { - if (type === 'splice') { - const index = this.sampleList.findIndex(item => item.id === row.id) - if (index > -1) { - if (this.sampleList[index].cores) { - this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].cores + '*' + this.sampleList[index].modelNum) - } else { - if (this.sampleList[index].modelNum) { - const index2 = this.sampleList[index].modelNum.indexOf('脳') - if (index2 === 0) { - this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + this.sampleList[index].modelNum) - } else if (index2 === -1) { - this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].modelNum) - } else { - this.$set(this.sampleList[index], 'endModels', this.sampleList[index].modelNum + this.sampleList[index].model) + row.insProduct = this.HaveJson(res.data) + this.getProductLoad = false + this.productList = row.insProduct + this.productList0 = JSON.parse(JSON.stringify(this.productList)) + this.$refs.sampleTable.setCurrentRow(row) + setTimeout(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }, 200) + }) + }, + changeModel() { + this.sampleList.forEach(a => { + let obj = this.sampleIds.find(b => b == a.id) + if (obj) { + a.model = this.model + } + }) + }, + changeStandardMethodListId() { + this.sampleList.forEach(a => { + let obj = this.sampleIds.find(b => b == a.id) + if (obj) { + a.standardMethodListId = this.standardMethodListId + this.methodChange(this.standardMethodListId, a) + } + }) + }, + methodFocus() { + this.selectsStandardMethodByFLSSMList() + }, + handleChangeModel(e) { + this.productList = [] + 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 + } + }, + // 瑕佹眰鍊煎彉鍖栨椂 + requestChange(e, row, type) { + //this.currentMethod 褰撳墠鏍峰搧id + this.sampleList.forEach(item => { + if (item.id == this.currentMethod.id) { + item.insProduct.forEach(i => { + if (i.id == row.id) { + if (row.repetitionTag) { + if (row.repetitionTag == i.repetitionTag) { + i[type] = e } } else { - this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ((this.sampleList[index].modelNum == null || this.sampleList[index].modelNum == '' || this.sampleList[index].modelNum == 'null') ? '' : (' ' + this.sampleList[index].modelNum))) - } - } - if (!this.sampleList[index].modelNum && this.sampleList[index].cores) { - this.$set(this.sampleList[index], 'endModels', this.sampleList[index].model + ' ' + this.sampleList[index].cores) - } - } - } - 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 - let selectTreeList = this.selectTree.split(" - ") - this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model) - selectStandardProductList({ - model: this.addObj.model?this.addObj.model:row.model, - modelNum: row.modelNum, - standardMethodListId: val, - cores: row.cores, - factory: selectTreeList.join(" - "), - }).then(res => { - res.data.forEach(a => { - a.state = 0 - }) - row.insProduct = this.HaveJson(res.data) - this.getProductLoad = false - this.productList = row.insProduct - this.productList0 = JSON.parse(JSON.stringify(this.productList)) - this.$refs.sampleTable.setCurrentRow(row) - setTimeout(() => { - this.productList.forEach(a => { - if (a.state == 1) this.toggleSelection(a) - }) - }, 200) - }) - }, - changeModel() { - this.sampleList.forEach(a => { - let obj = this.sampleIds.find(b => b == a.id) - if (obj) { - a.model = this.model - } - }) - }, - changeStandardMethodListId() { - this.sampleList.forEach(a => { - let obj = this.sampleIds.find(b => b == a.id) - if (obj) { - a.standardMethodListId = this.standardMethodListId - this.methodChange(this.standardMethodListId, a) - } - }) - }, - methodFocus() { - this.selectsStandardMethodByFLSSMList() - }, - handleChangeModel(e) { - this.productList = [] - 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 - } - }, - // 瑕佹眰鍊煎彉鍖栨椂 - requestChange(e, row,type) { - //this.currentMethod 褰撳墠鏍峰搧id - this.sampleList.forEach(item=>{ - if(item.id == this.currentMethod.id){ - item.insProduct.forEach(i=>{ - if(i.id == row.id){ - if(row.repetitionTag){ - if(row.repetitionTag==i.repetitionTag){ - i[type] = e - } - }else{ - if(!i.repetitionTag){ - i[type] = e - } + if (!i.repetitionTag) { + i[type] = e } } + } + }) + } + }) + }, + selectStandardMethods() { + selectStandardMethodEnum().then(res => { + this.methods = res.data + }) + }, + selectable() { + if (this.active > 1) { + return false + } else { + return true + } + }, + selectable0(row, index) { + if (this.active > 1 || row.repetitionTag) { + return false + } else { + return true + } + }, + handleAll(e) { + if (e.length > 0) { + this.productList.map(m => { + if (e.find(a => a.id == m.id)) { + m.state = 1 + } + return m + }) + } else { + this.productList.map(m => { + m.state = 0 + return m + }) + } + this.bsm1DiaList = [] + this.productList.forEach(p => { + if (p.sectionCopy === undefined && p.section) { + if (p.section.indexOf('[') > -1) { + this.$set(p, 'sectionCopy', p.section) + } + } + if (p.ask.includes('[')) { + this.$set(p, 'askCopy', p.ask) + } + if (p.tell.includes('[')) { + this.$set(p, 'tellCopy', p.tell) + } + // if (p.manHour.includes('[')) { + // this.$set(p, 'manHourCopy', p.manHour) + // } + // if (p.price.includes('[')) { + // this.$set(p, 'priceCopy', p.price) + // } + if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.sectionCopy !== undefined && p.state === 1) { + if (p.sectionCopy.indexOf('[') > -1) { + p.bsmRow = this.HaveJson(p) + } + p.bsm1 = true + this.bsm1DiaList.push(p) + this.bsm1DiaAll = true + } else if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.state === 0) { + p.bsm1 = false + } + }) + if (e.length > 0) { + this.sampleList.map(item => { + if (this.sampleIds.indexOf(item.id) > -1 || this.currentMethod.id == item.id) { + item.insProduct.map(m => { + m.state = 1 + return m; }) } + return item }) - }, - selectStandardMethods() { - selectStandardMethodEnum().then(res => { - this.methods = res.data + } else { + this.sampleList.map(item => { + if (this.sampleIds.indexOf(item.id) > -1 || this.currentMethod.id == item.id) { + item.insProduct.map(m => { + m.state = 0 + return m; + }) + } + return item }) - }, - selectable() { - if (this.active > 1) { - return false + } + this.productList.forEach(item => { + if (item.id == row.id) { + item.state = row.state; + } + }) + this.changeProductList0() + this.currentMethod.insProduct = this.productList0 + this.getProNum() + this.$nextTick(() => { + this.$refs.productTable.doLayout() + }) + }, + submitTell() { + if (!this.tell) { + this.$message.error('璇疯緭鍏ヤ笉閫氳繃鍘熷洜') + return + } + this.noLoading = true; + upInsOrderOfState({ + state: 2, + id: this.currentId, + tell: this.tell + }).then(res => { + this.noLoading = false; + this.tell = ''; + this.$message.success('鎻愪氦鎴愬姛') + this.issuedDialogVisible = false; + this.closeOpenPage() + }) + }, + filterHandler(value, row, column) { + const property = column['property']; + return row[property] === value; + }, + areObjectsValuesEqual(objects, property) { + if (!objects || objects.length === 0) return false; + const firstValue = objects[0][property]; + return objects.every(obj => obj[property] === firstValue); + }, + // 杈呭姪绾胯姱閰嶇疆 + openAuxiliaryCore() { + if (this.active == 1) { + if (this.sampleIds.length === 0) { + this.$message.error("鏈�夋嫨鏍峰搧") + } else if (this.sampleIds.length === 1) { + if (!this.sampleSelectionList[0].standardMethodListId) { + this.$message.error("鏍峰搧鏈�夋嫨妫�楠屾爣鍑�") + return + } + this.auxiliaryShow = true } else { - return true - } - }, - selectable0(row,index) { - if (this.active > 1||row.repetitionTag) { - return false - } else { - return true - } - }, - handleAll(e) { - if (e.length > 0) { - this.productList.map(m => { - if(e.find(a=>a.id == m.id)){ - m.state = 1 - } - return m - }) - } else { - this.productList.map(m => { - m.state = 0 - return m - }) - } - this.bsm1DiaList = [] - this.productList.forEach(p => { - if (p.sectionCopy === undefined && p.section) { - if (p.section.indexOf('[') > -1) { - this.$set(p, 'sectionCopy', p.section) - } - } - if (p.ask.includes('[')) { - this.$set(p, 'askCopy', p.ask) - } - if (p.tell.includes('[')) { - this.$set(p, 'tellCopy', p.tell) - } - // if (p.manHour.includes('[')) { - // this.$set(p, 'manHourCopy', p.manHour) - // } - // if (p.price.includes('[')) { - // this.$set(p, 'priceCopy', p.price) - // } - if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.sectionCopy !== undefined && p.state === 1) { - if (p.sectionCopy.indexOf('[') > -1) { - p.bsmRow = this.HaveJson(p) - } - p.bsm1 = true - this.bsm1DiaList.push(p) - this.bsm1DiaAll = true - } else if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.state === 0) { - p.bsm1 = false - } - }) - if (e.length > 0) { - this.sampleList.map(item => { - if (this.sampleIds.indexOf(item.id) > -1||this.currentMethod.id==item.id) { - item.insProduct.map(m => { - m.state = 1 - return m; - }) - } - return item - }) - } else { - this.sampleList.map(item => { - if (this.sampleIds.indexOf(item.id) > -1||this.currentMethod.id==item.id) { - item.insProduct.map(m => { - m.state = 0 - return m; - }) - } - return item - }) - } - this.productList.forEach(item => { - if (item.id == row.id) { - item.state = row.state; - } - }) - this.changeProductList0() - this.currentMethod.insProduct = this.productList0 - this.getProNum() - this.$nextTick(() => { - this.$refs.productTable.doLayout() - }) - }, - submitTell() { - if (!this.tell) { - this.$message.error('璇疯緭鍏ヤ笉閫氳繃鍘熷洜') - return - } - this.noLoading = true; - upInsOrderOfState({ - state: 2, - id: this.currentId, - tell: this.tell - }).then(res => { - this.noLoading = false; - this.tell = ''; - this.$message.success('鎻愪氦鎴愬姛') - this.issuedDialogVisible = false; - this.closeOpenPage() - }) - }, - filterHandler(value, row, column) { - const property = column['property']; - return row[property] === value; - }, - areObjectsValuesEqual (objects, property) { - if (!objects || objects.length === 0) return false; - const firstValue = objects[0][property]; - return objects.every(obj => obj[property] === firstValue); - }, - // 杈呭姪绾胯姱閰嶇疆 - openAuxiliaryCore () { - if (this.active == 1) { - if (this.sampleIds.length === 0) { - this.$message.error("鏈�夋嫨鏍峰搧") - } else if (this.sampleIds.length === 1) { - if (!this.sampleSelectionList[0].standardMethodListId) { - this.$message.error("鏍峰搧鏈�夋嫨妫�楠屾爣鍑�") + // 鍚屾椂閰嶇疆澶氫釜鏍峰搧鐨勭數缂嗛厤缃椂蹇呴』閫夋嫨鐩稿悓鐨勬楠屾爣鍑� + if (!this.sampleSelectionList.every(value => value.standardMethodListId)) { + this.$message.error("鏍峰搧鏈�夋嫨妫�楠屾爣鍑�") + } else { + if (!this.areObjectsValuesEqual(this.sampleSelectionList, 'standardMethodListId')) { + this.$message.error("璇烽�夋嫨鐩稿悓鐨勬楠屾爣鍑�") return } this.auxiliaryShow = true - } else { - // 鍚屾椂閰嶇疆澶氫釜鏍峰搧鐨勭數缂嗛厤缃椂蹇呴』閫夋嫨鐩稿悓鐨勬楠屾爣鍑� - if (!this.sampleSelectionList.every(value => value.standardMethodListId)) { - this.$message.error("鏍峰搧鏈�夋嫨妫�楠屾爣鍑�") - } else { - if (!this.areObjectsValuesEqual(this.sampleSelectionList, 'standardMethodListId')) { - this.$message.error("璇烽�夋嫨鐩稿悓鐨勬楠屾爣鍑�") - return - } - this.auxiliaryShow = true - } - } - } else { - if (this.sampleId === null) { - this.$message.error('鏈�変腑鏍峰搧') } } - }, - openCableConfig() { - if (this.active == 1) { - if (this.sampleIds.length === 0) { - this.$message.error("鏈�夋嫨鏍峰搧") - } else if (this.sampleIds.length === 1) { - if (!this.sampleSelectionList[0].standardMethodListId) { - this.$message.error("鏍峰搧鏈�夋嫨妫�楠屾爣鍑�") + } else { + if (this.sampleId === null) { + this.$message.error('鏈�変腑鏍峰搧') + } + } + }, + openCableConfig() { + if (this.active == 1) { + if (this.sampleIds.length === 0) { + this.$message.error("鏈�夋嫨鏍峰搧") + } else if (this.sampleIds.length === 1) { + if (!this.sampleSelectionList[0].standardMethodListId) { + this.$message.error("鏍峰搧鏈�夋嫨妫�楠屾爣鍑�") + return + } + this.cableConfigShow = true + } else { + // 鍚屾椂閰嶇疆澶氫釜鏍峰搧鐨勭數缂嗛厤缃椂蹇呴』閫夋嫨鐩稿悓鐨勬楠屾爣鍑� + if (!this.sampleSelectionList.every(value => value.standardMethodListId)) { + this.$message.error("鏍峰搧鏈�夋嫨妫�楠屾爣鍑�") + } else { + if (!this.areObjectsValuesEqual(this.sampleSelectionList, 'standardMethodListId')) { + this.$message.error("璇烽�夋嫨鐩稿悓鐨勬楠屾爣鍑�") return } this.cableConfigShow = true - } else { - // 鍚屾椂閰嶇疆澶氫釜鏍峰搧鐨勭數缂嗛厤缃椂蹇呴』閫夋嫨鐩稿悓鐨勬楠屾爣鍑� - if (!this.sampleSelectionList.every(value => value.standardMethodListId)) { - this.$message.error("鏍峰搧鏈�夋嫨妫�楠屾爣鍑�") - } else { - if (!this.areObjectsValuesEqual(this.sampleSelectionList, 'standardMethodListId')) { - this.$message.error("璇烽�夋嫨鐩稿悓鐨勬楠屾爣鍑�") - return + } + } + } else { + if (this.sampleId === null) { + this.$message.error('鏈�変腑鏍峰搧') + } + } + }, + goBackAdd() { + this.cableConfigShow = false + }, + goBackAdd2() { + this.auxiliaryShow = false + }, + // 鍏ㄩ�夌壒娈婂�煎鐞嗘閫夋嫨瑕佹眰鍊肩殑鍥炶皟 + upBsmAll(item) { + const i = this.bsm1DiaList.findIndex(obj => obj.id === item.id) + if (i > -1) { + // 鎵惧埌鐩稿簲鐨勬楠岄」璧嬪�� + this.bsm1DiaList[i].bsm1Val = item.bsm1Val + let sections = this.bsm1DiaList[i].bsmRow.sectionCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.sectionCopy); + let asks = this.bsm1DiaList[i].bsmRow.askCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.askCopy); + let tells = this.bsm1DiaList[i].bsmRow.tellCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.tellCopy); + // let manHours = this.bsm1DiaList[i].bsmRow.manHourCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.manHourCopy); + // let prices = this.bsm1DiaList[i].bsmRow.priceCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.priceCopy); + for (var a in sections) { + if (this.bsm1DiaList[i].bsm1Val === sections[a]) { + this.productList.forEach(p => { + // 灏嗛�夋嫨濂界殑瑕佹眰鍊艰祴鍊煎埌鍒楄〃閲� + if (p.id === this.bsm1DiaList[i].bsmRow.id) { + p.section = sections[a] + p.ask = asks[a] + p.tell = tells[a] + // p.manHour = manHours[a] + // p.price = prices[a] } - this.cableConfigShow = true - } - } - } else { - if (this.sampleId === null) { - this.$message.error('鏈�変腑鏍峰搧') - } - } - }, - goBackAdd () { - this.cableConfigShow = false - }, - goBackAdd2 () { - this.auxiliaryShow = false - }, - // 鍏ㄩ�夌壒娈婂�煎鐞嗘閫夋嫨瑕佹眰鍊肩殑鍥炶皟 - upBsmAll (item) { - const i = this.bsm1DiaList.findIndex(obj => obj.id === item.id) - if (i > -1) { - // 鎵惧埌鐩稿簲鐨勬楠岄」璧嬪�� - this.bsm1DiaList[i].bsm1Val = item.bsm1Val - let sections = this.bsm1DiaList[i].bsmRow.sectionCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.sectionCopy); - let asks = this.bsm1DiaList[i].bsmRow.askCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.askCopy); - let tells = this.bsm1DiaList[i].bsmRow.tellCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.tellCopy); - // let manHours = this.bsm1DiaList[i].bsmRow.manHourCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.manHourCopy); - // let prices = this.bsm1DiaList[i].bsmRow.priceCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.priceCopy); - for (var a in sections) { - if (this.bsm1DiaList[i].bsm1Val === sections[a]) { - this.productList.forEach(p => { - // 灏嗛�夋嫨濂界殑瑕佹眰鍊艰祴鍊煎埌鍒楄〃閲� - if (p.id === this.bsm1DiaList[i].bsmRow.id) { - p.section = sections[a] - p.ask = asks[a] - p.tell = tells[a] - // p.manHour = manHours[a] - // p.price = prices[a] - } - }) - break - } - } - } - this.changeProductList0() - this.currentMethod.insProduct = this.productList0 - }, - save1 () { - if (this.bsm1DiaList.length > 0) { - this.bsm1DiaList.forEach(item => { - if (!item.bsm1Val) { - throw this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') - } - }) - } - this.bsm1DiaAll = false - }, - beforeClose(done) { - if (this.bsm1DiaList.length > 0) { - this.bsm1DiaList.forEach(item => { - if (!item.bsm1Val) { - throw this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') - } - }) - } - done() - }, - getTotal() { - this.totalArr = [] - // this.total = 0; - this.sampleList.forEach(item => { - if (item.insProduct && item.insProduct.length > 0) { - item.insProduct.forEach(a => { - this.totalArr.push(a) }) + break + } + } + } + this.changeProductList0() + this.currentMethod.insProduct = this.productList0 + }, + save1() { + if (this.bsm1DiaList.length > 0) { + this.bsm1DiaList.forEach(item => { + if (!item.bsm1Val) { + throw this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') } }) - let mySet = new Set(); - let arr0 = this.totalArr.filter(item => { - if (item.state == 1) { - let num1 = mySet.size - if (item.manHourGroup === '' || !item.manHourGroup) { + } + this.bsm1DiaAll = false + }, + beforeClose(done) { + if (this.bsm1DiaList.length > 0) { + this.bsm1DiaList.forEach(item => { + if (!item.bsm1Val) { + throw this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') + } + }) + } + done() + }, + getTotal() { + this.totalArr = [] + // this.total = 0; + this.sampleList.forEach(item => { + if (item.insProduct && item.insProduct.length > 0) { + item.insProduct.forEach(a => { + this.totalArr.push(a) + }) + } + }) + let mySet = new Set(); + let arr0 = this.totalArr.filter(item => { + if (item.state == 1) { + let num1 = mySet.size + if (item.manHourGroup === '' || !item.manHourGroup) { + return true + } else { + mySet.add(item.manHourGroup) + let num2 = mySet.size + if (num2 > num1) { return true } else { - mySet.add(item.manHourGroup) - let num2 = mySet.size - if (num2 > num1) { - return true - } else { - return false - } + return false } } - }) - let arr1 = this.totalArr.filter(item => item.state == 1) - let mySet0 = new Set(); - this.sonLaboratoryList = [] - arr1.forEach(item => { - let num1 = mySet0.size - mySet0.add(item.sonLaboratory) - let num2 = mySet0.size - if(num2>num1){ - this.sonLaboratoryList.push({ - label:item.sonLaboratory, - value:item.sonLaboratory, - }) - } - }) - }, - changeUser(){ - if(this.sonLaboratoryList.length>0){ - this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value } - }, - addProductList(productList,row,index){ - let list = productList.filter(m=>{ - if(m.id==row.id){ - m.delete = false - } - return m.id==row.id - }) - let num = list.length - let obj = this.HaveJson(row) - obj.repetitionTag = num - obj.delete = true - productList.splice(index+num,0,obj) - this.addProductList0(row,index) - }, - addProductList0(row,index){ - let list = this.productList0.filter(m=>{ - if(m.id==row.id){ - m.delete = false - } - return m.id==row.id - }) - let num = list.length - let obj = this.HaveJson(row) - obj.repetitionTag = num - obj.delete = true - this.productList0.splice(index+num,0,obj) - }, - deleteProductList(index,list){ - if(list[index-1]&&list[index-1].repetitionTag){ - list[index-1].delete=true + }) + let arr1 = this.totalArr.filter(item => item.state == 1) + let mySet0 = new Set(); + this.sonLaboratoryList = [] + arr1.forEach(item => { + let num1 = mySet0.size + mySet0.add(item.sonLaboratory) + let num2 = mySet0.size + if (num2 > num1) { + this.sonLaboratoryList.push({ + label: item.sonLaboratory, + value: item.sonLaboratory, + }) } - list.splice(index,1) - this.deleteProductList0(index) - }, - deleteProductList0(index){ - if(this.productList0[index-1]&&this.productList0[index-1].repetitionTag){ - this.productList0[index-1].delete=true + }) + }, + changeUser() { + if (this.sonLaboratoryList.length > 0) { + this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value + } + }, + addProductList(productList, row, index) { + let list = productList.filter(m => { + if (m.id == row.id) { + m.delete = false } - this.productList0.splice(index,1) - }, - goBack () { - if (this.active == 1) { - this.$router.go(-1) - } else { - this.closeOpenPage() + return m.id == row.id + }) + let num = list.length + let obj = this.HaveJson(row) + obj.repetitionTag = num + obj.delete = true + productList.splice(index + num, 0, obj) + this.addProductList0(row, index) + }, + addProductList0(row, index) { + let list = this.productList0.filter(m => { + if (m.id == row.id) { + m.delete = false } - }, - closeOpenPage() { + return m.id == row.id + }) + let num = list.length + let obj = this.HaveJson(row) + obj.repetitionTag = num + obj.delete = true + this.productList0.splice(index + num, 0, obj) + }, + deleteProductList(index, list) { + if (list[index - 1] && list[index - 1].repetitionTag) { + list[index - 1].delete = true + } + list.splice(index, 1) + this.deleteProductList0(index) + }, + deleteProductList0(index) { + if (this.productList0[index - 1] && this.productList0[index - 1].repetitionTag) { + this.productList0[index - 1].delete = true + } + this.productList0.splice(index, 1) + }, + goBack() { + if (this.active == 1) { this.$router.go(-1) - this.$tab.closeOpenPage() - }, - } + } else { + this.closeOpenPage() + } + }, + closeOpenPage() { + this.$router.go(-1) + this.$tab.closeOpenPage() + }, } +} </script> <style scoped> >>>.warning-row { color: #1890FF; } + .node_i { color: orange; font-size: 18px; diff --git a/src/views/standard/standardLibrary/audit.vue b/src/views/standard/standardLibrary/audit.vue index 8e8ba20..576ec75 100644 --- a/src/views/standard/standardLibrary/audit.vue +++ b/src/views/standard/standardLibrary/audit.vue @@ -18,6 +18,10 @@ </template> <script> +import { + standardProductListRecordPage, + productListCheck, +} from "@/api/standard/standardLibrary"; import limsTable from "@/components/Table/lims-table.vue"; export default { components: { @@ -28,21 +32,39 @@ queryParams: {}, tableData: [], column: [ - { label: "鏇存柊鍘熷洜", prop: "number" }, - { label: "鏇存柊鏃堕棿", prop: "name" }, + { label: "鏇存柊鍘熷洜", prop: "remark" }, + { label: "鏇存柊鏃堕棿", prop: "updateTime" }, { label: "鏇存柊浜�", prop: "remark" }, - { label: "鐘舵��", prop: "remark" }, + { + label: "鐘舵��", prop: "checkStatus", + dataType: "tag", + formatData: (params) => { + let obj = this.checkStatusList.find((m) => m.value == params) + if (obj) { + return obj.label + } + }, + formatType: (params) => { + let obj = this.checkStatusList.find((m) => m.value == params) + if (obj) { + return obj.type + } + } + }, { dataType: "action", label: "鎿嶄綔", operation: [ { - name: "涓婁紶闄勪欢", + name: "涓婁紶", type: "upload", accept: '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.pdf', - url: '/insReport/inReport', + url: '/updateRecord/uploadRecordFile', uploadIdFun: (row) => { return row.id + }, + handleSuccessUp: () => { + this.getList() } }, { @@ -59,7 +81,12 @@ name: "鏌ョ湅", type: "text", clickFun: (row) => { - this.handleLook(row); + this.$tab.closeRightPage(); + this.$router.push({ + path: "/audit/auditDetail", query: { + auditId: row.id + } + }); }, }, { @@ -78,14 +105,39 @@ current: 0, }, tableLoading: false, + checkStatusList: [ + { + value: 0, + label: '鏈彁浜�', + type: 'danger' + }, + { + value: 1, + label: '寰呭鏍�', + type: 'warning' + }, + { + value: 2, + label: '閫氳繃', + type: 'success' + }, + { + value: 3, + label: '涓嶉�氳繃', + type: 'danger' + }, + ], } + }, + mounted() { + this.getList() }, methods: { getList() { this.tableLoading = true; let param = { ...this.queryParams, ...this.page }; delete param.total; - selectStandardTemplatePageList({ ...param }) + standardProductListRecordPage({ ...param }) .then((res) => { this.tableLoading = false; if (res.code === 200) { @@ -122,10 +174,26 @@ beforeClose: (action, instance, done) => { if (action === 'confirm') { // 閫氳繃 - this.refresh(); + productListCheck({ + checkStatus: 2, + id: row.id + }).then(res => { + if (res.code == 200) { + this.refresh() + done(); + } + }) } else if (action === 'cancel') { // 涓嶉�氳繃 - this.refresh(); + productListCheck({ + checkStatus: 3, + id: row.id + }).then(res => { + if (res.code == 200) { + this.refresh() + done(); + } + }) } else if (action === 'close') { // 鐐瑰嚮鈥溍椻�濇寜閽紝涓嶅厑璁稿叧闂� done(); @@ -134,11 +202,9 @@ } }) }, - // 鏌ョ湅 - handleLook(row) { }, // 涓嬭浇闄勪欢 handleDown(row) { - this.$download.saveAs(row.fileUrl, row.fileName); + this.$download.saveAs(row.filePath, row.fileName); }, } } diff --git a/src/views/standard/standardLibrary/components/bindSupplierDensityDialogAsk.vue b/src/views/standard/standardLibrary/components/bindSupplierDensityDialogAsk.vue index f73d856..b51195c 100644 --- a/src/views/standard/standardLibrary/components/bindSupplierDensityDialogAsk.vue +++ b/src/views/standard/standardLibrary/components/bindSupplierDensityDialogAsk.vue @@ -1,46 +1,17 @@ <template> <div> - <el-dialog - title="鍘傚瑕佹眰鍊肩粦瀹�" - :visible.sync="isShow" - width="800px" - @close="$emit('closeBindPartDialog')" - > - <div - class="body" - v-if="isShow" - style="height: 500px; overflow-y: auto; padding: 5px 0" - > - <el-table - ref="bindPartTable" - :data="bindPartData" - v-loading="bindPartTableLoading" - highlight-current-row - style="width: 100%" - > - <el-table-column - type="index" - width="70" - label="搴忓彿" - ></el-table-column> - <el-table-column - property="supplierName" - label="鍘傚" - width="200" - ></el-table-column> + <el-dialog title="鍘傚瑕佹眰鍊肩粦瀹�" :visible.sync="isShow" width="800px" @close="$emit('closeBindPartDialog')"> + <div class="body" v-if="isShow" style="height: 500px; overflow-y: auto; padding: 5px 0"> + <el-table ref="bindPartTable" :data="bindPartData" v-loading="bindPartTableLoading" highlight-current-row + style="width: 100%"> + <el-table-column type="index" width="70" label="搴忓彿"></el-table-column> + <el-table-column property="supplierName" label="鍘傚" width="200"></el-table-column> <el-table-column property="ask" label="瑕佹眰鍊�"></el-table-column> <el-table-column property="tell" label="瑕佹眰鎻忚堪"></el-table-column> <el-table-column label="鎿嶄綔" width="100"> <template slot-scope="scope"> - <el-button - type="text" - size="small" - @click="updateBind(scope.row, 'edit')" - >缂栬緫</el-button - > - <el-button type="text" size="small" @click="deleteBind(scope.row)" - >鍒犻櫎</el-button - > + <el-button type="text" size="small" @click="updateBind(scope.row, 'edit')">缂栬緫</el-button> + <el-button type="text" size="small" @click="deleteBind(scope.row)">鍒犻櫎</el-button> </template> </el-table-column> </el-table> @@ -53,55 +24,28 @@ <!-- </div>--> <span slot="footer" class="dialog-footer"> <el-button @click="$emit('closeBindPartDialog')">鍙� 娑�</el-button> - <el-button - type="primary" - @click="addBindPart('add')" - :loading="addBindLoad" - >鏂� 澧�</el-button - > + <el-button type="primary" @click="addBindPart('add')" :loading="addBindLoad">鏂� 澧�</el-button> </span> </el-dialog> - <el-dialog - title="鍘傚瑕佹眰鍊肩粦瀹�" - :visible.sync="addBindSupplierDensityDialog" - v-if="addBindSupplierDensityDialog" - width="400px" - @close="closeBindPartDialog" - :close-on-click-modal="false" - > + <el-dialog title="鍘傚瑕佹眰鍊肩粦瀹�" :visible.sync="addBindSupplierDensityDialog" v-if="addBindSupplierDensityDialog" + width="400px" @close="closeBindPartDialog" :close-on-click-modal="false"> <div class="body" v-if="addBindSupplierDensityDialog"> - <el-form - label-position="right" - label-width="100px" - ref="bindSupplierDensityData" - :rules="bindPartDataRules" - :model="bindSupplierDensityData" - > + <el-form label-position="right" label-width="100px" ref="bindSupplierDensityData" :rules="bindPartDataRules" + :model="bindSupplierDensityData"> <el-form-item label="鍘傚锛�" prop="supplierName"> - <el-input - v-model="bindSupplierDensityData.supplierName" - size="small" - ></el-input> + <el-input v-model="bindSupplierDensityData.supplierName" size="small"></el-input> </el-form-item> <el-form-item label="瑕佹眰鍊硷細" prop="ask"> - <el-input - v-model="bindSupplierDensityData.ask" - size="small" - ></el-input> + <el-input v-model="bindSupplierDensityData.ask" size="small"></el-input> </el-form-item> <el-form-item label="瑕佹眰鎻忚堪锛�" prop="tell"> - <el-input - v-model="bindSupplierDensityData.tell" - size="small" - ></el-input> + <el-input v-model="bindSupplierDensityData.tell" size="small"></el-input> </el-form-item> </el-form> </div> <span slot="footer" class="dialog-footer"> <el-button @click="closeBindPartDialog">鍙� 娑�</el-button> - <el-button type="primary" @click="submitBind" :loading="bindLoad" - >纭� 璁�</el-button - > + <el-button type="primary" @click="submitBind" :loading="bindLoad">纭� 璁�</el-button> </span> </el-dialog> </div> @@ -125,7 +69,7 @@ currentRow: { // 閫夋嫨鏈潯鏁版嵁鐨勪俊鎭� type: Object, - default: () => {}, + default: () => { }, }, }, data() { @@ -202,7 +146,7 @@ this.$message.error("鍒犻櫎澶辫触"); }); }) - .catch(() => {}); + .catch(() => { }); }, sizeChange(val) { this.page.size = val; @@ -236,6 +180,7 @@ this.addBindSupplierDensityDialog = false; this.$message.success("鎿嶄綔鎴愬姛"); this.searchTableData(); + this.$emit('refreshList') } }) .catch((err) => { @@ -251,6 +196,7 @@ this.addBindSupplierDensityDialog = false; this.$message.success("鎿嶄綔鎴愬姛"); this.searchTableData(); + this.$emit('refreshList') } }) .catch((err) => { diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue index 427b2be..dda6e28 100644 --- a/src/views/standard/standardLibrary/index.vue +++ b/src/views/standard/standardLibrary/index.vue @@ -8,7 +8,8 @@ </el-col> <el-col v-if="checkPermi(['standard:standardLibrary:add'])" :span="4" style="text-align: center; line-height: 30px"> - <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="openAddDia"></el-button> + <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="openAddDia" + v-if="!auditId"></el-button> </el-col> </el-row> <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list" @@ -36,7 +37,7 @@ (node.data.children === null || node.data.children === undefined) " :span="2" style="text-align: right"> - <el-button size="mini" type="text" @click.stop="editTreeName(node.data)"> + <el-button size="mini" type="text" @click.stop="editTreeName(node.data)" v-if="!auditId"> <i class="el-icon-edit"></i> </el-button> </el-col> @@ -45,7 +46,7 @@ (node.data.children === null || node.data.children === undefined) " :span="2" style="text-align: right"> - <el-button size="mini" type="text" @click.stop="remove(node, data)"> + <el-button size="mini" type="text" @click.stop="remove(node, data)" v-if="!auditId"> <i class="el-icon-delete"></i> </el-button> </el-col> @@ -57,9 +58,9 @@ <el-row class="title" style="width: 100%"> <el-col :span="19" style="font-size: 14px; color: #999"><span>{{ selectTree - }} </span></el-col> - <el-col :span="5" style="position: absolute;top: -3px;right: -25px;"> - <el-button size="small" type="primary" @click="submitReview">鎻愪氦鍙樻洿</el-button> + }} </span></el-col> + <el-col :span="5" style="position: absolute;top: -3px;right: -25px;" v-if="!auditId && !standardCkeck"> + <el-button size="small" type="primary" @click="submitReview" :loading="submitReviewLoad">鎻愪氦鍙樻洿</el-button> <el-button v-if="isShowCopy" size="small" type="primary" @click="openCopyDia">鎵归噺澶嶅埗</el-button> </el-col> </el-row> @@ -83,8 +84,8 @@ :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :fit="true" :row-class-name="tableRowClassName" class="productTable" header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%" tooltip-effect="dark" @select="upProductSelect" - @selection-change="handleSelectionChange" @select-all="handleAll"> - <el-table-column type="selection" width="50"> </el-table-column> + @selection-change="handleSelectionChange" @select-all="handleAll" :header-cell-class-name="headerCellStyle"> + <el-table-column type="selection" width="50" :selectable="selectable"> </el-table-column> <el-table-column label="浜у搧" min-width="100" prop="sample" show-overflow-tooltip></el-table-column> <el-table-column label="鍨嬪彿" min-width="100" prop="model" show-overflow-tooltip></el-table-column> <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass" @@ -96,7 +97,8 @@ <el-table-column label="瀹℃牳鐘舵��" min-width="140" prop="checkStatus"> <template slot-scope="scope"> <el-tag :type="checkStatusList.find(m => m.value == scope.row.checkStatus).type" - v-if="checkStatusList.find(m => m.value == scope.row.checkStatus)" size="small">{{ + v-if="checkStatusList.find(m => m.value == scope.row.checkStatus) && scope.row.checkStatus !== '' && scope.row.checkStatus !== null" + size="small">{{ checkStatusList.find(m => m.value == scope.row.checkStatus).label }}</el-tag> </template> </el-table-column> @@ -105,7 +107,8 @@ <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�" size="small" - type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input> + type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)" + :disabled="!!auditId || standardCkeck"></el-input> <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> @@ -115,12 +118,12 @@ checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪" size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id) - "></el-input> + " :disabled="!!auditId || standardCkeck"></el-input> <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> <el-table-column label="瀛愬疄楠屽" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column> - <el-table-column label="璇曢獙鏂规硶" prop="method" width="200"> + <!-- <el-table-column label="璇曢獙鏂规硶" prop="method" width="200"> <template slot-scope="scope"> <el-select v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) @@ -131,13 +134,13 @@ </el-select> <span v-else>{{ scope.row.methodS }}</span> </template> - </el-table-column> + </el-table-column> --> <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip> <template slot-scope="scope"> <el-select v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.radius" clearable placeholder="鏉′欢" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id) - "> + " :disabled="!!auditId || standardCkeck"> <el-option v-for="(a, i) in scope.row.radiusList && JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option> </el-select> @@ -150,7 +153,7 @@ <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.price" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id) - "> + " :disabled="!!auditId || standardCkeck"> </el-input> <span v-else>{{ scope.row.price }}</span> </template> @@ -160,7 +163,7 @@ <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.manHour" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id) - "> + " :disabled="!!auditId || standardCkeck"> </el-input> <span v-else>{{ scope.row.manHour }}</span> </template> @@ -168,7 +171,7 @@ <el-table-column label="宸ユ椂鍒嗙粍" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column> <el-table-column label="妯℃澘" prop="templateId" width="200"> <template slot-scope="scope"> - <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) + <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) || !!auditId || standardCkeck " filterable size="small" @change="(value) => upStandardProductListOfTemplate(value, scope.row.id) "> @@ -177,7 +180,7 @@ </template> </el-table-column> <el-table-column label="鍖洪棿" prop="section" show-overflow-tooltip width="120"></el-table-column> - <el-table-column label="鎿嶄綔" prop="section" width="160"> + <el-table-column label="鎿嶄綔" prop="section" width="160" v-if="!auditId && !standardCkeck"> <template slot-scope="scope"> <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) ">鍖洪棿璁剧疆</el-button> @@ -275,7 +278,7 @@ </el-dialog> <bindSupplierDensityDialogAsk v-if="bindSupplierDensityDialog" :bindSupplierDensityDialog="bindSupplierDensityDialog" :currentRow="currentSupplierDensityRow" - @closeBindPartDialog="closeBindSupplierDensityDialog"> + @closeBindPartDialog="closeBindSupplierDensityDialog" @refreshList="refreshList"> </bindSupplierDensityDialogAsk> <BatchCopy v-if="batchCopyDia" ref="BatchCopy" :selectTree1="selectTree" :standardId="standardId" @refreshList="refreshList"></BatchCopy> @@ -304,6 +307,8 @@ selectStandardProductByMethodId, selectStandardProductEnumByMethodId, productListSubmit, + standardProductListRecordRelPage, + existCheckingRecord, } from "@/api/standard/standardLibrary"; import bindSupplierDensityDialogAsk from "./components/bindSupplierDensityDialogAsk.vue"; import BatchCopy from "./components/BatchCopy.vue"; @@ -371,7 +376,6 @@ inspectionItem: null, inspectionItemSubclass: null, sonLaboratory: null, - token: null, fileList: [], uploading: false, isEquipment: true, @@ -399,10 +403,14 @@ label: '宸叉洿鏂�', type: 'success' }, - ] + ], + submitReviewLoad: false, + auditId: null,//鏍囧噯鍙樻洿璁板綍ID + standardCkeck: false,//褰撳墠鏄惁鏈夋鍦ㄥ鏍哥殑鍙樻洿 }; }, mounted() { + this.existCheckingRecord() this.selectEnumByCategoryForFactory(); this.selectStandardTreeList(); this.obtainItemParameterList(); @@ -412,11 +420,27 @@ this.selectEnumByCategoryForsampleType(); this.getStandardTemplate(); this.selectStandardMethodsSec(); - this.token = { - token: sessionStorage.getItem("token"), - }; + if (this.$route.query && this.$route.query.auditId) { + let { + auditId + } = this.$route.query + this.auditId = auditId + } else { + this.auditId = null + } }, methods: { + // 鏍囧噯搴撳彉鏇存椂绂佺敤鍏ㄩ�� + headerCellStyle({ columnIndex }) { + if (columnIndex === 0 && (this.auditId || this.standardCkeck)) { + return 'disable-select-all'; + } + return ''; + }, + // 鏍囧噯搴撳彉鏇存椂绂佺敤澶氶�� + selectable(row, index) { + return !this.auditId && !this.standardCkeck; + }, // 鎷栨嫿鏃跺垽瀹氱洰鏍囪妭鐐硅兘鍚﹁鏀剧疆 // 'prev'銆�'inner' 鍜� 'next'锛屽墠銆佹彃鍏ャ�佸悗 allowDrop(draggingNode, dropNode, type) { @@ -840,45 +864,65 @@ this.currentPage = 1; this.tableLoad2 = true; this.standardId = row.id; - selectStandardProductListByMethodId({ - id: row.id, - tree: this.selectTree, - page: this.currentPage, - }).then((res) => { - this.productList = res.data.productList; - this.total = res.data.total; - setTimeout(() => { - this.productList.forEach((a) => { - if (a.state == 1) this.toggleSelection(a); - }); - }, 300); - this.tableLoad2 = false; - const tree = this.selectTree.split(" - "); - // 閫夋嫨鏈�鍚庝竴灞傛爲鎵嶅彲浠ユ嫋鎷芥帓搴� - if (tree.length === 4) { - const name = tree[3] + "[4]"; - this.hasChildWithId(this.list, name); - if ( - this.isHaveChildren.children && - this.isHaveChildren.children.length > 0 - ) { + if (this.auditId) { + // 鏍囧噯搴撳彉鏇寸殑妫�楠岄」鏌ヨ + standardProductListRecordRelPage({ + standardMethodListId: row.id, + tree: this.selectTree, + standardProductListUpdateRecordId: this.auditId, + }).then((res) => { + this.productList = res.data.productList; + this.total = res.data.total; + setTimeout(() => { + this.productList.forEach((a) => { + if (a.state == 1) this.toggleSelection(a); + }); + }, 300); + this.tableLoad2 = false; + }); + } else { + // 姝e父鎯呭喌涓嬬殑鏍囧噯鏌ヨ + selectStandardProductListByMethodId({ + id: row.id, + tree: this.selectTree, + page: this.currentPage, + }).then((res) => { + this.productList = res.data.productList; + this.total = res.data.total; + setTimeout(() => { + this.productList.forEach((a) => { + if (a.state == 1) this.toggleSelection(a); + }); + }, 300); + this.tableLoad2 = false; + const tree = this.selectTree.split(" - "); + // 閫夋嫨鏈�鍚庝竴灞傛爲鎵嶅彲浠ユ嫋鎷芥帓搴� + if (tree.length === 4) { + const name = tree[3] + "[4]"; + this.hasChildWithId(this.list, name); + if ( + this.isHaveChildren.children && + this.isHaveChildren.children.length > 0 + ) { + if (this.sortTable) { + this.sortTable.destroy(); + this.sortTable = null; + } + return; + } + } else if (tree.length < 4) { if (this.sortTable) { this.sortTable.destroy(); this.sortTable = null; } return; } - } else if (tree.length < 4) { - if (this.sortTable) { - this.sortTable.destroy(); - this.sortTable = null; - } - return; - } - this.$nextTick(() => { - this.rowDrop(row.id); + this.$nextTick(() => { + this.rowDrop(row.id); + }); }); - }); + } + }, toggleSelection(row) { this.$refs.productTable.toggleRowSelection(row, true); @@ -1050,6 +1094,7 @@ this.sectionLoad = false; this.$message.success("宸蹭繚瀛�"); this.sectionUpDia = false; + this.refreshList() }); } else { upStandardProducts({ @@ -1095,19 +1140,36 @@ handleCurrentChange(val) { this.currentPage = val; this.tableLoad2 = true; - selectStandardProductListByMethodId({ - id: this.standardId, - tree: this.selectTree, - page: val, - }).then((res) => { - this.productList = res.data.productList; - setTimeout(() => { - this.productList.forEach((a) => { - if (a.state == 1) this.toggleSelection(a); - }); - }, 200); - this.tableLoad2 = false; - }); + if (this.auditId) { + // 鏍囧噯搴撳彉鏇存煡璇 + standardProductListRecordRelPage({ + standardMethodListId: this.standardId, + tree: this.selectTree, + standardProductListUpdateRecordId: this.auditId, + }).then((res) => { + this.productList = res.data.productList; + setTimeout(() => { + this.productList.forEach((a) => { + if (a.state == 1) this.toggleSelection(a); + }); + }, 200); + this.tableLoad2 = false; + }); + } else { + selectStandardProductListByMethodId({ + id: this.standardId, + tree: this.selectTree, + page: val, + }).then((res) => { + this.productList = res.data.productList; + setTimeout(() => { + this.productList.forEach((a) => { + if (a.state == 1) this.toggleSelection(a); + }); + }, 200); + this.tableLoad2 = false; + }); + } }, openCopyDia() { this.batchCopyDia = true; @@ -1214,21 +1276,26 @@ return true; } }).then(({ value }) => { + this.submitReviewLoad = true productListSubmit({ remark: value }).then(res => { + this.submitReviewLoad = false this.selectsStandardMethodByFLSSM(); + this.existCheckingRecord() + this.refreshList() + this.$refs.productTable.doLayout() + }).catch(err => { + this.submitReviewLoad = false }) - // this.$message({ - // type: 'success', - // message: '浣犵殑閭鏄�: ' + value - // }); }).catch(() => { - // this.$message({ - // type: 'info', - // message: '鍙栨秷杈撳叆' - // }); }); + }, + // 鑾峰彇褰撳墠鏈夋病鏈夋鍦ㄥ鏍哥殑鍙樻洿 + existCheckingRecord() { + existCheckingRecord().then(res => { + this.standardCkeck = res.data + }) } }, }; @@ -1415,4 +1482,9 @@ align-items: center; justify-content: center; } + +/* 闅愯棌鍏ㄩ�夊閫夋 */ +>>>.disable-select-all .el-checkbox { + display: none !important; +} </style> diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue index 943bfe6..9fadf61 100644 --- a/src/views/structural/capabilityAndLaboratory/capability/index.vue +++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue @@ -155,7 +155,7 @@ { label: '璇曢獙瀹�', prop: 'sonLaboratory' }, { label: '瑕佹眰鎻忚堪', prop: 'askTell' }, { label: '瑕佹眰鍊�', prop: 'ask' }, - { label: '璇曢獙鏉′欢', prop: 'radiusList' }, + // { label: '璇曢獙鏉′欢', prop: 'radiusList' }, { label: '璁¢噺鍗曚綅', prop: 'unit' }, { label: '宸ユ椂(H)', prop: 'manHour' }, { label: '棰勮鏃堕棿(H)', prop: 'manDay' }, diff --git a/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue b/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue index b060f50..c9cd538 100644 --- a/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue +++ b/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue @@ -157,7 +157,7 @@ </el-select> </el-form-item> </el-col> - <el-col :span="12"> + <!-- <el-col :span="12"> <el-form-item label="璇曢獙鏉′欢锛�" prop="radiusList"> <el-select v-model="editForm.radiusList" allow-create default-first-option filterable multiple placeholder="璇烽�夋嫨" size="small" style="width: 100%"> @@ -165,7 +165,7 @@ :value="item.value"></el-option> </el-select> </el-form-item> - </el-col> + </el-col> --> </el-row> <el-row> <el-col :span="12"> -- Gitblit v1.9.3