|
@@ -1,571 +1,577 @@
|
|
|
<template>
|
|
|
<section class="content">
|
|
|
- <div class="box box-info">
|
|
|
- <div
|
|
|
- v-loading.fullscreen="loading"
|
|
|
- class="box-body"
|
|
|
- element-loading-text="请稍后..."
|
|
|
+ <div
|
|
|
+ v-loading.fullscreen="loading"
|
|
|
+ class="box-body"
|
|
|
+ element-loading-text="请稍后..."
|
|
|
+ ></div>
|
|
|
+
|
|
|
+ <div class="part-box">
|
|
|
+ <h2 class="part-box-title">用户管理</h2>
|
|
|
+ <!-- 搜索 -->
|
|
|
+ <el-form class="part-filter-form" inline :model="searchForm">
|
|
|
+ <el-form-item v-if="isSuperAdmin" label="学校">
|
|
|
+ <el-select
|
|
|
+ v-model="searchForm.rootOrgId"
|
|
|
+ placeholder="请选择"
|
|
|
+ :disabled="!isSuperAdmin"
|
|
|
+ class="input_width"
|
|
|
+ filterable
|
|
|
+ @change="rootOrgChanged4Search"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in rootSchoolSelect"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="!onlySubjectTeacher" label="角色">
|
|
|
+ <el-select
|
|
|
+ v-model="searchForm.roleId"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择"
|
|
|
+ class="input_width"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in roleList4Search"
|
|
|
+ :key="item.roleId"
|
|
|
+ :label="item.roleName"
|
|
|
+ :value="item.roleId"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="课程">
|
|
|
+ <el-select
|
|
|
+ v-model="searchForm.courseId"
|
|
|
+ class="input"
|
|
|
+ :remote-method="getCourses4Search"
|
|
|
+ :loading="courseLoading4Search"
|
|
|
+ remote
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ placeholder="请选择"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in courseList4Search"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name + ' - ' + item.code"
|
|
|
+ :value="item.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="登录名">
|
|
|
+ <el-input
|
|
|
+ v-model="searchForm.loginName"
|
|
|
+ placeholder="请输入登录名"
|
|
|
+ maxlength="20"
|
|
|
+ class="input_width"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="姓名">
|
|
|
+ <el-input
|
|
|
+ v-model="searchForm.name"
|
|
|
+ placeholder="请输入姓名"
|
|
|
+ maxlength="20"
|
|
|
+ class="input_width"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="状态">
|
|
|
+ <el-select v-model="searchForm.enable" class="input">
|
|
|
+ <el-option label="未选择" value=""></el-option>
|
|
|
+ <el-option label="已启用" value="true"></el-option>
|
|
|
+ <el-option label="已禁用" value="false"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-search"
|
|
|
+ @click="handleSearchBtn"
|
|
|
+ >
|
|
|
+ 查询
|
|
|
+ </el-button>
|
|
|
+
|
|
|
+ <el-button icon="el-icon-refresh" @click="resetEcsFormSearch">
|
|
|
+ 重置
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <div class="part-box-action">
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ icon="el-icon-check"
|
|
|
+ :disabled="noBatchSelected"
|
|
|
+ @click="enableByIds"
|
|
|
+ >启用
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ type="danger"
|
|
|
+ icon="el-icon-close"
|
|
|
+ :disabled="noBatchSelected"
|
|
|
+ @click="disableByIds"
|
|
|
+ >禁用
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ @click="openAddingDialog"
|
|
|
+ >
|
|
|
+ 新增
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-upload2"
|
|
|
+ @click="impUser"
|
|
|
+ >
|
|
|
+ 导入
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="part-box">
|
|
|
+ <!-- 页面列表 -->
|
|
|
+ <el-table
|
|
|
+ ref="table"
|
|
|
+ :data="tableData"
|
|
|
+ resizable
|
|
|
+ @selection-change="selectChange"
|
|
|
>
|
|
|
- <!-- 搜索 -->
|
|
|
- <el-form inline :model="searchForm">
|
|
|
- <el-form-item v-if="isSuperAdmin" label="学校">
|
|
|
+ <el-table-column
|
|
|
+ type="selection"
|
|
|
+ width="50"
|
|
|
+ align="center"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column prop="id" width="80" label="ID" />
|
|
|
+ <el-table-column prop="name" width="120" label="姓名" />
|
|
|
+ <el-table-column prop="loginName" width="100" label="登录名" />
|
|
|
+ <el-table-column prop="rootOrgName" label="顶级机构" />
|
|
|
+ <!-- <el-table-column prop="roleNamesStr" width="110" label="角色" /> -->
|
|
|
+ <el-table-column width="120" label="角色">
|
|
|
+ <span
|
|
|
+ slot-scope="scope"
|
|
|
+ v-html="scope.row.roleNamesStr.replace(/,/g, '<br />')"
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column width="100" label="审核权限">
|
|
|
+ <span slot-scope="scope">{{
|
|
|
+ scope.row.auditAuthority | auditAuthorityFilter
|
|
|
+ }}</span>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column width="120" label="关联课程">
|
|
|
+ <span
|
|
|
+ slot-scope="scope"
|
|
|
+ v-html="
|
|
|
+ scope.row.courseNamesStr &&
|
|
|
+ scope.row.courseNamesStr.replace(/,/g, '<br />')
|
|
|
+ "
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ sortable
|
|
|
+ prop="updateTime"
|
|
|
+ width="160"
|
|
|
+ label="更新时间"
|
|
|
+ />
|
|
|
+ <el-table-column width="50" label="状态">
|
|
|
+ <span slot-scope="scope">
|
|
|
+ <span v-if="scope.row.enable">
|
|
|
+ <el-tooltip
|
|
|
+ class="item"
|
|
|
+ effect="dark"
|
|
|
+ content="启用"
|
|
|
+ placement="left"
|
|
|
+ >
|
|
|
+ <i class="el-icon-success" style="color: green"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </span>
|
|
|
+ <span v-else>
|
|
|
+ <el-tooltip
|
|
|
+ class="item"
|
|
|
+ effect="dark"
|
|
|
+ content="禁用"
|
|
|
+ placement="left"
|
|
|
+ >
|
|
|
+ <i class="el-icon-error" style="color: red"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column width="190" label="操作">
|
|
|
+ <div slot-scope="scope">
|
|
|
+ <div v-if="showBtn(scope.row)">
|
|
|
+ <el-button
|
|
|
+ v-if="!scope.row.enable"
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-check"
|
|
|
+ @click="enableById(scope.row)"
|
|
|
+ >
|
|
|
+ 启用
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="scope.row.enable"
|
|
|
+ size="mini"
|
|
|
+ type="danger"
|
|
|
+ icon="el-icon-close"
|
|
|
+ @click="disableById(scope.row)"
|
|
|
+ >
|
|
|
+ 禁用
|
|
|
+ </el-button>
|
|
|
+
|
|
|
+ <el-dropdown>
|
|
|
+ <el-button type="primary" plain size="mini">
|
|
|
+ 更多<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item>
|
|
|
+ <el-button
|
|
|
+ v-if="showUserDataRuleSetting(scope.row)"
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="
|
|
|
+ () =>
|
|
|
+ $router.push(
|
|
|
+ `./user/data_previllege/${scope.row.rootOrgId}/${scope.row.id}`
|
|
|
+ )
|
|
|
+ "
|
|
|
+ >权限设置
|
|
|
+ </el-button>
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="openUpdateDialog(scope.row)"
|
|
|
+ >编辑
|
|
|
+ </el-button>
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item>
|
|
|
+ <el-button
|
|
|
+ v-if="false"
|
|
|
+ size="mini"
|
|
|
+ type="danger"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="deleteById(scope.row)"
|
|
|
+ >删除
|
|
|
+ </el-button>
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="danger"
|
|
|
+ @click="resetPass(scope.row)"
|
|
|
+ >
|
|
|
+ <v-icon name="lock" scale="0.7" /> 重置密码
|
|
|
+ </el-button>
|
|
|
+ </el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="part-page">
|
|
|
+ <el-pagination
|
|
|
+ :current-page="currentPage"
|
|
|
+ :page-size="10"
|
|
|
+ :page-sizes="[10, 20, 50, 100, 200, 300]"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="total"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 添加用户信息弹出框 -->
|
|
|
+ <el-dialog
|
|
|
+ title="新增用户"
|
|
|
+ width="450px"
|
|
|
+ :visible.sync="addingDialog"
|
|
|
+ :modal="false"
|
|
|
+ append-to-body
|
|
|
+ custom-class="side-dialog"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ ref="addingForm"
|
|
|
+ :inline="true"
|
|
|
+ inline-message
|
|
|
+ :model="userForm"
|
|
|
+ :rules="rules"
|
|
|
+ label-position="right"
|
|
|
+ label-width="80px"
|
|
|
+ >
|
|
|
+ <el-row>
|
|
|
+ <el-form-item label="姓名" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="userForm.name"
|
|
|
+ class="input_width_lg"
|
|
|
+ auto-complete="off"
|
|
|
+ placeholder="请输入姓名"
|
|
|
+ maxlength="20"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-form-item label="登录名" prop="loginName">
|
|
|
+ <el-input
|
|
|
+ v-model="userForm.loginName"
|
|
|
+ class="input_width_lg"
|
|
|
+ auto-complete="off"
|
|
|
+ placeholder="请输入登录名"
|
|
|
+ maxlength="20"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-form-item label="密码" prop="password">
|
|
|
+ <el-input
|
|
|
+ v-model="userForm.password"
|
|
|
+ class="input_width_lg"
|
|
|
+ auto-complete="off"
|
|
|
+ placeholder="请输入密码"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-form-item v-if="isSuperAdmin" label="学校" prop="rootOrgId">
|
|
|
<el-select
|
|
|
- v-model="searchForm.rootOrgId"
|
|
|
+ v-model="userForm.rootOrgId"
|
|
|
+ class="input_width_lg"
|
|
|
placeholder="请选择"
|
|
|
:disabled="!isSuperAdmin"
|
|
|
- class="input_width"
|
|
|
filterable
|
|
|
- @change="rootOrgChanged4Search"
|
|
|
+ @change="rootOrgChanged4InsertOrUpdate"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in rootSchoolSelect"
|
|
|
:key="item.id"
|
|
|
:label="item.name"
|
|
|
:value="item.id"
|
|
|
- />
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="!onlySubjectTeacher" label="角色">
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-form-item label="角色" prop="roleId">
|
|
|
<el-select
|
|
|
- v-model="searchForm.roleId"
|
|
|
- clearable
|
|
|
+ v-model="userForm.roleId"
|
|
|
+ class="input_width_lg"
|
|
|
placeholder="请选择"
|
|
|
- class="input_width"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="item in roleList4Search"
|
|
|
+ v-for="item in roleList4InsertOrUpdateWithoutSuperAdmin"
|
|
|
:key="item.roleId"
|
|
|
:label="item.roleName"
|
|
|
:value="item.roleId"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="课程">
|
|
|
- <el-select
|
|
|
- v-model="searchForm.courseId"
|
|
|
- class="input"
|
|
|
- :remote-method="getCourses4Search"
|
|
|
- :loading="courseLoading4Search"
|
|
|
- remote
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- placeholder="请选择"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in courseList4Search"
|
|
|
- :key="item.id"
|
|
|
- :label="item.name + ' - ' + item.code"
|
|
|
- :value="item.id"
|
|
|
- ></el-option>
|
|
|
+ :disabled="roleDis(item.roleCode)"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="登录名">
|
|
|
- <el-input
|
|
|
- v-model="searchForm.loginName"
|
|
|
- placeholder="请输入登录名"
|
|
|
- maxlength="20"
|
|
|
- class="input_width"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="姓名">
|
|
|
- <el-input
|
|
|
- v-model="searchForm.name"
|
|
|
- placeholder="请输入姓名"
|
|
|
- maxlength="20"
|
|
|
- class="input_width"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
<el-form-item label="状态">
|
|
|
- <el-select v-model="searchForm.enable" class="input">
|
|
|
- <el-option label="未选择" value=""></el-option>
|
|
|
- <el-option label="已启用" value="true"></el-option>
|
|
|
- <el-option label="已禁用" value="false"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-radio-group v-model="enableStr" class="pull_right_sm">
|
|
|
+ <el-radio label="true">启用</el-radio>
|
|
|
+ <el-radio label="false">禁用</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</el-form-item>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer">
|
|
|
+ <el-button type="primary" @click="add">保 存</el-button>
|
|
|
+ <el-button @click="addingDialog = false">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
|
|
|
- <el-form-item>
|
|
|
+ <!-- 修改用户信息弹出框 -->
|
|
|
+ <el-dialog
|
|
|
+ title="编辑用户"
|
|
|
+ width="450px"
|
|
|
+ :visible.sync="updateDialog"
|
|
|
+ :modal="false"
|
|
|
+ append-to-body
|
|
|
+ custom-class="side-dialog"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ ref="updateForm"
|
|
|
+ :inline="true"
|
|
|
+ inline-message
|
|
|
+ :model="userForm"
|
|
|
+ :rules="rules"
|
|
|
+ label-position="right"
|
|
|
+ label-width="120px"
|
|
|
+ >
|
|
|
+ <el-form-item label="ID">
|
|
|
+ <el-input
|
|
|
+ v-model="userForm.id"
|
|
|
+ class="input_width_lg"
|
|
|
+ :disabled="true"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="姓名" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="userForm.name"
|
|
|
+ class="input_width_lg"
|
|
|
+ auto-complete="off"
|
|
|
+ placeholder="请输入姓名"
|
|
|
+ maxlength="20"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="登录名" prop="loginName">
|
|
|
+ <el-input
|
|
|
+ v-model="userForm.loginName"
|
|
|
+ class="input_width_lg"
|
|
|
+ auto-complete="off"
|
|
|
+ placeholder="请输入登录名"
|
|
|
+ maxlength="20"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="isSuperAdmin" label="学校" prop="rootOrgId">
|
|
|
+ <el-select
|
|
|
+ v-model="userForm.rootOrgId"
|
|
|
+ class="input_width_lg"
|
|
|
+ placeholder="请选择"
|
|
|
+ :disabled="true"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in rootSchoolSelect"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="角色" prop="roleId">
|
|
|
+ <el-select
|
|
|
+ v-model="userForm.roleId"
|
|
|
+ class="input_width_lg"
|
|
|
+ placeholder="请选择"
|
|
|
+ :disabled="rowIsSuperAdmin"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in roleList4InsertOrUpdate"
|
|
|
+ :key="item.roleId"
|
|
|
+ :label="item.roleName"
|
|
|
+ :disabled="roleDis(item.roleCode)"
|
|
|
+ :value="item.roleId"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态">
|
|
|
+ <el-radio-group
|
|
|
+ v-model="enableStr"
|
|
|
+ class="pull_right_sm"
|
|
|
+ :disabled="rowIsSuperAdmin"
|
|
|
+ >
|
|
|
+ <el-radio label="true">启用</el-radio>
|
|
|
+ <el-radio label="false">禁用</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer">
|
|
|
+ <el-button type="primary" @click="update">保 存</el-button>
|
|
|
+ <el-button @click="updateDialog = false">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 导入弹窗 -->
|
|
|
+ <el-dialog
|
|
|
+ title="导入窗口"
|
|
|
+ width="520px"
|
|
|
+ :visible.sync="impDialog"
|
|
|
+ :modal="false"
|
|
|
+ append-to-body
|
|
|
+ custom-class="side-dialog"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <el-form-item style="margin-left: 20px">
|
|
|
+ <el-upload
|
|
|
+ ref="upload"
|
|
|
+ class="form_left"
|
|
|
+ accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
|
+ :action="uploadAction"
|
|
|
+ :headers="uploadHeaders"
|
|
|
+ :data="uploadData"
|
|
|
+ :on-success="uploadSuccess"
|
|
|
+ :on-error="uploadError"
|
|
|
+ :file-list="fileList"
|
|
|
+ :auto-upload="false"
|
|
|
+ :multiple="false"
|
|
|
+ >
|
|
|
<el-button
|
|
|
+ slot="trigger"
|
|
|
size="small"
|
|
|
type="primary"
|
|
|
icon="el-icon-search"
|
|
|
- @click="handleSearchBtn"
|
|
|
>
|
|
|
- 查询
|
|
|
+ 选择文件
|
|
|
</el-button>
|
|
|
-
|
|
|
+
|
|
|
<el-button
|
|
|
size="small"
|
|
|
- icon="el-icon-refresh"
|
|
|
- @click="resetEcsFormSearch"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-check"
|
|
|
+ @click="submitUpload"
|
|
|
>
|
|
|
- 重置
|
|
|
+ 确认上传
|
|
|
</el-button>
|
|
|
-
|
|
|
<el-button
|
|
|
size="small"
|
|
|
type="primary"
|
|
|
- icon="el-icon-plus"
|
|
|
- @click="openAddingDialog"
|
|
|
+ icon="el-icon-refresh"
|
|
|
+ @click="removeFile"
|
|
|
>
|
|
|
- 新增
|
|
|
+ 清空文件
|
|
|
</el-button>
|
|
|
<el-button
|
|
|
size="small"
|
|
|
type="primary"
|
|
|
- icon="el-icon-upload2"
|
|
|
- @click="impUser"
|
|
|
+ icon="el-icon-download"
|
|
|
+ @click="exportFile"
|
|
|
>
|
|
|
- 导入
|
|
|
+ 下载模板
|
|
|
</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
-
|
|
|
- <div class="block-seperator"></div>
|
|
|
- <span>批量操作:</span>
|
|
|
-
|
|
|
- <el-button
|
|
|
- size="small"
|
|
|
- type="success"
|
|
|
- icon="el-icon-check"
|
|
|
- :disabled="noBatchSelected"
|
|
|
- @click="enableByIds"
|
|
|
- >启用
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- size="small"
|
|
|
- type="danger"
|
|
|
- icon="el-icon-close"
|
|
|
- :disabled="noBatchSelected"
|
|
|
- @click="disableByIds"
|
|
|
- >禁用
|
|
|
- </el-button>
|
|
|
-
|
|
|
- <div class="block-seperator"></div>
|
|
|
- <!-- 添加用户信息弹出框 -->
|
|
|
- <el-dialog title="新增用户" width="450px" :visible.sync="addingDialog">
|
|
|
- <el-form
|
|
|
- ref="addingForm"
|
|
|
- :inline="true"
|
|
|
- inline-message
|
|
|
- :model="userForm"
|
|
|
- :rules="rules"
|
|
|
- label-position="right"
|
|
|
- label-width="120px"
|
|
|
- >
|
|
|
- <el-row>
|
|
|
- <el-form-item label="姓名" prop="name">
|
|
|
- <el-input
|
|
|
- v-model="userForm.name"
|
|
|
- class="input_width_lg"
|
|
|
- auto-complete="off"
|
|
|
- placeholder="请输入姓名"
|
|
|
- maxlength="20"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item label="登录名" prop="loginName">
|
|
|
- <el-input
|
|
|
- v-model="userForm.loginName"
|
|
|
- class="input_width_lg"
|
|
|
- auto-complete="off"
|
|
|
- placeholder="请输入登录名"
|
|
|
- maxlength="20"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item label="密码" prop="password">
|
|
|
- <el-input
|
|
|
- v-model="userForm.password"
|
|
|
- class="input_width_lg"
|
|
|
- auto-complete="off"
|
|
|
- placeholder="请输入密码"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item v-if="isSuperAdmin" label="学校" prop="rootOrgId">
|
|
|
- <el-select
|
|
|
- v-model="userForm.rootOrgId"
|
|
|
- class="input_width_lg"
|
|
|
- placeholder="请选择"
|
|
|
- :disabled="!isSuperAdmin"
|
|
|
- filterable
|
|
|
- @change="rootOrgChanged4InsertOrUpdate"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in rootSchoolSelect"
|
|
|
- :key="item.id"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item label="角色" prop="roleId">
|
|
|
- <el-select
|
|
|
- v-model="userForm.roleId"
|
|
|
- class="input_width_lg"
|
|
|
- placeholder="请选择"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in roleList4InsertOrUpdateWithoutSuperAdmin"
|
|
|
- :key="item.roleId"
|
|
|
- :label="item.roleName"
|
|
|
- :value="item.roleId"
|
|
|
- :disabled="roleDis(item.roleCode)"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item label="状态">
|
|
|
- <el-radio-group v-model="enableStr" class="pull_right_sm">
|
|
|
- <el-radio label="true">启用</el-radio>
|
|
|
- <el-radio label="false">禁用</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row class="d-flex justify-content-center">
|
|
|
- <el-button type="primary" @click="add">保 存</el-button>
|
|
|
- <el-button @click="addingDialog = false">取 消</el-button>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- <!-- 修改用户信息弹出框 -->
|
|
|
- <el-dialog title="编辑用户" width="450px" :visible.sync="updateDialog">
|
|
|
- <el-form
|
|
|
- ref="updateForm"
|
|
|
- :inline="true"
|
|
|
- inline-message
|
|
|
- :model="userForm"
|
|
|
- :rules="rules"
|
|
|
- label-position="right"
|
|
|
- label-width="120px"
|
|
|
- >
|
|
|
- <el-row>
|
|
|
- <el-form-item label="ID">
|
|
|
- <el-input
|
|
|
- v-model="userForm.id"
|
|
|
- class="input_width_lg"
|
|
|
- :disabled="true"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item label="姓名" prop="name">
|
|
|
- <el-input
|
|
|
- v-model="userForm.name"
|
|
|
- class="input_width_lg"
|
|
|
- auto-complete="off"
|
|
|
- placeholder="请输入姓名"
|
|
|
- maxlength="20"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item label="登录名" prop="loginName">
|
|
|
- <el-input
|
|
|
- v-model="userForm.loginName"
|
|
|
- class="input_width_lg"
|
|
|
- auto-complete="off"
|
|
|
- placeholder="请输入登录名"
|
|
|
- maxlength="20"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item v-if="isSuperAdmin" label="学校" prop="rootOrgId">
|
|
|
- <el-select
|
|
|
- v-model="userForm.rootOrgId"
|
|
|
- class="input_width_lg"
|
|
|
- placeholder="请选择"
|
|
|
- :disabled="true"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in rootSchoolSelect"
|
|
|
- :key="item.id"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item label="角色" prop="roleId">
|
|
|
- <el-select
|
|
|
- v-model="userForm.roleId"
|
|
|
- class="input_width_lg"
|
|
|
- placeholder="请选择"
|
|
|
- :disabled="rowIsSuperAdmin"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in roleList4InsertOrUpdate"
|
|
|
- :key="item.roleId"
|
|
|
- :label="item.roleName"
|
|
|
- :disabled="roleDis(item.roleCode)"
|
|
|
- :value="item.roleId"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-form-item label="状态">
|
|
|
- <el-radio-group
|
|
|
- v-model="enableStr"
|
|
|
- class="pull_right_sm"
|
|
|
- :disabled="rowIsSuperAdmin"
|
|
|
- >
|
|
|
- <el-radio label="true">启用</el-radio>
|
|
|
- <el-radio label="false">禁用</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- <el-row class="d-flex justify-content-center">
|
|
|
- <el-button type="primary" @click="update">保 存</el-button>
|
|
|
- <el-button @click="updateDialog = false">取 消</el-button>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- </el-dialog>
|
|
|
- <!-- 导入弹窗 -->
|
|
|
- <el-dialog title="导入窗口" width="520px" :visible.sync="impDialog">
|
|
|
- <el-form>
|
|
|
- <el-row>
|
|
|
- <el-form-item style="margin-left: 20px">
|
|
|
- <el-upload
|
|
|
- ref="upload"
|
|
|
- class="form_left"
|
|
|
- accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
|
- :action="uploadAction"
|
|
|
- :headers="uploadHeaders"
|
|
|
- :data="uploadData"
|
|
|
- :on-success="uploadSuccess"
|
|
|
- :on-error="uploadError"
|
|
|
- :file-list="fileList"
|
|
|
- :auto-upload="false"
|
|
|
- :multiple="false"
|
|
|
- >
|
|
|
- <el-button
|
|
|
- slot="trigger"
|
|
|
- size="small"
|
|
|
- type="primary"
|
|
|
- icon="el-icon-search"
|
|
|
- >
|
|
|
- 选择文件
|
|
|
- </el-button>
|
|
|
-
|
|
|
- <el-button
|
|
|
- size="small"
|
|
|
- type="primary"
|
|
|
- icon="el-icon-check"
|
|
|
- @click="submitUpload"
|
|
|
- >
|
|
|
- 确认上传
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- size="small"
|
|
|
- type="primary"
|
|
|
- icon="el-icon-refresh"
|
|
|
- @click="removeFile"
|
|
|
- >
|
|
|
- 清空文件
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- size="small"
|
|
|
- type="primary"
|
|
|
- icon="el-icon-download"
|
|
|
- @click="exportFile"
|
|
|
- >
|
|
|
- 下载模板
|
|
|
- </el-button>
|
|
|
- <div slot="tip" class="el-upload__tip">只能上传xlsx文件</div>
|
|
|
- </el-upload>
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- </el-dialog>
|
|
|
+ <div slot="tip" class="el-upload__tip">只能上传xlsx文件</div>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-dialog>
|
|
|
|
|
|
- <!-- 导入错误信息列表 -->
|
|
|
- <el-dialog title="错误提示" :visible.sync="errDialog">
|
|
|
- <div
|
|
|
- v-for="errMessage in errMessages"
|
|
|
- :key="errMessage.lineNum"
|
|
|
- class="text-danger"
|
|
|
- >
|
|
|
- 第{{ errMessage.lineNum }}行:{{ errMessage.msg }}
|
|
|
- </div>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="errDialog = false">确定</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
- <!-- 页面列表 -->
|
|
|
- <el-table
|
|
|
- ref="table"
|
|
|
- :data="tableData"
|
|
|
- border
|
|
|
- resizable
|
|
|
- stripe
|
|
|
- style="width: 100%"
|
|
|
- @selection-change="selectChange"
|
|
|
- >
|
|
|
- <el-table-column type="selection" width="50"></el-table-column>
|
|
|
- <el-table-column prop="id" width="80" label="ID" />
|
|
|
- <el-table-column prop="name" width="120" label="姓名" />
|
|
|
- <el-table-column prop="loginName" width="100" label="登录名" />
|
|
|
- <el-table-column prop="rootOrgName" label="顶级机构" />
|
|
|
- <!-- <el-table-column prop="roleNamesStr" width="110" label="角色" /> -->
|
|
|
- <el-table-column width="120" label="角色">
|
|
|
- <span
|
|
|
- slot-scope="scope"
|
|
|
- v-html="scope.row.roleNamesStr.replace(/,/g, '<br />')"
|
|
|
- >
|
|
|
- </span>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column width="100" label="审核权限">
|
|
|
- <span slot-scope="scope">{{
|
|
|
- scope.row.auditAuthority | auditAuthorityFilter
|
|
|
- }}</span>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column width="120" label="关联课程">
|
|
|
- <span
|
|
|
- slot-scope="scope"
|
|
|
- v-html="
|
|
|
- scope.row.courseNamesStr &&
|
|
|
- scope.row.courseNamesStr.replace(/,/g, '<br />')
|
|
|
- "
|
|
|
- >
|
|
|
- </span>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- sortable
|
|
|
- prop="updateTime"
|
|
|
- width="160"
|
|
|
- label="更新时间"
|
|
|
- />
|
|
|
- <el-table-column width="50" label="状态">
|
|
|
- <span slot-scope="scope">
|
|
|
- <span v-if="scope.row.enable">
|
|
|
- <el-tooltip
|
|
|
- class="item"
|
|
|
- effect="dark"
|
|
|
- content="启用"
|
|
|
- placement="left"
|
|
|
- >
|
|
|
- <i class="el-icon-success" style="color: green"></i>
|
|
|
- </el-tooltip>
|
|
|
- </span>
|
|
|
- <span v-else>
|
|
|
- <el-tooltip
|
|
|
- class="item"
|
|
|
- effect="dark"
|
|
|
- content="禁用"
|
|
|
- placement="left"
|
|
|
- >
|
|
|
- <i class="el-icon-error" style="color: red"></i>
|
|
|
- </el-tooltip>
|
|
|
- </span>
|
|
|
- </span>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column width="190" label="操作">
|
|
|
- <div slot-scope="scope">
|
|
|
- <div v-if="showBtn(scope.row)">
|
|
|
- <el-button
|
|
|
- v-if="!scope.row.enable"
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- plain
|
|
|
- icon="el-icon-check"
|
|
|
- @click="enableById(scope.row)"
|
|
|
- >
|
|
|
- 启用
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- v-if="scope.row.enable"
|
|
|
- size="mini"
|
|
|
- type="danger"
|
|
|
- icon="el-icon-close"
|
|
|
- @click="disableById(scope.row)"
|
|
|
- >
|
|
|
- 禁用
|
|
|
- </el-button>
|
|
|
-
|
|
|
- <el-dropdown>
|
|
|
- <el-button type="primary" plain size="mini">
|
|
|
- 更多<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
- </el-button>
|
|
|
- <el-dropdown-menu slot="dropdown">
|
|
|
- <el-dropdown-item>
|
|
|
- <el-button
|
|
|
- v-if="showUserDataRuleSetting(scope.row)"
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- plain
|
|
|
- icon="el-icon-edit"
|
|
|
- @click="
|
|
|
- () =>
|
|
|
- $router.push(
|
|
|
- `./user/data_previllege/${scope.row.rootOrgId}/${scope.row.id}`
|
|
|
- )
|
|
|
- "
|
|
|
- >权限设置
|
|
|
- </el-button>
|
|
|
- </el-dropdown-item>
|
|
|
- <el-dropdown-item>
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- plain
|
|
|
- icon="el-icon-edit"
|
|
|
- @click="openUpdateDialog(scope.row)"
|
|
|
- >编辑
|
|
|
- </el-button>
|
|
|
- </el-dropdown-item>
|
|
|
- <el-dropdown-item>
|
|
|
- <el-button
|
|
|
- v-if="false"
|
|
|
- size="mini"
|
|
|
- type="danger"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="deleteById(scope.row)"
|
|
|
- >删除
|
|
|
- </el-button>
|
|
|
- </el-dropdown-item>
|
|
|
- <el-dropdown-item>
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="danger"
|
|
|
- @click="resetPass(scope.row)"
|
|
|
- >
|
|
|
- <v-icon name="lock" scale="0.7" /> 重置密码
|
|
|
- </el-button>
|
|
|
- </el-dropdown-item>
|
|
|
- </el-dropdown-menu>
|
|
|
- </el-dropdown>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="page pull-right">
|
|
|
- <el-pagination
|
|
|
- :current-page="currentPage"
|
|
|
- :page-size="10"
|
|
|
- :page-sizes="[10, 20, 50, 100, 200, 300]"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :total="total"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- @size-change="handleSizeChange"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <!-- 导入错误信息列表 -->
|
|
|
+ <el-dialog title="错误提示" :visible.sync="errDialog" append-to-body>
|
|
|
+ <div
|
|
|
+ v-for="errMessage in errMessages"
|
|
|
+ :key="errMessage.lineNum"
|
|
|
+ class="text-danger"
|
|
|
+ >
|
|
|
+ 第{{ errMessage.lineNum }}行:{{ errMessage.msg }}
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="errDialog = false">确定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</section>
|
|
|
</template>
|
|
|
|