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 | 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