From ddd1bee1268a061e5aba59765a27cae003a18be5 Mon Sep 17 00:00:00 2001 From: hz Date: Fri, 12 Dec 2025 17:19:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(underwriting):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=BE=85=E6=A0=B8=E4=BF=9D=E7=8A=B6=E6=80=81=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E8=B7=AF=E7=94=B1=E8=B7=B3=E8=BD=AC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ORDER_STATUS 常量中新增 pending(待核保)状态 - 修复 navigateRouter 中 routerInfo 被覆盖的问题,使用对象展开保留原有属性 - 在 OrderList 组件中引入 ORDER_STATUS 并优化 navigateDataCollection 方法支持传递订单状态 - 更新 SupplementaryInformation 页面结构,引入 Sticky 组件优化提示信息展示 - 在 UnderwritingDataCollection 页面根据订单状态动态显示不同操作按钮及文案 - 调整页面样式确保组件布局适配新功能需求 --- src/views/ebiz/underwriting/OrderList.vue | 22 ++++++++-- .../underwriting/SupplementaryInformation.vue | 30 ++++++++----- .../UnderwritingDataCollection.vue | 44 +++++++++++++++++-- src/views/ebiz/underwriting/js/const.js | 7 +++ src/views/ebiz/underwriting/js/navigate.js | 4 +- 5 files changed, 88 insertions(+), 19 deletions(-) diff --git a/src/views/ebiz/underwriting/OrderList.vue b/src/views/ebiz/underwriting/OrderList.vue index f2b70fb0b..3dfbbc3e9 100644 --- a/src/views/ebiz/underwriting/OrderList.vue +++ b/src/views/ebiz/underwriting/OrderList.vue @@ -8,6 +8,9 @@ import { Search, Tabs, Tab, List, Sticky, Button } from 'vant' export default { name: 'saleList', computed: { + ORDER_STATUS() { + return ORDER_STATUS + }, LIST_TYPE() { return LIST_TYPE } @@ -40,6 +43,10 @@ export default { } }, methods: { + /** + * 初始化列表数据 + * @returns {Promise} + */ async fetchListData() { const params = { pageNum: this.currentPage, @@ -76,9 +83,11 @@ export default { async goDetail() {}, //新增 - navigateDataCollection() { + navigateDataCollection(orderStatus) { + const pathName = orderStatus === ORDER_STATUS.referred.value ? 'UnderwritingSupplementaryInformation' : 'UnderwritingDataCollection' navigateRouter({ - name: 'UnderwritingDataCollection' + name: pathName, + params: { orderStatus } }) } } @@ -104,10 +113,15 @@ export default { error-text="请求失败,点击重新加载" @load="loadMore" > - + - + diff --git a/src/views/ebiz/underwriting/SupplementaryInformation.vue b/src/views/ebiz/underwriting/SupplementaryInformation.vue index a59079352..02eae23d5 100644 --- a/src/views/ebiz/underwriting/SupplementaryInformation.vue +++ b/src/views/ebiz/underwriting/SupplementaryInformation.vue @@ -1,9 +1,9 @@ diff --git a/src/views/ebiz/underwriting/UnderwritingDataCollection.vue b/src/views/ebiz/underwriting/UnderwritingDataCollection.vue index 971630dd5..e5458b50c 100644 --- a/src/views/ebiz/underwriting/UnderwritingDataCollection.vue +++ b/src/views/ebiz/underwriting/UnderwritingDataCollection.vue @@ -13,7 +13,8 @@ import filter from '@/filters' import { getRelatedData } from '@/views/ebiz/agentEenter/js/methods' import FieldSelect from '@/views/ebiz/underwriting/components/FieldSelect.vue' -import { FIELD_SELECT_TYPE, SEX } from '@/views/ebiz/underwriting/js/const' +import { FIELD_SELECT_TYPE, ORDER_STATUS, SEX } from '@/views/ebiz/underwriting/js/const' +import { navigateRouter } from '@/views/ebiz/underwriting/js/navigate' import GField from './components/GField.vue' import { Button } from 'vant' import SexRadio from '@/views/ebiz/underwriting/components/SexRadio.vue' @@ -21,7 +22,6 @@ import FieldPicker from '@/views/ebiz/underwriting/components/FieldPicker.vue' import UnderwritingCollectionMedias from '@/views/ebiz/underwriting/components/UnderwritingCollection/UnderwritingCollectionMedias.vue' export default { name: 'CollectionUnderwritingData', - methods: { getRelatedData }, components: { FieldSelect, GField, SexRadio, FieldPicker, UnderwritingCollectionMedias, Button }, computed: { FIELD_SELECT_TYPE: () => FIELD_SELECT_TYPE, @@ -32,6 +32,33 @@ export default { this.idNo = void 0 this.data.user.idType = val } + }, + executeBtn() { + const orderStatus = this.$route.query.orderStatus + + const isShow = orderStatus !== ORDER_STATUS.pending.value + + switch (orderStatus) { + case ORDER_STATUS.standard.value: + return { + label: '去投保', + fn: () => console.log('去投保'), + isShow + } + case ORDER_STATUS.declined.value: + case ORDER_STATUS.postponed.value: { + return { + label: '查看结果', + fn: () => console.log('查看结果'), + isShow + } + } + } + return { + label: '提交预核保', + fn: this.handleDataSubmit, + isShow + } } }, data() { @@ -53,6 +80,17 @@ export default { */ mediaDTOS: [] } + }, + methods: { + getRelatedData, + handleDataSubmit() { + this.navigateToList() + }, + navigateToList() { + navigateRouter({ + name: 'UnderwritingOrderList' + }) + } } } @@ -110,7 +148,7 @@ export default { /> - + diff --git a/src/views/ebiz/underwriting/js/const.js b/src/views/ebiz/underwriting/js/const.js index c2df9138b..e5b4a8cb2 100644 --- a/src/views/ebiz/underwriting/js/const.js +++ b/src/views/ebiz/underwriting/js/const.js @@ -13,6 +13,13 @@ export const FIELD_SELECT_TYPE = Object.freeze({ }) export const ORDER_STATUS = Object.freeze({ + /** + * 待核保 + */ + pending: { + value: 'pending', + label: '待核保' + }, /* 标准体 */ standard: { value: 'standard', diff --git a/src/views/ebiz/underwriting/js/navigate.js b/src/views/ebiz/underwriting/js/navigate.js index c9d51b54e..baba3d5aa 100644 --- a/src/views/ebiz/underwriting/js/navigate.js +++ b/src/views/ebiz/underwriting/js/navigate.js @@ -36,7 +36,7 @@ export function navigateRouter({ path = '', name = '', title = '', params = {} } title: route.meta && route.meta.title ? route.meta.title : '', url: location.origin + '/#' + path + '?' + processJson(params) } - options.routerInfo = { path } + options.routerInfo = { ...options.routerInfo, path } } else if (name) { const route = routes.find(item => { if (item.children) { @@ -59,7 +59,7 @@ export function navigateRouter({ path = '', name = '', title = '', params = {} } url: location.origin + '/#' + route.path + '?' + processJson(params) } - options.routerInfo = { name } + options.routerInfo = { ...options.routerInfo, name } } jump(options)