maven
12 小时以前 9ec75693071dc8d93801fef804b5bc44449f26c6
yys  业务员管理
已修改1个文件
已添加1个文件
167 ■■■■■ 文件已修改
src/api/salesManagement/salespersonManagement.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salespersonManagement/index.vue 132 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
    });
}
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
    }
  })
}