|
|
@@ -32,7 +32,7 @@
|
|
|
|
|
|
<!-- 多选下拉 -->
|
|
|
<el-select v-model="domain.minArray" placeholder="选择值" multiple style="width: 341px"
|
|
|
- v-if="getConditionType(domain.attrCode) === 'checkbox'" :disabled="!domain.operator" clearable >
|
|
|
+ v-if="getConditionType(domain.attrCode) === 'checkbox'" :disabled="!domain.operator" clearable>
|
|
|
<template #header>
|
|
|
<el-checkbox v-model="domain.checkAll" :indeterminate="domain.indeterminate"
|
|
|
@change="(val) => handleCheckAll(domain, val)">
|
|
|
@@ -147,33 +147,33 @@
|
|
|
|
|
|
<!-- 对接人变更方式选择 -->
|
|
|
<el-form-item>
|
|
|
- <el-radio-group v-model="formData.actionJson[1].linkType" @change="handleTypeChange">
|
|
|
+ <el-checkbox-group v-model="linkTypeList" @change="handleTypeChange">
|
|
|
<!-- 手动输入对接人 -->
|
|
|
- <el-radio value="manual_input" size="large" style="margin: 20px 0; display: block">
|
|
|
+ <el-checkbox value="manual_input" size="large" style="margin: 20px 0; display: block">
|
|
|
手动输入对接人信息:
|
|
|
<el-form-item prop="actionJson.name" style="display: inline-block; margin: 0 20px">
|
|
|
- <el-input v-model="formData.actionJson[1].name" style="width: 327px" placeholder="变更后对接人姓名" :disabled="formData.actionJson[1].linkType === 'select_account'
|
|
|
- " clearable />
|
|
|
+ <el-input v-model="formData.actionJson[1].name" style="width: 327px" placeholder="变更后对接人姓名"
|
|
|
+ :disabled="!linkTypeList.includes('manual_input')" clearable />
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="actionJson.phone" style="display: inline-block">
|
|
|
<el-input v-model="formData.actionJson[1].phone" style="width: 327px" type="number"
|
|
|
- placeholder="变更后对接人手机号" maxlength="11" @input="handlePhoneInput" :disabled="formData.actionJson[1].linkType === 'select_account'
|
|
|
- " clearable />
|
|
|
+ placeholder="变更后对接人手机号" maxlength="11" @input="handlePhoneInput"
|
|
|
+ :disabled="!linkTypeList.includes('manual_input')" clearable />
|
|
|
</el-form-item>
|
|
|
- </el-radio>
|
|
|
+ </el-checkbox>
|
|
|
|
|
|
<!-- 选择保司账号 -->
|
|
|
- <el-radio value="select_account" size="large" style="margin: 20px 0; display: block">
|
|
|
+ <el-checkbox value="select_account" size="large" style="margin: 20px 0; display: block">
|
|
|
选择已有保司账号:
|
|
|
<el-form-item prop="actionJson.accountId" style="display: inline-block; margin-left: 20px">
|
|
|
- <el-select v-model="formData.actionJson[1].accountId" placeholder="选择变更后的保司账号" style="width: 662px"
|
|
|
- :disabled="formData.actionJson[1].linkType === 'manual_input'" clearable>
|
|
|
+ <el-select v-model="formData.actionJson[2].accountId" placeholder="选择变更后的保司账号" style="width: 662px"
|
|
|
+ :disabled="!linkTypeList.includes('select_account')" clearable>
|
|
|
<!-- -->
|
|
|
<el-option v-for="item in accountList" :key="item.id" :label="item.username" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- </el-radio>
|
|
|
- </el-radio-group>
|
|
|
+ </el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
@@ -241,6 +241,8 @@ interface ConditionGroup {
|
|
|
actions: ConditionRow[];
|
|
|
}
|
|
|
|
|
|
+const linkTypeList = ref([])
|
|
|
+
|
|
|
// 表单核心数据
|
|
|
// 表单核心数据 - 优化actionJson结构
|
|
|
const formData = ref<{
|
|
|
@@ -250,6 +252,13 @@ const formData = ref<{
|
|
|
actionCode: "specify_agreement"; // 固定:指定报价协议
|
|
|
agreementId: string; // 报价协议ID
|
|
|
},
|
|
|
+ {
|
|
|
+ actionCode: "change_bs_account"; // 固定:变更对接人
|
|
|
+ linkType: "manual_input" | "select_account"; // 对接人方式:手动输入/选择账号
|
|
|
+ name: string; // 手动输入-姓名
|
|
|
+ phone: string; // 手动输入-手机号
|
|
|
+ accountId: string; // 选择账号-账号ID
|
|
|
+ },
|
|
|
{
|
|
|
actionCode: "change_bs_account"; // 固定:变更对接人
|
|
|
linkType: "manual_input" | "select_account"; // 对接人方式:手动输入/选择账号
|
|
|
@@ -271,6 +280,13 @@ const formData = ref<{
|
|
|
phone: "",
|
|
|
accountId: "",
|
|
|
},
|
|
|
+ {
|
|
|
+ actionCode: "change_bs_account",
|
|
|
+ linkType: "select_account", // 默认选中“手动输入”
|
|
|
+ name: "",
|
|
|
+ phone: "",
|
|
|
+ accountId: "",
|
|
|
+ },
|
|
|
],
|
|
|
conditionGroups: [
|
|
|
{
|
|
|
@@ -314,7 +330,7 @@ const handleCheckAll = (item: any, val: boolean) => {
|
|
|
}
|
|
|
|
|
|
const change = (item: any) => {
|
|
|
- console.log('change',item)
|
|
|
+ console.log('change', item)
|
|
|
if (item?.attrType == 'select') {
|
|
|
if (item.minArray.length === 0) {
|
|
|
item.checkAll = false
|
|
|
@@ -545,17 +561,13 @@ const getAccountList = async () => {
|
|
|
};
|
|
|
|
|
|
//清空选项数据
|
|
|
-const handleTypeChange = () => {
|
|
|
- const linkType = formData.value.actionJson[1].linkType;
|
|
|
- const actionJson = formData.value.actionJson[1];
|
|
|
-
|
|
|
- if (linkType === "manual_input") {
|
|
|
- // 切换到手动输入:清空账号ID
|
|
|
- actionJson.accountId = "";
|
|
|
- } else if (linkType === "select_account") {
|
|
|
- // 切换到选择账号:清空姓名和手机号
|
|
|
- actionJson.name = "";
|
|
|
- actionJson.phone = "";
|
|
|
+const handleTypeChange = (value) => {
|
|
|
+ if (!value.includes("manual_input")) {
|
|
|
+ formData.value.actionJson[1].name = "";
|
|
|
+ formData.value.actionJson[1].phone = "";
|
|
|
+ }
|
|
|
+ if (!value.includes("select_account")) {
|
|
|
+ formData.value.actionJson[2].accountId = "";
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -586,6 +598,17 @@ const submit = async () => {
|
|
|
: { accountId: actionJson[1].accountId }),
|
|
|
},
|
|
|
},
|
|
|
+ {
|
|
|
+ actionCode:
|
|
|
+ actionJson[2].linkType == "manual_input"
|
|
|
+ ? "change_poc"
|
|
|
+ : "change_bs_account",
|
|
|
+ actionJson: {
|
|
|
+ ...(actionJson[2].linkType === "manual_input"
|
|
|
+ ? { name: actionJson[2].name, phone: actionJson[2].phone }
|
|
|
+ : { accountId: actionJson[2].accountId }),
|
|
|
+ },
|
|
|
+ },
|
|
|
];
|
|
|
if (!actionJson[0].agreementId) {
|
|
|
ElMessage({
|
|
|
@@ -654,7 +677,7 @@ onMounted(async () => {
|
|
|
|
|
|
// 2. 提取props参数
|
|
|
const { editType, editData } = props;
|
|
|
- console.log('editData',editData)
|
|
|
+ console.log('editData', editData)
|
|
|
dispatchId.value = editData?.dispatchId || "";
|
|
|
|
|
|
// 3. 初始化formData基础结构(固定保留actionJson默认值,仅动态处理conditionGroups)
|
|
|
@@ -672,6 +695,13 @@ onMounted(async () => {
|
|
|
phone: "",
|
|
|
accountId: "",
|
|
|
},
|
|
|
+ {
|
|
|
+ actionCode: "change_bs_account",
|
|
|
+ linkType: "select_account" as "manual_input" | "select_account",
|
|
|
+ name: "",
|
|
|
+ phone: "",
|
|
|
+ accountId: "",
|
|
|
+ },
|
|
|
],
|
|
|
// 条件组:根据editType动态赋值
|
|
|
conditionGroups: [] as ConditionGroup[],
|
|
|
@@ -766,7 +796,7 @@ onMounted(async () => {
|
|
|
};
|
|
|
|
|
|
rawGroup.forEach((rawRow: any, rowIdx: number) => {
|
|
|
- console.log('rawRow',rawRow)
|
|
|
+ console.log('rawRow', rawRow)
|
|
|
group.actions.push({
|
|
|
key: rawRow.id || `row_${groupIdx}_${rowIdx}_${Date.now()}`,
|
|
|
attrType: rawRow.attrType || "",
|
|
|
@@ -791,7 +821,7 @@ onMounted(async () => {
|
|
|
minArray: [],
|
|
|
});
|
|
|
}
|
|
|
- console.log('group-------------',group)
|
|
|
+ console.log('group-------------', group)
|
|
|
return group;
|
|
|
}
|
|
|
);
|
|
|
@@ -810,20 +840,32 @@ onMounted(async () => {
|
|
|
// 回显对接人信息
|
|
|
const linkAction = editData.actions.find(
|
|
|
(action: any) =>
|
|
|
- action.actionCode === "change_bs_account" ||
|
|
|
action.actionCode === "change_poc"
|
|
|
);
|
|
|
+ const linkAction1 = editData.actions.find(
|
|
|
+ (action: any) =>
|
|
|
+ action.actionCode === "change_bs_account"
|
|
|
+ );
|
|
|
if (linkAction?.actionJson) {
|
|
|
const linkJson = linkAction.actionJson;
|
|
|
if (linkJson.accountId) {
|
|
|
baseFormData.actionJson[1].linkType = "select_account";
|
|
|
baseFormData.actionJson[1].accountId = linkJson.accountId;
|
|
|
} else {
|
|
|
+ linkTypeList.value.push('manual_input')
|
|
|
baseFormData.actionJson[1].linkType = "manual_input";
|
|
|
baseFormData.actionJson[1].name = linkJson.name || "";
|
|
|
baseFormData.actionJson[1].phone = linkJson.phone || "";
|
|
|
}
|
|
|
}
|
|
|
+ if (linkAction1?.actionJson) {
|
|
|
+ const linkJson = linkAction1.actionJson;
|
|
|
+ if (linkJson.accountId) {
|
|
|
+ linkTypeList.value.push('select_account')
|
|
|
+ baseFormData.actionJson[2].linkType = "select_account";
|
|
|
+ baseFormData.actionJson[2].accountId = linkJson.accountId;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (baseFormData.conditionGroups.length === 0) {
|