guarantee-lsq 2 years ago
parent
commit
a0769a76a8

+ 46 - 0
src/api/big/screen.js

@@ -32,3 +32,49 @@ export function getDegreeByDayOrMonth (parameter) {
     }
   })
 }
+
+/**
+ * 维修类别统计
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function getRepairCategory (parameter) {
+  return axios({
+    url: '/index/platForm/screen/repair/category' + stringify(parameter),
+    method: 'get',
+    headers: {
+      'Content-Type': 'application/json;charset=UTF-8'
+    }
+  })
+}
+/**
+ * 统计数据
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function getStatisticData (parameter) {
+  return axios({
+    url: '/index/platForm/screen/statistic/data' + stringify(parameter),
+    method: 'get',
+    headers: {
+      'Content-Type': 'application/json;charset=UTF-8'
+    }
+  })
+}
+/**
+ * 统计厂区各车间维修数据和占比率
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function getStatisticRepairNum (parameter) {
+  return axios({
+    url: '/index/platForm/screen/statistic/repairNum' + stringify(parameter),
+    method: 'get',
+    headers: {
+      'Content-Type': 'application/json;charset=UTF-8'
+    }
+  })
+}

+ 1 - 0
src/utils/tool.js

@@ -53,6 +53,7 @@ BaseTool.Date = {
   PICKER_NORM_DATE_PATTERN_CHINESE: 'YYYY年MM月DD日',
   PICKER_NORM_TIME_PATTERN: 'HH:mm:ss',
   PICKER_NORM_DATETIME_PATTERN: 'YYYY-MM-DD HH:mm:ss',
+  PICKER_NORM_DATETIME_PATTERN2: 'YYYY-MM-DD HH:mm',
   PICKER_NORM_DATETIME_PATTERN_CHINESE: 'YYYY年MM月DD日 HH:mm:ss',
 
   /**

+ 4 - 1
src/views/repair/application-form/RepairForm.vue

@@ -279,7 +279,10 @@ export default {
           title: '报修时间',
           checked: true,
           width: '200px',
-          dataIndex: 'applyTime'
+          dataIndex: 'applyTime',
+          customRender: (text, record, index) => {
+            return this.BaseTool.Date.formatter(text, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN2)
+          }
         },
         /* {
           title: '紧急等级',

+ 4 - 4
src/views/repair/application-form/modules/BaseForm.vue

@@ -282,8 +282,8 @@
           >
             <a-date-picker
               style="width: 100%"
-              show-time
-              :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN"
+              :show-time="{ format: 'HH:mm' }"
+              :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN2"
               v-decorator="['planStartTime', {rules: [{required: true, message: '计划开始时间不能为空'}]}]" />
           </a-form-item>
         </row-item>
@@ -295,8 +295,8 @@
           >
             <a-date-picker
               style="width: 100%"
-              show-time
-              :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN"
+              :show-time="{ format: 'HH:mm' }"
+              :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN2"
               v-decorator="['planEndTime', {rules: [{required: true, message: '计划结束时间不能为空'}]}]" />
           </a-form-item>
         </row-item>

+ 1 - 1
src/views/repair/application-form/modules/DetailRepair.vue

@@ -82,7 +82,7 @@
               <a-descriptions-item label="车间具体位置">{{ model.sbCph }}</a-descriptions-item>
               <a-descriptions-item label="工单类别">{{ BaseTool.Object.getField(planFlagMap,model.category) }}</a-descriptions-item>
               <a-descriptions-item label="报修状态"><badge :text="BaseTool.Object.getField(statusMap,model.status)" :status="DictCache.COLOR.REPAIR_APPLICATION_FORM_STATUS[model.status]"/></a-descriptions-item>
-              <a-descriptions-item label="报修时间">{{ model.applyTime }}</a-descriptions-item>
+              <a-descriptions-item label="报修时间">{{ BaseTool.Date.formatter(model.applyTime, BaseTool.Date.PICKER_NORM_DATETIME_PATTERN2) }}</a-descriptions-item>
               <a-descriptions-item label="报修人">{{ model.actualUser }}</a-descriptions-item>
               <a-descriptions-item v-if="model.category!==1" label="工作优选权">{{ BaseTool.Object.getField(levelMap,model.level) }}</a-descriptions-item>
               <a-descriptions-item v-else label="计划性维修级别">{{ model.repairPlanLevel }}</a-descriptions-item>

+ 73 - 31
src/views/statisticView/PlatformSystem.vue

@@ -44,8 +44,8 @@
                   维修
                 </div>
                 <div class="statistics-list-info">
-                  <div>数量:<span>90</span>/辆</div>
-                  <div> 占比:<span>30</span>/%</div>
+                  <div>数量:<span>{{ info.repairNum }}</span>个</div>
+                  <div>完成率:<span>{{ info.repairCompleteRate }}</span>%</div>
                 </div>
               </div>
             </div>
@@ -53,12 +53,12 @@
               <span class="top-left-two"></span><span class="top-right-two"></span><span class="bottom-left-two"></span><span class="bottom-right-two"></span>
               <div class="statistics-list">
                 <div class="statistics-list-title" style="color:#07C1FD">
-                  <span style="background:#07C1FD;">1</span>
+                  <span style="background:#07C1FD;">2</span>
                   计量
                 </div>
                 <div class="statistics-list-info">
-                  <div>数量:<span style="color:#07C1FD">90</span>/个</div>
-                  <div> 占比:<span style="color:#07C1FD">30</span>/%</div>
+                  <div>数量:<span style="color:#07C1FD">{{ info.calculateSbNum }}</span>个</div>
+                  <div>完成率:<span style="color:#07C1FD">{{ info.calculateCompleteRate }}</span>%</div>
                 </div>
               </div>
             </div>
@@ -66,12 +66,12 @@
               <span class="top-left-two"></span><span class="top-right-two"></span><span class="bottom-left-two"></span><span class="bottom-right-two"></span>
               <div class="statistics-list">
                 <div class="statistics-list-title" style="color:#FFCD02">
-                  <span style="background:#FFCD02">1</span>
+                  <span style="background:#FFCD02">3</span>
                   特种
                 </div>
                 <div class="statistics-list-info">
-                  <div>数量:<span style="color:#FFCD02">90</span>/个</div>
-                  <div> 占比:<span style="color:#FFCD02">30</span>/%</div>
+                  <div>数量:<span style="color:#FFCD02">{{ info.specialSbNum }}</span>个</div>
+                  <div>完成率:<span style="color:#FFCD02">{{ info.specialCompleteRate }}</span>%</div>
                 </div>
               </div>
             </div>
@@ -79,12 +79,12 @@
               <span class="top-left-two"></span><span class="top-right-two"></span><span class="bottom-left-two"></span><span class="bottom-right-two"></span>
               <div class="statistics-list">
                 <div class="statistics-list-title" style="color:#FF5B01 ">
-                  <span style="background:#FF5B01 ">1</span>
+                  <span style="background:#FF5B01 ">4</span>
                   隐患
                 </div>
                 <div class="statistics-list-info">
-                  <div>数量:<span style="color:#FF5B01 ">90</span>/个</div>
-                  <div> 占比:<span style="color:#FF5B01 ">30</span>/%</div>
+                  <div>数量:<span style="color:#FF5B01 ">{{ info.hiddenDangerNum }}</span>个</div>
+                  <div>维修率:<span style="color:#FF5B01 ">{{ info.hiddenDangerCompleteRate }}</span>%</div>
                 </div>
               </div>
             </div>
@@ -135,6 +135,11 @@ import VueDragResize from 'vue-drag-resize'
 import * as echarts from 'echarts'
 import SbInfoModel from './modules/SbInfoModel'
 import WorkshopModel from './modules/WorkshopModel'
+import {
+  getStatisticRepairNum,
+  getStatisticData,
+  getRepairCategory
+} from '@/api/big/screen'
 export default {
   components: {
     VueDragResize,
@@ -164,16 +169,12 @@ export default {
         x: 750,
         y: 625
       },
+      info: {},
       visible: false,
-      chartData1: [
-        { name: '分类一', value: 27 },
-        { name: '分类二', value: 25 },
-        { name: '分类三', value: 18 },
-        { name: '分类四', value: 15 },
-        { name: '分类五', value: 10 },
-        { name: 'Other', value: 5 }
-      ],
-      chartData2: [
+      chartData1: [],
+      chartData2: [],
+      chartData3: [],
+      chartData4: [
         { name: '分类一', value: 27 },
         { name: '分类二', value: 25 },
         { name: '分类三', value: 18 },
@@ -188,15 +189,44 @@ export default {
 
   },
   mounted () {
-    this.createChart1(this.chartData1)
-    this.createChart2(this.chartData2)
+    this.createChart1(this.chartData2)
     this.createChart3(this.chartData2)
-    this.createChart4(this.chartData2)
+    this.createChart4(this.chartData4)
+    this.getInfo()
   },
   methods: {
     resizeImg (newRect) {
       console.log(newRect)
     },
+    getInfo () {
+      Promise.all([getStatisticRepairNum(),
+        getStatisticData(),
+        getRepairCategory()]).then(res => {
+        console.log(res)
+        this.info = res[1].data
+        this.chartData1 = res[2].data.map(item => {
+          return {
+            name: item.categoryName,
+            value: item.repairNum
+          }
+        })
+        this.chartData2 = res[0].data.map(item => {
+          return {
+            name: item.sbPositionName,
+            value: item.repairNum
+          }
+        })
+        this.chartData3 = res[0].data.map(item => {
+          return {
+            name: item.sbPositionName,
+            value: item.repairRate
+          }
+        })
+        this.createChart2(this.chartData1)
+        this.createChart1(this.chartData2)
+        this.createChart3(this.chartData3)
+      })
+    },
     handleView (val) {
       if (val.count === 3) {
         this.$refs.sbInfoModel.base(val)
@@ -216,7 +246,6 @@ export default {
         },
         series: [
           {
-            name: 'Nightingale Chart',
             type: 'pie',
             radius: [20, 80],
             center: ['50%', '50%'],
@@ -253,15 +282,12 @@ export default {
         },
         visualMap: {
           show: false,
-          min: 3,
-          max: 40,
           inRange: {
             colorLightness: [0, 1]
           }
         },
         series: [
           {
-            name: 'Access From',
             type: 'pie',
             radius: '55%',
             center: ['50%', '50%'],
@@ -293,14 +319,22 @@ export default {
       option && myChart.setOption(option)
     },
     createChart3 (data) {
-      data.forEach((item, index) => {
-        item.label = { color: this.colors[index] }
+      const label = data.map(item => {
+        return item.name
+      })
+      const value = data.map(item => {
+        return item.value
       })
       const myChart = echarts.init(this.$refs.chart3)
       const option = {
+        grid: {
+          left: '100', // 固定左边刻度宽度
+          right: '4%',
+          containLabel: true
+        },
         yAxis: {
           type: 'category',
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+          data: label,
           inverse: true,
           axisLine: {
             show: true,
@@ -309,6 +343,14 @@ export default {
               width: 1
             }
           },
+          axisLabel: {
+            inside: true, // 标签刻度朝内
+            margin: 0, // 清除默认间距
+            padding: [0, 10, 0, 0], // 右边内边距10
+            textStyle: {
+              align: 'right' // 文字右对齐
+            }
+          },
           axisTick: {
             show: false
           }
@@ -331,7 +373,7 @@ export default {
         },
         series: [
           {
-            data: [120, 200, 150, 80, 70, 110],
+            data: value,
             type: 'bar',
             barWidth: 14,
             itemStyle: {