ui-process-h5 0.1.40 → 1.0.6

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 (89) hide show
  1. package/README.md +171 -18
  2. package/package.json +21 -51
  3. package/build/configure/README.md +0 -171
  4. package/build/configure/package.json +0 -27
  5. package/index.html +0 -12
  6. package/src/App.vue +0 -151
  7. package/src/assets/font-icon/iconfont.scss +0 -57
  8. package/src/assets/font-icon/iconfont.ttf +0 -0
  9. package/src/assets/img/add-file.png +0 -0
  10. package/src/assets/img/arrow-right.png +0 -0
  11. package/src/assets/img/arrow.png +0 -0
  12. package/src/assets/img/check.png +0 -0
  13. package/src/assets/img/del.png +0 -0
  14. package/src/assets/img/doc.png +0 -0
  15. package/src/assets/img/file.png +0 -0
  16. package/src/assets/img/image.png +0 -0
  17. package/src/assets/img/pdf.png +0 -0
  18. package/src/assets/img/xls.png +0 -0
  19. package/src/assets/img/zip.png +0 -0
  20. package/src/assets/js/auth.js +0 -41
  21. package/src/assets/js/errorCode.js +0 -6
  22. package/src/assets/js/message.js +0 -352
  23. package/src/assets/js/request.js +0 -90
  24. package/src/assets/js/toast.js +0 -239
  25. package/src/assets/js/top.js +0 -229
  26. package/src/assets/js/utils.js +0 -82
  27. package/src/assets/js/vuePopper.js +0 -123
  28. package/src/assets/query.png +0 -0
  29. package/src/assets/status/error.png +0 -0
  30. package/src/assets/status/loading.png +0 -0
  31. package/src/assets/status/success.png +0 -0
  32. package/src/main.js +0 -15
  33. package/src/packages/attchUpload/index.js +0 -371
  34. package/src/packages/attchUpload/index.scss +0 -136
  35. package/src/packages/attchUpload/index.vue +0 -173
  36. package/src/packages/downSelect/index.js +0 -81
  37. package/src/packages/downSelect/index.scss +0 -82
  38. package/src/packages/downSelect/index.vue +0 -54
  39. package/src/packages/index.js +0 -6
  40. package/src/packages/popup/index.js +0 -61
  41. package/src/packages/popup/index.scss +0 -174
  42. package/src/packages/popup/index.vue +0 -79
  43. package/src/packages/preview/index.js +0 -36
  44. package/src/packages/preview/index.vue +0 -15
  45. package/src/packages/previewImage/index.js +0 -158
  46. package/src/packages/previewImage/index.scss +0 -59
  47. package/src/packages/previewImage/index.vue +0 -32
  48. package/src/packages/process/index.js +0 -679
  49. package/src/packages/process/index.scss +0 -164
  50. package/src/packages/process/index.vue +0 -189
  51. package/src/packages/process/operation/backNode.vue +0 -393
  52. package/src/packages/process/operation/cancel.vue +0 -399
  53. package/src/packages/process/operation/ccTask.vue +0 -461
  54. package/src/packages/process/operation/complete.vue +0 -488
  55. package/src/packages/process/operation/counterSign.vue +0 -485
  56. package/src/packages/process/operation/delegateTask.vue +0 -480
  57. package/src/packages/process/operation/index.js +0 -9
  58. package/src/packages/process/operation/restart.vue +0 -305
  59. package/src/packages/submitPopup/index.js +0 -296
  60. package/src/packages/submitPopup/index.scss +0 -83
  61. package/src/packages/submitPopup/index.vue +0 -138
  62. package/src/packages/tab/index.js +0 -207
  63. package/src/packages/tab/index.scss +0 -176
  64. package/src/packages/tab/index.vue +0 -155
  65. package/src/packages/tip/index.js +0 -74
  66. package/src/packages/tip/index.scss +0 -82
  67. package/src/packages/tip/index.vue +0 -57
  68. package/src/packages/viewAttchList/index.js +0 -132
  69. package/src/packages/viewAttchList/index.scss +0 -76
  70. package/src/packages/viewAttchList/index.vue +0 -112
  71. package/src/style.css +0 -80
  72. package/ui-process-h5/README.md +0 -171
  73. package/ui-process-h5/package.json +0 -27
  74. package/ui-process-h5/scripts/postinstall.mjs +0 -14
  75. package/ui-process-h5/scripts/switch-cli.mjs +0 -4
  76. package/ui-process-h5/scripts/utils.mjs +0 -60
  77. package/vite.config.ts +0 -78
  78. /package/{build/scripts → scripts}/postinstall.mjs +0 -0
  79. /package/{build/scripts → scripts}/switch-cli.mjs +0 -0
  80. /package/{build/scripts → scripts}/utils.mjs +0 -0
  81. /package/{ui-process-h5/v2 → v2}/style.css +0 -0
  82. /package/{ui-process-h5/v2 → v2}/ui-process-h5.js +0 -0
  83. /package/{ui-process-h5/v2 → v2}/ui-process-h5.umd.cjs +0 -0
  84. /package/{ui-process-h5/v2.7 → v2.7}/style.css +0 -0
  85. /package/{ui-process-h5/v2.7 → v2.7}/ui-process-h5.js +0 -0
  86. /package/{ui-process-h5/v2.7 → v2.7}/ui-process-h5.umd.cjs +0 -0
  87. /package/{ui-process-h5/v3 → v3}/style.css +0 -0
  88. /package/{ui-process-h5/v3 → v3}/ui-process-h5.js +0 -0
  89. /package/{ui-process-h5/v3 → v3}/ui-process-h5.umd.cjs +0 -0
@@ -1,138 +0,0 @@
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>
@@ -1,207 +0,0 @@
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
- });
@@ -1,176 +0,0 @@
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
- }
@@ -1,155 +0,0 @@
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>