From 35de952fddf5bb370e134e9111ba146bb8be78ee Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 13 三月 2024 15:56:57 +0800
Subject: [PATCH] 首页

---
 src/api/plan/productionschedul.js       |    7 
 src/views/accounting/jmreport/index.vue |    5 
 public/img/group-464.png                |    0 
 src/page/wel.vue                        |  491 +++++++++++++++++++++++++++--------------------------
 4 files changed, 257 insertions(+), 246 deletions(-)

diff --git a/public/img/group-464.png b/public/img/group-464.png
new file mode 100644
index 0000000..a08110b
--- /dev/null
+++ b/public/img/group-464.png
Binary files differ
diff --git a/src/api/plan/productionschedul.js b/src/api/plan/productionschedul.js
index 5784b65..4fad468 100644
--- a/src/api/plan/productionschedul.js
+++ b/src/api/plan/productionschedul.js
@@ -60,3 +60,10 @@
     data: data
   })
 }
+
+export function getProductionSchedulReport() {
+  return request({
+    url: '/mes/productionSchedul/getReport',
+    method: 'get',
+  })
+}
diff --git a/src/page/wel.vue b/src/page/wel.vue
index 1e4f91c..d40e4db 100644
--- a/src/page/wel.vue
+++ b/src/page/wel.vue
@@ -1,109 +1,244 @@
 <template>
   <div class="dashboard-main">
-    <!-- <iframe
-      src="https://console.huaweicloud.com/dlv/vision/share/?id=0b3b4dd2d19249c89991b8989b76e185&locale=zh-cn&region=cn-north-1"
-      width="100%"
-      height="100%"
-      style="border: none;"
-      id="myiframe"
-      >浣犵殑娴忚鍣ㄤ笉鏀寔璇frame鏍囩</iframe
-    > -->
-    <!-- <el-image :src="url" style="width:100%;height:100%;"></el-image> -->
-    <!-- <el-row style="width: 100%; height: 100%;background-color: white;">
-      <span>鏆傛湭寮�鍙戙�傘�傘�傘�傘�傘��</span>
-    </el-row> -->
+        <div class="body">
+        <el-row>
+            <el-col :span="12">
+                <p class="todo-title"><i class="el-icon-bell"></i><span> 鐢熶骇璋冨害 路 寰呭姙</span></p>
+            </el-col>
+        </el-row>
+        <el-row>
+            <el-col :span="6">
+                <el-card class="box-card todo-card">
+                    <el-collapse v-model="activeName" accordion class="todo-collapse" style="display:none">
+                        <el-collapse-item name="1">
+                            <template slot="title">
+                                <span class="title">浠婃棩寰呭姙</span>
+                                <el-badge v-if="todoByDayList.length>0" :value="todoByDayList.length" class="item"></el-badge>
+                            </template>
+                            <el-table :data="todoByDayList">
+                                <el-table-column label="搴忓彿" align="center" type="index" width="50"></el-table-column>
+                                <el-table-column prop="product_type" label="浜у搧绫诲瀷" align="center" min-width="50"></el-table-column>
+                                <el-table-column prop="total" label="寰呭姙鏁伴噺" align="center" min-width="50"></el-table-column>
+                            </el-table>
+                        </el-collapse-item>
+                        <el-collapse-item name="2">
+                            <template slot="title">
+                                <span class="title">鏈懆寰呭姙</span>
+                                <el-badge v-if="todoByWeekList.length>0" :value="todoByWeekList.length" class="item"></el-badge>
+                            </template>
+                            <el-table :data="todoByWeekList">
+                                <el-table-column label="搴忓彿" align="center" type="index" width="50"></el-table-column>
+                                <el-table-column prop="product_type" label="浜у搧绫诲瀷" align="center" min-width="50"></el-table-column>
+                                <el-table-column prop="total" label="寰呭姙鏁伴噺" align="center" min-width="50"></el-table-column>
+                            </el-table>
+                        </el-collapse-item>
+                        <el-collapse-item name="3">
+                            <template slot="title">
+                                <span class="title">鏈湀寰呭姙</span>
+                                <el-badge v-if="todoByMonthList.length>0" :value="todoByMonthList.length" class="item"></el-badge>
+                            </template>
+                            <el-table :data="todoByMonthList">
+                                <el-table-column label="搴忓彿" align="center" type="index" width="50"></el-table-column>
+                                <el-table-column prop="product_type" label="浜у搧绫诲瀷" align="center" min-width="50"></el-table-column>
+                                <el-table-column prop="total" label="寰呭姙鏁伴噺" align="center" min-width="50"></el-table-column>
+                            </el-table>
+                        </el-collapse-item>
+                        <el-collapse-item name="4">
+                            <template slot="title">
+                                <span class="title" style="color:red;">瓒呮湡</span>
+                                <el-badge :value="100" :max="99" class="item"></el-badge>
+                            </template>
+
+                        </el-collapse-item>
+                    </el-collapse>
+                    <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 class="todo-span"><span>寰呭姙</span></div>
+                    <!-- <el-table :data="todoByDayList">
+                        <el-table-column label="搴忓彿" align="center" type="index" width="50"></el-table-column>
+                        <el-table-column prop="product_type" label="浜у搧绫诲瀷" align="center" min-width="50"></el-table-column>
+                        <el-table-column prop="total" label="寰呭姙鏁伴噺" align="center" min-width="50"></el-table-column>
+                    </el-table> -->
+                    <div class="todo-info" v-for="(item,index) in 10" :key="index">
+                        <div class="todo-info-state"></div>
+                    </div>
+                </el-card>
+            </el-col>
+            <el-col :span="6">
+                <el-card class="box-card todo-total-card">
+                    <div class="todo-total-text">
+                        <span>浠婃棩寰呭姙</span>
+                        <span v-text="todoByDayList.length"></span>
+                    </div>
+                    <div class="todo-total-text">
+                        <span>鏈懆寰呭姙</span>
+                        <span v-text="todoByWeekList.length"></span>
+                    </div>
+                    <div class="todo-total-text">
+                        <span>鏈湀寰呭姙</span>
+                        <span v-text="todoByMonthList.length"></span>
+                    </div>
+                    <div class="todo-total-text">
+                        <span>瓒呮湡</span>
+                        <span v-text="0"></span>
+                    </div>
+                </el-card>
+            </el-col>
+        </el-row>
+    </div>
   </div>
 </template>
 <style scoped="scoped" lang="scss">
 .dashboard-main {
   width: 100%;
   height: 100%;
-  padding: 0 0;
+  padding: 10px;
+  margin: 0;
+}
+.body{
+    margin: 5px;
+    padding: 0px 15px;
+    border-radius: 8px;
+    background: linear-gradient( 180deg, #E3E1FD 0%, #F0EFF9 100%);
+}
+.todo-title{
+    width: 487px;
+    height: 20px;
+    font-family: PingFang SC, PingFang SC;
+    font-weight: 700;
+    font-size: 18px;
+    color: #875A7B;
+    line-height: 20px;
+    text-align: left;
+    font-style: normal;
+    text-transform: none;
+}
+.todo-info{
+    width: 90%;
+    margin-left:5%;
+    height: 64px;
+    margin-top: 10px;
+    background: #FFFFFF;
+    border-radius: 8px 8px 8px 8px;
+    border: 1px solid #E8E8E8;
+    .todo-info-state{
+        width:12px;
+        height:64px;
+        background-color: #6ACE00;
+        border-radius: 8px 0px 0px 8px;
+        position: relative;
+        top:0px;
+    }
+}
+.todo-total-card{
+    margin-left: 15px;
+    .todo-total-text{
+        width: 90%;
+        margin-left:5%;
+        margin-bottom:10px;
+        height: 40px;
+        background: linear-gradient( 90deg, #C8C2FF 0%, rgba(200,194,255,0) 100%);
+        span:nth-child(1){
+            width:50%;
+            height:40px;
+            display: inline-block;
+            text-align: center;
+            font-family: PingFang SC, PingFang SC;
+            font-weight: 400;
+            font-size: 14px;
+            color: #0166E2;
+            line-height: 40px;
+        }
+        span:nth-child(2){
+            width:50%;
+            height:40px;
+            display: inline-block;
+            text-align: center;
+            font-family: PingFang SC, PingFang SC;
+            font-weight: 400;
+            font-size: 24px;
+            color: #0166E2;
+            line-height: 40px;
+        }
+    }
+    .todo-total-text:last-child span:nth-child(2){
+        color:red
+    }
+}
+.todo-card{
+    height: 80vh;
+    overflow-y: auto;
+    >>>.el-card__body{
+        padding: 0px 0px 5px
+    }
+    .todo-span{
+        height:17px;
+        padding:0px 20px;
+    }
+    .todo-span::before{
+        content: "";
+        display: inline-block;
+        width:21px;
+        height:17px;
+        background: url("/img/group-464.png") no-repeat;
+    }
+    .todo-span span{
+        height:20px;
+        display: inline-block;
+        position: relative;
+        top: -2px;
+        color: #6D5EEE;
+    }
+}
+.todo-collapse{
+    padding: 0px 20px;
+    .title{
+        font-weight: 700;
+    }
+}
+>>>.el-calendar-table .el-calendar-day {
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    padding: 8px;
+    height: 32px;
+    line-height: 100%;
+    text-align: center;
+    font-size: 12px;
+    font-family: PingFang SC, PingFang SC;
+    font-weight: 400;
+}
+>>>.el-calendar-table tr td:first-child {
+    border-left: none;
+}
+>>>.el-calendar-table tr:first-child td {
+    border-top: none;
+}
+>>>.el-calendar-table td {
+    border-bottom: none;
+    border-right: none;
+    vertical-align: top;
+    -webkit-transition: background-color 0.2s ease;
+    transition: background-color 0.2s ease;
+}
+>>>.el-calendar-table td.is-selected {
+    background-color: #e3effc;
 }
 
-.col-info-box {
-  padding-left: 15px;
-  padding-right: 15px;
-}
-
-.info-box {
-  display: block;
-  min-height: 90px;
-  background: #fff;
-  width: 100%;
-  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-  border-radius: 2px;
-  margin-bottom: 15px;
-}
-
-.info-box-icon {
-  border-top-left-radius: 2px;
-  border-top-right-radius: 0;
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 2px;
-  display: block;
-  float: left;
-  height: 90px;
-  width: 90px;
-  text-align: center;
-  font-size: 45px;
-  line-height: 90px;
-  background: rgba(0, 0, 0, 0.2);
-}
-
-.info-box-content {
-  padding: 5px 10px;
-  margin-left: 90px;
-  line-height: 1.42857143;
-  color: #333;
-}
-
-.info-box-text {
-  text-transform: uppercase;
-  display: block;
-  font-size: 14px;
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-
-.info-box-number {
-  display: block;
-  font-weight: bold;
-  font-size: 18px;
-}
-
-.bg-aqua {
-  background-color: #00c0ef !important;
-  color: #fff !important;
-}
-
-.bg-red {
-  background-color: #dd4b39 !important;
-  color: #fff !important;
-}
-
-.bg-green {
-  background-color: #00a65a !important;
-  color: #fff !important;
-}
-
-.bg-yellow {
-  background-color: #f39c12 !important;
-  color: #fff !important;
-}
-
-.line-charts {
-  width: 100%;
-  background: #fff;
-}
 </style>
 <script>
 import { mapGetters } from 'vuex'
 import ECharts from 'vue-echarts'
-import { sysParam } from '@/config/sysParam'
-import { getObj as getSysParam } from '@/api/admin/sys-public-param'
-
+import {dateFormat} from '@/util/date'
+import {getProductionSchedulReport} from '@/api/plan/productionschedul'
 export default {
   name: 'Wel',
   components: {
@@ -111,163 +246,37 @@
   },
   data() {
     return {
-      line: {
-        title: {
-          text: '璁″垝涓庡疄闄呬骇閲忚蛋鍔�',
-          left: 'center'
-        },
-        tooltip: {
-          trigger: 'axis'
-        },
-        grid: {
-          left: '3%',
-          right: '4%',
-          bottom: '3%',
-          containLabel: true
-        },
-        xAxis: {
-          type: 'category',
-          boundaryGap: false,
-          data: ['鍛ㄤ竴', '鍛ㄤ簩', '鍛ㄤ笁', '鍛ㄥ洓', '鍛ㄤ簲', '鍛ㄥ叚', '鍛ㄦ棩']
-        },
-        yAxis: {
-          type: 'value',
-          splitLine: { show: false }
-        },
-        series: [
-          {
-            name: '璁″垝',
-            type: 'line',
-            stack: '鎬婚噺',
-            data: [120, 132, 101, 134, 90, 230, 210],
-            smooth: true,
-            symbol: 'none',
-            itemStyle: {
-              normal: { areaStyle: { type: 'default' }, color: '#85C1E9' }
-            }
-          },
-          {
-            name: '瀹為檯',
-            type: 'line',
-            stack: '鎬婚噺',
-            data: [220, 182, 191, 234, 290, 330, 310],
-            smooth: true,
-            symbol: 'none',
-            itemStyle: {
-              normal: { areaStyle: { type: 'default' }, color: '#BB8FCE' }
-            }
-          }
-        ]
-      },
-
-      pie: {
-        color: ['#dd4b39', '#13315b', '#36aadb', '#f96e02', '#d2d6de'],
-        title: {
-          text: '24灏忔椂浜у搧鐢熶骇姣斾緥',
-          left: 'center'
-        },
-        series: [
-          {
-            type: 'pie',
-            radius: ['40%', '55%'],
-            avoidLabelOverlap: false,
-            label: {
-              show: false,
-              position: 'center'
-            },
-            emphasis: {
-              label: {
-                show: true,
-                fontSize: '30',
-                fontWeight: 'bold'
-              }
-            },
-            labelLine: {
-              show: false
-            },
-            data: [
-              { value: 335, name: '閾滄帓鎶ゅ' },
-              { value: 310, name: '鎸℃澘' },
-              { value: 234, name: '鍦板垁姊�' },
-              { value: 135, name: '搴曟澘瑁呴厤' },
-              { value: 1548, name: '鐢电紗鏀灦' }
-            ]
-          }
-        ]
-      },
-
-      bar: {
-        title: {
-          text: '24灏忔椂宸ュ簭浜ц兘鎯呭喌',
-          left: 'center'
-        },
-        color: ['#3398DB'],
-        grid: {
-          left: '3%',
-          right: '4%',
-          bottom: '30%',
-          containLabel: true
-        },
-        xAxis: [
-          {
-            type: 'category',
-            data: [
-              '鍠锋秱',
-              '鍐叉姌鐒�-鍠锋秱',
-              '鍐叉姌鐒�',
-              '澹充綋缁勮',
-              '閾滄帓瀹夎',
-              '妫�楠�',
-              '鎵撳寘'
-            ],
-            axisTick: {
-              alignWithLabel: true
-            }
-          }
-        ],
-        yAxis: [
-          {
-            type: 'value',
-            nameTextStyle: {
-              fontSize: 6
-            },
-            splitLine: { show: false }
-          }
-        ],
-        series: [
-          {
-            name: '鐩存帴璁块棶',
-            type: 'bar',
-            barWidth: '10%',
-            data: [10, 52, 200, 334, 390, 330, 220]
-          }
-        ]
-      },
-      fit: 'fill',
-      url: ''
+        calendarValue: new Date(),
+        activeName: '1',
+        todoByDayList: [],
+        todoByWeekList: [],
+        todoByMonthList: [],
     }
   },
   computed: {
     ...mapGetters(['website'])
   },
   created() {
-    this.getSysParam(sysParam.SYSTEM_WEL_CONFIG)
+    this.getProSchedulReport()
+  },
+  watch:{
+    calendarValue(newVal){
+        if(newVal){
+            console.log(dateFormat(newVal,'yyyy-MM-dd'));
+        }
+    }
   },
   methods: {
-    getSysParam(paramKey) {
-      this.url = ''
-      getSysParam(paramKey).then((response) => {
-        var paramVal = response.data.data
-        if (response.data.code === 0) {
-          if (paramVal != null) {
-            this.url = paramVal
-          } else {
-            this.url = ''
-          }
-        } else {
-          this.url = ''
-        }
-      })
+    getProSchedulReport(){
+        getProductionSchedulReport().then(res=>{
+            if(res.status===200){
+                this.todoByDayList = res.data.data.todoByDay
+                this.todoByWeekList = res.data.data.todoByWeek
+                this.todoByMonthList = res.data.data.todoByMonth
+            }
+        }).catch(error=>{
+            console.error(error)
+        })
     }
   }
 }
diff --git a/src/views/accounting/jmreport/index.vue b/src/views/accounting/jmreport/index.vue
index 5837437..ec36143 100644
--- a/src/views/accounting/jmreport/index.vue
+++ b/src/views/accounting/jmreport/index.vue
@@ -64,7 +64,6 @@
                         minWidth: '100',
                         prop: 'workShop',
                         label: '杞﹂棿',
-                        sort: true,
                         isTrue: true,
                         isSearch: true,
                         searchInfoType: 'text',
@@ -73,7 +72,6 @@
                         minWidth: '100',
                         prop: 'partName',
                         label: '鐢熶骇闆朵欢',
-                        sort: true,
                         isTrue: true,
                         isSearch: true,
                         searchInfoType: 'text',
@@ -82,7 +80,6 @@
                         minWidth: '100',
                         prop: 'partNo',
                         label: '鐢熶骇闆朵欢鍙�',
-                        sort: true,
                         isTrue: true,
                         isSearch: true,
                         searchInfoType: 'text',
@@ -91,7 +88,6 @@
                         minWidth: '100',
                         prop: 'staffName',
                         label: '鐢熶骇浜哄憳',
-                        sort: true,
                         isTrue: true,
                         isSearch: true,
                         searchInfoType: 'text',
@@ -109,7 +105,6 @@
                         minWidth: '100',
                         prop: 'unit',
                         label: '鍗曚綅',
-                        sort: true,
                         isTrue: true,
                         isSearch: true,
                         searchInfoType: 'text',

--
Gitblit v1.9.3