jazz
2022-08-24 a4b91616ceae752e11cb6fc5198ebadf52cd68ed
src/pages/system/admin.vue
@@ -5,10 +5,11 @@
      <el-form-item label="管理员搜索">
        <el-input
          v-model="keyWord"
          placeholder="请输入管理员名称/账号"
          placeholder="搜索管理员名称/账号"
          clearable
          size="small"
          style="width: 240px"
          maxlength="50"
          @keyup.enter.native="reGetList"
        />
      </el-form-item>
@@ -38,11 +39,17 @@
      <el-table-column type="index" label="序号" align="center" width="60" />
      <el-table-column label="名称" prop="name" align="center" min-width="120" />
      <el-table-column label="账号" prop="account" align="center" min-width="120" />
      <el-table-column label="账号类型" prop="account" align="center" min-width="120">
        <template slot-scope="scope">
          {{ accountTypeOptions.find(item=>item.id == scope.row.type) ? accountTypeOptions.find(item=>item.id == scope.row.type).name : '' }}
        </template>
      </el-table-column>
      <el-table-column label="角色" prop="roleName" align="center" min-width="120" />
      <!-- <el-table-column label="最近登录时间" prop="loginTime" align="center" min-width="180" /> -->
      <el-table-column label="状态" align="center" min-width="100">
        <template slot-scope="scope">
          <el-switch
            v-if="scope.row.type!=0"
            v-model="scope.row.isUse"
            :active-value="1"
            :inactive-value="0"
@@ -61,7 +68,7 @@
            @click="showEditAdminDialog(scope.row)"
          >编辑</el-button>
          <el-button
            v-if="getAuthValueFN('sys_admin_del')"
            v-if="getAuthValueFN('sys_admin_del') && scope.row.type!=0"
            size="mini"
            type="text warn"
            icon="el-icon-delete"
@@ -80,22 +87,32 @@
    />
    <!-- 新增&编辑 -->
    <el-dialog :title="adminDialogData.type=='add'?'新增管理员':'编辑管理员'" width="500px" :visible.sync="isShowadminDialog" append-to-body>
    <el-dialog v-el-drag-dialog :title="adminDialogData.type==='add'?'新增管理员':'编辑管理员'" width="500px" :visible.sync="adminDialogVisible" append-to-body :close-on-click-modal="false">
      <el-form ref="adminDialog" :model="adminDialogData" label-width="80px" :rules="rules" size="small">
        <el-form-item label="名称" prop="name">
          <el-input v-model="adminDialogData.name" placeholder="请输入名称" />
          <el-input v-model="adminDialogData.name" placeholder="请输入名称" maxlength="50" />
        </el-form-item>
        <el-form-item label="账号" prop="account">
          <el-input v-model="adminDialogData.account" placeholder="请输入帐号" :disabled="adminDialogData.type!='add'" />
          <el-input v-model="adminDialogData.account" placeholder="请输入帐号" maxlength="20" :disabled="adminDialogData.type!='add'" />
        </el-form-item>
        <el-form-item label="密码" prop="password">
          <el-input v-model="adminDialogData.password" type="password" placeholder="请输入密码" />
        <el-form-item label="密码" :prop="adminDialogData.type==='add'||adminDialogData.password||adminDialogData.passwordSure?'password':'none'">
          <el-input v-model="adminDialogData.password" type="password" placeholder="请输入密码" maxlength="20" />
        </el-form-item>
        <el-form-item label="确认密码" prop="passwordSure">
          <el-input v-model="adminDialogData.passwordSure" type="password" placeholder="请输入确认密码" />
        <el-form-item label="确认密码" :prop="adminDialogData.type==='add'||adminDialogData.password||adminDialogData.passwordSure?'passwordSure':'none'">
          <el-input v-model="adminDialogData.passwordSure" type="password" placeholder="请输入确认密码" maxlength="20" />
        </el-form-item>
        <!-- 账号类型 -->
        <el-form-item label="账号类型" prop="accountType">
          <el-select
            v-model="adminDialogData.accountType"
            clearable
            placeholder="账号类型"
            style="width: 100%"
          >
            <el-option v-for="item in accountTypeOptions" :key="item.id" :label="item.name" :value="item.id" />
          </el-select>
        </el-form-item>
        <!-- 角色 -->
        <!-- 选择框 -->
        <el-form-item label="角色" prop="sysRoleId">
          <el-select
            v-model="adminDialogData.sysRoleId"
@@ -107,7 +124,7 @@
          </el-select>
        </el-form-item>
        <el-form-item label="是否启用" prop="sysRoleId">
        <el-form-item label="是否启用" prop="isUse">
          <el-switch
            v-model="adminDialogData.isUse"
            :active-value="1"
@@ -125,7 +142,6 @@
</template>
<script>
export default {
  name: 'Admin',
  data() {
@@ -144,8 +160,13 @@
      // 角色列表
      roleArr: [],
      // 账号类型
      accountTypeOptions: [
        { name: '普通管理员', id: 1 },
        { name: '超级管理员', id: 0 }
      ],
      isShowadminDialog: false,
      adminDialogVisible: false,
      adminDialogData: {},
      // 分页 ↓↓↓↓↓↓↓↓↓↓
@@ -163,7 +184,8 @@
          { required: true, message: '账号不能为空', trigger: 'change' }
        ],
        password: [
          { required: true, message: '密码不能为空', trigger: 'change' }
          { required: true, message: '密码不能为空', trigger: 'change' },
          { min: 5, max: 20, message: '密码在5~20个字之间' }
        ],
        passwordSure: [
          { required: true, message: '确认密码不能为空', trigger: 'change' },
@@ -171,6 +193,12 @@
        ],
        sysRoleId: [
          { required: true, message: '角色不能为空', trigger: 'change' }
        ],
        accountType: [
          { required: true, message: '账号类型不能为空', trigger: 'change' }
        ],
        isUse: [
          { required: true, message: '是否启用不能为空', trigger: 'change' }
        ]
      }
    }
@@ -188,17 +216,23 @@
    // 获取角色列表
    getRoleList() {
      this.postFN({
        url: 'admin/roleList',
        url: 'admin/role/list',
        params: {
          pageNum: 1,
          pageSize: 9999
        },
        mockData: {
          code: 100,
          msg: '',
          data: [{
            id: 'xxx',
            name: '野马发'
          }]
          data: {
            list: [{
              id: 'xxx',
              name: '野马发'
            }]
          }
        }
      }, (inf) => {
        this.roleArr = inf || []
        this.roleArr = inf.list && inf.list.filter(item => item.isUse === 1) || []
      })
    },
@@ -303,10 +337,14 @@
        password: '',
        passwordSure: '',
        sysRoleId: '',
        isUse: 1
        isUse: 1,
        accountType: 1
      }
      this.adminDialogData = adminDialogData
      this.isShowadminDialog = true
      this.adminDialogVisible = true
      this.$nextTick(() => {
        this.adminDialogData = adminDialogData
        this.$refs['adminDialog'].resetFields()
      })
    },
    // 打开编辑分类弹框
    showEditAdminDialog(item) {
@@ -318,15 +356,19 @@
        passwordSure: '',
        sysRoleId: item.roId,
        id: item.id,
        isUse: item.isUse
        isUse: item.isUse,
        accountType: item.type
      }
      this.adminDialogData = adminDialogData
      this.isShowadminDialog = true
      this.adminDialogVisible = true
      this.$nextTick(() => {
        this.adminDialogData = adminDialogData
        this.$refs['adminDialog'].resetFields()
      })
    },
    // 关闭编辑弹窗
    hideAdminDialog() {
      this.adminDialogData = {}
      this.isShowadminDialog = false
      this.adminDialogVisible = false
    },
    // 提交新增&编辑
    submitAdmin(type) {
@@ -336,10 +378,11 @@
          var params = {
            name: adminDialogData.name,
            account: adminDialogData.account,
            password: adminDialogData.password,
            sysAdRoleId: adminDialogData.sysRoleId,
            isUse: adminDialogData.isUse
            isUse: adminDialogData.isUse,
            type: adminDialogData.accountType
          }
          if (adminDialogData.password) params.password = adminDialogData.password
          var isAdd = adminDialogData.type === 'add'
          var url = isAdd ? 'admin/add' : 'admin/update'
@@ -356,7 +399,7 @@
          }, () => {
            this.$messageSuc('保存成功')
            this.hideAdminDialog()
            this.getList()
            isAdd ? this.reGetList() : this.getList()
          })
        }
      })