liyaozhi
2025-11-27 d729c91f610c8902fcec2444df6cac7b1c2e1002
修复连盟管理PC端无法添加管理员的问题
1 files added
5 files modified
292 ■■■■ changed files
admin/app/branch/controller/auth/User.php 2 ●●● patch | view | raw | blame | history
admin/app/branch/model/auth/User.php 66 ●●●● patch | view | raw | blame | history
branch_vue/src/components/member/GetMember.vue 195 ●●●●● patch | view | raw | blame | history
branch_vue/src/components/user/GetUser.vue 2 ●●● patch | view | raw | blame | history
branch_vue/src/views/auth/user/dialog/Add.vue 24 ●●●● patch | view | raw | blame | history
branch_vue/src/views/auth/user/dialog/Edit.vue 3 ●●●● patch | view | raw | blame | history
admin/app/branch/controller/auth/User.php
@@ -37,7 +37,7 @@
        $data = $this->postData();
        $data['branch_id'] = $this->getBranchId();
        $model = new UserModel();
        $num = $model->getUserName(['is_delete'=>0,'user_name' => $data['user_name']]);
        $num = $model->getUserName(['is_delete' => 0,'user_name' => $data['user_name']]);
        if ($num > 0) {
            return $this->renderError('用户名已存在');
        }
admin/app/branch/model/auth/User.php
@@ -49,14 +49,14 @@
        $this->startTrans();
        try {
            // 用户是否已绑定
            $user = null;
            if($data['user_id'] > 0){
                $user = UserModel::detail($data['user_id']);
                if($user['user_type'] != 1){
                    $this->error = '该用户已绑定,或绑定的商户正在审核';
                    return false;
                }
            }
            // $user = null;
            // if($data['user_id'] > 0){
            //     $user = UserModel::detail($data['user_id']);
            //     if($user['user_type'] != 1){
            //         $this->error = '该用户已绑定或正在审核';
            //         return false;
            //     }
            // }
            $arr = [
                'user_name' => trim($data['user_name']),
                'password' => salt_hash($data['password']),
@@ -77,11 +77,11 @@
            }
            $model->saveAll($add_arr);
            // 后台添加的直接算审核通过
            if($user){
                $user->save([
                    'user_type' => 2
                ]);
            }
            // if($user){
            //     $user->save([
            //         'user_type' => 2
            //     ]);
            // }
            // 事务提交
            $this->commit();
            return true;
@@ -110,18 +110,18 @@
                $old_user_id = $this['user']['user_id'];
            }
            $userChange = false;
            if($this['user'] && $data['user_id'] > 0 && $data['user_id'] != $this['user']['user_id']){
                $user = UserModel::detail($data['user_id']);
                if($user['user_type'] != 1){
                    $this->error = '该用户已绑定,或绑定的商户正在审核';
                    return false;
                }
                $userChange = true;
            }
            // if($this['user'] && $data['user_id'] > 0 && $data['user_id'] != $this['user']['user_id']){
            //     $user = UserModel::detail($data['user_id']);
            //     if($user['user_type'] != 1){
            //         $this->error = '该用户已绑定,或绑定的商户正在审核';
            //         return false;
            //     }
            //     $userChange = true;
            // }
            $arr = [
                'user_name' => $data['user_name'],
                'user_id' => $data['user_id'],
                // 'user_id' => $data['user_id'],
                'real_name' => $data['real_name'],
            ];
            if (!empty($data['password'])) {
@@ -142,17 +142,17 @@
            }
            $model->saveAll($add_arr);
            // 后台添加的直接算审核通过
            if($userChange){
                $user->save([
                    'user_type' => 2
                ]);
                //取消原来的
                if ($old_user_id > 0){
                    (new UserModel())->where('user_id', '=', $old_user_id)->update([
                        'user_type' => 1
                    ]);
                }
            }
            // if($userChange){
            //     $user->save([
            //         'user_type' => 2
            //     ]);
            //     //取消原来的
            //     if ($old_user_id > 0){
            //         (new UserModel())->where('user_id', '=', $old_user_id)->update([
            //             'user_type' => 1
            //         ]);
            //     }
            // }
            // 事务提交
            $this->commit();
            return true;
branch_vue/src/components/member/GetMember.vue
New file
@@ -0,0 +1,195 @@
<template>
  <!--
        作者:lyzflash
        时间:2025-11-7
        描述:组件-选择连盟会员
    -->
  <el-dialog title="选择用户" :visible.sync="dialogVisible" @close="cancelFunc" :close-on-click-modal="false" :close-on-press-escape="false" width="800px" :append-to-body='true'>
    <div class="common-seach-wrap">
      <el-form size="small" :inline="true" :model="formInline" class="demo-form-inline">
        <el-form-item label="昵称"><el-input placeholder="请输入姓名/微信昵称/电话号码" v-model="formInline.search"></el-input></el-form-item>
        <el-form-item>
          <el-button icon="el-icon-search" @click="search">查询</el-button>
        </el-form-item>
      </el-form>
    </div>
    <!--内容-->
    <div class="product-content">
      <div class="table-wrap">
        <el-table :data="tableData" size="small" border style="width: 100%" v-loading="loading" @selection-change="handleSelectionChange">
          <el-table-column prop="user_id" label="ID" width="70"></el-table-column>
          <el-table-column prop="" label="头像" width="70">
            <template slot-scope="scope">
              <img :src="scope.row.avatarUrl" class="radius" width="30" height="30" />
            </template>
          </el-table-column>
          <el-table-column prop="nickName" label="昵称"></el-table-column>
          <el-table-column prop="real_name" label="姓名"></el-table-column>
          <el-table-column prop="mobile" label="电话号码"></el-table-column>
          <el-table-column prop="create_time" label="创建时间"></el-table-column>
          <el-table-column label="操作" width="80" v-if="!islist">
            <template slot-scope="scope">
              <el-button size="mini" @click="SingleFunc(scope.row)">选择</el-button>
            </template>
          </el-table-column>
          <el-table-column type="selection" width="45" v-else></el-table-column>
        </el-table>
      </div>
      <!--分页-->
      <div class="pagination">
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          background
          :current-page="curPage"
          :page-sizes="[2, 10, 20, 50, 100]"
          :page-size="pageSize"
          layout="total, prev, pager, next, jumper"
          :total="totalDataNumber"
        ></el-pagination>
      </div>
    </div>
    <div slot="footer" class="dialog-footer" v-if="islist">
      <el-button size="small" @click="dialogVisible = false">取 消</el-button>
      <el-button size="small" type="primary" @click="confirmFunc">确 定</el-button>
    </div>
  </el-dialog>
</template>
<script>
import DataApi from '@/api/data.js';
export default {
  data() {
    return {
      /*是否加载完成*/
      loading: true,
      /*当前是第几页*/
      curPage: 1,
      /*一页多少条*/
      pageSize: 10,
      /*一共多少条数据*/
      totalDataNumber: 0,
      /*搜索表单对象*/
      formInline: {
        /*昵称*/
        search: '',
      },
      /*会员列表*/
      tableData: [],
      /*选中的*/
      multipleSelection: [],
      /*是否显示*/
      dialogVisible: false
    };
  },
  props: {
    is_open: {
      type: Boolean,
      default: false
    },
    //  是否多选
    islist: {
      type: Boolean,
      default: false
    },
  },
  watch: {
    is_open: function(n, o) {
      if (n != o) {
        this.dialogVisible = n;
        if (n) {
          this.getTableList();
        }
      }
    }
  },
  created() {},
  methods: {
    /*选择第几页*/
    handleCurrentChange(val) {
      this.curPage = val;
      this.getTableList();
    },
    /*每页多少条*/
    handleSizeChange(val) {
      this.curPage = 1;
      this.pageSize = val;
      this.getTableList();
    },
    /*获取数据*/
    getTableList() {
      let self = this;
      self.loading = true;
      let params = self.formInline;
      params.page = self.curPage;
      params.list_rows = self.pageSize;
      DataApi.getBranchMember(params,true).then(data => {
          self.loading = false;
          self.tableData = data.data.list.data;
          self.totalDataNumber = data.data.list.total;
          self.gradeList = data.data.grade;
        })
        .catch(error => {
          self.loading = false;
        });
    },
    /*查询*/
    search() {
      this.curPage = 1;
      this.tableData = [];
      this.getTableList();
    },
    /*点击确定*/
    confirmFunc() {
      let params = this.multipleSelection;
      this.emitFunc(params);
    },
    /*关闭弹窗*/
    cancelFunc(e) {
      this.emitFunc();
    },
    /*发送事件*/
    emitFunc(e) {
      this.dialogVisible = false;
      if (e && typeof e != 'undefined') {
        this.$emit('close', {
          type: 'success',
          params: e
        });
      } else {
        this.$emit('close', {
          type: 'error'
        });
      }
    },
    /*监听单选按钮选中事件*/
    selectUser(val) {
      this.multipleSelection = val;
      this.confirmFunc();
    },
    /*选择用户*/
    handleSelectionChange(e) {
      this.multipleSelection = e;
    },
    /*单选*/
    SingleFunc(row){
      this.multipleSelection=[row];
      this.confirmFunc();
    },
  }
};
</script>
<style></style>
branch_vue/src/components/user/GetUser.vue
@@ -68,7 +68,7 @@
      /*当前是第几页*/
      curPage: 1,
      /*一页多少条*/
      pageSize: 15,
      pageSize: 10,
      /*一共多少条数据*/
      totalDataNumber: 0,
      /*搜索表单对象*/
branch_vue/src/views/auth/user/dialog/Add.vue
@@ -4,7 +4,7 @@
        时间:2019-10-25
        描述:权限-管理员列表-添加管理员
    -->
  <el-dialog title="添加管理员" :visible.sync="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false" :close-on-press-escape="false" :append-to-body='true'>
  <el-dialog title="添加管理员" :visible.sync="dialogVisible" width="600px" @close="dialogFormVisible" :close-on-click-modal="false" :close-on-press-escape="false" :append-to-body='true'>
    <!--form表单-->
    <el-form size="small" ref="form" :model="form" :rules="formRules" :label-width="formLabelWidth">
      <el-form-item label="用户名" prop="user_name"><el-input v-model="form.user_name" placeholder="请输入用户名"></el-input></el-form-item>
@@ -16,8 +16,9 @@
      <el-form-item label="绑定用户">
        <el-row>
          <el-button @click="addClick" icon="el-icon-plus">选择会员</el-button>
          <div v-if="form.user_info.user_id!=''" class="img">
            <img :src="form.user_info.user.avatarUrl" width="100" height="100" />
          <div v-if="form.user_id" class="img mt10">
            <img :src="user_info.avatarUrl" width="100" height="100" />
            <p>{{ user_info.nickName }}<span v-if="user_info.real_name">({{ user_info.real_name }})</span></p>
          </div>
        </el-row>
      </el-form-item>
@@ -30,13 +31,13 @@
      <el-button type="primary" @click="onSubmit" :loading="loading">确 定</el-button>
    </div>
    <!--添加-->
    <GetUser :is_open="open_add" @close="closeDialogFunc"></GetUser>
    <GetMember :is_open="open_add" @close="closeDialogFunc"></GetMember>
  </el-dialog>
</template>
<script>
import AuthApi from '@/api/auth.js';
import GetUser from '@/components/user/GetUser.vue';
import GetMember from '@/components/member/GetMember.vue';
export default {
  data() {
    return {
@@ -53,12 +54,11 @@
        user_name: '',
        access_id: [],
        user_id: 0,
        user_info:{
          user:{
          }
        }
        password: '',
        confirm_password: '',
        real_name: ''
      },
      user_info: {},
      /*form验证*/
      formRules: {
        user_name: [
@@ -108,7 +108,7 @@
    }
  },
  components:{
    GetUser
    GetMember
  },
  watch: {
    open: function(n, o) {
@@ -153,7 +153,7 @@
      /*关闭获取用户弹窗*/
      closeDialogFunc(e) {
        if (e.type != 'error') {
          this.form.user_info = e.params[0];
          this.user_info = e.params[0];
          this.form.user_id = e.params[0].user_id;
        }
        this.open_add = false;
branch_vue/src/views/auth/user/dialog/Edit.vue
@@ -15,9 +15,10 @@
      </el-form-item>
      <el-form-item label="绑定用户" >
        <el-row>
          <el-button @click="addClick" icon="el-icon-plus">选择会员</el-button>
          <!-- <el-button @click="addClick" icon="el-icon-plus">选择会员</el-button> -->
          <div class="img" v-if="form.user_id > 0">
            <img :src="form.user.avatarUrl" width="100" height="100" />
            <p>{{ form.user.nickName }}<span v-if="form.user.real_name">({{ form.user.real_name }})</span></p>
          </div>
        </el-row>
      </el-form-item>