wl-design-mobile 0.8.2 → 0.8.4

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.
Files changed (41) hide show
  1. package/doc/file/compoents/lambo-file-row.vue +5 -92
  2. package/doc/file-type/file-type.js +286 -0
  3. package/doc/file-type/icons/icon-file-ai.svg +1 -0
  4. package/doc/file-type/icons/icon-file-avi.svg +1 -0
  5. package/doc/file-type/icons/icon-file-default.svg +1 -0
  6. package/doc/file-type/icons/icon-file-epub.svg +1 -0
  7. package/doc/file-type/icons/icon-file-excel.svg +1 -0
  8. package/doc/file-type/icons/icon-file-flv.svg +1 -0
  9. package/doc/file-type/icons/icon-file-gif.svg +1 -0
  10. package/doc/file-type/icons/icon-file-html.svg +1 -0
  11. package/doc/file-type/icons/icon-file-java.svg +1 -0
  12. package/doc/file-type/icons/icon-file-js.svg +1 -0
  13. package/doc/file-type/icons/icon-file-jsp.svg +1 -0
  14. package/doc/file-type/icons/icon-file-mp3.svg +1 -0
  15. package/doc/file-type/icons/icon-file-msi.svg +1 -0
  16. package/doc/file-type/icons/icon-file-pdf.svg +1 -0
  17. package/doc/file-type/icons/icon-file-png.svg +1 -0
  18. package/doc/file-type/icons/icon-file-ppt.svg +1 -0
  19. package/doc/file-type/icons/icon-file-psd.svg +1 -0
  20. package/doc/file-type/icons/icon-file-rar.svg +1 -0
  21. package/doc/file-type/icons/icon-file-raw.svg +1 -0
  22. package/doc/file-type/icons/icon-file-txt.svg +1 -0
  23. package/doc/file-type/icons/icon-file-word.svg +1 -0
  24. package/doc/img/comonents/lambo-img-grid.vue +6 -1
  25. package/flow/approval/flow-approval.vue +550 -0
  26. package/flow/comps/flow-attachment-list.vue +230 -0
  27. package/flow/comps/flow-attachment-modal.vue +132 -0
  28. package/flow/comps/flow-copy-users.vue +358 -0
  29. package/flow/comps/flow-node-card.vue +150 -0
  30. package/flow/comps/flow-node-header.vue +172 -0
  31. package/flow/comps/flow-util.js +156 -0
  32. package/flow/comps/icons/approved.svg +11 -0
  33. package/flow/comps/icons/canceled.svg +11 -0
  34. package/flow/comps/icons/rejected.svg +11 -0
  35. package/flow/comps/icons/underway.svg +11 -0
  36. package/flow/detail/flow-detail.vue +466 -0
  37. package/flow/index.js +51 -0
  38. package/flow/lambo-flow-detail.vue +894 -12
  39. package/flow/lambo-flow-edit.vue +6 -21
  40. package/flow/submit/flow-submit.vue +381 -0
  41. package/package.json +1 -1
@@ -0,0 +1,150 @@
1
+ <template>
2
+ <div class="node-detail-card">
3
+ <div class="audit-result-badge" :class="'badge-' + getAuditResultClass(nodeInfo.auditResult)" v-if="showResultBadge && !isApplyNode">
4
+ <van-icon :name="getAuditIcon(nodeInfo.auditResult)" size="12"></van-icon>
5
+ <span>{{ getAuditResultText(nodeInfo.auditResult) }}</span>
6
+ </div>
7
+ <div class="detail-grid">
8
+ <div class="detail-item">
9
+ <span class="detail-label">{{ isApplyNode ? '发起时间:' : '审批时间:' }}</span>
10
+ <span class="detail-value">{{ (isApplyNode ? nodeInfo.createTime : nodeInfo.auditTime) || '-' }}</span>
11
+ </div>
12
+ <div class="detail-item">
13
+ <span class="detail-label">{{ isApplyNode ? '发起人:' : '审批人:' }}</span>
14
+ <span class="detail-value">{{ (isApplyNode ? nodeInfo.createUserName : nodeInfo.auditUserName) || '-' }}</span>
15
+ </div>
16
+ </div>
17
+ <div class="detail-grid" style="margin-top: 8px" v-if="!isApplyNode && (nodeInfo.startTime || nodeInfo.endTime)">
18
+ <div class="detail-item">
19
+ <span class="detail-label">开始时间:</span>
20
+ <span class="detail-value">{{ nodeInfo.startTime || '-' }}</span>
21
+ </div>
22
+ <div class="detail-item">
23
+ <span class="detail-label">结束时间:</span>
24
+ <span class="detail-value">{{ nodeInfo.endTime || '-' }}</span>
25
+ </div>
26
+ </div>
27
+ <div class="detail-item comment-item" v-if="isApplyNode ? nodeInfo.applyDescription : nodeInfo.auditComment">
28
+ <span class="detail-label">{{ isApplyNode ? '申请描述:' : '审批意见:' }}</span>
29
+ <span class="detail-value">{{ isApplyNode ? nodeInfo.applyDescription : nodeInfo.auditComment }}</span>
30
+ </div>
31
+
32
+ <!-- 附件列表插槽 -->
33
+ <slot name="attachments"></slot>
34
+ </div>
35
+ </template>
36
+
37
+ <script>
38
+ import { getAuditResultClass, getAuditResultText, getAuditIcon } from './flow-util.js'
39
+
40
+ export default {
41
+ name: 'FlowNodeCard',
42
+ props: {
43
+ nodeInfo: {
44
+ type: Object,
45
+ default: () => ({})
46
+ },
47
+ showResultBadge: {
48
+ type: Boolean,
49
+ default: true
50
+ },
51
+ /**
52
+ * 是否为发起节点
53
+ * @default false
54
+ */
55
+ isApplyNode: {
56
+ type: Boolean,
57
+ default: false
58
+ }
59
+ },
60
+ methods: {
61
+ getAuditResultClass,
62
+ getAuditResultText,
63
+ getAuditIcon
64
+ }
65
+ }
66
+ </script>
67
+
68
+ <style scoped>
69
+ .node-detail-card {
70
+ border-radius: 4px;
71
+ padding: 12px;
72
+ border: 1px solid #e8e8e8;
73
+ position: relative;
74
+ overflow: hidden;
75
+ }
76
+
77
+ .audit-result-badge {
78
+ position: absolute;
79
+ top: 0;
80
+ right: 0;
81
+ display: inline-flex;
82
+ align-items: center;
83
+ gap: 4px;
84
+ padding: 4px 10px;
85
+ border-radius: 0 0 0 4px;
86
+ font-size: 12px;
87
+ font-weight: 500;
88
+ z-index: 1;
89
+ }
90
+
91
+ .audit-result-badge.badge-pass {
92
+ background: #07c160;
93
+ color: #fff;
94
+ }
95
+
96
+ .audit-result-badge.badge-reject {
97
+ background: #ee0a24;
98
+ color: #fff;
99
+ }
100
+
101
+ .audit-result-badge.badge-transfer {
102
+ background: #ff976a;
103
+ color: #fff;
104
+ }
105
+
106
+ .audit-result-badge.badge-return {
107
+ background: #8c8c8c;
108
+ color: #fff;
109
+ }
110
+
111
+ .audit-result-badge.badge-default {
112
+ background: #d9d9d9;
113
+ color: #fff;
114
+ }
115
+
116
+ .detail-grid {
117
+ display: flex;
118
+ flex-wrap: wrap;
119
+ gap: 8px;
120
+ }
121
+
122
+ .detail-item {
123
+ display: flex;
124
+ align-items: flex-start;
125
+ font-size: 13px;
126
+ width: calc(50% - 4px);
127
+ }
128
+
129
+ @media (max-width: 510px) {
130
+ .detail-item {
131
+ width: 100% !important;
132
+ }
133
+ }
134
+
135
+ .comment-item {
136
+ width: 100%;
137
+ margin-top: 8px;
138
+ }
139
+
140
+ .detail-label {
141
+ color: #8c8c8c;
142
+ flex-shrink: 0;
143
+ }
144
+
145
+ .detail-value {
146
+ color: #262626;
147
+ flex: 1;
148
+ word-break: break-all;
149
+ }
150
+ </style>
@@ -0,0 +1,172 @@
1
+ <template>
2
+ <div class="node-header">
3
+ <div class="avatar-wrapper">
4
+ <div class="node-avatar" :class="{ 'avatar-no-image': !nodeInfo.auditUserAvatar }">
5
+ <img v-if="nodeInfo.auditUserAvatar" :src="nodeInfo.auditUserAvatar" alt="" />
6
+ <span v-else>{{ nodeInfo.auditUserName ? nodeInfo.auditUserName.charAt(0) : (nodeIndex + 1) }}</span>
7
+ </div>
8
+ <div class="status-badge" :class="'badge-' + getStatusClass(nodeInfo.status)">
9
+ <van-icon :name="getStatusIcon(nodeInfo.status)" :size="badgeIconSize"></van-icon>
10
+ </div>
11
+ </div>
12
+ <div class="node-info">
13
+ <div class="node-title-row">
14
+ <span class="task-name">{{ nodeInfo.taskName }}</span>
15
+ <slot name="extra"></slot>
16
+ </div>
17
+ <div class="node-user-row" v-if="nodeInfo.auditUserName">
18
+ <span class="user-name">{{ nodeInfo.auditUserName }}</span>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </template>
23
+
24
+ <script>
25
+ import { getStatusIcon, getStatusClass } from './flow-util.js'
26
+
27
+ export default {
28
+ name: 'FlowNodeHeader',
29
+ props: {
30
+ nodeInfo: {
31
+ type: Object,
32
+ default: () => ({})
33
+ },
34
+ nodeIndex: {
35
+ type: Number,
36
+ default: 0
37
+ },
38
+ avatarSize: {
39
+ type: Number,
40
+ default: 40
41
+ },
42
+ badgeIconSize: {
43
+ type: String,
44
+ default: '10'
45
+ }
46
+ },
47
+ methods: {
48
+ getStatusIcon,
49
+ getStatusClass
50
+ }
51
+ }
52
+ </script>
53
+
54
+ <style scoped>
55
+ .node-header {
56
+ display: flex;
57
+ align-items: center;
58
+ margin-bottom: 8px;
59
+ }
60
+
61
+ .avatar-wrapper {
62
+ position: relative;
63
+ margin-right: 12px;
64
+ flex-shrink: 0;
65
+ }
66
+
67
+ .node-avatar {
68
+ width: 40px;
69
+ height: 40px;
70
+ border-radius: 50%;
71
+ display: flex;
72
+ align-items: center;
73
+ justify-content: center;
74
+ background: #1989fa;
75
+ color: #fff;
76
+ font-size: 16px;
77
+ overflow: hidden;
78
+ }
79
+
80
+ .node-avatar img {
81
+ width: 100%;
82
+ height: 100%;
83
+ object-fit: cover;
84
+ }
85
+
86
+ .node-avatar.avatar-no-image {
87
+ background: #1989fa;
88
+ color: #fff;
89
+ }
90
+
91
+ .status-badge {
92
+ position: absolute;
93
+ bottom: 0;
94
+ right: 0;
95
+ width: 16px;
96
+ height: 16px;
97
+ border-radius: 50%;
98
+ display: flex;
99
+ align-items: center;
100
+ justify-content: center;
101
+ border: 2px solid #fff;
102
+ background: #f0f0f0;
103
+ color: #999;
104
+ }
105
+
106
+ .status-badge.badge-success {
107
+ background: #07c160;
108
+ color: #fff;
109
+ }
110
+
111
+ .status-badge.badge-process {
112
+ background: #1989fa;
113
+ color: #fff;
114
+ animation: pulse 2s infinite;
115
+ }
116
+
117
+ .status-badge.badge-error {
118
+ background: #ee0a24;
119
+ color: #fff;
120
+ }
121
+
122
+ .status-badge.badge-warning {
123
+ background: #ff976a;
124
+ color: #fff;
125
+ }
126
+
127
+ .status-badge.badge-wait {
128
+ background: #f0f0f0;
129
+ color: #999;
130
+ }
131
+
132
+ @keyframes pulse {
133
+ 0%,
134
+ 100% {
135
+ box-shadow: 0 0 0 0 rgba(25, 137, 250, 0.4);
136
+ }
137
+ 50% {
138
+ box-shadow: 0 0 0 8px rgba(25, 137, 250, 0);
139
+ }
140
+ }
141
+
142
+ .node-info {
143
+ flex: 1;
144
+ padding-top: 2px;
145
+ min-width: 0;
146
+ }
147
+
148
+ .node-title-row {
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: space-between;
152
+ gap: 12px;
153
+ }
154
+
155
+ .task-name {
156
+ font-size: 14px;
157
+ font-weight: 600;
158
+ color: #262626;
159
+ }
160
+
161
+ .node-user-row {
162
+ display: flex;
163
+ align-items: center;
164
+ gap: 4px;
165
+ margin-top: 2px;
166
+ }
167
+
168
+ .user-name {
169
+ font-size: 12px;
170
+ color: #262626;
171
+ }
172
+ </style>
@@ -0,0 +1,156 @@
1
+ /**
2
+ * 流程组件公共工具方法(Vant 移动端版)
3
+ */
4
+
5
+ /**
6
+ * 获取状态图标
7
+ * @param {string} status - 节点状态
8
+ * @returns {string} Vant 图标名称
9
+ */
10
+ export function getStatusIcon(status) {
11
+ const iconMap = {
12
+ completed: 'passed',
13
+ processing: 'clock-o',
14
+ rejected: 'cross',
15
+ transferred: 'replay',
16
+ pending: 'circle'
17
+ }
18
+ return iconMap[status] || iconMap.pending
19
+ }
20
+
21
+ /**
22
+ * 获取状态样式类名
23
+ * @param {string} status - 节点状态
24
+ * @returns {string} 样式类名
25
+ */
26
+ export function getStatusClass(status) {
27
+ const classMap = {
28
+ completed: 'success',
29
+ processing: 'process',
30
+ rejected: 'error',
31
+ transferred: 'warning',
32
+ pending: 'wait'
33
+ }
34
+ return classMap[status] || classMap.pending
35
+ }
36
+
37
+ /**
38
+ * 获取状态文本
39
+ * @param {string} status - 节点状态
40
+ * @returns {string} 状态文本
41
+ */
42
+ export function getStatusText(status) {
43
+ const textMap = {
44
+ completed: '已完成',
45
+ processing: '审批中',
46
+ rejected: '已驳回',
47
+ transferred: '已转办',
48
+ pending: '待审批'
49
+ }
50
+ return textMap[status] || '待审批'
51
+ }
52
+
53
+ /**
54
+ * 获取审批结果样式类名
55
+ * @param {string} auditResult - 审批结果
56
+ * @returns {string} 样式类名
57
+ */
58
+ export function getAuditResultClass(auditResult) {
59
+ const classMap = {
60
+ '30': 'pass',
61
+ '40': 'reject',
62
+ '50': 'transfer',
63
+ '60': 'return'
64
+ }
65
+ return classMap[auditResult] || 'default'
66
+ }
67
+
68
+ /**
69
+ * 获取审批结果文本
70
+ * @param {string} auditResult - 审批结果
71
+ * @returns {string} 结果文本
72
+ */
73
+ export function getAuditResultText(auditResult) {
74
+ const textMap = {
75
+ '30': '同意',
76
+ '40': '驳回',
77
+ '50': '转办',
78
+ '60': '退回'
79
+ }
80
+ return textMap[auditResult] || '审批'
81
+ }
82
+
83
+ /**
84
+ * 获取审批结果图标
85
+ * @param {string} auditResult - 审批结果
86
+ * @returns {string} Vant 图标名称
87
+ */
88
+ export function getAuditIcon(auditResult) {
89
+ const iconMap = {
90
+ '30': 'passed',
91
+ '40': 'cross',
92
+ '50': 'replay',
93
+ '60': 'undo'
94
+ }
95
+ return iconMap[auditResult] || 'circle'
96
+ }
97
+
98
+ /**
99
+ * 获取文件图标
100
+ * @param {string} fileName - 文件名
101
+ * @returns {string} Vant 图标名称
102
+ */
103
+ export function getFileIcon(fileName) {
104
+ if (!fileName) return 'description'
105
+ const ext = fileName.substring(fileName.lastIndexOf('.')).toLowerCase()
106
+ const iconMap = {
107
+ '.pdf': 'description',
108
+ '.doc': 'description',
109
+ '.docx': 'description',
110
+ '.xls': 'description',
111
+ '.xlsx': 'description',
112
+ '.ppt': 'description',
113
+ '.pptx': 'description',
114
+ '.jpg': 'photo',
115
+ '.jpeg': 'photo',
116
+ '.png': 'photo',
117
+ '.gif': 'photo',
118
+ '.bmp': 'photo',
119
+ '.webp': 'photo',
120
+ '.zip': 'folder',
121
+ '.rar': 'folder',
122
+ '.7z': 'folder',
123
+ '.tar': 'folder',
124
+ '.gz': 'folder',
125
+ '.txt': 'description',
126
+ '.mp4': 'video',
127
+ '.avi': 'video',
128
+ '.mov': 'video',
129
+ '.mp3': 'music',
130
+ '.wav': 'music'
131
+ }
132
+ return iconMap[ext] || 'description'
133
+ }
134
+
135
+ /**
136
+ * 格式化文件大小
137
+ * @param {number} size - 文件大小(字节)
138
+ * @returns {string} 格式化后的大小
139
+ */
140
+ export function formatFileSize(size) {
141
+ if (!size) return '-'
142
+ if (size < 1024) return size + ' B'
143
+ if (size < 1024 * 1024) return (size / 1024).toFixed(2) + ' KB'
144
+ return (size / (1024 * 1024)).toFixed(2) + ' MB'
145
+ }
146
+
147
+ export default {
148
+ getStatusIcon,
149
+ getStatusClass,
150
+ getStatusText,
151
+ getAuditResultClass,
152
+ getAuditResultText,
153
+ getAuditIcon,
154
+ getFileIcon,
155
+ formatFileSize
156
+ }
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="59.622" height="59.616" viewBox="0 0 59.622 59.616">
2
+ <g id="通过" transform="translate(-291.798 -153.753)">
3
+ <g id="组_977" data-name="组 977" transform="translate(291.798 153.753)">
4
+ <path id="路径_604" data-name="路径 604" d="M29.853,59.769a29.8,29.8,0,1,1,25.88-15.078,29.806,29.806,0,0,1-25.88,15.078Zm-.1-58.37a28.621,28.621,0,1,0,7.1.9,28.576,28.576,0,0,0-7.1-.9Z" transform="translate(0 -0.153)" fill="#00b42a"/>
5
+ <path id="路径_605" data-name="路径 605" d="M64.173,92.121a27.692,27.692,0,1,1,14.1-3.877A27.693,27.693,0,0,1,64.173,92.121Zm-.092-54.593a26.979,26.979,0,1,0,6.683.846,26.88,26.88,0,0,0-6.683-.846Z" transform="translate(-34.325 -34.602)" fill="#00b42a"/>
6
+ <path id="路径_606" data-name="路径 606" d="M221.473,224.75l-1.213-.309A17.511,17.511,0,0,1,241.564,211.8l-.309,1.213A16.26,16.26,0,0,0,221.473,224.75Zm15.772,21.539a17.482,17.482,0,0,1-4.336-.538l.309-1.213A16.285,16.285,0,0,0,253,232.792l1.213.309a17.548,17.548,0,0,1-16.969,13.187Z" transform="translate(-207.434 -198.955)" fill="#00b42a"/>
7
+ <path id="路径_607" data-name="路径 607" d="M124.715,88.9l-.809-.2a15.539,15.539,0,0,1,18.87-11.207l-.2.809a14.7,14.7,0,0,0-17.857,10.6Zm14.238,19.15a15.484,15.484,0,0,1-3.832-.484l.2-.809a14.7,14.7,0,0,0,17.849-10.59l.809.2a15.547,15.547,0,0,1-15.03,11.678ZM125.982,69.952l.88.78a.417.417,0,0,0,.463.042l1-.6a.417.417,0,0,1,.563.5l-.463,1.076a.417.417,0,0,0,.1.442l.88.771a.417.417,0,0,1-.3.688l-1.163-.108a.417.417,0,0,0-.417.238l-.463,1.076a.417.417,0,0,1-.746-.071l-.242-1.134a.417.417,0,0,0-.35-.3l-1.163-.113a.417.417,0,0,1-.167-.734l1-.6a.417.417,0,0,0,.183-.417l-.259-1.142a.417.417,0,0,1,.65-.392ZM116.347,80.2l1.155.188a.417.417,0,0,0,.417-.208l.534-1.042a.417.417,0,0,1,.742.121l.163,1.155a.417.417,0,0,0,.325.329l1.155.188a.417.417,0,0,1,.117.742l-1.042.529a.417.417,0,0,0-.213.417l.179,1.155a.417.417,0,0,1-.671.338l-.834-.834a.417.417,0,0,0-.459-.075l-1.042.53a.417.417,0,0,1-.53-.534l.534-1.042a.417.417,0,0,0-.071-.459l-.834-.834a.417.417,0,0,1,.375-.663Zm22.606-13.413-.417,1.1a.417.417,0,0,1-.384.263l-1.172-.029a.417.417,0,0,0-.25.709l.93.713a.417.417,0,0,1,.133.446l-.392,1.1a.417.417,0,0,0,.617.471l.963-.663a.417.417,0,0,1,.463,0l.93.713a.417.417,0,0,0,.617-.417l-.334-1.122a.417.417,0,0,1,.154-.417l.963-.663a.417.417,0,0,0-.213-.767H140.4a.417.417,0,0,1-.367-.284l-.334-1.122a.417.417,0,0,0-.742-.038Zm13.6,47.926-.258-1.142a.417.417,0,0,1,.183-.417l1-.6a.417.417,0,0,0-.167-.734l-1.163-.108a.417.417,0,0,1-.35-.3l-.258-1.142a.417.417,0,0,0-.746-.071l-.463,1.076a.417.417,0,0,1-.417.238l-1.163-.108a.417.417,0,0,0-.3.688l.917.75a.417.417,0,0,1,.1.45l-.463,1.076a.417.417,0,0,0,.563.5l1-.6a.417.417,0,0,1,.463.042l.88.771a.417.417,0,0,0,.63-.367Zm-13.6,3.548.392-1.1a.417.417,0,0,1,.384-.263l1.172.029a.417.417,0,0,0,.25-.709l-.946-.709a.417.417,0,0,1-.133-.446l.392-1.1a.417.417,0,0,0-.6-.454l-.963.663a.417.417,0,0,1-.463,0l-.93-.713a.417.417,0,0,0-.617.417l.334,1.122a.417.417,0,0,1-.154.417l-.963.663a.417.417,0,0,0,.213.717l1.172.029a.417.417,0,0,1,.367.284l.334,1.122a.417.417,0,0,0,.759.042Zm22.585-13.413-1.155-.188a.417.417,0,0,0-.417.208l-.534,1.042a.417.417,0,0,1-.742-.121l-.179-1.155a.417.417,0,0,0-.325-.329l-1.155-.188a.417.417,0,0,1-.117-.742l1.042-.53a.417.417,0,0,0,.213-.417l-.179-1.155a.417.417,0,0,1,.671-.338l.834.834a.417.417,0,0,0,.459.075l1.042-.529a.417.417,0,0,1,.53.534l-.534,1.042a.417.417,0,0,0,.071.459l.834.834a.417.417,0,0,1-.359.663Z" transform="translate(-109.142 -62.71)" fill="#00b42a"/>
8
+ </g>
9
+ <text id="审批通过" transform="matrix(0.848, -0.53, 0.53, 0.848, 304.807, 199.83)" fill="#00b42a" font-size="12" font-family="PingFang SC Medium, PingFang SC" letter-spacing="-0.04em"><tspan x="0" y="0">审批通过</tspan></text>
10
+ </g>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="59.622" height="59.616" viewBox="0 0 59.622 59.616">
2
+ <g id="撤销" transform="translate(-291.798 -153.753)">
3
+ <g id="组_977" data-name="组 977" transform="translate(291.798 153.753)">
4
+ <path id="路径_604" data-name="路径 604" d="M29.853,59.769a29.8,29.8,0,1,1,25.88-15.078,29.806,29.806,0,0,1-25.88,15.078Zm-.1-58.37a28.621,28.621,0,1,0,7.1.9,28.576,28.576,0,0,0-7.1-.9Z" transform="translate(0 -0.153)" fill="#f5834f"/>
5
+ <path id="路径_605" data-name="路径 605" d="M64.173,92.121a27.692,27.692,0,1,1,14.1-3.877A27.693,27.693,0,0,1,64.173,92.121Zm-.092-54.593a26.979,26.979,0,1,0,6.683.846,26.88,26.88,0,0,0-6.683-.846Z" transform="translate(-34.325 -34.602)" fill="#f5834f"/>
6
+ <path id="路径_606" data-name="路径 606" d="M221.473,224.75l-1.213-.309A17.511,17.511,0,0,1,241.564,211.8l-.309,1.213A16.26,16.26,0,0,0,221.473,224.75Zm15.772,21.539a17.482,17.482,0,0,1-4.336-.538l.309-1.213A16.285,16.285,0,0,0,253,232.792l1.213.309a17.548,17.548,0,0,1-16.969,13.187Z" transform="translate(-207.434 -198.955)" fill="#f5834f"/>
7
+ <path id="路径_607" data-name="路径 607" d="M124.715,88.9l-.809-.2a15.539,15.539,0,0,1,18.87-11.207l-.2.809a14.7,14.7,0,0,0-17.857,10.6Zm14.238,19.15a15.484,15.484,0,0,1-3.832-.484l.2-.809a14.7,14.7,0,0,0,17.849-10.59l.809.2a15.547,15.547,0,0,1-15.03,11.678ZM125.982,69.952l.88.78a.417.417,0,0,0,.463.042l1-.6a.417.417,0,0,1,.563.5l-.463,1.076a.417.417,0,0,0,.1.442l.88.771a.417.417,0,0,1-.3.688l-1.163-.108a.417.417,0,0,0-.417.238l-.463,1.076a.417.417,0,0,1-.746-.071l-.242-1.134a.417.417,0,0,0-.35-.3l-1.163-.113a.417.417,0,0,1-.167-.734l1-.6a.417.417,0,0,0,.183-.417l-.259-1.142a.417.417,0,0,1,.65-.392ZM116.347,80.2l1.155.188a.417.417,0,0,0,.417-.208l.534-1.042a.417.417,0,0,1,.742.121l.163,1.155a.417.417,0,0,0,.325.329l1.155.188a.417.417,0,0,1,.117.742l-1.042.529a.417.417,0,0,0-.213.417l.179,1.155a.417.417,0,0,1-.671.338l-.834-.834a.417.417,0,0,0-.459-.075l-1.042.53a.417.417,0,0,1-.53-.534l.534-1.042a.417.417,0,0,0-.071-.459l-.834-.834a.417.417,0,0,1,.375-.663Zm22.606-13.413-.417,1.1a.417.417,0,0,1-.384.263l-1.172-.029a.417.417,0,0,0-.25.709l.93.713a.417.417,0,0,1,.133.446l-.392,1.1a.417.417,0,0,0,.617.471l.963-.663a.417.417,0,0,1,.463,0l.93.713a.417.417,0,0,0,.617-.417l-.334-1.122a.417.417,0,0,1,.154-.417l.963-.663a.417.417,0,0,0-.213-.767H140.4a.417.417,0,0,1-.367-.284l-.334-1.122a.417.417,0,0,0-.742-.038Zm13.6,47.926-.258-1.142a.417.417,0,0,1,.183-.417l1-.6a.417.417,0,0,0-.167-.734l-1.163-.108a.417.417,0,0,1-.35-.3l-.258-1.142a.417.417,0,0,0-.746-.071l-.463,1.076a.417.417,0,0,1-.417.238l-1.163-.108a.417.417,0,0,0-.3.688l.917.75a.417.417,0,0,1,.1.45l-.463,1.076a.417.417,0,0,0,.563.5l1-.6a.417.417,0,0,1,.463.042l.88.771a.417.417,0,0,0,.63-.367Zm-13.6,3.548.392-1.1a.417.417,0,0,1,.384-.263l1.172.029a.417.417,0,0,0,.25-.709l-.946-.709a.417.417,0,0,1-.133-.446l.392-1.1a.417.417,0,0,0-.6-.454l-.963.663a.417.417,0,0,1-.463,0l-.93-.713a.417.417,0,0,0-.617.417l.334,1.122a.417.417,0,0,1-.154.417l-.963.663a.417.417,0,0,0,.213.717l1.172.029a.417.417,0,0,1,.367.284l.334,1.122a.417.417,0,0,0,.759.042Zm22.585-13.413-1.155-.188a.417.417,0,0,0-.417.208l-.534,1.042a.417.417,0,0,1-.742-.121l-.179-1.155a.417.417,0,0,0-.325-.329l-1.155-.188a.417.417,0,0,1-.117-.742l1.042-.53a.417.417,0,0,0,.213-.417l-.179-1.155a.417.417,0,0,1,.671-.338l.834.834a.417.417,0,0,0,.459.075l1.042-.529a.417.417,0,0,1,.53.534l-.534,1.042a.417.417,0,0,0,.071.459l.834.834a.417.417,0,0,1-.359.663Z" transform="translate(-109.142 -62.71)" fill="#f5834f"/>
8
+ </g>
9
+ <text id="审批撤销" transform="matrix(0.848, -0.53, 0.53, 0.848, 304.807, 199.83)" fill="#f5834f" font-size="12" font-family="PingFang SC Medium, PingFang SC" letter-spacing="-0.04em"><tspan x="0" y="0">审批撤销</tspan></text>
10
+ </g>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="59.622" height="59.616" viewBox="0 0 59.622 59.616">
2
+ <g id="拒绝" transform="translate(-291.798 -153.753)">
3
+ <g id="组_977" data-name="组 977" transform="translate(291.798 153.753)">
4
+ <path id="路径_604" data-name="路径 604" d="M29.853,59.769a29.8,29.8,0,1,1,25.88-15.078,29.806,29.806,0,0,1-25.88,15.078Zm-.1-58.37a28.621,28.621,0,1,0,7.1.9,28.576,28.576,0,0,0-7.1-.9Z" transform="translate(0 -0.153)" fill="#f53f3f"/>
5
+ <path id="路径_605" data-name="路径 605" d="M64.173,92.121a27.692,27.692,0,1,1,14.1-3.877A27.693,27.693,0,0,1,64.173,92.121Zm-.092-54.593a26.979,26.979,0,1,0,6.683.846,26.88,26.88,0,0,0-6.683-.846Z" transform="translate(-34.325 -34.602)" fill="#f53f3f"/>
6
+ <path id="路径_606" data-name="路径 606" d="M221.473,224.75l-1.213-.309A17.511,17.511,0,0,1,241.564,211.8l-.309,1.213A16.26,16.26,0,0,0,221.473,224.75Zm15.772,21.539a17.482,17.482,0,0,1-4.336-.538l.309-1.213A16.285,16.285,0,0,0,253,232.792l1.213.309a17.548,17.548,0,0,1-16.969,13.187Z" transform="translate(-207.434 -198.955)" fill="#f53f3f"/>
7
+ <path id="路径_607" data-name="路径 607" d="M124.715,88.9l-.809-.2a15.539,15.539,0,0,1,18.87-11.207l-.2.809a14.7,14.7,0,0,0-17.857,10.6Zm14.238,19.15a15.484,15.484,0,0,1-3.832-.484l.2-.809a14.7,14.7,0,0,0,17.849-10.59l.809.2a15.547,15.547,0,0,1-15.03,11.678ZM125.982,69.952l.88.78a.417.417,0,0,0,.463.042l1-.6a.417.417,0,0,1,.563.5l-.463,1.076a.417.417,0,0,0,.1.442l.88.771a.417.417,0,0,1-.3.688l-1.163-.108a.417.417,0,0,0-.417.238l-.463,1.076a.417.417,0,0,1-.746-.071l-.242-1.134a.417.417,0,0,0-.35-.3l-1.163-.113a.417.417,0,0,1-.167-.734l1-.6a.417.417,0,0,0,.183-.417l-.259-1.142a.417.417,0,0,1,.65-.392ZM116.347,80.2l1.155.188a.417.417,0,0,0,.417-.208l.534-1.042a.417.417,0,0,1,.742.121l.163,1.155a.417.417,0,0,0,.325.329l1.155.188a.417.417,0,0,1,.117.742l-1.042.529a.417.417,0,0,0-.213.417l.179,1.155a.417.417,0,0,1-.671.338l-.834-.834a.417.417,0,0,0-.459-.075l-1.042.53a.417.417,0,0,1-.53-.534l.534-1.042a.417.417,0,0,0-.071-.459l-.834-.834a.417.417,0,0,1,.375-.663Zm22.606-13.413-.417,1.1a.417.417,0,0,1-.384.263l-1.172-.029a.417.417,0,0,0-.25.709l.93.713a.417.417,0,0,1,.133.446l-.392,1.1a.417.417,0,0,0,.617.471l.963-.663a.417.417,0,0,1,.463,0l.93.713a.417.417,0,0,0,.617-.417l-.334-1.122a.417.417,0,0,1,.154-.417l.963-.663a.417.417,0,0,0-.213-.767H140.4a.417.417,0,0,1-.367-.284l-.334-1.122a.417.417,0,0,0-.742-.038Zm13.6,47.926-.258-1.142a.417.417,0,0,1,.183-.417l1-.6a.417.417,0,0,0-.167-.734l-1.163-.108a.417.417,0,0,1-.35-.3l-.258-1.142a.417.417,0,0,0-.746-.071l-.463,1.076a.417.417,0,0,1-.417.238l-1.163-.108a.417.417,0,0,0-.3.688l.917.75a.417.417,0,0,1,.1.45l-.463,1.076a.417.417,0,0,0,.563.5l1-.6a.417.417,0,0,1,.463.042l.88.771a.417.417,0,0,0,.63-.367Zm-13.6,3.548.392-1.1a.417.417,0,0,1,.384-.263l1.172.029a.417.417,0,0,0,.25-.709l-.946-.709a.417.417,0,0,1-.133-.446l.392-1.1a.417.417,0,0,0-.6-.454l-.963.663a.417.417,0,0,1-.463,0l-.93-.713a.417.417,0,0,0-.617.417l.334,1.122a.417.417,0,0,1-.154.417l-.963.663a.417.417,0,0,0,.213.717l1.172.029a.417.417,0,0,1,.367.284l.334,1.122a.417.417,0,0,0,.759.042Zm22.585-13.413-1.155-.188a.417.417,0,0,0-.417.208l-.534,1.042a.417.417,0,0,1-.742-.121l-.179-1.155a.417.417,0,0,0-.325-.329l-1.155-.188a.417.417,0,0,1-.117-.742l1.042-.53a.417.417,0,0,0,.213-.417l-.179-1.155a.417.417,0,0,1,.671-.338l.834.834a.417.417,0,0,0,.459.075l1.042-.529a.417.417,0,0,1,.53.534l-.534,1.042a.417.417,0,0,0,.071.459l.834.834a.417.417,0,0,1-.359.663Z" transform="translate(-109.142 -62.71)" fill="#f53f3f"/>
8
+ </g>
9
+ <text id="审批拒绝" transform="matrix(0.848, -0.53, 0.53, 0.848, 304.807, 199.83)" fill="#f53f3f" font-size="12" font-family="PingFang SC Medium, PingFang SC" letter-spacing="-0.04em"><tspan x="0" y="0">审批拒绝</tspan></text>
10
+ </g>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="59.622" height="59.616" viewBox="0 0 59.622 59.616">
2
+ <g id="进行" transform="translate(-291.798 -153.753)">
3
+ <g id="组_977" data-name="组 977" transform="translate(291.798 153.753)">
4
+ <path id="路径_604" data-name="路径 604" d="M29.853,59.769a29.8,29.8,0,1,1,25.88-15.078,29.806,29.806,0,0,1-25.88,15.078Zm-.1-58.37a28.621,28.621,0,1,0,7.1.9,28.576,28.576,0,0,0-7.1-.9Z" transform="translate(0 -0.153)" fill="#519ef7"/>
5
+ <path id="路径_605" data-name="路径 605" d="M64.173,92.121a27.692,27.692,0,1,1,14.1-3.877A27.693,27.693,0,0,1,64.173,92.121Zm-.092-54.593a26.979,26.979,0,1,0,6.683.846,26.88,26.88,0,0,0-6.683-.846Z" transform="translate(-34.325 -34.602)" fill="#519ef7"/>
6
+ <path id="路径_606" data-name="路径 606" d="M221.473,224.75l-1.213-.309A17.511,17.511,0,0,1,241.564,211.8l-.309,1.213A16.26,16.26,0,0,0,221.473,224.75Zm15.772,21.539a17.482,17.482,0,0,1-4.336-.538l.309-1.213A16.285,16.285,0,0,0,253,232.792l1.213.309a17.548,17.548,0,0,1-16.969,13.187Z" transform="translate(-207.434 -198.955)" fill="#519ef7"/>
7
+ <path id="路径_607" data-name="路径 607" d="M124.715,88.9l-.809-.2a15.539,15.539,0,0,1,18.87-11.207l-.2.809a14.7,14.7,0,0,0-17.857,10.6Zm14.238,19.15a15.484,15.484,0,0,1-3.832-.484l.2-.809a14.7,14.7,0,0,0,17.849-10.59l.809.2a15.547,15.547,0,0,1-15.03,11.678ZM125.982,69.952l.88.78a.417.417,0,0,0,.463.042l1-.6a.417.417,0,0,1,.563.5l-.463,1.076a.417.417,0,0,0,.1.442l.88.771a.417.417,0,0,1-.3.688l-1.163-.108a.417.417,0,0,0-.417.238l-.463,1.076a.417.417,0,0,1-.746-.071l-.242-1.134a.417.417,0,0,0-.35-.3l-1.163-.113a.417.417,0,0,1-.167-.734l1-.6a.417.417,0,0,0,.183-.417l-.259-1.142a.417.417,0,0,1,.65-.392ZM116.347,80.2l1.155.188a.417.417,0,0,0,.417-.208l.534-1.042a.417.417,0,0,1,.742.121l.163,1.155a.417.417,0,0,0,.325.329l1.155.188a.417.417,0,0,1,.117.742l-1.042.529a.417.417,0,0,0-.213.417l.179,1.155a.417.417,0,0,1-.671.338l-.834-.834a.417.417,0,0,0-.459-.075l-1.042.53a.417.417,0,0,1-.53-.534l.534-1.042a.417.417,0,0,0-.071-.459l-.834-.834a.417.417,0,0,1,.375-.663Zm22.606-13.413-.417,1.1a.417.417,0,0,1-.384.263l-1.172-.029a.417.417,0,0,0-.25.709l.93.713a.417.417,0,0,1,.133.446l-.392,1.1a.417.417,0,0,0,.617.471l.963-.663a.417.417,0,0,1,.463,0l.93.713a.417.417,0,0,0,.617-.417l-.334-1.122a.417.417,0,0,1,.154-.417l.963-.663a.417.417,0,0,0-.213-.767H140.4a.417.417,0,0,1-.367-.284l-.334-1.122a.417.417,0,0,0-.742-.038Zm13.6,47.926-.258-1.142a.417.417,0,0,1,.183-.417l1-.6a.417.417,0,0,0-.167-.734l-1.163-.108a.417.417,0,0,1-.35-.3l-.258-1.142a.417.417,0,0,0-.746-.071l-.463,1.076a.417.417,0,0,1-.417.238l-1.163-.108a.417.417,0,0,0-.3.688l.917.75a.417.417,0,0,1,.1.45l-.463,1.076a.417.417,0,0,0,.563.5l1-.6a.417.417,0,0,1,.463.042l.88.771a.417.417,0,0,0,.63-.367Zm-13.6,3.548.392-1.1a.417.417,0,0,1,.384-.263l1.172.029a.417.417,0,0,0,.25-.709l-.946-.709a.417.417,0,0,1-.133-.446l.392-1.1a.417.417,0,0,0-.6-.454l-.963.663a.417.417,0,0,1-.463,0l-.93-.713a.417.417,0,0,0-.617.417l.334,1.122a.417.417,0,0,1-.154.417l-.963.663a.417.417,0,0,0,.213.717l1.172.029a.417.417,0,0,1,.367.284l.334,1.122a.417.417,0,0,0,.759.042Zm22.585-13.413-1.155-.188a.417.417,0,0,0-.417.208l-.534,1.042a.417.417,0,0,1-.742-.121l-.179-1.155a.417.417,0,0,0-.325-.329l-1.155-.188a.417.417,0,0,1-.117-.742l1.042-.53a.417.417,0,0,0,.213-.417l-.179-1.155a.417.417,0,0,1,.671-.338l.834.834a.417.417,0,0,0,.459.075l1.042-.529a.417.417,0,0,1,.53.534l-.534,1.042a.417.417,0,0,0,.071.459l.834.834a.417.417,0,0,1-.359.663Z" transform="translate(-109.142 -62.71)" fill="#519ef7"/>
8
+ </g>
9
+ <text id="审批进行" transform="matrix(0.848, -0.53, 0.53, 0.848, 304.807, 199.83)" fill="#519ef7" font-size="12" font-family="PingFang SC Medium, PingFang SC" letter-spacing="-0.04em"><tspan x="0" y="0">审批进行</tspan></text>
10
+ </g>
11
+ </svg>