8 Commits

Author SHA1 Message Date
aixianling
6b030791bb feat(AppInsuranceAudit): 优化耳标号选择和养殖场查询功能
- 在 add.vue 中增加 targetUser 字段,用于查询养殖场
- 修改 AiEartagPicker 组件,增加 valueKey 属性默认值
- 优化代码格式和样式
2025-01-17 10:36:41 +08:00
aixianling
d0922c5309 feat(AppLoanAudit): 优化审核页面功能和样式
- 新增 AiAudit 组件用于审批状态选择
- 调整审批状态字段的验证规则
- 优化页面布局和样式,统一代码格式
- 引入新的组件和 API 接口
2025-01-17 10:17:55 +08:00
aixianling
d46bb82086 refactor(xumu): 解除 AppInsuranceAudit 页面的代码注释
- 移除了 handleAudit 方法中对 API 提交逻辑的注释
- 恢复了代码的原始功能,允许用户提交保险审核申请
2025-01-17 10:11:21 +08:00
aixianling
1ead1b2e9a refactor(xumu): 优化保险申请和审核功能
- 修改保险产品显示逻辑,使用字典标签展示
- 临时注释审计提交功能
- 优化审计状态选择器配置
- 条件渲染保单订单号输入框
2025-01-17 10:10:54 +08:00
aixianling
c5f4f9b356 feat(AppInsuranceAudit): 新增产品类型字典支持
- 在 AppInsuranceAudit 组件中加载 productType 字典
- 在 add 组件中使用 productType 字典显示投保产品名称
- 优化 add 组件中的表单布局
2025-01-17 09:51:05 +08:00
aixianling
3fbde7f193 feat(AppInsuranceAudit): 添加审批组件并优化投保页面
- 新增 AiAudit 组件用于审批操作
- 在投保页面引入并使用 AiAudit 组件
- 优化投保页面布局和样式
2025-01-17 09:25:50 +08:00
aixianling
e5abd1514b feat(AppInsuranceAudit): 添加保险资料审批功能
- 在保险资料卡片中增加审批选项
- 添加审批状态选择框,包括"同意"和"不同意"两个选项
- 审批选项为必选项,增加了验证规则
2025-01-17 09:13:17 +08:00
aixianling
33ed4fe5d5 style(xumu): 格式化 AppInsuranceAudit/add.vue 文件
- 使用 ESLint 规则格式化了代码
- 调整了缩进、空格和换行
- 修复了一些小的语法问题
2025-01-17 09:10:23 +08:00
6 changed files with 160 additions and 123 deletions

View File

@@ -111,7 +111,7 @@ export default {
<el-form-item label="保险产品" prop="productType" :rules="{required: isAdd||isEdit,message:'请选择 保险产品'}">
<ai-select v-if="isAdd||isEdit" v-model="detail.productType" :select-list="getProducts(detail.companyId)" :prop="{label:'name',value:'productType'}"
@select="v=>$set(detail,'insureType',v.children[0].insureType)"/>
<b v-else v-text="detail.productType"/>
<b v-else v-text="dict.getLabel('productType', detail.productType)"/>
</el-form-item>
<el-form-item label="投保类型">
<ai-input :value="dict.getLabel('insureType',detail.insureType)" placeholder="根据保险产品自动带出" :edit="isAdd||isEdit" readonly/>

View File

@@ -17,7 +17,7 @@ export default {
}
},
created() {
this.dict.load("auditStatus", "insureType", "insureStatus", "category", "variety")
this.dict.load("auditStatus", "insureType", "insureStatus", "category", "variety", "productType")
},
}
</script>

View File

@@ -2,6 +2,7 @@
import { mapState } from "vuex"
import AiEartagPicker from "@project/xumu/components/AiEartagPicker.vue";
import AiIdcardRemote from "@project/xumu/components/AiIdcardRemote.vue";
import AiAudit from "../components/AiAudit.vue";
const columns = [
{ label: "序号", type: "index" },
@@ -11,7 +12,7 @@ const columns = [
]
export default {
name: "iaAdd",
components: {AiIdcardRemote, AiEartagPicker},
components: { AiIdcardRemote, AiEartagPicker, AiAudit },
props: {
instance: Function,
permissions: Function,
@@ -103,8 +104,10 @@ export default {
userId && this.instance.post("/api/siteUser/querySiteByUserId", null, {
params: { userId }
}).then(res => {
if (res?.data) {
this.$set(this.detail, "farmId", res.data?.[0]?.id)
if (res?.data?.[0]) {
const { id } = res.data[0]
this.$set(this.detail, "farmId", id)
this.$set(this.detail, "targetUser", userId)
}
})
}
@@ -124,20 +127,24 @@ export default {
<ai-idcard-remote :instance="instance" @enter="getRemoteInfo" />
</el-form-item>
<el-form-item label="养殖场" prop="farmId" :rules="{ required: isAdd || isEdit, message: '请选择 养殖场' }">
<ai-select v-if="isAdd||isEdit" v-model="detail.farmId" :instance="instance" :action="`/api/siteUser/querySiteByUserId?userId=${userinfo.id}`" :prop="{label:'name'}"/>
<ai-select v-if="isAdd || isEdit" v-model="detail.farmId" :instance="instance"
:action="`/api/siteUser/querySiteByUserId?userId=${detail.targetUser}`" :prop="{ label: 'name' }" />
<b v-else v-text="detail.farmName" />
</el-form-item>
<el-form-item label="承保公司" prop="companyId" :rules="{ required: isAdd || isEdit, message: '请选择 承保公司' }">
<ai-select v-if="isAdd||isEdit" v-model="detail.companyId" :select-list="companyList" :prop="{label:'name'}" disabled/>
<ai-select v-if="isAdd || isEdit" v-model="detail.companyId" :select-list="companyList"
:prop="{ label: 'name' }" disabled />
<b v-else v-text="detail.companyName" />
</el-form-item>
<el-form-item label="保险产品" prop="productType" :rules="{ required: isAdd || isEdit, message: '请选择 保险产品' }">
<ai-select v-if="isAdd||isEdit" v-model="detail.productType" :select-list="getProducts(detail.companyId)" :prop="{label:'name',value:'productType'}"
<ai-select v-if="isAdd || isEdit" v-model="detail.productType" :select-list="getProducts(detail.companyId)"
:prop="{ label: 'name', value: 'productType' }"
@select="v => $set(detail, 'insureType', v.children[0].insureType)" />
<b v-else v-text="detail.productType"/>
<b v-else v-text="dict.getLabel('productType', detail.productType)" />
</el-form-item>
<el-form-item label="投保类型">
<ai-input :value="dict.getLabel('insureType',detail.insureType)" placeholder="根据保险产品自动带出" :edit="isAdd||isEdit" readonly/>
<ai-input :value="dict.getLabel('insureType', detail.insureType)" placeholder="根据保险产品自动带出"
:edit="isAdd || isEdit" readonly />
</el-form-item>
<el-form-item label="联系人">
<ai-input v-model="detail.contacts" :edit="isAdd || isEdit" />
@@ -159,7 +166,8 @@ export default {
<ai-card title="证件信息">
<div class="grid c-5 el-form--label-top">
<el-form-item v-for="(img, i) in formImages" :key="i" v-bind="img">
<ai-uploader v-if="isAdd||isEdit" v-model="detail[img.prop]" :instance="instance" :limit="1" value-is-url/>
<ai-uploader v-if="isAdd || isEdit" v-model="detail[img.prop]" :instance="instance" :limit="1"
value-is-url />
<el-image :src="detail[img.prop]" :preview-src-list="[detail[img.prop]]" v-else />
</el-form-item>
</div>
@@ -176,12 +184,18 @@ export default {
</ai-card>
<ai-card title="保险资料" v-if="isAudit">
<div class="grid">
<el-form-item label="保单订单号" prop="orderNo" :rules="{required:true,message:'请输入 保单订单号'}">
<ai-input v-model="detail.orderNo"/>
<el-form-item label="审批" prop="auditStatus"
:rules="[{ required: true, type: 'enum', enum: [2, 3], message: '请选择是否同意' },]">
<ai-audit @change="v => $set(detail, 'auditStatus', v)" />
</el-form-item>
<el-form-item label="保单资料" class="sc-2">
<el-form-item label="保单资料" class="sc-3">
<ai-uploader v-model="detail.picture" value-is-url :instance="instance" :limit="1" />
</el-form-item>
<el-form-item label="保单订单号" prop="orderNo" :rules="{ required: true, message: '请输入 保单订单号' }"
v-if="detail.auditStatus == 2">
<ai-input v-model="detail.orderNo" />
</el-form-item>
<el-form-item label="说明">
<ai-input type="textarea" :rows="3" v-model="detail.remarks" />
</el-form-item>

View File

@@ -2,6 +2,7 @@
import { mapState } from "vuex"
import AiEartagPicker from "@project/xumu/components/AiEartagPicker.vue";
import AiIdcardRemote from "@project/xumu/components/AiIdcardRemote.vue";
import AiAudit from "../components/AiAudit.vue";
const records = [
{ label: "序号", type: "index" },
@@ -12,7 +13,7 @@ const records = [
]
export default {
name: "loanAdd",
components: {AiIdcardRemote, AiEartagPicker},
components: { AiIdcardRemote, AiEartagPicker, AiAudit },
props: {
instance: Function,
permissions: Function,
@@ -133,16 +134,18 @@ export default {
<ai-idcard-remote :instance="instance" @enter="getRemoteInfo" />
</el-form-item>
<el-form-item label="养殖场" prop="farmId" :rules="{ required: isAdd, message: '请选择 养殖场' }">
<ai-select v-if="isAdd" v-model="detail.farmId" :instance="instance" :action="`/api/siteUser/querySiteByUserId?userId=${userinfo.id}`" :prop="{label:'name'}"/>
<ai-select v-if="isAdd" v-model="detail.farmId" :instance="instance"
:action="`/api/siteUser/querySiteByUserId?userId=${userinfo.id}`" :prop="{ label: 'name' }" />
<b v-else v-text="detail.farmName" />
</el-form-item>
<el-form-item label="贷款银行" prop="bankId" :rules="{ required: isAdd, message: '请选择 贷款银行' }">
<ai-select v-if="isAdd" v-model="detail.bankId" :select-list="bankList" :prop="{label:'name'}" disabled/>
<ai-select v-if="isAdd" v-model="detail.bankId" :select-list="bankList" :prop="{ label: 'name' }"
disabled />
<b v-else v-text="detail.bankName" />
</el-form-item>
<el-form-item label="贷款产品" prop="productType" :rules="{ required: isAdd, message: '请选择 贷款产品' }">
<ai-select v-if="isAdd" v-model="detail.productType"
:select-list="getProducts(detail.bankId)" :prop="{label:'name',value:'productType'}"/>
<ai-select v-if="isAdd" v-model="detail.productType" :select-list="getProducts(detail.bankId)"
:prop="{ label: 'name', value: 'productType' }" />
<b v-else v-text="dict.getLabel('loanProduct', detail.productType)" />
</el-form-item>
<el-form-item label="预期贷款额(万)" prop="loanAmount" :rules="{ required: isAdd, message: '请输入 预期贷款额' }">
@@ -192,12 +195,13 @@ export default {
<div class="grid">
<template v-if="isAudit">
<el-form-item label="审批状态" prop="auditStatus" :rules="{ required: true, message: '请选择审批状态' }">
<ai-select v-model="detail.auditStatus" dict="auditStatus"/>
<ai-audit @change="v => $set(detail, 'auditStatus', v)" />
</el-form-item>
<el-form-item label="贷款资料" class="sc-3">
<ai-uploader v-model="detail.picture" value-is-url :instance="instance" :limit="1" />
</el-form-item>
<el-form-item label="贷款合同号" prop="contractNo" :rules="{required:true,message:'请输入 报案号'}">
<el-form-item label="贷款合同号" prop="contractNo"
:rules="{ required: detail.auditStatus == 2, message: '请输入 报案号' }">
<ai-input v-model="detail.contractNo" />
</el-form-item>
<el-form-item label="说明">

View File

@@ -0,0 +1,19 @@
<script>
const options = [
{ dictValue: 2, dictName: '同意' },
{ dictValue: 3, dictName: '不同意' }
]
export default {
name: "AiAudit",
data() {
return {
options, auditStatus: ""
}
},
}
</script>
<template>
<section class="AiAudit">
<ai-select v-model="auditStatus" :select-list="options" v-bind="$attrs" v-on="$listeners" />
</section>
</template>

View File

@@ -6,7 +6,7 @@ export default {
value: { default: () => [] },
action: { default: "/api/breed/earTag/getEarTagByPenId" },
penId: String,
valueKey: String
valueKey: { type: String, default: "biochipEarNumber" }
},
model: {
prop: "value",