| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672 | 
							- <template>
 
-   <div class="app-container">
 
-     <el-row :gutter="20">
 
-       <!--部门数据-->
 
-       <el-col :span="4" :xs="24">
 
-         <div class="head-container">
 
-           <el-input
 
-             v-model="deptName"
 
-             placeholder="请输入部门名称"
 
-             clearable
 
-             size="small"
 
-             prefix-icon="el-icon-search"
 
-             style="margin-bottom: 20px"
 
-           />
 
-         </div>
 
-         <div class="head-container">
 
-           <el-tree
 
-             :data="deptOptions"
 
-             :props="defaultProps"
 
-             :expand-on-click-node="false"
 
-             :filter-node-method="filterNode"
 
-             ref="tree"
 
-             default-expand-all
 
-             highlight-current
 
-             @node-click="handleNodeClick"
 
-           />
 
-         </div>
 
-       </el-col>
 
-       <!--用户数据-->
 
-       <el-col :span="20" :xs="24">
 
-         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 
-           <el-form-item label="用户名称" prop="userName">
 
-             <el-input
 
-               v-model="queryParams.userName"
 
-               placeholder="请输入用户名称"
 
-               clearable
 
-               style="width: 240px"
 
-               @keyup.enter.native="handleQuery"
 
-             />
 
-           </el-form-item>
 
-           <el-form-item label="手机号码" prop="phonenumber">
 
-             <el-input
 
-               v-model="queryParams.phonenumber"
 
-               placeholder="请输入手机号码"
 
-               clearable
 
-               style="width: 240px"
 
-               @keyup.enter.native="handleQuery"
 
-             />
 
-           </el-form-item>
 
-           <el-form-item label="状态" prop="status">
 
-             <el-select
 
-               v-model="queryParams.status"
 
-               placeholder="用户状态"
 
-               clearable
 
-               style="width: 240px"
 
-             >
 
-               <el-option
 
-                 v-for="dict in dict.type.sys_normal_disable"
 
-                 :key="dict.value"
 
-                 :label="dict.label"
 
-                 :value="dict.value"
 
-               />
 
-             </el-select>
 
-           </el-form-item>
 
-           <el-form-item label="创建时间">
 
-             <el-date-picker
 
-               v-model="dateRange"
 
-               style="width: 240px"
 
-               value-format="yyyy-MM-dd"
 
-               type="daterange"
 
-               range-separator="-"
 
-               start-placeholder="开始日期"
 
-               end-placeholder="结束日期"
 
-             ></el-date-picker>
 
-           </el-form-item>
 
-           <el-form-item>
 
-             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
 
-             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
 
-           </el-form-item>
 
-         </el-form>
 
-         <el-row :gutter="10" class="mb8">
 
-           <el-col :span="1.5">
 
-             <el-button
 
-               type="primary"
 
-               plain
 
-               icon="el-icon-plus"
 
-               size="mini"
 
-               @click="handleAdd"
 
-               v-hasPermi="['system:user:add']"
 
-             >新增</el-button>
 
-           </el-col>
 
-           <el-col :span="1.5">
 
-             <el-button
 
-               type="success"
 
-               plain
 
-               icon="el-icon-edit"
 
-               size="mini"
 
-               :disabled="single"
 
-               @click="handleUpdate"
 
-               v-hasPermi="['system:user:edit']"
 
-             >修改</el-button>
 
-           </el-col>
 
-           <el-col :span="1.5">
 
-             <el-button
 
-               type="danger"
 
-               plain
 
-               icon="el-icon-delete"
 
-               size="mini"
 
-               :disabled="multiple"
 
-               @click="handleDelete"
 
-               v-hasPermi="['system:user:remove']"
 
-             >删除</el-button>
 
-           </el-col>
 
-           <el-col :span="1.5">
 
-             <el-button
 
-               type="info"
 
-               plain
 
-               icon="el-icon-upload2"
 
-               size="mini"
 
-               @click="handleImport"
 
-               v-hasPermi="['system:user:import']"
 
-             >导入</el-button>
 
-           </el-col>
 
-           <el-col :span="1.5">
 
-             <el-button
 
-               type="warning"
 
-               plain
 
-               icon="el-icon-download"
 
-               size="mini"
 
-               @click="handleExport"
 
-               v-hasPermi="['system:user:export']"
 
-             >导出</el-button>
 
-           </el-col>
 
-           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
 
-         </el-row>
 
-         <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
 
-           <el-table-column type="selection" width="50" align="center" />
 
-           <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
 
-           <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
 
-           <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
 
-           <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
 
-           <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
 
-           <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
 
-             <template slot-scope="scope">
 
-               <el-switch
 
-                 v-model="scope.row.status"
 
-                 active-value="0"
 
-                 inactive-value="1"
 
-                 @change="handleStatusChange(scope.row)"
 
-               ></el-switch>
 
-             </template>
 
-           </el-table-column>
 
-           <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
 
-             <template slot-scope="scope">
 
-               <span>{{ parseTime(scope.row.createTime) }}</span>
 
-             </template>
 
-           </el-table-column>
 
-           <el-table-column
 
-             label="操作"
 
-             align="center"
 
-             width="160"
 
-             class-name="small-padding fixed-width"
 
-           >
 
-             <template slot-scope="scope" v-if="scope.row.userId !== 1">
 
-               <el-button
 
-                 size="mini"
 
-                 type="text"
 
-                 icon="el-icon-edit"
 
-                 @click="handleUpdate(scope.row)"
 
-                 v-hasPermi="['system:user:edit']"
 
-               >修改</el-button>
 
-               <el-button
 
-                 size="mini"
 
-                 type="text"
 
-                 icon="el-icon-delete"
 
-                 @click="handleDelete(scope.row)"
 
-                 v-hasPermi="['system:user:remove']"
 
-               >删除</el-button>
 
-               <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
 
-                 <span class="el-dropdown-link">
 
-                   <i class="el-icon-d-arrow-right el-icon--right"></i>更多
 
-                 </span>
 
-                 <el-dropdown-menu slot="dropdown">
 
-                   <el-dropdown-item command="handleResetPwd" icon="el-icon-key"
 
-                     v-hasPermi="['system:user:resetPwd']">重置密码</el-dropdown-item>
 
-                   <el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check"
 
-                     v-hasPermi="['system:user:edit']">分配角色</el-dropdown-item>
 
-                 </el-dropdown-menu>
 
-               </el-dropdown>
 
-             </template>
 
-           </el-table-column>
 
-         </el-table>
 
-         <pagination
 
-           v-show="total>0"
 
-           :total="total"
 
-           :page.sync="queryParams.pageNum"
 
-           :limit.sync="queryParams.pageSize"
 
-           @pagination="getList"
 
-         />
 
-       </el-col>
 
-     </el-row>
 
-     <!-- 添加或修改用户配置对话框 -->
 
-     <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
 
-       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
 
-         <el-row>
 
-           <el-col :span="12">
 
-             <el-form-item label="用户昵称" prop="nickName">
 
-               <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
 
-             </el-form-item>
 
-           </el-col>
 
-           <el-col :span="12">
 
-             <el-form-item label="归属部门" prop="deptId">
 
-               <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
 
-             </el-form-item>
 
-           </el-col>
 
-         </el-row>
 
-         <el-row>
 
-           <el-col :span="12">
 
-             <el-form-item label="手机号码" prop="phonenumber">
 
-               <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
 
-             </el-form-item>
 
-           </el-col>
 
-           <el-col :span="12">
 
-             <el-form-item label="邮箱" prop="email">
 
-               <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
 
-             </el-form-item>
 
-           </el-col>
 
-         </el-row>
 
-         <el-row>
 
-           <el-col :span="12">
 
-             <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
 
-               <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
 
-             </el-form-item>
 
-           </el-col>
 
-           <el-col :span="12">
 
-             <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
 
-               <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/>
 
-             </el-form-item>
 
-           </el-col>
 
-         </el-row>
 
-         <el-row>
 
-           <el-col :span="12">
 
-             <el-form-item label="用户性别">
 
-               <el-select v-model="form.sex" placeholder="请选择性别">
 
-                 <el-option
 
-                   v-for="dict in dict.type.sys_user_sex"
 
-                   :key="dict.value"
 
-                   :label="dict.label"
 
-                   :value="dict.value"
 
-                 ></el-option>
 
-               </el-select>
 
-             </el-form-item>
 
-           </el-col>
 
-           <el-col :span="12">
 
-             <el-form-item label="状态">
 
-               <el-radio-group v-model="form.status">
 
-                 <el-radio
 
-                   v-for="dict in dict.type.sys_normal_disable"
 
-                   :key="dict.value"
 
-                   :label="dict.value"
 
-                 >{{dict.label}}</el-radio>
 
-               </el-radio-group>
 
-             </el-form-item>
 
-           </el-col>
 
-         </el-row>
 
-         <el-row>
 
-           <el-col :span="12">
 
-             <el-form-item label="岗位">
 
-               <el-select v-model="form.postIds" multiple placeholder="请选择岗位">
 
-                 <el-option
 
-                   v-for="item in postOptions"
 
-                   :key="item.postId"
 
-                   :label="item.postName"
 
-                   :value="item.postId"
 
-                   :disabled="item.status == 1"
 
-                 ></el-option>
 
-               </el-select>
 
-             </el-form-item>
 
-           </el-col>
 
-           <el-col :span="12">
 
-             <el-form-item label="角色">
 
-               <el-select v-model="form.roleIds" multiple placeholder="请选择角色">
 
-                 <el-option
 
-                   v-for="item in roleOptions"
 
-                   :key="item.roleId"
 
-                   :label="item.roleName"
 
-                   :value="item.roleId"
 
-                   :disabled="item.status == 1"
 
-                 ></el-option>
 
-               </el-select>
 
-             </el-form-item>
 
-           </el-col>
 
-         </el-row>
 
-         <el-row>
 
-           <el-col :span="24">
 
-             <el-form-item label="备注">
 
-               <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
 
-             </el-form-item>
 
-           </el-col>
 
-         </el-row>
 
-       </el-form>
 
-       <div slot="footer" class="dialog-footer">
 
-         <el-button type="primary" @click="submitForm">确 定</el-button>
 
-         <el-button @click="cancel">取 消</el-button>
 
-       </div>
 
-     </el-dialog>
 
-     <!-- 用户导入对话框 -->
 
-     <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
 
-       <el-upload
 
-         ref="upload"
 
-         :limit="1"
 
-         accept=".xlsx, .xls"
 
-         :headers="upload.headers"
 
-         :action="upload.url + '?updateSupport=' + upload.updateSupport"
 
-         :disabled="upload.isUploading"
 
-         :on-progress="handleFileUploadProgress"
 
-         :on-success="handleFileSuccess"
 
-         :auto-upload="false"
 
-         drag
 
-       >
 
-         <i class="el-icon-upload"></i>
 
-         <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
 
-         <div class="el-upload__tip text-center" slot="tip">
 
-           <div class="el-upload__tip" slot="tip">
 
-             <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
 
-           </div>
 
-           <span>仅允许导入xls、xlsx格式文件。</span>
 
-           <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
 
-         </div>
 
-       </el-upload>
 
-       <div slot="footer" class="dialog-footer">
 
-         <el-button type="primary" @click="submitFileForm">确 定</el-button>
 
-         <el-button @click="upload.open = false">取 消</el-button>
 
-       </div>
 
-     </el-dialog>
 
-   </div>
 
- </template>
 
- <script>
 
- import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus } from "@/api/system/user";
 
- import { getToken } from "@/utils/auth";
 
- import { treeselect } from "@/api/system/dept";
 
- import Treeselect from "@riophae/vue-treeselect";
 
- import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
- export default {
 
-   name: "User",
 
-   dicts: ['sys_normal_disable', 'sys_user_sex'],
 
-   components: { Treeselect },
 
-   data() {
 
-     return {
 
-       // 遮罩层
 
-       loading: true,
 
-       // 选中数组
 
-       ids: [],
 
-       // 非单个禁用
 
-       single: true,
 
-       // 非多个禁用
 
-       multiple: true,
 
-       // 显示搜索条件
 
-       showSearch: true,
 
-       // 总条数
 
-       total: 0,
 
-       // 用户表格数据
 
-       userList: null,
 
-       // 弹出层标题
 
-       title: "",
 
-       // 部门树选项
 
-       deptOptions: undefined,
 
-       // 是否显示弹出层
 
-       open: false,
 
-       // 部门名称
 
-       deptName: undefined,
 
-       // 默认密码
 
-       initPassword: undefined,
 
-       // 日期范围
 
-       dateRange: [],
 
-       // 岗位选项
 
-       postOptions: [],
 
-       // 角色选项
 
-       roleOptions: [],
 
-       // 表单参数
 
-       form: {},
 
-       defaultProps: {
 
-         children: "children",
 
-         label: "label"
 
-       },
 
-       // 用户导入参数
 
-       upload: {
 
-         // 是否显示弹出层(用户导入)
 
-         open: false,
 
-         // 弹出层标题(用户导入)
 
-         title: "",
 
-         // 是否禁用上传
 
-         isUploading: false,
 
-         // 是否更新已经存在的用户数据
 
-         updateSupport: 0,
 
-         // 设置上传的请求头部
 
-         headers: { Authorization: "Bearer " + getToken() },
 
-         // 上传的地址
 
-         url: process.env.VUE_APP_BASE_API + "/system/user/importData"
 
-       },
 
-       // 查询参数
 
-       queryParams: {
 
-         pageNum: 1,
 
-         pageSize: 10,
 
-         userName: undefined,
 
-         phonenumber: undefined,
 
-         status: undefined,
 
-         deptId: undefined
 
-       },
 
-       // 列信息
 
-       columns: [
 
-         { key: 0, label: `用户编号`, visible: true },
 
-         { key: 1, label: `用户名称`, visible: true },
 
-         { key: 2, label: `用户昵称`, visible: true },
 
-         { key: 3, label: `部门`, visible: true },
 
-         { key: 4, label: `手机号码`, visible: true },
 
-         { key: 5, label: `状态`, visible: true },
 
-         { key: 6, label: `创建时间`, visible: true }
 
-       ],
 
-       // 表单校验
 
-       rules: {
 
-         userName: [
 
-           { required: true, message: "用户名称不能为空", trigger: "blur" },
 
-           { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
 
-         ],
 
-         nickName: [
 
-           { required: true, message: "用户昵称不能为空", trigger: "blur" }
 
-         ],
 
-         password: [
 
-           { required: true, message: "用户密码不能为空", trigger: "blur" },
 
-           { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
 
-         ],
 
-         email: [
 
-           {
 
-             type: "email",
 
-             message: "请输入正确的邮箱地址",
 
-             trigger: ["blur", "change"]
 
-           }
 
-         ],
 
-         phonenumber: [
 
-           {
 
-             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
 
-             message: "请输入正确的手机号码",
 
-             trigger: "blur"
 
-           }
 
-         ]
 
-       }
 
-     };
 
-   },
 
-   watch: {
 
-     // 根据名称筛选部门树
 
-     deptName(val) {
 
-       this.$refs.tree.filter(val);
 
-     }
 
-   },
 
-   created() {
 
-     this.getList();
 
-     this.getTreeselect();
 
-     this.getConfigKey("sys.user.initPassword").then(response => {
 
-       this.initPassword = response.msg;
 
-     });
 
-   },
 
-   methods: {
 
-     /** 查询用户列表 */
 
-     getList() {
 
-       this.loading = true;
 
-       listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
 
-           this.userList = response.rows;
 
-           this.total = response.total;
 
-           this.loading = false;
 
-         }
 
-       );
 
-     },
 
-     /** 查询部门下拉树结构 */
 
-     getTreeselect() {
 
-       treeselect().then(response => {
 
-         this.deptOptions = response.data;
 
-       });
 
-     },
 
-     // 筛选节点
 
-     filterNode(value, data) {
 
-       if (!value) return true;
 
-       return data.label.indexOf(value) !== -1;
 
-     },
 
-     // 节点单击事件
 
-     handleNodeClick(data) {
 
-       this.queryParams.deptId = data.id;
 
-       this.handleQuery();
 
-     },
 
-     // 用户状态修改
 
-     handleStatusChange(row) {
 
-       let text = row.status === "0" ? "启用" : "停用";
 
-       this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() {
 
-         return changeUserStatus(row.userId, row.status);
 
-       }).then(() => {
 
-         this.$modal.msgSuccess(text + "成功");
 
-       }).catch(function() {
 
-         row.status = row.status === "0" ? "1" : "0";
 
-       });
 
-     },
 
-     // 取消按钮
 
-     cancel() {
 
-       this.open = false;
 
-       this.reset();
 
-     },
 
-     // 表单重置
 
-     reset() {
 
-       this.form = {
 
-         userId: undefined,
 
-         deptId: undefined,
 
-         userName: undefined,
 
-         nickName: undefined,
 
-         password: undefined,
 
-         phonenumber: undefined,
 
-         email: undefined,
 
-         sex: undefined,
 
-         status: "0",
 
-         remark: undefined,
 
-         postIds: [],
 
-         roleIds: []
 
-       };
 
-       this.resetForm("form");
 
-     },
 
-     /** 搜索按钮操作 */
 
-     handleQuery() {
 
-       this.queryParams.pageNum = 1;
 
-       this.getList();
 
-     },
 
-     /** 重置按钮操作 */
 
-     resetQuery() {
 
-       this.dateRange = [];
 
-       this.resetForm("queryForm");
 
-       this.handleQuery();
 
-     },
 
-     // 多选框选中数据
 
-     handleSelectionChange(selection) {
 
-       this.ids = selection.map(item => item.userId);
 
-       this.single = selection.length != 1;
 
-       this.multiple = !selection.length;
 
-     },
 
-     // 更多操作触发
 
-     handleCommand(command, row) {
 
-       switch (command) {
 
-         case "handleResetPwd":
 
-           this.handleResetPwd(row);
 
-           break;
 
-         case "handleAuthRole":
 
-           this.handleAuthRole(row);
 
-           break;
 
-         default:
 
-           break;
 
-       }
 
-     },
 
-     /** 新增按钮操作 */
 
-     handleAdd() {
 
-       this.reset();
 
-       this.getTreeselect();
 
-       getUser().then(response => {
 
-         this.postOptions = response.posts;
 
-         this.roleOptions = response.roles;
 
-         this.open = true;
 
-         this.title = "添加用户";
 
-         this.form.password = this.initPassword;
 
-       });
 
-     },
 
-     /** 修改按钮操作 */
 
-     handleUpdate(row) {
 
-       this.reset();
 
-       this.getTreeselect();
 
-       const userId = row.userId || this.ids;
 
-       getUser(userId).then(response => {
 
-         this.form = response.data;
 
-         this.postOptions = response.posts;
 
-         this.roleOptions = response.roles;
 
-         this.form.postIds = response.postIds;
 
-         this.form.roleIds = response.roleIds;
 
-         this.open = true;
 
-         this.title = "修改用户";
 
-         this.form.password = "";
 
-       });
 
-     },
 
-     /** 重置密码按钮操作 */
 
-     handleResetPwd(row) {
 
-       this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
 
-         confirmButtonText: "确定",
 
-         cancelButtonText: "取消",
 
-         closeOnClickModal: false,
 
-         inputPattern: /^.{5,20}$/,
 
-         inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
 
-       }).then(({ value }) => {
 
-           resetUserPwd(row.userId, value).then(response => {
 
-             this.$modal.msgSuccess("修改成功,新密码是:" + value);
 
-           });
 
-         }).catch(() => {});
 
-     },
 
-     /** 分配角色操作 */
 
-     handleAuthRole: function(row) {
 
-       const userId = row.userId;
 
-       this.$router.push("/system/user-auth/role/" + userId);
 
-     },
 
-     /** 提交按钮 */
 
-     submitForm: function() {
 
-       this.$refs["form"].validate(valid => {
 
-         if (valid) {
 
-           if (this.form.userId != undefined) {
 
-             updateUser(this.form).then(response => {
 
-               this.$modal.msgSuccess("修改成功");
 
-               this.open = false;
 
-               this.getList();
 
-             });
 
-           } else {
 
-             addUser(this.form).then(response => {
 
-               this.$modal.msgSuccess("新增成功");
 
-               this.open = false;
 
-               this.getList();
 
-             });
 
-           }
 
-         }
 
-       });
 
-     },
 
-     /** 删除按钮操作 */
 
-     handleDelete(row) {
 
-       const userIds = row.userId || this.ids;
 
-       this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
 
-         return delUser(userIds);
 
-       }).then(() => {
 
-         this.getList();
 
-         this.$modal.msgSuccess("删除成功");
 
-       }).catch(() => {});
 
-     },
 
-     /** 导出按钮操作 */
 
-     handleExport() {
 
-       this.download('system/user/export', {
 
-         ...this.queryParams
 
-       }, `user_${new Date().getTime()}.xlsx`)
 
-     },
 
-     /** 导入按钮操作 */
 
-     handleImport() {
 
-       this.upload.title = "用户导入";
 
-       this.upload.open = true;
 
-     },
 
-     /** 下载模板操作 */
 
-     importTemplate() {
 
-       this.download('system/user/importTemplate', {
 
-       }, `user_template_${new Date().getTime()}.xlsx`)
 
-     },
 
-     // 文件上传中处理
 
-     handleFileUploadProgress(event, file, fileList) {
 
-       this.upload.isUploading = true;
 
-     },
 
-     // 文件上传成功处理
 
-     handleFileSuccess(response, file, fileList) {
 
-       this.upload.open = false;
 
-       this.upload.isUploading = false;
 
-       this.$refs.upload.clearFiles();
 
-       this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
 
-       this.getList();
 
-     },
 
-     // 提交上传文件
 
-     submitFileForm() {
 
-       this.$refs.upload.submit();
 
-     }
 
-   }
 
- };
 
- </script>
 
 
  |