vue2-client 1.14.41 → 1.14.44
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/XTextCard/XTextCard.vue +207 -207
- package/src/base-client/components/his/XTitle/XTitle.vue +1 -5
- package/src/base-client/components/his/XTreeRows/TreeNode.vue +100 -100
- package/src/base-client/components/his/XTreeRows/XTreeRows.vue +197 -197
- package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
- package/src/base-client/components/his/threeTestOrders/textBox.vue +50 -102
- package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +376 -386
- 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 +4 -4
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +2 -1
- package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -36
- package/src/base-client/components/TreeList/TreeList.vue +0 -91
- package/src/base-client/components/TreeList/TreeNode.vue +0 -81
- package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
|
@@ -2,30 +2,40 @@
|
|
|
2
2
|
<!-- 抽屉 -->
|
|
3
3
|
<a-drawer
|
|
4
4
|
:visible="visible"
|
|
5
|
-
width="
|
|
5
|
+
width="95vw"
|
|
6
6
|
:placement="direction"
|
|
7
7
|
title="流程详情"
|
|
8
8
|
@close="onClose"
|
|
9
|
+
class="modern-workflow-drawer"
|
|
10
|
+
:bodyStyle="{ padding: '0', background: '#f5f7fa' }"
|
|
11
|
+
:headerStyle="{ borderBottom: '1px solid #eaedf2', padding: '16px 24px' }"
|
|
9
12
|
>
|
|
10
|
-
<div>
|
|
11
|
-
<!--
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
<div class="workflow-container">
|
|
14
|
+
<!-- 基础信息卡片 -->
|
|
15
|
+
<div class="info-section">
|
|
16
|
+
<workflow-base-information
|
|
17
|
+
v-if="details"
|
|
18
|
+
ref="baseInformation"
|
|
19
|
+
:workflow-id="workflowId"
|
|
20
|
+
:details="details"
|
|
21
|
+
:visible="visible"
|
|
22
|
+
class="base-info-card"
|
|
23
|
+
/>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<!-- 内容区域 -->
|
|
27
|
+
<div class="content-section" :style="{ minHeight: screenHeight * 0.7 + 'px' }">
|
|
28
|
+
<a-card class="content-card" :bordered="false">
|
|
29
|
+
<a-tabs
|
|
30
|
+
:activeKey="activeKey"
|
|
31
|
+
@change="changeTab"
|
|
32
|
+
class="modern-tabs"
|
|
33
|
+
:tabBarStyle="{ marginBottom: '5px', borderBottom: '1px solid #eaedf2' }"
|
|
34
|
+
>
|
|
35
|
+
<!-- 查看/编辑进度标签页 -->
|
|
36
|
+
<a-tab-pane key="1" tab="开始工作">
|
|
23
37
|
<WorkFlowHandle
|
|
24
|
-
v-if="
|
|
25
|
-
activeKey === '1' &&
|
|
26
|
-
details.f_state !== undefined &&
|
|
27
|
-
steps !== undefined
|
|
28
|
-
"
|
|
38
|
+
v-if="activeKey === '1' && details.f_state !== undefined && steps !== undefined"
|
|
29
39
|
ref="workflowHandle"
|
|
30
40
|
:workflow-id="workflowId"
|
|
31
41
|
:workflowState="details.f_state === 1"
|
|
@@ -37,29 +47,39 @@
|
|
|
37
47
|
@refresh="stepChanged"
|
|
38
48
|
@success="success"
|
|
39
49
|
@nextClick="nextClick"
|
|
50
|
+
class="handle-content"
|
|
40
51
|
/>
|
|
41
52
|
</a-tab-pane>
|
|
42
|
-
|
|
43
|
-
|
|
53
|
+
|
|
54
|
+
<!-- 任务流转记录标签页 -->
|
|
55
|
+
<a-tab-pane key="2" tab="流转记录">
|
|
56
|
+
<workflow-log
|
|
57
|
+
v-if="activeKey === '2'"
|
|
58
|
+
:workflow-id="workflowId"
|
|
59
|
+
class="log-content"
|
|
60
|
+
/>
|
|
44
61
|
</a-tab-pane>
|
|
62
|
+
|
|
63
|
+
<!-- 任务留言标签页 -->
|
|
45
64
|
<a-tab-pane key="4">
|
|
46
|
-
<span slot="tab">
|
|
65
|
+
<span slot="tab" class="message-tab">
|
|
47
66
|
<span>任务留言</span>
|
|
48
67
|
<a-badge
|
|
49
68
|
:count="messageList.length"
|
|
50
|
-
:offset="[
|
|
51
|
-
:
|
|
69
|
+
:offset="[8, -4]"
|
|
70
|
+
:numberStyle="{ backgroundColor: '#5B6B8F', fontSize: '12px', padding: '0 6px', height: '18px', lineHeight: '18px', borderRadius: '9px' }"
|
|
71
|
+
/>
|
|
52
72
|
</span>
|
|
53
|
-
<
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
</
|
|
73
|
+
<div class="message-content">
|
|
74
|
+
<leave-message
|
|
75
|
+
:workflowId="workflowId"
|
|
76
|
+
:projectName="details.f_task_name"
|
|
77
|
+
:data="messageList"
|
|
78
|
+
:loading="messageLoading"
|
|
79
|
+
@success="success"
|
|
80
|
+
class="leave-message-component"
|
|
81
|
+
/>
|
|
82
|
+
</div>
|
|
63
83
|
</a-tab-pane>
|
|
64
84
|
</a-tabs>
|
|
65
85
|
</a-card>
|
|
@@ -204,6 +224,71 @@ export default {
|
|
|
204
224
|
</script>
|
|
205
225
|
|
|
206
226
|
<style lang="less" scoped>
|
|
227
|
+
.workflow-container {
|
|
228
|
+
height: 100%;
|
|
229
|
+
display: flex;
|
|
230
|
+
flex-direction: column;
|
|
231
|
+
|
|
232
|
+
.info-section {
|
|
233
|
+
padding: 16px 24px;
|
|
234
|
+
background-color: #fff;
|
|
235
|
+
border-bottom: 1px solid #eaedf2;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.content-section {
|
|
239
|
+
flex: 1;
|
|
240
|
+
padding: 16px 24px;
|
|
241
|
+
|
|
242
|
+
.content-card {
|
|
243
|
+
border-radius: 8px;
|
|
244
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
|
245
|
+
|
|
246
|
+
/deep/ .ant-card-body {
|
|
247
|
+
padding: 12px 24px 24px;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.modern-tabs {
|
|
254
|
+
/deep/ .ant-tabs-nav {
|
|
255
|
+
margin-bottom: 0;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/deep/ .ant-tabs-tab {
|
|
259
|
+
padding: 12px 0;
|
|
260
|
+
margin-right: 48px;
|
|
261
|
+
font-size: 15px;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/deep/ .ant-tabs-tab-active {
|
|
265
|
+
font-weight: 500;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/deep/ .ant-tabs-ink-bar {
|
|
269
|
+
height: 3px;
|
|
270
|
+
border-radius: 3px 3px 0 0;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.message-tab {
|
|
275
|
+
display: flex;
|
|
276
|
+
align-items: center;
|
|
277
|
+
gap: 6px;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.message-content {
|
|
281
|
+
max-width: 900px;
|
|
282
|
+
|
|
283
|
+
.leave-message-component {
|
|
284
|
+
width: 100%;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.log-content {
|
|
289
|
+
margin-top: 16px;
|
|
290
|
+
}
|
|
291
|
+
|
|
207
292
|
/deep/ .step-label {
|
|
208
293
|
&:not(:first-child) {
|
|
209
294
|
margin-left: 16px;
|
|
@@ -220,15 +305,15 @@ export default {
|
|
|
220
305
|
margin-right: 8px;
|
|
221
306
|
|
|
222
307
|
&.blue {
|
|
223
|
-
border: 3px solid
|
|
308
|
+
border: 3px solid #5B6B8F;
|
|
224
309
|
}
|
|
225
310
|
|
|
226
311
|
&.green {
|
|
227
|
-
border: 3px solid
|
|
312
|
+
border: 3px solid #4CAF50;
|
|
228
313
|
}
|
|
229
314
|
|
|
230
315
|
&.gray {
|
|
231
|
-
border: 3px solid
|
|
316
|
+
border: 3px solid #cfd8e3;
|
|
232
317
|
}
|
|
233
318
|
}
|
|
234
319
|
}
|
|
@@ -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
|
}
|
|
@@ -947,14 +947,14 @@ export default {
|
|
|
947
947
|
filteredUsers = allUser.filter(user =>
|
|
948
948
|
user.rolestr && user.rolestr.includes(personItem.name)
|
|
949
949
|
).map(user => {
|
|
950
|
-
return { label: user.label, value: user.
|
|
950
|
+
return { label: user.label, value: user.value }
|
|
951
951
|
})
|
|
952
952
|
} else if (personItem.type === 'department') {
|
|
953
953
|
// 根据部门获取人员
|
|
954
954
|
filteredUsers = allUser.filter(user =>
|
|
955
955
|
user.depname === personItem.name
|
|
956
956
|
).map(user => {
|
|
957
|
-
return { label: user.label, value: user.
|
|
957
|
+
return { label: user.label, value: user.value }
|
|
958
958
|
})
|
|
959
959
|
}
|
|
960
960
|
|