update
This commit is contained in:
@ -2,43 +2,52 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
export function listPerson(query) {
|
||||
return request({
|
||||
url: "/sales/person/list",
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
return request({
|
||||
url: "/sales/person/list",
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询person详细
|
||||
export function getPerson(personId) {
|
||||
return request({
|
||||
url: "/sales/person/" + personId,
|
||||
method: "get",
|
||||
});
|
||||
return request({
|
||||
url: "/sales/person/" + personId,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
// 新增person
|
||||
export function addPerson(data) {
|
||||
return request({
|
||||
url: "/sales/person",
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
return request({
|
||||
url: "/sales/person",
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 修改person
|
||||
export function updatePerson(data) {
|
||||
return request({
|
||||
url: "/sales/person",
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
return request({
|
||||
url: "/sales/person",
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 删除person
|
||||
export function delPerson(personId) {
|
||||
return request({
|
||||
url: "/sales/person/" + personId,
|
||||
method: "delete",
|
||||
});
|
||||
return request({
|
||||
url: "/sales/person/" + 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})
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -1,41 +1,41 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="客户" prop="customer">
|
||||
<el-input
|
||||
v-model="queryParams.customer"
|
||||
placeholder="请输入客户"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
v-model="queryParams.customer"
|
||||
placeholder="请输入客户"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="税点" prop="taxPoint">
|
||||
<el-input
|
||||
v-model="queryParams.taxPoint"
|
||||
placeholder="请输入税点"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
v-model="queryParams.taxPoint"
|
||||
placeholder="请输入税点"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间" prop="date">
|
||||
<el-date-picker
|
||||
clearable
|
||||
v-model="queryParams.date"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择时间"
|
||||
clearable
|
||||
v-model="queryParams.date"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择时间"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery"
|
||||
>搜索
|
||||
>搜索
|
||||
</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
@ -44,131 +44,136 @@
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['sales:contract:add']"
|
||||
>新增
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['sales:contract:add']"
|
||||
>新增
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['sales:contract:edit']"
|
||||
>修改
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['sales:contract:edit']"
|
||||
>修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['sales:contract:remove']"
|
||||
>删除
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['sales:contract:remove']"
|
||||
>删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar
|
||||
v-model:showSearch="showSearch"
|
||||
@queryTable="getList"
|
||||
v-model:showSearch="showSearch"
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="contractList"
|
||||
@selection-change="handleSelectionChange"
|
||||
v-loading="loading"
|
||||
:data="contractList"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="客户" align="center" prop="customer" />
|
||||
<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 type="selection" width="55" align="center"/>
|
||||
<el-table-column label="客户" align="center" prop="customer"/>
|
||||
<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>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="创建时间"
|
||||
align="center"
|
||||
prop="createTime"
|
||||
width="180"
|
||||
label="创建时间"
|
||||
align="center"
|
||||
prop="createTime"
|
||||
width="180"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span>{{ row.createTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
icon="Edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['sales:contract:edit']"
|
||||
>修改
|
||||
link
|
||||
type="primary"
|
||||
icon="Edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['sales:contract:edit']"
|
||||
>修改
|
||||
</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
icon="Delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['sales:contract:remove']"
|
||||
>删除
|
||||
link
|
||||
type="primary"
|
||||
icon="Delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['sales:contract:remove']"
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改contract对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form
|
||||
ref="contractRef"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
label-width="80px"
|
||||
ref="contractRef"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
label-width="80px"
|
||||
>
|
||||
<el-form-item label="地点" prop="location">
|
||||
<el-input v-model="form.location" placeholder="请输入地点" />
|
||||
<el-input v-model="form.location" placeholder="请输入地点"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户" prop="customer">
|
||||
<el-input v-model="form.customer" placeholder="请输入客户" />
|
||||
<el-input v-model="form.customer" placeholder="请输入客户"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="总额" prop="amount">
|
||||
<el-input v-model="form.amount" placeholder="请输入总额" />
|
||||
<el-input v-model="form.amount" placeholder="请输入总额"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="税点" prop="taxPoint">
|
||||
<el-input v-model="form.taxPoint" placeholder="请输入税点" />
|
||||
<el-input v-model="form.taxPoint" placeholder="请输入税点"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间" prop="date">
|
||||
<el-date-picker
|
||||
clearable
|
||||
v-model="form.date"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择时间"
|
||||
clearable
|
||||
v-model="form.date"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择时间"
|
||||
>
|
||||
</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,8 +199,10 @@ import {
|
||||
addContract,
|
||||
updateContract,
|
||||
} from "@/api/sales/contract";
|
||||
import TableSelect from '@/components/TableSelect'
|
||||
import {getPerson, listPerson} from "@/api/sales/person";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const {proxy} = getCurrentInstance();
|
||||
|
||||
const contractList = ref([]);
|
||||
const open = ref(false);
|
||||
@ -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: {},
|
||||
@ -216,22 +230,22 @@ const data = reactive({
|
||||
createUser: null,
|
||||
},
|
||||
rules: {
|
||||
contractId: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
location: [{ required: true, message: "地点不能为空", trigger: "blur" }],
|
||||
customer: [{ required: true, message: "客户不能为空", trigger: "blur" }],
|
||||
amount: [{ required: true, message: "总额不能为空", trigger: "blur" }],
|
||||
taxPoint: [{ required: true, message: "税点不能为空", trigger: "blur" }],
|
||||
date: [{ required: true, message: "时间不能为空", trigger: "blur" }],
|
||||
contractId: [{required: true, message: "不能为空", trigger: "blur"}],
|
||||
location: [{required: true, message: "地点不能为空", trigger: "blur"}],
|
||||
customer: [{required: true, message: "客户不能为空", trigger: "blur"}],
|
||||
amount: [{required: true, message: "总额不能为空", trigger: "blur"}],
|
||||
taxPoint: [{required: true, message: "税点不能为空", trigger: "blur"}],
|
||||
date: [{required: true, message: "时间不能为空", trigger: "blur"}],
|
||||
createDate: [
|
||||
{ required: true, message: "创建时间不能为空", trigger: "blur" },
|
||||
{required: true, message: "创建时间不能为空", trigger: "blur"},
|
||||
],
|
||||
createUser: [
|
||||
{ required: true, message: "创建人不能为空", trigger: "blur" },
|
||||
{required: true, message: "创建人不能为空", trigger: "blur"},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
const {queryParams, form, rules} = toRefs(data);
|
||||
|
||||
/** 查询contract列表 */
|
||||
function getList() {
|
||||
@ -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;
|
||||
@ -325,15 +340,30 @@ function submitForm() {
|
||||
function handleDelete(row) {
|
||||
const _contractIds = row.contractId || ids.value;
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除contract编号为"' + _contractIds + '"的数据项?')
|
||||
.then(function () {
|
||||
return delContract(_contractIds);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
.confirm('是否确认删除contract编号为"' + _contractIds + '"的数据项?')
|
||||
.then(function () {
|
||||
return delContract(_contractIds);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.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();
|
||||
|
@ -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>
|
||||
|
Reference in New Issue
Block a user