fl-web-component 1.2.12 → 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 (52) hide show
  1. package/README.md +2 -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 +129 -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 +31 -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,114 +0,0 @@
1
- <!--
2
- * @Author: fengyang9326@163.com
3
- * @Date: 2024-05-13 10:36:07
4
- * @LastEditors: fengyang9326@163.com
5
- * @LastEditTime: 2024-05-20 09:34:46
6
- * @FilePath: /web/components/com-dialogWrapper/index.vue
7
- * @Description: 弹窗封装
8
- -->
9
- <template>
10
- <el-dialog
11
- :visible.sync="dialogVisible"
12
- :title="dialogTitle"
13
- :fullscreen="dialogFullScreen"
14
- :close-on-click-modal="false"
15
- :before-close="handleClose"
16
- :width="popupWidth"
17
- :append-to-body="appendToBody"
18
- :modal-append-to-body="modalAppendToBody"
19
- >
20
- <!-- 弹窗title -->
21
- <template slot="title">
22
- <div class="custom_dialog_header">
23
- <span class="el_dialog_title">{{ dialogTitle }}</span>
24
- <div class="custom_dialog_menu" @click="dialogFullScreen = !dialogFullScreen">
25
- <!-- <svg-icon :icon-class="dialogFullScreen?'exit-fullscreen':'fullscreen'" /> -->
26
- </div>
27
- </div>
28
- </template>
29
-
30
- <!-- 弹窗插槽 -->
31
- <slot>
32
- <p>弹框自定义的内容</p>
33
- </slot>
34
-
35
- <!-- 弹窗操作 -->
36
- <div v-if="!footerDisabled" slot="footer" class="dialog-footer">
37
- <el-button @click="handleClose">取 消</el-button>
38
- <el-button type="primary" @click="handleSubmit">确 定</el-button>
39
- </div>
40
- </el-dialog>
41
- </template>
42
-
43
- <script>
44
- export default {
45
- name: 'DialogWrapper',
46
- components: {},
47
- props: {
48
- /* 弹窗 title标题 */
49
- dialogTitle: {
50
- type: String,
51
- default: '标题',
52
- },
53
- /* 弹窗 width宽度 */
54
- popupWidth: {
55
- type: String,
56
- default: '35%',
57
- },
58
- /* 弹窗 显示隐藏状态 */
59
- visible: {
60
- type: Boolean,
61
- default: false,
62
- },
63
- footerDisabled: {
64
- type: Boolean,
65
- default: false,
66
- },
67
- appendToBody: {
68
- type: Boolean,
69
- default: true,
70
- },
71
- modalAppendToBody: {
72
- type: Boolean,
73
- default: true,
74
- },
75
- },
76
- data() {
77
- return {
78
- openDialog: false,
79
- dialogFullScreen: false,
80
- };
81
- },
82
- computed: {
83
- dialogVisible: {
84
- get() {
85
- console.log(this.visible);
86
- // 初始化数据
87
- if (this.visible) Object.assign(this.$data, this.$options.data());
88
- return this.visible;
89
- },
90
- set(val) {
91
- // 当visible改变的时候,触发父组件的 updateVisible方法,
92
- // 在该方法中更改传入子组件的 centerDialogVisible的值
93
- this.$emit('updateVisible', val);
94
- },
95
- },
96
- },
97
- watch: {},
98
- created() {
99
- console.log('test');
100
- },
101
- mounted() {},
102
- methods: {
103
- /* 关闭弹窗 */
104
- handleClose() {
105
- this.$emit('handleClose');
106
- },
107
- /* 弹窗 确认 操作 */
108
- handleSubmit() {
109
- this.$emit('submitDialogData');
110
- },
111
- },
112
- };
113
- </script>
114
- <style lang="scss" scoped></style>
@@ -1,339 +0,0 @@
1
- <template>
2
- <div class="box-card" style="height: calc(100vh - 134px)">
3
- <div class="box-title">
4
- <span class="box-title-desc">碰撞报告</span>
5
- <i
6
- class="el-icon-close box-title-close"
7
- style="cursor: pointer"
8
- @click="$emit('rightOperation', 'detect')"
9
- />
10
- </div>
11
- <detect-tree
12
- v-if="showDetectTree"
13
- ref="detectTree"
14
- :treeData="treeData"
15
- @locate="locate"
16
- @highlight="highlight"
17
- />
18
- <div class="process-container" v-else>
19
- <el-progress
20
- class="process-percent"
21
- type="circle"
22
- :percentage="processPercent"
23
- :color="processPercentStatus"
24
- ></el-progress>
25
- <p v-if="!processCompleted">碰撞报告生成中...</p>
26
- <div v-else>
27
- <el-row>
28
- <el-col>
29
- <el-button @click="initDetect">重新生成</el-button>
30
- <el-button @click="viewReport" type="primary">查看报告</el-button>
31
- </el-col>
32
- </el-row>
33
- </div>
34
- </div>
35
- </div>
36
- </template>
37
- <script>
38
- import * as modelApi from '../api/index';
39
- import detectTree from './detect-tree.vue';
40
-
41
- export default {
42
- name: 'Details',
43
- components: {
44
- DetectTree: detectTree,
45
- },
46
- props: {
47
- defaultParams: {
48
- type: Object,
49
- default() {
50
- return {};
51
- },
52
- },
53
- treeData: {
54
- typeof: Array,
55
- default() {
56
- return [];
57
- },
58
- },
59
- },
60
- data() {
61
- return {
62
- basicData: [],
63
- propData: [],
64
- docData: [],
65
- otherData: [],
66
- activeNames: ['基本信息'],
67
- processPercent: 0,
68
- // treeData: [],
69
- showDetectTree: false,
70
- };
71
- },
72
- mounted() {
73
- this.init(
74
- { queryParams: { ...this.defaultParams, rebuild: 0 } },
75
- { contentType: 'application/x-www-form-urlencoded' },
76
- );
77
- },
78
- computed: {
79
- processPercentStatus() {
80
- return this.processCompleted ? '#5cb87a' : '';
81
- },
82
- processCompleted() {
83
- return this.processPercent == 100;
84
- },
85
- },
86
- watch: {
87
- treeData(val) {
88
- this.processPercent = 100;
89
- },
90
- },
91
- methods: {
92
- init(params, options) {
93
- this.processPercent = this.getRandomPercentage();
94
- // console.log(params)
95
- // params.queryParams.projectId = +params.queryParams.projectId;
96
-
97
- this.$emit('getDetectCheckTree');
98
- // modelApi
99
- // .getDetectCheckTree(params, options)
100
- // .then((res) => {
101
- // // this.treeData = res.data;
102
- // // this.$emit('setTreeData', res.data);
103
- // // this.showReportDialog(res);
104
- // })
105
- // .catch((err) => {
106
- // // this.$message({
107
- // // type: 'error',
108
- // // message: err.msg,
109
- // // });
110
- // })
111
- // .finally(() => {
112
- // this.processPercent = 100
113
- // });
114
- },
115
- showReportDialog(treeData) {
116
- this.$confirm('已完成', '碰撞报告', {
117
- confirmButtonText: '查看报告',
118
- cancelButtonText: '重新生成',
119
- type: 'success',
120
- distinguishCancelAndClose: true,
121
- })
122
- .then((res) => {
123
- this.$emit('showReport', treeData);
124
- })
125
- .catch((action) => {
126
- action == 'cancel' &&
127
- this.init(
128
- { queryParams: { ...this.defaultParams, rebuild: 1 } },
129
- { contentType: 'application/x-www-form-urlencoded' },
130
- );
131
- });
132
- },
133
- initDetect() {
134
- this.init(
135
- { queryParams: { ...this.defaultParams, rebuild: 1 } },
136
- { contentType: 'application/x-www-form-urlencoded' },
137
- );
138
- },
139
- viewReport() {
140
- this.showDetectTree = true;
141
- },
142
- // 生成一个0到100之间的随机整数百分比
143
- getRandomPercentage() {
144
- return Math.floor(Math.random() * 100);
145
- },
146
- locate(node, data) {
147
- this.$emit('locate', node, data);
148
- },
149
- highlight(node, data) {
150
- this.$emit('highlight', node, data);
151
- },
152
- },
153
- destroyed() {
154
- window.onresize = null;
155
- },
156
- };
157
- </script>
158
- <style lang="scss" scoped>
159
- .box-title {
160
- font-size: 16px;
161
- // color: #fff;
162
- }
163
-
164
- .details-box {
165
- // position: fixed;
166
- // height: calc(100% - 200px);
167
- width: 300px;
168
- padding: 30px 20px;
169
- // right: 76px;
170
- // top: 100px;
171
- border: none;
172
- background: #1e1e1e99;
173
- border-radius: 10px;
174
- box-sizing: border-box;
175
- z-index: 10;
176
- }
177
-
178
- .box-card {
179
- // position: fixed;
180
- // height: calc(100% - 200px);
181
- // width: 300px;
182
- // padding: 30px 20px;
183
- // right: 76px;
184
- // top: 100px;
185
- background: rgba(0, 0, 0, 0);
186
- border: none;
187
- // border-radius: 10px;
188
- // box-sizing: border-box;
189
- }
190
-
191
- ::v-deep .el-card__body {
192
- height: 100%;
193
- overflow: auto;
194
- padding: 0;
195
- }
196
-
197
- .title {
198
- font-size: 16px;
199
- }
200
-
201
- ::v-deep .el-collapse-item__content {
202
- padding-bottom: 0px;
203
- }
204
-
205
- .text {
206
- font-size: 12px;
207
- // color: #fff;
208
- }
209
-
210
- .item {
211
- padding: 5px;
212
-
213
- span {
214
- word-break: break-all;
215
- }
216
- }
217
-
218
- .info-item {
219
- display: grid;
220
- grid-template-columns: 55% 45%;
221
- }
222
-
223
- .property-box {
224
- margin-bottom: 10px;
225
- }
226
-
227
- .property-title {
228
- line-height: 24px;
229
- font-size: 14px;
230
- color: #fff;
231
- border-bottom: 1px solid #fff;
232
- margin-bottom: 10px;
233
- }
234
-
235
- .empty-tips {
236
- color: #fff;
237
- text-align: center;
238
- }
239
-
240
- ::v-deep .has-gutter {
241
- background: rgba(44, 76, 124, 0.2);
242
- }
243
-
244
- ::v-deep .el-collapse {
245
- border-top: none;
246
- }
247
-
248
- ::v-deep .el-collapse-item__header {
249
- height: 36px;
250
- line-height: 36px;
251
- background: unset;
252
- // color: #fff;
253
- font-size: 14px;
254
- }
255
-
256
- ::v-deep .el-collapse-item__wrap {
257
- background: rgba(30, 30, 30, 0.6);
258
- }
259
-
260
- ::v-deep .el-collapse-item__arrow {
261
- margin: 0 20px 0 auto;
262
- }
263
-
264
- .collapse-img {
265
- display: inline-block;
266
- vertical-align: middle;
267
- margin-right: 10px;
268
- }
269
-
270
- .doc-item {
271
- display: flex;
272
- flex-direction: row;
273
- }
274
-
275
- .doc-name {
276
- flex: 1;
277
- white-space: nowrap;
278
- text-overflow: ellipsis;
279
- overflow: hidden;
280
- }
281
-
282
- .view-doc {
283
- width: 40px;
284
- text-align: center;
285
- color: #3afdff;
286
- cursor: pointer;
287
- }
288
-
289
- .property-key,
290
- .property-value {
291
- word-wrap: break-word;
292
- word-break: break-all;
293
- white-space: nowrap;
294
- overflow: hidden;
295
- text-overflow: ellipsis;
296
- }
297
-
298
- .property-value {
299
- text-indent: 5px;
300
- }
301
-
302
- .box-card {
303
- padding-top: 0;
304
- padding-bottom: 0;
305
- background: #fff;
306
- width: 360px;
307
- .box-title {
308
- display: flex;
309
- justify-content: space-between;
310
- align-items: center;
311
- height: 52px;
312
- line-height: 52px;
313
- padding-left: 8px;
314
- padding-right: 8px;
315
- border-bottom: 1px solid #dfdfdf;
316
- .box-title-desc {
317
- font-size: 14px;
318
- font-weight: bold;
319
- }
320
- .box-title-close {
321
- font-size: 24px;
322
- }
323
- }
324
- }
325
- .process-container {
326
- display: flex;
327
- flex-direction: column;
328
- justify-content: center;
329
- align-items: center;
330
- height: calc(75% - 54px);
331
- .process-percent {
332
- padding: 20px;
333
- }
334
- }
335
- ::v-deep .el-progress__text {
336
- font-size: 32px !important;
337
- font-weight: bold;
338
- }
339
- </style>