postdischarge-ui/src/views/manage/template/index.vue

1065 lines
30 KiB
Vue
Raw Normal View History

2024-02-28 15:08:37 +08:00
<template>
2024-06-14 15:30:24 +08:00
<div class="app-container" ref="layout">
2024-02-28 15:08:37 +08:00
<el-row :gutter="20">
<el-col :span="5">
<div class="left" ref="box">
<div class="name">科室名称</div>
<div>
2024-07-03 10:21:31 +08:00
<el-input
v-model="name"
placeholder="请输入科室名称"
clearable
@keyup.enter.native="handleQuery"
/>
2024-02-28 15:08:37 +08:00
</div>
<div class="listitem">
2024-07-03 10:21:31 +08:00
<div
:class="itemname == null ? 'allactive' : 'all'"
@click="itemdata()"
>
2024-02-28 15:08:37 +08:00
全部
</div>
<span class="count">{{ count }}</span>
</div>
2024-07-03 10:21:31 +08:00
<div
class="listitem"
v-for="(item, index) in DepartmentoList"
:key="index"
@click="itemdata(item)"
>
2024-02-28 15:08:37 +08:00
<div :class="itemname == item.id ? 'allactive' : 'all'">
{{ item.departmentName }}
</div>
<span class="count">{{ item.countNum }}</span>
</div>
</div>
</el-col>
2024-06-14 15:30:24 +08:00
<el-col :span="19" :xs="24">
2024-06-16 15:31:29 +08:00
<div ref="topform" class="form">
2024-07-03 10:21:31 +08:00
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item
label="微信模版名称"
prop="wechatTemplateName"
label-width="100px"
>
<el-input
v-model="queryParams.wechatTemplateName"
placeholder="请输入微信模版名称"
clearable
@keyup.enter.native="handleQuery"
/>
2024-06-14 15:30:24 +08:00
</el-form-item>
<el-form-item label="模板ID" prop="templateId">
2024-07-03 10:21:31 +08:00
<el-input
v-model="queryParams.templateId"
placeholder="请输入模板ID"
clearable
@keyup.enter.native="handleQuery"
/>
2024-06-14 15:30:24 +08:00
</el-form-item>
<el-form-item>
2024-07-03 10:21:31 +08:00
<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
>
2024-06-14 15:30:24 +08:00
</el-form-item>
</el-form>
</div>
<div ref="mb8" class="mb8">
<el-row :gutter="10" class="">
<el-col :span="1.5">
2024-07-03 10:21:31 +08:00
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['manage:template:add']"
>新增微信模版</el-button
>
2024-06-14 15:30:24 +08:00
</el-col>
2024-07-03 10:21:31 +08:00
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
2024-06-14 15:30:24 +08:00
</el-row>
</div>
<div ref="table">
2024-07-03 10:21:31 +08:00
<el-table
:max-height="maxTableHeight"
v-loading="loading"
:data="templateList"
@selection-change="handleSelectionChange"
>
<el-table-column
type="index"
width="52"
align="center"
label="序号"
/>
<el-table-column
label="微信模版名称"
align="center"
prop="wechatTemplateName"
/>
2024-06-14 15:30:24 +08:00
<el-table-column label="模板ID" align="center" prop="templateId" />
2024-07-03 10:21:31 +08:00
<el-table-column
label="模板来源"
align="center"
prop="templateSource"
>
2024-06-14 15:30:24 +08:00
<template slot-scope="scope">
2024-07-03 10:21:31 +08:00
{{
scope.row.templateSource == "WE_CHAT_APPLET" ? "小程序" : ""
}}
{{
scope.row.templateSource == "WE_CHAT_OFFICIAL_ACCOUNT"
? "公众号"
: ""
}}
2024-06-14 15:30:24 +08:00
</template>
</el-table-column>
2024-07-03 10:21:31 +08:00
<el-table-column
label="适用任务类型"
align="center"
prop="suitTaskTypeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="病种名称"
align="center"
prop="diseaseTypeName"
/>
<el-table-column
prop="templateContent"
label="模板内容"
align="center"
2024-07-04 11:34:49 +08:00
:show-overflow-tooltip="true"
2024-07-03 10:21:31 +08:00
>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
2024-06-14 15:30:24 +08:00
<template slot-scope="scope">
2024-07-03 10:21:31 +08:00
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['manage:template:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['manage:template:remove']"
>删除</el-button
>
2024-06-14 15:30:24 +08:00
</template>
</el-table-column>
</el-table>
</div>
2024-06-24 14:35:52 +08:00
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" /> -->
2024-07-03 10:21:31 +08:00
<myPagination
v-show="total > 0"
:total="total"
:pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum"
@updateCPage="updateCPage"
></myPagination>
2024-02-28 15:08:37 +08:00
</el-col>
</el-row>
<!-- 添加或修改微信模板信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
2024-03-28 09:31:40 +08:00
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
2024-02-28 15:08:37 +08:00
<el-form-item label="微信模板名称" prop="wechatTemplateName">
2024-07-03 10:21:31 +08:00
<el-input
v-model="form.wechatTemplateName"
placeholder="请输入微信模板名称"
/>
2024-02-28 15:08:37 +08:00
</el-form-item>
2024-07-03 10:21:31 +08:00
<el-form-item
label="模板ID"
prop="templateId"
v-if="title == '修改微信模板'"
>
<el-input
v-model="form.templateId"
placeholder="请输入模板ID"
onKeyUp="value=value.replace(/[\W]/g,'')"
disabled
/>
2024-02-28 15:08:37 +08:00
</el-form-item>
2024-03-11 15:21:26 +08:00
<el-form-item label="微信排序" prop="templateSort">
2024-07-03 10:21:31 +08:00
<el-input-number
v-model="form.templateSort"
controls-position="right"
:min="0"
placeholder="请输入微信排序"
style="width: 350px"
/>
2024-03-11 15:21:26 +08:00
</el-form-item>
2024-02-28 15:08:37 +08:00
<el-form-item label="模板内容" prop="templateContent">
2024-07-03 10:21:31 +08:00
<el-input
v-model="form.templateContent"
placeholder="请输入模板内容"
type="textarea"
maxlength="300"
:rows="10"
/>
2024-02-28 15:08:37 +08:00
<!-- <editor v-model="form.templateContent" :min-height="192"/> -->
</el-form-item>
<el-form-item label="模板来源" prop="templateSource">
2024-07-03 10:21:31 +08:00
<el-select
v-model="form.templateSource"
placeholder="请选择"
style="width: 350px"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
2024-02-28 15:08:37 +08:00
</el-option>
</el-select>
</el-form-item>
<el-form-item label="适用数据类型" prop="suitTaskTypeId">
2024-07-03 10:21:31 +08:00
<el-select
v-model="form.suitTaskTypeIds"
placeholder="请选择"
style="width: 350px"
multiple
>
<el-option
v-for="item in type"
:key="item.dictCode"
:label="item.dictLabel"
:value="item.dictCode"
>
2024-02-28 15:08:37 +08:00
</el-option>
</el-select>
</el-form-item>
<el-form-item label="科室名称" prop="departmentId">
2024-07-03 10:21:31 +08:00
<el-button
type=""
v-if="departmentName == '请选择科室'"
@click="clickinnerVisible()"
style="
2024-03-28 09:31:40 +08:00
width: 350px;
2024-02-28 15:08:37 +08:00
text-align: left;
height: 36px;
color: #c0c4cc;
overflow: hidden;
2024-07-03 10:21:31 +08:00
"
>{{ departmentName }}</el-button
>
<el-button
@click="clickinnerVisible()"
type=""
v-else
style="
2024-03-28 09:31:40 +08:00
width: 350px;
2024-02-28 15:08:37 +08:00
text-align: left;
height: 36px;
padding-left: -10px;
overflow: hidden;
2024-07-03 10:21:31 +08:00
"
>{{ departmentName }}</el-button
>
2024-02-28 15:08:37 +08:00
</el-form-item>
<el-form-item label="病种名称" prop="diseaseTypeName">
2024-07-03 10:21:31 +08:00
<el-button
type=""
v-if="diseaseTypeName == '请选择病种'"
@click="clickdisease()"
style="
2024-03-28 09:31:40 +08:00
width: 350px;
2024-02-28 15:08:37 +08:00
text-align: left;
height: 36px;
color: #c0c4cc;
overflow: hidden;
2024-07-03 10:21:31 +08:00
"
>{{ diseaseTypeName }}</el-button
>
<el-button
@click="clickdisease()"
type=""
v-else
style="
2024-03-28 09:31:40 +08:00
width: 350px;
2024-02-28 15:08:37 +08:00
text-align: left;
height: 36px;
padding-left: -10px;
overflow: hidden;
2024-07-03 10:21:31 +08:00
"
>{{ diseaseTypeName }}</el-button
>
2024-02-28 15:08:37 +08:00
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
2024-02-29 17:15:23 +08:00
<!-- 科室弹框 -->
2024-07-03 10:21:31 +08:00
<el-dialog
title=""
:visible.sync="innerVisibleshow"
width="1000px"
append-to-body
:before-close="innerVisiblecancel"
>
<el-form
ref="queryForm"
:model="informationqueryParams"
:rules="rules"
label-width="80px"
:inline="true"
>
2024-02-28 15:08:37 +08:00
<el-form-item label="科室名称" prop="departmentName" label-width="120">
2024-07-03 10:21:31 +08:00
<el-input
v-model="informationqueryParams.departmentName"
placeholder="请输入科室名称"
clearable
/>
2024-02-28 15:08:37 +08:00
</el-form-item>
<el-form-item>
2024-07-03 10:21:31 +08:00
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="informationInfoinfo"
>搜索</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="addresetQuerylist"
>重置</el-button
>
2024-02-28 15:08:37 +08:00
</el-form-item>
</el-form>
2024-07-03 10:21:31 +08:00
<el-table
:data="infolist"
@cell-dblclick="nurseclick"
v-loading="loading"
>
2024-02-28 15:08:37 +08:00
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
2024-07-03 10:21:31 +08:00
<el-button
type="primary"
style="width: 15px; height: 15px"
v-if="form.departmentId == scope.row.id"
circle
@click="nurseclick(scope.row)"
></el-button>
<el-button
v-else
style="width: 15px; height: 15px"
circle
@click="nurseclick(scope.row)"
></el-button>
2024-02-28 15:08:37 +08:00
</template>
</el-table-column>
2024-07-03 10:21:31 +08:00
<el-table-column
property="departmentName"
label="科室名称"
align="center"
:show-overflow-tooltip="true"
>
2024-02-28 15:08:37 +08:00
</el-table-column>
</el-table>
2024-07-03 10:21:31 +08:00
<myPagination
v-show="totaldepartment > 0"
:total="totaldepartment"
:pageSize="informationqueryParams.pageSize"
:indexFromWrap="informationqueryParams.pageNum"
@updateCPage="updateCPagetwo"
></myPagination>
2024-06-24 14:35:52 +08:00
<!-- <pagination v-show="totaldepartment > 0" :total="totaldepartment" :page.sync="informationqueryParams.pageNum"
:limit.sync="informationqueryParams.pageSize" @pagination="informationInfoinfo" /> -->
2024-02-28 15:08:37 +08:00
</el-dialog>
2024-02-29 17:15:23 +08:00
<!-- 病种弹框 -->
2024-07-03 10:21:31 +08:00
<el-dialog
title=""
:visible.sync="diseaseshowst"
width="1000px"
append-to-body
:before-close="canceldiseases"
>
<el-form
ref="queryForm"
:model="querydisease"
:rules="rules"
label-width="80px"
:inline="true"
>
2024-03-06 11:56:58 +08:00
<el-form-item label="病种名称" prop="diseaseTypeName" label-width="120">
2024-07-03 10:21:31 +08:00
<el-input
v-model="querydisease.diseaseTypeName"
placeholder="请输入病种名称"
clearable
/>
2024-02-28 15:08:37 +08:00
</el-form-item>
<el-form-item>
2024-07-03 10:21:31 +08:00
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="infodisease"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetdisease"
>重置</el-button
>
2024-02-28 15:08:37 +08:00
</el-form-item>
</el-form>
2024-07-03 10:21:31 +08:00
<el-table
:data="listdisease"
@cell-dblclick="nurseclickdisease"
v-loading="loading"
>
2024-02-28 15:08:37 +08:00
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
2024-07-03 10:21:31 +08:00
<el-button
type="primary"
style="width: 15px; height: 15px"
v-if="form.diseaseTypeId == scope.row.id"
circle
@click="nurseclickdisease(scope.row)"
></el-button>
<el-button
v-else
style="width: 15px; height: 15px"
circle
@click="nurseclickdisease(scope.row)"
></el-button>
2024-02-28 15:08:37 +08:00
</template>
</el-table-column>
2024-07-03 10:21:31 +08:00
<el-table-column
property="diseaseTypeName"
label="病种名称"
align="center"
:show-overflow-tooltip="true"
>
2024-02-28 15:08:37 +08:00
</el-table-column>
</el-table>
2024-06-24 14:35:52 +08:00
<!-- <pagination v-show="diseasetotal > 0" :total="diseasetotal" :page.sync="querydisease.pageNum"
:limit.sync="querydisease.pageSize" @pagination="infodisease" /> -->
2024-07-03 10:21:31 +08:00
<myPagination
v-show="diseasetotal > 0"
:total="diseasetotal"
:pageSize="querydisease.pageSize"
:indexFromWrap="querydisease.pageNum"
@updateCPage="updateCPagethree"
></myPagination>
2024-02-28 15:08:37 +08:00
</el-dialog>
</div>
</template>
<script>
2024-07-03 10:21:31 +08:00
import {
listTemplate,
getTemplate,
delTemplate,
addTemplate,
updateTemplate,
listWechatTemplateNum,
typelist,
} from "@/api/manage/template";
2024-02-29 17:15:23 +08:00
import { department, listDisease } from "@/api/manage/script";
2024-02-28 15:08:37 +08:00
export default {
name: "Template",
data() {
2024-04-19 13:32:26 +08:00
//验证身份证
var isCardId = (rule, value, callback) => {
// console.log(value.length,rule)
// console.log(this.form.templateSort.length,'90')
if (value == null) {
callback(new Error("微信排序不能为空"));
} else {
const regex = /^\d{1,10}$/; // 正则表达式,限制最多十位数字
const isValid = regex.test(this.inputValue);
// const reg =
// /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/;
// const card = reg.test(value);
if (!isValid) {
callback(new Error("输入不合法,请输入最多十位数字!"));
} else {
callback();
}
}
};
2024-02-28 15:08:37 +08:00
return {
2024-04-19 13:32:26 +08:00
obj: null,
2024-07-03 10:21:31 +08:00
count: "", //全部
2024-06-14 15:30:24 +08:00
maxTableHeight: undefined,
2024-02-28 15:08:37 +08:00
itemname: null,
departmentName: null,
diseaseTypeName: null,
2024-07-03 10:21:31 +08:00
name: "",
2024-02-28 15:08:37 +08:00
departmentId: null,
2024-07-03 10:21:31 +08:00
DepartmentoList: [], //左侧数组
2024-02-28 15:08:37 +08:00
// 左侧传值
querydepartmen: {
departmentName: "",
// pageNum: 1,
// pageSize: 10,
},
2024-07-03 10:21:31 +08:00
options: [
{
value: "WE_CHAT_APPLET",
label: "小程序",
},
{
value: "WE_CHAT_OFFICIAL_ACCOUNT",
label: "公众号",
},
],
type: [], //适用数据类型
2024-02-28 15:08:37 +08:00
innerVisibleshow: false, //科室弹框
// 科室
informationqueryParams: {
pageNum: 1,
pageSize: 10,
departmentName: null,
},
infolist: [],
totaldepartment: 0,
2024-07-03 10:21:31 +08:00
diseaseshowst: false, //病种弹框
2024-02-28 15:08:37 +08:00
querydisease: {
pageNum: 1,
pageSize: 10,
2024-04-19 13:32:26 +08:00
diseaseTypeName: null,
departmentId: null,
2024-02-28 15:08:37 +08:00
},
listdisease: [],
diseasetotal: 0,
optionsDisease: [],
// 遮罩层
loading: false,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 微信模板信息表格数据
templateList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
2024-02-29 17:15:23 +08:00
wechatTemplateName: null,
2024-02-28 15:08:37 +08:00
departmentId: null,
departmentName: null,
diseaseTypeId: null,
diseaseTypeName: null,
templateId: null,
templateContent: null,
templateSource: null,
templateSort: null,
templateRemark: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
2024-03-11 15:21:26 +08:00
templateSort: [
2024-07-03 10:21:31 +08:00
{ required: true, message: "111111111111", trigger: "blur" },
2024-03-11 15:21:26 +08:00
],
2024-02-28 15:08:37 +08:00
wechatTemplateName: [
2024-07-03 10:21:31 +08:00
{ required: true, message: "微信模板名称不能为空", trigger: "blur" },
2024-02-28 15:08:37 +08:00
],
2024-04-11 17:24:37 +08:00
// templateId: [
// { required: true, message: "模板ID不能为空", trigger: "blur" }
// ],
2024-02-28 15:08:37 +08:00
templateSource: [
2024-07-03 10:21:31 +08:00
{ required: true, message: "模板来源不能为空", trigger: "blur" },
2024-02-28 15:08:37 +08:00
],
dictCode: [
2024-07-03 10:21:31 +08:00
{ required: true, message: "适用数据类型不能为空", trigger: "blur" },
2024-02-28 15:08:37 +08:00
],
departmentId: [
2024-07-03 10:21:31 +08:00
{ required: true, message: "所属科室名称不能为空", trigger: "blur" },
2024-02-28 15:08:37 +08:00
],
2024-07-03 10:21:31 +08:00
},
2024-02-28 15:08:37 +08:00
};
},
watch: {
name(val) {
2024-07-03 10:21:31 +08:00
this.querydepartmen.departmentName = val;
2024-02-28 15:08:37 +08:00
this.Departmentlist();
2024-04-19 13:32:26 +08:00
},
2024-07-03 10:21:31 +08:00
"form.templateSort"(val) {
2024-06-13 15:49:26 +08:00
if (val) {
2024-07-03 10:21:31 +08:00
var name = "";
name = val.toString();
this.obj = name.split("");
2024-06-13 15:49:26 +08:00
// if (this.obj.length > 10) {
// this.$message({
// type: "error",
// message: "微信排序最大长度为十位,请正确输入!"
// });
// }
2024-04-19 13:32:26 +08:00
}
2024-07-03 10:21:31 +08:00
},
2024-02-28 15:08:37 +08:00
},
created() {
this.getList();
this.Departmentlist();
this.typelistdata();
},
2024-06-14 15:30:24 +08:00
mounted() {
2024-07-03 10:21:31 +08:00
this.getMaxTableHeight();
this.screenChange();
2024-06-14 15:30:24 +08:00
},
2024-02-28 15:08:37 +08:00
methods: {
/** 查询微信模板信息列表 */
getList() {
this.loading = true;
2024-07-03 10:21:31 +08:00
listTemplate(this.queryParams).then((response) => {
2024-02-28 15:08:37 +08:00
this.templateList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 适用任务类型
2024-02-29 17:15:23 +08:00
typelistdata() {
2024-07-03 10:21:31 +08:00
var dictType = "suit_task_type";
typelist(dictType).then((response) => {
this.type = response.data;
});
2024-02-28 15:08:37 +08:00
},
// 类型点击事件
2024-02-29 17:15:23 +08:00
change(e) {
// this.form.suitTaskTypeName=this.type.find(f=> f.dictCode==e).dictLabel
2024-02-28 15:08:37 +08:00
},
// 左侧科室列表
Departmentlist() {
this.loading = true;
2024-07-03 10:21:31 +08:00
listWechatTemplateNum(this.querydepartmen).then((response) => {
2024-02-28 15:08:37 +08:00
this.DepartmentoList = response.data;
2024-03-06 09:53:08 +08:00
let sum = 0;
this.DepartmentoList.forEach((item) => {
if (item.countNum != null) {
2024-07-03 10:21:31 +08:00
console.log(item.countNum);
2024-03-06 09:53:08 +08:00
sum += item.countNum;
}
this.count = sum;
});
2024-02-28 15:08:37 +08:00
this.loading = false;
});
},
// 左侧科室
itemdata(item) {
if (item) {
2024-07-03 10:21:31 +08:00
this.itemname = item.id;
this.departmentName = item.departmentName;
2024-02-28 15:08:37 +08:00
this.loading = true;
2024-07-03 10:21:31 +08:00
this.queryParams.departmentId = this.itemname;
this.getList();
2024-02-28 15:08:37 +08:00
} else {
2024-07-03 10:21:31 +08:00
this.queryParams.departmentId = "";
this.itemname = null;
this.getList();
2024-02-28 15:08:37 +08:00
}
},
2024-02-29 17:15:23 +08:00
// 点击科室
clickinnerVisible() {
2024-02-28 15:08:37 +08:00
this.innerVisibleshow = true;
if (this.itemname) {
2024-07-03 10:21:31 +08:00
this.informationqueryParams.departmentId = this.itemname;
2024-02-28 15:08:37 +08:00
} else {
2024-07-03 10:21:31 +08:00
this.informationqueryParams.departmentId = null;
2024-02-28 15:08:37 +08:00
}
this.informationInfoinfo();
},
// 科室列表
informationInfoinfo() {
department(this.informationqueryParams).then((response) => {
this.infolist = response.rows;
this.totaldepartment = response.total;
this.loading = false;
});
// this.informationqueryParams.page = 1;
},
// 科室名称重置
addresetQuerylist() {
this.informationqueryParams = {
pageNum: 1,
pageSize: 10,
};
this.informationInfoinfo();
},
innerVisiblecancel() {
this.innerVisibleshow = false;
},
// 科室名称圆点按钮
nurseclick(row) {
2024-05-08 17:59:20 +08:00
this.form.departmentId = row.id;
2024-02-28 15:08:37 +08:00
this.departmentName = row.departmentName;
2024-07-03 10:21:31 +08:00
this.form.diseaseTypeId = "";
this.diseaseTypeName = "请选择病种";
2024-02-28 15:08:37 +08:00
this.innerVisibleshow = false;
},
2024-02-29 17:15:23 +08:00
// 病种列表
infodisease() {
2024-02-28 15:08:37 +08:00
listDisease(this.querydisease).then((response) => {
this.listdisease = response.rows;
this.diseasetotal = response.total;
this.loading = false;
});
},
// 点击病种
clickdisease() {
2024-07-03 10:21:31 +08:00
if (this.departmentName == "请选择科室") {
2024-02-28 15:08:37 +08:00
this.$modal.msgError("请先选择科室");
} else {
this.diseaseshowst = true;
2024-07-03 10:21:31 +08:00
this.querydisease.departmentId = this.form.departmentId;
this.infodisease();
2024-02-28 15:08:37 +08:00
}
},
// 病种名称圆点按钮
nurseclickdisease(row) {
2024-05-09 13:51:29 +08:00
this.form.diseaseTypeId = row.id;
2024-02-28 15:08:37 +08:00
this.diseaseTypeName = row.diseaseTypeName;
this.diseaseshowst = false;
},
// 重置
resetdisease() {
querydisease = {
pageNum: 1,
pageSize: 10,
};
2024-07-03 10:21:31 +08:00
this.infodisease();
2024-02-28 15:08:37 +08:00
},
canceldiseases() {
this.diseaseshowst = false;
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
2024-04-19 13:32:26 +08:00
templateSort: undefined,
2024-02-28 15:08:37 +08:00
departmentId: null,
2024-02-29 17:15:23 +08:00
dictCode: null,
2024-02-28 15:08:37 +08:00
departmentName: null,
diseaseTypeId: null,
diseaseTypeName: null,
templateId: null,
templateContent: null,
templateSource: null,
templateRemark: null,
createBy: null,
createTime: null,
updateBy: null,
2024-02-29 17:15:23 +08:00
updateTime: null,
suitTaskTypeIds: [],
2024-02-28 15:08:37 +08:00
};
2024-02-29 17:15:23 +08:00
2024-02-28 15:08:37 +08:00
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.departmentId = null;
this.itemname = null;
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
2024-07-03 10:21:31 +08:00
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
2024-02-28 15:08:37 +08:00
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
if (this.itemname) {
2024-07-03 10:21:31 +08:00
this.form.departmentName = this.departmentName;
this.form.departmentId = this.itemname;
2024-02-29 17:15:23 +08:00
} else if (this.itemname == null) {
2024-07-03 10:21:31 +08:00
this.departmentName = "请选择科室";
} else {
this.departmentName = "请选择科室";
2024-02-28 15:08:37 +08:00
}
2024-07-03 10:21:31 +08:00
this.diseaseTypeName = "请选择病种";
2024-02-28 15:08:37 +08:00
this.open = true;
this.title = "新增微信模板";
},
2024-02-29 17:15:23 +08:00
/** 修改按钮操作 */
handleUpdate(row) {
2024-03-06 09:53:08 +08:00
this.reset();
2024-07-03 10:21:31 +08:00
const id = row.id || this.ids;
2024-03-06 09:53:08 +08:00
// this.getDisease();
this.typelistdata();
2024-07-03 10:21:31 +08:00
getTemplate(id).then((response) => {
2024-03-06 09:53:08 +08:00
this.form = response.data;
2024-07-03 10:21:31 +08:00
this.form.suitTaskTypeIds = response.data.suitTaskTypeIds;
if (
!response.data.diseaseTypeName ||
response.data.diseaseTypeName == ""
) {
this.diseaseTypeName = "请选择病种";
2024-05-09 14:34:00 +08:00
} else {
2024-07-03 10:21:31 +08:00
this.diseaseTypeName = response.data.diseaseTypeName;
2024-05-09 14:34:00 +08:00
}
2024-07-03 10:21:31 +08:00
this.departmentName = response.data.departmentName;
2024-04-19 13:32:26 +08:00
if (!this.form.templateSort) {
2024-07-03 10:21:31 +08:00
this.form.templateSort = undefined;
2024-03-26 14:55:54 +08:00
}
2024-03-06 09:53:08 +08:00
this.open = true;
2024-04-11 17:24:37 +08:00
this.title = "修改微信模板";
2024-03-06 09:53:08 +08:00
});
2024-06-24 14:35:52 +08:00
},
updateCPage(index, size) {
2024-07-03 10:21:31 +08:00
this.queryParams.pageNum = index;
this.queryParams.pageSize = size;
2024-06-24 14:35:52 +08:00
this.getList();
},
updateCPagetwo(index, size) {
2024-07-03 10:21:31 +08:00
this.informationqueryParams.pageNum = index;
this.informationqueryParams.pageSize = size;
2024-06-24 14:35:52 +08:00
this.informationInfoinfo();
},
updateCPagethree(index, size) {
2024-07-03 10:21:31 +08:00
this.querydisease.pageNum = index;
this.querydisease.pageSize = size;
2024-06-24 14:35:52 +08:00
this.infodisease();
2024-02-28 15:08:37 +08:00
},
2024-02-29 17:15:23 +08:00
/** 提交按钮 */
submitForm() {
2024-07-03 10:21:31 +08:00
console.log(this.form);
2024-04-19 13:32:26 +08:00
// return
2024-07-03 10:21:31 +08:00
this.$refs["form"].validate((valid) => {
2024-02-28 15:08:37 +08:00
if (valid) {
2024-04-19 13:32:26 +08:00
if (this.obj.length > 10) {
2024-06-13 15:49:26 +08:00
this.$message({
type: "error",
2024-07-03 10:21:31 +08:00
message: "微信排序最大长度为十位,请正确输入!",
2024-06-13 15:49:26 +08:00
});
} else {
if (this.form.id != null) {
2024-07-03 10:21:31 +08:00
this.form.departmentName = this.departmentName;
this.form.diseaseTypeName = this.diseaseTypeName;
2024-06-13 15:49:26 +08:00
if (this.diseaseTypeName == "请选择病种") {
2024-07-03 10:21:31 +08:00
this.form.diseaseTypeName = null;
2024-05-09 11:16:26 +08:00
} else {
2024-07-03 10:21:31 +08:00
this.form.diseaseTypeName = this.diseaseTypeName;
2024-05-09 11:16:26 +08:00
}
2024-07-03 10:21:31 +08:00
console.log(this.form, "this.form");
2024-05-09 11:16:26 +08:00
// return
2024-07-03 10:21:31 +08:00
updateTemplate(this.form).then((response) => {
2024-06-13 15:49:26 +08:00
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
this.Departmentlist();
});
} else {
2024-04-19 13:32:26 +08:00
if (this.diseaseTypeName == "请选择病种") {
2024-07-03 10:21:31 +08:00
this.form.diseaseTypeName = null;
2024-04-19 13:32:26 +08:00
} else {
2024-07-03 10:21:31 +08:00
this.form.diseaseTypeName = this.diseaseTypeName;
2024-04-19 13:32:26 +08:00
}
if (this.itemname) {
2024-07-03 10:21:31 +08:00
this.form.departmentName = this.departmentName;
this.form.departmentId = this.itemname;
2024-04-19 13:32:26 +08:00
} else {
2024-07-03 10:21:31 +08:00
this.form.departmentName = this.departmentName;
2024-04-19 13:32:26 +08:00
}
2024-07-03 10:21:31 +08:00
addTemplate(this.form).then((response) => {
2024-04-19 13:32:26 +08:00
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
this.Departmentlist();
});
2024-02-28 15:08:37 +08:00
}
2024-06-13 15:49:26 +08:00
}
2024-02-28 15:08:37 +08:00
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
2024-07-03 10:21:31 +08:00
this.$modal
.confirm("是否确认删除微信模板信息?")
.then(function () {
return delTemplate(ids);
})
.then(() => {
this.getList();
this.Departmentlist();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
2024-02-28 15:08:37 +08:00
},
/** 导出按钮操作 */
handleExport() {
2024-07-03 10:21:31 +08:00
this.download(
"manage/template/export",
{
...this.queryParams,
},
`template_${new Date().getTime()}.xlsx`
);
2024-06-14 15:30:24 +08:00
},
// 获取表格最高高度
getMaxTableHeight() {
2024-07-03 10:21:31 +08:00
const windowInnerHeight = window.innerHeight; // 屏幕可视高度
const layoutDiv = this.$refs.layout;
const formDiv = this.$refs.topform;
const mb8Div = this.$refs.mb8;
2024-06-14 15:30:24 +08:00
this.maxTableHeight =
2024-07-03 10:21:31 +08:00
windowInnerHeight -
134 -
2024-06-14 15:30:24 +08:00
this.getBoxPadding(layoutDiv) -
this.getBoxHeight(mb8Div) -
2024-07-03 10:21:31 +08:00
this.getBoxHeight(formDiv);
2024-06-14 15:30:24 +08:00
},
// 屏幕resize监听
screenChange() {
// 屏幕resize监听事件一旦屏幕宽高发生变化就会执行resize
2024-07-03 10:21:31 +08:00
window.addEventListener("resize", this.getMaxTableHeight, true);
2024-06-14 15:30:24 +08:00
// 将屏幕监听事件移除
// 这步是必须的。离开页面时不移除,再返回,或者进入到别的有相同元素的页面会报错
// 或者将这里的方法直接写在beforeDestroy函数中也可以
2024-07-03 10:21:31 +08:00
this.$once("hook:beforeDestroy", () => {
window.removeEventListener("resize", this.getMaxTableHeight, true);
});
2024-06-14 15:30:24 +08:00
},
2024-07-03 10:21:31 +08:00
},
2024-02-28 15:08:37 +08:00
};
</script>
2024-03-26 10:59:35 +08:00
<style lang="scss" scoped>
2024-07-03 10:21:31 +08:00
::v-deep.el-table td.el-table__cell div {
display: -webkit-box;
text-overflow: ellipsis;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
::v-deeep.el-textarea__inner {
height: 200px;
}
2024-04-19 13:32:26 +08:00
::v-deep .el-input-number .el-input__inner {
2024-03-11 15:21:26 +08:00
text-align: left;
}
2024-06-13 15:49:26 +08:00
2024-06-24 14:35:52 +08:00
::v-deep .el-dialog__body {
padding-bottom: 60px !important;
}
2024-02-28 15:08:37 +08:00
.left {
2024-06-14 15:30:24 +08:00
height: calc(100vh - 119px);
2024-02-28 15:08:37 +08:00
overflow: auto;
2024-06-13 15:49:26 +08:00
2024-02-28 15:08:37 +08:00
.name {
font-weight: 700;
margin-bottom: 10px;
}
2024-06-13 15:49:26 +08:00
2024-02-28 15:08:37 +08:00
.listitem {
width: 100%;
height: 50px;
border-bottom: 1px solid #dcdfe6;
2024-06-13 15:49:26 +08:00
2024-02-28 15:08:37 +08:00
.count {
display: inline-block;
position: relative;
// right: -172px;
left: 210px;
color: #a4a6aa;
top: -35px;
font-size: 13px;
}
2024-06-13 15:49:26 +08:00
2024-02-28 15:08:37 +08:00
.all {
height: 50px;
line-height: 50px;
padding-left: 13px;
}
2024-06-13 15:49:26 +08:00
2024-02-28 15:08:37 +08:00
.allactive {
background: #e8f4ff;
height: 50px;
line-height: 50px;
padding-left: 13px;
border-left: 3px solid #4d9de7;
}
}
}
2024-06-13 15:49:26 +08:00
2024-02-28 15:08:37 +08:00
.button {
display: inline-block;
position: relative;
left: 20px;
top: -11px;
}
2024-06-14 15:30:24 +08:00
.app-container {
padding: 20px 0 0 20px !important;
}
::v-deep .el-row {
height: 100% !important;
}
2024-02-28 15:08:37 +08:00
</style>