From b403195a75a452b54fe2112158b454f6d80c0e11 Mon Sep 17 00:00:00 2001
From: gaoluyang <gaoluyang@rengu.cc>
Date: 星期四, 11 七月 2024 15:03:55 +0800
Subject: [PATCH] 科学计数法逻辑修改
---
src/components/view/index-index.vue | 1240 ++++++++++++++++++++++++++++++----------------------------
1 files changed, 647 insertions(+), 593 deletions(-)
diff --git a/src/components/view/index-index.vue b/src/components/view/index-index.vue
index b7b059a..e3ece03 100644
--- a/src/components/view/index-index.vue
+++ b/src/components/view/index-index.vue
@@ -3,36 +3,15 @@
width: 100%;
height: calc(100% - 50px);
overflow-y: auto;
- padding: 25px 0;
- }
-
- .no {
- width: 100%;
- display: flex;
- margin-bottom: 10px;
- }
-
- .card {
- border-radius: 6px;
- background-color: #fff;
- padding: 10px 20px;
- }
-
- .no1 {
- display: flex;
- }
-
- .no1 .left {
- width: 65%;
- margin-right: 10px;
+ padding: 25px 0 10px;
}
.left-1 {
background-image: url("../../../static/img/棣栭〉鍥剧墖1.png");
background-size: 100% 100%;
- width: calc(100% - 40px);
- height: 7.2vw;
- margin-bottom: 10px;
+ height: 118px;
+ margin-bottom: 16px;
+ border-radius: 16px;
}
.left-1 .say {
@@ -56,91 +35,6 @@
font-size: 17px;
}
- .left-2 {
- width: 100%;
- display: flex;
- }
-
- .card-1 {
- width: calc(25% - 40px);
- height: 100px;
- display: flex;
- align-items: center;
- margin-right: 10px;
- }
-
- .card-1 .label .p1 {
- color: #333;
- font-size: 0.85vw;
- font-style: normal;
- font-weight: 400;
- margin-bottom: 10px;
- }
-
- .card-1 .label .p2 {
- color: #3A7BFA;
- font-size: 1.4vw;
- font-style: normal;
- font-weight: 400;
- }
-
- .card-1 .label {
- width: calc(100% - 4vw);
- }
-
- .card-1 .icon {
- background-color: #F3F6FA;
- border-radius: 50%;
- width: 4vw;
- height: 4vw;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- .card-1 .icon i {
- font-size: 1.6vw;
- color: #3A7BFA;
- }
-
- .right {
- width: 35%;
- height: calc(7.2vw + 10px + 120px);
- display: flex;
- flex-wrap: wrap;
- }
-
- .card-2 {
- width: 33.3%;
- height: calc(50% - 20px);
- display: flex;
- justify-content: center;
- align-items: center;
- flex-wrap: wrap;
- cursor: pointer;
- margin-bottom: 10px;
- }
-
- .card-2 .icon {
- width: 3.5vw;
- height: 3.5vw;
- background-color: #F3F6FA;
- border-radius: 24px;
- }
-
- .card-2 .icon i {
- font-size: 1.7vw;
- display: flex;
- align-items: center;
- justify-content: center;
- height: 100%;
- }
-
- .card-2 .text {
- width: 100%;
- text-align: center;
- }
-
::-webkit-scrollbar {
width: 0px;
}
@@ -150,39 +44,235 @@
border-radius: 3px;
}
- .cart-3,
- .cart-4,
- .cart-5,
- .cart-6 {
- width: calc(50%);
- height: 300px;
- background-color: #fff;
+ .card{
+ background: #FFFFFF;
+ border-radius: 16px;
+ width: 100%;
+ box-sizing: border-box;
+ }
+
+ .right-1{
+ padding: 10px 10px 4px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 16px;
+ }
+
+ .right-1-item{
+ width: 25%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .right-1-item .mun{
+ margin-left: 6px;
+ color: #0166E2;
+ }
+
+ .right-2{
+ padding: 13px 14px 8px;
+ margin-bottom: 16px;
+ }
+
+ .right-2-title{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+
+ .right-2-body{
+ width: 100%;
+ margin-top: 20px;
+ display: flex;
+ align-items: start;
+ justify-content: space-between;
+ }
+ >>>.el-calendar__header {
+ display: none;
+ }
+ >>>.el-calendar__body{
+ padding: 0;
+ }
+ >>>.el-calendar-table:not(.is-range) td.next {
+ /*闅愯棌涓嬩釜鏈堢殑鏃ユ湡*/
+ display: none;
+ }
+ >>>.el-calendar-day{
+ height: 40px;
+ }
+ >>>.el-calendar-table td{
+ border: 0;
+ font-size: 14px;
+ }
+ >>>.el-calendar-table tr td:first-child{
+ border-left: 0;
+ }
+ .control{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ box-sizing: border-box;
+ padding: 0px 0 10px;
+ }
+ .control .el-button{
+ width: 32px;
+ height: 32px;
+ border-radius: 8px;
+ border: 1px solid #E8E8E8;
+ background: #fff;
+ padding: 0;
+ color: #0166E2;
+ font-size: 20px;
+ }
+ .list2-item{
+ line-height: 22px;
+ display: flex;
+ margin-bottom: 12px;
+ font-size: 14px;
+ }
+ .right-3-tab{
+ display: flex;
+ align-items: center;
+ margin-bottom: 12px;
+ }
+ .tab-item{
+ width: 50%;
+ box-sizing: border-box;
+ text-align: center;
+ padding: 14px 0;
+ font-size: 20px;
+ background: #F5F7FB;
+ color: #333333;
+ }
+ .tab-item.active{
+ background: #fff;
+ color: #FF3838;
+ }
+ .right-3-list{
+ padding: 0 12px 8px;
+ box-sizing: border-box;
+ height: 390px;
+ overflow-y: auto;
+ }
+ .list3-item{
+ padding: 6px 4px;
+ margin: 8px 0;
+ }
+ .list3-item:hover{
+ background: rgba(58, 123, 250,0.05);
+ }
+ .list3-item-title{
+ display: flex;
+ align-items: start;
+ margin-bottom: 10px;
+ }
+ .list3-item-info{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ color: #666666;
+ font-size: 14px;
+ }
+ .left-2{
+ display: grid;
+ grid-template-columns: repeat(7, 1fr);
+ height: 777px;
+ }
+ .left-2-item{
+ border-right: 1px solid #F1F1F1;
+ overflow: hidden !important;
+ }
+ .left-2-item:nth-last-child(1){
+ border-right: 0;
+ }
+ .left-2-item:hover{
+ background: rgba(58,123,250,0.05);
+ }
+ .left-2-item:hover .left-item-title span{
+ color: #3A7BFA !important;
+ }
+ .left-item-title{
+ border-bottom: 1px solid #F1F1F1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 20px 0;
+ }
+ .left-item-body{
+ box-sizing: border-box;
+ padding: 5px;
+ height: 693px;
+ overflow-y: auto;
+ }
+ .body-item{
+ background: #70A090;
+ border-radius: 16px;
+ overflow: hidden;
+ margin-bottom: 8px;
+ }
+ .body-item.color0{
+ background: #70A090;
+ }
+ .body-item.color1{
+ background: #EBD476;
+ }
+ .body-item.color2{
+ background: #FF3838;
+ }
+ .body-item>div{
+ height: calc(100% - 16px);
+ margin-top: 16px;
+ background: rgba(255, 255, 255,0.9);
+ padding: 8px 8px 16px;
+ display: flex;
+ flex-direction: column;
+ }
+ .search_thing {
+ height: 50px;
+ margin-bottom: 26px;
}
- .cart-3 div,
- .cart-4 div,
- .cart-5 div,
- .cart-6 div {
- width: 100%;
- height: calc(100% - 30px);
+ .search_label {
+ width: 120px;
+ font-size: 14px;
+ text-align: left;
+ margin-bottom: 10px;
}
-
- .card p {
- width: 100%;
- line-height: 30px;
- }
-
- .cart-3,
- .cart-5 {
- margin-right: 10px;
- }
+ >>>.el-calendar-day span{
+ display: inline-block;
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+ text-align: center;
+ border-radius: 4px;
+ }
+ >>>.is-selected{
+ background: transparent !important;
+ }
+ >>>.is-selected .el-calendar-day{
+ background: transparent !important;
+ }
+ >>>.is-selected .el-calendar-day span{
+ background: #3A7BFA !important;
+ color: #fff !important;
+ }
+ >>>.el-calendar-day:hover{
+ background: transparent;
+ }
+ >>>.el-calendar-day span:hover{
+ background: #3A7BFA !important;
+ color: #fff !important;
+ }
</style>
<template>
<div class="index">
- <div class="no no1">
- <div class="left">
- <div class="left-1 card">
+ <el-row :gutter="25">
+ <el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="14">
+ <div class="left-1">
<div class="say">
<div style="display: flex;align-items: center;flex-wrap: wrap;">
<div class="say-1">{{user.name}} 鎮ㄥソ锛佺鎮ㄥ紑蹇冩瘡涓�澶�</div>
@@ -190,144 +280,273 @@
</div>
</div>
</div>
- <div class="left-2">
- <div class="card card-1">
- <div class="label">
- <p class="p1">鏄ㄦ棩瀹㈡埛娑堣垂</p>
- <p class="p2">{{data.data1.data1}}</p>
+ <div class="left-2 card" v-loading="workLoading" style="overflow: hidden;">
+ <div class="left-2-item" v-for="(item,index) in workDay" :key="index">
+ <div class="left-item-title">
+ <span style="font-size: 18px;">{{ item }}</span>
+ <span style="font-size: 14px;color: #999999;">{{ weekdays[index] }}</span>
+ </div>
+ <div class="left-item-body">
+ <div class="body-item" v-for="(m,i) in workList[index]" :key="i" :class="{color0:m.type==0,color1:m.type==1,color2:m.type==2}">
+ <div>
+ <span style="font-size: 12px;margin-bottom: 17px;">{{ m.text }}</span>
+ <span style="display: inline-block;height: 24px;width: 24px;border-radius: 50%;line-height: 24px;text-align: center;background: #C0C4CC;color: #fff;">{{ m.name.charAt(0) }}</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="10" :lg="10" :xl="10">
+ <div class="right-1 card">
+ <div class="right-1-item">
+ <div class="img">
+ <img src="../../../static/img/index-0.svg" alt="">
+ </div>
+ <div class="mun">
+ <p style="font-size: 20px;">{{getNumberFourTypes.totalNumberOfMessages}}</p>
+ <p style="font-size: 14px;margin-bottom: 10px;">鎴戠殑寰呭姙</p>
+ </div>
+ </div>
+ <div class="right-1-item">
+ <div class="img">
+ <img src="../../../static/img/index-1.svg" alt="">
+ </div>
+ <div class="mun">
+ <p style="font-size: 20px;">{{ getNumberFourTypes.totalNumberOfReadMessages }}</p>
+ <p style="font-size: 14px;margin-bottom: 10px;">宸插姙浜嬪疁</p>
+ </div>
+ </div>
+ <div class="right-1-item">
+ <div class="img">
+ <img src="../../../static/img/index-2.svg" alt="">
+ </div>
+ <div class="mun">
+ <p style="font-size: 20px;">{{ getNumberFourTypes.remainingToDo }}</p>
+ <p style="font-size: 14px;margin-bottom: 10px;">鍓╀綑寰呭姙</p>
+ </div>
+ </div>
+ <div class="right-1-item">
+ <div class="img">
+ <img src="../../../static/img/index-3.svg" alt="">
+ </div>
+ <div class="mun">
+ <p style="font-size: 20px;">{{ getNumberFourTypes.totalNumberOfMessagesInThePastSevenDays }}</p>
+ <p style="font-size: 14px;margin-bottom: 10px;">杩戞湡浜嬪疁</p>
+ </div>
+ </div>
+ </div>
+ <div class="right-2 card">
+ <div class="right-2-title">
+ <span style="color: #333333;font-size: 16px;">鎴戠殑鏃ョ▼</span>
+ <span style="cursor: pointer;font-size: 12px;
+color: #3A7BFA;" @click="dialogVisible=true">娣诲姞鎴戠殑鏃ョ▼</span>
+ </div>
+ <div class="right-2-body">
+ <div class="calendar" style="width: 49%;">
+ <div class="control">
+ <el-button class="prevm" @click="prevMonth(calendarValue)" icon="el-icon-arrow-left"></el-button>
+ <span>{{ calendarValue.getFullYear()+'骞�'+(calendarValue.getMonth() + 1)+'鏈�' }}</span>
+ <el-button class="nextm" @click="nextMonth(calendarValue)" icon="el-icon-arrow-right"></el-button>
+ </div>
+ <el-calendar v-model="calendarValue">
+ <template
+ slot="dateCell"
+ slot-scope="{date, data}">
+ <span>
+ {{ data.day.split('-').slice(2)+'' }}
+ </span>
+ <!-- <el-badge v-if="data.isSelected" is-dot class="item">
+ </el-badge> -->
+ </template>
+ </el-calendar>
+ </div>
+ <div class="right-2-list" style="width: 49%;height: 286px;" v-loading="scheduleLoading">
+ <div class="list2-item" v-for="(m,i) in listScheduleByMe" :key="i">
+ <span>{{ m.scheduleTimes }}</span>
+ <el-tooltip style="margin-left: 10px;" effect="dark" :content="m.text" placement="top">
+ <p class="ellipsis-multiline" >{{ m.text }}</p>
+ </el-tooltip>
+ </div>
+ <span style="color:rgb(144, 147, 153);font-size: 14px;text-align: center;margin: 120px 0;display: inline-block;width: 100%;" v-if="listScheduleByMe.length==0">鏆傛棤鏁版嵁</span>
+ </div>
+ </div>
+ </div>
+ <div class="right-3 card" style="overflow: hidden;">
+ <div class="right-3-tab">
+ <div class="tab-item" style="cursor: pointer;" :class="{active:currentIndex==4}" @click="currentIndex=4">棰勮鎻愰啋</div>
+ <div class="tab-item" style="cursor: pointer;" :class="{active:currentIndex==5}" @click="currentIndex=5">閫氱煡閫氬憡</div>
+ </div>
+ <div class="right-3-list" v-loading="listLoading">
+ <scroll-pagination @load="getList" :finishLoding="finishLoding" :list="list" v-if="list.length>0">
+ <div class="list3-item" v-for="(m,i) in list" :key="i">
+ <div class="list3-item-title">
+ <img src="../../../static/img/index-tip.svg" alt="">
+ <p>{{ m.theme }}</p>
+ </div>
+ <div class="list3-item-info">
+ <p style="width: 73%;-webkit-line-clamp: 1;cursor: pointer;" class="ellipsis-multiline" @click="goNoticeDetail(m)">
+ <!-- 缂栧彿<span style="color:#3A7BFA;"> SB20240101-001 </span>鐨勮澶囧皢浜�2023-09-09 11:11:11杩囨湡 -->
+ {{ m.content }}
+ </p>
+ <p>{{ m.createTime }}</p>
+ </div>
+ </div>
+ </scroll-pagination>
+ <div v-if="list.length<1&&!listLoading" style="color:#909399;font-size:14px;text-align: center;margin-top:80px" >鏆傛棤鏁版嵁</div>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-dialog title="鏃ョ▼娣诲姞" :visible.sync="dialogVisible" width="400px">
+ <div class="body" style="max-height: 60vh;">
+ <el-row>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label"><span style="color: red;margin-right: 4px;">*</span>鏃堕棿锛�</div>
+ <div class="search_input">
+ <el-date-picker
+ v-model="query.time"
+ type="datetime"
+ placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+ size="small"
+ value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%;" format="yyyy-MM-dd HH:mm:ss">
+ </el-date-picker>
</div>
- <div class="icon">
- <i class="font icon-a-Group1139"></i>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label"><span style="color: red;margin-right: 4px;">*</span>鍐呭锛�</div>
+ <div class="search_input">
+ <el-input v-model="query.text" type="textarea"
+ :rows="2" size="small" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
</div>
- </div>
- <div class="card card-1">
- <div class="label">
- <p class="p1">鏄ㄦ棩瀹為檯娑堣垂</p>
- <p class="p2">{{data.data1.data2}}</p>
- </div>
- <div class="icon">
- <i class="font icon-a-Group1139"></i>
- </div>
- </div>
- <div class="card card-1">
- <div class="label">
- <p class="p1">鏄ㄦ棩鎴愭湰</p>
- <p class="p2">{{data.data1.data3}}</p>
- </div>
- <div class="icon">
- <i class="font icon-qiandai" style="color: #FF9900;font-size: 2.4vw;"></i>
- </div>
- </div>
- <div class="card card-1" style="margin-right: 0;">
- <div class="label">
- <p class="p1">鏄ㄦ棩瀹為檯鎴愭湰</p>
- <p class="p2">{{data.data1.data4}}</p>
- </div>
- <div class="icon">
- <i class="font icon-qiandai" style="color: #FF9900;font-size: 2.4vw;"></i>
- </div>
- </div>
- </div>
+ </el-col>
+ </el-row>
</div>
- <div class="right card">
- <p>甯哥敤鍔熻兘</p>
- <div class="card-2" @click="openComponent('璐㈠姟涓婃姤')">
- <div class="icon">
- <i class="font icon-a-Group1236" style="color: #3A7BFA;"></i>
- </div>
- <div class="text">璐㈠姟涓婃姤</div>
- </div>
- <div class="card-2" @click="openComponent('杩涚矇涓婃姤')">
- <div class="icon">
- <i class="font icon-a-Group1122" style="color: #34BD66;"></i>
- </div>
- <div class="text">杩涚矇涓婃姤</div>
- </div>
- <div class="card-2" @click="openComponent('浜哄憳绠$悊')">
- <div class="icon">
- <i class="font icon-a-Group1124" style="color: #FF9900;"></i>
- </div>
- <div class="text">浜哄憳绠$悊</div>
- </div>
- <div class="card-2" @click="openComponent('瑙掕壊绠$悊')">
- <div class="icon">
- <i class="font icon-a-Group1126" style="color: #3A7BFA;"></i>
- </div>
- <div class="text">瑙掕壊绠$悊</div>
- </div>
- <div class="card-2" @click="openComponent('瀹㈡埛绠$悊')">
- <div class="icon">
- <i class="font icon-a-Group1124" style="color: #34BD66;"></i>
- </div>
- <div class="text">瀹㈡埛绠$悊</div>
- </div>
- <div class="card-2" @click="openComponent('椤圭洰绠$悊')">
- <div class="icon">
- <i class="font icon-a-Group1232" style="color: #FF9900;"></i>
- </div>
- <div class="text">椤圭洰绠$悊</div>
- </div>
- </div>
- </div>
- <div class="no no-2">
- <div class="card cart-3">
- <p>涓�鍛ㄥ鎴锋秷璐�</p>
- <div id="card-1"></div>
- </div>
- <div class="card cart-4">
- <p>涓�鍛ㄥ鎴峰疄闄呮秷璐�</p>
- <div id="card-2"></div>
- </div>
- </div>
- <div class="no no-2">
- <div class="card cart-5">
- <p>椤圭洰瀹㈡埛鎴愭湰</p>
- <div id="card-3"></div>
- </div>
- <div class="card cart-6">
- <p>椤圭洰瀹為檯鎴愭湰</p>
- <div id="card-4"></div>
- </div>
- </div>
+ <span slot="footer" class="dialog-footer">
+ <el-row>
+ <el-button @click="handleCancel">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submit" :loading="loading">纭� 瀹�</el-button>
+ </el-row>
+ </span>
+ </el-dialog>
</div>
</template>
<script>
- import * as echarts from 'echarts';
+ import {
+ getYearAndMonthAndDays
+ } from '../../util/date'
+ import ScrollPagination from '../tool/scroll-paging.vue'
export default {
+ components: {
+ ScrollPagination
+ },
data() {
return {
user: {},
now: null,
- data: {
- data1: {},
- data2: [],
- data3: [],
- data4: [],
- data5: []
- },
- myChart1: null,
- myChart2: null,
- myChart3: null,
- myChart4: null
+ calendarValue: new Date(),
+ currentIndex:4,
+ dialogVisible:false,
+ query:{
+ time:'',
+ text:''
+ },
+ loading:false,
+ workLoading:false,
+ workList:[],
+ workDay:[],
+ weekdays:[],
+ listScheduleByMe:[],
+ scheduleLoading:false,
+ list:[],
+ currentPage:1,
+ pageSize: 8, // 涓�椤�7鏉�
+ total: null,
+ listLoading: true, // 缁勪欢loading鐨勫睍绀�,榛樿涓簍rue
+ finishLoding: false, // 鍔犺浇瀹屾垚锛屾樉绀哄凡缁忔病鏈夋洿澶氫簡
+ timer:null,
+ keyMap:{},
+ getNumberFourTypes: {},
}
},
+ watch:{
+ calendarValue(val){
+ this.getScheduleByMe()
+ },
+ currentIndex(){
+ this.keyMap = {}
+ this.currentPage = 1;
+ this.list = [];
+ this.getList();
+ }
+ },
mounted() {
this.user = JSON.parse(localStorage.getItem('user'))
this.nowTime()
- this.myChart1 = echarts.init($('#card-1')[0]);
- this.myChart2 = echarts.init($('#card-2')[0]);
- this.myChart3 = echarts.init($('#card-3')[0]);
- this.myChart4 = echarts.init($('#card-4')[0]);
- this.getDataList()
setInterval(() => {
this.nowTime()
}, 1000)
- /* setInterval(() => {
- this.getDataList()
- }, 60 * 1000) */
+ this.weekdays = this.getWeekdaysForNextWeek()
+ this.init();
+ this.currentPage = 1;
+ this.keyMap = {}
+ this.list = [];
+ this.getList();
+ this.getScheduleByMe()
+ this.timer&&clearInterval(this.timer)
+ this.timer = setInterval(() => {
+ this.init();
+ this.currentPage = 1;
+ this.keyMap = {}
+ this.list = [];
+ this.getList();
+ this.getScheduleByMe()
+ },1000*60*10)
+ this.getNumberFourTypesFun()
},
methods: {
+ getNumberFourTypesFun() {
+ this.$axios.get(this.$api.informationNotification.getNumberFourTypesMessagesHomePage).then(res => {
+ this.getNumberFourTypes = res.data
+ })
+ },
+ getList(){
+ const key = `_${this.currentPage}`
+ const value = this.keyMap[key]
+ // 濡傛灉value瀛樺湪锛岃〃绀虹紦瀛樻湁鍊硷紝閭d箞闃绘璇锋眰
+ if(value) {
+ return
+ }
+ // value涓嶅瓨鍦紝琛ㄧず绗竴娆¤姹�,璁剧疆鍗犱綅
+ this.keyMap[key] = 'temp'
+ if(this.currentPage==1){
+ this.listLoading = true
+ }
+ if(this.list.length==0){
+ this.finishLoding = false;
+ }
+ this.$axios.get(this.$api.informationNotification.page+'?size='+this.pageSize+'¤t='+this.currentPage+'&messageType='+this.currentIndex).then(res => {
+ if(res.code === 201){
+ return
+ }
+ let list = res.data.records;
+ this.total = res.data.total;
+ if(list.length==0){
+ this.finishLoding = true;
+ }else{
+ if(list.length<this.pageSize){
+ this.finishLoding = true;
+ }
+ this.list = this.list.concat(list)
+ if(this.total==this.list.length){
+ this.finishLoding = true;
+ }
+ this.currentPage++;
+ }
+ this.listLoading = false
+ })
+ },
nowTime() {
var date = new Date();
var y = date.getFullYear();
@@ -354,345 +573,180 @@
}
this.now = y + "-" + m + "-" + d + " " + h + ":" + min + ":" + s;
},
- openComponent(str) {
- var str1 = {}
- var str2 = -1
- switch (str) {
- case '璐㈠姟涓婃姤':
- str1 = {
- k: 6,
- v: "璐㈠姟涓婃姤",
- i: "font icon-a-Group1236",
- u: "finance-submit"
- }
- break
- case '杩涚矇涓婃姤':
- str1 = {
- k: 5,
- v: "杩涚矇涓婃姤",
- i: "font icon-a-Group1122",
- u: "fans-submit"
- }
- break
- case '浜哄憳绠$悊':
- str1 = {
- k: 8,
- v: "浜哄憳绠$悊",
- i: "font icon-a-Group1124",
- u: "person-manage"
- }
- break
- case '瑙掕壊绠$悊':
- str1 = {
- k: 7,
- v: "瑙掕壊绠$悊",
- i: "font icon-a-Group1126",
- u: "role-manage"
- }
- break
- case '瀹㈡埛绠$悊':
- str1 = {
- k: 4,
- v: "瀹㈡埛绠$悊",
- i: "font icon-24gl-clipboardList",
- u: "custom-enum"
- }
- str2 = 4
- break
- case '椤圭洰绠$悊':
- str1 = {
- k: 11,
- v: "椤圭洰绠$悊",
- i: "font icon-24gl-clipboardList",
- u: "product-enum"
- }
- str2 = 4
- break
- }
- this.$parent.addTab(str1, str2)
- },
- initEcharts1() {
- var myChart = this.myChart1
- var option;
- let dataX = []
- let data = [];
- this.data.data2.forEach(a => {
- dataX.push(a.date)
- data.push(a.account_consumptions)
- })
- let yMax = 1000;
- let dataShadow = [];
- for (let i = 0; i < data.length; i++) {
- dataShadow.push(yMax);
- }
- option = {
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- }
- },
- grid: {
- top: "20px",
- left: "50px",
- bottom: "30px",
- right: "20px"
- },
- title: {},
- xAxis: {
- type: 'category',
- data: dataX,
- axisLabel: {
- color: '#333'
- },
- },
- yAxis: {
- axisLine: {
- show: false
- },
- axisTick: {
- show: false
- },
- axisLabel: {
- color: '#333'
- },
- splitLine: {
- lineStyle: {
- type: [10, 10],
- dashOffset: 20
- },
- show: true
- }
- },
- series: [{
- type: 'bar',
- barWidth: '20%',
- roam: false,
- itemStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
- offset: 0,
- color: '#ffd062'
- },
- {
- offset: 0.5,
- color: '#ffa844'
- },
- {
- offset: 1,
- color: '#f59433'
- }
- ]),
- barBorderRadius: [8, 8, 0, 0]
- },
- data: data
- }]
- };
- option && myChart.setOption(option);
- },
- initEcharts2() {
- var myChart = this.myChart2
- var option;
- let dataX = []
- let data = [];
- this.data.data3.forEach(a => {
- dataX.push(a.date)
- data.push(a.consumption)
- })
- let yMax = 1000;
- let dataShadow = [];
- for (let i = 0; i < data.length; i++) {
- dataShadow.push(yMax);
- }
- option = {
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- }
- },
- grid: {
- top: "20px",
- left: "50px",
- bottom: "30px",
- right: "20px"
- },
- title: {},
- xAxis: {
- type: 'category',
- data: dataX,
- axisLabel: {
- color: '#333'
- },
- },
- yAxis: {
- axisLine: {
- show: false
- },
- axisTick: {
- show: false
- },
- axisLabel: {
- color: '#333'
- },
- splitLine: {
- lineStyle: {
- type: [10, 10],
- dashOffset: 20
- },
- show: true
- }
- },
- series: [{
- type: 'bar',
- barWidth: '20%',
- itemStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
- offset: 0,
- color: '#74b3fe'
- },
- {
- offset: 0.5,
- color: '#4982f3'
- },
- {
- offset: 1,
- color: '#1c56df'
- }
- ]),
- barBorderRadius: [8, 8, 0, 0]
- },
- data: data
- }]
- };
- option && myChart.setOption(option);
- },
- initEcharts3() {
- var myChart = this.myChart3
- var dataX = []
- var dataY = []
- this.data.data4.forEach(a => {
- dataX.push(a.product)
- dataY.push(a.customerCosts)
- })
- var option;
- option = {
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- }
- },
- grid: {
- top: "20px",
- left: "50px",
- bottom: "30px",
- right: "20px"
- },
- xAxis: {
- type: 'category',
- boundaryGap: false,
- data: dataX,
- axisLabel: {
- interval: 0,
- }
- },
- yAxis: {
- type: 'value',
- splitLine: {
- lineStyle: {
- type: [10, 10],
- dashOffset: 20
- },
- show: true
- }
- },
- series: [{
- data: dataY,
- type: 'line',
- areaStyle: {},
- smooth: true,
- symbolSize: 7,
- lineStyle: {
- color: '#3c7aff'
- },
- itemStyle: {
- color: '#3c7aff'
- },
- areaStyle: {
- color: '#E5EEFF'
- }
- }]
- };
- option && myChart.setOption(option);
- },
- initEcharts4() {
- var myChart = this.myChart4
- var dataX = []
- var dataY = []
- this.data.data5.forEach(a => {
- dataX.push(a.product)
- dataY.push(a.actualCost)
- })
- var option;
- option = {
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- }
- },
- grid: {
- top: "20px",
- left: "50px",
- bottom: "30px",
- right: "20px"
- },
- xAxis: {
- type: 'category',
- boundaryGap: false,
- data: dataX,
- axisLabel: {
- interval: 0
- }
- },
- yAxis: {
- type: 'value',
- splitLine: {
- lineStyle: {
- type: [10, 10],
- dashOffset: 20
- },
- show: true
- }
- },
- series: [{
- data: dataY,
- type: 'line',
- areaStyle: {},
- smooth: true,
- symbolSize: 7,
- lineStyle: {
- color: '#f59433'
- },
- itemStyle: {
- color: '#f59433'
- },
- areaStyle: {
- color: '#FFF6DE'
- }
- }]
- };
- option && myChart.setOption(option);
- },
- getDataList() {
- this.$axios.get(this.$api.dataReporting.getDataList).then(res => {
- this.data = res.data
- this.initEcharts1()
- this.initEcharts2()
- this.initEcharts3()
- this.initEcharts4()
- })
- }
- }
+ nextMonth(value) {
+ let year = this.calendarValue.getFullYear();// 褰撳墠骞翠唤
+ let month = this.calendarValue.getMonth() + 1;// 褰撳墠鏈堜唤
+ let day = this.calendarValue.getDate();// 褰撳墠澶╂暟
+ let nextyear = year;
+ let nextmonth = parseInt(month) + 1;
+ // 鍒ゆ柇涓嬩竴鏈堟槸鍚︿細杩涘叆涓嬩竴骞�
+ if (nextmonth === 13) {
+ nextyear = parseInt(year) + 1;
+ nextmonth = 1;
+ }
+ // 璁$畻涓嬩竴骞翠笅涓�涓湀鏈夊灏戝ぉ
+ let nextday = new Date(nextyear, nextmonth, 0);
+ let nextdays = nextday.getDate();
+ if (day > nextdays) {
+ day = nextdays;
+ if (day < 10) {
+ day = '0' + day;
+ }
+ }
+ if (nextmonth < 10) {
+ nextmonth = '0' + nextmonth;
+ }
+ let nexttime = nextyear + '-' + nextmonth + '-' + day;
+
+ // 灏嗗緱鍒扮殑骞存湀鏃ユ牸寮忚浆鎹负鏍囧噯鏃堕棿锛屼笌楗夸簡涔堟椂闂存牸寮忕浉鍚屾墠鑳借仈鍔�
+ this.calendarValue = new Date(nexttime);
+ },
+ prevMonth(time) {
+ let year = this.calendarValue.getFullYear();// 褰撳墠骞翠唤
+ let month = this.calendarValue.getMonth() + 1;// 褰撳墠鏈堜唤
+ let day = this.calendarValue.getDate();// 褰撳墠澶╂暟
+ let prevyear = year;
+ let prevmonth = parseInt(month) - 1;
+ // 鍒ゆ柇涓婁竴鏈堟槸鍚︿細杩涘叆涓婁竴骞�
+ if (prevmonth === 0) {
+ prevyear = parseInt(year) - 1;
+ prevmonth = 12;
+ }
+ // 璁$畻涓婁竴骞翠笂涓�涓湀鏈夊灏戝ぉ
+ let prevday = new Date(prevyear, prevmonth, 0);
+ let prevdays = prevday.getDate();
+ if (day > prevdays) {
+ day = prevdays;
+ if (day < 10) {
+ day = '0' + day;
+ }
+ }
+ if (prevmonth < 10) {
+ prevmonth = '0' + prevmonth;
+ }
+ let prevtime = prevyear + '-' + prevmonth + '-' + day;
+
+ // 灏嗗緱鍒扮殑骞存湀鏃ユ牸寮忚浆鎹负鏍囧噯鏃堕棿锛屼笌楗夸簡涔堟椂闂存牸寮忕浉鍚屾墠鑳借仈鍔�
+ this.calendarValue = new Date(prevtime);
+ },
+ handleCancel(){
+ this.dialogVisible = false;
+ this.query = {
+ time:'',
+ text:''
+ }
+ },
+ submit(){
+ if(!this.query.time){
+ this.$message.error('鏃堕棿鏈~鍐�')
+ return
+ }
+ if(!this.query.text){
+ this.$message.error('鍐呭鏈~鍐�')
+ return
+ }
+ this.loading = true;
+ this.$axios.post(this.$api.report.addSchedule, this.query).then(res => {
+ this.loading = false;
+ if (res.code == 201) {
+ this.$message.error('鎿嶄綔澶辫触')
+ return
+ }
+ this.$message.success('淇濆瓨鎴愬姛')
+ this.handleCancel()
+ this.getScheduleByMe()
+ })
+ },
+ init(){
+ this.workLoading = true;
+ this.$axios.get(this.$api.report.calendarWorkByWeek).then(res => {
+ if (res.code == 201) return
+ this.workLoading = false;
+ this.workList = [];
+ for(let i=0;i<7;i++){
+ this.workList.push(res.data[`work${i}`])
+ }
+ this.workDay = res.data.weekDays.map(m=>{
+ let arr = m.split('-')
+ return arr[2]
+ })
+ })
+ },
+ getWeekdaysForNextWeek() {
+ let weekdays = [];
+ for (let i = 0; i < 7; i++) {
+ let date = new Date();
+ date.setDate(date.getDate() - i); // 浠婂ぉ涔嬪悗鐨勬棩瀛�
+ let day = date.getDay(); // 0-6 浠h〃鏄熸湡鏃ュ埌鏄熸湡鍏�
+ weekdays.push(day);
+ }
+ weekdays.reverse()
+ weekdays = weekdays.map(m=>{
+ let day =''
+ switch (m) {
+ case 0:
+ day = '鏄熸湡澶�'
+ break;
+ case 1:
+ day = '鏄熸湡涓�'
+ break;
+ case 2:
+ day = '鏄熸湡浜�'
+ break;
+ case 3:
+ day = '鏄熸湡涓�'
+ break;
+ case 4:
+ day = '鏄熸湡鍥�'
+ break;
+ case 5:
+ day = '鏄熸湡浜�'
+ break;
+ case 6:
+ day = '鏄熸湡鍏�'
+ break;
+ }
+ return day
+ })
+ return weekdays;
+ },
+ getScheduleByMe(){
+ this.scheduleLoading = true;
+ this.$axios.post(this.$api.report.ScheduleByMe, {
+ date:getYearAndMonthAndDays(this.calendarValue)
+ }).then(res => {
+ this.loading = false;
+ this.scheduleLoading = false;
+ if (res.code == 201) {
+ return
+ }
+ this.listScheduleByMe = res.data.map(m=>{
+ if(m.scheduleTime){
+ let time = m.scheduleTime.split(' ')[1].split(':')
+ m.scheduleTimes = time[0] + ':' + time[1]
+ }else{
+ m.scheduleTimes = ''
+ }
+ return m
+ })
+ })
+ },
+ goNoticeDetail(row){
+ this.$axios.put(this.$api.informationNotification.triggerModificationStatusToRead+'/'+row.id).then(res => {
+ row.num = Math.random(100);
+ this.$bus.$emit("change", JSON.stringify(row));
+ this.$parent.addTab({
+ v: "娑堟伅璇︽儏",
+ i: "el-icon-s-tools",
+ u: "notice-detail",
+ k:35,
+ p: "abcd"
+ },29);
+ })
+ },
+ },
+ deactivated(){
+ this.timer&&clearInterval(this.timer)
+ }
}
-</script>
\ No newline at end of file
+</script>
--
Gitblit v1.9.3