|
@@ -3,32 +3,12 @@
|
|
|
<PageMain class="vh100" style="position: relative">
|
|
<PageMain class="vh100" style="position: relative">
|
|
|
<p><span></span>分销设置</p>
|
|
<p><span></span>分销设置</p>
|
|
|
|
|
|
|
|
- <ElForm
|
|
|
|
|
- ref="formRef"
|
|
|
|
|
- :inline="false"
|
|
|
|
|
- :model="form"
|
|
|
|
|
- label-width="150px"
|
|
|
|
|
- class="demo-form-inline"
|
|
|
|
|
- :rules="rules"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <ElForm ref="formRef" :inline="false" :model="form" label-width="150px" class="demo-form-inline" :rules="rules">
|
|
|
<!-- 分销模式选择 -->
|
|
<!-- 分销模式选择 -->
|
|
|
- <ElFormItem
|
|
|
|
|
- label="分销模式"
|
|
|
|
|
- prop="distributionMode"
|
|
|
|
|
- style="margin-bottom: 24px"
|
|
|
|
|
- >
|
|
|
|
|
- <div
|
|
|
|
|
- v-for="item in type"
|
|
|
|
|
- :key="item.name"
|
|
|
|
|
- class="type-box"
|
|
|
|
|
- :class="currentIndex == item.distributionMode ? 'active ' : ''"
|
|
|
|
|
- @click="typeClick(item)"
|
|
|
|
|
- >
|
|
|
|
|
- <img
|
|
|
|
|
- src="@/assets/images/check.png"
|
|
|
|
|
- alt="选中状态"
|
|
|
|
|
- v-if="currentIndex == item.distributionMode"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <ElFormItem label="分销模式" prop="distributionMode" style="margin-bottom: 24px">
|
|
|
|
|
+ <div v-for="item in type" :key="item.name" class="type-box"
|
|
|
|
|
+ :class="currentIndex == item.distributionMode ? 'active ' : ''" @click="typeClick(item)">
|
|
|
|
|
+ <img src="@/assets/images/check.png" alt="选中状态" v-if="currentIndex == item.distributionMode" />
|
|
|
<h2 style="margin: 0">{{ item.name }}</h2>
|
|
<h2 style="margin: 0">{{ item.name }}</h2>
|
|
|
{{ item.describe }}
|
|
{{ item.describe }}
|
|
|
</div>
|
|
</div>
|
|
@@ -37,80 +17,50 @@
|
|
|
<!-- 佣金比例设置 - 拆分为独立的FormItem以显示各自的校验提示 -->
|
|
<!-- 佣金比例设置 - 拆分为独立的FormItem以显示各自的校验提示 -->
|
|
|
<ElFormItem label="佣金比例" style="margin-bottom: 0;">
|
|
<ElFormItem label="佣金比例" style="margin-bottom: 0;">
|
|
|
<!-- 一级佣金比例 -->
|
|
<!-- 一级佣金比例 -->
|
|
|
- <ElFormItem
|
|
|
|
|
- prop="commissionRatioLevel1"
|
|
|
|
|
- style="margin-right: 24px; margin-bottom: 16px;"
|
|
|
|
|
- >
|
|
|
|
|
- <div
|
|
|
|
|
- style="
|
|
|
|
|
|
|
+ <ElFormItem prop="commissionRatioLevel1" style="margin-right: 24px; margin-bottom: 16px;">
|
|
|
|
|
+ <div style="
|
|
|
width: 256px;
|
|
width: 256px;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
|
- "
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ ">
|
|
|
<span style="color: red">*</span> 一级
|
|
<span style="color: red">*</span> 一级
|
|
|
- <el-input
|
|
|
|
|
- v-model="form.commissionRatioLevel1"
|
|
|
|
|
- style="width: 206px"
|
|
|
|
|
- type="number"
|
|
|
|
|
- step="0.01"
|
|
|
|
|
- @input="handleCommissionInput('commissionRatioLevel1', $event)"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <el-input v-model="form.commissionRatioLevel1" style="width: 206px" type="number" step="0.01"
|
|
|
|
|
+ @input="handleCommissionInput('commissionRatioLevel1', $event)">
|
|
|
<template #append>%</template>
|
|
<template #append>%</template>
|
|
|
</el-input>
|
|
</el-input>
|
|
|
</div>
|
|
</div>
|
|
|
</ElFormItem>
|
|
</ElFormItem>
|
|
|
|
|
|
|
|
<!-- 二级佣金比例 -->
|
|
<!-- 二级佣金比例 -->
|
|
|
- <ElFormItem
|
|
|
|
|
- prop="commissionRatioLevel2"
|
|
|
|
|
- style="margin-right: 24px; margin-bottom: 16px;"
|
|
|
|
|
- v-if="currentIndex >= 2"
|
|
|
|
|
- >
|
|
|
|
|
- <div
|
|
|
|
|
- style="
|
|
|
|
|
|
|
+ <ElFormItem prop="commissionRatioLevel2" style="margin-right: 24px; margin-bottom: 16px;"
|
|
|
|
|
+ v-if="currentIndex >= 2">
|
|
|
|
|
+ <div style="
|
|
|
width: 256px;
|
|
width: 256px;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
|
- "
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ ">
|
|
|
<span style="color: red">*</span> 二级
|
|
<span style="color: red">*</span> 二级
|
|
|
- <el-input
|
|
|
|
|
- v-model="form.commissionRatioLevel2"
|
|
|
|
|
- style="width: 206px"
|
|
|
|
|
- type="number"
|
|
|
|
|
- step="0.01"
|
|
|
|
|
- @input="handleCommissionInput('commissionRatioLevel2', $event)"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <el-input v-model="form.commissionRatioLevel2" style="width: 206px" type="number" step="0.01"
|
|
|
|
|
+ @input="handleCommissionInput('commissionRatioLevel2', $event)">
|
|
|
<template #append>%</template>
|
|
<template #append>%</template>
|
|
|
</el-input>
|
|
</el-input>
|
|
|
</div>
|
|
</div>
|
|
|
</ElFormItem>
|
|
</ElFormItem>
|
|
|
|
|
|
|
|
<!-- 三级佣金比例 -->
|
|
<!-- 三级佣金比例 -->
|
|
|
- <ElFormItem
|
|
|
|
|
- prop="commissionRatioLevel3"
|
|
|
|
|
- style="margin-right: 24px; margin-bottom: 16px;"
|
|
|
|
|
- v-if="currentIndex >= 3"
|
|
|
|
|
- >
|
|
|
|
|
- <div
|
|
|
|
|
- style="
|
|
|
|
|
|
|
+ <ElFormItem prop="commissionRatioLevel3" style="margin-right: 24px; margin-bottom: 16px;"
|
|
|
|
|
+ v-if="currentIndex >= 3">
|
|
|
|
|
+ <div style="
|
|
|
width: 256px;
|
|
width: 256px;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
|
- "
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ ">
|
|
|
<span style="color: red">*</span> 三级
|
|
<span style="color: red">*</span> 三级
|
|
|
- <el-input
|
|
|
|
|
- v-model="form.commissionRatioLevel3"
|
|
|
|
|
- style="width: 206px"
|
|
|
|
|
- type="number"
|
|
|
|
|
- step="0.01"
|
|
|
|
|
- @input="handleCommissionInput('commissionRatioLevel3', $event)"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <el-input v-model="form.commissionRatioLevel3" style="width: 206px" type="number" step="0.01"
|
|
|
|
|
+ @input="handleCommissionInput('commissionRatioLevel3', $event)">
|
|
|
<template #append>%</template>
|
|
<template #append>%</template>
|
|
|
</el-input>
|
|
</el-input>
|
|
|
</div>
|
|
</div>
|
|
@@ -118,11 +68,7 @@
|
|
|
</ElFormItem>
|
|
</ElFormItem>
|
|
|
|
|
|
|
|
<!-- 分销员招募 -->
|
|
<!-- 分销员招募 -->
|
|
|
- <ElFormItem
|
|
|
|
|
- label="分销员招募"
|
|
|
|
|
- prop="recruitmentMethod"
|
|
|
|
|
- style="align-items: center"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <ElFormItem label="分销员招募" prop="recruitmentMethod" style="align-items: center">
|
|
|
<el-radio-group v-model="form.recruitmentMethod" class="ml-4">
|
|
<el-radio-group v-model="form.recruitmentMethod" class="ml-4">
|
|
|
<el-radio label="1" size="large">手动申请</el-radio>
|
|
<el-radio label="1" size="large">手动申请</el-radio>
|
|
|
<el-radio label="2" size="large">加入组织自动成为分销员</el-radio>
|
|
<el-radio label="2" size="large">加入组织自动成为分销员</el-radio>
|
|
@@ -130,54 +76,33 @@
|
|
|
</ElFormItem>
|
|
</ElFormItem>
|
|
|
|
|
|
|
|
<!-- 不参与分销的机构 -->
|
|
<!-- 不参与分销的机构 -->
|
|
|
- <ElFormItem
|
|
|
|
|
- label="不参与分销的机构"
|
|
|
|
|
- prop="excludeDeptScope"
|
|
|
|
|
- style="align-items: center"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <ElFormItem label="不参与分销的机构" prop="excludeDeptScope" style="align-items: center">
|
|
|
<el-radio-group v-model="form.excludeDeptScope" class="ml-4">
|
|
<el-radio-group v-model="form.excludeDeptScope" class="ml-4">
|
|
|
<el-radio label="1" size="large">全部机构</el-radio>
|
|
<el-radio label="1" size="large">全部机构</el-radio>
|
|
|
<el-radio label="2" size="large">部门机构 </el-radio>
|
|
<el-radio label="2" size="large">部门机构 </el-radio>
|
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
|
- <div
|
|
|
|
|
- style="
|
|
|
|
|
|
|
+ <div style="
|
|
|
color: #0083ff;
|
|
color: #0083ff;
|
|
|
margin-left: 10px;
|
|
margin-left: 10px;
|
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
- "
|
|
|
|
|
- v-if="form.excludeDeptScope == '2'"
|
|
|
|
|
- @click="showDeptDrawer = true"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ " v-if="form.excludeDeptScope == '2'" @click="showDeptDrawer = true">
|
|
|
+选择机构
|
|
+选择机构
|
|
|
</div>
|
|
</div>
|
|
|
</ElFormItem>
|
|
</ElFormItem>
|
|
|
|
|
|
|
|
<!-- 已选机构列表 -->
|
|
<!-- 已选机构列表 -->
|
|
|
- <el-table
|
|
|
|
|
- :data="selectData"
|
|
|
|
|
- style="width: 611px; margin-left: 130px; margin-top: 16px;"
|
|
|
|
|
- header-cell-class-name="custom-header-cell"
|
|
|
|
|
- v-if="form.excludeDeptScope == '2'"
|
|
|
|
|
- >
|
|
|
|
|
- <el-table-column
|
|
|
|
|
- prop="name"
|
|
|
|
|
- label="机构"
|
|
|
|
|
- width="517"
|
|
|
|
|
- align="center"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-table :data="selectData" style="width: 611px; margin-left: 130px; margin-top: 16px;"
|
|
|
|
|
+ header-cell-class-name="custom-header-cell" v-if="form.excludeDeptScope == '2'">
|
|
|
|
|
+ <el-table-column prop="name" label="机构" width="517" align="center" />
|
|
|
<el-table-column label="操作" width="">
|
|
<el-table-column label="操作" width="">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
- <span
|
|
|
|
|
- @click="removeDept(scope.row.id)"
|
|
|
|
|
- style="
|
|
|
|
|
|
|
+ <span @click="removeDept(scope.row.id)" style="
|
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
color: #0083ff;
|
|
color: #0083ff;
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
outline: none;
|
|
outline: none;
|
|
|
- "
|
|
|
|
|
- >删除</span
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ ">删除</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
@@ -190,16 +115,9 @@
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 机构选择抽屉 -->
|
|
<!-- 机构选择抽屉 -->
|
|
|
- <Drawer
|
|
|
|
|
- :Drawer="showDeptDrawer"
|
|
|
|
|
- :deptlist="deptTreeData"
|
|
|
|
|
- :checkedKeys="defaultCheckedIds"
|
|
|
|
|
- :checkedIds="defaultCheckedIds"
|
|
|
|
|
- @cancel="handleDrawerCancel"
|
|
|
|
|
- @save="handleDrawerSave"
|
|
|
|
|
- @DrawerOpen="handleDrawerOpen"
|
|
|
|
|
- @query="handleDrawerQuery"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <Drawer :Drawer="showDeptDrawer" :deptlist="deptTreeData" :checkedKeys="defaultCheckedIds"
|
|
|
|
|
+ :checkedIds="defaultCheckedIds" @cancel="handleDrawerCancel" @save="handleDrawerSave"
|
|
|
|
|
+ @DrawerOpen="handleDrawerOpen" @query="handleDrawerQuery" />
|
|
|
</PageMain>
|
|
</PageMain>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
@@ -386,7 +304,7 @@ const agreementAuth = () => {
|
|
|
const handleDrawerOpen = async () => {
|
|
const handleDrawerOpen = async () => {
|
|
|
try {
|
|
try {
|
|
|
// 可以在这里加载最新的机构数据
|
|
// 可以在这里加载最新的机构数据
|
|
|
- } catch (error) {}
|
|
|
|
|
|
|
+ } catch (error) { }
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 取消抽屉
|
|
// 取消抽屉
|
|
@@ -427,7 +345,7 @@ const handleDrawerQuery = async (searchName: string) => {
|
|
|
// node.name.toLowerCase().includes(searchName.toLowerCase())
|
|
// node.name.toLowerCase().includes(searchName.toLowerCase())
|
|
|
// );
|
|
// );
|
|
|
// deptTreeData.value = filteredData;
|
|
// deptTreeData.value = filteredData;
|
|
|
- searchName?deptTreeData.value = filterTree(deptTreeData.value, searchName):agreementAuth()
|
|
|
|
|
|
|
+ searchName ? deptTreeData.value = filterTree(deptTreeData.value, searchName) : agreementAuth()
|
|
|
|
|
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
console.error("筛选机构失败:", error);
|
|
console.error("筛选机构失败:", error);
|
|
@@ -496,8 +414,8 @@ const handleSubmit = async () => {
|
|
|
commissionRatioLevel1: form.commissionRatioLevel1 || 0,
|
|
commissionRatioLevel1: form.commissionRatioLevel1 || 0,
|
|
|
commissionRatioLevel2: form.commissionRatioLevel2 || 0,
|
|
commissionRatioLevel2: form.commissionRatioLevel2 || 0,
|
|
|
commissionRatioLevel3: form.commissionRatioLevel3 || 0,
|
|
commissionRatioLevel3: form.commissionRatioLevel3 || 0,
|
|
|
- excludeDeptIds:form.excludeDeptScope=='1'?[]: selectData.value.map((item) => item.id),
|
|
|
|
|
- systemCode: localStorage.getItem('login_system')
|
|
|
|
|
|
|
+ excludeDeptIds: form.excludeDeptScope == '1' ? [] : selectData.value.map((item) => item.id),
|
|
|
|
|
+ systemCode: localStorage.getItem('login_system')
|
|
|
};
|
|
};
|
|
|
await api.saleApi.saveSetting(formData);
|
|
await api.saleApi.saveSetting(formData);
|
|
|
|
|
|
|
@@ -505,26 +423,27 @@ const handleSubmit = async () => {
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
-const handleUpdate=async()=>{
|
|
|
|
|
|
|
+const handleUpdate = async () => {
|
|
|
if (!formRef.value) return;
|
|
if (!formRef.value) return;
|
|
|
|
|
|
|
|
- try {
|
|
|
|
|
await formRef.value.validate();
|
|
await formRef.value.validate();
|
|
|
|
|
|
|
|
const formData = {
|
|
const formData = {
|
|
|
...form,
|
|
...form,
|
|
|
- id:form.id + '',
|
|
|
|
|
|
|
+ id: form.id + '',
|
|
|
commissionRatioLevel1: form.commissionRatioLevel1 || 0,
|
|
commissionRatioLevel1: form.commissionRatioLevel1 || 0,
|
|
|
commissionRatioLevel2: form.commissionRatioLevel2 || 0,
|
|
commissionRatioLevel2: form.commissionRatioLevel2 || 0,
|
|
|
commissionRatioLevel3: form.commissionRatioLevel3 || 0,
|
|
commissionRatioLevel3: form.commissionRatioLevel3 || 0,
|
|
|
- excludeDeptIds:form.excludeDeptScope=='1'?[]: selectData.value.map((item) => item.id),
|
|
|
|
|
- systemCode: localStorage.getItem('login_system')
|
|
|
|
|
|
|
+ excludeDeptIds: form.excludeDeptScope == '1' ? [] : selectData.value.map((item) => item.id),
|
|
|
|
|
+ systemCode: localStorage.getItem('login_system')
|
|
|
};
|
|
};
|
|
|
- await api.saleApi.update(formData);
|
|
|
|
|
|
|
+ await api.saleApi.update(formData).then((res: any) => {
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage.error(res.msg);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
- ElMessage.success('保存成功');
|
|
|
|
|
- } catch (error) {
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//获取详情回显
|
|
//获取详情回显
|