fl-web-component 0.1.0 → 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 (85) hide show
  1. package/README.md +35 -24
  2. package/dist/fl-web-component.common.js +27308 -65
  3. package/dist/fl-web-component.common.js.map +1 -1
  4. package/dist/fl-web-component.css +1 -1
  5. package/dist/fl-web-component.umd.js +27308 -65
  6. package/dist/fl-web-component.umd.js.map +1 -1
  7. package/dist/fl-web-component.umd.min.js +13 -1
  8. package/dist/fl-web-component.umd.min.js.map +1 -1
  9. package/package.json +80 -47
  10. package/packages/components/button/index.vue +16 -12
  11. package/packages/components/com-card/card-page.vue +102 -0
  12. package/packages/components/com-card/index.vue +53 -0
  13. package/packages/components/com-dialogWrapper/Readme.md +53 -0
  14. package/packages/components/com-dialogWrapper/index.vue +98 -0
  15. package/packages/components/com-flcanvas/components/bspline.js +91 -0
  16. package/packages/components/com-flcanvas/components/entityFormatting.js +503 -0
  17. package/packages/components/com-flcanvas/components/round10.js +24 -0
  18. package/packages/components/com-flcanvas/index.vue +259 -0
  19. package/packages/components/com-formDialog/Readme.md +409 -0
  20. package/packages/components/com-formDialog/index.vue +471 -0
  21. package/packages/components/com-graphics/index.vue +1073 -0
  22. package/packages/components/com-graphics/per-control.vue +109 -0
  23. package/packages/components/com-graphics/pid.vue +168 -0
  24. package/packages/components/com-page/index.vue +101 -0
  25. package/packages/components/com-selectTree/Readme.md +17 -0
  26. package/packages/components/com-selectTree/index.vue +236 -0
  27. package/packages/components/com-table/column-default.vue +71 -0
  28. package/packages/components/com-table/column-dynamic.vue +36 -0
  29. package/packages/components/com-table/column-menu.vue +71 -0
  30. package/packages/components/com-table/column-slot.vue +53 -0
  31. package/packages/components/com-table/column.vue +41 -0
  32. package/packages/components/com-table/config.js +21 -0
  33. package/packages/components/com-table/index.vue +281 -0
  34. package/packages/components/com-table/table-page.vue +106 -0
  35. package/packages/components/com-tabs/index.vue +50 -0
  36. package/packages/components/com-treeDynamic/Readme.md +271 -0
  37. package/packages/components/com-treeDynamic/index.vue +207 -0
  38. package/packages/components/model/api/index.js +59 -67
  39. package/packages/components/model/api/mock/detecttree.js +38 -38
  40. package/packages/components/model/api/mock/getmodel-line.js +15830 -79332
  41. package/packages/components/model/api/mock/init.js +1 -1
  42. package/packages/components/model/api/mock/pbstree.js +486 -495
  43. package/packages/components/model/components/TextOverTooltip/index.vue +3 -3
  44. package/packages/components/model/components/annotation-toolbar.vue +4 -19
  45. package/packages/components/model/components/check-proofing-model.vue +26 -29
  46. package/packages/components/model/components/clipping-type.vue +22 -14
  47. package/packages/components/model/components/com-dialogWrapper/index.vue +22 -25
  48. package/packages/components/model/components/detect-panel.vue +38 -26
  49. package/packages/components/model/components/detect-tree.vue +9 -24
  50. package/packages/components/model/components/firstPer-panel.vue +23 -25
  51. package/packages/components/model/components/header-button.vue +31 -107
  52. package/packages/components/model/components/imageViewer/index.vue +34 -35
  53. package/packages/components/model/components/import-model.vue +127 -127
  54. package/packages/components/model/components/location-panel.vue +25 -29
  55. package/packages/components/model/components/measure-type.vue +15 -15
  56. package/packages/components/model/components/pbs-tree.vue +139 -144
  57. package/packages/components/model/components/proof-config.vue +2 -10
  58. package/packages/components/model/components/proof-for-pc.vue +35 -32
  59. package/packages/components/model/components/proof-history.vue +136 -154
  60. package/packages/components/model/components/proof-panel-detail.vue +166 -165
  61. package/packages/components/model/components/proof-panel.vue +281 -205
  62. package/packages/components/model/components/proof-project-user.vue +13 -50
  63. package/packages/components/model/components/proof-publish.vue +130 -130
  64. package/packages/components/model/components/proof-role.vue +93 -124
  65. package/packages/components/model/components/props-panel.vue +63 -54
  66. package/packages/components/model/index.vue +3225 -3213
  67. package/packages/components/model/utils/annotation-tool.js +75 -82
  68. package/packages/components/model/utils/cursor.js +15 -10
  69. package/packages/components/model/utils/detect-v1.js +23 -35
  70. package/packages/components/model/utils/index.js +25 -25
  71. package/packages/components/model/utils/threejs/measure-angle.js +180 -180
  72. package/packages/components/model/utils/threejs/measure-area.js +196 -184
  73. package/packages/components/model/utils/threejs/measure-distance.js +154 -152
  74. package/packages/components/model/utils/threejs/measure-volume.js +64 -61
  75. package/patches/camera-controls+2.9.0.patch +63 -0
  76. package/src/assets/test.png +0 -0
  77. package/src/assets/worker.glb +0 -0
  78. package/src/main.js +27 -0
  79. package/src/utils/flgltf-parser.js +141 -0
  80. package/src/utils/instance-parser.js +402 -0
  81. package/src/utils/mock.js +84746 -0
  82. package/src/utils/threejs/measure-angle.js +240 -0
  83. package/src/utils/threejs/measure-area.js +249 -0
  84. package/src/utils/threejs/measure-distance.js +195 -0
  85. package/packages/index.js +0 -24
@@ -1,15 +1,7 @@
1
1
  <template>
2
2
  <div class="proof-config">
3
- <ImportModel
4
- ref="importModel"
5
- :defaultParams="defaultParams"
6
- @viewVersion="viewVersion"
7
- />
8
- <ProofHistory
9
- ref="proofHistory"
10
- @viewVersion="viewVersion"
11
- :defaultParams="defaultParams"
12
- />
3
+ <ImportModel ref="importModel" :defaultParams="defaultParams" @viewVersion="viewVersion" />
4
+ <ProofHistory ref="proofHistory" @viewVersion="viewVersion" :defaultParams="defaultParams" />
13
5
  <ProofProjectUser :defaultParams="defaultParams" />
14
6
  <ProofRole :defaultParams="defaultParams" />
15
7
  <ProofPublish
@@ -12,19 +12,19 @@
12
12
  <script>
13
13
  import { setToken } from '@/utils/auth';
14
14
  import * as modelApi from '../api/index';
15
- import ProofPanel from './proof-panel.vue'
15
+ import ProofPanel from './proof-panel.vue';
16
16
  export default {
17
17
  data() {
18
18
  return {
19
19
  defaultParams: {
20
- projectId: "",
21
- stageId: "",
22
- client: "",
23
- }
20
+ projectId: '',
21
+ stageId: '',
22
+ client: '',
23
+ },
24
24
  };
25
25
  },
26
26
  components: {
27
- ProofPanel
27
+ ProofPanel,
28
28
  },
29
29
  created() {
30
30
  this.initDefaultParams();
@@ -40,51 +40,54 @@ export default {
40
40
  this.defaultParams.token = this.$route.query.token;
41
41
  // this.defaultParams.toProjectId = this.$route.query.toProjectId;
42
42
 
43
- if(this.defaultParams.token){
43
+ if (this.defaultParams.token) {
44
44
  setToken(this.defaultParams.token);
45
45
  }
46
46
  this.getProofProjectId();
47
47
  },
48
48
  // 获取数据
49
49
  getData() {
50
- if (typeof qt !== "undefined") {
50
+ if (typeof qt !== 'undefined') {
51
51
  let that = this;
52
- new that.QWebChannel(qt.webChannelTransport, channel => {
52
+ new that.QWebChannel(qt.webChannelTransport, (channel) => {
53
53
  // 获取Qt注册的对象,设置到主窗口
54
54
  window.webTransport = channel.objects.webTransport;
55
55
  // 接收 C++ 发送的消息
56
- webTransport.SendMessageToWeb.connect(message => {
56
+ webTransport.SendMessageToWeb.connect((message) => {
57
57
  that.dataLoading = true;
58
58
  that.paraObj = JSON.parse(message);
59
59
  });
60
60
  });
61
61
  } else {
62
- console.error("初始化qwebchannel失败");
62
+ console.error('初始化qwebchannel失败');
63
63
  }
64
64
  },
65
- getProofProjectId(){
66
- modelApi.getProofProjectId({
67
- toProjectId: this.$route.query.projectId
68
- }).then(res => {
69
- if(res.code === 200){
70
- if(res.data !== 0){
65
+ getProofProjectId() {
66
+ modelApi
67
+ .getProofProjectId({
68
+ toProjectId: this.$route.query.projectId,
69
+ })
70
+ .then((res) => {
71
+ if (res.code === 200) {
72
+ if (res.data !== 0) {
71
73
  this.defaultParams.projectId = res.data;
72
74
  this.$refs.proofPanel.init();
73
- }else{
74
- this.$message({ type: 'error', message: '校审项目不存在' })
75
+ } else {
76
+ this.$message({ type: 'error', message: '校审项目不存在' });
77
+ }
78
+ } else {
79
+ this.$message({ type: 'error', message: res.msg });
75
80
  }
76
- }else{
77
- this.$message({ type: 'error', message: res.msg })
78
- }
79
- }).catch(err => {
80
- console.log(err)
81
- // this.$message({ type: 'error', message: err.msg })
82
- });
81
+ })
82
+ .catch((err) => {
83
+ console.log(err);
84
+ // this.$message({ type: 'error', message: err.msg })
85
+ });
83
86
  },
84
87
  handleProofSavelBtn(data) {
85
88
  const postData = {
86
89
  ...data,
87
- stageId: this.defaultParams.stageId
90
+ stageId: this.defaultParams.stageId,
88
91
  };
89
92
  if (_.isEmpty(data.id)) {
90
93
  postData.projectId = this.defaultParams.projectId;
@@ -97,14 +100,14 @@ export default {
97
100
  // const { cameraPosition, cameraTarget } = JSON.parse(position);
98
101
 
99
102
  // 向客户端发送数据
100
- if (typeof qt !== "undefined") {
101
- new this.QWebChannel(qt.webChannelTransport, function(channel) {
103
+ if (typeof qt !== 'undefined') {
104
+ new this.QWebChannel(qt.webChannelTransport, function (channel) {
102
105
  // 获取Qt注册的对象,设置到主窗口
103
106
  window.webTransport = channel.objects.webTransport;
104
107
  webTransport.AcceptWebData(position);
105
108
  });
106
109
  } else {
107
- console.error("初始化qwebchannel失败");
110
+ console.error('初始化qwebchannel失败');
108
111
  }
109
112
  // // 视点
110
113
  // this.animateCamera(
@@ -115,8 +118,8 @@ export default {
115
118
  // cameraTarget.y,
116
119
  // cameraTarget.z
117
120
  // );
118
- }
119
- }
121
+ },
122
+ },
120
123
  };
121
124
  </script>
122
125
 
@@ -1,46 +1,28 @@
1
1
  <template>
2
2
  <div>
3
- <div class="trigger-button">
4
- <el-button type="text" @click="triggerDialog"
5
- ><i class="pre-img"></i>校审历史</el-button
6
- >
3
+ <div class="trigger-button">
4
+ <el-button type="text" @click="triggerDialog"><i class="pre-img"></i>校审历史</el-button>
7
5
  </div>
8
6
  <com-dialog
9
7
  v-if="dialogVisible"
10
8
  dialog-title="校审历史"
11
9
  :visible="dialogVisible"
12
10
  :popup-width="'50%'"
13
- :footerDisabled="true"
11
+ :footerDisabled="true"
14
12
  @handleClose="handleClose"
15
13
  @submitDialogData="submitDialogData"
16
14
  >
17
- <el-table
18
- max-height="50vh"
19
- v-loading="loading"
20
- :data="tableData"
21
- >
15
+ <el-table max-height="50vh" v-loading="loading" :data="tableData">
22
16
  <el-table-column label="序号" type="index" width="80" />
23
17
 
24
- <el-table-column
25
- label="校审版本名称"
26
- prop="name"
27
- show-overflow-tooltip
28
- />
29
- <el-table-column
30
- label="更新时间"
31
- prop="updateTime"
32
- show-overflow-tooltip
33
- />
18
+ <el-table-column label="校审版本名称" prop="name" show-overflow-tooltip />
19
+ <el-table-column label="更新时间" prop="updateTime" show-overflow-tooltip />
34
20
  <!-- <el-table-column
35
21
  label="校审模型名称"
36
22
  prop="toVersion"
37
23
  show-overflow-tooltip
38
24
  /> -->
39
- <el-table-column
40
- label="操作"
41
- width="200"
42
- class-name="small-padding fixed-width"
43
- >
25
+ <el-table-column label="操作" width="200" class-name="small-padding fixed-width">
44
26
  <template slot-scope="scope">
45
27
  <el-button size="mini" type="text" @click="handleViewVersion(scope.row)"
46
28
  >查看</el-button
@@ -48,20 +30,21 @@
48
30
  <el-button size="mini" disabled type="text" @click="handleDownload(scope.row)"
49
31
  >下载报告</el-button
50
32
  >
51
- <el-button size="mini" type="text" @click="handleDelete(scope.row)"
52
- v-hasPermi="[
53
- `project:version:remove:proj:${defaultParams.projectId}`,
54
- ]"
33
+ <el-button
34
+ size="mini"
35
+ type="text"
36
+ @click="handleDelete(scope.row)"
37
+ v-hasPermi="[`project:version:remove:proj:${defaultParams.projectId}`]"
55
38
  >删除</el-button
56
39
  >
57
40
  </template>
58
41
  </el-table-column>
59
42
  </el-table>
60
43
  </com-dialog>
61
- <div v-show="historyDialogVisible" class="history-dialog">
62
- <div class="history-title">{{ historyVersionName }}</div>
63
- <el-button type="text" @click="exitViewVersion">退出历史</el-button>
64
- </div>
44
+ <div v-show="historyDialogVisible" class="history-dialog">
45
+ <div class="history-title">{{ historyVersionName }}</div>
46
+ <el-button type="text" @click="exitViewVersion">退出历史</el-button>
47
+ </div>
65
48
  </div>
66
49
  </template>
67
50
 
@@ -72,26 +55,26 @@ export default {
72
55
  data() {
73
56
  return {
74
57
  dialogVisible: false,
75
- historyDialogVisible: false,
58
+ historyDialogVisible: false,
76
59
  tableData: [],
77
- loading: true,
78
- historyVersionName: '',
60
+ loading: true,
61
+ historyVersionName: '',
79
62
  };
80
63
  },
81
64
  components: {
82
65
  ComDialog: () => import('./com-dialogWrapper'),
83
66
  },
84
67
  props: {
85
- defaultParams: {
68
+ defaultParams: {
86
69
  type: Object,
87
70
  default() {
88
71
  return {};
89
72
  },
90
73
  },
91
- },
92
- mounted() {
93
- this.getList();
94
- },
74
+ },
75
+ mounted() {
76
+ this.getList();
77
+ },
95
78
  methods: {
96
79
  triggerDialog() {
97
80
  this.dialogVisible = !this.dialogVisible;
@@ -109,83 +92,84 @@ export default {
109
92
  handleClose() {
110
93
  this.dialogVisible = false;
111
94
  },
112
- getList(){
113
- console.log('getList')
114
- getProofHistoryList(this.defaultParams).then((res) => {
115
- if(res.code == 200){
116
- this.tableData = res.rows;
117
- }else{
118
- this.$message({
119
- type: "error",
120
- message: res.msg,
121
- });
122
- }
123
- }).finally(() => {
124
- this.loading = false;
95
+ getList() {
96
+ console.log('getList');
97
+ getProofHistoryList(this.defaultParams)
98
+ .then((res) => {
99
+ if (res.code == 200) {
100
+ this.tableData = res.rows;
101
+ } else {
102
+ this.$message({
103
+ type: 'error',
104
+ message: res.msg,
105
+ });
106
+ }
107
+ })
108
+ .finally(() => {
109
+ this.loading = false;
125
110
 
126
- // 查看历史校审版本
127
- const proofHistoryVersion = localStorage.getItem('proofHistoryVersion');
128
- if(proofHistoryVersion){
129
- this.historyDialogVisible = true;
130
- this.historyVersionName = proofHistoryVersion;
131
- }
132
- });
133
- },
134
- handleDelete(item){
111
+ // 查看历史校审版本
112
+ const proofHistoryVersion = localStorage.getItem('proofHistoryVersion');
113
+ if (proofHistoryVersion) {
114
+ this.historyDialogVisible = true;
115
+ this.historyVersionName = proofHistoryVersion;
116
+ }
117
+ });
118
+ },
119
+ handleDelete(item) {
135
120
  this.$confirm('将删除版本 "' + item.name + '",是否继续?', '移除', {
136
121
  confirmButtonText: '确定',
137
122
  cancelButtonText: '取消',
138
- type: 'error'
139
- }).then(() => {
140
- const { id } = item;
141
- deleteProofHistory({
123
+ type: 'error',
124
+ })
125
+ .then(() => {
126
+ const { id } = item;
127
+ deleteProofHistory({
142
128
  ids: id,
143
129
  })
144
- .then((res) => {
145
- if (res.code != 200) {
130
+ .then((res) => {
131
+ if (res.code != 200) {
132
+ this.$message({
133
+ type: 'error',
134
+ message: res.msg,
135
+ });
136
+ } else {
137
+ this.getList(this.defaultParams);
138
+ this.$message({
139
+ type: 'success',
140
+ message: res.msg,
141
+ });
142
+ }
143
+ })
144
+ .catch((res) => {
146
145
  this.$message({
147
- type: "error",
146
+ type: 'error',
148
147
  message: res.msg,
149
148
  });
150
- } else {
151
-
152
- this.getList(this.defaultParams);
153
- this.$message({
154
- type: "success",
155
- message: res.msg,
156
- });
157
- }
158
- })
159
- .catch((res) => {
160
- this.$message({
161
- type: "error",
162
- message: res.msg,
163
149
  });
164
- });
165
- }).catch(() => {
166
- });
167
- },
168
- handleDownload(item){
169
- },
170
- handleViewVersion(item){
171
- this.historyVersionName = item.name;
172
- // this.triggerDialog()
173
- // this.dialogVisible = false;
174
- // this.historyDialogVisible = true;
175
- localStorage.setItem('proofHistoryVersion', item.name)
150
+ })
151
+ .catch(() => {});
152
+ },
153
+ handleDownload(item) {},
154
+ handleViewVersion(item) {
155
+ this.historyVersionName = item.name;
156
+ // this.triggerDialog()
157
+ // this.dialogVisible = false;
158
+ // this.historyDialogVisible = true;
159
+ localStorage.setItem('proofHistoryVersion', item.name);
176
160
  this.$message({
177
- type: "success",
161
+ type: 'success',
178
162
  message: '正在切换历史版本',
179
163
  });
180
164
  setTimeout(() => {
181
- this.$emit('viewVersion', item)
182
- }, 500)
183
- },
184
- exitViewVersion(){
185
- this.historyDialogVisible = false;
186
- localStorage.removeItem('proofHistoryVersion')
187
- this.$emit('viewVersion', null)
188
- }
165
+ this.$emit('viewVersion', item);
166
+ }, 500);
167
+ },
168
+ exitViewVersion() {
169
+ this.historyDialogVisible = false;
170
+ localStorage.removeItem('proofHistoryVersion');
171
+ this.$emit('viewVersion', null);
172
+ },
189
173
  },
190
174
  };
191
175
  </script>
@@ -209,62 +193,61 @@ export default {
209
193
  ::v-deep .el-table {
210
194
  display: flex;
211
195
  flex-direction: column;
212
- font-size: 14px;
196
+ font-size: 14px;
213
197
  line-height: 20px;
214
- color: #2E3136;
198
+ color: #2e3136;
215
199
 
216
- // .el-table th{
217
- // background: none;
218
- // }
219
- // .el-table tr{
220
- // background: none;
221
- // }
222
- // .el-table thead{
223
- // tr{
224
- // color: #2E3136;
225
- // }
226
- // }
227
- .el-table th.el-table__cell{
228
- background: none;
229
- }
200
+ // .el-table th{
201
+ // background: none;
202
+ // }
203
+ // .el-table tr{
204
+ // background: none;
205
+ // }
206
+ // .el-table thead{
207
+ // tr{
208
+ // color: #2E3136;
209
+ // }
210
+ // }
211
+ .el-table th.el-table__cell {
212
+ background: none;
213
+ }
230
214
  .el-table__header-wrapper {
231
215
  flex-shrink: 0;
232
216
  }
233
217
  .el-table__body-wrapper {
234
218
  flex-grow: 1;
235
219
  .el-table__row {
236
- height: 52px;;
220
+ height: 52px;
237
221
  background-color: #fff !important;
238
222
  }
239
223
  }
240
224
  .el-table__header-wrapper .el-table__header th,
241
225
  .el-table__fixed-header-wrapper .el-table__header th {
242
- background-color: #F8F8F8 !important;
243
- color: #2E3136;
244
- height: 52px;;
226
+ background-color: #f8f8f8 !important;
227
+ color: #2e3136;
228
+ height: 52px;
245
229
  box-sizing: border-box;
246
230
  padding: 0;
247
- font-size: 14px;
248
- line-height: 20px;
249
- color: #2E3136;
250
-
231
+ font-size: 14px;
232
+ line-height: 20px;
233
+ color: #2e3136;
251
234
  }
252
235
 
253
236
  .el-table__fixed-body-wrapper {
254
237
  .el-table__row {
255
- height: 52px;;
238
+ height: 52px;
256
239
  }
257
240
  }
258
-
241
+
259
242
  .el-table__body tr.hover-row {
260
243
  td.el-table__cell {
261
- background-color: #F6F9FA;
244
+ background-color: #f6f9fa;
262
245
  }
263
246
  }
264
247
 
265
248
  .el-table__cell:not(.is-center):not(.is-hidden) {
266
249
  button.el-button--text {
267
- color: #008DE9;
250
+ color: #008de9;
268
251
  }
269
252
  }
270
253
 
@@ -273,9 +256,8 @@ export default {
273
256
  height: 30px;
274
257
  }
275
258
 
276
-
277
259
  .el-dropdown-link {
278
- color: #008DE9;
260
+ color: #008de9;
279
261
  }
280
262
  // 头部多选按钮
281
263
  thead .el-table-column--selection {
@@ -285,34 +267,34 @@ export default {
285
267
  }
286
268
  }
287
269
 
288
- .history-dialog{
270
+ .history-dialog {
289
271
  justify-content: space-between;
290
272
  align-items: center;
291
273
  position: fixed;
292
274
  width: 450px;
293
- height: 50px;
275
+ height: 50px;
294
276
  background-color: rgb(255, 255, 255);
295
277
  border-radius: 6px;
296
278
  box-shadow: 4px 4px 12px 0px rgba(0, 0, 0, 0.18);
297
279
  display: flex;
298
- padding: 0 20px;
299
- .history-title{
300
- font-size: 18px;
301
- font-weight: 700;
302
- }
280
+ padding: 0 20px;
281
+ .history-title {
282
+ font-size: 18px;
283
+ font-weight: 700;
284
+ }
303
285
  }
304
- ::v-deep .trigger-button{
305
- span{
306
- display: flex;
307
- align-items: center;
308
- color: #2E3136;
309
- }
310
- .pre-img {
311
- background-image: url('../../../assets/proof/history@2x.png');
312
- width: 30px;
313
- height: 30px;
314
- display: inline-block;
315
- background-size: cover;
316
- }
286
+ ::v-deep .trigger-button {
287
+ span {
288
+ display: flex;
289
+ align-items: center;
290
+ color: #2e3136;
291
+ }
292
+ .pre-img {
293
+ background-image: url('../../../assets/proof/history@2x.png');
294
+ width: 30px;
295
+ height: 30px;
296
+ display: inline-block;
297
+ background-size: cover;
298
+ }
317
299
  }
318
300
  </style>