From edfece183c40c61bb9187f0146ca30485acdc6aa Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期三, 07 八月 2024 15:55:29 +0800 Subject: [PATCH] 11 --- src/views/project/indexstatistics/index.vue | 400 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 296 insertions(+), 104 deletions(-) diff --git a/src/views/project/indexstatistics/index.vue b/src/views/project/indexstatistics/index.vue index f6057db..9cdce92 100644 --- a/src/views/project/indexstatistics/index.vue +++ b/src/views/project/indexstatistics/index.vue @@ -2,12 +2,12 @@ <div class="app-container" style="background-color: #f2f2f2; color: #fff"> <el-card shadow="always" style="color: #566f94"> <el-row :gutter="8"> - <el-col :span="6"> + <el-col :span="8"> <el-date-picker v-model="selecttime" type="monthrange" range-separator="鑷�" - start-placeholder="寮�濮嬫湀浠�" + start-placeholder="寮�濮嬫湀浠斤紙榛樿鏈勾搴︼級" end-placeholder="缁撴潫鏈堜唤" value-format="yyyy-MM-dd" @change="getTimeList" @@ -61,15 +61,15 @@ <div style="width: 76%;"> <el-row :gutter="10" - style="font-size: 16px; font-weight: bold; margin-top: 10px" + style="font-size: 18px; font-weight: bold; margin-top: 10px" > <el-col :span="6"> <router-link :to="{ name: 'Donatebaseinfo', params: { - starttime: this.starttime, - endtime: this.endtime, + starttime: starttime, + endtime: endtime, tempRecordState: '', reporterno: reportervalue, shen: searchAddress.shen, @@ -85,7 +85,7 @@ <!-- @click="tobaseinfo0" --> <el-card shadow="always" style="color: #566f94"> <svg-icon icon-class="user" /> 娼滃湪鎹愮尞绱锛歿{ - this.donateNumData.numberOfDonate + donateNumData.numberOfDonate }} 渚� </el-card> </router-link> @@ -95,8 +95,8 @@ :to="{ name: 'Medicalevaluation', params: { - starttime: this.starttime, - endtime: this.endtime, + starttime: starttime, + endtime: endtime, tempRecordState: '', reporterno: reportervalue, shen: searchAddress.shen, @@ -112,7 +112,7 @@ @click="Tomedicalevalua" > <svg-icon icon-class="tool" /> 瀹屾垚鍖诲璇勪及绱锛歿{ - this.donateNumData.numberOfMedicalEvaluation + donateNumData.numberOfMedicalEvaluation }} 渚� </el-card> </router-link> @@ -122,8 +122,8 @@ :to="{ name: 'Relativesconfirmation', params: { - starttime: this.starttime, - endtime: this.endtime, + starttime: starttime, + endtime: endtime, tempRecordState: '', reporterno: reportervalue, shen: searchAddress.shen, @@ -136,7 +136,7 @@ <el-card shadow="always" style="color: #566f94"> <svg-icon icon-class="checkbox" /> 瀹屾垚浜插睘纭绱锛歿{ - this.donateNumData.numberOfRelativeConfirmation + donateNumData.numberOfRelativeConfirmation }} 渚� </el-card> </router-link> @@ -146,8 +146,8 @@ :to="{ name: 'EthicalReview', params: { - starttime: this.starttime, - endtime: this.endtime, + starttime: starttime, + endtime: endtime, tempRecordState: '', reporterno: reportervalue, shen: searchAddress.shen, @@ -160,7 +160,7 @@ <el-card shadow="always" style="color: #566f94"> <svg-icon icon-class="education" /> 瀹屾垚浼︾悊瀹℃煡绱锛歿{ - this.donateNumData.numberOfEthicalReview + donateNumData.numberOfEthicalReview }} 渚� </el-card> </router-link> @@ -171,36 +171,20 @@ style="margin-top: 10px; font-size: 18px; font-weight: bold" > <el-col :span="6"> - <router-link - :to="{ - name: 'Organallocation', - params: { - starttime: this.starttime, - endtime: this.endtime, - tempRecordState: '', - reporterno: reportervalue, - shen: searchAddress.shen, - shi: searchAddress.shi, - qu: searchAddress.qu, - city: city - } - }" - > - <el-card shadow="always" style="color: #566f94"> - <svg-icon icon-class="druid" /> 瀹屾垚鍣ㄥ畼鍒嗛厤绱锛歿{ - this.donateNumData.numberOfDonatePeople - }} 涓� - <!-- this.donateNumData.numberOfOrgans --> - </el-card> - </router-link> + <el-card shadow="always" style="color: #566f94"> + <svg-icon icon-class="druid" /> 瀹屾垚鍣ㄥ畼鍒嗛厤绱锛歿{ + donateNumData.numberOfDonatePeople + }} 涓� + <!-- donateNumData.numberOfOrgans --> + </el-card> </el-col> <el-col :span="6"> <router-link :to="{ name: 'Donationwitness', params: { - starttime: this.starttime, - endtime: this.endtime, + starttime: starttime, + endtime: endtime, tempRecordState: '', reporterno: reportervalue, shen: searchAddress.shen, @@ -212,7 +196,7 @@ > <el-card shadow="always" style="color: #566f94"> <svg-icon icon-class="job" /> 瀹屾垚鑾峰彇瑙佽瘉绱锛歿{ - this.donateNumData.numberOfWitness + donateNumData.numberOfWitness }} 渚� </el-card> </router-link> @@ -222,8 +206,8 @@ :to="{ name: 'Donatefinish', params: { - starttime: this.starttime, - endtime: this.endtime, + starttime: starttime, + endtime: endtime, tempRecordState: '', reporterno: reportervalue, shen: searchAddress.shen, @@ -235,7 +219,7 @@ > <el-card shadow="always" style="color: #566f94"> <svg-icon icon-class="lock" /> 鎹愮尞瀹屾垚绱锛歿{ - this.donateNumData.numberOfCompletion + donateNumData.numberOfCompletion }} 渚� </el-card> </router-link> @@ -246,9 +230,9 @@ :to="{ name: 'Donatebaseinfo', params: { - starttime: this.starttime, - endtime: this.endtime, - tempRecordState: 99, + starttime: starttime, + endtime: endtime, + terminationcase: 1, reporterno: reportervalue, shen: searchAddress.shen, shi: searchAddress.shi, @@ -259,7 +243,7 @@ > <el-card shadow="always" style="color: #566f94"> <svg-icon icon-class="lock" /> 鎹愮尞缁堟绱锛歿{ - this.donateNumData.numberOfTerminated + donateNumData.numberOfTerminated }} 渚� </el-card> </router-link> @@ -274,8 +258,27 @@ > <el-row style="margin-bottom: 20px"> <span style="font-size: 18px; color: #566f94; font-weight: bold" - >鏈勾搴︽寚鏍囨暟鎹垎鏋�</span + >鎸囨爣鏁版嵁鍒嗘瀽</span > + <span style="margin-left: 30px;"> + <router-link + :to="{ + name: 'DonationProcess', + params: { + starttime: starttime, + endtime: endtime, + terminationcase: 1, + reporterno: reportervalue, + shen: searchAddress.shen, + shi: searchAddress.shi, + qu: searchAddress.qu, + city: city + } + }" + > + <el-button type="primary" round>鎹愮尞杩涚▼</el-button> + </router-link> + </span> </el-row> <el-row :gutter="3"> <el-col :span="8" style="text-align: center"> @@ -284,9 +287,7 @@ style="padding: 0; margin: 0; width: 100%; color: #566f94" > 鍣ㄥ畼鎹愮尞杞寲鐜�<br /> - {{ - (this.qualirtData.donateTransferRate * 100).toFixed(2) - }}% + {{ (qualirtData.donateTransferRate * 100).toFixed(2) }}% </el-card> </el-col> <el-col :span="8" style="text-align: center"> @@ -295,9 +296,7 @@ style="padding: 0; margin: 0; width: 100%; color: #566f94" > 骞冲潎鍣ㄥ畼浜у嚭鐜�<br /> - {{ - (this.qualirtData.organProductionRate * 100).toFixed(2) - }}% + {{ (qualirtData.organProductionRate * 100).toFixed(2) }}% </el-card> </el-col> <el-col :span="8" style="text-align: center"> @@ -306,7 +305,7 @@ style="padding: 0; margin: 0; width: 100%; color: #566f94" > 鑾峰彇鍣ㄥ畼鍒╃敤鐜�<br /> - {{ (this.qualirtData.organUsedRate * 100).toFixed(2) }}% + {{ (qualirtData.organUsedRate * 100).toFixed(2) }}% </el-card> </el-col> </el-row> @@ -317,17 +316,15 @@ <el-row :gutter="10" style="margin-top: 10px"> <el-col :span="8" style="text-align: center" >DBD: - {{ (this.qualirtData.dbddonateRate * 100).toFixed(2) }}% + {{ (qualirtData.dbddonateRate * 100).toFixed(2) }}% </el-col> <el-col :span="8" style="text-align: center"> DCD: - {{ (this.qualirtData.dcddonateRate * 100).toFixed(2) }}% + {{ (qualirtData.dcddonateRate * 100).toFixed(2) }}% </el-col> <el-col :span="8" style="text-align: center"> DBCD: - {{ - (this.qualirtData.dbcddonateRate * 100).toFixed(2) - }}% + {{ (qualirtData.dbcddonateRate * 100).toFixed(2) }}% </el-col> </el-row> </el-card> @@ -343,9 +340,7 @@ <span style="font-size: 14px"> 鑾峰彇鍓嶆椿妫�鐜�</span> </el-row> {{ - (this.qualirtData.organBeforeGetCheckRate * 100).toFixed( - 2 - ) + (qualirtData.organBeforeGetCheckRate * 100).toFixed(2) }}% </el-card> </el-col> @@ -357,11 +352,7 @@ <el-row> <span style="font-size: 14px">鑾峰彇鍚庢椿妫�鐜�</span> </el-row> - {{ - (this.qualirtData.organAfterGetCheckRate * 100).toFixed( - 2 - ) - }}% + {{ (qualirtData.organAfterGetCheckRate * 100).toFixed(2) }}% </el-card> </el-col> </el-row> @@ -372,7 +363,7 @@ style="padding: 0; margin: 0; width: 100%; color: #566f94" > <span style="font-size: 14px">杈圭紭渚涘櫒瀹樻瘮鐜�</span><br /> - {{ (this.qualirtData.marginOrganRate * 100).toFixed(2) }}% + {{ (qualirtData.marginOrganRate * 100).toFixed(2) }}% </el-card> </el-col> <el-col :span="12" style="text-align: center"> @@ -382,8 +373,8 @@ > <span style="font-size: 14px" >鍣ㄥ畼淇濆瓨娑茬梾鍘熻弻鍩瑰吇闃虫�х巼</span - > - {{ (this.qualirtData.germPositiveRate * 100).toFixed(2) }}% + ><br /> + {{ (qualirtData.germPositiveRate * 100).toFixed(2) }}% </el-card> </el-col> </el-row> @@ -395,21 +386,19 @@ <el-row> <el-col :span="6" style="text-align: center"> 鎬诲彂鐢熺巼<br /> - {{ - (this.qualirtData.totalPNFRate * 100).toFixed(2) - }}% + {{ (qualirtData.totalPNFRate * 100).toFixed(2) }}% </el-col> <el-col :span="6" style="text-align: center"> DBD<br /> - {{ (this.qualirtData.dbdpnfrate * 100).toFixed(2) }}% + {{ (qualirtData.dbdpnfrate * 100).toFixed(2) }}% </el-col> <el-col :span="6" style="text-align: center"> DCD<br /> - {{ (this.qualirtData.dcdpnfrate * 100).toFixed(2) }}% + {{ (qualirtData.dcdpnfrate * 100).toFixed(2) }}% </el-col> <el-col :span="6" style="text-align: center"> DBCD<br /> - {{ (this.qualirtData.dbcdpnfrate * 100).toFixed(2) }}% + {{ (qualirtData.dbcdpnfrate * 100).toFixed(2) }}% </el-col> </el-row> </el-row> @@ -424,22 +413,22 @@ <el-row> <el-col :span="6" style="text-align: center"> 鎬诲彂鐢熺巼<br />{{ - (this.qualirtData.totalDGFRate * 100).toFixed(2) + (qualirtData.totalDGFRate * 100).toFixed(2) }}% </el-col> <el-col :span="6" style="text-align: center"> DBD<br />{{ - (this.qualirtData.dbddgfrate * 100).toFixed(2) + (qualirtData.dbddgfrate * 100).toFixed(2) }}% </el-col> <el-col :span="6" style="text-align: center"> DCD<br />{{ - (this.qualirtData.dcddgfrate * 100).toFixed(2) + (qualirtData.dcddgfrate * 100).toFixed(2) }}% </el-col> <el-col :span="6" style="text-align: center"> DBCD<br />{{ - (this.qualirtData.dbcddgfrate * 100).toFixed(2) + (qualirtData.dbcddgfrate * 100).toFixed(2) }}% </el-col> </el-row> @@ -451,7 +440,7 @@ </el-col> <el-col :span="12"> <el-card shadow="always" style="height: 640px" ref="organChartCard"> - <OrganNumChart :cdata="organData" /> + <OrganNumChart :cdata="organData" :CommonOrgan="CommonOrgan" /> </el-card> <!-- <el-col :span="7"> <el-card shadow="always" style="height: 640px" ref="orgNumberCard"> @@ -461,10 +450,10 @@ >鍚勫湴鍖哄尰闄㈡渚嬫暟鎹�</span > </el-col> - + </el-row> <el-row> - + </el-row> <dv-scroll-board :config="config" @@ -475,17 +464,86 @@ </el-col> </el-row> </div> - <div style="width: 24%; margin-top: 10px; padding-left: 10px;"> - <el-card class="box-card" style="padding: 0; font-weight: bold; height: 780px"> + <div style="width: 24%; margin-top: 10px; padding-left: 10px; "> + <el-card + class="box-card" + style="padding: 0; font-weight: bold; height: 780px; " + > <div slot="header" class="clearfix"> - <span style="font-size: 18px; color: #566f94; font-weight: bold">娑堟伅鍒楄〃</span> - <el-button style="float: right; padding: 3px 0" type="text" - >鍏ㄩ儴宸茶</el-button + <span style="font-size: 18px; color: #566f94; font-weight: bold" + >娑堟伅鍒楄〃</span + > + <el-button + v-if="ReadState == 1" + style="float: right; padding: 6px " + type="danger" + plain + @click="FnReadState" + >鏌ョ湅鏈娑堟伅</el-button + > + <el-button + v-else + style="float: right; padding: 6px " + type="info" + plain + @click="FnReadState" + >鏌ョ湅宸茶娑堟伅</el-button > </div> - <div v-for="o in 4" :key="o" class="text item"> - {{ "鍒楄〃鍐呭 " + o }} + <div style="height: 606px;overflow: auto;"> + <el-table :data="tableData" v-loading="loading" style="width: 100%"> + <el-table-column label="閫氱煡鏃ユ湡"> + <template slot-scope="scope"> + <i class="el-icon-time"></i> + <span style="margin-left: 10px">{{ + scope.row.createTime + }}</span> + </template> + </el-table-column> + <el-table-column label="姒傝"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <div class="dialog-class" style="margin: 20px;"> + <div>{{ scope.row.messagecontent }}</div> + <div style=" height: 100px;margin-top: 40px;"> + <span>{{ "澶勭悊浜猴細" + scope.row.sendusername }}</span> + <div>{{ "澶勭悊鏃堕棿锛�" + scope.row.updateTime }}</div> + </div> + <div style="text-align: right; ; margin: 0"> + <el-button + type="primary" + size="mini" + @click="clickMessageDetailed(scope.row)" + >纭畾</el-button + > + </div> + </div> + <div slot="reference" class="name-wrapper"> + <el-tag size="medium">{{ + scope.row.messagetitle + }}</el-tag> + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column label="鐘舵��" align="center" prop="paystatus"> + <template slot-scope="scope"> + <dict-tag + :options="dict.type.sys_messagestatus" + :value="scope.row.isread" + /> + </template> + </el-table-column> + </el-table> </div> + + <pagination + v-show="total > 0" + :total="total" + :page.sync="searchData.pageNum" + :limit.sync="searchData.pageSize" + @pagination="GetMessageList" + /> </el-card> </div> </div> @@ -557,6 +615,13 @@ getOrgansOfHospitalByMonth, getDonateorganSum } from "@/api/project/donateorgan"; +import { getUserProfile } from "@/api/system/user"; +import { + listSystemmessageList, + listSystemmessageCount, + updateSystemmessage +} from "@/api/project/message"; + import Li_area_select from "@/components/Address"; const DEF_TABLE_CONFIG = { @@ -569,6 +634,7 @@ export default { name: "home", + dicts: ["sys_messagestatus"], components: { RankChart, OrganNumChart, @@ -579,12 +645,13 @@ return { city: "", reportno: "", - selecttime: [], + selecttime: [new Date(new Date().getFullYear(), 0), new Date()], year: "閫夋嫨骞翠唤", isloading: false, maxHeight: 0, + CommonOrgan: null, provinceData: [ - { label: "鍏ㄩ儴", value: "" }, + { label: "鍏ㄩ儴鍦板競", value: "" }, { label: "鏉窞甯�", value: "1" }, { label: "瀹佹尝甯�", value: "2" }, { label: "娓╁窞甯�", value: "3" }, @@ -597,7 +664,18 @@ { label: "鍙板窞甯�", value: "A" }, { label: "涓芥按甯�", value: "B" } ], + ReadState: 1, + searchData: { + del_flag: 0, + receiveuserno: "", + isread: null, + pageNum: 1, + pageSize: 10 + }, + total: 0, + loading: false, value: "", + userID: "", //鏃堕棿閫夐」 timeoption: "", //璧峰鏃堕棿 @@ -610,84 +688,128 @@ key: "heart", name: "蹇冭剰", value: 0, + value1: 0, code: "C38" }, { key: "fullLiver", - name: "鍏ㄨ倽", + name: "鑲濊剰", value: 0, + value1: 0, + code: "C22" }, { - key: "leftLiver", - name: "宸﹁倽", + key: "Lefthalfliver", + name: "宸﹀崐鑲�", value: 0, + value1: 0, + code: "C22L" }, { - key: "rightLiver", - name: "鍙宠倽", + key: "Leftouterlobe", + name: "宸﹀鍙�", value: 0, + value1: 0, + + code: "C22L0" + }, + { + key: "Righthalfliver", + name: "鍙冲崐鑲�", + value: 0, + value1: 0, + code: "C22R" }, + { + key: "RML", + name: "鍙充笁鍙�", + value: 0, + value1: 0, + + code: "C22R0" + }, + { key: "leftRenal", name: "宸﹁偩", value: 0, + value1: 0, + code: "C64L" }, { key: "rightRenal", name: "鍙宠偩", value: 0, + value1: 0, + code: "C64R" }, { key: "fullLung", name: "鍏ㄨ偤", value: 0, + value1: 0, + code: "C34" }, { key: "leftLung", name: "宸﹁偤", value: 0, + value1: 0, + code: "C34L" }, { key: "rightLung", name: "鍙宠偤", value: 0, + value1: 0, + code: "C34R" }, { key: "", name: "灏忚偁", value: 0, + value1: 0, + code: "C17" }, { key: "", name: "鑳拌吅", value: 0, + value1: 0, + code: "C25" }, { key: "leftEye", name: "宸︾溂鑶�", value: 0, + value1: 0, + code: "C69L" }, { key: "rightEye", name: "鍙崇溂鑶�", value: 0, + value1: 0, + code: "C69R" }, { key: "", name: "鍏跺畠", value: 0, + value1: 0, + code: "C01" } // { @@ -695,6 +817,28 @@ // name: "閬椾綋", // value: 0, // }, + ], + tableData: [ + { + date: "2016-05-02", + name: "鐜嬪皬铏�", + address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�" + }, + { + date: "2016-05-04", + name: "鐜嬪皬铏�", + address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�" + }, + { + date: "2016-05-01", + name: "鐜嬪皬铏�", + address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�" + }, + { + date: "2016-05-03", + name: "鐜嬪皬铏�", + address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�" + } ], //缁熻鎸囨爣鏁版嵁 qualirtData: { @@ -760,6 +904,7 @@ // listnewEthicalreviewopinions created() { // this.listnewMedicalevaluation() + this.GetUser(); }, mounted() { this.$nextTick(() => { @@ -773,7 +918,53 @@ }, methods: { getprovincedata() {}, - + GetUser() { + this.loading = true; + getUserProfile() + .then(res => { + this.searchData.receiveuserno = res.data.userName; + this.GetMessageList(); + }) + .catch(error => { + this.$message.error(error); + }); + }, + GetMessageList() { + listSystemmessageList(this.searchData).then(res => { + if (res.code == 200) { + this.tableData = res.rows; + this.loading = false; + this.total = res.total; + } + }); + }, + // 纭畾宸茶 + clickMessageDetailed(item) { + let data = item; + if (data.isread == 0) { + item.isread = 1; + updateSystemmessage(item) + .then(res => { + this.$message.success("宸茶"); + this.GetMessageList(); + }) + .catch(error => {}); + } else { + this.$message.info("姝ゆ秷鎭凡璇�"); + } + }, + // 鍒囨崲璇诲彇鐘舵�� + FnReadState() { + if (this.ReadState == 1) { + this.searchData.isread = 0; + this.ReadState = 0; + this.GetMessageList(); + } else { + this.searchData.isread = 1; + this.ReadState = 1; + this.GetMessageList(); + } + }, get_unix_time(dateStr) { var newstr = dateStr.replace(/-/g, "/"); var date = new Date(newstr); @@ -881,6 +1072,7 @@ if (this.reportervalue != "") { param.reporterno = this.reportervalue; } + console.log(param, "param"); getDonateorganSum(param).then(response => { /* let list = this.organData.map((item) => item); @@ -889,13 +1081,15 @@ } this.organData = list; */ - let list = response.data; + let list = response.data.organInfoVOList; + this.CommonOrgan = response.data; for (let i = 0; i < this.organData.length; i++) { let ii = list.findIndex( item => item.organNo == this.organData[i].code ); if (ii > -1) { this.organData[i].value = list[ii].count; + this.organData[i].value1 = list[ii].abandonCount; } } }); @@ -988,8 +1182,6 @@ // : ""; let info = { - pageNum: 1, - pageSize: 10, starttime: this.starttime, endtime: this.endtime @@ -1036,7 +1228,7 @@ }); //缁堟 - info.recordstate = "99"; + info.terminationCase = 1; listDonatebaseinfo(info).then(res => { this.donateNumData.numberOfTerminated = res.total; }); @@ -1044,7 +1236,7 @@ listDonatebaseinfo({}).then(res => { let list = res.rows; let reportlist = []; - reportlist.push({ reporterno: "", reportername: "鍏ㄩ儴" }); + reportlist.push({ reporterno: "", reportername: "鍏ㄩ儴浜哄憳" }); list.forEach(element => { reportlist.push({ reporterno: element.reporterno, -- Gitblit v1.9.3