Browse Source

fix(25554): 修改确认收货

tangning 3 years ago
parent
commit
9f2ce7732a
3 changed files with 41 additions and 30 deletions
  1. 1 1
      src/locales/lang/zh-CN/modal.ts
  2. 34 24
      src/views/order/list.vue
  3. 6 5
      src/views/scenes/list.vue

+ 1 - 1
src/locales/lang/zh-CN/modal.ts

@@ -1,4 +1,4 @@
 export default {
 export default {
   atLeastOne: '请至少选择一项',
   atLeastOne: '请至少选择一项',
-  onatLeastOne: '请选择一项',
+  onatLeastOne: '仅能请选择一项',
 };
 };

+ 34 - 24
src/views/order/list.vue

@@ -3,14 +3,6 @@
     <BasicTable @register="registerTable" :rowSelection="{ type: 'checkbox' }">
     <BasicTable @register="registerTable" :rowSelection="{ type: 'checkbox' }">
       <template #toolbar>
       <template #toolbar>
         <a-button type="primary" @click="exportExcel"> 导出</a-button>
         <a-button type="primary" @click="exportExcel"> 导出</a-button>
-        <PopConfirmButton
-          title="是否确定收货?"
-          primary
-          color="error"
-          @confirm="handleConfirmReceive"
-        >
-          确定收货</PopConfirmButton
-        >
       </template>
       </template>
       <template #cover="{ record }">
       <template #cover="{ record }">
         <TableImg :size="150" :simpleShow="true" :imgList="[record.cover]" />
         <TableImg :size="150" :simpleShow="true" :imgList="[record.cover]" />
@@ -35,6 +27,7 @@
               icon: 'mdi:truck-delivery',
               icon: 'mdi:truck-delivery',
               label: '发货',
               label: '发货',
               color: 'warning',
               color: 'warning',
+              disabled: record.shippingStatus == 1,
               onClick: sendPackage.bind(null, record),
               onClick: sendPackage.bind(null, record),
             },
             },
             {
             {
@@ -47,6 +40,16 @@
               },
               },
             },
             },
             {
             {
+              icon: 'ic:outline-living',
+              label: '收货',
+              color: 'warning',
+              disabled: record.orderStatus !== 1,
+              popConfirm: {
+                title: '是否确认收货',
+                confirm: handleConfirmReceive.bind(null, record),
+              },
+            },
+            {
               icon: 'mdi:printer-outline',
               icon: 'mdi:printer-outline',
               label: '打印',
               label: '打印',
               color: 'error',
               color: 'error',
@@ -72,12 +75,17 @@
   } from '/@/components/Table';
   } from '/@/components/Table';
   import { useMessage } from '/@/hooks/web/useMessage';
   import { useMessage } from '/@/hooks/web/useMessage';
 
 
-  import { ListApi, BrandListApi, GetOrderInfoApi, exportExcelApi } from '/@/api/order/list';
+  import {
+    ListApi,
+    BrandListApi,
+    GetOrderInfoApi,
+    exportExcelApi,
+    confirmOrder,
+  } from '/@/api/order/list';
   import { useI18n } from '/@/hooks/web/useI18n';
   import { useI18n } from '/@/hooks/web/useI18n';
   // import { useCopyToClipboard } from '/@/hooks/web/useCopyToClipboard';
   // import { useCopyToClipboard } from '/@/hooks/web/useCopyToClipboard';
   import { useGo } from '/@/hooks/web/usePage';
   import { useGo } from '/@/hooks/web/usePage';
   import { Time } from '/@/components/Time';
   import { Time } from '/@/components/Time';
-  import { PopConfirmButton } from '/@/components/Button';
 
 
   import { useModal } from '/@/components/Modal';
   import { useModal } from '/@/components/Modal';
   import ConfirmModal from './confirmModal.vue';
   import ConfirmModal from './confirmModal.vue';
@@ -95,7 +103,6 @@
       TableAction,
       TableAction,
       TableImg,
       TableImg,
       Time,
       Time,
-      PopConfirmButton,
       ConfirmModal,
       ConfirmModal,
       PrintModal,
       PrintModal,
     },
     },
@@ -180,7 +187,7 @@
           slots: { customRender: 'action' },
           slots: { customRender: 'action' },
           fixed: 'right',
           fixed: 'right',
           align: 'center',
           align: 'center',
-          width: 230,
+          width: 280,
         },
         },
       ];
       ];
 
 
@@ -268,11 +275,15 @@
         ],
         ],
       };
       };
 
 
+      const getCheckboxProps = (record: Recordable) => {
+        console.log('record', record);
+        return { disabled: record.type == 2 };
+      };
       const [registerConfirmModal, { openModal: openConfirmModal }] = useModal();
       const [registerConfirmModal, { openModal: openConfirmModal }] = useModal();
 
 
       const [registerPrintModal, { openModal: openPrintModal }] = useModal();
       const [registerPrintModal, { openModal: openPrintModal }] = useModal();
 
 
-      const [registerTable, { getSelectRowKeys, getSelectRows, reload }] = useTable({
+      const [registerTable, { getSelectRows, reload }] = useTable({
         title: '订单列表',
         title: '订单列表',
         api: ListApi,
         api: ListApi,
         columns: columns,
         columns: columns,
@@ -349,20 +360,18 @@
       function sendPackage(record: Recordable) {
       function sendPackage(record: Recordable) {
         openConfirmModal(true, record);
         openConfirmModal(true, record);
       }
       }
-      async function handleConfirmReceive() {
-        const keys = getSelectRowKeys();
-        if (keys.length === 1) {
-          // const { id,brandId} = keys[0]
-          // await confirmOrder({
-          //   id,brandId
-          // })
-        } else {
-          createMessage.info(t('modal.onatLeastOne'));
-          return;
+      async function handleConfirmReceive(record: Recordable) {
+        const { id, brandId } = record;
+        let res = await confirmOrder({
+          id,
+          brandId,
+        });
+        if (res) {
+          reload();
+          createMessage.success('操作成功');
         }
         }
       }
       }
       async function printDetail(record: Recordable) {
       async function printDetail(record: Recordable) {
-        console.log('record', record);
         const orderInfo = await GetOrderInfoApi({
         const orderInfo = await GetOrderInfoApi({
           id: record.id,
           id: record.id,
           brandId: record.brandId,
           brandId: record.brandId,
@@ -407,6 +416,7 @@
         printDetail,
         printDetail,
         registerPrintModal,
         registerPrintModal,
         exportExcel,
         exportExcel,
+        getCheckboxProps,
       };
       };
     },
     },
   });
   });

+ 6 - 5
src/views/scenes/list.vue

@@ -156,7 +156,7 @@
           title: t('common.operation'),
           title: t('common.operation'),
           dataIndex: '',
           dataIndex: '',
           slots: { customRender: 'action' },
           slots: { customRender: 'action' },
-          width: 300,
+          width: 330,
           fixed: 'right',
           fixed: 'right',
         },
         },
       ];
       ];
@@ -260,12 +260,13 @@
         }
         }
       }
       }
       async function generateDefaultLiveRoom(record: Recordable) {
       async function generateDefaultLiveRoom(record: Recordable) {
-        console.log('record', record);
-        await generateDefaultLiveRoomApi({
+        let res = await generateDefaultLiveRoomApi({
           sceneNum: record.num,
           sceneNum: record.num,
         });
         });
-        createMessage.success(t('common.optSuccess'));
-        reload();
+        if (res) {
+          createMessage.success(t('common.optSuccess'));
+          reload();
+        }
       }
       }
       return {
       return {
         registerTable,
         registerTable,