银川九鸿化工需求:商机状态组改为非必填
- 新增商机表单「商机状态组」去掉必填,占位提示改为「请选择商机状态组(选填)」并允许清空
- 「变更商机状态」弹窗:未设置状态组的商机没有可选阶段,阶段下拉禁用并说明原因,且不做必填校验
(动态必填写法遵循框架约定放在 dependencies.rules,避免顶层函数 rules 触发渲染异常)
Co-Authored-By: Claude Code <noreply@anthropic.com>
| | |
| | | api: getBusinessStatusTypeSimpleList, |
| | | labelField: 'name', |
| | | valueField: 'id', |
| | | placeholder: '请选择商机状态组', |
| | | placeholder: '请选择商机状态组(选填)', |
| | | allowClear: true, |
| | | }, |
| | | dependencies: { |
| | | triggerFields: ['id'], |
| | | disabled: (values) => values.id, |
| | | }, |
| | | rules: 'required', |
| | | }, |
| | | { |
| | | fieldName: 'dealTime', |
| | |
| | | dependencies: { |
| | | triggerFields: [''], |
| | | async componentProps() { |
| | | const statusList = await getBusinessStatusSimpleList( |
| | | formData.value?.statusTypeId ?? 0, |
| | | ); |
| | | const statusTypeId = formData.value?.statusTypeId; |
| | | // 商机状态组为选填:未设置状态组时没有可选阶段,禁用并说明原因 |
| | | if (!statusTypeId) { |
| | | return { |
| | | disabled: true, |
| | | options: [], |
| | | placeholder: '该商机未设置「商机状态组」,无可选商机阶段', |
| | | }; |
| | | } |
| | | const statusList = await getBusinessStatusSimpleList(statusTypeId); |
| | | const options = statusList.map((item) => ({ |
| | | label: `${item.name}(赢单率:${item.percent}%)`, |
| | | value: item.id, |
| | | })); |
| | | return { |
| | | disabled: false, |
| | | options, |
| | | placeholder: '请选择商机阶段', |
| | | }; |
| | | }, |
| | | // 未设置商机状态组时不做必填校验(此时也没有阶段可供选择) |
| | | rules: () => (formData.value?.statusTypeId ? 'required' : null), |
| | | }, |
| | | rules: 'required', |
| | | }, |
| | | ]; |
| | | } |