From ecbcc059d43f64877551756de129c653d31d0032 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期四, 07 五月 2026 09:20:20 +0800
Subject: [PATCH] 测试完成
---
src/views/followvisit/tasklist/index.vue | 23
src/views/outsideChainxj.vue | 13
src/views/sfstatistics/percentage/components/SecondFollowUp.vue | 12
src/store/modules/user.js | 12
vue.config.js | 4
src/views/followvisit/beHospitalized/followUp.vue | 2294 ++++++++++++++++++++++
src/views/knowledge/education/index.vue | 35
src/views/sfstatistics/percentage/components/FirstFollowUp.vue | 26
src/views/patient/propaganda/QuestionnaireTask.vue | 1
src/views/sfstatistics/propaganda/index.vue | 1679 ++++++++--------
src/api/AiCentre/indicator.js | 27
src/views/login-ls.vue | 322 +++
src/views/login.vue | 14
src/views/followvisit/record/detailpage/index.vue | 109
src/views/sfstatistics/percentage/index.vue | 2
src/views/knowledge/questionbank/particulars/index.vue | 42
src/components/CallButton/index.vue | 17
src/store/getters.js | 18
src/views/knowledge/questionnaire/index.vue | 7
src/views/outsideChainxjnew.vue | 19
src/views/patient/propaganda/Missioncreation.vue | 30
src/views/patient/propaganda/particty.vue | 1
src/views/followvisit/beHospitalized/publicity.vue | 1232 ++++++++++++
src/views/followvisit/discharge/index.vue | 13
24 files changed, 4,993 insertions(+), 959 deletions(-)
diff --git a/src/api/AiCentre/indicator.js b/src/api/AiCentre/indicator.js
index 17eb8d3..1895d93 100644
--- a/src/api/AiCentre/indicator.js
+++ b/src/api/AiCentre/indicator.js
@@ -42,11 +42,19 @@
}
// 鎸囨爣缁熻
export function Labelstatistics(Id) {
- return request({
+ return request({
url: "/smartor/serviceSubtaskDetail/countPatByTarget/" + Id,
method: "get",
- });
- }
+ });
+}
+// 瀹f暀缁熻
+export function gethelibraryCount(data) {
+ return request({
+ url: "/smartor/serviceSubtask/gethelibraryCount",
+ method: "post",
+ data: data,
+ });
+}
// 鍒犻櫎鎸囨爣
export function deletetarget(userId) {
@@ -106,7 +114,7 @@
return request({
url: "/smartor/assort/selectIvrLibaTargetAssortList",
method: "post",
- data:data,
+ data: data,
});
}
// 鏂板鎸囨爣鍒嗙被
@@ -114,7 +122,7 @@
return request({
url: "/smartor/assort/add",
method: "post",
- data:data,
+ data: data,
});
}
// 鍒犻櫎鎸囨爣鍒嗙被
@@ -129,7 +137,7 @@
return request({
url: "/smartor/assort/addtree",
method: "post",
- data:data,
+ data: data,
});
}
// 鏂板鎸囨爣鍒嗙被鏍�
@@ -137,7 +145,7 @@
return request({
url: "/smartor/assort/edit",
method: "post",
- data:data,
+ data: data,
});
}
// 鏂板鎸囨爣鍒嗙被鏍�
@@ -145,7 +153,7 @@
return request({
url: "/smartor/target/list",
method: "post",
- data:data,
+ data: data,
});
}
// 娴嬭瘯鎸囨爣
@@ -153,7 +161,6 @@
return request({
url: "/smartor/target/targetQuesMate",
method: "post",
- data:data,
+ data: data,
});
}
-
diff --git a/src/components/CallButton/index.vue b/src/components/CallButton/index.vue
index 8e45ab5..d44aee1 100644
--- a/src/components/CallButton/index.vue
+++ b/src/components/CallButton/index.vue
@@ -51,6 +51,7 @@
isRegistering: true, // 鍒濆涓烘敞鍐屼腑鐘舵��
randomNum: randomNum,
randomID: null,
+ orgname: localStorage.getItem("orgname"),
callStatus: "idle", // idle, calling, connected, ended
sipStatus: "鏈繛鎺�",
sipStatusClass: "status-disconnected",
@@ -58,7 +59,7 @@
// 绉婚櫎纭紪鐮佺殑wsUrl鍜宒omain
wsUrl: "",
sipUri: "",
- password: "Smartor@2023",//涓芥按
+ password: "Smartor@2023", //涓芥按
// password: "heskj@1234",//甯備竴
displayName: "Web 灏忛緳",
// realm: "9.208.5.18:8090",
@@ -98,6 +99,15 @@
},
},
created() {
+ if (
+ this.orgname == "绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯" ||
+ this.orgname == "绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯"
+ ) {
+ this.sipConfig.password = "heskj@1234";
+ } else {
+ this.sipConfig.password = "Smartor@2023";
+ }
+
// CallgetList();
},
@@ -200,7 +210,10 @@
this.sipConfig.sipUri = `${this.randomNum}@192.168.10.124`;
} else if (orgName == "榫欐硥甯備汉姘戝尰闄�") {
this.sipConfig.sipUri = `${this.randomNum}@10.10.0.220`;
- } else if (orgName == "绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯"||orgName == "绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯") {
+ } else if (
+ orgName == "绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯" ||
+ orgName == "绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯"
+ ) {
this.sipConfig.sipUri = `${this.randomNum}@192.169.129.198`;
}
} catch (error) {
diff --git a/src/store/getters.js b/src/store/getters.js
index 6b8973c..c7b3887 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -755,13 +755,29 @@
// },
// },
{
- value: "13",
+ value: 13,
label: "涓撶梾闅忚",
raw: {
cssClass: "",
listClass: "",
},
},
+ {
+ value: 17,
+ label: "瀹f暀鍏虫��锛堝叆闄級",
+ raw: {
+ cssClass: "",
+ listClass: "",
+ },
+ },
+ {
+ value: 18,
+ label: "鍏ラ櫌闅忚",
+ raw: {
+ cssClass: "",
+ listClass: "",
+ },
+ },
],
};
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 98f1b61..bd78301 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -13,7 +13,7 @@
belongDepts: [],
roles: [],
permissions: [],
- satisfactionCategories:{},
+ satisfactionCategories: {},
// 鏈嶅姟绫诲瀷
Serviceauthority: [
{
@@ -113,7 +113,7 @@
SET_hisUserId: (state, hisUserId) => {
state.hisUserId = hisUserId;
},
- SET_satisfactionCategories: (state, satisfactionCategories) => {
+ SET_satisfactionCategories: (state, satisfactionCategories) => {
state.satisfactionCategories = satisfactionCategories;
},
SET_leaveldeptcodes: (state, belongDepts) => {
@@ -132,7 +132,8 @@
const campusid = userInfo.campusid;
const orgid = userInfo.orgid;
- console.log(orgid, campusid, "88");
+ const orgname = userInfo.orgname;
+ console.log(orgname, campusid, "88");
return new Promise((resolve, reject) => {
login(username, password, code, orgid, campusid)
@@ -195,7 +196,10 @@
localStorage.setItem("YongHuID", "1478905109432766464");
localStorage.setItem("YongHuXM", "LQRMYY");
} else if (orgid == "20001001") {
- localStorage.setItem("orgname", "鐪佺珛鍚屽痉缈犺嫅闄㈠尯");
+ orgname == "鍗楀崕闄勪竴"
+ ? localStorage.setItem("orgname", "鍗楀崕澶у闄勫睘绗竴鍖婚櫌")
+ : localStorage.setItem("orgname", "鐪佺珛鍚屽痉缈犺嫅闄㈠尯");
+
localStorage.setItem("ZuHuID", "");
localStorage.setItem("deptCode", "");
localStorage.setItem("YongHuID", "");
diff --git a/src/views/followvisit/beHospitalized/followUp.vue b/src/views/followvisit/beHospitalized/followUp.vue
new file mode 100644
index 0000000..767dac2
--- /dev/null
+++ b/src/views/followvisit/beHospitalized/followUp.vue
@@ -0,0 +1,2294 @@
+<template>
+ <div class="app-container">
+ <div class="leftvlue" style="margin-bottom: 20px">
+ <el-row :gutter="10">
+ <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
+ <el-card
+ shadow="hover"
+ :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
+ >
+ <div style="padding: 8px" @click="$router.push(item.router)">
+ <span>{{ item.name }}</span>
+ <div
+ style="
+ text-align: center;
+ font-size: 18px;
+ margin-top: 10px;
+ font-weight: 600;
+ "
+ >
+ {{ item.value ? item.value : 0 }}
+ </div>
+ </div>
+ </el-card>
+ </el-col>
+ <el-col :span="2.5">
+ <div class="ysfleftvlue">
+ <el-card shadow="hover">
+ <div style="padding: 8px">
+ <span>琛ㄥ崟宸插彂閫�</span>
+ <div
+ style="
+ text-align: center;
+ font-size: 18px;
+ margin-top: 10px;
+ font-weight: 600;
+ "
+ >
+ {{ yfsvalue }}
+ </div>
+ </div>
+ </el-card>
+ </div>
+ </el-col>
+ <el-col :span="2.5">
+ <div class="errleftvlue">
+ <el-card shadow="hover">
+ <div style="padding: 8px">
+ <span>寮傚父</span>
+ <div
+ style="
+ text-align: center;
+ font-size: 18px;
+ margin-top: 10px;
+ font-weight: 600;
+ "
+ >
+ {{ ycvalue }}
+ </div>
+ </div>
+ </el-card>
+ </div>
+ </el-col>
+ <el-col :span="2.5" v-if="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'">
+ <div class="jgleftvlue">
+ <el-card shadow="hover ">
+ <div style="padding: 8px">
+ <span>璀﹀憡</span>
+ <div
+ style="
+ text-align: center;
+ font-size: 18px;
+ margin-top: 10px;
+ font-weight: 600;
+ "
+ >
+ {{ jgvalue }}
+ </div>
+ </div>
+ </el-card>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ <el-row :gutter="20">
+ <!--鐢ㄦ埛鏁版嵁-->
+ <el-form
+ :model="topqueryParams"
+ ref="queryForm"
+ size="small"
+ :inline="true"
+ v-show="showSearch"
+ label-width="98px"
+ >
+ <el-form-item label="浠诲姟鍚嶇О">
+ <el-input
+ v-model="topqueryParams.taskName"
+ placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
+ ></el-input>
+ </el-form-item>
+
+ <el-form-item label="鍑洪櫌鏃堕棿">
+ <el-date-picker
+ v-model="dateRange"
+ style="width: 240px"
+ value-format="yyyy-MM-dd"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item label="搴旈殢璁挎椂闂�">
+ <el-date-picker
+ v-model="dateRangefs"
+ style="width: 240px"
+ value-format="yyyy-MM-dd"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+
+ <el-form-item label="鎮h�呭鍚�" prop="sendname">
+ <el-input
+ v-model="topqueryParams.sendname"
+ placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="璇婃柇鍚嶇О" prop="leavediagname">
+ <el-input
+ v-model="topqueryParams.leavediagname"
+ placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="闅忚浜哄憳" prop="updateBy">
+ <el-input
+ v-model="topqueryParams.updateBy"
+ placeholder="璇疯緭鍏ラ殢璁夸汉鍛�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="涓绘不鍖荤敓" prop="drname">
+ <el-input
+ v-model="topqueryParams.drname"
+ placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="缁忕鍖荤敓" prop="managementDoctor">
+ <el-input
+ v-model="topqueryParams.managementDoctor"
+ placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鏃ユ湡闄愬埗" prop="status">
+ <el-select v-model="endOut" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in endOuts"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎮h�呰寖鍥�" prop="status">
+ <el-cascader
+ v-model="topqueryParams.scopetype"
+ placeholder="榛樿鍏ㄩ儴"
+ :options="sourcetype"
+ :props="{ expandTrigger: 'hover' }"
+ @change="handleChange"
+ ></el-cascader>
+ </el-form-item>
+
+ <el-form-item label="浠诲姟鐘舵��" prop="status">
+ <el-select v-model="topqueryParams.sendstate" 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.sort" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in topicoptionssort"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+
+ <el-form-item>
+ <el-button
+ type="primary"
+ icon="el-icon-search"
+ size="medium"
+ @click="handleQuery(1)"
+ >鎼滅储</el-button
+ >
+ <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
+ >閲嶇疆</el-button
+ >
+ </el-form-item>
+ </el-form>
+ <el-divider></el-divider>
+ <el-row :gutter="10" class="mb8">
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-upload2"
+ size="medium"
+ @click="handleExport"
+ >瀵煎嚭</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button
+ type="primary"
+ icon="el-icon-plus"
+ size="medium"
+ @click="handleAdd"
+ >鏂板</el-button
+ >
+ </el-col>
+
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-warning-outline"
+ size="medium"
+ @click="toleadExport(1)"
+ >鎵ц澶辫触</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="danger"
+ plain
+ icon="el-icon-warning"
+ size="medium"
+ @click="toleadExport(2)"
+ >缁撴灉寮傚父</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="success"
+ plain
+ size="medium"
+ @click="buidegetTasklist()"
+ >寰呭姙鏈嶅姟</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button type="primary" size="medium" @click="affiliation()"
+ >鏈汉鎵�灞炴湇鍔�</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button type="success" size="medium" @click="onthatday()"
+ >浠婃棩鏈嶅姟</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5" v-if="orgname == '鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�'">
+ <div class="documentf">
+ <div class="document">
+ <el-tooltip
+ content="璇峰厛閫変腑鏈嶅姟"
+ placement="top"
+ :disabled="!multiple"
+ >
+ <div class="tooltip-wrapper">
+ <el-button
+ type="primary"
+ :disabled="multiple"
+ class="purple-button"
+ @click="scoreDialogVisible = true"
+ >
+ 婊℃剰搴﹁皟鏌�
+ </el-button>
+ </div>
+ </el-tooltip>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-table
+ v-loading="loading"
+ ref="userform"
+ :data="userList"
+ :row-class-name="tableRowClassName"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="50" align="center" />
+ <el-table-column
+ label="浠诲姟鍚嶇О"
+ fixed
+ width="150"
+ show-overflow-tooltip
+ align="center"
+ key="taskName"
+ prop="taskName"
+ />
+ <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
+ <el-table-column
+ label="濮撳悕"
+ width="100"
+ align="center"
+ key="sendname"
+ prop="sendname"
+ >
+ <template slot-scope="scope">
+ <el-button
+ size="medium"
+ type="text"
+ @click="
+ gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname)
+ "
+ ><span class="button-textsc">{{
+ scope.row.sendname
+ }}</span></el-button
+ >
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="璇婃柇鍚嶇О"
+ align="center"
+ key="leavediagname"
+ prop="leavediagname"
+ width="120"
+ :show-overflow-tooltip="true"
+ >
+ </el-table-column>
+ <el-table-column
+ label="浠诲姟鐘舵��"
+ align="center"
+ key="sendstate"
+ prop="sendstate"
+ width="120"
+ >
+ <template slot-scope="scope">
+ <el-tooltip
+ class="item"
+ effect="dark"
+ :content="scope.row.remark"
+ placement="top-start"
+ >
+ <div v-if="scope.row.sendstate == 1">
+ <el-tag type="primary" :disable-transitions="false"
+ >琛ㄥ崟宸查鍙�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 2">
+ <el-tag type="primary" :disable-transitions="false"
+ >寰呴殢璁�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 3">
+ <el-tag type="success" :disable-transitions="false"
+ >琛ㄥ崟宸插彂閫�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 4">
+ <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+ </div>
+ <div v-if="scope.row.sendstate == 5">
+ <el-tag type="danger" :disable-transitions="false"
+ >鍙戦�佸け璐�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 6">
+ <el-tag type="success" :disable-transitions="false"
+ >宸插畬鎴�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 7">
+ <el-tag type="danger" :disable-transitions="false"
+ >瓒呮椂</el-tag
+ >
+ </div>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column
+ label="浠诲姟寮傚父璇存槑"
+ width="120"
+ align="center"
+ key="remark"
+ prop="remark" -->
+ />
+
+ <el-table-column
+ label="澶勭悊鎰忚"
+ align="center"
+ key="suggest"
+ prop="suggest"
+ width="120"
+ >
+ <template slot-scope="scope">
+ <dict-tag
+ :options="dict.type.sys_suggest"
+ :value="scope.row.suggest"
+ />
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="闅忚瀹屾垚鏃堕棿"
+ sortable
+ align="center"
+ prop="finishtime"
+ width="160"
+ >
+ <template slot-scope="scope">
+ <span>{{ parseTime(scope.row.finishtime) }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鍑洪櫌鏃ユ湡"
+ width="200"
+ align="center"
+ key="endtime"
+ prop="endtime"
+ >
+ <template slot-scope="scope">
+ <span>{{ formatTime(scope.row.endtime) }}</span>
+ </template></el-table-column
+ >
+ <el-table-column
+ label="搴旈殢璁挎棩鏈�"
+ width="200"
+ align="center"
+ key="visitTime"
+ prop="visitTime"
+ >
+ <template slot-scope="scope">
+ <span>{{ formatTime(scope.row.visitTime) }}</span>
+ </template></el-table-column
+ >
+ <!-- 鍘� -->
+ <el-table-column
+ label="涓绘不鍖荤敓"
+ width="120"
+ align="center"
+ key="drname"
+ prop="drname"
+ />
+ <el-table-column
+ v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
+ label="闅忚浜哄憳"
+ align="center"
+ key="updateBy"
+ prop="updateBy"
+ width="120"
+ />
+ <el-table-column
+ v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
+ label="缁忕鍖荤敓"
+ align="center"
+ key="managementDoctor"
+ prop="managementDoctor"
+ width="120"
+ />
+ <el-table-column
+ label="鍑洪櫌澶╂暟"
+ width="120"
+ align="center"
+ key="endDay"
+ prop="endDay"
+ >
+ <template slot-scope="scope">
+ <span>{{ scope.row.endDay ? scope.row.endDay + "澶�" : "" }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="韬唤璇佸彿鐮�"
+ width="200"
+ align="center"
+ key="sfzh"
+ prop="sfzh"
+ />
+ <el-table-column
+ label="鑱旂郴鐢佃瘽"
+ width="200"
+ align="center"
+ key="phone"
+ prop="phone"
+ />
+ <el-table-column
+ label="璐d换鎶ゅ+"
+ width="120"
+ align="center"
+ key="nurseName"
+ prop="nurseName"
+ />
+
+ <!-- <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="鎬у埆"width="100" align="center" key="sex" prop="sex" /> -->
+ <!-- <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" /> -->
+ <el-table-column
+ label="绉戝"
+ align="center"
+ key="deptname"
+ prop="deptname"
+ width="120"
+ >
+ </el-table-column>
+ <el-table-column
+ label="鐥呭尯"
+ align="center"
+ key="leavehospitaldistrictname"
+ prop="leavehospitaldistrictname"
+ width="120"
+ >
+ </el-table-column>
+
+ <el-table-column
+ label="鍑洪櫌闅忚妯℃澘鍚嶇О"
+ align="center"
+ key="templatename"
+ prop="templatename"
+ width="200"
+ />
+ <el-table-column
+ label="浠诲姟鎵ц鏂瑰紡"
+ align="center"
+ key="preachform"
+ prop="preachform"
+ width="160"
+ :show-overflow-tooltip="true"
+ >
+ <template slot-scope="scope">
+ <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column
+ label="浠诲姟鍙戦�佹祦绋�"
+ align="center"
+ key="serviceSubtaskRecordList"
+ prop="serviceSubtaskRecordList"
+ width="160"
+ :show-overflow-tooltip="true"
+ >
+ <template slot-scope="scope">
+ <span v-for="item in scope.row.serviceSubtaskRecordList"
+ >{{ item.remark }}銆�
+ </span>
+ </template>
+ </el-table-column> -->
+ <el-table-column
+ label="浠诲姟缁撴灉璇存槑"
+ width="220"
+ align="center"
+ key="remark"
+ prop="remark"
+ >
+ <template slot-scope="scope" v-if="scope.row.remark">
+ <el-tooltip
+ :content="scope.row.remark"
+ placement="top"
+ effect="dark"
+ >
+ <el-tag
+ type="warning"
+ v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
+ >{{ scope.row.remark }}</el-tag
+ >
+ <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ align="center"
+ fixed="right"
+ width="300"
+ class-name="small-padding fixed-width"
+ >
+ <template slot-scope="scope">
+ <!-- <el-tooltip
+ class="item"
+ effect="dark"
+ content="鍐嶆闅忚"
+ placement="top"
+ >
+ <el-button
+ size="medium"
+ type="text"
+ v-if="scope.row.isVisitAgain!=2"
+ @click="followupvisit(scope.row)"
+ ><span class="button-bb"
+ ><i class="el-icon-s-promotion"></i>鍐嶆闅忚</span
+ ></el-button
+ >
+ </el-tooltip>
+ <el-tooltip
+ v-if="scope.row.sendstate == 1 || scope.row.sendstate == 2"
+ class="item"
+ effect="dark"
+ content="鏆傚仠鏈嶅姟"
+ placement="top"
+ >
+ <el-button
+ size="medium"
+ type="text"
+ @click="handlestop(scope.row)"
+ v-hasPermi="['system:user:edit']"
+ ><span class="button-sc"
+ ><i class="el-icon-remove-outline"></i>鏆傚仠鏈嶅姟</span
+ ></el-button
+ >
+ </el-tooltip> -->
+ <el-button size="medium" type="text" @click="Seedetails(scope.row)"
+ ><span class="button-zx"
+ ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
+ ></el-button
+ >
+ <el-button
+ size="medium"
+ type="text"
+ @click="handleUpdate(scope.row)"
+ ><span class="button-textxga"
+ ><i class="el-icon-edit"></i>鎮h�呰繃婊�</span
+ ></el-button
+ >
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ :page.sync="topqueryParams.pageNum"
+ :limit.sync="topqueryParams.pageSize"
+ @pagination="getList"
+ />
+ </el-row>
+ <!-- 婊℃剰搴﹀脊妗� -->
+ <el-dialog
+ title="闅忚婊℃剰搴﹁瘎鍒�"
+ :visible.sync="scoreDialogVisible"
+ width="80%"
+ :close-on-click-modal="false"
+ >
+ <el-table :data="selectedRows" border style="width: 100%">
+ <el-table-column
+ label="濮撳悕"
+ width="100"
+ align="center"
+ prop="sendname"
+ />
+ <el-table-column
+ label="浠诲姟鍚嶇О"
+ width="180"
+ align="center"
+ prop="taskName"
+ />
+ <!-- 鏂板璇勫垎鍒� -->
+ <el-table-column
+ label="鐪熷疄鎬�(20)"
+ align="center"
+ key="authenticity"
+ prop="authenticity"
+ width="150"
+ >
+ <template slot-scope="scope">
+ <el-input-number
+ v-model="scope.row.authenticity"
+ :min="0"
+ :max="20"
+ :step="1"
+ size="small"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="涓�鍛ㄥ唴瀹屾垚(20)"
+ align="center"
+ key="weekFinish"
+ prop="weekFinish"
+ width="150"
+ >
+ <template slot-scope="scope">
+ <el-input-number
+ v-model="scope.row.weekFinish"
+ :min="0"
+ :max="20"
+ :step="1"
+ size="small"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="瑙勮寖鎬�(10)"
+ align="center"
+ key="standard"
+ prop="standard"
+ width="150"
+ >
+ <template slot-scope="scope">
+ <el-input-number
+ v-model="scope.row.standard"
+ :min="0"
+ :max="10"
+ :step="1"
+ size="small"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鍙婃椂鎬�(10)"
+ align="center"
+ key="timeliness"
+ prop="timeliness"
+ width="150"
+ >
+ <template slot-scope="scope">
+ <el-input-number
+ v-model="scope.row.timeliness"
+ :min="0"
+ :max="10"
+ :step="1"
+ size="small"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="瀹f暀鎯呭喌(10)"
+ align="center"
+ key="library"
+ prop="library"
+ width="150"
+ >
+ <template slot-scope="scope">
+ <el-input-number
+ v-model="scope.row.library"
+ :min="0"
+ :max="10"
+ :step="1"
+ size="small"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鐜婊℃剰搴�(10)"
+ align="center"
+ key="environment"
+ prop="environment"
+ width="150"
+ >
+ <template slot-scope="scope">
+ <el-input-number
+ v-model="scope.row.environment"
+ :min="0"
+ :max="10"
+ :step="1"
+ size="small"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鍖荤敓婊℃剰搴�(10)"
+ align="center"
+ key="doctorSatisfaction"
+ prop="doctorSatisfaction"
+ width="150"
+ >
+ <template slot-scope="scope">
+ <el-input-number
+ v-model="scope.row.doctorSatisfaction"
+ :min="0"
+ :max="10"
+ :step="1"
+ size="small"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎶ゅ+婊℃剰搴�(10)"
+ align="center"
+ key="nurseSatisfaction"
+ prop="nurseSatisfaction"
+ width="150"
+ >
+ <template slot-scope="scope">
+ <el-input-number
+ v-model="scope.row.nurseSatisfaction"
+ :min="0"
+ :max="10"
+ :step="1"
+ size="small"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎬诲垎"
+ align="center"
+ key="total"
+ prop="total"
+ fixed="right"
+ >
+ <template slot-scope="scope">
+ <span>{{ calculateTotal(scope.row) }}</span>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="scoreDialogVisible = false">鍙栨秷</el-button>
+ <el-button type="primary" @click="saveScores">淇濆瓨</el-button>
+ </div>
+ </el-dialog>
+ <!-- 娣诲姞鎴栦慨鏀瑰奖鍍忛殢璁垮璇濇 -->
+ <el-dialog
+ :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
+ :visible.sync="Labelchange"
+ width="900px"
+ >
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="濮撳悕" width="100" prop="name">
+ <el-input
+ v-model="form.name"
+ placeholder="璇疯緭鍏ュ鍚�"
+ maxlength="30"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鎬у埆" width="100" prop="sex">
+ <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
+ <el-option
+ v-for="dict in sextype"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="骞撮緞" prop="age">
+ <el-input
+ v-model="form.age"
+ placeholder="璇疯緭鍏ュ勾榫�"
+ maxlength="30"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="杩囨护鍖荤敓" width="100" prop="filterDrname">
+ <el-input
+ v-model="form.filterDrname"
+ placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+ maxlength="30"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="杩囨护鍘熷洜">
+ <el-input
+ v-model="form.notrequiredreason"
+ type="textarea"
+ placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </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>
+ <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
+ <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>
+ <!-- 鍐嶆闅忚 -->
+ <el-dialog title="鎮h�呭啀娆¢殢璁�" :visible.sync="dialogFormVisible">
+ <el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px">
+ <el-form-item label="浠诲姟鍚嶇О">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.taskName"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鎮h�呭悕绉�">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.sendname"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="骞撮緞">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.age"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="绉戝">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.deptname"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鐥呭尯">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.leavehospitaldistrictname"
+ ></el-input>
+ </el-form-item>
+
+ <el-form-item label="闅忚鏂瑰紡" prop="resource">
+ <el-radio-group v-model="zcform.resource">
+ <el-radio label="1">鏈梾鍖洪殢璁�</el-radio>
+ <el-radio label="2">闅忚涓績闅忚</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <!-- <el-form-item label="鍗冲埢鍙戦��">
+ <el-switch v-model="zcform.delivery"></el-switch>
+ </el-form-item> -->
+ <el-form-item label="鍑洪櫌鏃堕棿">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.endtime"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="闅忚瀹屾垚鏃堕棿" prop="date1">
+ <el-date-picker
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ v-model="zcform.date1"
+ style="width: 100%"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item label="闅忚璁板綍">
+ <el-input type="textarea" v-model="zcform.remark"></el-input>
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="setupsubtask">纭鍒涘缓鏈嶅姟</el-button>
+ </div>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ delUser,
+ addUser,
+ updateUser,
+ resetUserPwd,
+ changeUserStatus,
+} from "@/api/system/user";
+import {
+ getTaskservelist,
+ buidegetTasklist,
+ addserviceSubtask,
+ query360PatInfo,
+ addsatisfaction,
+} from "@/api/AiCentre/index";
+import { alterpatient, particularpatient } from "@/api/patient/homepage";
+import Treeselect from "@riophae/vue-treeselect";
+import store from "@/store";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+ name: "Discharge",
+ dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+ components: { Treeselect },
+ data() {
+ return {
+ // 閬僵灞�
+ loading: true,
+ // 閫変腑鏁扮粍
+ ids: [],
+ // 闈炲崟涓鐢�
+ single: true,
+ // 闈炲涓鐢�
+ multiple: true,
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ dialogFormVisible: false,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+ userList: null,
+ // 寮瑰嚭灞傛爣棰�
+ title: "鏂板褰卞儚闅忚",
+ // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
+ addalteropen: false,
+ // 淇敼鍙戦�佹椂闂村璇濇
+ modificationVisible: false,
+ // 閮ㄩ棬鍚嶇О
+ deptName: undefined,
+ // 榛樿瀵嗙爜
+ initPassword: undefined,
+ // 鏃ユ湡鑼冨洿
+ dateRange: [],
+ dateRangefs: [],
+ // 宀椾綅閫夐」
+ postOptions: [],
+ ruleForm: {
+ type: [],
+ },
+ zcform: {},
+ dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
+ inputVisible: false,
+ Labelchange: false,
+ ycvalue: "",
+ jgvalue: "",
+ yfsvalue: "",
+ inputValue: "",
+ preachform: "",
+ previewVisible: false, //褰卞儚闅忚棰勮寮规
+ radio: "",
+ radios: [],
+ previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
+ total: 0, // 鎬绘潯鏁�
+ // 婊℃剰搴﹁皟鏌ユ暟鎹�
+ scoreDialogVisible: false,
+ selectedRows: [],
+
+ value: [],
+ list: [],
+
+ sourcetype: [
+ {
+ value: 1,
+ label: "绉戝",
+ children: [],
+ },
+ {
+ value: 2,
+ label: "鐥呭尯",
+ children: [],
+ },
+ {
+ value: 3,
+ label: "鍏ㄩ儴",
+ },
+ ],
+ loading: false,
+ cardlist: [
+ {
+ name: "鍑洪櫌鏈嶅姟鎬婚噺",
+ value: 0,
+ },
+ // {
+ // name: "鎮h�呰繃婊�",
+ // value: 0,
+ // },
+ {
+ name: "闇�闅忚",
+ value: 0,
+ },
+ {
+ name: "鍙戦�佸け璐�",
+ value: 0,
+ },
+ {
+ name: "寰呴殢璁�",
+ value: 0,
+ },
+ // {
+ // name: "宸插彂閫�",
+ // value: 0,
+ // },
+
+ // {
+ // name: "琛ㄥ崟宸插彂閫�",
+ // value: 0,
+ // },
+ ],
+ zcrules: {
+ date1: [
+ { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
+ ],
+ resource: [
+ { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" },
+ ],
+ },
+ // 琛ㄥ崟鍙傛暟
+ form: {
+ phonenumber: "",
+ totagid: "",
+ types: "",
+ nickName: "",
+ qystatus: "",
+ btstatus: "",
+ },
+ // endOut: 1,
+ endOut: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+ endOuts: [
+ {
+ value: 0,
+ label: "鎴鑷冲綋鏃ユ湇鍔�",
+ },
+ {
+ value: 1,
+ label: "鍏ㄩ儴鏈嶅姟",
+ },
+ ],
+ topicoptionssort: [
+ {
+ value: 0,
+ label: "鍑洪櫌鏃堕棿(姝e簭)",
+ },
+ {
+ value: 1,
+ label: "鍑洪櫌鏃堕棿(鍊掑簭)",
+ },
+ {
+ value: 2,
+ label: "鍙戦�佹椂闂�(姝e簭)",
+ },
+ {
+ value: 3,
+ label: "鍙戦�佹椂闂�(鍊掑簭)",
+ },
+ {
+ value: 7,
+ label: "搴旈殢璁挎棩鏈�(姝e簭)",
+ },
+ {
+ value: 8,
+ label: "搴旈殢璁挎棩鏈�(鍊掑簭)",
+ },
+ {
+ value: 9,
+ label: "鎸夌収鎮h�呮帓搴�",
+ },
+ ],
+ // 鏌ヨ鍙傛暟
+ topqueryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ sendstate:
+ localStorage.getItem("orgname") == "鐪佺珛鍚屽痉缈犺嫅闄㈠尯" ? null : 2,
+ sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 2, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+ serviceType: 18,
+ searchscope: 3,
+ visitCount: 1,
+ scopetype: [],
+ leaveldeptcodes: [],
+ leavehospitaldistrictcodes: [],
+ },
+ orgname: "",
+ propss: { multiple: true },
+ options: [],
+
+ topicoptions: [
+ {
+ value: null,
+ label: "鍏ㄩ儴",
+ },
+ {
+ value: 1,
+ label: "琛ㄥ崟宸查鍙�",
+ },
+ {
+ value: 2,
+ label: "寰呴殢璁�",
+ },
+ {
+ value: 3,
+ label: "琛ㄥ崟宸插彂閫�",
+ },
+ {
+ value: 4,
+ label: "涓嶆墽琛�",
+ },
+ {
+ value: 5,
+ label: "鍙戦�佸け璐�",
+ },
+ {
+ value: 6,
+ label: "宸插畬鎴�",
+ },
+ {
+ value: 7,
+ label: "瓒呮椂",
+ },
+ ],
+ sextype: [
+ {
+ value: 1,
+ label: "鐢�",
+ },
+ {
+ value: 2,
+ label: "濂�",
+ },
+ ],
+ topicoptionsyj: [
+ {
+ value: 1,
+ label: "寮傚父",
+ },
+ {
+ value: 2,
+ label: "璀﹀憡",
+ },
+ {
+ value: 0,
+ label: "姝e父",
+ },
+ ],
+ url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo",
+ postData: {
+ XiaoXiTou: {
+ FaSongFCSJC: "ZJHES",
+ FaSongJGID: localStorage.getItem("orgid"),
+ FaSongJGMC: localStorage.getItem("orgname"),
+ FaSongSJ: "2025-01-09聽17:29:36",
+ FaSongXTJC: "SUIFANGXT",
+ FaSongXTMC: "闅忚绯荤粺",
+ XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171",
+ XiaoXiLX: "SC_LC_360STCX",
+ XiaoXiMC: "360聽瑙嗗浘鏌ヨ",
+ ZuHuID: localStorage.getItem("ZuHuID"),
+ ZuHuMC: localStorage.getItem("orgname"),
+ },
+ YeWuXX: {
+ BingRenXX: {
+ ZhengJianHM: "",
+ ZhengJianLXDM: "01",
+ ZhengJianLXMC: "灞呮皯韬唤璇�",
+ ZuZhiJGID: localStorage.getItem("orgid"),
+ ZuZhiJGMC: localStorage.getItem("orgname"),
+ },
+ YongHuXX: {
+ XiTongID: "SUIFANGXT",
+ XiTongMC: "闅忚绯荤粺",
+ YongHuID: localStorage.getItem("YongHuID"),
+ YongHuXM: localStorage.getItem("YongHuXM"),
+ ZuZhiJGID: localStorage.getItem("orgid"),
+ ZuZhiJGMC: localStorage.getItem("orgname"),
+ idp: "lyra",
+ },
+ },
+ },
+ amendtag: false,
+ errtype: "",
+ leavehospitaldistrictcode: "",
+ serviceState: [],
+ checkboxlist: [],
+ // 琛ㄥ崟鏍¢獙
+ rules: {},
+ };
+ },
+ watch: {
+ // 鐩戝惉璺敱鍙傛暟鍙樺寲
+ "$route.query": {
+ handler(newQuery, oldQuery) {
+ if (newQuery.errtype !== oldQuery.errtype) {
+ console.log(22);
+
+ this.loadData(); // 閲嶆柊鍔犺浇鏁版嵁
+ }
+ },
+ immediate: true,
+ },
+ },
+ created() {
+ this.serviceState = store.getters.serviceState;
+ this.checkboxlist = store.getters.checkboxlist;
+ this.orgname = localStorage.getItem("orgname");
+ this.errtype = this.$route.query.errtype;
+
+ this.leavehospitaldistrictcode =
+ this.$route.query.leavehospitaldistrictcode;
+ this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
+ return {
+ label: dept.deptName,
+ value: dept.deptCode,
+ };
+ });
+ this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
+ return {
+ label: dept.districtName,
+ value: dept.districtCode,
+ };
+ });
+ if (this.errtype == 1) {
+ this.toleadExport(2);
+ } else if (this.errtype == 2) {
+ // 寰呴殢璁�
+ this.toleadExport(3);
+ } else if (this.errtype == 3) {
+ // 澶辫触
+ this.toleadExport(4);
+ } else if (this.errtype == 4) {
+ // 寮傚父
+ this.toleadExport(2);
+ } else if (this.errtype == 5) {
+ // 鍏ㄩ儴
+ this.toleadExport(5);
+ } else {
+ this.getList(1);
+ }
+ this.getConfigKey("sys.user.initPassword").then((response) => {
+ this.initPassword = response.msg;
+ });
+ },
+ activated() {
+ this.errtype = this.$route.query.errtype;
+ if (this.errtype == 1) {
+ this.toleadExport(2);
+ } else if (this.errtype == 2) {
+ // 寰呴殢璁�
+ this.toleadExport(3);
+ } else if (this.errtype == 3) {
+ // 澶辫触
+ this.toleadExport(4);
+ } else if (this.errtype == 4) {
+ // 寮傚父
+ this.toleadExport(2);
+ } else if (this.errtype == 5) {
+ // 鍏ㄩ儴
+ this.toleadExport(5);
+ } else {
+ this.getList(1);
+ }
+ },
+ methods: {
+ /** 鏌ヨ闅忚鏈嶅姟鍒楄〃 */
+ getList(refresh) {
+ // 榛樿鍏ㄩ儴
+ if (this.topqueryParams.searchscope == 3) {
+ this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ if (this.endOut == 0) {
+ this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS(
+ this.getEndOfDay()
+ );
+ } else {
+ // this.topqueryParams.endSendDateTime = null;
+ }
+ // 鎺ュ彈寮傚父璺宠浆
+ if (this.errtype) {
+ this.topqueryParams.leavehospitaldistrictcodes.push(
+ this.leavehospitaldistrictcode
+ );
+ }
+ this.loading = true;
+ if (
+ this.topqueryParams.leavehospitaldistrictcodes[0] &&
+ this.topqueryParams.leaveldeptcodes[0]
+ ) {
+ this.topqueryParams.deptOrDistrict = 2;
+ } else {
+ this.topqueryParams.deptOrDistrict = 1;
+ }
+ getTaskservelist(this.topqueryParams).then((response) => {
+ this.userList = response.rows[0].serviceSubtaskList;
+ this.total = response.total;
+ if (refresh) {
+ this.cardlist[0].value =
+ Number(response.rows[0].wzx) +
+ Number(response.rows[0].ysf) +
+ Number(response.rows[0].fssb);
+ // this.cardlist[1].value = response.rows[0].wzx;
+ this.cardlist[1].value = response.rows[0].ysf;
+ this.ycvalue = response.rows[0].yc;
+ this.jgvalue = response.rows[0].jg;
+ this.cardlist[2].value = response.rows[0].fssb;
+ this.cardlist[3].value = response.rows[0].dsf;
+ // this.cardlist[4].value = response.rows[0].yfs2;
+ this.yfsvalue = response.rows[0].yfs;
+ }
+ this.loading = false;
+ this.userList.forEach((item) => {
+ let idArray = null;
+ if (item.endtime) {
+ item.endDay = this.daysBetween(item.endtime);
+ }
+
+ if (item.preachform) {
+ if (item.endtime) {
+ item.preachformson = item.preachform;
+ idArray = item.preachform.split(",");
+ }
+
+ item.preachform = idArray.map((value) => {
+ // 鏌ユ壘id瀵瑰簲鐨勫璞�
+ const item = this.checkboxlist.find(
+ (item) => item.value == value
+ );
+ // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+ return item ? item.label : null;
+ });
+ }
+ });
+ this.total = response.total;
+ });
+ },
+ loadData() {
+ this.errtype = this.$route.query.errtype;
+ if (this.errtype == 1) {
+ this.toleadExport(2);
+ } else if (this.errtype == 2) {
+ // 寰呴殢璁�
+ this.toleadExport(3);
+ } else if (this.errtype == 3) {
+ // 澶辫触
+ this.toleadExport(4);
+ } else if (this.errtype == 4) {
+ // 寮傚父
+ this.toleadExport(2);
+ } else if (this.errtype == 5) {
+ // 鍏ㄩ儴
+ this.toleadExport(5);
+ } else {
+ this.getList(1);
+ }
+ },
+ // 鏃堕棿
+ getEndOfDay() {
+ const date = new Date(); // 鍒涘缓涓�涓〃绀哄綋鍓嶆椂闂寸殑Date瀵硅薄
+ date.setHours(23, 59, 59, 0); // 灏嗘椂闂磋缃负23:59:59.000
+ return date;
+ },
+ formatDateToYYYYMMDDHHMMSS(date) {
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, "0"); // 鏈堜唤琛ラ浂
+ const day = String(date.getDate()).padStart(2, "0"); // 鏃ユ湡琛ラ浂
+ const hours = String(date.getHours()).padStart(2, "0");
+ const minutes = String(date.getMinutes()).padStart(2, "0");
+ const seconds = String(date.getSeconds()).padStart(2, "0");
+
+ return `${year}-${month}-${day}`;
+ },
+ affiliation() {
+ this.topqueryParams.managementDoctorCode = store.getters.hisUserId;
+ this.getList(1);
+ },
+ onthatday() {
+ this.topqueryParams.startSendDateTime = this.getCurrentDate();
+ this.topqueryParams.endSendDateTime = this.getCurrentDate();
+ this.getList(1);
+ },
+ getCurrentDate() {
+ const now = new Date();
+ return now.toISOString().slice(0, 10); // 鎴彇鍓�10涓瓧绗︼紝鍗� YYYY-MM-DD
+ },
+ buidegetTasklist(type) {
+ if (this.topqueryParams.searchscope == 3) {
+ this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ // 鎺ュ彈寮傚父璺宠浆
+ if (this.errtype) {
+ this.topqueryParams.leavehospitaldistrictcodes.push(
+ this.leavehospitaldistrictcode
+ );
+ }
+ let obj = {
+ pageNum: 1,
+ pageSize: 10,
+ leavehospitaldistrictcodes:
+ this.topqueryParams.leavehospitaldistrictcodes,
+ sendstates: [2, 3],
+ leaveldeptcodes: this.topqueryParams.leaveldeptcodes,
+ };
+ buidegetTasklist(obj).then((response) => {
+ this.userList = response.rows[0].serviceSubtaskList;
+ this.total = response.total;
+ this.cardlist[0].value =
+ Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+ this.cardlist[1].value = response.rows[0].wzx;
+ this.cardlist[2].value = response.rows[0].ysf;
+ this.ycvalue = response.rows[0].yc;
+ this.jgvalue = response.rows[0].jg;
+ this.cardlist[3].value = response.rows[0].fssb;
+ this.cardlist[4].value = response.rows[0].dsf;
+ // this.cardlist[5].value = response.rows[0].yfs2;
+ this.yfsvalue = response.rows[0].yfs;
+ this.loading = false;
+ this.userList.forEach((item) => {
+ let idArray = null;
+ if (item.endtime) {
+ item.endDay = this.daysBetween(item.endtime);
+ }
+
+ if (item.preachform) {
+ if (item.endtime) {
+ item.preachformson = item.preachform;
+ idArray = item.preachform.split(",");
+ }
+
+ item.preachform = idArray.map((value) => {
+ // 鏌ユ壘id瀵瑰簲鐨勫璞�
+ const item = this.checkboxlist.find(
+ (item) => item.value == value
+ );
+ // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+ return item ? item.label : null;
+ });
+ }
+ });
+ this.total = response.total;
+ });
+ },
+ // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
+ Referencequestion(row) {
+ this.previewVisible = true;
+ },
+ // 娣诲姞寮规鎼滅储
+ remoteMethod(query) {
+ if (query !== "") {
+ this.loading = true;
+ setTimeout(() => {
+ this.loading = false;
+ this.options = this.list.filter((item) => {
+ return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
+ });
+ }, 200);
+ } else {
+ this.options = [];
+ }
+ },
+ // 褰卞儚闅忚鐘舵�佷慨鏀�
+ handleStatusChange(row) {
+ let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
+ this.$modal
+ .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵')
+ .then(function () {
+ return changeUserStatus(row.userId, row.status);
+ })
+ .then(() => {
+ this.$modal.msgSuccess(text + "鎴愬姛");
+ })
+ .catch(function () {
+ row.status = row.status === "0" ? "1" : "0";
+ });
+ },
+
+ // 琛ㄥ崟閲嶇疆
+ reset() {
+ this.form = {
+ userId: undefined,
+ deptId: undefined,
+ userName: undefined,
+ nickName: undefined,
+ password: undefined,
+ phonenumber: undefined,
+ email: undefined,
+ sex: undefined,
+ status: "0",
+ remark: undefined,
+ postIds: [],
+ roleIds: [],
+ };
+ this.resetForm("form");
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery(refresh) {
+ if (this.topqueryParams.searchscope == 3) {
+ this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ this.topqueryParams.pageNum = 1;
+ // 鍒ゆ柇鏄笉鏄伐浣滃彴蹇嵎鏌ヨ
+ if (this.errtype != 2) {
+ this.topqueryParams.startOutHospTime = this.dateRange[0];
+ this.topqueryParams.endOutHospTime = this.dateRange[1];
+ this.topqueryParams.startSendDateTime = this.dateRangefs[0];
+ this.topqueryParams.endSendDateTime = this.dateRangefs[1];
+ }
+ this.getList(refresh);
+ },
+ // 鎮h�呰寖鍥村鐞�
+ handleChange(value) {
+ let type = value[0];
+ let code = value.slice(-1)[0];
+ this.topqueryParams.leavehospitaldistrictcodes = [];
+ this.topqueryParams.leaveldeptcodes = [];
+ if (type == 1) {
+ this.topqueryParams.leaveldeptcodes.push(code);
+ this.topqueryParams.leavehospitaldistrictcodes = [];
+ this.topqueryParams.searchscope = 1;
+ } else if (type == 2) {
+ this.topqueryParams.leavehospitaldistrictcodes.push(code);
+ this.topqueryParams.leaveldeptcodes = [];
+ this.topqueryParams.searchscope = 2;
+ } else {
+ this.topqueryParams.searchscope = 3;
+ }
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.dateRange = [];
+ this.dateRangefs = [];
+ this.topqueryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ sendstate: 2,
+ sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭)
+ serviceType: 18,
+ searchscope: 3,
+ visitCount: 1,
+ scopetype: [],
+ leaveldeptcodes: [],
+ leavehospitaldistrictcodes: [],
+ };
+ this.handleQuery(1);
+ },
+ handleSelectionChange(rows) {
+ this.selectedRows = rows.map((row) => {
+ // 鍒濆鍖栬瘎鍒嗗瓧娈�
+ return {
+ ...row,
+ authenticity: row.authenticity || 0,
+ weekFinish: row.weekFinish || 0,
+ standard: row.standard || 0,
+ timeliness: row.timeliness || 0,
+ library: row.library || 0,
+ environment: row.environment || 0,
+ doctorSatisfaction: row.doctorSatisfaction || 0,
+ nurseSatisfaction: row.nurseSatisfaction || 0,
+ };
+ });
+
+ if (this.selectedRows.length > 0) {
+ this.multiple = false;
+ } else {
+ this.multiple = true;
+ }
+ },
+
+ // 璁$畻鎬诲垎
+ calculateTotal(row) {
+ return (
+ (row.authenticity || 0) +
+ (row.weekFinish || 0) +
+ (row.standard || 0) +
+ (row.timeliness || 0) +
+ (row.library || 0) +
+ (row.environment || 0) +
+ (row.doctorSatisfaction || 0) +
+ (row.nurseSatisfaction || 0)
+ );
+ },
+
+ // 淇濆瓨璇勫垎
+ saveScores() {
+ this.selectedRows.forEach((item) => {
+ item.createBy = null;
+ item.patName = item.sendname;
+ item.hospitaldistrictname = item.leavehospitaldistrictname;
+ });
+ addsatisfaction(this.selectedRows).then((res) => {
+ if (res.code == 200) {
+ this.$message.success("璇勫垎淇濆瓨鎴愬姛");
+ this.scoreDialogVisible = false;
+ this.selectedRows = [];
+ this.$refs.userform.clearSelection();
+ } else {
+ this.$modal.msgWarning("璇勫垎淇濆瓨澶辫触");
+ this.scoreDialogVisible = false;
+ this.selectedRows = [];
+ this.$refs.userform.clearSelection();
+ }
+ });
+ // 杩欓噷鍙互娣诲姞淇濆瓨閫昏緫锛屽璋冪敤API淇濆瓨璇勫垎
+ },
+ //鍒犻櫎閫夐」
+ handleClose(tag) {
+ this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+ },
+ //瑙﹀彂鏂板杈撳叆
+ showInput() {
+ this.inputVisible = true;
+ this.$nextTick((_) => {
+ this.$refs.saveTagInput.$refs.input.focus();
+ });
+ },
+ //鑾峰彇澶卞幓鐒︾偣瑙﹀彂
+ handleInputConfirm() {
+ let inputValue = this.inputValue;
+ if (inputValue) {
+ this.dynamicTags.push(inputValue);
+ }
+ this.inputVisible = false;
+ this.inputValue = "";
+ },
+ /** 鏂板鎸夐挳鎿嶄綔 */
+ handleAdd() {
+ this.$router.push({
+ path: "/followvisit/QuestionnaireTask",
+ query: {
+ type: 2,
+ serviceType: 18,
+ },
+ });
+ },
+ //鎮h��360璺宠浆
+ gettoken360(sfzh, drcode, drname) {
+ // this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�");
+
+ this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
+
+ query360PatInfo(this.postData).then((res) => {
+ if (res.data.url) {
+ window.open(res.data.url, "_blank");
+ // this.linkUrl = res.data.url;
+ } else {
+ this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+ }
+ });
+ },
+
+ /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
+ handleResetPwd(row) {
+ this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ closeOnClickModal: false,
+ inputPattern: /^.{5,20}$/,
+ inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
+ })
+ .then(({ value }) => {
+ resetUserPwd(row.userId, value).then((response) => {
+ this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value);
+ });
+ })
+ .catch(() => {});
+ },
+ // 鍙栨秷鎸夐挳
+ cancel() {
+ this.Labelchange = false;
+ this.reset();
+ },
+ /** 鎻愪氦鎸夐挳 */
+ submitForm: function () {
+ this.$refs["form"].validate((valid) => {
+ if (valid) {
+ this.form.isoperation = 2;
+ this.form.notrequiredFlag = 1;
+ alterpatient(this.form)
+ .then((response) => {
+ console.log(response);
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgSuccess("鎮h�呰繃婊ゆ垚鍔�");
+ });
+
+ this.reset();
+ this.Labelchange = false;
+ }
+ });
+ },
+ /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+ handleDelete(row) {
+ const userIds = row.userId || this.ids;
+ this.$modal
+ .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
+ .then(function () {
+ return delUser(userIds);
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ // 鍏ㄩ儴鍋滄
+ AllStop() {
+ this.$modal
+ .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+ .then(function () {
+ return console.log("鍋滄鎴愬姛");
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgWarning("鍋滄鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ // 鍏ㄩ儴寮�濮�
+ AllStarted() {
+ this.$modal
+ .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+ .then(function () {
+ return console.log("寮�鍚垚鍔�");
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgSuccess("寮�鍚垚鍔�");
+ })
+ .catch(() => {});
+ },
+ // 浠诲姟閲嶇疆
+ TaskReset() {
+ this.$modal
+ .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+ .then(function () {
+ return console.log("閫変腑鎴愬姛");
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgSuccess("閲嶇疆鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ // 璁剧疆鍙戦�佹椂闂�
+ Sendtimesetting() {
+ this.modificationVisible = true;
+ },
+ // 璺宠浆璇︽儏椤�
+ Seedetails(row) {
+ let type = "";
+ console.log(row, "rwo");
+ if (row.type == 1) {
+ type = 1;
+ }
+ this.$router.push({
+ path: "/followvisit/record/detailpage/",
+ query: {
+ taskid: row.taskid,
+ patid: row.patid,
+ id: row.id,
+ Voicetype: type,
+ visitCount: this.topqueryParams.visitCount,
+ },
+ });
+ },
+ // 鍐嶆闅忚
+ followupvisit(row) {
+ this.zcform = row;
+ this.zcform.endtime = this.formatTime(this.zcform.endtime);
+ this.dialogFormVisible = true;
+ },
+ onSubmit() {},
+ // 鏆傚仠鏈嶅姟
+ handlestop(row) {
+ let objson = row;
+ this.$modal
+ .confirm(
+ '鏄惁纭鏆傚仠浠诲姟鍚嶇О涓�"' +
+ row.taskName +
+ '鎮h�呭悕绉颁负"' +
+ row.sendname +
+ '"鐨勬暟鎹」锛�'
+ )
+ .then(() => {
+ getTaskservelist({
+ patid: row.patid,
+ taskid: row.taskid,
+ }).then((res) => {
+ if (res.code == 200) {
+ objson.sendstate = 4;
+ objson.remark = "鏈嶅姟鏆傚仠";
+ Editsingletaskson(objson).then((res) => {
+ if (res.code) {
+ this.$modal.msgSuccess("璁板綍鎴愬姛");
+ this.getList(1);
+ }
+ });
+ }
+ });
+ })
+ .catch(() => {});
+ },
+ // 鎮h�呰繃婊よЕ鍙�
+ handleUpdate(row) {
+ particularpatient(row.patid).then((response) => {
+ this.form = response.data;
+ this.form.filterDrname = store.getters.nickName;
+ });
+ this.amendtag = true;
+ this.Labelchange = true;
+ },
+ // 渚挎嵎鎸夐挳
+ toleadExport(too) {
+ console.log(too, "too");
+
+ if (too == 1) {
+ this.topqueryParams.sendstate = 4;
+ this.topqueryParams.excep = null;
+ } else if (too == 2) {
+ this.topqueryParams.excep = 1;
+ this.topqueryParams.sendstate = null;
+ } else if (too == 3) {
+ this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS(
+ this.getEndOfDay()
+ );
+ console.log(1111, this.topqueryParams.endSendDateTime);
+
+ this.topqueryParams.excep = null;
+ this.topqueryParams.sendstate = 2;
+ this.topqueryParams.scopetype = null;
+ } else if (too == 4) {
+ this.topqueryParams.excep = null;
+ this.topqueryParams.sendstate = 5;
+ this.topqueryParams.scopetype = null;
+ } else if (too == 5) {
+ this.topqueryParams.excep = null;
+ this.topqueryParams.sendstate = null;
+ this.topqueryParams.scopetype = null;
+ }
+ this.handleQuery(1);
+ },
+ /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+ handleExport() {
+ this.topqueryParams.pageNum = null;
+ this.topqueryParams.pageSize = null;
+ this.download(
+ "smartor/serviceSubtask/patItemExport",
+ {
+ ...this.topqueryParams,
+ },
+ `user_${new Date().getTime()}.xlsx`,
+ );
+ },
+ // 寮傚父鍒楁覆鏌�
+ tableRowClassName({ row, rowIndex }) {
+ if (row.excep == 1) {
+ return "warning-row";
+ } else if (row.excep == 2) {
+ return "remind-row";
+ }
+ return "";
+ },
+ // 鍒涘缓鍐嶆闅忚鏈嶅姟
+ setupsubtask() {
+ this.$refs["zcform"].validate((valid) => {
+ if (valid) {
+ this.zcform.remark =
+ this.zcform.remark + "銆�" + this.getCurrentTime() + "銆�";
+ let form = structuredClone(this.zcform);
+ form.visitTime = this.formatTime(form.date1);
+ form.finishtime = "";
+ if (form.resource) {
+ if (form.resource == 2) {
+ form.serviceType = 13;
+ }
+ } else {
+ this.$modal.msgError("鏈�夋嫨闅忚鏂瑰紡");
+ }
+ form.id = null;
+ form.sendstate = 2;
+ form.preachform = form.preachformson;
+ form.longTask = 0;
+ addserviceSubtask(form).then((res) => {
+ if (res.code == 200) {
+ this.$modal.msgSuccess("鍒涘缓鎴愬姛");
+ } else {
+ this.$modal.msgError("鍒涘缓澶辫触");
+ }
+ this.dialogFormVisible = false;
+ });
+ }
+ });
+ },
+ getCurrentTime() {
+ const now = new Date();
+ const year = now.getFullYear();
+ const month = String(now.getMonth() + 1).padStart(2, "0");
+ const day = String(now.getDate()).padStart(2, "0");
+ const hours = String(now.getHours()).padStart(2, "0");
+ const minutes = String(now.getMinutes()).padStart(2, "0");
+ const seconds = String(now.getSeconds()).padStart(2, "0");
+
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+ },
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-button--primary.is-plain {
+ color: #ffffff;
+ background: #409eff;
+ border-color: #4fabe9;
+}
+
+.document {
+ // width: 100px;
+ height: 50px;
+}
+::v-deep.el-table .warning-row {
+ background: #eec4c4;
+}
+::v-deep.el-table .remind-row {
+ background: #fcf5aa;
+}
+
+.documentf {
+ display: flex;
+ justify-content: flex-end;
+}
+
+.download {
+ text-align: center;
+
+ .el-upload__tip {
+ font-size: 23px;
+ }
+
+ .el-upload__text {
+ font-size: 23px;
+ }
+}
+
+.uploading {
+ margin-top: 20px;
+ margin: 20px;
+ padding: 30px;
+ background: #ffffff;
+ border: 1px solid #dcdfe6;
+ -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+ 0 0 6px 0 rgba(0, 0, 0, 0.04);
+}
+
+.el-tag + .el-tag {
+ margin-left: 10px;
+}
+
+.button-new-tag {
+ margin-left: 10px;
+ height: 32px;
+ line-height: 30px;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+.input-new-tag {
+ width: 90px;
+ margin-left: 10px;
+ vertical-align: bottom;
+}
+
+.drexamine {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 30px;
+ background: #daeaf5;
+
+ img {
+ width: 100px;
+ height: 100px;
+ }
+}
+
+.qrcode-dialo {
+ // text-align: center;
+ // display: flex;
+ margin: 20px;
+ padding: 30px;
+ background: #edf1f7;
+ border: 1px solid #dcdfe6;
+ -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+ 0 0 6px 0 rgba(0, 0, 0, 0.04);
+
+ .topic-dev {
+ margin-bottom: 25px;
+ font-size: 20px !important;
+
+ .dev-text {
+ margin-bottom: 10px;
+ }
+ }
+}
+::v-deep.leftvlue .el-card__body {
+ background: #f2f8ff;
+ color: #324a9b;
+}
+::v-deep.leftvlue .el-card__body:hover {
+ background: #3664d9;
+ color: #fff;
+ cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+::v-deep.errleftvlue .el-card__body {
+ background: #fdd0d7;
+}
+::v-deep.errleftvlue .el-card__body:hover {
+ background: #f88d96;
+ cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+::v-deep.jgleftvlue .el-card__body:hover {
+ background: #f7f075;
+ cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+
+::v-deep.ysfleftvlue .el-card__body {
+ background: #d0fdd8;
+}
+::v-deep.ysfleftvlue .el-card__body:hover {
+ background: #0abc54;
+ cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+.button-bb {
+ font-weight: 500;
+ background-color: #2ba05c;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-xq {
+ font-weight: 500;
+ background-color: #409eff;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-sc {
+ font-weight: 500;
+ background-color: #b3a21f;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-zx {
+ background: #324a9b;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+
+::v-deep.el-radio-group {
+ span {
+ font-size: 24px;
+ }
+}
+.purple-button {
+ background-color: #7e22ce;
+ border-color: #7e22ce;
+ color: #fff;
+}
+
+.purple-button:hover,
+.purple-button:focus {
+ background-color: #9333ea;
+ border-color: #9333ea;
+}
+
+.purple-button:active {
+ background-color: #6b21a8;
+ border-color: #6b21a8;
+}
+.button-textxga {
+ color: #de7897;
+}
+.purple-button.is-disabled {
+ background-color: #d8b4fe;
+ border-color: #d8b4fe;
+ opacity: 1; /* 淇濇寔绂佺敤鐘舵�侀�忔槑搴� */
+}
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::v-deep.el-checkbox-group {
+// span {
+// font-size: 24px;
+// }
+// }
+</style>
diff --git a/src/views/followvisit/beHospitalized/publicity.vue b/src/views/followvisit/beHospitalized/publicity.vue
new file mode 100644
index 0000000..2ac8066
--- /dev/null
+++ b/src/views/followvisit/beHospitalized/publicity.vue
@@ -0,0 +1,1232 @@
+<template>
+ <div class="app-container">
+ <el-row :gutter="20">
+ <!--鐢ㄦ埛鏁版嵁-->
+ <el-form
+ :model="topqueryParams"
+ ref="queryForm"
+ size="small"
+ :inline="true"
+ v-show="showSearch"
+ label-width="98px"
+ >
+ <el-form-item label="浠诲姟鍚嶇О">
+ <el-input
+ v-model="topqueryParams.taskName"
+ placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
+ ></el-input>
+ </el-form-item>
+ <!-- <el-form-item label="鍙戣捣浜�">
+ <el-input v-model="topqueryParams.createBy"></el-input>
+ </el-form-item> -->
+ <el-form-item label="鍑洪櫌鏃堕棿">
+ <el-date-picker
+ v-model="dateRange"
+ style="width: 240px"
+ value-format="yyyy-MM-dd"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+
+ <el-form-item label="鎮h�呭鍚�" prop="sendname">
+ <el-input
+ v-model="topqueryParams.sendname"
+ placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+ ></el-input>
+ </el-form-item>
+ <!-- <el-form-item label="鎮h�呰寖鍥�" prop="status">
+ <el-select
+ v-model="topqueryParams.searchscope"
+ placeholder="璇烽�夋嫨鎮h�呰寖鍥�"
+ >
+ <el-option
+ v-for="item in source"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item> -->
+ <el-form-item label="鎮h�呰寖鍥�" prop="status">
+ <el-cascader
+ v-model="topqueryParams.scopetype"
+ placeholder="榛樿鍏ㄩ儴"
+ :options="sourcetype"
+ :props="{ expandTrigger: 'hover' }"
+ @change="handleChange"
+ ></el-cascader>
+ </el-form-item>
+
+ <el-form-item label="瀹f暀鐘舵��" prop="status">
+ <el-select v-model="topqueryParams.sendstate" 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.excep" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in topicoptionsyj"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </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-form-item>
+ </el-form>
+ <el-divider></el-divider>
+ <el-row :gutter="10" class="mb8">
+ <el-col :span="1.5">
+ <el-button
+ type="primary"
+ icon="el-icon-plus"
+ size="medium"
+ @click="handleAdd"
+ >鏂板</el-button
+ >
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-upload2"
+ size="medium"
+ @click="handleExport"
+ >瀵煎嚭</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-warning-outline"
+ size="medium"
+ @click="toleadExport(1)"
+ >鎵ц澶辫触</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="danger"
+ plain
+ icon="el-icon-warning"
+ size="medium"
+ @click="toleadExport(2)"
+ >缁撴灉寮傚父</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-table
+ v-loading="loading"
+ :data="userList"
+ height="560"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column
+ label="浠诲姟鍚嶇О"
+ fixed
+ align="center"
+ key="taskName"
+ prop="taskName"
+ width="180"
+ />
+ <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
+ <el-table-column
+ label="濮撳悕"
+ width="100"
+ fixed
+ align="center"
+ key="sendname"
+ prop="sendname"
+ />
+ <el-table-column
+ label="瀹f暀鐘舵��"
+ align="center"
+ key="sendstate"
+ prop="sendstate"
+ width="120"
+ >
+ <template slot-scope="scope">
+ <div v-if="scope.row.sendstate == 1">
+ <el-tag type="primary" :disable-transitions="false"
+ >琛ㄥ崟宸查鍙�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 2">
+ <el-tag type="primary" :disable-transitions="false"
+ >寰呴殢璁�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 3">
+ <el-tag type="success" :disable-transitions="false"
+ >琛ㄥ崟宸插彂閫�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 4">
+ <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+ </div>
+ <div v-if="scope.row.sendstate == 5">
+ <el-tag type="danger" :disable-transitions="false"
+ >鍙戦�佸け璐�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 6">
+ <el-tag type="danger" :disable-transitions="false">宸插畬鎴�</el-tag>
+ </div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="缁撴灉鐘舵��"
+ align="center"
+ key="excep"
+ prop="excep"
+ width="120"
+ >
+ <template slot-scope="scope">
+ <div v-if="scope.row.sendstate == 6">
+ <dict-tag
+ :options="dict.type.sys_yujing"
+ :value="scope.row.excep"
+ />
+ </div>
+ <div v-else>
+ <span></span>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="澶勭悊鎰忚"
+ align="center"
+ key="suggest"
+ prop="suggest"
+ width="120"
+ >
+ <template slot-scope="scope">
+ <dict-tag
+ :options="dict.type.sys_suggest"
+ :value="scope.row.suggest"
+ />
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鍑洪櫌鏃ユ湡"
+ width="200"
+ align="center"
+ key="endtime"
+ prop="endtime"
+ >
+ <template slot-scope="scope">
+ <span>{{ formatTime(scope.row.endtime) }}</span>
+ </template></el-table-column
+ >
+ <el-table-column
+ label="搴斿鏁欐棩鏈�"
+ width="200"
+ align="center"
+ key="visitTime"
+ prop="visitTime"
+ >
+ <template slot-scope="scope">
+ <span>{{ formatTime(scope.row.visitTime) }}</span>
+ </template></el-table-column
+ >
+ <el-table-column
+ label="鍑洪櫌澶╂暟"
+ width="120"
+ align="center"
+ key="endDay"
+ prop="endDay"
+ >
+ <template slot-scope="scope">
+ <span>{{ scope.row.endDay ? scope.row.endDay + "澶�" : "" }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="韬唤璇佸彿鐮�"
+ width="200"
+ align="center"
+ key="sfzh"
+ prop="sfzh"
+ />
+ <el-table-column
+ label="璐d换鎶ゅ+"
+ width="120"
+ align="center"
+ key="nurseName"
+ prop="nurseName"
+ />
+ <el-table-column
+ label="涓绘不鍖荤敓"
+ width="120"
+ align="center"
+ key="drname"
+ prop="drname"
+ />
+
+ <!-- <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="鎬у埆"width="100" align="center" key="sex" prop="sex" /> -->
+ <!-- <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" /> -->
+ <el-table-column
+ label="绉戝"
+ align="center"
+ key="deptname"
+ prop="deptname"
+ width="120"
+ >
+ </el-table-column>
+ <el-table-column
+ label="鐥呭尯"
+ align="center"
+ key="leavehospitaldistrictname"
+ prop="leavehospitaldistrictname"
+ 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"
+ key="templatename"
+ prop="templatename"
+ :show-overflow-tooltip="true"
+ width="200"
+ />
+
+ <el-table-column
+ label="瀹f暀浜哄憳"
+ align="center"
+ key="createBy"
+ prop="createBy"
+ width="120"
+ />
+
+ <!-- <el-table-column
+ fixed="right"
+ label="浠诲姟鍙戦�佹祦绋�"
+ align="center"
+ key="serviceSubtaskRecordList"
+ prop="serviceSubtaskRecordList"
+ width="160"
+ :show-overflow-tooltip="true"
+ >
+ <template slot-scope="scope">
+ <span v-for="item in scope.row.serviceSubtaskRecordList"
+ >{{ item.remark }}銆�
+ </span>
+ </template>
+ </el-table-column> -->
+ <el-table-column
+ fixed="right"
+ label="浠诲姟缁撴灉璁板綍"
+ width="120"
+ align="center"
+ key="remark"
+ prop="remark"
+ >
+ <template slot-scope="scope" v-if="scope.row.remark">
+ <el-tag
+ type="success"
+ v-if="
+ scope.row.sendstate != 5 &&
+ scope.row.sendstate != 4 &&
+ scope.row.remark
+ "
+ >{{ scope.row.remark }}</el-tag
+ >
+ <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ fixed="right"
+ label="瀹f暀鏃堕棿"
+ sortable
+ align="center"
+ prop="finishtime"
+ width="160"
+ >
+ <template slot-scope="scope">
+ <span>{{ parseTime(scope.row.finishtime) }}</span>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column
+ label="瀹f暀鐘舵��"
+ 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>
+
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ :page.sync="topqueryParams.pageNum"
+ :limit.sync="topqueryParams.pageSize"
+ @pagination="getList"
+ />
+ </el-row>
+ <!-- 娣诲姞鎴栦慨鏀归棬璇婂鏁欏璇濇 -->
+ <el-dialog
+ :title="title"
+ :visible.sync="addalteropen"
+ width="700px"
+ append-to-body
+ >
+ <el-form ref="form" :model="form" label-width="100px">
+ <el-row :gutter="20">
+ <el-col :span="12"
+ ><el-form-item label="浠诲姟鍚嶇О">
+ <el-input v-model="form.name"></el-input> </el-form-item
+ ></el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="24"
+ ><el-form-item label="鎵�灞炵瀹�">
+ <el-select v-model="form.region" placeholder="璇烽�夋嫨绉戝">
+ <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
+ <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+ </el-select> </el-form-item></el-col
+ ></el-row>
+ <el-row :gutter="20">
+ <el-col :span="24"
+ ><el-form-item label="瀹f暀绫诲瀷">
+ <el-select v-model="form.region" placeholder="璇烽�夋嫨瀹f暀绫诲瀷">
+ <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
+ <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+ </el-select> </el-form-item
+ ></el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="24">
+ <el-form-item label="鏈嶅姟妯″潡">
+ <el-select v-model="form.region" placeholder="璇烽�夋嫨妯″潡">
+ <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
+ <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="24">
+ <el-form-item label="闂ㄨ瘖瀹f暀瑕佹眰">
+ <el-input type="textarea" v-model="form.desc"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </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>
+ <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
+ <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 Treeselect from "@riophae/vue-treeselect";
+import store from "@/store";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+ name: "Discharge",
+ dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+ components: { Treeselect },
+ data() {
+ return {
+ // 閬僵灞�
+ loading: true,
+ // 閫変腑鏁扮粍
+ ids: [],
+ // 闈炲崟涓鐢�
+ single: true,
+ // 闈炲涓鐢�
+ multiple: true,
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+ userList: null,
+ // 寮瑰嚭灞傛爣棰�
+ title: "鏂板闂ㄨ瘖瀹f暀",
+ // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
+ addalteropen: false,
+ // 淇敼鍙戦�佹椂闂村璇濇
+ modificationVisible: false,
+ // 閮ㄩ棬鍚嶇О
+ deptName: undefined,
+ // 榛樿瀵嗙爜
+ initPassword: undefined,
+ // 鏃ユ湡鑼冨洿
+ dateRange: [],
+ // 宀椾綅閫夐」
+ postOptions: [],
+ ruleForm: {
+ type: [],
+ },
+ sourcetype: [
+ {
+ value: 1,
+ label: "绉戝",
+ children: [],
+ },
+ {
+ value: 2,
+ label: "鐥呭尯",
+ children: [],
+ },
+ {
+ value: 3,
+ label: "鍏ㄩ儴",
+ },
+ ],
+ dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
+ inputVisible: false,
+ inputValue: "",
+ previewVisible: false, //闂ㄨ瘖瀹f暀棰勮寮规
+ radio: "",
+ radios: [],
+ previewtype: 2, //棰勮闂ㄨ瘖瀹f暀绫诲瀷
+ total: 0, // 鎬绘潯鏁�
+ ImportQuantity: 999, //瀵奸棬璇婂鏁欐暟閲�
+ //棰勮闂ㄨ瘖瀹f暀淇℃伅
+ previewvalue: {
+ username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
+ },
+ value: [],
+ list: [],
+ source: [
+ {
+ value: 0,
+ label: "鎵�灞炴偅鑰�",
+ },
+ {
+ value: 1,
+ label: "绉戝鎮h��",
+ },
+ {
+ value: 2,
+ label: "鐥呭尯鎮h��",
+ },
+ ],
+ loading: false,
+ states: [
+ "Alabama",
+ "Alaska",
+ "Arizona",
+ "Arkansas",
+ "California",
+ "Colorado",
+ "Connecticut",
+ "Delaware",
+ "Florida",
+ "Georgia",
+ "Hawaii",
+ "Idaho",
+ "Illinois",
+ "Indiana",
+ "Iowa",
+ "Kansas",
+ "Kentucky",
+ "Louisiana",
+ "Maine",
+ "Maryland",
+ "Massachusetts",
+ "Michigan",
+ "Minnesota",
+ "Mississippi",
+ "Missouri",
+ "Montana",
+ "Nebraska",
+ "Nevada",
+ "New Hampshire",
+ "New Jersey",
+ "New Mexico",
+ "New York",
+ "North Carolina",
+ "North Dakota",
+ "Ohio",
+ "Oklahoma",
+ "Oregon",
+ "Pennsylvania",
+ "Rhode Island",
+ "South Carolina",
+ "South Dakota",
+ "Tennessee",
+ "Texas",
+ "Utah",
+ "Vermont",
+ "Virginia",
+ "Washington",
+ "West Virginia",
+ "Wisconsin",
+ "Wyoming",
+ ],
+ pickerOptions: {
+ disabledDate(time) {
+ return time.getTime() > Date.now();
+ },
+ shortcuts: [
+ {
+ text: "浠婂ぉ",
+ onClick(picker) {
+ picker.$emit("pick", new Date());
+ },
+ },
+ {
+ text: "鏄ㄥぉ",
+ onClick(picker) {
+ const date = new Date();
+ date.setTime(date.getTime() - 3600 * 1000 * 24);
+ picker.$emit("pick", date);
+ },
+ },
+ {
+ text: "涓�鍛ㄥ墠",
+ onClick(picker) {
+ const date = new Date();
+ date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
+ picker.$emit("pick", date);
+ },
+ },
+ ],
+ },
+ // 琛ㄥ崟鍙傛暟
+ form: {
+ phonenumber: "",
+ totagid: "",
+ types: "",
+ nickName: "",
+ qystatus: "",
+ btstatus: "",
+ },
+ // 鏌ヨ鍙傛暟
+ topqueryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ serviceType: 17,
+ searchscope: 3,
+ sendstate: 2,
+ leaveldeptcodes: [],
+ leavehospitaldistrictcodes: [],
+ },
+ propss: { multiple: true },
+ options: [],
+
+ topicoptions: [
+ {
+ value: 1,
+ label: "琛ㄥ崟宸查鍙�",
+ },
+ {
+ value: 2,
+ label: "寰呴殢璁�",
+ },
+ {
+ value: 3,
+ label: "琛ㄥ崟宸插彂閫�",
+ },
+ {
+ value: 4,
+ label: "涓嶆墽琛�",
+ },
+ {
+ value: 5,
+ label: "鍙戦�佸け璐�",
+ },
+ {
+ value: 6,
+ label: "宸插畬鎴�",
+ },
+ {
+ value: 7,
+ label: "瓒呮椂",
+ },
+ ],
+ topicoptionsyj: [
+ {
+ value: 1,
+ label: "寮傚父",
+ },
+ {
+ value: 0,
+ label: "姝e父",
+ },
+ ],
+ serviceState: [],
+ // 琛ㄥ崟鏍¢獙
+ rules: {},
+ };
+ },
+ watch: {},
+ created() {
+ this.serviceState = store.getters.serviceState;
+ this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
+ return {
+ label: dept.deptName,
+ value: dept.deptCode,
+ };
+ });
+ this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
+ return {
+ label: dept.districtName,
+ value: dept.districtCode,
+ };
+ });
+
+ this.getList();
+ this.getConfigKey("sys.user.initPassword").then((response) => {
+ this.initPassword = response.msg;
+ });
+ },
+ activated() {
+ this.getList();
+ },
+ // 鎼滅储
+ mounted() {
+ this.list = this.states.map((item) => {
+ return { value: `value:${item}`, label: `label:${item}` };
+ });
+ },
+ methods: {
+ /** 鏌ヨ闂ㄨ瘖瀹f暀鏈嶅姟鍒楄〃 */
+ getList() {
+ if (this.topqueryParams.searchscope == 3) {
+ this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ this.loading = true;
+ console.log(this.topqueryParams.leavehospitaldistrictcodes, "123");
+ console.log(this.topqueryParams.leaveldeptcodes, "344");
+
+ if (
+ this.topqueryParams.leavehospitaldistrictcodes[0] &&
+ this.topqueryParams.leaveldeptcodes[0]
+ ) {
+ this.topqueryParams.deptOrDistrict = 2;
+ } else {
+ this.topqueryParams.deptOrDistrict = 1;
+ }
+ console.log(55);
+ getTaskservelist(this.topqueryParams).then((response) => {
+ this.userList = response.rows[0].serviceSubtaskList;
+ this.userList.forEach((item) => {
+ if (item.endtime) {
+ item.endDay = this.daysBetween(item.endtime);
+ }
+ });
+ this.total = response.total;
+ this.loading = false;
+ });
+ },
+ // 鏌ョ湅闂ㄨ瘖瀹f暀璇︽儏
+ Referencequestion(row) {
+ this.previewVisible = true;
+ },
+ // 娣诲姞寮规鎼滅储
+ remoteMethod(query) {
+ if (query !== "") {
+ this.loading = true;
+ setTimeout(() => {
+ this.loading = false;
+ this.options = this.list.filter((item) => {
+ return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
+ });
+ }, 200);
+ } else {
+ this.options = [];
+ }
+ },
+ // 鎮h�呰寖鍥村鐞�
+ handleChange(value) {
+ let type = value[0];
+ let code = value.slice(-1)[0];
+ this.topqueryParams.leavehospitaldistrictcodes = [];
+ this.topqueryParams.leaveldeptcodes = [];
+ if (type == 1) {
+ this.topqueryParams.leaveldeptcodes.push(code);
+ this.topqueryParams.leavehospitaldistrictcodes = [];
+ this.topqueryParams.searchscope = 1;
+ } else if (type == 2) {
+ this.topqueryParams.leavehospitaldistrictcodes.push(code);
+ this.topqueryParams.leaveldeptcodes = [];
+ this.topqueryParams.searchscope = 2;
+ } else {
+ this.topqueryParams.searchscope = 3;
+ }
+ },
+ // 闂ㄨ瘖瀹f暀鐘舵�佷慨鏀�
+ handleStatusChange(row) {
+ let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
+ this.$modal
+ .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵')
+ .then(function () {
+ return changeUserStatus(row.userId, row.status);
+ })
+ .then(() => {
+ this.$modal.msgSuccess(text + "鎴愬姛");
+ })
+ .catch(function () {
+ row.status = row.status === "0" ? "1" : "0";
+ });
+ },
+ // 鍙栨秷鎸夐挳
+ cancel() {
+ this.addalteropen = false;
+ this.reset();
+ },
+ // 琛ㄥ崟閲嶇疆
+ reset() {
+ this.form = {
+ userId: undefined,
+ deptId: undefined,
+ userName: undefined,
+ nickName: undefined,
+ password: undefined,
+ phonenumber: undefined,
+ email: undefined,
+ sex: undefined,
+ status: "0",
+ remark: undefined,
+ postIds: [],
+ roleIds: [],
+ };
+ this.resetForm("form");
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery() {
+ if (this.topqueryParams.searchscope == 1) {
+ this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leavehospitaldistrictcodes = null;
+ } else if (this.topqueryParams.searchscope == 2) {
+ this.topqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ this.topqueryParams.leaveldeptcodes = null;
+ } else {
+ this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ this.topqueryParams.pageNum = 1;
+ this.topqueryParams.startOutHospTime = this.dateRange[0];
+ this.topqueryParams.endOutHospTime = this.dateRange[1];
+
+ this.getList();
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.dateRange = [];
+ this.topqueryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ serviceType: 17,
+ sendstate: 2,
+ };
+ this.handleQuery();
+ },
+ // 澶氶�夋閫変腑鏁版嵁
+ handleSelectionChange(selection) {
+ this.ids = selection.map((item) => item.userId);
+ this.single = selection.length != 1;
+ this.multiple = !selection.length;
+ },
+ //鍒犻櫎閫夐」
+ handleClose(tag) {
+ this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+ },
+ //瑙﹀彂鏂板杈撳叆
+ showInput() {
+ this.inputVisible = true;
+ this.$nextTick((_) => {
+ this.$refs.saveTagInput.$refs.input.focus();
+ });
+ },
+ //鑾峰彇澶卞幓鐒︾偣瑙﹀彂
+ handleInputConfirm() {
+ let inputValue = this.inputValue;
+ if (inputValue) {
+ this.dynamicTags.push(inputValue);
+ }
+ this.inputVisible = false;
+ this.inputValue = "";
+ },
+ /** 鏂板鎸夐挳鎿嶄綔 */
+ handleAdd() {
+ this.$router.push({
+ path: "/followvisit/Missioncreation",
+ query: {
+ type: 3,
+ serviceType: 17,
+ },
+ });
+ },
+
+ /** 鎻愪氦鎸夐挳 */
+ submitForm: function () {
+ this.$refs["form"].validate((valid) => {
+ if (valid) {
+ if (this.form.userId != undefined) {
+ updateUser(this.form).then((response) => {
+ this.$modal.msgSuccess("淇敼鎴愬姛");
+ this.open = false;
+ this.getList();
+ });
+ } else {
+ addUser(this.form).then((response) => {
+ this.$modal.msgSuccess("鏂板鎴愬姛");
+ this.open = false;
+ this.getList();
+ });
+ }
+ }
+ });
+ },
+
+ // 鍏ㄩ儴鍋滄
+ 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(() => {});
+ },
+
+ // 璁剧疆鍙戦�佹椂闂�
+ Sendtimesetting() {
+ this.modificationVisible = true;
+ },
+
+ // 渚挎嵎鎸夐挳
+ toleadExport(too) {
+ if (too == 1) {
+ this.topqueryParams.sendstate = 4;
+ this.topqueryParams.excep = null;
+ } else if (too == 2) {
+ this.topqueryParams.excep = 1;
+ }
+ this.handleQuery();
+ },
+ /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+ handleExport() {
+ const originalPageNum = this.topqueryParams.pageNum;
+ const originalPageSize = this.topqueryParams.pageSize;
+this.topqueryParams.pageNum = null;
+ this.topqueryParams.pageSize = null;
+ this.download(
+ "smartor/serviceSubtask/patItemExport",
+ {
+ ...this.topqueryParams,
+ },
+ `user_${new Date().getTime()}.xlsx`
+ ).finally(() => {
+ // 瀵煎嚭鍚庢仮澶嶅垎椤靛弬鏁�
+ this.topqueryParams.pageNum = originalPageNum;
+ this.topqueryParams.pageSize = originalPageSize;
+ this.getList()
+ });
+ },
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-button--primary.is-plain {
+ color: #ffffff;
+ background: #409eff;
+ border-color: #4fabe9;
+}
+
+.document {
+ // width: 100px;
+ height: 50px;
+}
+
+.documentf {
+ display: flex;
+ justify-content: flex-end;
+}
+
+.download {
+ text-align: center;
+
+ .el-upload__tip {
+ font-size: 23px;
+ }
+
+ .el-upload__text {
+ font-size: 23px;
+ }
+}
+
+.uploading {
+ margin-top: 20px;
+ margin: 20px;
+ padding: 30px;
+ background: #ffffff;
+ border: 1px solid #dcdfe6;
+ -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+ 0 0 6px 0 rgba(0, 0, 0, 0.04);
+}
+
+.el-tag + .el-tag {
+ margin-left: 10px;
+}
+
+.button-new-tag {
+ margin-left: 10px;
+ height: 32px;
+ line-height: 30px;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+.input-new-tag {
+ width: 90px;
+ margin-left: 10px;
+ vertical-align: bottom;
+}
+
+.drexamine {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 30px;
+ background: #daeaf5;
+
+ img {
+ width: 100px;
+ height: 100px;
+ }
+}
+
+.qrcode-dialo {
+ // text-align: center;
+ // display: flex;
+ margin: 20px;
+ padding: 30px;
+ background: #edf1f7;
+ border: 1px solid #dcdfe6;
+ -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+ 0 0 6px 0 rgba(0, 0, 0, 0.04);
+
+ .topic-dev {
+ margin-bottom: 25px;
+ font-size: 20px !important;
+
+ .dev-text {
+ margin-bottom: 10px;
+ }
+ }
+}
+.button-bb {
+ font-weight: 500;
+ background-color: #2ba05c;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-xq {
+ font-weight: 500;
+ background-color: #409eff;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-sc {
+ font-weight: 500;
+ background-color: #dd302a;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-zx {
+ background: #4fabe9;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+
+::v-deep.el-radio-group {
+ span {
+ font-size: 24px;
+ }
+}
+
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::v-deep.el-checkbox-group {
+// span {
+// font-size: 24px;
+// }
+// }
+</style>
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 9e91878..43f171c 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -2040,15 +2040,22 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.topqueryParams.pageNum = null;
+ const originalPageNum = this.topqueryParams.pageNum;
+ const originalPageSize = this.topqueryParams.pageSize;
+this.topqueryParams.pageNum = null;
this.topqueryParams.pageSize = null;
this.download(
"smartor/serviceSubtask/patItemExport",
{
...this.topqueryParams,
},
- `user_${new Date().getTime()}.xlsx`,
- );
+ `user_${new Date().getTime()}.xlsx`
+ ).finally(() => {
+ // 瀵煎嚭鍚庢仮澶嶅垎椤靛弬鏁�
+ this.topqueryParams.pageNum = originalPageNum;
+ this.topqueryParams.pageSize = originalPageSize;
+ this.getList()
+ });
},
// 寮傚父鍒楁覆鏌�
tableRowClassName({ row, rowIndex }) {
diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index ca6a493..f433753 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -558,11 +558,7 @@
<div class="header-actions">
<!-- 鍩虹鎿嶄綔鎸夐挳缁� -->
<div class="action-group basic-actions">
- <el-button
- type="primary"
- plain
- @click="alterpatient('')"
- >
+ <el-button type="primary" plain @click="alterpatient('')">
淇濆瓨鍩虹淇℃伅
</el-button>
@@ -755,12 +751,44 @@
/>
</div>
</div>
-
+ <el-form-item label="浠诲姟澶勭悊鐘舵��">
+ <el-select
+ v-model="serviceStates"
+ placeholder="璇烽�夋嫨鐘舵��"
+ clearable
+ style="width: 150px; margin-right: 10px"
+ >
+ <el-option
+ v-for="item in serviceState"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
<!-- 闅忚鍐呭/璁板綍 -->
<el-form-item
:label="orgname == '涓芥按甯備腑鍖婚櫌' ? '闅忚鍐呭' : '闅忚璁板綍'"
>
- <el-input type="textarea" v-model="form.remark"></el-input>
+ <!-- 蹇嵎鐭鏍囩 -->
+ <div style="margin-bottom: 8px">
+ <el-tag
+ v-for="(item, index) in dict.type.quickfollow_up"
+ :key="index"
+ style="margin-right: 8px; cursor: pointer"
+ @click="insertText(item.value)"
+ >
+ {{ item.value }}
+ </el-tag>
+ </div>
+ <!-- 鏂囨湰鍩� -->
+ <el-input
+ type="textarea"
+ :rows="4"
+ v-model="form.remark"
+ ref="textareaRef"
+ placeholder="鍙偣鍑讳笂鏂瑰揩鎹锋爣绛炬垨鎵嬪姩杈撳叆"
+ ></el-input>
</el-form-item>
<!-- 闅忚鎯呭喌 -->
@@ -1205,7 +1233,13 @@
},
},
},
- dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+ dicts: [
+ "sys_normal_disable",
+ "quickfollow_up",
+ "sys_user_sex",
+ "sys_yujing",
+ "sys_suggest",
+ ],
data() {
const validatePhone = (rule, value, callback) => {
if (!value) {
@@ -1230,6 +1264,29 @@
isEndingCall: false,
CaldialogVisible: false,
currentCall: null, // 褰撳墠閫氳瘽瀵硅薄
+ serviceStates: 6,
+ serviceState: [
+ {
+ value: 2,
+ label: "寰呴殢璁�",
+ },
+ {
+ value: 3,
+ label: "琛ㄥ崟宸插彂閫�",
+ },
+ {
+ value: 5,
+ label: "鍙戦�佸け璐�",
+ },
+ {
+ value: 6,
+ label: "宸插畬鎴�",
+ },
+ {
+ value: 4,
+ label: "涓嶆墽琛�",
+ },
+ ],
// 鏂板鍔熻兘鏁版嵁
showPatientInfo: true,
showContinuationCareBtn: false, // 鎺у埗寤剁画鎶ょ悊鎸夐挳鏄剧ず
@@ -1275,6 +1332,14 @@
label: "鍏朵粬",
value: "7",
},
+ ],
+ quickContents: [
+ "鐥呮儏绋冲畾锛岀户缁綋鍓嶆不鐤�",
+ "鎮h�呭凡姝讳骸",
+ "鎮h�呬笉闇�瑕侀殢璁�",
+ "鎸夋椂鏈嶈嵂锛屾敞鎰忎紤鎭�",
+ "楗娓呮贰锛屽繉杈涜荆",
+ "棰勭害涓嬫澶嶈瘖",
],
tableDatatop: [], //棰樼洰琛�
voiceDatatop: [], //棰樼洰琛�
@@ -1506,6 +1571,7 @@
this.Voicetype = this.$route.query.Voicetype;
this.visitCount = this.$route.query.visitCount;
this.serviceType = this.$route.query.serviceType;
+
this.orgname = localStorage.getItem("orgname");
if (this.orgname == "鐪佺珛鍚屽痉缈犺嫅闄㈠尯") {
this.showContinuationCareBtn = true;
@@ -1588,6 +1654,29 @@
return "yellow-star"; // 璀﹀憡 - 榛勮壊鏄熷彿
}
return ""; // 姝e父 - 鏃犵壒娈婃牱寮�
+ },
+ insertText(text) {
+ const textarea = this.$refs.textareaRef;
+ console.log(textarea);
+
+ if (!textarea) return;
+
+ const target = textarea.$el.querySelector("textarea");
+ const start = target.selectionStart;
+ const end = target.selectionEnd;
+ const original = this.form.remark;
+ console.log(original, 11);
+
+ // 鍦ㄥ厜鏍囧鎻掑叆锛屽苟鏇存柊鍏夋爣浣嶇疆
+ this.form.remark =
+ original.substring(0, start) + text + original.substring(end);
+
+ // 淇濇寔鐒︾偣骞剁Щ鍔ㄥ厜鏍囧埌鎻掑叆鍐呭鍚�
+ this.$nextTick(() => {
+ target.focus();
+ const newPos = start + text.length;
+ target.setSelectionRange(newPos, newPos);
+ });
},
// 鑾峰彇闂嵎鏁版嵁
getsearchrResults(id) {
@@ -1837,7 +1926,7 @@
savequestiondetail(obj).then((res) => {
if (res.code == 200) {
this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛");
- this.Editsingletasksonyic(6);
+ this.Editsingletasksonyic(this.serviceStates);
const orgName = localStorage.getItem("orgname");
if (this.form.isVisitAgain != 1 || orgName == "涓芥按甯備腑鍖婚櫌") {
@@ -2102,7 +2191,7 @@
this.form = res.rows[0].serviceSubtaskList.find(
(item) => item.id == this.id
);
-
+ this.form.remark = this.form.remark || "";
this.logsheetlist = res.rows[0].serviceSubtaskList;
this.templateid = this.form.templateid;
this.selectedTag = this.form.excep;
diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue
index 44eeed6..9640683 100644
--- a/src/views/followvisit/tasklist/index.vue
+++ b/src/views/followvisit/tasklist/index.vue
@@ -462,6 +462,7 @@
previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
total: 0, // 鎬绘潯鏁�
ImportQuantity: 999, //瀵煎奖鍍忛殢璁挎暟閲�
+ orgname: null,
//棰勮褰卞儚闅忚淇℃伅
previewvalue: {
username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
@@ -585,6 +586,8 @@
pageNum: 1,
pageSize: 10,
type: 2,
+ leaveldeptcodes: [],
+ leavehospitaldistrictcodes: [],
userName: undefined,
tagid: undefined,
topic: undefined,
@@ -642,11 +645,14 @@
},
watch: {},
created() {
- // this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
- // (obj) => obj.deptCode
- // );
- // this.topqueryParams.leavehospitaldistrictcodes =
- // store.getters.belongWards.map((obj) => obj.districtCode);
+ this.orgname = localStorage.getItem("orgname");
+ if (this.orgname == "鍗楀崕澶у闄勫睘绗竴鍖婚櫌") {
+ 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;
@@ -678,6 +684,7 @@
this.tasktopic == 1 ||
this.tasktopic == 7 ||
this.tasktopic == 5 ||
+ this.tasktopic == 18 ||
this.tasktopic == 6
) {
if (!this.topqueryParams.type) this.topqueryParams.type = "2";
@@ -692,7 +699,11 @@
},
];
// this.topqueryParams.type = 2;
- } else if (this.tasktopic == 4 || this.tasktopic == 8) {
+ } else if (
+ this.tasktopic == 4 ||
+ this.tasktopic == 8 ||
+ this.tasktopic == 17
+ ) {
if (!this.topqueryParams.type) this.topqueryParams.type = "3";
this.longtermlist = [
{
diff --git a/src/views/knowledge/education/index.vue b/src/views/knowledge/education/index.vue
index 14b7ac0..8b48504 100644
--- a/src/views/knowledge/education/index.vue
+++ b/src/views/knowledge/education/index.vue
@@ -1,6 +1,5 @@
<template>
<div class="educationmanagement">
-
<!-- 宸︿晶鏍� -->
<div class="sidecolumn">
<div class="sidecolumn-top">
@@ -596,7 +595,7 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- hetype:1,
+ hetype: 1,
isavailable: "",
},
};
@@ -784,11 +783,11 @@
query: { id: row.id },
});
},
- Newcategory(){
- this.classifyform= {}, //绫诲埆琛ㄥ崟
- this.radio = "涓诲垎绫�";
- this.dialogFormVisible = true
- this.zifon = true;
+ Newcategory() {
+ (this.classifyform = {}), //绫诲埆琛ㄥ崟
+ (this.radio = "涓诲垎绫�");
+ this.dialogFormVisible = true;
+ this.zifon = true;
this.zufon = true;
},
// 鏌ョ湅瀹f暀
@@ -800,9 +799,8 @@
.then((response) => {
console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭
this.htmlRichText = response.data;
- // this.htmlRichText = this.addStyleToImages(this.htmlRichText);
- console.log(this.htmlRichText);
-
+ this.htmlRichText = this.addStyleToImages(this.htmlRichText);
+ // console.log(this.htmlRichText);
})
.catch((error) => {
this.$modal.msgError("鑾峰彇瀵屾枃鏈け璐�");
@@ -810,10 +808,21 @@
});
},
addStyleToImages(html) {
- return html.replace(
+ if (!html) return html;
+
+ // 1. 鍏堜慨澶嶈矾寰�
+ let processedHtml = html.replace(
+ /\/aifollowup\/aifollowup\//g,
+ "/aifollowup/"
+ );
+
+ // 2. 鍐嶄慨澶嶆牱寮�
+ processedHtml = processedHtml.replace(
/<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g,
'<img$1style="width:100%;height:auto;"$3>'
);
+
+ return processedHtml;
},
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
@@ -832,8 +841,8 @@
},
// 鎵撳紑缁熻鍥捐〃
statistics() {
- this.Collarrname=[];
- this.Collarrvalue=[];
+ this.Collarrname = [];
+ this.Collarrvalue = [];
//鍙栨暟鎹�
let obj = { assortid: 13, isavailable: "", pageNum: 1, pageSize: 20 };
getlibrarylist(obj).then((response) => {
diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue
index 880f6bd..e98c06a 100644
--- a/src/views/knowledge/questionbank/particulars/index.vue
+++ b/src/views/knowledge/questionbank/particulars/index.vue
@@ -928,28 +928,28 @@
this.drawer = true;
});
},
- // categoryidChange(id) {
- // // 閬嶅巻鎵�鏈夊垎缁勶紝鍦ㄦ瘡涓垎缁勭殑 svyLibScriptCategoryList 涓煡鎵�
- // let targetOption = null;
- // for (const group of this.classifylist) {
- // targetOption = group.svyLibScriptCategoryList.find(item => item.id == id);
- // if (targetOption) break;
- // }
+ categoryidChange(id) {
+ // 閬嶅巻鎵�鏈夊垎缁勶紝鍦ㄦ瘡涓垎缁勭殑 svyLibScriptCategoryList 涓煡鎵�
+ let targetOption = null;
+ for (const group of this.classifylist) {
+ targetOption = group.svyLibScriptCategoryList.find(item => item.id == id);
+ if (targetOption) break;
+ }
- // if (targetOption) {
- // console.log('閫変腑鐨勯�夐」:', targetOption);
- // // 娉ㄦ剰锛氳繖閲� targetOption.name 鏄�夐」鍚嶏紝濡傗�滀綇闄㈡弧鎰忓害璋冩煡鈥�
- // if (targetOption.name.includes('浣忛櫌')) {
- // this.topicobj.type = "zymyd";
- // } else if (targetOption.name.includes('闂ㄨ瘖')) {
- // this.topicobj.type = "mzmyd";
- // } else if (targetOption.name.includes('鍑洪櫌')) {
- // this.topicobj.type = "cymyd";
- // } else if (targetOption.name.includes('甯哥敤')) {
- // this.topicobj.type = "cymyd"; // 娉ㄦ剰锛氳繖閲屽拰鈥滃嚭闄⑩�濋噸澶嶄簡锛岀‘璁ゆ槸鍚﹂渶鍖哄垎
- // }
- // }
- // },
+ if (targetOption) {
+ console.log('閫変腑鐨勯�夐」:', targetOption);
+ // 娉ㄦ剰锛氳繖閲� targetOption.name 鏄�夐」鍚嶏紝濡傗�滀綇闄㈡弧鎰忓害璋冩煡鈥�
+ if (targetOption.name.includes('浣忛櫌')) {
+ this.topicobj.type = "zymyd";
+ } else if (targetOption.name.includes('闂ㄨ瘖')) {
+ this.topicobj.type = "mzmyd";
+ } else if (targetOption.name.includes('鍑洪櫌')) {
+ this.topicobj.type = "cymyd";
+ } else if (targetOption.name.includes('甯哥敤')) {
+ this.topicobj.type = "cymyd"; // 娉ㄦ剰锛氳繖閲屽拰鈥滃嚭闄⑩�濋噸澶嶄簡锛岀‘璁ゆ槸鍚﹂渶鍖哄垎
+ }
+ }
+ },
// 鏂板鎴栦慨鏀硅鎯�
compileissue() {
this.$refs["topicobj"].validate((valid) => {
diff --git a/src/views/knowledge/questionnaire/index.vue b/src/views/knowledge/questionnaire/index.vue
index c9e9167..6c1622e 100644
--- a/src/views/knowledge/questionnaire/index.vue
+++ b/src/views/knowledge/questionnaire/index.vue
@@ -421,7 +421,7 @@
{{ item.sort }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span>
</div>
<div class="dev-xx">
- <el-checkbox-group v-model="qremark">
+ <el-checkbox-group v-model="item.qremark">
<el-checkbox
v-for="(items, index) in item.svyLibTemplateTargetoptions"
:key="index"
@@ -581,6 +581,11 @@
goQRCode(row) {
getQtemplateobj({ svyid: row.svyid }).then((res) => {
this.topicform = res.rows[0];
+ if (this.topicform.svyTemplateLibScripts) {
+ this.topicform.svyTemplateLibScripts.forEach(item=>{
+ item.qremark=[]
+ })
+ }
console.log(this.topicform);
this.topicVisible = true;
});
diff --git a/src/views/login-ls.vue b/src/views/login-ls.vue
new file mode 100644
index 0000000..4caef87
--- /dev/null
+++ b/src/views/login-ls.vue
@@ -0,0 +1,322 @@
+<template>
+ <div class="login">
+ <el-form
+ ref="loginForm"
+ :model="loginForm"
+ :rules="loginRules"
+ class="login-form"
+ >
+ <h3 class="title">鏅烘収闅忚绯荤粺</h3>
+ <el-form-item prop="username">
+ <el-input
+ v-model="loginForm.username"
+ type="text"
+ auto-complete="off"
+ placeholder="璐﹀彿"
+ >
+ <svg-icon
+ slot="prefix"
+ icon-class="user"
+ class="el-input__icon input-icon"
+ />
+ </el-input>
+ </el-form-item>
+ <el-form-item prop="password">
+ <el-input
+ v-model="loginForm.password"
+ type="password"
+ auto-complete="off"
+ placeholder="瀵嗙爜"
+ @keyup.enter.native="handleLogin"
+ >
+ <svg-icon
+ slot="prefix"
+ icon-class="password"
+ class="el-input__icon input-icon"
+ />
+ </el-input>
+ </el-form-item>
+ <!-- 涓�===================姘� -->
+ <el-form-item prop="orgid">
+ <el-select
+ style="width: 100%"
+ v-model="loginForm.orgid"
+ placeholder="璇烽�夋嫨闄㈠尯"
+ >
+ <el-option
+ v-for="item in options"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ <i slot="prefix" class="el-icon-mobile"></i>
+ </el-select>
+ </el-form-item>
+ <!-- <el-form-item prop="code" v-if="captchaEnabled">
+ <el-input
+ v-model="loginForm.code"
+ auto-complete="off"
+ placeholder="楠岃瘉鐮�"
+ style="width: 63%"
+ @keyup.enter.native="handleLogin"
+ >
+ <svg-icon
+ slot="prefix"
+ icon-class="validCode"
+ class="el-input__icon input-icon"
+ />
+ </el-input>
+ <div class="login-code">
+ <img :src="codeUrl" @click="getCode" class="login-code-img" />
+ </div>
+ </el-form-item> -->
+ <el-checkbox
+ v-model="loginForm.rememberMe"
+ style="margin: 0px 0px 25px 0px"
+ >璁颁綇瀵嗙爜</el-checkbox
+ >
+ <el-form-item style="width: 100%">
+ <el-button
+ :loading="loading"
+ size="medium"
+ type="primary"
+ style="width: 100%"
+ @click.native.prevent="handleLogin"
+ >
+ <span v-if="!loading">鐧� 褰�</span>
+ <span v-else>鐧� 褰� 涓�...</span>
+ </el-button>
+ <div style="float: right" v-if="register">
+ <router-link class="link-type" :to="'/register'"
+ >绔嬪嵆娉ㄥ唽1</router-link
+ >
+ </div>
+ </el-form-item>
+ </el-form>
+ <!-- 搴曢儴 -->
+ <!-- <div class="el-login-footer">
+ <span style="color: #568FBD; font-size: 25px;">Copyright 漏 2018-2022 ruoyi.vip All Rights Reserved.</span>
+ </div> -->
+ </div>
+</template>
+
+<script>
+import { getCodeImg } from "@/api/login";
+import Cookies from "js-cookie";
+import { encrypt, decrypt } from "@/utils/jsencrypt";
+import { getorganization } from "@/api/AiCentre/index";
+
+export default {
+ name: "Login",
+ data() {
+ return {
+ codeUrl: "",
+ loginForm: {
+ username: "",
+ password: "",
+ rememberMe: false,
+ code: "",
+ orgid: "H41010500003",
+ },
+ options: [],
+ loginRules: {
+ username: [
+ { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�" },
+ ],
+ password: [
+ { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勫瘑鐮�" },
+ ],
+ orgid: [{ required: true, trigger: "blur", message: "璇烽�夋嫨闄㈠尯" }],
+ },
+ loading: false,
+ // 楠岃瘉鐮佸紑鍏�
+ captchaEnabled: true,
+ // 娉ㄥ唽寮�鍏�
+ register: false,
+ redirect: undefined,
+ };
+ },
+ watch: {
+ $route: {
+ handler: function (route) {
+ this.redirect = route.query && route.query.redirect;
+ },
+ immediate: true,
+ },
+ },
+ created() {
+ this.getorganization();
+ this.getCode();
+ this.getCookie();
+ // if (localStorage.getItem('orgid')) {
+ // this.loginForm.orgid = localStorage.getItem('orgid');
+ // }
+ },
+ methods: {
+ getCode() {
+ getCodeImg().then((res) => {
+ this.captchaEnabled =
+ res.captchaEnabled === undefined ? true : res.captchaEnabled;
+ if (this.captchaEnabled) {
+ this.codeUrl = "data:image/gif;base64," + res.img;
+ this.loginForm.uuid = res.uuid;
+ }
+ });
+ },
+ getorganization() {
+ getorganization({ pageSize: 30 }).then((res) => {
+ if (res.code == 200) {
+ this.options = res.rows.map((item) => ({
+ value: item.orgid,
+ label: item.organizationName,
+ campusid: item.organizationID,
+ }));
+ }
+ });
+ },
+ getCookie() {
+ const username = Cookies.get("username");
+ const password = Cookies.get("password");
+ const rememberMe = Cookies.get("rememberMe");
+ this.loginForm = {
+ username: username === undefined ? this.loginForm.username : username,
+ password:
+ password === undefined ? this.loginForm.password : decrypt(password),
+ rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
+ };
+ },
+ handleLogin() {
+ this.$refs.loginForm.validate((valid) => {
+ if (valid) {
+ this.loading = true;
+
+ if (this.loginForm.rememberMe) {
+ Cookies.set("username", this.loginForm.username, { expires: 30 });
+ Cookies.set("password", encrypt(this.loginForm.password), {
+ expires: 30,
+ });
+ Cookies.set("rememberMe", this.loginForm.rememberMe, {
+ expires: 30,
+ });
+ } else {
+ Cookies.remove("username");
+ Cookies.remove("password");
+ Cookies.remove("rememberMe");
+ }
+
+ // 鍔ㄦ�佽缃� campusid 鍙傛暟
+ const selectedOrg = this.options.find(
+ (item) => item.value === this.loginForm.orgid
+ );
+ console.log(selectedOrg,'selectedOrg');
+
+ this.loginForm.campusid = selectedOrg.campusid || 1;
+ // 甯備竴澶勭悊-----------------
+ // if (selectedOrg) {
+ // if (selectedOrg.label.includes("婀栨花")) {
+ // this.loginForm.campusid = 1;
+ // } else if (selectedOrg.label.includes("鍚村北")) {
+ // this.loginForm.campusid = 2;
+ // } else {
+ // this.loginForm.campusid = 1; // 榛樿鍊兼垨鍏朵粬澶勭悊
+ // }
+ // }
+ // --------------------------------
+ this.$store
+ .dispatch("Login", this.loginForm)
+ .then((res) => {
+ if (this.loginForm.username == "admin") {
+ this.$router.push({ path: "/index" }).catch(() => {});
+ } else {
+ this.$router
+ .push({ path: "/followvisit/discharge" })
+ .catch(() => {});
+ }
+ })
+ .catch(() => {
+ this.loading = false;
+ if (this.captchaEnabled) {
+ this.getCode();
+ }
+ });
+ }
+ });
+ },
+ },
+};
+</script>
+
+<style rel="stylesheet/scss" lang="scss">
+.login {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 100%;
+ overflow: hidden !important;
+ background-position: center center;
+
+ /* 鑳屾櫙鍥句笉骞抽摵 */
+ background-repeat: no-repeat;
+ /* 褰撳唴瀹归珮搴﹀ぇ浜庡浘鐗囬珮搴︽椂锛岃儗鏅浘鍍忕殑浣嶇疆鐩稿浜巚iewport鍥哄畾 */
+ background-attachment: fixed;
+ /* 璁╄儗鏅浘鍩轰簬瀹瑰櫒澶у皬浼哥缉 */
+ background-size: cover;
+ /* 璁剧疆鑳屾櫙棰滆壊锛岃儗鏅浘鍔犺浇杩囩▼涓細鏄剧ず鑳屾櫙鑹� */
+ background-color: #464646;
+ background-image: url("../assets/images/login-background.jpg");
+ background-size: cover;
+}
+.title {
+ margin: 0px auto 30px auto;
+ text-align: center;
+ color: #707070;
+}
+
+.login-form {
+ border-radius: 6px;
+ background: #ffffff;
+ width: 400px;
+ padding: 25px 25px 5px 25px;
+ .el-input {
+ height: 38px;
+ input {
+ height: 38px;
+ }
+ }
+ .input-icon {
+ height: 39px;
+ width: 14px;
+ margin-left: 2px;
+ }
+}
+.login-tip {
+ font-size: 13px;
+ text-align: center;
+ color: #bfbfbf;
+}
+.login-code {
+ width: 33%;
+ height: 38px;
+ float: right;
+ img {
+ cursor: pointer;
+ vertical-align: middle;
+ }
+}
+.el-login-footer {
+ height: 40px;
+ line-height: 40px;
+ position: fixed;
+ bottom: 0;
+ width: 100%;
+ text-align: center;
+ color: #fff;
+ font-family: Arial;
+ font-size: 12px;
+ letter-spacing: 1px;
+}
+
+.login-code-img {
+ height: 38px;
+}
+</style>
diff --git a/src/views/login.vue b/src/views/login.vue
index 4caef87..a464131 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -1,3 +1,5 @@
+
+
<template>
<div class="login">
<el-form
@@ -37,16 +39,16 @@
</el-input>
</el-form-item>
<!-- 涓�===================姘� -->
- <el-form-item prop="orgid">
+ <el-form-item prop="campusid">
<el-select
style="width: 100%"
- v-model="loginForm.orgid"
+ v-model="loginForm.campusid"
placeholder="璇烽�夋嫨闄㈠尯"
>
<el-option
v-for="item in options"
:label="item.label"
- :value="item.value"
+ :value="item.campusid"
>
</el-option>
<i slot="prefix" class="el-icon-mobile"></i>
@@ -206,11 +208,11 @@
// 鍔ㄦ�佽缃� campusid 鍙傛暟
const selectedOrg = this.options.find(
- (item) => item.value === this.loginForm.orgid
+ (item) => item.campusid === this.loginForm.campusid
);
- console.log(selectedOrg,'selectedOrg');
-
this.loginForm.campusid = selectedOrg.campusid || 1;
+ this.loginForm.orgid = selectedOrg.value || 1;
+ this.loginForm.orgname = selectedOrg.label || '';
// 甯備竴澶勭悊-----------------
// if (selectedOrg) {
// if (selectedOrg.label.includes("婀栨花")) {
diff --git a/src/views/outsideChainxj.vue b/src/views/outsideChainxj.vue
index 33d82ba..b9a93b3 100644
--- a/src/views/outsideChainxj.vue
+++ b/src/views/outsideChainxj.vue
@@ -123,10 +123,21 @@
},
addStyleToImages(html) {
- return html.replace(
+ if (!html) return html;
+
+ // 1. 鍏堜慨澶嶈矾寰�
+ let processedHtml = html.replace(
+ /\/aifollowup\/aifollowup\//g,
+ "/aifollowup/"
+ );
+
+ // 2. 鍐嶄慨澶嶆牱寮�
+ processedHtml = processedHtml.replace(
/<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g,
'<img$1style="width:100%;height:auto;"$3>'
);
+
+ return processedHtml;
},
// 鍔犲瘑鍑芥暟
encrypt(txt) {
diff --git a/src/views/outsideChainxjnew.vue b/src/views/outsideChainxjnew.vue
index 3d40426..d1014b3 100644
--- a/src/views/outsideChainxjnew.vue
+++ b/src/views/outsideChainxjnew.vue
@@ -11,11 +11,7 @@
<div class="preview-left">
<div class="toptitle">
<div class="title">
- {{
- taskname
- ? taskname
- : "鍖绘姢鐭ヨ瘑瀹f暀"
- }}
+ {{ taskname ? taskname : "鍖绘姢鐭ヨ瘑瀹f暀" }}
</div>
<div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5">
{{
@@ -160,10 +156,21 @@
);
},
addStyleToImages(html) {
- return html.replace(
+ if (!html) return html;
+
+ // 1. 鍏堜慨澶嶈矾寰�
+ let processedHtml = html.replace(
+ /\/aifollowup\/aifollowup\//g,
+ "/aifollowup/"
+ );
+
+ // 2. 鍐嶄慨澶嶆牱寮�
+ processedHtml = processedHtml.replace(
/<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g,
'<img$1style="width:100%;height:auto;"$3>'
);
+
+ return processedHtml;
},
// 鍔犲瘑鍑芥暟
encrypt(txt) {
diff --git a/src/views/patient/propaganda/Missioncreation.vue b/src/views/patient/propaganda/Missioncreation.vue
index cfd57e0..94b8b95 100644
--- a/src/views/patient/propaganda/Missioncreation.vue
+++ b/src/views/patient/propaganda/Missioncreation.vue
@@ -870,6 +870,8 @@
questionList: [],
uploadingData: [],
deptcodesWards: [], //绉戝鏁版嵁
+ deptlist: [],
+ hosplist: [],
leavehospitaldistrictcodes: [], //鐥呭尯鏁版嵁
operationcodes: [], //鎵嬫湳鏁版嵁
illnesscodes: [], //鐤剧梾鏁版嵁
@@ -1041,6 +1043,10 @@
"鐨勫尰鎶や汉鍛橈紝涓轰簡鏇村ソ鍦颁簡瑙f偍鐨勫悍澶嶆儏鍐碉紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瑙傜湅杩欎唤瀹f暀璧勮銆�",
jsy: "鐢熸椿涓婅鍔抽�哥粨鍚堬紝娉ㄦ剰浼戞伅鍜岃惀鍏伙紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈瀹f暀鍐呭灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒",
},
+ queryParamsdept: {
+ tempid: "",
+ type: 2,
+ },
taskoptions: [
{
value: "4",
@@ -1147,7 +1153,7 @@
this.currenttype = this.$route.query.type;
this.title = "瀹f暀鍐呭鍒楄〃";
this.tableLabel = this.tableLabelxj;
- if (this.form.serviceType == 4) {
+ if (this.form.serviceType == 4 || this.form.serviceType == 17) {
this.checkboxlist = [
{
value: "2",
@@ -1362,10 +1368,21 @@
});
},
addStyleToImages(html) {
- return html.replace(
+ if (!html) return html;
+
+ // 1. 鍏堜慨澶嶈矾寰�
+ let processedHtml = html.replace(
+ /\/aifollowup\/aifollowup\//g,
+ "/aifollowup/"
+ );
+
+ // 2. 鍐嶄慨澶嶆牱寮�
+ processedHtml = processedHtml.replace(
/<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g,
'<img$1style="width:100%;height:auto;"$3>'
);
+
+ return processedHtml;
},
// 瀛愪换鍔′簩绾у脊妗�
@@ -1635,6 +1652,9 @@
this.time1 = this.form.showTimeMorn.split(",");
}
}
+ if (this.form.taskid) {
+ this.listDept();
+ }
if (this.form.showTimeNoon)
this.time2 = this.form.showTimeNoon.split(",");
if (this.form.showTimeNight)
@@ -1721,14 +1741,20 @@
this.leavehospitaldistrictcodes = [];
this.deptcodesWards = [];
this.queryParamsdept.taskId = this.form.taskid;
+ console.log(1, this.queryParamsdept);
+
taskdepthospgetsonlist(this.queryParamsdept).then((res) => {
if (res.code == 200) {
let arr = res.rows;
arr.forEach((item) => {
if (item.deptType == 1) {
+ console.log(1);
+
this.deptlist.push(item);
this.deptcodesWards.push(item.deptCode);
} else if (item.deptType == 2) {
+ console.log(2, this.hosplist);
+
this.hosplist.push(item);
this.leavehospitaldistrictcodes.push(item.deptCode);
}
diff --git a/src/views/patient/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue
index 1b4d397..e31466e 100644
--- a/src/views/patient/propaganda/QuestionnaireTask.vue
+++ b/src/views/patient/propaganda/QuestionnaireTask.vue
@@ -1369,6 +1369,7 @@
this.form.serviceType == 3 ||
this.form.serviceType == 5 ||
this.form.serviceType == 16 ||
+ this.form.serviceType == 18 ||
this.form.serviceType == 4
) {
this.checkboxlist = [
diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue
index 9ef35f0..16c9912 100644
--- a/src/views/patient/propaganda/particty.vue
+++ b/src/views/patient/propaganda/particty.vue
@@ -1402,6 +1402,7 @@
];
} else if (
this.form.serviceType == 2 ||
+ this.form.serviceType == 18 ||
this.form.serviceType == 3 ||
this.form.serviceType == 16 ||
this.form.serviceType == 4
diff --git a/src/views/sfstatistics/percentage/components/FirstFollowUp.vue b/src/views/sfstatistics/percentage/components/FirstFollowUp.vue
index 546bc0c..922ff51 100644
--- a/src/views/sfstatistics/percentage/components/FirstFollowUp.vue
+++ b/src/views/sfstatistics/percentage/components/FirstFollowUp.vue
@@ -111,18 +111,21 @@
</template>
</el-table-column>
<el-table-column
+ v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
label="浜哄伐"
align="center"
key="manual"
prop="manual"
/>
<el-table-column
+ v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
label="鐭俊"
align="center"
key="sms"
prop="sms"
/>
<el-table-column
+ v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
label="寰俊"
align="center"
key="weChat"
@@ -285,6 +288,7 @@
</template>
</el-table-column>
<el-table-column
+ v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
label="浜哄伐"
align="center"
key="manual"
@@ -302,7 +306,7 @@
</el-button>
</template>
</el-table-column>
- <el-table-column label="鐭俊" align="center" key="sms" prop="sms">
+ <el-table-column v-if="orgname != '涓芥按甯備腑鍖婚櫌'" label="鐭俊" align="center" key="sms" prop="sms">
<template slot-scope="scope">
<el-button
size="medium"
@@ -314,6 +318,7 @@
</template>
</el-table-column>
<el-table-column
+ v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
label="寰俊"
align="center"
key="weChat"
@@ -1117,8 +1122,8 @@
return isNaN(num) ? null : num;
},
- selectTimelyRate(row, dateRange) {
- console.log(row, dateRange, 88);
+ selectTimelyRate(row, queryParams) {
+ console.log(row, queryParams, 88);
// const params = {
// ...this.patientqueryParams,
@@ -1126,9 +1131,20 @@
// endtime: this.parseTime(dateRange[1]),
// deptcode: row.deptcode,
// };
- this.patientqueryParams.starttime = this.parseTime(dateRange[0]);
- this.patientqueryParams.endtime = this.parseTime(dateRange[1]);
+ this.patientqueryParams.starttime = this.parseTime(
+ queryParams.dateRange[0]
+ );
+ this.patientqueryParams.endtime = this.parseTime(
+ queryParams.dateRange[1]
+ );
this.patientqueryParams.deptcode = row.deptcode;
+ console.log(1);
+
+ this.patientqueryParams.serviceTypes = queryParams.serviceType
+ ? queryParams.serviceType.join(",")
+ : null;
+ console.log(2);
+
return selectTimelyRate(this.patientqueryParams);
},
selectTimelyRates(dateRange) {
diff --git a/src/views/sfstatistics/percentage/components/SecondFollowUp.vue b/src/views/sfstatistics/percentage/components/SecondFollowUp.vue
index 703b5c2..4b03076 100644
--- a/src/views/sfstatistics/percentage/components/SecondFollowUp.vue
+++ b/src/views/sfstatistics/percentage/components/SecondFollowUp.vue
@@ -37,9 +37,9 @@
<el-table-column label="闅忚鎴愬姛" align="center" key="followUpSuccessAgain" prop="followUpSuccessAgain" />
<el-table-column label="闅忚澶辫触" align="center" key="followUpFailAgain" prop="followUpFailAgain" />
<el-table-column label="闅忚鐜�" align="center" width="120" key="followUpRateAgain" prop="followUpRateAgain" />
- <el-table-column label="浜哄伐" align="center" key="manualAgain" prop="manualAgain" />
- <el-table-column label="鐭俊" align="center" key="smsAgain" prop="smsAgain" />
- <el-table-column label="寰俊" align="center" key="weChatAgain" prop="weChatAgain" />
+ <el-table-column v-if="orgname != '涓芥按甯備腑鍖婚櫌'" label="浜哄伐" align="center" key="manualAgain" prop="manualAgain" />
+ <el-table-column v-if="orgname != '涓芥按甯備腑鍖婚櫌'" label="鐭俊" align="center" key="smsAgain" prop="smsAgain" />
+ <el-table-column v-if="orgname != '涓芥按甯備腑鍖婚櫌'" label="寰俊" align="center" key="weChatAgain" prop="weChatAgain" />
</el-table-column>
</el-table>
</template>
@@ -91,21 +91,21 @@
</template>
</el-table-column>
<el-table-column label="闅忚鐜�" align="center" width="120" key="followUpRateAgain" prop="followUpRateAgain" />
- <el-table-column label="浜哄伐" align="center" key="manualAgain" prop="manualAgain">
+ <el-table-column v-if="orgname != '涓芥按甯備腑鍖婚櫌'" label="浜哄伐" align="center" key="manualAgain" prop="manualAgain">
<template slot-scope="scope">
<el-button size="medium" type="text" @click="handleViewDetails(scope.row, 'manualAgainInfo', '鍐嶆闅忚浜哄伐闅忚鍒楄〃')">
<span class="button-zx">{{ scope.row.manualAgain }}</span>
</el-button>
</template>
</el-table-column>
- <el-table-column label="鐭俊" align="center" key="smsAgain" prop="smsAgain">
+ <el-table-column v-if="orgname != '涓芥按甯備腑鍖婚櫌'" label="鐭俊" align="center" key="smsAgain" prop="smsAgain">
<template slot-scope="scope">
<el-button size="medium" type="text" @click="handleViewDetails(scope.row, 'smsAgainInfo', '鍐嶆闅忚鐭俊闅忚鍒楄〃')">
<span class="button-zx">{{ scope.row.smsAgain }}</span>
</el-button>
</template>
</el-table-column>
- <el-table-column label="寰俊" align="center" key="weChatAgain" prop="weChatAgain">
+ <el-table-column v-if="orgname != '涓芥按甯備腑鍖婚櫌'" label="寰俊" align="center" key="weChatAgain" prop="weChatAgain">
<template slot-scope="scope">
<el-button size="medium" type="text" @click="handleViewDetails(scope.row, 'weChatAgainInfo', '鍐嶆闅忚寰俊闅忚鍒楄〃')">
<span class="button-zx">{{ scope.row.weChatAgain }}</span>
diff --git a/src/views/sfstatistics/percentage/index.vue b/src/views/sfstatistics/percentage/index.vue
index 4474fbb..b82a720 100644
--- a/src/views/sfstatistics/percentage/index.vue
+++ b/src/views/sfstatistics/percentage/index.vue
@@ -297,7 +297,7 @@
this.SeedetailsVisible = true
this.Seedloading = true
- this.$refs.firstFollowUp.selectTimelyRate(row, this.queryParams.dateRange)
+ this.$refs.firstFollowUp.selectTimelyRate(row, this.queryParams)
.then(response => {
this.logsheetlist = response.data.detail
this.patienttotal = response.data.total
diff --git a/src/views/sfstatistics/propaganda/index.vue b/src/views/sfstatistics/propaganda/index.vue
index 05186ae..781ac98 100644
--- a/src/views/sfstatistics/propaganda/index.vue
+++ b/src/views/sfstatistics/propaganda/index.vue
@@ -1,951 +1,912 @@
<template>
- <div class="Questionnairemanagement">
- <!-- 宸︿晶鏍� -->
- <div class="sidecolumn">
- <div class="sidecolumn-top">
- <div class="top-wj">鎮h�呰寖鍥�</div>
- </div>
+ <div class="education-statistics">
+ <!-- 鎼滅储鍖哄煙 -->
+ <div class="search-container">
+ <el-form
+ :model="queryParams"
+ ref="queryForm"
+ size="small"
+ :inline="true"
+ label-width="100px"
+ >
+ <el-form-item label="缁熻缁村害" prop="groupType">
+ <el-select
+ v-model="queryParams.groupType"
+ placeholder="璇烽�夋嫨缁熻缁村害"
+ @change="handleGroupTypeChange"
+ style="width: 180px"
+ >
+ <el-option label="鎸夌瀹ょ粺璁�" value="1"></el-option>
+ <el-option label="鎸夌梾鍖虹粺璁�" value="2"></el-option>
+ </el-select>
+ <el-select
+ style="margin-left: 10px"
+ v-if="queryParams.groupType == '2'"
+ v-model="queryParams.hospitaldistrictcodes"
+ size="medium"
+ multiple
+ filterable
+ placeholder="璇烽�夋嫨鐥呭尯"
+ >
+ <el-option
+ v-for="item in flatArrayhospit"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ <el-select
+ v-else-if="queryParams.groupType == '1'"
+ v-model="queryParams.deptcodes"
+ size="medium"
+ multiple
+ filterable
+ placeholder="璇烽�夋嫨绉戝"
+ >
+ <el-option
+ v-for="item in flatArraydept"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
- <div class="bottom-fl">
- <el-tabs
- tab-position="right"
- v-model="activeName"
- @tab-click="handleClick"
- >
- <el-tab-pane label="鍏ㄩ儴" name="first"></el-tab-pane>
- <el-tab-pane label="浣忛櫌" name="bhospitalized"></el-tab-pane>
- <el-tab-pane label="鍦ㄩ櫌" name="Inhospital"></el-tab-pane>
- <el-tab-pane label="闂ㄨ瘖" name="outpatient"></el-tab-pane>
- <el-tab-pane label="浣撴" name="physical"></el-tab-pane>
- </el-tabs>
- </div>
+ <el-form-item label="灏辫瘖绫诲瀷" prop="hospType">
+ <el-select
+ v-model="queryParams.hospType"
+ placeholder="璇烽�夋嫨灏辫瘖绫诲瀷"
+ clearable
+ style="width: 150px"
+ >
+ <el-option label="闂ㄨ瘖" value="1"></el-option>
+ <el-option label="鍑洪櫌" value="2"></el-option>
+ <el-option label="涓撶梾" value="3"></el-option>
+ <el-option label="鍏ラ櫌/澶栭儴瀵煎叆" value="4"></el-option>
+ <el-option label="浣撴" value="5"></el-option>
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="鍏ラ櫌鏃堕棿" prop="dateRange">
+ <el-date-picker
+ v-model="queryParams.dateRange"
+ type="daterange"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ value-format="yyyy-MM-dd"
+ style="width: 280px"
+ :picker-options="datePickerOptions"
+ >
+ </el-date-picker>
+ </el-form-item>
+
+ <el-form-item label="瀹f暀鍙戦�佹椂闂�" prop="visittime">
+ <el-date-picker
+ v-model="queryParams.visittime"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ value-format="yyyy-MM-dd"
+ style="width: 180px"
+ >
+ </el-date-picker>
+ </el-form-item>
+
+ <el-form-item>
+ <el-button
+ type="primary"
+ icon="el-icon-search"
+ size="medium"
+ @click="handleQuery"
+ :loading="loading"
+ >鎼滅储</el-button
+ >
+ <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
+ >閲嶇疆</el-button
+ >
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-download"
+ size="medium"
+ @click="handleExport"
+ v-hasPermi="['system:statistics:export']"
+ >瀵煎嚭</el-button
+ >
+ </el-form-item>
+ </el-form>
</div>
- <!-- 鍙充晶鏁版嵁 -->
- <div class="leftvlue">
- <div class="leftvlue-top">
- <el-tabs v-model="topactiveName" @tab-click="tophandleClick">
- <el-tab-pane name="Local">
- <span class="mulsz" slot="label">鎸夊嚭闄㈢梾鍖虹粺璁� </span>
- </el-tab-pane>
- <el-tab-pane name="sharing">
- <span class="mulsz" slot="label">鎸夊嚭闄㈢瀹ょ粺璁� </span>
- </el-tab-pane>
- </el-tabs>
- </div>
- <div class="leftvlue-bg">
- <el-row :gutter="20">
- <!--鏍囩鏁版嵁-->
- <el-col :span="24" :xs="24">
- <el-form
- :model="queryParams"
- ref="queryForm"
+
+ <!-- 缁熻鏁版嵁姒傝 -->
+ <div class="summary-cards" v-if="statisticsData.total > 0">
+ <el-row :gutter="20">
+ <el-col :span="6">
+ <div class="summary-card">
+ <div class="card-title">鍙戦�佹�婚噺</div>
+ <div class="card-value">{{ totalCount }}</div>
+ <div class="card-desc">鎬诲鏁欏彂閫佹鏁�</div>
+ </div>
+ </el-col>
+ <el-col :span="6">
+ <div class="summary-card">
+ <div class="card-title">鍙戦�佹垚鍔熼噺</div>
+ <div class="card-value">{{ sendSuccessCount }}</div>
+ <div class="card-desc">宸叉垚鍔熷彂閫佺殑瀹f暀</div>
+ </div>
+ </el-col>
+ <el-col :span="6">
+ <div class="summary-card">
+ <div class="card-title">宸茶閲�</div>
+ <div class="card-value">{{ readCount }}</div>
+ <div class="card-desc">鎮h�呭凡闃呰鐨勫鏁�</div>
+ </div>
+ </el-col>
+ <el-col :span="6">
+ <div class="summary-card">
+ <div class="card-title">骞冲潎鍙戦�佹垚鍔熺巼</div>
+ <div class="card-value">{{ avgSendSuccessRate }}%</div>
+ <div class="card-desc">鏁翠綋鍙戦�佹垚鍔熸瘮渚�</div>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+
+ <!-- 鏁版嵁琛ㄦ牸 -->
+ <div class="table-container">
+ <el-table
+ v-loading="loading"
+ :data="statisticsData.list"
+ :border="true"
+ style="width: 100%"
+ :default-sort="{ prop: 'totalCount', order: 'descending' }"
+ @sort-change="handleSortChange"
+ >
+ <el-table-column prop="groupName" label="鍒嗙粍鍚嶇О" align="center" fixed>
+ <!-- <template slot-scope="scope">
+ <span class="group-name" @click="handleGroupDetail(scope.row)">
+ {{ scope.row.groupName }}
+ </span>
+ </template> -->
+ </el-table-column>
+
+ <el-table-column
+ prop="groupCode"
+ label="鍒嗙粍缂栫爜"
+ align="center"
+ ></el-table-column>
+
+ <el-table-column
+ prop="totalCount"
+ label="瀹f暀鍙戦�佹�婚噺"
+ align="center"
+ sortable="custom"
+ >
+ <template slot-scope="scope">
+ <span class="count-highlight">{{ scope.row.totalCount }}</span>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="sendSuccessCount"
+ label="鍙戦�佹垚鍔熼噺"
+ align="center"
+ sortable="custom"
+ >
+ <template slot-scope="scope">
+ <span class="success-count">{{ scope.row.sendSuccessCount }}</span>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="readCount"
+ label="宸茶閲�"
+ align="center"
+ sortable="custom"
+ >
+ <template slot-scope="scope">
+ <span class="read-count">{{ scope.row.readCount }}</span>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="sendSuccessRate"
+ label="鍙戦�佹垚鍔熺巼"
+ align="center"
+ width="200"
+ sortable="custom"
+ >
+ <template slot-scope="scope">
+ <el-progress
+ :percentage="scope.row.sendSuccessRate * 100"
+ :stroke-width="8"
+ :show-text="false"
+ style="width: 80px; margin: 0 auto"
+ :color="getRateColor(scope.row.sendSuccessRate)"
+ />
+ <span class="rate-text"
+ >{{ (scope.row.sendSuccessRate * 100).toFixed(1) }}%</span
+ >
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="readRate"
+ label="宸茶鐜�"
+ align="center"
+ width="200"
+ sortable="custom"
+ >
+ <template slot-scope="scope">
+ <el-progress
+ :percentage="scope.row.readRate * 100"
+ :stroke-width="8"
+ :show-text="false"
+ style="width: 80px; margin: 0 auto"
+ :color="getRateColor(scope.row.readRate)"
+ />
+ <span class="rate-text"
+ >{{ (scope.row.readRate * 100).toFixed(1) }}%</span
+ >
+ </template>
+ </el-table-column>
+
+ <!-- <el-table-column label="鎿嶄綔" align="center" width="200" fixed="right">
+ <template slot-scope="scope">
+ <el-button
+ type="text"
size="small"
- :inline="true"
- v-show="showSearch"
- label-width="98px"
+ @click="handleDetail(scope.row)"
+ icon="el-icon-document"
+ v-hasPermi="['system:statistics:detail']"
+ >璇︾粏鏁版嵁</el-button
>
- <el-form-item label="鍖婚櫌" prop="userName">
- <el-select
- v-model="queryParams.value1"
- placeholder="榛樿鏄璐﹀彿鎵�灞炲尰闄�"
- >
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍑洪櫌鐥呭尯" prop="userName">
- <el-select v-model="queryParams.value2" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="绠$悊鏂规" prop="userName">
- <el-select v-model="queryParams.value3" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍑洪櫌鏃ユ湡" prop="userName">
- <el-date-picker
- v-model="queryParams.valuetime1"
- align="right"
- type="date"
- placeholder="閫夋嫨鏃ユ湡"
- :picker-options="pickerOptionsa"
- >
- </el-date-picker>
- </el-form-item>
- <el-form-item label="璁″垝鎵ц鏃ユ湡" prop="userName">
- <el-date-picker
- v-model="queryParams.valuetime2"
- align="right"
- type="date"
- placeholder="閫夋嫨鏃ユ湡"
- :picker-options="pickerOptions"
- >
- </el-date-picker>
- </el-form-item>
- <el-form-item label="瀹為檯瀹屾垚鏃ユ湡" prop="userName">
- <el-date-picker
- v-model="queryParams.valuetime2"
- align="right"
- type="date"
- placeholder="閫夋嫨鏃ユ湡"
- :picker-options="pickerOptions"
- >
- </el-date-picker>
- </el-form-item>
+ <el-button
+ type="text"
+ size="small"
+ @click="handleExportGroup(scope.row)"
+ icon="el-icon-download"
+ v-hasPermi="['system:statistics:export']"
+ >瀵煎嚭</el-button
+ >
+ </template>
+ </el-table-column> -->
+ </el-table>
- <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-form-item>
- </el-form>
+ <!-- 鍒嗛〉 -->
+ <pagination
+ v-show="statisticsData.total > 0"
+ :total="statisticsData.total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </div>
- <el-row :gutter="10" class="mb8">
- <el-col :span="1.5">
- <el-button
- type="primary"
- plain
- icon="el-icon-plus"
- size="medium"
- @click="addladeltag"
- v-hasPermi="['system:user:add']"
- >鏂板</el-button
- >
- </el-col>
+ <!-- 鍒嗙粍璇︽儏寮圭獥 -->
+ <el-dialog
+ :title="detailTitle"
+ :visible.sync="detailVisible"
+ width="80%"
+ :before-close="handleCloseDetail"
+ >
+ <div v-loading="detailLoading">
+ <el-row :gutter="20" class="detail-header">
+ <el-col :span="6">
+ <div class="detail-item">
+ <label>鍒嗙粍鍚嶇О锛�</label>
+ <span>{{ currentGroup.groupName }}</span>
+ </div>
+ </el-col>
+ <el-col :span="6">
+ <div class="detail-item">
+ <label>鍒嗙粍缂栫爜锛�</label>
+ <span>{{ currentGroup.groupCode }}</span>
+ </div>
+ </el-col>
+ <el-col :span="6">
+ <div class="detail-item">
+ <label>鍙戦�佹垚鍔熺巼锛�</label>
+ <span class="rate-highlight"
+ >{{ (currentGroup.sendSuccessRate * 100).toFixed(1) }}%</span
+ >
+ </div>
+ </el-col>
+ <el-col :span="6">
+ <div class="detail-item">
+ <label>宸茶鐜囷細</label>
+ <span class="rate-highlight"
+ >{{ (currentGroup.readRate * 100).toFixed(1) }}%</span
+ >
+ </div>
+ </el-col>
+ </el-row>
- <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="1.5">
- <div class="documentf">
- <div class="document">
- <el-button
- type="warning"
- plain
- icon="el-icon-download"
- size="medium"
- @click="handleExport"
- 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-tabs v-model="detailActiveTab" class="detail-tabs">
+ <el-tab-pane label="瓒嬪娍鍒嗘瀽" name="trend">
+ <!-- 杩欓噷鍙互鏀剧疆鍥捐〃缁勪欢 -->
+ <div class="chart-placeholder">
+ 瓒嬪娍鍥捐〃锛堝彲鏍规嵁闇�姹傛帴鍏Charts锛�
+ </div>
+ </el-tab-pane>
+ <el-tab-pane label="鏄庣粏鏁版嵁" name="detail">
<el-table
- v-loading="loading"
- :data="userList"
- :border="true"
- @selection-change="handleSelectionChange"
+ :data="detailList"
+ border
+ style="width: 100%; margin-top: 20px"
>
- <el-table-column type="selection" width="50" align="center" />
<el-table-column
- fixed
- label="搴忓彿"
+ prop="patientName"
+ label="鎮h�呭鍚�"
align="center"
- key="tagid"
- prop="tagid"
- width="50"
- />
- <el-table-column
- fixed
- label="鍑洪櫌鐥呭尯"
- align="center"
- key="tagname"
- prop="tagname"
- width="100"
- :show-overflow-tooltip="true"
- />
- <el-table-column
- label="瀹f暀"
- align="center"
- key="updateTime"
- prop="updateTime"
- >
- </el-table-column>
-
- <el-table-column
- label="瀹f暀鏇存柊鏃ユ湡"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="110"
- >
- </el-table-column>
- <el-table-column
- label="绠$悊鏂规"
- align="center"
- key="isupload"
- prop="isupload"
- >
- </el-table-column>
- <el-table-column
- label="闅忚浠诲姟鏁�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="100"
- >
- </el-table-column>
- <el-table-column
- label="闅忚瀹屾垚鏁�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="100"
- >
- </el-table-column>
- <el-table-column
- label="闅忚瀹屾垚鐜�"
- align="center"
- key="isupload"
- prop="isupload"
- width="100"
- >
- </el-table-column>
- <el-table-column
- label="AI澶栧懠娆℃暟"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="100"
- >
- </el-table-column>
- <el-table-column
- label="AI闅忚瀹屾垚鏁�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
width="120"
- >
- </el-table-column>
+ ></el-table-column>
<el-table-column
- label="AI闅忚瀹屾垚鐜�"
+ prop="patientNo"
+ label="鎮h�呯紪鍙�"
align="center"
- key="tagdescription"
- prop="tagdescription"
width="120"
- >
- </el-table-column>
+ ></el-table-column>
<el-table-column
- label="寰俊鍙戦�佹鏁�"
+ prop="sendTime"
+ label="鍙戦�佹椂闂�"
align="center"
- key="tagdescription"
- prop="tagdescription"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ prop="readTime"
+ label="闃呰鏃堕棿"
+ align="center"
+ width="180"
+ ></el-table-column>
+ <el-table-column
+ prop="educationTitle"
+ label="瀹f暀鏍囬"
+ align="center"
+ ></el-table-column>
+ <el-table-column
+ prop="status"
+ label="鐘舵��"
+ align="center"
width="100"
- >
- </el-table-column>
- <el-table-column
- label="寰俊闅忚瀹屾垚鏁�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="120"
- >
- </el-table-column>
- <el-table-column
- label="寰俊闅忚瀹屾垚鐜�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="120"
- >
- </el-table-column>
- <el-table-column
- label="鐭俊鍙戦�佹鏁�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="100"
- >
- </el-table-column>
- <el-table-column
- label="鐭俊闅忚瀹屾垚鏁�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="120"
- >
- </el-table-column>
- <el-table-column
- label="鐭俊闅忚瀹屾垚鐜�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="120"
- >
- </el-table-column>
- <el-table-column
- label="浜哄伐闅忚娆℃暟"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="100"
- >
- </el-table-column>
- <el-table-column
- label="浜哄伐闅忚瀹屾垚鏁�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="120"
- >
- </el-table-column>
- <el-table-column
- label="浜哄伐闅忚瀹屾垚鐜�"
- align="center"
- key="tagdescription"
- prop="tagdescription"
- width="120"
- >
- </el-table-column>
-
- <el-table-column
- label="鎿嶄綔"
- align="center"
- width="300"
- 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-textxg"
- ><i class="el-icon-s-data"></i>鍗曢缁熻</span
- ></el-button
+ <el-tag
+ :type="
+ scope.row.status === '宸茶'
+ ? 'success'
+ : scope.row.status === '鍙戦�佹垚鍔�'
+ ? 'info'
+ : 'danger'
+ "
+ size="small"
>
- <el-button
- size="medium"
- type="text"
- @click="handleDelete(scope.row)"
- v-hasPermi="['system:user:remove']"
- ><span class="button-textsc"
- ><i class="el-icon-share"></i>闅忚缁撴灉鏄庣粏</span
- ></el-button
- >
+ {{ scope.row.status }}
+ </el-tag>
</template>
</el-table-column>
</el-table>
-
- <pagination
- v-show="total > 0"
- :total="total"
- :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize"
- @pagination="getList"
- />
- </el-col>
- </el-row>
- </div>
- </div>
- <!-- 鍗曢灞曠ず寮规 -->
- <el-dialog :visible.sync="topicVisible" width="45%">
- <div class="topicdia">
- <div class="top-text">{{ topicvalue.name }}</div>
- <div class="top-mintext">闅忚瀹屾垚鏁皗{ topicvalue.number }}</div>
- <div style="overflow-x: hidden; overflow-y: auto; max-height: 65vh">
- <div class="ttaabbcc" v-for="item in topiclist" :key="item.name">
- <div class="describe">
- 绗瑊{ item.number }}棰橈細 {{ item.name }}?<span
- >[{{ item.type == 1 ? "鍗曢�夐" : "澶氶�夐" }}]</span
- >
- </div>
- <div>
- <el-table :data="tableData" style="width: 100%">
- <el-table-column prop="date" label="闂閫夐」">
- </el-table-column>
- <el-table-column prop="name" label="閫夋嫨浜烘暟">
- </el-table-column>
- <el-table-column prop="address" label="姣斾緥"> </el-table-column>
- </el-table>
- </div>
- </div>
- </div>
+ </el-tab-pane>
+ </el-tabs>
</div>
<span slot="footer" class="dialog-footer">
- <el-button @click="topicVisible = false">鍏� 闂�</el-button>
- </span>
- </el-dialog>
- <!-- 缁撴灉缁熻寮规 -->
- <el-dialog title="鎻愮ず" :visible.sync="consequenceVisible" width="50%">
- <div class="topicdia">
- <div class="top-text" style="margin-bottom: 20px">瀹f暀缁熻缁撴灉</div>
- <div>
- <el-table :data="tableData" style="width: 100%">
- <el-table-column prop="date" label="鎮h�呭鍚�"> </el-table-column>
- <el-table-column prop="namea" label="鎬у埆"width="100"> </el-table-column>
- <el-table-column prop="namec" label="骞撮緞"> </el-table-column>
- <el-table-column prop="named" label="鑱旂郴鏂瑰紡"> </el-table-column>
- <el-table-column prop="namee" label="璁″垝鎵ц鏃堕棿" width="120">
- </el-table-column>
- <el-table-column prop="namex" label="瀹為檯瀹屾垚鏃堕棿" width="120">
- </el-table-column>
- <el-table-column prop="namez" label="瀹屾垚鏂瑰紡"> </el-table-column>
- <el-table-column prop="nameh" label="瀹f暀"> </el-table-column>
- <el-table-column prop="namej" label="寰楀垎"> </el-table-column>
- <!-- 鎴彇鍑犲垪閫夐」灞炴�у悕缁存姢鏁扮粍閬嶅巻 -->
- <!-- <el-table-column prop="namet">
- <template slot="header" slot-scope="scope">
- <div>{{ scope.row.name }}<span>[鍗曢�夐]</span></div>
- </template>
- </el-table-column> -->
- </el-table>
- </div>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="consequenceVisible = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="consequenceVisible = false"
- >纭� 瀹�</el-button
- >
+ <el-button @click="detailVisible = false">鍏� 闂�</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
-import {
- toamendtag,
- addapitag,
- deletetag,
- changetagcategory,
- listtag,
-} from "@/api/system/label";
+import { gethelibraryCount } from "@/api/AiCentre/index";
-import Treeselect from "@riophae/vue-treeselect";
-import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
- name: "questionnaire",
- dicts: ["sys_normal_disable", "sys_user_sex"],
- components: { Treeselect },
+ name: "EducationStatistics",
data() {
return {
- topactiveName: "Local", //椤堕儴閫夋嫨
- activeName: "first",
- // 閬僵灞�
+ // 鏌ヨ鍙傛暟
+ queryParams: {
+ pageNum: 1,
+ pageSize: 1000,
+ groupType: "1", // 1-绉戝锛�2-鐥呭尯
+ deptcodes: ['all'], // 绉戝code鏁扮粍
+ hospitaldistrictcodes: [], // 鐥呭尯code鏁扮粍
+ hospType: undefined, // 灏辫瘖绫诲瀷
+ starttime: undefined, // 鍏ラ櫌寮�濮嬫椂闂�
+ endtime: undefined, // 鍏ラ櫌缁撴潫鏃堕棿
+ visittime: undefined, // 瀹f暀鍙戦�佹椂闂�
+ dateRange: [], // 鍏ラ櫌鏃堕棿鑼冨洿
+ orderBy: "totalCount", // 鎺掑簭瀛楁
+ order: "descending", // 鎺掑簭鏂瑰紡
+ },
+
+ // 缁熻鏁版嵁
+ statisticsData: {
+ total: 0,
+ list: [],
+ },
+
+ // 涓嬫媺閫夐」
+ flatArraydept: [],
+
+ flatArrayhospit: [],
+
+ // 鍔犺浇鐘舵��
loading: false,
- // 閫変腑鏁扮粍
- ids: [],
- // 闈炲崟涓鐢�
- single: true,
- // 闈炲涓鐢�
- multiple: true,
- // 鏄剧ず鎼滅储鏉′欢
- showSearch: true,
- idds: "", //鍒嗙被id
- // 鎬绘潯鏁�
- total: 0,
- lstamendtag: false, //鏄惁淇敼鏍囩
- topicVisible: false, //鎺у埗鍗曢寮规
- consequenceVisible: false, //鎺у埗缁撴灉寮规
- //淇敼娣诲姞鏍囩寮规鏁版嵁
- tagform: {
- isupload: "",
- tagname: "",
- tagcategoryid: "",
- tagdescription: "",
- },
- topicvalue: {
- name: "楠ㄧ闅忚妯℃澘",
- number: 222,
- },
- classifyform: {
- categoryname: "",
- },
- topiclist: [
- {
- name: "鎮ㄧ殑韬綋搴峰鎯呭喌濡備綍",
- number: 1,
- type: 1,
- },
- {
- name: "鎮ㄧ殑楗鎯呭喌濡備綍",
- number: 2,
- type: 2,
- },
- {
- name: "鎮ㄧ殑鎭㈠鎯呭喌濡備綍",
- number: 3,
- type: 1,
- },
- ],
- tableData: [
- {
- date: "濂�",
- name: 12,
- address: "50%",
- },
- {
- date: "涓�鑸�",
- name: 2,
- address: "6.2%",
- },
- {
- date: "宸�",
- name: 0,
- address: "0%",
- },
- ],
- // 鏍囩琛ㄦ牸鏁版嵁
- userList: [],
- // 寮瑰嚭灞傛爣棰�
- title: "",
- // 鏄惁鏄剧ず寮瑰嚭灞�
- open: false,
- // 鏃ユ湡鑼冨洿
- dateRange: [],
- // 宀椾綅閫夐」
- postOptions: [],
- // 瑙掕壊閫夐」
- roleOptions: [],
- // 琛ㄥ崟鍙傛暟
- form: {},
- forms: {
- name: "",
- },
- numberlb: 22,
- dialogFormVisible: false, //娣诲姞銆佷慨鏀圭被鍒脊妗�
- lstamendtagVisible: false, //娣诲姞銆佷慨鏀规爣绛惧脊妗�
- goQRCodeVisible: false, //浜岀淮鐮佸脊妗�
- sidecolumnval: "", //绫诲埆鎼滅储
- propss: { multiple: true },
- topqueryParams: {}, //瀵煎嚭绛涢�夋潯浠�
- options: [
- {
- value: 1,
- label: "涓滃崡",
- },
- {
- value: 2,
- label: "瑗垮寳",
- },
- {
- value: 3,
- label: "浠ㄤ花浠�",
- },
- {
- value: 4,
- label: "鍏椋掗",
- },
- ],
- pickerOptions: {
- disabledDate(time) {
- return time.getTime() < Date.now() - 3600 * 1000 * 24;
- },
- shortcuts: [
- {
- text: "浠婂ぉ",
- onClick(picker) {
- picker.$emit("pick", new Date());
- },
- },
- {
- text: "鏄ㄥぉ",
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24);
- picker.$emit("pick", date);
- },
- },
- {
- text: "涓�鍛ㄥ墠",
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
- picker.$emit("pick", date);
- },
- },
- ],
- },
- pickerOptionsa: {
+ detailLoading: false,
+
+ // 璇︽儏寮圭獥
+ detailVisible: false,
+ detailTitle: "",
+ detailActiveTab: "trend",
+ currentGroup: {},
+ detailList: [],
+
+ // 鏃ユ湡閫夋嫨鍣ㄩ厤缃�
+ datePickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
shortcuts: [
{
- text: "浠婂ぉ",
+ text: "鏈�杩戜竴鍛�",
onClick(picker) {
- picker.$emit("pick", new Date());
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+ picker.$emit("pick", [start, end]);
},
},
{
- text: "鏄ㄥぉ",
+ text: "鏈�杩戜竴涓湀",
onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24);
- picker.$emit("pick", date);
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+ picker.$emit("pick", [start, end]);
},
},
{
- text: "涓�鍛ㄥ墠",
+ text: "鏈�杩戜笁涓湀",
onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
- picker.$emit("pick", date);
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+ picker.$emit("pick", [start, end]);
},
},
],
},
- // 鏌ヨ鏍囩鍒楄〃鍙傛暟
- queryParams: {
- pageNum: 1,
- pageSize: 10,
- tagname: undefined,
- tagdescription: undefined,
- },
- // 鍒椾俊鎭�
- columns: [
- { key: 0, label: `鏍囩缂栧彿`, visible: true },
- { key: 1, label: `鏍囩鍚嶇О`, visible: true },
- { key: 2, label: `鏍囩鏄电О`, visible: true },
- { key: 3, label: `閮ㄩ棬`, visible: true },
- { key: 4, label: `鎵嬫満鍙风爜`, visible: true },
- { key: 5, label: `鐘舵�乣, visible: true },
- { key: 6, label: `鍒涘缓鏃堕棿`, visible: true },
- ],
- // 琛ㄥ崟鏍¢獙
- // 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: {},
+
+ computed: {
+ // 璁$畻鎬诲彂閫侀噺
+ totalCount() {
+ return this.statisticsData.list.reduce(
+ (sum, item) => sum + item.totalCount,
+ 0
+ );
+ },
+
+ // 璁$畻鎬诲彂閫佹垚鍔熼噺
+ sendSuccessCount() {
+ return this.statisticsData.list.reduce(
+ (sum, item) => sum + item.sendSuccessCount,
+ 0
+ );
+ },
+
+ // 璁$畻鎬诲凡璇婚噺
+ readCount() {
+ return this.statisticsData.list.reduce(
+ (sum, item) => sum + item.readCount,
+ 0
+ );
+ },
+
+ // 璁$畻骞冲潎鍙戦�佹垚鍔熺巼
+ avgSendSuccessRate() {
+ if (this.statisticsData.list.length === 0) return 0;
+ const totalRate = this.statisticsData.list.reduce(
+ (sum, item) => sum + item.sendSuccessRate,
+ 0
+ );
+ return ((totalRate / this.statisticsData.list.length) * 100).toFixed(1);
+ },
+ },
+
created() {
+ this.flatArrayhospit = this.$store.getters.belongWards.map((ward) => {
+ return {
+ label: ward.districtName,
+ value: ward.districtCode,
+ };
+ });
+ this.flatArraydept = this.$store.getters.belongDepts.map((dept) => {
+ return {
+ label: dept.deptName,
+ value: dept.deptCode,
+ };
+ });
+ console.log(this.flatArrayhospit,'this.flatArrayhospit');
+
+ this.flatArraydept.push({ label: "鍏ㄩ儴", value: "all" });
+ this.flatArrayhospit.push({ label: "鍏ㄩ儴", value: "all" });
this.getList();
- this.gitclasify();
},
methods: {
- /** 鏌ヨ鏍囩鍒楄〃 */
- getList() {
- listtag(this.addDateRange(this.queryParams)).then((response) => {
- console.log(response);
- this.total = response.total;
- this.userList = response.rows;
- });
- },
- /** 淇敼鏍囩 */
- handleUpdate(row) {
- console.log(row, "淇敼鏍囩");
- this.lstamendtagVisible = true;
- this.lstamendtag = true;
- this.tagform = {
- isupload: row.isupload,
- tagname: row.tagname,
- tagcategoryid: row.tagcategoryid,
- tagdescription: row.tagdescription,
- tagid: row.tagid,
- };
- },
- addladeltag() {
- this.lstamendtagVisible = true;
- this.lstamendtag = false;
- this.tagform = {
- isupload: "",
- tagname: "",
- tagcategoryid: "",
- tagdescription: "",
- tagid: "",
- };
- },
- // 娣诲姞/淇敼鏍囩
- Maintenancetag() {
- if (this.lstamendtag) {
- toamendtag(this.addDateRange(this.tagform)).then((response) => {
- console.log(response);
- this.getList();
- });
- } else {
- addapitag(this.addDateRange(this.tagform)).then((response) => {
- console.log(response);
- this.getList();
- });
+ // 鑾峰彇缁熻鏁版嵁鍒楄〃
+ async getList() {
+ this.loading = true;
+ try {
+ console.log(this.queryParams.hospitaldistrictcodes);
+
+ // 鏋勫缓璇锋眰鍙傛暟
+ const params = {
+ pageNum: this.queryParams.pageNum,
+ pageSize: this.queryParams.pageSize,
+ hospitaldistrictcodes:
+ this.queryParams.hospitaldistrictcodes.includes("all")
+ ? this.getAllWardCodes()
+ : this.queryParams.hospitaldistrictcodes,
+ deptcodes: this.queryParams.deptcodes.includes("all")
+ ? this.getAllDeptCodes()
+ : this.queryParams.deptcodes,
+ };
+
+ // 鏍规嵁缁熻缁村害璁剧疆鍙傛暟
+ if (this.queryParams.groupType == "1") {
+ params.hospitaldistrictcodes = [];
+ } else if (this.queryParams.groupType == "2") {
+ params.deptcodes = [];
+ }
+
+ // 璁剧疆鏃堕棿鍙傛暟
+ if (
+ this.queryParams.dateRange &&
+ this.queryParams.dateRange.length === 2
+ ) {
+ params.starttime = this.queryParams.dateRange[0];
+ params.endtime = this.queryParams.dateRange[1];
+ }
+
+ // 璁剧疆鍏朵粬鍙傛暟
+ if (this.queryParams.hospType) {
+ params.hospType = this.queryParams.hospType;
+ }
+ if (this.queryParams.visittime) {
+ params.visittime = this.queryParams.visittime;
+ }
+
+ // 璋冪敤鎺ュ彛
+ const response = await gethelibraryCount(params);
+ this.statisticsData = {
+ total: response.total || 0,
+ list: response.list || [],
+ };
+ } catch (error) {
+ console.error("鑾峰彇缁熻鏁版嵁澶辫触:", error);
+ this.$message.error("鑾峰彇缁熻鏁版嵁澶辫触");
+ this.statisticsData = { total: 0, list: [] };
+ } finally {
+ this.loading = false;
}
- this.tagform = {
- isupload: "",
- tagname: "",
- tagcategoryid: "",
- tagdescription: "",
- tagid: "",
- };
+ },
+ getAllWardCodes() {
+ return this.flatArrayhospit
+ .filter((item) => item.value !== "all")
+ .map((item) => item.value);
},
- // 琛ㄥ崟閲嶇疆
- reset() {
- this.form = {
- userId: undefined,
- deptId: undefined,
- userName: undefined,
- nickName: undefined,
- password: undefined,
- phonenumber: undefined,
- email: undefined,
- sex: undefined,
- status: "0",
- remark: undefined,
- postIds: [],
- roleIds: [],
- };
- this.resetForm("form");
+ getAllDeptCodes() {
+ return this.flatArraydept
+ .filter((item) => item.value !== "all")
+ .map((item) => item.value);
},
- //鍗曢寮规
- handleUpdate() {
- this.topicVisible = true;
+ // 缁熻缁村害鍙樻洿
+ handleGroupTypeChange(value) {
+ // 鍒囨崲缁村害鏃舵竻绌哄搴旂殑閫夋嫨
+ if (value === "dept") {
+ this.queryParams.hospitaldistrictcodes = [];
+ } else if (value === "ward") {
+ this.queryParams.deptcodes = [];
+ }
},
- //缁撴灉寮规
- handleDelete() {
- this.consequenceVisible = true;
- },
- /** 鎼滅储鎸夐挳鎿嶄綔 */
+
+ // 澶勭悊鎼滅储
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
- /** 閲嶇疆鎸夐挳鎿嶄綔 */
+
+ // 閲嶇疆鎼滅储鏉′欢
resetQuery() {
- this.dateRange = [];
- this.resetForm("queryForm");
- this.queryParams.tagname = "";
- this.$refs.tree.setCurrentKey(null);
- this.handleQuery();
- },
- // 澶氶�夋閫変腑鏁版嵁
- handleSelectionChange(selection) {
- this.ids = selection.map((item) => item.tagid);
- this.single = selection.length != 1;
- this.multiple = !selection.length;
+ this.queryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ groupType: "dept",
+ deptcodes: [],
+ hospitaldistrictcodes: [],
+ hospType: undefined,
+ starttime: undefined,
+ endtime: undefined,
+ visittime: undefined,
+ dateRange: [],
+ orderBy: "totalCount",
+ order: "descending",
+ };
+ this.getList();
},
- /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+ // 琛ㄦ牸鎺掑簭
+ handleSortChange({ column, prop, order }) {
+ if (prop) {
+ this.queryParams.orderBy = prop;
+ this.queryParams.order = order;
+ this.getList();
+ }
+ },
+
+ // 鏍规嵁鎴愬姛鐜囪幏鍙栬繘搴︽潯棰滆壊
+ getRateColor(rate) {
+ const percentage = rate * 100;
+ if (percentage >= 90) return "#67C23A";
+ if (percentage >= 80) return "#E6A23C";
+ if (percentage >= 60) return "#409EFF";
+ return "#F56C6C";
+ },
+
+ // 鏌ョ湅鍒嗙粍璇︽儏
+ handleGroupDetail(row) {
+ this.currentGroup = row;
+ this.detailTitle = `${row.groupName} - 瀹f暀缁熻璇︽儏`;
+ this.detailActiveTab = "trend";
+ this.detailVisible = true;
+ this.loadDetailData();
+ },
+
+ // 鍔犺浇璇︽儏鏁版嵁
+ async loadDetailData() {
+ this.detailLoading = true;
+ try {
+ // 杩欓噷搴旇璋冪敤鑾峰彇璇︽儏鐨勬帴鍙�
+ // 妯℃嫙鏁版嵁
+ setTimeout(() => {
+ this.detailList = [
+ {
+ patientName: "寮犱笁",
+ patientNo: "P202312001",
+ sendTime: "2023-12-01 10:30:00",
+ readTime: "2023-12-01 14:20:00",
+ educationTitle: "楠ㄧ鏈悗搴峰鎸囧",
+ status: "宸茶",
+ },
+ {
+ patientName: "鏉庡洓",
+ patientNo: "P202312002",
+ sendTime: "2023-12-01 11:15:00",
+ readTime: "",
+ educationTitle: "蹇冭绠$柧鐥呴闃�",
+ status: "鍙戦�佹垚鍔�",
+ },
+ {
+ patientName: "鐜嬩簲",
+ patientNo: "P202312003",
+ sendTime: "2023-12-02 09:45:00",
+ readTime: "2023-12-02 16:10:00",
+ educationTitle: "绯栧翱鐥呴ギ椋熸寚瀵�",
+ status: "宸茶",
+ },
+ ];
+ this.detailLoading = false;
+ }, 500);
+ } catch (error) {
+ console.error("鍔犺浇璇︽儏鏁版嵁澶辫触:", error);
+ this.$message.error("鍔犺浇璇︽儏鏁版嵁澶辫触");
+ this.detailLoading = false;
+ }
+ },
+
+ // 鏌ョ湅璇︽儏
+ handleDetail(row) {
+ this.currentGroup = row;
+ this.detailTitle = `${row.groupName} - 鏄庣粏鏁版嵁`;
+ this.detailActiveTab = "detail";
+ this.detailVisible = true;
+ this.loadDetailData();
+ },
+
+ // 瀵煎嚭褰撳墠鍒嗙粍鏁版嵁
+ handleExportGroup(row) {
+ this.$confirm(`纭畾瑕佸鍑� "${row.groupName}" 鐨勭粺璁℃暟鎹悧?`, "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ // 杩欓噷璋冪敤瀵煎嚭鎺ュ彛
+ this.$message.success("瀵煎嚭浠诲姟宸插紑濮嬶紝璇风◢鍚庡湪涓嬭浇涓績鏌ョ湅");
+ })
+ .catch(() => {});
+ },
+
+ // 瀵煎嚭鍏ㄩ儴鏁版嵁
handleExport() {
- this.download(
- "base/tag/export",
- {
- ...this.topqueryParams,
- },
- `user_${new Date().getTime()}.xlsx`
- );
+ this.$confirm("纭畾瑕佸鍑哄叏閮ㄧ粺璁℃暟鎹悧?", "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ // 鏋勫缓瀵煎嚭鍙傛暟
+ const exportParams = { ...this.queryParams };
+ delete exportParams.pageNum;
+ delete exportParams.pageSize;
+
+ // 杩欓噷璋冪敤瀵煎嚭鎺ュ彛
+ this.$message.success("瀵煎嚭浠诲姟宸插紑濮嬶紝璇风◢鍚庡湪涓嬭浇涓績鏌ョ湅");
+ })
+ .catch(() => {});
+ },
+
+ // 鍏抽棴璇︽儏寮圭獥
+ handleCloseDetail(done) {
+ this.$confirm("纭鍏抽棴锛�", "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ done();
+ })
+ .catch(() => {});
},
},
};
</script>
<style lang="scss" scoped>
-.Questionnairemanagement {
- display: flex;
-}
-.sidecolumn {
- width: 180px;
- min-height: 100vh;
- text-align: center;
- // display: flex;
- margin-top: 20px;
- margin: 20px;
- padding: 30px;
- background: #edf1f7;
- border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
- .sidecolumn-top {
- display: flex;
- justify-content: space-between;
- .top-wj {
- font-size: 20px;
- }
- .top-tj {
- font-size: 18px;
+.education-statistics {
+ padding: 20px;
+ background: #fff;
+ min-height: calc(100vh - 84px);
- color: rgb(0, 89, 255);
- cursor: pointer;
- }
- }
- .center-ss {
- margin-top: 30px;
- .input-with-select {
- height: 40px !important;
- }
- }
- .bottom-fl {
- margin-top: 30px;
- display: center !important;
- }
-}
-.topicdia {
- text-align: center;
- margin: 0 20px;
-
- // overflow: scroll;
-
- .top-text {
- font-size: 25px;
- font-weight: 600;
- }
- .top-mintext {
- color: #bdae25;
- font-size: 15px;
- margin: 10px 0;
- }
- .ttaabbcc {
- // background: #edf1f7;
- border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
- margin: 15px 0;
- margin-top: 30px;
- padding: 30px;
- }
- .describe {
- text-align: left;
+ .search-container {
+ background: #f8f9fa;
+ padding: 20px;
+ border-radius: 8px;
margin-bottom: 20px;
- span {
- color: rgb(23, 140, 235);
- margin-left: 5px;
+ border: 1px solid #ebeef5;
+ }
+
+ .summary-cards {
+ margin-bottom: 20px;
+
+ .summary-card {
+ background: #fff;
+ border-radius: 8px;
+ padding: 20px;
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ text-align: center;
+ border: 1px solid #ebeef5;
+ transition: all 0.3s ease;
+
+ &:hover {
+ transform: translateY(-5px);
+ box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.15);
+ }
+
+ .card-title {
+ font-size: 14px;
+ color: #909399;
+ margin-bottom: 10px;
+ }
+
+ .card-value {
+ font-size: 28px;
+ font-weight: 600;
+ color: #409eff;
+ margin-bottom: 5px;
+ }
+
+ .card-desc {
+ font-size: 12px;
+ color: #c0c4cc;
+ }
}
}
-}
-::v-deep.el-tabs--left,
-.el-tabs--right {
- overflow: hidden;
- align-items: center;
- display: flex;
-}
-::v-deep.el-input--medium .el-input__inner {
- height: 40px !important;
-}
-::v-deep.el-tabs--right .el-tabs__active-bar.is-right {
- height: 40px;
- width: 5px;
- left: 0;
-}
-::v-deep.el-tabs--right .el-tabs__item.is-right {
- display: block;
- text-align: left;
- font-size: 20px;
-}
-.leftvlue {
- // display: flex;
- // flex: 1;
- width: 80%;
- margin-top: 20px;
- // margin: 20px;
- padding: 30px;
- background: #ffff;
- border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
- .mulsz {
- font-size: 20px;
+ .table-container {
+ background: #fff;
+ border-radius: 8px;
+ padding: 20px;
+ border: 1px solid #ebeef5;
+
+ .group-name {
+ color: #409eff;
+ cursor: pointer;
+ text-decoration: underline;
+ transition: color 0.3s;
+
+ &:hover {
+ color: #66b1ff;
+ }
+ }
+
+ .count-highlight {
+ font-weight: 600;
+ color: #606266;
+ }
+
+ .success-count {
+ color: #67c23a;
+ font-weight: 600;
+ }
+
+ .read-count {
+ color: #e6a23c;
+ font-weight: 600;
+ }
+
+ .rate-text {
+ display: block;
+ margin-top: 5px;
+ font-size: 12px;
+ color: #606266;
+ }
+ }
+
+ .detail-header {
+ margin-bottom: 20px;
+ padding: 20px;
+ background: #f8f9fa;
+ border-radius: 8px;
+
+ .detail-item {
+ label {
+ color: #909399;
+ font-size: 14px;
+ }
+
+ span {
+ font-size: 16px;
+ font-weight: 500;
+ color: #303133;
+ }
+
+ .rate-highlight {
+ color: #409eff;
+ font-weight: 600;
+ }
+ }
+ }
+
+ .detail-tabs {
+ margin-top: 20px;
+ }
+
+ .chart-placeholder {
+ height: 300px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #f8f9fa;
+ border-radius: 8px;
+ color: #909399;
+ border: 1px dashed #dcdfe6;
}
}
-.document {
- width: 100px;
- height: 50px;
-}
-.documentf {
- display: flex;
- justify-content: flex-end;
-}
-.button-text {
- color: rgb(70, 204, 238);
-}
-.button-textck {
- color: rgb(39, 167, 67);
-}
-.button-textxg {
- font-size: 18px;
- color: rgb(35, 81, 233);
-}
-.button-textsc {
- font-size: 18px;
- color: rgb(23, 140, 235);
+// 鍝嶅簲寮忚皟鏁�
+@media (max-width: 1200px) {
+ .education-statistics {
+ padding: 10px;
+ }
+
+ .summary-cards {
+ .el-col {
+ margin-bottom: 10px;
+ }
+ }
}
</style>
diff --git a/vue.config.js b/vue.config.js
index b430fbc..06bccd7 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -36,11 +36,11 @@
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
// target: `https://www.health-y.cn/lssf`,
- // target: `http://192.168.100.10:8096`,
+ target: `http://192.168.100.10:8096`,
// target: `http://192.168.100.10:8094`,//鐪佺珛鍚屽痉
// target: `http://192.168.100.10:8095`,//鏂板崕
// target: `http://192.168.100.10:8098`,//甯備竴
- target:`http://localhost:8095`,
+ // target:`http://localhost:8095`,
// target:`http://35z1t16164.qicp.vip`,
// target: `http://192.168.100.172:8095`,
// target: `http://192.168.101.166:8093`,
--
Gitblit v1.9.3