From 9ec75693071dc8d93801fef804b5bc44449f26c6 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期一, 15 九月 2025 13:30:54 +0800 Subject: [PATCH] yys 业务员管理 --- src/views/salesManagement/salespersonManagement/index.vue | 132 ++++++++++++++++++++----------------------- 1 files changed, 61 insertions(+), 71 deletions(-) diff --git a/src/views/salesManagement/salespersonManagement/index.vue b/src/views/salesManagement/salespersonManagement/index.vue index 3169b79..e597538 100644 --- a/src/views/salesManagement/salespersonManagement/index.vue +++ b/src/views/salesManagement/salespersonManagement/index.vue @@ -61,7 +61,7 @@ </el-table-column> <el-table-column prop="permissions" label="鏉冮檺"> <template #default="scope"> - <el-tag v-for="perm in scope.row.permissions" :key="perm" size="small" style="margin-right: 5px;"> + <el-tag v-for="perm in scope.row.permissionsList" :key="perm" size="small" style="margin-right: 5px;"> {{ perm }} </el-tag> </template> @@ -77,10 +77,10 @@ <!-- 鍒嗛〉 --> <pagination - :total="pagination.total" + :total="total" layout="total, sizes, prev, pager, next, jumper" - :page="pagination.currentPage" - :limit="pagination.pageSize" + :page="pagination.current" + :limit="pagination.size" @pagination="handleCurrentChange" /> </el-card> @@ -183,10 +183,26 @@ </template> <script setup> -import { ref, reactive, computed, nextTick } from 'vue' +import { ref, reactive, computed,onMounted } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' +import {listPage,add,update,deleteSalespersonManagement} from '@/api/salesManagement/salespersonManagement.js' import { Plus, Search } from '@element-plus/icons-vue' import Pagination from '@/components/PIMTable/Pagination.vue' + +const salespersonList = ref([]) +const total = ref(0) + +onMounted(() => { + getList() +}) +const getList = () => { + loading.value = true + listPage({...pagination,...searchForm}).then(res => { + salespersonList.value = res.data.records + total.value = res.data.total + loading.value = false + }) +} // 鍝嶅簲寮忔暟鎹� const loading = ref(false) @@ -196,46 +212,11 @@ status: '' }) -const salespersonList = ref([ - { - id: 1, - name: '闄堝織寮�', - phone: '13800138001', - email: 'chenzhiqiang@company.com', - department: '閿�鍞儴', - position: '閿�鍞粡鐞�', - hireDate: '2023-01-15', - status: '鍦ㄨ亴', - permissions: ['璁㈠崟绠$悊', '瀹㈡埛绠$悊', '璐㈠姟绠$悊'] - }, - { - id: 2, - name: '鍒橀泤濠�', - phone: '13800138002', - email: 'liuyating@company.com', - department: '甯傚満閮�', - position: '甯傚満涓撳憳', - hireDate: '2023-03-20', - status: '鍦ㄨ亴', - permissions: ['瀹㈡埛绠$悊', '鎶ヨ〃鏌ョ湅'] - }, - { - id: 3, - name: '鐜嬪缓鍥�', - phone: '13800138003', - email: 'wangjianguo@company.com', - department: '瀹㈡湇閮�', - position: '瀹㈡湇涓荤', - hireDate: '2022-11-10', - status: '鍦ㄨ亴', - permissions: ['瀹㈡埛绠$悊', '鍙戣揣绠$悊'] - } -]) -const pagination = ref({ - total: 3, - currentPage: 1, - pageSize: 10 + +const pagination = reactive({ + current: 1, + size: 10 }) const dialogVisible = ref(false) @@ -293,6 +274,7 @@ } const handleSearch = () => { + getList() // 鎼滅储閫昏緫宸插湪computed涓鐞� } @@ -329,28 +311,35 @@ cancelButtonText: '鍙栨秷', type: 'warning' }).then(() => { - const index = salespersonList.value.findIndex(item => item.id === row.id) - if (index > -1) { - salespersonList.value.splice(index, 1) - pagination.value.total-- - ElMessage.success('鍒犻櫎鎴愬姛') - } + let ids = [row.id] + deleteSalespersonManagement(ids).then(res => { + if(res.code === 200){ + ElMessage.success('鍒犻櫎鎴愬姛') + getList() + } + }) }) } const handlePermissions = (row) => { currentSalesperson.value = row - currentPermissions.value = [...row.permissions] + currentPermissions.value = row.permissions.split(",") permissionDialogVisible.value = true } const savePermissions = () => { - const index = salespersonList.value.findIndex(item => item.id === currentSalesperson.value.id) - if (index > -1) { - salespersonList.value[index].permissions = [...currentPermissions.value] - ElMessage.success('鏉冮檺璁剧疆鎴愬姛') - permissionDialogVisible.value = false + let splice = currentPermissions.value; + if(splice[0] === ''){ + splice.splice(0,1) } + currentSalesperson.value.permissions = splice.join(",") + update(currentSalesperson.value).then(res => { + if(res.code === 200){ + ElMessage.success('鏉冮檺璁剧疆鎴愬姛') + permissionDialogVisible.value = false + getList() + } + }) } const handleSubmit = () => { @@ -358,23 +347,24 @@ if (valid) { if (isEdit.value) { // 缂栬緫 - const index = salespersonList.value.findIndex(item => item.id === editId.value) - if (index > -1) { - salespersonList.value[index] = { ...form, id: editId.value } - ElMessage.success('缂栬緫鎴愬姛') - } - } else { - // 鏂板 - const newId = Math.max(...salespersonList.value.map(item => item.id)) + 1 - salespersonList.value.push({ - ...form, - id: newId, - permissions: [] + update(form).then(res => { + if(res.code === 200){ + ElMessage.success('缂栬緫鎴愬姛') + dialogVisible.value = false + getList() + } }) - pagination.value.total++ - ElMessage.success('鏂板鎴愬姛') + } else { + add(form).then(res => { + if(res.code === 200){ + ElMessage.success('鏂板鎴愬姛') + dialogVisible.value = false + getList() + } + }) + } - dialogVisible.value = false + } }) } -- Gitblit v1.9.3