From d54ac083e2992a5613f5cb22849db9742dbe9a9b Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 22 十月 2025 11:06:14 +0800
Subject: [PATCH] 问卷联调
---
src/views/followvisit/tasklist/index.vue | 271 ++++++++++++++++++++++++++++++++----------------------
1 files changed, 161 insertions(+), 110 deletions(-)
diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue
index 1f385ea..44eeed6 100644
--- a/src/views/followvisit/tasklist/index.vue
+++ b/src/views/followvisit/tasklist/index.vue
@@ -23,7 +23,7 @@
@keyup.enter.native="handleQuery"
></el-input>
</el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿">
+ <el-form-item label="鍙戦�佹椂闂�">
<el-date-picker
v-model="dateRange"
style="width: 240px"
@@ -69,9 +69,9 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-select
- @change="handleQuery"
+ @change="handleQuerytask"
v-model="tasktopic"
- placeholder="璇烽�夋嫨鏂板绫诲瀷"
+ placeholder="璇烽�夋嫨鏈嶅姟绫诲瀷"
>
<el-option
v-for="item in taskoptions"
@@ -82,10 +82,11 @@
</el-option>
</el-select>
</el-col>
- <!-- <el-col :span="1.5">
+ <el-col :span="1.5">
<el-select
- v-model="longTask"
- placeholder="璇烽�夋嫨浠诲姟绫诲瀷"
+ @change="handleQuery"
+ v-model="topqueryParams.type"
+ placeholder="璇烽�夋嫨鎵ц绫诲瀷"
>
<el-option
v-for="item in longtermlist"
@@ -95,7 +96,7 @@
>
</el-option>
</el-select>
- </el-col> -->
+ </el-col>
<el-col :span="1.5">
<el-button
type="primary"
@@ -141,7 +142,6 @@
<el-table-column
label="浠诲姟鍚嶇О"
fixed
- width="120"
align="center"
key="taskName"
prop="taskName"
@@ -149,7 +149,6 @@
/>
<el-table-column
label="浠诲姟鎻忚堪"
- width="280"
align="center"
key="taskDesc"
prop="taskDesc"
@@ -157,20 +156,26 @@
/>
<el-table-column
label="鏈嶅姟椤圭洰"
- width="120"
align="center"
key="templatename"
prop="templatename"
:show-overflow-tooltip="true"
/>
<el-table-column
- label="寰呮墽琛�/鎬讳换鍔�"
+ label="鎬讳换鍔�/宸查殢璁�"
align="center"
key="nickName"
+ width="120"
prop="nickName"
>
<template slot-scope="scope">
- <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span>
+ <span
+ >{{
+ scope.row.wfs || scope.row.wfs == 0
+ ? scope.row.wfs + scope.row.yfs
+ : ""
+ }}/{{ scope.row.yfs }}</span
+ >
</template>
</el-table-column>
<el-table-column
@@ -178,10 +183,9 @@
align="center"
key="longTask"
prop="longTask"
- width="120"
>
<template slot-scope="scope">
- <span>{{ scope.row.longTask?'闀挎湡浠诲姟':'闈為暱鏈�' }}</span>
+ <span>{{ scope.row.longTask ? "闀挎湡浠诲姟" : "闈為暱鏈�" }}</span>
</template>
</el-table-column>
@@ -190,7 +194,6 @@
align="center"
key="sendState"
prop="sendState"
- width="120"
>
<template slot-scope="scope">
<dict-tag
@@ -205,7 +208,6 @@
align="center"
key="createBy"
prop="createBy"
- width="120"
:show-overflow-tooltip="true"
/>
<el-table-column
@@ -213,7 +215,6 @@
sortable
align="center"
prop="createTime"
- width="160"
>
<template slot-scope="scope">
<span>{{ formatTime(scope.row.createTime) }}</span>
@@ -224,12 +225,15 @@
label="鎿嶄綔"
fixed="right"
align="center"
- width="180"
+ width="240"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
- v-if="(scope.row.sendState == 1 || scope.row.sendState == 3)&&!scope.row.longTask"
+ v-if="
+ (scope.row.sendState == 1 || scope.row.sendState == 3) &&
+ !scope.row.longTask
+ "
size="medium"
type="text"
@click="sponsor(scope.row)"
@@ -242,9 +246,19 @@
><i class="el-icon-circle-plus-outline"></i>缁堟</span
></el-button
> -->
- <el-button size="medium" type="text" @click="handleUpdate(scope.row,1)"
- ><span class="button-xj"
- ><i class="el-icon-circle-plus-outline"></i>渚濈収鏂板</span
+ <el-button
+ size="medium"
+ type="text"
+ @click="handleUpdate(scope.row, 1)"
+ ><span class="button-xj">渚濈収鏂板</span></el-button
+ >
+ <el-button
+ v-if="scope.row.sendState != 5"
+ size="medium"
+ type="text"
+ @click="handleAddpatient(scope.row.taskid, scope.row.type)"
+ ><span class="button-hz"
+ ><i class="el-icon-circle-plus-outline"></i>鏂板鎮h��</span
></el-button
>
<el-button
@@ -252,9 +266,7 @@
size="medium"
type="text"
@click="stop(scope.row)"
- ><span class="button-zt"
- ><i class="el-icon-circle-plus-outline"></i>鏆傚仠</span
- ></el-button
+ ><span class="button-zt">鏆傚仠</span></el-button
>
</template>
</el-table-column>
@@ -262,7 +274,7 @@
label="浠诲姟璇︽儏"
fixed="right"
align="center"
- width="200"
+ width="240"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
@@ -366,6 +378,13 @@
>
</div>
</el-dialog>
+ <!-- 閫夋嫨鎮h�呭脊妗� -->
+ <Patient-Selection
+ ref="Patient"
+ :dialogVisiblepatient="dialogVisiblepatient"
+ @addoption="addoption"
+ @kkoption="dialogVisiblepatient = true"
+ />
</div>
</template>
@@ -380,23 +399,19 @@
} from "@/api/system/user";
import {
getTasklist,
- getTaskInfo,
- Editsingletask,
delTaskInfo,
- Questionnairetasklist,
- Questionnairetaskget,
- Questionnairetasksponsor,
TaskTemplateSendExecution,
} from "@/api/AiCentre/index";
import store from "@/store";
-
+import PatientSelection from "@/components/PatientSelection"; //姝e垯缁勪欢
+import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
- name: "User",
+ name: "Tasklist",
dicts: ["sys_normal_disable", "sys_user_sex", "task_status"],
- components: { Treeselect },
+ components: { Treeselect, PatientSelection },
data() {
return {
// 閬僵灞�
@@ -414,7 +429,7 @@
// 鐢ㄦ埛琛ㄦ牸鏁版嵁
userList: null,
// 寮瑰嚭灞傛爣棰�
- title: "鏂板闂ㄨ瘖闅忚",
+ title: "鏂板褰卞儚闅忚",
// 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
addalteropen: false,
// 閮ㄩ棬鍚嶇О
@@ -427,74 +442,50 @@
postOptions: [],
// 瑙掕壊閫夐」
roleOptions: [],
- longTask:0,
+ longTask: 0,
taskform: {
showDate: [],
showTimeMorn: [],
showTimeNight: [],
showTimeNoon: [],
},
+ dialogVisiblepatient: false,
+ Patientlist: [],
taskformVisible: false,
dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
inputVisible: false,
inputValue: "",
- previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规
+ previewVisible: false, //褰卞儚闅忚棰勮寮规
TaskOperation: {},
radio: "",
radios: [],
- previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷
+ previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
total: 0, // 鎬绘潯鏁�
- ImportQuantity: 999, //瀵奸棬璇婇殢璁挎暟閲�
- //棰勮闂ㄨ瘖闅忚淇℃伅
+ ImportQuantity: 999, //瀵煎奖鍍忛殢璁挎暟閲�
+ //棰勮褰卞儚闅忚淇℃伅
previewvalue: {
username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
},
- longtermlist:[
- {
- value: '1',
- label: "闀挎湡浠诲姟",
+ longtermlist: [
+ {
+ value: 1,
+ label: "璇煶闅忚",
},
{
- value: '0',
- label: "鏅�氫换鍔�",
- },
- ],
- taskoptions: [
- {
- value: "1",
- label: "鐩戞祴璇勪及",
+ value: 2,
+ label: "闂嵎闅忚",
},
{
- value: "2",
- label: "鍑洪櫌闅忚",
- },
- {
- value: "3",
- label: "闂ㄨ瘖闅忚",
- },
- {
- value: "4",
+ value: 3,
label: "瀹f暀鍏虫��",
},
{
- value: "5",
- label: "澶嶈瘖绠$悊",
- },
- {
- value: "6",
- label: "婊℃剰搴﹁皟鏌�",
- },
- {
- value: "7",
- label: "鎮h�呮姤鍛�",
- },
-
- {
- value: "8",
- label: "鍏朵粬閫氱煡",
+ value: 4,
+ label: "娑堟伅閫氱煡",
},
],
- tasktopic: "2", //鏂板绫诲瀷
+ taskoptions: store.getters.tasktypes,
+ tasktopic: 2, //鏂板绫诲瀷
activname: "",
value: [],
list: [],
@@ -593,14 +584,14 @@
topqueryParams: {
pageNum: 1,
pageSize: 10,
- type: 3,
+ type: 2,
userName: undefined,
tagid: undefined,
topic: undefined,
},
propss: { multiple: true },
options: [],
-
+ checkboxlist: [],
// 琛ㄥ崟鏍¢獙
rules: {
userName: [
@@ -651,16 +642,23 @@
},
watch: {},
created() {
- this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(obj=>obj.deptCode);
- this.topqueryParams.leavehospitaldistrictcodes = store.getters.belongWards.map(obj=>obj.districtCode);
+ // this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ // (obj) => obj.deptCode
+ // );
+ // this.topqueryParams.leavehospitaldistrictcodes =
+ // store.getters.belongWards.map((obj) => obj.districtCode);
this.tasktopic = this.$route.query.tasktopic
? this.$route.query.tasktopic
: this.tasktopic;
+ this.tasktopic = Number(this.tasktopic);
this.getList();
this.getConfigKey("sys.user.initPassword").then((response) => {
this.initPassword = response.msg;
});
- // this.taskoptions = store.getters.Serviceauthority;
+ this.checkboxlist = store.getters.checkboxlist;
+ },
+ activated() {
+ this.getList();
},
// 鎼滅储
mounted() {
@@ -672,40 +670,65 @@
/** 鏌ヨ浠诲姟鍒楄〃 */
getList() {
this.loading = true;
- let type = this.$route.query.type;
this.topqueryParams.serviceType = Number(this.tasktopic);
- this.topqueryParams.type = Number(this.type);
if (
this.tasktopic == 2 ||
this.tasktopic == 3 ||
this.tasktopic == 1 ||
this.tasktopic == 7 ||
+ this.tasktopic == 5 ||
this.tasktopic == 6
) {
- this.topqueryParams.type = 2;
- this.TaskOperation.taskType = 2;
+ if (!this.topqueryParams.type) this.topqueryParams.type = "2";
+ this.longtermlist = [
+ {
+ value: 1,
+ label: "璇煶闅忚",
+ },
+ {
+ value: 2,
+ label: "闂嵎闅忚",
+ },
+ ];
+ // this.topqueryParams.type = 2;
} else if (this.tasktopic == 4 || this.tasktopic == 8) {
+ if (!this.topqueryParams.type) this.topqueryParams.type = "3";
+ this.longtermlist = [
+ {
+ value: 3,
+ label: "瀹f暀鍏虫��",
+ },
+ ];
this.topqueryParams.type = 3;
- this.TaskOperation.taskType = 3;
- } else if (this.tasktopic == 5) {
- this.topqueryParams.type = 1;
- this.TaskOperation.taskType = 1;
+ } else if (this.tasktopic == 16) {
+ if (!this.topqueryParams.type) this.topqueryParams.type = "2";
+ this.longtermlist = [
+ {
+ value: 1,
+ label: "璇煶闅忚",
+ },
+ {
+ value: 2,
+ label: "闂嵎闅忚",
+ },
+ {
+ value: 3,
+ label: "瀹f暀鍏虫��",
+ },
+ ];
+ // this.topqueryParams.type = 2;
}
- // this.topqueryParams.typename = this.findLabelByValue(
- // this.taskoptions,
- // this.tasktopic
- // );
- getTasklist(this.addDateRange(this.topqueryParams, this.dateRange)).then(
- (response) => {
- this.userList = response.rows;
- this.total = response.total;
- this.$forceUpdate();
- this.loading = false;
- }
- );
+ this.topqueryParams.beginTime = this.dateRange[0];
+ this.topqueryParams.endTime = this.dateRange[1];
+ getTasklist(this.topqueryParams).then((response) => {
+ this.userList = response.rows;
+ this.total = response.total;
+ this.$forceUpdate();
+ this.loading = false;
+ });
},
- // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
+ // 鏌ョ湅褰卞儚闅忚璇︽儏
Referencequestion(row) {
this.previewVisible = true;
},
@@ -743,6 +766,11 @@
this.resetForm("form");
},
/** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuerytask() {
+ this.topqueryParams.pageNum = 1;
+ // this.topqueryParams.type = '';
+ this.getList();
+ },
handleQuery() {
this.topqueryParams.pageNum = 1;
this.getList();
@@ -751,8 +779,15 @@
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
- this.topqueryParams.deptId = undefined;
- this.$refs.tree.setCurrentKey(null);
+ this.topqueryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ type: 2,
+ userName: undefined,
+ tagid: undefined,
+ topic: undefined,
+ };
+ // this.$refs.tree.setCurrentKey(null);
this.handleQuery();
},
// 澶氶�夋閫変腑鏁版嵁
@@ -810,7 +845,7 @@
}
},
/** 淇敼鎸夐挳鎿嶄綔 */
- handleUpdate(row,newadd) {
+ handleUpdate(row, newadd) {
if (this.topqueryParams.type == 1) {
this.$router.push({
path: "/followvisit/particty",
@@ -818,7 +853,7 @@
id: row.taskid,
type: this.topqueryParams.type,
serviceType: this.tasktopic,
- newadd:newadd,//鏄惁渚濈収鏂板缓
+ newadd: newadd, //鏄惁渚濈収鏂板缓
},
});
} else if (this.topqueryParams.type == 2) {
@@ -828,7 +863,7 @@
id: row.taskid,
type: this.topqueryParams.type,
serviceType: this.tasktopic,
- newadd:newadd,
+ newadd: newadd,
},
});
} else if (this.topqueryParams.type == 3) {
@@ -838,7 +873,7 @@
id: row.taskid,
type: this.topqueryParams.type,
serviceType: this.tasktopic,
- newadd:newadd,
+ newadd: newadd,
},
});
}
@@ -887,6 +922,7 @@
this.taskformVisible = true;
} else if (this.taskform.sendState != 2 && this.taskform.sendType == 2) {
this.TaskOperation.taskId = row.taskid;
+ this.TaskOperation.taskType = this.topqueryParams.type;
this.TaskOperation.sendState = 2;
this.TaskOperation.sendType = 2;
this.$modal
@@ -912,6 +948,7 @@
confirmSponsor(row) {
if (this.activname == 0) {
this.TaskOperation.taskId = row.taskid;
+ this.TaskOperation.taskType = this.topqueryParams.type;
this.TaskOperation.sendState = 2;
TaskTemplateSendExecution(this.TaskOperation).then((res) => {
if (res.code == 200) {
@@ -929,6 +966,7 @@
immediateExecution(row) {
console.log(row, "浠诲姟淇℃伅");
if (row.sendState != 2) {
+ this.TaskOperation.taskType = this.topqueryParams.type;
this.TaskOperation.taskId = row.taskid;
this.TaskOperation.sendState = 2;
this.TaskOperation.sendType = 2;
@@ -950,7 +988,6 @@
.catch(() => {});
}
},
-
// 鏆傚仠
stop(row) {
@@ -1014,6 +1051,14 @@
findLabelByValue(data, value) {
const item = data.find((item) => item.value === value);
return item ? item.label : null;
+ },
+ handleAddpatient(taskid) {
+ this.$refs.Patient.handleAddpatient(taskid);
+ this.dialogVisiblepatient = true; // 鎵嬪姩鎺у埗寮圭獥鏄剧ず
+ },
+ addoption() {
+ this.dialogVisiblepatient = false; // 鎵嬪姩鎺у埗寮圭獥鏄剧ず
+ this.handleQuery();
},
},
};
@@ -1144,6 +1189,12 @@
border-radius: 1px;
color: #ffffff;
}
+.button-hz {
+ background: #63d37b;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
::v-deep.el-radio-group {
span {
--
Gitblit v1.9.3