jinhui.wang

用户管理增加,接口增加,删除无用代码

No preview for this file type
...@@ -12,7 +12,7 @@ export function login(loginName, password, rememberMe, equipmentType, userAgent, ...@@ -12,7 +12,7 @@ export function login(loginName, password, rememberMe, equipmentType, userAgent,
12 "name": "肖玉兰", 12 "name": "肖玉兰",
13 "phone": 18221643976, 13 "phone": 18221643976,
14 "port": "TSN", 14 "port": "TSN",
15 - "purpleId": 6, 15 + "purpleId": '肖玉兰',
16 "role": 170 16 "role": 170
17 } 17 }
18 return request({ 18 return request({
......
...@@ -58,4 +58,69 @@ export function updateRoleMenuData(data) { ...@@ -58,4 +58,69 @@ export function updateRoleMenuData(data) {
58 method: 'post', 58 method: 'post',
59 data: data 59 data: data
60 }) 60 })
61 +}
62 +
63 +// 用户信息查询
64 +/**
65 + * @param employeeNumber 员工编号
66 + * @param userName 用户名称
67 + * @param port 口岸
68 + * @param roleIds list
69 + * @param pageNum *
70 + * @param pageSize *
71 + */
72 +export function getUserData(data) {
73 + return request({
74 + url: '/bus-customer/user/searchUser',
75 + method: 'post',
76 + data: data
77 + })
78 +}
79 +
80 +// 用户更新
81 +/**
82 + * @param employeeNumber 员工编号
83 + * @param userName 用户名称
84 + * @param port 口岸
85 + * @param email 邮件
86 + * @param id *
87 + * @param remark 备注
88 + * @param phone 口岸
89 + */
90 +export function updateUserData(data) {
91 + return request({
92 + url: '/bus-customer/user/updateUser',
93 + method: 'put',
94 + data: data
95 + })
96 +}
97 +
98 +// 用户角色更新
99 +/**
100 + * @param employeeNumber 员工编号
101 + * @param userName 用户名称
102 + * @param port 口岸
103 + * @param email 邮件
104 + * @param id *
105 + * @param remark 备注
106 + * @param phone 口岸
107 + */
108 +export function updateUserRoleChange(data) {
109 + return request({
110 + url: '/bus-customer/user/updateUser',
111 + method: 'put',
112 + data: data
113 + })
114 +}
115 +
116 +// 获取口岸字典
117 +/**
118 + * @param
119 + */
120 +export function getPortList(data) {
121 + return request({
122 + url: '/bus-customer/user/getPortCodeForUserList',
123 + method: 'get',
124 + params: data
125 + })
61 } 126 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -60,31 +60,31 @@ export const constantRoutes = [ ...@@ -60,31 +60,31 @@ export const constantRoutes = [
60 hidden: true, 60 hidden: true,
61 meta: { noCache: true, breadcrumb: false } 61 meta: { noCache: true, breadcrumb: false }
62 }, 62 },
63 - { 63 + // {
64 - path: '', 64 + // path: '',
65 - component: Layout, 65 + // component: Layout,
66 - hidden: true, 66 + // hidden: true,
67 - redirect: 'index', 67 + // redirect: 'index',
68 - children: [ 68 + // children: [
69 - { 69 + // {
70 - path: 'index', 70 + // path: 'index',
71 - component: (resolve) => require(['@/views/index'], resolve), 71 + // component: (resolve) => require(['@/views/index'], resolve),
72 - name: '首页', 72 + // name: '首页',
73 - meta: { title: '首页', icon: 'dashboard' } 73 + // meta: { title: '首页', icon: 'dashboard' }
74 - }, 74 + // },
75 - ] 75 + // ]
76 - }, 76 + // },
77 { 77 {
78 path: '/', 78 path: '/',
79 component: Layout, 79 component: Layout,
80 hidden: false, 80 hidden: false,
81 - redirect: 'index',
82 meta: { title: '申报数据管理', icon: 'upload' }, 81 meta: { title: '申报数据管理', icon: 'upload' },
83 children: [ 82 children: [
84 { 83 {
85 path: '/reportingData', 84 path: '/reportingData',
86 component: (resolve) => require(['@/views/reportingData/index'], resolve), 85 component: (resolve) => require(['@/views/reportingData/index'], resolve),
87 hidden: false, 86 hidden: false,
87 + name: 'ReportingData',
88 meta: { title: '申报数据管理', icon: 'upload' } 88 meta: { title: '申报数据管理', icon: 'upload' }
89 } 89 }
90 ] 90 ]
...@@ -93,7 +93,6 @@ export const constantRoutes = [ ...@@ -93,7 +93,6 @@ export const constantRoutes = [
93 path: '/export', 93 path: '/export',
94 component: Layout, 94 component: Layout,
95 hidden: false, 95 hidden: false,
96 - redirect: 'index',
97 meta: { title: '查询管理', icon: 'fedexExportIcon' }, 96 meta: { title: '查询管理', icon: 'fedexExportIcon' },
98 children: [ 97 children: [
99 { 98 {
...@@ -106,7 +105,7 @@ export const constantRoutes = [ ...@@ -106,7 +105,7 @@ export const constantRoutes = [
106 path: '/exportBillDetail', 105 path: '/exportBillDetail',
107 component: (resolve) => require(['@/views/exportBillDetail/index'], resolve), 106 component: (resolve) => require(['@/views/exportBillDetail/index'], resolve),
108 hidden: true, 107 hidden: true,
109 - name:'ExportBillDetail', 108 + name: 'ExportBillDetail',
110 meta: { title: '出口订单详情', icon: '' }, 109 meta: { title: '出口订单详情', icon: '' },
111 }, 110 },
112 { 111 {
...@@ -173,7 +172,6 @@ export const constantRoutes = [ ...@@ -173,7 +172,6 @@ export const constantRoutes = [
173 path: '/summary', 172 path: '/summary',
174 component: Layout, 173 component: Layout,
175 hidden: false, 174 hidden: false,
176 - redirect: 'index',
177 meta: { title: '汇总申报', icon: 'fedexSummary' }, 175 meta: { title: '汇总申报', icon: 'fedexSummary' },
178 children: [ 176 children: [
179 { 177 {
...@@ -194,37 +192,41 @@ export const constantRoutes = [ ...@@ -194,37 +192,41 @@ export const constantRoutes = [
194 path: '/system', 192 path: '/system',
195 component: Layout, 193 component: Layout,
196 hidden: false, 194 hidden: false,
197 - redirect: 'index',
198 meta: { title: '系统管理', icon: 'fedexQueue' }, 195 meta: { title: '系统管理', icon: 'fedexQueue' },
199 children: [ 196 children: [
200 { 197 {
201 path: '/portConfig', 198 path: '/portConfig',
202 component: (resolve) => require(['@/views/portConfig/index'], resolve), 199 component: (resolve) => require(['@/views/portConfig/index'], resolve),
203 hidden: false, 200 hidden: false,
201 + name: 'PortConfig',
204 meta: { title: '口岸信息管理', icon: '' } 202 meta: { title: '口岸信息管理', icon: '' }
205 }, 203 },
206 { 204 {
207 - path: '/userConfig', 205 + path: '/customerConfig',
208 - component: (resolve) => require(['@/views/userConfig/index'], resolve), 206 + component: (resolve) => require(['@/views/customerConfig/index'], resolve),
209 hidden: false, 207 hidden: false,
208 + name: 'CustomerConfig',
210 meta: { title: '客户管理', icon: '' } 209 meta: { title: '客户管理', icon: '' }
211 }, 210 },
212 { 211 {
213 - path: '/passwordIpConfig', 212 + path: '/cipherMachineConfig',
214 - component: (resolve) => require(['@/views/passwordIpConfig/index'], resolve), 213 + component: (resolve) => require(['@/views/cipherMachineConfig/index'], resolve),
215 hidden: false, 214 hidden: false,
215 + name: 'CipherMachineConfig',
216 meta: { title: '密码机管理', icon: '' } 216 meta: { title: '密码机管理', icon: '' }
217 }, 217 },
218 { 218 {
219 path: '/userRoleConfig', 219 path: '/userRoleConfig',
220 component: (resolve) => require(['@/views/userRoleConfig/index'], resolve), 220 component: (resolve) => require(['@/views/userRoleConfig/index'], resolve),
221 hidden: false, 221 hidden: false,
222 + name: 'UserRoleConfig',
222 meta: { title: '用户管理权限', icon: '' } 223 meta: { title: '用户管理权限', icon: '' }
223 }, 224 },
224 { 225 {
225 path: '/roleConfig', 226 path: '/roleConfig',
226 component: (resolve) => require(['@/views/roleConfig/index'], resolve), 227 component: (resolve) => require(['@/views/roleConfig/index'], resolve),
227 hidden: false, 228 hidden: false,
229 + name: 'RoleConfig',
228 meta: { title: '角色管理权限', icon: '' } 230 meta: { title: '角色管理权限', icon: '' }
229 }, 231 },
230 ] 232 ]
......
...@@ -43,7 +43,7 @@ const permission = { ...@@ -43,7 +43,7 @@ const permission = {
43 const rdata = constantRoutes 43 const rdata = constantRoutes
44 const sidebarRoutes = filterAsyncRouter(sdata) 44 const sidebarRoutes = filterAsyncRouter(sdata)
45 const rewriteRoutes = filterAsyncRouter(rdata, false, true) 45 const rewriteRoutes = filterAsyncRouter(rdata, false, true)
46 - rewriteRoutes.push({ path: '*', redirect: '/index', hidden: true }) 46 + rewriteRoutes.push({ path: '*', redirect: '/reportingData', hidden: true })
47 commit('SET_ROUTES', rewriteRoutes) 47 commit('SET_ROUTES', rewriteRoutes)
48 commit('SET_SIDEBAR_ROUTERS', sidebarRoutes) 48 commit('SET_SIDEBAR_ROUTERS', sidebarRoutes)
49 commit('SET_DEFAULT_ROUTES', sidebarRoutes) 49 commit('SET_DEFAULT_ROUTES', sidebarRoutes)
......
1 +<template>
2 + <div class="entrySreach">
3 + <el-form
4 + class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
5 + ref="sreachForm"
6 + :model="sreachFormData"
7 + label-position="top"
8 + size="small"
9 + >
10 + <el-row class="row-border">
11 + <!-- 姓名 -->
12 + <el-col :span="5">
13 + <Formitem label="姓名" prop="userName">
14 + <el-input
15 + type="text"
16 + class="inputShadow"
17 + id="inputInner--userName"
18 + resize="none"
19 + v-model="sreachFormData.userName"
20 + clearable
21 + placeholder=""
22 + ></el-input>
23 + </Formitem>
24 + </el-col>
25 + <!-- 员工号 -->
26 + <el-col :span="5">
27 + <Formitem label="员工号" prop="employeeNumber">
28 + <el-input
29 + type="text"
30 + class="inputShadow"
31 + id="inputInner--employeeNumber"
32 + resize="none"
33 + v-model="sreachFormData.employeeNumber"
34 + clearable
35 + placeholder=""
36 + ></el-input>
37 + </Formitem>
38 + </el-col>
39 + <!-- 口岸 -->
40 + <el-col :span="5">
41 + <Formitem label="口岸" prop="port">
42 + <el-select
43 + type="text"
44 + id="inputInner--port"
45 + v-model="sreachFormData.port"
46 + clearable
47 + placeholder=""
48 + >
49 + <el-option
50 + v-for="(item, index) in dictData.port"
51 + :key="index"
52 + :label="item.name"
53 + :value="item.code"
54 + ></el-option>
55 + </el-select>
56 + </Formitem>
57 + </el-col>
58 + <!-- 角色 -->
59 + <el-col :span="5">
60 + <Formitem label="角色" prop="roleIds">
61 + <el-select
62 + type="text"
63 + id="inputInner--roleIds"
64 + v-model="sreachFormData.roleIds"
65 + clearable
66 + placeholder=""
67 + >
68 + <el-option
69 + v-for="(item, index) in dict.roleList"
70 + :key="index"
71 + :label="item.roleName"
72 + :value="item.roleId"
73 + ></el-option>
74 + </el-select>
75 + </Formitem>
76 + </el-col>
77 + <el-col :span="2">
78 + <el-form-item class="textCenter">
79 + <el-button
80 + class="entrySreachButton"
81 + type="text"
82 + icon="el-icon-search"
83 + :loading="loadings.searchLoading"
84 + @click="search(0)"
85 + ></el-button>
86 + </el-form-item>
87 + </el-col>
88 + </el-row>
89 + </el-form>
90 + <div class="optionButton">
91 + <!-- <el-button
92 + class="entrySaveButton"
93 + icon="el-icon-plus"
94 + size="small"
95 + @click="addRole"
96 + >
97 + 新增角色
98 + </el-button> -->
99 + </div>
100 + <Table
101 + class="fedexDetialTable fedexSreachTable"
102 + ref="entryTable"
103 + :data="tableData"
104 + :headerData="headerData"
105 + :maxHeight="tableMaxheight"
106 + :border="true"
107 + :pagination="true"
108 + :order="false"
109 + :loading="loadings.searchLoading"
110 + :page="page.pageIndex"
111 + :pageSizes="[20, 30, 50, 100]"
112 + :totalCount="page.total"
113 + @sizeChange="sizeChange"
114 + @currentChange="currentChange"
115 + :selection="false"
116 + :selectFixed="false"
117 + :rowSelectDataType="false"
118 + >
119 + <template slot="optionColumn">
120 + <el-table-column align="left" label="操作">
121 + <template slot-scope="scope">
122 + <el-button type="text" @click="update(scope.row)">
123 + 角色修改
124 + </el-button>
125 + <el-button type="text" @click="muenChange(scope.row)">
126 + 权限绑定
127 + </el-button>
128 + </template>
129 + </el-table-column>
130 + </template>
131 + </Table>
132 + </div>
133 +</template>
134 +
135 +<script>
136 +import { getRoleList } from "@/api/system/user.js";
137 +export default {
138 + name: "RoleConfig",
139 + data() {
140 + return {
141 + sreachFormData: {
142 + userName: "",
143 + employeeNumber: "",
144 + roleIds: "",
145 + port: "",
146 + },
147 + page: {
148 + pageIndex: 1,
149 + pageSize: 20,
150 + total: 0,
151 + },
152 + activeData: null,
153 + tableData: [],
154 + headerData: [
155 + {
156 + name: "角色名",
157 + value: "roleName",
158 + width: "",
159 + align: "left",
160 + },
161 + ],
162 + dict: {
163 + roleList: [],
164 + },
165 + loadings: {
166 + searchLoading: false,
167 + },
168 + tableMaxheight: null,
169 + outerVisible: false,
170 + dialogTitle: "",
171 + editType: "",
172 + };
173 + },
174 + created() {
175 + this.searchRole();
176 + this.search(0);
177 + },
178 + mounted() {
179 + this.tableMaxheight = window.innerHeight - 300;
180 + },
181 + methods: {
182 + search(val) {},
183 + //查询
184 + searchRole(val) {
185 + getRoleList({ roleName: "", pageNum: 1, pageSize: 999999 })
186 + .then((res) => {
187 + if (res.code === "200") {
188 + this.dict.roleList = res.data.value;
189 + }
190 + })
191 + .catch((err) => {
192 + console.log(err);
193 + });
194 + },
195 + update(val) {
196 + this.dialogTitle = "修改角色";
197 + this.editType = "update";
198 + this.outerVisible = true;
199 + this.activeData = val;
200 + },
201 + muenChange(val) {
202 + this.dialogTitle = "绑定权限";
203 + this.editType = "menuChange";
204 + this.outerVisible = true;
205 + this.activeData = val;
206 + },
207 + dialogClose() {
208 + this.outerVisible = false;
209 + this.activeData = null;
210 + this.search(1);
211 + },
212 + //分页
213 + currentChange(val) {
214 + this.page.pageNum = val.page;
215 + this.search(1);
216 + },
217 + sizeChange(val) {
218 + this.page.pageSize = val;
219 + this.search(1);
220 + },
221 + input() {
222 + this.$forceUpdate();
223 + },
224 + },
225 +};
226 +</script>
227 +
228 +<style scoped lang="scss">
229 +@import "@/assets/styles/variables.scss";
230 +.entrySreach {
231 + height: 100%;
232 + background-color: $menuLightBg;
233 +
234 + .entrySreachButton {
235 + display: inline-block;
236 + font-size: 20px;
237 + color: $fedexButton !important;
238 + }
239 +
240 + .optionButton {
241 + padding: 10px;
242 + text-align: left;
243 +
244 + .el-button {
245 + color: $fedexButton;
246 + border-color: $fedexButton !important;
247 +
248 + svg {
249 + display: inline-block;
250 + margin-right: 5px;
251 + fill: $fedexButton;
252 + }
253 + }
254 +
255 + .entrySaveButton:hover,
256 + .entrySaveButton:focus {
257 + color: $menuLightBg !important;
258 + background-color: $fedexButton !important;
259 + }
260 + }
261 +}
262 +
263 +.texttareaTip {
264 + position: absolute;
265 + top: 52%;
266 + right: 20px;
267 + transform: translate(0, -50%);
268 + z-index: 10;
269 +}
270 +</style>
...@@ -294,7 +294,7 @@ ...@@ -294,7 +294,7 @@
294 import { searchDeclareData, declareDataUpload } from "@/api/declareData-api.js"; 294 import { searchDeclareData, declareDataUpload } from "@/api/declareData-api.js";
295 import DialogVue from "./dialog.vue"; 295 import DialogVue from "./dialog.vue";
296 export default { 296 export default {
297 - name: "", 297 + name: "ReportingData",
298 components: { 298 components: {
299 DialogVue, 299 DialogVue,
300 }, 300 },
......
...@@ -276,7 +276,9 @@ export default { ...@@ -276,7 +276,9 @@ export default {
276 }, 276 },
277 treeCheckChange(data, checked) { 277 treeCheckChange(data, checked) {
278 console.log(data, checked); 278 console.log(data, checked);
279 - this.treeCheckData = checked.checkedKeys; 279 + let arr = [];
280 + arr = checked.checkedKeys.concat(checked.halfCheckedKeys);
281 + this.treeCheckData = arr;
280 }, 282 },
281 close() { 283 close() {
282 this.formData = { 284 this.formData = {
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
55 :pagination="true" 55 :pagination="true"
56 :order="false" 56 :order="false"
57 :loading="loadings.searchLoading" 57 :loading="loadings.searchLoading"
58 - :page="page.pageIndex" 58 + :page="page.pageNum"
59 :pageSizes="[20, 30, 50, 100]" 59 :pageSizes="[20, 30, 50, 100]"
60 :totalCount="page.total" 60 :totalCount="page.total"
61 @sizeChange="sizeChange" 61 @sizeChange="sizeChange"
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
88 </template> 88 </template>
89 89
90 <script> 90 <script>
91 -import { getRoleList, addRoleDataf } from "@/api/system/user.js"; 91 +import { getRoleList } from "@/api/system/user.js";
92 import DialogVue from "./dialog.vue"; 92 import DialogVue from "./dialog.vue";
93 export default { 93 export default {
94 name: "RoleConfig", 94 name: "RoleConfig",
...@@ -101,7 +101,7 @@ export default { ...@@ -101,7 +101,7 @@ export default {
101 roleName: "", 101 roleName: "",
102 }, 102 },
103 page: { 103 page: {
104 - pageIndex: 1, 104 + pageNum: 1,
105 pageSize: 20, 105 pageSize: 20,
106 total: 0, 106 total: 0,
107 }, 107 },
...@@ -135,10 +135,10 @@ export default { ...@@ -135,10 +135,10 @@ export default {
135 search(val) { 135 search(val) {
136 this.loadings.searchLoading = true; 136 this.loadings.searchLoading = true;
137 if (val == 0) { 137 if (val == 0) {
138 - this.page.pageIndex = 1; 138 + this.page.pageNum = 1;
139 } 139 }
140 let obj = this.sreachFormData; 140 let obj = this.sreachFormData;
141 - obj.pageIndex = this.page.pageIndex; 141 + obj.pageNum = this.page.pageNum;
142 obj.pageSize = this.page.pageSize; 142 obj.pageSize = this.page.pageSize;
143 getRoleList(obj) 143 getRoleList(obj)
144 .then((res) => { 144 .then((res) => {
......
1 +<template>
2 + <el-dialog
3 + class="entryDialog classCUploadDialog"
4 + :title="title"
5 + :visible.sync="outerVisible"
6 + :show-close="false"
7 + width="40%"
8 + :close-on-click-modal="false"
9 + v-loading="loadings.dialogLoading"
10 + @close="close"
11 + >
12 + <div class="modelItem">
13 + <el-form
14 + class="fedexFormStyle"
15 + ref="formData"
16 + :model="formData"
17 + :rules="type == 'roleChange' ? {} : rules"
18 + label-position="top"
19 + :disabled="type == 'roleChange'"
20 + size="small"
21 + >
22 + <el-row :gutter="5">
23 + <!-- 口岸 -->
24 + <el-col :span="8">
25 + <Formitem label="口岸" prop="port" type="edit">
26 + <el-select
27 + type="text"
28 + id="inputInner-edit-port"
29 + v-model="formData.port"
30 + clearable
31 + placeholder=""
32 + >
33 + <el-option
34 + v-for="(item, index) in dict.port"
35 + :key="index"
36 + :label="item"
37 + :value="item"
38 + ></el-option>
39 + </el-select>
40 + </Formitem>
41 + </el-col>
42 + <!-- 姓名 -->
43 + <el-col :span="8">
44 + <Formitem label="姓名" prop="username" type="edit">
45 + <el-input
46 + type="text"
47 + class="inputShadow"
48 + id="inputInner-edit-username"
49 + resize="none"
50 + v-model="formData.username"
51 + clearable
52 + disabled
53 + placeholder=""
54 + ></el-input>
55 + </Formitem>
56 + </el-col>
57 + <!-- 员工号 -->
58 + <el-col :span="8">
59 + <Formitem label="员工号" prop="employeeNumber" type="edit">
60 + <el-input
61 + type="text"
62 + class="inputShadow"
63 + id="inputInner-edit-employeeNumber"
64 + resize="none"
65 + v-model="formData.employeeNumber"
66 + clearable
67 + disabled
68 + placeholder=""
69 + ></el-input>
70 + </Formitem>
71 + </el-col>
72 + </el-row>
73 + <el-row :gutter="5" v-show="type != 'roleChange'">
74 + <!-- 联系电话 -->
75 + <el-col :span="8">
76 + <Formitem label="联系电话" prop="phone" type="edit">
77 + <el-input
78 + type="text"
79 + class="inputShadow"
80 + id="inputInner-edit-phone"
81 + resize="none"
82 + v-model="formData.phone"
83 + clearable
84 + placeholder=""
85 + ></el-input>
86 + </Formitem>
87 + </el-col>
88 + <!-- 传真 -->
89 + <el-col :span="8">
90 + <Formitem label="传真" prop="fex" type="edit">
91 + <el-input
92 + type="text"
93 + class="inputShadow"
94 + id="inputInner-edit-fex"
95 + resize="none"
96 + v-model="formData.fex"
97 + clearable
98 + placeholder=""
99 + ></el-input>
100 + </Formitem>
101 + </el-col>
102 + <!-- 电子邮箱 -->
103 + <el-col :span="8">
104 + <Formitem label="电子邮箱" prop="email" type="edit">
105 + <el-input
106 + type="text"
107 + class="inputShadow"
108 + id="inputInner-edit-email"
109 + resize="none"
110 + v-model="formData.email"
111 + clearable
112 + placeholder=""
113 + ></el-input>
114 + </Formitem>
115 + </el-col>
116 + </el-row>
117 + <!-- 备注 -->
118 + <Formitem
119 + v-show="type != 'roleChange'"
120 + label="备注"
121 + prop="remark"
122 + type="edit"
123 + >
124 + <el-input
125 + type="text"
126 + class="inputShadow"
127 + id="inputInner-edit-remark"
128 + resize="none"
129 + v-model="formData.remark"
130 + clearable
131 + placeholder=""
132 + ></el-input>
133 + </Formitem>
134 + </el-form>
135 + <div class="mt20" v-show="type == 'roleChange'">
136 + <div class="transferDom">
137 + <el-transfer
138 + class="customTransfer"
139 + ref="customTransfer"
140 + filterable
141 + target-order="push"
142 + :titles="titles"
143 + v-model="value"
144 + :data="customData"
145 + :props="{
146 + key: 'poolCode',
147 + label: 'displayName',
148 + disabled: 'disabled',
149 + }"
150 + @change="valueChange"
151 + @right-check-change="rightCheckChange"
152 + >
153 + <span slot-scope="{ option }">{{ option.displayName }} </span>
154 + </el-transfer>
155 + <div class="transfer-rightOption">
156 + <el-button
157 + type="text"
158 + class="el-icon-arrow-up"
159 + :disabled="
160 + rightSelect.length != 1 ||
161 + value.length == 1 ||
162 + rightSelectIdx == 0
163 + "
164 + @click="up"
165 + ></el-button>
166 + <el-button
167 + type="text"
168 + class="el-icon-arrow-down"
169 + :disabled="
170 + rightSelect.length != 1 ||
171 + value.length == 1 ||
172 + rightSelectIdx == value.length - 1
173 + "
174 + @click="down"
175 + ></el-button>
176 + </div>
177 + </div>
178 + </div>
179 + </div>
180 + <div class="dialogOption entrySave">
181 + <el-button
182 + class="entrySaveButton"
183 + :disabled="loadings.submitLoading"
184 + @click="submit"
185 + >确 定</el-button
186 + >
187 + <el-button
188 + class="entrySaveButton"
189 + :disabled="loadings.uploadLoading"
190 + @click="close"
191 + >关 闭</el-button
192 + >
193 + </div>
194 + </el-dialog>
195 +</template>
196 +
197 +<script>
198 +import { updateUserData, updateUserRoleChange } from "@/api/system/user.js";
199 +export default {
200 + props: {
201 + outerVisible: {
202 + type: Boolean,
203 + default: false,
204 + },
205 + title: {
206 + type: String,
207 + default: "信息编辑",
208 + },
209 + type: {
210 + type: String,
211 + default: "",
212 + },
213 + active: {
214 + type: Object,
215 + default: null,
216 + },
217 + dict: {
218 + type: Object,
219 + default() {
220 + return {
221 + roleList: [],
222 + port: [],
223 + };
224 + },
225 + },
226 + },
227 + watch: {
228 + outerVisible(val) {
229 + if (val) {
230 + }
231 + },
232 + },
233 + data() {
234 + return {
235 + formData: {
236 + id: null,
237 + username: "",
238 + remark: "",
239 + port: "",
240 + fex: "",
241 + phone: "",
242 + employeeNumber: "",
243 + email: "",
244 + },
245 + customData: [],
246 + rules: {
247 + port: [
248 + {
249 + required: true,
250 + trigger: "change",
251 + message: "口岸不能为空!",
252 + },
253 + ],
254 + username: [
255 + {
256 + required: true,
257 + trigger: "blur",
258 + message: "姓名不能为空!",
259 + },
260 + ],
261 + employeeNumber: [
262 + {
263 + required: true,
264 + trigger: "blur",
265 + message: "员工号不能为空!",
266 + },
267 + ],
268 + },
269 + titles: ["未分配角色", "已分配角色"],
270 + rightSelect: [],
271 + value: [],
272 + rightSelectIdx: 0,
273 + loadings: {
274 + dialogLoading: false,
275 + uploadLoading: false,
276 + submitLoading: false,
277 + },
278 + loadingText: "",
279 + };
280 + },
281 + watch: {
282 + outerVisible(val) {
283 + if (val) {
284 + this.loadings.dialogLoading = false;
285 + if (this.type == "update") {
286 + this.formData = this.active;
287 + } else if (this.type == "roleChange") {
288 + this.portDataInfo();
289 + this.formData = this.active;
290 + this.searchTreeData();
291 + }
292 + }
293 + },
294 + },
295 + methods: {
296 + //查询角色
297 + searchTreeData() {
298 + // this.loadings.dialogLoading = true;
299 + },
300 + //数据保存
301 + submit() {
302 + this.loadings.dialogLoading = true;
303 + let obj = {};
304 + if (this.type == "update") {
305 + this.$refs.formData.validate((valid) => {
306 + if (valid) {
307 + obj = this.formData;
308 + this.updateapi(obj);
309 + } else {
310 + this.loadings.dialogLoading = false;
311 + }
312 + });
313 + } else if (this.type == "roleChange") {
314 + obj.employeeNumber = this.formData.employeeNumber;
315 + obj.port = this.formData.port;
316 + obj.userId = this.formData.id;
317 + obj.username = this.formData.username;
318 + obj.roleIds = this.value;
319 + this.menuChangeapi(obj);
320 + }
321 + },
322 + //修改
323 + updateapi(val) {
324 + updateUserData(val)
325 + .then((res) => {
326 + if (res.code === "200") {
327 + this.msgSuccess(res.message);
328 + this.close();
329 + } else {
330 + this.alertWarningMsg(res.message);
331 + this.loadings.dialogLoading = false;
332 + }
333 + })
334 + .catch((err) => {
335 + console.log(err);
336 + this.loadings.dialogLoading = false;
337 + });
338 + },
339 + //用户权限修改
340 + menuChangeapi(val) {
341 + updateUserRoleChange(val)
342 + .then((res) => {
343 + if (res.code === "200") {
344 + this.msgSuccess(res.message);
345 + this.close();
346 + } else {
347 + this.alertWarningMsg(res.message);
348 + this.loadings.dialogLoading = false;
349 + }
350 + })
351 + .catch((err) => {
352 + console.log(err);
353 + this.loadings.dialogLoading = false;
354 + });
355 + },
356 + //右侧数据改变
357 + valueChange(val) {
358 + this.rightSelect = [];
359 + this.rightSelectIdx = 0;
360 + },
361 + //右侧选中数据改变
362 + rightCheckChange(val) {
363 + this.rightSelect = val;
364 + this.value.find((value, index) => {
365 + if (value == val) {
366 + this.rightSelectIdx = index;
367 + }
368 + });
369 + },
370 + //上移
371 + up() {
372 + let arr = JSON.parse(JSON.stringify(this.value));
373 + let selectid = JSON.parse(
374 + JSON.stringify(this.value[this.rightSelectIdx])
375 + );
376 + let shiftSelect = JSON.parse(
377 + JSON.stringify(this.value[this.rightSelectIdx - 1])
378 + );
379 + arr[this.rightSelectIdx] = shiftSelect;
380 + arr[this.rightSelectIdx - 1] = selectid;
381 + this.$nextTick(() => {
382 + this.value = arr;
383 + // this.rightSelect = [];
384 + this.rightSelectIdx = this.rightSelectIdx - 1;
385 + // this.$refs.customTransfer.$children[3].checked = [];
386 + });
387 + },
388 + //下移
389 + down() {
390 + let arr = JSON.parse(JSON.stringify(this.value));
391 + let selectid = JSON.parse(
392 + JSON.stringify(this.value[this.rightSelectIdx])
393 + );
394 + let shiftSelect = JSON.parse(
395 + JSON.stringify(this.value[this.rightSelectIdx + 1])
396 + );
397 + arr[this.rightSelectIdx] = shiftSelect;
398 + arr[this.rightSelectIdx + 1] = selectid;
399 + this.$nextTick(() => {
400 + this.value = arr;
401 + // this.rightSelect = [];
402 + this.rightSelectIdx = this.rightSelectIdx + 1;
403 + // this.$refs.customTransfer.$children[3].checked = [];
404 + });
405 + },
406 + //穿梭框数据初始化
407 + portDataInfo() {
408 + let arr = [];
409 + let select = [];
410 + if (this.active.roleName != null && this.active.roleName != "") {
411 + select = this.active.roleName.split(";");
412 + }
413 + let value = [];
414 + this.dict.roleList.forEach((item, idx) => {
415 + let obj = {
416 + index: idx,
417 + poolCode: item.roleId,
418 + displayName: item.roleName,
419 + disabled: false,
420 + };
421 + arr.push(obj);
422 + if (select.includes(item.roleName)) {
423 + value.push(item.roleId);
424 + }
425 + });
426 + this.customData = arr;
427 + this.value = value;
428 + },
429 + close() {
430 + this.formData = {
431 + id: null,
432 + username: "",
433 + remark: "",
434 + port: "",
435 + phone: "",
436 + employeeNumber: "",
437 + email: "",
438 + };
439 + this.$emit("close");
440 + },
441 + },
442 +};
443 +</script>
444 +
445 +<style lang="scss" scoped>
446 +@import "@/assets/styles/variables.scss";
447 +</style>
1 +<template>
2 + <div class="entrySreach">
3 + <el-form
4 + class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
5 + ref="sreachForm"
6 + :model="sreachFormData"
7 + label-position="top"
8 + size="small"
9 + >
10 + <el-row class="row-border">
11 + <!-- 姓名 -->
12 + <el-col :span="5">
13 + <Formitem label="姓名" prop="userName">
14 + <el-input
15 + type="text"
16 + class="inputShadow"
17 + id="inputInner--userName"
18 + resize="none"
19 + v-model="sreachFormData.userName"
20 + clearable
21 + placeholder=""
22 + ></el-input>
23 + </Formitem>
24 + </el-col>
25 + <!-- 员工号 -->
26 + <el-col :span="5">
27 + <Formitem label="员工号" prop="employeeNumber">
28 + <el-input
29 + type="text"
30 + class="inputShadow"
31 + id="inputInner--employeeNumber"
32 + resize="none"
33 + v-model="sreachFormData.employeeNumber"
34 + clearable
35 + placeholder=""
36 + ></el-input>
37 + </Formitem>
38 + </el-col>
39 + <!-- 口岸 -->
40 + <el-col :span="5">
41 + <Formitem label="口岸" prop="port">
42 + <el-select
43 + type="text"
44 + id="inputInner--port"
45 + v-model="sreachFormData.port"
46 + clearable
47 + placeholder=""
48 + >
49 + <el-option
50 + v-for="(item, index) in dict.port"
51 + :key="index"
52 + :label="item"
53 + :value="item"
54 + ></el-option>
55 + </el-select>
56 + </Formitem>
57 + </el-col>
58 + <!-- 角色 -->
59 + <el-col :span="5">
60 + <Formitem label="角色" prop="roleIds" :activeType="activeType">
61 + <el-select
62 + id="inputInner--roleIds"
63 + class="multipleElSelect"
64 + v-model="sreachFormData.roleIds"
65 + filterable
66 + multiple
67 + clearable
68 + placeholder=""
69 + @visible-change="visibleChange"
70 + @remove-tag="removeTag"
71 + @clear="clear"
72 + >
73 + <el-option
74 + v-for="(item, index) in dict.roleList"
75 + :key="index"
76 + :label="item.roleName"
77 + :value="item.roleId"
78 + ></el-option>
79 + </el-select>
80 + </Formitem>
81 + </el-col>
82 + <el-col :span="2">
83 + <el-form-item class="textCenter">
84 + <el-button
85 + class="entrySreachButton"
86 + type="text"
87 + icon="el-icon-search"
88 + :loading="loadings.searchLoading"
89 + @click="search(0)"
90 + ></el-button>
91 + </el-form-item>
92 + </el-col>
93 + </el-row>
94 + </el-form>
95 + <div class="optionButton">
96 + <!-- <el-button
97 + class="entrySaveButton"
98 + icon="el-icon-plus"
99 + size="small"
100 + @click="addRole"
101 + >
102 + 新增角色
103 + </el-button> -->
104 + </div>
105 + <Table
106 + class="fedexDetialTable fedexSreachTable"
107 + ref="entryTable"
108 + :data="tableData"
109 + :headerData="headerData"
110 + :maxHeight="tableMaxheight"
111 + :border="true"
112 + :pagination="true"
113 + :order="false"
114 + :loading="loadings.searchLoading"
115 + :page="page.pageNum"
116 + :pageSizes="[20, 30, 50, 100]"
117 + :totalCount="page.total"
118 + @sizeChange="sizeChange"
119 + @currentChange="currentChange"
120 + :selection="false"
121 + :selectFixed="false"
122 + :rowSelectDataType="false"
123 + >
124 + <template slot="optionColumn">
125 + <el-table-column align="left" label="操作">
126 + <template slot-scope="scope">
127 + <el-button type="text" @click="update(scope.row)">
128 + 信息编辑
129 + </el-button>
130 + <el-button type="text" @click="roleChange(scope.row)">
131 + 角色编辑
132 + </el-button>
133 + </template>
134 + </el-table-column>
135 + </template>
136 + </Table>
137 + <DialogVue
138 + :outerVisible="outerVisible"
139 + :title="dialogTitle"
140 + :type="editType"
141 + :dict="dict"
142 + :active="activeData"
143 + @close="dialogClose"
144 + />
145 + </div>
146 +</template>
147 +
148 +<script>
149 +import { getRoleList, getUserData, getPortList } from "@/api/system/user.js";
150 +import DialogVue from "../userRoleConfig/dialog.vue";
151 +export default {
152 + name: "UserRoleConfig",
153 + components: {
154 + DialogVue,
155 + },
156 + data() {
157 + return {
158 + sreachFormData: {
159 + userName: "",
160 + employeeNumber: "",
161 + roleIds: [],
162 + port: "",
163 + },
164 + page: {
165 + pageNum: 1,
166 + pageSize: 20,
167 + total: 0,
168 + },
169 + activeData: null,
170 + tableData: [],
171 + headerData: [
172 + {
173 + name: "员工号",
174 + value: "employeeNumber",
175 + width: "",
176 + align: "left",
177 + },
178 + {
179 + name: "姓名",
180 + value: "username",
181 + width: "",
182 + align: "left",
183 + },
184 + {
185 + name: "联系方式",
186 + value: "phone",
187 + width: "",
188 + align: "left",
189 + },
190 + {
191 + name: "电子邮箱",
192 + value: "email",
193 + width: "",
194 + align: "left",
195 + },
196 + {
197 + name: "传真",
198 + value: "fax",
199 + width: "",
200 + align: "left",
201 + },
202 + {
203 + name: "口岸代码",
204 + value: "port",
205 + width: "",
206 + align: "left",
207 + },
208 + {
209 + name: "所属角色",
210 + value: "roleName",
211 + width: "",
212 + align: "left",
213 + },
214 + {
215 + name: "备注",
216 + value: "remark",
217 + width: "",
218 + align: "left",
219 + },
220 + ],
221 + dict: {
222 + roleList: [],
223 + port: [],
224 + },
225 + loadings: {
226 + searchLoading: false,
227 + },
228 + tableMaxheight: null,
229 + outerVisible: false,
230 + activeType: false,
231 + dialogTitle: "",
232 + editType: "",
233 + };
234 + },
235 + created() {
236 + this.searchPort();
237 + this.searchRole();
238 + this.search(0);
239 + },
240 + mounted() {
241 + this.tableMaxheight = window.innerHeight - 300;
242 + },
243 + methods: {
244 + //查询
245 + search(val) {
246 + this.loadings.searchLoading = true;
247 + if (val == 0) {
248 + this.page.pageNum = 1;
249 + }
250 + let obj = this.sreachFormData;
251 + obj.pageNum = this.page.pageNum;
252 + obj.pageSize = this.page.pageSize;
253 + getUserData(obj)
254 + .then((res) => {
255 + if (res.code === "200") {
256 + this.tableData = res.data.value;
257 + this.page.total = res.data.totalItems;
258 + } else {
259 + this.alertWarningMsg(res.message);
260 + }
261 + this.loadings.searchLoading = false;
262 + })
263 + .catch((err) => {
264 + console.log(err);
265 + this.loadings.searchLoading = false;
266 + });
267 + },
268 + //查询角色
269 + searchRole() {
270 + getRoleList({ roleName: "", pageNum: 1, pageSize: 999999 })
271 + .then((res) => {
272 + if (res.code === "200") {
273 + this.dict.roleList = res.data.value;
274 + }
275 + })
276 + .catch((err) => {
277 + console.log(err);
278 + });
279 + },
280 + //查询口岸
281 + searchPort() {
282 + getPortList()
283 + .then((res) => {
284 + if (res.code === "200") {
285 + this.dict.port = res.data;
286 + }
287 + })
288 + .catch((err) => {
289 + console.log(err);
290 + });
291 + },
292 + update(val) {
293 + this.dialogTitle = "信息编辑";
294 + this.editType = "update";
295 + this.outerVisible = true;
296 + this.activeData = val;
297 + },
298 + roleChange(val) {
299 + this.dialogTitle = "角色编辑";
300 + this.editType = "roleChange";
301 + this.outerVisible = true;
302 + this.activeData = val;
303 + },
304 + dialogClose() {
305 + this.outerVisible = false;
306 + this.activeData = null;
307 + this.search(1);
308 + },
309 + //分页
310 + currentChange(val) {
311 + this.page.pageNum = val.page;
312 + this.search(1);
313 + },
314 + sizeChange(val) {
315 + this.page.pageSize = val;
316 + this.search(1);
317 + },
318 + visibleChange(type) {
319 + if (type) {
320 + this.activeType = true;
321 + } else {
322 + if (this.sreachFormData.roleIds.length > 0) {
323 + this.activeType = true;
324 + } else {
325 + this.activeType = false;
326 + document
327 + .querySelector("#inputInner--roleIds")
328 + .classList.remove("inputFocus");
329 + }
330 + }
331 + },
332 + removeTag(val) {
333 + if (this.sreachFormData.roleIds.length > 0) {
334 + this.activeType = true;
335 + } else {
336 + this.activeType = false;
337 + document
338 + .querySelector("#inputInner--roleIds")
339 + .classList.remove("inputFocus");
340 + }
341 + },
342 + clear() {
343 + this.activeType = false;
344 + document
345 + .querySelector("#inputInner--roleIds")
346 + .classList.remove("inputFocus");
347 + },
348 + input() {
349 + this.$forceUpdate();
350 + },
351 + },
352 +};
353 +</script>
354 +
355 +<style scoped lang="scss">
356 +@import "@/assets/styles/variables.scss";
357 +.entrySreach {
358 + height: 100%;
359 + background-color: $menuLightBg;
360 +
361 + .entrySreachButton {
362 + display: inline-block;
363 + font-size: 20px;
364 + color: $fedexButton !important;
365 + }
366 +
367 + .optionButton {
368 + padding: 10px;
369 + text-align: left;
370 +
371 + .el-button {
372 + color: $fedexButton;
373 + border-color: $fedexButton !important;
374 +
375 + svg {
376 + display: inline-block;
377 + margin-right: 5px;
378 + fill: $fedexButton;
379 + }
380 + }
381 +
382 + .entrySaveButton:hover,
383 + .entrySaveButton:focus {
384 + color: $menuLightBg !important;
385 + background-color: $fedexButton !important;
386 + }
387 + }
388 +}
389 +
390 +.texttareaTip {
391 + position: absolute;
392 + top: 52%;
393 + right: 20px;
394 + transform: translate(0, -50%);
395 + z-index: 10;
396 +}
397 +</style>
......
This file is too large to display.