|
@@ -1,543 +1,428 @@
|
|
-<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
|
|
|
|
-
|
|
|
|
|
|
+<template>
|
|
<div class="app-container">
|
|
<div class="app-container">
|
|
- <div>
|
|
|
|
- <el-card>
|
|
|
|
- <div slot="header" class="clearfix">
|
|
|
|
- <b><span>用户管理</span></b>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <el-row :gutter="24">
|
|
|
|
+ <!--用户数据-->
|
|
|
|
+ <el-col :span="24" :xs="24">
|
|
|
|
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" 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="item in statusOptions"
|
|
|
|
+ :key="item.value"
|
|
|
|
+ :label="item.label"
|
|
|
|
+ :value="item.value">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </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>
|
|
|
|
|
|
- <div class="filter-container">
|
|
|
|
- <el-button type="primary" size="small" style="round-clip: 10px" @click="insertEvent"
|
|
|
|
- :loading="loadButton">添加
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <el-row :gutter="10" class="mb8">
|
|
|
|
+ <el-col :span="1.5">
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ plain
|
|
|
|
+ icon="el-icon-plus"
|
|
|
|
+ size="mini"
|
|
|
|
+ @click="handleAdd"
|
|
|
|
+ >新增</el-button>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="1.5">
|
|
|
|
+ <el-button
|
|
|
|
+ type="success"
|
|
|
|
+ plain
|
|
|
|
+ icon="el-icon-edit"
|
|
|
|
+ size="mini"
|
|
|
|
+ :disabled="single"
|
|
|
|
+ @click="handleUpdate"
|
|
|
|
+ >修改</el-button>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="1.5">
|
|
|
|
+ <el-button
|
|
|
|
+ type="danger"
|
|
|
|
+ plain
|
|
|
|
+ icon="el-icon-delete"
|
|
|
|
+ size="mini"
|
|
|
|
+ :disabled="multiple"
|
|
|
|
+ @click="handleDelete"
|
|
|
|
+ >删除</el-button>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
<div style="padding-top: 10px">
|
|
<div style="padding-top: 10px">
|
|
- <vxe-table
|
|
|
|
- ref="xTable"
|
|
|
|
- border
|
|
|
|
- export-config
|
|
|
|
- keep-source
|
|
|
|
- auto-resize
|
|
|
|
- resizable
|
|
|
|
- :edit-rules="rules"
|
|
|
|
- :loading="loading"
|
|
|
|
- :data="tableData"
|
|
|
|
- v-show="showTable"
|
|
|
|
- show-overflow
|
|
|
|
- highlight-current-row
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
- <!--:edit-config="{trigger: 'manual', mode: 'row',autoClear:false,showStatus: true,icon:'none'}"-->
|
|
|
|
- <vxe-table-column title="用户基本信息" align="center">
|
|
|
|
- <vxe-table-column
|
|
|
|
- field="username"
|
|
|
|
- title="用户名"
|
|
|
|
- width="7%"
|
|
|
|
- align="center"
|
|
|
|
- />
|
|
|
|
- <!--:edit-render="{name: '$input', attrs: {type: 'text'}}"-->
|
|
|
|
-<!-- <vxe-table-column-->
|
|
|
|
-<!-- field="password"-->
|
|
|
|
-<!-- title="密码"-->
|
|
|
|
-<!-- width="12%"-->
|
|
|
|
-<!-- align="center"-->
|
|
|
|
-<!-- />-->
|
|
|
|
- <vxe-table-column
|
|
|
|
- field="mailbox"
|
|
|
|
- title="邮箱"
|
|
|
|
- width="12%"
|
|
|
|
- align="center"
|
|
|
|
- />
|
|
|
|
- <!--:edit-render="{name: '$input', attrs: {type: 'text'}}"-->
|
|
|
|
- <vxe-table-column
|
|
|
|
- field="name"
|
|
|
|
- title="姓名"
|
|
|
|
- width="7%"
|
|
|
|
- align="center"
|
|
|
|
- />
|
|
|
|
- <!--:edit-render="{name: '$input', attrs: {type: 'text'}}"-->
|
|
|
|
- <vxe-table-column
|
|
|
|
- field="status"
|
|
|
|
- title="状态"
|
|
|
|
- width="8%"
|
|
|
|
- align="center"
|
|
|
|
- :formatter="formatStatus"
|
|
|
|
- />
|
|
|
|
- <!--:edit-render="{name: '$select', options: userStatus }"-->
|
|
|
|
- <vxe-table-column title="操作" width="15%" align="center">
|
|
|
|
- <template v-slot="{ row }">
|
|
|
|
- <!--<template v-if="$refs.xTable.isActiveByRow(row)">-->
|
|
|
|
- <!--<el-button-->
|
|
|
|
- <!--type="success"-->
|
|
|
|
- <!--style="padding: 3px 4px 3px 4px;margin: 2px;"-->
|
|
|
|
- <!--size="mini"-->
|
|
|
|
- <!--icon="el-icon-edit"-->
|
|
|
|
- <!--@click="editSave(row)"-->
|
|
|
|
- <!-->保存-->
|
|
|
|
- <!--</el-button>-->
|
|
|
|
- <!--<el-button-->
|
|
|
|
- <!--class="cancel-btn"-->
|
|
|
|
- <!--icon="el-icon-refresh"-->
|
|
|
|
- <!--type="warning"-->
|
|
|
|
- <!--style="padding: 3px 4px 3px 4px;margin: 2px;"-->
|
|
|
|
- <!--size="mini"-->
|
|
|
|
- <!--@click="cancelRowEvent(row)"-->
|
|
|
|
- <!-->取消-->
|
|
|
|
- <!--</el-button>-->
|
|
|
|
- <!--</template>-->
|
|
|
|
- <!--<template v-else>-->
|
|
|
|
- <el-button
|
|
|
|
- :loading="loadButton"
|
|
|
|
- type="primary"
|
|
|
|
- style="padding: 3px 4px 3px 4px;margin: 2px;"
|
|
|
|
- size="mini "
|
|
|
|
- icon="el-icon-edit"
|
|
|
|
- @click="editRowEvent(row)"
|
|
|
|
- >编辑
|
|
|
|
- </el-button>
|
|
|
|
- <el-button
|
|
|
|
- :loading="loadButton"
|
|
|
|
- type="danger"
|
|
|
|
- style="padding: 3px 4px 3px 4px;margin: 2px;"
|
|
|
|
- size="mini "
|
|
|
|
- icon="el-icon-delete"
|
|
|
|
- @click="deleteRowEvent(row)"
|
|
|
|
- >删除
|
|
|
|
- </el-button>
|
|
|
|
- <!--</template>-->
|
|
|
|
- </template>
|
|
|
|
- </vxe-table-column>
|
|
|
|
- </vxe-table-column>
|
|
|
|
- </vxe-table>
|
|
|
|
- <vxe-modal
|
|
|
|
- ref="xModal"
|
|
|
|
- v-model="showEdit"
|
|
|
|
- :title="selectRow ? '编辑&保存' : '新增&保存'"
|
|
|
|
- width="800"
|
|
|
|
- resize
|
|
|
|
- destroy-on-close
|
|
|
|
- >
|
|
|
|
- <el-form
|
|
|
|
- :model="formData"
|
|
|
|
- :rules="rules"
|
|
|
|
- ref="ruleForm"
|
|
|
|
- label-width="100px"
|
|
|
|
- title-align="center"
|
|
|
|
- title-width="100"
|
|
|
|
- >
|
|
|
|
- <el-form-item label="用户名" prop="username" class="formItem" >
|
|
|
|
- <el-input v-model="formData.username" placeholder="填写用户名" clearable></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="密码" prop="password" class="formItem" >
|
|
|
|
- <el-input type="password" v-model="formData.password" placeholder="填写密码" clearable></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="姓名" prop="name" class="formItem" >
|
|
|
|
- <el-input v-model="formData.name" placeholder="填写姓名" clearable></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="状态" prop="status" class="formItem" >
|
|
|
|
- <el-select v-model="formData.status" placeholder="请选择状态" size="medium">
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in userStatus"
|
|
|
|
- :key="item.value"
|
|
|
|
- :value="item.value"
|
|
|
|
- :label="item.label"
|
|
|
|
- ></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="配置菜单" prop="menu" class="formItem" >
|
|
|
|
- <el-cascader
|
|
|
|
- v-model="formData.menu"
|
|
|
|
- :options="options"
|
|
|
|
- :props="props"
|
|
|
|
- collapse-tags
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item align="center" span="24">
|
|
|
|
- <el-button status="primary" @click="editSave">保存</el-button>
|
|
|
|
- <el-button @click="cancelRowEvent">取消</el-button>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-form>
|
|
|
|
- </vxe-modal>
|
|
|
|
|
|
+ <vxe-table
|
|
|
|
+ ref="userList"
|
|
|
|
+ align="center"
|
|
|
|
+ :loading="loading"
|
|
|
|
+ class="mytable-style"
|
|
|
|
+ auto-resize
|
|
|
|
+ border
|
|
|
|
+ resizable
|
|
|
|
+ export-config
|
|
|
|
+ highlight-current-row
|
|
|
|
+ show-overflow
|
|
|
|
+ max-height="700"
|
|
|
|
+ :data="userList"
|
|
|
|
+ >
|
|
|
|
+ <vxe-table-column field="username" title="用户账号" />
|
|
|
|
+ <vxe-table-column field="nickname" title="用户姓名" />
|
|
|
|
+ <vxe-table-column field="mailbox" title="邮箱" />
|
|
|
|
+ <vxe-table-column field="phonenumber" title="手机号码"/>
|
|
|
|
+ <vxe-table-column field="status" title="状态" :formatter="statusFormat"/>
|
|
|
|
+ <vxe-table-column title="操作" width="320">
|
|
|
|
+ <template slot-scope="scope" v-if="scope.row.userId !== 1">
|
|
|
|
+ <el-button
|
|
|
|
+ size="mini"
|
|
|
|
+ type="text"
|
|
|
|
+ icon="el-icon-edit"
|
|
|
|
+ @click="handleResetPwd(scope.row)"
|
|
|
|
+ >重置密码</el-button>
|
|
|
|
+ <el-button
|
|
|
|
+ size="mini"
|
|
|
|
+ type="text"
|
|
|
|
+ icon="el-icon-delete"
|
|
|
|
+ @click="handleAuthRole(scope.row)"
|
|
|
|
+ >分配角色</el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </vxe-table-column>
|
|
|
|
+ </vxe-table>
|
|
|
|
+ <vxe-pager
|
|
|
|
+ v-show="showTable"
|
|
|
|
+ perfect
|
|
|
|
+ :current-page.sync="currentPage"
|
|
|
|
+ :page-size.sync="pageSize"
|
|
|
|
+ :total="total"
|
|
|
|
+ :page-sizes="[10,50,100]"
|
|
|
|
+ :layouts="['PrevJump', 'PrevPage','JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']"
|
|
|
|
+ @page-change="handlePageChange"
|
|
|
|
+ >
|
|
|
|
+ </vxe-pager>
|
|
</div>
|
|
</div>
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
|
|
- <!-- 删除提示框 -->
|
|
|
|
- <el-dialog :visible.sync="delVisible" title="提示" width="300px" center>
|
|
|
|
- <div class="del-dialog-cnt">删除不可恢复,是否确定删除?</div>
|
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
|
- <el-button type="primary" @click="deleteCancel()">取 消</el-button>
|
|
|
|
- <el-button type="primary" @click="deleteInfo()">确 定</el-button>
|
|
|
|
- </span>
|
|
|
|
|
|
+ <!-- 添加或修改用户配置对话框 -->
|
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="650px" append-to-body>
|
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" width="630px" label-width="80px">
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <el-form-item label="用户账号" prop="username">
|
|
|
|
+ <el-input style="width: 220px" v-model="form.username" placeholder="请输入用户账号" maxlength="20" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <el-form-item label="用户姓名" prop="nickname">
|
|
|
|
+ <el-input style="width: 220px" v-model="form.nickname" placeholder="请输入用户姓名" maxlength="30" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <el-form-item label="邮箱" prop="mailbox">
|
|
|
|
+ <el-input style="width: 220px" v-model="form.mailbox" placeholder="请输入邮箱" maxlength="50" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <el-form-item label="手机号码" prop="phonenumber">
|
|
|
|
+ <el-input style="width: 220px" v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <el-form-item label="角色">
|
|
|
|
+ <el-select style="width: 220px" 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-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>
|
|
-
|
|
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+// import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus } from "@/api/system/user";
|
|
|
|
|
|
- export default {
|
|
|
|
- data() {
|
|
|
|
- let strTopShiftReg = /(\~(?=\!)|\!(?=\@)|\@(?=\#)|\#(?=\$)|\$(?=\%)|\%(?=\^)|\^(?=\&)|\&(?=\*)|\*(?=\()|\((?=\))|\)(?=\_)|\_(?=\+)|\+(?=\~)){3}/
|
|
|
|
- let strTopResverShiftReg = /(\+(?=\_)|\_(?=\))|\)(?=\()|\((?=\*)|\*(?=\&)|\&(?=\^)|\^(?=\%)|\%(?=\$)|\$(?=\#)|\#(?=\@)|\@(?=\!)|\!(?=\~)|\~(?=\+)){3}/
|
|
|
|
- //字母连续规则
|
|
|
|
- let strReg = /(a(?=b)|b(?=c)|c(?=d)|d(?=e)|e(?=f)|f(?=g)|g(?=h)|h(?=i)|i(?=j)|j(?=k)|k(?=l)|l(?=m)|m(?=n)|n(?=o)|o(?=p)|p(?=q)|q(?=r)|r(?=s)|s(?=t)|t(?=u)|u(?=v)|v(?=w)|w(?=x)|x(?=y)|y(?=z)|z(?=a)){3}[a-z]/i
|
|
|
|
- let strResverReg = /(a(?=z)|z(?=y)|y(?=x)|x(?=w)|w(?=v)|v(?=u)|u(?=t)|t(?=s)|s(?=r)|r(?=q)|q(?=p)|p(?=o)|o(?=n)|n(?=m)|m(?=l)|l(?=k)|k(?=j)|j(?=i)|i(?=h)|h(?=g)|g(?=f)|f(?=e)|e(?=d)|d(?=c)|c(?=b)|b(?=a)){3}[a-z]/i
|
|
|
|
- //数字连续规则
|
|
|
|
- let numReg = /(\`(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)|0(?=\-)|\-(?=\=)|\=(?=\`)){3}/
|
|
|
|
- let numResverReg = /(\=(?=\-)|\-(?=0)|0(?=9)|9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=\`)|\`(?=\=)){3}/
|
|
|
|
- //键盘字母横向连续规则
|
|
|
|
- let keyboardHorizontalReg = /(q(?=w)|w(?=e)|e(?=r)|r(?=t)|t(?=y)|y(?=u)|u(?=i)|i(?=o)|o(?=p)|p(?=q)|a(?=s)|s(?=d)|d(?=f)|f(?=g)|g(?=h)|h(?=j)|j(?=k)|k(?=l)|l(?=a)|z(?=x)|x(?=c)|c(?=v)|v(?=b)|b(?=n)|n(?=m)|m(?=z)){3}[a-z]/i
|
|
|
|
- let keyboardHorizontalResverReg = /(p(?=o)|o(?=i)|i(?=u)|u(?=y)|y(?=t)|t(?=r)|r(?=e)|e(?=w)|w(?=q)|q(?=p)|l(?=k)|k(?=j)|j(?=h)|h(?=g)|g(?=f)|f(?=d)|d(?=s)|s(?=a)|a(?=l)|m(?=n)|n(?=b)|b(?=v)|v(?=c)|c(?=x)|x(?=z)|z(?=m)){3}[a-z]/i
|
|
|
|
- //多个相同字母、数字规则
|
|
|
|
- let sameReg = /([0-9a-zA-Z])\1{3}/
|
|
|
|
- let keyboardSlopeArr = ["1qaz", "2wsx", "3edc", "4rfv", "5tgb", "6yhn", "7ujm", "8ik,", "9ol.", "0p;/", "/;p0", ".lo9", ",ki8", "mju7", "nhy6", "bgt5", "vfr4", "cde3", "xsw2", "zaq1", "4esz", "5rdx", "6tfc", "7ygv", "8uhb", "9ijn", "0okm", "-pl,", "=[;.", ".;[=", ",lp-", "mko0", "nji9", "bhu8", "vgy7", "cft6", "xdr5", "zse4"]
|
|
|
|
- let keyboardSlopeShiftArr = ["!qaz", "@wsx", "#edc","$rfv", "%tgb", "^yhn", "&ujm", "*ik<", "(ol>", ")p:?", "?:p)", ">lo(", "<ki*", "mju&", "nhy^", "bgt%", "vfr$", "cde#", "xsw@", "zaq!", "$esz", "%rdx", "^tfc", "&ygv", "*uhb", "(ijn", ")okm", "_pl<", "+{:>", ">:{+", "<lp_", "mko)", "nji(", "bhu*", "vgy&", "cft^", "xdr%", "zse$"]
|
|
|
|
- const checkName = ({rule, value, callback}) => {
|
|
|
|
- var username = this.formData.username
|
|
|
|
- var s6 = this.tableDatas
|
|
|
|
- if (username == null || username === '') {
|
|
|
|
- return Promise.reject(new Error('请填写用户名'))
|
|
|
|
|
|
+export default {
|
|
|
|
+ name: "User",
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ statusOptions: [
|
|
|
|
+ { value: '0', label: '激活' },
|
|
|
|
+ { value: '1', label: '休眠' },
|
|
|
|
+ { value: '2', label: '注销' }
|
|
|
|
+ ],
|
|
|
|
+ // 遮罩层
|
|
|
|
+ loading: true,
|
|
|
|
+ showTable: true,
|
|
|
|
+ // 选中数组
|
|
|
|
+ ids: [],
|
|
|
|
+ // 非单个禁用
|
|
|
|
+ single: true,
|
|
|
|
+ // 非多个禁用
|
|
|
|
+ multiple: true,
|
|
|
|
+ currentPage: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ // 总条数
|
|
|
|
+ total: 0,
|
|
|
|
+ // 用户表格数据
|
|
|
|
+ userList: null,
|
|
|
|
+ // 弹出层标题
|
|
|
|
+ title: "",
|
|
|
|
+ // 是否显示弹出层
|
|
|
|
+ open: false,
|
|
|
|
+ // 默认密码
|
|
|
|
+ initPassword: undefined,
|
|
|
|
+ // 角色选项
|
|
|
|
+ roleOptions: [],
|
|
|
|
+ // 表单参数
|
|
|
|
+ form: {},
|
|
|
|
+ // 查询参数
|
|
|
|
+ queryParams: {
|
|
|
|
+ username: undefined,
|
|
|
|
+ phonenumber: undefined,
|
|
|
|
+ status: undefined
|
|
|
|
+ },
|
|
|
|
+ // 表单校验
|
|
|
|
+ rules: {
|
|
|
|
+ username: [
|
|
|
|
+ { required: true, message: "用户账号不能为空", trigger: "blur" },
|
|
|
|
+ { min: 5, max: 20, message: '用户名称长度必须介于 5 和 20 之间', trigger: 'blur' }
|
|
|
|
+ ],
|
|
|
|
+ nickname: [
|
|
|
|
+ { required: true, message: "用户姓名不能为空", trigger: "blur" },
|
|
|
|
+ { min: 5, max: 20, message: '用户姓名长度必须介于 5 和 20 之间', trigger: 'blur' }
|
|
|
|
+ ],
|
|
|
|
+ mailbox: [
|
|
|
|
+ { required: true, message: "邮箱不能为空", trigger: "blur" },
|
|
|
|
+ { type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"]}
|
|
|
|
+ ],
|
|
|
|
+ phonenumber: [
|
|
|
|
+ { required: true, message: "手机号码不能为空", trigger: "blur" },
|
|
|
|
+ { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur"}
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ watch: {
|
|
|
|
+ },
|
|
|
|
+ created() {
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ handlePageChange({currentPage, pageSize}) {
|
|
|
|
+ this.currentPage = currentPage
|
|
|
|
+ this.pageSize = pageSize
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ // 时间格式化
|
|
|
|
+ statusFormat({cellValue}) {
|
|
|
|
+ let belongTo = '未知的类型'
|
|
|
|
+ for (let i = 0; i < this.statusOptions.length; i++) {
|
|
|
|
+ if (cellValue =="0") {
|
|
|
|
+ belongTo ="激活"
|
|
}
|
|
}
|
|
- for (let i = 0; i < s6.length; i++) {
|
|
|
|
- if (this.id == '' || this.id == undefined) {
|
|
|
|
- // 新增
|
|
|
|
- if ((username == s6[i].username)) {
|
|
|
|
- return Promise.reject(new Error('用户名不能重复'))
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- // 修改
|
|
|
|
- if (this.id != s6[i].id) {
|
|
|
|
- if ((username == s6[i].username)) {
|
|
|
|
- return Promise.reject(new Error('用户名不能重复'))
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ else if (cellValue =="1") {
|
|
|
|
+ belongTo ="休眠"
|
|
}
|
|
}
|
|
- return Promise.resolve()
|
|
|
|
- }
|
|
|
|
- const checkpassword = (rule, value, callback) => {
|
|
|
|
- var password = this.formData.password
|
|
|
|
- if (this.fileUploadNodeShowSysValue==0){
|
|
|
|
- if (sameReg.test(password)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有连续4位相同的数字或字母'))
|
|
|
|
- } else if (strResverReg.test(password)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位连续的字母'))
|
|
|
|
- } else if (strReg.test(password)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位键盘横向方向连续的字符'))
|
|
|
|
- } else if (numReg.test(password)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位键盘横向方向连续的字符'))
|
|
|
|
- } else if (numResverReg.test(password)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位连续的数字'))
|
|
|
|
- } else if (keyboardHorizontalReg.test(password)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位键盘横向方向连续的字母'))
|
|
|
|
- } else if (keyboardHorizontalResverReg.test(password)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位键盘横向方向连续的字母'))
|
|
|
|
- } else if (keyboardSlopeArr.some(v => password.toLowerCase().indexOf(v) > -1)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位键盘斜向方向连续的字符'))
|
|
|
|
- }else if (keyboardSlopeShiftArr.some(v => password.toLowerCase().indexOf(v) > -1)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位键盘斜向方向连续的字符'))
|
|
|
|
- }else if (strTopShiftReg.test(password)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位键盘横向方向连续的字符'))
|
|
|
|
- }else if (strTopResverShiftReg.test(password)) {
|
|
|
|
- return Promise.reject(new Error('密码不能含有4位键盘横向方向连续的字符'))
|
|
|
|
- }
|
|
|
|
|
|
+ else if (cellValue =="2") {
|
|
|
|
+ belongTo ="注销"
|
|
}
|
|
}
|
|
- return Promise.resolve()
|
|
|
|
}
|
|
}
|
|
- return {
|
|
|
|
- fileUploadNodeShowSysValue: '1',
|
|
|
|
- id: '',
|
|
|
|
- tableDatas: [],
|
|
|
|
- elStations: [],
|
|
|
|
- elStation: '',
|
|
|
|
- total: 0,
|
|
|
|
- pageSize: 5,
|
|
|
|
- currentPage: 1,
|
|
|
|
- loadButton: false,
|
|
|
|
- rowId: '',
|
|
|
|
- showTable: true,
|
|
|
|
- tableData: [],
|
|
|
|
- delVisible: false,
|
|
|
|
- loading: false,
|
|
|
|
- // 是否为编辑
|
|
|
|
- isEdit: false,
|
|
|
|
- pvRotationMode: [],
|
|
|
|
- userStatus: [{value: "0", label: "正常"}, {value: "2", label: "禁用"}],
|
|
|
|
- // 表单验证规则
|
|
|
|
- rules: {
|
|
|
|
- username: [
|
|
|
|
- {required: true, validator: checkName},
|
|
|
|
- {message: '输入过长', max: 15}
|
|
|
|
- ],
|
|
|
|
- password: [
|
|
|
|
- {required: true, message: '请填写密码', validator: checkpassword},
|
|
|
|
- {
|
|
|
|
- pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{7,10}/,
|
|
|
|
- message: '由8位数字、字母大小写及特殊符号组成'
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
- name:[{required: true, message: '请填写姓名', trigger: 'blur'}],
|
|
|
|
- status:[{required: true, message: '请选择状态', trigger: 'change'}]
|
|
|
|
- },
|
|
|
|
- formData:{},
|
|
|
|
- showEdit:false,
|
|
|
|
- selectRow:false,
|
|
|
|
- props: { multiple: true },
|
|
|
|
- options:[],
|
|
|
|
- childrenOption:[]
|
|
|
|
|
|
+ return belongTo
|
|
|
|
+ },
|
|
|
|
+ /** 查询用户列表 */
|
|
|
|
+ getList() {
|
|
|
|
+ this.loading = true;
|
|
|
|
+ var searchParams={
|
|
|
|
+ currentPage:this.currentPage,
|
|
|
|
+ pageSize:this.pageSize,
|
|
|
|
+ username:this.queryParams.username,
|
|
|
|
+ phonenumber:this.queryParams.phonenumber,
|
|
|
|
+ status:this.queryParams.status
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ this.$axios.get('/sysUserController/getAll',
|
|
|
|
+ {params:searchParams}).then((res) => {
|
|
|
|
+ this.userList = res.data.records
|
|
|
|
+ this.total = res.data.total
|
|
|
|
+
|
|
|
|
+ if (res.data.records == '') {
|
|
|
|
+ this.showTable = false
|
|
|
|
+ } else {
|
|
|
|
+ this.showTable = true
|
|
|
|
+ }
|
|
|
|
+ this.loading = false
|
|
|
|
+ }).catch((error) => {
|
|
|
|
+ this.$message.error('获取数据出错' + error)
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ // this.$axios.get('/sysUserController/getAll').then((res) => {
|
|
|
|
+ // this.userList = res.data
|
|
|
|
+ // this.loading = false
|
|
|
|
+ // }).catch((error) => {
|
|
|
|
+ // this.loading = false
|
|
|
|
+ // console.log('获取用户信息出错' + error)
|
|
|
|
+ // })
|
|
|
|
+ },
|
|
|
|
+ // 用户状态修改
|
|
|
|
+ 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,
|
|
|
|
+ username: undefined,
|
|
|
|
+ nickname: undefined,
|
|
|
|
+ phonenumber: undefined,
|
|
|
|
+ mailbox: undefined,
|
|
|
|
+ status: "0",
|
|
|
|
+ remark: undefined
|
|
|
|
+ };
|
|
|
|
+ this.resetForm("form");
|
|
|
|
+ },
|
|
|
|
+ /** 搜索按钮操作 */
|
|
|
|
+ handleQuery() {
|
|
|
|
+ this.getList();
|
|
},
|
|
},
|
|
- created() {
|
|
|
|
- // this.getParameterBySysKey()
|
|
|
|
- this.getAll()
|
|
|
|
- // this.getAllMenu()
|
|
|
|
|
|
+ /** 重置按钮操作 */
|
|
|
|
+ resetQuery() {
|
|
|
|
+ this.resetForm("queryForm");
|
|
},
|
|
},
|
|
|
|
+ /** 新增按钮操作 */
|
|
|
|
+ handleAdd() {
|
|
|
|
+ this.reset();
|
|
|
|
+ // this.postOptions = response.posts;
|
|
|
|
+ // this.roleOptions = response.roles;
|
|
|
|
+ this.open = true;
|
|
|
|
+ this.title = "添加用户";
|
|
|
|
+ this.form.password = this.initPassword;
|
|
|
|
|
|
- methods: {
|
|
|
|
- // getParameterBySysKey(){
|
|
|
|
- // this.$axios.get('/sysParameter/sysParameterKey/FILE_UPLOAD_NODE_SHOW').then(res => {
|
|
|
|
- // this.fileUploadNodeShowSysValue = res.data.sysValue
|
|
|
|
- // })
|
|
|
|
- // },
|
|
|
|
- getAll() {
|
|
|
|
- this.loading = true
|
|
|
|
- this.$axios.get('/sysUserController/getAll').then((res) => {
|
|
|
|
- this.tableData = res.data
|
|
|
|
- if (res.data == null) {
|
|
|
|
- this.showTable = false
|
|
|
|
|
|
+ },
|
|
|
|
+ /** 修改按钮操作 */
|
|
|
|
+ handleUpdate(row) {
|
|
|
|
+ this.reset();
|
|
|
|
+ const userId = row.userId || this.ids;
|
|
|
|
+ getUser(userId).then(response => {
|
|
|
|
+ this.form = response.data;
|
|
|
|
+ this.postOptions = response.posts;
|
|
|
|
+ this.roleOptions = response.roles;
|
|
|
|
+ this.$set(this.form, "postIds", response.postIds);
|
|
|
|
+ this.$set(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 {
|
|
} else {
|
|
- this.showTable = true
|
|
|
|
- }
|
|
|
|
- this.loading = false
|
|
|
|
- }).catch((error) => {
|
|
|
|
- this.loading = false
|
|
|
|
- this.$message.error('获取用户信息出错' + error)
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- // getAllMenu(){
|
|
|
|
- // this.$axios.get('/sysMenu').then(res => {
|
|
|
|
- // // console.log(res.data)
|
|
|
|
- // var data = res.data
|
|
|
|
- // var option = [{value:9001,label:'后台管理', disabled: true}]
|
|
|
|
- // var option9000=[{value:9000,label:'统计查询', disabled: true}]
|
|
|
|
- // for(var i=0;i<data.length;i++){
|
|
|
|
- // var children = []
|
|
|
|
- // if(data[i].children.length>0){
|
|
|
|
- // for (var j =0;j<data[i].children.length;j++) {
|
|
|
|
- // if(data[i].children[j].id ==1){
|
|
|
|
- // children.push({
|
|
|
|
- // id: data[i].children[j].id,
|
|
|
|
- // fId:58,
|
|
|
|
- // value:data[i].children[j].id,
|
|
|
|
- // label: data[i].children[j].title,
|
|
|
|
- // path: data[i].children[j].path,
|
|
|
|
- // itemPath: data[i].children[j].itemPath,
|
|
|
|
- // url: data[i].children[j].url
|
|
|
|
- // })
|
|
|
|
- // this.childrenOption.push({
|
|
|
|
- // id: data[i].children[j].id,
|
|
|
|
- // fId:58,
|
|
|
|
- // value:data[i].children[j].id,
|
|
|
|
- // label: data[i].children[j].title,
|
|
|
|
- // path: data[i].children[j].path,
|
|
|
|
- // itemPath: data[i].children[j].itemPath,
|
|
|
|
- // url: data[i].children[j].url
|
|
|
|
- // })
|
|
|
|
- // }else{
|
|
|
|
- // children.push({
|
|
|
|
- // id: data[i].children[j].id,
|
|
|
|
- // fId:data[i].id,
|
|
|
|
- // value:data[i].children[j].id,
|
|
|
|
- // label: data[i].children[j].title,
|
|
|
|
- // path: data[i].children[j].path,
|
|
|
|
- // itemPath: data[i].children[j].itemPath,
|
|
|
|
- // url: data[i].children[j].url
|
|
|
|
- // })
|
|
|
|
- // this.childrenOption.push({
|
|
|
|
- // id: data[i].children[j].id,
|
|
|
|
- // fId:data[i].id,
|
|
|
|
- // value:data[i].children[j].id,
|
|
|
|
- // label: data[i].children[j].title,
|
|
|
|
- // path: data[i].children[j].path,
|
|
|
|
- // itemPath: data[i].children[j].itemPath,
|
|
|
|
- // url: data[i].children[j].url
|
|
|
|
- // })
|
|
|
|
- // }
|
|
|
|
- //
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // if(data[i].url == '9000'){
|
|
|
|
- // option9000.push({
|
|
|
|
- // id: data[i].id,
|
|
|
|
- // value:data[i].id,
|
|
|
|
- // label: data[i].title,
|
|
|
|
- // itemPath: data[i].itemPath,
|
|
|
|
- // url: data[i].url,
|
|
|
|
- // children:children
|
|
|
|
- // })
|
|
|
|
- // }else{
|
|
|
|
- // option.push({
|
|
|
|
- // id: data[i].id,
|
|
|
|
- // value:data[i].id,
|
|
|
|
- // label: data[i].title,
|
|
|
|
- // itemPath: data[i].itemPath,
|
|
|
|
- // url: data[i].url,
|
|
|
|
- // children:children
|
|
|
|
- // })
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // this.options = option.concat(option9000)
|
|
|
|
- // // console.log(this.childrenOption)
|
|
|
|
- // })
|
|
|
|
- // },
|
|
|
|
- insertEvent(row) {
|
|
|
|
- this.id = ''
|
|
|
|
- this.showTable = true
|
|
|
|
- this.isEdit = false
|
|
|
|
- // this.loadButton = true
|
|
|
|
- this.showEdit = true
|
|
|
|
- this.selectRow = false
|
|
|
|
- this.formData={}
|
|
|
|
- // this.$refs.xTable.insert().then(({row}) => this.$refs.xTable.setActiveRow(row))
|
|
|
|
- },
|
|
|
|
- editRowEvent(row) {
|
|
|
|
- this.id = row.id
|
|
|
|
- this.isEdit = true
|
|
|
|
- // this.loadButton = true
|
|
|
|
- this.showEdit = true
|
|
|
|
- this.selectRow = true
|
|
|
|
- this.formData = row
|
|
|
|
- this.formData.menu = this.formatMenu(this.formData.menu)
|
|
|
|
- // this.$refs.xTable.setActiveRow(row)
|
|
|
|
- },
|
|
|
|
- editSave() {
|
|
|
|
- this.$refs["ruleForm"].validate(valid => {
|
|
|
|
- if (valid) {
|
|
|
|
- var menu = []
|
|
|
|
- if(this.formData.menu != null){
|
|
|
|
- for(var i=0;i<this.formData.menu.length;i++){
|
|
|
|
- if(menu.find(value=>value == this.formData.menu[i][0])){
|
|
|
|
- menu.push(this.formData.menu[i][1])
|
|
|
|
- }else{
|
|
|
|
- menu.push(this.formData.menu[i][0])
|
|
|
|
- menu.push(this.formData.menu[i][1])
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- // console.log(this.formData.menu)
|
|
|
|
- this.formData.menu = menu.toString()
|
|
|
|
- }else{
|
|
|
|
- this.formData.menu = ''
|
|
|
|
- }
|
|
|
|
- if (this.isEdit) {
|
|
|
|
- // 编辑保存
|
|
|
|
- this.$axios.put('/sysUser/', this.formData).then(res => {
|
|
|
|
- this.$message({
|
|
|
|
- message: '修改成功',
|
|
|
|
- type: 'success'
|
|
|
|
- })
|
|
|
|
- this.loadButton = false
|
|
|
|
- this.getAll()
|
|
|
|
- }).catch((error) => {
|
|
|
|
- // this.$refs.xTable.setActiveRow(row)
|
|
|
|
- this.$message.error('修改用户出错' + error)
|
|
|
|
- })
|
|
|
|
- } else {
|
|
|
|
- // 新增保存
|
|
|
|
- this.formData.stationCode = this.elStation
|
|
|
|
- console.log(this.formData)
|
|
|
|
- this.$axios.post('/sysUser/', this.formData).then(res => {
|
|
|
|
- this.$message({
|
|
|
|
- message: '保存成功',
|
|
|
|
- type: 'success'
|
|
|
|
- })
|
|
|
|
- this.loadButton = false
|
|
|
|
- this.getAll()
|
|
|
|
- }).catch((error) => {
|
|
|
|
- this.$message.error('修改用户出错' + error)
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- this.showEdit = false
|
|
|
|
- this.selectRow = false
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
- cancelRowEvent(row) {
|
|
|
|
- // const xTable = this.$refs.xTable
|
|
|
|
- this.$refs.xModal.close()
|
|
|
|
- this.loadButton = false
|
|
|
|
- // xTable.clearActived().then(() => {
|
|
|
|
- // // 还原行数据
|
|
|
|
- // if (this.isEdit) {
|
|
|
|
- // // 编辑
|
|
|
|
- // xTable.revertData(row)
|
|
|
|
- // } else {
|
|
|
|
- // // 新增
|
|
|
|
- // xTable.remove(row)
|
|
|
|
- // }
|
|
|
|
- // this.loadButton = false
|
|
|
|
- // })
|
|
|
|
- },
|
|
|
|
- // 删除场站信息
|
|
|
|
- deleteRowEvent(row) {
|
|
|
|
- this.rowId = row.id
|
|
|
|
- this.delVisible = true
|
|
|
|
- },
|
|
|
|
- deleteCancel() {
|
|
|
|
- this.delVisible = false
|
|
|
|
- },
|
|
|
|
- deleteInfo() {
|
|
|
|
- this.$axios.delete('/sysUser/' + this.rowId).then(res => {
|
|
|
|
- this.$message({
|
|
|
|
- message: '删除成功',
|
|
|
|
- type: 'success'
|
|
|
|
- })
|
|
|
|
- this.delVisible = false
|
|
|
|
- this.getAll()
|
|
|
|
- }).catch((error) => {
|
|
|
|
- this.$message.error('删除用户出错' + error)
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- formatStatus({ cellValue }){
|
|
|
|
- const item = this.userStatus.find(item => item.value === cellValue)
|
|
|
|
- return item ? item.label : ''
|
|
|
|
- },
|
|
|
|
- formatMenu(menu){
|
|
|
|
- if(menu === null){
|
|
|
|
- return null
|
|
|
|
- }else{
|
|
|
|
- var data = menu.split(",")
|
|
|
|
- var menuArr = []
|
|
|
|
- for (var i=0;i<data.length;i++){
|
|
|
|
- for(var j=0;j<this.childrenOption.length;j++){
|
|
|
|
- if(this.childrenOption[j].id == data[i]){
|
|
|
|
- menuArr.push([this.childrenOption[j].fId,this.childrenOption[j].id])
|
|
|
|
- }
|
|
|
|
|
|
+ const param = {
|
|
|
|
+ username: this.form.username,
|
|
|
|
+ nickname: this.form.nickname,
|
|
|
|
+ phonenumber: this.form.phonenumber,
|
|
|
|
+ mailbox: this.form.mailbox
|
|
}
|
|
}
|
|
|
|
+ this.$axios.post('/sysUserController', param).then((res) => {
|
|
|
|
+ this.$message.success('新增成功')
|
|
|
|
+ // this.getList();
|
|
|
|
+ this.loading = false
|
|
|
|
+ }).catch((error) => {
|
|
|
|
+ console.log(error)
|
|
|
|
+ this.loading = false
|
|
|
|
+ })
|
|
}
|
|
}
|
|
- return menuArr
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ /** 删除按钮操作 */
|
|
|
|
+ handleDelete(row) {
|
|
|
|
+ const userIds = row.userId || this.ids;
|
|
|
|
+ this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
|
|
|
|
+ return delUser(userIds);
|
|
|
|
+ }).then(() => {
|
|
|
|
+ this.getList();
|
|
|
|
+ this.$modal.msgSuccess("删除成功");
|
|
|
|
+ }).catch(() => {});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+};
|
|
</script>
|
|
</script>
|
|
-
|
|
|
|
-<style scoped>
|
|
|
|
-
|
|
|
|
- .my_table_insert .vxe-body--row.is--new {
|
|
|
|
- background-color: #f1fdf1;
|
|
|
|
- }
|
|
|
|
- .formItem{
|
|
|
|
- width: 45%;
|
|
|
|
- display: inline-block;
|
|
|
|
- }
|
|
|
|
- /*/deep/*/
|
|
|
|
- /*.vxe-input--inner{*/
|
|
|
|
- /* width: auto;*/
|
|
|
|
- /*}*/
|
|
|
|
-
|
|
|
|
-</style>
|
|
|