Browse Source

决策驾驶舱-特货分类统计修改

zhongxiaoyu 2 years ago
parent
commit
8ab3eb0af9

+ 20 - 23
src/views/dashboard/arrival.vue

@@ -275,10 +275,10 @@
                   <template #dropdown>
                     <el-dropdown-menu>
                       <el-dropdown-item
-                        v-for="item in specialGoodsDatas"
-                        :key="item.specialTypeName"
-                        :command="item.specialTypeName"
-                        >{{ item.specialTypeName }}</el-dropdown-item
+                        v-for="specialTypeName in specialGoodsDatas"
+                        :key="specialTypeName"
+                        :command="specialTypeName"
+                        >{{ specialTypeName }}</el-dropdown-item
                       >
                     </el-dropdown-menu>
                   </template>
@@ -415,9 +415,20 @@ const tallyObj = ref<any>({})
 const flightNums = ref(0)
 const stockNums = ref(0)
 const weightNums = ref<number | string>(0)
-const specialGoods = ref<string>('分类')
-const specialGoodsDatas = ref<any>([])
-const specialGoodsAll = ref<any>([])
+const specialGoods = ref('全部')
+const specialGoodsDatas = ref([
+  '活',
+  '鲜',
+  '药',
+  '危',
+  '冷',
+  '锂',
+  '快',
+  '动',
+  '贵',
+  '邮',
+  '全部',
+])
 const weightType = ref('进港')
 const today = parseTime(Date.now(), '{y}-{m}-{d}')
 const sevenDaysAgo = parseTime(
@@ -548,9 +559,6 @@ const pubFunc = (listValues, target, type?) => {
 // 特货分类统计-选取下拉数据
 const handleCommand = (command: string) => {
   specialGoods.value = command
-  const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption)
-  const result = formatGoods(command, specialGoodsAll.value)
-  airlineObj.value = pubFunc(result, newObj)
 }
 
 //获取小时峰值分布
@@ -688,18 +696,7 @@ const airlineFunc = async () => {
   if (listValues && isValue(listValues)) {
     const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption)
     const newDatas = _.cloneDeep(listValues)
-    const nameDatas = _.unionBy(newDatas, 'specialTypeName')
-    // const names: any = [...nameDatas];
-    const names: any = [...nameDatas, { specialTypeName: '合计' }]
-    // specialGoods.value = names[0]["specialTypeName"];
-    specialGoods.value = '合计'
-    specialGoodsDatas.value = names
-    specialGoodsAll.value = listValues
-    const result = formatGoods(
-      // names[0]["specialTypeName"],
-      '合计',
-      specialGoodsAll.value
-    )
+    const result = formatGoods(specialGoods.value, newDatas)
     airlineObj.value = pubFunc(result, newObj)
   }
   loading7.value = false
@@ -738,7 +735,7 @@ useLoop([nodePeakFunc], 'dashboard', [nodeDates])
 useLoop([numbersFunc], 'dashboard')
 useLoop([airlineTrafficFunc], 'dashboard', [airlineTrafficDates])
 useLoop([airlineAbnormalFunc], 'dashboard')
-useLoop([airlineFunc], 'dashboard', [airlineDates])
+useLoop([airlineFunc], 'dashboard', [airlineDates, specialGoods])
 useLoop([tallyWeightFunc], 'dashboard', [tallyDates, weightType])
 </script>
 

+ 21 - 23
src/views/dashboard/departure.vue

@@ -279,10 +279,10 @@
                   <template #dropdown>
                     <el-dropdown-menu>
                       <el-dropdown-item
-                        v-for="item in specialGoodsDatas"
-                        :key="item.specialTypeName"
-                        :command="item.specialTypeName"
-                        >{{ item.specialTypeName }}</el-dropdown-item
+                        v-for="specialTypeName in specialGoodsDatas"
+                        :key="specialTypeName"
+                        :command="specialTypeName"
+                        >{{ specialTypeName }}</el-dropdown-item
                       >
                     </el-dropdown-menu>
                   </template>
@@ -401,9 +401,20 @@ const airlineObj = ref<any>({})
 const pickingObj = ref<any>({})
 const flightNums = ref(0)
 const stockNums = ref(0)
-const specialGoods = ref<string>('分类')
-const specialGoodsDatas = ref<any>([])
-const specialGoodsAll = ref<any>([])
+const specialGoods = ref('全部')
+const specialGoodsDatas = ref([
+  '活',
+  '鲜',
+  '药',
+  '危',
+  '冷',
+  '锂',
+  '快',
+  '动',
+  '贵',
+  '邮',
+  '全部',
+])
 const weightNums = ref<number | string>(0)
 const today = parseTime(Date.now(), '{y}-{m}-{d}')
 const sevenDaysAgo = parseTime(
@@ -534,9 +545,6 @@ const pubFunc = (listValues, target, type?) => {
 // 特货分类统计-选取下拉数据
 const handleCommand = (command: string) => {
   specialGoods.value = command
-  const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption)
-  const result = formatGoods(command, specialGoodsAll.value)
-  airlineObj.value = pubFunc(result, newObj)
 }
 
 //获取小时峰值分布
@@ -709,23 +717,13 @@ const airlineFunc = async () => {
       fd1: airlineDates.startDate,
       fd2: airlineDates.endDate,
       fttp: '国内离港',
+      spe: specialGoods.value,
     },
   ])) as any
   if (listValues && isValue(listValues)) {
     const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption)
     const newDatas = _.cloneDeep(listValues)
-    const nameDatas = _.unionBy(newDatas, 'specialTypeName')
-    // const names: any = [...nameDatas];
-    const names: any = [...nameDatas, { specialTypeName: '合计' }]
-    // specialGoods.value = names[0]["specialTypeName"];
-    specialGoods.value = '合计'
-    specialGoodsDatas.value = names
-    specialGoodsAll.value = listValues
-    const result = formatGoods(
-      // names[0]["specialTypeName"],
-      '合计',
-      specialGoodsAll.value
-    )
+    const result = formatGoods(specialGoods.value, newDatas)
     airlineObj.value = pubFunc(result, newObj)
   }
   loading7.value = false
@@ -766,7 +764,7 @@ useLoop([nodePeakFunc], 'dashboard', [nodeDates])
 useLoop([numbersFunc], 'dashboard')
 useLoop([airlineTrafficFunc], 'dashboard', [airlineTrafficDates])
 useLoop([airlineAbnormalFunc], 'dashboard')
-useLoop([airlineFunc], 'dashboard', [airlineDates])
+useLoop([airlineFunc], 'dashboard', [airlineDates, specialGoods])
 useLoop([pickingFuncs], 'dashboard', [pickingDates])
 </script>
 

+ 14 - 10
src/views/dashboard/hooks/usePublic.ts

@@ -13,7 +13,7 @@ export enum showTimeMsg {
   SpecialClassification, // 特货分类
 }
 
-export function parseDate (date: string) {
+export function parseDate(date: string) {
   return date.split('-').slice(1).join('-')
 }
 
@@ -163,6 +163,7 @@ export function usePublic() {
     component: 'commonChartsBar',
     option: {
       baseOption: {
+        // animation: false,
         tooltip: {
           trigger: 'axis',
         },
@@ -480,22 +481,25 @@ export function usePublic() {
   const findData = (arr1, arr2, key, dot) => {
     const msg = _.unionWith(arr1, arr2, _.isEqual)
     const res = _.unionBy(msg, key)
-    res.forEach((item) => {
-      arr2.forEach((p) => {
+    res.forEach(item => {
+      arr2.forEach(p => {
         if (item[key] == p[key]) {
           item = _.merge(item, p)
         }
       })
     })
-    const newArr = res.filter((item) => item['name'])
-    const result = newArr.filter((item) => item[dot] && item[dot] != undefined)
+    const newArr = res.filter(item => item['name'])
+    const result = newArr.filter(item => item[dot] && item[dot] != undefined)
     return result
   }
 
   const formatGoods = (name: string, datas: any) => {
+    let res
     if (name === '合计') {
-      return datas.reduce((prev, curr) => {
-        const sameDate = prev.find(item => item.jobTime === parseDate(curr.flightDate))
+      res = datas.reduce((prev, curr) => {
+        const sameDate = prev.find(
+          item => item.jobTime === parseDate(curr.flightDate)
+        )
         if (sameDate) {
           sameDate.weight += curr.flightNum
           sameDate.stockNum += curr.stockNum
@@ -503,14 +507,14 @@ export function usePublic() {
           prev.push({
             jobTime: parseDate(curr.flightDate),
             weight: curr.flightNum,
-            stockNum: curr.stockNum
+            stockNum: curr.stockNum,
           })
         }
         return prev
       }, [])
     }
-    const res = datas.filter((item) => item['specialTypeName'] == name)
-    res.forEach((item) => {
+    res = datas.filter(item => item['specialTypeName'] == name)
+    res.forEach(item => {
       item.jobTime = parseDate(item['flightDate'])
       item.weight = item['flightNum']
     })

+ 20 - 23
src/views/dashboard/internationalArrival.vue

@@ -277,10 +277,10 @@
                   <template #dropdown>
                     <el-dropdown-menu>
                       <el-dropdown-item
-                        v-for="item in specialGoodsDatas"
-                        :key="item.specialTypeName"
-                        :command="item.specialTypeName"
-                        >{{ item.specialTypeName }}</el-dropdown-item
+                        v-for="specialTypeName in specialGoodsDatas"
+                        :key="specialTypeName"
+                        :command="specialTypeName"
+                        >{{ specialTypeName }}</el-dropdown-item
                       >
                     </el-dropdown-menu>
                   </template>
@@ -417,9 +417,20 @@ const tallyObj = ref<any>({})
 const flightNums = ref(0)
 const stockNums = ref(0)
 const weightNums = ref<number | string>(0)
-const specialGoods = ref<string>('分类')
-const specialGoodsDatas = ref<any>([])
-const specialGoodsAll = ref<any>([])
+  const specialGoods = ref('全部')
+const specialGoodsDatas = ref([
+  '活',
+  '鲜',
+  '药',
+  '危',
+  '冷',
+  '锂',
+  '快',
+  '动',
+  '贵',
+  '邮',
+  '全部',
+])
 const weightType = ref('进港')
 const today = parseTime(Date.now(), '{y}-{m}-{d}')
 const sevenDaysAgo = parseTime(
@@ -550,9 +561,6 @@ const pubFunc = (listValues, target, type?) => {
 // 特货分类统计-选取下拉数据
 const handleCommand = (command: string) => {
   specialGoods.value = command
-  const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption)
-  const result = formatGoods(command, specialGoodsAll.value)
-  airlineObj.value = pubFunc(result, newObj)
 }
 
 //获取小时峰值分布
@@ -690,18 +698,7 @@ const airlineFunc = async () => {
   if (listValues && isValue(listValues)) {
     const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption)
     const newDatas = _.cloneDeep(listValues)
-    const nameDatas = _.unionBy(newDatas, 'specialTypeName')
-    // const names: any = [...nameDatas];
-    const names: any = [...nameDatas, { specialTypeName: '合计' }]
-    // specialGoods.value = names[0]["specialTypeName"];
-    specialGoods.value = '合计'
-    specialGoodsDatas.value = names
-    specialGoodsAll.value = listValues
-    const result = formatGoods(
-      // names[0]["specialTypeName"],
-      '合计',
-      specialGoodsAll.value
-    )
+    const result = formatGoods(specialGoods.value, newDatas)
     airlineObj.value = pubFunc(result, newObj)
   }
   loading7.value = false
@@ -741,7 +738,7 @@ useLoop([nodePeakFunc], 'dashboard', [nodeDates])
 useLoop([numbersFunc], 'dashboard')
 useLoop([airlineTrafficFunc], 'dashboard', [airlineTrafficDates])
 useLoop([airlineAbnormalFunc], 'dashboard')
-useLoop([airlineFunc], 'dashboard', [airlineDates])
+useLoop([airlineFunc], 'dashboard', [airlineDates, specialGoods])
 useLoop([tallyWeightFunc], 'dashboard', [tallyDates, weightType])
 </script>
 

+ 35 - 32
src/views/dashboard/internationalDeparture.vue

@@ -281,10 +281,10 @@
                   <template #dropdown>
                     <el-dropdown-menu>
                       <el-dropdown-item
-                        v-for="item in specialGoodsDatas"
-                        :key="item.specialTypeName"
-                        :command="item.specialTypeName"
-                        >{{ item.specialTypeName }}</el-dropdown-item
+                        v-for="specialTypeName in specialGoodsDatas"
+                        :key="specialTypeName"
+                        :command="specialTypeName"
+                        >{{ specialTypeName }}</el-dropdown-item
                       >
                     </el-dropdown-menu>
                   </template>
@@ -403,9 +403,20 @@ const airlineObj = ref<any>({})
 const pickingObj = ref<any>({})
 const flightNums = ref(0)
 const stockNums = ref(0)
-const specialGoods = ref<string>('分类')
-const specialGoodsDatas = ref<any>([])
-const specialGoodsAll = ref<any>([])
+const specialGoods = ref('全部')
+const specialGoodsDatas = ref([
+  '活',
+  '鲜',
+  '药',
+  '危',
+  '冷',
+  '锂',
+  '快',
+  '动',
+  '贵',
+  '邮',
+  '全部',
+])
 const weightNums = ref<number | string>(0)
 const today = parseTime(Date.now(), '{y}-{m}-{d}')
 const sevenDaysAgo = parseTime(
@@ -536,9 +547,6 @@ const pubFunc = (listValues, target, type?) => {
 // 特货分类统计-选取下拉数据
 const handleCommand = (command: string) => {
   specialGoods.value = command
-  const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption)
-  const result = formatGoods(command, specialGoodsAll.value)
-  airlineObj.value = pubFunc(result, newObj)
 }
 
 //获取小时峰值分布
@@ -562,10 +570,13 @@ const waybillTrendFunc = async () => {
   if (listValues && isValue(listValues)) {
     const dealedList = listValues.reduce((preList, currentValue) => {
       if (typeof currentValue.jobTime === 'string') {
-        return [...preList, {
-          ...currentValue,
-          jobTime: parseDate(currentValue.jobTime)
-        }]
+        return [
+          ...preList,
+          {
+            ...currentValue,
+            jobTime: parseDate(currentValue.jobTime),
+          },
+        ]
       }
       return preList
     }, [])
@@ -677,18 +688,7 @@ const airlineFunc = async () => {
   if (listValues && isValue(listValues)) {
     const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption)
     const newDatas = _.cloneDeep(listValues)
-    const nameDatas = _.unionBy(newDatas, 'specialTypeName')
-    // const names: any = [...nameDatas];
-    const names: any = [...nameDatas, { specialTypeName: '合计' }]
-    // specialGoods.value = names[0]["specialTypeName"];
-    specialGoods.value = '合计'
-    specialGoodsDatas.value = names
-    specialGoodsAll.value = listValues
-    const result = formatGoods(
-      // names[0]["specialTypeName"],
-      '合计',
-      specialGoodsAll.value
-    )
+    const result = formatGoods(specialGoods.value, newDatas)
     airlineObj.value = pubFunc(result, newObj)
   }
   loading7.value = false
@@ -707,11 +707,14 @@ const pickingFuncs = async () => {
     const newObj: any = _.cloneDeep(airlineAbnormalBaggage.option.baseOption)
     const dealedList = listValues.reduce((preList, currentValue) => {
       if (typeof currentValue.flightDate === 'string') {
-        return [...preList, {
-          ...currentValue,
-          jobTime: parseDate(currentValue.flightDate),
-          weight: currentValue.flightNum
-        }]
+        return [
+          ...preList,
+          {
+            ...currentValue,
+            jobTime: parseDate(currentValue.flightDate),
+            weight: currentValue.flightNum,
+          },
+        ]
       }
       return preList
     }, [])
@@ -726,7 +729,7 @@ useLoop([nodePeakFunc], 'dashboard', [nodeDates])
 useLoop([numbersFunc], 'dashboard')
 useLoop([airlineTrafficFunc], 'dashboard', [airlineTrafficDates])
 useLoop([airlineAbnormalFunc], 'dashboard')
-useLoop([airlineFunc], 'dashboard', [airlineDates])
+useLoop([airlineFunc], 'dashboard', [airlineDates, specialGoods])
 useLoop([pickingFuncs], 'dashboard', [pickingDates])
 </script>