From 3573a134c7c7d4d99f605420f9afb2f80e9b8967 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期六, 22 十一月 2025 14:59:46 +0800
Subject: [PATCH] 宣教更新
---
src/views/patient/propaganda/Missioncreation.vue | 538 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 405 insertions(+), 133 deletions(-)
diff --git a/src/views/patient/propaganda/Missioncreation.vue b/src/views/patient/propaganda/Missioncreation.vue
index a789b74..cfd57e0 100644
--- a/src/views/patient/propaganda/Missioncreation.vue
+++ b/src/views/patient/propaganda/Missioncreation.vue
@@ -82,48 +82,17 @@
placeholder="璇疯緭鍏ヤ换鍔℃弿杩�"
/>
</el-form-item>
- <el-row>
- <el-col :span="20"
- ><el-form-item label="閫傜敤绉戝" prop="region">
- <el-select
- v-model="form.deptcode"
- style="width: 400px"
- size="medium"
- filterable
- placeholder="璇烽�夋嫨绉戝"
- >
- <el-option
- class="ruleFormaa"
- v-for="item in belongDepts"
- :key="item.deptCode"
- :label="item.deptName"
- :value="item.deptCode"
- >
- </el-option>
- </el-select> </el-form-item
- ></el-col>
- </el-row>
- <el-row>
- <el-col :span="20"
- ><el-form-item label="閫傜敤鐥呭尯" prop="region">
- <el-select
- v-model="form.leavehospitaldistrictcode"
- style="width: 400px"
- size="medium"
- filterable
- placeholder="璇烽�夋嫨鐥呭尯"
- >
- <el-option
- class="ruleFormaa"
- v-for="item in belongWards"
- :key="item.districtCode"
- :label="item.districtName"
- :value="item.districtCode"
- >
- </el-option>
- </el-select> </el-form-item
- ></el-col>
- </el-row>
+ <el-form-item label="鏈嶅姟褰㈠紡">
+ <SortCheckbox
+ v-model="checkList"
+ :options="checkboxlist"
+ :initialselectedOrder="selectedOrder"
+ value-key="value"
+ label-key="label"
+ @change="checkSelectionChange"
+ />
+ </el-form-item>
+
<el-form-item label="鎵ц鍛ㄦ湡" prop="longTask">
<el-radio-group v-model="form.longTask">
<el-radio :label="0">鑷畾涔夊懆鏈�</el-radio>
@@ -253,27 +222,116 @@
/> </el-form-item
></el-col>
</el-row>
- <!-- <el-form-item label="鏈嶅姟褰㈠紡">
- <el-checkbox-group v-model="checkList">
- <el-checkbox
- v-for="(item, index) in checkboxlist"
- :key="index"
- :label="item.value"
- >
- {{ item.label }}</el-checkbox
- >
- </el-checkbox-group>
- </el-form-item> -->
- <el-form-item label="鏈嶅姟褰㈠紡">
- <SortCheckbox
- v-model="checkList"
- :options="checkboxlist"
- :initialselectedOrder="selectedOrder"
- value-key="value"
- label-key="label"
- @change="checkSelectionChange"
- />
+
+ <el-form-item label="浠诲姟鍏宠仈" prop="longTask">
+ <el-radio-group v-model="form.appltype">
+ <el-radio label="1">绉戝鍏宠仈</el-radio>
+ <el-radio label="2">鐥呭尯鍏宠仈</el-radio>
+ <el-radio label="3">鐤剧梾鍏宠仈</el-radio>
+ <el-radio label="4">鎵嬫湳鍏宠仈</el-radio>
+ </el-radio-group>
</el-form-item>
+ <el-row v-if="form.appltype == 1">
+ <el-col :span="20"
+ ><el-form-item label="閫傜敤绉戝" prop="region">
+ <el-select
+ v-model="deptcodesWards"
+ @remove-tag="removetag"
+ style="width: 400px"
+ size="medium"
+ multiple
+ filterable
+ placeholder="璇烽�夋嫨绉戝"
+ >
+ <el-option
+ class="ruleFormaa"
+ v-for="item in belongDepts"
+ :label="item.deptName"
+ :value="item.deptCode"
+ >
+ </el-option>
+ </el-select> </el-form-item
+ ></el-col>
+ </el-row>
+ <el-row v-if="form.appltype == 2">
+ <el-col :span="20"
+ ><el-form-item label="閫傜敤鐥呭尯" prop="region">
+ <el-select
+ v-model="leavehospitaldistrictcodes"
+ style="width: 400px"
+ @remove-tag="removehpsp"
+ size="medium"
+ multiple
+ filterable
+ placeholder="璇烽�夋嫨鐥呭尯"
+ >
+ <el-option
+ class="ruleFormaa"
+ v-for="item in belongWards"
+ :label="item.districtName"
+ :value="item.districtCode"
+ >
+ </el-option>
+ </el-select> </el-form-item
+ ></el-col>
+ </el-row>
+ <el-row v-if="form.appltype == 3">
+ <div class="xinz-infs">
+ <el-form-item>
+ <template #label>
+ <el-tooltip
+ class="item"
+ effect="light"
+ content="閫夋嫨濂介�傜敤鐤剧梾鍚庯紝鍙互鏂逛究鎮ㄩ�氳繃鐤剧梾璇婃柇鏌ユ壘鍒板搴旂殑鐥呬汉!"
+ placement="top-start"
+ >
+ <i class="el-icon-warning-outline"></i>
+ </el-tooltip>
+ </template>
+ <div style="margin-bottom: 10px">
+ <el-button
+ type="warning"
+ @click="$refs.child.handleAddpatient()"
+ >娣诲姞鐤剧梾璇婃柇</el-button
+ >
+ </div>
+ <el-tag
+ v-for="tag in diagglist"
+ @close="removediagg(tag.icd10code)"
+ type="warning"
+ closable
+ :disable-transitions="false"
+ >
+ {{ tag.icdname }}
+ </el-tag>
+ <!-- <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> -->
+ </el-form-item>
+ </div>
+ </el-row>
+ <el-row v-if="form.appltype == 4">
+ <el-col :span="20"
+ ><el-form-item label="閫傜敤鎵嬫湳" prop="region">
+ <el-select
+ v-model="operationcodes"
+ style="width: 400px"
+ @remove-tag="removeopera"
+ size="medium"
+ :remote-method="remoteopcode"
+ multiple
+ filterable
+ remote
+ placeholder="璇烽�夋嫨鎵嬫湳"
+ >
+ <el-option
+ class="ruleFormaa"
+ v-for="item in baseoperaList"
+ :label="item.opdesc"
+ :value="item.opcode"
+ >
+ </el-option>
+ </el-select> </el-form-item
+ ></el-col>
+ </el-row>
</el-form>
</div>
</div>
@@ -341,45 +399,6 @@
<div class="examine-jic">
<div class="jic-value">
<el-row :gutter="20">
- <!--鐢ㄦ埛鏁版嵁-->
- <!-- <el-form
- :model="topqueryParams"
- ref="queryForm"
- size="small"
- :inline="true"
- v-show="showSearch"
- label-width="98px"
- >
- <el-form-item label="鎮h�呭悕绉�">
- <el-input v-model="topqueryParams.name"></el-input>
- </el-form-item>
-
- <el-form-item label="灏辫瘖绉戝">
- <el-input v-model="topqueryParams.deptName"></el-input>
- </el-form-item>
- <el-form-item>
- <el-button
- type="primary"
- icon="el-icon-search"
- size="medium"
- @click="handleQuery"
- >鎼滅储</el-button
- >
- <el-button
- icon="el-icon-refresh"
- size="medium"
- @click="resetQuery"
- >閲嶇疆</el-button
- >
- <el-button
- icon="el-icon-upload2"
- size="medium"
- type="warning"
- >褰撳墠鎮h�呬竴閿彂閫�</el-button
- >
- </el-form-item>
- </el-form> -->
- <!-- <el-divider></el-divider> -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-select
@@ -402,7 +421,7 @@
icon="el-icon-plus"
size="medium"
:disabled="!patientqueryParams.allhosp"
- @click="handleAddpatient"
+ @click="handleQuery"
>鏂板</el-button
>
</el-col>
@@ -485,6 +504,18 @@
<el-form-item label="鎮h�咃細">
<el-input
v-model="patientqueryParams.name"
+ @keyup.enter.native="handleQuery"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鎮h�呰瘖鏂細">
+ <el-input
+ v-model="patientqueryParams.leavediagname"
+ @keyup.enter.native="handleQuery"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="涓绘不鍖荤敓锛�">
+ <el-input
+ v-model="patientqueryParams.drname"
@keyup.enter.native="handleQuery"
></el-input>
</el-form-item>
@@ -733,7 +764,7 @@
<el-button
icon="el-icon-refresh"
size="medium"
- @click="resetQuery"
+ @click="resetQuerymb"
>閲嶇疆</el-button
>
</el-form-item>
@@ -760,6 +791,13 @@
</div>
</div>
</el-drawer>
+ <Optional-Form
+ ref="child"
+ :dialogVisiblepatient="dialogVisiblepatientjb"
+ :overallCase="diagglist"
+ @addoption="dialogVisiblepatientjb = false"
+ @kkoption="dialogVisiblepatientjb = true"
+ />
</div>
</template>
@@ -770,19 +808,34 @@
import store from "@/store";
import {
getTaskpatientQC,
- getlibrarylist,
- getFollowuplist,
+ taskoperhospgetsondel,
+ taskdiaghospgetsondel,
+ getillnesslist,
+ getbaseopera,
+ Externallist,
getQtemplatelist,
+ getQtemplateobj,
+ taskgetQtemplateobj,
TaskQuestioncomit,
- getTaskInfo,
- gethetaskinfo,
- delhetaskinfo,
+ deleteTaskQuestioncomit,
+ Questionnairetaskgetson,
+ getTaskQuestioncomit,
+ depthospgetson,
+ getillness,
Editsingletask,
+ getQtemplateclassify,
+ taskdepthospgetsondel,
+ taskdepthospgetsonlist,
+ taskdiaggetlist,
+ taskopergetlist,
+ getTaskInfo,
getheLibraryAssort,
+ getlibrarylist,
} from "@/api/AiCentre/index";
import { listDept } from "@/api/system/dept";
import { getToken } from "@/utils/auth";
import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
+import OptionalForm from "@/components/OptionalForm";
import SortCheckbox from "@/components/SortCheckbox"; //琛ㄦ牸缁勪欢
export default {
@@ -798,6 +851,7 @@
libName: "",
overallCase: [], //閫夋嫨鎮h�呮��
allpids: [],
+ diagglist: [],
libId: null, //妯℃澘搴撴ā鏉縤d
Editprogress: 1, //缂栬緫杩涘害
drawermb: false, //閫夋嫨妯℃澘寮圭獥
@@ -805,15 +859,20 @@
loading: false, // 閬僵灞�
patientloading: false, // 閬僵灞�
dialogVisiblepatient: false, //娣诲姞鎮h�呭脊妗�
+ dialogVisiblepatientjb: false, //娣诲姞鐤剧梾寮规
radio: 1,
checkboxlist: [],
selectedOrder: [],
+ baseoperaList: [],
// 绉戝/鐥呭尯
- belongWards: [],
belongWards: [],
tableLabel: [],
questionList: [],
uploadingData: [],
+ deptcodesWards: [], //绉戝鏁版嵁
+ leavehospitaldistrictcodes: [], //鐥呭尯鏁版嵁
+ operationcodes: [], //鎵嬫湳鏁版嵁
+ illnesscodes: [], //鐤剧梾鏁版嵁
htmlRichText: "<p>Hello, <strong>world</strong>!</p>",
// 鎮h�呰〃鍗�
tableLabelhz: [
@@ -900,6 +959,8 @@
patientqueryParams: {
pageNum: 1, //
pageSize: 10,
+ leavehospitaldistrictcodes: [],
+ leaveldeptcodes: [],
},
topicoptions: [{ children: [{ children: [] }] }],
showSearch: true, //
@@ -965,6 +1026,8 @@
],
tasktopic: null, //鏂板绫诲瀷
SelectPatientslist: [],
+ belongDepts: [],
+
form: {
patTaskRelevances: [],
sendType: 1,
@@ -1021,7 +1084,7 @@
quote: false,
};
},
- components: { SFtable, SortCheckbox },
+ components: { SFtable, OptionalForm, SortCheckbox },
created() {
this.id = this.$route.query.id;
@@ -1145,20 +1208,20 @@
}
},
// 淇濆瓨
- async submitForm(formName) {
+ async submitForm(formName) {
this.form.preachform = this.checkList.join(",");
// this.formatFn(1);
- if (!this.form.patTaskRelevances[0] && this.form.longTask == 0) {
- try {
- // 绛夊緟鐢ㄦ埛纭
- await this.$modal.confirm("褰撳墠浠诲姟鏈�夋嫨鎮h�呮槸鍚︿繚瀛橈紵");
- // 鍙湁鐢ㄦ埛鐐瑰嚮鈥滅‘璁も�濆悗锛屼唬鐮佹墠浼氭墽琛屽埌杩欓噷
- } catch (error) {
- // 鐢ㄦ埛鐐瑰嚮浜嗏�滃彇娑堚�濓紝鐩存帴涓柇鍑芥暟鎵ц
- this.$modal.msgWarning("鎿嶄綔宸插彇娑�");
- return; // 鍏抽敭锛氳繖閲宺eturn鐩存帴閫�鍑哄嚱鏁�
- }
- }
+ if (!this.form.patTaskRelevances[0] && this.form.longTask == 0) {
+ try {
+ // 绛夊緟鐢ㄦ埛纭
+ await this.$modal.confirm("褰撳墠浠诲姟鏈�夋嫨鎮h�呮槸鍚︿繚瀛橈紵");
+ // 鍙湁鐢ㄦ埛鐐瑰嚮鈥滅‘璁も�濆悗锛屼唬鐮佹墠浼氭墽琛屽埌杩欓噷
+ } catch (error) {
+ // 鐢ㄦ埛鐐瑰嚮浜嗏�滃彇娑堚�濓紝鐩存帴涓柇鍑芥暟鎵ц
+ this.$modal.msgWarning("鎿嶄綔宸插彇娑�");
+ return; // 鍏抽敭锛氳繖閲宺eturn鐩存帴閫�鍑哄嚱鏁�
+ }
+ }
if (!this.form.templatename) {
this.$modal.msgError("鏈�夋嫨妯℃澘");
return;
@@ -1170,6 +1233,36 @@
this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
this.submitLoading = false;
+ return;
+ }
+ if (this.form.appltype == 1) {
+ this.leavehospitaldistrictcodes = [];
+ this.operationcodes = [];
+ this.illnesscodes = [];
+ } else if (this.form.appltype == 2) {
+ this.deptcodesWards = [];
+ this.operationcodes = [];
+ this.illnesscodes = [];
+ } else if (this.form.appltype == 3) {
+ this.deptcodesWards = [];
+ this.leavehospitaldistrictcodes = [];
+ this.operationcodes = [];
+ } else if (this.form.appltype == 4) {
+ this.deptcodesWards = [];
+ this.illnesscodes = [];
+ this.leavehospitaldistrictcodes = [];
+ }
+ if (
+ this.deptcodesWards[0] ||
+ this.leavehospitaldistrictcodes[0] ||
+ this.diagglist[0] ||
+ this.operationcodes[0] ||
+ this.form.longTask == 2 ||
+ this.serviceType == 3
+ ) {
+ } else {
+ this.$modal.msgError("璇烽�夋嫨浠诲姟鍏宠仈鏉′欢");
+ this.submitLoading = false;
return;
}
const filteredArray = this.variableList.filter(
@@ -1187,12 +1280,13 @@
if (!this.form.type) {
this.form.type = this.$route.query.type;
}
- this.form.leaveldeptcodes = store.getters.belongDepts.map(
- (obj) => obj.deptCode
- );
- this.form.leavehospitaldistrictcodes = store.getters.belongWards.map(
- (obj) => obj.districtCode
- );
+ this.form.deptcode = this.deptcodesWards.join(",");
+ this.form.leavehospitaldistrictcode =
+ this.leavehospitaldistrictcodes.join(",");
+ this.form.opcode = this.operationcodes.join(",");
+ this.form.icd10code = this.diagglist
+ .map((item) => item.icdcode)
+ .join(",");
Editsingletask(this.form).then((res) => {
if (res.code == 200) {
if (this.form.taskid) {
@@ -1437,9 +1531,54 @@
},
getList() {},
handleQuery() {
+ if (this.patientqueryParams.allhosp == 6) {
+ this.Externallist();
+ console.log();
+
+ return;
+ }
+ if (this.patientqueryParams.searchscope == 1) {
+ this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.patientqueryParams.leavehospitaldistrictcodes = [];
+ } else if (this.patientqueryParams.searchscope == 2) {
+ this.patientqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ this.patientqueryParams.leaveldeptcodes = [];
+ } else {
+ this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.patientqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ if (
+ !this.patientqueryParams.leavehospitaldistrictcodes ||
+ !this.patientqueryParams.leavehospitaldistrictcodes[0]
+ )
+ this.patientqueryParams.leavehospitaldistrictcodes = null;
+ if (
+ !this.patientqueryParams.leaveldeptcodes ||
+ !this.patientqueryParams.leaveldeptcodes[0]
+ )
+ this.patientqueryParams.leaveldeptcodes = null;
this.handleAddpatient();
},
- resetQuery() {},
+ resetQuery() {
+ this.patientqueryParams = {
+ pageNum: 1, //
+ pageSize: 10,
+ topica: 1, //0鍏ㄩ儴1绉戝2鐥呭尯
+ leavehospitaldistrictcodes: [],
+ leaveldeptcodes: [],
+ };
+ this.handleQuery();
+ },
+ resetQuerymb() {
+ this.topqueryParams = { svyname: "" };
+ this.handleQuerymb();
+ },
handleClosehz() {
this.dialogVisiblepatient = false;
},
@@ -1517,6 +1656,44 @@
console.log("褰撳墠閫変腑:", selectedValues);
console.log("閫変腑椤哄簭:", selectedOrder);
},
+ getillnesslist() {
+ getillnesslist({
+ pageNum: 1,
+ pageSize: 1000,
+ }).then((res) => {
+ this.donorchargeList = res.rows;
+ });
+ getbaseopera({
+ pageNum: 1,
+ pageSize: 1000,
+ }).then((res) => {
+ this.baseoperaList = res.rows;
+ });
+ },
+ // 鎵嬫湳鏌ヨ
+ remoteopcode(name) {
+ if (name) {
+ getbaseopera({
+ pageNum: 1,
+ pageSize: 1000,
+ opdesc: name,
+ }).then((res) => {
+ this.baseoperaList = res.rows;
+ });
+ }
+ },
+ // 鐤剧梾鏌ヨ
+ remotedonor(name) {
+ if (name) {
+ getbaseopera({
+ pageNum: 1,
+ pageSize: 1000,
+ opdesc: name,
+ }).then((res) => {
+ this.baseoperaList = res.rows;
+ });
+ }
+ },
// 渚濈収鏂板鏃跺鐞�
neWaddfn() {
this.id = null;
@@ -1541,9 +1718,45 @@
},
// 鑾峰彇绉戝鍒楄〃
listDept() {
- listDept().then((res) => {
- this.topicoptions = this.handleTree(res.data, "deptId");
- console.log(this.topicoptions, "topicoptions");
+ this.leavehospitaldistrictcodes = [];
+ this.deptcodesWards = [];
+ this.queryParamsdept.taskId = this.form.taskid;
+ taskdepthospgetsonlist(this.queryParamsdept).then((res) => {
+ if (res.code == 200) {
+ let arr = res.rows;
+ arr.forEach((item) => {
+ if (item.deptType == 1) {
+ this.deptlist.push(item);
+ this.deptcodesWards.push(item.deptCode);
+ } else if (item.deptType == 2) {
+ this.hosplist.push(item);
+ this.leavehospitaldistrictcodes.push(item.deptCode);
+ }
+ });
+ }
+ });
+ taskdiaggetlist(this.queryParamsdept).then((res) => {
+ if (res.code == 200) {
+ let arr = res.rows;
+ arr.forEach((item) => {
+ getillnesslist({
+ icdcode: item.icd10code,
+ }).then((res) => {
+ item.icdname = res.rows[0].icdname;
+ this.diagglist.push(item);
+ });
+ this.illnesscodes.push(item.icd10code);
+ });
+ }
+ });
+ taskopergetlist(this.queryParamsdept).then((res) => {
+ if (res.code == 200) {
+ let arr = res.rows;
+ arr.forEach((item) => {
+ this.operlist.push(item);
+ this.operationcodes.push(item.opcode);
+ });
+ }
});
},
// 鏂板娲鹃�佹偅鑰�
@@ -1649,7 +1862,7 @@
TaskQuestioncomit(this.Tasktemplate).then((response) => {
console.log(response);
this.previewtf = false;
- this.drawermb =false;
+ this.drawermb = false;
this.form.templateid = response.data;
this.form.libtemplateid = this.libId;
this.form.templatename = this.libName;
@@ -1686,6 +1899,65 @@
this.checkList = list;
}
},
+ // 浠诲姟绉戝鍒犻櫎瑙﹀彂
+ removetag(row) {
+ let result = this.deptlist
+ .filter((item) => item.deptCode == row)
+ .map((item) => item.id);
+
+ if (result.length) {
+ taskdepthospgetsondel(result).then((res) => {
+ if (res.code) {
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }
+ });
+ }
+ },
+ // 闄㈠尯鍒犻櫎鍒犻櫎瑙﹀彂
+ removehpsp(row) {
+ let result = this.hosplist
+ .filter((item) => item.deptCode == row)
+ .map((item) => item.id);
+ if (result.length) {
+ taskdepthospgetsondel(result).then((res) => {
+ if (res.code) {
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }
+ });
+ }
+ },
+ // 鎵嬫湳鍒犻櫎瑙﹀彂
+ removeopera(row) {
+ let result = this.operlist
+ .filter((item) => item.opcode == row)
+ .map((item) => item.id);
+ if (result.length) {
+ taskoperhospgetsondel(result).then((res) => {
+ if (res.code) {
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }
+ });
+ }
+ },
+ // 鐤剧梾鍒犻櫎瑙﹀彂
+ removediagg(row) {
+ console.log(row, "row");
+ console.log(this.diagglist, "this.diagglist");
+
+ let result = this.diagglist
+ .filter((item) => item.icd10code == row)
+ .map((item) => item.id);
+ if (result.length) {
+ taskdiaghospgetsondel(result).then((res) => {
+ if (res.code) {
+ this.diagglist = this.diagglist.filter(
+ (item) => item.icd10code != row
+ );
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }
+ });
+ }
+ },
/** 瀵煎叆鎸夐挳鎿嶄綔 */
handleImport() {
this.upload.title = "鐢ㄦ埛瀵煎叆";
--
Gitblit v1.9.3