Procházet zdrojové kódy

feat(客户台账):客户台账页面

sufan před 5 měsíci
rodič
revize
055b1db74d

+ 5 - 0
src/api/dataSource/receiveLendingLedger/index.ts

@@ -19,3 +19,8 @@ export function submitFactoring(data) {
 export function getOtherDetail(params) {
   return http.get<any, AxiosResponseRes>('/payColl/standingBook/other/detail', { params })
 }
+
+// 其他业务修改 - 详情
+export function downloadFiles(data) {
+  return http.post<any, AxiosResponseRes>('/payColl/standingBook/downloadPayCollStandingBook', { data, responseType: 'arraybuffer' })
+}

+ 12 - 0
src/router/modules/dataSource.ts

@@ -91,6 +91,18 @@ export default {
       meta: {
         title: '客户台账'
       },
+      children: [
+        {
+          path: '/customerLedgerDetails',
+          name: 'CustomerLedgerDetails',
+          component: () => import('@/views/dataSource/customerLedger/details.vue'),
+          meta: {
+            title: '客户台账明细',
+            showLink: false,
+            activePath: '/customerLedger'
+          },
+        }
+      ]
     },
     {
       path: '/financialReport',

+ 111 - 0
src/views/dataSource/customerLedger/components/BaseInfo.vue

@@ -0,0 +1,111 @@
+<template>
+  <div class="base-info">
+    <el-form
+      ref="ruleFormRef"
+      :model="ruleForm"
+      :rules="rules"
+      label-position="top"
+      class="rule-form"
+    >
+      <el-form-item label="项目名称" prop="projectName">
+        <el-input
+          v-model="ruleForm.projectName"
+          disabled
+          placeholder="请输入项目名称"
+        />
+      </el-form-item>
+      <el-form-item label="业务编号" prop="businessNo">
+        <el-input
+          v-model="ruleForm.businessNo"
+          disabled
+          placeholder="请输入业务编号"
+        />
+      </el-form-item>
+      <el-form-item label="客户名称" prop="customerName">
+        <el-input
+          v-model="ruleForm.customerName"
+          disabled
+          placeholder="请输入客户名称"
+        />
+      </el-form-item>
+      <el-form-item label="统一社会信用编码" prop="customerName">
+        <el-input
+          v-model="ruleForm.customerName"
+          disabled
+          placeholder="请输入统一社会信用编码"
+        />
+      </el-form-item>
+      <el-form-item label="项目经理" prop="projectManagerName">
+        <el-input
+          v-model="ruleForm.projectManagerName"
+          disabled
+          placeholder="请输入项目经理"
+        />
+      </el-form-item>
+      <el-form-item label="所属部门" prop="orgName">
+        <el-input
+          v-model="ruleForm.orgName"
+          disabled
+          placeholder="请输入所属部门"
+        />
+      </el-form-item>
+      <el-form-item label="产品名称" prop="contractNo">
+        <el-input
+          v-model="ruleForm.contractNo"
+          disabled
+          placeholder="请输入产品名称"
+        />
+      </el-form-item>
+      <el-form-item label="风控经理" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入风控经理"
+        />
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import { reactive, ref, watch } from 'vue'
+  import type { FormInstance, FormRules } from 'element-plus'
+  const props = withDefaults(
+    defineProps<{
+      detailsInfo: any
+    }>(),
+    {
+      detailsInfo: () => {}
+    }
+  )
+
+  const ruleForm = ref({
+    projectName: '',
+    businessNo: '',
+    customerName: '',
+    contractNo: '',
+    quotaDisburseBatch: '',
+    applicantName: '',
+    debtorName: '',
+    currency: '',
+    contractAmount: '',
+    orgName: '',
+    projectManagerName: ''
+  })
+  const ruleFormRef = ref<FormInstance>()
+  const rules = reactive<FormRules>({})
+
+  watch(
+    () => props.detailsInfo,
+    (newV) => {
+      if (newV === undefined || !Object.keys(newV).length) return
+      ruleForm.value = newV
+    },
+    {
+      immediate: true,
+      deep: true
+    }
+  )
+</script>
+
+<style lang="scss" scoped></style>

+ 189 - 0
src/views/dataSource/customerLedger/components/ProjectStatus.vue

@@ -0,0 +1,189 @@
+<template>
+  <div class="base-info">
+    <cy-info-title class="mb-[10px] mt-[10px]">项目状态</cy-info-title>
+    <el-form
+      ref="ruleFormRef"
+      :model="ruleForm"
+      :rules="rules"
+      label-position="top"
+      class="rule-form"
+    >
+      <el-form-item label="项目状态" prop="projectName">
+        <el-input
+          v-model="ruleForm.projectName"
+          disabled
+          placeholder="请输入项目状态"
+        />
+      </el-form-item>
+      <el-form-item label="授信类型" prop="businessNo">
+        <el-input
+          v-model="ruleForm.businessNo"
+          disabled
+          placeholder="请输入授信类型"
+        />
+      </el-form-item>
+      <el-form-item label="营销完成日期" prop="customerName">
+        <el-input
+          v-model="ruleForm.customerName"
+          disabled
+          placeholder="请输入营销完成日期"
+        />
+      </el-form-item>
+      <el-form-item label="立项完成日期" prop="customerName">
+        <el-input
+          v-model="ruleForm.customerName"
+          disabled
+          placeholder="请输入立项完成日期"
+        />
+      </el-form-item>
+      <el-form-item label="尽调完成日期" prop="projectManagerName">
+        <el-input
+          v-model="ruleForm.projectManagerName"
+          disabled
+          placeholder="请输入尽调完成日期"
+        />
+      </el-form-item>
+      <el-form-item label="评审会完成日期" prop="orgName">
+        <el-input
+          v-model="ruleForm.orgName"
+          disabled
+          placeholder="请输入评审会完成日期"
+        />
+      </el-form-item>
+      <el-form-item label="授信起始日" prop="contractNo">
+        <el-input
+          v-model="ruleForm.contractNo"
+          disabled
+          placeholder="请输入授信起始日"
+        />
+      </el-form-item>
+      <el-form-item label="授信到期日" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入授信到期日"
+        />
+      </el-form-item>
+      <el-form-item label="授信币种" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入授信币种"
+        />
+      </el-form-item>
+      <el-form-item label="授信金额(原币)" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入授信金额(原币)"
+        />
+      </el-form-item>
+      <el-form-item label="授信金额(本位币)" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入授信金额(本位币)"
+        />
+      </el-form-item>
+      <el-form-item label="授信是否结束" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入授信是否结束"
+        />
+      </el-form-item>
+      <el-form-item label="授信期投放次数" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入授信期投放次数"
+        />
+      </el-form-item>
+      <el-form-item label="授信期投放金额(原币)" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入授信期投放金额(原币)"
+        />
+      </el-form-item>
+      <el-form-item label="授信期投放金额(本位币)" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入授信期投放金额(本位币)"
+        />
+      </el-form-item>
+      <el-form-item label="在途金额(原币)" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入在途金额(原币)"
+        />
+      </el-form-item>
+      <el-form-item label="在途金额(本位币)" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入在途金额(本位币)"
+        />
+      </el-form-item>
+      <el-form-item label="授信期首次投放日期" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入授信期首次投放日期"
+        />
+      </el-form-item>
+      <el-form-item label="支用批次" prop="quotaDisburseBatch">
+        <el-input
+          v-model="ruleForm.quotaDisburseBatch"
+          disabled
+          placeholder="请输入支用批次"
+        />
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import { reactive, ref, watch } from 'vue'
+  import type { FormInstance, FormRules } from 'element-plus'
+  const props = withDefaults(
+    defineProps<{
+      detailsInfo: any
+    }>(),
+    {
+      detailsInfo: () => {}
+    }
+  )
+
+  const ruleForm = ref({
+    projectName: '',
+    businessNo: '',
+    customerName: '',
+    contractNo: '',
+    quotaDisburseBatch: '',
+    applicantName: '',
+    debtorName: '',
+    currency: '',
+    contractAmount: '',
+    orgName: '',
+    projectManagerName: ''
+  })
+  const ruleFormRef = ref<FormInstance>()
+  const rules = reactive<FormRules>({})
+
+  watch(
+    () => props.detailsInfo,
+    (newV) => {
+      if (newV === undefined || !Object.keys(newV).length) return
+      ruleForm.value = newV
+    },
+    {
+      immediate: true,
+      deep: true
+    }
+  )
+</script>
+
+<style lang="scss" scoped></style>

+ 223 - 0
src/views/dataSource/customerLedger/components/RiskAdiust.vue

@@ -0,0 +1,223 @@
+<template>
+  <div class="risk-adiust">
+    <cy-info-title class="mb-[10px] mt-[10px]">风控调整</cy-info-title>
+    <el-form
+      ref="ruleFormRef"
+      :model="ruleForm"
+      :rules="rules"
+      label-position="top"
+      class="rule-form"
+    >
+      <el-form-item label="行业大类" prop="managementFeeRatio">
+        <el-input
+          v-model="ruleForm.managementFeeRatio"
+          placeholder="请输入行业大类"
+          :disabled="disabled"
+        />
+      </el-form-item>
+      <el-form-item label="行业小类" prop="managementFeeRatio">
+        <el-input
+          v-model="ruleForm.managementFeeRatio"
+          placeholder="请输入行业小类"
+          :disabled="disabled"
+        />
+      </el-form-item>
+      <el-form-item label="具体业务" prop="managementFeeRatio">
+        <el-input
+          v-model="ruleForm.managementFeeRatio"
+          placeholder="请输入具体业务"
+          :disabled="disabled"
+        />
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import { reactive, ref, watch } from 'vue'
+  import type { FormInstance, FormRules } from 'element-plus'
+  import { cloneDeep } from '@pureadmin/utils'
+  import { message } from '@/utils/message'
+  import { useDictStore } from '@/store/modules/dict'
+  import { codeChangeName } from '@utils'
+
+  useDictStore().getConstant([
+    'productType',
+    'payBackMethod',
+    'assetType',
+    'marginType',
+    'productTypeDetail',
+    { type: 'capitalList', query: { keyword: '' } }
+  ])
+  const { constant } = useDictStore()
+
+  const props = withDefaults(
+    defineProps<{
+      detailsInfo: any
+      disabled: boolean
+    }>(),
+    {
+      detailsInfo: () => {},
+      disabled: false
+    }
+  )
+
+  const ruleForm = ref({
+    payBackMethod: '',
+    managementFeeRatio: '',
+    financingRate: '',
+    deliveryAmount: '',
+    startDeliveryDate: '',
+    contractPlanExpiryDate: '',
+    planExpiryDate: '',
+    occupation: '',
+    risk: '',
+    businessType: '',
+    pool: '',
+    recourseRights: '',
+    disclosedUndisclosedFactoring: '',
+    positiveReverseFactoring: '',
+    productType: '',
+    productTypeDetail: '',
+    refinancingType: '',
+    bankExpiryDate: '',
+    estimateDeliveryDays: '',
+    actualDeliveryDays: '',
+    surplusPrincipal: '',
+    depositType: '',
+    depositAmount: '',
+    actualCollectionManagementFee: '',
+    actualCollectionInterest: '',
+    fundInstitutionName: '',
+    fundRefinancingInstitutionInfoId: '',
+    deliveryAmountStandard: '',
+    surplusPrincipalStandard: ''
+  })
+  const ruleFormRef = ref<FormInstance>()
+  const rules = reactive<FormRules>({
+    // payBackMethod: [
+    //   { required: true, message: '请选择还款方式', trigger: 'change' }
+    // ],
+    // managementFeeRatio: [
+    //   { required: true, message: '请输入管理费率', trigger: 'blur' }
+    // ],
+    // financingRate: [
+    //   { required: true, message: '请输入利息率', trigger: 'blur' }
+    // ],
+    // deliveryAmount: [
+    //   { required: true, message: '请输入投放金额', trigger: 'blur' }
+    // ],
+    // startDeliveryDate: [
+    //   { required: true, message: '请选择开始投放日期', trigger: 'change' }
+    // ],
+    // contractPlanExpiryDate: [
+    //   { required: true, message: '请选择合同计划到期日', trigger: 'change' }
+    // ],
+    // planExpiryDate: [
+    //   { required: true, message: '请选择计划到期日', trigger: 'change' }
+    // ],
+    // occupation: [
+    //   { required: true, message: '请选择资金占用', trigger: 'change' }
+    // ],
+    // risk: [
+    //   { required: true, message: '请选择是否公司承险', trigger: 'change' }
+    // ],
+    // businessType: [
+    //   { required: true, message: '请选择业务类型', trigger: 'change' }
+    // ],
+
+    // productType: [
+    //   { required: true, message: '请选择产品名称', trigger: 'change' }
+    // ],
+    productTypeDetail: [
+      { required: true, message: '请输入产品名称详情', trigger: 'change' }
+    ],
+    // refinancingType: [
+    //   { required: true, message: '请选择资产类别', trigger: 'change' }
+    // ],
+    // bankExpiryDate: [
+    //   { required: true, message: '请选择银行到期日', trigger: 'change' }
+    // ],
+    // estimateDeliveryDays: [
+    //   { required: true, message: '请输入预计投放天数', trigger: 'blur' }
+    // ],
+    // actualDeliveryDays: [
+    //   { required: true, message: '请输入实际投放天数', trigger: 'blur' }
+    // ],
+    // surplusPrincipal: [
+    //   { required: true, message: '请输入待还本金', trigger: 'blur' }
+    // ],
+    depositType: [
+      { required: true, message: '请选择保证金类别', trigger: 'change' }
+    ]
+    // depositAmount: [
+    //   { required: true, message: '请输入保证金金额', trigger: 'blur' }
+    // ],
+    // actualCollectionManagementFee: [
+    //   { required: true, message: '请输入实收管理费', trigger: 'blur' }
+    // ],
+    // actualCollectionInterest: [
+    //   { required: true, message: '请输入实收利息', trigger: 'blur' }
+    // ],
+    // fundInstitutionName: [
+    //   { required: true, message: '请选择资金出资方', trigger: 'blur' }
+    // ],
+    // deliveryAmountStandard: [
+    //   { required: true, message: '请输入投放金额(本位币)', trigger: 'blur' }
+    // ],
+    // surplusPrincipalStandard: [
+    //   { required: true, message: '请输入待还本金(本位币)', trigger: 'blur' }
+    // ]
+  })
+
+  watch(
+    () => props.detailsInfo,
+    (newV) => {
+      if (newV === undefined || !Object.keys(newV).length) return
+      const deepInfo = cloneDeep(newV)
+      for (const key in ruleForm.value) {
+        ruleForm.value[key] = deepInfo[key]
+      }
+    },
+    {
+      immediate: true,
+      deep: true
+    }
+  )
+  const assetInstitutionNameChange = (val) => {
+    const fundRefinancingInstitutionInfoId = codeChangeName(
+      constant.capitalList,
+      val,
+      'institutionName',
+      'id'
+    )
+    if (!fundRefinancingInstitutionInfoId) {
+      ruleForm.value.fundInstitutionName = ''
+    } else {
+      ruleForm.value.fundRefinancingInstitutionInfoId =
+        fundRefinancingInstitutionInfoId
+    }
+  }
+  const getParams = () => {
+    return new Promise((resolve, reject) => {
+      if (!ruleFormRef) return
+      ruleFormRef.value?.validate((valid, fields) => {
+        if (valid) {
+          const { productTypeDetail, depositType } = ruleForm.value
+          const params = {
+            productTypeDetail,
+            depositType
+          }
+          resolve(params)
+        } else {
+          reject('error submit!')
+        }
+      })
+    })
+  }
+  defineExpose({
+    getParams
+  })
+</script>
+
+<style lang="scss" scoped></style>

+ 60 - 0
src/views/dataSource/customerLedger/details.vue

@@ -0,0 +1,60 @@
+<template>
+  <div class="business-ledger-details">
+    <base-info :detailsInfo="detailsInfo" />
+    <risk-adiust
+      ref="riskAdiustRef"
+      :detailsInfo="detailsInfo"
+      :disabled="disabled"
+    />
+    <project-status
+      ref="projectStatusRef"
+      :detailsInfo="detailsInfo"
+      :disabled="disabled"
+    />
+    <div class="submit-btn" v-if="!disabled">
+      <el-button @click="() => $router.go(-1)">关闭</el-button>
+      <el-button type="primary" @click="submit">提交</el-button>
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import { ref, onMounted } from 'vue'
+  import BaseInfo from './components/BaseInfo.vue'
+  import RiskAdiust from './components/RiskAdiust.vue'
+  import ProjectStatus from './components/ProjectStatus.vue'
+  import { useRoute, useRouter } from 'vue-router'
+  import { getDetail, submitBusines } from '@api/dataSource/businessLedger'
+  import { message } from '@utils/message'
+
+  defineOptions({
+    name: 'CustomerLedgerDetails'
+  })
+
+  const route = useRoute()
+  const router = useRouter()
+  const disabled = ref(false)
+
+  onMounted(() => {
+    // if (route.query.type === 'see') disabled.value = true
+    // getDetailsList()
+  })
+
+  const detailsInfo = ref({})
+  const getDetailsList = () => {
+    getDetail({ id: route.query.id }).then((data) => {
+      detailsInfo.value = data.data
+    })
+  }
+
+  const riskAdiustRef = ref(null)
+  const submit = async () => {
+    const data = await riskAdiustRef.value.getParams()
+    submitBusines({ Loading: true, ...data, id: route.query.id }).then(() => {
+      message('修改成功', { type: 'success' })
+      router.go(-1)
+    })
+  }
+</script>
+
+<style lang="scss" scoped></style>

+ 54 - 36
src/views/dataSource/customerLedger/index.columns.tsx

@@ -5,13 +5,13 @@ import { forMatMoney } from '@utils'
 export function useColumns(search) {
   const router = useRouter()
   const columns: TableColumnList = [
-    {
-      type: 'selection',
-    },
+    // {
+    //   type: 'selection'
+    // },
     {
       label: '序号',
       type: 'index',
-      width: 55,
+      width: 55
     },
     {
       label: '业务编号',
@@ -24,22 +24,33 @@ export function useColumns(search) {
       showOverflowTooltip: true
     },
     {
-      label: '合同编号',
+      label: '授信类型',
       prop: 'contractNo',
       showOverflowTooltip: true
     },
     {
-      label: '支用批次',
+      label: '项目状态',
+      prop: 'quotaDisburseBatch',
+      showOverflowTooltip: true
+    },
+    {
+      label: '授信起始日',
       prop: 'quotaDisburseBatch',
       showOverflowTooltip: true
     },
     {
-      label: '币种',
+      label: '授信结束日',
+      prop: 'quotaDisburseBatch',
+      showOverflowTooltip: true
+    },
+    {
+      label: '授信币种',
       prop: 'currency',
       showOverflowTooltip: true
     },
-     {
-      label: '合同本金',
+
+    {
+      label: '授信金额',
       prop: 'contractAmount',
       showOverflowTooltip: true,
       cellRenderer: ({ row }) => {
@@ -47,26 +58,25 @@ export function useColumns(search) {
       }
     },
     {
-      label: '项目经理',
-      prop: 'projectManagerName',
-      showOverflowTooltip: true
-    },
-    {
-      label: '产品类型',
-      prop: 'productType',
+      label: '授信是否结束',
+      prop: 'quotaDisburseBatch',
       showOverflowTooltip: true
     },
     {
-      label: '合同计划投放日期',
-      prop: 'contractPlanDeliveryDate',
+      label: '授信期投放金额',
+      prop: 'contractAmount',
       showOverflowTooltip: true,
-      width: 140
+      cellRenderer: ({ row }) => {
+        return forMatMoney(row.contractAmount)
+      }
     },
-     {
-      label: '合同计划到期日',
-      prop: 'contractPlanExpiryDate',
+    {
+      label: '在途金额',
+      prop: 'contractAmount',
       showOverflowTooltip: true,
-      width: 130
+      cellRenderer: ({ row }) => {
+        return forMatMoney(row.contractAmount)
+      }
     },
     {
       label: '操作',
@@ -85,18 +95,21 @@ export function useColumns(search) {
             power: 'riskModify',
             tabPower: ['all'],
             category: 'edit'
-          },
+          }
         ]
-        const options = btnList.map(item => {
+        const options = btnList.map((item) => {
           return (
-            <el-tooltip effect='dark' content={item.msg} placement='top' >
-              <i class={item.icon} v-power={ item.power } onClick={() => { handlerOperate(item.category, row) } }></i>
+            <el-tooltip effect="dark" content={item.msg} placement="top">
+              <i
+                class={item.icon}
+                v-power={item.power}
+                onClick={() => {
+                  handlerOperate(item.category, row)
+                }}></i>
             </el-tooltip>
           )
         })
-        return <>
-         { options }
-        </>
+        return <>{options}</>
       }
     }
   ]
@@ -104,7 +117,6 @@ export function useColumns(search) {
   const tablePower = ({ item, tab, row }) => {
     const { tabPower, rowPower } = item
     if (rowPower) {
-
     } else {
       if (tabPower.includes(tab)) {
         return true
@@ -125,13 +137,19 @@ export function useColumns(search) {
     const { id } = row
     switch (type) {
       case 'edit':
-        router.push({ path: '/businessLedgerDetails', query: { id, type: 'edit' }})
-        break;
+        router.push({
+          path: '/customerLedgerDetails',
+          query: { id, type: 'edit' }
+        })
+        break
       case 'see':
-        router.push({ path: '/businessLedgerDetails', query: { id, type: 'see' }})
-        break;
+        router.push({
+          path: '/customerLedgerDetails',
+          query: { id, type: 'see' }
+        })
+        break
       default:
-        break;
+        break
     }
   }
   return {

+ 2 - 1
src/views/dataSource/customerLedger/index.vue

@@ -85,7 +85,8 @@
     useColumns(search)
 
   onMounted(() => {
-    fetchData()
+    tableData.value = [{ contractAmount: '213123123' }]
+    // fetchData()
   })
 
   const loading = ref<boolean>(false)

+ 22 - 1
src/views/dataSource/receiveLendingLedger/components/BaseInfo.vue

@@ -7,6 +7,13 @@
       label-position="top"
       class="rule-form"
     >
+      <el-form-item label="项目类型" prop="name" v-if="type === 'details'">
+        <el-input
+          v-model="ruleForm.name"
+          disabled
+          placeholder="请输入项目类型"
+        />
+      </el-form-item>
       <el-form-item label="客户名称" prop="creditSubjectName">
         <el-input
           v-model="ruleForm.creditSubjectName"
@@ -45,6 +52,17 @@
           placeholder="请输入批次号"
         />
       </el-form-item>
+      <el-form-item
+        label="项目名称"
+        prop="projectName"
+        v-if="type === 'details'"
+      >
+        <el-input
+          v-model="ruleForm.projectName"
+          disabled
+          placeholder="请输入项目名称"
+        />
+      </el-form-item>
       <el-form-item label="项目经理" prop="projectManagerName">
         <el-input
           v-model="ruleForm.projectManagerName"
@@ -136,6 +154,7 @@
   )
 
   const ruleForm = ref({
+    name: '保理业务',
     creditSubjectName: '',
     creditSubjectSocialCreditCode: '',
     businessNo: '',
@@ -150,7 +169,8 @@
     planExpiryDate: '',
     loanPensNum: '',
     surplusPrincipal: '',
-    interestCalculate: ''
+    interestCalculate: '',
+    projectName: ''
   })
   const ruleFormRef = ref<FormInstance>()
   const rules = reactive<FormRules>({})
@@ -161,6 +181,7 @@
       if (!Object.keys(newV).length) return
       ruleForm.value = newV
       ruleForm.value.interestCalculate = newV.interestCalculate ? '是' : '否'
+      ruleForm.value.name = '保理业务'
     },
     {
       immediate: true,

+ 3 - 3
src/views/dataSource/receiveLendingLedger/index.columns.tsx

@@ -5,9 +5,9 @@ import { forMatMoney } from '@utils'
 export function useColumns(search, activeName) {
   const router = useRouter()
   const columns: TableColumnList = [
-    {
-      type: 'selection',
-    },
+    // {
+    //   type: 'selection',
+    // },
     {
       label: '序号',
       type: 'index',

+ 10 - 2
src/views/dataSource/receiveLendingLedger/index.vue

@@ -65,7 +65,8 @@
           >
           <el-button
             icon="Download"
-            @click="fetchData"
+            @click="downloadClick"
+            v-if="activeName === 'all'"
             v-power="'downloadPaymentCollectionStandingBook'"
             >下载</el-button
           >
@@ -86,9 +87,10 @@
 <script lang="ts" setup>
   import { ref, reactive, onMounted } from 'vue'
   import type { TabsPaneContext } from 'element-plus'
-  import { getList } from '@api/dataSource/receiveLendingLedger'
+  import { getList, downloadFiles } from '@api/dataSource/receiveLendingLedger'
   import { useColumns } from './index.columns'
   import { useDictStore } from '@/store/modules/dict'
+  import { exportFile } from '@utils'
 
   defineOptions({
     name: 'ReceiveLendingLedger'
@@ -145,6 +147,12 @@
   const changeBusinessType = () => {
     fetchData('search')
   }
+
+  const downloadClick = () => {
+    downloadFiles({ ...search }).then((res) => {
+      exportFile(res)
+    })
+  }
 </script>
 
 <style lang="scss" scoped></style>