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/api/salesManagement/salespersonManagement.js          |   35 +++++++++++
 src/views/salesManagement/salespersonManagement/index.vue |  132 ++++++++++++++++++++-----------------------
 2 files changed, 96 insertions(+), 71 deletions(-)

diff --git a/src/api/salesManagement/salespersonManagement.js b/src/api/salesManagement/salespersonManagement.js
new file mode 100644
index 0000000..5c5cf66
--- /dev/null
+++ b/src/api/salesManagement/salespersonManagement.js
@@ -0,0 +1,35 @@
+// 閿�鍞彴璐﹂〉闈㈡帴鍙�
+import request from "@/utils/request";
+
+// 鍒嗛〉鏌ヨ
+export function listPage(query) {
+    return request({
+        url: "/salespersonManagement/listPage",
+        method: "get",
+        params: query,
+    });
+}
+// 鏂板
+export function add(data) {
+    return request({
+        url: "/salespersonManagement/add",
+        method: "post",
+        data
+    });
+}
+// 淇敼
+export function update(data) {
+    return request({
+        url: "/salespersonManagement/update",
+        method: "post",
+        data
+    });
+}
+// 鍒犻櫎閿�鍞彴璐�
+export function deleteSalespersonManagement(data) {
+    return request({
+        url: "/salespersonManagement/delete",
+        method: "delete",
+        data
+    });
+}
\ No newline at end of file
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