ui-process-h5 2.0.8-beta → 2.1.0-beta

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 (91) hide show
  1. package/README.md +11 -204
  2. package/build/configure/README.md +211 -0
  3. package/build/configure/package.json +32 -0
  4. package/debug.js +9 -0
  5. package/index.html +12 -0
  6. package/package.json +56 -25
  7. package/src/App.vue +233 -0
  8. package/src/assets/font-icon/iconfont.scss +57 -0
  9. package/src/assets/font-icon/iconfont.ttf +0 -0
  10. package/src/assets/img/add-file.png +0 -0
  11. package/src/assets/img/arrow-right.png +0 -0
  12. package/src/assets/img/arrow.png +0 -0
  13. package/src/assets/img/check.png +0 -0
  14. package/src/assets/img/del.png +0 -0
  15. package/src/assets/img/doc.png +0 -0
  16. package/src/assets/img/file.png +0 -0
  17. package/src/assets/img/image.png +0 -0
  18. package/src/assets/img/pdf.png +0 -0
  19. package/src/assets/img/process.png +0 -0
  20. package/src/assets/img/xls.png +0 -0
  21. package/src/assets/img/zip.png +0 -0
  22. package/src/assets/js/auth.js +65 -0
  23. package/src/assets/js/errorCode.js +6 -0
  24. package/src/assets/js/message.js +352 -0
  25. package/src/assets/js/request.js +99 -0
  26. package/src/assets/js/toast.js +239 -0
  27. package/src/assets/js/top.js +229 -0
  28. package/src/assets/js/utils.js +83 -0
  29. package/src/assets/js/vuePopper.js +123 -0
  30. package/src/assets/query.png +0 -0
  31. package/src/assets/status/check.png +0 -0
  32. package/src/assets/status/del.png +0 -0
  33. package/src/assets/status/error.png +0 -0
  34. package/src/assets/status/loading.png +0 -0
  35. package/src/assets/status/success.png +0 -0
  36. package/src/main.js +17 -0
  37. package/src/packages/attchUpload/index.js +375 -0
  38. package/src/packages/attchUpload/index.scss +143 -0
  39. package/src/packages/attchUpload/index.vue +173 -0
  40. package/src/packages/downSelect/index.js +119 -0
  41. package/src/packages/downSelect/index.scss +88 -0
  42. package/src/packages/downSelect/index.vue +62 -0
  43. package/src/packages/index.js +6 -0
  44. package/src/packages/popup/index.js +125 -0
  45. package/src/packages/popup/index.scss +178 -0
  46. package/src/packages/popup/index.vue +80 -0
  47. package/src/packages/preview/index.js +40 -0
  48. package/src/packages/preview/index.vue +15 -0
  49. package/src/packages/previewImage/index.js +286 -0
  50. package/src/packages/previewImage/index.scss +76 -0
  51. package/src/packages/previewImage/index.vue +53 -0
  52. package/src/packages/process/index.js +1016 -0
  53. package/src/packages/process/index.scss +188 -0
  54. package/src/packages/process/index.vue +291 -0
  55. package/src/packages/process/operation/backNode.vue +396 -0
  56. package/src/packages/process/operation/cancel.vue +425 -0
  57. package/src/packages/process/operation/ccTask.vue +256 -0
  58. package/src/packages/process/operation/complete.vue +1384 -0
  59. package/src/packages/process/operation/counterSign.vue +498 -0
  60. package/src/packages/process/operation/delegateTask.vue +493 -0
  61. package/src/packages/process/operation/index.js +8 -0
  62. package/src/packages/process/operation/index.scss +212 -0
  63. package/src/packages/process/operation/msgList.vue +174 -0
  64. package/src/packages/process/operation/treeNode.vue +901 -0
  65. package/src/packages/process/operation/treePerson.vue +304 -0
  66. package/src/packages/submitPopup/index.js +708 -0
  67. package/src/packages/submitPopup/index.scss +190 -0
  68. package/src/packages/submitPopup/index.vue +125 -0
  69. package/src/packages/tab/index.js +236 -0
  70. package/src/packages/tab/index.scss +177 -0
  71. package/src/packages/tab/index.vue +155 -0
  72. package/src/packages/tip/index.js +80 -0
  73. package/src/packages/tip/index.scss +121 -0
  74. package/src/packages/tip/index.vue +57 -0
  75. package/src/packages/viewAttchList/index.js +138 -0
  76. package/src/packages/viewAttchList/index.scss +76 -0
  77. package/src/packages/viewAttchList/index.vue +121 -0
  78. package/src/style.css +80 -0
  79. package/vite.config.ts +118 -0
  80. package/v2/style.css +0 -1
  81. package/v2/ui-process-h5.js +0 -9945
  82. package/v2/ui-process-h5.umd.cjs +0 -18
  83. package/v2.7/style.css +0 -1
  84. package/v2.7/ui-process-h5.js +0 -9322
  85. package/v2.7/ui-process-h5.umd.cjs +0 -18
  86. package/v3/style.css +0 -1
  87. package/v3/ui-process-h5.js +0 -6842
  88. package/v3/ui-process-h5.umd.cjs +0 -6
  89. /package/{scripts → build/scripts}/postinstall.mjs +0 -0
  90. /package/{scripts → build/scripts}/switch-cli.mjs +0 -0
  91. /package/{scripts → build/scripts}/utils.mjs +0 -0
@@ -0,0 +1,493 @@
1
+ <template>
2
+ <div class="process-popup-content">
3
+ <div class="process-popup-content-msg">
4
+ <div v-if="param.isMsg">
5
+ <div
6
+ class="process-radio-item"
7
+ @click="handleOpenMsg()"
8
+ style="color: #1389ff; font-size: 14px;"
9
+ >
10
+ 常用意见
11
+ </div>
12
+ </div>
13
+ <div class="process-pc-label">
14
+ 转审理由:<span class="process-pc-label--re">*</span>
15
+ </div>
16
+ <div class="process-pc-value">
17
+ <div class="process-popup-textarea">
18
+ <textarea
19
+ v-model="commentMsg"
20
+ class="textarea-item"
21
+ name="description"
22
+ cols="40"
23
+ placeholder="请输入审批意见(200字以内)"
24
+ maxlength="200"
25
+ onkeyup="this.value=this.value.replace(/[\uD800-\uDFFF]/g,'')"
26
+ ></textarea>
27
+ <div class="process-popup-textarea-num">
28
+ {{ commentMsg.length }}/200
29
+ </div>
30
+ </div>
31
+ <div class="msg-btn" v-if="param.isMsg">
32
+ <span class="msg-btn-click" @click="handleMakeMsg()"
33
+ >设置为常用意见</span
34
+ >
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <div
39
+ class="process-popup-content-person"
40
+ v-if="taskNode && taskNode.length > 0 && taskNode[0].taskState != 4"
41
+ >
42
+ <template v-if="nextNodeData.length">
43
+ <template v-for="item in nextNodeData">
44
+ <div>
45
+ 审批人
46
+ <span class="process-pc-label--re">*</span>
47
+ </div>
48
+ <div
49
+ class="process-pc-value"
50
+ @click="handleOpenPopup(item.id)"
51
+ >
52
+ <div class="process-pc-value--people">
53
+ <div
54
+ class="process-pc-value--data"
55
+ v-if="
56
+ partNode[item.id] &&
57
+ partNode[item.id].length
58
+ "
59
+ >
60
+ <span v-for="(v, i) in partNode[item.id]">
61
+ {{ i == 0 ? v : `,${v}` }}
62
+ </span>
63
+ </div>
64
+ <div
65
+ v-else
66
+ class="process-pc-value--data"
67
+ style="color: #888;"
68
+ >
69
+ <span>
70
+ 请选择审批人
71
+ </span>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </template>
76
+ </template>
77
+
78
+ <template v-else-if="outGatewayUserTaskModel.length">
79
+ <template v-for="item in outGatewayUserTaskModel">
80
+ <div class="process-pc-label">
81
+ 审批人
82
+ <span class="process-pc-label--re">*</span>
83
+ </div>
84
+ <div
85
+ class="process-pc-value"
86
+ @click="handleOpenPopup(item.id)"
87
+ >
88
+ <div class="process-pc-value--people">
89
+ <div
90
+ class="process-pc-value--data"
91
+ v-if="
92
+ partNode[item.id] &&
93
+ partNode[item.id].length
94
+ "
95
+ >
96
+ <span v-for="(v, i) in partNode[item.id]">
97
+ {{ i == 0 ? v : `,${v}` }}
98
+ </span>
99
+ </div>
100
+ <div
101
+ v-else
102
+ class="process-pc-value--data"
103
+ style="color: #888;"
104
+ >
105
+ <span>
106
+ 请选择审批人
107
+ </span>
108
+ </div>
109
+ </div>
110
+ </div>
111
+ </template>
112
+ </template>
113
+ </div>
114
+ <TopTips
115
+ ref="topTips"
116
+ :text="textTips"
117
+ :statusTips="statusTips"
118
+ :type="typeTips"
119
+ />
120
+ <TopPopup
121
+ v-bind:visible="visible"
122
+ v-on:update:visible="(val) => (visible = val)"
123
+ ref="TopPopup"
124
+ titleText="选人"
125
+ :isDrawer="true"
126
+ >
127
+ <div style="height: 100%;">
128
+ <departPerson
129
+ :isTitle="false"
130
+ v-if="visible"
131
+ :visible.sync="visible"
132
+ :request="param.request"
133
+ v-bind="entity"
134
+ @callback="handleCallback"
135
+ @cancel="handleCancel"
136
+ >
137
+ </departPerson>
138
+ </div>
139
+
140
+ <!-- 初始测试啊啊啊啊啊啊 -->
141
+ </TopPopup>
142
+
143
+ <attchViews
144
+ v-if="labels == '1'"
145
+ :limit="limit ? limit : -1"
146
+ :requires="requires"
147
+ :request="param.request"
148
+ :linkUrl="param.linkUrl"
149
+ @getValue="getValues"
150
+ />
151
+
152
+ <TopPopup
153
+ v-bind:visible="visibleListMsg"
154
+ v-on:update:visible="(val) => (visibleListMsg = val)"
155
+ ref="TopPopup"
156
+ titleText="常用意见"
157
+ :isDrawer="true"
158
+ >
159
+ <MsgList
160
+ :visible="visibleListMsg"
161
+ :request="param.request"
162
+ :useInfo="param.userInfo"
163
+ @handleTips="handleTips"
164
+ @handleMsg="handleMsg"
165
+ ></MsgList>
166
+ </TopPopup>
167
+
168
+ <TopPopup
169
+ titleText="操作消息提示"
170
+ :isTips="true"
171
+ :context="`将${commentMsg}设置为常用意见`"
172
+ :cancel="handleTipsCancel"
173
+ :comfig="handleTipsComfig"
174
+ v-bind:visible="visibleMsgComfig"
175
+ v-on:update:visible="(val) => (visibleMsgComfig = val)"
176
+ >
177
+ </TopPopup>
178
+ </div>
179
+ </template>
180
+ <script>
181
+ import TopTips from "../../tip/index.vue";
182
+ import attchViews from "../../attchUpload/index.vue";
183
+ import TopPopup from "../../popup/index.vue";
184
+ import { departPerson } from "checked-pick-app";
185
+ import MsgList from "./msgList.vue";
186
+ export default {
187
+ name: "delegateTask",
188
+ props: {
189
+ param: {
190
+ type: Object,
191
+ defalut: () => {},
192
+ },
193
+ },
194
+ components: {
195
+ TopTips,
196
+ attchViews,
197
+ TopPopup,
198
+ departPerson,
199
+ MsgList,
200
+ },
201
+ data() {
202
+ return {
203
+ commentMsg: "",
204
+ style: {
205
+ color: "#333",
206
+ disableColor: "#F7F6F6",
207
+ },
208
+ textTips: "",
209
+ statusTips: false,
210
+ typeTips: "success",
211
+ // annex 附件属性
212
+ limit: "",
213
+ requires: "",
214
+ labels: "",
215
+ otherList: "",
216
+ attchLists: [],
217
+ // next
218
+ nextNodeData: [],
219
+ taskNode: [],
220
+
221
+ outGatewayUserTaskModel: [],
222
+ formData: {},
223
+
224
+ // 选人组件
225
+ visible: false,
226
+ entity: {
227
+ source: "0",
228
+ type: this.param.isCheckType || "0",
229
+ orgType: this.param.isOrgType || [0],
230
+ request: this.param.request, //'http://59.53.91.231:2100' 0002
231
+ codeType: this.param.isCodeType || [3], // 可选类型 1-主体 2-部门 3-人员
232
+ multiple: true, // 是否多选
233
+ checkedArray: [],
234
+ },
235
+ /* {
236
+ source: "0",
237
+ type: "0",
238
+ request: this.param.request, //'http://59.53.91.231:2100' 0002
239
+ businessId: "6a9aaf5742572e82b5d89d6f7e52e2f2",
240
+ codeType: [3], // 可选类型 1-主体 2-部门 3-人员
241
+ multiple: true, // 是否多选
242
+ } */
243
+ // 存储选人信息
244
+ multiNodeParticipant: {},
245
+ // 当前评估对象
246
+ partObjId: [],
247
+ // 选中人员信息
248
+ partNode: {},
249
+ actionName: "",
250
+
251
+ visibleListMsg: false,
252
+ visibleMsgComfig: false,
253
+ };
254
+ },
255
+ watch: {
256
+ param: {
257
+ handler(val, preVal) {
258
+ this.nextNodeData = val.nextNodeData;
259
+ this.taskNode = val.taskNode;
260
+ this.outGatewayUserTaskModel = val.outGatewayUserTaskModel;
261
+ this.actionName = val.actionName;
262
+ if (val.nextNodeData.length) {
263
+ // console.log("handler::::", this.nextNodeData[0]);
264
+ if (
265
+ this.nextNodeData[0].type == "userTask" ||
266
+ this.nextNodeData[0].type == "UserTaskModel"
267
+ ) {
268
+ this.entity.multiple = true;
269
+ this.entity.codeType = this.param.isCodeType || [3];
270
+ this.entity.source = "1";
271
+ this.entity.checkedArray = [];
272
+ this.entity.type = this.param.isCheckType || "0";
273
+ this.entity.orgType = this.param.isOrgType || [0];
274
+ } else if (
275
+ this.nextNodeData[0].type == "ExclusiveGatewayModel"
276
+ ) {
277
+ } else if (
278
+ this.nextNodeData[0].type == "InclusiveGatewayModel"
279
+ ) {
280
+ }
281
+ } else if (val.outGatewayUserTaskModel.length) {
282
+ if (val.outGatewayUserTaskModel[0].type == "userTask") {
283
+ this.entity.multiple = true;
284
+ this.entity.codeType = this.param.isCodeType || [3];
285
+ this.entity.source = "1";
286
+ this.entity.checkedArray = [];
287
+ this.entity.type = this.param.isCheckType || "0";
288
+ this.entity.orgType = this.param.isOrgType || [0];
289
+ } else if (
290
+ val.outGatewayUserTaskModel[0].type ==
291
+ "ExclusiveGatewayModel"
292
+ ) {
293
+ } else if (
294
+ val.outGatewayUserTaskModel[0].type ==
295
+ "InclusiveGatewayModel"
296
+ ) {
297
+ } else if (
298
+ val.outGatewayUserTaskModel[0].type == "UserTaskModel"
299
+ ) {
300
+ this.entity.multiple = true;
301
+ this.entity.codeType = this.param.isCodeType || [3];
302
+ this.entity.source = "1";
303
+ this.entity.checkedArray = [];
304
+ this.entity.type = this.param.isCheckType || "0";
305
+ this.entity.orgType = this.param.isOrgType || [0];
306
+ }
307
+ }
308
+ },
309
+ immediate: true,
310
+ deep: true,
311
+ },
312
+ },
313
+ created() {
314
+ // console.log("isVue2", this.param);
315
+ this.makeDelegateTaskButtonAnnex();
316
+ },
317
+ methods: {
318
+ // 设置msg
319
+ handleMakeMsg() {
320
+ if (this.commentMsg == "" && !this.commentMsg.length) {
321
+ this.handleTips("请输入审批意见!", false, "success");
322
+ this.visibleMsgComfig = false;
323
+ } else {
324
+ this.visibleMsgComfig = true;
325
+ }
326
+ },
327
+ handleOpenMsg() {
328
+ this.visibleListMsg = true;
329
+ },
330
+ handleTipsCancel() {
331
+ this.visibleMsgComfig = false;
332
+ },
333
+ handleTipsComfig() {
334
+ this.handleTips("", true, "loading");
335
+ this.visibleMsgComfig = false;
336
+ this.param.request
337
+ .post("/auth//user/opinion/save", {
338
+ opinionName: this.commentMsg,
339
+ })
340
+ .then((res) => {
341
+ if (res.code === 200) {
342
+ this.handleTips("设置成功!", true, "success");
343
+ } else {
344
+ this.handleTips(res.msg, true, "error");
345
+ }
346
+ })
347
+ .catch((error) => {
348
+ this.handleTips(error.msg, true, "error");
349
+ });
350
+ },
351
+ handleMsg(val) {
352
+ this.commentMsg = val;
353
+ this.visibleListMsg = false;
354
+ },
355
+ handleOpenPopup(id) {
356
+ this.visible = true;
357
+ this.partObjId = id;
358
+ },
359
+ async confirm() {
360
+ if (!this.commentMsg) {
361
+ this.textTips = "请输入转审理由!";
362
+ this.$refs.topTips.handleOpen();
363
+ return;
364
+ }
365
+ let arr = "";
366
+ this.multiNodeParticipant[this.partObjId].map((v, i) => {
367
+ if (i == 0) {
368
+ arr = v;
369
+ } else {
370
+ arr = `${arr} ${v}`;
371
+ }
372
+ });
373
+
374
+ this.handleTips("", true, "loading");
375
+ await this.param.request
376
+ .post("/aws/tis/delegate", {
377
+ delegateReason: this.commentMsg,
378
+ taskInstId: this.param.taskInstId,
379
+ targetUID: arr,
380
+ })
381
+ .then((res) => {
382
+ if (res.code == 200) {
383
+ this.$emit("handleClosePopup1");
384
+ this.handleTips("提交成功!", false, "success");
385
+ this.handleFinal();
386
+ this.commentMsg = "";
387
+ } else {
388
+ this.handleTips(res.msg, true, "error");
389
+ }
390
+ });
391
+ },
392
+ makeDelegateTaskButtonAnnex() {
393
+ if (this.param.annex && this.param.annex.length) {
394
+ this.otherList = this.param.annex;
395
+ let str = this.otherList.split(";");
396
+ this.limit = str[2];
397
+ this.requires = JSON.parse(str[1]);
398
+ this.labels = str[0];
399
+ /* console.log(
400
+ "makeDelegateTaskButtonAnnex",
401
+ this.otherList,
402
+ this.limit,
403
+ this.requires,
404
+ this.labels
405
+ ); */
406
+ }
407
+ },
408
+
409
+ handleCallback(res) {
410
+ // console.log("111:::", res);
411
+ this.visible = false;
412
+ this.multiNodeParticipant[this.partObjId] = [];
413
+ this.partNode[this.partObjId] = [];
414
+ res.map((v, i) => {
415
+ this.multiNodeParticipant[this.partObjId].push(v.uid);
416
+ this.partNode[this.partObjId].push(v.name);
417
+ this.entity.checkedArray.push({
418
+ type: 3,
419
+ uid: v.uid,
420
+ });
421
+ });
422
+ // console.log("callback_OK", res, this.multiNodeParticipant);
423
+ },
424
+ handleCancel() {
425
+ // console.log("cancel_No");
426
+ },
427
+
428
+ getValues(data) {
429
+ // console.log("获取当前附件信息::::", data);
430
+ this.attchLists = data;
431
+ },
432
+
433
+ async uploadAttch() {
434
+ if (this.attchLists.length > 0) {
435
+ this.attchLists.map((v, i) => {
436
+ v.size = v.fileSize;
437
+ v.format = v.originFileName.substring(
438
+ v.originFileName.lastIndexOf(".") + 1
439
+ );
440
+ v.uploadTime = v.createTime;
441
+ v.processInstId = this.param.processInstId;
442
+ v.taskInstId = this.param.taskInstId;
443
+ v.name = v.originFileName;
444
+ });
445
+
446
+ let param = this.attchLists;
447
+ const ress = await this.param.request.post(
448
+ "/aws/meta/annex/patchSave",
449
+ {
450
+ saveMetaAnnexCmdList: param,
451
+ }
452
+ );
453
+ // console.log("asd", ress);
454
+ if (ress.success) {
455
+ this.$emit("handleClosePopup1");
456
+ this.handleTips("提交成功!", false, "success");
457
+ this.handleFinal();
458
+ this.commentMsg = "";
459
+ } else {
460
+ this.handleTips("上传失败", true, "error");
461
+ }
462
+ }
463
+ },
464
+
465
+ isOption(humanPerformer) {
466
+ return (
467
+ humanPerformer == "任意指定" ||
468
+ humanPerformer == "固定部门" ||
469
+ humanPerformer == "固定单位" ||
470
+ humanPerformer == "与流程申请人所在组织结构的位置相关" ||
471
+ humanPerformer == "固定群组"
472
+ );
473
+ },
474
+
475
+ handleTips(text, status, type) {
476
+ this.textTips = text;
477
+ this.statusTips = status;
478
+ this.typeTips = type;
479
+ this.$refs.topTips.handleOpen();
480
+ },
481
+
482
+ handleFinal() {
483
+ if (this.param.endFunction) {
484
+ window.top && window.top.postMessage('success', '*')
485
+ this.param.endFunction("delegateTask");
486
+ }
487
+ },
488
+ },
489
+ };
490
+ </script>
491
+ <style scoped>
492
+ @import "./index.scss";
493
+ </style>
@@ -0,0 +1,8 @@
1
+ import counterSign from "./counterSign.vue";
2
+ import delegateTask from "./delegateTask.vue";
3
+ import complete from "./complete.vue";
4
+ import cancel from "./cancel.vue";
5
+ import backNode from "./backNode.vue";
6
+ import ccTask from "./ccTask.vue";
7
+
8
+ export { counterSign, delegateTask, complete, cancel, backNode, ccTask };
@@ -0,0 +1,212 @@
1
+ .process-popup-content {
2
+ flex: 1;
3
+ }
4
+
5
+ .process-popup-content .process-pc-label {
6
+ font-weight: 400;
7
+ font-size: 12px;
8
+ color: #565959;
9
+ display: flex;
10
+ align-items: center;
11
+ padding-top: 20px;
12
+ padding-bottom: 5px;
13
+ }
14
+
15
+ .process-popup-content .process-pc-value .van-field {
16
+ border-bottom: 1px solid #e8e8e8;
17
+ padding: 0;
18
+ }
19
+
20
+ .input-padding {
21
+ padding: 0;
22
+ }
23
+
24
+ .process-popup-textarea {
25
+ position: relative;
26
+ width: 100%;
27
+ /* height: 62px; */
28
+ height: 105px;
29
+ box-sizing: border-box;
30
+ border-radius: 4px;
31
+ background: #fff;
32
+ border: 1px solid #dcdcdc;
33
+ margin-top: 8px;
34
+ padding: 4px 8px;
35
+ }
36
+
37
+ .process-popup-textarea-num {
38
+ font-weight: 400;
39
+ font-size: 12px;
40
+ text-align: right;
41
+ color: #999;
42
+ }
43
+
44
+ .process-popup-textarea::after {
45
+ position: absolute;
46
+ content: "";
47
+ width: 100%;
48
+ height: 1px;
49
+ background-color: #f2f2f2;
50
+ bottom: 0;
51
+ left: 0;
52
+ }
53
+
54
+ .process-popup-textarea .textarea-item {
55
+ resize: none;
56
+ background: none;
57
+ color: inherit;
58
+ opacity: 1;
59
+ font: inherit;
60
+ line-height: inherit;
61
+ letter-spacing: inherit;
62
+ text-align: inherit;
63
+ text-indent: inherit;
64
+ text-transform: inherit;
65
+ text-shadow: inherit;
66
+ outline: none;
67
+ border: none;
68
+ padding: 0;
69
+ margin: 0;
70
+ text-decoration: inherit;
71
+ font-size: 14px;
72
+ width: 100%;
73
+ height: 74px;
74
+ font-weight: 400;
75
+ color: #333;
76
+ }
77
+ .process-pc-label--re {
78
+ color: #ee0000;
79
+ }
80
+
81
+ .process-pc-value--people {
82
+ width: 100%;
83
+ min-height: 43px;
84
+ padding: 10px 26px 10px 0;
85
+ box-sizing: border-box;
86
+ position: relative;
87
+ font-size: 14px;
88
+ }
89
+
90
+ .process-pc-value--people::after {
91
+ position: absolute;
92
+ content: "";
93
+ width: 100%;
94
+ height: 1px;
95
+ background-color: #e8e8e8;
96
+ bottom: 0;
97
+ left: 0;
98
+ }
99
+
100
+ .process-tag {
101
+ width: 36px;
102
+ height: 20px;
103
+ box-sizing: border-box;
104
+ border: 1px solid #2979ff;
105
+ color: #2979ff;
106
+ font-size: 12px;
107
+ display: flex;
108
+ justify-content: center;
109
+ align-items: center;
110
+ margin-right: 5px;
111
+ }
112
+
113
+ .process-radio {
114
+ display: flex;
115
+ justify-content: flex-start;
116
+ }
117
+ .process-radio-item,
118
+ .process-checkbox-item {
119
+ display: flex;
120
+ align-items: center;
121
+ margin-right: 10px;
122
+ padding-top: 10px;
123
+
124
+ font-weight: 400;
125
+ font-size: 14px;
126
+ color: #333;
127
+ }
128
+ .process-radio-item span {
129
+ display: inline-block;
130
+ border: 1px solid #d1d1d1;
131
+ border-radius: 50%;
132
+ width: 16px;
133
+ height: 16px;
134
+ box-sizing: border-box;
135
+ background-color: #fff;
136
+ margin-right: 5px;
137
+ position: relative;
138
+ }
139
+
140
+ .process-checkbox-item span {
141
+ display: inline-block;
142
+ border: 1px solid #d1d1d1;
143
+ border-radius: 3px;
144
+ width: 16px;
145
+ height: 16px;
146
+ box-sizing: border-box;
147
+ background-color: #fff;
148
+ margin-left: 5px;
149
+ }
150
+
151
+ .process-radio-item--check span {
152
+ border-color: rgb(0, 122, 255);
153
+ }
154
+
155
+ .process-radio-item--check span::after {
156
+ content: "";
157
+ background-color: rgb(0, 122, 255);
158
+ border-color: rgb(0, 122, 255);
159
+ width: 12px;
160
+ height: 12px;
161
+ position: absolute;
162
+ border-radius: 50%;
163
+ left: 1px;
164
+ top: 1px;
165
+ }
166
+
167
+ .process-radio-item-check {
168
+ width: 80%;
169
+ height: 80%;
170
+ transform: translate(12%, 18%);
171
+ }
172
+
173
+ .process-checkbox-item-check {
174
+ width: 80%;
175
+ height: 80%;
176
+ transform: translate(12%, -15%);
177
+ }
178
+
179
+ .process-checkbox-item--check span {
180
+ background-color: rgb(0, 122, 255);
181
+ }
182
+
183
+ ::v-deep .departPerson-main {
184
+ width: 100% !important;
185
+ height: 100% !important;
186
+ }
187
+
188
+ .msg-btn {
189
+ font-size: 14px;
190
+ margin: 4px 0 0;
191
+ text-align: right;
192
+ color: #1890ff;
193
+ padding-bottom: 12px;
194
+ font-weight: 400;
195
+ }
196
+
197
+ .process-popup-content-msg {
198
+ padding: 0 20px;
199
+ background-color: #fff;
200
+ margin-bottom: 12px;
201
+ }
202
+
203
+ .process-popup-content-person {
204
+ padding: 0 20px 20px;
205
+ background-color: #fff;
206
+ }
207
+
208
+ .attch-upload {
209
+ padding: 0 20px;
210
+ margin-top: 10px;
211
+ background: #fff;
212
+ }