This commit is contained in:
quantulr
2023-11-17 17:26:24 +08:00
parent ad9dd06944
commit c1f8880188
4 changed files with 203 additions and 135 deletions

View File

@ -42,3 +42,12 @@ export function delPerson(personId) {
method: "delete",
});
}
export function setAsManager(teamId, personId) {
return request.post("/sales/person/as-manager", {teamId, personId})
}
export function setAsSeller(teamId, personIds) {
return request.post("/sales/person/as-seller", {teamId, personIds})
}

View File

@ -10,7 +10,7 @@ const props = defineProps({
},
multiple: {
type: Boolean,
default: true,
default: false,
},
filter: {
type: Object,
@ -71,7 +71,10 @@ const cancel = () => {
};
const submit = () => {
emits("selected", ids.value);
console.log(ids.value.map(el => el))
emits("selected", {
data: ids.value
});
handleClose();
};
@ -100,7 +103,7 @@ const submit = () => {
/>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submit"> </el-button>
<el-button type="primary" @click="submit" :disabled="!ids.length"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -90,6 +90,7 @@
<el-table-column label="总额" align="center" prop="amount"/>
<el-table-column label="税点" align="center" prop="taxPoint"/>
<el-table-column label="地点" align="center" prop="location"/>
<el-table-column label="销售员" align="center" prop="salesPerson"/>
<el-table-column label="时间" align="center" prop="date" width="180">
<template #default="{ row }">
<span>{{ row.date }}</span>
@ -169,6 +170,10 @@
>
</el-date-picker>
</el-form-item>
<el-form-item label="销售员" prop="salesPersonId">
<el-tag v-if="form.salesPerson">{{ form.salesPerson }}</el-tag>
<el-button v-else size="small" plain type="primary" @click="handleSetSeller">选择</el-button>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
@ -177,6 +182,12 @@
</div>
</template>
</el-dialog>
<table-select v-model:show="showPersonSelect" row-key="personId" :fetcher="listPerson" :columns="[{
title: '名称',
dataIndex: 'name',
key: 'name',
}]" @selected="handleConfirmSelectPerson"/>
</div>
</template>
@ -188,6 +199,8 @@ import {
addContract,
updateContract,
} from "@/api/sales/contract";
import TableSelect from '@/components/TableSelect'
import {getPerson, listPerson} from "@/api/sales/person";
const {proxy} = getCurrentInstance();
@ -200,6 +213,7 @@ const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const showPersonSelect = ref()
const data = reactive({
form: {},
@ -293,6 +307,7 @@ function handleAdd() {
function handleUpdate(row) {
reset();
const _contractId = row.contractId || ids.value;
console.log(row)
getContract(_contractId).then((response) => {
form.value = response.data;
open.value = true;
@ -333,7 +348,22 @@ function handleDelete(row) {
getList();
proxy.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => {
});
}
const handleSetSeller = () => {
showPersonSelect.value = true
}
const handleConfirmSelectPerson = ({data}) => {
const personId = data[0]
getPerson(personId).then(resp => {
const name = resp.data.name
const personId = resp.data.personId
form.value.salesPerson = name
form.value.salesPersonId = personId
})
}
getList();

View File

@ -102,7 +102,7 @@
@click="handleAddSeller(record.teamId)"
>添加销售
</el-button>
<el-button link type="primary" icon="plus" @click="setManager"
<el-button link type="primary" icon="plus" @click="handleSetManager(record.teamId)"
>设置主管
</el-button>
</template>
@ -140,10 +140,12 @@
key: 'name',
},
]"
:multiple="!!selectPersonType"
row-key="personId"
:fetcher="listPerson"
:filter="filter"
v-model:show="showPersonSelector"
@selected="handleConfirmSelect"
/>
</template>
@ -158,9 +160,10 @@ import {
import {getCurrentInstance, reactive, ref, toRefs} from "vue";
import {Table as ATable} from "ant-design-vue";
import TableSelect from "@/components/TableSelect";
import {listPerson} from "@/api/sales/person";
import {listPerson, setAsManager, setAsSeller} from "@/api/sales/person";
import DictTag from "@/components/DictTag/index.vue";
import {sales_person_dict} from "@/constant/dict";
import modal from "@/plugins/modal";
const {proxy} = getCurrentInstance();
@ -172,7 +175,6 @@ const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const personTotal = ref(0);
const title = ref("");
const showPersonSelector = ref(false);
const data = reactive({
@ -330,7 +332,11 @@ function handleDelete(row) {
});
}
const selectPersonType = ref(0) // 0 manager, 1 seller
const currentTeamId = ref()
const handleAddSeller = (teamId) => {
selectPersonType.value = 1
currentTeamId.value = teamId
filter.canBeManagerOf = null
filter.canBeSellerOf = teamId
showPersonSelector.value = true
@ -338,8 +344,28 @@ const handleAddSeller = (teamId) => {
/**
* 设置主管
*/
const setManager = () => {
const handleSetManager = (teamId) => {
selectPersonType.value = 0
currentTeamId.value = teamId
filter.canBeManagerOf = teamId
filter.canBeSellerOf = null
showPersonSelector.value = true
};
const handleConfirmSelect = ({data}) => {
if (selectPersonType.value === 0) {
setAsManager(currentTeamId.value, data[0]).then(() => {
modal.msgSuccess("已设置为主管")
getList()
showPersonSelector.value = false
})
} else if (selectPersonType.value === 1) {
setAsSeller(currentTeamId.value, data)
modal.msgSuccess("成功添加销售")
getList()
showPersonSelector.value = false
}
}
getList();
</script>