fl-web-component 0.1.1 → 1.0.1

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 (78) hide show
  1. package/dist/fl-web-component.common.js +14751 -54489
  2. package/dist/fl-web-component.common.js.map +1 -1
  3. package/dist/fl-web-component.css +1 -1
  4. package/dist/fl-web-component.umd.js +14751 -54489
  5. package/dist/fl-web-component.umd.js.map +1 -1
  6. package/dist/fl-web-component.umd.min.js +3 -3
  7. package/dist/fl-web-component.umd.min.js.map +1 -1
  8. package/package.json +28 -5
  9. package/packages/components/button/index.vue +18 -17
  10. package/packages/components/com-card/card-page.vue +51 -49
  11. package/packages/components/com-card/index.vue +20 -21
  12. package/packages/components/com-dialogWrapper/index.vue +18 -21
  13. package/packages/components/com-flcanvas/components/bspline.js +91 -0
  14. package/packages/components/com-flcanvas/components/entityFormatting.js +503 -0
  15. package/packages/components/com-flcanvas/components/round10.js +24 -0
  16. package/packages/components/com-flcanvas/index.vue +259 -0
  17. package/packages/components/com-formDialog/index.vue +76 -75
  18. package/packages/components/com-graphics/index.vue +1057 -226
  19. package/packages/components/com-graphics/per-control.vue +109 -0
  20. package/packages/components/com-graphics/pid.vue +168 -0
  21. package/packages/components/com-page/index.vue +33 -33
  22. package/packages/components/com-selectTree/index.vue +61 -63
  23. package/packages/components/com-table/column-default.vue +9 -14
  24. package/packages/components/com-table/column-dynamic.vue +4 -8
  25. package/packages/components/com-table/column-menu.vue +8 -8
  26. package/packages/components/com-table/column-slot.vue +4 -4
  27. package/packages/components/com-table/column.vue +7 -15
  28. package/packages/components/com-table/config.js +9 -9
  29. package/packages/components/com-table/index.vue +35 -35
  30. package/packages/components/com-table/table-page.vue +17 -17
  31. package/packages/components/com-tabs/index.vue +19 -19
  32. package/packages/components/com-treeDynamic/index.vue +45 -45
  33. package/packages/components/model/api/index.js +59 -67
  34. package/packages/components/model/api/mock/detecttree.js +38 -38
  35. package/packages/components/model/api/mock/getmodel-line.js +15830 -79332
  36. package/packages/components/model/api/mock/init.js +1 -1
  37. package/packages/components/model/api/mock/pbstree.js +486 -495
  38. package/packages/components/model/components/TextOverTooltip/index.vue +3 -3
  39. package/packages/components/model/components/annotation-toolbar.vue +4 -19
  40. package/packages/components/model/components/check-proofing-model.vue +26 -29
  41. package/packages/components/model/components/clipping-type.vue +22 -14
  42. package/packages/components/model/components/com-dialogWrapper/index.vue +22 -25
  43. package/packages/components/model/components/detect-panel.vue +38 -26
  44. package/packages/components/model/components/detect-tree.vue +9 -24
  45. package/packages/components/model/components/firstPer-panel.vue +23 -25
  46. package/packages/components/model/components/header-button.vue +31 -107
  47. package/packages/components/model/components/imageViewer/index.vue +34 -35
  48. package/packages/components/model/components/import-model.vue +127 -127
  49. package/packages/components/model/components/location-panel.vue +25 -29
  50. package/packages/components/model/components/measure-type.vue +15 -15
  51. package/packages/components/model/components/pbs-tree.vue +139 -144
  52. package/packages/components/model/components/proof-config.vue +2 -10
  53. package/packages/components/model/components/proof-for-pc.vue +35 -32
  54. package/packages/components/model/components/proof-history.vue +136 -154
  55. package/packages/components/model/components/proof-panel-detail.vue +166 -165
  56. package/packages/components/model/components/proof-panel.vue +281 -205
  57. package/packages/components/model/components/proof-project-user.vue +13 -50
  58. package/packages/components/model/components/proof-publish.vue +130 -130
  59. package/packages/components/model/components/proof-role.vue +93 -124
  60. package/packages/components/model/components/props-panel.vue +63 -54
  61. package/packages/components/model/index.vue +3225 -3213
  62. package/packages/components/model/utils/annotation-tool.js +75 -82
  63. package/packages/components/model/utils/cursor.js +15 -10
  64. package/packages/components/model/utils/detect-v1.js +23 -35
  65. package/packages/components/model/utils/index.js +25 -25
  66. package/packages/components/model/utils/threejs/measure-angle.js +180 -180
  67. package/packages/components/model/utils/threejs/measure-area.js +196 -184
  68. package/packages/components/model/utils/threejs/measure-distance.js +154 -152
  69. package/packages/components/model/utils/threejs/measure-volume.js +64 -61
  70. package/src/assets/test.png +0 -0
  71. package/src/assets/worker.glb +0 -0
  72. package/src/main.js +11 -8
  73. package/src/utils/flgltf-parser.js +141 -0
  74. package/src/utils/instance-parser.js +402 -0
  75. package/src/utils/mock.js +84746 -0
  76. package/src/utils/threejs/measure-angle.js +240 -0
  77. package/src/utils/threejs/measure-area.js +249 -0
  78. package/src/utils/threejs/measure-distance.js +195 -0
@@ -1,31 +1,48 @@
1
1
  <template>
2
- <div :class="[isClient ? '': 'box-card']">
3
- <div :class="[isClient ? 'box-card box-card_pc': '']" style="height: calc(100vh - 134px)">
2
+ <div :class="[isClient ? '' : 'box-card']">
3
+ <div :class="[isClient ? 'box-card box-card_pc' : '']" style="height: calc(100vh - 134px)">
4
4
  <div class="box-title">
5
5
  <span class="box-title-desc">校审</span>
6
- <i v-if="!isClient" class="el-icon-close box-title-close" style="cursor: pointer" @click="$emit('rightOperation', 'proof')" />
6
+ <i
7
+ v-if="!isClient"
8
+ class="el-icon-close box-title-close"
9
+ style="cursor: pointer"
10
+ @click="$emit('rightOperation', 'proof')"
11
+ />
7
12
  </div>
8
13
 
9
14
  <div v-show="!readOnlyMode" v-if="!isClient" v-loading="loading" class="box-add">
10
- <el-button type="primary" style="margin-top: 8px; width: 100%"
15
+ <el-button
16
+ type="primary"
17
+ style="margin-top: 8px; width: 100%"
11
18
  @click="clickAdd"
12
- v-hasPermi="[
13
- `project:opinion:add:proj:${defaultParams.projectId}`,
14
- ]"
15
- >添加校审意见</el-button>
19
+ v-hasPermi="[`project:opinion:add:proj:${defaultParams.projectId}`]"
20
+ >添加校审意见</el-button
21
+ >
16
22
  <!-- :image="require('@/assets/images/no_drawer.png')" -->
17
23
  </div>
18
24
 
19
25
  <div class="box-filter">
20
- <el-form @submit.native.prevent :model="filterModel" ref="queryForm" :inline="true" label-width="68px"
21
- class="box-filter-form">
26
+ <el-form
27
+ @submit.native.prevent
28
+ :model="filterModel"
29
+ ref="queryForm"
30
+ :inline="true"
31
+ label-width="68px"
32
+ class="box-filter-form"
33
+ >
22
34
  <template v-if="isClient">
23
35
  <el-row class="row-bg" :gutter="10">
24
36
  <el-col :span="6">
25
37
  <el-form-item width="100%">
26
38
  <el-select clearable v-model="filterModel.postId" placeholder="选择专业">
27
- <el-option v-for="item in postList" :key="item.postId" :label="item.postName" :value="item.postId"
28
- :disabled="item.disabled">
39
+ <el-option
40
+ v-for="item in postList"
41
+ :key="item.postId"
42
+ :label="item.postName"
43
+ :value="item.postId"
44
+ :disabled="item.disabled"
45
+ >
29
46
  </el-option>
30
47
  </el-select>
31
48
  </el-form-item>
@@ -33,19 +50,29 @@
33
50
  <el-col :span="6">
34
51
  <el-form-item>
35
52
  <el-select clearable v-model="filterModel.status" placeholder="选择状态">
36
- <el-option v-for="item in filterStatusOpt" :key="item.value" :label="item.label" :value="item.value">
53
+ <el-option
54
+ v-for="item in filterStatusOpt"
55
+ :key="item.value"
56
+ :label="item.label"
57
+ :value="item.value"
58
+ >
37
59
  </el-option>
38
60
  </el-select>
39
61
  </el-form-item>
40
62
  </el-col>
41
63
  <el-col :span="8">
42
64
  <el-form-item label="" prop="description" :style="{ width: `100%` }">
43
- <el-input v-model="filterModel.description" placeholder="问题描述" clearable size="small"
44
- @keyup.enter.native="handleQuery" />
65
+ <el-input
66
+ v-model="filterModel.description"
67
+ placeholder="问题描述"
68
+ clearable
69
+ size="small"
70
+ @keyup.enter.native="handleQuery"
71
+ />
45
72
  </el-form-item>
46
73
  </el-col>
47
74
  <!-- :offset="2" -->
48
- <el-col :span="4" >
75
+ <el-col :span="4">
49
76
  <el-form-item>
50
77
  <el-button type="primary" size="small" @click="handleQuery">搜索</el-button>
51
78
  <!-- <el-button icon="el-icon-refresh" size="small" @click="resetQuery"
@@ -60,8 +87,13 @@
60
87
  <el-col :span="12">
61
88
  <el-form-item>
62
89
  <el-select clearable v-model="filterModel.postId" placeholder="选择专业">
63
- <el-option v-for="item in postList" :key="item.postId" :label="item.postName" :value="item.postId"
64
- :disabled="item.disabled">
90
+ <el-option
91
+ v-for="item in postList"
92
+ :key="item.postId"
93
+ :label="item.postName"
94
+ :value="item.postId"
95
+ :disabled="item.disabled"
96
+ >
65
97
  </el-option>
66
98
  </el-select>
67
99
  </el-form-item>
@@ -69,21 +101,37 @@
69
101
  <el-col :span="12">
70
102
  <el-form-item>
71
103
  <el-select clearable v-model="filterModel.status" placeholder="选择状态">
72
- <el-option v-for="item in filterStatusOpt" :key="item.value" :label="item.label" :value="item.value">
104
+ <el-option
105
+ v-for="item in filterStatusOpt"
106
+ :key="item.value"
107
+ :label="item.label"
108
+ :value="item.value"
109
+ >
73
110
  </el-option>
74
111
  </el-select>
75
112
  </el-form-item>
76
113
  </el-col>
77
114
  </el-row>
78
- <el-row type="flex" class="row-bg last-form-item" align="middle" justify="space-between" :gutter="24">
115
+ <el-row
116
+ type="flex"
117
+ class="row-bg last-form-item"
118
+ align="middle"
119
+ justify="space-between"
120
+ :gutter="24"
121
+ >
79
122
  <el-col :span="18">
80
123
  <el-form-item label="" prop="description" :style="{ width: `100%` }">
81
- <el-input v-model="filterModel.description" placeholder="问题描述" clearable size="small"
82
- @keyup.enter.native="handleQuery" />
124
+ <el-input
125
+ v-model="filterModel.description"
126
+ placeholder="问题描述"
127
+ clearable
128
+ size="small"
129
+ @keyup.enter.native="handleQuery"
130
+ />
83
131
  </el-form-item>
84
132
  </el-col>
85
133
  <!-- :offset="2" -->
86
- <el-col :span="6" >
134
+ <el-col :span="6">
87
135
  <el-form-item>
88
136
  <el-button type="primary" size="small" @click="handleQuery">搜索</el-button>
89
137
  <!-- <el-button icon="el-icon-refresh" size="small" @click="resetQuery"
@@ -98,82 +146,106 @@
98
146
 
99
147
  <div class="box-content">
100
148
  <el-scrollbar>
101
-
102
- <!-- v-infinite-scroll="load" -->
103
- <!-- style="overflow-y: auto;height: calc(100vh - 250px)" -->
104
- <div v-if="dataList.length" :class="[isClient ? 'data-item-container': '']">
105
- <div v-for="(item, index) in dataList" :key="index" class="data-item" @click="selectRow(item)">
106
- <el-card class="box-card-item" :class="item.id == selectedRow.id ? 'selected-row': ''" >
107
- <div slot="header" class="clearfix">
108
- <el-descriptions title="" :column="2">
109
- <el-descriptions-item label="视点编号">{{ item.id }}</el-descriptions-item>
110
- <el-descriptions-item label="" labelClassName="item-label" contentClassName="item-content">
111
- <el-tag class="tag-reply" type="success" size="small" v-if="item.status === `1`">已回复</el-tag>
112
- </el-descriptions-item>
113
- <el-descriptions-item :contentClassName="isClient ? 'item-desc-pc': 'item-desc'" label="问题描述">{{ item.description }}</el-descriptions-item>
114
- </el-descriptions>
115
- </div>
116
- <div :class="['footer', readOnlyMode ? 'readonly-mode' : '']">
117
- <el-button
118
- v-show="!readOnlyMode"
119
- v-if="!isClient"
120
- type="text"
121
- @click="clickDelete(item)"
122
- v-hasPermi="[
123
- `project:opinion:remove:proj:${defaultParams.projectId}`,
124
- ]"
125
- ><span>删除</span><i
126
- class="el-icon-delete pmc-fs-14 pmc-fc-BDC6CA" /></el-button>
127
- <el-button type="text" @click="handleDetail(item)"><span>详情</span><i
128
- class="el-icon-arrow-right pmc-fs-14 pmc-fc-BDC6CA" /></el-button>
129
- </div>
130
- </el-card>
149
+ <!-- v-infinite-scroll="load" -->
150
+ <!-- style="overflow-y: auto;height: calc(100vh - 250px)" -->
151
+ <div v-if="dataList.length" :class="[isClient ? 'data-item-container' : '']">
152
+ <div
153
+ v-for="(item, index) in dataList"
154
+ :key="index"
155
+ class="data-item"
156
+ @click="selectRow(item)"
157
+ >
158
+ <el-card
159
+ class="box-card-item"
160
+ :class="item.id == selectedRow.id ? 'selected-row' : ''"
161
+ >
162
+ <div slot="header" class="clearfix">
163
+ <el-descriptions title="" :column="2">
164
+ <el-descriptions-item label="视点编号">{{ item.id }}</el-descriptions-item>
165
+ <el-descriptions-item
166
+ label=""
167
+ labelClassName="item-label"
168
+ contentClassName="item-content"
169
+ >
170
+ <el-tag
171
+ class="tag-reply"
172
+ type="success"
173
+ size="small"
174
+ v-if="item.status === `1`"
175
+ >已回复</el-tag
176
+ >
177
+ </el-descriptions-item>
178
+ <el-descriptions-item
179
+ :contentClassName="isClient ? 'item-desc-pc' : 'item-desc'"
180
+ label="问题描述"
181
+ >{{ item.description }}</el-descriptions-item
182
+ >
183
+ </el-descriptions>
184
+ </div>
185
+ <div :class="['footer', readOnlyMode ? 'readonly-mode' : '']">
186
+ <el-button
187
+ v-show="!readOnlyMode"
188
+ v-if="!isClient"
189
+ type="text"
190
+ @click="clickDelete(item)"
191
+ v-hasPermi="[`project:opinion:remove:proj:${defaultParams.projectId}`]"
192
+ ><span>删除</span><i class="el-icon-delete pmc-fs-14 pmc-fc-BDC6CA"
193
+ /></el-button>
194
+ <el-button type="text" @click="handleDetail(item)"
195
+ ><span>详情</span><i class="el-icon-arrow-right pmc-fs-14 pmc-fc-BDC6CA"
196
+ /></el-button>
197
+ </div>
198
+ </el-card>
199
+ </div>
131
200
  </div>
132
- </div>
133
- <el-empty v-if="dataList.length === 0 && !loading" :image-size="150" description="暂无校审意见" />
201
+ <el-empty
202
+ v-if="dataList.length === 0 && !loading"
203
+ :image-size="150"
204
+ description="暂无校审意见"
205
+ />
134
206
  </el-scrollbar>
135
207
  </div>
136
208
  </div>
137
209
  <!-- @clickEdit="handleEdit" -->
138
210
  <!-- v-if="annotationDetailDialog" -->
139
211
  <proof-panel-detail
140
- ref="proofPanelDetail"
141
- :key="dataId"
142
- :dialog-visible="annotationDetailDialog"
143
- :data-id="dataId"
144
- :postList="postList"
145
- :userList="userList"
146
- :detailProps="detailData"
147
- :isClient="isClient"
148
- :readOnlyMode="readOnlyMode"
149
- :updatingOpinion="updatingOpinion"
150
- :defaultParams="defaultParams"
151
- @close="closeAnnotationDetailDialog"
152
- @clickSaveBtn="saveForm"
153
- @clickEditPic="handleEditPic"
154
- />
212
+ ref="proofPanelDetail"
213
+ :key="dataId"
214
+ :dialog-visible="annotationDetailDialog"
215
+ :data-id="dataId"
216
+ :postList="postList"
217
+ :userList="userList"
218
+ :detailProps="detailData"
219
+ :isClient="isClient"
220
+ :readOnlyMode="readOnlyMode"
221
+ :updatingOpinion="updatingOpinion"
222
+ :defaultParams="defaultParams"
223
+ @close="closeAnnotationDetailDialog"
224
+ @clickSaveBtn="saveForm"
225
+ @clickEditPic="handleEditPic"
226
+ />
155
227
  </div>
156
228
  </template>
157
229
 
158
230
  <script>
159
- import ProofPanelDetail from './proof-panel-detail.vue'
160
- import * as modelApi from "../api/index";
231
+ import ProofPanelDetail from './proof-panel-detail.vue';
232
+ import * as modelApi from '../api/index';
161
233
 
162
234
  let timer = null;
163
235
 
164
236
  const NEED_UPDATE_ENUM = {
165
237
  false: 0,
166
238
  true: 1,
167
- }
239
+ };
168
240
 
169
241
  export default {
170
- name: "proofPanel",
242
+ name: 'proofPanel',
171
243
  components: { ProofPanelDetail },
172
244
  props: {
173
245
  // 文件id
174
246
  fileId: {
175
247
  type: Number,
176
- default: 0
248
+ default: 0,
177
249
  },
178
250
  defaultParams: {
179
251
  type: Object,
@@ -187,10 +259,10 @@ export default {
187
259
  return {};
188
260
  },
189
261
  },
190
- readOnlyMode:{
262
+ readOnlyMode: {
191
263
  type: Boolean,
192
264
  default: false,
193
- }
265
+ },
194
266
  },
195
267
  data() {
196
268
  return {
@@ -198,24 +270,24 @@ export default {
198
270
  queryParams: {
199
271
  origFileId: this.fileId, // 批注前 原始的文件id
200
272
  pageNum: 1,
201
- pageSize: 3
273
+ pageSize: 3,
202
274
  },
203
275
  dataList: [],
204
276
  userList: [],
205
277
  filterModel: {},
206
278
  filterStatusOpt: [
207
279
  {
208
- value: "0",
209
- label: "未处理",
280
+ value: '0',
281
+ label: '未处理',
210
282
  },
211
283
  {
212
- value: "1",
213
- label: "已处理",
284
+ value: '1',
285
+ label: '已处理',
214
286
  },
215
287
  {
216
- value: "2",
217
- label: "待确认",
218
- }
288
+ value: '2',
289
+ label: '待确认',
290
+ },
219
291
  ],
220
292
  postList: [],
221
293
  loading: false,
@@ -225,38 +297,37 @@ export default {
225
297
  selectedRow: {},
226
298
  detailData: {},
227
299
  updatingOpinion: false,
228
- }
300
+ };
229
301
  },
230
302
  computed: {
231
303
  isClient() {
232
- return this.defaultParams.client == 'true'
304
+ return this.defaultParams.client == 'true';
233
305
  },
234
306
  },
235
- watch:{
307
+ watch: {
236
308
  // 列表详情
237
309
  selectedRow(row) {
238
- console.log('selectedRow')
310
+ console.log('selectedRow');
239
311
  this.detailData = Object.assign({}, row);
240
312
  },
241
313
  // 编辑新建详情
242
- proofData:{
243
- handler(data){
314
+ proofData: {
315
+ handler(data) {
244
316
  this.detailData = Object.assign({}, data);
245
- console.log(this.detailData)
317
+ console.log(this.detailData);
246
318
  },
247
319
  deep: true,
248
- }
249
- },
250
- created() {
320
+ },
251
321
  },
322
+ created() {},
252
323
  mounted() {
253
324
  // web端正常初始化,pc端不初始化
254
- if(!this.isClient){
255
- this.init()
325
+ if (!this.isClient) {
326
+ this.init();
256
327
  }
257
328
  },
258
329
  methods: {
259
- init(){
330
+ init() {
260
331
  this.getProofOpinionList(this.defaultParams);
261
332
  this.getPostList();
262
333
  this.getProofProjectUserList({
@@ -275,19 +346,19 @@ export default {
275
346
  // item.stageId = this.defaultParams.stageId;
276
347
  // item.projectId = this.defaultParams.projectId
277
348
  // }); // TODO dev delete
278
- console.log(res.rows)
279
- this.$set(this, "dataList", res.rows ? res.rows : []);
349
+ console.log(res.rows);
350
+ this.$set(this, 'dataList', res.rows ? res.rows : []);
280
351
  })
281
- .catch((err) => { })
352
+ .catch((err) => {})
282
353
  .finally(() => {
283
354
  this.currentRow = null;
284
- this.detailStatus = "view";
355
+ this.detailStatus = 'view';
285
356
  });
286
357
  },
287
358
  getPostList() {
288
359
  modelApi.getPostList().then((res) => {
289
360
  if (res.code != 200) {
290
- this.$message({ type: "warning", message: "暂无属性数据" });
361
+ this.$message({ type: 'warning', message: '暂无属性数据' });
291
362
  return;
292
363
  } else {
293
364
  this.postList = res.rows;
@@ -295,91 +366,96 @@ export default {
295
366
  });
296
367
  },
297
368
  load() {
298
- if (this.dataList.length >= this.total) return false
299
- this.queryParams.pageNum += 1
300
- this.getList()
369
+ if (this.dataList.length >= this.total) return false;
370
+ this.queryParams.pageNum += 1;
371
+ this.getList();
301
372
  },
302
373
  // 预览
303
374
  handlePerview(id, callback) {
304
375
  perview({ id }).then((res) => {
305
- let reader = new FileReader()
306
- reader.readAsDataURL(res) // 转换为base64
376
+ let reader = new FileReader();
377
+ reader.readAsDataURL(res); // 转换为base64
307
378
  reader.onload = function () {
308
- callback(reader.result)
309
- }
310
- })
379
+ callback(reader.result);
380
+ };
381
+ });
311
382
  },
312
383
  handleDetail(row) {
313
384
  const params = {
314
385
  id: row.id,
315
386
  projectId: this.defaultParams.projectId,
316
- }
317
- modelApi.getProofOpinionById(params).then((res) => {
318
- if(res.code == 200){
319
- this.selectedRow = res.data
320
- }else{
321
- this.selectedRow = row
322
- }
323
- }).catch((err) => {
324
- console.log(err)
325
- this.selectedRow = row
326
- }).finally(() => {
327
- this.annotationDetailDialog = true
328
- })
387
+ };
388
+ modelApi
389
+ .getProofOpinionById(params)
390
+ .then((res) => {
391
+ if (res.code == 200) {
392
+ this.selectedRow = res.data;
393
+ } else {
394
+ this.selectedRow = row;
395
+ }
396
+ })
397
+ .catch((err) => {
398
+ console.log(err);
399
+ this.selectedRow = row;
400
+ })
401
+ .finally(() => {
402
+ this.annotationDetailDialog = true;
403
+ });
329
404
  },
330
405
  // 取消按钮
331
406
  cancel() {
332
- this.open = false
333
- this.reset()
407
+ this.open = false;
408
+ this.reset();
334
409
  },
335
410
  // 关闭
336
411
  closeAnnotationDetailDialog(refresh) {
337
412
  refresh && this.getProofOpinionList(this.defaultParams);
338
- this.annotationDetailDialog = false
413
+ this.annotationDetailDialog = false;
339
414
  },
340
- openAnnotationDetailDialog(){
341
- this.annotationDetailDialog = true
415
+ openAnnotationDetailDialog() {
416
+ this.annotationDetailDialog = true;
342
417
  },
343
418
  clickDelete(item) {
344
419
  this.$confirm('此操作将删除, 是否继续?', '提示', {
345
420
  confirmButtonText: '确定',
346
421
  cancelButtonText: '取消',
347
- type: 'warning'
348
- }).then(() => {
349
- const { id } = item;
350
- modelApi
351
- .deleteProofOpinion({
352
- ids: id,
353
- projectId: this.defaultParams.projectId,
354
- // stageId: this.defaultParams.stageId,
355
- })
356
- .then((res) => {
357
- if (res.code != 200) {
358
- this.$message({
359
- type: "error",
360
- message: res.msg,
361
- });
362
- } else {
363
- // this.disabledForm(true);
364
-
365
- this.currentRow = null;
366
- this.detailModel = {};
367
- this.$emit("deleteRow", true);
368
- this.getProofOpinionList(this.defaultParams);
422
+ type: 'warning',
423
+ })
424
+ .then(() => {
425
+ const { id } = item;
426
+ modelApi
427
+ .deleteProofOpinion({
428
+ ids: id,
429
+ projectId: this.defaultParams.projectId,
430
+ // stageId: this.defaultParams.stageId,
431
+ })
432
+ .then((res) => {
433
+ if (res.code != 200) {
434
+ this.$message({
435
+ type: 'error',
436
+ message: res.msg,
437
+ });
438
+ } else {
439
+ // this.disabledForm(true);
440
+
441
+ this.currentRow = null;
442
+ this.detailModel = {};
443
+ this.$emit('deleteRow', true);
444
+ this.getProofOpinionList(this.defaultParams);
445
+ this.$message({
446
+ type: 'success',
447
+ message: res.msg,
448
+ });
449
+ }
450
+ })
451
+ .catch((res) => {
369
452
  this.$message({
370
- type: "success",
453
+ type: 'error',
371
454
  message: res.msg,
372
455
  });
373
- }
374
- })
375
- .catch((res) => {
376
- this.$message({
377
- type: "error",
378
- message: res.msg,
379
456
  });
380
- });
381
- }).catch(() => {
382
- });
457
+ })
458
+ .catch(() => {});
383
459
  },
384
460
  handleQuery() {
385
461
  const params = {
@@ -389,18 +465,18 @@ export default {
389
465
  this.getProofOpinionList(params);
390
466
  },
391
467
  clickAdd() {
392
- this.detailStatus = "add";
468
+ this.detailStatus = 'add';
393
469
  this.selectedRow = {}; // 清空已选数据
394
470
  // this.$refs.tableRef.setCurrentRow(); // 清空表格列表选择项
395
471
  this.detailModel = {}; // 清空表单
396
- this.detailData = {}
472
+ this.detailData = {};
397
473
  // this.disabledForm(false); // 表单可编辑
398
- this.$emit("clickAddBtn", {
474
+ this.$emit('clickAddBtn', {
399
475
  detailStatus: this.detailStatus,
400
476
  });
401
477
  },
402
- handleProofSavelBtn(data){
403
- this.$emit('clickSaveBtn', data)
478
+ handleProofSavelBtn(data) {
479
+ this.$emit('clickSaveBtn', data);
404
480
  },
405
481
  // saveForm(data, success, fail){
406
482
  // this.annotationDetailDialog = true;
@@ -419,21 +495,21 @@ export default {
419
495
  // console.log(this.$refs.proofPanelDetail)
420
496
  // this.$refs.proofPanelDetail.saveForm(data, success, fail)
421
497
  // })
422
-
498
+
423
499
  // 去除临时截图数据
424
- if(data.previewScreenshotData){
500
+ if (data.previewScreenshotData) {
425
501
  delete data.previewScreenshotData;
426
502
  }
427
503
 
428
504
  // 上传截图判断
429
- if(!data.problemPrintscreenId){
505
+ if (!data.problemPrintscreenId) {
430
506
  this.$message({
431
- type: "warning",
507
+ type: 'warning',
432
508
  message: '视点截图上传中,请稍后...',
433
509
  });
434
- return
510
+ return;
435
511
  }
436
-
512
+
437
513
  this.updatingOpinion = true;
438
514
 
439
515
  if (data.id) {
@@ -446,7 +522,7 @@ export default {
446
522
  .then((res) => {
447
523
  if (res.code != 200) {
448
524
  this.$message({
449
- type: "error",
525
+ type: 'error',
450
526
  message: res.msg,
451
527
  });
452
528
  } else {
@@ -457,7 +533,7 @@ export default {
457
533
  this.getProofOpinionList(this.defaultParams);
458
534
 
459
535
  this.$message({
460
- type: "success",
536
+ type: 'success',
461
537
  message: res.msg,
462
538
  });
463
539
  }
@@ -465,14 +541,14 @@ export default {
465
541
  })
466
542
  .catch((res) => {
467
543
  this.$message({
468
- type: "error",
544
+ type: 'error',
469
545
  message: res.msg,
470
546
  });
471
547
  fail && fail();
472
548
  })
473
549
  .finally(() => {
474
550
  this.annotationDetailDialog = false;
475
- this.updatingOpinion = false
551
+ this.updatingOpinion = false;
476
552
  // this.detailStatus = "view";
477
553
  });
478
554
  } else {
@@ -487,7 +563,7 @@ export default {
487
563
  .then((res) => {
488
564
  if (res.code != 200) {
489
565
  this.$message({
490
- type: "error",
566
+ type: 'error',
491
567
  message: res.msg,
492
568
  });
493
569
  } else {
@@ -495,7 +571,7 @@ export default {
495
571
  this.getProofOpinionList(this.defaultParams);
496
572
 
497
573
  this.$message({
498
- type: "success",
574
+ type: 'success',
499
575
  message: res.msg,
500
576
  });
501
577
  }
@@ -503,43 +579,45 @@ export default {
503
579
  })
504
580
  .catch((res) => {
505
581
  this.$message({
506
- type: "error",
582
+ type: 'error',
507
583
  message: res.msg,
508
584
  });
509
585
  fail && fail();
510
586
  })
511
587
  .finally(() => {
512
588
  this.annotationDetailDialog = false;
513
- this.updatingOpinion = false
589
+ this.updatingOpinion = false;
514
590
  });
515
591
  }
516
592
  },
517
- handleEditPic(detailData){
518
- this.annotationDetailDialog = false
519
- this.$emit('clickEditBtn', detailData)
593
+ handleEditPic(detailData) {
594
+ this.annotationDetailDialog = false;
595
+ this.$emit('clickEditBtn', detailData);
520
596
  },
521
- selectRow(row){
597
+ selectRow(row) {
522
598
  this.selectedRow = row;
523
- this.$emit('selectRow', this.selectedRow)
599
+ this.$emit('selectRow', this.selectedRow);
524
600
  },
525
601
  clickEditPic(data) {
526
- this.detailStatus = "edit";
602
+ this.detailStatus = 'edit';
527
603
  // backupDetailModel = Object.assign({}, this.detailModel);
528
604
 
529
- this.$emit("clickEditBtn", {
605
+ this.$emit('clickEditBtn', {
530
606
  detailStatus: this.detailStatus,
531
607
  });
532
608
  },
533
- getProofProjectUserList(params){
609
+ getProofProjectUserList(params) {
534
610
  modelApi.getProofProjectUserList(params).then((res) => {
535
611
  if (res.code == 200) {
536
612
  let data = res.rows;
537
- this.userList = data && data.map((item) => {
538
- return {
539
- userName: item.userName,
540
- userId: item.userId
541
- }
542
- })
613
+ this.userList =
614
+ data &&
615
+ data.map((item) => {
616
+ return {
617
+ userName: item.userName,
618
+ userId: item.userId,
619
+ };
620
+ });
543
621
  }
544
622
  });
545
623
  },
@@ -552,21 +630,21 @@ export default {
552
630
  this.$confirm('检测到模型更新,是否刷新页面进行更新?', '提示', {
553
631
  confirmButtonText: '确定',
554
632
  cancelButtonText: '取消',
555
- type: 'warning'
633
+ type: 'warning',
556
634
  }).then(() => {
557
635
  window.location.reload();
558
- })
636
+ });
559
637
  clearInterval(timer);
560
638
  }
561
639
  }
562
640
  });
563
- }, 30000)
641
+ }, 30000);
564
642
  },
565
- clearUpdateModelInterval(){
643
+ clearUpdateModelInterval() {
566
644
  clearInterval(timer);
567
- }
568
- }
569
- }
645
+ },
646
+ },
647
+ };
570
648
  </script>
571
649
 
572
650
  <style scoped lang="scss">
@@ -596,11 +674,10 @@ export default {
596
674
  }
597
675
 
598
676
  .selected-row {
599
- border: 1px solid #008DE9;
677
+ border: 1px solid #008de9;
600
678
  }
601
679
  }
602
680
 
603
-
604
681
  .footer {
605
682
  height: 36px;
606
683
  line-height: 36px;
@@ -612,7 +689,7 @@ export default {
612
689
  cursor: pointer;
613
690
 
614
691
  span {
615
- font-size: 14
692
+ font-size: 14;
616
693
  }
617
694
  }
618
695
 
@@ -715,7 +792,6 @@ export default {
715
792
  ::v-deep .el-scrollbar__thumb {
716
793
  background-color: #e0e0e0;
717
794
  }
718
-
719
795
  }
720
796
 
721
797
  ::v-deep .box-card_pc {