|
@@ -3,40 +3,35 @@ |
|
@@ -3,40 +3,35 @@ |
|
3
|
<scroll-view class="scroll" scroll-y>
|
3
|
<scroll-view class="scroll" scroll-y>
|
|
4
|
<view class="detail-page">
|
4
|
<view class="detail-page">
|
|
5
|
<view class="section">
|
5
|
<view class="section">
|
|
6
|
- <text class="row company">{{ form.orderingUnitName }}</text>
|
6
|
+ <text class="row company">{{ form.customerName }}</text>
|
|
7
|
<view :class="['status', `status_${form.status}`]" />
|
7
|
<view :class="['status', `status_${form.status}`]" />
|
|
8
|
- <view class="row"><text class="label">试样种类</text><text class="value">{{ form.sampleTypeName }}</text></view>
|
|
|
|
9
|
- <view class="row"><text class="label">客户类型</text><text class="value">{{ form.customerTypeName }}</text></view>
|
|
|
|
10
|
- <view class="row"><text class="label">分厂</text><text class="value">{{ form.workshopName }}</text></view>
|
|
|
|
11
|
- <view class="row"><text class="label">所属品种</text><text class="value">{{ form.belongingBreed }}</text></view>
|
|
|
|
12
|
- <view class="row"><text class="label">原供货同行</text><text class="value">{{ form.originalSupplierPeer }}</text>
|
|
|
|
13
|
- </view>
|
8
|
+ <view class="row"><text class="label">订单编号</text><text class="value">{{ form.orderCode }}</text></view>
|
|
|
|
9
|
+ <view class="row"><text class="label">生产厂</text><text class="value">{{ form.workshopName }}</text></view>
|
|
14
|
</view>
|
10
|
</view>
|
|
15
|
|
11
|
|
|
16
|
<!-- 产品 -->
|
12
|
<!-- 产品 -->
|
|
17
|
<view class="section2">
|
13
|
<view class="section2">
|
|
18
|
- <Product mode="view" :list="form.productSampleConfirmationSlipDetailList" />
|
14
|
+ <Product mode="view" :list="form.detailList" />
|
|
19
|
</view>
|
15
|
</view>
|
|
20
|
|
16
|
|
|
21
|
- <view class="section3">
|
|
|
|
22
|
- <view class="view-total">
|
|
|
|
23
|
- <view class="head">合计</view>
|
|
|
|
24
|
- <view class="row">
|
|
|
|
25
|
- <view class="row2">
|
|
|
|
26
|
- <text class="label">数量</text><text class="value">{{ form.totalQuantity }}</text>
|
|
|
|
27
|
- </view>
|
|
|
|
28
|
- </view>
|
|
|
|
29
|
- </view>
|
17
|
+ <view class="title-header">
|
|
|
|
18
|
+ <image class="title-header_icon" src="/static/images/title.png" />
|
|
|
|
19
|
+ <span>本次试样概况</span>
|
|
30
|
</view>
|
20
|
</view>
|
|
31
|
|
21
|
|
|
32
|
<view class="section">
|
22
|
<view class="section">
|
|
33
|
- <view class="row"><text class="label">数量</text><text class="value">{{ form.totalQuantity }}</text></view>
|
|
|
|
34
|
- <view class="row"><text class="label">本次试样数量是否超规定</text><text class="value">{{ form.sampleQuantityRegulation ?
|
|
|
|
35
|
- '是' : '否' }}</text></view>
|
|
|
|
36
|
- <view class="row"><text class="label">试样规格个数是否超规定</text><text class="value">{{
|
|
|
|
37
|
- form.specificationQuantityRegulation ? '是' : '否' }}</text></view>
|
|
|
|
38
|
- <view class="row"><text class="label">试样次数</text><text class="value">{{ form.sampleFrequency }}</text></view>
|
|
|
|
39
|
- <view class="row"><text class="label">前期不合格描述</text><text class="value">{{ form.earlyNonconformityDescription
|
23
|
+ <view class="row"><text class="label">表面</text><text class="value">{{ form.surface }}</text></view>
|
|
|
|
24
|
+ <view class="row"><text class="label">性能</text><text class="value">{{ form.performance }}</text></view>
|
|
|
|
25
|
+ <view class="row"><text class="label">公差</text><text class="value">{{ form.tolerance }}</text></view>
|
|
|
|
26
|
+ <view class="row"><text class="label">带型</text><text class="value">{{ form.bandingPattern }}</text></view>
|
|
|
|
27
|
+ <view class="row"><text class="label">包装</text><text class="value">{{ form.packaging }}</text></view>
|
|
|
|
28
|
+ <view class="row"><text class="label">件重条头</text><text class="value">{{ form.weight }}</text></view>
|
|
|
|
29
|
+ <view class="row"><text class="label">其他</text><text class="value">{{ form.other }}</text></view>
|
|
|
|
30
|
+ <view class="row"><text class="label">结论</text><text class="value">{{ form.other }}</text></view>
|
|
|
|
31
|
+ <view class="row"><text class="label"></text><text class="value">{{ form.sampleResultSub }}</text></view>
|
|
|
|
32
|
+ </view>
|
|
|
|
33
|
+ <view class="section">
|
|
|
|
34
|
+ <view class="row"><text class="label">客户评价依据</text><text class="value act" @click="downloadFile(form.customerReviewsFileId, form.customerReviewsFileName)">{{ form.customerReviewsFileName
|
|
40
|
}}</text></view>
|
35
|
}}</text></view>
|
|
41
|
</view>
|
36
|
</view>
|
|
42
|
</view>
|
37
|
</view>
|
|
@@ -46,12 +41,13 @@ |
|
@@ -46,12 +41,13 @@ |
|
46
|
</template>
|
41
|
</template>
|
|
47
|
|
42
|
|
|
48
|
<script>
|
43
|
<script>
|
|
49
|
-import { getDetailApi } from '@/api/confirmation_form.js'
|
44
|
+import { getDetailApi } from '@/api/follow_up_form.js'
|
|
50
|
import Product from './product.vue'
|
45
|
import Product from './product.vue'
|
|
51
|
import DetailButtons from '@/components/detail-buttons/index.vue'
|
46
|
import DetailButtons from '@/components/detail-buttons/index.vue'
|
|
|
|
47
|
+import { downloadFile } from '@/utils/downloadFile.js'
|
|
52
|
|
48
|
|
|
53
|
export default {
|
49
|
export default {
|
|
54
|
- name: 'ConfirmationFormDetail',
|
50
|
+ name: 'FollowUpFormDetail',
|
|
55
|
components: { Product, DetailButtons },
|
51
|
components: { Product, DetailButtons },
|
|
56
|
data() {
|
52
|
data() {
|
|
57
|
return {
|
53
|
return {
|
|
@@ -67,19 +63,22 @@ export default { |
|
@@ -67,19 +63,22 @@ export default { |
|
67
|
statusFlags() {
|
63
|
statusFlags() {
|
|
68
|
const m = this.form || {}
|
64
|
const m = this.form || {}
|
|
69
|
const e = String(m.status || '')
|
65
|
const e = String(m.status || '')
|
|
70
|
- // showAudit 这个字段就是后端自己判断的 制单人所在区域 所有人 权限
|
66
|
+ console.log('statusFlags_this.form', this.form)
|
|
|
|
67
|
+ console.log('statusFlags_e', e)
|
|
71
|
return {
|
68
|
return {
|
|
72
|
- canEdit: !e && m.showAudit || false,
|
69
|
+ // 跟踪单编辑:1:审核状态为空、已驳回 2:showAudit为true 3:需要加角色权限
|
|
|
|
70
|
+ canEdit: (!e || e === 'REFUSE') && m.showAudit || false,
|
|
73
|
canAudit: e === 'AUDIT' && m.showExamine || false,
|
71
|
canAudit: e === 'AUDIT' && m.showExamine || false,
|
|
74
|
canAuditDetail: !!e || false,
|
72
|
canAuditDetail: !!e || false,
|
|
75
|
}
|
73
|
}
|
|
76
|
},
|
74
|
},
|
|
77
|
displayButtons() {
|
75
|
displayButtons() {
|
|
78
|
- const f = this.statusFlags
|
76
|
+ const f = this.statusFlags;
|
|
|
|
77
|
+ console.log('displayButtons_f', f)
|
|
79
|
return [
|
78
|
return [
|
|
80
|
- { ...this.buttons[0], visible: f.canEdit }, // 不需要额外的角色权限
|
|
|
|
81
|
- { ...this.buttons[1], visible: f.canAuditDetail && this.$auth.hasPermi('sample-order:confirmation-form:review') },
|
|
|
|
82
|
- { ...this.buttons[2], visible: f.canAudit && this.$auth.hasPermi('sample-order:confirmation-form:approve') },
|
79
|
+ { ...this.buttons[0], visible: f.canEdit && this.$auth.hasPermi('sample-order:follow-up-form:modify') },
|
|
|
|
80
|
+ { ...this.buttons[1], visible: f.canAuditDetail && this.$auth.hasPermi('sample-order:follow-up-form:review') },
|
|
|
|
81
|
+ { ...this.buttons[2], visible: f.canAudit && this.$auth.hasPermi('sample-order:follow-up-form:approve') },
|
|
83
|
]
|
82
|
]
|
|
84
|
}
|
83
|
}
|
|
85
|
},
|
84
|
},
|
|
@@ -118,6 +117,7 @@ export default { |
|
@@ -118,6 +117,7 @@ export default { |
|
118
|
uni.setStorageSync('sourceBusinessId', this.form.id)
|
117
|
uni.setStorageSync('sourceBusinessId', this.form.id)
|
|
119
|
uni.navigateTo({ url: '/pages/flow/audit' })
|
118
|
uni.navigateTo({ url: '/pages/flow/audit' })
|
|
120
|
},
|
119
|
},
|
|
|
|
120
|
+ downloadFile,
|
|
121
|
|
121
|
|
|
122
|
}
|
122
|
}
|
|
123
|
}
|
123
|
}
|
|
@@ -206,6 +206,11 @@ export default { |
|
@@ -206,6 +206,11 @@ export default { |
|
206
|
color: rgba(0, 0, 0, 0.9);
|
206
|
color: rgba(0, 0, 0, 0.9);
|
|
207
|
text-align: right;
|
207
|
text-align: right;
|
|
208
|
word-break: break-all;
|
208
|
word-break: break-all;
|
|
|
|
209
|
+
|
|
|
|
210
|
+ &.act {
|
|
|
|
211
|
+ color: $theme-primary;
|
|
|
|
212
|
+ }
|
|
|
|
213
|
+
|
|
209
|
}
|
214
|
}
|
|
210
|
}
|
215
|
}
|
|
211
|
|
216
|
|
|
@@ -232,51 +237,52 @@ export default { |
|
@@ -232,51 +237,52 @@ export default { |
|
232
|
|
237
|
|
|
233
|
.section2 {
|
238
|
.section2 {
|
|
234
|
background: #f1f1f1;
|
239
|
background: #f1f1f1;
|
|
|
|
240
|
+ margin-bottom: 20rpx;
|
|
235
|
}
|
241
|
}
|
|
236
|
|
242
|
|
|
237
|
|
243
|
|
|
238
|
.section3 {
|
244
|
.section3 {
|
|
239
|
- padding: 0 32rpx;
|
|
|
|
240
|
- background-color: #fff;
|
|
|
|
241
|
- margin: 20rpx 0;
|
245
|
+ padding: 0 32rpx;
|
|
|
|
246
|
+ background-color: #fff;
|
|
|
|
247
|
+ margin: 20rpx 0;
|
|
242
|
}
|
248
|
}
|
|
243
|
|
249
|
|
|
244
|
.view-total {
|
250
|
.view-total {
|
|
245
|
- padding-bottom: 20rpx;
|
|
|
|
246
|
-
|
|
|
|
247
|
- .head {
|
|
|
|
248
|
- font-size: 32rpx;
|
|
|
|
249
|
- font-weight: 600;
|
|
|
|
250
|
- line-height: 50rpx;
|
|
|
|
251
|
- color: rgba(0, 0, 0, 0.9);
|
|
|
|
252
|
- padding-bottom: 16rpx;
|
|
|
|
253
|
- margin-bottom: 24rpx;
|
|
|
|
254
|
- border-bottom: 1px dashed #E7E7E7;
|
251
|
+ padding-bottom: 20rpx;
|
|
|
|
252
|
+
|
|
|
|
253
|
+ .head {
|
|
|
|
254
|
+ font-size: 32rpx;
|
|
|
|
255
|
+ font-weight: 600;
|
|
|
|
256
|
+ line-height: 50rpx;
|
|
|
|
257
|
+ color: rgba(0, 0, 0, 0.9);
|
|
|
|
258
|
+ padding-bottom: 16rpx;
|
|
|
|
259
|
+ margin-bottom: 24rpx;
|
|
|
|
260
|
+ border-bottom: 1px dashed #E7E7E7;
|
|
|
|
261
|
+ }
|
|
|
|
262
|
+
|
|
|
|
263
|
+ .row {
|
|
|
|
264
|
+ display: flex;
|
|
|
|
265
|
+ margin-bottom: 24rpx;
|
|
|
|
266
|
+ line-height: 32rpx;
|
|
|
|
267
|
+
|
|
|
|
268
|
+ .row2 {
|
|
|
|
269
|
+ width: 50%;
|
|
|
|
270
|
+ }
|
|
|
|
271
|
+
|
|
|
|
272
|
+ .label {
|
|
|
|
273
|
+ width: 180rpx;
|
|
|
|
274
|
+ margin-right: 14rpx;
|
|
|
|
275
|
+ color: rgba(0, 0, 0, 0.6);
|
|
|
|
276
|
+ font-size: 28rpx;
|
|
255
|
}
|
277
|
}
|
|
256
|
|
278
|
|
|
257
|
- .row {
|
|
|
|
258
|
- display: flex;
|
|
|
|
259
|
- margin-bottom: 24rpx;
|
|
|
|
260
|
- line-height: 32rpx;
|
|
|
|
261
|
-
|
|
|
|
262
|
- .row2 {
|
|
|
|
263
|
- width: 50%;
|
|
|
|
264
|
- }
|
|
|
|
265
|
-
|
|
|
|
266
|
- .label {
|
|
|
|
267
|
- width: 180rpx;
|
|
|
|
268
|
- margin-right: 14rpx;
|
|
|
|
269
|
- color: rgba(0, 0, 0, 0.6);
|
|
|
|
270
|
- font-size: 28rpx;
|
|
|
|
271
|
- }
|
|
|
|
272
|
-
|
|
|
|
273
|
- .value {
|
|
|
|
274
|
- flex: 1;
|
|
|
|
275
|
- color: rgba(0, 0, 0, 0.9);
|
|
|
|
276
|
- font-size: 28rpx;
|
|
|
|
277
|
- white-space: pre-wrap;
|
|
|
|
278
|
- word-break: break-all;
|
|
|
|
279
|
- }
|
279
|
+ .value {
|
|
|
|
280
|
+ flex: 1;
|
|
|
|
281
|
+ color: rgba(0, 0, 0, 0.9);
|
|
|
|
282
|
+ font-size: 28rpx;
|
|
|
|
283
|
+ white-space: pre-wrap;
|
|
|
|
284
|
+ word-break: break-all;
|
|
280
|
}
|
285
|
}
|
|
|
|
286
|
+ }
|
|
281
|
}
|
287
|
}
|
|
282
|
</style> |
288
|
</style> |