zhengquan.bai

Merge branch 'dev-ver1.0.0' of http://118.178.128.178/Fedex/EcomWeb into dev-ver1.0.0

...@@ -3,7 +3,8 @@ import request from '@/utils/request' ...@@ -3,7 +3,8 @@ import request from '@/utils/request'
3 // 获取路由 3 // 获取路由
4 export const getRouters = () => { 4 export const getRouters = () => {
5 return request({ 5 return request({
6 - url: '/manager-server/menu/list', 6 + url: '/bus-customer/menu/selectMenu',
7 method: 'get' 7 method: 'get'
8 }) 8 })
9 } 9 }
10 +
......
...@@ -7,3 +7,55 @@ export function getInfo() { ...@@ -7,3 +7,55 @@ export function getInfo() {
7 method: 'get' 7 method: 'get'
8 }) 8 })
9 } 9 }
10 +
11 +// 获取角色列表
12 +/**
13 + * @param roleName 角色名
14 + * @param pageNum *
15 + * @param pageSize *
16 + */
17 +export function getRoleList(data) {
18 + return request({
19 + url: '/bus-customer/role/getRoleList',
20 + method: 'get',
21 + params: data
22 + })
23 +}
24 +
25 +// 新增角色
26 +/**
27 + * @param roleName 角色名
28 + */
29 +export function addRoleData(data) {
30 + return request({
31 + url: '/bus-customer/role/addRole',
32 + method: 'post',
33 + data: data
34 + })
35 +}
36 +
37 +// 更新角色
38 +/**
39 + * @param roleName * 角色名
40 + * @param roleId * 角色id
41 + */
42 +export function updateRoleData(data) {
43 + return request({
44 + url: '/bus-customer/role/updateRole',
45 + method: 'put',
46 + data: data
47 + })
48 +}
49 +
50 +// 更新角色
51 +/**
52 + * @param menuId * 权限菜单
53 + * @param roleId * 角色id
54 + */
55 +export function updateRoleMenuData(data) {
56 + return request({
57 + url: '/bus-customer/role/roleBindingMenus',
58 + method: 'post',
59 + data: data
60 + })
61 +}
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -234,19 +234,19 @@ export default { ...@@ -234,19 +234,19 @@ export default {
234 }, 234 },
235 { 235 {
236 name: "创建时间", 236 name: "创建时间",
237 - value: "", 237 + value: "createTime",
238 width: "", 238 width: "",
239 align: "left", 239 align: "left",
240 }, 240 },
241 { 241 {
242 name: "申报企业", 242 name: "申报企业",
243 - value: "", 243 + value: "agentName",
244 width: "", 244 width: "",
245 align: "left", 245 align: "left",
246 }, 246 },
247 { 247 {
248 name: "申报类型", 248 name: "申报类型",
249 - value: "", 249 + value: "appType",
250 width: "", 250 width: "",
251 align: "left", 251 align: "left",
252 }, 252 },
......
1 +<template>
2 + <el-dialog
3 + class="entryDialog classCUploadDialog"
4 + :title="title"
5 + :visible.sync="outerVisible"
6 + :show-close="false"
7 + width="25%"
8 + :close-on-click-modal="false"
9 + v-loading="loadings.dialogLoading"
10 + @close="close"
11 + >
12 + <div class="modelItem">
13 + <el-form
14 + v-if="type != 'menuChange'"
15 + class="fedexFormStyle"
16 + ref="formData"
17 + :model="formData"
18 + :rules="rules"
19 + label-position="top"
20 + size="small"
21 + >
22 + <Formitem label="角色名称" prop="roleName" type="edit">
23 + <el-input
24 + type="text"
25 + class="inputShadow"
26 + id="inputInner-edit-roleName"
27 + resize="none"
28 + v-model="formData.roleName"
29 + clearable
30 + placeholder=""
31 + ></el-input>
32 + </Formitem>
33 + </el-form>
34 + <el-tree
35 + class="menuTree"
36 + v-else
37 + :data="treeData"
38 + show-checkbox
39 + default-expand-all
40 + node-key="id"
41 + :default-expanded-keys="expandedKeys"
42 + :default-checked-keys="checkedKeys"
43 + :props="defaultProps"
44 + @check="treeCheckChange"
45 + >
46 + </el-tree>
47 + </div>
48 + <div class="dialogOption entrySave">
49 + <el-button
50 + class="entrySaveButton"
51 + :disabled="loadings.submitLoading"
52 + @click="submit"
53 + >确 定</el-button
54 + >
55 + <el-button
56 + class="entrySaveButton"
57 + :disabled="loadings.uploadLoading"
58 + @click="close"
59 + >关 闭</el-button
60 + >
61 + </div>
62 + </el-dialog>
63 +</template>
64 +
65 +<script>
66 +import {
67 + addRoleData,
68 + updateRoleData,
69 + updateRoleMenuData,
70 +} from "@/api/system/user.js";
71 +import { getRouters } from "@/api/menu";
72 +export default {
73 + props: {
74 + outerVisible: {
75 + type: Boolean,
76 + default: false,
77 + },
78 + title: {
79 + type: String,
80 + default: "新增角色",
81 + },
82 + type: {
83 + type: String,
84 + default: "",
85 + },
86 + active: {
87 + type: Object,
88 + default: null,
89 + },
90 + },
91 + watch: {
92 + outerVisible(val) {
93 + if (val) {
94 + }
95 + },
96 + },
97 + data() {
98 + return {
99 + formData: {
100 + roleName: "",
101 + },
102 + treeData: [],
103 + treeCheckData: [],
104 + expandedKeys: [],
105 + checkedKeys: [],
106 + rules: {
107 + roleName: [
108 + {
109 + required: true,
110 + trigger: "blur",
111 + message: "角色名称不能为空!",
112 + },
113 + ],
114 + },
115 + defaultProps: {
116 + children: "children",
117 + label: "label",
118 + },
119 + searchForm: {},
120 + loadings: {
121 + dialogLoading: false,
122 + uploadLoading: false,
123 + submitLoading: false,
124 + },
125 + loadingText: "",
126 + };
127 + },
128 + watch: {
129 + outerVisible(val) {
130 + if (val) {
131 + this.loadings.dialogLoading = false;
132 + if (this.type == "update") {
133 + this.formData = this.active;
134 + } else if (this.type == "menuChange") {
135 + this.formData = this.active;
136 + this.searchTreeData();
137 + }
138 + }
139 + },
140 + },
141 + methods: {
142 + //查询菜单数据
143 + searchTreeData() {
144 + this.loadings.dialogLoading = true;
145 + getRouters()
146 + .then((res) => {
147 + if (res.code === "200") {
148 + let arr = [];
149 + res.data.forEach((item) => {
150 + let status = true;
151 + if (item.parentMenuId == 0) {
152 + let obj = {
153 + id: item.menuId,
154 + label: item.menuName,
155 + children: [],
156 + };
157 + arr.forEach((menuItem) => {
158 + if (menuItem.id == item.menuId) {
159 + status = false;
160 + menuItem.label = item.menuName;
161 + }
162 + });
163 + if (status) {
164 + arr.push(obj);
165 + }
166 + } else {
167 + let obj = {
168 + id: item.menuId,
169 + label: item.menuName,
170 + };
171 + arr.forEach((menuItem) => {
172 + if (menuItem.id == item.parentMenuId) {
173 + status = false;
174 + menuItem.children.push(obj);
175 + }
176 + });
177 + if (status) {
178 + arr.push({
179 + id: item.parentMenuId,
180 + label: "",
181 + children: [obj],
182 + });
183 + }
184 + }
185 + });
186 + this.treeData = arr;
187 + } else {
188 + this.alertWarningMsg(res.message);
189 + }
190 + this.loadings.dialogLoading = false;
191 + })
192 + .catch((err) => {
193 + console.log(err);
194 + this.loadings.dialogLoading = false;
195 + });
196 + },
197 + //数据保存
198 + submit() {
199 + this.loadings.dialogLoading = true;
200 + let obj = {};
201 + if (this.type == "add") {
202 + this.$refs.formData.validate((valid) => {
203 + if (valid) {
204 + obj.roleName = this.formData.roleName;
205 + this.addapi(obj);
206 + } else {
207 + this.loadings.dialogLoading = false;
208 + }
209 + });
210 + } else if (this.type == "update") {
211 + this.$refs.formData.validate((valid) => {
212 + if (valid) {
213 + obj.roleId = this.formData.roleId;
214 + obj.roleName = this.formData.roleName;
215 + this.updateapi(obj);
216 + } else {
217 + this.loadings.dialogLoading = false;
218 + }
219 + });
220 + } else if (this.type == "menuChange") {
221 + obj.menuId = this.treeCheckData;
222 + obj.roleId = this.formData.roleId;
223 + this.menuChangeapi(obj);
224 + }
225 + },
226 + //新增
227 + addapi(val) {
228 + addRoleData(val)
229 + .then((res) => {
230 + if (res.code === "200") {
231 + this.msgSuccess(res.message);
232 + this.close();
233 + } else {
234 + this.alertWarningMsg(res.message);
235 + this.loadings.dialogLoading = false;
236 + }
237 + })
238 + .catch((err) => {
239 + console.log(err);
240 + this.loadings.dialogLoading = false;
241 + });
242 + },
243 + //修改
244 + updateapi(val) {
245 + updateRoleData(val)
246 + .then((res) => {
247 + if (res.code === "200") {
248 + this.msgSuccess(res.message);
249 + this.close();
250 + } else {
251 + this.alertWarningMsg(res.message);
252 + this.loadings.dialogLoading = false;
253 + }
254 + })
255 + .catch((err) => {
256 + console.log(err);
257 + this.loadings.dialogLoading = false;
258 + });
259 + },
260 + //菜单权限修改
261 + menuChangeapi(val) {
262 + updateRoleMenuData(val)
263 + .then((res) => {
264 + if (res.code === "200") {
265 + this.msgSuccess(res.message);
266 + this.close();
267 + } else {
268 + this.alertWarningMsg(res.message);
269 + this.loadings.dialogLoading = false;
270 + }
271 + })
272 + .catch((err) => {
273 + console.log(err);
274 + this.loadings.dialogLoading = false;
275 + });
276 + },
277 + treeCheckChange(data, checked) {
278 + console.log(data, checked);
279 + this.treeCheckData = checked.checkedKeys;
280 + },
281 + close() {
282 + this.formData = {
283 + roleName: "",
284 + };
285 + this.$emit("close");
286 + },
287 + },
288 +};
289 +</script>
290 +
291 +<style lang="scss" scoped>
292 +@import "@/assets/styles/variables.scss";
293 +
294 +.menuTree {
295 + max-width: 350px;
296 + max-height: 300px;
297 + overflow: auto;
298 + margin: 0 auto;
299 + border: 1px solid #999;
300 + padding: 10px;
301 +}
302 +</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="roleName">
14 + <el-input
15 + type="text"
16 + class="inputShadow"
17 + id="inputInner--roleName"
18 + resize="none"
19 + v-model="sreachFormData.roleName"
20 + clearable
21 + placeholder=""
22 + ></el-input>
23 + </Formitem>
24 + </el-col>
25 + <el-col :span="2">
26 + <el-form-item class="textCenter">
27 + <el-button
28 + class="entrySreachButton"
29 + type="text"
30 + icon="el-icon-search"
31 + :loading="loadings.searchLoading"
32 + @click="search(0)"
33 + ></el-button>
34 + </el-form-item>
35 + </el-col>
36 + </el-row>
37 + </el-form>
38 + <div class="optionButton">
39 + <el-button
40 + class="entrySaveButton"
41 + icon="el-icon-plus"
42 + size="small"
43 + @click="addRole"
44 + >
45 + 新增角色
46 + </el-button>
47 + </div>
48 + <Table
49 + class="fedexDetialTable fedexSreachTable"
50 + ref="entryTable"
51 + :data="tableData"
52 + :headerData="headerData"
53 + :maxHeight="tableMaxheight"
54 + :border="true"
55 + :pagination="true"
56 + :order="false"
57 + :loading="loadings.searchLoading"
58 + :page="page.pageIndex"
59 + :pageSizes="[20, 30, 50, 100]"
60 + :totalCount="page.total"
61 + @sizeChange="sizeChange"
62 + @currentChange="currentChange"
63 + :selection="false"
64 + :selectFixed="false"
65 + :rowSelectDataType="false"
66 + >
67 + <template slot="optionColumn">
68 + <el-table-column align="left" label="操作">
69 + <template slot-scope="scope">
70 + <el-button type="text" @click="update(scope.row)">
71 + 角色修改
72 + </el-button>
73 + <el-button type="text" @click="muenChange(scope.row)">
74 + 权限绑定
75 + </el-button>
76 + </template>
77 + </el-table-column>
78 + </template>
79 + </Table>
80 + <DialogVue
81 + :outerVisible="outerVisible"
82 + :title="dialogTitle"
83 + :type="editType"
84 + :active="activeData"
85 + @close="dialogClose"
86 + />
87 + </div>
88 +</template>
89 +
90 +<script>
91 +import { getRoleList, addRoleDataf } from "@/api/system/user.js";
92 +import DialogVue from "./dialog.vue";
93 +export default {
94 + name: "RoleConfig",
95 + components: {
96 + DialogVue,
97 + },
98 + data() {
99 + return {
100 + sreachFormData: {
101 + roleName: "",
102 + },
103 + page: {
104 + pageIndex: 1,
105 + pageSize: 20,
106 + total: 0,
107 + },
108 + activeData: null,
109 + tableData: [],
110 + headerData: [
111 + {
112 + name: "角色名",
113 + value: "roleName",
114 + width: "",
115 + align: "left",
116 + },
117 + ],
118 + loadings: {
119 + searchLoading: false,
120 + },
121 + tableMaxheight: null,
122 + outerVisible: false,
123 + dialogTitle: "",
124 + editType: "",
125 + };
126 + },
127 + created() {
128 + this.search(0);
129 + },
130 + mounted() {
131 + this.tableMaxheight = window.innerHeight - 300;
132 + },
133 + methods: {
134 + //查询
135 + search(val) {
136 + this.loadings.searchLoading = true;
137 + if (val == 0) {
138 + this.page.pageIndex = 1;
139 + }
140 + let obj = this.sreachFormData;
141 + obj.pageIndex = this.page.pageIndex;
142 + obj.pageSize = this.page.pageSize;
143 + getRoleList(obj)
144 + .then((res) => {
145 + if (res.code === "200") {
146 + this.tableData = res.data.value;
147 + this.page.total = res.data.totalItems;
148 + this.tableData.forEach((item, idx) => {
149 + item.index = idx;
150 + });
151 + } else {
152 + this.alertWarningMsg(res.message);
153 + }
154 + this.loadings.searchLoading = false;
155 + })
156 + .catch((err) => {
157 + console.log(err);
158 + this.loadings.searchLoading = false;
159 + });
160 + },
161 + addRole() {
162 + this.dialogTitle = "新增角色";
163 + this.editType = "add";
164 + this.outerVisible = true;
165 + },
166 + update(val) {
167 + this.dialogTitle = "修改角色";
168 + this.editType = "update";
169 + this.outerVisible = true;
170 + this.activeData = val;
171 + },
172 + muenChange(val) {
173 + this.dialogTitle = "绑定权限";
174 + this.editType = "menuChange";
175 + this.outerVisible = true;
176 + this.activeData = val;
177 + },
178 + dialogClose() {
179 + this.outerVisible = false;
180 + this.activeData = null;
181 + },
182 + //分页
183 + currentChange(val) {
184 + this.page.pageNum = val.page;
185 + this.search(1);
186 + },
187 + sizeChange(val) {
188 + this.page.pageSize = val;
189 + this.search(1);
190 + },
191 + input() {
192 + this.$forceUpdate();
193 + },
194 + },
195 +};
196 +</script>
197 +
198 +<style scoped lang="scss">
199 +@import "@/assets/styles/variables.scss";
200 +.entrySreach {
201 + height: 100%;
202 + background-color: $menuLightBg;
203 +
204 + .entrySreachButton {
205 + display: inline-block;
206 + font-size: 20px;
207 + color: $fedexButton !important;
208 + }
209 +
210 + .optionButton {
211 + padding: 10px;
212 + text-align: left;
213 +
214 + .el-button {
215 + color: $fedexButton;
216 + border-color: $fedexButton !important;
217 +
218 + svg {
219 + display: inline-block;
220 + margin-right: 5px;
221 + fill: $fedexButton;
222 + }
223 + }
224 +
225 + .entrySaveButton:hover,
226 + .entrySaveButton:focus {
227 + color: $menuLightBg !important;
228 + background-color: $fedexButton !important;
229 + }
230 + }
231 +}
232 +
233 +.texttareaTip {
234 + position: absolute;
235 + top: 52%;
236 + right: 20px;
237 + transform: translate(0, -50%);
238 + z-index: 10;
239 +}
240 +</style>
......