lxf před 1 rokem
rodič
revize
ef298a7952

+ 8 - 1
src/lang/cnLXF.js

@@ -157,7 +157,14 @@ export function cnLXF() {
       openingBank: "开户银行",
       interbankNumber: "联行号 / SWIFT Code",
     },
+    contract: {
+      name: "销售合同",
+      sellCorporation: "归属公司",
+      contractType: "合同类型",
+      code: "合同编码",
+      buyCorporation: "客户名称",
+      amount: "合同金额",
+    },
   };
-
   return cnLXF;
 }

+ 10 - 0
src/router/routerLXF.js

@@ -135,6 +135,16 @@ export function routesLXF() {
       name: "请款",
       component: () => import("../views/fund/funds/index.vue"),
     },
+    {
+      path: "priceSheet",
+      name: "报价单",
+      component: () => import("../views/salesContract/priceSheet/index.vue"),
+    },
+    {
+      path: "contract",
+      name: "销售合同",
+      component: () => import("../views/salesContract/contract/index.vue"),
+    },
   ];
   return routesLXF;
 }

+ 540 - 0
src/views/processApproval/components/Contract.vue

@@ -0,0 +1,540 @@
+<template>
+  <div class="form">
+    <van-tabs v-model:active="active">
+      <van-tab :title="proxy.t('funds.basicInformation')"> </van-tab>
+      <van-tab :title="proxy.t('funds.claimDetails')"> </van-tab>
+      <van-tab :title="proxy.t('funds.receiptPaymentInformation')"> </van-tab>
+      <div class="common-process-card" v-show="active == 0">
+        <div class="common-title">{{ proxy.t("funds.basicInformation") }}</div>
+        <testForm v-model="formData.data" :formOption="formOption" :formConfig="formConfig" :rules="rules" ref="formDom1"> </testForm>
+      </div>
+      <div class="common-process-card" v-show="active == 1">
+        <div class="common-title">{{ proxy.t("funds.claimDetails") }}</div>
+        <testForm v-model="formData.data" :formOption="formDetailOption" :formConfig="formDetailConfig" :rules="rules" ref="formDom2"> </testForm>
+        <testForm v-model="formData.data" :formOption="formDetailTwoOption" :formConfig="formDetailTwoConfig" :rules="rules" ref="formDom3"> </testForm>
+      </div>
+      <div class="common-process-card" v-show="active == 2">
+        <div class="common-title">{{ proxy.t("funds.receiptPaymentInformation") }}</div>
+        <testForm v-model="formData.data" :formOption="formReceiptPaymentOption" :formConfig="formReceiptPaymentConfig" :rules="rules" ref="formDom4">
+        </testForm>
+      </div>
+    </van-tabs>
+  </div>
+</template>
+
+<script setup>
+import { ref, getCurrentInstance, onMounted, defineProps, defineExpose, watch, reactive } from "vue";
+import { showSuccessToast, showFailToast } from "vant";
+import { useRoute } from "vue-router";
+import testForm from "@/components/testForm/index.vue";
+import { getUserInfo } from "@/utils/auth";
+
+// 接收父组件的传值
+const props = defineProps({
+  queryData: String,
+});
+const proxy = getCurrentInstance().proxy;
+const route = useRoute();
+const active = ref(0);
+const oldType = ref("");
+const formData = reactive({
+  data: {
+    corporationId: null,
+    departmentId: null,
+    type: null,
+    advanceId: null,
+    currency: null,
+    paymentRemarks: null,
+    accountRequestFundsDetailList: [],
+    total: null,
+    quantity: null,
+    paymentMethod: null,
+    accountManagementId: null,
+    username: null,
+    accountOpening: null,
+    openingBank: null,
+    interbankNumber: null,
+  },
+});
+const formDom1 = ref(null);
+const formDom2 = ref(null);
+const formDom3 = ref(null);
+const formDom4 = ref(null);
+const formOption = reactive({
+  readonly: false, //用于控制整个表单是否只读
+  disabled: false,
+  labelAlign: "top",
+  scroll: true,
+  labelWidth: "62pk",
+  hiddenSubmitBtn: true,
+});
+const formConfig = reactive([
+  {
+    type: "picker",
+    label: proxy.t("funds.corporationId"),
+    prop: "corporationId",
+    itemType: "onePicker",
+    showPicker: false,
+    fieldNames: {
+      text: "label",
+      value: "value",
+    },
+    data: [],
+    changeFn: (val, item) => {
+      formData.data.corporationId = val.selectedValues[0];
+      let list = item.data.filter((aa) => aa[item.fieldNames.value] == val.selectedValues[0]);
+      if (list && list.length > 0) {
+        formData.data.corporationIdName = list[0][item.fieldNames.text];
+      } else {
+        formData.data.corporationIdName = "";
+      }
+      if (formData.data.type == "3") {
+        getAdvanceList();
+      }
+      item.showPicker = false;
+    },
+  },
+  {
+    type: "picker",
+    label: proxy.t("funds.departmentId"),
+    prop: "departmentId",
+    itemType: "onePicker",
+    showPicker: false,
+    fieldNames: {
+      text: "label",
+      value: "value",
+    },
+    data: [],
+  },
+  {
+    type: "picker",
+    label: proxy.t("funds.type"),
+    prop: "type",
+    itemType: "onePicker",
+    showPicker: false,
+    fieldNames: {
+      text: "label",
+      value: "value",
+    },
+    data: [],
+    changeFn: (val, item) => {
+      if (val.selectedValues[0] === "3" || oldType.value === "3") {
+        for (let text in formData.data) {
+          if (text === "advanceId") {
+            formData.data.advanceId = "";
+          } else if (["corporationId", "corporationIdName", "type", "typeName", "paymentTime", "paymentTimeName"].includes(text)) {
+          } else if (text === "accountRequestFundsDetailList") {
+            formData.data.accountRequestFundsDetailList = [];
+          } else if (text === "fileList") {
+            formData.data.fileList = [];
+          } else {
+            delete formData.data[text];
+          }
+        }
+      }
+      oldType.value = JSON.parse(JSON.stringify(val.selectedValues[0]));
+      formData.data.type = JSON.parse(JSON.stringify(val.selectedValues[0]));
+      let list = item.data.filter((aa) => aa[item.fieldNames.value] == val.selectedValues[0]);
+      if (list && list.length > 0) {
+        formData.data.typeName = list[0][item.fieldNames.text];
+      } else {
+        formData.data.typeName = "";
+      }
+      if (val.selectedValues[0] === "3") {
+        formConfig[3].type = "picker";
+        getAdvanceList();
+      } else {
+        formConfig[3].type = "pickerAAA";
+      }
+      item.showPicker = false;
+    },
+  },
+  {
+    type: "pickerAAA",
+    label: proxy.t("funds.advanceId"),
+    prop: "advanceId",
+    itemType: "onePicker",
+    showPicker: false,
+    fieldNames: {
+      text: "label",
+      value: "value",
+    },
+    data: [],
+    changeFn: (val, item) => {
+      formData.data.advanceId = val.selectedValues[0];
+      let list = item.data.filter((aa) => aa[item.fieldNames.value] == val.selectedValues[0]);
+      if (list && list.length > 0) {
+        formData.data.advanceIdName = list[0][item.fieldNames.text];
+      } else {
+        formData.data.advanceIdName = "";
+      }
+      if (val.selectedValues && val.selectedValues.length > 0) {
+        proxy.post("/accountRequestFunds/detail", { id: val.selectedValues[0] }).then((res) => {
+          formData.data.departmentId = res.data.departmentId;
+          formData.data.currency = res.data.currency;
+          formData.data.paymentRemarks = res.data.paymentRemarks;
+          formData.data.accountRequestFundsDetailList = res.data.accountRequestFundsDetailList.map((item) => {
+            return {
+              costType: item.costType,
+              amount: item.amount,
+              contractId: item.contractId,
+              advanceAmount: item.amount,
+              remarks: item.remarks,
+            };
+          });
+          handleChangeAmount();
+          formData.data.advanceAmounts = res.data.total;
+          formData.data.quantity = res.data.quantity;
+          formData.data.paymentMethod = res.data.paymentMethod;
+          formData.data.accountManagementId = res.data.accountManagementId;
+          formData.data.name = res.data.name;
+          formData.data.accountOpening = res.data.accountOpening;
+          formData.data.openingBank = res.data.openingBank;
+          formData.data.interbankNumber = res.data.interbankNumber;
+          formDom1.value.formDataShowLabelOne();
+          formDom2.value.formDataListShowLabelOne();
+          formDom4.value.formDataShowLabelOne();
+        });
+      }
+      item.showPicker = false;
+    },
+  },
+  {
+    type: "picker",
+    label: proxy.t("funds.currency"),
+    prop: "currency",
+    itemType: "onePicker",
+    showPicker: false,
+    fieldNames: {
+      text: "label",
+      value: "value",
+    },
+    data: [],
+  },
+  {
+    type: "input",
+    label: proxy.t("funds.paymentRemarks"),
+    prop: "paymentRemarks",
+    itemType: "textarea",
+  },
+]);
+const formDetailOption = reactive({
+  readonly: false, //用于控制整个表单是否只读
+  disabled: false,
+  labelAlign: "top",
+  scroll: true,
+  labelWidth: "62pk",
+  hiddenSubmitBtn: true,
+  btnConfig: {
+    isNeed: true,
+    prop: "accountRequestFundsDetailList",
+    plain: true,
+    listTitle: proxy.t("funds.claimDetails"),
+    listConfig: [
+      {
+        type: "picker",
+        label: proxy.t("funds.costType"),
+        prop: "costType",
+        itemType: "onePicker",
+        showPicker: false,
+        readonly: false,
+        fieldNames: {
+          text: "label",
+          value: "value",
+        },
+        data: [],
+      },
+      {
+        type: "picker",
+        label: proxy.t("funds.contractId"),
+        prop: "contractId",
+        itemType: "onePicker",
+        showPicker: false,
+        readonly: false,
+        fieldNames: {
+          text: "label",
+          value: "value",
+        },
+        data: [],
+      },
+      {
+        type: "input",
+        label: proxy.t("funds.amount"),
+        prop: "amount",
+        itemType: "number",
+        changeFn: () => {
+          handleChangeAmount();
+        },
+      },
+      {
+        type: "input",
+        label: proxy.t("funds.remarks"),
+        prop: "remarks",
+        itemType: "textarea",
+      },
+    ],
+    clickFn: () => {
+      if (formData.data.accountRequestFundsDetailList && formData.data.accountRequestFundsDetailList.length > 0) {
+        formData.data.accountRequestFundsDetailList.push({
+          costType: null,
+          contractId: null,
+          amount: null,
+          remarks: null,
+        });
+      } else {
+        formData.data.accountRequestFundsDetailList = [
+          {
+            costType: null,
+            contractId: null,
+            amount: null,
+            remarks: null,
+          },
+        ];
+      }
+    },
+    deleteFn: (index) => {
+      formData.data.accountRequestFundsDetailList.splice(index, 1);
+      handleChangeAmount();
+    },
+  },
+});
+const formDetailConfig = reactive([]);
+const formDetailTwoOption = reactive({
+  readonly: false, //用于控制整个表单是否只读
+  disabled: false,
+  labelAlign: "top",
+  scroll: true,
+  labelWidth: "62pk",
+  hiddenSubmitBtn: true,
+});
+const formDetailTwoConfig = reactive([
+  {
+    type: "input",
+    label: proxy.t("funds.total"),
+    prop: "total",
+    itemType: "number",
+    readonly: true,
+  },
+  {
+    type: "input",
+    label: proxy.t("funds.quantity"),
+    prop: "quantity",
+    itemType: "number",
+  },
+]);
+const formReceiptPaymentOption = reactive({
+  readonly: false, //用于控制整个表单是否只读
+  disabled: false,
+  labelAlign: "top",
+  scroll: true,
+  labelWidth: "62pk",
+  hiddenSubmitBtn: true,
+});
+const formReceiptPaymentConfig = reactive([
+  {
+    type: "picker",
+    label: proxy.t("funds.paymentMethod"),
+    prop: "paymentMethod",
+    itemType: "onePicker",
+    showPicker: false,
+    fieldNames: {
+      text: "label",
+      value: "value",
+    },
+    data: [],
+  },
+  {
+    type: "picker",
+    label: proxy.t("funds.accountManagementId"),
+    prop: "accountManagementId",
+    itemType: "onePicker",
+    showPicker: false,
+    fieldNames: {
+      text: "label",
+      value: "value",
+    },
+    data: [],
+  },
+  {
+    type: "input",
+    label: proxy.t("funds.username"),
+    prop: "name",
+    itemType: "text",
+  },
+  {
+    type: "input",
+    label: proxy.t("funds.accountOpening"),
+    prop: "accountOpening",
+    itemType: "text",
+  },
+  {
+    type: "input",
+    label: proxy.t("funds.openingBank"),
+    prop: "openingBank",
+    itemType: "text",
+  },
+  {
+    type: "input",
+    label: proxy.t("funds.interbankNumber"),
+    prop: "interbankNumber",
+    itemType: "text",
+  },
+]);
+const rules = {
+  corporationId: [{ required: true, message: proxy.t("funds.corporationIdMsg") }],
+  departmentId: [{ required: true, message: proxy.t("funds.departmentIdMsg") }],
+  type: [{ required: true, message: proxy.t("funds.typeMsg") }],
+  advanceId: [{ required: true, message: proxy.t("funds.advanceIdMsg") }],
+  currency: [{ required: true, message: proxy.t("funds.currencyMsg") }],
+  costType: [{ required: true, message: proxy.t("funds.costTypeMsg") }],
+  contractId: [{ required: true, message: proxy.t("funds.contractIdMsg") }],
+  amount: [{ required: true, message: proxy.t("funds.amountMsg") }],
+  remarks: [{ required: true, message: proxy.t("funds.remarksMsg") }],
+  quantity: [{ required: true, message: proxy.t("funds.quantityMsg") }],
+  paymentMethod: [{ required: true, message: proxy.t("funds.paymentMethodMsg") }],
+  accountManagementId: [{ required: true, message: proxy.t("funds.accountManagementIdMsg") }],
+};
+const getAdvanceList = () => {
+  proxy
+    .post("/accountRequestFunds/page", {
+      pageNum: 1,
+      pageSize: 999,
+      type: "1",
+      writeOffStatus: "0",
+      corporationId: formData.data.corporationId,
+      status: "30",
+      createUser: getUserInfo().userId,
+    })
+    .then((res) => {
+      if (res.data.rows && res.data.rows.length > 0) {
+        formConfig[3].data = res.data.rows.map((item) => {
+          return {
+            label: item.createTime.substr(0, 10) + "  " + item.currency + " " + item.total,
+            value: item.id,
+          };
+        });
+      }
+    });
+};
+const getDict = () => {
+  let query = {
+    pageNum: 1,
+    pageSize: 999,
+    tenantId: getUserInfo().tenantId,
+  };
+  proxy.post("/corporation/page", { pageNum: 1, pageSize: 9999 }).then((res) => {
+    if (res.data.rows && res.data.rows.length > 0) {
+      formConfig[0].data = res.data.rows.map((item) => {
+        return {
+          label: item.name,
+          value: item.id,
+        };
+      });
+    }
+  });
+  proxy.get("/tenantDept/list", query).then((res) => {
+    if (res.data && res.data.length > 0) {
+      formConfig[1].data = res.data
+        .filter((item) => item.parentId != "0")
+        .map((item) => {
+          return {
+            label: item.deptName,
+            value: item.deptId,
+          };
+        });
+    }
+  });
+  proxy.post("/dictTenantData/page", { ...query, dictCode: "founds_type" }).then((res) => {
+    if (res.data.rows && res.data.rows.length > 0) {
+      formConfig[2].data = res.data.rows.map((item) => {
+        return {
+          label: item.dictValue,
+          value: item.dictKey,
+        };
+      });
+    }
+  });
+  proxy.post("/dictTenantData/page", { ...query, dictCode: "account_currency" }).then((res) => {
+    if (res.data.rows && res.data.rows.length > 0) {
+      formConfig[4].data = res.data.rows.map((item) => {
+        return {
+          label: item.dictValue,
+          value: item.dictKey,
+        };
+      });
+    }
+  });
+  proxy.post("/dictTenantData/page", { ...query, dictCode: "funds_cost_type" }).then((res) => {
+    if (res.data.rows && res.data.rows.length > 0) {
+      formDetailOption.btnConfig.listConfig[0].data = res.data.rows.map((item) => {
+        return {
+          label: item.dictValue,
+          value: item.dictKey,
+        };
+      });
+    }
+  });
+  proxy.post("/contract/page1", { pageNum: 1, pageSize: 9999, status: 30 }).then((res) => {
+    if (res.data.rows && res.data.rows.length > 0) {
+      formDetailOption.btnConfig.listConfig[1].data = res.data.rows.map((item) => {
+        return {
+          label: item.code,
+          value: item.id,
+        };
+      });
+    }
+  });
+  proxy.post("/dictTenantData/page", { ...query, dictCode: "funds_payment_method" }).then((res) => {
+    if (res.data.rows && res.data.rows.length > 0) {
+      formReceiptPaymentConfig[0].data = res.data.rows.map((item) => {
+        return {
+          label: item.dictValue,
+          value: item.dictKey,
+        };
+      });
+    }
+  });
+  proxy.post("/accountManagement/page", { pageNum: 1, pageSize: 9999 }).then((res) => {
+    if (res.data.rows && res.data.rows.length > 0) {
+      formReceiptPaymentConfig[1].data = res.data.rows.map((item) => {
+        return {
+          label: item.alias,
+          value: item.id,
+        };
+      });
+    }
+  });
+};
+getDict();
+const handleChangeAmount = () => {
+  let sum = 0;
+  for (let i = 0; i < formData.data.accountRequestFundsDetailList.length; i++) {
+    const e = formData.data.accountRequestFundsDetailList[i];
+    if (e.amount) {
+      sum = Number(parseFloat(Number(sum) + Number(e.amount)).toFixed(2));
+    }
+  }
+  formData.data.total = sum;
+};
+const handleSubmit = async () => {
+  return formData.data;
+};
+watch(
+  props.queryData,
+  () => {
+    if (props.queryData && [10, 20, 30].includes(route.query.processType)) {
+      for (const key in props.queryData) {
+        formData.data[key] = props.queryData[key];
+      }
+    }
+  },
+  {
+    deep: true,
+  }
+);
+defineExpose({
+  handleSubmit,
+});
+onMounted(() => {});
+</script>
+<style lang="scss" scoped></style>

+ 5 - 3
src/views/processApproval/processDtl.vue

@@ -135,6 +135,11 @@ let componentObj = ref({
 		component: SendFunds,
 		backUrl: '/main/funds',
 	},
+	contract_flow: {
+		title: '销售合同',
+		component: SendFunds,
+		backUrl: '/main/contract',
+	},
 })
 
 let dialogVisible = ref(false)
@@ -167,9 +172,7 @@ const handleSelectUser = () => {
 	handleSubmit()
 }
 const handleSubmit = async (_type) => {
-	console.log(makeDom)
 	const childrenData = await makeDom.value.handleSubmit()
-	console.log(childrenData, '子组件回来的数据')
 	if (childrenData) {
 		if (route.query.processType == 10 || route.query.processType == 30) {
 			proxy
@@ -212,7 +215,6 @@ const getRecords = (_id) => {
 				id: _id,
 			})
 			.then((res) => {
-				console.log(res, 123123)
 				for (let i = 0; i < res.data.recordList.length; i++) {
 					const element = res.data.recordList[i]
 					if (element.status === 2) {

+ 102 - 0
src/views/salesContract/contract/index.vue

@@ -0,0 +1,102 @@
+<template>
+  <van-nav-bar :title="$t('contract.name')" left-text="" left-arrow @click-left="onClickLeft" @click-right="onClickRight">
+    <template #right>{{ $t("common.add") }}</template>
+  </van-nav-bar>
+  <van-search v-model="req.keyword" :placeholder="$t('common.pleaseEnterKeywords')" @search="onRefresh" />
+  <van-pull-refresh v-model="loading" @refresh="onRefresh">
+    <div class="list">
+      <van-list v-model:loading="loading" :finished="finished" :finished-text="$t('common.noMore')" @load="getList" style="margin-bottom: 60px">
+        <commonList :data="listData" @onClick="toDtl" :config="listConfig"></commonList>
+      </van-list>
+    </div>
+  </van-pull-refresh>
+</template>
+<script setup>
+import { ref, getCurrentInstance } from "vue";
+import commonList from "@/components/common-list.vue";
+
+const proxy = getCurrentInstance().proxy;
+const onClickLeft = () => proxy.$router.push("/main/working");
+const onClickRight = () => {
+  proxy.$router.push({
+    path: "/main/processDtl",
+    query: {
+      flowKey: "contract_flow",
+    },
+  });
+};
+const req = ref({
+  pageNum: 1,
+  keyword: null,
+});
+const finished = ref(false);
+const onRefresh = () => {
+  req.value.pageNum = 1;
+  finished.value = false;
+  getList("refresh");
+};
+const loading = ref(false);
+const listData = ref([]);
+const getList = (type) => {
+  loading.value = true;
+  proxy
+    .post("/contract/page", req.value)
+    .then((res) => {
+      if (res.data.rows && res.data.rows.length > 0) {
+        res.data.rows = res.data.rows.map((item) => {
+          return {
+            ...item,
+            currencyAmount: item.currency + " " + item.amount,
+          };
+        });
+      }
+      listData.value = type === "refresh" ? res.data.rows : listData.value.concat(res.data.rows);
+      if (req.value.pageNum * 10 >= res.data.total) {
+        finished.value = true;
+      }
+      req.value.pageNum++;
+      loading.value = false;
+    })
+    .catch(() => {
+      loading.value = false;
+    });
+};
+const toDtl = (row) => {
+  // proxy.$router.push({
+  //   path: "/main/processDtl",
+  //   query: {
+  //     flowKey: "account_request_funds_flow",
+  //     id: row.flowInfoId,
+  //     processType: 20,
+  //   },
+  // });
+};
+const listConfig = ref([
+  {
+    label: proxy.t("contract.sellCorporation"),
+    prop: "sellCorporationName",
+  },
+  {
+    label: proxy.t("contract.contractType"),
+    prop: "contractType",
+  },
+  {
+    label: proxy.t("contract.code"),
+    prop: "code",
+  },
+  {
+    label: proxy.t("contract.buyCorporation"),
+    prop: "buyCorporationName",
+  },
+  {
+    label: proxy.t("contract.amount"),
+    prop: "currencyAmount",
+  },
+]);
+</script>
+
+<style lang="scss" scoped>
+.list {
+  min-height: 70vh;
+}
+</style>

+ 112 - 0
src/views/salesContract/priceSheet/index.vue

@@ -0,0 +1,112 @@
+<template>
+  <van-nav-bar :title="$t('funds.name')" left-text="" left-arrow @click-left="onClickLeft" @click-right="onClickRight">
+    <template #right>{{ $t("common.add") }}</template>
+  </van-nav-bar>
+  <van-search v-model="req.keyword" :placeholder="$t('common.pleaseEnterKeywords')" @search="onRefresh" />
+  <van-pull-refresh v-model="loading" @refresh="onRefresh">
+    <div class="list">
+      <van-list v-model:loading="loading" :finished="finished" :finished-text="$t('common.noMore')" @load="getList" style="margin-bottom: 60px">
+        <commonList :data="listData" @onClick="toDtl" :config="listConfig"></commonList>
+      </van-list>
+    </div>
+  </van-pull-refresh>
+</template>
+<script setup>
+import { ref, getCurrentInstance } from "vue";
+import commonList from "@/components/common-list.vue";
+
+const proxy = getCurrentInstance().proxy;
+const onClickLeft = () => proxy.$router.push("/main/working");
+const onClickRight = () => {
+  proxy.$router.push({
+    path: "/main/processDtl",
+    query: {
+      flowKey: "account_request_funds_flow",
+    },
+  });
+};
+const req = ref({
+  pageNum: 1,
+  keyword: null,
+});
+const finished = ref(false);
+const onRefresh = () => {
+  req.value.pageNum = 1;
+  finished.value = false;
+  getList("refresh");
+};
+const loading = ref(false);
+const listData = ref([]);
+const getList = (type) => {
+  loading.value = true;
+  proxy
+    .post("/accountRequestFunds/page", req.value)
+    .then((res) => {
+      if (res.data.rows && res.data.rows.length > 0) {
+        res.data.rows = res.data.rows.map((item) => {
+          let fundsText = "";
+          if (item.status == 10) {
+            fundsText = "审批中";
+          } else if (item.status == 20) {
+            fundsText = "驳回";
+          } else if (item.status == 30) {
+            fundsText = "审批通过";
+          }
+          if (item.accountPaymentStatus == "10") {
+            fundsText = fundsText + ", " + "已打款";
+          } else if (item.accountPaymentStatus == "20") {
+            fundsText = fundsText + ", " + "未打款";
+          }
+          return {
+            ...item,
+            currencyTotal: item.currency + " " + item.total,
+            fundsText: fundsText,
+          };
+        });
+      }
+      listData.value = type === "refresh" ? res.data.rows : listData.value.concat(res.data.rows);
+      if (req.value.pageNum * 10 >= res.data.total) {
+        finished.value = true;
+      }
+      req.value.pageNum++;
+      loading.value = false;
+    })
+    .catch(() => {
+      loading.value = false;
+    });
+};
+const toDtl = (row) => {
+  // proxy.$router.push({
+  //   path: "/main/processDtl",
+  //   query: {
+  //     flowKey: "account_request_funds_flow",
+  //     id: row.flowInfoId,
+  //     processType: 20,
+  //   },
+  // });
+};
+const listConfig = ref([
+  {
+    label: proxy.t("funds.createTime"),
+    prop: "createTime",
+  },
+  {
+    label: proxy.t("funds.currencyTotal"),
+    prop: "currencyTotal",
+  },
+  {
+    label: proxy.t("funds.paymentRemarks"),
+    prop: "paymentRemarks",
+  },
+  {
+    label: proxy.t("funds.fundsText"),
+    prop: "fundsText",
+  },
+]);
+</script>
+
+<style lang="scss" scoped>
+.list {
+  min-height: 70vh;
+}
+</style>