From c1f88801880d3496a9a86e2d048ed8e2141203e3 Mon Sep 17 00:00:00 2001
From: quantulr <35954003+quantulr@users.noreply.github.com>
Date: Fri, 17 Nov 2023 17:26:24 +0800
Subject: [PATCH] update
---
src/api/sales/person.js | 55 +++---
src/components/TableSelect/index.vue | 9 +-
src/views/sales/contract/index.vue | 240 +++++++++++++++------------
src/views/sales/team/team.vue | 34 +++-
4 files changed, 203 insertions(+), 135 deletions(-)
diff --git a/src/api/sales/person.js b/src/api/sales/person.js
index b2c201b..cce3e38 100644
--- a/src/api/sales/person.js
+++ b/src/api/sales/person.js
@@ -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})
}
diff --git a/src/components/TableSelect/index.vue b/src/components/TableSelect/index.vue
index 22c236a..7d22413 100644
--- a/src/components/TableSelect/index.vue
+++ b/src/components/TableSelect/index.vue
@@ -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 = () => {
/>
diff --git a/src/views/sales/contract/index.vue b/src/views/sales/contract/index.vue
index 92eee15..9276324 100644
--- a/src/views/sales/contract/index.vue
+++ b/src/views/sales/contract/index.vue
@@ -1,41 +1,41 @@
搜索
+ >搜索
重置
@@ -44,131 +44,136 @@
新增
+ type="primary"
+ plain
+ icon="Plus"
+ @click="handleAdd"
+ v-hasPermi="['sales:contract:add']"
+ >新增
修改
+ type="success"
+ plain
+ icon="Edit"
+ :disabled="single"
+ @click="handleUpdate"
+ v-hasPermi="['sales:contract:edit']"
+ >修改
删除
+ type="danger"
+ plain
+ icon="Delete"
+ :disabled="multiple"
+ @click="handleDelete"
+ v-hasPermi="['sales:contract:remove']"
+ >删除
-
-
-
-
-
+
+
+
+
+
+
{{ row.date }}
{{ row.createTime }}
修改
+ link
+ type="primary"
+ icon="Edit"
+ @click="handleUpdate(scope.row)"
+ v-hasPermi="['sales:contract:edit']"
+ >修改
删除
+ link
+ type="primary"
+ icon="Delete"
+ @click="handleDelete(scope.row)"
+ v-hasPermi="['sales:contract:remove']"
+ >删除
-
+
-
+
-
+
-
+
+
+ {{ form.salesPerson }}
+ 选择
+
+
+
@@ -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();
diff --git a/src/views/sales/team/team.vue b/src/views/sales/team/team.vue
index 7998237..f0d2f9d 100644
--- a/src/views/sales/team/team.vue
+++ b/src/views/sales/team/team.vue
@@ -102,7 +102,7 @@
@click="handleAddSeller(record.teamId)"
>添加销售
- 设置主管
@@ -140,10 +140,12 @@
key: 'name',
},
]"
+ :multiple="!!selectPersonType"
row-key="personId"
:fetcher="listPerson"
:filter="filter"
v-model:show="showPersonSelector"
+ @selected="handleConfirmSelect"
/>
@@ -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();