فهرست منبع

新增唛头列表

zyouan 4 هفته پیش
والد
کامیت
2863d67629
5فایلهای تغییر یافته به همراه295 افزوده شده و 23 حذف شده
  1. 9 0
      src/api/manage.js
  2. 13 4
      src/config/router.config.js
  3. 236 0
      src/views/list/MemberList.vue
  4. 19 12
      src/views/list/PackageList.vue
  5. 18 7
      src/views/list/TableList.vue

+ 9 - 0
src/api/manage.js

@@ -3,6 +3,7 @@ import request from '@/utils/request'
 
 const api = {
   packageList: 'api/admin/logistics/package/list',
+  memberList: 'api/admin/logistics/package/memberList',
   detail: 'api/admin/logistics/order/detail',
   packComplete: 'api/admin/logistics/order/packComplete',
   complete: 'api/admin/logistics/order/complete',
@@ -61,6 +62,14 @@ export function packageList (parameter) {
   })
 }
 
+export function memberList (parameter) {
+  return request({
+    url: api.memberList,
+    method: 'post',
+    params: parameter
+  })
+}
+
 // 打包完成
 export function packComplete (parameter) {
   return request({

+ 13 - 4
src/config/router.config.js

@@ -15,19 +15,28 @@ export const asyncRouterMap = [
     meta: { title: '物流' },
     redirect: '/manager/list/table-list',
     children: [
+      {
+        path: '/list/member-list/:pageNo([1-9]\\d*)?',
+        name: 'logistics_memberList',
+        hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu
+        component: () => import('@/views/list/MemberList'),
+        meta: { title: '唛头列表', keepAlive: true }
+      },
       {
         path: '/manager/list/table-list/:pageNo([1-9]\\d*)?',
-        name: 'TableListWrapper',
+        name: 'logistics_orderList',
         hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu
         component: () => import('@/views/list/TableList'),
-        meta: { title: '订单列表', keepAlive: true }
+        meta: { title: '订单列表', keepAlive: true },
+        props: true
       },
       {
         path: '/list/package-list/:pageNo([1-9]\\d*)?',
-        name: 'PackageListWrapper',
+        name: 'logistics_packageList',
         hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu
         component: () => import('@/views/list/PackageList'),
-        meta: { title: '包裹列表', keepAlive: true }
+        meta: { title: '包裹列表', keepAlive: true },
+        props: true
       }
       // dashboard
       // {

+ 236 - 0
src/views/list/MemberList.vue

@@ -0,0 +1,236 @@
+<template>
+  <page-header-wrapper>
+    <a-card :bordered="false">
+      <div class="table-page-search-wrapper">
+        <a-form layout="inline">
+          <a-row :gutter="48">
+            <a-col :md="8" :sm="24">
+              <a-form-item label="唛头">
+                <a-input v-model="queryParam.member_id" placeholder="请输入唛头"/>
+              </a-form-item>
+            </a-col>
+            <a-col :md="!advanced && 8 || 24" :sm="24">
+              <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
+                <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
+                <a-button style="margin-left: 8px" @click="() => { this.queryParam = {}; this.$refs.table.refresh(true) }">重置</a-button>
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+      <s-table
+        ref="table"
+        size="default"
+        rowKey="id"
+        :columns="columns"
+        :data="loadData"
+        showPagination="auto"
+      >
+        <template slot="to_storage_count" slot-scope="text, record">
+          <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id, report_status: 1 } }">{{ text }}</router-link>
+        </template>
+        <template slot="transit_count" slot-scope="text, record">
+          <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id, report_status: 2 } }">{{ text }}</router-link>
+        </template>
+        <template slot="to_claim_count" slot-scope="text, record">
+          <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id, report_status: 3 } }">{{ text }}</router-link>
+        </template>
+        <template slot="storage_count" slot-scope="text, record">
+          <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id, report_status: 5 } }">{{ text }}</router-link>
+        </template>
+        <template slot="packing_count" slot-scope="text, record">
+          <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id, report_status: 6 } }">{{ text }}</router-link>
+        </template>
+        <template slot="wait_delivery_count" slot-scope="text, record">
+          <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id, report_status: 7 } }">{{ text }}</router-link>
+        </template>
+        <template slot="delivered_count" slot-scope="text, record">
+          <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id, report_status: 8 } }">{{ text }}</router-link>
+        </template>
+        <template slot="completed_count" slot-scope="text, record">
+          <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id, report_status: 9 } }">{{ text }}</router-link>
+        </template>
+        <template slot="cancel_count" slot-scope="text, record">
+          <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id, report_status: 4 } }">{{ text }}</router-link>
+        </template>
+        <span slot="action" slot-scope="text, record">
+          <template>
+            <router-link :to="{ name: 'logistics_orderList', query: { member_id: record.member_id } }">订单列表</router-link><br/><br/>
+            <router-link :to="{ name: 'logistics_packageList', query: { member_id: record.member_id } }">包裹列表</router-link>
+          </template>
+        </span>
+      </s-table>
+    </a-card>
+  </page-header-wrapper>
+</template>
+
+<script>
+import moment from 'moment'
+import { STable, Ellipsis } from '@/components'
+import { memberList } from '@/api/manage'
+
+import StepByStepModal from './modules/StepByStepModal'
+import CreateForm from './modules/CreateForm'
+import deliveryForm from './modules/deliveryForm'
+import detailForm from './modules/detailForm'
+
+const columns = [
+  {
+    title: '唛头',
+    dataIndex: 'member_id'
+  },
+  {
+    title: '(包裹)总数量',
+    dataIndex: 'count'
+  },
+  {
+    title: '(包裹)待入库',
+    dataIndex: 'to_storage_count',
+    scopedSlots: { customRender: 'to_storage_count' }
+  },
+  {
+    title: '(包裹)运输中',
+    dataIndex: 'transit_count',
+    scopedSlots: { customRender: 'transit_count' }
+  },
+  {
+    title: '(包裹)待认领',
+    dataIndex: 'to_claim_count',
+    scopedSlots: { customRender: 'to_claim_count' }
+  },
+  {
+    title: '(包裹)已入库',
+    dataIndex: 'storage_count',
+    scopedSlots: { customRender: 'storage_count' }
+  },
+  {
+    title: '(包裹)申请打包',
+    dataIndex: 'packing_count',
+    scopedSlots: { customRender: 'packing_count' }
+  },
+  {
+    title: '(包裹)待发货',
+    dataIndex: 'wait_delivery_count',
+    scopedSlots: { customRender: 'wait_delivery_count' }
+  },
+
+  {
+    title: '(包裹)已发货',
+    dataIndex: 'delivered_count',
+    scopedSlots: { customRender: 'delivered_count' }
+  },
+  {
+    title: '(包裹)已完成',
+    dataIndex: 'completed_count',
+    scopedSlots: { customRender: 'completed_count' }
+  },
+  {
+    title: '(包裹)取消',
+    dataIndex: 'cancel_count',
+    scopedSlots: { customRender: 'cancel_count' }
+  },
+  {
+    title: '操作',
+    dataIndex: 'action',
+    width: '150px',
+    scopedSlots: { customRender: 'action' }
+  }
+]
+
+export default {
+  name: 'TableList',
+  components: {
+    STable,
+    Ellipsis,
+    CreateForm,
+    StepByStepModal,
+    deliveryForm,
+    detailForm
+  },
+  data () {
+    try {
+      console.log('TableList - initializing data')
+      this.columns = columns
+      return {
+        visibleDetail: false,
+        // create model
+        visibleDelivery: false,
+        visible: false,
+        confirmLoading: false,
+        mdl: null,
+        // 高级搜索 展开/关闭
+        advanced: false,
+        // 查询参数
+        queryParam: {},
+        // 加载数据方法 必须为 Promise 对象
+        loadData: parameter => {
+          console.log('TableList - loadData called with params:', parameter)
+          const requestParameters = Object.assign({}, parameter, this.queryParam)
+          // Transform parameter names
+          const transformedParams = {
+            ...requestParameters,
+            page: requestParameters.pageNo,
+            page_size: requestParameters.pageSize,
+            report_status: requestParameters.status ? requestParameters.status : '',
+            tracking_no: requestParameters.id
+          }
+          // Remove original parameters
+          delete transformedParams.pageNo
+          delete transformedParams.pageSize
+          console.log('TableList - loadData request parameters:', transformedParams)
+          return memberList(transformedParams)
+            .then(res => {
+              console.log('TableList - loadData response:', res)
+              if (!res || !res.data || !res.data.list) {
+                console.error('TableList - loadData invalid response:', res)
+                return {
+                  data: [],
+                  pageSize: parameter.pageSize,
+                  pageNo: parameter.pageNo,
+                  totalCount: 0
+                }
+              }
+              return {
+                data: res.data.list,
+                pageSize: parameter.pageSize,
+                pageNo: parameter.pageNo,
+                totalCount: res.data.count || res.data.list.length
+              }
+            })
+            .catch(error => {
+              console.error('TableList - loadData error:', error)
+              return {
+                data: [],
+                pageSize: parameter.pageSize,
+                pageNo: parameter.pageNo,
+                totalCount: 0
+              }
+            })
+        }
+      }
+    } catch (error) {
+      console.error('TableList - data initialization error:', error)
+      return {}
+    }
+  },
+  computed: {
+  },
+  methods: {
+    handleSub (record) {
+      this.visibleDetail = true
+      this.mdl = { ...record }
+    },
+    toggleAdvanced () {
+      this.advanced = !this.advanced
+    },
+    resetSearchForm () {
+      this.queryParam = {
+        date: moment(new Date())
+      }
+    },
+    handleLinkClick (record) {
+      console.log('TableList - handleLinkClick called with record:', record)
+    }
+  }
+}
+</script>

+ 19 - 12
src/views/list/PackageList.vue

@@ -6,18 +6,18 @@
           <a-row :gutter="48">
             <a-col :md="8" :sm="24">
               <a-form-item label="物流单号">
-                <a-input v-model="queryParam.id" placeholder="请输入"/>
+                <a-input v-model="queryParam.tracking_no" placeholder="请输入"/>
               </a-form-item>
             </a-col>
             <a-col :md="8" :sm="24">
               <a-form-item label="唛头">
-                <a-input v-model="queryParam.storage_id" placeholder="请输入唛头"/>
+                <a-input v-model="queryParam.member_id" placeholder="请输入唛头"/>
               </a-form-item>
             </a-col>
             <a-col :md="8" :sm="24">
               <a-form-item label="报备状态">
                 <!-- 5拆包中 10 未付款  20待发货  29已发货  30已完成 -->
-                <a-select v-model="queryParam.status" placeholder="请选择" default-value="0">
+                <a-select v-model="queryParam.report_status" placeholder="请选择" default-value="0">
                   <a-select-option value="0">全部</a-select-option>
                   <a-select-option value="1">待入库</a-select-option>
                   <a-select-option value="2">运输中</a-select-option>
@@ -34,7 +34,7 @@
             <a-col :md="!advanced && 8 || 24" :sm="24">
               <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
                 <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
-                <a-button style="margin-left: 8px" @click="() => { this.queryParam = {}; this.$refs.table.refresh(true) }">重置</a-button>
+                <a-button style="margin-left: 8px" @click="resetSearchForm()">重置</a-button>
               </span>
             </a-col>
           </a-row>
@@ -113,7 +113,6 @@
 </template>
 
 <script>
-import moment from 'moment'
 import { STable, Ellipsis } from '@/components'
 import { packageList, packageWarehousing, delivery, complete, packComplete } from '@/api/manage'
 
@@ -121,6 +120,7 @@ import StepByStepModal from './modules/StepByStepModal'
 import CreateForm from './modules/CreateForm'
 import deliveryForm from './modules/deliveryForm'
 import detailForm from './modules/detailForm'
+import { ref } from 'vue'
 
 const columns = [
   {
@@ -215,7 +215,11 @@ const statusMap = {
     text: '未付款'
   }
 }
-
+const queryParam = ref({
+  tracking_no: '',
+  member_id: '',
+  report_status: null
+})
 export default {
   name: 'TableList',
   components: {
@@ -230,6 +234,9 @@ export default {
     try {
       console.log('TableList - initializing data')
       this.columns = columns
+      this.queryParam = queryParam.value
+      this.queryParam.member_id = this.$route.query.member_id || null
+      this.queryParam.report_status = this.$route.query.report_status || null
       return {
         visibleDetail: false,
         // create model
@@ -240,7 +247,6 @@ export default {
         // 高级搜索 展开/关闭
         advanced: false,
         // 查询参数
-        queryParam: {},
         // 加载数据方法 必须为 Promise 对象
         loadData: parameter => {
           console.log('TableList - loadData called with params:', parameter)
@@ -250,8 +256,8 @@ export default {
             ...requestParameters,
             page: requestParameters.pageNo,
             page_size: requestParameters.pageSize,
-            report_status: requestParameters.status ? requestParameters.status : '',
-            tracking_no: requestParameters.id
+            report_status: requestParameters.report_status ? requestParameters.report_status : '',
+            tracking_no: requestParameters.tracking_no ? requestParameters.tracking_no : ''
           }
           // Remove original parameters
           delete transformedParams.pageNo
@@ -427,9 +433,10 @@ export default {
       this.advanced = !this.advanced
     },
     resetSearchForm () {
-      this.queryParam = {
-        date: moment(new Date())
-      }
+      this.queryParam.tracking_no = ''
+      this.queryParam.member_id = null
+      this.queryParam.report_status = null
+      this.$refs.table.refresh(true)
     }
   }
 }

+ 18 - 7
src/views/list/TableList.vue

@@ -6,7 +6,7 @@
           <a-row :gutter="48">
             <a-col :md="8" :sm="24">
               <a-form-item label="订单编号">
-                <a-input v-model="queryParam.id" placeholder="请输入"/>
+                <a-input v-model="queryParam.order_sn" placeholder="请输入"/>
               </a-form-item>
             </a-col>
             <a-col :md="8" :sm="24">
@@ -40,7 +40,7 @@
             <a-col :md="!advanced && 8 || 24" :sm="24">
               <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
                 <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
-                <a-button style="margin-left: 8px" @click="() => { this.queryParam = {}; this.$refs.table.refresh(true) }">重置</a-button>
+                <a-button style="margin-left: 8px" @click="resetSearchForm()">重置</a-button>
               </span>
             </a-col>
           </a-row>
@@ -129,7 +129,6 @@
 </template>
 
 <script>
-import moment from 'moment'
 import { STable, Ellipsis } from '@/components'
 import { getOrderList, packageWarehousing, delivery, complete, packComplete } from '@/api/manage'
 
@@ -137,6 +136,7 @@ import StepByStepModal from './modules/StepByStepModal'
 import CreateForm from './modules/CreateForm'
 import deliveryForm from './modules/deliveryForm'
 import detailForm from './modules/detailForm'
+import { ref } from 'vue'
 
 const columns = [
   {
@@ -230,6 +230,13 @@ const statusMap = {
   }
 }
 
+const queryParam = ref({
+  order_sn: '',
+  tracking_no: '',
+  new_tracking_no: '',
+  member_id: '',
+  status: null
+})
 export default {
   name: 'TableList',
   components: {
@@ -244,6 +251,8 @@ export default {
     try {
       console.log('TableList - initializing data')
       this.columns = columns
+      this.queryParam = queryParam.value
+      this.queryParam.member_id = this.$route.query.member_id || null
       return {
         visibleDetail: false,
         // create model
@@ -254,7 +263,6 @@ export default {
         // 高级搜索 展开/关闭
         advanced: false,
         // 查询参数
-        queryParam: {},
         // 加载数据方法 必须为 Promise 对象
         loadData: parameter => {
           console.log('TableList - loadData called with params:', parameter)
@@ -438,9 +446,12 @@ export default {
       this.advanced = !this.advanced
     },
     resetSearchForm () {
-      this.queryParam = {
-        date: moment(new Date())
-      }
+      this.queryParam.order_sn = ''
+      this.queryParam.tracking_no = ''
+      this.queryParam.new_tracking_no = ''
+      this.queryParam.member_id = ''
+      this.queryParam.status = null
+      this.$refs.table.refresh()
     }
   }
 }