Pārlūkot izejas kodu

Merge branch 'dev_g' of United_Software/k_online_ui into dev

Jack Zhou 1 gadu atpakaļ
vecāks
revīzija
ad95ae13d0

+ 14 - 2
src/components/DateRange/src/DateRange.vue

@@ -4,8 +4,10 @@ import { ref, computed, onMounted, onBeforeMount } from 'vue'
 import IconDropDown from '@/components/IconDropDown'
 import CalendarDate from './components/CalendarDate.vue'
 import moment from 'moment'
+import dayjs from 'dayjs'
 
 onMounted(() => {
+  defaultDate()
   emitter.on('clearTag', (tag: any) => {
     if (tag.includes('ETD')) {
       clearDateStart()
@@ -46,7 +48,17 @@ const deleteType = (i: any) => {
   DateType.value = ''
 }
 let daterangeObj: any = {}
-const DateStart = ref()
+const DateStart = ref([dayjs().subtract(1, 'month').startOf('month'), dayjs()])
+// 查询默认日期
+const defaultDate = () => {
+  daterangeObj.ETD =
+    DateStart.value[0].format('MMM/DD/YYYY') + ' To ' + DateStart.value[0].format('MMM/DD/YYYY')
+  daterangeObj2.ETD = [
+    DateStart.value[0].format('MM/DD/YYYY'),
+    DateStart.value[1].format('MM/DD/YYYY')
+  ]
+  emit('defaultDate', daterangeObj, daterangeObj2)
+}
 const DateEnd = ref()
 const DateCreation = ref()
 const daterangedata = ref()
@@ -58,7 +70,7 @@ const DateRangeChange = (val: any) => {
   daterangeObj[val.title] = date1 + ' To ' + date2
   daterangeObj2[val.title] = val
 }
-const emit = defineEmits(['DateRangeSearch', 'clearDaterangeTags'])
+const emit = defineEmits(['DateRangeSearch', 'clearDaterangeTags', 'defaultDate'])
 const DateRangeSearch = () => {
   emit('DateRangeSearch', daterangeObj, daterangeObj2)
   Date_visible.value = false

+ 13 - 3
src/components/MoreFilters/src/MoreFilters.vue

@@ -10,18 +10,28 @@ onMounted(() => {
   if (sessionStorage.getItem('reportList') != null && sessionStorage.getItem('reportList') != '') {
     const reportlist = JSON.parse(sessionStorage.getItem('reportList') as string) || {}
     const data = JSON.parse(sessionStorage.getItem('tagsList') as string) || {}
-    if (reportlist._city_name != '') {
+    if (
+      reportlist._city_name != '' &&
+      (reportlist._reportStationType == 'shippr_uncode' ||
+        reportlist._reportStationType == 'consignee_uncode')
+    ) {
       if (data.title.includes('Origin')) {
         InputForm.value.palces.Origin.push(reportlist._city_name)
         MoreFiltersObj.Origin = reportlist._city_name
         MoreFiltersObj2.Origin = InputForm.value.palces.Origin
+        setTimeout(() => {
+          sessionStorage.removeItem('reportList')
+          sessionStorage.removeItem('tagsList')
+        }, 1000)
       } else {
         InputForm.value.palces.Destination.push(reportlist._city_name)
         MoreFiltersObj.Destination = reportlist._city_name
         MoreFiltersObj2.Destination = InputForm.value.palces.Origin
+        setTimeout(() => {
+          sessionStorage.removeItem('reportList')
+          sessionStorage.removeItem('tagsList')
+        }, 1000)
       }
-      sessionStorage.removeItem('reportList')
-      sessionStorage.removeItem('tagsList')
     }
   }
   emitter.on('clearTag', (tag: any) => {

+ 1 - 0
src/components/ScoringGrade/src/ScoringGrade.vue

@@ -405,6 +405,7 @@ const mouseout = (item: any) => {
   right: 0 !important;
   height: 0;
   background: transparent;
+  z-index: 2013 !important;
   border: none;
 }
 .el-dialog.scoreDialog {

+ 11 - 6
src/components/TransportMode/src/TransportMode.vue

@@ -27,13 +27,14 @@ onMounted(() => {
       clearList()
     }
   })
+  defaultTransport()
 })
 
 onBeforeMount(() => {
   emitter.off('clearTag')
 })
 
-const checkAll = ref(false)
+const checkAll = ref(true)
 const dropdown1 = ref<DropdownInstance>()
 let checkedCount: any[] = []
 const TotalAll = computed(() => {
@@ -84,19 +85,20 @@ const clearList = () => {
   checkedCount = []
   emit('clearTransportTags')
 }
-const emit = defineEmits(['TransportSearch', 'clearTransportTags'])
+const emit = defineEmits(['TransportSearch', 'clearTransportTags', 'defaultTransport'])
 const changedata = ref()
 //点击搜索
+const TransportData = {
+  title: 'Transport Mode',
+  data: 'All'
+}
 const TransportSearch = (visible: any) => {
   if (checkedCount.length == TransportList.value.length) {
     changedata.value = 'All'
   } else {
     changedata.value = checkedCount.join(', ')
   }
-  const TransportData = {
-    title: 'Transport Mode',
-    data: changedata.value
-  }
+  TransportData.data = changedata.value
   emit('TransportSearch', TransportData)
   if (!dropdown1.value) return
   if (visible) {
@@ -105,6 +107,9 @@ const TransportSearch = (visible: any) => {
     dropdown1.value.handleOpen()
   }
 }
+const defaultTransport = () => {
+  emit('defaultTransport', TransportData)
+}
 </script>
 <template>
   <div class="select">

+ 29 - 2
src/views/Booking/src/BookingView.vue

@@ -78,6 +78,16 @@ const TransportSearch = (val: any) => {
   FiltersSeach('transport_mode', val.data)
   renderTagsData()
 }
+// defaultTransport
+const defaultTransport = (val: any) => {
+  filterData.transportData = []
+  if (val.data) {
+    let str = `${val.title}:${val.data}`
+    filterData.transportData.push(str)
+  }
+  searchTableQeury.transport_mode = val.data
+  renderTagsData()
+}
 //DateRangeSearch
 const DateRangeSearch = (val: any, value: any) => {
   filterData.daterangeData = []
@@ -226,9 +236,24 @@ const getbookingdata = () => {
       }
     })
 }
-onMounted(() => {
+const defaultDate = (val: any, value: any) => {
+  filterData.daterangeData = []
+  for (const key in val) {
+    let str = `${key}:${val[key]}`
+    filterData.daterangeData.push(str)
+  }
+  if (Object.keys(value).length == 0) {
+    delete searchTableQeury.f_etd_start
+    delete searchTableQeury.f_etd_end
+  }
+  for (const key in value) {
+    searchTableQeury.f_etd_start = value[key][0]
+    searchTableQeury.f_etd_end = value[key][1]
+  }
+  BookingTable_ref.value.searchTableData(searchTableQeury)
   getbookingdata()
-})
+  renderTagsData()
+}
 const changeTag = (val: any) => {
   searchTableQeury.filterTag = val
   BookingTable_ref.value.searchTableData(searchTableQeury)
@@ -265,11 +290,13 @@ const SearchInput = () => {
       <TransportMode
         :TransportListItem="TransportListItem"
         @TransportSearch="TransportSearch"
+        @defaultTransport="defaultTransport"
         @clearTransportTags="clearTransportTags"
       ></TransportMode>
       <DateRange
         @DateRangeSearch="DateRangeSearch"
         @clearDaterangeTags="clearDaterangeTags"
+        @defaultDate="defaultDate"
       ></DateRange>
       <MoreFilters
         :isShipment="false"

+ 40 - 18
src/views/Dashboard/src/DashboardView.vue

@@ -351,6 +351,21 @@ const SaveLayout = () => {
 //Save Filters
 const SaveFilters = () => {
   SaveVisible.value = false
+  Management.value.forEach((item: any, index: any) => {
+    item.id = index + 1
+  })
+  $api
+    .SaveLayout({
+      management: Management.value,
+      ...dashboardObj
+    })
+    .then((res: any) => {
+      if (res.code == 200) {
+        ElMessageBox.alert(res.data.msg, {
+          confirmButtonText: 'OK'
+        })
+      }
+    })
 }
 //输入框失焦时查询数据
 const SearchCustomer = () => {
@@ -394,7 +409,7 @@ const ClickParams = (val: any) => {
           sessionStorage.setItem('reportList', JSON.stringify(reportList))
           let obj: any = {}
           obj.title = 'ETD to ETA (Days)'
-          obj.data = pie_chart_ETD.value[0].paramsdata.name
+          obj.name = pie_chart_ETD.value[0].paramsdata.name
           sessionStorage.setItem('tagsList', JSON.stringify(obj))
           router.push({
             path: '/tracking'
@@ -416,7 +431,7 @@ const ClickParams = (val: any) => {
           sessionStorage.setItem('reportList', JSON.stringify(reportList))
           let obj: any = {}
           obj.title = 'Pending Arrival'
-          obj.data = pie_chart_pending_arrival.value[0].paramsdata.name
+          obj.name = pie_chart_pending_arrival.value[0].paramsdata.name
           sessionStorage.setItem('tagsList', JSON.stringify(obj))
           router.push({
             path: '/tracking'
@@ -438,7 +453,7 @@ const ClickParams = (val: any) => {
           sessionStorage.setItem('reportList', JSON.stringify(reportList))
           let obj: any = {}
           obj.title = 'Pending Departure'
-          obj.data = pie_chart_pending_departure.value[0].paramsdata.name
+          obj.name = pie_chart_pending_departure.value[0].paramsdata.name
           sessionStorage.setItem('tagsList', JSON.stringify(obj))
           router.push({
             path: '/tracking'
@@ -460,7 +475,7 @@ const ClickParams = (val: any) => {
           sessionStorage.setItem('reportList', JSON.stringify(reportList))
           let obj: any = {}
           obj.title = 'KPI Departure'
-          obj.data = pie_chart_kpi_departure.value[0].paramsdata.name
+          obj.name = pie_chart_kpi_departure.value[0].paramsdata.name
           sessionStorage.setItem('tagsList', JSON.stringify(obj))
           router.push({
             path: '/tracking'
@@ -482,7 +497,7 @@ const ClickParams = (val: any) => {
           sessionStorage.setItem('reportList', JSON.stringify(reportList))
           let obj: any = {}
           obj.title = 'KPI Arrival'
-          obj.data = pie_chart_kpi_arrival.value[0].paramsdata.name
+          obj.name = pie_chart_kpi_arrival.value[0].paramsdata.name
           sessionStorage.setItem('tagsList', JSON.stringify(obj))
           router.push({
             path: '/tracking'
@@ -508,6 +523,7 @@ const ClickParams = (val: any) => {
           sessionStorage.setItem('reportList', JSON.stringify(reportList))
           let obj: any = {}
           obj.title = 'Top 10 Origin'
+          obj.name = seller_chart_top10_origin.value[0].paramsdata
           obj.data = seller_chart_top10_origin.value[0].paramscityname
           sessionStorage.setItem('tagsList', JSON.stringify(obj))
           router.push({
@@ -534,6 +550,7 @@ const ClickParams = (val: any) => {
           sessionStorage.setItem('reportList', JSON.stringify(reportList))
           let obj: any = {}
           obj.title = 'Top 10 Destination'
+          obj.name = seller_chart_top10_destination.value[0].paramsdata
           obj.data = seller_chart_top10_destination.value[0].paramscityname
           sessionStorage.setItem('tagsList', JSON.stringify(obj))
           router.push({
@@ -560,7 +577,7 @@ const ClickParams = (val: any) => {
           sessionStorage.setItem('reportList', JSON.stringify(reportList))
           let obj: any = {}
           obj.title = 'CO2e Emission by Origin (Top 10)'
-          obj.data = seller_chart_CO2_origin.value[0].paramsdata.name
+          obj.name = seller_chart_CO2_origin.value[0].paramsdata.name
           sessionStorage.setItem('tagsList', JSON.stringify(obj))
           router.push({
             path: '/tracking'
@@ -586,7 +603,7 @@ const ClickParams = (val: any) => {
           sessionStorage.setItem('reportList', JSON.stringify(reportList))
           let obj: any = {}
           obj.title = 'CO2e Emission by Destination (Top 10)'
-          obj.data = seller_chart_CO2_destination.value[0].paramsdata.name
+          obj.name = seller_chart_CO2_destination.value[0].paramsdata.name
           sessionStorage.setItem('tagsList', JSON.stringify(obj))
           router.push({
             path: '/tracking'
@@ -638,13 +655,12 @@ const ClickParams = (val: any) => {
             </div>
           </div>
         </el-popover>
-        <el-popover width="142" :visible="SaveVisible">
+        <el-popover
+          :visible="SaveVisible"
+          :popper-style="{ display: 'flex', flexDirection: 'column', alignItems: 'center' }"
+        >
           <template #reference>
-            <el-button
-              class="el-button--default"
-              @click="SaveVisible = !SaveVisible"
-              @blur="SaveVisible = false"
-            >
+            <el-button class="el-button--default" @click="SaveVisible = !SaveVisible">
               <span class="iconfont_icon">
                 <svg class="iconfont" aria-hidden="true">
                   <use xlink:href="#icon-icon_save_b"></use>
@@ -913,7 +929,7 @@ const ClickParams = (val: any) => {
                       </span>
                     </el-tooltip>
                   </div>
-                  <div style="margin-right: 50px">
+                  <div style="margin-right: 50px; display: flex; align-items: center">
                     <span style="font-weight: 400; font-size: 14px; margin-right: 4px">Type</span>
                     <el-select
                       v-model="value"
@@ -948,8 +964,13 @@ const ClickParams = (val: any) => {
           >
             <VBox_Dashboard @changeCancel="changeCancel(item.id)" style="width: 100%">
               <template #header>
-                <div class="Title_flex">
-                  <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleTabClick">
+                <div class="Title_flex" style="height: 48px">
+                  <el-tabs
+                    v-model="activeName"
+                    class="demo-tabs"
+                    style="height: 48px"
+                    @tab-click="handleTabClick"
+                  >
                     <el-tab-pane :label="item.title1" name="first"></el-tab-pane>
                     <el-tab-pane :label="item.title2" name="second"></el-tab-pane>
                   </el-tabs>
@@ -1088,7 +1109,7 @@ const ClickParams = (val: any) => {
 }
 .Management {
   max-height: 800px;
-  overflow-y: scroll;
+  overflow-y: auto;
 }
 .title {
   font-weight: 700;
@@ -1142,7 +1163,7 @@ const ClickParams = (val: any) => {
   height: 40px;
   font-size: var(--font-size-3);
   width: 126px;
-  margin: 8px 0;
+  margin: 4px 0;
   cursor: pointer;
 }
 .iconfont_icon_save {
@@ -1299,5 +1320,6 @@ const ClickParams = (val: any) => {
 }
 :deep(.el-tabs__header) {
   height: 48px;
+  margin-bottom: 0;
 }
 </style>

+ 3 - 12
src/views/Dashboard/src/components/BarChart.vue

@@ -63,18 +63,9 @@ const initOption = reactive({
     top: 9.5,
     textStyle: {
       color: '#2B2F36',
-      rich: {
-        a: {
-          fontWeight: '700',
-          fontFamily: 'Lato-Light',
-          fontSize: '14px'
-        },
-        b: {
-          fontWeight: '400',
-          fontFamily: 'Lato-Light',
-          fontSize: '12px'
-        }
-      }
+      fontWeight: '700',
+      fontFamily: 'Lato-Light',
+      fontSize: '14px'
     }
   },
   // 间距

+ 1 - 1
src/views/Dashboard/src/components/PieChart.vue

@@ -115,7 +115,7 @@ const initOption: any = reactive({
           fontFamily: 'Lato-Light'
         },
         time: {
-          fontSize: 10,
+          fontSize: '10px',
           fontFamily: 'Lato-Light',
           color: '#999'
         }

+ 0 - 1
src/views/Dashboard/src/components/SellerChart.vue

@@ -170,7 +170,6 @@ const clickParams = () => {
     seller_data.value?.forEach((item: any) => {
       if (item.name == paramsdata.value) {
         paramscityname.value = item.city_name
-        console.log(paramscityname.value)
       }
     })
     emits('ClickParams')

+ 1 - 0
src/views/Layout/src/LayoutView.vue

@@ -1,4 +1,5 @@
 <script lang="ts" setup>
+import { ref, onMounted } from 'vue'
 import Header from './components/Header/HeaderView.vue'
 import Menu from './components/Menu/MenuView.vue'
 import Logo from './images/logo.png'

+ 5 - 1
src/views/Layout/src/components/Menu/MenuView.vue

@@ -106,9 +106,13 @@ const isAllowJump = (path: any) => {
 router.afterEach(() => {
   activeMenu.value = (route.meta?.activeMenu as string) || route.path
 })
-
+const isVisible = ref(false)
+const emits = defineEmits(['changeVisible'])
 // 路由跳转函数
 const changeRouter = (path: any) => {
+  isVisible.value = false
+  emits('changeVisible', isVisible.value)
+  isVisible.value = false
   let toPath = path
   if (path === '/tracking' && !localStorage.getItem('username')) {
     toPath = '/public-tracking'

+ 57 - 8
src/views/Tracking/src/TrackingView.vue

@@ -101,6 +101,21 @@ const TransportSearch = (val: any) => {
   FiltersSeach('transport_mode', val.data)
   renderTagsData()
 }
+// defaultTransport
+const defaultTransport = (val: any) => {
+  if (
+    sessionStorage.getItem('clickParams') === null ||
+    sessionStorage.getItem('clickParams') === ''
+  ) {
+    filterData.transportData = []
+    if (val.data) {
+      let str = `${val.title}:${val.data}`
+      filterData.transportData.push(str)
+    }
+    searchTableQeury.transport_mode = val.data
+    renderTagsData()
+  }
+}
 //DateRangeSearch
 const DateRangeSearch = (val: any, value: any) => {
   filterData.daterangeData = []
@@ -297,6 +312,29 @@ const Gettrackingdata = () => {
       })
   }
 }
+const defaultDate = (val: any, value: any) => {
+  if (
+    sessionStorage.getItem('clickParams') === null ||
+    sessionStorage.getItem('clickParams') === ''
+  ) {
+    filterData.daterangeData = []
+    for (const key in val) {
+      let str = `${key}:${val[key]}`
+      filterData.daterangeData.push(str)
+    }
+    if (Object.keys(value).length == 0) {
+      delete searchTableQeury.etd_start
+      delete searchTableQeury.etd_end
+    }
+    for (const key in value) {
+      searchTableQeury.etd_start = value[key][0]
+      searchTableQeury.etd_end = value[key][1]
+    }
+    TrackingTable_ref.value.searchTableData(searchTableQeury)
+    Gettrackingdata()
+    renderTagsData()
+  }
+}
 onMounted(() => {
   if (
     sessionStorage.getItem('clickParams') != null &&
@@ -305,21 +343,30 @@ onMounted(() => {
     const data = JSON.parse(sessionStorage.getItem('tagsList') as string) || {}
     const reportlist = JSON.parse(sessionStorage.getItem('reportList') as string) || {}
     for (const key in reportlist) {
-      searchTableQeury[key] = reportlist[key]
+      searchTableQeury[key] = [key]
     }
     if (reportlist._city_name == '') {
-      let str = `${data.title}:${data.data}`
+      let str = `${data.title}:${data.name}`
       filterData.dashboardData.push(str)
-    } else if (data.title.includes('Origin')) {
-      let str = `Origin: ${data.data}`
-      filterData.morefiltersData.push(str)
     } else {
-      let str = `Destination: ${data.data}`
-      filterData.morefiltersData.push(str)
+      if (reportlist._reportStationType == 'shippr_uncode' && data.title.includes('Origin')) {
+        let str = `Origin: ${data.data}`
+        filterData.morefiltersData.push(str)
+      } else if (
+        reportlist._reportStationType == 'consignee_uncode' &&
+        data.title.includes('Destination')
+      ) {
+        let str = `Destination: ${data.data}`
+        filterData.morefiltersData.push(str)
+      } else {
+        let str = `${data.title}:${data.name}`
+        filterData.dashboardData.push(str)
+      }
     }
     renderTagsData()
+  } else {
+    Gettrackingdata()
   }
-  Gettrackingdata()
 })
 const changeTag = (val: any) => {
   searchTableQeury.filterTag = val
@@ -357,11 +404,13 @@ const SearchInput = () => {
       <TransportMode
         :TransportListItem="TransportListItem"
         @TransportSearch="TransportSearch"
+        @defaultTransport="defaultTransport"
         @clearTransportTags="clearTransportTags"
       ></TransportMode>
       <DateRange
         @DateRangeSearch="DateRangeSearch"
         @clearDaterangeTags="clearDaterangeTags"
+        @defaultDate="defaultDate"
       ></DateRange>
       <MoreFilters
         :isShipment="true"

+ 1 - 4
src/views/Tracking/src/components/TrackingTable/src/TrackingTable.vue

@@ -92,7 +92,6 @@ const getTableColumns = async (isInit: boolean) => {
 }
 
 const pageInfo = ref({ pageNo: 1, pageSize: 200, total: 0 })
-const TransportListItem = ref()
 const TagsList = ref()
 
 // 获取表格数据
@@ -102,7 +101,6 @@ const getSharedTableData = () => {
   if (trackingData) {
     trackingTable.value.data = trackingData.searchData || []
     pageInfo.value.total = Number(trackingData.rc)
-    TransportListItem.value = trackingData.TransportList
     TagsList.value = trackingData.tagsList
     if (trackingData.canEdiVgm && trackingTable.value.columns.length > 0) {
       const index = trackingTable.value.columns.findIndex((item: any) => item.title === 'Action')
@@ -144,7 +142,6 @@ const getTableData = async (isInit: boolean, isPageChange?: boolean) => {
     const data = JSON.parse(sessionStorage.getItem('clickParams') as string) || {}
     trackingTable.value.data = data.searchData || []
     pageInfo.value.total = Number(data.rc)
-    TransportListItem.value = data.TransportList
     TagsList.value = data.tagsList
     if (data.canEdiVgm && trackingTable.value.columns.length > 0) {
       const index = trackingTable.value.columns.findIndex((item: any) => item.title === 'Action')
@@ -247,7 +244,7 @@ const searchTableData = (data: any) => {
             }
           })
         } else {
-          trackingTable.value.data = res.data.searchData || []
+          trackingTable.value.data = res.data.searchData
           pageInfo.value.total = Number(res.data.rc)
           tableLoading.value = false
         }