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.
- package/README.md +35 -24
- package/dist/fl-web-component.common.js +27308 -65
- package/dist/fl-web-component.common.js.map +1 -1
- package/dist/fl-web-component.css +1 -1
- package/dist/fl-web-component.umd.js +27308 -65
- package/dist/fl-web-component.umd.js.map +1 -1
- package/dist/fl-web-component.umd.min.js +13 -1
- package/dist/fl-web-component.umd.min.js.map +1 -1
- package/package.json +80 -47
- package/packages/components/button/index.vue +16 -12
- package/packages/components/com-card/card-page.vue +102 -0
- package/packages/components/com-card/index.vue +53 -0
- package/packages/components/com-dialogWrapper/Readme.md +53 -0
- package/packages/components/com-dialogWrapper/index.vue +98 -0
- package/packages/components/com-flcanvas/components/bspline.js +91 -0
- package/packages/components/com-flcanvas/components/entityFormatting.js +503 -0
- package/packages/components/com-flcanvas/components/round10.js +24 -0
- package/packages/components/com-flcanvas/index.vue +259 -0
- package/packages/components/com-formDialog/Readme.md +409 -0
- package/packages/components/com-formDialog/index.vue +471 -0
- package/packages/components/com-graphics/index.vue +1073 -0
- package/packages/components/com-graphics/per-control.vue +109 -0
- package/packages/components/com-graphics/pid.vue +168 -0
- package/packages/components/com-page/index.vue +101 -0
- package/packages/components/com-selectTree/Readme.md +17 -0
- package/packages/components/com-selectTree/index.vue +236 -0
- package/packages/components/com-table/column-default.vue +71 -0
- package/packages/components/com-table/column-dynamic.vue +36 -0
- package/packages/components/com-table/column-menu.vue +71 -0
- package/packages/components/com-table/column-slot.vue +53 -0
- package/packages/components/com-table/column.vue +41 -0
- package/packages/components/com-table/config.js +21 -0
- package/packages/components/com-table/index.vue +281 -0
- package/packages/components/com-table/table-page.vue +106 -0
- package/packages/components/com-tabs/index.vue +50 -0
- package/packages/components/com-treeDynamic/Readme.md +271 -0
- package/packages/components/com-treeDynamic/index.vue +207 -0
- package/packages/components/model/api/index.js +59 -67
- package/packages/components/model/api/mock/detecttree.js +38 -38
- package/packages/components/model/api/mock/getmodel-line.js +15830 -79332
- package/packages/components/model/api/mock/init.js +1 -1
- package/packages/components/model/api/mock/pbstree.js +486 -495
- package/packages/components/model/components/TextOverTooltip/index.vue +3 -3
- package/packages/components/model/components/annotation-toolbar.vue +4 -19
- package/packages/components/model/components/check-proofing-model.vue +26 -29
- package/packages/components/model/components/clipping-type.vue +22 -14
- package/packages/components/model/components/com-dialogWrapper/index.vue +22 -25
- package/packages/components/model/components/detect-panel.vue +38 -26
- package/packages/components/model/components/detect-tree.vue +9 -24
- package/packages/components/model/components/firstPer-panel.vue +23 -25
- package/packages/components/model/components/header-button.vue +31 -107
- package/packages/components/model/components/imageViewer/index.vue +34 -35
- package/packages/components/model/components/import-model.vue +127 -127
- package/packages/components/model/components/location-panel.vue +25 -29
- package/packages/components/model/components/measure-type.vue +15 -15
- package/packages/components/model/components/pbs-tree.vue +139 -144
- package/packages/components/model/components/proof-config.vue +2 -10
- package/packages/components/model/components/proof-for-pc.vue +35 -32
- package/packages/components/model/components/proof-history.vue +136 -154
- package/packages/components/model/components/proof-panel-detail.vue +166 -165
- package/packages/components/model/components/proof-panel.vue +281 -205
- package/packages/components/model/components/proof-project-user.vue +13 -50
- package/packages/components/model/components/proof-publish.vue +130 -130
- package/packages/components/model/components/proof-role.vue +93 -124
- package/packages/components/model/components/props-panel.vue +63 -54
- package/packages/components/model/index.vue +3225 -3213
- package/packages/components/model/utils/annotation-tool.js +75 -82
- package/packages/components/model/utils/cursor.js +15 -10
- package/packages/components/model/utils/detect-v1.js +23 -35
- package/packages/components/model/utils/index.js +25 -25
- package/packages/components/model/utils/threejs/measure-angle.js +180 -180
- package/packages/components/model/utils/threejs/measure-area.js +196 -184
- package/packages/components/model/utils/threejs/measure-distance.js +154 -152
- package/packages/components/model/utils/threejs/measure-volume.js +64 -61
- package/patches/camera-controls+2.9.0.patch +63 -0
- package/src/assets/test.png +0 -0
- package/src/assets/worker.glb +0 -0
- package/src/main.js +27 -0
- package/src/utils/flgltf-parser.js +141 -0
- package/src/utils/instance-parser.js +402 -0
- package/src/utils/mock.js +84746 -0
- package/src/utils/threejs/measure-angle.js +240 -0
- package/src/utils/threejs/measure-area.js +249 -0
- package/src/utils/threejs/measure-distance.js +195 -0
- package/packages/index.js +0 -24
|
@@ -16,30 +16,26 @@
|
|
|
16
16
|
<el-row v-loading="loading" :gutter="20" type="flex" justify="center">
|
|
17
17
|
<el-col
|
|
18
18
|
:span="16"
|
|
19
|
-
style="
|
|
20
|
-
border-radius: 6px;
|
|
21
|
-
position: relative;
|
|
22
|
-
height: 530px;
|
|
23
|
-
background: #f6f6f6;
|
|
24
|
-
"
|
|
19
|
+
style="border-radius: 6px; position: relative; height: 530px; background: #f6f6f6"
|
|
25
20
|
>
|
|
26
|
-
<div
|
|
27
|
-
class="image-edit-container"
|
|
28
|
-
v-show="!readOnlyMode"
|
|
21
|
+
<div
|
|
22
|
+
class="image-edit-container"
|
|
23
|
+
v-show="!readOnlyMode"
|
|
29
24
|
v-if="!isClient"
|
|
30
25
|
v-hasPermi="btnPermission"
|
|
31
26
|
>
|
|
32
|
-
<i
|
|
33
|
-
class="el-icon-edit-outline image-edit"
|
|
34
|
-
@click="clickEdit"
|
|
35
|
-
></i>
|
|
27
|
+
<i class="el-icon-edit-outline image-edit" @click="clickEdit"></i>
|
|
36
28
|
</div>
|
|
37
|
-
<ImageViewer
|
|
29
|
+
<ImageViewer
|
|
30
|
+
ref="ImageViewrRef"
|
|
31
|
+
:image-url="screenshotUrl"
|
|
32
|
+
:isErrorImage="isErrorImage"
|
|
33
|
+
/>
|
|
38
34
|
</el-col>
|
|
39
35
|
<!-- 新增批注内容 -->
|
|
40
36
|
<!-- :disabled="disabledDetailForm" -->
|
|
41
37
|
<el-col :span="8">
|
|
42
|
-
<el-descriptions :column="1"
|
|
38
|
+
<el-descriptions :column="1" v-if="readOnlyMode || isClient">
|
|
43
39
|
<el-descriptions-item label="所属专业">{{ postName }}</el-descriptions-item>
|
|
44
40
|
<el-descriptions-item label="问题描述">
|
|
45
41
|
<el-input
|
|
@@ -52,7 +48,7 @@
|
|
|
52
48
|
>
|
|
53
49
|
</el-input>
|
|
54
50
|
</el-descriptions-item>
|
|
55
|
-
</el-descriptions
|
|
51
|
+
</el-descriptions>
|
|
56
52
|
<el-form
|
|
57
53
|
v-else
|
|
58
54
|
@submit.native.prevent
|
|
@@ -152,54 +148,56 @@
|
|
|
152
148
|
>{{ detailModel.replyTime }}
|
|
153
149
|
</el-form-item>
|
|
154
150
|
</el-form>
|
|
155
|
-
<el-descriptions :column="1"
|
|
151
|
+
<el-descriptions :column="1" v-else>
|
|
156
152
|
<el-descriptions-item label="解决人">{{ detailModel.solveBy }}</el-descriptions-item>
|
|
157
153
|
<el-descriptions-item label="解决意见">{{ proofStatus }}</el-descriptions-item>
|
|
158
154
|
<el-descriptions-item label="备注">{{ detailModel.remark }}</el-descriptions-item>
|
|
159
|
-
<el-descriptions-item label="创建时间">{{
|
|
160
|
-
|
|
161
|
-
|
|
155
|
+
<el-descriptions-item label="创建时间">{{
|
|
156
|
+
detailModel.createTime
|
|
157
|
+
}}</el-descriptions-item>
|
|
158
|
+
<el-descriptions-item label="回复时间">{{
|
|
159
|
+
detailModel.replyTime
|
|
160
|
+
}}</el-descriptions-item>
|
|
161
|
+
</el-descriptions>
|
|
162
162
|
</el-col>
|
|
163
163
|
</el-row>
|
|
164
164
|
<span v-show="!readOnlyMode" slot="footer" class="dialog-footer">
|
|
165
165
|
<el-button @click="close(true, true)">取消</el-button>
|
|
166
|
-
<el-button
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
@click="clickSave"
|
|
170
|
-
:loading="updatingOpinion"
|
|
171
|
-
>保存</el-button>
|
|
166
|
+
<el-button v-if="isClient" type="primary" @click="clickSave" :loading="updatingOpinion"
|
|
167
|
+
>保存</el-button
|
|
168
|
+
>
|
|
172
169
|
<el-button
|
|
173
170
|
v-else
|
|
174
|
-
type="primary"
|
|
175
|
-
@click="clickSave"
|
|
171
|
+
type="primary"
|
|
172
|
+
@click="clickSave"
|
|
176
173
|
:loading="updatingOpinion"
|
|
177
174
|
v-hasPermi="btnPermission"
|
|
178
|
-
|
|
175
|
+
>保存</el-button
|
|
176
|
+
>
|
|
179
177
|
</span>
|
|
180
178
|
</el-dialog>
|
|
181
179
|
</div>
|
|
182
180
|
</template>
|
|
183
181
|
<script>
|
|
184
|
-
import ImageViewer from './imageViewer'
|
|
182
|
+
import ImageViewer from './imageViewer';
|
|
185
183
|
export default {
|
|
186
184
|
components: {
|
|
187
|
-
ImageViewer
|
|
185
|
+
ImageViewer,
|
|
188
186
|
},
|
|
189
187
|
props: {
|
|
190
188
|
dialogVisible: {
|
|
191
189
|
type: Boolean,
|
|
192
|
-
default: false
|
|
190
|
+
default: false,
|
|
193
191
|
},
|
|
194
192
|
// 批注前初始的文档文件数据
|
|
195
193
|
fileData: {
|
|
196
194
|
type: Object,
|
|
197
|
-
default: () => {}
|
|
195
|
+
default: () => {},
|
|
198
196
|
},
|
|
199
197
|
// 批注后文件的数据
|
|
200
198
|
annotationFileData: {
|
|
201
199
|
type: Object,
|
|
202
|
-
default: () => {}
|
|
200
|
+
default: () => {},
|
|
203
201
|
},
|
|
204
202
|
// // 列表id 用于查看详情
|
|
205
203
|
// dataId: {
|
|
@@ -209,25 +207,25 @@ export default {
|
|
|
209
207
|
// 操作类型
|
|
210
208
|
moduleType: {
|
|
211
209
|
type: String,
|
|
212
|
-
default: 'add'
|
|
210
|
+
default: 'add',
|
|
213
211
|
},
|
|
214
212
|
detailProps: {
|
|
215
213
|
type: Object,
|
|
216
|
-
default: () => {}
|
|
214
|
+
default: () => {},
|
|
217
215
|
},
|
|
218
216
|
postList: {
|
|
219
217
|
type: Array,
|
|
220
|
-
default: () => []
|
|
218
|
+
default: () => [],
|
|
221
219
|
},
|
|
222
220
|
userList: {
|
|
223
221
|
type: Array,
|
|
224
|
-
default: () => []
|
|
222
|
+
default: () => [],
|
|
225
223
|
},
|
|
226
|
-
isClient:{
|
|
224
|
+
isClient: {
|
|
227
225
|
type: Boolean,
|
|
228
|
-
default: false
|
|
226
|
+
default: false,
|
|
229
227
|
},
|
|
230
|
-
readOnlyMode:{
|
|
228
|
+
readOnlyMode: {
|
|
231
229
|
type: Boolean,
|
|
232
230
|
default: false,
|
|
233
231
|
},
|
|
@@ -244,45 +242,51 @@ export default {
|
|
|
244
242
|
},
|
|
245
243
|
computed: {
|
|
246
244
|
screenshotUrl: {
|
|
247
|
-
get(){
|
|
245
|
+
get() {
|
|
248
246
|
// console.log(this.detailModel.previewScreenshotData)
|
|
249
|
-
const screenshotUrl =
|
|
247
|
+
const screenshotUrl =
|
|
248
|
+
this.detailModel.previewScreenshotData || `//${this.detailModel.problemPrintscreen}`;
|
|
250
249
|
return screenshotUrl;
|
|
251
250
|
},
|
|
252
|
-
set(val){
|
|
251
|
+
set(val) {
|
|
253
252
|
this.detailModel.problemPrintscreen = val;
|
|
254
|
-
}
|
|
253
|
+
},
|
|
255
254
|
},
|
|
256
255
|
detailModel: {
|
|
257
|
-
get(){
|
|
258
|
-
const detailData = Object.keys(this.detailProps).length
|
|
259
|
-
|
|
256
|
+
get() {
|
|
257
|
+
const detailData = Object.keys(this.detailProps).length
|
|
258
|
+
? this.detailProps
|
|
259
|
+
: Object.keys(this.detailData).length
|
|
260
|
+
? this.detailData
|
|
261
|
+
: {};
|
|
260
262
|
|
|
261
|
-
return detailData
|
|
262
|
-
}
|
|
263
|
+
return detailData;
|
|
264
|
+
},
|
|
263
265
|
},
|
|
264
|
-
isErrorImage(){
|
|
266
|
+
isErrorImage() {
|
|
265
267
|
return !(this.detailModel.previewScreenshotData || this.detailModel.problemPrintscreen);
|
|
266
268
|
},
|
|
267
|
-
solveBy(){
|
|
268
|
-
const item = this.userList.find(item => item.value === this.detailModel.solveBy)
|
|
269
|
+
solveBy() {
|
|
270
|
+
const item = this.userList.find((item) => item.value === this.detailModel.solveBy);
|
|
269
271
|
return item && item.value;
|
|
270
272
|
},
|
|
271
|
-
proofStatus(){
|
|
272
|
-
const item = this.filterStatusOpt.find(item => item.value === this.detailModel.status)
|
|
273
|
-
return item && item.label
|
|
273
|
+
proofStatus() {
|
|
274
|
+
const item = this.filterStatusOpt.find((item) => item.value === this.detailModel.status);
|
|
275
|
+
return item && item.label;
|
|
274
276
|
},
|
|
275
|
-
postName(){
|
|
276
|
-
const item = this.postList.find(item => item.postId === this.detailModel.postId)
|
|
277
|
-
return item && item.postName
|
|
277
|
+
postName() {
|
|
278
|
+
const item = this.postList.find((item) => item.postId === this.detailModel.postId);
|
|
279
|
+
return item && item.postName;
|
|
278
280
|
},
|
|
279
281
|
isEditing() {
|
|
280
|
-
return this.detailProps.id != undefined
|
|
282
|
+
return this.detailProps.id != undefined;
|
|
281
283
|
},
|
|
282
284
|
btnPermission() {
|
|
283
|
-
const btnPermission = this.isEditing
|
|
284
|
-
|
|
285
|
-
|
|
285
|
+
const btnPermission = this.isEditing
|
|
286
|
+
? [`project:opinion:edit:proj:${this.defaultParams.projectId}`]
|
|
287
|
+
: [`project:opinion:add:proj:${this.defaultParams.projectId}`];
|
|
288
|
+
return btnPermission;
|
|
289
|
+
},
|
|
286
290
|
},
|
|
287
291
|
data() {
|
|
288
292
|
return {
|
|
@@ -299,37 +303,35 @@ export default {
|
|
|
299
303
|
detailData: {},
|
|
300
304
|
filterStatusOpt: [
|
|
301
305
|
{
|
|
302
|
-
value:
|
|
303
|
-
label:
|
|
306
|
+
value: '0',
|
|
307
|
+
label: '未处理',
|
|
304
308
|
},
|
|
305
309
|
{
|
|
306
|
-
value:
|
|
307
|
-
label:
|
|
310
|
+
value: '1',
|
|
311
|
+
label: '已处理',
|
|
308
312
|
},
|
|
309
313
|
{
|
|
310
|
-
value:
|
|
311
|
-
label:
|
|
312
|
-
}
|
|
314
|
+
value: '2',
|
|
315
|
+
label: '待确认',
|
|
316
|
+
},
|
|
313
317
|
],
|
|
314
318
|
showDialog: false,
|
|
315
319
|
rules: {
|
|
316
|
-
solveBy: [
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
}
|
|
320
|
-
}
|
|
320
|
+
solveBy: [{ required: true, message: '请选择解决人', trigger: 'blur' }],
|
|
321
|
+
},
|
|
322
|
+
};
|
|
321
323
|
},
|
|
322
324
|
watch: {
|
|
323
325
|
dialogVisible(val) {
|
|
324
326
|
if (val) {
|
|
325
|
-
this.showDialog = true
|
|
327
|
+
this.showDialog = true;
|
|
326
328
|
} else {
|
|
327
|
-
this.showDialog = false
|
|
329
|
+
this.showDialog = false;
|
|
328
330
|
}
|
|
329
331
|
},
|
|
330
|
-
showDialog(val){
|
|
331
|
-
val === false && this.close(true)
|
|
332
|
-
}
|
|
332
|
+
showDialog(val) {
|
|
333
|
+
val === false && this.close(true);
|
|
334
|
+
},
|
|
333
335
|
},
|
|
334
336
|
created() {
|
|
335
337
|
if (this.moduleType === 'add') {
|
|
@@ -338,196 +340,196 @@ export default {
|
|
|
338
340
|
// this.perview() // 预览
|
|
339
341
|
} else {
|
|
340
342
|
// this.moduleType === 'operation' && this.getUserList() // 获取用户列表
|
|
341
|
-
this.handleDetail()
|
|
343
|
+
this.handleDetail();
|
|
342
344
|
}
|
|
343
345
|
},
|
|
344
346
|
methods: {
|
|
345
347
|
perview() {
|
|
346
|
-
let _this = this
|
|
348
|
+
let _this = this;
|
|
347
349
|
perview({ id: this.fileId })
|
|
348
350
|
.then((res) => {
|
|
349
|
-
let reader = new FileReader()
|
|
350
|
-
reader.readAsDataURL(res) // 转换为base64
|
|
351
|
+
let reader = new FileReader();
|
|
352
|
+
reader.readAsDataURL(res); // 转换为base64
|
|
351
353
|
reader.onload = function () {
|
|
352
|
-
_this.imageUrl = reader.result
|
|
353
|
-
_this.$refs.ImageViewrRef.resetImage()
|
|
354
|
-
}
|
|
354
|
+
_this.imageUrl = reader.result;
|
|
355
|
+
_this.$refs.ImageViewrRef.resetImage();
|
|
356
|
+
};
|
|
355
357
|
})
|
|
356
358
|
.finally(() => {
|
|
357
|
-
this.loading = false
|
|
358
|
-
})
|
|
359
|
+
this.loading = false;
|
|
360
|
+
});
|
|
359
361
|
},
|
|
360
362
|
// 详情
|
|
361
363
|
handleDetail() {
|
|
362
|
-
this.loading = true
|
|
364
|
+
this.loading = true;
|
|
363
365
|
detail({ id: this.dataId }).then((res) => {
|
|
364
366
|
if (res.code === 200) {
|
|
365
|
-
this.detailData = res.data
|
|
367
|
+
this.detailData = res.data;
|
|
366
368
|
// 撤回状态
|
|
367
369
|
if (res.data.status === '2' && this.moduleType === 'view')
|
|
368
|
-
this.detailData.recordList = [res.data]
|
|
370
|
+
this.detailData.recordList = [res.data];
|
|
369
371
|
// 流程字段 操作模式并当前登陆人 = 创建人
|
|
370
372
|
if (
|
|
371
373
|
this.moduleType === 'operation' &&
|
|
372
374
|
this.detailData.createBy === this.userName &&
|
|
373
375
|
this.detailData.recordList.length === 0
|
|
374
376
|
) {
|
|
375
|
-
this.form.operateState = '0'
|
|
377
|
+
this.form.operateState = '0';
|
|
376
378
|
this.$nextTick(() => {
|
|
377
|
-
this.$refs.form.clearValidate('operateState') // 移除校验
|
|
378
|
-
})
|
|
379
|
+
this.$refs.form.clearValidate('operateState'); // 移除校验
|
|
380
|
+
});
|
|
379
381
|
}
|
|
380
|
-
this.fileId = res.data.fileId
|
|
381
|
-
this.perview()
|
|
382
|
+
this.fileId = res.data.fileId;
|
|
383
|
+
this.perview();
|
|
382
384
|
}
|
|
383
|
-
})
|
|
385
|
+
});
|
|
384
386
|
},
|
|
385
387
|
// 下一处理人 输入建议
|
|
386
388
|
querySearch(queryString, cb) {
|
|
387
|
-
var restaurants = this.userList
|
|
388
|
-
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
|
|
389
|
+
var restaurants = this.userList;
|
|
390
|
+
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
|
|
389
391
|
// 调用 callback 返回建议列表的数据
|
|
390
392
|
if (results.length === 0) {
|
|
391
|
-
this.form.nextUser = ''
|
|
392
|
-
this.form.nextUserName = ''
|
|
393
|
-
this.$set(this.form, 'nextUserName', '')
|
|
393
|
+
this.form.nextUser = '';
|
|
394
|
+
this.form.nextUserName = '';
|
|
395
|
+
this.$set(this.form, 'nextUserName', '');
|
|
394
396
|
}
|
|
395
|
-
cb(results)
|
|
397
|
+
cb(results);
|
|
396
398
|
},
|
|
397
399
|
createFilter(queryString) {
|
|
398
400
|
return (restaurant) => {
|
|
399
|
-
return restaurant.nickName.toLowerCase().indexOf(queryString.toLowerCase()) === 0
|
|
400
|
-
}
|
|
401
|
+
return restaurant.nickName.toLowerCase().indexOf(queryString.toLowerCase()) === 0;
|
|
402
|
+
};
|
|
401
403
|
},
|
|
402
404
|
// 选择处理人
|
|
403
405
|
handleSelect(item) {
|
|
404
|
-
this.form.nextUser = item.userName
|
|
405
|
-
this.form.nextUserName = item.nickName
|
|
406
|
-
this.$set(this.form, 'nextUserName', item.nickName)
|
|
406
|
+
this.form.nextUser = item.userName;
|
|
407
|
+
this.form.nextUserName = item.nickName;
|
|
408
|
+
this.$set(this.form, 'nextUserName', item.nickName);
|
|
407
409
|
this.$nextTick(() => {
|
|
408
|
-
this.$refs.form.clearValidate('nextUserName') // 移除校验
|
|
409
|
-
})
|
|
410
|
+
this.$refs.form.clearValidate('nextUserName'); // 移除校验
|
|
411
|
+
});
|
|
410
412
|
},
|
|
411
413
|
// 提交/撤回/操作处理
|
|
412
414
|
dialogConfirm() {
|
|
413
|
-
let that = this
|
|
414
|
-
let timer = null
|
|
415
|
+
let that = this;
|
|
416
|
+
let timer = null;
|
|
415
417
|
switch (this.moduleType) {
|
|
416
418
|
case 'view':
|
|
417
|
-
this.revokeAnnotations() // 撤销
|
|
418
|
-
break
|
|
419
|
+
this.revokeAnnotations(); // 撤销
|
|
420
|
+
break;
|
|
419
421
|
|
|
420
422
|
default:
|
|
421
423
|
timer = setTimeout(() => {
|
|
422
424
|
that.$refs.form.validate((valid) => {
|
|
423
425
|
if (valid) {
|
|
424
|
-
that.moduleType === 'add' && that.addAnnotations()
|
|
425
|
-
that.moduleType === 'operation' && that.operateAnnotations()
|
|
426
|
-
clearTimeout(timer)
|
|
426
|
+
that.moduleType === 'add' && that.addAnnotations();
|
|
427
|
+
that.moduleType === 'operation' && that.operateAnnotations();
|
|
428
|
+
clearTimeout(timer);
|
|
427
429
|
}
|
|
428
|
-
})
|
|
429
|
-
}, 300)
|
|
430
|
-
break
|
|
430
|
+
});
|
|
431
|
+
}, 300);
|
|
432
|
+
break;
|
|
431
433
|
}
|
|
432
434
|
},
|
|
433
435
|
// 新增批注
|
|
434
436
|
addAnnotations() {
|
|
435
|
-
this.dialogLoading = true
|
|
437
|
+
this.dialogLoading = true;
|
|
436
438
|
let params = {
|
|
437
439
|
// projectId: store.getters.projectId,
|
|
438
440
|
name: this.fileData.fileName,
|
|
439
441
|
origFileId: this.fileData.fileId, // 原始的文件id
|
|
440
442
|
fileId: this.annotationFileData.fileId,
|
|
441
443
|
// deptName: store.getters.deptName,
|
|
442
|
-
type: 'doc' // model:模型。doc:文档
|
|
443
|
-
}
|
|
444
|
+
type: 'doc', // model:模型。doc:文档
|
|
445
|
+
};
|
|
444
446
|
// 添加批注
|
|
445
447
|
add(Object.assign(params, this.form))
|
|
446
448
|
.then((res) => {
|
|
447
449
|
this.$message({
|
|
448
450
|
type: res.code === 200 ? 'success' : 'error',
|
|
449
|
-
message: res.msg
|
|
450
|
-
})
|
|
451
|
-
if (res.code === 200) this.$emit('handleAdd')
|
|
451
|
+
message: res.msg,
|
|
452
|
+
});
|
|
453
|
+
if (res.code === 200) this.$emit('handleAdd');
|
|
452
454
|
})
|
|
453
455
|
.finally(() => {
|
|
454
|
-
this.dialogLoading = false
|
|
455
|
-
})
|
|
456
|
+
this.dialogLoading = false;
|
|
457
|
+
});
|
|
456
458
|
},
|
|
457
459
|
// 撤销
|
|
458
460
|
revokeAnnotations() {
|
|
459
|
-
this.dialogLoading = true
|
|
461
|
+
this.dialogLoading = true;
|
|
460
462
|
revoke({ id: this.detailData.id })
|
|
461
463
|
.then((res) => {
|
|
462
464
|
this.$message({
|
|
463
465
|
type: res.code === 200 ? 'success' : 'error',
|
|
464
|
-
message: res.msg
|
|
465
|
-
})
|
|
466
|
-
if (res.code === 200) this.close(true)
|
|
466
|
+
message: res.msg,
|
|
467
|
+
});
|
|
468
|
+
if (res.code === 200) this.close(true);
|
|
467
469
|
})
|
|
468
470
|
.finally(() => {
|
|
469
|
-
this.dialogLoading = false
|
|
470
|
-
})
|
|
471
|
+
this.dialogLoading = false;
|
|
472
|
+
});
|
|
471
473
|
},
|
|
472
474
|
// 操作 处理
|
|
473
475
|
operateAnnotations() {
|
|
474
|
-
this.dialogLoading = true
|
|
476
|
+
this.dialogLoading = true;
|
|
475
477
|
let params = {
|
|
476
478
|
id: this.detailData.id,
|
|
477
479
|
// fileId: this.detailData.fileId,
|
|
478
480
|
// deptName: store.getters.deptName
|
|
479
|
-
}
|
|
481
|
+
};
|
|
480
482
|
operate(Object.assign(params, this.form))
|
|
481
483
|
.then((res) => {
|
|
482
484
|
this.$message({
|
|
483
485
|
type: res.code === 200 ? 'success' : 'error',
|
|
484
|
-
message: res.msg
|
|
485
|
-
})
|
|
486
|
-
if (res.code === 200) this.close(true)
|
|
486
|
+
message: res.msg,
|
|
487
|
+
});
|
|
488
|
+
if (res.code === 200) this.close(true);
|
|
487
489
|
})
|
|
488
490
|
.finally(() => {
|
|
489
|
-
this.dialogLoading = false
|
|
490
|
-
})
|
|
491
|
+
this.dialogLoading = false;
|
|
492
|
+
});
|
|
491
493
|
},
|
|
492
494
|
// 关闭弹窗 refresh 判断是否需要刷新列表数据
|
|
493
495
|
close(refresh, resetForm) {
|
|
494
|
-
if(this.isClient && resetForm){
|
|
496
|
+
if (this.isClient && resetForm) {
|
|
495
497
|
this.$refs.form.resetFields();
|
|
496
498
|
}
|
|
497
|
-
this.$emit('close', refresh)
|
|
499
|
+
this.$emit('close', refresh);
|
|
498
500
|
},
|
|
499
501
|
dialogConfirmChooseUser(list) {
|
|
500
|
-
this.form.nextUser = list[0].label
|
|
501
|
-
this.$set(this.form, 'nextUserName', list[0].nickName)
|
|
502
|
+
this.form.nextUser = list[0].label;
|
|
503
|
+
this.$set(this.form, 'nextUserName', list[0].nickName);
|
|
502
504
|
this.$nextTick(() => {
|
|
503
|
-
this.$refs.form.clearValidate('nextUserName') // 移除校验
|
|
504
|
-
})
|
|
505
|
-
this.chooseUserDialog = false
|
|
505
|
+
this.$refs.form.clearValidate('nextUserName'); // 移除校验
|
|
506
|
+
});
|
|
507
|
+
this.chooseUserDialog = false;
|
|
506
508
|
},
|
|
507
|
-
clickEdit(){
|
|
509
|
+
clickEdit() {
|
|
508
510
|
this.$emit('clickEditPic', this.detailModel);
|
|
509
511
|
},
|
|
510
|
-
clickSave(){
|
|
511
|
-
if(this.isClient){
|
|
512
|
-
this.$refs[
|
|
512
|
+
clickSave() {
|
|
513
|
+
if (this.isClient) {
|
|
514
|
+
this.$refs['form'].validate(async (valid) => {
|
|
513
515
|
if (valid) {
|
|
514
516
|
this.handleSave();
|
|
515
517
|
}
|
|
516
518
|
});
|
|
517
|
-
}else{
|
|
519
|
+
} else {
|
|
518
520
|
this.handleSave();
|
|
519
521
|
}
|
|
520
522
|
},
|
|
521
|
-
handleSave(reset){
|
|
522
|
-
this.close(true, reset)
|
|
523
|
-
this.$emit(
|
|
523
|
+
handleSave(reset) {
|
|
524
|
+
this.close(true, reset);
|
|
525
|
+
this.$emit('clickSaveBtn', this.detailModel);
|
|
524
526
|
},
|
|
525
|
-
beforeClose(){
|
|
527
|
+
beforeClose() {
|
|
526
528
|
// this.detailData = {};
|
|
527
|
-
this.close(true)
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
}
|
|
529
|
+
this.close(true);
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
};
|
|
531
533
|
</script>
|
|
532
534
|
<style lang="scss" scoped>
|
|
533
535
|
.nextUser {
|
|
@@ -549,7 +551,7 @@ export default {
|
|
|
549
551
|
padding: 12px;
|
|
550
552
|
border-top: 1px solid rgba(0, 0, 0, 0.09);
|
|
551
553
|
}
|
|
552
|
-
.image-edit-container{
|
|
554
|
+
.image-edit-container {
|
|
553
555
|
cursor: pointer;
|
|
554
556
|
float: right;
|
|
555
557
|
width: 36px;
|
|
@@ -559,9 +561,8 @@ export default {
|
|
|
559
561
|
display: flex;
|
|
560
562
|
justify-content: center;
|
|
561
563
|
align-items: center;
|
|
562
|
-
.image-edit{
|
|
564
|
+
.image-edit {
|
|
563
565
|
font-size: 32px;
|
|
564
566
|
}
|
|
565
567
|
}
|
|
566
|
-
|
|
567
568
|
</style>
|