fl-web-component 1.2.11 → 1.2.13

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 (54) hide show
  1. package/README.md +4 -0
  2. package/dist/fl-web-component.common.1.js +15 -15
  3. package/dist/fl-web-component.common.1.js.map +1 -1
  4. package/dist/fl-web-component.common.2.js.map +1 -1
  5. package/dist/fl-web-component.common.3.js.map +1 -1
  6. package/dist/fl-web-component.common.js +160 -115
  7. package/dist/fl-web-component.common.js.map +1 -1
  8. package/dist/fl-web-component.css +1 -1
  9. package/package.json +1 -1
  10. package/packages/components/com-flcanvas/index.vue +2 -2
  11. package/packages/components/com-graphics/index.vue +31 -6
  12. package/src/utils/flgltf-parser.js +68 -50
  13. package/src/utils/instance-parser.js +39 -30
  14. package/packages/components/button/index.vue +0 -26
  15. package/packages/components/model/api/index.js +0 -421
  16. package/packages/components/model/api/mock/detecttree.js +0 -58
  17. package/packages/components/model/api/mock/getmodel-line.js +0 -15834
  18. package/packages/components/model/api/mock/init.js +0 -1
  19. package/packages/components/model/api/mock/pbstree.js +0 -826
  20. package/packages/components/model/api/mock/topology.json +0 -3238
  21. package/packages/components/model/components/TextOverTooltip/index.vue +0 -84
  22. package/packages/components/model/components/annotation-toolbar.vue +0 -410
  23. package/packages/components/model/components/check-proofing-model.vue +0 -39
  24. package/packages/components/model/components/clipping-type.vue +0 -59
  25. package/packages/components/model/components/com-dialogWrapper/Readme.md +0 -53
  26. package/packages/components/model/components/com-dialogWrapper/index.vue +0 -114
  27. package/packages/components/model/components/detect-panel.vue +0 -339
  28. package/packages/components/model/components/detect-tree.vue +0 -445
  29. package/packages/components/model/components/firstPer-panel.vue +0 -109
  30. package/packages/components/model/components/header-button.vue +0 -470
  31. package/packages/components/model/components/imageViewer/index.vue +0 -126
  32. package/packages/components/model/components/import-model.vue +0 -127
  33. package/packages/components/model/components/location-panel.vue +0 -91
  34. package/packages/components/model/components/measure-type.vue +0 -59
  35. package/packages/components/model/components/pbs-tree.vue +0 -497
  36. package/packages/components/model/components/proof-config.vue +0 -72
  37. package/packages/components/model/components/proof-for-pc.vue +0 -126
  38. package/packages/components/model/components/proof-history.vue +0 -300
  39. package/packages/components/model/components/proof-panel-detail.vue +0 -568
  40. package/packages/components/model/components/proof-panel.vue +0 -846
  41. package/packages/components/model/components/proof-project-user.vue +0 -445
  42. package/packages/components/model/components/proof-publish.vue +0 -130
  43. package/packages/components/model/components/proof-role.vue +0 -504
  44. package/packages/components/model/components/props-panel.vue +0 -258
  45. package/packages/components/model/index.vue +0 -3425
  46. package/packages/components/model/readme.md +0 -31
  47. package/packages/components/model/utils/annotation-tool.js +0 -333
  48. package/packages/components/model/utils/cursor.js +0 -23
  49. package/packages/components/model/utils/detect-v1.js +0 -329
  50. package/packages/components/model/utils/index.js +0 -48
  51. package/packages/components/model/utils/threejs/measure-angle.js +0 -258
  52. package/packages/components/model/utils/threejs/measure-area.js +0 -281
  53. package/packages/components/model/utils/threejs/measure-distance.js +0 -209
  54. package/packages/components/model/utils/threejs/measure-volume.js +0 -97
@@ -1,504 +0,0 @@
1
- <template>
2
- <div>
3
- <div class="trigger-button">
4
- <el-button type="text" @click="triggerDialog"><i class="pre-img"></i>角色管理</el-button>
5
- </div>
6
-
7
- <!-- @handleClose="handleClose"
8
- @submitDialogData="submitDialogData" -->
9
-
10
- <com-dialog
11
- v-if="dialogVisible"
12
- dialog-title="角色管理"
13
- :visible="dialogVisible"
14
- :popup-width="'50%'"
15
- :footerDisabled="true"
16
- @handleClose="handleClose"
17
- >
18
- <el-row :gutter="10" class="mb8">
19
- <el-col :span="1.5">
20
- <el-button
21
- type="primary"
22
- icon="el-icon-plus "
23
- size="small"
24
- @click="handleAdd"
25
- v-hasPermi="[`project:role:add:proj:${defaultParams.projectId}`]"
26
- >新增</el-button
27
- >
28
- </el-col>
29
- </el-row>
30
-
31
- <el-table
32
- v-loading="loading"
33
- :data="roleList"
34
- max-height="65vh"
35
- @selection-change="handleSelectionChange"
36
- >
37
- <el-table-column label="序号" type="index" width="80" />
38
- <el-table-column
39
- label="角色名称"
40
- width="250"
41
- prop="roleName"
42
- :show-overflow-tooltip="true"
43
- />
44
- <el-table-column
45
- label="权限字符"
46
- prop="roleKey"
47
- :show-overflow-tooltip="true"
48
- width="200"
49
- />
50
- <el-table-column label="创建时间" prop="createTime">
51
- <template slot-scope="scope">
52
- <span>{{ parseTime(scope.row.createTime) }}</span>
53
- </template>
54
- </el-table-column>
55
- <el-table-column label="操作" class-name="small-padding fixed-width">
56
- <template slot-scope="{ row }">
57
- <el-button
58
- v-show="row.projectId"
59
- v-hasPermi="[`project:role:edit:proj:${projectId}`]"
60
- size="mini"
61
- type="text"
62
- @click="handleUpdate(row)"
63
- >编辑</el-button
64
- >
65
- <!-- builtIn:'0' 内置,'2' 非内置 -->
66
- <template v-if="row.builtIn === '2'">
67
- <el-button
68
- v-show="row.projectId"
69
- v-hasPermi="[`project:role:remove:proj:${projectId}`]"
70
- size="mini"
71
- type="text"
72
- @click="handleDelete(row)"
73
- >删除</el-button
74
- >
75
- </template>
76
- </template>
77
- </el-table-column>
78
- </el-table>
79
-
80
- <!-- <pagination
81
- v-show="total > 0"
82
- :total="total"
83
- :page.sync="queryParams.pageNum"
84
- :limit.sync="queryParams.pageSize"
85
- @pagination="getList"
86
- /> -->
87
- </com-dialog>
88
- <!-- 新增或编辑角色配置对话框 -->
89
- <!-- append-to-body -->
90
- <!-- :close-on-click-modal="false" -->
91
- <com-dialog
92
- v-if="dialogOperate.visible"
93
- :dialog-title="title"
94
- :visible="dialogOperate.visible"
95
- width="500px"
96
- @handleClose="handleOperateClose"
97
- @submitDialogData="submitForm"
98
- >
99
- <el-form ref="form" :model="form" :rules="rules" label-width="100px">
100
- <el-form-item label="角色名称" prop="roleName">
101
- <el-input v-trim v-model="form.roleName" placeholder="请输入角色名称" />
102
- </el-form-item>
103
- <el-form-item prop="roleKey">
104
- <span slot="label">
105
- <el-tooltip
106
- content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)"
107
- placement="top"
108
- >
109
- <i class="el-icon-question"></i>
110
- </el-tooltip>
111
- 权限字符
112
- </span>
113
- <el-input v-trim v-model="form.roleKey" placeholder="请输入权限字符" />
114
- </el-form-item>
115
- <!-- <el-form-item label="角色顺序" prop="roleSort">
116
- <el-input-number
117
- ref="refRoleSort"
118
- v-trim
119
- v-model="form.roleSort"
120
- controls-position="right"
121
- @input.native="roleSortCheck"
122
- />
123
- </el-form-item> -->
124
- <el-form-item label="菜单权限">
125
- <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event)"
126
- >展开/折叠</el-checkbox
127
- >
128
- <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event)"
129
- >全选/全不选</el-checkbox
130
- >
131
- <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event)"
132
- >父子联动</el-checkbox
133
- >
134
- <el-tree
135
- class="tree-border"
136
- :data="menuOptions"
137
- show-checkbox
138
- ref="menu"
139
- node-key="id"
140
- :check-strictly="!form.menuCheckStrictly"
141
- empty-text="加载中,请稍候"
142
- :props="defaultProps"
143
- ></el-tree>
144
- </el-form-item>
145
- <el-form-item label="备注">
146
- <el-input
147
- v-trim
148
- v-model="form.remark"
149
- type="textarea"
150
- maxlength="255"
151
- placeholder="请输入内容"
152
- ></el-input>
153
- </el-form-item>
154
- </el-form>
155
- </com-dialog>
156
- </div>
157
- </template>
158
-
159
- <script>
160
- import * as modelApi from '../api/index';
161
- import proRole from '@/api/pro-role/pro-role';
162
-
163
- export default {
164
- name: 'ProRole',
165
- computed: {
166
- projectId() {
167
- return this.defaultParams.projectId;
168
- },
169
- },
170
- components: {
171
- ComDialog: () => import('./com-dialogWrapper'),
172
- },
173
- watch: {
174
- // projectId(val) {
175
- // if (!val) return;
176
- // this.getList();
177
- // },
178
- },
179
- props: {
180
- defaultParams: {
181
- type: Object,
182
- default() {
183
- return {};
184
- },
185
- },
186
- },
187
- data() {
188
- return {
189
- dialogVisible: false,
190
- dialogOperate: {
191
- visible: false,
192
- },
193
- // 遮罩层
194
- loading: true,
195
- // 选中数组
196
- ids: [],
197
- // 非单个禁用
198
- single: true,
199
- // 非多个禁用
200
- multiple: true,
201
- // 显示搜索条件
202
- showSearch: true,
203
- // 总条数
204
- total: 0,
205
- // 角色表格数据
206
- roleList: [],
207
- // 弹出层标题
208
- title: '',
209
- // 是否显示弹出层
210
- open: false,
211
- menuExpand: false,
212
- menuNodeAll: false,
213
- deptExpand: true,
214
- deptNodeAll: false,
215
- // 日期范围
216
- dateRange: [],
217
- // 菜单列表
218
- menuOptions: [],
219
- // 查询参数
220
- queryParams: {
221
- pageNum: 1,
222
- pageSize: 10,
223
- roleName: undefined,
224
- roleKey: undefined,
225
- status: undefined,
226
- },
227
- // 表单参数
228
- form: {},
229
- defaultProps: {
230
- children: 'children',
231
- label: 'label',
232
- },
233
- // 表单校验
234
- rules: {
235
- roleName: [
236
- { required: true, message: '角色名称不能为空', trigger: 'change' },
237
- { max: 16, message: '角色名称不能大于16个字符', trigger: 'change' },
238
- ],
239
- roleKey: [{ required: true, message: '权限字符不能为空', trigger: 'change' }],
240
- // roleSort: [
241
- // { required: true, message: "角色顺序不能为空", trigger: "change" },
242
- // {
243
- // pattern: /^([0-9][0-9]{0,2}|1000)$/,
244
- // message: "请输入0-1000间的整数",
245
- // trigger: "change",
246
- // },
247
- // ],
248
- },
249
- roleNames: [],
250
- };
251
- },
252
- created() {
253
- this.getList();
254
- },
255
- methods: {
256
- triggerDialog() {
257
- this.dialogVisible = !this.dialogVisible;
258
- console.log(this.dialogVisible);
259
- },
260
- checkSelectable({ projectId }) {
261
- return Boolean(projectId);
262
- },
263
- // 查询角色列表
264
- getList() {
265
- // this.queryParams.projectId;
266
- const projectId = this.defaultParams.projectId;
267
- // console.log(this.defaultParams);
268
- this.loading = true;
269
- modelApi.getRoleList({ projectId }).then((response) => {
270
- this.roleList = response.rows;
271
- this.total = response.total;
272
- this.loading = false;
273
- });
274
- },
275
- // 查询菜单树结构
276
- getMenuTreeselect() {
277
- proRole.menuTreeselect().then((response) => {
278
- this.menuOptions = response;
279
- });
280
- },
281
- /* 弹窗 关闭 操作 */
282
- handleClose() {
283
- this.dialogVisible = false;
284
- },
285
- // 所有菜单节点数据
286
- getMenuAllCheckedKeys() {
287
- // 目前被选中的菜单节点
288
- let checkedKeys = this.$refs.menu.getCheckedKeys();
289
- // 半选中的菜单节点
290
- let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
291
- checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
292
- return checkedKeys;
293
- },
294
- // 根据角色ID查询菜单树结构
295
- getRoleMenuTreeselect(roleId) {
296
- return proRole.roleMenuTreeselect(this.projectId, roleId).then((response) => {
297
- this.menuOptions = response.menus;
298
- return response;
299
- });
300
- },
301
- // 取消按钮
302
- cancel() {
303
- this.open = false;
304
- this.reset();
305
- },
306
- // 表单重置
307
- reset() {
308
- if (this.$refs.menu != undefined) {
309
- this.$refs.menu.setCheckedKeys([]);
310
- }
311
- (this.menuExpand = false),
312
- (this.menuNodeAll = false),
313
- (this.deptExpand = true),
314
- (this.deptNodeAll = false),
315
- (this.form = {
316
- roleId: undefined,
317
- roleName: undefined,
318
- roleKey: undefined,
319
- // roleSort: 0,
320
- status: '0',
321
- menuIds: [],
322
- deptIds: [],
323
- menuCheckStrictly: true,
324
- deptCheckStrictly: true,
325
- remark: undefined,
326
- });
327
- this.resetForm('form');
328
- },
329
- // 搜索按钮操作
330
- handleQuery() {
331
- this.queryParams.pageNum = 1;
332
- this.queryParams.pageSize = 10;
333
- this.getList();
334
- },
335
- // 重置按钮操作
336
- resetQuery() {
337
- this.dateRange = [];
338
- this.resetForm('queryForm');
339
- this.handleQuery();
340
- },
341
- // 多选框选中数据
342
- handleSelectionChange(selection) {
343
- this.ids = selection.map((item) => item.roleId);
344
- this.roleNames = selection.map((item) => item.roleName);
345
- const flag = Boolean(selection.find((item) => item.builtIn === '0'));
346
- // this.single = selection.length != 1 || flag;
347
- this.single = selection.length != 1;
348
- this.multiple = !selection.length || flag;
349
- },
350
- // 树权限(展开/折叠)
351
- handleCheckedTreeExpand(value) {
352
- let treeList = this.menuOptions;
353
- for (let i = 0; i < treeList.length; i++) {
354
- this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
355
- }
356
- },
357
- // 树权限(全选/全不选)
358
- handleCheckedTreeNodeAll(value) {
359
- this.$refs.menu.setCheckedNodes(value ? this.menuOptions : []);
360
- },
361
- // 树权限(父子联动)
362
- handleCheckedTreeConnect(value) {
363
- this.form.menuCheckStrictly = value ? true : false;
364
- },
365
- // 新增按钮操作
366
- handleAdd() {
367
- this.reset();
368
- this.getMenuTreeselect();
369
- this.dialogOperate.visible = true;
370
- this.title = '新增角色';
371
- },
372
- /* 弹窗 关闭 操作 */
373
- handleOperateClose() {
374
- this.resetForm();
375
- this.dialogOperate.visible = false;
376
- },
377
- resetForm() {
378
- // this.reset();
379
- // this.$refs.form.resetFields();
380
- // this.dialogForm.userId = '';
381
- // this.dialogForm.roleId = '';
382
- // this.dialogForm.operateType = '';
383
- },
384
- // 编辑按钮操作
385
- handleUpdate(row) {
386
- this.dialogOperate.visible = true;
387
- this.reset();
388
- const roleId = row.roleId || this.ids;
389
- const roleMenu = this.getRoleMenuTreeselect(roleId);
390
- proRole.getRole(roleId).then((response) => {
391
- this.form = response;
392
- this.open = true;
393
- this.$nextTick(() => {
394
- roleMenu.then((res) => {
395
- let checkedKeys = res.checkedKeys;
396
- checkedKeys.forEach((v) => {
397
- this.$nextTick(() => {
398
- this.$refs.menu.setChecked(v, true, false);
399
- });
400
- });
401
- });
402
- });
403
- this.title = '编辑角色';
404
- });
405
- },
406
- // 分配用户操作
407
- // handleAuthUser: function (row) {
408
- // const roleId = row.roleId;
409
- // this.$router.push({
410
- // path: "/project/pro-config/pro-user/" + roleId,
411
- // query: {
412
- // projectId: this.projectId,
413
- // },
414
- // });
415
- // },
416
- // 提交按钮
417
- submitForm: function () {
418
- this.$refs['form'].validate((valid) => {
419
- if (valid) {
420
- this.form.projectId = Number(this.projectId);
421
- if (this.form.roleId != undefined) {
422
- this.form.menuIds = this.getMenuAllCheckedKeys();
423
- proRole.updateRole(this.form).then((response) => {
424
- this.$modal.msgSuccess('编辑成功');
425
- this.dialogOperate.visible = false;
426
- this.getList();
427
- });
428
- } else {
429
- this.form.menuIds = this.getMenuAllCheckedKeys();
430
- proRole.addRole(this.form).then((response) => {
431
- this.$modal.msgSuccess('新增成功');
432
- this.dialogOperate.visible = false;
433
- this.getList();
434
- });
435
- }
436
- }
437
- });
438
- },
439
- // 删除按钮操作
440
- handleDelete(row) {
441
- const roleIds = row.roleId || this.ids.join(',');
442
- const roleNames = row.roleName || this.roleNames;
443
- this.$confirm('确认删除角色 "' + roleNames + '"?', '移除', {
444
- type: 'error',
445
- })
446
- .then(() => {
447
- this.$modal.loading('正在删除,请稍候...');
448
- proRole
449
- .delRole({
450
- roleIds,
451
- projectId: this.defaultParams.projectId,
452
- })
453
- .then(() => {
454
- this.getList();
455
- this.$modal.msgSuccess('删除成功');
456
- })
457
- .finally(() => {
458
- this.$modal.closeLoading();
459
- });
460
- })
461
- .catch(() => {});
462
- },
463
- // 导出按钮操作
464
- handleExport() {
465
- this.download(
466
- 'system/role/export',
467
- {
468
- ...this.queryParams,
469
- },
470
- `role_${new Date().getTime()}.xlsx`,
471
- );
472
- },
473
- // 校验排序
474
- // roleSortCheck(val) {
475
- // const key = this.$refs.refRoleSort.displayValue;
476
- // if (val.data === null && key === "") {
477
- // this.$set(this.form, "roleSort", undefined);
478
- // } else {
479
- // this.$set(this.form, "roleSort", key);
480
- // }
481
- // if (this.form.roleSort) {
482
- // this.form.roleSort = this.form.roleSort.replace(/\D/g, "");
483
- // }
484
- // },
485
- },
486
- };
487
- </script>
488
-
489
- <style lang="scss" scoped>
490
- ::v-deep .trigger-button {
491
- span {
492
- display: flex;
493
- align-items: center;
494
- color: #2e3136;
495
- }
496
- .pre-img {
497
- background-image: url('../../../assets/proof/role@2x.png');
498
- width: 30px;
499
- height: 30px;
500
- display: inline-block;
501
- background-size: cover;
502
- }
503
- }
504
- </style>