From 4f55c0255e5e68b3685d1510062dff6e1e3dbc48 Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期三, 16 四月 2025 14:13:07 +0800 Subject: [PATCH] 1 --- src/views/hosp/advicerules/index.vue | 499 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 287 insertions(+), 212 deletions(-) diff --git a/src/views/hosp/advicerules/index.vue b/src/views/hosp/advicerules/index.vue index 5ffd937..ff6154e 100644 --- a/src/views/hosp/advicerules/index.vue +++ b/src/views/hosp/advicerules/index.vue @@ -8,14 +8,6 @@ v-show="showSearch" label-width="68px" > - <!-- <el-form-item label="缂栫爜" prop="bm"> - <el-input - v-model="queryParams.bm" - placeholder="璇疯緭鍏ョ紪鐮�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> --> <el-form-item label="绉戝" prop="ks"> <el-input v-model="queryParams.ks" @@ -58,7 +50,6 @@ <el-col :span="1.5"> <el-button type="primary" - plain icon="el-icon-plus" size="mini" @click="handleAdd" @@ -68,8 +59,7 @@ </el-col> <el-col :span="1.5"> <el-button - type="success" - plain + type="primary" icon="el-icon-edit" size="mini" :disabled="single" @@ -80,8 +70,7 @@ </el-col> <el-col :span="1.5"> <el-button - type="danger" - plain + type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @@ -90,131 +79,147 @@ >鍒犻櫎 </el-button> </el-col> - <el-col :span="1.5"> - <el-button - type="warning" - plain - icon="el-icon-download" - size="mini" - @click="handleImport" - >瀵煎叆 + <!-- <el-col :span="1.5"> + <el-button type="primary" icon="el-icon-upload2" size="mini" @click="handleImport">瀵煎叆 </el-button> </el-col> <el-col :span="1.5"> - <el-button - type="warning" - plain - icon="el-icon-download" - size="mini" - @click="handleExport" - v-hasPermi="['hosp:advicerules:export']" - >瀵煎嚭 + <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport" + v-hasPermi="['hosp:advicerules:export']">瀵煎嚭 </el-button> - </el-col> + </el-col> --> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" ></right-toolbar> </el-row> - <el-table - v-loading="loading" - :data="advicerulesList" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="搴忓彿" width="50" align="center"> - <template slot-scope="scope"> - {{ scope.$index + 1 }} - <!-- 浣跨敤 $index 鏉ユ樉绀哄簭鍙凤紝浠�1寮�濮� --> - </template> - </el-table-column> - <el-table-column label="缂栫爜" align="center" prop="bm" /> - <el-table-column label="绉戝" align="center" prop="ks" /> - <el-table-column label="妫�鏌ラ」鐩�" align="center" prop="jcxm" /> - <el-table-column - label="涓昏璇婃柇" - align="center" - :show-overflow-tooltip="true" - width="120" - prop="zyzd" - /> - <el-table-column - label="寤鸿鍚嶇О" - align="center" - :show-overflow-tooltip="true" - width="150" - prop="jymc" - /> - <el-table-column - label="寤鸿鍐呭" - align="center" - :show-overflow-tooltip="true" - width="200" - prop="jynr" - /> - <el-table-column label="鑼冨洿" align="center" prop="fwz" /> - <el-table-column label="鑼冨洿鏈�灏忓��" align="center" prop="fwzxz" /> - <el-table-column label="鑼冨洿鏈�澶у��" align="center" prop="fwzdz" /> - <el-table-column label="寮傚父鏍囧織" align="center" prop="ycbz" /> - <el-table-column label="鏄惁鐤剧梾" align="center" prop="sfjb"> - <!-- <template slot-scope="scope"> - <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.sfjb" /> - </template> --> - </el-table-column> - <el-table-column label="鏄惁甯歌鐥�" align="center" prop="sfcjb"> - <!-- <template slot-scope="scope"> - <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.sfcjb" /> - </template> --> - </el-table-column> - <el-table-column label="鏄惁鎱㈡�х梾" align="center" prop="sfmxb"> - <!-- <template slot-scope="scope"> - <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.sfmxb" /> - </template> --> - </el-table-column> - <el-table-column - label="鏄惁閲嶅ぇ鐤剧梾" - align="center" - width="120" - prop="sfzdjb" - > - <!-- <template slot-scope="scope"> - <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.sfzdjb" /> - </template> --> - </el-table-column> - <el-table-column - label="鎿嶄綔" - align="center" - 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="['hosp:advicerules:edit']" + <el-row :gutter="20" style="display: flex"> + <el-col :span="3" :xs="24"> + <div class="head-container"> + <el-input + v-model="xmmc" + placeholder="璇疯緭鍏ラ」鐩悕" + clearable + size="small" + prefix-icon="el-icon-search" + style="margin-bottom: 20px" + /> + </div> + <div class="scrollable-container"> + <div class="content"> + <el-tree + :data="deptOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + node-key="id" + :default-expanded-keys="treeId" + highlight-current + @node-click="handleNodeClick" + /> + </div> + </div> + </el-col> + <el-col :span="20" :xs="24"> + <el-table + v-loading="loading" + :data="advicerulesList" + @selection-change="handleSelectionChange" + height="520" + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="搴忓彿" width="50" align="center"> + <template slot-scope="scope"> + {{ scope.$index + 1 }} + <!-- 浣跨敤 $index 鏉ユ樉绀哄簭鍙凤紝浠�1寮�濮� --> + </template> + </el-table-column> + <el-table-column label="缂栫爜" align="center" prop="bm" /> + <el-table-column label="绉戝" align="center" prop="ks" /> + <el-table-column label="妫�鏌ラ」鐩�" align="center" prop="jcxm" /> + <el-table-column + label="涓昏璇婃柇" + align="center" + :show-overflow-tooltip="true" + width="120" + prop="zyzd" + /> + <el-table-column + label="寤鸿鍚嶇О" + align="center" + :show-overflow-tooltip="true" + width="150" + prop="jymc" + /> + <el-table-column + label="寤鸿鍐呭" + align="center" + :show-overflow-tooltip="true" + width="200" + prop="jynr" + /> + <el-table-column + label="鎬у埆" + align="center" + prop="xb" + :formatter="formatSex" + /> + <el-table-column label="鑼冨洿" align="center" prop="fwz" /> + <el-table-column label="鑼冨洿鏈�灏忓��" align="center" prop="fwzxz" /> + <el-table-column label="鑼冨洿鏈�澶у��" align="center" prop="fwzdz" /> + <el-table-column label="寮傚父鏍囧織" align="center" prop="ycbz" /> + <el-table-column label="鏄惁鐤剧梾" align="center" prop="sfjb"> + </el-table-column> + <el-table-column label="鏄惁甯歌鐥�" align="center" prop="sfcjb"> + </el-table-column> + <el-table-column label="鏄惁鎱㈡�х梾" align="center" prop="sfmxb"> + </el-table-column> + <el-table-column + label="鏄惁閲嶅ぇ鐤剧梾" + align="center" + width="120" + prop="sfzdjb" + ></el-table-column> + <el-table-column + label="鎿嶄綔" + align="center" + class-name="small-padding fixed-width" > - </el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['hosp:advicerules:remove']" - > - </el-button> - </template> - </el-table-column> - </el-table> - - <pagination - v-show="total > 0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['hosp:advicerules:edit']" + > + </el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['hosp:advicerules:remove']" + > + </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="getListByXmId" + /> + </div> + </div> + </el-col> + </el-row> <!-- 娣诲姞鎴栦慨鏀逛綋妫�椤圭洰寤鸿瑙勫垯鏂拌〃瀵硅瘽妗� --> <el-dialog @@ -235,13 +240,14 @@ <el-select v-model="form.ks" placeholder="璇烽�夋嫨绉戝" - style="width: 200" + style="width: 200px" + @change="idFn" > <el-option v-for="item in departmentOptions" - :key="item.value" + :key="item.id" :label="item.label" - :value="item.value" + :value="item.label" /> </el-select> </el-form-item> @@ -260,9 +266,9 @@ /> </el-form-item> - <el-form-item label="鑼冨洿" prop="fw"> + <el-form-item label="鑼冨洿" prop="fwz"> <el-input - v-model="form.fw" + v-model="form.fwz" placeholder="璇疯緭鍏ヨ寖鍥�" style="width: 200px" /> @@ -288,6 +294,7 @@ placeholder="璇疯緭鍏ュ紓甯告爣蹇�" /> </el-form-item> + <el-form-item label="鐤剧梾" prop="sfjb"> <el-checkbox v-model="form.sfjb" true-label="鏄�" false-label="鍚�"> </el-checkbox> @@ -296,37 +303,37 @@ <el-checkbox v-model="form.sfcjb" true-label="鏄�" - false-label="鍚�" + false-label="" ></el-checkbox> - <!-- <el-input - v-model="form.sfcjb" - style="width: 200px" - placeholder="璇疯緭鍏ユ槸鍚﹀父瑙佺梾" - /> --> </el-form-item> <el-form-item label="鎱㈡�х梾" prop="sfmxb"> <el-checkbox v-model="form.sfmxb" true-label="鏄�" - false-label="鍚�" + false-label="" ></el-checkbox> - <!-- <el-input - v-model="form.sfmxb" - style="width: 200px" - placeholder="璇疯緭鍏ユ槸鍚︽參鎬х梾" - /> --> </el-form-item> <el-form-item label="閲嶅ぇ鐤剧梾" prop="sfzdjb"> <el-checkbox v-model="form.sfzdjb" true-label="鏄�" - false-label="鍚�" + false-label="" ></el-checkbox> - <!-- <el-input - v-model="form.sfzdjb" + </el-form-item> + <el-form-item label="鎬у埆" prop="xb"> + <el-select + v-model="form.xb" + placeholder="璇烽�夋嫨浣撴浜烘�у埆" style="width: 200px" - placeholder="璇疯緭鍏ユ槸鍚﹂噸澶х柧鐥�" - /> --> + clearable + > + <el-option + v-for="dict in dict.type.sys_user_sex" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> </el-form-item> <el-form-item label="寤鸿鍚嶇О" prop="jymc" style="display: block"> <el-input @@ -504,6 +511,7 @@ delAdvicerules, addAdvicerules, updateAdvicerules, + getTjProAdvicerulesKsList, } from "@/api/hosp/advicerules"; import { listAdvice } from "@/api/advice/advice"; import { getToken } from "@/utils/auth"; @@ -511,6 +519,7 @@ export default { name: "Advicerules", + dicts: ["sys_user_sex"], data() { return { // 閬僵灞� @@ -529,8 +538,11 @@ // 浣撴椤圭洰寤鸿瑙勫垯鏂拌〃琛ㄦ牸鏁版嵁 advicerulesList: [], adviceList: [], + deptOptions: [], + treeId: [], // 寮瑰嚭灞傛爣棰� title: "", + xmmc: "", // 鏄惁鏄剧ず寮瑰嚭灞� open: false, key: "", @@ -538,6 +550,10 @@ businessName: "exampleBusiness", // 绀轰緥涓氬姟鍚� objs: {}, departmentOptions: [], + defaultProps: { + children: "children", + label: "label", + }, // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -552,6 +568,7 @@ sfcjb: null, sfmxb: null, sfzdjb: null, + sfzdjb: null, }, queryParam1: { page: 1, @@ -564,7 +581,9 @@ pageSize: 10, }, // 琛ㄥ崟鍙傛暟 - form: {}, + form: { + xb: "2", + }, // 琛ㄥ崟鏍¢獙 rules: {}, upload: { @@ -587,25 +606,83 @@ created() { this.getList(); }, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + xmmc(val) { + this.$refs.tree.filter(val); + }, + treeId(newVal, oldVal) { + if (newVal) { + this.$nextTick(() => { + document + .querySelector(".el-tree-node__children .el-tree-node__content") + .click(); + }); + } + }, + }, methods: { /** 鏌ヨ浣撴椤圭洰寤鸿瑙勫垯鏂拌〃鍒楄〃 */ getList() { - this.loading = true; + /* this.loading = true; listAdvicerules(this.queryParams).then((response) => { this.advicerulesList = response.rows; this.total = response.total; this.loading = false; - }); - deptTreeSelect().then((response) => { - this.departmentOptions = response.data[0].children; - console.log(response, 999); + }); */ + getTjProAdvicerulesKsList().then((response) => { + this.deptOptions = response.data.map((name, index) => { + return { + id: index + 1, // 鍙嚜瀹氫箟鍞竴 ID + label: name, // el-tree 榛樿鐨勬樉绀哄瓧娈� + }; + }); + + // 璁剧疆榛樿灞曞紑椤� + this.treeId = [this.deptOptions[0]?.id]; + this.queryParams.proId = this.deptOptions[0]?.id; + this.getListByXmId(); }); }, - /* getDeptTree() { - deptTreeSelect().then((response) => { - this.deptOption = response.data; + getListByXmId() { + this.loading = true; + listAdvicerules(this.queryParams).then((response) => { + response.rows.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + this.advicerulesList = response.rows; + this.total = response.total; + this.loading = false; }); - }, */ + }, + handleNodeClick(data) { + this.formIn = data; + this.queryParams.ks = data.label; + this.getListByXmId(); + }, + + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + // return data.label.indexOf(value) !== -1; + return ( + data.label && + typeof data.label === "string" && + data.label.indexOf(value) !== -1 + ); + }, + + idFn(value) { + console.log("Selected Value:", value); + this.departmentOptions.forEach((item) => { + if (item.value == value) { + this.form.ks = item.label; + } + }); + }, // 鍙栨秷鎸夐挳 cancel() { this.open = false; @@ -634,8 +711,11 @@ createBy: null, updateBy: null, deleted: null, + xb: "2", }; - this.resetForm("form"); + if (this.$refs.form) { + this.$refs.form.resetFields(); + } }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { @@ -651,9 +731,16 @@ this.queryParam.nr = ""; // 娓呯┖寤鸿鍐呭 }, + formatSex(row) { + const dictItem = this.dict.type.sys_user_sex.find( + (item) => item.value === row.xb + ); + return dictItem ? dictItem.label : ""; + }, + handleSelectionChange1(selection) { this.ChangeList = selection; - this.ids = selection.map((item) => item.aid); + this.ids = selection.map((item) => item.id); this.single = selection.length !== 1; this.multiple = !selection.length; if (selection.length > 1) { @@ -690,12 +777,8 @@ /* 寮规纭畾鎸夐挳 */ submit() { - console.log(this.ChangeList, 123); - this.ChangeList.forEach((item) => { - console.log(item.title, 6363); this.form.jymc = item.title; - console.log(this.form.adviceBt, 2525); this.form.jynr = item.advice; // this.sfxmId = parseInt(item.id); @@ -715,6 +798,9 @@ this.reset(); this.open = true; this.title = "娣诲姞浣撴椤圭洰寤鸿瑙勫垯鏂拌〃"; + deptTreeSelect().then((response) => { + this.departmentOptions = response.data[0].children; + }); }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -725,41 +811,37 @@ this.open = true; this.title = "淇敼浣撴椤圭洰寤鸿瑙勫垯鏂拌〃"; }); + + deptTreeSelect().then((response) => { + this.departmentOptions = response.data[0].children; + }); }, + submitForm() { this.$refs["form"].validate((valid) => { if (valid) { - this.columns.forEach((column) => { - if (column.htmlType === "checkbox") { - // 灏嗛�変腑鐨� checkbox 鍊肩敤閫楀彿鍒嗛殧 - this.form[column.javaField] = - this.form[column.javaField].join(","); - } - }); - if (this.table.sub) { - this.form.subclassNameList = this.subclassNameList; // 鍋囪 subclassNameList 鏄瓙琛ㄦ牸鐨勬暟鎹� - } - if (this.form[pkColumn.javaField] != null) { + if (this.form.id != null) { updateAdvicerules(this.form).then((response) => { + console.log(response, 1111333); + this.$modal.msgSuccess("淇敼鎴愬姛"); this.open = false; - this.getList(); // 鍒锋柊鍒楄〃 + this.getList(); }); } else { - // 濡傛灉涓婚敭瀛楁涓虹┖锛岃繘琛屾柊澧炴搷浣� addAdvicerules(this.form).then((response) => { this.$modal.msgSuccess("鏂板鎴愬姛"); this.open = false; - this.getList(); // 鍒锋柊鍒楄〃 + this.getList(); }); } } }); }, handleDelete(row) { - const pkValue = row[pkColumn.javaField] || this.ids; // 鑾峰彇涓婚敭鍊硷紝濡傛灉row涓病鏈変富閿�硷紝鍒欎娇鐢╰his.ids + const pkValue = row.id || this.ids; // 鑾峰彇涓婚敭鍊硷紝濡傛灉row涓病鏈変富閿�硷紝鍒欎娇鐢╰his.ids this.$modal - .confirm(`鏄惁纭鍒犻櫎${functionName}缂栧彿涓�"${pkValue}"鐨勬暟鎹」锛焋) + .confirm(`鏄惁纭鍒犻櫎"${pkValue}"鐨勬暟鎹」锛焋) .then(() => { return delAdvicerules(pkValue); // 璋冪敤鍒犻櫎鎺ュ彛锛屼紶鍏ヤ富閿�� }) @@ -794,43 +876,12 @@ dangerouslyUseHTMLString: true, }); } - /* this.ListObj = response.data; - this.advicerulesList = response.data.list; - - this.userList.forEach((item) => { - this.CompanyList.forEach((item1) => { - if (item1.drugManufacturerId == this.objs.drugManufacturerId) { - item.company = item1.cnName; - } - }); - }); */ this.upload.open = false; this.upload.isUploading = false; this.$refs.upload.clearFiles(); this.leftList = response.msg; console.log(response.code); - /* if (this.leftList == "鎿嶄綔澶辫触") { - this.isdisabled = true; - this.$alert( - "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + - response.msg + - "<div style='br;margin:10px'>" + - response.data[0] + - "韬唤璇佹垨鎵嬫満鍙风爜鏈夎" + - "</div>", - "瀵煎叆缁撴灉", - { dangerouslyUseHTMLString: true } - ); - } else { - this.isdisabled = false; - this.$alert( - "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + - response.msg, - { dangerouslyUseHTMLString: true } - ); - this.rightList = response; - } */ for (let i = 0; i < fileList.length; i++) { if (file.name != fileList[i].name) { this.fileList.push({ @@ -860,4 +911,28 @@ }, }; </script> +<style scoped> +.scrollable-container { + width: 200px; + height: 520px; + overflow: auto; + border: 1px solid #ccc; + position: relative; +} +.content { + width: 1000px; + /* 璁剧疆鍐呭鐨勫搴︼紝浠ヨЕ鍙戞按骞虫粴鍔ㄦ潯 */ + height: 1000px; + /* 璁剧疆鍐呭鐨勯珮搴︼紝浠ヨЕ鍙戝瀭鐩存粴鍔ㄦ潯 */ +} +.pag { + width: 100%; + display: flex; + justify-content: center; +} + +.pag1 { + width: 65%; +} +</style> -- Gitblit v1.8.0