Эх сурвалжийг харах

Merge branch 'master' of http://119.23.210.103:3000/wy/mj_firm_former

zjy 3 жил өмнө
parent
commit
3127b8f45e

+ 82 - 33
src/views/system/jbdHome/board/checkBoard.vue

@@ -8,13 +8,14 @@
                 <dv-decoration-8 :class="$style.right" :reverse="true" />
                 <div :class="$style.title">{{ titleName }}</div>
                 <div :class="$style.time">
+                    <span>月份:</span>
                     <el-date-picker
                         v-model="month"
                         type="month"
                         value-format="yyyy-MM"
                         format="yyyy-MM"
                         placeholder="日期选择"
-                        style="width: 130px"
+                        style="width: 120px"
                         :readonly="false"
                         :editable="true"
                         :clearable="false"
@@ -37,13 +38,6 @@
     </div>
 </template>
 <script>
-    // const sql1 = `select wt.total as wtTotal, wt.accepted as aaccepted, jc.total as jcTotal, jc.finished as jcFinish, rw.task as task, rw.finished as rwFinish, bg.report as report, bg.process as process,bg.approval as approval
-    // from
-    // (select count(id_) as total, count(zhuang_tai_ = '委托结束' or null) as accepted, count(create_time_ like '${today}' or null) as today from t_mjwtsqb where create_time_ LIKE '${month}%') wt,
-    // (select count(id_) as total, count(jian_ce_zhuang_ta = '已完成' or null) as finished from t_jchzb where create_time_ LIKE '${month}%') jc,
-    // (select count(id_) as task, count(zhuang_tai_ = '任务已完成' or null) as finished from t_rwfpb where create_time_ LIKE '${month}%') rw,
-    // (select count(id_) as report, count(zhuang_tai_ = '报告待审核' or null) as process, count(zhuang_tai_ = '报告待审批' or null) as approval from t_mjjcbg where create_time_ LIKE '${month}%') bg`
-
     import screenfull from 'screenfull'
     import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
     export default {
@@ -73,7 +67,7 @@
                         ],
                         data: [],
                         rowNum: 7,
-                        columnWidth: ['300','100','150','100','100']
+                        columnWidth: ['300','100','150','150','100']
                     },
                     acceptData:[],
                     taskData: [],
@@ -135,70 +129,81 @@
              *  报告——t_mjjcbg
              */
             getTopBarData() {
+                let quarter = this.getDateRange('quarter')
+                let week = this.getDateRange('week')
                 // 获取委托数及受理数
-                const sql = `select wt.total as wtTotal, wt.today as today, wt.accepted as accepted, jc.total as jcTotal, jc.finished as jcFinish, rw.task as task, rw.finished as rwFinish, bg.report as report, bg.process as process,bg.approval as approval
+                const sql = `select wt.month as month, wt.accepted as accepted, wt2.today as today, wt2.week as week, wt2.quarter as quarter, jc.total as jcTotal, jc.finished as jcFinish, rw.task as task, rw.finished as rwFinish, bg.report as report, bg.process as process,bg.approval as approval
                 from
-                (select count(id_) as total, count(zhuang_tai_ = '委托结束' or null) as accepted, count(create_time_ like '${this.today}' or null) as today from t_mjwtsqb where create_time_ LIKE '${this.month}%') wt,
+                (select count(id_) as month, count(zhuang_tai_ = '委托结束' or null) as accepted from t_mjwtsqb where create_time_ LIKE '${this.month}%') wt,
+                (select count(create_time_ like '${this.today}' or null) as today, count(create_time_ between '${week.start}' and '${week.end}' or null) as week, count(create_time_ between '${quarter.start}' and '${quarter.end}' or null) as quarter from t_mjwtsqb) wt2,
                 (select count(id_) as total, count(jian_ce_zhuang_ta = '已完成' or null) as finished from t_jchzb where create_time_ LIKE '${this.month}%') jc,
                 (select count(id_) as task, count(zhuang_tai_ = '任务已完成' or null) as finished from t_rwfpb where create_time_ LIKE '${this.month}%') rw,
                 (select count(id_) as report, count(zhuang_tai_ = '报告待审核' or null) as process, count(zhuang_tai_ = '报告待审批' or null) as approval from t_mjjcbg where create_time_ LIKE '${this.month}%') bg`
-                
+                console.log(sql)
                 curdPost('sql', sql).then(res => {
                     const data = res.variables.data
                     console.log(data)
                     
                     if ( data && data.length ) {
-                        const { accepted, approval, jcFinish, jcTotal, process, report, rwFinish, task, today, wtTotal } = data[0]
-                        this.middleCardData.taskData = [wtTotal, jcTotal, task, report]
+                        const { month, accepted, approval, jcFinish, jcTotal, process, report, rwFinish, task, today, week, quarter } = data[0]
+                        this.middleCardData.taskData = [month, jcTotal, task, report]
                         let result = [
                             {
                                 title: '委托',
                                 children: [
                                     {
-                                        label: '总数',
-                                        value: wtTotal
+                                        label: '本季度',
+                                        value: quarter
                                     },
                                     {
-                                        label: '受理',
-                                        value: accepted
+                                        label: '月度',
+                                        value: month
+                                    },
+                                    {
+                                        label: '本周',
+                                        value: week
                                     },
                                     {
-                                        label: '今日',
+                                        label: '日',
                                         value: today
+                                    },
+                                    {
+                                        label: '受理',
+                                        value: accepted
                                     }
                                 ]
                             },
                             {
-                                title: '检测',
+                                title: '任务分配',
                                 children: [
                                     {
                                         label: '总数',
-                                        value: jcTotal
+                                        value: task
                                     },
                                     {
                                         label: '已完成',
-                                        value: jcFinish
+                                        value: rwFinish
                                     },
                                     {
                                         label: '未完成',
-                                        value: jcTotal - jcFinish
+                                        value: task - rwFinish
                                     }
                                 ]
                             },
                             {
-                                title: '任务发放',
+                                title: '检测',
                                 children: [
                                     {
                                         label: '总数',
-                                        value: task
+                                        value: jcTotal
                                     },
                                     {
                                         label: '已完成',
-                                        value: rwFinish
+                                        value: jcFinish
                                     },
                                     {
                                         label: '未完成',
-                                        value: task - rwFinish
+                                        value: jcTotal - jcFinish
                                     }
                                 ]
                             },
@@ -273,6 +278,7 @@
                     curdPost('sql', sql3),
                     curdPost('sql', sql4),
                 ]).then(([ res1, res2, res3, res4]) => {
+                    this.bottomCardData.flag = false
                     const data1 = res1.variables.data
                     const data2 = res2.variables.data
                     const data3 = res3.variables.data
@@ -322,6 +328,46 @@
                 }).catch(error => {
                     console.log(error)
                 })
+            },
+            // 获取本周和本季度的开始和结束日期,以对象形式返回
+            getDateRange(type) {
+                let current = new Date()
+                if (type !== 'week' && type !== 'quarter') {
+                    console.log('type is error')
+                    return
+                }
+                if (type === 'quarter') {
+                    let year = current.getFullYear()
+                    let month = current.getMonth() + 1
+                    const dateList = [
+                        {
+                            start: `${year}-01-01`,
+                            end: `${year}-03-31`
+                        },
+                        {
+                            start: `${year}-04-01`,
+                            end: `${year}-06-31`
+                        },
+                        {
+                            start: `${year}-07-01`,
+                            end: `${year}-09-31`
+                        },
+                        {
+                            start: `${year}-10-01`,
+                            end: `${year}-12-31`
+                        }
+                    ]
+                    let quarter = dateList[parseInt(month / 3)]
+                    return quarter
+                }
+                if (type === 'week') {
+                    let week = {}
+                    let currentWeek = current.getDay() === 0 ? 7 : current.getDay()
+                    let temp = new Date(current - (currentWeek - 1) * 86400000)
+                    week.start = new Date(current - (currentWeek - 1) * 86400000).toJSON().slice(0, 10)
+                    week.end = new Date((temp / 1000 + 6 * 86400) * 1000).toJSON().slice(0, 10)
+                    return week
+                }
             }
         }
     }
@@ -377,8 +423,7 @@
             display: flex;
             justify-content: space-between;
             flex-shrink: 0;
-            .left,
-            .right {
+            .left, .right {
                 width: 25%;
                 height: 60px;
             }
@@ -395,21 +440,25 @@
                 top: 15px;
                 transform: translateX(-50%);
             }
-            .time,
-            .back {
+            .time, .back {
                 width: 8%;
                 cursor: pointer;
                 height: 2.825rem;
                 line-height: 2.825rem;
                 text-align: center;
-                margin-left: 63%;
                 margin-top: 2.5%;
                 flex: 1;
                 position: absolute;
                 color: #ffffff;
             }
+            .time {
+                display: flex;
+                justify-content: flex-end;
+                width: 20%;
+                right: 75%;
+            }
             .back {
-                margin-left: 75%;
+                left: 75%;
             }
         }
     }

+ 8 - 2
src/views/system/jbdHome/board/component/topBar.vue

@@ -108,13 +108,19 @@
         align-items: center;
         background-color: rgba(6, 30, 93, 0.5);
         .item {
-            width: 23%;
+            width: 20%;
             // width: calc(100% / 13);
             height: 60%;
             padding: 12px 20px;
             border-left: 5px solid rgb(6, 30, 93);
+            &:first-child{
+                width: 33.3%;
+                .box{
+                    width: 20%;
+                }
+            }
             &:last-child{
-                width: 31%;
+                width: 26.6%;
                 .box{
                     width: 25%;
                 }

+ 52 - 7
src/views/system/jbdHome/board/data.js

@@ -23,6 +23,30 @@ export const acceptOption = {
         axisLabel: {
             style: {
                 fill: '#fff'
+            },
+            formatter: function (params) {
+                let result = ''
+                //一行显示几个字
+                let rowMax = 2
+                let rowNumber = Math.ceil(params.length / rowMax)
+                // 超过 3 个字换行
+                if (params.length > 3) {
+                    for (let p = 0; p < rowNumber; p++) {
+                        let tempStr = ''
+                        let start = p * rowMax
+                        let end = start + rowMax
+                        if (p == rowNumber - 1) {
+                            tempStr = params.substring(start, params.length);
+                        } else {
+                            tempStr = params.substring(start, end) + '\n'
+                        }
+                        result += tempStr
+                    }
+    
+                } else {
+                    result = params
+                }
+                return result
             }
         },
         axisLine: {
@@ -102,7 +126,7 @@ export const taskOption = {
     },
     xAxis: {
         type: 'category',
-        data: ['委托', '检测', '任务发放', '报告'],
+        data: ['委托', '任务分配', '检测', '报告'],
         axisTick: {
             alignWithLabel: true
         },
@@ -302,6 +326,29 @@ export const sampleOption = {
         axisLabel: {
             style: {
                 fill: '#fff'
+            },
+            formatter: function (params) {
+                let result = ''
+                //一行显示几个字
+                let rowMax = 3
+                let rowNumber = Math.ceil(params.length / rowMax)
+                if (params.length > rowMax) {
+                    for (let p = 0; p < rowNumber; p++) {
+                        let tempStr = ''
+                        let start = p * rowMax
+                        let end = start + rowMax
+                        if (p == rowNumber - 1) {
+                            tempStr = params.substring(start, params.length);
+                        } else {
+                            tempStr = params.substring(start, end) + '\n'
+                        }
+                        result += tempStr
+                    }
+    
+                } else {
+                    result = params
+                }
+                return result
             }
         },
         axisLine: {
@@ -499,13 +546,13 @@ export const yearOption = {
             {
                 name: '未完成',
                 textStyle: {
-                    color: '#00baff'
+                    color: '#ff6347'
                 }
             },
             {
                 name: '已完成',
                 textStyle: {
-                    color: '#f5d94e'
+                    color: '#3f3'
                 }
             }
         ]
@@ -527,11 +574,9 @@ export const yearOption = {
                     label: {
                         show: true,
                         position: 'outer',
-                        // formatter: '{d}%'
                         formatter: `占比:{d}%\n\n\r{b}:{c}`,
                         // formatter: `{b}:{c}\n\n\r占比:{d}%`,
-                        fontSize: 12,
-                        // padding: [0, 5]
+                        fontSize: 12
                     },
                     labelLine: {
                         show: true
@@ -540,7 +585,7 @@ export const yearOption = {
             }
         }
     ],
-    color: ['#00baff', '#f5d94e'],
+    color: ['#ff6347', '#3f3'],
     tooltip: {
         show: true,
         trigger: 'item',