update
This commit is contained in:
@ -42,3 +42,12 @@ export function delPerson(personId) {
|
|||||||
method: "delete",
|
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})
|
||||||
|
}
|
||||||
|
|||||||
@ -10,7 +10,7 @@ const props = defineProps({
|
|||||||
},
|
},
|
||||||
multiple: {
|
multiple: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true,
|
default: false,
|
||||||
},
|
},
|
||||||
filter: {
|
filter: {
|
||||||
type: Object,
|
type: Object,
|
||||||
@ -71,7 +71,10 @@ const cancel = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const submit = () => {
|
const submit = () => {
|
||||||
emits("selected", ids.value);
|
console.log(ids.value.map(el => el))
|
||||||
|
emits("selected", {
|
||||||
|
data: ids.value
|
||||||
|
});
|
||||||
handleClose();
|
handleClose();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -100,7 +103,7 @@ const submit = () => {
|
|||||||
/>
|
/>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-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>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -90,6 +90,7 @@
|
|||||||
<el-table-column label="总额" align="center" prop="amount"/>
|
<el-table-column label="总额" align="center" prop="amount"/>
|
||||||
<el-table-column label="税点" align="center" prop="taxPoint"/>
|
<el-table-column label="税点" align="center" prop="taxPoint"/>
|
||||||
<el-table-column label="地点" align="center" prop="location"/>
|
<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">
|
<el-table-column label="时间" align="center" prop="date" width="180">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span>{{ row.date }}</span>
|
<span>{{ row.date }}</span>
|
||||||
@ -169,6 +170,10 @@
|
|||||||
>
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</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>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
@ -177,6 +182,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<table-select v-model:show="showPersonSelect" row-key="personId" :fetcher="listPerson" :columns="[{
|
||||||
|
title: '名称',
|
||||||
|
dataIndex: 'name',
|
||||||
|
key: 'name',
|
||||||
|
}]" @selected="handleConfirmSelectPerson"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -188,6 +199,8 @@ import {
|
|||||||
addContract,
|
addContract,
|
||||||
updateContract,
|
updateContract,
|
||||||
} from "@/api/sales/contract";
|
} from "@/api/sales/contract";
|
||||||
|
import TableSelect from '@/components/TableSelect'
|
||||||
|
import {getPerson, listPerson} from "@/api/sales/person";
|
||||||
|
|
||||||
const {proxy} = getCurrentInstance();
|
const {proxy} = getCurrentInstance();
|
||||||
|
|
||||||
@ -200,6 +213,7 @@ const single = ref(true);
|
|||||||
const multiple = ref(true);
|
const multiple = ref(true);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
|
const showPersonSelect = ref()
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
@ -293,6 +307,7 @@ function handleAdd() {
|
|||||||
function handleUpdate(row) {
|
function handleUpdate(row) {
|
||||||
reset();
|
reset();
|
||||||
const _contractId = row.contractId || ids.value;
|
const _contractId = row.contractId || ids.value;
|
||||||
|
console.log(row)
|
||||||
getContract(_contractId).then((response) => {
|
getContract(_contractId).then((response) => {
|
||||||
form.value = response.data;
|
form.value = response.data;
|
||||||
open.value = true;
|
open.value = true;
|
||||||
@ -333,7 +348,22 @@ function handleDelete(row) {
|
|||||||
getList();
|
getList();
|
||||||
proxy.$modal.msgSuccess("删除成功");
|
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();
|
getList();
|
||||||
|
|||||||
@ -102,7 +102,7 @@
|
|||||||
@click="handleAddSeller(record.teamId)"
|
@click="handleAddSeller(record.teamId)"
|
||||||
>添加销售
|
>添加销售
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button link type="primary" icon="plus" @click="setManager"
|
<el-button link type="primary" icon="plus" @click="handleSetManager(record.teamId)"
|
||||||
>设置主管
|
>设置主管
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
@ -140,10 +140,12 @@
|
|||||||
key: 'name',
|
key: 'name',
|
||||||
},
|
},
|
||||||
]"
|
]"
|
||||||
|
:multiple="!!selectPersonType"
|
||||||
row-key="personId"
|
row-key="personId"
|
||||||
:fetcher="listPerson"
|
:fetcher="listPerson"
|
||||||
:filter="filter"
|
:filter="filter"
|
||||||
v-model:show="showPersonSelector"
|
v-model:show="showPersonSelector"
|
||||||
|
@selected="handleConfirmSelect"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -158,9 +160,10 @@ import {
|
|||||||
import {getCurrentInstance, reactive, ref, toRefs} from "vue";
|
import {getCurrentInstance, reactive, ref, toRefs} from "vue";
|
||||||
import {Table as ATable} from "ant-design-vue";
|
import {Table as ATable} from "ant-design-vue";
|
||||||
import TableSelect from "@/components/TableSelect";
|
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 DictTag from "@/components/DictTag/index.vue";
|
||||||
import {sales_person_dict} from "@/constant/dict";
|
import {sales_person_dict} from "@/constant/dict";
|
||||||
|
import modal from "@/plugins/modal";
|
||||||
|
|
||||||
const {proxy} = getCurrentInstance();
|
const {proxy} = getCurrentInstance();
|
||||||
|
|
||||||
@ -172,7 +175,6 @@ const ids = ref([]);
|
|||||||
const single = ref(true);
|
const single = ref(true);
|
||||||
const multiple = ref(true);
|
const multiple = ref(true);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const personTotal = ref(0);
|
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
const showPersonSelector = ref(false);
|
const showPersonSelector = ref(false);
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
@ -330,7 +332,11 @@ function handleDelete(row) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const selectPersonType = ref(0) // 0 manager, 1 seller
|
||||||
|
const currentTeamId = ref()
|
||||||
const handleAddSeller = (teamId) => {
|
const handleAddSeller = (teamId) => {
|
||||||
|
selectPersonType.value = 1
|
||||||
|
currentTeamId.value = teamId
|
||||||
filter.canBeManagerOf = null
|
filter.canBeManagerOf = null
|
||||||
filter.canBeSellerOf = teamId
|
filter.canBeSellerOf = teamId
|
||||||
showPersonSelector.value = true
|
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();
|
getList();
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user