Ver código fonte

feat:更换会员归属选择公司

caoliqin 4 semanas atrás
pai
commit
d738c3943b
2 arquivos alterados com 71 adições e 35 exclusões
  1. 11 2
      src/api/company/companyUser.js
  2. 60 33
      src/views/fs/user/index.vue

+ 11 - 2
src/api/company/companyUser.js

@@ -77,11 +77,20 @@ export function getUserList(companyId){
 }
 
 // 根据登录的用户公司获取所有的销售
-export function getCompanyUserList(query) {
+export function getCompanyUserList(data) {
   return request({
     url: '/company/companyUser/getCompanyUserList',
     method: 'get',
-    query: query
+    params: data
+  })
+}
+
+// 获取所有的公司
+export function getCompanyList(data) {
+  return request({
+    url: '/company/company/getCompanyList',
+    method: 'get',
+    params: data
   })
 }
 

+ 60 - 33
src/views/fs/user/index.vue

@@ -121,6 +121,16 @@
     <!-- 更换会员归属对话框 -->
     <el-dialog title="更换会员归属" :visible.sync="changeCompanyUserOpen" width="500px" append-to-body>
       <el-form ref="changeCompanyUserForm" :model="changeCompanyUserForm" :rules="changeCompanyUserRules" label-width="100px">
+        <el-form-item label="选择公司" prop="companyId">
+          <el-select v-model="changeCompanyUserForm.companyId" placeholder="请选择公司" style="width: 100%" @change="handleCompanyChange">
+            <el-option
+              v-for="item in companyOptions"
+              :key="item.companyId"
+              :label="item.companyName"
+              :value="item.companyId"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item label="选择销售" prop="companyUserId">
           <el-select v-model="changeCompanyUserForm.companyUserId" placeholder="请选择销售" style="width: 100%" @change="handleCompanyUserChange">
             <el-option
@@ -142,7 +152,7 @@
 
 <script>
 import { listUser, delUser, addUser, updateUser, exportUser } from "@/api/fs/user";
-import { getCompanyUserList, changeCompanyUser } from '@/api/company/companyUser';
+import { getCompanyUserList, changeCompanyUser, getCompanyList } from '@/api/company/companyUser';
 export default {
   name: "User",
   data() {
@@ -194,17 +204,22 @@ export default {
       changeCompanyUserOpen: false,
       // 更换会员归属表单
       changeCompanyUserForm: {
+        companyId: null,
         companyUserId: null,
-        companyId: null
+        userIds: []
       },
       // 更换会员归属表单校验
       changeCompanyUserRules: {
+        companyId: [
+          { required: true, message: '请选择公司', trigger: 'change' }
+        ],
         companyUserId: [
-          { required: true, message: "请选择销售", trigger: "change" }
+          { required: true, message: '请选择销售', trigger: 'change' }
         ]
       },
       // 销售选项
-      companyUserOptions: []
+      companyUserOptions: [],
+      companyOptions: []
     };
   },
   created() {
@@ -313,62 +328,74 @@ export default {
     },
     /** 更换会员归属按钮操作 */
     handleChangeCompanyUser() {
-      // 获取销售列表
-      getCompanyUserList().then(response => {
+      // 获取公司下拉列表
+      getCompanyList().then(response => {
         if (response.code === 200) {
-          this.companyUserOptions = response.data;
-          console.log("列表", this.companyUserOptions);
+          this.companyOptions = response.data;
+          // 重置表单和销售列表
+          this.resetCompanyUserForm();
+          this.companyUserOptions = [];
           this.changeCompanyUserOpen = true;
         } else {
-          this.$message.error(response.msg || '获取销售列表失败');
+          this.$message.error(response.msg || '获取公司列表失败');
         }
       }).catch(() => {
-        this.$message.error('获取销售列表失败');
+        this.$message.error('获取公司列表失败');
       });
     },
-    /** 取消更换会员归属 */
-    cancelChangeCompanyUser() {
-      this.changeCompanyUserOpen = false;
-      this.resetCompanyUserForm();
-    },
     /** 销售选择变化 */
-    handleCompanyUserChange(value) {
-      const selectedUser = this.companyUserOptions.find(item => item.userId === value);
-      if (selectedUser) {
-        this.changeCompanyUserForm.companyId = selectedUser.companyId;
-        console.log("选择的销售信息:", selectedUser);
-        console.log("设置的companyId:", this.changeCompanyUserForm.companyId);
+    handleCompanyUserChange(userId) {
+      if (!this.changeCompanyUserForm.companyId) {
+        this.$message.warning('请先选择公司');
+        this.changeCompanyUserForm.companyUserId = null;
+        return;
       }
     },
     /** 重置更换会员归属表单 */
     resetCompanyUserForm() {
       this.changeCompanyUserForm = {
+        companyId: null,
         companyUserId: null,
-        companyId: null
+        userIds: []
       };
       this.resetForm("changeCompanyUserForm");
     },
+    handleCompanyChange(companyId) {
+      // 清空已选择的销售
+      this.changeCompanyUserForm.companyUserId = null;
+      // 根据公司ID获取对应的销售列表
+      if (companyId) {
+        getCompanyUserList({ companyId: companyId }).then(response => {
+          if (response.code === 200) {
+            this.companyUserOptions = response.data;
+          } else {
+            this.$message.error(response.msg || '获取销售列表失败');
+            this.companyUserOptions = [];
+          }
+        }).catch(() => {
+          this.$message.error('获取销售列表失败');
+          this.companyUserOptions = [];
+        });
+      } else {
+        this.companyUserOptions = [];
+      }
+    },
+    /** 取消更换会员归属 */
+    cancelChangeCompanyUser() {
+      this.changeCompanyUserOpen = false;
+      this.resetCompanyUserForm();
+    },
     /** 提交更换会员归属 */
     submitChangeCompanyUserForm() {
       this.$refs["changeCompanyUserForm"].validate(valid => {
         if (valid) {
           // 调用更换会员归属接口
-          console.log("销售", this.changeCompanyUserForm);
-          console.log("用户", this.ids);
-
           // 检查companyId是否已设置
           if (!this.changeCompanyUserForm.companyId) {
-            this.$message.error('请选择销售');
+            this.$message.error('请选择公司');
             return;
           }
 
-          // 确保userIds是List<Long>类型
-          // const userIds = this.ids.map(id => Number(id));
-          console.log({
-            userIds:  this.ids,
-            companyUserId: this.changeCompanyUserForm.companyUserId,
-            companyId: this.changeCompanyUserForm.companyId
-          })
           changeCompanyUser(this.ids, {
               companyUserId: this.changeCompanyUserForm.companyUserId,
               companyId: this.changeCompanyUserForm.companyId