Explorar el Código

数据统计部分修改与人员岗位部分查询提交

pm hace 8 meses
padre
commit
4623bcc72e

+ 45 - 20
src/views/mes/statisticians/LockerChange.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <span style="margin: 10px">统计区间:</span>
-    <el-date-picker
-      style="margin: 10px"
-      v-model="value2"
-      type="daterange"
-      align="right"
-      unlink-panels
-      range-separator="至"
-      start-placeholder="开始日期"
-      end-placeholder="结束日期"
-      :picker-options="pickerOptions" >
-    </el-date-picker>
+<!--    <span style="margin: 10px">统计区间:</span>-->
+<!--    <el-date-picker-->
+<!--      style="margin: 10px"-->
+<!--      v-model="value2"-->
+<!--      type="daterange"-->
+<!--      align="right"-->
+<!--      unlink-panels-->
+<!--      range-separator="至"-->
+<!--      start-placeholder="开始日期"-->
+<!--      end-placeholder="结束日期"-->
+<!--      :picker-options="pickerOptions" >-->
+<!--    </el-date-picker>-->
     <div ref="barChart" style="width: 700px; height: 400px;margin-top: 3%"></div>  <!-- 这里指定了柱状图的宽高 -->
   </div>
 </template>
@@ -22,6 +22,16 @@ import * as echarts from 'echarts'
 
 export default {
   name: 'warehouseEquipmentUsageStatus',
+  props: {
+    startTime:{
+      type: String,
+      default: ''
+    },
+    endTime:{
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
       cabinetData: [],  // 存储请求到的柜子数据
@@ -60,15 +70,30 @@ export default {
       },
     }
   },
+  computed: {
+    dateRange() {
+      return {
+        startTime: this.startTime,
+        endTime: this.endTime
+      };
+    }
+  },
   watch: {
-    value2(val) {
-      if(val){
-        this.getList()
+    // value2(val) {
+    //   if(val){
+    //     this.getList()
+    //   }
+    // },
+    dateRange(newVal, oldVal) {
+      if (newVal.startTime && newVal.endTime) {
+        this.queryParams.startTime = newVal.startTime;
+        this.queryParams.endTime = newVal.endTime;
+        this.getList();
       }
     }
   },
   mounted() {
-    this.getList()
+    // this.getList()
   },
   methods: {
     getDefaultDateRange() {
@@ -88,10 +113,10 @@ export default {
     },
     // 请求数据
     getList() {
-      if (Array.isArray(this.value2) && this.value2.length === 2) {
-        this.queryParams.startTime = this.formatDate(this.value2[0])
-        this.queryParams.endTime = this.formatDate(this.value2[1])
-      }
+      // if (Array.isArray(this.value2) && this.value2.length === 2) {
+      //   this.queryParams.startTime = this.formatDate(this.value2[0])
+      //   this.queryParams.endTime = this.formatDate(this.value2[1])
+      // }
       getMaterialsChangeStatistics(this.queryParams).then(response => {
         console.log(response, '物资柜状态统计--更换次数')
         this.cabinetData = response.data // 获取数据后保存

+ 46 - 21
src/views/mes/statisticians/LockerCollection.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <span style="margin: 10px">统计区间:</span>
-    <el-date-picker
-      style="margin: 10px"
-      v-model="value2"
-      type="daterange"
-      align="right"
-      unlink-panels
-      range-separator="至"
-      start-placeholder="开始日期"
-      end-placeholder="结束日期"
-      :picker-options="pickerOptions" >
-    </el-date-picker>
+<!--    <span style="margin: 10px">统计区间:</span>-->
+<!--    <el-date-picker-->
+<!--      style="margin: 10px"-->
+<!--      v-model="value2"-->
+<!--      type="daterange"-->
+<!--      align="right"-->
+<!--      unlink-panels-->
+<!--      range-separator="至"-->
+<!--      start-placeholder="开始日期"-->
+<!--      end-placeholder="结束日期"-->
+<!--      :picker-options="pickerOptions" >-->
+<!--    </el-date-picker>-->
     <div ref="barChart" style="width: 700px; height: 400px;margin-top: 3%"></div>  <!-- 这里指定了柱状图的宽高 -->
   </div>
 </template>
@@ -22,6 +22,16 @@ import * as echarts from 'echarts'
 
 export default {
   name: 'warehouseEquipmentUsageStatus',
+  props: {
+    startTime:{
+      type: String,
+      default: ''
+    },
+    endTime:{
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
       cabinetData: [],  // 存储请求到的柜子数据
@@ -60,15 +70,30 @@ export default {
       },
     }
   },
+  computed: {
+    dateRange() {
+      return {
+        startTime: this.startTime,
+        endTime: this.endTime
+      };
+    }
+  },
   watch: {
-    value2(val) {
-      if(val){
-        this.getList()
+    // value2(val) {
+    //   if(val){
+    //     this.getList()
+    //   }
+    // },
+    dateRange(newVal, oldVal) {
+      if (newVal.startTime && newVal.endTime) {
+        this.queryParams.startTime = newVal.startTime;
+        this.queryParams.endTime = newVal.endTime;
+        this.getList();
       }
     }
   },
   mounted() {
-    this.getList()
+    // this.getList()
   },
   methods: {
     getDefaultDateRange() {
@@ -88,12 +113,12 @@ export default {
     },
     // 请求数据
     getList() {
-      if (Array.isArray(this.value2) && this.value2.length === 2) {
-        this.queryParams.startTime = this.formatDate(this.value2[0])
-        this.queryParams.endTime = this.formatDate(this.value2[1])
-      }
+      // if (Array.isArray(this.value2) && this.value2.length === 2) {
+      //   this.queryParams.startTime = this.formatDate(this.value2[0])
+      //   this.queryParams.endTime = this.formatDate(this.value2[1])
+      // }
       getMaterialsLoanStatistics(this.queryParams).then(response => {
-        console.log(response, '物资柜状态统计--开关次数')
+        console.log(response, '物资柜状态统计--领取次数')
         this.cabinetData = response.data // 获取数据后保存
         this.renderChart()  // 数据获取完后渲染图表
       })

+ 48 - 21
src/views/mes/statisticians/LockerDaily.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <span style="margin: 10px">统计区间:</span>
-    <el-date-picker
-      style="margin: 10px"
-      v-model="value2"
-      type="daterange"
-      align="right"
-      unlink-panels
-      range-separator="至"
-      start-placeholder="开始日期"
-      end-placeholder="结束日期"
-      :picker-options="pickerOptions" >
-    </el-date-picker>
+<!--    <span style="margin: 10px">统计区间:</span>-->
+<!--    <el-date-picker-->
+<!--      style="margin: 10px"-->
+<!--      v-model="value2"-->
+<!--      type="daterange"-->
+<!--      align="right"-->
+<!--      unlink-panels-->
+<!--      range-separator="至"-->
+<!--      start-placeholder="开始日期"-->
+<!--      end-placeholder="结束日期"-->
+<!--      :picker-options="pickerOptions" >-->
+<!--    </el-date-picker>-->
     <div ref="barChart" style="width: 700px; height: 400px;margin-top: 3%"></div>  <!-- 这里指定了柱状图的宽高 -->
   </div>
 </template>
@@ -22,6 +22,16 @@ import * as echarts from 'echarts'
 
 export default {
   name: 'warehouseEquipmentUsageStatus',
+  props: {
+    startTime:{
+      type: String,
+      default: ''
+    },
+    endTime:{
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
       cabinetData: [],  // 存储请求到的柜子数据
@@ -60,15 +70,31 @@ export default {
       },
     }
   },
+  computed: {
+    dateRange() {
+      return {
+        startTime: this.startTime,
+        endTime: this.endTime
+      };
+    }
+  },
   watch: {
-    value2(val) {
-      if(val){
-        this.getList()
+    // value2(val) {
+    //   if(val){
+    //     this.getList()
+    //   }
+    // },
+    dateRange(newVal, oldVal) {
+      if (newVal.startTime && newVal.endTime) {
+        this.queryParams.startTime = newVal.startTime;
+        this.queryParams.endTime = newVal.endTime;
+        this.getList();
       }
     }
   },
   mounted() {
-    this.getList()
+
+    // this.getList()
   },
   methods: {
     getDefaultDateRange() {
@@ -87,12 +113,13 @@ export default {
     },
     // 请求数据
     getList() {
-      if (Array.isArray(this.value2) && this.value2.length === 2) {
-        this.queryParams.startTime = this.formatDate(this.value2[0])
-        this.queryParams.endTime = this.formatDate(this.value2[1])
-      }
+      // if (Array.isArray(this.value2) && this.value2.length === 2) {
+      //   this.queryParams.startTime = this.formatDate(this.value2[0])
+      //   this.queryParams.endTime = this.formatDate(this.value2[1])
+      // }
+
       getDayLoanStatistics(this.queryParams).then(response => {
-        console.log(response, '物资柜状态统计--更换次数')
+        console.log(response, '物资柜状态统计--每日领取次数')
         const sortData = response.data.sort((a, b) => {
           const dateA = new Date(a.day);
           const dateB = new Date(b.day);

+ 43 - 18
src/views/mes/statisticians/LockerLending.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <span style="margin: 10px">统计区间:</span>
-    <el-date-picker
-      style="margin: 10px"
-      v-model="value2"
-      type="daterange"
-      align="right"
-      unlink-panels
-      range-separator="至"
-      start-placeholder="开始日期"
-      end-placeholder="结束日期"
-      :picker-options="pickerOptions" >
-    </el-date-picker>
+<!--    <span style="margin: 10px">统计区间:</span>-->
+<!--    <el-date-picker-->
+<!--      style="margin: 10px"-->
+<!--      v-model="value2"-->
+<!--      type="daterange"-->
+<!--      align="right"-->
+<!--      unlink-panels-->
+<!--      range-separator="至"-->
+<!--      start-placeholder="开始日期"-->
+<!--      end-placeholder="结束日期"-->
+<!--      :picker-options="pickerOptions" >-->
+<!--    </el-date-picker>-->
     <div ref="barChart" style="width: 700px; height: 400px;margin-top: 3%"></div>  <!-- 这里指定了柱状图的宽高 -->
   </div>
 </template>
@@ -22,6 +22,16 @@ import * as echarts from 'echarts'
 
 export default {
   name: 'warehouseEquipmentUsageStatus',
+  props: {
+    startTime:{
+      type: String,
+      default: ''
+    },
+    endTime:{
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
       cabinetData: [],  // 存储请求到的柜子数据
@@ -60,15 +70,30 @@ export default {
       },
     }
   },
+  computed: {
+    dateRange() {
+      return {
+        startTime: this.startTime,
+        endTime: this.endTime
+      };
+    }
+  },
   watch: {
     value2(val) {
       if(val){
         this.getList()
       }
+    },
+    dateRange(newVal, oldVal) {
+      if (newVal.startTime && newVal.endTime) {
+        this.queryParams.startTime = newVal.startTime;
+        this.queryParams.endTime = newVal.endTime;
+        this.getList();
+      }
     }
   },
   mounted() {
-    this.getList()
+    // this.getList()
   },
   methods: {
     getDefaultDateRange() {
@@ -88,12 +113,12 @@ export default {
     },
     // 请求数据
     getList() {
-      if (Array.isArray(this.value2) && this.value2.length === 2) {
-        this.queryParams.startTime = this.formatDate(this.value2[0])
-        this.queryParams.endTime = this.formatDate(this.value2[1])
-      }
+      // if (Array.isArray(this.value2) && this.value2.length === 2) {
+      //   this.queryParams.startTime = this.formatDate(this.value2[0])
+      //   this.queryParams.endTime = this.formatDate(this.value2[1])
+      // }
       getMaterialsLoanStatistics(this.queryParams).then(response => {
-        console.log(response, '物资柜状态统计--开关次数')
+        console.log(response, '物资柜状态统计--借出次数')
         this.cabinetData = response.data // 获取数据后保存
         this.renderChart()  // 数据获取完后渲染图表
       })

+ 54 - 28
src/views/mes/statisticians/LockerMistake.vue

@@ -1,20 +1,20 @@
 <template>
 
   <div class="charts-container">
-   <div style="width: 100%;">
-     <span style="margin: 10px;">统计区间:</span>
-     <el-date-picker
-       style="margin: 10px"
-       v-model="value2"
-       type="daterange"
-       align="right"
-       unlink-panels
-       range-separator="至"
-       start-placeholder="开始日期"
-       end-placeholder="结束日期"
-       :picker-options="pickerOptions" >
-     </el-date-picker>
-   </div>
+<!--   <div style="width: 100%;">-->
+<!--     <span style="margin: 10px;">统计区间:</span>-->
+<!--     <el-date-picker-->
+<!--       style="margin: 10px"-->
+<!--       v-model="value2"-->
+<!--       type="daterange"-->
+<!--       align="right"-->
+<!--       unlink-panels-->
+<!--       range-separator="至"-->
+<!--       start-placeholder="开始日期"-->
+<!--       end-placeholder="结束日期"-->
+<!--       :picker-options="pickerOptions" >-->
+<!--     </el-date-picker>-->
+<!--   </div>-->
     <!-- 使用 v-for 动态渲染饼图 -->
     <div class="pie-chart" v-for="(cabinet, index) in cabinetData" :key="index">
       <div :id="'pieChart' + cabinet.cabinetId" style="width: 300px; height: 150px;"></div>
@@ -28,6 +28,16 @@ import * as echarts from 'echarts'
 
 export default {
   name: 'warehouseEquipmentUsageStatus',
+  props: {
+    startTime:{
+      type: String,
+      default: ''
+    },
+    endTime:{
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
       cabinetData: [],  // 存储请求到的柜子数据
@@ -66,15 +76,30 @@ export default {
       },
     }
   },
+  computed: {
+    dateRange() {
+      return {
+        startTime: this.startTime,
+        endTime: this.endTime
+      };
+    }
+  },
   watch: {
-    value2(val) {
-      if(val){
-        this.getList()
+    // value2(val) {
+    //   if(val){
+    //     this.getList()
+    //   }
+    // },
+    dateRange(newVal, oldVal) {
+      if (newVal.startTime && newVal.endTime) {
+        this.queryParams.startTime = newVal.startTime;
+        this.queryParams.endTime = newVal.endTime;
+        this.getList();
       }
     }
   },
   mounted() {
-    this.getList()
+    // this.getList()
   },
   methods: {
     getDefaultDateRange() {
@@ -94,12 +119,12 @@ export default {
     },
     // 请求数据
     getList() {
-      if (Array.isArray(this.value2) && this.value2.length === 2) {
-        this.queryParams.startTime = this.formatDate(this.value2[0])
-        this.queryParams.endTime = this.formatDate(this.value2[1])
-      }
+      // if (Array.isArray(this.value2) && this.value2.length === 2) {
+      //   this.queryParams.startTime = this.formatDate(this.value2[0])
+      //   this.queryParams.endTime = this.formatDate(this.value2[1])
+      // }
       getCabinetStatistics(this.queryParams).then(response => {
-        console.log(response, '物资柜状态统计--开关次数')
+        console.log(response, '物资柜状态统计--物资柜异常数据统计')
         this.cabinetData = response.data // 获取数据后保存
 
         // 在数据加载完成后渲染图表
@@ -122,6 +147,7 @@ export default {
           const options = {
             title: {
               text: cabinet.cabinetName,  // 添加饼图标题
+              subTitle:'物资柜异常统计',
               left: 'center',
               top: 'center',
               textStyle: {
@@ -152,12 +178,13 @@ export default {
                   { value: cabinet.misplaceCount || 0, name: '物资错放' },
                 ],
                 itemStyle: {
-                  // 自定义颜色
                   color: (params) => {
-                    if (params.name === '超时未关') {
-                      return '#91cc75' // 超时未关用绿色
+                    if (params.value === 0) {
+                      return '#dcdfe6'; // 数据为0时,渲染为灰色
+                    } else if (params.name === '超时未关') {
+                      return '#91cc75'; // 超时未关用绿色
                     } else {
-                      return '#5470c6' // 物资错放用蓝色
+                      return '#5470c6'; // 物资错放用蓝色
                     }
                   },
                 },
@@ -169,7 +196,6 @@ export default {
                     fontSize: 14,
                   }
                 }
-
               },
             ],
           }

+ 95 - 10
src/views/mes/statisticians/LockerOne.vue

@@ -1,20 +1,33 @@
 <template>
   <div>
+       <div style="width: 100%;">
+         <span style="margin: 10px;">统计区间:</span>
+         <el-date-picker
+           style="margin: 10px"
+           v-model="value2"
+           type="datetimerange"
+           align="right"
+           unlink-panels
+           range-separator="至"
+           start-placeholder="开始日期"
+           end-placeholder="结束日期"
+           :picker-options="pickerOptions" >
+         </el-date-picker>
+       </div>
     <el-row>
-      <el-col :span="12">
-        <LockerOpen></LockerOpen>
+      <el-col :span="12" >
+        <LockerOpen  :startTime="this.queryParams.startTime" :endTime="this.queryParams.endTime"></LockerOpen>
       </el-col>
       <el-col :span="12">
-        <LockerLending></LockerLending>
-
+        <LockerMistake :startTime="this.queryParams.startTime" :endTime="this.queryParams.endTime"></LockerMistake>
       </el-col>
     </el-row>
     <el-row>
       <el-col :span="12">
-        <LockerSpeciality></LockerSpeciality>
+        <LockerSpeciality :startTime="this.queryParams.startTime" :endTime="this.queryParams.endTime"></LockerSpeciality>
       </el-col>
       <el-col :span="12">
-        <LockerMistake></LockerMistake>
+        <LockerChange :startTime="this.queryParams.startTime" :endTime="this.queryParams.endTime"></LockerChange>
       </el-col>
     </el-row>
   </div>
@@ -23,15 +36,87 @@
 import LockerOpen from '@/views/mes/statisticians/LockerOpen.vue'
 import LockerMistake from '@/views/mes/statisticians/LockerMistake.vue'
 import LockerSpeciality from '@/views/mes/statisticians/LockerSpeciality.vue'
-import LockerLending from '@/views/mes/statisticians/LockerLending.vue'
+import LockerChange from '@/views/mes/statisticians/LockerChange.vue'
 export default {
-  name: 'LockerTwo',
+  name: 'LockerOne',
   components: {
     LockerOpen,
     LockerMistake,
     LockerSpeciality,
-    LockerLending
-  }
+    LockerChange
+  },
+  data() {
+    return {
+      value2: this.getDefaultDateRange(),
+      queryParams:{
+        startTime: null,
+        endTime: null,
+      },
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+            picker.$emit('pick', [start, end]);
+          }
+        }]
+      },
+    }
+  },
+  watch: {
+    value2(val) {
+      if(val){
+        console.log(val,'父组件拿到的时间内容')
+        this.getList()
+
+      }
+    }
+  },
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    getDefaultDateRange() {
+      const today = new Date();
+      const oneMonthAgo = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());
+      return [oneMonthAgo, today];
+    },
+    formatDate(date) {
+      const year = date.getFullYear().toString().padStart(2, "0");
+      const month = (date.getMonth() + 1).toString().padStart(2, "0");
+      const day = date.getDate().toString().padStart(2, "0");
+      const hours = date.getHours().toString().padStart(2, "0");
+      const minutes = date.getMinutes().toString().padStart(2, "0");
+      const seconds = date.getSeconds().toString().padStart(2, "0");
+
+      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    },
+    getList(){
+      if (Array.isArray(this.value2) && this.value2.length === 2) {
+        this.queryParams.startTime = this.formatDate(this.value2[0])
+        this.queryParams.endTime = this.formatDate(this.value2[1])
+
+      }
+    }
+  },
 }
 </script>
 <style scoped lang="scss">

+ 46 - 21
src/views/mes/statisticians/LockerOpen.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <span style="margin: 10px">统计区间:</span>
-    <el-date-picker
-      style="margin: 10px"
-      v-model="value2"
-      type="daterange"
-      align="right"
-      unlink-panels
-      range-separator="至"
-      start-placeholder="开始日期"
-      end-placeholder="结束日期"
-      :picker-options="pickerOptions" >
-    </el-date-picker>
+<!--    <span style="margin: 10px">统计区间:</span>-->
+<!--    <el-date-picker-->
+<!--      style="margin: 10px"-->
+<!--      v-model="value2"-->
+<!--      type="daterange"-->
+<!--      align="right"-->
+<!--      unlink-panels-->
+<!--      range-separator="至"-->
+<!--      start-placeholder="开始日期"-->
+<!--      end-placeholder="结束日期"-->
+<!--      :picker-options="pickerOptions" >-->
+<!--    </el-date-picker>-->
     <div ref="barChart" style="width: 700px; height: 400px;margin-top: 3%"></div>  <!-- 这里指定了柱状图的宽高 -->
   </div>
 </template>
@@ -22,6 +22,16 @@ import * as echarts from 'echarts'
 
 export default {
   name: 'warehouseEquipmentUsageStatus',
+  props: {
+    startTime:{
+      type: String,
+      default: ''
+    },
+    endTime:{
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
       cabinetData: [],  // 存储请求到的柜子数据
@@ -60,15 +70,30 @@ export default {
       },
     }
   },
+  computed: {
+    dateRange() {
+      return {
+        startTime: this.startTime,
+        endTime: this.endTime
+      };
+    }
+  },
   watch: {
-    value2(val) {
-      if(val){
-        this.getList()
+    // value2(val) {
+    //   if(val){
+    //     this.getList()
+    //   }
+    // },
+    dateRange(newVal, oldVal) {
+      if (newVal.startTime && newVal.endTime) {
+        this.queryParams.startTime = newVal.startTime;
+        this.queryParams.endTime = newVal.endTime;
+        this.getList();
       }
     }
   },
   mounted() {
-    this.getList()
+    // this.getList()
   },
   methods: {
     getDefaultDateRange() {
@@ -88,11 +113,11 @@ export default {
     },
     // 请求数据
     getList() {
-      if (Array.isArray(this.value2) && this.value2.length === 2) {
-        this.queryParams.startTime = this.formatDate(this.value2[0])
-        this.queryParams.endTime = this.formatDate(this.value2[1])
-      }
-      console.log(this.queryParams,'canshu');
+
+      // if (Array.isArray(this.value2) && this.value2.length === 2) {
+      //   this.queryParams.startTime = this.formatDate(this.value2[0])
+      //   this.queryParams.endTime = this.formatDate(this.value2[1])
+      // }
       getCabinetStatistics(this.queryParams).then(response => {
         console.log(response, '物资柜状态统计--开关次数')
         this.cabinetData = response.data // 获取数据后保存

+ 46 - 21
src/views/mes/statisticians/LockerReturn.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <span style="margin: 10px">统计区间:</span>
-    <el-date-picker
-      style="margin: 10px"
-      v-model="value2"
-      type="daterange"
-      align="right"
-      unlink-panels
-      range-separator="至"
-      start-placeholder="开始日期"
-      end-placeholder="结束日期"
-      :picker-options="pickerOptions" >
-    </el-date-picker>
+<!--    <span style="margin: 10px">统计区间:</span>-->
+<!--    <el-date-picker-->
+<!--      style="margin: 10px"-->
+<!--      v-model="value2"-->
+<!--      type="daterange"-->
+<!--      align="right"-->
+<!--      unlink-panels-->
+<!--      range-separator="至"-->
+<!--      start-placeholder="开始日期"-->
+<!--      end-placeholder="结束日期"-->
+<!--      :picker-options="pickerOptions" >-->
+<!--    </el-date-picker>-->
     <div ref="barChart" style="width: 700px; height: 400px;margin-top: 3%"></div>  <!-- 这里指定了柱状图的宽高 -->
   </div>
 </template>
@@ -22,6 +22,16 @@ import * as echarts from 'echarts'
 
 export default {
   name: 'warehouseEquipmentUsageStatus',
+  props: {
+    startTime:{
+      type: String,
+      default: ''
+    },
+    endTime:{
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
       cabinetData: [],  // 存储请求到的柜子数据
@@ -60,15 +70,30 @@ export default {
       },
     }
   },
+  computed: {
+    dateRange() {
+      return {
+        startTime: this.startTime,
+        endTime: this.endTime
+      };
+    }
+  },
   watch: {
-    value2(val) {
-      if(val){
-        this.getList()
+    // value2(val) {
+    //   if(val){
+    //     this.getList()
+    //   }
+    // },
+    dateRange(newVal, oldVal) {
+      if (newVal.startTime && newVal.endTime) {
+        this.queryParams.startTime = newVal.startTime;
+        this.queryParams.endTime = newVal.endTime;
+        this.getList();
       }
     }
   },
   mounted() {
-    this.getList()
+    // this.getList()
   },
   methods: {
     getDefaultDateRange() {
@@ -88,12 +113,12 @@ export default {
     },
     // 请求数据
     getList() {
-      if (Array.isArray(this.value2) && this.value2.length === 2) {
-        this.queryParams.startTime = this.formatDate(this.value2[0])
-        this.queryParams.endTime = this.formatDate(this.value2[1])
-      }
+      // if (Array.isArray(this.value2) && this.value2.length === 2) {
+      //   this.queryParams.startTime = this.formatDate(this.value2[0])
+      //   this.queryParams.endTime = this.formatDate(this.value2[1])
+      // }
       getMaterialsLoanStatistics(this.queryParams).then(response => {
-        console.log(response, '物资柜状态统计--开关次数')
+        console.log(response, '物资柜状态统计--归还次数')
         this.cabinetData = response.data // 获取数据后保存
         this.renderChart()  // 数据获取完后渲染图表
       })

+ 102 - 3
src/views/mes/statisticians/LockerSpeciality.vue

@@ -1,5 +1,19 @@
 <template>
   <div>
+<!--    <div style="width: 100%;">-->
+<!--      <span style="margin: 10px;">统计区间:</span>-->
+<!--      <el-date-picker-->
+<!--        style="margin: 10px"-->
+<!--        v-model="value2"-->
+<!--        type="daterange"-->
+<!--        align="right"-->
+<!--        unlink-panels-->
+<!--        range-separator="至"-->
+<!--        start-placeholder="开始日期"-->
+<!--        end-placeholder="结束日期"-->
+<!--        :picker-options="pickerOptions" >-->
+<!--      </el-date-picker>-->
+<!--    </div>-->
     <div ref="barChart" style="width: 700px; height: 400px;margin-top: 3%"></div>  <!-- 这里指定了柱状图的宽高 -->
   </div>
 </template>
@@ -10,20 +24,105 @@ import * as echarts from 'echarts'
 
 export default {
   name: 'warehouseEquipmentUsageStatus',
+  props: {
+    startTime:{
+      type: String,
+      default: ''
+    },
+    endTime:{
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
       cabinetData: [],  // 存储请求到的柜子数据
       chartInstance: null,
+      value2: this.getDefaultDateRange(),
+      queryParams:{
+        startTime: null,
+        endTime: null,
+      },
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+            picker.$emit('pick', [start, end]);
+          }
+        }]
+      },
+
+    }
+  },
+  computed: {
+    dateRange() {
+      return {
+        startTime: this.startTime,
+        endTime: this.endTime
+      };
+    }
+  },
+  watch: {
+    value2(val) {
+      if(val){
+        this.getList()
+      }
+    },
+    dateRange(newVal, oldVal) {
+      if (newVal.startTime && newVal.endTime) {
+        this.queryParams.startTime = newVal.startTime;
+        this.queryParams.endTime = newVal.endTime;
+        this.getList();
+      }
     }
   },
   mounted() {
-    this.getList()
+    // this.getList()
   },
   methods: {
+
+    getDefaultDateRange() {
+      const today = new Date();
+      const oneMonthAgo = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());
+      return [oneMonthAgo, today];
+    },
+    formatDate(date) {
+      const year = date.getFullYear().toString().padStart(2, "0");
+      const month = (date.getMonth() + 1).toString().padStart(2, "0");
+      const day = date.getDate().toString().padStart(2, "0");
+      const hours = date.getHours().toString().padStart(2, "0");
+      const minutes = date.getMinutes().toString().padStart(2, "0");
+      const seconds = date.getSeconds().toString().padStart(2, "0");
+
+      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    },
     // 请求数据
     getList() {
-      getMaterialsStatusStatistics().then(response => {
-        console.log(response, '物资柜状态统计--开关次数')
+      // if (Array.isArray(this.value2) && this.value2.length === 2) {
+      //   this.queryParams.startTime = this.formatDate(this.value2[0])
+      //   this.queryParams.endTime = this.formatDate(this.value2[1])
+      // }
+      getMaterialsStatusStatistics(this.queryParams).then(response => {
+        console.log(response, '物资柜状态统计--特殊状态物资统计')
         this.cabinetData = response.data // 获取数据后保存
         this.renderChart()  // 数据获取完后渲染图表
       })

+ 92 - 7
src/views/mes/statisticians/LockerTwo.vue

@@ -1,19 +1,33 @@
 <template>
   <div>
+    <div style="width: 100%;">
+      <span style="margin: 10px;">统计区间:</span>
+      <el-date-picker
+        style="margin: 10px"
+        v-model="value2"
+        type="datetimerange"
+        align="right"
+        unlink-panels
+        range-separator="至"
+        start-placeholder="开始日期"
+        end-placeholder="结束日期"
+        :picker-options="pickerOptions" >
+      </el-date-picker>
+    </div>
     <el-row>
       <el-col :span="12">
-        <LockerCollection></LockerCollection>
+        <LockerDaily :startTime="this.queryParams.startTime" :endTime="this.queryParams.endTime"></LockerDaily>
       </el-col>
       <el-col :span="12">
-        <LockerReturn></LockerReturn>
+        <LockerLending :startTime="this.queryParams.startTime" :endTime="this.queryParams.endTime"></LockerLending>
       </el-col>
     </el-row>
     <el-row>
       <el-col :span="12">
-        <LockerChange></LockerChange>
+        <LockerCollection :startTime="this.queryParams.startTime" :endTime="this.queryParams.endTime"></LockerCollection>
       </el-col>
       <el-col :span="12">
-        <LockerDaily></LockerDaily>
+        <LockerReturn :startTime="this.queryParams.startTime" :endTime="this.queryParams.endTime"></LockerReturn>
       </el-col>
     </el-row>
   </div>
@@ -21,16 +35,87 @@
 <script>
 import LockerCollection from '@/views/mes/statisticians/LockerCollection.vue'
 import LockerReturn from '@/views/mes/statisticians/LockerReturn.vue'
-import LockerChange from '@/views/mes/statisticians/LockerChange.vue'
+import LockerLending from '@/views/mes/statisticians/LockerLending.vue'
 import LockerDaily from '@/views/mes/statisticians/LockerDaily.vue'
+import LockerOpen from '@/views/mes/statisticians/LockerOpen.vue'
 export default {
   name: 'LockerTwo',
   components: {
+    LockerOpen,
     LockerCollection,
     LockerReturn,
-    LockerChange,
+    LockerLending,
     LockerDaily
-  }
+  },
+  data() {
+    return {
+      value2: this.getDefaultDateRange(),
+      queryParams:{
+        startTime: null,
+        endTime: null,
+      },
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+            picker.$emit('pick', [start, end]);
+          }
+        }]
+      },
+    }
+  },
+  watch: {
+    value2(val) {
+      if(val){
+        this.getList()
+      }
+    }
+  },
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    getDefaultDateRange() {
+      const today = new Date();
+      const oneMonthAgo = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());
+      return [oneMonthAgo, today];
+    },
+    formatDate(date) {
+      const year = date.getFullYear().toString().padStart(2, "0");
+      const month = (date.getMonth() + 1).toString().padStart(2, "0");
+      const day = date.getDate().toString().padStart(2, "0");
+      const hours = date.getHours().toString().padStart(2, "0");
+      const minutes = date.getMinutes().toString().padStart(2, "0");
+      const seconds = date.getSeconds().toString().padStart(2, "0");
+
+      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    },
+    getList(){
+      if (Array.isArray(this.value2) && this.value2.length === 2) {
+        this.queryParams.startTime = this.formatDate(this.value2[0])
+        this.queryParams.endTime = this.formatDate(this.value2[1])
+      }
+    }
+  },
 }
 </script>
 <style scoped lang="scss">

+ 1 - 1
src/views/system/user/index.vue

@@ -960,7 +960,7 @@ export default {
       if(this.$route.query.workstationId){
         this.queryParams.workstationId = this.$route.query.workstationId;
       }else {
-        this.queryParams.workstationId=''
+        this.queryParams.workstationId=this.queryParams.workstationId
       }
       this.getList();
     },