|
1
|
1
|
<template>
|
|
2
|
|
- <view class="core-personnel">
|
|
3
|
|
- <view class="header" :class="{'bp': mode !== 'add'}">
|
|
|
2
|
+ <view class="core-personnel" :class="{ 'history': mode == 'history' }">
|
|
|
3
|
+ <!-- 变更记录详情-核心人员 -->
|
|
|
4
|
+ <view v-if="mode === 'history'" class="header">
|
|
|
5
|
+ <text class="title">{{ title }}</text>
|
|
|
6
|
+ </view>
|
|
|
7
|
+ <!-- 新增&详情-核心人员 -->
|
|
|
8
|
+ <view v-else class="header" :class="{ 'bp': mode !== 'add' }">
|
|
4
|
9
|
<image class="opCollapse" src="/static/images/title.png" />
|
|
5
|
10
|
<text class="title">核心人员</text>
|
|
6
|
11
|
<view class="ops">
|
|
...
|
...
|
@@ -90,7 +95,7 @@ |
|
90
|
95
|
</view>
|
|
91
|
96
|
</view>
|
|
92
|
97
|
|
|
93
|
|
- <view v-else class="view-list" v-show="!collapsedView">
|
|
|
98
|
+ <view v-else-if="mode === 'view'" class="view-list" v-show="!collapsedView">
|
|
94
|
99
|
<view v-for="(item, idx) in items" :key="'v-' + idx" class="card">
|
|
95
|
100
|
<view class="row"><text class="label">姓名</text><text class="value">{{ item.name }}</text></view>
|
|
96
|
101
|
<view class="row"><text class="label">性别</text><text class="value">{{ getSexName(item) }}</text></view>
|
|
...
|
...
|
@@ -103,6 +108,19 @@ |
|
103
|
108
|
<view class="row"><text class="label">现住址</text><text class="value">{{ item.address }}</text></view>
|
|
104
|
109
|
</view>
|
|
105
|
110
|
</view>
|
|
|
111
|
+ <view v-else-if="mode === 'history'" class="history-list" v-show="!collapsedView">
|
|
|
112
|
+ <view v-for="(item, idx) in items" :key="'v-' + idx" class="card">
|
|
|
113
|
+ <view class="row"><text class="label">姓名</text><text class="value" :class="{'change': item.nameChange || ['ADD', 'DELETE'].includes(item.type)}">{{ item.name }}</text></view>
|
|
|
114
|
+ <view class="row"><text class="label">性别</text><text class="value" :class="{'change': item.sexChange || ['ADD', 'DELETE'].includes(item.type)}">{{ getSexName(item) }}</text></view>
|
|
|
115
|
+ <view class="row"><text class="label">籍贯</text><text class="value" :class="{'change': item.nativePlaceChange || ['ADD', 'DELETE'].includes(item.type)}">{{ item.nativePlace }}</text></view>
|
|
|
116
|
+ <view class="row"><text class="label">年龄</text><text class="value" :class="{'change': item.ageChange || ['ADD', 'DELETE'].includes(item.type)}">{{ item.age }}</text></view>
|
|
|
117
|
+ <view class="row"><text class="label">职务</text><text class="value" :class="{'change': item.positionChange || ['ADD', 'DELETE'].includes(item.type)}">{{ item.position }}</text></view>
|
|
|
118
|
+ <view class="row"><text class="label">手机</text><text class="value" :class="{'change': item.mobileChange || ['ADD', 'DELETE'].includes(item.type)}">{{ item.mobile }}</text></view>
|
|
|
119
|
+ <view class="row"><text class="label">固定电话</text><text class="value" :class="{'change': item.phoneChange || ['ADD', 'DELETE'].includes(item.type)}">{{ item.phone }}</text></view>
|
|
|
120
|
+ <view class="row"><text class="label">邮箱地址</text><text class="value" :class="{'change': item.emailChange || ['ADD', 'DELETE'].includes(item.type)}">{{ item.email }}</text></view>
|
|
|
121
|
+ <view class="row"><text class="label">现住址</text><text class="value" :class="{'change': item.addressChange || ['ADD', 'DELETE'].includes(item.type)}">{{ item.address }}</text></view>
|
|
|
122
|
+ </view>
|
|
|
123
|
+ </view>
|
|
106
|
124
|
<SingleSelectSheet :visible.sync="sheet.visible" :title="sheet.title" :options="sheet.options"
|
|
107
|
125
|
v-model="sheet.value" @confirm="onProductConfirm" />
|
|
108
|
126
|
</view>
|
|
...
|
...
|
@@ -113,6 +131,7 @@ import { uuid } from '@/utils/uuid.js' |
|
113
|
131
|
export default {
|
|
114
|
132
|
name: 'CorePersonnel',
|
|
115
|
133
|
props: {
|
|
|
134
|
+ title: { type: String, default: '' },
|
|
116
|
135
|
mode: { type: String, default: 'add' },
|
|
117
|
136
|
list: { type: Array, default: () => [] },
|
|
118
|
137
|
max: { type: Number, default: 8 },
|
|
...
|
...
|
@@ -240,6 +259,14 @@ export default { |
|
240
|
259
|
<style lang="scss" scoped>
|
|
241
|
260
|
.core-personnel {
|
|
242
|
261
|
margin-top: 10px;
|
|
|
262
|
+
|
|
|
263
|
+ &.history {
|
|
|
264
|
+ margin-top: 0;
|
|
|
265
|
+
|
|
|
266
|
+ .header {
|
|
|
267
|
+ padding: 32rpx 0 0 32rpx;
|
|
|
268
|
+ }
|
|
|
269
|
+ }
|
|
243
|
270
|
}
|
|
244
|
271
|
|
|
245
|
272
|
.header {
|
|
...
|
...
|
@@ -247,6 +274,7 @@ export default { |
|
247
|
274
|
display: flex;
|
|
248
|
275
|
align-items: center;
|
|
249
|
276
|
padding: 24rpx 32rpx;
|
|
|
277
|
+
|
|
250
|
278
|
&.bp {
|
|
251
|
279
|
border-bottom: 1rpx dashed #f0f0f0;
|
|
252
|
280
|
}
|
|
...
|
...
|
@@ -382,41 +410,86 @@ export default { |
|
382
|
410
|
.view-list {
|
|
383
|
411
|
padding: 26rpx 32rpx;
|
|
384
|
412
|
background: #ffffff;
|
|
385
|
|
-}
|
|
386
|
413
|
|
|
387
|
|
-.card {
|
|
388
|
|
- background: #f3f3f3;
|
|
389
|
|
- border-radius: 16rpx;
|
|
390
|
|
- padding: 32rpx 44rpx;
|
|
391
|
|
- margin-bottom: 20rpx;
|
|
|
414
|
+ .card {
|
|
|
415
|
+ background: #f3f3f3;
|
|
|
416
|
+ border-radius: 16rpx;
|
|
|
417
|
+ padding: 32rpx 44rpx;
|
|
|
418
|
+ margin-bottom: 20rpx;
|
|
392
|
419
|
|
|
393
|
|
- &:last-child {
|
|
|
420
|
+ &:last-child {
|
|
|
421
|
+ margin-bottom: 0;
|
|
|
422
|
+ }
|
|
|
423
|
+ }
|
|
|
424
|
+
|
|
|
425
|
+ .row {
|
|
|
426
|
+ display: flex;
|
|
|
427
|
+ margin-bottom: 24rpx;
|
|
|
428
|
+ line-height: 32rpx;
|
|
|
429
|
+ }
|
|
|
430
|
+
|
|
|
431
|
+ .row:last-child {
|
|
394
|
432
|
margin-bottom: 0;
|
|
395
|
433
|
}
|
|
396
|
|
-}
|
|
397
|
434
|
|
|
398
|
|
-.row {
|
|
399
|
|
- display: flex;
|
|
400
|
|
- margin-bottom: 24rpx;
|
|
401
|
|
- line-height: 32rpx;
|
|
402
|
|
-}
|
|
|
435
|
+ .label {
|
|
|
436
|
+ width: 180rpx;
|
|
|
437
|
+ margin-right: 14rpx;
|
|
|
438
|
+ color: rgba(0, 0, 0, 0.6);
|
|
|
439
|
+ font-size: 28rpx;
|
|
|
440
|
+ }
|
|
403
|
441
|
|
|
404
|
|
-.row:last-child {
|
|
405
|
|
- margin-bottom: 0;
|
|
|
442
|
+ .value {
|
|
|
443
|
+ flex: 1;
|
|
|
444
|
+ color: rgba(0, 0, 0, 0.9);
|
|
|
445
|
+ font-size: 28rpx;
|
|
|
446
|
+ white-space: pre-wrap;
|
|
|
447
|
+ word-break: break-all;
|
|
|
448
|
+ }
|
|
406
|
449
|
}
|
|
407
|
450
|
|
|
408
|
|
-.label {
|
|
409
|
|
- width: 180rpx;
|
|
410
|
|
- margin-right: 14rpx;
|
|
411
|
|
- color: rgba(0, 0, 0, 0.6);
|
|
412
|
|
- font-size: 28rpx;
|
|
413
|
|
-}
|
|
|
451
|
+.history-list {
|
|
|
452
|
+ padding: 20rpx 32rpx;
|
|
|
453
|
+ background: #ffffff;
|
|
414
|
454
|
|
|
415
|
|
-.value {
|
|
416
|
|
- flex: 1;
|
|
417
|
|
- color: rgba(0, 0, 0, 0.9);
|
|
418
|
|
- font-size: 28rpx;
|
|
419
|
|
- white-space: pre-wrap;
|
|
420
|
|
- word-break: break-all;
|
|
|
455
|
+ .card {
|
|
|
456
|
+ background: #f3f3f3;
|
|
|
457
|
+ border-radius: 16rpx;
|
|
|
458
|
+ padding: 32rpx 44rpx;
|
|
|
459
|
+ margin-bottom: 20rpx;
|
|
|
460
|
+
|
|
|
461
|
+ &:last-child {
|
|
|
462
|
+ margin-bottom: 0;
|
|
|
463
|
+ }
|
|
|
464
|
+ }
|
|
|
465
|
+
|
|
|
466
|
+ .row {
|
|
|
467
|
+ display: flex;
|
|
|
468
|
+ margin-bottom: 24rpx;
|
|
|
469
|
+ line-height: 32rpx;
|
|
|
470
|
+ }
|
|
|
471
|
+
|
|
|
472
|
+ .row:last-child {
|
|
|
473
|
+ margin-bottom: 0;
|
|
|
474
|
+ }
|
|
|
475
|
+
|
|
|
476
|
+ .label {
|
|
|
477
|
+ width: 180rpx;
|
|
|
478
|
+ margin-right: 14rpx;
|
|
|
479
|
+ color: rgba(0, 0, 0, 0.6);
|
|
|
480
|
+ font-size: 28rpx;
|
|
|
481
|
+ }
|
|
|
482
|
+
|
|
|
483
|
+ .value {
|
|
|
484
|
+ flex: 1;
|
|
|
485
|
+ color: rgba(0, 0, 0, 0.9);
|
|
|
486
|
+ font-size: 28rpx;
|
|
|
487
|
+ white-space: pre-wrap;
|
|
|
488
|
+ word-break: break-all;
|
|
|
489
|
+
|
|
|
490
|
+ &.change {
|
|
|
491
|
+ color: $theme-primary;
|
|
|
492
|
+ }
|
|
|
493
|
+ }
|
|
421
|
494
|
}
|
|
422
|
495
|
</style> |
...
|
...
|
|