ui-process-h5 0.1.36 → 0.1.40

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 (102) hide show
  1. package/build/configure/README.md +171 -0
  2. package/build/configure/package.json +27 -0
  3. package/build/scripts/postinstall.mjs +14 -0
  4. package/build/scripts/switch-cli.mjs +4 -0
  5. package/build/scripts/utils.mjs +60 -0
  6. package/index.html +12 -0
  7. package/package.json +48 -20
  8. package/src/App.vue +151 -0
  9. package/src/assets/font-icon/iconfont.scss +57 -0
  10. package/src/assets/font-icon/iconfont.ttf +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/js/auth.js +41 -0
  15. package/src/assets/js/errorCode.js +6 -0
  16. package/src/assets/js/message.js +352 -0
  17. package/src/assets/js/request.js +90 -0
  18. package/src/assets/js/toast.js +239 -0
  19. package/src/assets/js/top.js +229 -0
  20. package/src/assets/js/utils.js +82 -0
  21. package/src/assets/js/vuePopper.js +123 -0
  22. package/src/assets/query.png +0 -0
  23. package/src/main.js +15 -0
  24. package/src/packages/attchUpload/index.js +371 -0
  25. package/src/packages/attchUpload/index.scss +136 -0
  26. package/src/packages/attchUpload/index.vue +173 -0
  27. package/src/packages/downSelect/index.js +81 -0
  28. package/src/packages/downSelect/index.scss +82 -0
  29. package/src/packages/downSelect/index.vue +54 -0
  30. package/src/packages/index.js +6 -0
  31. package/src/packages/popup/index.js +61 -0
  32. package/src/packages/popup/index.scss +174 -0
  33. package/src/packages/popup/index.vue +79 -0
  34. package/src/packages/preview/index.js +36 -0
  35. package/src/packages/preview/index.vue +15 -0
  36. package/src/packages/previewImage/index.js +158 -0
  37. package/src/packages/previewImage/index.scss +59 -0
  38. package/src/packages/previewImage/index.vue +32 -0
  39. package/{packages/components/process/src/process.vue → src/packages/process/index.js} +219 -440
  40. package/src/packages/process/index.scss +164 -0
  41. package/src/packages/process/index.vue +189 -0
  42. package/src/packages/process/operation/backNode.vue +393 -0
  43. package/src/packages/process/operation/cancel.vue +399 -0
  44. package/src/packages/process/operation/ccTask.vue +461 -0
  45. package/src/packages/process/operation/complete.vue +488 -0
  46. package/src/packages/process/operation/counterSign.vue +485 -0
  47. package/src/packages/process/operation/delegateTask.vue +480 -0
  48. package/src/packages/process/operation/restart.vue +305 -0
  49. package/src/packages/submitPopup/index.js +296 -0
  50. package/src/packages/submitPopup/index.scss +83 -0
  51. package/src/packages/submitPopup/index.vue +138 -0
  52. package/src/packages/tab/index.js +207 -0
  53. package/src/packages/tab/index.scss +176 -0
  54. package/src/packages/tab/index.vue +155 -0
  55. package/src/packages/tip/index.js +74 -0
  56. package/src/packages/tip/index.scss +82 -0
  57. package/src/packages/tip/index.vue +57 -0
  58. package/src/packages/viewAttchList/index.js +132 -0
  59. package/src/packages/viewAttchList/index.scss +76 -0
  60. package/src/packages/viewAttchList/index.vue +112 -0
  61. package/src/style.css +80 -0
  62. package/ui-process-h5/README.md +171 -0
  63. package/ui-process-h5/package.json +27 -0
  64. package/ui-process-h5/scripts/postinstall.mjs +14 -0
  65. package/ui-process-h5/scripts/switch-cli.mjs +4 -0
  66. package/ui-process-h5/scripts/utils.mjs +60 -0
  67. package/ui-process-h5/v2/style.css +1 -0
  68. package/ui-process-h5/v2/ui-process-h5.js +13467 -0
  69. package/ui-process-h5/v2/ui-process-h5.umd.cjs +67 -0
  70. package/ui-process-h5/v2.7/style.css +1 -0
  71. package/ui-process-h5/v2.7/ui-process-h5.js +12844 -0
  72. package/ui-process-h5/v2.7/ui-process-h5.umd.cjs +67 -0
  73. package/ui-process-h5/v3/style.css +1 -0
  74. package/ui-process-h5/v3/ui-process-h5.js +10336 -0
  75. package/ui-process-h5/v3/ui-process-h5.umd.cjs +55 -0
  76. package/vite.config.ts +78 -0
  77. package/packages/components/approval/index.js +0 -0
  78. package/packages/components/process/index.js +0 -8
  79. package/packages/components/process/src/attchlist-upload.vue +0 -585
  80. package/packages/components/process/src/operation/backNode.vue +0 -141
  81. package/packages/components/process/src/operation/cancel.vue +0 -170
  82. package/packages/components/process/src/operation/ccTask.vue +0 -170
  83. package/packages/components/process/src/operation/complete.vue +0 -224
  84. package/packages/components/process/src/operation/counterSign.vue +0 -178
  85. package/packages/components/process/src/operation/delegateTask.vue +0 -168
  86. package/packages/components/process/src/operation/restart.vue +0 -172
  87. package/packages/components/process/src/popup.vue +0 -230
  88. package/packages/components/process/src/tab.vue +0 -459
  89. package/packages/components/process/src/tip.vue +0 -207
  90. package/packages/index.js +0 -4
  91. /package/{packages/components/process/theme → src/assets}/img/add-file.png +0 -0
  92. /package/{packages/components/process/theme → src/assets}/img/del.png +0 -0
  93. /package/{packages/components/process/theme → src/assets}/img/doc.png +0 -0
  94. /package/{packages/components/process/theme → src/assets}/img/file.png +0 -0
  95. /package/{packages/components/process/theme → src/assets}/img/image.png +0 -0
  96. /package/{packages/components/process/theme → src/assets}/img/pdf.png +0 -0
  97. /package/{packages/components/process/theme → src/assets}/img/xls.png +0 -0
  98. /package/{packages/components/process/theme → src/assets}/img/zip.png +0 -0
  99. /package/{packages/components/process/theme → src/assets}/status/error.png +0 -0
  100. /package/{packages/components/process/theme → src/assets}/status/loading.png +0 -0
  101. /package/{packages/components/process/theme → src/assets}/status/success.png +0 -0
  102. /package/{packages/components/process/src → src/packages/process}/operation/index.js +0 -0
@@ -0,0 +1,138 @@
1
+ <template>
2
+ <div>
3
+ <TopPopup
4
+ v-bind:visible="show"
5
+ v-on:update:visible="
6
+ (val) => ((show = val), $emit('update:visible', val))
7
+ "
8
+ ref="TopPopup"
9
+ titleText="送审"
10
+ isDrawer
11
+ :isIndex="99"
12
+ >
13
+ <TopDownSelect
14
+ :option="option"
15
+ @change="handleChange"
16
+ ></TopDownSelect>
17
+ <div class="viewTrack" @click="taskurlshow = true">查看流程图</div>
18
+ <div class="person-views" v-if="firstPerson && firstPerson.length">
19
+ <div class="views-items" v-for="(v, i) in firstPerson">
20
+ <div class="views-items-name">
21
+ {{ v.name }}
22
+ <span class="views-items-name--re"
23
+ >*</span
24
+ >
25
+ </div>
26
+ <div class="views-items-set">
27
+ <div v-if="partNode[v.id] && partNode[v.id].length">
28
+ <span v-for="(name, index) in partNode[v.id]">
29
+ {{
30
+ index >= 3
31
+ ? ""
32
+ : index == 0
33
+ ? name
34
+ : `,${name}`
35
+ }}
36
+ </span>
37
+ <span v-if="partNode[v.id].length > 3"
38
+ >...等{{ partNode[v.id].length }}人</span
39
+ >
40
+ </div>
41
+ <div v-else></div>
42
+ <div
43
+ class="views-items-set-btn"
44
+ @click="handleOpenPerson(v)"
45
+ >
46
+ 设置
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ <div class="person-views" v-if="personList && personList.length">
52
+ <div class="views-items" v-for="(v, i) in personList">
53
+ <div class="views-items-name">
54
+ {{ v.name }}
55
+ </div>
56
+ <div class="views-items-set">
57
+ <div v-if="partNode[v.id] && partNode[v.id].length">
58
+ <span v-for="(name, index) in partNode[v.id]">
59
+ {{
60
+ index >= 3
61
+ ? ""
62
+ : index == 0
63
+ ? name
64
+ : `,${name}`
65
+ }}
66
+ </span>
67
+ <span v-if="partNode[v.id].length > 3"
68
+ >...等{{ partNode[v.id].length }}人</span
69
+ >
70
+ </div>
71
+ <div v-else></div>
72
+ <div
73
+ class="views-items-set-btn"
74
+ @click="handleOpenPerson(v)"
75
+ >
76
+ 设置
77
+ </div>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ <div
82
+ class="person-views-white"
83
+ v-if="
84
+ !firstPerson &&
85
+ !firstPerson.length &&
86
+ !personList &&
87
+ !personList.length
88
+ "
89
+ >
90
+ 无需设置
91
+ </div>
92
+ <div class="person-btn">
93
+ <div
94
+ class="top-button"
95
+ style="background-color: #3c9cff; color: #fff;"
96
+ @click="handleSumbit"
97
+ >
98
+ 送审
99
+ </div>
100
+ </div>
101
+ </TopPopup>
102
+ <TopPopup
103
+ v-bind:visible="visiblePerson"
104
+ v-on:update:visible="(val) => (visiblePerson = val)"
105
+ ref="TopPopup"
106
+ titleText="选人"
107
+ :isDrawer="true"
108
+ :isIndex="199"
109
+ >
110
+ <departPerson
111
+ :visible.sync="visiblePerson"
112
+ v-bind="entity"
113
+ @callback="handleCallback"
114
+ @cancel="handleCancel"
115
+ >
116
+ </departPerson>
117
+ </TopPopup>
118
+ <PreviewImage
119
+ :images="trackUrl"
120
+ v-bind:visible="taskurlshow"
121
+ v-on:update:visible="(val) => (taskurlshow = val)"
122
+ :indexd="0"
123
+ :isOne="true"
124
+ :isStyle="isStyle"
125
+ >
126
+ </PreviewImage>
127
+ <TopTips
128
+ ref="topTips"
129
+ :text="textTips"
130
+ :statusTips="statusTips"
131
+ :type="typeTips"
132
+ />
133
+ </div>
134
+ </template>
135
+ <script src="./index.js"></script>
136
+ <style lang="scss" scoped>
137
+ @import "./index.scss";
138
+ </style>
@@ -0,0 +1,207 @@
1
+ import { defineComponent } from "vue-demi";
2
+ import TopPopup from "../popup/index.vue";
3
+ import ViewAttchList from "../viewAttchList/index.vue";
4
+
5
+ export default defineComponent({
6
+ name: "TopTab",
7
+ components: {
8
+ TopPopup,
9
+ ViewAttchList,
10
+ },
11
+ props: {
12
+ /**
13
+ * 根据参数插入自定义tab
14
+ * label:选项卡title
15
+ * key:选项卡ID 请勿重复defaultTabList内已拥有的默认key
16
+ * type:插槽类型 "slot" "default"
17
+ * sort:排序参数,无参数默认插入末尾
18
+ * slot:插槽name
19
+ */
20
+ tapList: {
21
+ type: Array,
22
+ default: () => [],
23
+ },
24
+ // 自定义tab (传入后 默认tab,tapList,失效)
25
+ selfTapList: {
26
+ type: Array,
27
+ default: () => [],
28
+ },
29
+ // 流程图url
30
+ track: {
31
+ type: String,
32
+ default: "",
33
+ },
34
+ // 审批记录列表
35
+ taskComment: {
36
+ type: Array,
37
+ default: () => [],
38
+ },
39
+ // 流程信息列表
40
+ trackList: {
41
+ type: Array,
42
+ default: () => [],
43
+ },
44
+ },
45
+
46
+ data() {
47
+ return {
48
+ // 流程图
49
+ trackUrl: "",
50
+ // 审批信息
51
+ taskCommentList: [],
52
+ // 选中
53
+ active: "",
54
+
55
+ /* tab 渲染 */
56
+ // 默认弹窗列表
57
+ defaultTabList: [
58
+ {
59
+ label: "基本信息",
60
+ key: "a",
61
+ type: "default",
62
+ slot: "default",
63
+ },
64
+ {
65
+ label: "流程图",
66
+ key: "b",
67
+ type: "default",
68
+ slot: "tab2",
69
+ },
70
+ {
71
+ label: "审批记录",
72
+ key: "c",
73
+ type: "default",
74
+ slot: "tab3",
75
+ },
76
+ ],
77
+ // 弹窗操作
78
+ isTapList: [
79
+ {
80
+ label: "基本信息",
81
+ key: "a",
82
+ type: "default",
83
+ slot: "default",
84
+ },
85
+ {
86
+ label: "流程图",
87
+ key: "b",
88
+ type: "default",
89
+ slot: "tab2",
90
+ },
91
+ {
92
+ label: "审批记录",
93
+ key: "c",
94
+ type: "default",
95
+ slot: "tab3",
96
+ },
97
+ ],
98
+ // 绑定tab块
99
+ label: document.getElementsByClassName("tops-tab-header-items"),
100
+
101
+ // 侧边弹窗
102
+ visible: false,
103
+ inList: [],
104
+ visibleTack: false,
105
+ };
106
+ },
107
+ watch: {
108
+ // 接受外部数组,渲染tab
109
+ tapList: {
110
+ handler(val, preVal) {
111
+ if (!this.selfTapList.length) {
112
+ this.isTapList = [].concat(this.defaultTabList);
113
+ if (val.length > 0) {
114
+ /* return [] */
115
+ val.forEach((v, i) => {
116
+ if (v.sort && v.sort > 1) {
117
+ this.isTapList.splice(v.sort - 1, 0, v);
118
+ } else if (v.sort == 1) {
119
+ this.isTapList.unshift(v);
120
+ } else {
121
+ this.isTapList.push(v);
122
+ }
123
+ });
124
+ }
125
+ this.active = this.isTapList[0].key;
126
+ console.log("isTapList", this.isTapList);
127
+ }
128
+ },
129
+ immediate: true,
130
+ deep: true,
131
+ },
132
+ // 自定义tab,覆盖默认项
133
+ selfTapList: {
134
+ handler(val, preVal) {
135
+ if (val.length) {
136
+ this.isTapList = [].concat(val);
137
+ this.active = this.isTapList[0].key;
138
+ }
139
+ },
140
+ immediate: true,
141
+ deep: true,
142
+ },
143
+ // 流程图链接
144
+ track: {
145
+ handler(val, preVal) {
146
+ if (val) {
147
+ this.trackUrl = val;
148
+ }
149
+ },
150
+ immediate: true,
151
+ deep: true,
152
+ },
153
+ // 审批记录列表
154
+ taskComment: {
155
+ handler(val, preVal) {
156
+ if (val) {
157
+ this.taskCommentList = val;
158
+ }
159
+ },
160
+ immediate: true,
161
+ deep: true,
162
+ },
163
+ },
164
+
165
+ mounted() {
166
+ // 渲染后初始化为第一个位置
167
+ this.tabAnimation(0);
168
+ },
169
+
170
+ methods: {
171
+ // 选中
172
+ handleActive(e, i) {
173
+ if (e === this.active) {
174
+ return;
175
+ }
176
+
177
+ this.active = e;
178
+ this.tabAnimation(i);
179
+ },
180
+
181
+ // tab切换动画
182
+ tabAnimation(i) {
183
+ if (this.label.length) {
184
+ let doc = document.getElementsByClassName("bottom-line")[0];
185
+ let left;
186
+ if (doc.offsetWidth < this.label[i].offsetWidth - 10) {
187
+ let num =
188
+ (this.label[i].offsetWidth - doc.offsetWidth - 10) / 2;
189
+ left = `${this.label[i].offsetLeft + num}px`;
190
+ } else if (doc.offsetWidth > this.label[i].offsetWidth - 10) {
191
+ let num =
192
+ (doc.offsetWidth - this.label[i].offsetWidth + 10) / 2;
193
+ left = `${this.label[i].offsetLeft - num}px`;
194
+ } else {
195
+ left = `${this.label[i].offsetLeft}px`;
196
+ }
197
+ doc.style.transition = ".3s";
198
+ doc.style.transform = `translateX(${left})`;
199
+ }
200
+ },
201
+ // 附件列表
202
+ viewList(val) {
203
+ this.visible = true;
204
+ this.inList = val;
205
+ },
206
+ },
207
+ });
@@ -0,0 +1,176 @@
1
+ .tops-tab {
2
+ height: 100%;
3
+ }
4
+ .tops-tab-header {
5
+ display: flex;
6
+ width: 100%;
7
+ height: 45px;
8
+ font-size: 14px;
9
+ color: #333;
10
+ padding: 10px 17px;
11
+ font-weight: 500;
12
+ box-sizing: border-box;
13
+ overflow-x: auto;
14
+ white-space: nowrap;
15
+ flex-wrap: nowrap;
16
+ flex-shrink: 0;
17
+ -ms-overflow-style: none;
18
+ position: relative;
19
+ background-color: #fff;
20
+ }
21
+
22
+ .tops-tab-header::after {
23
+ content: "";
24
+ position: absolute;
25
+ width: 100%;
26
+ height: 1px;
27
+ background-color: #f2f2f2;
28
+ left: 0;
29
+ bottom: 0;
30
+ }
31
+
32
+ .tops-tab-header::-webkit-scrollbar {
33
+ display: none;
34
+ }
35
+
36
+ .tops-tab-header-items {
37
+ white-space: nowrap;
38
+ padding-right: 10px;
39
+ box-sizing: border-box;
40
+ display: inline-block;
41
+ height: 100%;
42
+ text-align: center;
43
+ margin-right: 32px;
44
+ font-weight: 400;
45
+ font-size: 15px;
46
+ text-align: left;
47
+ color: #333;
48
+ display: flex;
49
+ align-items: center;
50
+ }
51
+
52
+ .tops-tab-header-items:last-child {
53
+ padding-right: 0;
54
+ margin-right: 0;
55
+ }
56
+
57
+ .tops-tab-header .active {
58
+ position: relative;
59
+ color: #1389ff;
60
+ font-family: "PingFang SC Bold";
61
+ font-weight: 700;
62
+ font-size: 15px;
63
+ text-align: left;
64
+ }
65
+
66
+ .tops-tab-header .bottom-line {
67
+ width: 30px;
68
+ height: 3px;
69
+ border-radius: 1.5px;
70
+ background-color: #1389ff;
71
+ position: absolute;
72
+ bottom: 1px;
73
+ left: 0;
74
+ }
75
+ .tops-tab-body {
76
+ height: calc(100% - 45px);
77
+ }
78
+
79
+ .seal-list__item {
80
+ padding: 6px 10px;
81
+ margin: 10px;
82
+ margin-bottom: 0px;
83
+ padding-bottom: 0px;
84
+ background-color: #ffffff;
85
+ border-radius: 10px;
86
+ box-sizing: border-box;
87
+ }
88
+
89
+ .seal-list__item:last-child {
90
+ margin-bottom: 15px;
91
+ }
92
+
93
+ .seal-list__item .seal-list__item--header {
94
+ margin-bottom: 6px;
95
+ display: flex;
96
+ align-items: center;
97
+ }
98
+
99
+ .seal-list__item .seal-list__item--header span:first-of-type {
100
+ font-size: 15px;
101
+ margin-right: 6px;
102
+ font-weight: bold;
103
+ }
104
+
105
+ .seal-list__item .seal-list__item--option {
106
+ display: flex;
107
+ justify-content: space-between;
108
+ align-items: center;
109
+ font-size: 14px;
110
+ padding: 10px 0;
111
+ color: #333;
112
+ }
113
+
114
+ .seal-list__item .seal-list__item--option span:last-child {
115
+ max-width: 144px;
116
+ /* overflow: hidden;
117
+ white-space: nowrap;
118
+ text-overflow: ellipsis; */
119
+ color: #888;
120
+ }
121
+
122
+ .seal-list__item .seal-list__item--attch {
123
+ font-size: 14px;
124
+ padding: 10px 0;
125
+ color: #333;
126
+ text-align: right;
127
+ color: #1389ff;
128
+ }
129
+
130
+ .seal-list__item .seal-list__item--actions {
131
+ margin-top: 12px;
132
+ position: relative;
133
+ display: flex;
134
+ justify-content: space-around;
135
+ align-items: center;
136
+ }
137
+
138
+ .seal-list__item .seal-list__item--actions ::before {
139
+ content: "";
140
+ top: 0;
141
+ width: 100%;
142
+ transform: scaleY(0.5);
143
+ transform-origin: top;
144
+ border-top: 1px #e8e8e8 solid;
145
+ position: absolute;
146
+ }
147
+
148
+ .seal-list__item .seal-list__item--actions .van-button {
149
+ width: 50%;
150
+ }
151
+
152
+ .seal-list__item .seal-list__item--actions .van-button ::after {
153
+ content: "";
154
+ height: 60%;
155
+ border-left: 1px #e8e8e8 solid;
156
+ position: absolute;
157
+ left: 100%;
158
+ top: 50%;
159
+ transform: translate(-50%, -50%) scaleX(0.5);
160
+ transform-origin: left;
161
+ }
162
+
163
+ .seal-list__item .seal-list__item--actions .van-button:last-child ::after {
164
+ content: none;
165
+ }
166
+
167
+ .textnone {
168
+ text-align: center;
169
+ margin-top: 30px;
170
+ color: #999;
171
+ font-size: 14px;
172
+ }
173
+
174
+ .tops-tab-body-taskcommentlist{
175
+ overflow-y: auto;
176
+ }
@@ -0,0 +1,155 @@
1
+ <template>
2
+ <div class="tops-tab">
3
+ <div class="tops-tab-header">
4
+ <template v-for="(item, i) of isTapList">
5
+ <div
6
+ class="tops-tab-header-items"
7
+ :class="[item.key === active ? 'active' : '']"
8
+ @click="handleActive(item.key, i)"
9
+ >
10
+ {{ item.label }}
11
+ </div>
12
+ </template>
13
+ <div class="bottom-line" v-if="isTapList.length"></div>
14
+ </div>
15
+ <div class="tops-tab-body">
16
+ <div
17
+ v-for="item in isTapList"
18
+ :key="item.key"
19
+ v-show="active === item.key"
20
+ style="height: 100%;"
21
+ :class="[item.key === 'c' && 'tops-tab-body-taskcommentlist']"
22
+ >
23
+ <!-- :taskNode="getTaskNode()" -->
24
+ <slot
25
+ v-if="item.key === 'a' && item.type === 'default'"
26
+ name="default"
27
+ ></slot>
28
+ <slot
29
+ v-if="item.key === 'b' && item.type === 'default'"
30
+ :name="item.slot"
31
+ >
32
+ <div
33
+ style="padding: 10px 20px; color: #1389ff;"
34
+ v-if="trackUrl"
35
+ @click="() => (visibleTack = true)"
36
+ >
37
+ 查看流程节点信息
38
+ </div>
39
+ <iframe
40
+ v-if="trackUrl"
41
+ :src="trackUrl"
42
+ style="
43
+ width: 100%;
44
+ height: calc(100% - 41px);
45
+ border: none;
46
+ "
47
+ scrolling="no"
48
+ frameborder="0"
49
+ ></iframe>
50
+ <div v-else class="textnone">
51
+ 暂无流程图
52
+ </div>
53
+ </slot>
54
+ <slot
55
+ v-if="item.key === 'c' && item.type === 'default'"
56
+ :name="item.slot"
57
+ >
58
+ <template v-if="taskCommentList.length > 0">
59
+ <div
60
+ v-for="(item, index) in taskCommentList"
61
+ :key="item.id"
62
+ class="seal-list__item"
63
+ >
64
+ <div>
65
+ <div class="seal-list__item--option">
66
+ <span>节点名称</span>
67
+ <span>{{ item.activityName }}</span>
68
+ </div>
69
+ <div class="seal-list__item--option">
70
+ <span>审批人</span>
71
+ <span>{{ item.createUserName }}</span>
72
+ </div>
73
+ <div class="seal-list__item--option">
74
+ <span>审批操作</span>
75
+ <span>{{ item.actionName }}</span>
76
+ </div>
77
+ <div class="seal-list__item--option">
78
+ <span>审批意见</span>
79
+ <span v-html="item.msg"></span>
80
+ </div>
81
+ <div class="seal-list__item--option">
82
+ <span>审批时间</span>
83
+ <span>{{ item.createDate }}</span>
84
+ </div>
85
+ <div
86
+ v-if="
87
+ item.metaAnnexList &&
88
+ item.metaAnnexList.length
89
+ "
90
+ class="seal-list__item--attch"
91
+ @click="viewList(item.metaAnnexList)"
92
+ >
93
+ <span>查看附件</span>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ </template>
98
+ <div v-else class="textnone">暂无数据</div>
99
+ </slot>
100
+ <slot v-if="item.type == 'slot'" :name="item.slot"></slot>
101
+ </div>
102
+ </div>
103
+ <TopPopup
104
+ v-bind:visible="visible"
105
+ v-on:update:visible="(val) => (visible = val)"
106
+ ref="TopPopup"
107
+ titleText="附件列表"
108
+ isDrawer
109
+ >
110
+ <ViewAttchList :inList="inList"></ViewAttchList>
111
+ </TopPopup>
112
+ <TopPopup
113
+ v-bind:visible="visibleTack"
114
+ v-on:update:visible="(val) => (visibleTack = val)"
115
+ ref="TopPopups"
116
+ titleText="流程信息"
117
+ isDrawer
118
+ width="60vw"
119
+ >
120
+ <template v-if="trackList && trackList.length">
121
+ <div
122
+ v-for="(item, index) in trackList"
123
+ :key="item.id"
124
+ class="seal-list__item"
125
+ >
126
+ <div>
127
+ <div class="seal-list__item--option">
128
+ <span>序号</span>
129
+ <span style="max-width: 100px;">{{ item.no }}</span>
130
+ </div>
131
+ <div class="seal-list__item--option">
132
+ <span>节点名称</span>
133
+ <span style="max-width: 100px;"
134
+ >{{ item.name
135
+ }}{{
136
+ item.type !== "普通" ? `[${item.type}]` : ""
137
+ }}</span
138
+ >
139
+ </div>
140
+ <div class="seal-list__item--option">
141
+ <span>审批人</span>
142
+ <span style="max-width: 100px;">{{
143
+ item.assigneeNames
144
+ }}</span>
145
+ </div>
146
+ </div>
147
+ </div>
148
+ </template>
149
+ </TopPopup>
150
+ </div>
151
+ </template>
152
+ <script src="./index.js"></script>
153
+ <style lang="scss" scoped>
154
+ @import "./index.scss";
155
+ </style>