fl-web-component 1.2.12 → 1.2.14

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 (52) hide show
  1. package/README.md +4 -0
  2. package/dist/fl-web-component.common.1.js.map +1 -1
  3. package/dist/fl-web-component.common.2.js.map +1 -1
  4. package/dist/fl-web-component.common.3.js.map +1 -1
  5. package/dist/fl-web-component.common.js +140 -86
  6. package/dist/fl-web-component.common.js.map +1 -1
  7. package/dist/fl-web-component.css +1 -1
  8. package/package.json +1 -1
  9. package/packages/components/com-graphics/index.vue +42 -6
  10. package/src/utils/flgltf-parser.js +68 -50
  11. package/src/utils/instance-parser.js +39 -30
  12. package/packages/components/button/index.vue +0 -26
  13. package/packages/components/model/api/index.js +0 -421
  14. package/packages/components/model/api/mock/detecttree.js +0 -58
  15. package/packages/components/model/api/mock/getmodel-line.js +0 -15834
  16. package/packages/components/model/api/mock/init.js +0 -1
  17. package/packages/components/model/api/mock/pbstree.js +0 -826
  18. package/packages/components/model/api/mock/topology.json +0 -3238
  19. package/packages/components/model/components/TextOverTooltip/index.vue +0 -84
  20. package/packages/components/model/components/annotation-toolbar.vue +0 -410
  21. package/packages/components/model/components/check-proofing-model.vue +0 -39
  22. package/packages/components/model/components/clipping-type.vue +0 -59
  23. package/packages/components/model/components/com-dialogWrapper/Readme.md +0 -53
  24. package/packages/components/model/components/com-dialogWrapper/index.vue +0 -114
  25. package/packages/components/model/components/detect-panel.vue +0 -339
  26. package/packages/components/model/components/detect-tree.vue +0 -445
  27. package/packages/components/model/components/firstPer-panel.vue +0 -109
  28. package/packages/components/model/components/header-button.vue +0 -470
  29. package/packages/components/model/components/imageViewer/index.vue +0 -126
  30. package/packages/components/model/components/import-model.vue +0 -127
  31. package/packages/components/model/components/location-panel.vue +0 -91
  32. package/packages/components/model/components/measure-type.vue +0 -59
  33. package/packages/components/model/components/pbs-tree.vue +0 -497
  34. package/packages/components/model/components/proof-config.vue +0 -72
  35. package/packages/components/model/components/proof-for-pc.vue +0 -126
  36. package/packages/components/model/components/proof-history.vue +0 -300
  37. package/packages/components/model/components/proof-panel-detail.vue +0 -568
  38. package/packages/components/model/components/proof-panel.vue +0 -846
  39. package/packages/components/model/components/proof-project-user.vue +0 -445
  40. package/packages/components/model/components/proof-publish.vue +0 -130
  41. package/packages/components/model/components/proof-role.vue +0 -504
  42. package/packages/components/model/components/props-panel.vue +0 -258
  43. package/packages/components/model/index.vue +0 -3425
  44. package/packages/components/model/readme.md +0 -31
  45. package/packages/components/model/utils/annotation-tool.js +0 -333
  46. package/packages/components/model/utils/cursor.js +0 -23
  47. package/packages/components/model/utils/detect-v1.js +0 -329
  48. package/packages/components/model/utils/index.js +0 -48
  49. package/packages/components/model/utils/threejs/measure-angle.js +0 -258
  50. package/packages/components/model/utils/threejs/measure-area.js +0 -281
  51. package/packages/components/model/utils/threejs/measure-distance.js +0 -209
  52. 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>