| | |
| | | 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" |
| | |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | icon="el-icon-upload2" |
| | | size="mini" |
| | | @click="handleImport" |
| | | >导入 |
| | |
| | | ></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" |
| | | <el-row :gutter="20" style="display: flex"> |
| | | <el-col :span="4" :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-table |
| | | v-loading="loading" |
| | | :data="advicerulesList" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <!-- <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-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> |
| | | |
| | | <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" |
| | | > |
| | | <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> |
| | | </el-row> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | @pagination="getListByXmId" |
| | | /> |
| | | |
| | | <!-- 添加或修改体检项目建议规则新表对话框 --> |
| | |
| | | <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> |
| | |
| | | /> |
| | | </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" |
| | | /> |
| | |
| | | placeholder="请输入异常标志" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="疾病" prop="sfjb"> |
| | | <el-checkbox v-model="form.sfjb" true-label="是" false-label="否"> |
| | | </el-checkbox> |
| | |
| | | <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 |
| | |
| | | delAdvicerules, |
| | | addAdvicerules, |
| | | updateAdvicerules, |
| | | getTjProAdvicerulesKsList, |
| | | } from "@/api/hosp/advicerules"; |
| | | import { listAdvice } from "@/api/advice/advice"; |
| | | import { getToken } from "@/utils/auth"; |
| | |
| | | |
| | | export default { |
| | | name: "Advicerules", |
| | | dicts: ["sys_user_sex"], |
| | | data() { |
| | | return { |
| | | // 遮罩层 |
| | |
| | | // 体检项目建议规则新表表格数据 |
| | | advicerulesList: [], |
| | | adviceList: [], |
| | | deptOptions: [], |
| | | treeId: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | xmmc: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | key: "", |
| | |
| | | businessName: "exampleBusiness", // 示例业务名 |
| | | objs: {}, |
| | | departmentOptions: [], |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | }, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | |
| | | sfcjb: null, |
| | | sfmxb: null, |
| | | sfzdjb: null, |
| | | sfzdjb: null, |
| | | }, |
| | | queryParam1: { |
| | | page: 1, |
| | |
| | | pageSize: 10, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | form: { |
| | | xb: "2", |
| | | }, |
| | | // 表单校验 |
| | | rules: {}, |
| | | upload: { |
| | |
| | | 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; |
| | |
| | | createBy: null, |
| | | updateBy: null, |
| | | deleted: null, |
| | | xb: "2", |
| | | }; |
| | | this.resetForm("form"); |
| | | if (this.$refs.form) { |
| | | this.$refs.form.resetFields(); |
| | | } |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | |
| | | 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) { |
| | |
| | | |
| | | /* 弹框确定按钮 */ |
| | | 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); |
| | |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "添加体检项目建议规则新表"; |
| | | deptTreeSelect().then((response) => { |
| | | this.departmentOptions = response.data[0].children; |
| | | }); |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | |
| | | 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中没有主键值,则使用this.ids |
| | | const pkValue = row.id || this.ids; // 获取主键值,如果row中没有主键值,则使用this.ids |
| | | this.$modal |
| | | .confirm(`是否确认删除${functionName}编号为"${pkValue}"的数据项?`) |
| | | .confirm(`是否确认删除"${pkValue}"的数据项?`) |
| | | .then(() => { |
| | | return delAdvicerules(pkValue); // 调用删除接口,传入主键值 |
| | | }) |
| | |
| | | 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({ |
| | |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .scrollable-container { |
| | | width: 260px; |
| | | /* 设置容器的宽度 */ |
| | | height: 629px; |
| | | /* 设置容器的高度 */ |
| | | overflow: auto; |
| | | /* 允许内容溢出时显示滚动条 */ |
| | | border: 1px solid #ccc; |
| | | /* 可选:添加边框以更好地显示容器 */ |
| | | position: relative; |
| | | /* 可选:使容器内的绝对定位元素能够正确显示 */ |
| | | } |
| | | |
| | | .content { |
| | | width: 1000px; |
| | | /* 设置内容的宽度,以触发水平滚动条 */ |
| | | height: 1000px; |
| | | /* 设置内容的高度,以触发垂直滚动条 */ |
| | | } |
| | | </style> |