From 99b062eeca471bdcbfcacd88e308fab9972cd6ec Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 19 八月 2025 14:21:33 +0800
Subject: [PATCH] 展示优化
---
src/views/followvisit/outpatient/index.vue | 595 ++++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 360 insertions(+), 235 deletions(-)
diff --git a/src/views/followvisit/outpatient/index.vue b/src/views/followvisit/outpatient/index.vue
index 3b969de..54d3da6 100644
--- a/src/views/followvisit/outpatient/index.vue
+++ b/src/views/followvisit/outpatient/index.vue
@@ -12,12 +12,12 @@
label-width="98px"
>
<el-form-item label="浠诲姟鍚嶇О">
- <el-input v-model="topqueryParams.name"></el-input>
+ <el-input v-model="topqueryParams.taskName"></el-input>
</el-form-item>
- <el-form-item label="瀹℃牳浜�">
- <el-input v-model="topqueryParams.name"></el-input>
+ <el-form-item label="鍙戣捣浜�">
+ <el-input v-model="topqueryParams.createBy"></el-input>
</el-form-item>
- <el-form-item label="瀹℃牳鏃堕棿">
+ <!-- <el-form-item label="瀹℃牳鏃堕棿">
<el-date-picker
v-model="dateRange"
style="width: 240px"
@@ -27,31 +27,14 @@
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡"
></el-date-picker>
- </el-form-item>
- <el-form-item label="闅忚绫诲瀷" prop="status">
- <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in topicoptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="妯$増" prop="status">
- <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in topicoptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
+ </el-form-item> -->
+
+ <el-form-item label="妯℃澘鍚嶇О" prop="status">
+ <el-input v-model="topqueryParams.templatename"></el-input>
+
</el-form-item>
<el-form-item label="闂ㄨ瘖闅忚鐘舵��" prop="status">
- <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
+ <el-select v-model="topqueryParams.sendstate" placeholder="璇烽�夋嫨">
<el-option
v-for="item in topicoptions"
:key="item.value"
@@ -83,41 +66,16 @@
icon="el-icon-plus"
size="medium"
@click="handleAdd"
- v-hasPermi="['system:user:add']"
>鏂板</el-button
>
</el-col>
- <el-col :span="1.5">
- <el-button
- type="success"
- plain
- icon="el-icon-edit"
- size="medium"
- :disabled="single"
- @click="handleUpdate"
- v-hasPermi="['system:user:edit']"
- >淇敼</el-button
- >
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="danger"
- plain
- icon="el-icon-delete"
- size="medium"
- :disabled="multiple"
- @click="handleDelete"
- v-hasPermi="['system:user:remove']"
- >鍒犻櫎</el-button
- >
- </el-col>
- <el-col :span="19">
+ <!-- <el-col :span="1.5">
<div class="documentf">
<div class="document">
<el-button
type="warning"
plain
- icon="el-icon-download"
+ icon="el-icon-upload2"
size="medium"
@click="handleExport"
v-hasPermi="['system:user:export']"
@@ -125,14 +83,81 @@
>
</div>
</div>
+ </el-col> -->
+ <!-- <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="success"
+ plain
+ icon="el-icon-download"
+ size="medium"
+ @click="toleadExport"
+ v-hasPermi="['system:user:export']"
+ >瀵煎叆</el-button
+ >
+ </div>
+ </div>
</el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="info"
+ icon="el-icon-refresh"
+ size="medium"
+ @click="TaskReset"
+ v-hasPermi="['system:user:export']"
+ >浠诲姟閲嶇疆</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="success"
+ icon="el-icon-position"
+ size="medium"
+ @click="AllStarted"
+ v-hasPermi="['system:user:export']"
+ >鍏ㄩ儴寮�濮�</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="warning"
+ icon="el-icon-remove"
+ size="medium"
+ @click="AllStop"
+ v-hasPermi="['system:user:export']"
+ >鍏ㄩ儴鍋滄</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="primary"
+ icon="el-icon-remove"
+ size="medium"
+ @click="Sendtimesetting"
+ v-hasPermi="['system:user:export']"
+ >鍙戦�佹椂闂磋缃�</el-button
+ >
+ </div>
+ </div>
+ </el-col> -->
+
<!-- <el-col :span="1.5"> </el-col> -->
</el-row>
- <!-- <right-toolbar
- :showSearch.sync="showSearch"
- @queryTable="getList"
- :columns="columns"
- ></right-toolbar> -->
<el-table
v-loading="loading"
:data="userList"
@@ -141,128 +166,146 @@
<el-table-column type="selection" width="50" align="center" />
<el-table-column
label="搴忓彿"
+ fixed
align="center"
- key="userId"
- prop="userId"
+ key="id"
+ prop="id"
/>
+ <el-table-column
+ label="濮撳悕"
+ fixed
+ align="center"
+ key="sendname"
+ prop="sendname"
+ />
+
+ <el-table-column
+ label="鐥呭巻鍙�"
+ align="center"
+ sortable
+ key="medicalRecordNo"
+ prop="medicalRecordNo"
+ width="120"
+ />
+ <el-table-column
+ label="骞撮緞"
+ align="center"
+ key="age"
+ prop="age"
+ />
+ <el-table-column
+ label="绉戝"
+ align="center"
+ key="deptname"
+ prop="deptname"
+ width="120"
+ >
+ </el-table-column>
+
+ <el-table-column
+ label="鐤剧梾鍚嶇О"
+ align="center"
+ key="icdName"
+ prop="icdName"
+ width="120"
+ :show-overflow-tooltip="true"
+ >
+
+ </el-table-column>
<el-table-column
label="浠诲姟鍚嶇О"
align="center"
- sortable
- key="userName"
- prop="userName"
- :show-overflow-tooltip="true"
- />
- <el-table-column
- label="鏈嶅姟妯℃澘"
- align="center"
- key="types"
- prop="types"
- />
- <el-table-column
- label="鍒涘缓鏃ユ湡"
- align="center"
- key="nickName"
- prop="nickName"
- />
- <el-table-column
- label="寰呮墽琛�/鎬绘暟"
- align="center"
- key="phonenumber"
- prop="phonenumber"
+ key="taskName"
+ prop="taskName"
width="120"
- >
- <template slot-scope="scope">
- <span style="margin-left: 10px"
- >{{ scope.row.date }}/{{ scope.row.data }}</span
- >
- </template>
- </el-table-column>
-
- <el-table-column
- label="鎵ц鐘舵��"
- align="center"
- key="topicnumber"
- prop="topicnumber"
- width="120"
- :show-overflow-tooltip="true"
- >
- <template slot-scope="scope">
- <div>鎵ц瀹屾垚/鎵ц澶辫触</div>
- </template>
- </el-table-column>
- <el-table-column
- label="瀹℃牳浜�"
- align="center"
- key="topicnumberaa"
- prop="topicnumberaa"
- sortable
- width="120"
- :show-overflow-tooltip="true"
/>
<el-table-column
- label="瀹℃牳鏃堕棿"
+ label="闅忚鏂瑰紡"
+ align="center"
+ key="serviceform"
+ prop="serviceform"
+ width="120"
+ />
+ <el-table-column
+ label="闅忚浜哄憳"
+ align="center"
+ key="operator"
+ prop="operator"
+ width="120"
+ />
+
+ <el-table-column
+ label="灏辫瘖鏃堕棿"
sortable
align="center"
- prop="createTime"
+ prop="admitdate"
width="160"
>
<template slot-scope="scope">
- <span>{{ parseTime(scope.row.createTime) }}</span>
+ <span>{{ formatTime(scope.row.admitdate) }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="闅忚鏃堕棿"
+ sortable
+ align="center"
+ prop="finishtime"
+ width="160"
+ >
+ <template slot-scope="scope">
+ <span>{{ formatTime(scope.row.finishtime) }}</span>
+ </template>
+ </el-table-column>
+
+
+ <el-table-column
+ label="闅忚鐘舵��"
+ fixed="right"
+ align="center"
+ key="sendstate"
+ prop="sendstate"
+ width="120"
+ :show-overflow-tooltip="true"
+ >
+ <template slot-scope="scope">
+ <dict-tag :options="serviceState" :value="scope.row.sendstate" />
</template>
</el-table-column>
<el-table-column
label="鎿嶄綔"
- align="center"
- width="120"
- class-name="small-padding fixed-width"
- >
- <template slot-scope="scope">
- <el-button
- size="medium"
- type="text"
- @click="handleUpdate(scope.row)"
- v-hasPermi="['system:user:edit']"
- ><span class="button-zx"
- ><i class="el-icon-s-promotion"></i>寮�濮嬫墽琛�</span
- ></el-button
- >
- </template>
- </el-table-column>
- <el-table-column
- label="浠诲姟璇︽儏"
+ fixed="right"
align="center"
width="200"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
- <el-button
+ <!-- <el-button
size="medium"
type="text"
- @click="handleUpdate(scope.row)"
- v-hasPermi="['system:user:edit']"
- ><span class="button-xq"
- ><i class="el-icon-s-data"></i>璇︽儏</span
- ></el-button
- >
- <el-button
- size="medium"
- type="text"
- @click="handleUpdate(scope.row)"
+ @click="followupvisit(scope.row)"
v-hasPermi="['system:user:edit']"
><span class="button-bb"
- ><i class="el-icon-s-order"></i>鎶ヨ〃</span
+ ><i class="el-icon-s-promotion"></i>閲嶆柊闅忚</span
></el-button
>
<el-button
size="medium"
type="text"
- @click="handleUpdate(scope.row)"
+ @click="handlestop(scope.row)"
v-hasPermi="['system:user:edit']"
><span class="button-sc"
- ><i class="el-icon-delete"></i>鍒犻櫎</span
+ ><i class="el-icon-delete"></i>鍋滄</span
+ ></el-button
+ > -->
+ <el-button
+ size="medium"
+ type="text"
+ @click="Seedetails(scope.row)"
+ v-hasPermi="['system:user:edit']"
+ ><span class="button-zx"
+ ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
></el-button
>
</template>
@@ -331,19 +374,97 @@
<el-button @click="cancel">杩� 鍥�</el-button>
</div>
</el-dialog>
+ <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
+ <el-dialog
+ title="鍙戦�佹椂闂磋缃�"
+ :visible.sync="modificationVisible"
+ width="45%"
+ >
+ <div style="margin-bottom: 20px; color: red">
+ 缁熶竴淇敼褰撳ぉ鏈彂閫佺殑浠诲姟鏃堕棿
+ </div>
+
+ <el-form
+ :model="ruleForm"
+ :rules="rules"
+ ref="ruleForm"
+ label-width="120px"
+ class="demo-ruleForm"
+ >
+ <el-form-item label="鍙戦�佹棩鏈�">
+ <el-date-picker
+ v-model="ruleForm.value1"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ >
+ </el-date-picker>
+ </el-form-item>
+
+ <el-form-item label="鏃堕棿娈�" prop="type">
+ <el-checkbox-group v-model="ruleForm.type">
+ <el-checkbox label="涓婂崍" name="type"></el-checkbox>
+ <el-checkbox label="涓嬪崍" name="type"></el-checkbox>
+ <el-checkbox label="鏅氫笂" name="type"></el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ <el-form-item label="涓婂崍鏃堕棿鍖洪棿" required>
+ <el-time-picker
+ is-range
+ v-model="ruleForm.value2"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ placeholder="閫夋嫨鏃堕棿鑼冨洿"
+ >
+ </el-time-picker>
+ </el-form-item>
+ <el-form-item label="涓嬪崍鏃堕棿鍖洪棿" required>
+ <el-time-picker
+ is-range
+ v-model="ruleForm.value3"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ placeholder="閫夋嫨鏃堕棿鑼冨洿"
+ >
+ </el-time-picker>
+ </el-form-item>
+ <el-form-item label="鏅氫笂鏃堕棿鍖洪棿" required>
+ <el-time-picker
+ is-range
+ v-model="ruleForm.value4"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ placeholder="閫夋嫨鏃堕棿鑼冨洿"
+ >
+ </el-time-picker>
+ </el-form-item>
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="modificationVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="modificationVisible = false"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
</div>
</template>
<script>
import {
listUser,
- getUser,
delUser,
addUser,
updateUser,
resetUserPwd,
changeUserStatus,
} from "@/api/system/user";
+import {
+ getTaskservelist
+} from "@/api/AiCentre/index";
+import store from "@/store";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -371,6 +492,8 @@
title: "鏂板闂ㄨ瘖闅忚",
// 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
addalteropen: false,
+ // 淇敼鍙戦�佹椂闂村璇濇
+ modificationVisible: false,
// 閮ㄩ棬鍚嶇О
deptName: undefined,
// 榛樿瀵嗙爜
@@ -379,8 +502,9 @@
dateRange: [],
// 宀椾綅閫夐」
postOptions: [],
- // 瑙掕壊閫夐」
- roleOptions: [],
+ ruleForm: {
+ type: [],
+ },
dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
inputVisible: false,
inputValue: "",
@@ -491,81 +615,35 @@
topqueryParams: {
pageNum: 1,
pageSize: 10,
- userName: undefined,
- tagid: undefined,
- topic: undefined,
+ serviceType:3,
},
propss: { multiple: true },
options: [],
topicoptions: [
- {
+ {
value: 1,
- label: "寰呭鏍�",
+ label: "琛ㄥ崟宸查鍙�",
},
{
value: 2,
- label: "鎵ц涓�",
+ label: "寰呮墽琛�",
},
{
value: 3,
- label: "鎵ц瀹屾垚",
- },
- {
- value: 4,
- label: "宸插仠姝�",
+ label: "琛ㄥ崟宸插彂閫�",
},
],
+ serviceState:[],
// 琛ㄥ崟鏍¢獙
rules: {
- userName: [
- { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
- {
- min: 2,
- max: 20,
- message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿",
- trigger: "blur",
- },
- ],
- nickName: [
- { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" },
- ],
- password: [
- { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
- {
- min: 5,
- max: 20,
- message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
- trigger: "blur",
- },
- ],
- email: [
- {
- type: "email",
- message: "璇疯緭鍏ユ纭殑閭鍦板潃",
- trigger: ["blur", "change"],
- },
- ],
- phonenumber: [
- {
- pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
- message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜",
- trigger: "blur",
- },
- ],
- IDnumber: [
- {
- pattern:
- /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
- message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�",
- trigger: "blur",
- },
- ],
+
},
};
},
watch: {},
created() {
+ this.serviceState = store.getters.serviceState;
this.getList();
this.getConfigKey("sys.user.initPassword").then((response) => {
this.initPassword = response.msg;
@@ -581,7 +659,7 @@
/** 鏌ヨ闂ㄨ瘖闅忚鍒楄〃 */
getList() {
this.loading = true;
- listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then(
+ getTaskservelist(this.topqueryParams).then(
(response) => {
this.userList = response.rows;
this.total = response.total;
@@ -686,30 +764,15 @@
},
/** 鏂板鎸夐挳鎿嶄綔 */
handleAdd() {
- this.reset();
- this.addalteropen = true;
- // getUser().then((response) => {
- // this.postOptions = response.posts;
- // this.roleOptions = response.roles;
- // this.title = "鏂板闂ㄨ瘖闅忚";
- // this.form.password = this.initPassword;
- // });
- },
- /** 淇敼鎸夐挳鎿嶄綔 */
- handleUpdate(row) {
- this.reset();
- const userId = row.userId || this.ids;
- getUser(userId).then((response) => {
- this.form = response.data;
- this.postOptions = response.posts;
- this.roleOptions = response.roles;
- this.$set(this.form, "postIds", response.postIds);
- this.$set(this.form, "roleIds", response.roleIds);
- this.addalteropen = true;
- this.title = "淇敼鐢ㄦ埛";
- this.form.password = "";
+ this.$router.push({
+ path: "/followvisit/QuestionnaireTask",
+ query: {
+ type: 2,
+ serviceType: 3,
+ },
});
},
+
/** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
handleResetPwd(row) {
this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
@@ -761,6 +824,58 @@
})
.catch(() => {});
},
+ // 鍏ㄩ儴鍋滄
+ AllStop() {
+ this.$modal
+ .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+ .then(function () {
+ return console.log("鍋滄鎴愬姛");
+ })
+ .then(() => {
+ this.getList();
+ this.$modal.msgWarning("鍋滄鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ // 鍏ㄩ儴寮�濮�
+ AllStarted() {
+ this.$modal
+ .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+ .then(function () {
+ return console.log("寮�鍚垚鍔�");
+ })
+ .then(() => {
+ this.getList();
+ this.$modal.msgSuccess("寮�鍚垚鍔�");
+ })
+ .catch(() => {});
+ },
+ // 浠诲姟閲嶇疆
+ TaskReset() {
+ this.$modal
+ .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+ .then(function () {
+ return console.log("閫変腑鎴愬姛");
+ })
+ .then(() => {
+ this.getList();
+ this.$modal.msgSuccess("閲嶇疆鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ // 璁剧疆鍙戦�佹椂闂�
+ Sendtimesetting() {
+ this.modificationVisible = true;
+ },
+ // 璺宠浆璇︽儏椤�
+ Seedetails(row) {
+ this.$router.push({
+ path: "/followvisit/record/detailpage/",
+ query: { taskid: row.taskid, patid: row.patid },
+ });
+ },
+ // 瀵煎叆鎸夐挳
+ toleadExport() {},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
this.download(
@@ -783,7 +898,7 @@
}
.document {
- width: 100px;
+ // width: 100px;
height: 50px;
}
@@ -866,15 +981,24 @@
}
.button-bb {
font-weight: 500;
- color: #2ba05c;
+ background-color: #2ba05c;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
}
.button-xq {
font-weight: 500;
- color: #409eff;
+ background-color: #409eff;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
}
.button-sc {
font-weight: 500;
- color: #dd302a;
+ background-color: #dd302a;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
}
.button-zx {
background: #4fabe9;
@@ -889,9 +1013,10 @@
}
}
-::v-deep.el-checkbox-group {
- span {
- font-size: 24px;
- }
-}
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::v-deep.el-checkbox-group {
+// span {
+// font-size: 24px;
+// }
+// }
</style>
--
Gitblit v1.9.3