From 9b0a40a9b2918dd0e92161edaff4a3f61b510141 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期三, 05 三月 2025 10:32:35 +0800 Subject: [PATCH] 优化下单 --- src/views/standard/standardLibrary/index.vue | 176 +++++++++++++++++++--------------------------------------- 1 files changed, 57 insertions(+), 119 deletions(-) diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue index 21eeeb8..713c062 100644 --- a/src/views/standard/standardLibrary/index.vue +++ b/src/views/standard/standardLibrary/index.vue @@ -206,16 +206,17 @@ height: calc(100% - 30px); overflow-y: scroll; scrollbar-width: none; - " @node-click="handleNodeClick" @node-expand="nodeOpen" @node-collapse="nodeClose" @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"> <span> <i :class="`node_i ${data.children != undefined - ? data.code === '[1]' - ? 'el-icon-folder-opened' - : 'el-icon-folder' - : 'el-icon-tickets' + ? data.code === '[1]' + ? 'el-icon-folder-opened' + : 'el-icon-folder' + : 'el-icon-tickets' }`"></i> {{ data.label }} </span> @@ -225,7 +226,7 @@ (node.data.children === null || node.data.children === undefined) " :span="2" style="text-align: right"> - <el-button size="mini" type="text" @click="editTreeName(node.data)"> + <el-button size="mini" type="text" @click.stop="editTreeName(node.data)"> <i class="el-icon-edit"></i> </el-button> </el-col> @@ -286,8 +287,8 @@ <template slot-scope="scope"> <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> + " 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> <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> @@ -306,7 +307,7 @@ <el-select v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.methodS" clearable placeholder="璇曢獙鏂规硶" size="small" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id) - "> + "> <el-option v-for="(a, i) in scope.row.method && JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option> </el-select> @@ -318,7 +319,7 @@ <el-select v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.radius" clearable placeholder="鏉′欢" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id) - "> + "> <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> @@ -331,7 +332,7 @@ <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.price" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id) - "> + "> </el-input> <span v-else>{{ scope.row.price }}</span> </template> @@ -341,7 +342,7 @@ <el-input v-if=" checkPermi(['standard:standardLibrary:upStandardProduct']) " v-model="scope.row.manHour" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id) - "> + "> </el-input> <span v-else>{{ scope.row.manHour }}</span> </template> @@ -351,7 +352,7 @@ <template slot-scope="scope"> <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) " filterable size="small" @change="(value) => - upStandardProductListOfTemplate(value, scope.row.id) + upStandardProductListOfTemplate(value, scope.row.id) "> <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option> </el-select> @@ -367,10 +368,10 @@ </template> </el-table-column> </el-table> - <el-pagination :current-page="currentPage" :page-size="300" :total="total" - layout="total, prev, pager, next, jumper" style="position: absolute; right: 16px; bottom: 1px" - @current-change="handleCurrentChange"> - </el-pagination> + <!-- <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> @@ -488,14 +489,10 @@ obtainItemParameterList, selectTestObjectByName, selectStandardMethods, - addStandardMethodList, addStandardTree, updateStandardTree, selectsStandardMethodByFLSSM, upStandardProductList, - delStandardMethodByFLSSM, - delStandardProductByIds, - addStandardProduct, selectStandardProductListByMethodId, updateSection, upStandardProducts, @@ -592,6 +589,7 @@ this.selectTestObjectByName(); this.selectStandardMethods(); this.selectEnumByCategoryForSonLaboratory(); + this.selectEnumByCategoryForsampleType(); this.getStandardTemplate(); this.selectStandardMethodsSec(); this.token = { @@ -685,10 +683,42 @@ } } }, - filterNode(value, data) { - if (!value) return true; - return data.label.indexOf(value) !== -1; + // 璋冪敤tree杩囨护鏂规硶 涓枃鑻辫繃婊� + filterNode (value, data, node) { + if (!value) {銆�銆�銆�銆�//濡傛灉鏁版嵁涓虹┖锛屽垯杩斿洖true,鏄剧ず鎵�鏈夌殑鏁版嵁椤� + return true + } + // 鏌ヨ鍒楄〃鏄惁鏈夊尮閰嶆暟鎹紝灏嗗�煎皬鍐欙紝鍖归厤鑻辨枃鏁版嵁 + let val = value.toLowerCase() + return this.chooseNode(val, data, node) // 璋冪敤杩囨护浜屽眰鏂规硶 }, + // 杩囨护鐖惰妭鐐� / 瀛愯妭鐐� (濡傛灉杈撳叆鐨勫弬鏁版槸鐖惰妭鐐逛笖鑳藉尮閰嶏紝鍒欒繑鍥炶鑺傜偣浠ュ強鍏朵笅鐨勬墍鏈夊瓙鑺傜偣锛涘鏋滃弬鏁版槸瀛愯妭鐐癸紝鍒欒繑鍥炶鑺傜偣鐨勭埗鑺傜偣銆俷ame鏄腑鏂囧瓧绗︼紝enName鏄嫳鏂囧瓧绗�. + chooseNode (value, data, node) { + if (data.label.indexOf(value) !== -1) { + return true + } + const level = node.level + // 濡傛灉浼犲叆鐨勮妭鐐规湰韬氨鏄竴绾ц妭鐐瑰氨涓嶇敤鏍¢獙浜� + if (level === 1) { + return false + } + // 鍏堝彇褰撳墠鑺傜偣鐨勭埗鑺傜偣 + let parentData = node.parent + // 閬嶅巻褰撳墠鑺傜偣鐨勭埗鑺傜偣 + let index = 0 + while (index < level - 1) { + // 濡傛灉鍖归厤鍒扮洿鎺ヨ繑鍥烇紝姝ゅname鍊兼槸涓枃瀛楃锛宔nName鏄嫳鏂囧瓧绗︺�傚垽鏂尮閰嶄腑鑻辨枃杩囨护 + if (parentData.data.label.indexOf(value) !== -1) { + return true + } + // 鍚﹀垯鐨勮瘽鍐嶅線涓婁竴灞傚仛鍖归厤 + parentData = parentData.parent + index++ + } + // 娌″尮閰嶅埌杩斿洖false + return false + }, + searchFilter() { this.$refs.tree.filter(this.search); }, @@ -768,15 +798,6 @@ } }); }, - nodeOpen(data, node, el) { - $($(el.$el).find(".node_i")[0]).attr( - "class", - "node_i el-icon-folder-opened" - ); - }, - nodeClose(data, node, el) { - $($(el.$el).find(".node_i")[0]).attr("class", "node_i el-icon-folder"); - }, selectEnumByCategoryForFactory() { this.getConfigKey("sys_factory").then((response) => { this.factory = response.msg; @@ -845,22 +866,6 @@ this.standardEnum = data; }); }, - addStandardMethodList() { - if (this.standardId == null || this.standardId == "") { - this.$message.error("鏍囧噯鏂规硶鏈�夋嫨"); - return; - } - this.addLoad2 = true; - addStandardMethodList({ - standardId: this.standardId, - tree: this.selectTree, - }).then((res) => { - this.addLoad2 = false; - this.addStandardDia = false; - this.$message.success("娣诲姞鎴愬姛"); - this.selectsStandardMethodByFLSSM(); - }); - }, // 鎻愪氦鍒嗙被娣诲姞 addStandardTree() { if (this.addOb.sampleType == null || this.addOb.sampleType == "") { @@ -916,7 +921,8 @@ return; } this.$message.success("娣诲姞鎴愬姛"); - this.selectStandardTreeList(); + this.$tab.refreshPage(); + // this.selectStandardTreeList(); this.updateDia = false; this.updateLoad = false; }) @@ -1040,81 +1046,13 @@ this.$message.success("宸蹭繚瀛�"); }); }, - delStandardMethodByFLSSM(id) { - this.$confirm("鏄惁鍒犻櫎褰撳墠鏁版嵁?", "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(() => { - this.tableLoad = true; - delStandardMethodByFLSSM({ id: id }).then((res) => { - if (res.code == 201) { - return; - } - this.$message.success("宸插垹闄�"); - this.selectsStandardMethodByFLSSM(); - }); - }) - .catch(() => { }); - }, handleSelectionChange(val) { this.selects = []; val.forEach((a) => { this.selects.push(a.id); }); }, - delStandardProductByIds() { - if (this.selects.length == 0) { - this.$message.error("鏈�変腑鏁版嵁"); - return; - } - this.$confirm( - "鏄惁鍒犻櫎褰撳墠閫変腑 " + this.selects.length + " 鏉℃暟鎹�?", - "璀﹀憡", - { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - } - ) - .then(() => { - this.tableLoad = true; - delStandardProductByIds({ - ids: JSON.stringify(this.selects), - }).then((res) => { - if (res.code == 201) { - return; - } - this.$message.success("宸插垹闄�"); - this.selectsStandardMethodByFLSSM(); - }); - }) - .catch(() => { }); - }, - addStandardProductDo() { - let selects = this.$refs.ValueTable.multipleSelection; - if (selects.length == 0) { - this.$message.error("鏈�夋嫨鏁版嵁"); - return; - } - let select = []; - selects.forEach((a) => { - select.push(a.id); - }); - this.tableLoad = true; - addStandardProduct({ - ids: JSON.stringify(select), - tree: this.selectTree, - }).then((res) => { - if (res.code == 201) { - return; - } - this.$message.success("娣诲姞鎴愬姛"); - this.selectsStandardMethodByFLSSM(); - }); - this.addProductDia = false; - }, + refreshList() { this.batchCopyDia = false; const index = this.standardList.findIndex( -- Gitblit v1.9.3