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/advice/advice/index.vue | 370 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 253 insertions(+), 117 deletions(-) diff --git a/src/views/advice/advice/index.vue b/src/views/advice/advice/index.vue index 3b9dd6e..e937115 100644 --- a/src/views/advice/advice/index.vue +++ b/src/views/advice/advice/index.vue @@ -7,7 +7,16 @@ :inline="true" v-show="showSearch" label-width="68px" + @submit.native.prevent > + <el-form-item label="鏍囬" prop="bt"> + <el-input + v-model="queryParams.bt" + placeholder="璇疯緭鍏ユ爣棰�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> <el-form-item label="椤圭洰鍚嶇О" prop="proName"> <el-input v-model="queryParams.proName" @@ -73,90 +82,137 @@ >瀵煎嚭</el-button > </el-col> - <right-toolbar - :showSearch.sync="showSearch" - @queryTable="getList" - ></right-toolbar> + </el-row> + <el-row :gutter="20"> + <el-col :span="3" :xs="24"> + <div class="head-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-expand-all + :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="adviceList" + @selection-change="handleSelectionChange" + border + > + <el-table-column type="selection" width="55" align="center" fixed /> + <el-table-column + label="搴忓彿" + align="center" + prop="newID" + width="55px" + /> + <el-table-column + label="鎵�灞炵瀹�" + align="center" + prop="deptName" + width="120px" + :show-overflow-tooltip="true" + /> + <el-table-column + label="浣撴椤圭洰" + align="center" + prop="proName" + width="120px" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鏍囬" + align="center" + prop="title" + width="120px" + :show-overflow-tooltip="true" + /> + <el-table-column + label="寤鸿" + align="center" + prop="advice" + width="1249px" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鎿嶄綔" + align="center" + fixed="right" + class-name="small-padding fixed-width" + width="80px" + > + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['advice:advice:edit']" + title="淇敼" + ></el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['advice:advice: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.page" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + </div> + </div> + </el-col> </el-row> - <el-table - v-loading="loading" - :data="adviceList" - @selection-change="handleSelectionChange" - border - > - <el-table-column type="selection" width="55" align="center" fixed /> - <el-table-column - label="搴忓彿" - align="center" - prop="newID" - width="55px" - fixed - /> - <el-table-column - label="鎵�閫夐」鐩�" - align="center" - prop="proName" - width="120px" - :show-overflow-tooltip="true" - /> - <el-table-column - label="鏍囬" - align="center" - prop="title" - width="120px" - :show-overflow-tooltip="true" - /> - <el-table-column - label="寤鸿" - align="center" - prop="advice" - width="1249px" - :show-overflow-tooltip="true" - /> - <el-table-column - label="鎿嶄綔" - align="center" - fixed="right" - class-name="small-padding fixed-width" - width="80px" - > - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-edit" - @click="handleUpdate(scope.row)" - v-hasPermi="['advice:advice:edit']" - title="淇敼" - ></el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['advice:advice: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.page" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> - </div> - </div> - <!-- 娣诲姞鎴栦慨鏀筧dvice瀵硅瘽妗� --> - <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-dialog + :title="title" + :visible.sync="open" + width="1000px" + append-to-body + > <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="褰掑睘绉戝" prop="deptId"> + <!-- <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="璇烽�夋嫨褰掑睘绉戝" + style="width: 200px" /> --> + <el-select + v-if="DepartmentList.length > 0" + v-model="form.deptId" + placeholder="璇烽�夋嫨褰掑睘绉戝" + clearable + style="width: 200px" + filterable + > + <el-option + v-for="dict in DepartmentList" + :key="dict.deptId" + :label="dict.deptName || ''" + :value="dict.deptId" + /> + </el-select> + </el-form-item> <el-form-item label="妫�鏌ラ」鐩�" prop="proName"> <el-select v-model="form.proId" @@ -166,13 +222,14 @@ clearable > <el-option - v-for="dict in projectList" - :key="dict.proName" + v-for="(dict, index) in projectList" + :key="index" :label="dict.proName" :value="dict.proId" /> </el-select> </el-form-item> + <el-form-item label="寤鸿鏍囬" prop="title"> <el-input v-model="form.title" placeholder="璇疯緭鍏ュ悕绉版爣棰�" /> </el-form-item> @@ -184,7 +241,7 @@ > 蹇嵎鏍囩 </span> - <el-checkbox-group v-model="form.kjbq"> + <el-checkbox-group v-model="kjbq" @change="handleCheckedCitiesChange"> <el-checkbox v-for="(item, index) in dataList" :key="index" @@ -207,10 +264,15 @@ <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> - <el-dialog title="娣诲姞蹇嵎鏍囩" :visible.sync="kjbqopen" width="500px" append-to-body> - <el-form ref="form" :model="form" label-width="80px"> + <el-dialog + title="娣诲姞蹇嵎鏍囩" + :visible.sync="kjbqopen" + width="500px" + append-to-body + > + <el-form ref="form" :model="form" label-width="80px"> <el-form-item label="鍚嶇О" prop="kjbq"> - <el-input v-model="form.kjbq" placeholder="璇疯緭鍏ュ悕绉�" /> + <el-input v-model="formss.kjbq" placeholder="璇疯緭鍏ュ悕绉�" /> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> @@ -222,6 +284,7 @@ </template> <script> +import { deptTreeSelect, getDeptListByDictHospId } from "@/api/system/user"; import { listAdvice, getAdvice, @@ -230,7 +293,10 @@ updateAdvice, } from "@/api/advice/advice"; import { listProject } from "@/api/hosp/project"; -import { getTjAdviceKjbqByFl,addTjAdviceKjbq } from "@/api/system/biaoqianzidian"; +import { + getTjAdviceKjbqByFl, + addTjAdviceKjbq, +} from "@/api/system/biaoqianzidian"; import { getInfo } from "@/api/login"; export default { @@ -248,6 +314,9 @@ } }; return { + DepartmentList: [], + + deptOptions: undefined, projectList: [], // 閬僵灞� loading: true, @@ -264,6 +333,7 @@ // advice琛ㄦ牸鏁版嵁 adviceList: [], dataList: [], + kjbq: [], // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -274,11 +344,17 @@ page: 1, pageSize: 10, proName: null, + bt: null, }, // 琛ㄥ崟鍙傛暟 - form: { - kjbq:[], + form: {}, + formss: {}, + defaultProps: { + children: "children", + label: "label", }, + treeId: [], + // 琛ㄥ崟鏍¢獙 rules: { proId: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], @@ -286,18 +362,53 @@ }; }, created() { - this.getList(); - this.getlistProject(); + this.sendhospName(); + this.getDeptTree(); + }, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + + treeId(newVal, oldVal) { + if (newVal) { + this.$nextTick(() => { + document + .querySelector(".el-tree-node__children .el-tree-node__content") + .click(); + }); + } + }, }, methods: { + sendhospName() { + getDeptListByDictHospId({ + id: 2000, + }).then((res) => { + this.DepartmentList = res.data; + this.form.deptId = String(this.form.deptId); + }); + }, + // 鑺傜偣鍗曞嚮浜嬩欢 + handleNodeClick(data) { + this.queryParams.deptId = data.id; + // this.queryParams.deptId = null; + this.handleQuery(); + }, + + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + getDeptTree() { + deptTreeSelect().then((response) => { + this.deptOptions = response.data; + this.treeId.push(this.deptOptions[0].id); + this.queryParams.deptId = this.deptOptions[0].id; + }); + }, /** 鏌ヨadvice鍒楄〃 */ getList() { this.loading = true; - // let data ={ - // proName:this.queryParams.proName, - // page:this.queryParams.page, - // pageSize:this.queryParams.pageSize, - // } listAdvice(this.queryParams).then((response) => { response.data.list.forEach((item, index) => { item.newID = @@ -310,7 +421,23 @@ }, getlistProject() { listProject(this.queryParams).then((response) => { - this.projectList = response.data; + if (response.data) { + this.projectList = response.data; + } + }); + getInfo().then((res) => { + this.formss.userId = res.user.userId; + let data = { + pageNum: 1, + pageSize: 10, + userId: res.user.userId, + qyzt: 0, + }; + getTjAdviceKjbqByFl(data).then((res) => { + if (res.data) { + this.dataList = res.data.records; + } + }); }); }, // 鍙栨秷鎸夐挳 @@ -354,29 +481,23 @@ handleAdd() { this.reset(); this.title = "浣撴寤鸿淇℃伅缁存姢"; - getInfo().then((res) => { - let data = { - pageNum: 1, - pageSize: 10, - userId: res.user.userId, - qyzt: 0, - }; - getTjAdviceKjbqByFl(data).then((res) => { - if (res.data) { - this.dataList = res.data.records; - this.open = true; - console.log(this.dataList ) - } - }); - }); + this.getlistProject(); + this.form.deptId = this.queryParams.deptId; + this.open = true; }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { this.reset(); const id = row.id || this.ids; + this.kjbq = []; getAdvice(id).then((response) => { this.form = response.data; + if (response.data.kjbqz != null) { + this.kjbq = response.data.kjbqz.map(Number); + } + this.getlistProject(); this.open = true; + this.form.deptId = this.queryParams.deptId; this.title = "浣撴寤鸿淇℃伅缁存姢"; }); }, @@ -384,32 +505,35 @@ this.$refs["form"].validate((valid) => { if (valid) { if (this.form.id != null) { - updateTjAdviceKjbq(this.form).then((response) => { + updateTjAdviceKjbq(this.formss).then((response) => { this.$modal.msgSuccess("淇敼鎴愬姛"); this.kjbqopen = false; - this.getList(); + this.getlistProject(); }); } else { - addTjAdviceKjbq(this.form).then((response) => { + addTjAdviceKjbq(this.formss).then((response) => { this.$modal.msgSuccess("鏂板鎴愬姛"); this.kjbqopen = false; - this.getList(); + this.getlistProject(); }); } } }); }, + handleCheckedCitiesChange(val) {}, /** 鎻愪氦鎸夐挳 */ submitForm() { this.$refs["form"].validate((valid) => { if (valid) { if (this.form.id != null) { + this.form.kjbq = this.kjbq.toString(); updateAdvice(this.form).then((response) => { this.$modal.msgSuccess("淇敼鎴愬姛"); this.open = false; this.getList(); }); } else { + this.form.kjbq = this.kjbq.toString(); addAdvice(this.form).then((response) => { this.$modal.msgSuccess("鏂板鎴愬姛"); this.open = false; @@ -419,7 +543,7 @@ } }); }, - handlekjbq(){ + handlekjbq() { this.kjbqopen = true; }, @@ -459,4 +583,16 @@ .pag1 { width: 30%; } +.content { + width: 1000px; + height: 1000px; +} +.head-container { + width: 200px; + height: 629px; + overflow: auto; + border: 1px solid #ccc; + position: relative; +} + </style> -- Gitblit v1.8.0