hbte-saas-ui 0.0.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/package.json +8 -2
  2. package/.browserslistrc +0 -3
  3. package/.editorconfig +0 -7
  4. package/.env.development +0 -1
  5. package/.env.lib +0 -1
  6. package/.eslintrc.js +0 -14
  7. package/.prettierrc +0 -3
  8. package/babel.config.js +0 -3
  9. package/docs/.vuepress/config.js +0 -23
  10. package/docs/.vuepress/styles/index.styl +0 -4
  11. package/docs/AdvQuery.md +0 -26
  12. package/docs/CustomQuery.md +0 -21
  13. package/docs/EditArea.md +0 -16
  14. package/docs/FilterDrop.md +0 -29
  15. package/docs/FullTable.md +0 -68
  16. package/docs/Pagination.md +0 -22
  17. package/docs/QueryForm.md +0 -27
  18. package/docs/README.md +0 -17
  19. package/docs/Table.md +0 -58
  20. package/docs/ToolGroup.md +0 -32
  21. package/examples/App.vue +0 -97
  22. package/examples/image/hb-image-viewer/3k.jpg +0 -0
  23. package/examples/image/hb-image-viewer/a.jpg +0 -0
  24. package/examples/image/hb-image-viewer/b.jpg +0 -0
  25. package/examples/main.js +0 -39
  26. package/examples/mock/authority.js +0 -1108
  27. package/examples/mock/dept.js +0 -4001
  28. package/examples/mock/fulltable.js +0 -407
  29. package/examples/mock/organizeData.js +0 -18965
  30. package/examples/router/index.js +0 -111
  31. package/examples/views/ElementCpTest.vue +0 -299
  32. package/examples/views/Fragment.vue +0 -196
  33. package/examples/views/HBAdvQuery.vue +0 -150
  34. package/examples/views/HBAuthority.vue +0 -339
  35. package/examples/views/HBDialog.vue +0 -39
  36. package/examples/views/HBEditarea.vue +0 -350
  37. package/examples/views/HBFilterDrop.vue +0 -72
  38. package/examples/views/HBFloatFooter.vue +0 -42
  39. package/examples/views/HBFullTable.vue +0 -751
  40. package/examples/views/HBImageViewer.vue +0 -57
  41. package/examples/views/HBNavMenu.vue +0 -37
  42. package/examples/views/HBOrganizeDialog.vue +0 -133
  43. package/examples/views/HBPagination.vue +0 -80
  44. package/examples/views/HBSelectVague.vue +0 -57
  45. package/examples/views/HBToolgroup.vue +0 -29
  46. package/examples/views/HBTopBar.vue +0 -16
  47. package/packages/adv-query/index.js +0 -5
  48. package/packages/adv-query/src/main.vue +0 -294
  49. package/packages/area-select/index.js +0 -7
  50. package/packages/area-select/src/main.vue +0 -37
  51. package/packages/authority/index.js +0 -5
  52. package/packages/authority/src/main.vue +0 -606
  53. package/packages/config.js +0 -3
  54. package/packages/custom-query/index.js +0 -5
  55. package/packages/custom-query/src/main.vue +0 -80
  56. package/packages/dialog/index.js +0 -7
  57. package/packages/dialog/src/main.vue +0 -176
  58. package/packages/edit-area/index.js +0 -13
  59. package/packages/edit-area/src/config.js +0 -3
  60. package/packages/edit-area/src/main.vue +0 -304
  61. package/packages/edit-area/src/simulateEvent.js +0 -219
  62. package/packages/filter-drop/index.js +0 -6
  63. package/packages/filter-drop/src/main.vue +0 -107
  64. package/packages/float-footer/index.js +0 -7
  65. package/packages/float-footer/src/main.vue +0 -40
  66. package/packages/fragment/index.js +0 -7
  67. package/packages/fragment/src/main.vue +0 -74
  68. package/packages/fragment/src/old.vue +0 -144
  69. package/packages/full-table/index.js +0 -6
  70. package/packages/full-table/src/config.js +0 -14
  71. package/packages/full-table/src/main.vue +0 -141
  72. package/packages/image-viewer/index.js +0 -8
  73. package/packages/image-viewer/src/main.js +0 -14
  74. package/packages/image-viewer/src/main.vue +0 -138
  75. package/packages/image-viewer/src/svg/cancel.svg +0 -2
  76. package/packages/image-viewer/src/svg/delete.svg +0 -2
  77. package/packages/image-viewer/src/svg/download.svg +0 -2
  78. package/packages/image-viewer/src/svg/rotate.svg +0 -77
  79. package/packages/image-viewer/src/svg/scaledown.svg +0 -71
  80. package/packages/image-viewer/src/svg/scaleup.svg +0 -72
  81. package/packages/index.js +0 -43
  82. package/packages/nav-menu/index.js +0 -7
  83. package/packages/nav-menu/src/main.vue +0 -277
  84. package/packages/organize-dialog/index.js +0 -5
  85. package/packages/organize-dialog/src/main.vue +0 -427
  86. package/packages/pagination/index.js +0 -6
  87. package/packages/pagination/src/main.vue +0 -146
  88. package/packages/query-form/index.js +0 -5
  89. package/packages/query-form/src/main.vue +0 -142
  90. package/packages/select-vague/index.js +0 -5
  91. package/packages/select-vague/src/main.vue +0 -80
  92. package/packages/table/index.js +0 -5
  93. package/packages/table/src/main.vue +0 -265
  94. package/packages/theme-chalk/adv-query.scss +0 -107
  95. package/packages/theme-chalk/authority.scss +0 -103
  96. package/packages/theme-chalk/common/elementCover.scss +0 -722
  97. package/packages/theme-chalk/common/flex.scss +0 -66
  98. package/packages/theme-chalk/common/global.scss +0 -147
  99. package/packages/theme-chalk/common/reset.scss +0 -92
  100. package/packages/theme-chalk/common/var.scss +0 -46
  101. package/packages/theme-chalk/custom-query.scss +0 -10
  102. package/packages/theme-chalk/dialog.scss +0 -9
  103. package/packages/theme-chalk/edit-area.scss +0 -119
  104. package/packages/theme-chalk/filter-drop.scss +0 -81
  105. package/packages/theme-chalk/float-footer.scss +0 -14
  106. package/packages/theme-chalk/fonts/iconfont.ttf +0 -0
  107. package/packages/theme-chalk/fragment.scss +0 -51
  108. package/packages/theme-chalk/full-table.scss +0 -40
  109. package/packages/theme-chalk/icon.scss +0 -96
  110. package/packages/theme-chalk/image-viewer.scss +0 -94
  111. package/packages/theme-chalk/images/company-logo--default.png +0 -0
  112. package/packages/theme-chalk/images/nodata.png +0 -0
  113. package/packages/theme-chalk/images/user-logo--default.png +0 -0
  114. package/packages/theme-chalk/index.scss +0 -21
  115. package/packages/theme-chalk/nav-menu.scss +0 -205
  116. package/packages/theme-chalk/organize-dialog.scss +0 -170
  117. package/packages/theme-chalk/pagination.scss +0 -91
  118. package/packages/theme-chalk/select.scss +0 -8
  119. package/packages/theme-chalk/table.scss +0 -102
  120. package/packages/theme-chalk/tool-group.scss +0 -105
  121. package/packages/theme-chalk/top-bar.scss +0 -195
  122. package/packages/tool-group/index.js +0 -13
  123. package/packages/tool-group/src/config.js +0 -40
  124. package/packages/tool-group/src/main.vue +0 -93
  125. package/packages/top-bar/index.js +0 -7
  126. package/packages/top-bar/src/main.vue +0 -280
  127. package/public/index.html +0 -20
  128. package/vue.config.js +0 -6
@@ -1,7 +0,0 @@
1
- import HbAreaSelect from "./src/main.vue";
2
-
3
- HbAreaSelect.install = function (Vue) {
4
- Vue.component(HbAreaSelect.name, HbAreaSelect);
5
- };
6
-
7
- export default HbAreaSelect;
@@ -1,37 +0,0 @@
1
- <template>
2
- <el-cascader
3
- size="small"
4
- :options="areaData"
5
- :props="propsSetting"
6
- :placeholder="placeholder"
7
- clearable
8
- v-bind="$attrs"
9
- v-on="$listeners"
10
- ></el-cascader>
11
- </template>
12
-
13
- <script>
14
- export default {
15
- name: "HbAreaSelect",
16
- componentName: "HbAreaSelect",
17
-
18
- props: {
19
- placeholder: {
20
- default: "请选择",
21
- type: String,
22
- },
23
- propsSetting: {
24
- default: () => {
25
- return { checkStrictly: true };
26
- },
27
- type: Object,
28
- },
29
- areaData: {
30
- default: () => {
31
- return [];
32
- },
33
- type: Array,
34
- },
35
- },
36
- };
37
- </script>
@@ -1,5 +0,0 @@
1
- import HbAuthority from "./src/main.vue";
2
- HbAuthority.install = function (Vue) {
3
- Vue.component(HbAuthority.name, HbAuthority);
4
- };
5
- export default HbAuthority;
@@ -1,606 +0,0 @@
1
- <template>
2
- <div class="hb-authority">
3
- <div class="hb-authority-role-list">
4
- <div class="title">角色</div>
5
- <ul class="list">
6
- <li
7
- @click="tabRole(item.id)"
8
- class="item"
9
- v-for="item in roleList"
10
- :key="item.id"
11
- :class="{ active: item.id === roleId }"
12
- >
13
- <p>{{ item.roleName }}</p>
14
- <div class="edit" v-show="item.id === roleId">
15
- <el-dropdown trigger="click">
16
- <span class="el-dropdown-link">
17
- <i class="hbui-gengduo2"></i>
18
- </span>
19
- <el-dropdown-menu slot="dropdown">
20
- <el-dropdown-item>
21
- <div
22
- @click="editRole(item)"
23
- class="hbui-bianji1 hb-authority-dropdown"
24
- ></div>
25
- </el-dropdown-item>
26
- <el-dropdown-item>
27
- <div
28
- @click="removeRole(item)"
29
- class="hbui-shanchu hb-authority-dropdown"
30
- ></div>
31
- </el-dropdown-item>
32
- </el-dropdown-menu>
33
- </el-dropdown>
34
- </div>
35
- </li>
36
- </ul>
37
- <div class="add-role">
38
- <el-button type="primary" @click="visible = true">新增角色</el-button>
39
- </div>
40
- </div>
41
- <div class="hb-authority-config">
42
- <el-tabs v-model="activePane">
43
- <el-tab-pane class="role-pane" label="角色成员" name="role">
44
- <el-tag
45
- type="info"
46
- @close="removeRoleMember(item, 1)"
47
- v-for="item in roleMembers"
48
- :key="`user-${item.id}`"
49
- closable
50
- >
51
- {{ item.name }}
52
- </el-tag>
53
- <el-tag
54
- type="info"
55
- @close="removeRoleMember(item, 2)"
56
- v-for="item in deptMembers"
57
- :key="`dept-${item.id}`"
58
- closable
59
- >
60
- <i class="el-icon-edit"></i> {{ item.name }}
61
- </el-tag>
62
- <el-button
63
- type="primary"
64
- plain
65
- @click="openOrganizeDialog"
66
- size="mini"
67
- class="el-icon-plus"
68
- >添加成员</el-button
69
- >
70
- </el-tab-pane>
71
-
72
- <el-tab-pane label="业务权限" name="authority">
73
- <slot name="range">
74
- <el-form
75
- :model="formInline"
76
- class="demo-form-inline"
77
- label-position="top"
78
- v-if="formInline.menuObj"
79
- >
80
- <el-form-item label="数据作用对象" prop="menuObj">
81
- <el-select
82
- v-model="formInline.menuObj"
83
- placeholder="数据作用对象"
84
- @change="changeMenuObj"
85
- :clearable="false"
86
- style="width: 280px"
87
- >
88
- <el-option
89
- v-for="(item, index) in menuObjList"
90
- :key="index"
91
- :label="item.name"
92
- :value="item.id"
93
- ></el-option>
94
- </el-select>
95
- </el-form-item>
96
- <el-form-item
97
- label="数据类型"
98
- prop="menuOrg"
99
- v-if="formInline.menuObj != '2'"
100
- >
101
- <el-select
102
- v-model="formInline.menuOrg"
103
- placeholder="数据类型"
104
- :clearable="false"
105
- style="width: 280px"
106
- >
107
- <el-option
108
- @click.native="replaceAllScope(item)"
109
- v-for="(item, index) in sacleList"
110
- :key="index"
111
- :label="item.name"
112
- :value="item.id"
113
- ></el-option>
114
- </el-select>
115
- </el-form-item>
116
- </el-form>
117
- </slot>
118
- <!-- 权限树 -->
119
- <el-tree
120
- class="custom-tree"
121
- ref="authTree"
122
- :data="renderTreeData"
123
- :props="defaultProps"
124
- default-expand-all
125
- auto-expand-parent
126
- node-key="id"
127
- >
128
- <div slot-scope="{ node, data }">
129
- <el-checkbox
130
- @change="checkMenu(node, data)"
131
- v-model="data.menuChecked"
132
- >
133
- {{ data.menuName }}{{ data.permissions.length ? ":" : "" }}
134
- </el-checkbox>
135
- <el-checkbox
136
- v-if="data.permissions.length"
137
- v-model="data.checked"
138
- :indeterminate="data.isIndeterminate"
139
- @change="checkTreeNode(node, data)"
140
- >全选</el-checkbox
141
- >
142
- <el-checkbox
143
- class="permission-box"
144
- @change="checkPermissionNode(node)"
145
- v-for="item in data.permissions"
146
- v-model="item.checked"
147
- :key="item.perm"
148
- >
149
- {{ item.permName }}
150
- </el-checkbox>
151
- <el-select
152
- v-if="data.permissions.length && formInline.menuObj"
153
- v-model="data.dataScope"
154
- :disabled="formInline.menuObj == '1'"
155
- :clearable="false"
156
- placeholder="数据类型"
157
- size="small"
158
- >
159
- <el-option
160
- @click.native="selectDataScope(node, item)"
161
- v-for="(item, index) in sacleList"
162
- :key="index"
163
- :label="item.name"
164
- :value="item.id"
165
- ></el-option>
166
- </el-select>
167
- </div>
168
- </el-tree>
169
- </el-tab-pane>
170
- </el-tabs>
171
- <hb-float-footer
172
- v-if="activePane === 'authority'"
173
- :label="label"
174
- @confirm="save"
175
- @exist="reset"
176
- ></hb-float-footer>
177
- </div>
178
- <!-- 添加角色成员(人员和部门选择组件) -->
179
- <hb-organize-dialog
180
- ref="organize"
181
- :deptOnly="deptOnly"
182
- @confirm="confirm"
183
- />
184
- <!-- 新增角色 -->
185
- <el-dialog
186
- :title="roleTitle"
187
- :visible.sync="visible"
188
- :close-on-click-modal="false"
189
- :close-on-press-escape="false"
190
- :destroy-on-close="true"
191
- width="440px"
192
- @closed="clearRoleFormData"
193
- >
194
- <el-form ref="form" :rules="rules" :model="newRole">
195
- <el-form-item label="角色名称" prop="roleName">
196
- <el-input
197
- v-model="newRole.roleName"
198
- placeholder="请输入角色名称"
199
- ></el-input>
200
- </el-form-item>
201
- <el-form-item label="描述" prop="roleDesc">
202
- <el-input
203
- type="textarea"
204
- v-model="newRole.roleDesc"
205
- placeholder="请输入描述"
206
- ></el-input>
207
- </el-form-item>
208
- </el-form>
209
- <div slot="footer" class="dialog-footer">
210
- <el-button @click="submitRoleCancel" plain>取 消</el-button>
211
- <el-button type="primary" @click="submitRole">确 定</el-button>
212
- </div>
213
- </el-dialog>
214
- </div>
215
- </template>
216
- <script>
217
- import lodash from "lodash";
218
- export default {
219
- name: "HbAuthority",
220
- componentName: "HbAuthority",
221
- data() {
222
- return {
223
- label: {
224
- confirm: "保存",
225
- exist: "重置",
226
- },
227
- roleTitle: "新增角色",
228
- roleId: "",
229
- visible: false,
230
- renderTreeData: [],
231
- activePane: "role",
232
- authorityData: [],
233
- defaultProps: {
234
- children: "subMenus",
235
- label: "menuName",
236
- },
237
- newRole: {
238
- roleName: "",
239
- roleDesc: "",
240
- id: undefined,
241
- },
242
- //数据作用对象
243
- menuObjList: [
244
- { name: "菜单", id: "2" },
245
- { name: "系统", id: "1" },
246
- ],
247
- //权限范围
248
- sacleList: [
249
- { name: "无权限", id: "1" },
250
- { name: "本人的", id: "2" },
251
- { name: "本部门内", id: "3" },
252
- { name: "下级部门", id: "4" },
253
- { name: "本部门及下级部门", id: "5" },
254
- { name: "全部人员", id: "6" },
255
- { name: "自选部门", id: "7" },
256
- ],
257
- //业务权限插槽表单数据
258
- formInline: {
259
- menuObj: "2",
260
- menuOrg: "",
261
- },
262
- deptOnly: false,
263
- nodeId: "",
264
- selectDeptNode: [], //数据类型选择自选部门时储存的id
265
- };
266
- },
267
- methods: {
268
- submitRoleCancel() {
269
- this.visible = false;
270
- },
271
- submitRole() {
272
- this.$refs.form.validate((valid) => {
273
- if (valid) {
274
- this.$emit("submitRole", this.newRole);
275
- this.visible = false;
276
- }
277
- });
278
- },
279
- editRole(role) {
280
- this.roleTitle = "修改角色";
281
- this.visible = true;
282
- this.newRole = {
283
- roleName: role.roleName,
284
- roleDesc: role.roleDesc,
285
- id: role.id,
286
- };
287
- },
288
- removeRoleMember(member, type) {
289
- this.$emit("removeRoleMember", member, type);
290
- },
291
- removeRole(role) {
292
- this.$confirm(`是否删除角色${role.roleName}`, "提示", {
293
- confirmButtonText: "确定",
294
- cancelButtonText: "取消",
295
- type: "warning",
296
- })
297
- .then(() => {
298
- this.$emit("deleteRole", role.id);
299
- })
300
- .catch(() => {});
301
- },
302
- tabRole(id) {
303
- this.roleId = id;
304
- this.$emit("tabRole", id);
305
- },
306
- clearRoleFormData() {
307
- this.roleTitle = "新增角色";
308
- this.newRole = {
309
- roleName: "",
310
- roleDesc: "",
311
- id: undefined,
312
- };
313
- },
314
- openOrganizeDialog() {
315
- this.deptOnly = false;
316
- this.$emit("openOrganizeDialog", this.$refs.organize);
317
- },
318
- //提交人员和部门选择的数据
319
- confirm(data) {
320
- this.$refs.organize.close();
321
- let deptId = [
322
- ...data.localChecked.map((v) => v.id),
323
- ...data.originChecked.map((v) => v.id),
324
- ];
325
- if (this.deptOnly) {
326
- if (this.nodeId) {
327
- this.renderTreeData.forEach((v) => {
328
- if (this.nodeId == v.id) {
329
- v.deptId = deptId;
330
- } else {
331
- v.subMenus.forEach((k) => {
332
- if (this.nodeId == k.id) {
333
- k.deptId = deptId;
334
- }
335
- });
336
- }
337
- });
338
- this.nodeId = "";
339
- } else {
340
- this.renderTreeData.forEach((v) => {
341
- v.deptId = deptId;
342
- v.subMenus.forEach((k) => {
343
- k.deptId = deptId;
344
- });
345
- });
346
- this.selectDeptNode = deptId;
347
- }
348
- this.selectDeptNode = [];
349
- } else {
350
- this.$emit("chooseOrganizeMembers", data);
351
- }
352
- },
353
- //点击菜单勾选菜单事件
354
- checkMenu(node, data) {
355
- if (data.level === 1) {
356
- //只处理取消勾选一级菜单事件,清空一级菜单下所有的勾选
357
- !data.menuChecked &&
358
- data.subMenus.forEach((v) => {
359
- v.checked = data.menuChecked;
360
- v.isIndeterminate = data.menuChecked;
361
- v.menuChecked = data.menuChecked;
362
- v.permissions.forEach((permission) => {
363
- permission.checked = data.menuChecked;
364
- });
365
- this.checkIndeterminate(v);
366
- });
367
- } else {
368
- data.menuChecked && (node.parent.data.menuChecked = data.menuChecked);
369
- if (!data.menuChecked) {
370
- data.checked = data.menuChecked;
371
- data.isIndeterminate = data.menuChecked;
372
- data.permissions.forEach((v) => {
373
- v.checked = data.menuChecked;
374
- });
375
- }
376
- }
377
- },
378
- //点击全选按钮事件
379
- checkTreeNode(node, data) {
380
- //只处理checked数据,将处理后的数据交给专业函数处理半选
381
- if (data.level === 2) {
382
- data.permissions.forEach((permission) => {
383
- permission.checked = data.checked;
384
- });
385
- //二级菜单为否时,点击全选或者权限按钮勾选二级菜单
386
- !data.menuChecked &&
387
- (data.menuChecked = data.checked || data.isIndeterminate);
388
- let parentData = node.parent.data;
389
- //一级菜单为否时,点击全选或者权限按钮勾选一级菜单
390
- parentData.subMenus.find(
391
- (i) => i.checked == true || i.isIndeterminate == true
392
- ) != undefined && (parentData.menuChecked = true);
393
- this.checkIndeterminate(data);
394
- } else {
395
- let childrenKey = data.subMenus.length ? "subMenus" : "permissions";
396
- data[childrenKey].forEach((item) => {
397
- item.checked = data.checked;
398
- if (childrenKey === "subMenus") {
399
- item.permissions.forEach((i) => (i.checked = data.checked));
400
- }
401
- });
402
- this.checkIndeterminate(data);
403
- }
404
- },
405
- checkPermissionNode(node) {
406
- let permissions = node.data.permissions;
407
- if (node.data.level === 1) {
408
- //点击的一级按钮
409
- // 判断一级菜单是否半选
410
- node.data.isIndeterminate =
411
- permissions.some((i) => i.checked) &&
412
- permissions.some((i) => !i.checked);
413
- // 判断一级菜单是否勾选(一级按钮全勾选,一级菜单才勾选)
414
- node.data.checked = permissions.every((i) => i.checked);
415
- this.checkIndeterminate(node.data);
416
- } else {
417
- //点击的二级按钮
418
- // 判断二级菜单是否半选
419
- node.data.isIndeterminate =
420
- permissions.some((i) => i.checked) &&
421
- permissions.some((i) => !i.checked);
422
- // 判断二级菜单是否勾选(一级按钮全勾选,一级菜单才勾选)
423
- node.data.checked = permissions.every((i) => i.checked);
424
- //只要勾选了权限,把二级菜单勾选
425
- (node.data.checked || node.data.isIndeterminate) &&
426
- (node.data.menuChecked = true);
427
- //判断一级是否半选
428
- let parentData = node.parent.data;
429
- parentData.isIndeterminate =
430
- parentData.subMenus.some((i) => i.isIndeterminate) ||
431
- (parentData.subMenus.some((i) => i.checked) &&
432
- parentData.subMenus.some((i) => !i.checked));
433
- //判断一级是否勾选
434
- parentData.checked = parentData.subMenus.every((i) => i.checked);
435
- //只要勾选了权限,将一级菜单勾选
436
- parentData.subMenus.find(
437
- (i) => i.checked == true || i.isIndeterminate == true
438
- ) != undefined && (parentData.menuChecked = true);
439
- this.checkIndeterminate(parentData);
440
- }
441
- },
442
- //处理半选,node是一级菜单的数据
443
- checkIndeterminate(node) {
444
- if (node.permissions.length) {
445
- node.isIndeterminate =
446
- node.permissions.some((i) => i.checked) &&
447
- node.permissions.some((i) => !i.checked);
448
- } else if (node.subMenus.length) {
449
- //处理二级菜单的半选状态
450
- node.subMenus.forEach((subMenu) => {
451
- subMenu.isIndeterminate =
452
- subMenu.permissions.some((i) => i.checked) &&
453
- subMenu.permissions.some((i) => !i.checked);
454
- });
455
- //处理一级菜单的半选状态
456
- node.isIndeterminate =
457
- node.subMenus.some((i) => i.isIndeterminate) ||
458
- (node.subMenus.some((i) => i.checked) &&
459
- node.subMenus.some((i) => !i.checked));
460
- }
461
- },
462
- //-----------插槽选择范围方法-------------
463
- changeMenuObj(data) {
464
- this.formInline.menuOrg = "";
465
- this.selectDeptNode = [];
466
- this.reset();
467
- if (data == "1") {
468
- this.formInline.menuOrg = "6";
469
- this.replaceAllScope({ id: "6" });
470
- }
471
- },
472
- //数据类型选择事件
473
- replaceAllScope(data) {
474
- if (data.id == "7") {
475
- this.openDept();
476
- } else {
477
- this.selectDeptNode = [];
478
- }
479
- this.renderTreeData.forEach((v) => {
480
- if (v.permissions.length) {
481
- v.dataScope = data.id;
482
- }
483
- v.subMenus.forEach((k) => {
484
- if (k.menuType === "1") {
485
- k.dataScope = data.id;
486
- }
487
- });
488
- });
489
- },
490
- openDept(arr) {
491
- this.deptOnly = true;
492
- this.$refs.organize.open();
493
- this.$refs.organize.init(this.deptData[0], arr);
494
- },
495
- //处理菜单选择范围方法
496
- selectDataScope(node, click) {
497
- node.data.dataScope = click.id;
498
- if (click.id == "7") {
499
- this.nodeId = node.data.id;
500
- node.data.depts?.forEach((v) => (v.isDept = "1"));
501
- this.selectDeptNode = node.data.depts;
502
- this.openDept(node.data.depts || []);
503
- } else {
504
- node.data.deptId = undefined;
505
- }
506
- },
507
- //-----------插槽选择范围方法-------------
508
- reset() {
509
- this.renderTreeData = lodash.cloneDeep(this.treeData);
510
- },
511
- save() {
512
- let res = {
513
- menus: [],
514
- permissions: [],
515
- roleId: this.roleId,
516
- effectObject: this.formInline.menuObj
517
- ? this.formInline.menuObj
518
- : undefined,
519
- };
520
- this.renderTreeData.forEach((menu) => {
521
- if (menu.menuChecked) {
522
- res.menus.push({
523
- menuId: menu.id,
524
- dataScope: this.formInline.menuObj ? menu.dataScope : undefined,
525
- deptId: this.formInline.menuObj ? menu.deptId : undefined,
526
- });
527
- }
528
- menu.permissions.forEach((permission) => {
529
- permission.checked && res.permissions.push(permission.perm);
530
- });
531
- menu.subMenus.forEach((subMenu) => {
532
- if (subMenu.menuChecked) {
533
- res.menus.push({
534
- menuId: subMenu.id,
535
- dataScope: this.formInline.menuObj
536
- ? subMenu.dataScope
537
- : undefined,
538
- deptId: this.formInline.menuObj ? subMenu.deptId : undefined,
539
- });
540
- }
541
- subMenu.permissions.forEach((permission) => {
542
- permission.checked && res.permissions.push(permission.perm);
543
- });
544
- });
545
- });
546
- this.$emit("savePemissions", res);
547
- },
548
- },
549
- props: {
550
- roleList: {
551
- type: Array,
552
- default: () => [],
553
- },
554
- roleMembers: {
555
- type: Array,
556
- default: () => [],
557
- },
558
- deptMembers: {
559
- type: Array,
560
- default: () => [],
561
- },
562
- treeData: {
563
- type: Array,
564
- default: () => [],
565
- },
566
- rules: {
567
- type: Object,
568
- default: () => {},
569
- },
570
- //获取业务权限数据范围
571
- formInlineRender: {
572
- type: Object,
573
- default: () => ({}),
574
- },
575
- deptData: {
576
- type: Array,
577
- default: () => [],
578
- },
579
- },
580
- watch: {
581
- treeData: {
582
- immediate: true,
583
- handler: function (to) {
584
- this.renderTreeData = lodash.cloneDeep(to);
585
- },
586
- },
587
- roleList: {
588
- immediate: true,
589
- handler: function (to) {
590
- this.roleId = this.roleId || to[0]?.id || "";
591
- },
592
- },
593
- formInlineRender: {
594
- deep: true,
595
- immediate: true,
596
- handler: function (to) {
597
- this.formInline.menuObj = to?.menuObj;
598
- this.formInline.menuOrg = to?.menuOrg;
599
- if (to.menuOrg == "7") {
600
- this.selectDeptNode = to.selectNode;
601
- }
602
- },
603
- },
604
- },
605
- };
606
- </script>
@@ -1,3 +0,0 @@
1
- export default {
2
- HBFulltable: {}
3
- }
@@ -1,5 +0,0 @@
1
- import HbCustomQuery from "./src/main.vue";
2
- HbCustomQuery.install = function (Vue) {
3
- Vue.component(HbCustomQuery.name, HbCustomQuery);
4
- };
5
- export default HbCustomQuery;