| | |
| | | <span>{{ dictFormat(order_type, row?.orderType || form?.orderType) }}</span> |
| | | </template> |
| | | <template v-else> |
| | | <el-select v-model="form.orderType" placeholder="请选择订单类型" style="width: 100%" clearable> |
| | | <el-select v-model="form.orderType" placeholder="请选择订单类型" @change="(val) => handleOrderTypeChange(val)" style="width: 100%" clearable> |
| | | <el-option v-for="item in order_type" :key="item.value" :label="item.label" :value="parseInt(item.value)" /> |
| | | </el-select> |
| | | </template> |
| | |
| | | // 取消操作 |
| | | }); |
| | | } |
| | | |
| | | const handleOrderTypeChange = (value: any) => { |
| | | // 防止 value 为 null 或 undefined 时出错 (当清空选择时) |
| | | if (value === null || value === undefined) { |
| | | return; |
| | | } |
| | | |
| | | option.value.group.forEach((item: any) => { |
| | | if (item.prop == 'pcxx') { |
| | | // 处理装货点必填规则 |
| | | if (item.column.shipperId && item.column.shipperId.rules) { |
| | | item.column.shipperId.rules.forEach((cItem: any) => { |
| | | cItem.required = !(value == 1); |
| | | }); |
| | | } |
| | | |
| | | // 处理卸货点必填规则 |
| | | if (item.column.receiverId && item.column.receiverId.rules) { |
| | | item.column.receiverId.rules.forEach((cItem: any) => { |
| | | cItem.required = !(value == 1); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 【新增逻辑】如果切换到了非必填状态 (value == 1),则清除这两个字段的校验提示 |
| | | if (value == 1) { |
| | | // 确保 crudRef 存在且暴露了 clearValidate 方法 |
| | | if (crudRef.value && typeof crudRef.value.clearValidate === 'function') { |
| | | // 清除指定字段的校验状态 |
| | | crudRef.value.clearValidate(['shipperId', 'receiverId']); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | ::v-deep .cydprint .el-dialog__body { |