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.
- package/dist/fl-web-component.common.js +14751 -54489
- 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 +14751 -54489
- package/dist/fl-web-component.umd.js.map +1 -1
- package/dist/fl-web-component.umd.min.js +3 -3
- package/dist/fl-web-component.umd.min.js.map +1 -1
- package/package.json +28 -5
- package/packages/components/button/index.vue +18 -17
- package/packages/components/com-card/card-page.vue +51 -49
- package/packages/components/com-card/index.vue +20 -21
- package/packages/components/com-dialogWrapper/index.vue +18 -21
- 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/index.vue +76 -75
- package/packages/components/com-graphics/index.vue +1057 -226
- 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 +33 -33
- package/packages/components/com-selectTree/index.vue +61 -63
- package/packages/components/com-table/column-default.vue +9 -14
- package/packages/components/com-table/column-dynamic.vue +4 -8
- package/packages/components/com-table/column-menu.vue +8 -8
- package/packages/components/com-table/column-slot.vue +4 -4
- package/packages/components/com-table/column.vue +7 -15
- package/packages/components/com-table/config.js +9 -9
- package/packages/components/com-table/index.vue +35 -35
- package/packages/components/com-table/table-page.vue +17 -17
- package/packages/components/com-tabs/index.vue +19 -19
- package/packages/components/com-treeDynamic/index.vue +45 -45
- 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/src/assets/test.png +0 -0
- package/src/assets/worker.glb +0 -0
- package/src/main.js +11 -8
- 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
|
@@ -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
|
|
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
|
|
15
|
+
<el-button
|
|
16
|
+
type="primary"
|
|
17
|
+
style="margin-top: 8px; width: 100%"
|
|
11
18
|
@click="clickAdd"
|
|
12
|
-
v-hasPermi="[
|
|
13
|
-
|
|
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
|
|
21
|
-
|
|
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
|
|
28
|
-
|
|
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
|
|
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
|
|
44
|
-
|
|
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
|
|
64
|
-
|
|
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
|
|
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
|
|
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
|
|
82
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
|
|
133
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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
|
|
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:
|
|
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:
|
|
209
|
-
label:
|
|
280
|
+
value: '0',
|
|
281
|
+
label: '未处理',
|
|
210
282
|
},
|
|
211
283
|
{
|
|
212
|
-
value:
|
|
213
|
-
label:
|
|
284
|
+
value: '1',
|
|
285
|
+
label: '已处理',
|
|
214
286
|
},
|
|
215
287
|
{
|
|
216
|
-
value:
|
|
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,
|
|
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 =
|
|
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:
|
|
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
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
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
|
-
})
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
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:
|
|
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
|
-
|
|
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 =
|
|
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(
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 =
|
|
602
|
+
this.detailStatus = 'edit';
|
|
527
603
|
// backupDetailModel = Object.assign({}, this.detailModel);
|
|
528
604
|
|
|
529
|
-
this.$emit(
|
|
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 =
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
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 #
|
|
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 {
|