Browse Source

安全机制新增、input限制、滚动限制

wt 3 years ago
parent
commit
03cd5366c9

+ 1 - 1
.env.development

@@ -5,7 +5,7 @@ VUE_APP_TITLE = 东信充值管理系统
 ENV = 'development'
 
 # 东信充值管理系统/开发环境
-VUE_APP_BASE_API = '/dev-api'
+VUE_APP_BASE_API = '/dxapi'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 1 - 1
package.json

@@ -87,4 +87,4 @@
         "> 1%",
         "last 2 versions"
     ]
-}
+}

+ 18 - 0
src/App.vue

@@ -26,5 +26,23 @@ export default  {
   height:26px !important;
   line-height: 26px !important;
 }
+.el-textarea .el-input__count,.el-input .el-input__count .el-input__count-inner{
+  font-size: 8px;
+  height: 12px;
+  line-height: 12px;
+  background: transparent !important
+}
+
+.el-input-number--medium{
+  width:auto;
+  line-height:28px;
+}
+.el-input-number.is-controls-right[class*=medium] [class*=increase], .el-input-number.is-controls-right[class*=medium] [class*=decrease] {
+    line-height: 13px;
+}
+.el-table::before{
+  height:0;
+  bottom: none !important;
+}
 </style>
 

+ 48 - 0
src/api/system/security.js

@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+
+// 安全机制列表
+export function listAccountLock(query) {
+    return request({
+        url: '/accountLock/list',
+        method: 'get',
+        params: query
+    })
+}
+
+
+
+// 新增安全机制
+export function addAccountLock(data) {
+    return request({
+        url: '/accountLock/',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改安全机制
+export function updateAccountLock(data) {
+    return request({
+        url: '/accountLock/',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除安全机制
+export function delAccountLock(id) {
+    return request({
+        url: '/accountLock/' + id,
+        method: 'delete'
+    })
+}
+
+// 修改账号为默认账号
+export function enableAccountLock(id) {
+    return request({
+        url: '/accountLock/enable/' + id,
+        method: 'put'
+    })
+}
+
+

+ 4 - 4
src/views/login.vue

@@ -252,11 +252,14 @@ export default {
 }
 .login-code {
   width: 33%;
-  height: 38px;
+  height: 36px;
   float: right;
   img {
     cursor: pointer;
     vertical-align: middle;
+    width:100%;
+    height: 36px;
+    margin-top:-1px;
   }
 }
 .el-login-footer {
@@ -271,9 +274,6 @@ export default {
   font-size: 12px;
   letter-spacing: 1px;
 }
-.login-code-img {
-  height: 38px;
-}
 ::v-deep .el-input__inner{
   height:36px !important;
   line-height: 36px !important;

+ 6 - 72
src/views/monitor/jobTaskIndex/index.vue

@@ -1,27 +1,18 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
       <el-form-item label="任务名称" prop="jobName">
         <el-input
           v-model="queryParams.jobName"
           placeholder="请输入任务名称"
           clearable
           size="small"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <!-- <el-form-item label="任务组名" prop="jobGroup">
-        <el-select v-model="queryParams.jobGroup" placeholder="请选择任务组名" clearable size="small">
-          <el-option
-            v-for="dict in jobGroupOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
-        </el-select>
-      </el-form-item> -->
-      <el-form-item label="任务状态" prop="status" label-width="100px">
-        <el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable size="small">
+      <el-form-item label="任务状态" prop="status" >
+        <el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable size="small" style="width: 140px">
           <el-option
             v-for="dict in statusOptions"
             :key="dict.dictValue"
@@ -32,68 +23,11 @@
       </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-button type="primary" 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="['monitor:job: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="['monitor:job: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="['monitor:job:remove']"
-        >删除</el-button>
-      </el-col> -->
-      <!-- <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['monitor:job:export']"
-        >导出</el-button>
-      </el-col> -->
-      <!-- <el-col :span="1.5">
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-s-operation"
-          size="mini"
-          @click="handleJobLog"
-          v-hasPermi="['monitor:job:query']"
-        >日志</el-button>
-      </el-col> -->
-      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
-    </el-row>
-
-    <el-table v-loading="loading" :data="jobList" @selection-change="handleSelectionChange">
+    <el-table v-loading="loading" :data="jobList" @selection-change="handleSelectionChange" height="calc(100vh - 10vh - 120px)">
       <!-- <el-table-column type="selection" width="55" align="center" /> -->
       <el-table-column label="任务编号" align="center" prop="jobId" />
       <el-table-column label="任务名称" align="center" prop="jobName" :show-overflow-tooltip="true" />

+ 12 - 72
src/views/monitor/jobTaskLog/log.vue

@@ -1,39 +1,23 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
       <el-form-item label="任务名称" prop="jobName">
         <el-input
           v-model="queryParams.jobName"
           placeholder="请输入任务名称"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <!-- <el-form-item label="任务组名" prop="jobGroup">
-        <el-select
-          v-model="queryParams.jobGroup"
-          placeholder="请任务组名"
-          clearable
-          size="small"
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in jobGroupOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
-        </el-select>
-      </el-form-item> -->
-      <el-form-item label="执行状态" prop="status" label-width="100px">
+      <el-form-item label="执行状态" prop="status" >
         <el-select
           v-model="queryParams.status"
           placeholder="请选择执行状态"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
         >
           <el-option
             v-for="dict in statusOptions"
@@ -43,7 +27,7 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="执行时间" label-width="100px">
+      <el-form-item label="执行时间" >
         <el-date-picker
           v-model="dateRange"
           size="small"
@@ -57,64 +41,20 @@
       </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-button type="primary" 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="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['monitor:job:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          @click="handleClean"
-          v-hasPermi="['monitor:job:remove']"
-        >清空</el-button>
-      </el-col> -->
-      <!-- <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['monitor:job:export']"
-        >导出</el-button>
-      </el-col> -->
-      <!-- <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-close"
-          size="mini"
-          @click="handleClose"
-        >关闭</el-button>
-      </el-col> -->
-      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
-    </el-row>
 
-    <el-table v-loading="loading" :data="jobLogList" @selection-change="handleSelectionChange">
+    <el-table v-loading="loading" :data="jobLogList" @selection-change="handleSelectionChange" height="calc(100vh - 10vh - 120px)">
       <!-- <el-table-column type="selection" width="55" align="center" /> -->
-      <el-table-column label="日志编号" width="80" align="center" prop="jobLogId" />
-      <el-table-column label="任务名称" align="center" prop="jobName" :show-overflow-tooltip="true" />
+      <el-table-column label="日志编号" width="80" align="center" prop="jobLogId"  show-overflow-tooltip />
+      <el-table-column label="任务名称" align="center" prop="jobName"  show-overflow-tooltip  />
       <!-- <el-table-column label="任务组名" align="center" prop="jobGroup" :formatter="jobGroupFormat" :show-overflow-tooltip="true" /> -->
-      <el-table-column label="调用目标字符串" align="center" prop="invokeTarget" :show-overflow-tooltip="true" />
-      <el-table-column label="日志信息" align="center" prop="jobMessage" :show-overflow-tooltip="true" />
+      <el-table-column label="调用目标字符串" align="center" prop="invokeTarget"  show-overflow-tooltip />
+      <el-table-column label="日志信息" align="center" prop="jobMessage"  show-overflow-tooltip  />
       <el-table-column label="执行状态" align="center" prop="status" :formatter="statusFormat" />
-      <el-table-column label="执行时间" align="center" prop="createTime" width="180">
+      <el-table-column label="执行时间" align="center" prop="createTime"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>

+ 17 - 53
src/views/monitor/logininfor/index.vue

@@ -1,33 +1,33 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
       <el-form-item label="登录地址" prop="ipaddr">
         <el-input
           v-model="queryParams.ipaddr"
           placeholder="请输入登录地址"
           clearable
-          style="width: 240px"
+          style="width: 140px"
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="用户名称" prop="userName" label-width="100px">
+      <el-form-item label="用户名称" prop="userName" >
         <el-input
           v-model="queryParams.userName"
           placeholder="请输入用户名称"
           clearable
-          style="width: 240px;"
+          style="width: 140px;"
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="状态" prop="status" label-width="100px">
+      <el-form-item label="状态" prop="status" >
         <el-select
           v-model="queryParams.status"
           placeholder="登录状态"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 100px"
         >
           <el-option
             v-for="dict in statusOptions"
@@ -37,7 +37,7 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="登录时间" label-width="100px">
+      <el-form-item label="登录时间" >
         <el-date-picker
           v-model="dateRange"
           size="small"
@@ -55,53 +55,17 @@
       </el-form-item>
     </el-form>
 
-    <!-- <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['monitor:logininfor:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          @click="handleClean"
-          v-hasPermi="['monitor:logininfor:remove']"
-        >清空</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['monitor:logininfor:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row> -->
-
-    <el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
+    <el-table ref="tables" v-loading="loading" :data="list" height="calc(100vh - 10vh - 120px)" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="访问编号" align="center" prop="infoId" />
-      <el-table-column label="用户名称" align="center" prop="userName" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" />
-      <el-table-column label="登录地址" align="center" prop="ipaddr" width="130" :show-overflow-tooltip="true" />
-      <el-table-column label="登录地点" align="center" prop="loginLocation" :show-overflow-tooltip="true" />
-      <el-table-column label="浏览器" align="center" prop="browser" :show-overflow-tooltip="true" />
-      <el-table-column label="操作系统" align="center" prop="os" />
-      <el-table-column label="登录状态" align="center" prop="status" :formatter="statusFormat" />
-      <el-table-column label="操作信息" align="center" prop="msg" />
-      <el-table-column label="登录日期" align="center" prop="loginTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180">
+      <el-table-column label="访问编号" align="center" prop="infoId"  show-overflow-tooltip />
+      <el-table-column label="用户名称" align="center" prop="userName"  show-overflow-tooltip  sortable="custom" :sort-orders="['descending', 'ascending']" />
+      <el-table-column label="登录地址" align="center" prop="ipaddr"  show-overflow-tooltip  />
+      <el-table-column label="登录地点" align="center" prop="loginLocation"  show-overflow-tooltip  />
+      <el-table-column label="浏览器" align="center" prop="browser"  show-overflow-tooltip  />
+      <el-table-column label="操作系统" align="center" prop="os"  show-overflow-tooltip />
+      <el-table-column label="登录状态" align="center" prop="status" :formatter="statusFormat"  show-overflow-tooltip />
+      <el-table-column label="操作信息" align="center" prop="msg"  show-overflow-tooltip />
+      <el-table-column label="登录日期" align="center" prop="loginTime" sortable="custom" :sort-orders="['descending', 'ascending']"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.loginTime) }}</span>
         </template>

+ 16 - 51
src/views/monitor/operlog/index.vue

@@ -1,33 +1,33 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
       <el-form-item label="系统模块" prop="title">
         <el-input
           v-model="queryParams.title"
           placeholder="请输入系统模块"
           clearable
-          style="width: 240px"
+          style="width: 140px"
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="操作人员" prop="operName" label-width="100px">
+      <el-form-item label="操作人员" prop="operName" >
         <el-input
           v-model="queryParams.operName"
           placeholder="请输入操作人员"
           clearable
-          style="width: 240px;"
+          style="width: 140px;"
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="类型" prop="businessType" label-width="100px">
+      <el-form-item label="类型" prop="businessType" >
         <el-select
           v-model="queryParams.businessType"
           placeholder="操作类型"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
         >
           <el-option
             v-for="dict in typeOptions"
@@ -37,13 +37,13 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="状态" prop="status" label-width="100px">
+      <el-form-item label="状态" prop="status" >
         <el-select
           v-model="queryParams.status"
           placeholder="操作状态"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 120px"
         >
           <el-option
             v-for="dict in statusOptions"
@@ -71,53 +71,18 @@
       </el-form-item>
     </el-form>
 
-    <!-- <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['monitor:operlog:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          @click="handleClean"
-          v-hasPermi="['monitor:operlog:remove']"
-        >清空</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['monitor:operlog:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row> -->
 
-    <el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
+    <el-table ref="tables" v-loading="loading" :data="list" height="calc(100vh - 10vh - 120px)" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="日志编号" align="center" prop="operId" />
-      <el-table-column label="系统模块" align="center" prop="title" />
-      <el-table-column label="操作类型" align="center" prop="businessType" :formatter="typeFormat" />
+      <el-table-column label="日志编号" align="center" prop="operId"  show-overflow-tooltip />
+      <el-table-column label="系统模块" align="center" prop="title"  show-overflow-tooltip />
+      <el-table-column label="操作类型" align="center" prop="businessType" :formatter="typeFormat"  show-overflow-tooltip />
       <el-table-column label="请求方式" align="center" prop="requestMethod" />
-      <el-table-column label="操作人员" align="center" prop="operName" width="100" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" />
-      <el-table-column label="操作地址" align="center" prop="operIp" width="130" :show-overflow-tooltip="true" />
-      <el-table-column label="操作地点" align="center" prop="operLocation" :show-overflow-tooltip="true" />
+      <el-table-column label="操作人员" align="center" prop="operName"  show-overflow-tooltip  sortable="custom" :sort-orders="['descending', 'ascending']" />
+      <el-table-column label="操作地址" align="center" prop="operIp" width="130"  show-overflow-tooltip  />
+      <el-table-column label="操作地点" align="center" prop="operLocation"  show-overflow-tooltip  />
       <el-table-column label="操作状态" align="center" prop="status" :formatter="statusFormat" />
-      <el-table-column label="操作日期" align="center" prop="operTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180">
+      <el-table-column label="操作日期" align="center" prop="operTime" sortable="custom" :sort-orders="['descending', 'ascending']"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.operTime) }}</span>
         </template>

+ 21 - 55
src/views/recharge/channel/index.vue

@@ -7,19 +7,14 @@
           placeholder="请输入渠道名称"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
 
         />
       </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" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         <el-button
           type="primary"
           plain
@@ -28,48 +23,13 @@
           @click="handleAdd"
           v-hasPermi="['system:admin: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:admin: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:admin:remove']"
-        >删除</el-button>
-      </el-col>wt注释-->
-      <!-- <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['system:admin:export']"
-        >导出</el-button>
-      </el-col> -->
-      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
-    </el-row>
-
-    <el-table v-loading="loading" :data="adminList" >
-      <el-table-column label="渠道名称" align="center" prop="name" />
-      <el-table-column label="渠道标识" align="center" prop="aliasName"/>
-      <el-table-column label="创建人" align="center" prop="createBy" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+      </el-form-item>
+    </el-form>
+    <el-table v-loading="loading" :data="adminList" height="calc(100vh - 10vh - 120px)">
+      <el-table-column label="渠道名称" align="center" prop="name" show-overflow-tooltip />
+      <el-table-column label="渠道标识" align="center" prop="aliasName" show-overflow-tooltip />
+      <el-table-column label="创建人" align="center" prop="createBy"  show-overflow-tooltip />
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
@@ -105,12 +65,18 @@
     <!-- 添加或修改参数配置对话框 -->
     <el-dialog   :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false"  >
       <el-form ref="form" :model="form" :rules="rules" label-width="120px" >
-        <el-form-item label="渠道名称" prop="name">
-          <el-input v-model.trim="form.name" placeholder="请输入渠道名称" @input="forceUpdate" />
-        </el-form-item>
-        <el-form-item label="渠道标识" prop="aliasName">
-          <el-input v-model.trim="form.aliasName" placeholder="请输入渠道标识" @input="forceUpdate"/>
-        </el-form-item>
+        <el-row :gutter="20">
+          <el-col :span="16">
+            <el-form-item label="渠道名称" prop="name">
+              <el-input v-model.trim="form.name" placeholder="请输入渠道名称" @input="forceUpdate" maxlength="15" show-word-limit />
+            </el-form-item>
+          </el-col>
+          <el-col :span="16">
+            <el-form-item label="渠道标识" prop="aliasName">
+              <el-input v-model.trim="form.aliasName" placeholder="请输入渠道标识" @input="forceUpdate" maxlength="15" show-word-limit />
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>

+ 8 - 8
src/views/recharge/department/index.vue

@@ -7,21 +7,21 @@
           placeholder="请输入部门名称"
           clearable
           size="small"
-          style="width: 160px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </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-button icon="el-icon-refresh" size="mini" @click="synchrodeptJob">部门信息同步</el-button>
+        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="synchrodeptJob">部门信息同步</el-button>
       </el-form-item>
     </el-form>
-    <el-table  :data="adminList" >
-      <el-table-column label="id" align="center" prop="id"/>
-      <el-table-column label="部门名称" align="center" prop="name" />
-      <el-table-column label="创建人" align="center" prop="createBy" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+    <el-table  :data="adminList" height="calc(100vh - 10vh - 120px)">
+      <el-table-column label="id" align="center" prop="id" show-overflow-tooltip />
+      <el-table-column label="部门名称" align="center" prop="name"  show-overflow-tooltip />
+      <el-table-column label="创建人" align="center" prop="createBy"  show-overflow-tooltip />
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>

+ 17 - 17
src/views/recharge/detailed/index.vue

@@ -7,7 +7,7 @@
           placeholder="请输入姓名"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -17,19 +17,19 @@
           placeholder="请输入手机号"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
       <el-form-item label="支付方式:" prop="payType">
-         <el-select v-model="queryParams.payType" style="width: 240px" placeholder="请选择支付方式" clearable size="small">
+         <el-select v-model="queryParams.payType" style="width: 160px" placeholder="请选择支付方式" clearable size="small">
           <el-option label="现金支付" :value="1"/>
           <el-option label="微信" :value="2"/>
           <el-option label="支付宝" :value="3"/>
         </el-select>
       </el-form-item>
       <el-form-item label="支付状态:" prop="orderFlag">
-        <el-select v-model="queryParams.orderFlag" style="width: 240px" placeholder="请选择支付状态" clearable size="small">
+        <el-select v-model="queryParams.orderFlag" style="width: 160px" placeholder="请选择支付状态" clearable size="small">
           <el-option label="未支付" :value="0"/>
           <el-option label="支付等待中" :value="1"/>
           <el-option label="支付失败" :value="2"/>
@@ -45,7 +45,7 @@
           clearable
           size="small"
           type="number"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"></el-input-number> ~
         <el-input-number
           v-model="queryParams.endMoney"
@@ -53,7 +53,7 @@
           clearable
           size="small"
           type="number"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"></el-input-number>
       </el-form-item>
       <el-form-item label="支付时间:">
@@ -70,7 +70,7 @@
       </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-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         <el-button
           type="warning"
           plain
@@ -83,11 +83,11 @@
       </el-form-item>
     </el-form>
 
-    <el-table v-loading="loading" :data="adminList" >
-      <el-table-column label="姓名" align="center" prop="userName" />
-      <el-table-column label="手机号" align="center" prop="userPhone"/>
-      <el-table-column label="充值金额" align="center" prop="money"/>
-      <el-table-column label="支付状态" align="center" prop="orderFlag">
+    <el-table v-loading="loading" :data="adminList" height="calc(100vh  - 10vh - 170px)">
+      <el-table-column label="姓名" align="center" prop="userName"  show-overflow-tooltip />
+      <el-table-column label="手机号" align="center" prop="userPhone" show-overflow-tooltip />
+      <el-table-column label="充值金额" align="center" prop="money" show-overflow-tooltip />
+      <el-table-column label="支付状态" align="center" prop="orderFlag" show-overflow-tooltip >
         <template slot-scope="scope">
           <span v-if="scope.row.orderFlag == 0" style="color:#909399">未支付</span>
           <span v-if="scope.row.orderFlag == 1" style="color:#000000">支付等待中</span>
@@ -98,13 +98,13 @@
           <span v-if="scope.row.orderFlag == 6" style="color:#67C23A">已成功</span>
         </template>
       </el-table-column>
-      <el-table-column label="到账金额" align="center" prop="realMoney"/>
-      <el-table-column label="支付方式" align="center" prop="payType">
+      <el-table-column label="到账金额" align="center" prop="realMoney" show-overflow-tooltip />
+      <el-table-column label="支付方式" align="center" prop="payType" show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ scope.row.payType == 1 ? '现金支付':scope.row.payType ==2 ? '微信':scope.row.payType ==3 ? '支付宝': '' }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="充值场景" align="center" prop="scene">
+      <el-table-column label="充值场景" align="center" prop="scene" show-overflow-tooltip >
         <template slot-scope="scope">
           <span v-if="scope.row.scene == 1" style="color:#dda8eb">后台充值</span>
           <span v-if="scope.row.scene == 2" style="color:#E6A23C">游客充值</span>
@@ -112,8 +112,8 @@
           <span v-if="scope.row.scene == 6" style="color:#00dd88e0">公众号充值</span>
         </template>
       </el-table-column>
-      <el-table-column label="充值渠道" align="center" prop="channelName" />
-      <el-table-column label="时间" align="center" prop="createTime" width="180">
+      <el-table-column label="充值渠道" align="center" prop="channelName"  show-overflow-tooltip />
+      <el-table-column label="时间" align="center" prop="createTime"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>

+ 12 - 37
src/views/recharge/fileExport/index.vue

@@ -1,13 +1,13 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
       <el-form-item label="文件id:" prop="asyncTaskId">
         <el-input
           v-model.trim="queryParams.asyncTaskId"
           placeholder="请输入文件id"
           clearable
           size="small"
-          style="width: 180px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -17,48 +17,23 @@
           placeholder="请输入文件名称"
           clearable
           size="small"
-          style="width: 180px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <!-- <el-form-item label="时间:">
-         <el-date-picker
-          v-model="dateRange"
-          size="small"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="datetimerange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item> -->
-      <!-- <el-form-item label="文件类型" prop="type">
-         <el-select v-model="queryParams.type" placeholder="文件类型" size="small">
-          <el-option label="文件" :value="file"/>
-        </el-select>
-      </el-form-item> -->
-      <el-form-item style="margin-left:100px">
+      <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-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['system:admin:export']"
-        >导出</el-button> -->
+        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
-    <el-table v-loading="loading" :data="adminList">
-      <el-table-column label="id" align="center" prop="id" />
-      <el-table-column label="类别" align="center" prop="resultType" />
-      <el-table-column label="文件名称" align="center" prop="funcType" />
-      <el-table-column label="开始时间" align="center" prop="startTime" />
-      <el-table-column label="结束时间" align="center" prop="endTime" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+    <el-table v-loading="loading" :data="adminList" height="calc(100vh - 10vh - 120px)">
+      <el-table-column label="id" align="center" prop="id"  show-overflow-tooltip />
+      <el-table-column label="类别" align="center" prop="resultType"  show-overflow-tooltip />
+      <el-table-column label="文件名称" align="center" prop="funcType"  show-overflow-tooltip />
+      <el-table-column label="开始时间" align="center" prop="startTime"  show-overflow-tooltip />
+      <el-table-column label="结束时间" align="center" prop="endTime"  show-overflow-tooltip />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width"  show-overflow-tooltip >
         <template slot-scope="scope">
           <el-button v-if ="scope.row.isSuccess == true"
             size="mini"

+ 13 - 13
src/views/recharge/personnel/index.vue

@@ -7,7 +7,7 @@
           placeholder="请输入人员名称"
           clearable
           size="medium"
-          style="width: 200px"
+          style="width: 150px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -17,7 +17,7 @@
           placeholder="请输入手机号"
           clearable
           size="medium"
-          style="width: 200px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -27,27 +27,27 @@
           placeholder="请输入卡号"
           clearable
           size="medium"
-          style="width: 200px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </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-button icon="el-icon-refresh" size="mini" @click="synchroPersonnel">人员信息同步</el-button>
+        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="synchroPersonnel">人员信息同步</el-button>
         <el-button type="primary" icon="el-icon-circle-plus-outline" size="mini" @click="batchChange(0)">批量绑定</el-button>
         <el-button type="primary" icon="el-icon-remove-outline" size="mini" @click="batchChange(1)">批量解除</el-button>
       </el-form-item>
     </el-form>
-    <el-table  :data="adminList" @selection-change="handleSelectionChange">
+    <el-table  :data="adminList" @selection-change="handleSelectionChange" height="calc(100vh - 10vh - 120px)">
       <el-table-column type="selection" width="50" align="center" />
-      <el-table-column label="id" align="center" prop="id" />
-      <el-table-column label="人员名称" align="center" prop="name" />
-      <el-table-column label="身份信息" align="center" prop="identity" />
-      <el-table-column label="手机号" align="center" prop="contacts" />
-      <el-table-column label="卡号" align="center" prop="cardId" />
-      <el-table-column label="充值到账比例" align="center" prop="proportion" />
-      <el-table-column label="创建时间" align="center" prop="createTime" />
+      <el-table-column label="id" align="center" prop="id"  show-overflow-tooltip />
+      <el-table-column label="人员名称" align="center" prop="name"  show-overflow-tooltip />
+      <el-table-column label="身份信息" align="center" prop="identity"  show-overflow-tooltip />
+      <el-table-column label="手机号" align="center" prop="contacts"  show-overflow-tooltip />
+      <el-table-column label="卡号" align="center" prop="cardId"  show-overflow-tooltip />
+      <el-table-column label="充值到账比例" align="center" prop="proportion"  show-overflow-tooltip />
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button

+ 27 - 49
src/views/recharge/qrCode/index.vue

@@ -7,18 +7,13 @@
           placeholder="请输入身份信息"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </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" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         <el-button
           type="primary"
           plain
@@ -27,38 +22,15 @@
           @click="handleAdd"
           v-hasPermi="['system:admin: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:admin: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:admin:remove']"
-        >删除</el-button>
-      </el-col> wt注释-->
-    </el-row>
+      </el-form-item>
+    </el-form>
 
-    <el-table v-loading="loading" :data="adminList" @selection-change="handleSelectionChange">
+    <el-table v-loading="loading" :data="adminList" @selection-change="handleSelectionChange" height="calc(100vh - 10vh - 120px)">
       <!-- <el-table-column type="selection" width="55" align="center" /> -->
-      <el-table-column label="二维码名称" align="center" prop="name" />
-      <el-table-column label="渠道名称" align="center" prop="topChannelName"/>
+      <el-table-column label="二维码名称" align="center" prop="name"  show-overflow-tooltip />
+      <el-table-column label="渠道名称" align="center" prop="topChannelName" show-overflow-tooltip />
 
-      <el-table-column label="二维码" align="center" prop="qrPath" >
-        <!-- <div class="qrcode" ref="qrCodeUrl"></div> -->
+      <el-table-column label="二维码" align="center" prop="qrPath" show-overflow-tooltip  >
         <template slot-scope="scope" >
           <el-image
             v-if="scope.row.qrPath"
@@ -68,7 +40,7 @@
           </el-image>
         </template>
       </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
@@ -104,18 +76,24 @@
     <!-- 添加或修改参数配置对话框 -->
     <el-dialog  :title="title" :visible.sync="open" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="100px" >
-        <el-form-item label="二维码名称" prop="name">
-          <el-input v-model.trim="form.name" placeholder="请输入二维码名称" @input="forceUpdate" />
-        </el-form-item>
-        <el-form-item label="渠道名称" prop="topChannelId">
-          <el-select v-model.trim="form.topChannelId"  placeholder="请选择渠道名称" clearable style="width:100%" @input="forceUpdate">
-            <el-option
-              v-for="dict in channelList"
-              :key="dict.id"
-              :label="dict.name"
-              :value="dict.id"/>
-          </el-select>
-        </el-form-item>
+        <el-row :gutter="20">
+          <el-col :span="16">
+            <el-form-item label="二维码名称" prop="name">
+              <el-input v-model.trim="form.name" placeholder="请输入二维码名称" @input="forceUpdate" maxlength="15" show-word-limit />
+            </el-form-item>
+          </el-col>
+          <el-col :span="16">
+            <el-form-item label="渠道名称" prop="topChannelId">
+              <el-select v-model.trim="form.topChannelId"  placeholder="请选择渠道名称" clearable  @input="forceUpdate" >
+                <el-option
+                  v-for="dict in channelList"
+                  :key="dict.id"
+                  :label="dict.name"
+                  :value="dict.id"/>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>

+ 24 - 68
src/views/recharge/radio/index.vue

@@ -7,28 +7,13 @@
           placeholder="请输入身份信息"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <!-- <el-form-item label="充值到账比例" prop="proportion">
-        <el-input
-          v-model="queryParams.proportion"
-          placeholder="请输入充值到账比例"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </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" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         <el-button
           type="primary"
           plain
@@ -37,49 +22,15 @@
           @click="handleAdd"
           v-hasPermi="['system:admin: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:admin: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:admin:remove']"
-        >删除</el-button>
-      </el-col> -->
-      <!-- <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['system:admin:export']"
-        >导出</el-button>
-      </el-col>-->
-      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
-    </el-row>
+      </el-form-item>
+    </el-form>
+
 
-    <el-table v-loading="loading" :data="adminList" @selection-change="handleSelectionChange" >
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="身份信息" align="center" prop="identity" />
-      <el-table-column label="充值到账比例" align="center" prop="proportion"/>
-      <el-table-column label="创建人" align="center" prop="createBy" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+    <el-table v-loading="loading" :data="adminList" @selection-change="handleSelectionChange" height="calc(100vh - 10vh - 120px)">
+      <el-table-column label="身份信息" align="center" prop="identity"  show-overflow-tooltip />
+      <el-table-column label="充值到账比例" align="center" prop="proportion" show-overflow-tooltip />
+      <el-table-column label="创建人" align="center" prop="createBy"  show-overflow-tooltip />
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
@@ -117,15 +68,20 @@
     <!-- 添加或修改参数配置对话框 -->
     <el-dialog  :title="title" :visible.sync="open1" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="120px" >
-        <el-form-item label="身份信息" prop="identity">
-          <el-input v-model.trim="form.identity" placeholder="请输入身份信息"  @input="forceUpdate" />
-        </el-form-item>
-        <el-form-item label="充值到账比例" prop="proportion">
-          <!-- <el-input v-model.trim="form.proportion" placeholder="请输入充值到账比例(例:0.95)"  @input="forceUpdate"/> -->
-          <el-select v-model="form.proportion"  placeholder="请选择充值到账比例" clearable size="small" @input="forceUpdate">
-            <el-option :label="index.value"  :value="index.value" v-for = "(index, item) in proportionList" :key="item" />
-          </el-select>
-        </el-form-item>
+        <el-row :gutter="20">
+          <el-col :span="16">
+            <el-form-item label="身份信息" prop="identity">
+              <el-input v-model.trim="form.identity" placeholder="请输入身份信息"  @input="forceUpdate" maxlength="15" show-word-limit  />
+            </el-form-item>
+          </el-col>
+          <el-col :span="16">
+            <el-form-item label="充值到账比例" prop="proportion">
+              <el-select v-model="form.proportion"  placeholder="请选择充值到账比例" clearable size="small" @input="forceUpdate">
+                <el-option :label="index.value"  :value="index.value" v-for = "(index, item) in proportionList" :key="item" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>

+ 9 - 9
src/views/recharge/reportForm/index.vue

@@ -14,7 +14,7 @@
         ></el-date-picker>
       </el-form-item>
       <el-form-item label="报表种类" prop="type">
-         <el-select v-model="queryParams.type" placeholder="请选择报表种类" size="small">
+         <el-select v-model="queryParams.type" placeholder="请选择报表种类" size="small"  style="width: 80px">
           <el-option label="日" :value="1"/>
           <el-option label="周" :value="2"/>
           <el-option label="月" :value="3"/>
@@ -23,7 +23,7 @@
       </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-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         <el-button
           type="warning"
           plain
@@ -36,17 +36,17 @@
       </el-form-item>
     </el-form>
 
-    <el-table v-loading="loading" :data="adminList">
-      <el-table-column label="时间" align="center" prop="reportDate" />
-      <el-table-column label="报表种类" align="center">
+    <el-table v-loading="loading" :data="adminList" height="calc(100vh - 10vh - 120px)">
+      <el-table-column label="时间" align="center" prop="reportDate"  show-overflow-tooltip />
+      <el-table-column label="报表种类" align="center" show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ scope.row.type == 1 ? '日':scope.row.type ==2 ? '周':scope.row.type ==3 ? '月':scope.row.type ==4 ? '年': '' }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="总金额" align="center" prop="totalMoney" />
-      <el-table-column label="现金" align="center" prop="cashMoney" />
-      <el-table-column label="微信" align="center" prop="wxMoney" />
-      <el-table-column label="支付宝" align="center" prop="zfbMoney" />
+      <el-table-column label="总金额" align="center" prop="totalMoney"  show-overflow-tooltip />
+      <el-table-column label="现金" align="center" prop="cashMoney"  show-overflow-tooltip />
+      <el-table-column label="微信" align="center" prop="wxMoney"  show-overflow-tooltip />
+      <el-table-column label="支付宝" align="center" prop="zfbMoney"  show-overflow-tooltip />
     </el-table>
 
     <pagination

+ 0 - 7
src/views/recharge/userRecharge/index.vue

@@ -22,13 +22,6 @@
       </el-form-item>
       <el-form-item label="充值金额:" prop="money">
         <el-input  v-model.trim="form.money"  placeholder="请输入充值金额" type="tel"   @input="inputMoney" min="0.10" />
-        <!-- <el-input
-
-          v-model.trim="form.money"
-          placeholder="请输入充值金额"
-          clearable
-          onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')"
-        /> -->
       </el-form-item>
       <el-form-item label="充值到账比例:" prop="proportion">
         <el-input

+ 10 - 15
src/views/system/dept/index.vue

@@ -7,11 +7,12 @@
           placeholder="请输入部门名称"
           clearable
           size="small"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
       <el-form-item label="状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="部门状态" clearable size="small">
+        <el-select v-model="queryParams.status" placeholder="部门状态" clearable size="small" style="width: 140px">
           <el-option
             v-for="dict in statusOptions"
             :key="dict.dictValue"
@@ -22,12 +23,7 @@
       </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" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         <el-button
           type="primary"
           plain
@@ -36,9 +32,8 @@
           @click="handleAdd"
           v-hasPermi="['system:dept:add']"
         >新增</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+      </el-form-item>
+    </el-form>
 
     <el-table
       v-loading="loading"
@@ -47,10 +42,10 @@
       default-expand-all
       :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
     >
-      <el-table-column prop="deptName" label="部门名称" ></el-table-column>
-      <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
-      <el-table-column prop="status" label="状态" :formatter="statusFormat" width="200"></el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="200">
+      <el-table-column prop="deptName" label="部门名称" show-overflow-tooltip></el-table-column>
+      <el-table-column prop="orderNum" label="排序" ></el-table-column>
+      <el-table-column prop="status" label="状态" :formatter="statusFormat" ></el-table-column>
+      <el-table-column label="创建时间" align="center" prop="createTime" show-overflow-tooltip>
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
@@ -97,7 +92,7 @@
               <el-input v-model="form.deptName" placeholder="请输入部门名称" />
             </el-form-item>
           </el-col>
-          <el-col :span="4">
+          <el-col :span="12">
             <el-form-item label="显示排序" prop="orderNum" width="100%">
               <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
             </el-form-item>

+ 5 - 5
src/views/system/dict/index.vue

@@ -114,9 +114,9 @@
 
     <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="字典编号" align="center" prop="dictId" />
-      <el-table-column label="字典名称" align="center" prop="dictName" :show-overflow-tooltip="true" />
-      <el-table-column label="字典类型" align="center" :show-overflow-tooltip="true">
+      <el-table-column label="字典编号" align="center" prop="dictId" show-overflow-tooltip/>
+      <el-table-column label="字典名称" align="center" prop="dictName" show-overflow-tooltip />
+      <el-table-column label="字典类型" align="center" show-overflow-tooltip>
         <template slot-scope="scope">
           <router-link :to="'/system/dict-data/index/' + scope.row.dictId" class="link-type">
             <span>{{ scope.row.dictType }}</span>
@@ -128,8 +128,8 @@
           <dict-tag :options="statusOptions" :value="scope.row.status"/>
         </template>
       </el-table-column>
-      <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+      <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
+      <el-table-column label="创建时间" align="center" prop="createTime" show-overflow-tooltip>
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>

+ 10 - 15
src/views/system/menu/index.vue

@@ -7,11 +7,12 @@
           placeholder="请输入菜单名称"
           clearable
           size="small"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
       <el-form-item label="状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="菜单状态" clearable size="small">
+        <el-select v-model="queryParams.status" placeholder="菜单状态" clearable size="small" style="width: 100px">
           <el-option
             v-for="dict in statusOptions"
             :key="dict.dictValue"
@@ -22,12 +23,7 @@
       </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" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         <el-button
           type="primary"
           plain
@@ -36,9 +32,8 @@
           @click="handleAdd"
           v-hasPermi="['system:menu:add']"
         >新增</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+      </el-form-item>
+    </el-form>
 
     <el-table
       v-loading="loading"
@@ -46,17 +41,17 @@
       row-key="menuId"
       :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
     >
-      <el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column>
+      <el-table-column prop="menuName" label="菜单名称" show-overflow-tooltip></el-table-column>
       <el-table-column prop="icon" label="图标" align="center" width="100">
         <template slot-scope="scope">
           <svg-icon :icon-class="scope.row.icon" />
         </template>
       </el-table-column>
       <el-table-column prop="orderNum" label="排序" width="60"></el-table-column>
-      <el-table-column prop="perms" label="权限标识" :show-overflow-tooltip="true"></el-table-column>
-      <el-table-column prop="component" label="组件路径" :show-overflow-tooltip="true"></el-table-column>
-      <el-table-column prop="status" label="状态" :formatter="statusFormat" width="80"></el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime">
+      <el-table-column prop="perms" label="权限标识" show-overflow-tooltip></el-table-column>
+      <el-table-column prop="component" label="组件路径" show-overflow-tooltip></el-table-column>
+      <el-table-column prop="status" label="状态" :formatter="statusFormat" show-overflow-tooltip></el-table-column>
+      <el-table-column label="创建时间" align="center" prop="createTime" show-overflow-tooltip>
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>

+ 46 - 43
src/views/system/product/index.vue

@@ -13,11 +13,6 @@
       </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
@@ -26,18 +21,18 @@
           @click="handleAdd"
           v-hasPermi="['system:admin:add']"
         >新增</el-button>
-      </el-col>
-    </el-row>
+      </el-form-item>
+    </el-form>
 
     <el-table v-loading="loading" :data="adminList" >
-      <el-table-column label="公司名称" align="center" prop="name" />
-      <el-table-column label="公司介绍" align="center" prop="introduce"/>
+      <el-table-column label="公司名称" align="center" prop="name" show-overflow-tooltip/>
+      <el-table-column label="公司介绍" align="center" prop="introduce" show-overflow-tooltip />
       <el-table-column label="公司LOGO">
         <template width="90" slot-scope="scope" >
           <img style="width:120px;border:none;" :src="scope.row.logo"  >
         </template>
       </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
@@ -73,39 +68,47 @@
     <!-- 添加或修改参数配置对话框 -->
     <el-dialog   :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false"  >
       <el-form ref="form" :model="form" :rules="rules" label-width="120px" >
-        <el-form-item label="公司名称" prop="name" >
-          <el-input v-model="form.name" placeholder="请输入公司名称" />
-        </el-form-item>
-        <el-form-item label="公司介绍" prop="introduce">
-          <el-input type="textarea" :rows="4" placeholder="请输入公司介绍" v-model="form.introduce">
-          </el-input>
-        </el-form-item>
-        <el-form-item label="公司LOGO" prop="logo" ref="img">
-          <!-- <el-checkbox-group v-model="form.logo" v-show="false"></el-checkbox-group> -->
-            <el-upload
-              action="#"
-              accept="image/png,image/jpg,image/jpeg"
-              :http-request="uploadFile"
-              :limit = limit
-              list-type="picture-card"
-              :file-list="fileList"
-              style="color:#D9D9D9"
-              on-sucsee="handSuccess"
-              :auto-upload="true">
-                <i slot="default" class="el-icon-plus"></i>
-                <div slot="file" slot-scope="{file}">
-                  <img class="el-upload-list__item-thumbnail imgupload" :src="file.url" alt="" >
-                  <span class="el-upload-list__item-actions">
-                    <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
-                      <i class="el-icon-delete"></i>
-                    </span>
-                  </span>
-                </div>
-            </el-upload>
-          <el-dialog :visible.sync="dialogVisible" >
-            <img width="100%" :src="dialogImageUrl" alt="">
-          </el-dialog>
-        </el-form-item>
+        <el-row :gutter="20">
+          <el-col :span="16">
+            <el-form-item label="公司名称" prop="name" >
+              <el-input v-model="form.name" placeholder="请输入公司名称" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="16">
+            <el-form-item label="公司介绍" prop="introduce">
+              <el-input type="textarea" :rows="4" placeholder="请输入公司介绍" v-model="form.introduce">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="公司LOGO" prop="logo" ref="img">
+              <!-- <el-checkbox-group v-model="form.logo" v-show="false"></el-checkbox-group> -->
+                <el-upload
+                  action="#"
+                  accept="image/png,image/jpg,image/jpeg"
+                  :http-request="uploadFile"
+                  :limit = limit
+                  list-type="picture-card"
+                  :file-list="fileList"
+                  style="color:#D9D9D9"
+                  on-sucsee="handSuccess"
+                  :auto-upload="true">
+                    <i slot="default" class="el-icon-plus"></i>
+                    <div slot="file" slot-scope="{file}">
+                      <img class="el-upload-list__item-thumbnail imgupload" :src="file.url" alt="" >
+                      <span class="el-upload-list__item-actions">
+                        <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
+                          <i class="el-icon-delete"></i>
+                        </span>
+                      </span>
+                    </div>
+                </el-upload>
+              <el-dialog :visible.sync="dialogVisible" >
+                <img width="100%" :src="dialogImageUrl" alt="">
+              </el-dialog>
+            </el-form-item>
+         </el-col>
+        </el-row>
 
       </el-form>
       <div slot="footer" class="dialog-footer">

+ 13 - 43
src/views/system/role/index.vue

@@ -7,7 +7,7 @@
           placeholder="请输入角色名称"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -17,7 +17,7 @@
           placeholder="请输入权限字符"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -27,7 +27,7 @@
           placeholder="角色状态"
           clearable
           size="small"
-          style="width: 240px"
+          style="width: 140px"
         >
           <el-option
             v-for="dict in statusOptions"
@@ -52,11 +52,6 @@
       <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
@@ -65,19 +60,6 @@
           @click="handleAdd"
           v-hasPermi="['system:role: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:role:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
         <el-button
           type="danger"
           plain
@@ -87,28 +69,16 @@
           @click="handleDelete"
           v-hasPermi="['system:role:remove']"
         >删除</el-button>
-      </el-col>
-      <!-- <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['system:role:export']"
-        >导出</el-button>
-      </el-col> -->
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+      </el-form-item>
+    </el-form>
 
-    <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="角色编号" prop="roleId" width="120" />
-      <el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true" width="150" />
-      <el-table-column label="权限字符" prop="roleKey" :show-overflow-tooltip="true" width="150" />
-      <el-table-column label="显示顺序" prop="roleSort" width="100" />
-      <el-table-column label="状态" align="center" width="100">
+    <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange" height="calc(100vh - 10vh - 120px)">
+      <el-table-column type="selection" width="55" align="center"  show-overflow-tooltip />
+      <el-table-column label="角色编号" prop="roleId"  show-overflow-tooltip />
+      <el-table-column label="角色名称" prop="roleName"  show-overflow-tooltip  />
+      <el-table-column label="权限字符" prop="roleKey"  show-overflow-tooltip  />
+      <el-table-column label="显示顺序" prop="roleSort"  show-overflow-tooltip  />
+      <el-table-column label="状态" align="center"  show-overflow-tooltip >
         <template slot-scope="scope">
           <el-switch
             v-model="scope.row.status"
@@ -118,7 +88,7 @@
           ></el-switch>
         </template>
       </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>

+ 280 - 0
src/views/system/security/index.vue

@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <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:role:add']"
+        >新增</el-button>
+      </el-col>
+    </el-row>
+    <el-table v-loading="loading" :data="adminList" height="calc(100vh - 10vh - 120px)">
+      <el-table-column label="编号" prop="id"   show-overflow-tooltip />
+      <el-table-column label="密码长度不少于" prop="pwdLength"  show-overflow-tooltip >
+        <template slot-scope="scope">
+            <span v-if="scope.row.pwdLength">{{scope.row.pwdLength}} &nbsp;位</span>
+      </template>
+      </el-table-column>
+      <el-table-column label="账号锁定次数" prop="lockNumber"  show-overflow-tooltip />
+      <el-table-column label="默认账户" align="center" >
+        <template slot-scope="scope">
+          <el-switch
+            v-model="scope.row.isEnable"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+             @change="handleStatusChange(scope.row)"
+          ></el-switch>
+        </template>
+      </el-table-column>
+      
+      <!-- <el-table-column label="大小写敏感" align="center" width="100">
+        <template slot-scope="scope">
+          <el-switch
+            v-model="scope.row.status"
+            active-value="0"
+            inactive-value="1"
+            @change="handleStatusChange(scope.row)"
+          ></el-switch>
+        </template>y
+      </el-table-column> -->
+      <el-table-column label="创建人" align="center" prop="createBy"  show-overflow-tooltip />
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip />
+      <!-- <el-table-column label="修改人" align="center" prop="updateBy"  show-overflow-tooltip/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"  show-overflow-tooltip/> -->
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
+        <template slot-scope="scope" v-if="scope.row.roleId !== 1">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:role:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:role:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改角色配置对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
+      <el-form ref="form" :model="form" :rules="rules" label-width="140px">
+        <el-row>
+          <el-col :span="18">
+            <el-form-item label="密码长度不少于" prop="pwdLength">
+              <el-input-number v-model="form.pwdLength" controls-position="right" :min="0" :max="30" placeholder="请输入密码长度" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="18">
+            <el-form-item label="账号锁定次数" prop="lockNumber" >
+              <el-input-number v-model="form.lockNumber" controls-position="right" :min="0" :max="10" placeholder="请输入账号锁定次数" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="默认账户" prop="isEnable">
+              <el-switch
+                v-model="form.isEnable"
+                active-color="#13ce66"
+                inactive-color="#ff4949">
+              </el-switch>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAccountLock, updateAccountLock, delAccountLock, addAccountLock, } from "@/api/system/security";
+
+export default {
+  name: "AccountLock",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 表格数据
+      adminList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+
+      // 日期范围
+      dateRange: [],
+
+      // 查询参数
+      queryParams: {
+        current: 1,
+        size: 10,
+        name:undefined
+      },
+      // 表单参数
+      form: {},
+      defaultProps: {
+        children: "children",
+        label: "label"
+      },
+
+      // 表单校验
+      rules: {
+        pwdLength: [
+          { required: true, message: "密码长度不能为空", trigger: ["blur",'change'] }
+        ],
+        lockNumber: [
+          { required: true, message: "锁定次数不能为空", trigger: ["blur",'change']}
+        ],
+
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询安全机制列表 */
+    getList() {
+      this.loading = true;
+      listAccountLock(this.addDateRange(this.queryParams, this.dateRange)).then(
+        response => {
+          this.adminList = response.data.records;
+          this.total = response.data.total;
+          this.loading = false;
+          
+        }
+      );
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        name: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加安全机制";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      this.form = JSON.parse(JSON.stringify(row))
+      this.title = "修改角色";
+      this.open = true
+    },
+    handleStatusChange(row){
+      let text = row.isEnable === true ? "启用" : "停用";
+      this.$confirm('确认要"' + text + '""' + row.id + '"机制吗?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return updateAccountLock(row)
+        }).then(() => {
+          this.getList()
+          this.msgSuccess(text + "成功");
+        }).catch(function() {
+          row.isEnable = row.isEnable === "0" ? "1" : "0";
+        });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.loading = true
+          if (this.form.id != undefined) {
+            updateAccountLock(this.form).then(response => {
+              this.loading = false
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            }).catch(()=>{
+              this.loading = false
+            });
+          } else {
+            if(!this.form.isEnable){
+              this.form.isEnable = false
+            }
+            addAccountLock(this.form).then(response => {
+              this.loading = false
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            }).catch(()=>{
+              this.loading = false
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const id = row.id || this.ids;
+      this.$confirm('是否确认删除角色编号为"' + id + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delAccountLock(id);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+  }
+};
+</script>

+ 61 - 76
src/views/system/user/index.vue

@@ -34,7 +34,7 @@
               placeholder="请输入用户名称"
               clearable
               size="small"
-              style="width: 240px"
+              style="width: 140px"
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
@@ -44,7 +44,7 @@
               placeholder="请输入手机号码"
               clearable
               size="small"
-              style="width: 240px"
+              style="width: 140px"
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
@@ -54,7 +54,7 @@
               placeholder="用户状态"
               clearable
               size="small"
-              style="width: 240px"
+              style="width: 120px"
             >
               <el-option
                 v-for="dict in statusOptions"
@@ -78,12 +78,7 @@
           </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" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
             <el-button
               type="primary"
               plain
@@ -92,19 +87,6 @@
               @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
@@ -114,38 +96,16 @@
               @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"
-              :loading="exportLoading"
-              @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-form-item>
+        </el-form>
 
-        <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
+        <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange" height="calc(100vh - 12vh - 120px)"> 
           <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="userId" prop="userId" v-if="columns[0].visible"  show-overflow-tooltip />
+          <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible"  show-overflow-tooltip  />
+          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible"  show-overflow-tooltip  />
+          <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible"  show-overflow-tooltip  />
+          <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible"  show-overflow-tooltip />
           <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
             <template slot-scope="scope">
               <el-switch
@@ -156,7 +116,7 @@
               ></el-switch>
             </template>
           </el-table-column>
-          <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
+          <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible"  show-overflow-tooltip >
             <template slot-scope="scope">
               <span>{{ parseTime(scope.row.createTime) }}</span>
             </template>
@@ -220,7 +180,7 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="用户昵称" prop="nickName">
-              <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
+              <el-input v-model.trim="form.nickName" placeholder="请输入用户昵称" maxlength="15" show-word-limit />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -232,24 +192,24 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="手机号码" prop="phonenumber">
-              <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
+              <el-input v-model.trim="form.phonenumber" placeholder="请输入手机号码" maxlength="11" show-word-limit/>
             </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-input v-model.trim="form.email" placeholder="请输入邮箱" maxlength="20" show-word-limit />
             </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-input v-model.trim="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-input v-model.trim="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password @input="onInput()" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -280,8 +240,8 @@
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="岗位">
-              <el-select v-model="form.postIds"  placeholder="请选择" multiple>
+            <el-form-item label="岗位" prop="postId">
+              <el-select v-model.trim="form.postId"  placeholder="请选择" @change='changeUnit'>
                 <el-option
                   v-for="item in postOptions"
                   :key="item.postId"
@@ -293,8 +253,9 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="角色" prop="roleIds">
-              <el-select v-model="form.roleIds"  placeholder="请选择" multiple>
+            <el-form-item label="角色" prop="roleId">
+              <!-- multiple -->
+              <el-select v-model="form.roleId"  placeholder="请选择" >
                 <el-option
                   v-for="item in roleOptions"
                   :key="item.roleId"
@@ -309,7 +270,7 @@
         <el-row>
           <el-col :span="24">
             <el-form-item label="备注">
-              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+              <el-input v-model.trim="form.remark" type="textarea" placeholder="请输入内容" maxlength="30" show-word-limit></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -453,7 +414,7 @@ export default {
         ],
         password: [
           { required: true, message: "用户密码不能为空", trigger: "blur" },
-          { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
+          { min: 1, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
         ],
         email: [
           { required: true, message: "邮箱地址不能为空", trigger: "blur" },
@@ -471,7 +432,7 @@ export default {
             trigger: "blur"
           }
         ],
-        roleIds:[
+        roleId:[
            { required: true, message: "用户角色不能为空", trigger: "change"},
         ],
 
@@ -487,9 +448,15 @@ export default {
   created() {
     this.getList();
     this.getTreeselect();
+    //显示状态
+    this.getDicts("sys_show_hide").then(response => {
+      this.visibleOptions = response.data;
+    });
+    //菜单状态
     this.getDicts("sys_normal_disable").then(response => {
       this.statusOptions = response.data;
     });
+    //性别状态
     this.getDicts("sys_user_sex").then(response => {
       this.sexOptions = response.data;
     });
@@ -498,6 +465,13 @@ export default {
     });
   },
   methods: {
+    //强制el-input刷新
+    onInput(){
+        this.$forceUpdate();
+    },
+    changeUnit() {
+      this.$forceUpdate();
+    },
     /** 查询用户列表 */
     getList() {
       this.loading = true;
@@ -558,7 +532,9 @@ export default {
         status: "0",
         remark: undefined,
         postIds: [],
-        roleIds: []
+        roleIds: [],
+        postId: undefined,
+        roleId: undefined
       };
       this.resetForm("form");
     },
@@ -596,27 +572,30 @@ export default {
     handleAdd() {
       this.getTreeselect();
       getUser().then(response => {
-        this.postOptions = response.data.posts;
+        this.postOptions = response.data.posts
         this.roleOptions = response.data.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.data;
-        this.postOptions = response.data.posts;
+        this.postOptions = response.data.posts
         this.roleOptions = response.data.roles;
-        this.form.postIds = response.data.postIds;
-        this.form.roleIds = response.data.roleIds;
-        this.open = true;
-        this.title = "修改用户";
-        this.form.password = "";
+       
+
+        this.form.postId = response.data.postIds[0]
+        this.form.roleId = response.data.roleIds[0]
+          this.open = true;
+          this.title = "修改用户";
+          this.form.password = "";
+        
       });
     },
     /** 重置密码按钮操作 */
@@ -643,6 +622,14 @@ export default {
       this.$refs["form"].validate(valid => {
         if (valid) {
           this.loading = true
+          let postIds = []
+          let roleIds = []
+          if(this.form.postId){
+            postIds.push(this.form.postId)
+          }
+          roleIds.push(this.form.roleId)
+          this.form.postIds = postIds
+          this.form.roleIds = roleIds
           if (this.form.userId != undefined) {
             updateUser(this.form).then(response => {
               this.loading = false
@@ -651,7 +638,6 @@ export default {
               this.getList();
             }).catch(err=>{
               this.loading = false
-              this.open = false;
             });
           } else {
             addUser(this.form).then(response => {
@@ -661,7 +647,6 @@ export default {
               this.getList();
              }).catch(err=>{
               this.loading = false
-              this.open = false;
             });
           }
         }