|
|
@@ -108,8 +108,16 @@ export function socialItemTypeLabel(itemType) {
|
|
|
function adaptScheme(d) {
|
|
|
return {
|
|
|
...d,
|
|
|
- /* 参保地:接口字段 location(省 / 市 / 区名称数组);非数组时兜底为空数组,便于级联组件回填 */
|
|
|
- location: Array.isArray(d.location) ? d.location.filter(Boolean) : [],
|
|
|
+ /* 参保地:后端模型没有 location 字段,区级名称统一用 region 字段。
|
|
|
+ 把 province / city / region 拼成名称数组,供列表展示与编辑弹框的省市区级联回填;
|
|
|
+ 相邻重名(如市与区同名)去掉 */
|
|
|
+ location: (() => {
|
|
|
+ if (Array.isArray(d.location) && d.location.length) {
|
|
|
+ return d.location.filter(Boolean);
|
|
|
+ }
|
|
|
+ const parts = [d.province, d.city, d.region].filter(Boolean);
|
|
|
+ return parts.filter((part, idx) => part !== parts[idx - 1]);
|
|
|
+ })(),
|
|
|
items: Array.isArray(d.items) ? d.items.map((item) => ({ ...item })) : [],
|
|
|
statusLabel: schemeStatusMeta(d.status).label,
|
|
|
statusType: schemeStatusMeta(d.status).type
|
|
|
@@ -134,7 +142,7 @@ export function createEmptySchemeItem(sortNo = 0) {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
-/** 空方案表单:新增时用 */
|
|
|
+/** 空方案表单:新增时用,险种默认列出「其他」以外的全部常用险种(比例为空待填) */
|
|
|
export function createEmptyScheme() {
|
|
|
return {
|
|
|
id: null,
|
|
|
@@ -162,7 +170,10 @@ export function createEmptyScheme() {
|
|
|
policyId: null,
|
|
|
policyVersion: '',
|
|
|
remark: '',
|
|
|
- items: []
|
|
|
+ /* 除「其他」外的险种默认各预置一行,比例 / 固定金额留空待 HR 按当地政策填写 */
|
|
|
+ items: SOCIAL_ITEM_TYPE_OPTIONS
|
|
|
+ .filter((opt) => opt.value !== 'OTHER')
|
|
|
+ .map((opt, index) => ({ ...createEmptySchemeItem(index), itemType: opt.value }))
|
|
|
};
|
|
|
}
|
|
|
|
|
|
@@ -172,6 +183,12 @@ export function createEmptyScheme() {
|
|
|
*/
|
|
|
function toSchemeBody(data = {}) {
|
|
|
const num = (v) => (v === '' || v == null || isNaN(Number(v)) ? undefined : Number(v));
|
|
|
+ /* 参保地:按原提交方式——后端通过 location(省 / 市 / 区名称数组)、addressId、addressName 接收,
|
|
|
+ 不单独拆 province / city / region;location 空数组视为未填。
|
|
|
+ 注:前端回显仍统一读 region(见 adaptScheme),此处只管提交结构不变 */
|
|
|
+ const locationArr = Array.isArray(data.location) && data.location.length
|
|
|
+ ? data.location.map((item) => String(item))
|
|
|
+ : undefined;
|
|
|
return {
|
|
|
id: data.id || undefined,
|
|
|
schemeCode: String(data.schemeCode || '').trim(),
|
|
|
@@ -180,11 +197,7 @@ function toSchemeBody(data = {}) {
|
|
|
legalEntityName: data.legalEntityName || undefined,
|
|
|
addressId: num(data.addressId),
|
|
|
addressName: data.addressName || undefined,
|
|
|
- /* 参保地:接口字段为名称数组(省 / 市 / 区),空数组视为未填 */
|
|
|
- location:
|
|
|
- Array.isArray(data.location) && data.location.length
|
|
|
- ? data.location.map((item) => String(item))
|
|
|
- : undefined,
|
|
|
+ location: locationArr,
|
|
|
schemeYear: num(data.schemeYear),
|
|
|
effectiveDate: data.effectiveDate || undefined,
|
|
|
expiryDate: data.expiryDate || undefined,
|