Просмотр исходного кода

Merge branch 'hcb' of SH-Arbitrate/Arbitrate-Frontend into dev

hanchaobo 2 лет назад
Родитель
Сommit
3ca359a37a

+ 13
- 1
src/api/pay/pay.js Просмотреть файл

53
     method: 'post',
53
     method: 'post',
54
     data: data
54
     data: data
55
   })
55
   })
56
-} 
56
+} 
57
+
58
+// 缴费页面缴费确认
59
+export function confirmPayDig(data) {
60
+  return request({
61
+    url: '/pay/confirmPay',
62
+    // headers: {
63
+    //   isToken: false
64
+    // },
65
+    method: 'post',
66
+    data: data
67
+  })
68
+}

+ 3
- 0
src/views/caseManagement/caseList.vue Просмотреть файл

385
       :queryParams="queryParams"
385
       :queryParams="queryParams"
386
       @getcaseApply="getcaseApply"
386
       @getcaseApply="getcaseApply"
387
       @paycancelRow="paycancelRow"
387
       @paycancelRow="paycancelRow"
388
+      :payId="payId"
388
     ></payDialog>
389
     ></payDialog>
389
     <!-- 案件日志 -->
390
     <!-- 案件日志 -->
390
     <caselogDialog
391
     <caselogDialog
485
       flagLoading: true, //案件日志弹框loading
486
       flagLoading: true, //案件日志弹框loading
486
       caselogDataArr: [],
487
       caselogDataArr: [],
487
       options: [], //机构数据
488
       options: [], //机构数据
489
+      payId:null
488
     };
490
     };
489
   },
491
   },
490
   created() {
492
   created() {
645
       this.getDetail({ id: val.id });
647
       this.getDetail({ id: val.id });
646
       this.payTitle = "缴费";
648
       this.payTitle = "缴费";
647
       this.openPay = true;
649
       this.openPay = true;
650
+      this.payId = val.id;
648
     },
651
     },
649
     getDetail(parms) {
652
     getDetail(parms) {
650
       caseApplicationDetail(parms).then((res) => {
653
       caseApplicationDetail(parms).then((res) => {

+ 69
- 32
src/views/caseManagement/components/payDialog.vue Просмотреть файл

36
       <div class="payupload">
36
       <div class="payupload">
37
         <span>上传支付凭证:</span>
37
         <span>上传支付凭证:</span>
38
         <div class="uploadBtn">
38
         <div class="uploadBtn">
39
-          <el-upload class="upload-demo" ref="upload" action="https://jsonplaceholder.typicode.com/posts/"
40
-            :on-preview="handlePreview" :on-remove="handleRemove" :on-change="beforeUpload" :file-list="fileList"
41
-            :auto-upload="false">
39
+          <el-upload class="upload-demo" ref="upload" :action="UploadUrl()" :headers="headers" :data="filedata"
40
+            :on-preview="handlePreview" :on-remove="handleRemove" :on-change="beforeUpload"  :on-success="handlSuccess" :file-list="fileList"
41
+           >
42
             <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
42
             <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
43
             <!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
43
             <!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
44
             <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
44
             <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
63
 </template>
63
 </template>
64
 
64
 
65
 <script>
65
 <script>
66
-import { casePay, selectCaseApplicationConfirm } from "@/api/pay/pay";
66
+import { casePay, confirmPayDig } from "@/api/pay/pay";
67
 import QRCode from "qrcodejs2";
67
 import QRCode from "qrcodejs2";
68
 import { getToken } from "@/utils/auth";
68
 import { getToken } from "@/utils/auth";
69
 export default {
69
 export default {
70
-  props: ["openPay", "payTitle", "form", "payForm", "queryParams"],
70
+  props: ["openPay", "payTitle", "form", "payForm", "queryParams","payId"],
71
   data() {
71
   data() {
72
     return {
72
     return {
73
       // key: value
73
       // key: value
74
       // 支付文字
74
       // 支付文字
75
       payMain: "",
75
       payMain: "",
76
       timer: null,
76
       timer: null,
77
-      paySelect: 0,//支付线上/线下
78
-      fileList: []
77
+      paySelect: 1,//支付线上/线下
78
+      fileList: [],
79
+      headers: {
80
+        Authorization: "Bearer " + getToken(),
81
+      },
82
+      filedata: {
83
+        annexType: 8,
84
+      },
85
+      submitForm:{
86
+        payType:1,
87
+        payOrderList:[],
88
+        caseId:null
89
+      }
79
     };
90
     };
80
   },
91
   },
81
   methods: {
92
   methods: {
93
+    UploadUrl() {
94
+      return window.location.origin + "/API/evidence/upload";
95
+    },
82
     //选择支付方式(线上,线下)
96
     //选择支付方式(线上,线下)
83
     changPayType(data) {
97
     changPayType(data) {
84
-      console.log(data, "PPPPPPPPPPPPP");
98
+      this.submitForm.payType = data;
85
     },
99
     },
86
     beforeUpload(flie, fileList) {
100
     beforeUpload(flie, fileList) {
87
-      console.log(flie, fileList, "PPPPPPPPPPPPPP");
88
       this.fileList = fileList;
101
       this.fileList = fileList;
89
     },
102
     },
103
+    // 文件上传成功
104
+    handlSuccess(res, file) {
105
+      this.submitForm.payOrderList.push({
106
+        annexId: res.data.annexId,
107
+        annexName:res.data.annexName
108
+      });
109
+    },
90
     submitUpload() {
110
     submitUpload() {
91
       if (this.fileList.length < 1) {
111
       if (this.fileList.length < 1) {
92
         this.$modal.msgError("请上传缴费凭证");
112
         this.$modal.msgError("请上传缴费凭证");
93
         return
113
         return
94
       }
114
       }
95
-      this.$refs.upload.submit();
115
+      confirmPayDig(this.submitForm).then(res=>{
116
+        this.$modal.msgSuccess("成功");
117
+        this.payCancel()
118
+        this.$emit("getcaseApply", this.queryParams);
119
+        // console.log(res,":::::::::::::::::::::::::::::::");
120
+      })
96
     },
121
     },
97
     handleRemove(file, fileList) {
122
     handleRemove(file, fileList) {
98
-      console.log(file, fileList);
123
+      (this.submitForm.payOrderList = []),
124
+      fileList.forEach((item) => {
125
+        console.log(item.response.data,"item");
126
+          this.submitForm.payOrderList.push({ annexId:item.response.data.annexId,annexName:item.response.data.annexName });
127
+        });
99
     },
128
     },
100
     handlePreview(file) {
129
     handlePreview(file) {
101
       console.log(file);
130
       console.log(file);
113
       });
142
       });
114
     },
143
     },
115
     // 查询缴费状态
144
     // 查询缴费状态
116
-    selectCaseApplicationConfirmFn(parms) {
117
-      selectCaseApplicationConfirm(parms).then(res => {
118
-        console.log(res, this.form, "KKKKKKKKKKKKKKKKKKKK");
119
-        if (res && res.data && res.data.paymentStatus == 1) {
120
-          clearInterval(this.timer);
121
-          // this.openPay = false;
122
-          this.payCancel()
123
-          this.$message({
124
-            message: "缴费成功",
125
-            type: "success",
126
-          });
127
-          this.$emit("getcaseApply", this.queryParams);
128
-        }
129
-      })
130
-    },
145
+    // selectCaseApplicationConfirmFn(parms) {
146
+    //   selectCaseApplicationConfirm(parms).then(res => {
147
+    //     // console.log(res, this.form, "KKKKKKKKKKKKKKKKKKKK");
148
+    //     if (res && res.data && res.data.paymentStatus == 1) {
149
+    //       // clearInterval(this.timer);
150
+    //       // this.openPay = false;
151
+    //       this.payCancel()
152
+    //       this.$message({
153
+    //         message: "缴费成功",
154
+    //         type: "success",
155
+    //       });
156
+    //       this.$emit("getcaseApply", this.queryParams);
157
+    //     }
158
+    //   })
159
+    // },
131
     // 支付
160
     // 支付
132
     pay(val) {
161
     pay(val) {
133
       if (this.payForm.feePayable == 0 || !this.payForm.feePayable) {
162
       if (this.payForm.feePayable == 0 || !this.payForm.feePayable) {
153
       }).then((res) => {
182
       }).then((res) => {
154
         this.paySrc = res.data.code_url;
183
         this.paySrc = res.data.code_url;
155
         this.qrcode(this.paySrc);
184
         this.qrcode(this.paySrc);
156
-        this.timer = setInterval(() => {
157
-          this.selectCaseApplicationConfirmFn({ id: this.form.id })
158
-        }, 3000);
159
-        setTimeout(() => {
160
-          clearInterval(this.timer);
161
-        }, 1000 * 60);
185
+        // this.timer = setInterval(() => {
186
+        //   this.selectCaseApplicationConfirmFn({ id: this.form.id })
187
+        // }, 3000);
188
+        // setTimeout(() => {
189
+        //   clearInterval(this.timer);
190
+        // }, 1000 * 60);
162
       });
191
       });
163
     },
192
     },
164
     payCancel() {
193
     payCancel() {
166
       this.payMain = "";
195
       this.payMain = "";
167
     },
196
     },
168
   },
197
   },
198
+  watch:{
199
+    openPay(val){
200
+      if(val){
201
+      this.filedata.id = this.payId;
202
+      this.submitForm.caseId = this.payId;
203
+      }
204
+    }
205
+  }
169
 };
206
 };
170
 </script>
207
 </script>
171
 
208
 

+ 106
- 192
src/views/system/user/index.vue Просмотреть файл

4
       <!--部门数据-->
4
       <!--部门数据-->
5
       <el-col :span="4" :xs="24">
5
       <el-col :span="4" :xs="24">
6
         <div class="head-container">
6
         <div class="head-container">
7
-          <el-input
8
-            v-model="deptName"
9
-            placeholder="请输入部门名称"
10
-            clearable
11
-            size="small"
12
-            prefix-icon="el-icon-search"
13
-            style="margin-bottom: 20px"
14
-          />
7
+          <el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search"
8
+            style="margin-bottom: 20px" />
15
         </div>
9
         </div>
16
         <div class="head-container">
10
         <div class="head-container">
17
-          <el-tree
18
-            :data="deptOptions"
19
-            :props="defaultProps"
20
-            :expand-on-click-node="false"
21
-            :filter-node-method="filterNode"
22
-            ref="tree"
23
-            node-key="id"
24
-            default-expand-all
25
-            highlight-current
26
-            @node-click="handleNodeClick"
27
-          />
11
+          <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
12
+            :filter-node-method="filterNode" ref="tree" node-key="id" default-expand-all highlight-current
13
+            @node-click="handleNodeClick" />
28
         </div>
14
         </div>
29
       </el-col>
15
       </el-col>
30
       <!--用户数据-->
16
       <!--用户数据-->
31
       <el-col :span="20" :xs="24">
17
       <el-col :span="20" :xs="24">
32
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
18
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
33
           <el-form-item label="用户名称" prop="userName">
19
           <el-form-item label="用户名称" prop="userName">
34
-            <el-input
35
-              v-model="queryParams.userName"
36
-              placeholder="请输入用户名称"
37
-              clearable
38
-              style="width: 240px"
39
-              @keyup.enter.native="handleQuery"
40
-            />
20
+            <el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px"
21
+              @keyup.enter.native="handleQuery" />
41
           </el-form-item>
22
           </el-form-item>
42
           <el-form-item label="手机号码" prop="phonenumber">
23
           <el-form-item label="手机号码" prop="phonenumber">
43
-            <el-input
44
-              v-model="queryParams.phonenumber"
45
-              placeholder="请输入手机号码"
46
-              clearable
47
-              style="width: 240px"
48
-              @keyup.enter.native="handleQuery"
49
-            />
24
+            <el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px"
25
+              @keyup.enter.native="handleQuery" />
50
           </el-form-item>
26
           </el-form-item>
51
           <el-form-item label="状态" prop="status">
27
           <el-form-item label="状态" prop="status">
52
-            <el-select
53
-              v-model="queryParams.status"
54
-              placeholder="用户状态"
55
-              clearable
56
-              style="width: 240px"
57
-            >
58
-              <el-option
59
-                v-for="dict in dict.type.sys_normal_disable"
60
-                :key="dict.value"
61
-                :label="dict.label"
62
-                :value="dict.value"
63
-              />
28
+            <el-select v-model="queryParams.status" placeholder="用户状态" clearable style="width: 240px">
29
+              <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
30
+                :value="dict.value" />
64
             </el-select>
31
             </el-select>
65
           </el-form-item>
32
           </el-form-item>
66
           <el-form-item label="创建时间">
33
           <el-form-item label="创建时间">
67
-            <el-date-picker
68
-              v-model="dateRange"
69
-              style="width: 240px"
70
-              value-format="yyyy-MM-dd"
71
-              type="daterange"
72
-              range-separator="-"
73
-              start-placeholder="开始日期"
74
-              end-placeholder="结束日期"
75
-            ></el-date-picker>
34
+            <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
35
+              range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
76
           </el-form-item>
36
           </el-form-item>
77
           <el-form-item>
37
           <el-form-item>
78
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
38
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
82
 
42
 
83
         <el-row :gutter="10" class="mb8">
43
         <el-row :gutter="10" class="mb8">
84
           <el-col :span="1.5">
44
           <el-col :span="1.5">
85
-            <el-button
86
-              type="primary"
87
-              plain
88
-              icon="el-icon-plus"
89
-              size="mini"
90
-              @click="handleAdd"
91
-              v-hasPermi="['system:user:add']"
92
-            >新增</el-button>
45
+            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
46
+              v-hasPermi="['system:user:add']">新增</el-button>
93
           </el-col>
47
           </el-col>
94
           <el-col :span="1.5">
48
           <el-col :span="1.5">
95
-            <el-button
96
-              type="success"
97
-              plain
98
-              icon="el-icon-edit"
99
-              size="mini"
100
-              :disabled="single"
101
-              @click="handleUpdate"
102
-              v-hasPermi="['system:user:edit']"
103
-            >修改</el-button>
49
+            <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
50
+              v-hasPermi="['system:user:edit']">修改</el-button>
104
           </el-col>
51
           </el-col>
105
           <el-col :span="1.5">
52
           <el-col :span="1.5">
106
-            <el-button
107
-              type="danger"
108
-              plain
109
-              icon="el-icon-delete"
110
-              size="mini"
111
-              :disabled="multiple"
112
-              @click="handleDelete"
113
-              v-hasPermi="['system:user:remove']"
114
-            >删除</el-button>
53
+            <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
54
+              v-hasPermi="['system:user:remove']">删除</el-button>
115
           </el-col>
55
           </el-col>
116
           <el-col :span="1.5">
56
           <el-col :span="1.5">
117
-            <el-button
118
-              type="info"
119
-              plain
120
-              icon="el-icon-upload2"
121
-              size="mini"
122
-              @click="handleImport"
123
-              v-hasPermi="['system:user:import']"
124
-            >导入</el-button>
57
+            <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport"
58
+              v-hasPermi="['system:user:import']">导入</el-button>
125
           </el-col>
59
           </el-col>
126
           <el-col :span="1.5">
60
           <el-col :span="1.5">
127
-            <el-button
128
-              type="warning"
129
-              plain
130
-              icon="el-icon-download"
131
-              size="mini"
132
-              @click="handleExport"
133
-              v-hasPermi="['system:user:export']"
134
-            >导出</el-button>
61
+            <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
62
+              v-hasPermi="['system:user:export']">导出</el-button>
135
           </el-col>
63
           </el-col>
136
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
64
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
137
         </el-row>
65
         </el-row>
139
         <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
67
         <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
140
           <el-table-column type="selection" width="50" align="center" />
68
           <el-table-column type="selection" width="50" align="center" />
141
           <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
69
           <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
142
-          <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
143
-          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
144
-          <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
145
-          <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
70
+          <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible"
71
+            :show-overflow-tooltip="true" />
72
+          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible"
73
+            :show-overflow-tooltip="true" />
74
+          <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible"
75
+            :show-overflow-tooltip="true" />
76
+          <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible"
77
+            width="120" />
146
           <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
78
           <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
147
             <template slot-scope="scope">
79
             <template slot-scope="scope">
148
-              <el-switch
149
-                v-model="scope.row.status"
150
-                active-value="0"
151
-                inactive-value="1"
152
-                @change="handleStatusChange(scope.row)"
153
-              ></el-switch>
80
+              <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"
81
+                @change="handleStatusChange(scope.row)"></el-switch>
154
             </template>
82
             </template>
155
           </el-table-column>
83
           </el-table-column>
156
           <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
84
           <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
158
               <span>{{ parseTime(scope.row.createTime) }}</span>
86
               <span>{{ parseTime(scope.row.createTime) }}</span>
159
             </template>
87
             </template>
160
           </el-table-column>
88
           </el-table-column>
161
-          <el-table-column
162
-            label="操作"
163
-            align="center"
164
-            width="160"
165
-            class-name="small-padding fixed-width"
166
-          >
89
+          <el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
167
             <template slot-scope="scope" v-if="scope.row.userId !== 1">
90
             <template slot-scope="scope" v-if="scope.row.userId !== 1">
168
-              <el-button
169
-                size="mini"
170
-                type="text"
171
-                icon="el-icon-edit"
172
-                @click="handleUpdate(scope.row)"
173
-                v-hasPermi="['system:user:edit']"
174
-              >修改</el-button>
175
-              <el-button
176
-                size="mini"
177
-                type="text"
178
-                icon="el-icon-delete"
179
-                @click="handleDelete(scope.row)"
180
-                v-hasPermi="['system:user:remove']"
181
-              >删除</el-button>
182
-              <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
91
+              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
92
+                v-hasPermi="['system:user:edit']">修改</el-button>
93
+              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
94
+                v-hasPermi="['system:user:remove']">删除</el-button>
95
+              <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)"
96
+                v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
183
                 <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
97
                 <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
184
                 <el-dropdown-menu slot="dropdown">
98
                 <el-dropdown-menu slot="dropdown">
185
                   <el-dropdown-item command="handleResetPwd" icon="el-icon-key"
99
                   <el-dropdown-item command="handleResetPwd" icon="el-icon-key"
192
           </el-table-column>
106
           </el-table-column>
193
         </el-table>
107
         </el-table>
194
 
108
 
195
-        <pagination
196
-          v-show="total>0"
197
-          :total="total"
198
-          :page.sync="queryParams.pageNum"
199
-          :limit.sync="queryParams.pageSize"
200
-          @pagination="getList"
201
-        />
109
+        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
110
+          @pagination="getList" />
202
       </el-col>
111
       </el-col>
203
     </el-row>
112
     </el-row>
204
 
113
 
237
           </el-col>
146
           </el-col>
238
           <el-col :span="12">
147
           <el-col :span="12">
239
             <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
148
             <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
240
-              <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/>
149
+              <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password />
241
             </el-form-item>
150
             </el-form-item>
242
           </el-col>
151
           </el-col>
243
         </el-row>
152
         </el-row>
245
           <el-col :span="12">
154
           <el-col :span="12">
246
             <el-form-item label="用户性别">
155
             <el-form-item label="用户性别">
247
               <el-select v-model="form.sex" placeholder="请选择性别">
156
               <el-select v-model="form.sex" placeholder="请选择性别">
248
-                <el-option
249
-                  v-for="dict in dict.type.sys_user_sex"
250
-                  :key="dict.value"
251
-                  :label="dict.label"
252
-                  :value="dict.value"
253
-                ></el-option>
157
+                <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
158
+                  :value="dict.value"></el-option>
254
               </el-select>
159
               </el-select>
255
             </el-form-item>
160
             </el-form-item>
256
           </el-col>
161
           </el-col>
257
           <el-col :span="12">
162
           <el-col :span="12">
258
             <el-form-item label="状态">
163
             <el-form-item label="状态">
259
               <el-radio-group v-model="form.status">
164
               <el-radio-group v-model="form.status">
260
-                <el-radio
261
-                  v-for="dict in dict.type.sys_normal_disable"
262
-                  :key="dict.value"
263
-                  :label="dict.value"
264
-                >{{dict.label}}</el-radio>
165
+                <el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label
166
+                }}</el-radio>
265
               </el-radio-group>
167
               </el-radio-group>
266
             </el-form-item>
168
             </el-form-item>
267
           </el-col>
169
           </el-col>
270
           <el-col :span="12">
172
           <el-col :span="12">
271
             <el-form-item label="岗位">
173
             <el-form-item label="岗位">
272
               <el-select v-model="form.postIds" multiple placeholder="请选择岗位">
174
               <el-select v-model="form.postIds" multiple placeholder="请选择岗位">
273
-                <el-option
274
-                  v-for="item in postOptions"
275
-                  :key="item.postId"
276
-                  :label="item.postName"
277
-                  :value="item.postId"
278
-                  :disabled="item.status == 1"
279
-                ></el-option>
175
+                <el-option v-for="item in postOptions" :key="item.postId" :label="item.postName" :value="item.postId"
176
+                  :disabled="item.status == 1"></el-option>
280
               </el-select>
177
               </el-select>
281
             </el-form-item>
178
             </el-form-item>
282
           </el-col>
179
           </el-col>
283
           <el-col :span="12">
180
           <el-col :span="12">
284
             <el-form-item label="角色">
181
             <el-form-item label="角色">
285
               <el-select v-model="form.roleIds" multiple placeholder="请选择角色">
182
               <el-select v-model="form.roleIds" multiple placeholder="请选择角色">
286
-                <el-option
287
-                  v-for="item in roleOptions"
288
-                  :key="item.roleId"
289
-                  :label="item.roleName"
290
-                  :value="item.roleId"
291
-                  :disabled="item.status == 1"
292
-                ></el-option>
183
+                <el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName" :value="item.roleId"
184
+                  :disabled="item.status == 1"></el-option>
293
               </el-select>
185
               </el-select>
294
             </el-form-item>
186
             </el-form-item>
295
           </el-col>
187
           </el-col>
296
         </el-row>
188
         </el-row>
189
+        <el-row>
190
+          <el-col :span="24">
191
+            <el-form-item label="身份证号码" prop="idCard">
192
+              <el-input v-model="form.idCard" placeholder="请输入身份证号码"/>
193
+            </el-form-item>
194
+          </el-col>
195
+        </el-row>
297
         <el-row>
196
         <el-row>
298
           <el-col :span="24">
197
           <el-col :span="24">
299
             <el-form-item label="备注">
198
             <el-form-item label="备注">
310
 
209
 
311
     <!-- 用户导入对话框 -->
210
     <!-- 用户导入对话框 -->
312
     <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
211
     <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
313
-      <el-upload
314
-        ref="upload"
315
-        :limit="1"
316
-        accept=".xlsx, .xls"
317
-        :headers="upload.headers"
318
-        :action="upload.url + '?updateSupport=' + upload.updateSupport"
319
-        :disabled="upload.isUploading"
320
-        :on-progress="handleFileUploadProgress"
321
-        :on-success="handleFileSuccess"
322
-        :auto-upload="false"
323
-        drag
324
-      >
212
+      <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
213
+        :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
214
+        :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
325
         <i class="el-icon-upload"></i>
215
         <i class="el-icon-upload"></i>
326
         <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
216
         <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
327
         <div class="el-upload__tip text-center" slot="tip">
217
         <div class="el-upload__tip text-center" slot="tip">
329
             <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
219
             <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
330
           </div>
220
           </div>
331
           <span>仅允许导入xls、xlsx格式文件。</span>
221
           <span>仅允许导入xls、xlsx格式文件。</span>
332
-          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
222
+          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"
223
+            @click="importTemplate">下载模板</el-link>
333
         </div>
224
         </div>
334
       </el-upload>
225
       </el-upload>
335
       <div slot="footer" class="dialog-footer">
226
       <div slot="footer" class="dialog-footer">
436
           { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
327
           { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
437
         ],
328
         ],
438
         email: [
329
         email: [
330
+        {
331
+            required: true,
332
+            message: '邮箱不能为空',
333
+            trigger: 'blur',
334
+          },
439
           {
335
           {
440
             type: "email",
336
             type: "email",
441
             message: "请输入正确的邮箱地址",
337
             message: "请输入正确的邮箱地址",
444
         ],
340
         ],
445
         phonenumber: [
341
         phonenumber: [
446
           {
342
           {
447
-            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
448
-            message: "请输入正确的手机号码",
449
-            trigger: "blur"
450
-          }
343
+            required: true,
344
+            message: '联系电话不能为空',
345
+            trigger: 'blur',
346
+          },
347
+          {
348
+            pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
349
+            message: '请输入正确的手机号码',
350
+            trigger: 'blur',
351
+          },
352
+        ],
353
+        idCard: [
354
+          {
355
+            required: true,
356
+            message: '身份证号不能为空',
357
+            trigger: 'blur',
358
+          },
359
+          {
360
+            pattern:
361
+              /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
362
+            message: '请输入正确的身份证号码',
363
+            trigger: 'blur',
364
+          },
451
         ]
365
         ]
452
       }
366
       }
453
     };
367
     };
470
     getList() {
384
     getList() {
471
       this.loading = true;
385
       this.loading = true;
472
       listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
386
       listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
473
-          this.userList = response.rows;
474
-          this.total = response.total;
475
-          this.loading = false;
476
-        }
387
+        this.userList = response.rows;
388
+        this.total = response.total;
389
+        this.loading = false;
390
+      }
477
       );
391
       );
478
     },
392
     },
479
     /** 查询部门下拉树结构 */
393
     /** 查询部门下拉树结构 */
495
     // 用户状态修改
409
     // 用户状态修改
496
     handleStatusChange(row) {
410
     handleStatusChange(row) {
497
       let text = row.status === "0" ? "启用" : "停用";
411
       let text = row.status === "0" ? "启用" : "停用";
498
-      this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() {
412
+      this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function () {
499
         return changeUserStatus(row.userId, row.status);
413
         return changeUserStatus(row.userId, row.status);
500
       }).then(() => {
414
       }).then(() => {
501
         this.$modal.msgSuccess(text + "成功");
415
         this.$modal.msgSuccess(text + "成功");
502
-      }).catch(function() {
416
+      }).catch(function () {
503
         row.status = row.status === "0" ? "1" : "0";
417
         row.status = row.status === "0" ? "1" : "0";
504
       });
418
       });
505
     },
419
     },
566
         this.roleOptions = response.roles;
480
         this.roleOptions = response.roles;
567
         this.open = true;
481
         this.open = true;
568
         this.title = "添加用户";
482
         this.title = "添加用户";
569
-        this.form.password = this.initPassword;
483
+        // this.form.password = this.initPassword;
570
       });
484
       });
571
     },
485
     },
572
     /** 修改按钮操作 */
486
     /** 修改按钮操作 */
593
         inputPattern: /^.{5,20}$/,
507
         inputPattern: /^.{5,20}$/,
594
         inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
508
         inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
595
       }).then(({ value }) => {
509
       }).then(({ value }) => {
596
-          resetUserPwd(row.userId, value).then(response => {
597
-            this.$modal.msgSuccess("修改成功,新密码是:" + value);
598
-          });
599
-        }).catch(() => {});
510
+        resetUserPwd(row.userId, value).then(response => {
511
+          this.$modal.msgSuccess("修改成功,新密码是:" + value);
512
+        });
513
+      }).catch(() => { });
600
     },
514
     },
601
     /** 分配角色操作 */
515
     /** 分配角色操作 */
602
-    handleAuthRole: function(row) {
516
+    handleAuthRole: function (row) {
603
       const userId = row.userId;
517
       const userId = row.userId;
604
       this.$router.push("/system/user-auth/role/" + userId);
518
       this.$router.push("/system/user-auth/role/" + userId);
605
     },
519
     },
606
     /** 提交按钮 */
520
     /** 提交按钮 */
607
-    submitForm: function() {
521
+    submitForm: function () {
608
       this.$refs["form"].validate(valid => {
522
       this.$refs["form"].validate(valid => {
609
         if (valid) {
523
         if (valid) {
610
           if (this.form.userId != undefined) {
524
           if (this.form.userId != undefined) {
626
     /** 删除按钮操作 */
540
     /** 删除按钮操作 */
627
     handleDelete(row) {
541
     handleDelete(row) {
628
       const userIds = row.userId || this.ids;
542
       const userIds = row.userId || this.ids;
629
-      this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
543
+      this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function () {
630
         return delUser(userIds);
544
         return delUser(userIds);
631
       }).then(() => {
545
       }).then(() => {
632
         this.getList();
546
         this.getList();
633
         this.$modal.msgSuccess("删除成功");
547
         this.$modal.msgSuccess("删除成功");
634
-      }).catch(() => {});
548
+      }).catch(() => { });
635
     },
549
     },
636
     /** 导出按钮操作 */
550
     /** 导出按钮操作 */
637
     handleExport() {
551
     handleExport() {