From b6c854df0d7baa3e2f375306102b906eee127f3d Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 31 七月 2025 16:43:39 +0800 Subject: [PATCH] 测试完成 --- src/views/sfstatistics/percentage/index.vue | 552 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 427 insertions(+), 125 deletions(-) diff --git a/src/views/sfstatistics/percentage/index.vue b/src/views/sfstatistics/percentage/index.vue index c7b24d4..1e06ca3 100644 --- a/src/views/sfstatistics/percentage/index.vue +++ b/src/views/sfstatistics/percentage/index.vue @@ -44,20 +44,15 @@ v-show="showSearch" label-width="98px" > - <!-- <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 label="璐d换鍖荤敓" prop="userName"> + <el-input + v-model="queryParams.drname" + placeholder="璇疯緭鍏ヤ富娌诲尰鐢�" + ></el-input> </el-form-item> --> <el-form-item label="缁熻绫诲瀷" prop="userName"> <el-select - v-model="queryParams.Statisticaltype" + v-model="queryParams.statisticaltype" placeholder="璇烽�夋嫨缁熻绫诲瀷" > <el-option @@ -69,34 +64,35 @@ </el-option> </el-select> <el-select - v-if="queryParams.Statisticaltype == 1" - v-model="queryParams.leavehospitaldistrictCode" + style="margin-left: 10px" + v-if="queryParams.statisticaltype == 1" + v-model="queryParams.leavehospitaldistrictcodes" size="medium" multiple filterable placeholder="璇烽�夋嫨鐥呭尯" > <el-option - v-for="item in flatArray" - :key="item.deptCode" + v-for="item in flatArrayhospit" + :key="item.value" :label="item.label" - :value="item.deptCode" + :value="item.value" > </el-option> </el-select> <el-select - v-else-if="queryParams.Statisticaltype == 2" - v-model="queryParams.deptCode" + v-else-if="queryParams.statisticaltype == 2" + v-model="queryParams.deptcodes" size="medium" multiple filterable placeholder="璇烽�夋嫨绉戝" > <el-option - v-for="item in flatArray" - :key="item.deptCode" + v-for="item in flatArraydept" + :key="item.value" :label="item.label" - :value="item.deptCode" + :value="item.value" > </el-option> </el-select> @@ -124,6 +120,7 @@ > <el-date-picker v-model="queryParams.dateRange" + value-format="yyyy-MM-dd" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" @@ -147,51 +144,17 @@ >閲嶇疆</el-button > </el-form-item> + <el-col :span="19"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="medium" + @click="handleExport" + >瀵煎嚭</el-button + > + </el-col> </el-form> - - <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-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" @@ -206,15 +169,24 @@ <el-table-column label="鍑洪櫌鐥呭尯" align="center" + sortable key="leavehospitaldistrictname" prop="leavehospitaldistrictname" + width="150" + :show-overflow-tooltip="true" + /> + <el-table-column + label="绉戝" + align="center" + key="deptname" + prop="deptname" :show-overflow-tooltip="true" /> <el-table-column label="鍑洪櫌浜烘" align="center" - key="leavehospitaldistrictname" - prop="leavehospitaldistrictname" + key="dischargeCount" + prop="dischargeCount" > </el-table-column> @@ -222,16 +194,16 @@ label="鏃犻渶闅忚浜烘" align="center" width="100" - key="NonFollowUp" - prop="NonFollowUp" + key="nonFollowUp" + prop="nonFollowUp" > </el-table-column> <el-table-column label="搴旈殢璁夸汉娆�" align="center" width="100" - key="FollowUpNeeded" - prop="FollowUpNeeded" + key="followUpNeeded" + prop="followUpNeeded" > </el-table-column> <el-table-column align="center" label="棣栨鍑洪櫌闅忚"> @@ -245,58 +217,76 @@ <el-table-column label="寰呴殢璁�" align="center" - key="PendingFollowUp" - prop="PendingFollowUp" + key="pendingFollowUp" + prop="pendingFollowUp" > </el-table-column> <el-table-column label="闅忚鎴愬姛" align="center" - key="FollowUpSuccess" - prop="FollowUpSuccess" + key="followUpSuccess" + prop="followUpSuccess" > </el-table-column> <el-table-column label="闅忚澶辫触" align="center" - key="FollowUpFail" - prop="FollowUpFail" + key="followUpFail" + prop="followUpFail" > </el-table-column> <el-table-column label="闅忚鐜�" align="center" width="120" - key="FollowUpRate" - prop="FollowUpRate" + key="followUpRate" + prop="followUpRate" > - <template slot-scope="scope"> + <!-- <template slot-scope="scope"> <span >{{ - (Number(scope.row.FollowUpRate) * 100).toFixed(2) + (Number(scope.row.followUpRate) * 100).toFixed(2) }}%</span + > + </template> --> + </el-table-column> + <el-table-column + label="鍙婃椂鐜�" + align="center" + width="120" + key="rate" + prop="rate" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="Seedetails(scope.row)" + ><span class="button-zx" + >{{ (Number(scope.row.rate) * 100).toFixed(2) }}%</span + ></el-button > </template> </el-table-column> <el-table-column label="浜哄伐" align="center" - key="Manual" - prop="Manual" + key="manual" + prop="manual" > </el-table-column> <el-table-column label="鐭俊" align="center" - key="SMS" - prop="SMS" + key="sms" + prop="sms" > </el-table-column> <el-table-column label="寰俊" align="center" - key="WeChat" - prop="WeChat" + key="weChat" + prop="weChat" > </el-table-column> </el-table-column> @@ -311,58 +301,58 @@ <el-table-column label="寰呴殢璁�" align="center" - key="PendingFollowUpAgain" - prop="PendingFollowUpAgain" + key="pendingFollowUpAgain" + prop="pendingFollowUpAgain" > </el-table-column> <el-table-column label="闅忚鎴愬姛" align="center" - key="FollowUpSuccessAgain" - prop="FollowUpSuccessAgain" + key="followUpSuccessAgain" + prop="followUpSuccessAgain" > </el-table-column> <el-table-column label="闅忚澶辫触" align="center" - key="FollowUpFailAgain" - prop="FollowUpFailAgain" + key="followUpFailAgain" + prop="followUpFailAgain" > </el-table-column> <el-table-column label="闅忚鐜�" align="center" width="120" - key="FollowUpRateAgain" - prop="FollowUpRateAgain" + key="followUpRateAgain" + prop="followUpRateAgain" > - <template slot-scope="scope"> + <!-- <template slot-scope="scope"> <span >{{ (Number(scope.row.FollowUpRateAgain) * 100).toFixed(2) }}%</span > - </template> + </template> --> </el-table-column> <el-table-column label="浜哄伐" align="center" - key="ManualAgain" - prop="ManualAgain" + key="manualAgain" + prop="manualAgain" > </el-table-column> <el-table-column label="鐭俊" align="center" - key="SMSAgain" - prop="SMSAgain" + key="smsAgain" + prop="smsAgain" > </el-table-column> <el-table-column label="寰俊" align="center" - key="WeChatAgain" - prop="WeChatAgain" + key="weChatAgain" + prop="weChatAgain" > </el-table-column> </el-table-column> @@ -379,6 +369,234 @@ </el-row> </div> </div> + <el-dialog + title="鏈強鏃堕殢璁挎偅鑰呮湇鍔�" + :visible.sync="SeedetailsVisible" + v-loading="Seedloading" + width="70%" + :close-on-click-modal="false" + > + <div class="examine-jic"> + <div class="jic-value"> + <el-row :gutter="20"> + <!--鐢ㄦ埛鏁版嵁--> + <el-form + :model="patientqueryParams" + ref="queryForm" + size="small" + :inline="true" + label-width="98px" + > + <el-form-item label="鎮h�咃細"> + <el-input + v-model="patientqueryParams.name" + @keyup.enter.native="handleQuery" + ></el-input> + </el-form-item> + <el-form-item label="鎮h�呰瘖鏂細"> + <el-input + v-model="patientqueryParams.leavediagname" + @keyup.enter.native="handleQuery" + ></el-input> + </el-form-item> + + <el-form-item> + <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> + <!-- 閫夋嫨鎮h�呭垪琛� --> + <el-table :data="logsheetlist" style="width: 100%"> + <el-table-column + prop="sendname" + align="center" + label="濮撳悕" + width="100" + > + </el-table-column> + <el-table-column + prop="taskName" + align="center" + width="200" + show-overflow-tooltip + label="浠诲姟鍚嶇О" + > + </el-table-column> + <el-table-column + prop="sendstate" + align="center" + width="200" + label="浠诲姟鐘舵��" + > + <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="success" :disable-transitions="false" + >宸插畬鎴�</el-tag + > + </div> + </template> + </el-table-column> + <el-table-column + prop="visitTime" + align="center" + label="搴旈殢璁挎椂闂�" + width="200" + show-overflow-tooltip + > + </el-table-column> + <el-table-column + prop="finishtime" + align="center" + label="闅忚瀹屾垚鏃堕棿" + width="200" + show-overflow-tooltip + > + </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="璐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" + key="excep" + prop="excep" + width="120" + > + <template slot-scope="scope"> + <dict-tag + :options="dict.type.sys_yujing" + :value="scope.row.excep" + /> + </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 + prop="templatename" + align="center" + label="鏈嶅姟妯℃澘" + width="200" + show-overflow-tooltip + > + </el-table-column> + <el-table-column + prop="remark" + align="center" + label="鏈嶅姟璁板綍" + width="200" + show-overflow-tooltip + > + </el-table-column> + + <el-table-column + prop="bankcardno" + align="center" + label="鍛煎彨鐘舵��" + width="210" + > + </el-table-column> + <el-table-column + label="鎿嶄綔" + fixed="right" + align="center" + width="200" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="SeedetailsgGo(scope.row)" + ><span class="button-zx" + ><i class="el-icon-s-order"></i>鏌ョ湅</span + ></el-button + > + </template> + </el-table-column> + </el-table> + </el-row> + <pagination + v-show="patienttotal > 0 && this.patientqueryParams.allhosp != 6" + :total="patienttotal" + :page.sync="patientqueryParams.pn" + :limit.sync="patientqueryParams.ps" + @pagination="Seedetails" + /> + </div> + </div> + </el-dialog> </div> </template> @@ -386,16 +604,11 @@ import { toamendtag, addapitag, - detailstag, deletetag, changetagcategory, - toamendtagcategory, - addtagcategory, - deletetagcategory, - listtag, - tagclassifylist, } from "@/api/system/label"; -import { getSfStatistics, deptTreeSelect } from "@/api/system/user"; +import store from "@/store"; +import { getSfStatistics, selectTimelyRate } from "@/api/system/user"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; @@ -424,7 +637,7 @@ }, ]; export default { - name: "questionnaire", + name: "Percentage", dicts: ["sys_normal_disable", "sys_user_sex"], components: { Treeselect }, data() { @@ -433,6 +646,7 @@ activeName: "first", //渚ц竟閫夋嫨 // 閬僵灞� loading: false, + Seedloading: false, // 閫変腑鏁扮粍 ids: [], // 闈炲崟涓鐢� @@ -444,9 +658,10 @@ idds: "", //鍒嗙被id // 鎬绘潯鏁� total: 0, - flatArray: [], - deptflatArray: [], - + flatArrayhospit: [], + flatArraydept: [], + patienttotal: 0, + logsheetlist: [], Statisticallist: [ { label: "鐥呭尯缁熻", @@ -457,6 +672,10 @@ value: 2, }, ], + patientqueryParams: { + pn: 1, + ps: 10, + }, amendtag: false, //鏄惁淇敼绫诲埆 lstamendtag: false, //鏄惁淇敼鏍囩 scavisible: false, //鍒犻櫎寮规 @@ -484,6 +703,10 @@ postOptions: [], // 瑙掕壊閫夐」 roleOptions: [], + // 瀛樺偍鎵�鏈夌瀹や唬鐮� + allDeptCodes: [], + // 瀛樺偍鎵�鏈夌梾鍖轰唬鐮� + allWardCodes: [], // 琛ㄥ崟鍙傛暟 form: {}, forms: { @@ -495,7 +718,7 @@ goQRCodeVisible: false, //浜岀淮鐮佸脊妗� sidecolumnval: "", //绫诲埆鎼滅储 propss: { multiple: true }, - + SeedetailsVisible: false, options: [ { value: 1, @@ -559,7 +782,9 @@ pageSize: 10, serviceType: [2], dateRange: [], - Statisticaltype: 1, + statisticaltype: 1, + leavehospitaldistrictcodes: ["all"], // 榛樿閫変腑鍏ㄩ儴鐥呭尯 + deptcodes: ["all"], // 榛樿閫変腑鍏ㄩ儴绉戝 }, // 鍒椾俊鎭� columns: [ @@ -575,14 +800,30 @@ }, watch: {}, created() { - this.getList(); this.getDeptTree(); + this.getList(); }, methods: { /** 鏌ヨ鏍囩鍒楄〃 */ getList() { - getSfStatistics(this.queryParams).then((response) => { + // 澶勭悊鏌ヨ鍙傛暟 + const params = { + ...this.queryParams, + // 濡傛灉閫夋嫨浜�"鍏ㄩ儴"锛屽垯浼犳墍鏈夌梾鍖�/绉戝浠g爜 + leavehospitaldistrictcodes: + this.queryParams.leavehospitaldistrictcodes.includes("all") + ? this.allWardCodes + : this.queryParams.leavehospitaldistrictcodes, + deptcodes: this.queryParams.deptcodes.includes("all") + ? this.allDeptCodes + : this.queryParams.deptcodes, + }; + + // 绉婚櫎鍙兘瀛樺湪鐨�"all"鍊� + delete params.leavehospitaldistrictcodes.all; + delete params.deptcodes.all; + getSfStatistics(params).then((response) => { console.log(response); // this.total = response.total; this.userList = response.data; @@ -604,13 +845,32 @@ // 鑾峰彇绉戝鏍� getDeptTree() { // 绉戝鍒楄〃 - deptTreeSelect().then((response) => { - this.deptOptions = response.data; - console.log(this.deptOptions, " this.deptOptions"); - - this.flatArray = this.flattenArray(response.data); - console.log(this.flatArray, "this.flatArray"); + this.flatArraydept = store.getters.belongDepts.map((dept) => { + return { + label: dept.deptName, + value: dept.deptCode, + }; }); + // 瀛樺偍鎵�鏈夌瀹や唬鐮� + this.allDeptCodes = store.getters.belongDepts.map( + (dept) => dept.deptCode + ); + + // 鐥呭尯鍒楄〃 + this.flatArrayhospit = store.getters.belongWards.map((ward) => { + return { + label: ward.districtName, + value: ward.districtCode, + }; + }); + + // 瀛樺偍鎵�鏈夌梾鍖轰唬鐮� + this.allWardCodes = store.getters.belongWards.map( + (ward) => ward.districtCode + ); + this.flatArraydept.push({ label: "鍏ㄩ儴", value: "all" }); + this.flatArrayhospit.push({ label: "鍏ㄩ儴", value: "all" }); + }, flattenArray(multiArray) { let result = []; @@ -641,6 +901,41 @@ tagdescription: "", tagid: "", }; + }, + Seedetails(row) { + this.SeedetailsVisible = true; + this.Seedloading = true; + this.patientqueryParams.starttime = this.parseTime( + this.queryParams.dateRange[0] + ); + this.patientqueryParams.endtime = this.parseTime( + this.queryParams.dateRange[1] + ); + this.patientqueryParams.deptcode = row.deptcode; + selectTimelyRate(this.patientqueryParams).then((response) => { + this.logsheetlist = response.data.detail; + this.patienttotal = response.data.total; + this.Seedloading = false; + }); + }, + SeedetailsgGo(row) { + this.SeedetailsVisible = false; + let type = ""; + if (row.preachformson && row.preachformson.includes("3")) { + type = 1; + } + setTimeout(() => { + this.$router.push({ + path: "/followvisit/record/detailpage/", + query: { + taskid: row.taskid, + patid: row.patid, + id: row.id, + Voicetype: type, + // visitCount: this.topqueryParams.visitCount, + }, + }); + }, 300); }, // 娣诲姞/淇敼鏍囩 Maintenancetag() { @@ -711,7 +1006,14 @@ /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { this.queryParams.pageNum = 1; - console.log(); + if (!this.queryParams.dateRange) this.queryParams.dateRange = []; + if (this.queryParams.statisticaltype == 1) { + this.queryParams.deptcodes = []; + } else if (this.queryParams.statisticaltype == 2) { + this.queryParams.leavehospitaldistrictcodes = []; + } + console.log(this.queryParams.dateRange); + this.queryParams.startTime = this.parseTime( this.queryParams.dateRange[0] ); -- Gitblit v1.9.3