ui-process-h5 0.1.36 → 1.0.1

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 (92) hide show
  1. package/build/configure/README.md +212 -0
  2. package/build/configure/package.json +28 -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 +51 -20
  8. package/src/App.vue +222 -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 +65 -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 +99 -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 +83 -0
  21. package/src/assets/js/vuePopper.js +123 -0
  22. package/src/assets/query.png +0 -0
  23. package/src/assets/status/check.png +0 -0
  24. package/src/assets/status/del.png +0 -0
  25. package/src/main.js +17 -0
  26. package/src/packages/attchUpload/index.js +374 -0
  27. package/src/packages/attchUpload/index.scss +143 -0
  28. package/src/packages/attchUpload/index.vue +173 -0
  29. package/src/packages/downSelect/index.js +99 -0
  30. package/src/packages/downSelect/index.scss +86 -0
  31. package/src/packages/downSelect/index.vue +57 -0
  32. package/src/packages/index.js +6 -0
  33. package/src/packages/popup/index.js +73 -0
  34. package/src/packages/popup/index.scss +173 -0
  35. package/src/packages/popup/index.vue +80 -0
  36. package/src/packages/preview/index.js +36 -0
  37. package/src/packages/preview/index.vue +15 -0
  38. package/src/packages/previewImage/index.js +281 -0
  39. package/src/packages/previewImage/index.scss +76 -0
  40. package/src/packages/previewImage/index.vue +53 -0
  41. package/src/packages/process/index.js +923 -0
  42. package/src/packages/process/index.scss +175 -0
  43. package/src/packages/process/index.vue +263 -0
  44. package/src/packages/process/operation/backNode.vue +485 -0
  45. package/src/packages/process/operation/cancel.vue +518 -0
  46. package/src/packages/process/operation/ccTask.vue +473 -0
  47. package/src/packages/process/operation/complete.vue +1126 -0
  48. package/src/packages/process/operation/counterSign.vue +590 -0
  49. package/src/packages/process/operation/delegateTask.vue +587 -0
  50. package/src/packages/process/operation/msgList.vue +174 -0
  51. package/src/packages/process/operation/restart.vue +316 -0
  52. package/src/packages/submitPopup/index.js +644 -0
  53. package/src/packages/submitPopup/index.scss +88 -0
  54. package/src/packages/submitPopup/index.vue +154 -0
  55. package/src/packages/tab/index.js +236 -0
  56. package/src/packages/tab/index.scss +177 -0
  57. package/src/packages/tab/index.vue +155 -0
  58. package/src/packages/tip/index.js +80 -0
  59. package/src/packages/tip/index.scss +121 -0
  60. package/src/packages/tip/index.vue +57 -0
  61. package/src/packages/viewAttchList/index.js +134 -0
  62. package/src/packages/viewAttchList/index.scss +76 -0
  63. package/src/packages/viewAttchList/index.vue +112 -0
  64. package/src/style.css +80 -0
  65. package/vite.config.ts +107 -0
  66. package/packages/components/approval/index.js +0 -0
  67. package/packages/components/process/index.js +0 -8
  68. package/packages/components/process/src/attchlist-upload.vue +0 -585
  69. package/packages/components/process/src/operation/backNode.vue +0 -141
  70. package/packages/components/process/src/operation/cancel.vue +0 -170
  71. package/packages/components/process/src/operation/ccTask.vue +0 -170
  72. package/packages/components/process/src/operation/complete.vue +0 -224
  73. package/packages/components/process/src/operation/counterSign.vue +0 -178
  74. package/packages/components/process/src/operation/delegateTask.vue +0 -168
  75. package/packages/components/process/src/operation/restart.vue +0 -172
  76. package/packages/components/process/src/popup.vue +0 -230
  77. package/packages/components/process/src/process.vue +0 -900
  78. package/packages/components/process/src/tab.vue +0 -459
  79. package/packages/components/process/src/tip.vue +0 -207
  80. package/packages/index.js +0 -4
  81. /package/{packages/components/process/theme → src/assets}/img/add-file.png +0 -0
  82. /package/{packages/components/process/theme → src/assets}/img/del.png +0 -0
  83. /package/{packages/components/process/theme → src/assets}/img/doc.png +0 -0
  84. /package/{packages/components/process/theme → src/assets}/img/file.png +0 -0
  85. /package/{packages/components/process/theme → src/assets}/img/image.png +0 -0
  86. /package/{packages/components/process/theme → src/assets}/img/pdf.png +0 -0
  87. /package/{packages/components/process/theme → src/assets}/img/xls.png +0 -0
  88. /package/{packages/components/process/theme → src/assets}/img/zip.png +0 -0
  89. /package/{packages/components/process/theme → src/assets}/status/error.png +0 -0
  90. /package/{packages/components/process/theme → src/assets}/status/loading.png +0 -0
  91. /package/{packages/components/process/theme → src/assets}/status/success.png +0 -0
  92. /package/{packages/components/process/src → src/packages/process}/operation/index.js +0 -0
@@ -0,0 +1,88 @@
1
+ .textnone {
2
+ text-align: center;
3
+ margin-top: 30px;
4
+ color: #999;
5
+ font-size: 14px;
6
+ }
7
+
8
+ .viewTrack {
9
+ width: 100%;
10
+ height: 48px;
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ font-size: 15px;
15
+ color: #1389ff;
16
+ }
17
+
18
+ .person-views .views-items {
19
+ width: 100%;
20
+ height: 48px;
21
+ display: flex;
22
+ justify-content: center;
23
+ align-items: center;
24
+ font-size: 15px;
25
+ display: flex;
26
+ justify-content: space-between;
27
+ align-items: center;
28
+ padding: 0 20px;
29
+ box-sizing: border-box;
30
+ }
31
+
32
+ .person-views .views-items-set {
33
+ width: 50%;
34
+ display: flex;
35
+ flex-basis: fit-content;
36
+ align-items: center;
37
+ }
38
+
39
+ .person-views .views-items-set-btn {
40
+ color: #1389ff;
41
+ margin-left: 10px;
42
+ min-width: 30px;
43
+ }
44
+
45
+ .person-views .views-items-name {
46
+ width: 50%;
47
+ }
48
+
49
+ .person-views .views-items-name--re {
50
+ color: #ee0000;
51
+ }
52
+
53
+ .person-views-white {
54
+ text-align: center;
55
+ }
56
+
57
+ .person-btn {
58
+ display: flex;
59
+ min-height: 60px;
60
+ padding-top: 5px;
61
+ background: #fff;
62
+ border-top: 1px solid #dddddf9e;
63
+ box-sizing: border-box;
64
+ justify-content: center;
65
+ align-items: center;
66
+ flex-direction: row-reverse;
67
+ position: fixed;
68
+ bottom: 0;
69
+ width: 100%;
70
+ }
71
+
72
+ .person-btn .top-button {
73
+ width: 100%;
74
+ border-radius: 20px;
75
+ height: 36px;
76
+ background-color: #3c9cff;
77
+ color: #fff;
78
+ font-size: 14px;
79
+ justify-content: center;
80
+ display: flex;
81
+ align-items: center;
82
+ margin: 0 5px;
83
+ }
84
+
85
+ ::v-deep .departPerson-main {
86
+ width: 100% !important;
87
+ height: 100% !important;
88
+ }
@@ -0,0 +1,154 @@
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
+ :className="`sumbmitPopup-index sumbmitPopup-index-sumbit`"
13
+ >
14
+ <TopDownSelect
15
+ :option="option"
16
+ @change="handleChange"
17
+ :defaultValue="selectDefaultValue"
18
+ ></TopDownSelect>
19
+ <div
20
+ class="viewTrack"
21
+ v-if="checkedItem.id"
22
+ @click="taskurlshow = true"
23
+ >
24
+ 查看流程图
25
+ </div>
26
+ <div class="person-views" v-if="firstPerson && firstPerson.length">
27
+ <div class="views-items" v-for="(v, i) in firstPerson">
28
+ <div class="views-items-name">
29
+ {{ v.name }}
30
+ <span class="views-items-name--re">*</span>
31
+ </div>
32
+ <div class="views-items-set">
33
+ <div v-if="partNode[v.id] && partNode[v.id].length">
34
+ <span v-for="(name, index) in partNode[v.id]">
35
+ {{
36
+ index >= 3
37
+ ? ""
38
+ : index == 0
39
+ ? name
40
+ : `,${name}`
41
+ }}
42
+ </span>
43
+ <span v-if="partNode[v.id].length > 3"
44
+ >...等{{ partNode[v.id].length }}人</span
45
+ >
46
+ </div>
47
+ <div v-else-if="v.routeTxt && v.routeTxt.userNames">
48
+ {{ v.routeTxt.userNames }}
49
+ </div>
50
+ <div
51
+ v-if="
52
+ v.humanPerformerName == '固定账户' ||
53
+ v.humanPerformerName == '与流程申请人相关'
54
+ "
55
+ ></div>
56
+ <div
57
+ class="views-items-set-btn"
58
+ @click="handleOpenPerson(v)"
59
+ v-else
60
+ >
61
+ 设置
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ <div class="person-views" v-if="personList && personList.length">
67
+ <div class="views-items" v-for="(v, i) in personList">
68
+ <div class="views-items-name">
69
+ {{ v.name }}
70
+ </div>
71
+ <div class="views-items-set">
72
+ <div v-if="partNode[v.id] && partNode[v.id].length">
73
+ <span v-for="(name, index) in partNode[v.id]">
74
+ {{
75
+ index >= 3
76
+ ? ""
77
+ : index == 0
78
+ ? name
79
+ : `,${name}`
80
+ }}
81
+ </span>
82
+ <span v-if="partNode[v.id].length > 3"
83
+ >...等{{ partNode[v.id].length }}人</span
84
+ >
85
+ </div>
86
+ <div v-else></div>
87
+ <div
88
+ class="views-items-set-btn"
89
+ @click="handleOpenPerson(v)"
90
+ >
91
+ 设置
92
+ </div>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ <div
97
+ class="person-views-white"
98
+ v-if="
99
+ !firstPerson &&
100
+ !firstPerson.length &&
101
+ !personList &&
102
+ !personList.length
103
+ "
104
+ >
105
+ 无需设置
106
+ </div>
107
+ <div class="person-btn">
108
+ <div
109
+ class="top-button"
110
+ style="background-color: #3c9cff; color: #fff;"
111
+ @click="handleSumbit"
112
+ >
113
+ 送审
114
+ </div>
115
+ </div>
116
+ </TopPopup>
117
+ <TopPopup
118
+ v-bind:visible="visiblePerson"
119
+ v-on:update:visible="(val) => (visiblePerson = val)"
120
+ ref="TopPopup"
121
+ titleText="选人"
122
+ :isDrawer="true"
123
+ :isIndex="199"
124
+ >
125
+ <departPerson
126
+ :isTitle="false"
127
+ :visible.sync="visiblePerson"
128
+ v-bind="entity"
129
+ @callback="handleCallback"
130
+ @cancel="handleCancel"
131
+ >
132
+ </departPerson>
133
+ </TopPopup>
134
+ <PreviewImage
135
+ :images="trackUrl"
136
+ v-bind:visible="taskurlshow"
137
+ v-on:update:visible="(val) => (taskurlshow = val)"
138
+ :indexd="0"
139
+ :isOne="true"
140
+ :isStyle="isStyle"
141
+ >
142
+ </PreviewImage>
143
+ <TopTips
144
+ ref="topTips"
145
+ :text="textTips"
146
+ :statusTips="statusTips"
147
+ :type="typeTips"
148
+ />
149
+ </div>
150
+ </template>
151
+ <script src="./index.js"></script>
152
+ <style lang="scss" scoped>
153
+ @import "./index.scss";
154
+ </style>
@@ -0,0 +1,236 @@
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: "b",
69
+ },
70
+ {
71
+ label: "审批记录",
72
+ key: "c",
73
+ type: "default",
74
+ slot: "c",
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: "b",
90
+ },
91
+ {
92
+ label: "审批记录",
93
+ key: "c",
94
+ type: "default",
95
+ slot: "c",
96
+ },
97
+ ],
98
+ // 绑定tab块
99
+ label: document.getElementsByClassName("tops-tab-header-items"),
100
+
101
+ // 侧边弹窗
102
+ visible: false,
103
+ inList: [],
104
+ visibleTack: false,
105
+ trackListss: [],
106
+ };
107
+ },
108
+ watch: {
109
+ // 接受外部数组,渲染tab
110
+ tapList: {
111
+ handler(val, preVal) {
112
+ if (!this.selfTapList.length) {
113
+ this.isTapList = [].concat(this.defaultTabList);
114
+ if (val.length > 0) {
115
+ /* return [] */
116
+ val.forEach((v, i) => {
117
+ if (v.sort && v.sort > 1) {
118
+ this.isTapList.splice(v.sort - 1, 0, v);
119
+ } else if (v.sort == 1) {
120
+ this.isTapList.unshift(v);
121
+ } else {
122
+ this.isTapList.push(v);
123
+ }
124
+ });
125
+ }
126
+ this.active = this.isTapList[0].key;
127
+ // console.log("isTapList", this.isTapList);
128
+ }
129
+ },
130
+ immediate: true,
131
+ deep: true,
132
+ },
133
+ // 自定义tab,覆盖默认项
134
+ selfTapList: {
135
+ handler(val, preVal) {
136
+ if (val.length) {
137
+ this.isTapList = [].concat(val);
138
+ this.active = this.isTapList[0].key;
139
+ }
140
+ },
141
+ immediate: true,
142
+ deep: true,
143
+ },
144
+ // 流程图链接
145
+ track: {
146
+ handler(val, preVal) {
147
+ if (val) {
148
+ console.log("流程图:::", val);
149
+ this.trackUrl = val;
150
+ if (window.location.protocol == "https:") {
151
+ this.trackUrl = this.trackUrl.replace(
152
+ "http://59.53.91.230:8088/",
153
+ "https://kq.ddzg.cn:8093/"
154
+ );
155
+ this.trackUrl = this.trackUrl.replace(
156
+ "http://59.53.91.231:8088/",
157
+ "https://qt.ddzg.cn:2119/"
158
+ );
159
+ this.trackUrl = this.trackUrl.replace(
160
+ "http://121.40.143.183:80/",
161
+ "https://www.ddzg.cn:2119/"
162
+ );
163
+ this.trackUrl = this.trackUrl.replace(
164
+ "http://121.40.143.183/",
165
+ "https://www.ddzg.cn:2119/"
166
+ );
167
+ }
168
+ }
169
+ },
170
+ immediate: true,
171
+ deep: true,
172
+ },
173
+ // 审批记录列表
174
+ taskComment: {
175
+ handler(val, preVal) {
176
+ if (val) {
177
+ this.taskCommentList = val;
178
+ }
179
+ },
180
+ immediate: true,
181
+ deep: true,
182
+ },
183
+ trackList: {
184
+ handler(val, preVal) {
185
+ if (val) {
186
+ this.trackListss = val;
187
+ }
188
+ },
189
+ immediate: true,
190
+ deep: true,
191
+ },
192
+ },
193
+
194
+ mounted() {
195
+ // 渲染后初始化为第一个位置
196
+ this.tabAnimation(0);
197
+ },
198
+
199
+ methods: {
200
+ // 选中
201
+ handleActive(e, i) {
202
+ if (e === this.active) {
203
+ return;
204
+ }
205
+
206
+ this.active = e;
207
+ this.tabAnimation(i);
208
+ },
209
+
210
+ // tab切换动画
211
+ tabAnimation(i) {
212
+ if (this.label.length) {
213
+ let doc = document.getElementsByClassName("bottom-line")[0];
214
+ let left;
215
+ if (doc.offsetWidth < this.label[i].offsetWidth - 10) {
216
+ let num =
217
+ (this.label[i].offsetWidth - doc.offsetWidth - 10) / 2;
218
+ left = `${this.label[i].offsetLeft + num}px`;
219
+ } else if (doc.offsetWidth > this.label[i].offsetWidth - 10) {
220
+ let num =
221
+ (doc.offsetWidth - this.label[i].offsetWidth + 10) / 2;
222
+ left = `${this.label[i].offsetLeft - num}px`;
223
+ } else {
224
+ left = `${this.label[i].offsetLeft}px`;
225
+ }
226
+ doc.style.transition = ".3s";
227
+ doc.style.transform = `translateX(${left})`;
228
+ }
229
+ },
230
+ // 附件列表
231
+ viewList(val) {
232
+ this.visible = true;
233
+ this.inList = val;
234
+ },
235
+ },
236
+ });
@@ -0,0 +1,177 @@
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:nth-last-child(2) {
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
+ overflow-y: auto;
78
+ }
79
+
80
+ .seal-list__item {
81
+ padding: 6px 10px;
82
+ margin: 10px;
83
+ margin-bottom: 0px;
84
+ padding-bottom: 0px;
85
+ background-color: #ffffff;
86
+ border-radius: 10px;
87
+ box-sizing: border-box;
88
+ }
89
+
90
+ .seal-list__item:last-child {
91
+ margin-bottom: 15px;
92
+ }
93
+
94
+ .seal-list__item .seal-list__item--header {
95
+ margin-bottom: 6px;
96
+ display: flex;
97
+ align-items: center;
98
+ }
99
+
100
+ .seal-list__item .seal-list__item--header span:first-of-type {
101
+ font-size: 15px;
102
+ margin-right: 6px;
103
+ font-weight: bold;
104
+ }
105
+
106
+ .seal-list__item .seal-list__item--option {
107
+ display: flex;
108
+ justify-content: space-between;
109
+ align-items: center;
110
+ font-size: 14px;
111
+ padding: 10px 0;
112
+ color: #333;
113
+ }
114
+
115
+ .seal-list__item .seal-list__item--option span:last-child {
116
+ max-width: 144px;
117
+ /* overflow: hidden;
118
+ white-space: nowrap;
119
+ text-overflow: ellipsis; */
120
+ color: #888;
121
+ }
122
+
123
+ .seal-list__item .seal-list__item--attch {
124
+ font-size: 14px;
125
+ padding: 10px 0;
126
+ color: #333;
127
+ text-align: right;
128
+ color: #1389ff;
129
+ }
130
+
131
+ .seal-list__item .seal-list__item--actions {
132
+ margin-top: 12px;
133
+ position: relative;
134
+ display: flex;
135
+ justify-content: space-around;
136
+ align-items: center;
137
+ }
138
+
139
+ .seal-list__item .seal-list__item--actions ::before {
140
+ content: "";
141
+ top: 0;
142
+ width: 100%;
143
+ transform: scaleY(0.5);
144
+ transform-origin: top;
145
+ border-top: 1px #e8e8e8 solid;
146
+ position: absolute;
147
+ }
148
+
149
+ .seal-list__item .seal-list__item--actions .van-button {
150
+ width: 50%;
151
+ }
152
+
153
+ .seal-list__item .seal-list__item--actions .van-button ::after {
154
+ content: "";
155
+ height: 60%;
156
+ border-left: 1px #e8e8e8 solid;
157
+ position: absolute;
158
+ left: 100%;
159
+ top: 50%;
160
+ transform: translate(-50%, -50%) scaleX(0.5);
161
+ transform-origin: left;
162
+ }
163
+
164
+ .seal-list__item .seal-list__item--actions .van-button:last-child ::after {
165
+ content: none;
166
+ }
167
+
168
+ .textnone {
169
+ text-align: center;
170
+ margin-top: 30px;
171
+ color: #999;
172
+ font-size: 14px;
173
+ }
174
+
175
+ .tops-tab-body-taskcommentlist{
176
+ overflow-y: auto;
177
+ }