From f3371fc9c33f979bd2b00e3241769a27c9c79c38 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期二, 25 三月 2025 16:56:19 +0800 Subject: [PATCH] Merge branch 'radio-frequency-cable' of http://114.132.189.42:9002/r/lims-ruoyi-before into radio-frequency-cable --- src/views/standard/standardLibrary/index.vue | 243 ++++++++++++++++++++--------------------------- 1 files changed, 104 insertions(+), 139 deletions(-) diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue index 05bd11d..377a29f 100644 --- a/src/views/standard/standardLibrary/index.vue +++ b/src/views/standard/standardLibrary/index.vue @@ -8,7 +8,7 @@ </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="addDia = true"></el-button> + <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="openAddDia"></el-button> </el-col> </el-row> <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list" @@ -17,7 +17,8 @@ height: calc(100% - 30px); overflow-y: scroll; scrollbar-width: none; - " @node-click="handleNodeClick" @node-drop="handleDrop"> + " @node-click="handleNodeClick" + @node-drop="handleDrop"> <div slot-scope="{ node, data }" class="custom-tree-node"> <el-row style="width: 100%"> <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left"> @@ -65,8 +66,9 @@ </el-row> <el-row v-loading="tableLoad" class="standard_table"> <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220" - :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border highlight-current-row - style="width: 100%; height: 220px !important" tooltip-effect="dark" @row-click="rowClick"> + :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border + highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark" + @row-click="rowClick"> <el-table-column label="鏍囧噯缂栧彿" prop="code" show-overflow-tooltip width="200"> <template slot-scope="scope"> <span style="color: red; font-size: 14px">{{ @@ -80,10 +82,11 @@ </el-row> <el-row v-loading="tableLoad2" class="product_table"> <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList" - :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"> + :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> <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> @@ -173,14 +176,11 @@ <template slot-scope="scope"> <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) ">鍖洪棿璁剧疆</el-button> - <!-- <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) - " @click="bindSupplierDensitySecond(scope.row)">缁戝畾鍘傚</el-button> --> + <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) + " @click="bindSupplierDensitySecond(scope.row)">缁戝畾鍘傚</el-button> </template> </el-table-column> </el-table> - <!-- <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total" - style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange"> - </el-pagination> --> <p style="text-align: right;margin-right: 20px;color: #333;">鍏眥{ total }}鏉�</p> </el-row> </div> @@ -192,8 +192,7 @@ <span class="required-span">* </span>鍨嬪彿锛� </el-col> <el-col :offset="1" :span="16"> - <el-input v-model="addOb.model" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small" - @keyup.enter.native="addStandardTree"></el-input> + <el-input v-model="addOb.modelName" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"></el-input> </el-col> </el-row> </div> @@ -209,8 +208,7 @@ <span class="required-span">* </span>鍨嬪彿锛� </el-col> <el-col :offset="1" :span="16"> - <el-input v-model="addOb.model" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small" - @keyup.enter.native="updateStandardTree"></el-input> + <el-input v-model="addOb.modelName" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"></el-input> </el-col> </el-row> </div> @@ -222,7 +220,7 @@ <el-dialog :close-on-click-modal="false" :visible.sync="sectionUpDia" title="鍖洪棿璁剧疆" width="80%"> <div class="body" style="padding: 5px 0"> <el-table :data="sectionList" border height="350px" style="width: 100%" - :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"> + :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"> <el-table-column align="center" label="搴忓彿" type="index" width="70"> </el-table-column> <el-table-column align="center" label="鍖洪棿"> @@ -256,16 +254,6 @@ <el-input v-model="scope.row.conductorType" clearable placeholder="瀵间綋绫诲瀷" size="small"></el-input> </template> </el-table-column> - <!-- <el-table-column align="center" label="鍗曚环" width="120">--> - <!-- <template slot-scope="scope">--> - <!-- <el-input v-model="scope.row.price" clearable placeholder="鍗曚环" size="small"></el-input>--> - <!-- </template>--> - <!-- </el-table-column>--> - <!-- <el-table-column align="center" label="宸ユ椂绯绘暟" width="120">--> - <!-- <template slot-scope="scope">--> - <!-- <el-input v-model="scope.row.manHour" clearable placeholder="宸ユ椂绯绘暟" size="small"></el-input>--> - <!-- </template>--> - <!-- </el-table-column>--> <el-table-column align="center" label="鎿嶄綔" width="70"> <template slot-scope="scope"> <el-button circle icon="el-icon-minus" size="mini" type="danger" @@ -330,13 +318,11 @@ factory: [], addDia: false, updateDia: false, // 淇敼鏍戝悕瀛楀脊妗� - oldModel: "", addOb: { - factory: null, - laboratory: null, - sampleType: null, - sample: null, - model: null, + id: '', + modelName: null, + parentLevel: '', + parentId: '', }, laboratory: [], addLoad: false, @@ -408,11 +394,6 @@ }; }, methods: { - // 淇敼鏈�瀛愮骇鍚嶅瓧 - editTreeName(info) { - this.updateDia = true; - this.oldModel = info.label; - }, // 鎷栨嫿鏃跺垽瀹氱洰鏍囪妭鐐硅兘鍚﹁鏀剧疆 // 'prev'銆�'inner' 鍜� 'next'锛屽墠銆佹彃鍏ャ�佸悗 allowDrop(draggingNode, dropNode, type) { @@ -495,7 +476,7 @@ } }, // 璋冪敤tree杩囨护鏂规硶 涓枃鑻辫繃婊� - filterNode(value, data, node) { + filterNode (value, data, node) { if (!value) {銆�銆�銆�銆�//濡傛灉鏁版嵁涓虹┖锛屽垯杩斿洖true,鏄剧ず鎵�鏈夌殑鏁版嵁椤� return true } @@ -504,7 +485,7 @@ return this.chooseNode(val, data, node) // 璋冪敤杩囨护浜屽眰鏂规硶 }, // 杩囨护鐖惰妭鐐� / 瀛愯妭鐐� (濡傛灉杈撳叆鐨勫弬鏁版槸鐖惰妭鐐逛笖鑳藉尮閰嶏紝鍒欒繑鍥炶鑺傜偣浠ュ強鍏朵笅鐨勬墍鏈夊瓙鑺傜偣锛涘鏋滃弬鏁版槸瀛愯妭鐐癸紝鍒欒繑鍥炶鑺傜偣鐨勭埗鑺傜偣銆俷ame鏄腑鏂囧瓧绗︼紝enName鏄嫳鏂囧瓧绗�. - chooseNode(value, data, node) { + chooseNode (value, data, node) { if (data.label.indexOf(value) !== -1) { return true } @@ -537,67 +518,66 @@ this.upIndex++; }, handleNodeClick(val, node, el) { - //鏍戠殑鍊� - if (node.childNodes.length === 0) { - this.isShowCopy = true; - } else { - this.isShowCopy = false; - } + // 鍒ゆ柇鏄惁涓哄彾瀛愯妭鐐� + this.isShowCopy = node.childNodes.length === 0; + + // 鏇存柊鐖惰妭鐐逛俊鎭� + this.addOb.parentLevel = node.data.level; + this.addOb.parentId = node.data.value; + this.addOb.id = node.data.value; + + // 鍒濆鍖栧垎椤电浉鍏冲彉閲� this.total = 0; this.currentPage = 1; - this.selectTree = ""; - this.getNodeParent(node); - this.selectTree = this.selectTree.replace(" - ", ""); - let data = this.selectTree.split(" - "); - let data2 = ""; - for (let index = data.length - 1; index >= 0; index--) { - data2 += " - " + data[index]; - } - this.selectTree = data2.replace(" - ", ""); - if (node.childNodes.length === 0) { + + // 鎷兼帴鏍戣矾寰� + this.selectTree = this.getReversedTreePath(node); + + // 濡傛灉鏄彾瀛愯妭鐐癸紝璋冪敤鐗瑰畾鏂规硶 + if (this.isShowCopy) { this.selectsStandardMethodByFLSSM(); } - let trees = this.selectTree.split(" - "); - this.addOb.factory = trees[0]; - this.addOb.laboratory = trees[1]; - this.addOb.sampleType = trees[2]; - this.addOb.sample = trees[3]; }, - getNodeParent(val) { - if (val.parent != null) { - if (val.data.children === null) { - this.selectTree += " - " + val.label + " - " + "null"; - } 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(" - "); }, remove(node, data) { this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", { type: "error", - }) - .then(() => { - // this.treeLoad = true + }).then(() => { + this.selectTree = ""; + // 鎷兼帴鏍戣矾寰� + this.selectTree = this.getReversedTreePath(node); + delStandardTree({ tree: this.selectTree }).then((res) => { + this.$message.success("宸插垹闄�"); + let arr = this.selectTree.split(" - "); + this.deleteStandard(this.list, arr[arr.length - 1]); this.selectTree = ""; - this.getNodeParent(node); - this.selectTree = this.selectTree.replace(" - ", ""); - let data = this.selectTree.split(" - "); - let data2 = ""; - for (let index = data.length - 1; index >= 0; index--) { - data2 += " - " + data[index]; - } - this.selectTree = data2.replace(" - ", ""); - delStandardTree({ tree: this.selectTree }).then((res) => { - this.$message.success("宸插垹闄�"); - let arr = this.selectTree.split(" - "); - this.deleteStandard(this.list, arr[arr.length - 1]); - this.selectTree = ""; - this.standardList = []; - this.productList = []; - }); + this.standardList = []; + this.productList = []; }) - .catch((e) => { }); + }).catch((e) => { }); }, deleteStandard(arr, label) { arr.forEach((item, index) => { @@ -676,62 +656,52 @@ this.standardEnum = data; }); }, + // 鎵撳紑鏂板寮规 + openAddDia () { + this.addDia = true + this.addOb.modelName = '' + }, // 鎻愪氦鍒嗙被娣诲姞 addStandardTree() { - if (this.addOb.sampleType == null || this.addOb.sampleType == "") { - this.$message.error("瀵硅薄涓嶅瓨鍦�"); - return; - } - if (this.addOb.model == null || this.addOb.model == "") { + if (this.addOb.modelName == null || this.addOb.modelName == "") { this.$message.error("璇峰~鍐欏瀷鍙�"); return; } this.addLoad = true; - addStandardTree(this.addOb) - .then((res) => { - this.$message.success("娣诲姞鎴愬姛"); - this.addDia = false; - this.list - .find((a) => a.label == this.addOb.factory) - .children.find((a) => a.label == this.addOb.laboratory) - .children.find((a) => a.label == this.addOb.sampleType) - .children.find((a) => a.label == this.addOb.sample) - .children.push({ - code: "[5]", - label: this.addOb.model, - value: this.addOb.model, - }); - this.addLoad = false; - }) - .catch((e) => { - this.addDia = false; - this.addLoad = false; - }); + delete this.addOb.id; + addStandardTree(this.addOb).then((res) => { + this.$message.success("娣诲姞鎴愬姛"); + this.addOb.modelName = ""; + this.addDia = false; + this.selectStandardTreeList(); + this.addLoad = false; + }).catch((e) => { + this.addLoad = false; + }); }, - // 淇敼鍨嬪彿 + // 鎵撳紑淇敼鍚嶅瓧寮规 + editTreeName(info) { + this.updateDia = true; + this.addOb.modelName = info.label; + }, + // 鎻愪氦淇敼鍨嬪彿 updateStandardTree() { - if (this.addOb.sampleType == null || this.addOb.sampleType == "") { - this.$message.error("瀵硅薄涓嶅瓨鍦�"); - return; - } - if (this.addOb.model == null || this.addOb.model == "") { + if (this.addOb.modelName == null || this.addOb.modelName == "") { this.$message.error("璇峰~鍐欏瀷鍙�"); return; } - this.addOb.oldModel = this.oldModel; this.updateLoad = true; - updateStandardTree(this.addOb) - .then((res) => { - this.$message.success("娣诲姞鎴愬姛"); - this.$tab.refreshPage(); - // this.selectStandardTreeList(); - this.updateDia = false; - this.updateLoad = false; - }) - .catch((e) => { - this.updateDia = false; - this.updateLoad = false; - }); + delete this.addOb.parentLevel; + delete this.addOb.parentId; + updateStandardTree(this.addOb).then((res) => { + this.$message.success("娣诲姞鎴愬姛"); + this.selectStandardTreeList(); + this.addOb.modelName = ""; + this.updateDia = false; + this.updateLoad = false; + }).catch((e) => { + this.updateLoad = false; + }); }, selectsStandardMethodByFLSSM() { this.tableLoad = true; @@ -1333,11 +1303,6 @@ >>>.is-disabled .el-textarea__inner { background: rgba(0, 0, 0, 0.05) !important; -} - ->>>.el-table__body-wrapper::-webkit-scrollbar { - height: 14px; - /* 璁剧疆婊氬姩鏉″搴� */ } </style> <style scoped> -- Gitblit v1.9.3