vue2-client 1.14.42 → 1.14.45
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/package.json +1 -1
- package/src/base-client/components/common/XReport/XReport.vue +1 -1
- package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +4 -3
- package/src/base-client/components/his/XCharge/XCharge.vue +226 -0
- package/src/base-client/components/his/XList/XList.vue +0 -3
- package/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +9 -9
- package/src/base-client/components/his/XTitle/XTitle.vue +1 -5
- package/src/base-client/components/his/threeTestOrders/textBox.vue +50 -102
- package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +14 -24
- package/src/pages/WorkflowDetail/WorkFlowDemo.vue +1 -1
- package/src/pages/WorkflowDetail/WorkflowDetail.vue +122 -37
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +244 -116
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +2 -2
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +2 -1
|
@@ -1,110 +1,126 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div id="ApplyBaseInformation">
|
|
3
|
-
<a-card :loading="loading" :bordered="false" class="info-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<div
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
<a-card :loading="loading" :bordered="false" class="info-card-container">
|
|
4
|
+
<div class="info-cards-wrapper">
|
|
5
|
+
<!-- 第一个 -->
|
|
6
|
+
<div class="info-card">
|
|
7
|
+
<div class="info-icon" :class="details.f_state === 1 ? 'status-completed' : 'status-progress'">
|
|
8
|
+
<a-icon type="appstore" theme="filled" />
|
|
9
|
+
</div>
|
|
10
|
+
<div class="info-content">
|
|
11
|
+
<div v-if="showProjectPerson" class="info-title">
|
|
12
|
+
{{ details.f_entry_name }}
|
|
13
|
+
<a-popover placement="bottom">
|
|
14
|
+
<template slot="content">
|
|
15
|
+
<div v-if="details.person.f_projectadmin">项目经理:{{ details.person.f_projectadmin }}</div>
|
|
16
|
+
<div v-if="details.person.f_shangwuren">客户经理:{{ details.person.f_shangwuren }}</div>
|
|
17
|
+
<div v-if="details.person.f_salemanager">销售经理:{{ details.person.f_salemanager }}</div>
|
|
18
|
+
<div v-if="details.person.f_egionaladministrator">大区经理:{{ details.person.f_egionaladministrator }}</div>
|
|
19
|
+
</template>
|
|
20
|
+
<a-icon type="info-circle" class="info-icon-small" />
|
|
21
|
+
</a-popover>
|
|
22
|
+
</div>
|
|
23
|
+
<div v-else class="info-title">{{ details.f_task_name }}</div>
|
|
24
|
+
<div class="info-label" :class="details.f_state === 1 ? 'status-completed-text' : 'status-progress-text'">
|
|
25
|
+
{{ details.f_state === 1 ? '完工' : '正在进行' }}
|
|
26
|
+
</div>
|
|
18
27
|
</div>
|
|
19
|
-
<div v-else class="title">{{ details.f_task_name }}</div>
|
|
20
|
-
<div class="sub-text">{{ details.f_state === 1 ? '完工' : '正在进行' }}</div>
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
23
|
-
<!-- 第二个 -->
|
|
24
|
-
<div class="info-tag" style="background: #34d6af">
|
|
25
|
-
<div><a-icon type="carry-out" theme="filled" style="font-size: 16px" /></div>
|
|
26
|
-
<div class="content">
|
|
27
|
-
<div class="title">{{ format(details.f_workflow_date, 'yyyy-MM-dd') }}</div>
|
|
28
|
-
<div class="sub-text">创建日期</div>
|
|
29
28
|
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<div class="
|
|
29
|
+
|
|
30
|
+
<!-- 第二个 -->
|
|
31
|
+
<div class="info-card">
|
|
32
|
+
<div class="info-icon date-icon">
|
|
33
|
+
<a-icon type="carry-out" theme="filled" />
|
|
34
|
+
</div>
|
|
35
|
+
<div class="info-content">
|
|
36
|
+
<div class="info-title">{{ format(details.f_workflow_date, 'yyyy-MM-dd') }}</div>
|
|
37
|
+
<div class="info-label">创建日期</div>
|
|
38
|
+
</div>
|
|
37
39
|
</div>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
</a-dropdown>
|
|
40
|
+
|
|
41
|
+
<!-- 第三个 -->
|
|
42
|
+
<div v-show="details.f_state !== 1" class="info-card">
|
|
43
|
+
<div class="info-icon workflow-icon">
|
|
44
|
+
<a-icon type="profile" theme="filled" />
|
|
45
|
+
</div>
|
|
46
|
+
<div class="info-content">
|
|
47
|
+
<div class="info-title">{{ details.f_workflow_define_name }}</div>
|
|
48
|
+
<div class="info-label">{{ details.f_sub_state }}</div>
|
|
49
|
+
</div>
|
|
49
50
|
</div>
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
<a-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
51
|
+
|
|
52
|
+
<!-- 第四个 -->
|
|
53
|
+
<div class="info-card" title="若要修改完成时间,请通知部门领导进行修改!">
|
|
54
|
+
<div class="info-icon time-icon">
|
|
55
|
+
<a-icon type="clock-circle" theme="filled" />
|
|
56
|
+
<a-dropdown>
|
|
57
|
+
<a-icon type="down" class="dropdown-icon" />
|
|
58
|
+
<a-menu slot="overlay">
|
|
59
|
+
<a-menu-item @click="showChangeRecord">修改记录</a-menu-item>
|
|
60
|
+
</a-menu>
|
|
61
|
+
</a-dropdown>
|
|
62
|
+
</div>
|
|
63
|
+
<div class="info-content">
|
|
64
|
+
<div class="info-title">
|
|
65
|
+
{{ format(details.f_complete_time, 'yyyy-MM-dd') }}
|
|
66
|
+
<!-- 修改任务时间 -->
|
|
67
|
+
<a-popover v-if="isCreatedBy" v-model="openCompleteTime" title="修改任务时间" trigger="click">
|
|
68
|
+
<template slot="content">
|
|
69
|
+
<a-form-item label="任务整体完成时间" :label-col="{ span: 10 }" :wrapper-col="{ span: 14 }">
|
|
70
|
+
<a-date-picker
|
|
71
|
+
v-model="completeTime"
|
|
72
|
+
:disabled-date="disabledDate"
|
|
73
|
+
:show-today="false"
|
|
74
|
+
:allow-clear="false"
|
|
75
|
+
value-format="YYYY-MM-DD HH:mm:ss"
|
|
76
|
+
>
|
|
77
|
+
</a-date-picker>
|
|
78
|
+
</a-form-item>
|
|
79
|
+
<a-form-item label="当前环节截止时间" :label-col="{ span: 10 }" :wrapper-col="{ span: 14 }">
|
|
80
|
+
<a-date-picker
|
|
81
|
+
v-model="overdueTime"
|
|
82
|
+
:disabled-date="disabledDate"
|
|
83
|
+
:show-today="false"
|
|
84
|
+
value-format="YYYY-MM-DD 17:00:00"
|
|
85
|
+
>
|
|
86
|
+
</a-date-picker>
|
|
87
|
+
</a-form-item>
|
|
88
|
+
<a-form-item label="修改原因" :label-col="{ span: 10 }" :wrapper-col="{ span: 14 }">
|
|
89
|
+
<a-textarea
|
|
90
|
+
v-model="note"
|
|
91
|
+
:auto-size="{ minRows: 3, maxRows: 5 }"
|
|
92
|
+
placeholder="修改原因"
|
|
93
|
+
/>
|
|
94
|
+
</a-form-item>
|
|
95
|
+
<div style="text-align: right">
|
|
96
|
+
<a-button type="primary" size="small" @click="saveCompleteTime">确定</a-button>
|
|
97
|
+
</div>
|
|
98
|
+
</template>
|
|
99
|
+
<a-icon type="edit" theme="filled" class="edit-icon" />
|
|
100
|
+
</a-popover>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="info-label">完成时间</div>
|
|
91
103
|
</div>
|
|
92
|
-
<div class="sub-text">完成时间</div>
|
|
93
104
|
</div>
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
<div class="
|
|
105
|
+
|
|
106
|
+
<!-- 第五个 -->
|
|
107
|
+
<div v-show="details.f_workflow_parentid" @click="ordRecord" class="info-card">
|
|
108
|
+
<div class="info-icon parent-icon">
|
|
109
|
+
<a-icon type="profile" theme="filled" />
|
|
110
|
+
</div>
|
|
111
|
+
<div class="info-content">
|
|
112
|
+
<div class="info-title">{{ details.f_workflow_parentid }}</div>
|
|
113
|
+
<div class="info-label">父级工单编号</div>
|
|
114
|
+
</div>
|
|
101
115
|
</div>
|
|
102
116
|
</div>
|
|
103
117
|
</a-card>
|
|
118
|
+
|
|
104
119
|
<!-- 完成时间修改记录 -->
|
|
105
120
|
<a-modal v-model="changeRecordVisible" title="完成时间修改记录" :footer="null" :z-index="1001" :width="1500">
|
|
106
121
|
<a-table row-key="id" :columns="changeRecordColumns" :data-source="changeRecordDataSource" :loading="changeRecordLoading"></a-table>
|
|
107
122
|
</a-modal>
|
|
123
|
+
|
|
108
124
|
<!-- 父级工单 -->
|
|
109
125
|
<a-modal v-model="masterWorkOrderVisible" title="主工单" :footer="null" :z-index="1001" :width="1500">
|
|
110
126
|
<work-order-parent-details :workflow-id="details.f_workflow_parentid"></work-order-parent-details>
|
|
@@ -263,40 +279,152 @@ export default {
|
|
|
263
279
|
|
|
264
280
|
<style lang="less">
|
|
265
281
|
#ApplyBaseInformation {
|
|
266
|
-
.info-
|
|
282
|
+
.info-card-container {
|
|
267
283
|
background: transparent;
|
|
284
|
+
|
|
268
285
|
.ant-card-body {
|
|
269
|
-
display: flex;
|
|
270
|
-
justify-content: flex-start;
|
|
271
286
|
padding: 0;
|
|
272
287
|
}
|
|
273
288
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
289
|
+
|
|
290
|
+
.info-cards-wrapper {
|
|
291
|
+
display: flex;
|
|
292
|
+
flex-wrap: wrap;
|
|
293
|
+
gap: 16px;
|
|
294
|
+
|
|
295
|
+
.info-card {
|
|
296
|
+
flex: 1;
|
|
297
|
+
min-width: 180px;
|
|
298
|
+
background-color: #fff;
|
|
299
|
+
border-radius: 8px;
|
|
300
|
+
padding: 16px;
|
|
301
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
|
302
|
+
display: flex;
|
|
303
|
+
align-items: center;
|
|
304
|
+
transition: all 0.2s ease;
|
|
305
|
+
cursor: default;
|
|
306
|
+
border: 1px solid #eaedf2;
|
|
307
|
+
|
|
308
|
+
&:hover {
|
|
309
|
+
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.08);
|
|
284
310
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
311
|
+
|
|
312
|
+
.info-icon {
|
|
313
|
+
display: flex;
|
|
314
|
+
align-items: center;
|
|
315
|
+
justify-content: center;
|
|
316
|
+
width: 46px;
|
|
317
|
+
height: 46px;
|
|
318
|
+
border-radius: 8px;
|
|
319
|
+
font-size: 22px;
|
|
320
|
+
margin-right: 14px;
|
|
321
|
+
color: #fff;
|
|
322
|
+
flex-shrink: 0;
|
|
323
|
+
position: relative;
|
|
324
|
+
|
|
325
|
+
&.status-completed {
|
|
326
|
+
background-color: #ebad59;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
&.status-progress {
|
|
330
|
+
background-color: #5B6B8F;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
&.date-icon {
|
|
334
|
+
background-color: #4CAF50;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
&.workflow-icon {
|
|
338
|
+
background-color: #FF9800;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
&.time-icon {
|
|
342
|
+
background-color: #F44336;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
&.parent-icon {
|
|
346
|
+
background-color: #2196F3;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.dropdown-icon {
|
|
350
|
+
position: absolute;
|
|
351
|
+
right: -8px;
|
|
352
|
+
bottom: -8px;
|
|
353
|
+
color: #8392a5;
|
|
354
|
+
font-size: 14px;
|
|
355
|
+
background: #fff;
|
|
356
|
+
border-radius: 50%;
|
|
357
|
+
width: 20px;
|
|
358
|
+
height: 20px;
|
|
359
|
+
display: flex;
|
|
360
|
+
align-items: center;
|
|
361
|
+
justify-content: center;
|
|
362
|
+
border: 1px solid #eaedf2;
|
|
363
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
364
|
+
cursor: pointer;
|
|
365
|
+
|
|
366
|
+
&:hover {
|
|
367
|
+
color: #5B6B8F;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
288
370
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
371
|
+
|
|
372
|
+
.info-content {
|
|
373
|
+
flex: 1;
|
|
374
|
+
min-width: 0;
|
|
375
|
+
|
|
376
|
+
.info-title {
|
|
377
|
+
font-size: 20px;
|
|
378
|
+
font-weight: 600;
|
|
379
|
+
color: #2c3e50;
|
|
380
|
+
margin-bottom: 6px;
|
|
381
|
+
white-space: nowrap;
|
|
382
|
+
overflow: hidden;
|
|
383
|
+
text-overflow: ellipsis;
|
|
384
|
+
display: flex;
|
|
385
|
+
align-items: center;
|
|
386
|
+
line-height: 1.3;
|
|
387
|
+
|
|
388
|
+
.info-icon-small {
|
|
389
|
+
margin-left: 6px;
|
|
390
|
+
color: #8392a5;
|
|
391
|
+
font-size: 16px;
|
|
392
|
+
cursor: pointer;
|
|
393
|
+
|
|
394
|
+
&:hover {
|
|
395
|
+
color: #5B6B8F;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.edit-icon {
|
|
400
|
+
margin-left: 6px;
|
|
401
|
+
color: #8392a5;
|
|
402
|
+
font-size: 16px;
|
|
403
|
+
cursor: pointer;
|
|
404
|
+
|
|
405
|
+
&:hover {
|
|
406
|
+
color: #5B6B8F;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.info-label {
|
|
412
|
+
font-size: 14px;
|
|
413
|
+
color: #8392a5;
|
|
414
|
+
line-height: 1.4;
|
|
415
|
+
|
|
416
|
+
&.status-completed-text {
|
|
417
|
+
color: #ebad59;
|
|
418
|
+
font-weight: 600;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
&.status-progress-text {
|
|
422
|
+
color: #5B6B8F;
|
|
423
|
+
font-weight: 600;
|
|
424
|
+
}
|
|
294
425
|
}
|
|
295
426
|
}
|
|
296
427
|
}
|
|
297
|
-
&:not(:first-child) {
|
|
298
|
-
margin-left: 22px;
|
|
299
|
-
}
|
|
300
428
|
}
|
|
301
429
|
}
|
|
302
430
|
</style>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
3
|
<!-- 上方流程显示 -->
|
|
4
|
-
<a-card :bordered="false" :loading="loading"
|
|
4
|
+
<a-card :bordered="false" :loading="loading">
|
|
5
5
|
<!-- 项目进度流程 -->
|
|
6
6
|
<work-flow-timeline
|
|
7
7
|
:current-step-id="currentStepId"
|
|
@@ -829,7 +829,7 @@ export default {
|
|
|
829
829
|
let stepHandler
|
|
830
830
|
if (this.checkedChargePerson) {
|
|
831
831
|
// 使用 value 找到对应的 label
|
|
832
|
-
stepHandler = this.chargePersonOptions.find(item => item.value === this.checkedChargePerson
|
|
832
|
+
stepHandler = this.chargePersonOptions.find(item => item.value === this.checkedChargePerson).label
|
|
833
833
|
} else if (this.chargePerson.personList.length > 0) {
|
|
834
834
|
stepHandler = this.chargePerson.personList.map(item => item.name).join(',')
|
|
835
835
|
}
|
|
@@ -142,6 +142,7 @@ export default {
|
|
|
142
142
|
<style lang="less" scoped>
|
|
143
143
|
.timeline {
|
|
144
144
|
/deep/ .ant-steps-dot {
|
|
145
|
+
margin-bottom: 6px;
|
|
145
146
|
.ant-steps-item-tail {
|
|
146
147
|
top: 7px;
|
|
147
148
|
margin-left: 106px;
|
|
@@ -152,7 +153,7 @@ export default {
|
|
|
152
153
|
}
|
|
153
154
|
.ant-steps-item-content {
|
|
154
155
|
width: 200px;
|
|
155
|
-
margin-top:
|
|
156
|
+
margin-top: 24px;
|
|
156
157
|
.ant-steps-item-description {
|
|
157
158
|
text-align: left;
|
|
158
159
|
margin: 6px 0 0 60px;
|