From a7a0b7a266fd3df381ab8f2b6dcf098ef9076533 Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期三, 30 七月 2025 10:51:26 +0800 Subject: [PATCH] 1111 --- src/views/doctor/checkAll/index.vue | 54 ++ vue.config.js | 2 src/views/system/package/index.vue | 779 +++++++++++++++++++++++++++++++++++---------- src/views/hosp/project/index.vue | 132 ++++--- 4 files changed, 713 insertions(+), 254 deletions(-) diff --git a/src/views/doctor/checkAll/index.vue b/src/views/doctor/checkAll/index.vue index fe2bf91..1d5cb4d 100644 --- a/src/views/doctor/checkAll/index.vue +++ b/src/views/doctor/checkAll/index.vue @@ -2542,14 +2542,26 @@ }, getConfigKey() { - getconfigKey("sfkqtwbg").then((res) => { + // 浣跨敤姝g‘鐨� getConfigKey 鍑芥暟锛堥渶瑕佸弬鏁帮級 + getConfigKey("sfkqtwbg").then((res) => { this.msgtuwen = res.msg; + }).catch((error) => { + console.warn("鑾峰彇閰嶇疆椤� sfkqtwbg 澶辫触:", error); + this.msgtuwen = ""; // 璁剧疆榛樿鍊� }); - getconfigKey("sfkqjqwz").then((res) => { + + getConfigKey("sfkqjqwz").then((res) => { this.msgjianqian = res.msg; + }).catch((error) => { + console.warn("鑾峰彇閰嶇疆椤� sfkqjqwz 澶辫触:", error); + this.msgjianqian = ""; // 璁剧疆榛樿鍊� }); - getconfigKey("kcf").then((res) => { + + getConfigKey("kcf").then((res) => { this.msgkcf = res.msg; + }).catch((error) => { + console.warn("鑾峰彇閰嶇疆椤� kcf 澶辫触:", error); + this.msgkcf = ""; // 璁剧疆榛樿鍊� }); }, @@ -2582,6 +2594,7 @@ yichangjieguo() { this.loading = true; + this.isLoading = true; this.status1 = 0; getConfigKey("kzycxmsfzk").then((res) => { this.shouldExpand = res.msg; @@ -2592,11 +2605,20 @@ this.expends = []; } }); - yichang({ - tjNum: this.tjNumber, - }) - .then((res) => { - this.yichangList = res.data; + return new Promise((resolve, reject) => { + yichang({ + tjNum: this.tjNumber, + }).then((res) => { + const data = res.data; + + if (!data || data.length === 0) { + this.$message.warning("鏆傛棤寮傚父鎶ュ憡"); + this.loading = false; + this.isLoading = false; // 鍏抽棴鏁翠綋鍔犺浇妗� + resolve(); // 杩斿洖 Promise锛屼絾涓嶇户缁悗缁�昏緫 + return; + } + this.yichangList = data; this.yichangList.forEach((item) => { item.sone.forEach((soneItem) => { if ( @@ -2610,24 +2632,32 @@ if (!this.yichangList) { this.$message.warning("鏆傛棤寮傚父鎶ュ憡"); } + resolve(); // 鎴愬姛瀹屾垚 // 杩欓噷涔熷彲浠ユ牴鎹畇houldExpand鍐嶈皟鐢ㄤ竴娆etExpends锛岀‘淇濇暟鎹凡鍔犺浇 if (this.shouldExpand === "Y" || this.shouldExpand === "y") { this.getExpends(); } else { this.expends = []; } - }) + }); + }) .catch((error) => { this.isLoading = false; + this.loading = false; console.error("鑾峰彇寮傚父缁撴灉澶辫触:", error); this.$message.error("鑾峰彇寮傚父缁撴灉澶辫触"); + reject(error); // 杩斿洖閿欒 }) .finally(() => { - this.isLoading = false; - this.loading = false; + // 鍙湪娌℃湁鎻愬墠杩斿洖鐨勬儏鍐典笅鍏抽棴鍔犺浇妗� + if (this.isLoading) { + this.isLoading = false; + } + if (this.loading) { + this.loading = false; + } }); }, - fuchaxiangmu() { this.loading = true; diff --git a/src/views/hosp/project/index.vue b/src/views/hosp/project/index.vue index ec93cd3..863591b 100644 --- a/src/views/hosp/project/index.vue +++ b/src/views/hosp/project/index.vue @@ -1722,28 +1722,39 @@ } }, handleUpdate1() { - this.updateLoading = true; + // this.updateLoading = true; this.form = {}; - this.form = this.xiugaiList; - this.form.proStatus = this.form.proStatus.toString(); - this.form.sfcyyc = this.form.sfcyyc.toString(); this.proParent = true; this.isPriceDisabled = true; - getlist() - .then((response) => { - if (response.code == 200) { - this.loading = false; - this.projectOptions = []; - const project = { proId: 0, proName: "涓荤被鐩�", children: [] }; - project.children = this.handleTree(response.data.list, "proId"); - this.key = response.data.key; - this.projectOptions.push(project); - } - }) - .finally(() => { - this.updateLoading = false; - }); - this.open = true; + + // 鍏堝姞杞界瀹ゅ垪琛ㄦ暟鎹紝鍐嶈缃〃鍗曟暟鎹� + Promise.all([ + listDept(this.queryParams), + getlist() + ]).then(([deptResponse, listResponse]) => { + // 鍏堣缃瀹ゅ垪琛� + this.parentNameList = deptResponse.data; + + // 鍐嶈缃〃鍗曟暟鎹� + this.form = this.xiugaiList; + this.form.proStatus = this.form.proStatus.toString(); + this.form.sfcyyc = this.form.sfcyyc.toString(); + + // 澶勭悊椤圭洰閫夐」 + if (listResponse.code == 200) { + this.loading = false; + this.projectOptions = []; + const project = { proId: 0, proName: "涓荤被鐩�", children: [] }; + project.children = this.handleTree(listResponse.data.list, "proId"); + this.key = listResponse.data.key; + this.projectOptions.push(project); + } + + this.open = true; + }).catch((error) => { + console.error("鍔犺浇鏁版嵁澶辫触:", error); + this.$message.error("鍔犺浇鏁版嵁澶辫触"); + }) }, handleUpdate(row) { this.reset(); @@ -1751,47 +1762,52 @@ const proId = row.proId || this.ids; this.proParent = false; this.isPriceDisabled = false; - getProject(proId).then((response) => { - this.form = response.data; - this.showPrise = this.form.proParentId === "0"; - this.showRentPrise = !this.showPrise; - this.form.proStatus = this.form.proStatus.toString(); - this.form.sfcyyc = this.form.sfcyyc.toString(); - this.form.consumablesList = response.data.consumablesList; - this.form.tjStandardList = response.data.tjStandardList; - if (this.form.tjStandardList) { - this.form.tjStandardList.forEach((item) => { - item.tjSex = - item.tjSex === "0" || item.tjSex === "鐢�" - ? "鐢�" - : item.tjSex === "1" || item.tjSex === "濂�" - ? "濂�" - : null; - item.tjType = - { - 0: "濠村効", - 1: "骞煎効", - 2: "鍎跨", - 3: "灏戝勾", - 4: "闈掑勾", - 5: "涓勾", - 6: "鑰佸勾", - }[item.tjType] || item.tjType; - }); - } - getlist().then((response) => { - if (response.code == 200) { - // this.loading = false; - this.projectOptions = []; - const project = { proId: 0, proName: "涓荤被鐩�", children: [] }; - project.children = this.handleTree(response.data.list, "proId"); - this.key = response.data.key; - this.projectOptions.push(project); + listDept(this.queryParams).then((response) => { + this.parentNameList = response.data; + // this.deptList = this.handleTree(response.data, "proId"); + getProject(proId).then((response) => { + this.form = response.data; + this.form.deptId = response.data.deptId; + this.showPrise = this.form.proParentId === "0"; + this.showRentPrise = !this.showPrise; + this.form.proStatus = this.form.proStatus.toString(); + this.form.sfcyyc = this.form.sfcyyc.toString(); + this.form.consumablesList = response.data.consumablesList; + this.form.tjStandardList = response.data.tjStandardList; + if (this.form.tjStandardList) { + this.form.tjStandardList.forEach((item) => { + item.tjSex = + item.tjSex === "0" || item.tjSex === "鐢�" + ? "鐢�" + : item.tjSex === "1" || item.tjSex === "濂�" + ? "濂�" + : null; + item.tjType = + { + 0: "濠村効", + 1: "骞煎効", + 2: "鍎跨", + 3: "灏戝勾", + 4: "闈掑勾", + 5: "涓勾", + 6: "鑰佸勾", + }[item.tjType] || item.tjType; + }); } + getlist().then((response) => { + if (response.code == 200) { + // this.loading = false; + this.projectOptions = []; + const project = { proId: 0, proName: "涓荤被鐩�", children: [] }; + project.children = this.handleTree(response.data.list, "proId"); + this.key = response.data.key; + this.projectOptions.push(project); + } + }); + // this.loadPage(); + this.open = true; + this.title = "浣撴椤圭洰淇℃伅缁存姢"; }); - // this.loadPage(); - this.open = true; - this.title = "浣撴椤圭洰淇℃伅缁存姢"; }); }, getSelectValue(val) { diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue index d6cb7f3..4984162 100644 --- a/src/views/system/package/index.vue +++ b/src/views/system/package/index.vue @@ -1,155 +1,440 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="68px" + > <el-form-item label="濂楅鍚嶇О" prop="pacName"> - <el-input v-model="queryParams.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable @keyup.enter.native="handleQuery" /> + <el-input + v-model="queryParams.pacName" + placeholder="璇疯緭鍏ュ椁愬悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> </el-form-item> <el-form-item label="濂楅鎻忚堪" prop="pacRemark"> - <el-input v-model="queryParams.pacRemark" placeholder="璇疯緭鍏ュ椁愭弿杩�" clearable @keyup.enter.native="handleQuery" /> + <el-input + v-model="queryParams.pacRemark" + placeholder="璇疯緭鍏ュ椁愭弿杩�" + clearable + @keyup.enter.native="handleQuery" + /> </el-form-item> <el-form-item label="浣撴绫诲埆" prop="tjCategory"> - <el-select v-model="queryParams.tjCategory" placeholder="璇烽�夋嫨鐘舵��" style="width: 200px" filterable clearable> - <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.id" :label="dict.label" - :value="dict.value"></el-option> + <el-select + v-model="queryParams.tjCategory" + placeholder="璇烽�夋嫨鐘舵��" + style="width: 200px" + filterable + clearable + > + <el-option + v-for="dict in dict.type.dict_tjtype" + :key="dict.id" + :label="dict.label" + :value="dict.value" + ></el-option> </el-select> </el-form-item> <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + <el-button + type="primary" + icon="el-icon-search" + size="mini" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" + >閲嶇疆</el-button + > </el-form-item> </el-form> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" - v-hasPermi="['system:package:add']">鏂板</el-button> + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:package:add']" + >鏂板</el-button + > </el-col> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUp" - v-hasPermi="['system:package:edit']">淇敼</el-button> + <el-button + type="primary" + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUp" + v-hasPermi="['system:package:edit']" + >淇敼</el-button + > </el-col> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" - v-hasPermi="['system:package:remove']">鍒犻櫎</el-button> + <el-button + type="primary" + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:package:remove']" + >鍒犻櫎</el-button + > </el-col> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport" - v-hasPermi="['system:package:export']">瀵煎嚭</el-button> + <el-button + type="primary" + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['system:package:export']" + >瀵煎嚭</el-button + > </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + <right-toolbar + :showSearch.sync="showSearch" + @queryTable="getList" + ></right-toolbar> </el-row> <template> - <el-table v-loading="loading" style="width: 100%" :data="packageList" @selection-change="handleSelectionChange" - border> - <el-table-column fixed type="selection" width="40" align="center" :show-overflow-tooltip="true" /> - <el-table-column label="搴忓彿" align="center" width="50" prop="newID" fixed /> - <el-table-column label="浣撴绫诲埆" width="100px" align="center" prop="categoryNames" fixed> + <el-table + v-loading="loading" + style="width: 100%" + :data="packageList" + @selection-change="handleSelectionChange" + border + > + <el-table-column + fixed + type="selection" + width="40" + align="center" + :show-overflow-tooltip="true" + /> + <el-table-column + label="搴忓彿" + align="center" + width="50" + prop="newID" + fixed + /> + <el-table-column + label="浣撴绫诲埆" + width="100px" + align="center" + prop="categoryNames" + fixed + > <template slot-scope="scope"> - <dict-tag :options="dict.type.dict_tjtype" :value="scope.row.tjCategory" /> + <dict-tag + :options="dict.type.dict_tjtype" + :value="scope.row.tjCategory" + /> </template> </el-table-column> - <el-table-column label="濂楅鍚嶇О" align="center" prop="pacName" width="150px" fixed /> - <el-table-column label="鍘熶环" width="80px" align="center" prop="price" fixed></el-table-column> - <el-table-column label="鎶樻墸" width="80px" align="center" prop="limits" fixed></el-table-column> - <el-table-column label="鐜颁环" width="80px" align="center" prop="newPrice" fixed></el-table-column> - <el-table-column label="鍗曢」鍒楄〃" align="center" prop="allProName" width="1200px"></el-table-column> - <el-table-column label="濂楅鎻忚堪" align="center" :show-overflow-tooltip="true" width="120px"> + <el-table-column + label="濂楅鍚嶇О" + align="center" + prop="pacName" + width="150px" + fixed + /> + <el-table-column + label="鍘熶环" + width="80px" + align="center" + prop="price" + fixed + ></el-table-column> + <el-table-column + label="鎶樻墸" + width="80px" + align="center" + prop="limits" + fixed + ></el-table-column> + <el-table-column + label="鐜颁环" + width="80px" + align="center" + prop="newPrice" + fixed + ></el-table-column> + <el-table-column + label="鍗曢」鍒楄〃" + align="center" + prop="allProName" + width="1200px" + ></el-table-column> + <el-table-column + label="濂楅鎻忚堪" + align="center" + :show-overflow-tooltip="true" + width="120px" + > <template slot-scope="scope"> <div class="showInline">{{ scope.row.pacRemark }}</div> </template> </el-table-column> - <el-table-column label="鍏抽敭瀛�" width="110px" align="center" prop="keyNames"></el-table-column> - <el-table-column label="鏄惁涓婃灦" width="94px" align="center" prop="isOnSale"> + <el-table-column + label="鍏抽敭瀛�" + width="110px" + align="center" + prop="keyNames" + ></el-table-column> + <el-table-column + label="鏄惁涓婃灦" + width="94px" + align="center" + prop="isOnSale" + > <template slot-scope="scope"> - <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isOnSale" /> + <dict-tag + :options="dict.type.sys_yes_no" + :value="scope.row.isOnSale" + /> </template> </el-table-column> - <el-table-column label="鎺掑簭" width="50px" align="center" prop="sort"></el-table-column> - <el-table-column label="灏忕▼搴忎环鏍�" width="90px" align="center" prop="retailPrice"></el-table-column> - <el-table-column label="宸插敭鏁伴噺" width="90px" align="center" prop="saleNum"></el-table-column> - <el-table-column label="鐘舵��" align="center" prop="pacStatus" fixed="right" width="100px"> + <el-table-column + label="鎺掑簭" + width="50px" + align="center" + prop="sort" + ></el-table-column> + <el-table-column + label="灏忕▼搴忎环鏍�" + width="90px" + align="center" + prop="retailPrice" + ></el-table-column> + <el-table-column + label="宸插敭鏁伴噺" + width="90px" + align="center" + prop="saleNum" + ></el-table-column> + <el-table-column + label="鐘舵��" + align="center" + prop="pacStatus" + fixed="right" + width="100px" + > <template slot-scope="scope"> - <el-switch v-model="scope.row.pacStatus" active-value="0" inactive-value="1" - @change="handleStatusChange(scope.row)"></el-switch> + <el-switch + v-model="scope.row.pacStatus" + active-value="0" + inactive-value="1" + @change="handleStatusChange(scope.row)" + ></el-switch> </template> </el-table-column> - <el-table-column label="鎿嶄綔" align="center" width="80px" fixed="right" class-name="small-padding fixed-width"> + <el-table-column + label="鎿嶄綔" + align="center" + width="80px" + fixed="right" + class-name="small-padding fixed-width" + > <template slot-scope="scope"> - <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" - v-hasPermi="['system:package:edit']" title="淇敼"></el-button> - <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" - v-hasPermi="['system:package:remove']" title="鍒犻櫎"></el-button> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:package:edit']" + title="淇敼" + ></el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['system:package:remove']" + title="鍒犻櫎" + ></el-button> </template> </el-table-column> </el-table> <div class="pag"> <div class="pag1"> - <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" @pagination="getList" /> + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> </div> </div> </template> <!-- 淇敼浣撴濂楅瀵硅瘽妗� --> - <el-dialog :title="title" :visible.sync="open" width="1400px" append-to-body :close-on-click-modal="false"> - <el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true"> + <el-dialog + :title="title" + :visible.sync="open" + width="1400px" + append-to-body + :close-on-click-modal="false" + > + <el-form + ref="form" + :model="form" + :rules="rules" + label-width="100px" + :inline="true" + > <el-form-item label="濂楅鍚嶇О" prop="pacName"> - <span slot="label" style="display: inline-block; border-bottom: 2px solid blue" @click="handlePackage"> + <span + slot="label" + style="display: inline-block; border-bottom: 2px solid blue" + @click="handlePackage" + > 濂楅鍚嶇О </span> - <el-input v-model="form.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" style="width: 150px" /> + <el-input + v-model="form.pacName" + placeholder="璇疯緭鍏ュ椁愬悕绉�" + style="width: 150px" + /> </el-form-item> <el-form-item label="濂楅鐘舵��" prop="pacStatus"> - <el-select v-model="form.pacStatus" placeholder="璇烽�夋嫨鐘舵��" style="width: 150px" filterable clearable> - <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label" - :value="dict.value"></el-option> + <el-select + v-model="form.pacStatus" + placeholder="璇烽�夋嫨鐘舵��" + style="width: 150px" + filterable + clearable + > + <el-option + v-for="dict in dict.type.sys_normal_disable" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> </el-select> </el-form-item> <el-form-item label="浣撴绫诲埆" prop="tjCategory"> - <el-select v-model="form.tjCategory" placeholder="璇烽�夋嫨浣撴绫诲埆" style="width: 150px" filterable clearable> - <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label" - :value="dict.value"></el-option> + <el-select + v-model="form.tjCategory" + placeholder="璇烽�夋嫨浣撴绫诲埆" + style="width: 150px" + filterable + clearable + > + <el-option + v-for="dict in dict.type.dict_tjtype" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> </el-select> </el-form-item> <el-form-item label="鏄惁涓婃灦" prop="isOnSale"> - <el-select v-model="form.isOnSale" placeholder="璇烽�夋嫨鏄惁涓婃灦" style="width: 140px" filterable clearable> - <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label" - :value="dict.value"></el-option> + <el-select + v-model="form.isOnSale" + placeholder="璇烽�夋嫨鏄惁涓婃灦" + style="width: 140px" + filterable + clearable + > + <el-option + v-for="dict in dict.type.sys_yes_no" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> </el-select> </el-form-item> <el-form-item label="鎺掑簭" prop="sort"> - <el-input v-model="form.sort" placeholder="璇疯緭鍏ユ帓搴�" style="width: 150px" /> + <el-input + v-model="form.sort" + placeholder="璇疯緭鍏ユ帓搴�" + style="width: 150px" + /> </el-form-item> <el-form-item label="灏忕▼搴忎环鏍�" prop="retailPrice"> - <el-input v-model="form.retailPrice" placeholder="璇疯緭鍏ュ皬绋嬪簭浠锋牸" style="width: 150px" /> + <el-input + v-model="form.retailPrice" + placeholder="璇疯緭鍏ュ皬绋嬪簭浠锋牸" + style="width: 150px" + /> </el-form-item> <el-form-item label="鍘熶环" prop="pics"> - <el-input v-model="pics" placeholder="璇疯緭鍏ュ師浠�" style="width: 150px" type="number" /> + <el-input + v-model="pics" + placeholder="璇疯緭鍏ュ師浠�" + style="width: 150px" + type="number" + /> </el-form-item> <el-form-item label="鎶樻墸"> - <el-input-number style="width: 150px" v-model="youhui" :precision="2" :step="0.1" :max="10" :min="0.1" - @change="debounceNumberChange" :debounce="3000"></el-input-number> + <el-input-number + style="width: 150px" + v-model="youhui" + :precision="2" + :step="0.1" + :max="10" + :min="0.1" + @change="debounceNumberChange" + :debounce="3000" + ></el-input-number> </el-form-item> <el-form-item label="鐜颁环" prop="xianprice"> - <el-input v-model="form.xianprice" placeholder="鐜颁环" clearable style="width: 140px" @input="changeXianjia" - type="number" :debounce="3000" min="0"/> + <el-input + v-model="form.xianprice" + placeholder="鐜颁环" + clearable + style="width: 140px" + @input="changeXianjia" + type="number" + :debounce="3000" + min="0" + /> </el-form-item> <el-form-item label="鍏抽敭瀛�" prop="keywords"> - <el-select multiple v-model="form.keywords" placeholder="璇烽�夋嫨鍏抽敭瀛�" style="width: 160px" @change="sel" filterable - clearable> - <el-option v-for="item in keywordList" :key="item.id" :label="item.keyword" :value="item.id"></el-option> + <el-select + multiple + v-model="form.keywords" + placeholder="璇烽�夋嫨鍏抽敭瀛�" + style="width: 160px" + @change="sel" + filterable + clearable + > + <el-option + v-for="item in keywordList" + :key="item.id" + :label="item.keyword" + :value="item.id" + ></el-option> </el-select> </el-form-item> <div v-if="!isCollapsed" style="display: flex"> <div> <el-form-item label="濂楅鎻忚堪" prop="pacRemark"> - <el-input type="textarea" v-model="form.pacRemark" placeholder="璇疯緭鍏ュ椁愭弿杩�" style="width: 670px" - rows="2"></el-input> + <el-input + type="textarea" + v-model="form.pacRemark" + placeholder="璇疯緭鍏ュ椁愭弿杩�" + style="width: 670px" + rows="2" + ></el-input> </el-form-item> <el-form-item label="璇︾粏浠嬬粛" prop="detail"> - <editor v-model="form.detail" :min-height="192" style="width: 670px" /> + <editor + v-model="form.detail" + :min-height="192" + style="width: 670px" + /> </el-form-item> </div> <div class="dialo2"> @@ -164,52 +449,108 @@ }}</el-button> <el-row style="display: flex; width: 1300px"> <el-col> - <div style="text-align: center; margin-bottom: 10px; margin-top: 10px"> + <div + style="text-align: center; margin-bottom: 10px; margin-top: 10px" + > 椤圭洰鍒楄〃 </div> - <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" @input="handleFilterInput" v-model="queryParams1.nr" clearable /> + <el-input + placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" + @input="handleFilterInput" + v-model="queryParams1.nr" + clearable + /> <div class="tab3" style="height: 365px"> - <el-tree class="filter-tree" v-loading="loading" :data="Treedata" :props="defaultProps" show-checkbox - node-key="proId" @check-change="handleCurrentChecked" :default-checked-keys="checkedkey" - :filter-node-method="filterNode" ref="tree" :render-content="renderContent"> + <el-tree + class="filter-tree" + v-loading="loading" + :data="Treedata" + :props="defaultProps" + show-checkbox + node-key="proId" + @check-change="handleCurrentChecked" + :default-checked-keys="checkedkey" + :filter-node-method="filterNode" + ref="tree" + :render-content="renderContent" + > </el-tree> - <pagination small v-show="total1 > 0" :total="total1" :page.sync="queryParams1.page" - :limit.sync="queryParams1.pageSize" @pagination="getDataList" /> + <pagination + small + v-show="total1 > 0" + :total="total1" + :page.sync="queryParams1.page" + :limit.sync="queryParams1.pageSize" + @pagination="getDataList" + /> </div> </el-col> <el-col> <div class="grid-content bg-purple"> - <div style=" + <div + style=" text-align: center; margin-bottom: 10px; margin-top: 10px; margin-left: 8%; - "> + " + > 宸查�夐」鐩垪琛� </div> - <el-table :data="DataList" border style="width: 90%; margin-left: 20px" height="400" - :span-method="objectSpanMethod"> + <el-table + :data="DataList" + border + style="width: 90%; margin-left: 20px" + height="400" + :span-method="objectSpanMethod" + > <el-table-column prop="proName" label="妫�鏌ラ」鐩�"> </el-table-column> - <el-table-column prop="priceOrd" label="鍘熶环" align="center" width="80px"> + <el-table-column + prop="priceOrd" + label="鍘熶环" + align="center" + width="80px" + > </el-table-column> <el-table-column label="鎶樻墸" width="100px"> <template slot-scope="scope"> - <el-input v-model.number="scope.row.limits" @input="calculateDiscount(scope.row)" placeholder="杈撳叆鎶樻墸" - size="small" type="number" min="0" step="0.1" max="10"> + <el-input + v-model.number="scope.row.limits" + @input="calculateDiscount(scope.row)" + placeholder="杈撳叆鎶樻墸" + size="small" + type="number" + min="0" + step="0.1" + max="10" + > </el-input> </template> </el-table-column> - <el-table-column prop="priceNow" label="鐜颁环" width="80px" align="center"> + <el-table-column + prop="priceNow" + label="鐜颁环" + width="80px" + align="center" + > </el-table-column> <el-table-column label="鎿嶄綔" align="center" width="80px"> <template slot-scope="scope"> - <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete1(scope.row)" title="鍒犻櫎"> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete1(scope.row)" + title="鍒犻櫎" + > </el-button> </template> </el-table-column> </el-table> - <h4 style="font-weight: 600;padding-left:20px">涓�鍏遍�変腑{{DataList.length}}椤癸紝鍚堣锛歿{ form.xianprice }}鍏�</h4> + <h4 style="font-weight: 600; padding-left: 20px"> + 涓�鍏遍�変腑{{ DataList.length }}椤癸紝鍚堣锛歿{ form.xianprice }}鍏� + </h4> </div> </el-col> </el-row> @@ -226,7 +567,11 @@ import Packages from "@/components/Packages"; import { listCategory } from "@/api/mall/category"; import { listKeyword } from "@/api/mall/keyword"; -import { getProParentIdDxList, search, getProSonDxList } from "@/api/system/package"; +import { + getProParentIdDxList, + search, + getProSonDxList, +} from "@/api/system/package"; import { getPacList, getPacInFo, @@ -243,7 +588,7 @@ saveOreditTjPacNew, } from "@/api/system/package"; import { Message } from "element-ui"; -import Big from 'big.js'; +import Big from "big.js"; export default { name: "Package", @@ -305,6 +650,7 @@ page: 1, pageSize: 30, nr: "", + xb: "", }, form: { xianprice: null, @@ -317,7 +663,9 @@ initializing: true, debounceTimer: null, rules: { - pacName: [{ required: true, message: "璇疯緭鍏ュ椁愬悕绉�", trigger: "blur" }], + pacName: [ + { required: true, message: "璇疯緭鍏ュ椁愬悕绉�", trigger: "blur" }, + ], // pics: [{ required: true, message: "璇疯緭鍏ュ師浠�", trigger: "change" }], xianprice: [{ required: true, message: "璇疯緭鍏ョ幇浠�", trigger: "blur" }], }, @@ -346,7 +694,9 @@ this.form.xianprice = this.DataList.reduce((sum, item) => { return sum.plus(new Big(item.priceNow || 0)); }, new Big(0)).toNumber(); - this.youhui = this.pics ? (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10 : 10; + this.youhui = this.pics + ? (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10 + : 10; }, calculateDiscount(row) { if (row.limits > 10) { @@ -361,7 +711,12 @@ }, filterNode(value, data) { if (!value) return true; - return data.proName.indexOf(value) !== -1 || (data.proEngName && data.proEngName.indexOf(value) !== -1); + console.log(value, 6666); + + return ( + data.proName.indexOf(value) !== -1 || + (data.proEngName && data.proEngName.indexOf(value) !== -1) + ); }, getList() { this.loading = true; @@ -369,72 +724,89 @@ this.allList = response.data || []; this.loading = false; }); - getPacList(this.queryParams).then((response) => { - response.rows.forEach((item, index) => { - item.newID = (this.queryParams.pageNum - 1) * this.queryParams.pageSize + index + 1; + getPacList(this.queryParams) + .then((response) => { + response.rows.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + this.total = response.total || 0; + this.packageList = response.rows || []; + this.loading = false; + }) + .catch(() => { + this.loading = false; + this.$message.error("鑾峰彇濂楅鍒楄〃澶辫触"); }); - this.total = response.total || 0; - this.packageList = response.rows || []; - this.loading = false; - }).catch(() => { - this.loading = false; - this.$message.error("鑾峰彇濂楅鍒楄〃澶辫触"); - }); }, getKeyword() { this.loading = true; - listKeyword(this.queryParams).then((response) => { - this.keywordList = response.rows || []; - this.loading = false; - }).catch(() => { - this.loading = false; - this.$message.error("鑾峰彇鍏抽敭瀛楀垪琛ㄥけ璐�"); - }); + listKeyword(this.queryParams) + .then((response) => { + this.keywordList = response.rows || []; + this.loading = false; + }) + .catch(() => { + this.loading = false; + this.$message.error("鑾峰彇鍏抽敭瀛楀垪琛ㄥけ璐�"); + }); }, sel(val) { - const maleId = '4'; // 鈥滅敺鈥濈殑 ID - const femaleId = '5'; // 鈥滃コ鈥濈殑 ID + const maleId = "4"; // 鈥滅敺鈥濈殑 ID + const femaleId = "5"; // 鈥滃コ鈥濈殑 ID let selectedIds = [...val]; // 澶嶅埗褰撳墠閫変腑鐨� ID 鏁扮粍 // 瀹炵幇鈥滅敺鈥濆拰鈥滃コ鈥濅簰鏂ラ�昏緫 if (selectedIds.includes(maleId) && selectedIds.includes(femaleId)) { selectedIds = selectedIds.slice(-1); // 淇濈暀鏈�鍚庨�変腑鐨勪竴涓� - this.$message.warning('鈥滅敺鈥濆拰鈥滃コ鈥濆叧閿瓧浜掓枼锛屽彧鑳介�夋嫨涓�涓紒'); + this.$message.warning("鈥滅敺鈥濆拰鈥滃コ鈥濆叧閿瓧浜掓枼锛屽彧鑳介�夋嫨涓�涓紒"); } // 鏇存柊 form.keywords 鍜� keys this.form.keywords = selectedIds; - this.keys = selectedIds.join(','); + this.keys = selectedIds.join(","); // 璋冪敤 getDataList锛屼紶閫掓墍鏈夐�変腑鐨勫叧閿瓧 ID锛堥�楀彿鍒嗛殧锛� - this.getDataList({ xb: this.keys }); + // this.getDataList({ xb: this.keys }); + this.queryParams1.xb = this.keys; // 馃憟 鏇存柊鏌ヨ鍙傛暟 + this.queryParams1.page = 1; // 馃憟 鍒囨崲鏉′欢鏃堕噸缃〉鐮� + this.getDataList(); // 涓嶉渶瑕佸啀浼犲弬浜� }, getCategory() { this.loading = true; - listCategory(this.queryParams).then((response) => { - this.categoryList = response.rows || []; - this.loading = false; - }).catch(() => { - this.loading = false; - this.$message.error('鑾峰彇濂楅绫荤洰澶辫触'); - }); + listCategory(this.queryParams) + .then((response) => { + this.categoryList = response.rows || []; + this.loading = false; + }) + .catch(() => { + this.loading = false; + this.$message.error("鑾峰彇濂楅绫荤洰澶辫触"); + }); }, getDataList(params = {}) { this.loading = true; const query = { ...this.queryParams1, ...params }; - search(query).then((response) => { - this.Treedata = response.data.list || []; - this.total1 = response.data.total || 0; - this.pics = this.DataList.reduce((total, item) => total + (item.priceOrd || 0), 0); - this.$nextTick(() => { - this.$refs.tree.setCheckedKeys(this.checkedNodes); - this.initializing = false; + search(query) + .then((response) => { + this.Treedata = response.data.list || []; + this.total1 = response.data.total || 0; + this.pics = this.DataList.reduce( + (total, item) => total + (item.priceOrd || 0), + 0 + ); + this.$nextTick(() => { + this.$refs.tree.setCheckedKeys(this.checkedNodes); + this.initializing = false; + }); + this.loading = false; + }) + .catch(() => { + this.loading = false; + this.$message.error("鑾峰彇椤圭洰鍒楄〃澶辫触"); }); - this.loading = false; - }).catch(() => { - this.loading = false; - this.$message.error('鑾峰彇椤圭洰鍒楄〃澶辫触'); - }); }, shangpin(vals) {}, cancel() { @@ -533,11 +905,12 @@ this.pics = response.data.price || 0; this.form.xianprice = response.data.newPrice || 0; this.lastXianPrice = this.form.xianprice; - this.form.keywords = response.data.keywords && response.data.keywords.length > 0 - ? response.data.keywords.slice(0, -1).split(",") - : []; + this.form.keywords = + response.data.keywords && response.data.keywords.length > 0 + ? response.data.keywords.slice(0, -1).split(",") + : []; this.DataList = response.data.packageProjects || []; - this.checkedkey = this.DataList.map(item => item.proId || ''); + this.checkedkey = this.DataList.map((item) => item.proId || ""); this.checkedListkey = [...this.checkedkey]; this.checkedNodes = [...this.checkedkey]; this.getDataList(); @@ -548,32 +921,36 @@ this.title = "浣撴濂楅淇℃伅缁存姢"; this.open = true; this.loading = true; - getPacInFo(row.pacId).then((response) => { - const data = response.data || {}; - Object.keys(data).forEach((key) => { - this.$set(this.form, key, data[key]); + getPacInFo(row.pacId) + .then((response) => { + const data = response.data || {}; + Object.keys(data).forEach((key) => { + this.$set(this.form, key, data[key]); + }); + this.youhui = data.limits || 10; + this.pics = data.price || 0; + this.form.xianprice = data.newPrice || 0; + this.lastXianPrice = this.form.xianprice; + this.form.keywords = + data.keywords && data.keywords.length > 0 + ? data.keywords.slice(0, -1).split(",") + : []; + this.DataList = data.packageProjects || []; + this.checkedkey = this.DataList.map((item) => item.proId || ""); + this.checkedListkey = [...this.checkedkey]; + this.checkedNodes = [...this.checkedkey]; + return this.getDataList(); + }) + .then(() => { + this.loading = false; + this.$nextTick(() => { + this.$refs.form.validate(); + }); + }) + .catch((error) => { + this.loading = false; + this.$message.error("鍔犺浇鏁版嵁澶辫触"); }); - this.youhui = data.limits || 10; - this.pics = data.price || 0; - this.form.xianprice = data.newPrice || 0; - this.lastXianPrice = this.form.xianprice; - this.form.keywords = data.keywords && data.keywords.length > 0 - ? data.keywords.slice(0, -1).split(",") - : []; - this.DataList = data.packageProjects || []; - this.checkedkey = this.DataList.map(item => item.proId || ''); - this.checkedListkey = [...this.checkedkey]; - this.checkedNodes = [...this.checkedkey]; - return this.getDataList(); - }).then(() => { - this.loading = false; - this.$nextTick(() => { - this.$refs.form.validate(); - }); - }).catch((error) => { - this.loading = false; - this.$message.error("鍔犺浇鏁版嵁澶辫触"); - }); }, addmembers() { if (this.form.pacName) { @@ -595,7 +972,9 @@ }, Delete(index) { if (this.form.tjProjectList.length === 0) { - this.$modal.alert("璇峰厛閫夋嫨瑕佸垹闄ょ殑鏁版嵁", "鎻愮ず", { confirmButtonText: "纭畾" }); + this.$modal.alert("璇峰厛閫夋嫨瑕佸垹闄ょ殑鏁版嵁", "鎻愮ず", { + confirmButtonText: "纭畾", + }); } else { this.form.tjProjectList.splice(index, 1); } @@ -629,7 +1008,10 @@ }); for (let i = 0; i < this.form.tjProjectList.length; i++) { for (let j = i + 1; j < this.form.tjProjectList.length; j++) { - if (this.form.tjProjectList[i].proId === this.form.tjProjectList[j].proId) { + if ( + this.form.tjProjectList[i].proId === + this.form.tjProjectList[j].proId + ) { this.form.tjProjectList.splice(j, 1); j--; this.$modal.msgError("姝ら」鐩凡褰曞叆锛屼笉鍙噸澶嶅綍鍏�"); @@ -668,6 +1050,8 @@ handleFilterInput() { this.queryParams1.page = 1; this.getDataList(); + // this.getDataList({ xb: this.keys }); + this.$nextTick(() => { this.$refs.tree.setCheckedKeys(this.checkedNodes); }); @@ -691,7 +1075,9 @@ } this.updateTotalPrice(); } else { - this.DataList = this.DataList.filter((item) => item.proId !== data.proId); + this.DataList = this.DataList.filter( + (item) => item.proId !== data.proId + ); const index = this.checkedNodes.indexOf(data.proId); if (index > -1) { this.checkedNodes.splice(index, 1); @@ -703,11 +1089,15 @@ this.form.xianprice = this.DataList.reduce((sum, item) => { return sum.plus(new Big(item.priceNow || 0)); }, new Big(0)).toNumber(); - this.pics = this.DataList.reduce((total, item) => total + (item.priceOrd || 0), 0); + this.pics = this.DataList.reduce( + (total, item) => total + (item.priceOrd || 0), + 0 + ); }, changeXianjia() { if (this.form.xianprice !== 0 && this.pics) { - this.youhui = (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10; + this.youhui = + (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10; } }, spliceData() { @@ -723,19 +1113,32 @@ }, handleCurrentChecked1(data, checked, checkedNodes) { if (!checked) { - this.DataList = this.DataList.filter((item) => item.proId !== data.proId); - this.TotalPrice1 = this.DataList.reduce((sum, item) => sum + (item.priceOrd || 0), 0); + this.DataList = this.DataList.filter( + (item) => item.proId !== data.proId + ); + this.TotalPrice1 = this.DataList.reduce( + (sum, item) => sum + (item.priceOrd || 0), + 0 + ); this.pics = this.TotalPrice1; } else { this.DataList.push(data); - this.pics = this.DataList.reduce((sum, item) => sum + (item.priceOrd || 0), 0); + this.pics = this.DataList.reduce( + (sum, item) => sum + (item.priceOrd || 0), + 0 + ); this.spliceData(); this.TotalPrice1 = this.pics; } }, handleDeletes(row) { - this.DataList = this.DataList.filter((item) => item.proParentId !== row.proParentId); - this.TotalPrice1 = this.DataList.reduce((sum, item) => sum + (item.priceOrd || 0), 0); + this.DataList = this.DataList.filter( + (item) => item.proParentId !== row.proParentId + ); + this.TotalPrice1 = this.DataList.reduce( + (sum, item) => sum + (item.priceOrd || 0), + 0 + ); }, submitForm() { this.$refs.form.validate((valid) => { @@ -748,7 +1151,9 @@ type: "warning", }) .then(() => { - this.youhui = (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10; + this.youhui = + (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * + 10; let totalYsprice = new Big(0); this.DataList.forEach((item) => { item.limits = this.youhui; @@ -762,8 +1167,14 @@ const diff = new Big(this.form.xianprice).minus(totalYsprice); if (this.DataList.length > 0) { const lastItem = this.DataList[this.DataList.length - 1]; - const newYsPrice = new Big(lastItem.priceNow).plus(diff).toNumber(); - this.$set(this.DataList[this.DataList.length - 1], "priceNow", newYsPrice); + const newYsPrice = new Big(lastItem.priceNow) + .plus(diff) + .toNumber(); + this.$set( + this.DataList[this.DataList.length - 1], + "priceNow", + newYsPrice + ); } } return this.saveData(); @@ -809,13 +1220,15 @@ pacRemark: this.form.pacRemark, detail: this.form.detail, }; - return saveOreditTjPacNew(data).then((res) => { - this.$modal.msgSuccess("淇濆瓨鎴愬姛"); - this.open = false; - this.getList(); - }).catch(() => { - this.$message.error("淇濆瓨澶辫触"); - }); + return saveOreditTjPacNew(data) + .then((res) => { + this.$modal.msgSuccess("淇濆瓨鎴愬姛"); + this.open = false; + this.getList(); + }) + .catch(() => { + this.$message.error("淇濆瓨澶辫触"); + }); }, handleDelete(row) { const pacIds = row.pacId || this.ids; diff --git a/vue.config.js b/vue.config.js index f031a59..1759202 100644 --- a/vue.config.js +++ b/vue.config.js @@ -54,7 +54,7 @@ [process.env.VUE_APP_BASE_API]: { // target: `https://ltpeis.xaltjdkj.cn:5801/`, // target: `http://192.168.1.99:5012`, - target: `http://192.168.1.244:5011`, + target: `http://192.168.1.113:5011`, // target: `http://192.168.1.244:5011`, // // target: `http://192.168.0.99:8080/ltkj-admin`, // target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`, -- Gitblit v1.8.0