Просмотр исходного кода

feat(purchaseOrder): 添加收货单跳转展示功能

yusheng 1 неделя назад
Родитель
Сommit
f932cde3fb
2 измененных файлов с 622 добавлено и 575 удалено
  1. 605 575
      src/views/purchasingManage/purchaseOrder/index.vue
  2. 17 0
      src/views/saleManage/saleOrder/index.vue

+ 605 - 575
src/views/purchasingManage/purchaseOrder/index.vue

@@ -133,7 +133,8 @@
                     icon="el-icon-plus"
                     @click="saleOrderSubmit(row)"
                     v-if="
-                      isNeed_process_is_close && [0, 3].includes(row.orderStatus)
+                      isNeed_process_is_close &&
+                      [0, 3].includes(row.orderStatus)
                     "
                   >
                     提交
@@ -164,7 +165,9 @@
                     icon="el-icon-plus"
                     @click="handleCommand('outsourceSend', row)"
                     v-if="
-                      ['3', '4', '5', '6', '8', '9','10'].includes(row.sourceType) &&
+                      ['3', '4', '5', '6', '8', '9', '10'].includes(
+                        row.sourceType
+                      ) &&
                       [2].includes(row.orderStatus) &&
                       row.progress < 200
                     "
@@ -177,9 +180,12 @@
                     icon="el-icon-plus"
                     @click="handleCommand('invoice', row)"
                     v-if="
-                      !['3', '4', '5', '6', '8', '9','10'].includes(row.sourceType) &&
+                      !['3', '4', '5', '6', '8', '9', '10'].includes(
+                        row.sourceType
+                      ) &&
                       [2].includes(row.orderStatus) &&
-                      row.progress < 200 && row.isShowReceiptButton == 1
+                      row.progress < 200 &&
+                      row.isShowReceiptButton == 1
                     "
                   >
                     收货单
@@ -188,10 +194,12 @@
                     type="primary"
                     :underline="false"
                     icon="el-icon-plus"
-                    v-if="row.allowDifference == 1 && $hasPermission('eom:purchaseorder:adjustment')"
+                    v-if="
+                      row.allowDifference == 1 &&
+                      $hasPermission('eom:purchaseorder:adjustment')
+                    "
                     @click="handleCommand('adjustment', row)"
                   >
-                    
                     冲差
                   </el-link>
                   <!-- <el-link
@@ -216,10 +224,7 @@
                     type="primary"
                     :underline="false"
                     @click="finish('single', row)"
-                    v-if="
-                      [2].includes(row.orderStatus) &&
-                      row.progress != 1000
-                    "
+                    v-if="[2].includes(row.orderStatus) && row.progress != 1000"
                   >
                     完结
                   </el-link>
@@ -232,7 +237,10 @@
           <outSourceSend @getToDoReminder="getToDoReminder"></outSourceSend>
         </div>
         <div v-if="activeComp == 'invoice'">
-          <invoice @getToDoReminder="getToDoReminder"></invoice>
+          <invoice
+            @getToDoReminder="getToDoReminder"
+            ref="invoiceRef"
+          ></invoice>
         </div>
         <div v-if="activeComp == 'invoiceConfirm'">
           <invoiceConfirm @getToDoReminder="getToDoReminder"></invoiceConfirm>
@@ -335,594 +343,616 @@
 </template>
 
 <script>
-import searchTable from './components/searchTable.vue';
-import addDialog from './components/addDialog.vue';
-import addDialogNew from './components/addDialogNew.vue';
-import invoice from './invoice/index.vue';
-import invoiceConfirm from './invoiceConfirm/index.vue';
-import detailDialog from './components/detailDialog.vue';
-import contractrDetail from '@/views/contractManage/contractBook/components/detailDialog.vue';
-import purchasingDetail from '@/views/purchasingManage/purchaseNeedManage/components/detailDialog.vue';
-import purchasePlanDetail from '@/views/purchasingManage/purchasePlanManage/components/detailDialog.vue';
-import inquiryDetail from '@/views/purchasingManage/inquiryManage/components/detailDialog.vue';
-import addInvoiceDialog from '@/views/purchasingManage/purchaseOrder/invoice/components/addInvoiceDialog';
-import addReturnGoodsDialog from '@/views/purchasingManage/purchaseOrder/returnGoods/components/addReturnGoodsDialog';
-import addOutSourceSend from '@/views/purchasingManage/purchaseOrder/outSourceSend/components/addOrEditDialog';
-import popModal from '@/components/pop-modal';
-import accountstatement from './accountstatement/index.vue';
-import returnGoods from './returnGoods/index.vue';
-import addInvoiceManage from '@/views/financialManage/invoiceManage/components/addOrEditDialog.vue';
-import outSourceSend from './outSourceSend/index';
-
-import {
-  getTableList,
-  deleteInformation,
-  getExport,
-  batchCompleted
-} from '@/api/purchasingManage/purchaseOrder';
-import dictMixins from '@/mixins/dictMixins';
-import { purchaseOrderProgressStatusEnum, reviewStatus } from '@/enum/dict';
-import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
-import tabMixins from '@/mixins/tableColumnsMixin';
-import importDialog from '@/components/upload/import-dialog.vue';
-import exportButton from '@/components/upload/exportButton.vue';
-import { parameterGetByCode } from '@/api/main/index.js';
-import exceptionList from '@/views/saleManage/saleOrder/exceptionManagement/exceptionList/index.vue';
-import { getToDoReminder } from '@/api/common/index';
-import { exportTable } from '@/api/system/file/index.js';
-import printPurchaseOrder from '@/views/purchasingManage/purchaseOrder/invoice/components/print-PurchaseOrder.vue';
-import { enterprisePage } from '@/api/contractManage/contractBook';
-import { getSummaries } from '@/utils/util.js';
-// import addAdjustDialog from './adjustmentNote‌/components/addAdjustDialog.vue'
-import addAdjustDialog from '@/views/saleManage/saleOrder/adjustmentNote‌/components/addAdjustDialog.vue';
-import adjustmentNote from '@/views/saleManage/saleOrder/adjustmentNote‌/index.vue';
-
-export default {
-  mixins: [dictMixins, tabMixins],
-  components: {
-    processSubmitDialog,
-    exportButton,
-    searchTable,
-    returnGoods,
-    accountstatement,
-    popModal,
-    contractrDetail,
-    addReturnGoodsDialog,
-    addInvoiceDialog,
-    invoice,
-    addDialog,
-    detailDialog,
-    outSourceSend,
-    addOutSourceSend,
-    addInvoiceManage,
-    importDialog,
-    invoiceConfirm,
-    exceptionList,
-    purchasingDetail,
-    purchasePlanDetail,
-    inquiryDetail,
-    printPurchaseOrder,
-    addDialogNew,
-    addAdjustDialog,
-    adjustmentNote
-  },
-  data() {
-    return {
-      activeComp: 'saleorder',
-      tabOptions: [
-        { key: 'saleorder', name: '采购订单', reminder: 'purchaseOrderNum' },
-        {
-          key: 'outsourceSend',
-          name: '委外发货单',
-          reminder: 'outsourcingDeliveryNoteNum'
-        },
-        { key: 'invoice', name: '收货单', reminder: 'receiptNum' },
-        {
-          key: 'invoiceConfirm',
-          name: '收货确认单',
-          reminder: 'receiptConfirmationFormNum'
-        },
-        {
-          key: 'exceptionList',
-          name: '异常列表',
-          reminder: 'purchaseExceptionListNum'
-        },
-        {
-          key: 'returnorder',
-          name: '退货单',
-          reminder: 'purchaseReturnOrderNum'
-        },
-        {
-          key: 'accountstatement',
-          name: '对账单',
-          reminder: 'purchaseStatementAccountNum'
-        },
-        {
-          key: 'adjustmentNote',
-          name: '冲差单',
-          reminder: 'punchSlipForPurchaseOrderNum'
-        }
-      ],
-
-      selection: [], //单选中集合
-      delVisible: false, //批量删除弹框状态
-      loading: false, // 加载状态
-      processSubmitDialogFlag: false,
-      addOrEditDialogFlag: false,
-      addOrEditDialogFlag1: false,
-      params: {},
-      addAdjustDialogFlag: false, //冲差状态
-      groupName: '',
-      columns: [
-        {
-          width: 45,
-          type: 'selection',
-          columnKey: 'selection',
-          align: 'center'
-        },
-        {
-          columnKey: 'index',
-          label: '序号',
-          type: 'index',
-          width: 55,
-          align: 'center',
-          showOverflowTooltip: true,
-          fixed: 'left'
-        },
-        {
-          prop: 'orderNo',
-          label: '订单编码',
-          align: 'center',
-          sortable: true,
-          slot: 'orderNo',
-          showOverflowTooltip: true,
-          minWidth: 200,
-          fixed: 'left'
-        },
-        {
-          prop: 'sourceTypeName',
-          label: '订单类型',
-          align: 'center',
-          sortable: true,
-          showOverflowTooltip: true,
-          minWidth: 200,
-          fixed: 'left'
-        },
-        {
-          prop: 'progress',
-          label: '订单进度',
-          align: 'center',
-          showOverflowTooltip: true,
-          formatter: (_row, _column, cellValue) => {
-            return purchaseOrderProgressStatusEnum.find(
-              (val) => val.value == _row.progress
-            )?.label;
+  import searchTable from './components/searchTable.vue';
+  import addDialog from './components/addDialog.vue';
+  import addDialogNew from './components/addDialogNew.vue';
+  import invoice from './invoice/index.vue';
+  import invoiceConfirm from './invoiceConfirm/index.vue';
+  import detailDialog from './components/detailDialog.vue';
+  import contractrDetail from '@/views/contractManage/contractBook/components/detailDialog.vue';
+  import purchasingDetail from '@/views/purchasingManage/purchaseNeedManage/components/detailDialog.vue';
+  import purchasePlanDetail from '@/views/purchasingManage/purchasePlanManage/components/detailDialog.vue';
+  import inquiryDetail from '@/views/purchasingManage/inquiryManage/components/detailDialog.vue';
+  import addInvoiceDialog from '@/views/purchasingManage/purchaseOrder/invoice/components/addInvoiceDialog';
+  import addReturnGoodsDialog from '@/views/purchasingManage/purchaseOrder/returnGoods/components/addReturnGoodsDialog';
+  import addOutSourceSend from '@/views/purchasingManage/purchaseOrder/outSourceSend/components/addOrEditDialog';
+  import popModal from '@/components/pop-modal';
+  import accountstatement from './accountstatement/index.vue';
+  import returnGoods from './returnGoods/index.vue';
+  import addInvoiceManage from '@/views/financialManage/invoiceManage/components/addOrEditDialog.vue';
+  import outSourceSend from './outSourceSend/index';
+
+  import {
+    getTableList,
+    deleteInformation,
+    getExport,
+    batchCompleted
+  } from '@/api/purchasingManage/purchaseOrder';
+  import dictMixins from '@/mixins/dictMixins';
+  import { purchaseOrderProgressStatusEnum, reviewStatus } from '@/enum/dict';
+  import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
+  import tabMixins from '@/mixins/tableColumnsMixin';
+  import importDialog from '@/components/upload/import-dialog.vue';
+  import exportButton from '@/components/upload/exportButton.vue';
+  import { parameterGetByCode } from '@/api/main/index.js';
+  import exceptionList from '@/views/saleManage/saleOrder/exceptionManagement/exceptionList/index.vue';
+  import { getToDoReminder } from '@/api/common/index';
+  import { exportTable } from '@/api/system/file/index.js';
+  import printPurchaseOrder from '@/views/purchasingManage/purchaseOrder/invoice/components/print-PurchaseOrder.vue';
+  import { enterprisePage } from '@/api/contractManage/contractBook';
+  import { getSummaries } from '@/utils/util.js';
+  // import addAdjustDialog from './adjustmentNote‌/components/addAdjustDialog.vue'
+  import addAdjustDialog from '@/views/saleManage/saleOrder/adjustmentNote‌/components/addAdjustDialog.vue';
+  import adjustmentNote from '@/views/saleManage/saleOrder/adjustmentNote‌/index.vue';
+
+  export default {
+    mixins: [dictMixins, tabMixins],
+    components: {
+      processSubmitDialog,
+      exportButton,
+      searchTable,
+      returnGoods,
+      accountstatement,
+      popModal,
+      contractrDetail,
+      addReturnGoodsDialog,
+      addInvoiceDialog,
+      invoice,
+      addDialog,
+      detailDialog,
+      outSourceSend,
+      addOutSourceSend,
+      addInvoiceManage,
+      importDialog,
+      invoiceConfirm,
+      exceptionList,
+      purchasingDetail,
+      purchasePlanDetail,
+      inquiryDetail,
+      printPurchaseOrder,
+      addDialogNew,
+      addAdjustDialog,
+      adjustmentNote
+    },
+    data() {
+      return {
+        activeComp: 'saleorder',
+        tabOptions: [
+          { key: 'saleorder', name: '采购订单', reminder: 'purchaseOrderNum' },
+          {
+            key: 'outsourceSend',
+            name: '委外发货单',
+            reminder: 'outsourcingDeliveryNoteNum'
           },
-          minWidth: 120
-        },
-
-        {
-          prop: 'relationType',
-          label: '来源单据类型',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 150,
-          formatter: (_row, _column, cellValue) => {
-            return _row.relationType == 1
-              ? '采购需求单'
-              : _row.relationType == 2
-              ? '采购计划单'
-              : _row.relationType == 3
-              ? '采购核价单'
-              : _row.relationType == 4
-              ? '采购合同'
-              : '';
-          }
-        },
-        {
-          prop: 'relationName',
-          label: '来源单据',
-          align: 'center',
-          slot: 'relationName',
-          showOverflowTooltip: true,
-          minWidth: 250
-        },
-        // {
-        //   prop: 'deliveryDate',
-        //   label: '交货日期',
-        //   align: 'center',
-        //   showOverflowTooltip: true,
-        //   minWidth: 200
-        // },
-        // {
-        //   prop: 'purchaseTypeName',
-        //   label: '采购订单类型',
-        //   align: 'center',
-        //   showOverflowTooltip: true,
-        //   minWidth: 140
-        // },
-        {
-          prop: 'partaName',
-          label: '采购方名称',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 200
-        },
-        {
-          prop: 'partaLinkName',
-          label: '采购方联系人',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 130
-        },
-
-        {
-          prop: 'partaTel',
-          label: '采购方联系电话',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 130
-        },
-        {
-          prop: 'productNames',
-          label: '名称',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 200
-        },
-        {
-          prop: 'productCodes',
-          label: '编码',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 140
-        },
-        {
-          prop: 'batchNos',
-          label: '批次号',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 140
-        },
-        {
-          prop: 'productCount',
-          label: '数量',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 140
-        },
-        {
-          prop: 'inboundCount',
-          label: '收货数量',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 140
-        },
-
-        {
-          prop: 'partbName',
-          label: '供应商名称',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 250
-        },
-        {
-          prop: 'partbLinkName',
-          label: '供应商联系人',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 120
-        },
-        {
-          prop: 'partbTel',
-          label: '供应商联系电话',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 130
-        },
-        {
-          prop: 'isInspection',
-          label: '是否来料检',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 130,
-          formatter: (_row, _column, cellValue) => {
-            return cellValue == 1 ? '是' : '否';
+          { key: 'invoice', name: '收货单', reminder: 'receiptNum' },
+          {
+            key: 'invoiceConfirm',
+            name: '收货确认单',
+            reminder: 'receiptConfirmationFormNum'
+          },
+          {
+            key: 'exceptionList',
+            name: '异常列表',
+            reminder: 'purchaseExceptionListNum'
+          },
+          {
+            key: 'returnorder',
+            name: '退货单',
+            reminder: 'purchaseReturnOrderNum'
+          },
+          {
+            key: 'accountstatement',
+            name: '对账单',
+            reminder: 'purchaseStatementAccountNum'
+          },
+          {
+            key: 'adjustmentNote',
+            name: '冲差单',
+            reminder: 'punchSlipForPurchaseOrderNum'
           }
-        },
-        {
-          prop: 'payAmount',
-          label: '金额(元)',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 140
-        },
-        {
-          prop: 'createUserName',
-          label: '创建人',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 170
-        },
-        {
-          prop: 'createTime',
-          label: '创建时间',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 170
-        },
-        {
-          prop: 'orderStatus',
-          label: '审核状态',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 100,
-          formatter: (_row, _column, cellValue) => {
-            return reviewStatus[_row.orderStatus];
+        ],
+
+        selection: [], //单选中集合
+        delVisible: false, //批量删除弹框状态
+        loading: false, // 加载状态
+        processSubmitDialogFlag: false,
+        addOrEditDialogFlag: false,
+        addOrEditDialogFlag1: false,
+        params: {},
+        addAdjustDialogFlag: false, //冲差状态
+        groupName: '',
+        columns: [
+          {
+            width: 45,
+            type: 'selection',
+            columnKey: 'selection',
+            align: 'center'
+          },
+          {
+            columnKey: 'index',
+            label: '序号',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'orderNo',
+            label: '订单编码',
+            align: 'center',
+            sortable: true,
+            slot: 'orderNo',
+            showOverflowTooltip: true,
+            minWidth: 200,
+            fixed: 'left'
+          },
+          {
+            prop: 'sourceTypeName',
+            label: '订单类型',
+            align: 'center',
+            sortable: true,
+            showOverflowTooltip: true,
+            minWidth: 200,
+            fixed: 'left'
+          },
+          {
+            prop: 'progress',
+            label: '订单进度',
+            align: 'center',
+            showOverflowTooltip: true,
+            formatter: (_row, _column, cellValue) => {
+              return purchaseOrderProgressStatusEnum.find(
+                (val) => val.value == _row.progress
+              )?.label;
+            },
+            minWidth: 120
+          },
+
+          {
+            prop: 'relationType',
+            label: '来源单据类型',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 150,
+            formatter: (_row, _column, cellValue) => {
+              return _row.relationType == 1
+                ? '采购需求单'
+                : _row.relationType == 2
+                ? '采购计划单'
+                : _row.relationType == 3
+                ? '采购核价单'
+                : _row.relationType == 4
+                ? '采购合同'
+                : '';
+            }
+          },
+          {
+            prop: 'relationName',
+            label: '来源单据',
+            align: 'center',
+            slot: 'relationName',
+            showOverflowTooltip: true,
+            minWidth: 250
+          },
+          // {
+          //   prop: 'deliveryDate',
+          //   label: '交货日期',
+          //   align: 'center',
+          //   showOverflowTooltip: true,
+          //   minWidth: 200
+          // },
+          // {
+          //   prop: 'purchaseTypeName',
+          //   label: '采购订单类型',
+          //   align: 'center',
+          //   showOverflowTooltip: true,
+          //   minWidth: 140
+          // },
+          {
+            prop: 'partaName',
+            label: '采购方名称',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 200
+          },
+          {
+            prop: 'partaLinkName',
+            label: '采购方联系人',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 130
+          },
+
+          {
+            prop: 'partaTel',
+            label: '采购方联系电话',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 130
+          },
+          {
+            prop: 'productNames',
+            label: '名称',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 200
+          },
+          {
+            prop: 'productCodes',
+            label: '编码',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'batchNos',
+            label: '批次号',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'productCount',
+            label: '数量',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'inboundCount',
+            label: '收货数量',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+
+          {
+            prop: 'partbName',
+            label: '供应商名称',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 250
+          },
+          {
+            prop: 'partbLinkName',
+            label: '供应商联系人',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
+          {
+            prop: 'partbTel',
+            label: '供应商联系电话',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 130
+          },
+          {
+            prop: 'isInspection',
+            label: '是否来料检',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 130,
+            formatter: (_row, _column, cellValue) => {
+              return cellValue == 1 ? '是' : '否';
+            }
+          },
+          {
+            prop: 'payAmount',
+            label: '金额(元)',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'createUserName',
+            label: '创建人',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 170
+          },
+          {
+            prop: 'createTime',
+            label: '创建时间',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 170
+          },
+          {
+            prop: 'orderStatus',
+            label: '审核状态',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 100,
+            formatter: (_row, _column, cellValue) => {
+              return reviewStatus[_row.orderStatus];
+            }
+          },
+          {
+            columnKey: 'action',
+            label: '操作',
+            width: 260,
+            align: 'center',
+            resizable: false,
+            slot: 'action',
+            showOverflowTooltip: true,
+            fixed: 'right'
           }
-        },
-        {
-          columnKey: 'action',
-          label: '操作',
-          width: 260,
-          align: 'center',
-          resizable: false,
-          slot: 'action',
-          showOverflowTooltip: true,
-          fixed: 'right'
-        }
-      ],
-      cacheKeyUrl: 'eos-5f2ac512-purchaseOrder-saleorder',
-      isRequired: true,
-      timeR: null,
-      toDoReminder: {}
-    };
-  },
-  computed: {},
-  created() {
-    this.requestDict('客户状态');
-    parameterGetByCode({
-      code: 'order_person_info'
-    }).then((res) => {
-      if (res.value) {
-        this.isRequired = res.value === '1';
-      }
-    });
-    this.getToDoReminder();
-    this.timeR = setInterval(() => {
-      this.getToDoReminder();
-    }, 60000);
-  },
-  beforeDestroy() {
-    clearInterval(this.timeR);
-  },
-  methods: {
-    getSummaries(param) {
-      return getSummaries(
-        param,
-        ['productCount', 'inboundCount', 'payAmount'],
-        ' '
-      );
+        ],
+        cacheKeyUrl: 'eos-5f2ac512-purchaseOrder-saleorder',
+        isRequired: true,
+        timeR: null,
+        toDoReminder: {}
+      };
     },
-    getToDoReminder() {
-      getToDoReminder().then((res) => {
-        this.toDoReminder = res;
+    computed: {},
+    created() {
+      this.requestDict('客户状态');
+      parameterGetByCode({
+        code: 'order_person_info'
+      }).then((res) => {
+        if (res.value) {
+          this.isRequired = res.value === '1';
+        }
       });
-    },
-    //更多菜单
-    handleCommand(command, row) {
-      console.log(command, row);
-      if (command === 'invoice') {
-        this.$refs.invoiceDialogRef.open('add', {}, row.id);
-      }
-      if (command === 'returnOrder') {
-        this.$refs.addReturnGoodsRef.open('add', {});
-      }
-      if (command === 'outsourceSend') {
-        this.addOrEditDialogFlag = true;
+      this.getToDoReminder();
+      this.timeR = setInterval(() => {
+        this.getToDoReminder();
+      }, 60000);
 
+      if (this.$route.query.isView) {
+        this.activeComp = this.$route.query.activeComp;
         this.$nextTick(() => {
-          this.$refs.addOrEditDialogRef.open('add', {}, row.id);
-        });
-      }
-      if (command === 'invoiceManage') {
-        this.addOrEditDialogFlag1 = true;
+          if (this.activeComp == 'invoice') {
+            this.$refs.invoiceRef.openorderDetail(
+              {
+                id: this.$route.query.id
+              },
+              'receiveNo'
+            );
+          }
 
-        this.$nextTick(() => {
-          this.$refs.addOrEditDialogRef.createInvoice1(row, 2, 3);
+          const url = new URL(window.location.href);
+          url.search = ''; // 清空查询参数
+          window.history.pushState({}, '', url.href);
         });
       }
-      // 冲差
-      if (command === 'adjustment') {
-        console.log(row);
-        this.addAdjustDialogFlag = true;
-        this.$nextTick(() => {
-          this.$refs.addAdjustDialogRef.open('add', row);
-        });
-      }
-    },
-
-    //点击左边分类
-    handleNodeClick(data, node) {
-      // this.curNodeData = data;
-      this.reload({ categoryId: data.id });
     },
-    /* 表格数据源 */
-    datasource({ page, limit, where, order }) {
-      this.params = {
-        pageNum: page,
-        size: limit,
-        ...where
-      };
-      return getTableList(this.params);
-    },
-
-    /* 刷新表格 */
-    reload(where) {
-      this.$refs.table.reload({ page: 1, where });
-    },
-
-    //新增编辑
-    openEdit(type, row) {
-      this.$refs.addDialogRef.open(type, row, row.id);
-      this.$refs.addDialogRef.$refs.form &&
-        this.$refs.addDialogRef.$refs.form.clearValidate();
+    beforeDestroy() {
+      clearInterval(this.timeR);
     },
+    methods: {
+      getSummaries(param) {
+        return getSummaries(
+          param,
+          ['productCount', 'inboundCount', 'payAmount'],
+          ' '
+        );
+      },
+      getToDoReminder() {
+        getToDoReminder().then((res) => {
+          this.toDoReminder = res;
+        });
+      },
+      //更多菜单
+      handleCommand(command, row) {
+        console.log(command, row);
+        if (command === 'invoice') {
+          this.$refs.invoiceDialogRef.open('add', {}, row.id);
+        }
+        if (command === 'returnOrder') {
+          this.$refs.addReturnGoodsRef.open('add', {});
+        }
+        if (command === 'outsourceSend') {
+          this.addOrEditDialogFlag = true;
 
-    //新增编辑新
-    openEditNew(type, row) {
-      this.$refs.addDialogNewRef.open(type, row, row.id);
-      this.$refs.addDialogNewRef.$refs.form &&
-        this.$refs.addDialogNewRef.$refs.form.clearValidate();
-    },
+          this.$nextTick(() => {
+            this.$refs.addOrEditDialogRef.open('add', {}, row.id);
+          });
+        }
+        if (command === 'invoiceManage') {
+          this.addOrEditDialogFlag1 = true;
 
-    uploadFile() {
-      this.$refs.importDialogRef.open();
-    },
-    //打印采购订单
-    handlePrint(ref) {
+          this.$nextTick(() => {
+            this.$refs.addOrEditDialogRef.createInvoice1(row, 2, 3);
+          });
+        }
+        // 冲差
+        if (command === 'adjustment') {
+          console.log(row);
+          this.addAdjustDialogFlag = true;
+          this.$nextTick(() => {
+            this.$refs.addAdjustDialogRef.open('add', row);
+          });
+        }
+      },
+
+      //点击左边分类
+      handleNodeClick(data, node) {
+        // this.curNodeData = data;
+        this.reload({ categoryId: data.id });
+      },
+      /* 表格数据源 */
+      datasource({ page, limit, where, order }) {
+        this.params = {
+          pageNum: page,
+          size: limit,
+          ...where
+        };
+        return getTableList(this.params);
+      },
+
+      /* 刷新表格 */
+      reload(where) {
+        this.$refs.table.reload({ page: 1, where });
+      },
+
+      //新增编辑
+      openEdit(type, row) {
+        this.$refs.addDialogRef.open(type, row, row.id);
+        this.$refs.addDialogRef.$refs.form &&
+          this.$refs.addDialogRef.$refs.form.clearValidate();
+      },
+
+      //新增编辑新
+      openEditNew(type, row) {
+        this.$refs.addDialogNewRef.open(type, row, row.id);
+        this.$refs.addDialogNewRef.$refs.form &&
+          this.$refs.addDialogNewRef.$refs.form.clearValidate();
+      },
+
+      uploadFile() {
+        this.$refs.importDialogRef.open();
+      },
+      //打印采购订单
+      handlePrint(ref) {
         if (this.selection.length > 1)
           return this.$message.warning('暂不支持批量打印,请选择一条');
-      // let flag = this.selection.some((item) => [2].includes(item.reviewStatus));
-      // if (!flag)
-      //   return this.$message.warning('抱歉需要已审核的发货单才能打印,请检查');
-
-      enterprisePage({
-        pageNum: 1,
-        size: 200
-      }).then((res) => {
-        console.log(res.list);
-        if (res.list?.length > 0) {
-          this.groupName = res.list[0].name;
+        // let flag = this.selection.some((item) => [2].includes(item.reviewStatus));
+        // if (!flag)
+        //   return this.$message.warning('抱歉需要已审核的发货单才能打印,请检查');
+
+        enterprisePage({
+          pageNum: 1,
+          size: 200
+        }).then((res) => {
+          console.log(res.list);
+          if (res.list?.length > 0) {
+            this.groupName = res.list[0].name;
+          }
+        });
+        this.$refs[ref].open(this.selection[0].id);
+      },
+      //批量删除
+      allDelBtn() {
+        if (this.selection.length === 0) return;
+        let flag = this.selection.some((item) =>
+          [1, 2].includes(item.orderStatus)
+        );
+        if (flag)
+          return this.$message.warning(
+            '抱歉已审核、审核中的数据不能删除,请检查'
+          );
+        this.delVisible = true;
+      },
+
+      //删除接口
+      remove(delData) {
+        deleteInformation(delData).then((res) => {
+          this.$message.success('删除成功!');
+          this.reload();
+        });
+      },
+
+      //删除弹框确定
+      commitBtn() {
+        const dataId = this.selection.map((v) => v.id);
+        this.remove(dataId);
+      },
+
+      finish(type, row) {
+        if (type == 'single') {
+          batchCompleted([row.id])
+            .then((res) => {
+              this.$message.success(res.message);
+              this.reload();
+            })
+            .catch((err) => {});
         }
-      });
-      this.$refs[ref].open(this.selection[0].id);
-    },
-    //批量删除
-    allDelBtn() {
-      if (this.selection.length === 0) return;
-      let flag = this.selection.some((item) =>
-        [1, 2].includes(item.orderStatus)
-      );
-      if (flag)
-        return this.$message.warning('抱歉已审核、审核中的数据不能删除,请检查');
-      this.delVisible = true;
-    },
+      },
+
+      //查看详情
+      openorderDetail(row) {
+        this.$refs.contactDetailDialogRef.open(row);
+      },
+      saleOrderSubmit(res) {
+        this.processSubmitDialogFlag = true;
+        this.$nextTick(() => {
+          let params = {
+            businessId: res.id,
+            businessKey: 'purchase_order_approve',
+            formCreateUserId: res.createUserId,
+            variables: {
+              businessCode: res.orderNo,
+              businessName: res.partaName,
+              businessType: res.sourceTypeName
+            }
+          };
+
+          this.$refs.processSubmitDialogRef.init(params);
+        });
+      },
+      //查看合同详情
+      opencontractDetail(row) {
+        let data = {
+          id: row.relationId
+        };
+        if (row.relationType == 1) {
+          this.$refs.purchasingDetailRef.open(data);
+        }
+        if (row.relationType == 2) {
+          this.$refs.purchasePlanDetailRef.open(data);
+        }
+        if (row.relationType == 3) {
+          this.$refs.inquiryDetailRef.open(data);
+        }
+        if (row.relationType == 4) {
+          this.$refs.contractDetailRef.open(data);
+        }
+      },
+      // 导出
+      exportRowInfo(row) {
+        console.log(row);
+        getExport(row.id);
+      }
+    }
+  };
+</script>
 
-    //删除接口
-    remove(delData) {
-      deleteInformation(delData).then((res) => {
-        this.$message.success('删除成功!');
-        this.reload();
-      });
-    },
+<style lang="scss" scoped>
+  :deep .el-card__body {
+    padding: 0;
+  }
 
-    //删除弹框确定
-    commitBtn() {
-      const dataId = this.selection.map((v) => v.id);
-      this.remove(dataId);
-    },
+  :deep(.el-link--inner) {
+    margin-left: 0px !important;
+  }
 
-    finish(type, row) {
-      if (type == 'single') {
-        batchCompleted([row.id]).then((res) => {
-          this.$message.success(res.message);
-          this.reload();
-        }).catch((err) => {});
-      }
-    },
+  .sys-organization-list {
+    height: calc(100vh - 264px);
+    box-sizing: border-box;
+    border-width: 1px;
+    border-style: solid;
+    overflow: auto;
+  }
 
-    //查看详情
-    openorderDetail(row) {
-      this.$refs.contactDetailDialogRef.open(row);
-    },
-    saleOrderSubmit(res) {
-      this.processSubmitDialogFlag = true;
-      this.$nextTick(() => {
-        let params = {
-          businessId: res.id,
-          businessKey: 'purchase_order_approve',
-          formCreateUserId: res.createUserId,
-          variables: {
-            businessCode: res.orderNo,
-            businessName: res.partaName,
-            businessType: res.sourceTypeName
-          }
-        };
+  .sys-organization-list :deep(.el-tree-node__content) {
+    height: 40px;
 
-        this.$refs.processSubmitDialogRef.init(params);
-      });
-    },
-    //查看合同详情
-    opencontractDetail(row) {
-      let data = {
-        id: row.relationId
-      };
-      if (row.relationType == 1) {
-        this.$refs.purchasingDetailRef.open(data);
-      }
-      if (row.relationType == 2) {
-        this.$refs.purchasePlanDetailRef.open(data);
-      }
-      if (row.relationType == 3) {
-        this.$refs.inquiryDetailRef.open(data);
-      }
-      if (row.relationType == 4) {
-        this.$refs.contractDetailRef.open(data);
-      }
-    },
-    // 导出
-    exportRowInfo(row) {
-      console.log(row);
-      getExport(row.id);
+    & > .el-tree-node__expand-icon {
+      margin-left: 10px;
     }
   }
-};
-</script>
 
-<style lang="scss" scoped>
-:deep .el-card__body {
-  padding: 0;
-}
-
-:deep(.el-link--inner) {
-  margin-left: 0px !important;
-}
-
-.sys-organization-list {
-  height: calc(100vh - 264px);
-  box-sizing: border-box;
-  border-width: 1px;
-  border-style: solid;
-  overflow: auto;
-}
-
-.sys-organization-list :deep(.el-tree-node__content) {
-  height: 40px;
-
-  & > .el-tree-node__expand-icon {
-    margin-left: 10px;
+  .switch_left ul .active {
+    border-top: 4px solid var(--color-primary);
+    color: var(--color-primary-5);
+  }
+
+  .switch {
+    padding-bottom: 20px;
+  }
+
+  .el-dropdown-link {
+    cursor: pointer;
+    color: var(--color-primary-5);
+  }
+
+  .el-icon-arrow-down {
+    font-size: 12px;
+  }
+  :deep(.el-badge__content.is-fixed) {
+    top: 4px;
   }
-}
-
-.switch_left ul .active {
-  border-top: 4px solid var(--color-primary);
-  color: var(--color-primary-5);
-}
-
-.switch {
-  padding-bottom: 20px;
-}
-
-.el-dropdown-link {
-  cursor: pointer;
-  color: var(--color-primary-5);
-}
-
-.el-icon-arrow-down {
-  font-size: 12px;
-}
-:deep(.el-badge__content.is-fixed) {
-  top: 4px;
-}
 </style>

+ 17 - 0
src/views/saleManage/saleOrder/index.vue

@@ -315,6 +315,7 @@
         <div v-if="activeComp == 'entrustedReceive'">
           <entrustedReceive
             @getToDoReminder="getToDoReminder"
+            ref="entrustedReceiveRef"
           ></entrustedReceive>
         </div>
         <div v-if="activeComp == 'returnorder'" class="returnorder">
@@ -630,7 +631,23 @@ export default {
     this.timeR = setInterval(() => {
       this.getToDoReminder();
     }, 60000);
+      if (this.$route.query.isView) {
+        this.activeComp = this.$route.query.activeComp;
+        this.$nextTick(() => {
+          if (this.activeComp == 'entrustedReceive') {
+            this.$refs.entrustedReceiveRef.openorderDetail(
+              {
+                id: this.$route.query.id
+              },
+              'code'
+            );
+          }
 
+          const url = new URL(window.location.href);
+          url.search = ''; // 清空查询参数
+          window.history.pushState({}, '', url.href);
+        });
+      }
     // if (!('Notification' in window)) {
     //   console.log('此浏览器不支持桌面通知');
     // } else if (Notification.permission === 'granted') {