From f72cc2c5bc9ea4df7819cf53e3b872024e0583a1 Mon Sep 17 00:00:00 2001
From: feige <791364011@qq.com>
Date: 星期六, 31 八月 2024 10:54:27 +0800
Subject: [PATCH] 修改家庭医生上传
---
ruoyi-ui/src/views/meeting/statistics.vue | 568 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 566 insertions(+), 2 deletions(-)
diff --git a/ruoyi-ui/src/views/meeting/statistics.vue b/ruoyi-ui/src/views/meeting/statistics.vue
index 05955e7..e619cdf 100644
--- a/ruoyi-ui/src/views/meeting/statistics.vue
+++ b/ruoyi-ui/src/views/meeting/statistics.vue
@@ -6,16 +6,546 @@
</el-backtop>
<h1 style="font-size:21px;padding-top:30px;display: flex;">
- <span>浼氳缁熻</span>
+ <p><span >浼氳缁熻</span></p>
+ <div class="button-container"></div>
+ <div style="display: flex; align-items: center;">
+ <el-button @click="pictureStatistics" size="mini" type="text" v-hasPermi="['person:information:memo']" style="margin-left: 10px">
+ <div class="form1"><el-icon style="padding-right:50px;"></el-icon>
+ <span class="text" style="width: 69px;height: 26px;font-size: 16px;
+ font-family: Microsoft YaHei-Regular, Microsoft YaHei; color: #EBA4AA;">鍥捐〃缁熻</span>
+ </div>
+ </el-button>
+ </div>
+ <!-- <div style="display: flex; align-items: center;">
+ <el-button @click="newRequest" size="mini" type="text" v-hasPermi="['person:information:memo']" style="margin-left: 10px">
+ <div class="form2" style="width: 100px;"><el-icon style="padding-right:30px;"></el-icon>
+ <span class="text" style="width: 69px;height: 26px;font-size: 16px;
+ font-family: Microsoft YaHei-Regular, Microsoft YaHei; color: #EBA4AA;">鏂板缓</span>
+ </div>
+ </el-button>
+ </div> -->
+
</h1>
<hr />
+
+ <el-table :data="meetingList" border :header-cell-style="{ background: 'pink', fontSize: '13px', color: 'black' }"
+ :row-class-name="tableRowClassName" :row-key="getRowId">
+ <el-table-column label="瀹跺涵鍙�" prop="familyId" sortable align="center">
+ <template slot-scope="scope">{{ scope.row.familyId
+ ? scope.row.familyId : '鈥斺�斺�斺��' }}</template>
+ </el-table-column>
+
+ <el-table-column label="浣跨敤鏃堕棿" prop="useTime" sortable align="center">
+ <template slot-scope="scope">{{ scope.row.useTime
+ ? scope.row.useTime : '鈥斺�斺�斺��' }}</template>
+ </el-table-column>
+
+ <el-table-column label="浼氳瀹ゅ悕绉�" prop="conferenceRoom" sortable align="center">
+ <template slot-scope="scope">{{
+ scope.row.conferenceRoom ? scope.row.conferenceRoom : '鈥斺�斺�斺��' }}</template>
+ </el-table-column>
+
+ <el-table-column label="鏍囬" prop="title" sortable align="center">
+ <template slot-scope="scope">{{ scope.row.title
+ ? scope.row.title : '鈥斺�斺�斺��' }}</template>
+ </el-table-column>
+
+ <el-table-column label="鐢宠浜�" prop="applyPerson" sortable align="center">
+ <template slot-scope="scope">{{
+ scope.row.applyPerson ? scope.row.applyPerson : '鈥斺�斺�斺��' }}</template>
+ </el-table-column>
+
+ <el-table-column label="瀹℃壒浜�" prop="ratifyPerson" sortable align="center">
+ <template slot-scope="scope">{{ scope.row.ratifyPerson ?
+ scope.row.ratifyPerson : '鈥斺�斺�斺��' }}</template>
+ </el-table-column>
+
+ <el-table-column label="鐘舵��" prop="status" sortable align="center">
+ <template slot-scope="scope">{{scope.row.status===1? '缁撴': '鏈粨妗�'}}</template>
+ </el-table-column>
+
+
+ <el-table-column label="鎿嶄綔" align="center" width="200" class-name="small-padding fixed-width">
+ <template slot-scope="scope" v-if="scope.row.roleId !== 1">
+ <div class="button-container">
+ <!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">淇敼</el-button> -->
+ <!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button> -->
+ <el-button size="mini" type="text" icon="el-icon-d-arrow-right" @click="handleCheck(scope.row)">鏌ョ湅璇︽儏</el-button>
+ </div>
+ </template>
+ </el-table-column>
+
+ </el-table>
+ <pagination
+ v-show="total>0"
+ :total="total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ style="background: #FEF7FC;"
+ />
+
+ <!-- 鍥捐〃缁熻 -->
+ <el-dialog :title="title2" :visible.sync="open2" width="1500px" @open="openGraph()" append-to-body>
+ <div>
+ 骞翠唤
+ <el-select v-model="years" id="yearSelect"
+ placeholder="璇烽�夋嫨骞翠唤" clearable
+ style="width: 240px;
+ height: 35px;
+ border-radius: 16px 16px 16px 16px;
+ opacity: 0.5;" filterable allow-create
+ @change="selectValue">
+ <el-option v-for="item in yearOptions"
+ :key="item.value" :label="item.label" :value="item.value"/>
+ </el-select>
+ </div>
+ <div class="p1" id="main1">
+ </div>
+ <div class="p1" id="main2">
+ </div>
+ </el-dialog>
+ <!-- 鏂板鏁版嵁妗� -->
+ <!-- <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+
+ <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
+
+ <el-form-item label="瀹跺涵鍙�" prop="familyId">
+ <el-input v-model="formDat.familyId" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" clearable :style="{width: '100%'}">
+ </el-input>
+ </el-form-item>
+
+ <el-form-item label="寮�濮嬫椂闂�" prop="happenTime">
+ <el-date-picker v-model="formDat.happenTime" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+ :editable="false" :clearable="false" :style="{width: '100%'}" value-format="yyyy-MM-dd"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item label="缁撴潫鏃堕棿" prop="endTime">
+ <el-date-picker v-model="formDat.endTime" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+ :editable="false" :clearable="false" :style="{width: '100%'}" value-format="yyyy-MM-dd"
+ ></el-date-picker>
+ </el-form-item>
+
+ <el-form-item label="浼氳瀹ゅ悕绉�" prop="conferenceRoom">
+ <el-input v-model="formDat.conferenceRoom" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" clearable :style="{width: '100%'}">
+ </el-input>
+ </el-form-item>
+
+ <el-form-item label="鏍囬" prop="meetingTitle">
+ <el-input v-model="formDat.meetingTitle" placeholder="璇疯緭鍏ヤ細璁爣棰�" clearable :style="{width: '100%'}">
+ </el-input>
+ </el-form-item>
+
+ <el-form-item label="鐢宠浜�" prop="applyPerson">
+ <el-input v-model="formDat.applyPerson" placeholder="璇疯緭鍏ョ敵璇蜂汉" clearable :style="{width: '100%'}">
+ </el-input>
+ </el-form-item>
+
+ <el-form-item label="瀹℃壒浜�" prop="ratifyPerson">
+ <el-input v-model="formDat.ratifyPerson" placeholder="璇疯緭鍏ュ鎵逛汉" clearable :style="{width: '100%'}">
+ </el-input>
+ </el-form-item>
+
+ <el-form-item label="鐘舵��" prop="status">
+ <el-select v-model="formDat.status" placeholder="璇烽�夋嫨" clearable :style="{width: '100%'}">
+ <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+
+ </el-form>
+
+ </el-upload>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="submitDataScope">淇� 瀛�</el-button>
+ <el-button @click="cancel">鍙� 娑�</el-button>
+ </div>
+ </el-dialog> -->
</div>
</template>
<script>
+import * as echarts from 'echarts';
+ import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
+ import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
+
+ import { Notification, MessageBox, Message, Loading } from 'element-ui'
+
+ //鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁� --鎺ュソ浜�
+ import {listMeeting3,listGraph} from "@/api/meeting/index";
+
+ export default {
+ created() {
+ this.getList();
+ this.graphData();
+ },
+ data() {
+ return {
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ open: false,
+ open2: false,
+ title: "",
+ meetingList: [],
+ dataList:[],
+ // 楗煎浘鏁版嵁
+ graphID: [],
+ // 鏌辩姸鍥炬暟鎹�
+ graphDate: [],
+ years:undefined,
+ yearOptions:[],
+ formDat:{
+ "title":undefined,
+ "familyId":undefined,
+ "conferenceRoom":undefined,
+ "applyPerson":undefined,
+ "ratifyPerson":undefined,
+ "status":undefined,
+ "useTime":undefined
+ },
+
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+
+ },
+ dateRange: [],
+ // 琛ㄥ崟鏍¢獙
+ // rules: {
+ // name: [{
+ // required: true,
+ // message: '璇疯緭鍏ヨ澶囧悕绉�',
+ // trigger: 'blur'
+ // }],
+ // },
+ typeOptions: [
+ {
+ value: '1',
+ label: '缁撴',
+ },
+ {
+ value: '0',
+ label: '鏈粨妗�',
+ }
+ ],
+
+
+ }
+ },
+ methods: {
+ getList() {
+ this.loading = true;
+ // console.log(this.queryParams)
+ // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+ this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0]
+ this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1]
+ listMeeting3(this.queryParams).then(response => {
+ // alert(123)
+ // console.log(response.data.data,'22222222222')
+ this.meetingList = response.data.data;
+
+ this.total = response.data.total;
+ this.loading = false;
+ }
+
+ );
+ },
+ getTypeOptions(list){
+ let years = ['鍏ㄩ儴']
+ let a = {}
+ list.forEach(element=>{
+ let year = element.createTime.split("-")[0]
+ if(a[year]){
+ }else{
+ a[year] = 1
+ years.push(year)
+ }
+ })
+ let yearOptions = []
+ for(let i=0;i<years.length;i++){
+ yearOptions.push({label: years[i],value: i})
+ }
+ return yearOptions;
+ },
+ graphData(){
+ this.loading = true;
+ listGraph().then(response => {
+ this.dataList = response.data
+ console.log(this.dataList,'11111111111')
+ this.yearOptions = this.getTypeOptions(this.dataList)
+ console.log(this.yearOptions,'yearsyearsyearsyears')
+
+ // 瀹跺涵鍙�
+ let a = {}
+ this.dataList.forEach(element=>{
+ if(a[element['familyId']]){
+ a[element['familyId']] += 1
+ }else{
+ a[element['familyId']] = 1
+ }
+ })
+ for(let i in a){
+ this.graphID.push({'name': i , 'value': a[i]})
+ }
+ // 姣忔湀娆℃暟
+ let b = {'01': 0,'02': 0,'03': 0,'04': 0,'05': 0,'06': 0,'07': 0,'08': 0,'09': 0,'10': 0,'11': 0,'12': 0}
+ this.dataList.forEach(element=>{
+ let month = element.createTime.split("-")[1]
+ if(b[month]){
+ b[month] += 1
+ }else{
+ b[month] = 1
+ }
+ })
+
+ let kon =[]
+ for(let i in b){
+ kon.push({'name': Number(i) , 'value': b[i]})
+ }
+ this.graphDate = kon.sort((a,b) => a.name - b.name)
+
+ this.loading = false;
+ }
+ );
+ },
+
+ b(list,selectedValue){
+ let list2 = []
+ let newGraphID = []
+ let newGraphDate = []
+ list.forEach(element=>{
+ let year = element.createTime.split("-")[0]
+ if(selectedValue == year){
+ list2.push(element)
+ }
+ })
+
+ if(list2.length != 0){
+ // 瀹跺涵鍙�
+ let a = {}
+ list2.forEach(element=>{
+ if(a[element['familyId']]){
+ a[element['familyId']] += 1
+ }else{
+ a[element['familyId']] = 1
+ }
+ })
+ for(let i in a){
+ newGraphID.push({'name': i , 'value': a[i]})
+ }
+ // 姣忔湀娆℃暟
+ let b = {'01': 0,'02': 0,'03': 0,'04': 0,'05': 0,'06': 0,'07': 0,'08': 0,'09': 0,'10': 0,'11': 0,'12': 0}
+ list2.forEach(element=>{
+ let month = element.createTime.split("-")[1]
+ if(b[month]){
+ b[month] += 1
+ }else{
+ b[month] = 1
+ }
+ })
+
+ let kon =[]
+ for(let i in b){
+ kon.push({'name': Number(i) , 'value': b[i]})
+ }
+ newGraphDate = kon.sort((a,b) => a.name - b.name)
+ }else{
+ list2 = list
+ // 瀹跺涵鍙�
+ let a = {}
+ list2.forEach(element=>{
+ if(a[element['familyId']]){
+ a[element['familyId']] += 1
+ }else{
+ a[element['familyId']] = 1
+ }
+ })
+ for(let i in a){
+ newGraphID.push({'name': i , 'value': a[i]})
+ }
+ // 姣忔湀娆℃暟
+ let b = {'01': 0,'02': 0,'03': 0,'04': 0,'05': 0,'06': 0,'07': 0,'08': 0,'09': 0,'10': 0,'11': 0,'12': 0}
+ list2.forEach(element=>{
+ let month = element.createTime.split("-")[1]
+ if(b[month]){
+ b[month] += 1
+ }else{
+ b[month] = 1
+ }
+ })
+
+ let kon =[]
+ for(let i in b){
+ kon.push({'name': Number(i) , 'value': b[i]})
+ }
+ newGraphDate = kon.sort((a,b) => a.name - b.name)
+ }
+
+ return [newGraphID,newGraphDate];
+ },
+
+ selectValue(value){
+ let obj = {}
+ let year = undefined
+ obj= this.yearOptions.find(function(i){
+ return i.value ===value
+ });
+ year = obj.label
+
+ let result = undefined
+ result = this.b(this.dataList,year)
+ this.graphID = result[0]
+ this.graphDate = result[1]
+ // console.log(this.graphID)
+ // console.log(this.graphDate)
+ echarts.dispose(document.getElementById('main1'))
+ echarts.dispose(document.getElementById('main2'))
+ this.initEcharts()
+ },
+
+ openGraph(){
+ this.$nextTick(() => {
+ // 鎵цecharts鏂规硶
+ this.initEcharts()
+ })
+ },
+ initEcharts() {
+ const myChart1 = echarts.init(document.getElementById('main1'))
+ const option1 = {
+ title: {
+ text: '姣忔湀浼氳娆℃暟缁熻',
+ left:'center'
+ },
+ tooltip: {},
+ xAxis: {
+ data: ['1鏈�','2鏈�','3鏈�','4鏈�','5鏈�','6鏈�','7鏈�','8鏈�','9鏈�','10鏈�','11鏈�','12鏈�']
+ },
+ yAxis: {},
+ legend:{},
+ series: [{
+ type: 'bar',
+ data: this.graphDate.map(x => x.value)
+ }]
+ };
+ myChart1.setOption(option1)
+
+ const myChart2 = echarts.init(document.getElementById('main2'))
+ const option2 = {
+ title: {
+ text: '浼氳瀹跺涵鍗犳瘮缁熻',
+ left:'center',
+ textStyle:{
+ fontSize:20
+ }
+ },
+ tooltip: {},
+ legend:{
+ orient: 'vertical',
+ left: 'left',
+ textStyle:{
+ fontSize:15
+ }
+ },
+ series: [{
+ name: '瀹跺涵鍙�',
+ type: 'pie',
+ data: this.graphID,
+ label: {
+ show: true, // 鏄惁鏄剧ず鏍囩
+ position: 'top', // 鏍囩浣嶇疆锛屽彲閫夊�间负锛歵op銆乥ottom銆乧enter銆乮nside锛堟煴鐘跺浘鍐呴儴锛夈�乷utside锛堟煴鐘跺浘澶栭儴锛�
+ textStyle: {
+ color: '#333', // 鏍囩瀛椾綋棰滆壊
+ fontSize: 25, // 鏍囩瀛椾綋澶у皬
+ fontWeight: 'bold', // 鏍囩瀛椾綋鍔犵矖
+ fontStyle: 'italic', // 鏍囩瀛椾綋鏂滀綋
+ fontFamily: 'Arial' // 鏍囩瀛椾綋
+ }
+ },
+ }]
+ };
+
+ myChart2.setOption(option2)
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery() {
+ this.queryParams.pageNum = 1;
+ this.getList();
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.dateRange = [];
+ this.resetForm("queryForm");
+ this.handleQuery();
+ },
+
+
+ newRequest(){
+ this.open = true;
+ this.title = "鏂板"
+ },
+ cancel() {
+ this.open = false;
+ // this.reset();
+ },
+ submitDataScope() {
+ // console.log(666)
+ },
+
+ tableRowClassName({
+ row,
+ rowIndex
+ }) {
+ if (rowIndex % 2 == 0) {
+ return "statistics-warning-row1";
+ } else {
+ return "statistics-warning-row";
+ }
+ },
+ getRowId(row) {
+ return row.id
+ },
+
+ // 淇敼
+ handleUpdate(row) {
+ const id = row.id;
+ let jd = true
+
+ this.$router.push({
+ path:"/meeting/statistics/statisticsInfo/" + id,
+ query:{
+ detail:jd
+ }
+ });
+ },
+ // 鏌ョ湅璇︾粏淇℃伅
+ handleCheck(row){
+ const id = row.id;
+ this.$router.push("/meeting/statistics/statisticsInfo/" + id);
+ },
+
+ /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+ handleDelete(row) {
+ const Ids = row.id || this.ids;
+ this.$modal.confirm('鏄惁纭鍒犻櫎鏁版嵁椤癸紵').then(function() {
+ return delSelfEconomy(Ids);
+ }).then(() => {
+ this.getList();
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }).catch(() => {});
+ },
+
+ // 鍥捐〃缁熻
+ pictureStatistics(){
+ this.open2=true;
+ this.title2 = "鍥捐〃缁熻"
+ },
+
+ }
+ }
</script>
<style scoped>
.el-table__row.statistics-warning-row {
@@ -30,9 +560,43 @@
font-size: 14px; /* 璁剧疆瀛椾綋澶у皬 */
}
.button-container {
- display: inline-flex; /* 璁剧疆鎸夐挳瀹瑰櫒涓鸿鍐呭厓绱� */
+ /* display: inline-flex; 璁剧疆鎸夐挳瀹瑰櫒涓鸿鍐呭厓绱� */
+ text-align: right;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+ flex-grow: 1;
}
.app-container {
background-color: #FEF7FC;
}
+ .form1{
+ background:left/40% no-repeat url('../../assets/icons/pic.png') ;
+ height: 50px;
+ line-height: 50px;
+ }
+ .form2{
+ background:left/25% no-repeat url('../../assets/icons/add1.png') ;
+ height: 50px;
+ line-height: 50px;
+ }
+
+ /deep/ .el-table .statistics-warning-row {
+ background: #E0EEFE;
+ }
+
+ /deep/ .el-table .statistics-warning-row1 {
+ background: #FFEFF2;
+ }
+
+ .el-table {
+ border-radius: 14px 14px 14px 14px;
+ }
+ .p1{
+ width: 700px;
+ height: 700px;
+ display: inline-block;
+ margin-right: 30px;
+ /* background-color: aqua; */
+ }
</style>
--
Gitblit v1.9.1