Browse Source

fix:采购模块代码优化

snow 2 years ago
parent
commit
cdcfeb6c5c
33 changed files with 250 additions and 722 deletions
  1. 1 0
      src/hooks/index.ts
  2. 13 4
      src/utils/status.ts
  3. 1 1
      src/views/purchase/inputInvoice/config/content.config.ts
  4. 0 55
      src/views/purchase/inputInvoice/config/options.ts
  5. 1 1
      src/views/purchase/inputInvoice/config/search.config.ts
  6. 12 10
      src/views/purchase/inputInvoice/index.vue
  7. 5 26
      src/views/purchase/orderRecord/components/approval-process/Initiate-audit.vue
  8. 16 52
      src/views/purchase/orderRecord/components/approval-process/business-review.vue
  9. 15 70
      src/views/purchase/orderRecord/components/approval-process/financial-audit.vue
  10. 15 26
      src/views/purchase/orderRecord/components/basic-purchase.vue
  11. 8 11
      src/views/purchase/orderRecord/components/create-statement/add-order-modal.vue
  12. 5 6
      src/views/purchase/orderRecord/components/create-statement/index.vue
  13. 29 2
      src/views/purchase/orderRecord/components/statement-detail/statement-detail.vue
  14. 5 0
      src/views/purchase/orderRecord/config/configs.ts
  15. 21 11
      src/views/purchase/orderRecord/detail.vue
  16. 4 0
      src/views/purchase/orderRecord/index.vue
  17. 13 8
      src/views/purchase/purchPay/component/approval-process/business-audit.vue
  18. 11 4
      src/views/purchase/purchPay/component/approval-process/financial-audit.vue
  19. 2 3
      src/views/purchase/purchPay/component/approval-process/payment-receipt.vue
  20. 3 3
      src/views/purchase/purchPay/component/create-payment/index.vue
  21. 17 2
      src/views/purchase/purchPay/component/payment-detail/index.vue
  22. 9 8
      src/views/purchase/purchPay/config/content.config.ts
  23. 6 10
      src/views/purchase/purchPay/detail.vue
  24. 0 41
      src/views/purchase/purchPay/hooks/use-review-process.ts
  25. 4 0
      src/views/purchase/purchPay/index.vue
  26. 14 21
      src/views/purchase/ticketReturn/components/approval-process/financial-audit.vue
  27. 0 244
      src/views/purchase/ticketReturn/components/create-ticket-dialog.vue
  28. 0 25
      src/views/purchase/ticketReturn/components/payment-list-dialog.vue
  29. 0 53
      src/views/purchase/ticketReturn/components/payment-table.vue
  30. 2 4
      src/views/purchase/ticketReturn/config/configs.ts
  31. 3 2
      src/views/purchase/ticketReturn/config/content.config.ts
  32. 10 14
      src/views/purchase/ticketReturn/detail.vue
  33. 5 5
      src/views/purchase/ticketReturn/index.vue

+ 1 - 0
src/hooks/index.ts

@@ -1 +1,2 @@
 export { useResponseHandle } from "./response/use-response-handle";
+export { useReviewProcess } from "./process/use-review-process";

+ 13 - 4
src/utils/status.ts

@@ -43,22 +43,31 @@ const xs_order_source_options = [
   { value: "5", label: "有赞平台" },
   { value: "6", label: "售后补换货" }
 ];
+
+/**
+ * @value 金税发票类型
+ * @hwy_value 华为云发票类型
+ */
 const inv_type_list = [
   {
     label: "增值税专用发票",
-    value: "04"
+    value: "04",
+    hwy_value: "01"
   },
   {
     label: "增值税普通发票",
-    value: "07"
+    value: "07",
+    hwy_value: "04"
   },
   {
     label: "增值税电子专用发票",
-    value: "27"
+    value: "27",
+    hwy_value: "20"
   },
   {
     label: "增值税电子普通发票",
-    value: "26"
+    value: "26",
+    hwy_value: "10"
   }
 ];
 const send_status_list = [

+ 1 - 1
src/views/purchase/inputInvoice/config/content.config.ts

@@ -2,7 +2,7 @@ import { ContentConfig } from "/@/components/PageContent";
 import { httpList } from "/@/api/purchase/ticketReturn";
 
 import dayjs from "dayjs";
-import { invType_options, status_options } from "./options";
+import { invType_options, status_options } from "./configs";
 import { h } from "vue";
 import { ElTag } from "element-plus";
 

+ 0 - 55
src/views/purchase/inputInvoice/config/options.ts

@@ -1,55 +0,0 @@
-//发票添加类型的options
-export const invType_options = [
-  {
-    label: "手工添加",
-    value: "1"
-  },
-  {
-    label: "orc识别",
-    value: "2"
-  }
-];
-
-//发票状态的options
-export const status_options = [
-  {
-    label: "上传发票",
-    value: "0"
-  },
-  {
-    label: "待识别验证",
-    value: "1"
-  },
-  {
-    label: "待校验识别",
-    value: "2"
-  },
-  {
-    label: "待财务审核",
-    value: "3"
-  },
-  {
-    label: "认证成功待确认完成",
-    value: "7"
-  },
-  {
-    label: "回票完成",
-    value: "8"
-  },
-  {
-    label: "识别失败",
-    value: "9"
-  },
-  {
-    label: "验证失败",
-    value: "10"
-  },
-  {
-    label: "财务驳回",
-    value: "11"
-  },
-  {
-    label: "认证失败",
-    value: "12"
-  }
-];

+ 1 - 1
src/views/purchase/inputInvoice/config/search.config.ts

@@ -1,4 +1,4 @@
-import { invType_options, status_options } from "./options";
+import { invType_options, status_options } from "./configs";
 import { FormConfig } from "/@/components/PageSearch";
 
 const searchFormConfig: FormConfig = {

+ 12 - 10
src/views/purchase/inputInvoice/index.vue

@@ -1,26 +1,30 @@
 <script setup lang="ts">
+import { ref } from "vue";
 import { PageSearch, usePageSearch } from "/@/components/PageSearch";
 import { PageContent } from "/@/components/PageContent";
 import searchFormConfig from "./config/search.config";
 import contentConfig from "./config/content.config";
 import InvoiceDialog from "./invoice-dialog.vue";
-import { ref } from "vue";
 
 defineOptions({
-  name: "invoiceheader"
+  name: "inputInvoice"
 });
 
+const invoiceDialogRef = ref<InstanceType<typeof InvoiceDialog>>(null);
+
 function searchCallback({ open_timer, start_timer }) {
   const [open_start, open_end] = open_timer;
   const [start, end] = start_timer;
 
+  const result = {
+    open_start,
+    open_end,
+    start,
+    end
+  };
+
   return {
-    result: {
-      open_start,
-      open_end,
-      start,
-      end
-    },
+    result,
     deleteProps: ["open_timer", "start_timer"]
   };
 }
@@ -28,8 +32,6 @@ function searchCallback({ open_timer, start_timer }) {
 const { pageContentRef, handleResetClick, handleSearchClick } =
   usePageSearch(searchCallback);
 
-const invoiceDialogRef = ref<InstanceType<typeof InvoiceDialog>>(null);
-
 function handlePreviewInvoice(invoiceData) {
   invoiceDialogRef.value.onDisplay(invoiceData);
 }

+ 5 - 26
src/views/purchase/orderRecord/components/approval-process/Initiate-audit.vue

@@ -1,35 +1,14 @@
 <script setup lang="ts">
-import { useRouter } from "vue-router";
-import { httpStatus } from "/@/api/purchase/orderRecord";
-import { useResponseHandle } from "/@/hooks";
-
-const props = defineProps<{
-  payNo?: string;
-  status?: string;
-}>();
-
-const responseHandle = useResponseHandle();
-const { push } = useRouter();
+const emit = defineEmits(["changeStatus"]);
 
 //发起审核流程 状态改为1
-async function resquestAudit() {
-  const { payNo } = props;
-
-  const { code, message } = await httpStatus({
-    payNo,
-    status: "1"
-  });
-
-  responseHandle({
-    code,
-    message,
-    handler: () => push("/purchase/orderRecord")
-  });
-}
+const handleChangeStatus = () => emit("changeStatus", { status: "1" });
 </script>
 
 <template>
   <div flex justify-end w-full>
-    <el-button type="primary" @click="resquestAudit">发起审核流程</el-button>
+    <el-button type="primary" @click="handleChangeStatus"
+      >发起审核流程</el-button
+    >
   </div>
 </template>

+ 16 - 52
src/views/purchase/orderRecord/components/approval-process/business-review.vue

@@ -1,62 +1,24 @@
 <script setup lang="ts">
-import { ElForm, FormRules } from "element-plus";
-import { reactive, ref, watch } from "vue";
-import { useRouter } from "vue-router";
-import { httpStatus } from "/@/api/purchase/orderRecord";
-import { useResponseHandle } from "/@/hooks";
+import { ElForm } from "element-plus";
+import { useReviewProcess } from "/@/hooks";
 
-const props = defineProps<{
-  payNo?: string;
-  statementDetail?: Record<string, string>;
-}>();
+const status = {
+  fail: "4",
+  success: "2"
+};
 
-const responseHandle = useResponseHandle();
-const formRef = ref<InstanceType<typeof ElForm>>(null);
-const { push } = useRouter();
+const emit = defineEmits(["changeStatus"]);
 
-const rules = reactive<FormRules>({
-  remark: [{ required: true, trigger: "change", message: "请输入备注" }],
-  status: [{ required: true, trigger: "change", message: "请输入审核状态" }]
+const { formData, formRules, formRef, handleChangeStatus } = useReviewProcess({
+  callback: () => emit("changeStatus", formData),
+  failStatus: status.fail
 });
-
-const formData = reactive({
-  status: "",
-  remark: ""
-});
-
-//业务审核 通过状态改为2 不通过为4
-function resquestAudit() {
-  formRef.value.validate(async isVaild => {
-    if (!isVaild) return;
-
-    const { payNo } = props;
-
-    const { code, message } = await httpStatus({
-      payNo,
-      ...formData
-    });
-
-    responseHandle({
-      code,
-      message,
-      handler: () => push("/purchase/orderRecord")
-    });
-  });
-}
-
-watch(
-  () => formData.status,
-  () => (rules.remark[0].required = formData.status === "4"),
-  {
-    deep: true
-  }
-);
 </script>
 
 <template>
   <el-form
     inline
-    :rules="rules"
+    :rules="formRules"
     :model="formData"
     ref="formRef"
     label-width="100px"
@@ -66,8 +28,8 @@ watch(
     <div flex flex-col style="width: 50%">
       <el-form-item label="审核状态" prop="status">
         <el-select placeholder="请选择审核状态" v-model="formData.status">
-          <el-option value="2" label="通过" />
-          <el-option value="4" label="不通过" />
+          <el-option :value="status.success" label="通过" />
+          <el-option :value="status.fail" label="不通过" />
         </el-select>
       </el-form-item>
 
@@ -82,6 +44,8 @@ watch(
       </el-form-item>
     </div>
 
-    <el-button type="primary" @click="resquestAudit">提交审核结果</el-button>
+    <el-button type="primary" @click="handleChangeStatus"
+      >提交审核结果</el-button
+    >
   </el-form>
 </template>

+ 15 - 70
src/views/purchase/orderRecord/components/approval-process/financial-audit.vue

@@ -1,80 +1,23 @@
 <script setup lang="ts">
-import { ElForm, FormRules } from "element-plus";
-import { computed, reactive, ref, watch } from "vue";
-import { useRouter } from "vue-router";
-import { httpStatus } from "/@/api/purchase/orderRecord";
-import { useResponseHandle } from "/@/hooks";
+import { useReviewProcess } from "/@/hooks";
 
-const props = defineProps<{
-  payNo?: string;
-  statementDetail?: Record<string, string>;
-}>();
+const status = {
+  fail: "3",
+  success: "5"
+};
 
-const responseHandle = useResponseHandle();
-const formRef = ref<InstanceType<typeof ElForm>>(null);
-const { push } = useRouter();
+const emit = defineEmits(["changeStatus"]);
 
-const isFormDisabled = computed(
-  () =>
-    Object.keys(props.statementDetail).length > 0 &&
-    Number(props.statementDetail.status) > 1
-);
-
-const rules = reactive<FormRules>({
-  remark: [{ required: true, trigger: "change", message: "请输入备注" }],
-  status: [{ required: true, trigger: "change", message: "请输入审核状态" }]
-});
-
-const formData = reactive({
-  status: "",
-  remark: ""
+const { formData, formRules, formRef, handleChangeStatus } = useReviewProcess({
+  callback: () => emit("changeStatus", formData),
+  failStatus: status.fail
 });
-
-//业务审核 通过状态改为2 不通过为4
-function resquestAudit() {
-  formRef.value.validate(async isVaild => {
-    if (!isVaild) return;
-
-    const { payNo } = props;
-
-    const { code, message } = await httpStatus({
-      payNo,
-      ...formData
-    });
-
-    responseHandle({
-      code,
-      message,
-      handler: () => push("/purchase/orderRecord")
-    });
-  });
-}
-
-watch(
-  () => formData,
-  () => (rules.remark[0].required = formData.status === "5"),
-  {
-    deep: true
-  }
-);
-
-watch(
-  () => props.statementDetail,
-  newVal => {
-    const { status, remark } = newVal;
-
-    if (!isFormDisabled.value) return;
-
-    formData.status = status;
-    formData.remark = remark;
-  }
-);
 </script>
 
 <template>
   <el-form
     inline
-    :rules="rules"
+    :rules="formRules"
     :model="formData"
     ref="formRef"
     label-width="100px"
@@ -84,8 +27,8 @@ watch(
     <div flex flex-col style="width: 50%">
       <el-form-item label="审核状态" prop="status">
         <el-select placeholder="请选择审核状态" v-model="formData.status">
-          <el-option value="3" label="通过" />
-          <el-option value="5" label="不通过" />
+          <el-option :value="status.success" label="通过" />
+          <el-option :value="status.fail" label="不通过" />
         </el-select>
       </el-form-item>
 
@@ -100,6 +43,8 @@ watch(
       </el-form-item>
     </div>
 
-    <el-button type="primary" @click="resquestAudit">提交审核结果</el-button>
+    <el-button type="primary" @click="handleChangeStatus"
+      >提交审核结果</el-button
+    >
   </el-form>
 </template>

+ 15 - 26
src/views/purchase/orderRecord/components/basic-purchase.vue

@@ -4,29 +4,20 @@ import { computed } from "vue";
 import { send_status_list } from "/@/utils/status";
 
 const emit = defineEmits([
-  "addBtnClick",
-  "delBtnClick",
-  "crateBtnClick",
-  "changeSupplieList"
+  "addBtnClick", //添加采购单
+  "delBtnClick", //删除采购单
+  "crateBtnClick", //创建采购单
+  "changeSupplieList" //
 ]);
 
-const props = defineProps({
-  purchaseOrderList: {
-    type: Array as PropType<any>,
-    required: true
-  },
-  readonly: {
-    type: Boolean
-  },
-  supplierNo: {
-    type: Number
-  },
-  companyNo: {
-    type: String
-  }
-});
+const props = defineProps<{
+  purchaseOrderList?: any;
+  readonly?: boolean;
+  supplierNo?: number;
+  companyNo?: number;
+}>();
 
-const disabled = computed(() => !props.readonly);
+const hiddenAction = computed(() => !props.readonly);
 
 //采购单个数
 const total = computed(() => props.purchaseOrderList.length);
@@ -48,7 +39,7 @@ function handleAddClick() {
 <template>
   <div flex justify-between w-full mb-1>
     <el-tag type="warning">共计:{{ total }}个订单</el-tag>
-    <div v-if="disabled">
+    <div v-if="hiddenAction">
       <el-button type="primary" @click="handleAddClick">添加采购单</el-button>
     </div>
   </div>
@@ -79,7 +70,7 @@ function handleAddClick() {
       />
     </el-table-column>
 
-    <el-table-column label="操作" v-if="disabled">
+    <el-table-column label="操作" v-if="hiddenAction">
       <template #default="{ row }">
         <el-button link type="primary" @click="handleDelete(row)"
           >删除</el-button
@@ -88,9 +79,7 @@ function handleAddClick() {
     </el-table-column>
   </el-table>
 
-  <div flex gap-1 mt-2 v-if="disabled">
-    <el-button v-if="disabled" type="primary" @click="emit('crateBtnClick')"
-      >保存</el-button
-    >
+  <div flex gap-1 mt-2 v-if="hiddenAction">
+    <el-button type="primary" @click="emit('crateBtnClick')">保存</el-button>
   </div>
 </template>

+ 8 - 11
src/views/purchase/orderRecord/components/create-statement/add-order-modal.vue

@@ -7,14 +7,10 @@ import { httpCgdList } from "/@/api/purchase/orderRecord";
 import { send_status_list } from "/@/utils/status";
 
 const emit = defineEmits(["saveBtnClick"]);
-const props = defineProps({
-  supplierNo: {
-    type: Number
-  },
-  companyNo: {
-    type: String
-  }
-});
+const props = defineProps<{
+  supplierNo?: number;
+  companyNo?: number;
+}>();
 
 const visible = ref(false);
 const loading = ref(false);
@@ -132,14 +128,12 @@ defineExpose({
       <el-table-column type="selection" width="55" reserve-selection />
       <el-table-column label="采购单编号" prop="sequenceNo" width="180" />
       <el-table-column label="采购单信息">
-        <!-- <el-table-column label="贷款" /> -->
         <el-table-column
           label="供货商"
           prop="supplierName"
           width="160"
           show-overflow-tooltip
         />
-        <!-- <el-table-column label="联系人" /> -->
         <el-table-column
           label="采购员"
           prop="ownerName"
@@ -180,7 +174,9 @@ defineExpose({
           show-overflow-tooltip
         >
           <template #="{ row }">
-            {{ goodTypes.find(t => t.value === row.goodType) }}
+            <el-tag>
+              {{ goodTypes.find(t => t.value === row.goodType)?.label }}
+            </el-tag>
           </template>
         </el-table-column>
         <el-table-column
@@ -192,6 +188,7 @@ defineExpose({
       </el-table-column>
     </el-table>
 
+    <!-- 分页器  -->
     <div flex justify-between mt-2>
       <ElPagination
         v-model:current-page="pagination.currentPage"

+ 5 - 6
src/views/purchase/orderRecord/components/create-statement/index.vue

@@ -43,7 +43,7 @@ function handleAddPurchaseOrder() {
 //保存采购单信息
 function handleSavePurchaseOrder(list) {
   purchaseOrderList.value = list;
-  converCids();
+  converPurchaseids();
 }
 
 //删除采购单信息
@@ -54,7 +54,7 @@ function handleDeletepurchaseOrder({ id }) {
 
   if (delIndex < 0) return;
   purchaseOrderList.value.splice(delIndex, 1);
-  converCids();
+  converPurchaseids();
 }
 
 //创建订单对账
@@ -79,15 +79,14 @@ function handleCreateBill() {
   });
 }
 
-//转换id格式 [1,2,3] => '1,2,3'
-function converCids() {
+//转换采购单id格式 [1,2,3] => '1,2,3'
+const converPurchaseids = () => {
   formData.cids = purchaseOrderList.value.map(p => p.id).join(",");
-}
+};
 
 //当供货商和业务公司有一个为空时清空列表数据
 watchEffect(() => {
   const { supplierNo, companyNo } = formData;
-
   if (!supplierNo || !companyNo) purchaseOrderList.value = [];
 });
 </script>

+ 29 - 2
src/views/purchase/orderRecord/components/statement-detail/statement-detail.vue

@@ -1,5 +1,7 @@
 <script setup lang="ts">
-import { detailcolumns } from "../../config/configs";
+import { paymentOptions } from "/@/views/purchase/purchPay/config/configs";
+import { inv_status_list } from "/@/utils/status";
+import { detailcolumns, statusOptions } from "../../config/configs";
 
 defineProps<{
   statementDetail: Record<string, string>;
@@ -12,7 +14,32 @@ defineProps<{
       v-for="(item, index) in detailcolumns"
       :label="item.label"
       :key="index"
-      >{{ statementDetail[item.field] }}</el-descriptions-item
     >
+      <template v-if="item.field === 'status'">
+        <el-tag>{{
+          statusOptions.find(s => s.value === statementDetail.status)?.label
+        }}</el-tag>
+      </template>
+
+      <template v-else-if="item.field === 'pay_status'">
+        <el-tag>
+          {{
+            paymentOptions.find(s => s.value === statementDetail.pay_status)
+              ?.label
+          }}
+        </el-tag>
+      </template>
+
+      <template v-else-if="item.field === 'inv_status'">
+        <el-tag>
+          {{
+            inv_status_list.find(s => s.value === statementDetail.inv_status)
+              ?.label
+          }}
+        </el-tag>
+      </template>
+
+      <span v-else>{{ statementDetail[item.field] }}</span>
+    </el-descriptions-item>
   </el-descriptions>
 </template>

+ 5 - 0
src/views/purchase/orderRecord/config/configs.ts

@@ -124,3 +124,8 @@ export const detailcolumns = [
     label: "备注"
   }
 ];
+
+export const process_rules = {
+  remark: [{ required: true, trigger: "change", message: "请输入备注" }],
+  status: [{ required: true, trigger: "change", message: "请输入审核状态" }]
+};

+ 21 - 11
src/views/purchase/orderRecord/detail.vue

@@ -1,8 +1,8 @@
 <script setup lang="ts">
 import { computed, ref, watchEffect } from "vue";
-import { useRoute } from "vue-router";
+import { useRoute, useRouter } from "vue-router";
 import { useResponseHandle } from "/@/hooks";
-import { httpInfo } from "/@/api/purchase/orderRecord";
+import { httpInfo, httpStatus } from "/@/api/purchase/orderRecord";
 import InitiateAudit from "./components/approval-process/Initiate-audit.vue";
 import BusinessReview from "./components/approval-process/business-review.vue";
 import FinancialAudit from "./components/approval-process/financial-audit.vue";
@@ -10,6 +10,7 @@ import CreateStatement from "./components/create-statement/index.vue";
 import StatementDetail from "./components/statement-detail/index.vue";
 
 const { query } = useRoute();
+const { push } = useRouter();
 
 const payNo = computed(() => query.id as string);
 const isCreate = computed(() => !payNo.value);
@@ -36,6 +37,20 @@ async function initalStatementDetail() {
   });
 }
 
+//更改付款单审核状态
+async function requesetChangeStatus(otherParams: any) {
+  const { message, code } = await httpStatus({
+    payNo: payNo.value,
+    ...otherParams
+  });
+
+  responseHandle({
+    code,
+    message,
+    handler: () => push("/purchase/orderRecord")
+  });
+}
+
 //初始化对账单详情
 watchEffect(() => payNo.value && initalStatementDetail());
 </script>
@@ -49,27 +64,22 @@ watchEffect(() => payNo.value && initalStatementDetail());
     <ElTabs v-else>
       <ElTabPane label="订单对账详情">
         <ElCollapse v-model="collapses">
+          <!-- 详情 -->
           <ElCollapseItem title="订单对账详情" name="1">
             <StatementDetail :statement-detail="statementDetail" />
           </ElCollapseItem>
 
           <!-- 审批流程 -->
           <ElCollapseItem name="2" v-if="status === 0" title="发起审核流程">
-            <InitiateAudit :pay-no="payNo" />
+            <InitiateAudit @change-status="requesetChangeStatus" />
           </ElCollapseItem>
 
           <ElCollapseItem name="3" v-if="status === 1" title="业务审核">
-            <BusinessReview
-              :statement-detail="statementDetail"
-              :pay-no="payNo"
-            />
+            <BusinessReview @change-status="requesetChangeStatus" />
           </ElCollapseItem>
 
           <ElCollapseItem name="4" v-if="status === 2" title="财务审核">
-            <FinancialAudit
-              :statement-detail="statementDetail"
-              :pay-no="payNo"
-            />
+            <FinancialAudit @change-status="requesetChangeStatus" />
           </ElCollapseItem>
         </ElCollapse>
       </ElTabPane>

+ 4 - 0
src/views/purchase/orderRecord/index.vue

@@ -5,6 +5,10 @@ import { useRouter } from "vue-router";
 import contentConfig from "./config/content.config";
 import searchFormConfig from "./config/search.config";
 
+defineOptions({
+  name: "orderRecord"
+});
+
 const searchCallback = ({ timer }: any) => {
   const [startTime, endTime] = timer;
   return {

+ 13 - 8
src/views/purchase/purchPay/component/approval-process/business-audit.vue

@@ -1,20 +1,23 @@
 <script setup lang="ts">
 import { ElForm } from "element-plus";
-import { useReviewProcess } from "../../hooks/use-review-process";
+import { useReviewProcess } from "/@/hooks";
+const status = {
+  fail: "5",
+  success: "2"
+};
 
 const emit = defineEmits(["changeStatus"]);
 
-const { handleAudit, formRef, rules, formData } = useReviewProcess({
-  failStatus: "5",
+const { handleChangeStatus, formRef, formRules, formData } = useReviewProcess({
+  failStatus: status.fail,
   callback: () => emit("changeStatus", formData.status)
 });
 </script>
 <template>
-  <h1 text-xl font-bold py-2>业务审核</h1>
   <el-form
     ref="formRef"
     :model="formData"
-    :rules="rules"
+    :rules="formRules"
     label-width="100px"
     flex
   >
@@ -22,8 +25,8 @@ const { handleAudit, formRef, rules, formData } = useReviewProcess({
       <div flex flex-col style="width: 50%">
         <el-form-item label="审核状态" prop="status">
           <el-select placeholder="请选择审核状态" v-model="formData.status">
-            <el-option label="通过" value="2" />
-            <el-option label="不通过" value="5" />
+            <el-option label="通过" :value="status.success" />
+            <el-option label="不通过" :value="status.fail" />
           </el-select>
         </el-form-item>
 
@@ -38,7 +41,9 @@ const { handleAudit, formRef, rules, formData } = useReviewProcess({
           />
         </el-form-item>
       </div>
-      <el-button type="primary" @click="handleAudit">提交审核结果</el-button>
+      <el-button type="primary" @click="handleChangeStatus"
+        >提交审核结果</el-button
+      >
     </div>
   </el-form>
 </template>

+ 11 - 4
src/views/purchase/purchPay/component/approval-process/financial-audit.vue

@@ -1,16 +1,21 @@
 <script setup lang="ts">
 import { ElForm } from "element-plus";
-import { useReviewProcess } from "../../hooks/use-review-process";
+import { useReviewProcess } from "/@/hooks";
 
 const emit = defineEmits(["changeStatus"]);
 
-const { handleAudit, formRef, formData, rules } = useReviewProcess({
+const { handleChangeStatus, formRef, formData, formRules } = useReviewProcess({
   failStatus: "6",
   callback: () => emit("changeStatus", formData.status)
 });
 </script>
 <template>
-  <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
+  <el-form
+    ref="formRef"
+    :model="formData"
+    :rules="formRules"
+    label-width="100px"
+  >
     <div flex justify-between w-full>
       <div flex flex-col style="width: 50%">
         <el-form-item label="审核状态" prop="status">
@@ -32,7 +37,9 @@ const { handleAudit, formRef, formData, rules } = useReviewProcess({
         </el-form-item>
       </div>
 
-      <el-button type="primary" @click="handleAudit">提交审核结果</el-button>
+      <el-button type="primary" @click="handleChangeStatus"
+        >提交审核结果</el-button
+      >
     </div>
   </el-form>
 </template>

+ 2 - 3
src/views/purchase/purchPay/component/approval-process/payment-receipt.vue

@@ -72,7 +72,7 @@ const handlePaymentReceipt = () => {
           />
           <div class="text" v-else>点击上传</div>
         </el-upload>
-        <span>大小:小于1M; 尺寸:100*100; 类型:jpg.png.bmp.jpeg</span>
+        <span text-sm>大小:小于1M; 尺寸:100*100; 类型:jpg.png.bmp.jpeg</span>
       </div>
     </el-form-item>
 
@@ -99,12 +99,11 @@ const handlePaymentReceipt = () => {
   border: 1px dashed var(--el-border-color);
 
   .text {
-    font-size: 28px;
+    font-size: 20px;
     color: #8c939d;
     width: 178px;
     height: 178px;
     text-align: center;
-    font-size: 22px;
     line-height: 178px;
   }
 

+ 3 - 3
src/views/purchase/purchPay/component/create-payment/index.vue

@@ -6,7 +6,6 @@ import { ElForm } from "element-plus";
 
 defineProps<{
   paymentList: Array<Record<string, string>>;
-  readonly: boolean;
 }>();
 
 const emit = defineEmits(["createPayment"]);
@@ -27,6 +26,7 @@ function handleCreate() {
 </script>
 
 <template>
+  <h1 text-xl font-bold py-2>新建采购付款申请</h1>
   <!-- 新建  显示选择的对账列表 -->
   <el-form ref="formRef" :model="formData" :rules="create_rules">
     <el-form-item label="订单对账" prop="payNo">
@@ -35,11 +35,11 @@ function handleCreate() {
         @change-payment-detail="changePaymentDetail"
       />
     </el-form-item>
-    <el-form-item label="付款金额" prop="pay_fee" v-if="readonly">
+    <el-form-item label="付款金额" prop="pay_fee">
       <el-input placeholder="请输入付款金额" v-model="formData.pay_fee" />
     </el-form-item>
 
-    <el-form-item pl-20 v-if="readonly">
+    <el-form-item pl-20>
       <el-button type="primary" @click="handleCreate">保存</el-button>
     </el-form-item>
   </el-form>

+ 17 - 2
src/views/purchase/purchPay/component/payment-detail/index.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { detailColumns } from "../../config/configs";
+import { detailColumns, paymentOptions } from "../../config/configs";
 defineProps<{
   detail: Record<string, string>;
 }>();
@@ -11,7 +11,22 @@ defineProps<{
       v-for="(item, index) in detailColumns"
       :label="item.label"
       :key="index"
-      >{{ detail[item.field] }}</el-descriptions-item
     >
+      <template v-if="item.field === 'status'">
+        <el-tag>{{
+          paymentOptions.find(s => s.value === detail.status)?.label
+        }}</el-tag>
+      </template>
+
+      <template v-else-if="item.field === 'return_img'">
+        <el-image
+          style="height: 30px"
+          :src="detail.return_img"
+          :preview-src-list="[detail.return_img]"
+        />
+      </template>
+
+      <span v-else>{{ detail[item.field] }}</span>
+    </el-descriptions-item>
   </el-descriptions>
 </template>

+ 9 - 8
src/views/purchase/purchPay/config/content.config.ts

@@ -32,12 +32,12 @@ const columns = [
     minWidth: 180,
     align: "left"
   },
-  {
-    label: "供应商名称",
-    prop: "supplierName",
-    minWidth: 180,
-    align: "left"
-  },
+  // {
+  //   label: "供应商名称",
+  //   prop: "supplierName",
+  //   minWidth: 180,
+  //   align: "left"
+  // },
   {
     label: "业务公司名称",
     prop: "companyName",
@@ -74,7 +74,7 @@ const columns = [
   },
   {
     label: "状态",
-    prop: "status",
+    prop: "dstatus",
     minWidth: 120,
     cellRenderer: ({ row, props }) =>
       h(
@@ -83,7 +83,8 @@ const columns = [
           size: props.size
         },
         {
-          default: () => paymentOptions.find(s => row.status === s.value).label
+          default: () =>
+            paymentOptions.find(s => row.dstatus === s.value)?.label
         }
       )
   },

+ 6 - 10
src/views/purchase/purchPay/detail.vue

@@ -114,15 +114,11 @@ onMounted(() => initalData());
 <template>
   <div class="pay__content" bg-white>
     <!-- 创建采购付款订单 -->
-    <template v-if="isCreate">
-      <h1 text-xl font-bold py-2>新建采购付款申请</h1>
-      <CreatePayment
-        v-if="isCreate"
-        :paymentList="paymentList"
-        :readonly="isCreate"
-        @create-payment="requesetCreatePayment"
-      />
-    </template>
+    <CreatePayment
+      v-if="isCreate"
+      :paymentList="paymentList"
+      @create-payment="requesetCreatePayment"
+    />
 
     <!-- 采购付款订单详情 -->
     <ElTabs v-else>
@@ -150,7 +146,7 @@ onMounted(() => initalData());
             <FinancialAudit @change-status="requestStatusPayment" />
           </ElCollapseItem>
 
-          <ElCollapseItem title="付款回执" name="4" v-if="showPaymentReceipt">
+          <ElCollapseItem name="4" title="付款回执" v-if="showPaymentReceipt">
             <PaymentReceipt @change-status="requestStatusPayment" />
           </ElCollapseItem>
         </ElCollapse>

+ 0 - 41
src/views/purchase/purchPay/hooks/use-review-process.ts

@@ -1,41 +0,0 @@
-import { ElForm, FormRules } from "element-plus";
-import { reactive, ref, watchEffect } from "vue";
-
-export function useReviewProcess({
-  callback,
-  failStatus
-}: {
-  callback: () => void;
-  failStatus: string;
-}) {
-  const formRef = ref<InstanceType<typeof ElForm>>(null);
-
-  const formData = reactive({
-    status: "",
-    remark: ""
-  });
-
-  const rules = reactive<FormRules>({
-    status: [{ required: true, trigger: "change", message: "请选择审核状态" }],
-    remark: [{ required: false, trigger: "change", message: "请选择审核状态" }]
-  });
-
-  function handleAudit() {
-    formRef.value.validate(isValid => {
-      if (isValid) callback();
-    });
-  }
-
-  //不通过时备注必填
-  watchEffect(() => {
-    const { status } = formData;
-    rules.remark[0].required = status === failStatus;
-  });
-
-  return {
-    rules,
-    formRef,
-    formData,
-    handleAudit
-  };
-}

+ 4 - 0
src/views/purchase/purchPay/index.vue

@@ -5,6 +5,10 @@ import { useRouter } from "vue-router";
 import contentConfig from "./config/content.config";
 import searchFormConfig from "./config/search.config";
 
+defineOptions({
+  name: "purchPay"
+});
+
 const { pageContentRef, handleSearchClick, handleResetClick } = usePageSearch();
 
 const { push } = useRouter();

+ 14 - 21
src/views/purchase/ticketReturn/components/approval-process/financial-audit.vue

@@ -1,41 +1,34 @@
 <script setup lang="ts">
-import { ElForm, FormRules } from "element-plus";
-import { reactive, ref, watchEffect } from "vue";
+import { useReviewProcess } from "/@/hooks";
 
-const emit = defineEmits(["changeStatus"]);
-const formRef = ref<InstanceType<typeof ElForm>>(null);
+const process_status = {
+  successStatus: "6",
+  failstatus: "11"
+};
 
-const rules = reactive<FormRules>({
-  remark: [{ required: true, trigger: "change", message: "请输入备注" }],
-  status: [{ required: true, trigger: "change", message: "请输入审核状态" }]
-});
+const emit = defineEmits(["changeStatus"]);
 
-const formData = reactive({
-  status: "",
-  remark: ""
+const { formRef, formRules, formData, handleChangeStatus } = useReviewProcess({
+  callback: () => emit("changeStatus", formData),
+  failStatus: process_status.failstatus
 });
-
-const handleChangeStatus = () =>
-  formRef.value.validate(isValid => isValid && emit("changeStatus", formData));
-
-watchEffect(() => (rules.remark[0].required = formData.status === "11"));
 </script>
 
 <template>
   <el-form
-    inline
-    :rules="rules"
+    :rules="formRules"
     :model="formData"
     ref="formRef"
     label-width="100px"
-    flex
     justify-between
+    inline
+    flex
   >
     <div flex flex-col style="width: 50%">
       <el-form-item label="审核状态" prop="status">
         <el-select placeholder="请选择审核状态" v-model="formData.status">
-          <el-option value="6" label="通过" />
-          <el-option value="11" label="不通过" />
+          <el-option :value="process_status.successStatus" label="通过" />
+          <el-option :value="process_status.failstatus" label="不通过" />
         </el-select>
       </el-form-item>
 

+ 0 - 244
src/views/purchase/ticketReturn/components/create-ticket-dialog.vue

@@ -1,244 +0,0 @@
-<script setup lang="ts">
-import { ElForm, ElInput, ElMessage, UploadProps } from "element-plus";
-import { ticketFormItems, ticketAddRules } from "../config/configs";
-import { computed, ref, watch } from "vue";
-import { httpAdd } from "/@/api/purchase/ticketReturn";
-import { useResponseHandle } from "/@/hooks";
-import { httpImageUpload, baseUrl } from "/@/api/other";
-import { useUserStore } from "/@/store/modules/user";
-
-const visible = ref(false);
-
-//支持的图片格式
-const types = ["png", "jpg", "bmp", "jpeg"].map(format => "image/" + format);
-
-const defaultFormData = {
-  invName: "",
-  invCode: "",
-  invNumber: "",
-  checkNumber: "",
-  gold: "",
-  open_time: ""
-};
-
-const responseHandle = useResponseHandle();
-
-const payNo = ref("");
-const invType = ref("");
-const loading = ref(false);
-const formData = ref<Record<string, string>>({});
-const formRef = ref<InstanceType<typeof ElForm>>(null);
-const formItems = computed(() => ticketFormItems[invType.value] || []);
-const showScanInput = computed(() => invType.value === "1");
-const scanInputValue = ref("");
-const rules = ref({ ...ticketAddRules });
-const userStore = useUserStore();
-
-//图片上传前判断类型大小尺寸
-const onBeforeReturnImageUpload: UploadProps["beforeUpload"] = ({
-  type,
-  size
-}) => {
-  if (!types.includes(type)) {
-    ElMessage.error("请上传jpg.png.bmp.jpeg类型图片");
-    return false;
-  }
-
-  if (size / 1024 / 1024 > 1) {
-    ElMessage.error("图片大小超过1M");
-    return false;
-  }
-};
-
-//保存采购回票
-function handleSave() {
-  formRef.value.validate(async isValid => {
-    if (!isValid) return;
-    loading.value = true;
-
-    const { code, message } = await httpAdd({
-      payNo: payNo.value,
-      invType: invType.value,
-      ...formData.value
-    });
-
-    responseHandle({
-      code,
-      message,
-      handler: () => (visible.value = false)
-    });
-
-    loading.value = false;
-  });
-}
-
-function handleClose() {
-  formData.value = {};
-  invType.value = "";
-  scanInputValue.value = "";
-}
-
-function handleScanKeydown(evt: KeyboardEvent) {
-  const { keyCode } = evt;
-
-  if (keyCode !== 13) return;
-
-  //校验扫描枪值是否含有中文逗号
-  if (scanInputValue.value.indexOf(",") >= 0) {
-    ElMessage.error("不能包含中文逗号");
-    return (scanInputValue.value = "");
-  }
-
-  const chunks = scanInputValue.value.split(",");
-  console.log(chunks);
-  const keys = Object.keys(defaultFormData);
-
-  keys.forEach((key, index) => (formData.value[key] = chunks[index]));
-
-  scanInputValue.value = "";
-}
-
-const handleRequeset: UploadProps["httpRequest"] = async ({ file }) => {
-  const _formData = new FormData();
-  _formData.append("img", file);
-  _formData.append("token", userStore.token);
-  const { message, code, data } = await httpImageUpload(_formData);
-
-  responseHandle({
-    message,
-    code,
-    handler: () => {
-      const { url, name } = data[0];
-      formData.value.inv_img = baseUrl + "/" + url;
-      formData.value.invName = name;
-    }
-  });
-};
-
-watch(
-  () => formItems.value,
-  newVal => {
-    const newFormData: Record<string, string> = {};
-    newVal.forEach(item => (newFormData[item.prop] = ""));
-    formData.value = newFormData;
-  }
-);
-
-defineExpose({
-  onDisplay: (_payNo: string) => {
-    visible.value = true;
-    payNo.value = _payNo;
-  }
-});
-</script>
-
-<template>
-  <el-dialog
-    v-model="visible"
-    custom-class="ticket__dialog"
-    title="添加发票"
-    center
-    destroy-on-close
-    @close="handleClose"
-  >
-    <el-form label-width="100px" :model="formData" :rules="rules" ref="formRef">
-      <el-form-item label="申请类型">
-        <el-select v-model="invType">
-          <el-option label="手工添加" value="1" />
-          <el-option label="ocr识别" value="2" />
-        </el-select>
-      </el-form-item>
-
-      <!-- 扫码枪识别 -->
-      <el-form-item label="扫码枪" v-if="showScanInput">
-        <el-input
-          type="textarea"
-          @keydown="handleScanKeydown"
-          v-model="scanInputValue"
-        />
-      </el-form-item>
-
-      <el-form-item
-        v-for="(item, index) in formItems"
-        :label="item.label"
-        :prop="item.prop"
-        :key="index"
-      >
-        <template v-if="item.prop === 'invType'">
-          <el-select v-model="formData[item.prop]" placeholder="请选择发票类型">
-            <el-option
-              v-for="(type, index) in item.options"
-              :label="type.label"
-              :value="type.value"
-              :key="index"
-            />
-          </el-select>
-        </template>
-
-        <template v-else-if="item.prop === 'inv_img'">
-          <div>
-            <el-upload
-              class="upload"
-              :before-upload="onBeforeReturnImageUpload"
-              :http-request="handleRequeset"
-              :show-file-list="false"
-            >
-              <img
-                class="avatar"
-                :src="formData[item.prop]"
-                v-if="formData[item.prop]"
-              />
-              <div class="text" v-else>点击上传</div>
-            </el-upload>
-            <span>大小:小于1M; 尺寸:100*100; 类型:jpg.png.bmp.jpeg</span>
-          </div>
-        </template>
-
-        <template v-else-if="item.prop === 'open_time'">
-          <el-date-picker
-            v-model="formData[item.prop]"
-            placeholder="请输入开票日期"
-          />
-        </template>
-
-        <template v-else>
-          <el-input v-model="formData[item.prop]" />
-        </template>
-      </el-form-item>
-
-      <el-form-item justify-end flex w-full>
-        <el-button type="primary" :loading="loading" @click="handleSave"
-          >保存</el-button
-        >
-      </el-form-item>
-    </el-form>
-  </el-dialog>
-</template>
-
-<style lang="scss" scoped>
-.upload {
-  width: 178px;
-  height: 178px;
-  display: block;
-  border: 1px dashed var(--el-border-color);
-
-  .icon {
-    font-size: 28px;
-    color: #8c939d;
-    width: 178px;
-    height: 178px;
-    text-align: center;
-  }
-
-  .text {
-    font-size: 28px;
-    line-height: 178px;
-    width: 178px;
-    text-align: center;
-  }
-
-  &:hover {
-    border-color: #409eff;
-  }
-}
-</style>

+ 0 - 25
src/views/purchase/ticketReturn/components/payment-list-dialog.vue

@@ -1,25 +0,0 @@
-<script setup lang="ts">
-import { ref } from "vue";
-import PaymentTable from "./payment-table.vue";
-import CreateTicketDialog from "./create-ticket-dialog.vue";
-
-const visible = ref(false);
-
-const ticketDialogRef = ref<InstanceType<typeof CreateTicketDialog>>(null);
-
-function handleAdd({ payNo }) {
-  ticketDialogRef.value.onDisplay(payNo);
-}
-
-defineExpose({
-  onDisplay: () => (visible.value = true)
-});
-</script>
-
-<template>
-  <el-dialog v-model="visible" title="新建采购回票" center destroy-on-close>
-    <PaymentTable @add-btn-click="handleAdd" />
-
-    <CreateTicketDialog ref="ticketDialogRef" />
-  </el-dialog>
-</template>

+ 0 - 53
src/views/purchase/ticketReturn/components/payment-table.vue

@@ -1,53 +0,0 @@
-<script setup lang="ts">
-import { onMounted, ref } from "vue";
-import { purchase_columns } from "../config/configs";
-import { ElTable } from "element-plus";
-import { useResponseHandle } from "/@/hooks";
-import { httpList } from "/@/api/purchase/orderRecord";
-
-const emit = defineEmits(["addBtnClick"]);
-const tableRef = ref<InstanceType<typeof ElTable>>(null);
-const loading = ref(false);
-const purchaseList = ref([]);
-const responseHandle = useResponseHandle();
-
-async function requestPurchaseList() {
-  loading.value = true;
-  const { code, message, data } = await httpList({});
-
-  responseHandle({
-    code,
-    message,
-    handler: () => (purchaseList.value = data.list)
-  });
-  loading.value = false;
-}
-
-onMounted(() => requestPurchaseList());
-</script>
-
-<template>
-  <el-table
-    border
-    v-loading="loading"
-    ref="tableRef"
-    row-key="id"
-    size="small"
-    :data="purchaseList"
-  >
-    <el-table-column
-      v-for="(col, index) in purchase_columns"
-      :key="index"
-      v-bind="col"
-      show-overflow-tooltip
-    />
-
-    <el-table-column fixed="right" label="操作">
-      <template #="{ row }">
-        <el-button link type="primary" @click="emit('addBtnClick', row)"
-          >添加</el-button
-        >
-      </template>
-    </el-table-column>
-  </el-table>
-</template>

+ 2 - 4
src/views/purchase/ticketReturn/config/configs.ts

@@ -1,5 +1,4 @@
 import { FormRules } from "element-plus";
-import { inv_type_list } from "/@/utils/status";
 
 export const purchase_columns = [
   {
@@ -89,9 +88,8 @@ export const ticketFormItems = {
   //手工开票
   "1": [
     {
-      label: "发票类型",
-      prop: "invType",
-      options: inv_type_list
+      label: "发票名称",
+      prop: "invName"
     },
     {
       label: "发票代码",

+ 3 - 2
src/views/purchase/ticketReturn/config/content.config.ts

@@ -35,7 +35,7 @@ const columns = [
   },
   {
     label: "发票类型",
-    prop: "invType",
+    prop: "invoiceType",
     cellRenderer: ({ row, props }) =>
       h(
         ElTag,
@@ -43,7 +43,8 @@ const columns = [
           size: props.size
         },
         {
-          default: () => inv_type_list.find(s => row.invType === s.value)?.label
+          default: () =>
+            inv_type_list.find(s => row.invoiceType === s.hwy_value)?.label
         }
       )
   },

+ 10 - 14
src/views/purchase/ticketReturn/detail.vue

@@ -1,19 +1,18 @@
 <script setup lang="ts">
-import { computed, onMounted, ref, watchEffect } from "vue";
+import { computed, onMounted, ref } from "vue";
 import { useRoute, useRouter } from "vue-router";
 import { httpStatus, httpInfo } from "/@/api/purchase/ticketReturn";
 import { useResponseHandle } from "/@/hooks";
 
-import { reviewProcessMap } from "./config/configs";
-
 import TicketDetail from "./components/ticket-detail/index.vue";
 import FinancialAudit from "./components/approval-process/financial-audit.vue";
+import Authentication from "./components/approval-process/authentication.vue";
+import Confirm from "./components/approval-process/confirm.vue";
 
 const { query } = useRoute();
 const { push } = useRouter();
 const hpNo = computed(() => query.id);
-const collapses = ref(["0", "1"]);
-const currentProcess = ref<Partial<typeof reviewProcessMap[0]> | null>(null);
+const collapses = ref(["0", "1", "2", "3"]);
 const invDetail = ref<Record<string, string> | null>(null);
 const responseHandle = useResponseHandle();
 
@@ -57,15 +56,6 @@ async function requestChangeInvStatus(otherParams: any) {
 
 //初始化采购回票详情数据
 onMounted(() => requesetInvDetail());
-
-//拿到汇款单详情后 根据详情状态显示对应流程
-watchEffect(() => {
-  if (!invDetail.value) return;
-  const { status } = invDetail.value;
-  currentProcess.value = reviewProcessMap.find(
-    process => process.showStatus === status
-  );
-});
 </script>
 
 <template>
@@ -83,6 +73,12 @@ watchEffect(() => {
           <ElCollapseItem name="1" title="财务审核" v-if="status === 3">
             <FinancialAudit @change-status="requestChangeInvStatus" />
           </ElCollapseItem>
+          <ElCollapseItem name="2" title="待认证" v-if="status === 6">
+            <Authentication @change-status="requestChangeInvStatus" />
+          </ElCollapseItem>
+          <ElCollapseItem name="3" title="待确认完成" v-if="status === 7">
+            <Confirm @change-status="requestChangeInvStatus" />
+          </ElCollapseItem>
         </ElCollapse>
       </ElTabPane>
 

+ 5 - 5
src/views/purchase/ticketReturn/index.vue

@@ -4,14 +4,14 @@ import { PageSearch, usePageSearch } from "/@/components/PageSearch";
 import { PageContent } from "/@/components/PageContent";
 import searchFormConfig from "./config/search.config";
 import contentConfig from "./config/content.config";
-import PaymentListDialog from "./components/payment-list-dialog.vue";
+import CreateTicketDialog from "./components/create-ticket-dialog/index.vue";
 import { useRouter } from "vue-router";
 
 defineOptions({
-  name: "finance"
+  name: "ticketReturn"
 });
 
-const PaymentDialog = ref<InstanceType<typeof PaymentListDialog>>(null);
+const TicketDialog = ref<InstanceType<typeof CreateTicketDialog>>(null);
 const { push } = useRouter();
 
 function searchCallback({ timer }: any) {
@@ -26,7 +26,7 @@ const { pageContentRef, handleResetClick, handleSearchClick } =
   usePageSearch(searchCallback);
 
 function handleCreate() {
-  PaymentDialog.value.onDisplay();
+  TicketDialog.value.onDisplay();
 }
 
 function toDetail({ hpNo }) {
@@ -57,7 +57,7 @@ function toDetail({ hpNo }) {
     </PageContent>
 
     <!-- 展示对账列表数据 根据对账列表payNo创建采购回单数据 -->
-    <PaymentListDialog ref="PaymentDialog" />
+    <CreateTicketDialog ref="TicketDialog" />
   </div>
 </template>