From 32148fb89c6cbedc24aaf9cb93a215a6cc665f2b Mon Sep 17 00:00:00 2001 From: yz3456 <2753272399@qq.com> Date: 星期二, 09 七月 2024 16:56:14 +0800 Subject: [PATCH] 修改了一些报错,完善了用户管理配偶的选择模块 --- ruoyi-ui/src/views/meeting/statistics.vue | 403 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 327 insertions(+), 76 deletions(-) diff --git a/ruoyi-ui/src/views/meeting/statistics.vue b/ruoyi-ui/src/views/meeting/statistics.vue index bf8d969..e619cdf 100644 --- a/ruoyi-ui/src/views/meeting/statistics.vue +++ b/ruoyi-ui/src/views/meeting/statistics.vue @@ -16,34 +16,34 @@ </div> </el-button> </div> - <div style="display: flex; align-items: center;"> + <!-- <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> + </div> --> </h1> <hr /> - <el-table :data="tableData" border :header-cell-style="{ background: 'pink', fontSize: '13px', color: 'black' }" + <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="num" sortable align="center"> - <template slot-scope="scope">{{ scope.row.num - ? scope.row.num : '鈥斺�斺�斺��' }}</template> + <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="time" sortable align="center"> - <template slot-scope="scope">{{ scope.row.time - ? scope.row.time : '鈥斺�斺�斺��' }}</template> + <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="address" sortable align="center"> + <el-table-column label="浼氳瀹ゅ悕绉�" prop="conferenceRoom" sortable align="center"> <template slot-scope="scope">{{ - scope.row.address ? scope.row.address : '鈥斺�斺�斺��' }}</template> + scope.row.conferenceRoom ? scope.row.conferenceRoom : '鈥斺�斺�斺��' }}</template> </el-table-column> <el-table-column label="鏍囬" prop="title" sortable align="center"> @@ -51,49 +51,68 @@ ? scope.row.title : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="鐢宠浜�" prop="applicant" sortable align="center"> + <el-table-column label="鐢宠浜�" prop="applyPerson" sortable align="center"> <template slot-scope="scope">{{ - scope.row.applicant ? scope.row.applicant : '鈥斺�斺�斺��' }}</template> + scope.row.applyPerson ? scope.row.applyPerson : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="瀹℃壒浜�" prop="approve" sortable align="center"> - <template slot-scope="scope">{{ scope.row.approve ? - scope.row.approve : '鈥斺�斺�斺��' }}</template> + <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 - ? scope.row.status : '鈥斺�斺�斺��' }}</template> + <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-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" append-to-body> - <div class="p1"> - <h1 style="font-size:21px">姣忔湀浼氳娆℃暟缁熻</h1> + <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"> - <h1 style="font-size:21px">浼氳瀹跺涵鍗犳瘮缁熻</h1> + <div class="p1" id="main2"> </div> </el-dialog> <!-- 鏂板鏁版嵁妗� --> - <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> + <!-- <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="num"> - <el-input v-model="formDat.num" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" clearable :style="{width: '100%'}"> + <el-form-item label="瀹跺涵鍙�" prop="familyId"> + <el-input v-model="formDat.familyId" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" clearable :style="{width: '100%'}"> </el-input> </el-form-item> @@ -108,8 +127,8 @@ ></el-date-picker> </el-form-item> - <el-form-item label="浼氳瀹ゅ悕绉�" prop="address"> - <el-input v-model="formDat.address" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" clearable :style="{width: '100%'}"> + <el-form-item label="浼氳瀹ゅ悕绉�" prop="conferenceRoom"> + <el-input v-model="formDat.conferenceRoom" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" clearable :style="{width: '100%'}"> </el-input> </el-form-item> @@ -118,13 +137,13 @@ </el-input> </el-form-item> - <el-form-item label="鐢宠浜�" prop="applicant"> - <el-input v-model="formDat.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉" clearable :style="{width: '100%'}"> + <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="approve"> - <el-input v-model="formDat.approve" placeholder="璇疯緭鍏ュ鎵逛汉" clearable :style="{width: '100%'}"> + <el-form-item label="瀹℃壒浜�" prop="ratifyPerson"> + <el-input v-model="formDat.ratifyPerson" placeholder="璇疯緭鍏ュ鎵逛汉" clearable :style="{width: '100%'}"> </el-input> </el-form-item> @@ -143,13 +162,27 @@ <el-button type="primary" @click="submitDataScope">淇� 瀛�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> - </el-dialog> + </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 { // 鏄剧ず鎼滅储鏉′欢 @@ -157,53 +190,38 @@ open: false, open2: false, title: "", - tableData: [{ - id: 1, - num: '1', - title: '1', - name: 'asasd', - address: 'asdadsdasd', - status: '缁撴' - }, - { - id: 2, - num: '2', - title: '2', - name: 'qweqwqwe', - address: 'qweqweqwe', - status: '鏈粨妗�' - - } - ], + meetingList: [], + dataList:[], + // 楗煎浘鏁版嵁 + graphID: [], + // 鏌辩姸鍥炬暟鎹� + graphDate: [], + years:undefined, + yearOptions:[], formDat:{ - id: undefined, - happenTime: undefined, - endTime: undefined, - meetingTitle: undefined, - address: undefined, - approve: undefined, - applicant: undefined, - url: "", - status: undefined, - num: undefined + "title":undefined, + "familyId":undefined, + "conferenceRoom":undefined, + "applyPerson":undefined, + "ratifyPerson":undefined, + "status":undefined, + "useTime":undefined }, + queryParams: { pageNum: 1, pageSize: 10, - address:undefined, - applyOrganization:undefined, - applicant:undefined, - happenTime:undefined + }, dateRange: [], // 琛ㄥ崟鏍¢獙 - rules: { - name: [{ - required: true, - message: '璇疯緭鍏ヨ澶囧悕绉�', - trigger: 'blur' - }], - }, + // rules: { + // name: [{ + // required: true, + // message: '璇疯緭鍏ヨ澶囧悕绉�', + // trigger: 'blur' + // }], + // }, typeOptions: [ { value: '1', @@ -219,6 +237,239 @@ } }, 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; @@ -241,7 +492,7 @@ // this.reset(); }, submitDataScope() { - console.log(666) + // console.log(666) }, tableRowClassName({ @@ -345,7 +596,7 @@ width: 700px; height: 700px; display: inline-block; - background-color: aqua; margin-right: 30px; + /* background-color: aqua; */ } </style> -- Gitblit v1.9.1