ui-process-h5 0.1.27 → 0.1.30

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.
package/package.json CHANGED
@@ -1,74 +1,72 @@
1
- {
2
- "name": "ui-process-h5",
3
- "private": false,
4
- "description": "流程组件",
5
- "version": "0.1.27",
6
- "type": "module",
7
- "scripts": {
8
- "dev": "vite",
9
- "build": "vue-tsc && vite build",
10
- "preview": "vite preview"
11
- },
12
- "files": [
13
- "lib/*",
14
- "packages/*",
15
- "Readme.md",
16
- "package.json"
17
- ],
18
- "publicConfig": {
19
- "registry": "http://registry.npmjs.org/"
20
- },
21
- "main": "./lib/design.umd.js",
22
- "module": "./lib/design.mjs",
23
- "exports": {
24
- ".": {
25
- "import": "./lib/design.mjs",
26
- "require": "./lib/design.umd.js"
27
- },
28
- "./lib/style.css": "./lib/style.css"
29
- },
30
- "dependencies": {
31
- "axios": "^1.3.6",
32
- "dayjs": "^1.11.7",
33
- "less-loader": "^11.1.0",
34
- "sass": "^1.62.0",
35
- "vue": "^3.2.47",
36
- "vue-demi": "^0.14.0"
37
- },
38
- "devDependencies": {
39
- "@commitlint/cli": "^17.0.0",
40
- "@commitlint/config-conventional": "^17.0.0",
41
- "@types/node": "^18.15.12",
42
- "@types/sass": "^1.43.1",
43
- "@typescript-eslint/eslint-plugin": "^5.27.0",
44
- "@typescript-eslint/parser": "^5.27.0",
45
- "@vitejs/plugin-vue": "^4.1.0",
46
- "@vitejs/plugin-vue-jsx": "^2.0.0",
47
- "axios": "^1.3.5",
48
- "chalk": "^4.1.2",
49
- "commitizen": "^4.2.4",
50
- "cross-env": "^7.0.3",
51
- "cz-conventional-changelog": "^3.3.0",
52
- "eslint": "^8.17.0",
53
- "eslint-config-prettier": "^8.5.0",
54
- "eslint-define-config": "^1.5.0",
55
- "eslint-plugin-prettier": "^4.0.0",
56
- "eslint-plugin-vue": "^9.1.0",
57
- "good-storage": "^1.1.1",
58
- "husky": "^8.0.1",
59
- "js-cookie": "^3.0.1",
60
- "prettier": "^2.6.2",
61
- "rimraf": "^3.0.2",
62
- "sass": "^1.49.7",
63
- "standard-version": "^9.5.0",
64
- "typescript": "^4.9.3",
65
- "vite": "^4.2.0",
66
- "vite-plugin-dts": "^1.2.0",
67
- "vite-plugin-md": "^0.15.0",
68
- "vue": "^3.2.47",
69
- "vue-tsc": "^1.2.0"
70
- },
71
- "engines": {
72
- "node": ">=16.0.0"
73
- }
74
- }
1
+ {
2
+ "name": "ui-process-h5",
3
+ "private": false,
4
+ "description": "流程组件",
5
+ "version": "0.1.30",
6
+ "type": "module",
7
+ "scripts": {
8
+ "dev": "vite",
9
+ "build": "vue-tsc && vite build",
10
+ "preview": "vite preview"
11
+ },
12
+ "files": [
13
+ "packages/*",
14
+ "Readme.md",
15
+ "package.json"
16
+ ],
17
+ "publicConfig": {
18
+ "registry": "http://registry.npmjs.org/"
19
+ },
20
+ "main": "./packages/index.ts",
21
+ "module": "./packages/index.ts",
22
+ "exports": {
23
+ ".": {
24
+ "import": "./packages/index.ts",
25
+ "require": "./packages/index.ts"
26
+ }
27
+ },
28
+ "dependencies": {
29
+ "axios": "^1.3.6",
30
+ "dayjs": "^1.11.7",
31
+ "less-loader": "^11.1.0",
32
+ "sass": "^1.62.0",
33
+ "vue": "^3.2.47",
34
+ "vue-demi": "^0.14.0"
35
+ },
36
+ "devDependencies": {
37
+ "@commitlint/cli": "^17.0.0",
38
+ "@commitlint/config-conventional": "^17.0.0",
39
+ "@types/node": "^18.15.12",
40
+ "@types/sass": "^1.43.1",
41
+ "@typescript-eslint/eslint-plugin": "^5.27.0",
42
+ "@typescript-eslint/parser": "^5.27.0",
43
+ "@vitejs/plugin-vue": "^4.1.0",
44
+ "@vitejs/plugin-vue-jsx": "^2.0.0",
45
+ "axios": "^1.3.5",
46
+ "chalk": "^4.1.2",
47
+ "commitizen": "^4.2.4",
48
+ "cross-env": "^7.0.3",
49
+ "cz-conventional-changelog": "^3.3.0",
50
+ "eslint": "^8.17.0",
51
+ "eslint-config-prettier": "^8.5.0",
52
+ "eslint-define-config": "^1.5.0",
53
+ "eslint-plugin-prettier": "^4.0.0",
54
+ "eslint-plugin-vue": "^9.1.0",
55
+ "good-storage": "^1.1.1",
56
+ "husky": "^8.0.1",
57
+ "js-cookie": "^3.0.1",
58
+ "prettier": "^2.6.2",
59
+ "rimraf": "^3.0.2",
60
+ "sass": "^1.49.7",
61
+ "standard-version": "^9.5.0",
62
+ "typescript": "^4.9.3",
63
+ "vite": "^4.2.0",
64
+ "vite-plugin-dts": "^1.2.0",
65
+ "vite-plugin-md": "^0.15.0",
66
+ "vue": "^3.2.47",
67
+ "vue-tsc": "^1.2.0"
68
+ },
69
+ "engines": {
70
+ "node": ">=16.0.0"
71
+ }
72
+ }
@@ -1,5 +1,4 @@
1
- import TopTab from "./components/tab";
2
1
  import TopProcess from "./components/process";
3
2
 
4
- export default [TopTab, TopProcess];
5
- export { TopTab, TopProcess };
3
+ export default [TopProcess];
4
+ export { TopProcess };
@@ -1,4 +1,4 @@
1
- import { App } from "vue";
1
+ import { App } from "vue-demi";
2
2
  import TopProcess from "./src/index.vue";
3
3
 
4
4
  TopProcess.install = function (app: App) {
@@ -8,7 +8,7 @@
8
8
  </template>
9
9
  <script>
10
10
  import { defineComponent, ref, watch, computed, onMounted } from "vue-demi";
11
- export default {
11
+ export default defineComponent({
12
12
  name: "TopButton",
13
13
  props: {
14
14
  type: { default: "default", type: String },
@@ -38,7 +38,7 @@ export default {
38
38
  style,
39
39
  };
40
40
  },
41
- }
41
+ });
42
42
  </script>
43
43
  <style scoped>
44
44
  .top-button {
@@ -84,12 +84,12 @@
84
84
 
85
85
  <script lang="ts">
86
86
  import { defineComponent, ref, watch, computed } from "vue-demi";
87
- import TopTab from "../../tab";
88
- import TopPopup from "../../popup";
89
- import TopButton from "../../button";
87
+ import TopTab from "./tab.vue";
88
+ import TopPopup from "./popup.vue";
89
+ import TopButton from "./button.vue";
90
90
  // import { getProcessStatus } from "../../utils/request/api";
91
91
 
92
- export default {
92
+ export default defineComponent({
93
93
  name: "TopProcess",
94
94
  components: {
95
95
  TopTab,
@@ -103,8 +103,9 @@ export default {
103
103
  taskId: { require: true, default: "", type: String },
104
104
  isAdditional: { require: false, default: false, type: Boolean },
105
105
  isView: { default: false, type: Boolean },
106
+ userId: { default: "", type: String}
106
107
  },
107
- setup(props: any) {
108
+ setup(props) {
108
109
  const processStatus = ref<any>({});
109
110
 
110
111
  const TopPopup1 = ref<any>();
@@ -202,7 +203,7 @@ export default {
202
203
  }
203
204
  );
204
205
 
205
- /* getProcessStatus({
206
+ /* getProcessStatus({
206
207
  processInstId: "4ac28800-7056-483b-8d38-a4932daf055b",
207
208
  }).then((res) => {
208
209
  console.log("res", res);
@@ -348,7 +349,7 @@ export default {
348
349
  return "#1389FF";
349
350
  },
350
351
  },
351
- }
352
+ });
352
353
  </script>
353
354
 
354
355
  <style scoped>
@@ -24,10 +24,10 @@
24
24
  @click="isMaskClose && handleClose()"
25
25
  ></div>
26
26
  </template>
27
- <script lang="ts">
27
+ <script>
28
28
  import { defineComponent, ref, watch, computed, onMounted } from "vue-demi";
29
29
 
30
- export default {
30
+ export default defineComponent({
31
31
  name: "TopPopup",
32
32
  props: {
33
33
  titleText: { default: "top-popup", type: String },
@@ -35,11 +35,11 @@ export default {
35
35
  comfigText: { default: "确定", type: String },
36
36
  comfig: { default: null, type: Function },
37
37
  cancel: { default: null, type: Function },
38
- isMask: { require: false, default: true, type: Boolean },
39
- isMaskClose: { require: false, default: true, type: Boolean },
38
+ isMask: { default: true, type: Boolean },
39
+ isMaskClose: { default: true, type: Boolean },
40
40
  },
41
41
  setup(props) {
42
- const show = ref<boolean>(false);
42
+ const show = ref(false);
43
43
 
44
44
  const handleOpen = () => {
45
45
  show.value = true;
@@ -70,7 +70,7 @@ export default {
70
70
  show,
71
71
  };
72
72
  },
73
- }
73
+ });
74
74
  </script>
75
75
  <style scoped>
76
76
  .top-popup {
@@ -92,11 +92,11 @@
92
92
  </div>
93
93
  </template>
94
94
 
95
- <script lang="ts">
95
+ <script >
96
96
  import { defineComponent, ref, watch, onMounted, computed } from "vue-demi";
97
97
  // import { getProcessStatus } from "../../utils/request/api";
98
98
 
99
- export default {
99
+ export default defineComponent({
100
100
  name: "TopTab",
101
101
  props: {
102
102
  /**
@@ -117,14 +117,14 @@ export default {
117
117
  default: () => [],
118
118
  },
119
119
  },
120
- setup(props: any) {
120
+ setup(props) {
121
121
  // 流程图
122
- const trackUrl = ref<string>(
122
+ const trackUrl = ref(
123
123
  "http://59.53.91.231:8088/portal/r/w?sid=6f714ec1-7570-4525-ac51-b092402d8295&cmd=CLIENT_BPM_FORM_TRACK_OPEN&processInstId=1f6e7196-e1ea-428e-b295-aa23a54a2402&supportCanvas=true&formInfo="
124
124
  );
125
125
 
126
126
  // 审批信息
127
- const taskCommentList = ref<any>([
127
+ const taskCommentList = ref([
128
128
  {
129
129
  actionName: "提交",
130
130
  activityName: "部门负责人",
@@ -143,10 +143,10 @@ export default {
143
143
  ]);
144
144
 
145
145
  // 选中
146
- const active = ref<string>("");
146
+ const active = ref("");
147
147
 
148
148
  // tab 渲染
149
- const defaultTabList = ref<any>([
149
+ const defaultTabList = ref([
150
150
  {
151
151
  label: "基本信息",
152
152
  key: "a",
@@ -167,7 +167,7 @@ export default {
167
167
  },
168
168
  ]);
169
169
 
170
- const isTapList = ref<any>([
170
+ const isTapList = ref([
171
171
  {
172
172
  label: "基本信息",
173
173
  key: "a",
@@ -188,13 +188,13 @@ export default {
188
188
  },
189
189
  ]);
190
190
 
191
- const label = ref<any>();
191
+ const label = ref();
192
192
 
193
193
  // taskNode taskObj
194
194
 
195
195
  /* method */
196
196
  // 选中方法
197
- const handleActive = (e: string, i: number) => {
197
+ const handleActive = (e, i) => {
198
198
  if (e === active.value) {
199
199
  return;
200
200
  }
@@ -203,9 +203,9 @@ export default {
203
203
  tabAnimation(i);
204
204
  };
205
205
 
206
- const tabAnimation = (i: number) => {
206
+ const tabAnimation = (i) => {
207
207
  if (label.value.length) {
208
- let doc = <any>(
208
+ let doc = (
209
209
  document.getElementsByClassName("bottom-line")[0]
210
210
  );
211
211
  let left;
@@ -250,7 +250,7 @@ export default {
250
250
  isTapList.value = [].concat(defaultTabList.value);
251
251
  if (val.length > 0) {
252
252
  /* return [] */
253
- val.forEach((v: any, i: number) => {
253
+ val.forEach((v, i) => {
254
254
  if (v.sort && v.sort > 1) {
255
255
  isTapList.value.splice(v.sort - 1, 0, v);
256
256
  } else if (v.sort == 1) {
@@ -287,7 +287,7 @@ export default {
287
287
  trackUrl,
288
288
  };
289
289
  },
290
- };
290
+ });
291
291
  </script>
292
292
 
293
293
  <style scoped>
@@ -0,0 +1,11 @@
1
+ import request from "./request";
2
+
3
+ const proxyStr = "/prod-api/aws";
4
+
5
+ export function getProcessStatus(query: any) {
6
+ return request({
7
+ url: proxyStr + "/pis/getProcessStatus",
8
+ method: "get",
9
+ params: query,
10
+ });
11
+ }
@@ -0,0 +1,52 @@
1
+
2
+ export const ACCESS_TOKEN :string
3
+ export const SUBJECTID :string
4
+ export const TASK_JSON :string
5
+
6
+ /**
7
+ * 设置cookie
8
+ * @param key
9
+ * @param value
10
+ * @param options
11
+ * @returns {*}
12
+ */
13
+ export function saveCookie(key: string, value: string, options: any): void
14
+
15
+ /**
16
+ * 获取cookie
17
+ * @param key cookie的key
18
+ * @param defaultValue
19
+ * @returns {*}
20
+ */
21
+ export function loadCookie(key: string, defaultValue: string): string
22
+
23
+
24
+ /**
25
+ * 删除cookie
26
+ * @param key
27
+ * @returns {string}
28
+ */
29
+ export function removeCookie (key: string): string
30
+
31
+
32
+ /**
33
+ * 设置本地存储
34
+ * @param key
35
+ * @param value
36
+ * @returns {*}
37
+ */
38
+ export function saveStorage (key: string, value: string) : string
39
+
40
+ /**
41
+ * 获取本地存储
42
+ * @param key
43
+ * @param defaultValue
44
+ * @returns {*}
45
+ */
46
+ export function loadStorage (key: string, defaultValue: string) : string
47
+ /**
48
+ * 删除本地存储
49
+ * @param key
50
+ * @returns {string}
51
+ */
52
+ export function removeStorage (key: string) : string
@@ -0,0 +1,99 @@
1
+ import Cookies from 'js-cookie'
2
+ import storage from 'good-storage'
3
+
4
+ export const ACCESS_TOKEN = 'Access_Token'// accessToken String
5
+ export const SUBJECTID = 'SUBJECTID'// accessToken String
6
+ export const TASK_JSON = "TASK_JSON"
7
+ /**
8
+ * 设置cookie
9
+ * @param key
10
+ * @param value
11
+ * @param options
12
+ * @returns {*}
13
+ */
14
+ export function saveCookie(key, value, options) {
15
+ Cookies.set(key, value, options)
16
+ return value
17
+ }
18
+
19
+ /**
20
+ * 获取cookie
21
+ * @param key
22
+ * @param defaultValue
23
+ * @returns {*}
24
+ */
25
+ export function loadCookie(key, defaultValue) {
26
+ return Cookies.get(key) || defaultValue
27
+ }
28
+
29
+ /**
30
+ * 删除cookie
31
+ * @param key
32
+ * @returns {string}
33
+ */
34
+ export function removeCookie(key) {
35
+ Cookies.remove(key)
36
+ return ''
37
+ }
38
+
39
+ /**
40
+ * 设置本地存储
41
+ * @param key
42
+ * @param value
43
+ * @returns {*}
44
+ */
45
+ export function saveStorage(key, value) {
46
+ storage.set(key, value)
47
+ return value
48
+ }
49
+
50
+ /**
51
+ * 获取本地存储
52
+ * @param key
53
+ * @param defaultValue
54
+ * @returns {*}
55
+ */
56
+ export function loadStorage(key, defaultValue) {
57
+ return storage.get(key, defaultValue)
58
+ }
59
+
60
+ /**
61
+ * 删除本地存储
62
+ * @param key
63
+ * @returns {string}
64
+ */
65
+ export function removeStorage(key) {
66
+ storage.remove(key)
67
+ return ''
68
+ }
69
+
70
+ /**
71
+ * 保存会话存储
72
+ * @param key
73
+ * @param value
74
+ * @returns {*}
75
+ */
76
+ export function saveSessionStorage(key, value) {
77
+ storage.session.set(key, value)
78
+ return value
79
+ }
80
+
81
+ /**
82
+ * 获取会话存储
83
+ * @param key
84
+ * @param defaultValue
85
+ * @returns {*}
86
+ */
87
+ export function loadSessionStorage(key, defaultValue) {
88
+ return storage.session.get(key, defaultValue)
89
+ }
90
+
91
+ /**
92
+ * 删除会话存储
93
+ * @param key
94
+ * @returns {string}
95
+ */
96
+ export function removeSessionStorage(key) {
97
+ storage.session.remove(key)
98
+ return ''
99
+ }
@@ -0,0 +1,61 @@
1
+ import axios, {
2
+ AxiosRequestConfig,
3
+ AxiosResponse,
4
+ AxiosError,
5
+ InternalAxiosRequestConfig,
6
+ } from "axios";
7
+ import { ACCESS_TOKEN, loadStorage } from "./cache";
8
+
9
+ const host = process.env.VUE_APP_BASE_URL;
10
+ // const host = "http://59.53.91.231:2106";
11
+
12
+ axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
13
+
14
+ const opts = {
15
+ baseURL: host,
16
+ timeout: 999999999,
17
+ errorTip: true,
18
+ transformResponse: [
19
+ function (data: any, headers: any) {
20
+ if (typeof data === "string") {
21
+ try {
22
+ data = JSON.parse(data);
23
+ } catch (e) {}
24
+ }
25
+ return data;
26
+ },
27
+ ],
28
+ };
29
+
30
+ const service = axios.create(opts);
31
+
32
+ service.interceptors.request.use((config)=> {
33
+ const isToken = (config.headers || {}).isToken === false;
34
+ if (loadStorage("token", "") && !isToken) {
35
+ config.headers["Authorization"] = "Bearer " + loadStorage("token", ""); // 让每个请求携带自定义token 请根据实际情况自行修改 15c572f2-1fff-4ef2-94dc-728fc8d6fe14
36
+ }
37
+ /* config.headers["Authorization"] =
38
+ "Bearer " + "15c572f2-1fff-4ef2-94dc-728fc8d6fe14"; */
39
+ return config;
40
+ });
41
+
42
+ service.interceptors.response.use((response) => {
43
+ if (Object.prototype.toString.call(response.data) === "[object Blob]") {
44
+ return response;
45
+ }
46
+ const { data, config } = response;
47
+ const { code, success } = data;
48
+ const message = response.data.msg;
49
+ // 增加失败判断
50
+ data.fail = code !== 200 && success !== true;
51
+ if (code === 401) {
52
+ console.log("登录状态已过期");
53
+ return data;
54
+ } else if (code !== 200) {
55
+ console.log("错误");
56
+ return data;
57
+ }
58
+ return data;
59
+ });
60
+
61
+ export default service;
package/lib/design.js DELETED
@@ -1,596 +0,0 @@
1
- import { ref as v, watch as P, onMounted as M, openBlock as l, createElementBlock as r, createElementVNode as s, Fragment as g, renderList as L, normalizeClass as W, toDisplayString as h, createCommentVNode as _, withDirectives as z, renderSlot as k, vShow as H, pushScopeId as q, popScopeId as O, normalizeStyle as A, computed as E, resolveComponent as U, createVNode as j, withCtx as F, createBlock as R, createTextVNode as V } from "vue";
2
- const Y = {
3
- name: "TopTab",
4
- props: {
5
- /**
6
- * 根据参数插入自定义tab
7
- * label:选项卡title
8
- * key:选项卡ID 请勿重复defaultTabList内已拥有的默认key
9
- * type:插槽类型 "slot" "default"
10
- * sort:排序参数,无参数默认插入末尾
11
- * slot:插槽name
12
- */
13
- tapList: {
14
- type: Array,
15
- default: () => []
16
- },
17
- // 自定义tab (传入后 默认tab,tapList,失效)
18
- selfTapList: {
19
- type: Array,
20
- default: () => []
21
- }
22
- },
23
- setup(e) {
24
- const a = v(
25
- "http://59.53.91.231:8088/portal/r/w?sid=6f714ec1-7570-4525-ac51-b092402d8295&cmd=CLIENT_BPM_FORM_TRACK_OPEN&processInstId=1f6e7196-e1ea-428e-b295-aa23a54a2402&supportCanvas=true&formInfo="
26
- ), i = v([
27
- {
28
- actionName: "提交",
29
- activityName: "部门负责人",
30
- createDate: "2023-04-20 14:47:35",
31
- createUser: "18ccbf63229f0c79f39940ae284c111e",
32
- createUserName: "朱鸿飞",
33
- customUniqueId: "",
34
- departmentName: "测试部",
35
- id: "88df38c8-9756-4b4a-a9b0-dcb0ec1b57d5",
36
- metaAnnexList: null,
37
- msg: "同意",
38
- positionName: "测试部119147",
39
- processInstId: "1f6e7196-e1ea-428e-b295-aa23a54a2402",
40
- taskInstId: "38bbef1c-efbb-456d-bd79-08ed9d96b4b3"
41
- }
42
- ]), t = v(""), f = v([
43
- {
44
- label: "基本信息",
45
- key: "a",
46
- type: "default",
47
- slot: "default"
48
- },
49
- {
50
- label: "流程图",
51
- key: "b",
52
- type: "default",
53
- slot: "tab2"
54
- },
55
- {
56
- label: "审批记录",
57
- key: "c",
58
- type: "default",
59
- slot: "tab3"
60
- }
61
- ]), d = v([
62
- {
63
- label: "基本信息",
64
- key: "a",
65
- type: "default",
66
- slot: "default"
67
- },
68
- {
69
- label: "流程图",
70
- key: "b",
71
- type: "default",
72
- slot: "tab2"
73
- },
74
- {
75
- label: "审批记录",
76
- key: "c",
77
- type: "default",
78
- slot: "tab3"
79
- }
80
- ]), o = v(), y = (c, m) => {
81
- c !== t.value && (t.value = c, p(m));
82
- }, p = (c) => {
83
- if (o.value.length) {
84
- let m = document.getElementsByClassName("bottom-line")[0], u;
85
- if (m.offsetWidth < o.value[c].offsetWidth - 10) {
86
- let b = (o.value[c].offsetWidth - m.offsetWidth - 10) / 2;
87
- u = `${o.value[c].offsetLeft + b}px`;
88
- } else if (m.offsetWidth > o.value[c].offsetWidth - 10) {
89
- let b = (m.offsetWidth - o.value[c].offsetWidth + 10) / 2;
90
- u = `${o.value[c].offsetLeft - b}px`;
91
- } else
92
- u = `${o.value[c].offsetLeft}px`;
93
- m.style.transition = ".3s", m.style.transform = `translateX(${u})`;
94
- }
95
- };
96
- return P(
97
- () => e.selfTapList,
98
- (c, m) => {
99
- c.length && (d.value = [].concat(c), t.value = d.value[0].key);
100
- },
101
- {
102
- //如果加了这个参数,值为true的话,就消除了惰性,watch会在创建后立即执行一次
103
- //那么首次执行,val为默认值,preVal为undefined
104
- immediate: !0,
105
- //这个参数代表监听对象时,可以监听深度嵌套的对象属性
106
- deep: !0
107
- }
108
- ), P(
109
- () => e.tapList,
110
- (c, m) => {
111
- e.selfTapList.length || (d.value = [].concat(f.value), c.length > 0 && c.forEach((u, b) => {
112
- u.sort && u.sort > 1 ? d.value.splice(u.sort - 1, 0, u) : u.sort == 1 ? d.value.unshift(u) : d.value.push(u);
113
- }), t.value = d.value[0].key);
114
- },
115
- {
116
- //如果加了这个参数,值为true的话,就消除了惰性,watch会在创建后立即执行一次
117
- //那么首次执行,val为默认值,preVal为undefined
118
- immediate: !0,
119
- //这个参数代表监听对象时,可以监听深度嵌套的对象属性
120
- deep: !0
121
- }
122
- ), M(() => {
123
- p(0);
124
- }), {
125
- isTapList: d,
126
- active: t,
127
- handleActive: y,
128
- label: o,
129
- taskCommentList: i,
130
- trackUrl: a
131
- };
132
- }
133
- };
134
- const N = (e, a) => {
135
- const i = e.__vccOpts || e;
136
- for (const [t, f] of a)
137
- i[t] = f;
138
- return i;
139
- }, C = (e) => (q("data-v-dfe642fd"), e = e(), O(), e), G = { class: "tops-tab" }, K = { class: "tops-tab-header" }, X = ["onClick"], J = {
140
- key: 0,
141
- class: "bottom-line"
142
- }, Q = { class: "tops-tab-body" }, Z = ["src"], ee = {
143
- key: 1,
144
- class: "textnone"
145
- }, te = { class: "seal-list__item--option" }, se = /* @__PURE__ */ C(() => /* @__PURE__ */ s("span", null, "节点名称", -1)), ae = { class: "seal-list__item--option" }, oe = /* @__PURE__ */ C(() => /* @__PURE__ */ s("span", null, "审批人", -1)), ne = { class: "seal-list__item--option" }, le = /* @__PURE__ */ C(() => /* @__PURE__ */ s("span", null, "审批操作", -1)), ce = { class: "seal-list__item--option" }, ue = /* @__PURE__ */ C(() => /* @__PURE__ */ s("span", null, "审批意见", -1)), re = ["innerHTML"], ie = { class: "seal-list__item--option" }, de = /* @__PURE__ */ C(() => /* @__PURE__ */ s("span", null, "审批时间", -1)), fe = {
146
- key: 0,
147
- class: "seal-list__item--attch"
148
- }, pe = /* @__PURE__ */ C(() => /* @__PURE__ */ s("span", null, "查看附件", -1)), _e = [
149
- pe
150
- ], me = {
151
- key: 1,
152
- class: "textnone"
153
- };
154
- function ve(e, a, i, t, f, d) {
155
- return l(), r("div", G, [
156
- s("div", K, [
157
- (l(!0), r(g, null, L(t.isTapList, (o, y) => (l(), r("div", {
158
- class: W(["tops-tab-header-items", [o.key === t.active ? "active" : ""]]),
159
- onClick: (p) => t.handleActive(o.key, y),
160
- ref_for: !0,
161
- ref: "label"
162
- }, h(o.label), 11, X))), 256)),
163
- t.isTapList.length ? (l(), r("div", J)) : _("", !0)
164
- ]),
165
- s("div", Q, [
166
- (l(!0), r(g, null, L(t.isTapList, (o) => z((l(), r("div", {
167
- key: o.key,
168
- style: { height: "calc(100% - 45px)" }
169
- }, [
170
- o.key === "a" && o.type === "default" ? k(e.$slots, "default", { key: 0 }, void 0, !0) : _("", !0),
171
- o.key === "b" && o.type === "default" ? k(e.$slots, o.slot, { key: 1 }, () => [
172
- t.trackUrl ? (l(), r("iframe", {
173
- key: 0,
174
- src: t.trackUrl,
175
- style: { width: "100%", "min-height": "500px", border: "none" },
176
- scrolling: "no",
177
- frameborder: "0"
178
- }, null, 8, Z)) : (l(), r("div", ee, " 暂无流程图 "))
179
- ], !0) : _("", !0),
180
- o.key === "c" && o.type === "default" ? k(e.$slots, o.slot, { key: 2 }, () => {
181
- var y;
182
- return [
183
- ((y = t.taskCommentList) == null ? void 0 : y.length) > 0 ? (l(!0), r(g, { key: 0 }, L(t.taskCommentList, (p, c) => (l(), r("div", {
184
- key: p.id,
185
- class: "seal-list__item"
186
- }, [
187
- s("div", null, [
188
- s("div", te, [
189
- se,
190
- s("span", null, h(p.activityName), 1)
191
- ]),
192
- s("div", ae, [
193
- oe,
194
- s("span", null, h(p.createUserName), 1)
195
- ]),
196
- s("div", ne, [
197
- le,
198
- s("span", null, h(p.actionName), 1)
199
- ]),
200
- s("div", ce, [
201
- ue,
202
- s("span", {
203
- innerHTML: p.msg
204
- }, null, 8, re)
205
- ]),
206
- s("div", ie, [
207
- de,
208
- s("span", null, h(p.createDate), 1)
209
- ]),
210
- p.metaAnnexList && p.metaAnnexList.length ? (l(), r("div", fe, _e)) : _("", !0)
211
- ])
212
- ]))), 128)) : (l(), r("div", me, "暂无数据"))
213
- ];
214
- }, !0) : _("", !0),
215
- o.type == "slot" ? k(e.$slots, o.slot, { key: 3 }, void 0, !0) : _("", !0)
216
- ])), [
217
- [H, t.active === o.key]
218
- ])), 128))
219
- ])
220
- ]);
221
- }
222
- const S = /* @__PURE__ */ N(Y, [["render", ve], ["__scopeId", "data-v-dfe642fd"]]);
223
- S.install = function(e) {
224
- return e.component(S.name, S), e;
225
- };
226
- const he = {
227
- name: "TopPopup",
228
- props: {
229
- titleText: { default: "top-popup", type: String },
230
- cancelText: { default: "取消", type: String },
231
- comfigText: { default: "确定", type: String },
232
- comfig: { default: null, type: Function },
233
- cancel: { default: null, type: Function },
234
- isMask: { require: !1, default: !0, type: Boolean },
235
- isMaskClose: { require: !1, default: !0, type: Boolean }
236
- },
237
- setup(e) {
238
- const a = v(!1), i = () => {
239
- a.value = !0;
240
- }, t = () => {
241
- typeof e.cancel == "function" && e.cancel(), d();
242
- }, f = () => {
243
- typeof e.comfig == "function" && e.comfig();
244
- }, d = () => {
245
- a.value = !1;
246
- };
247
- return M(() => {
248
- document.querySelector("body");
249
- }), {
250
- handleOpen: i,
251
- handleCancel: t,
252
- handleComfig: f,
253
- handleClose: d,
254
- show: a
255
- };
256
- }
257
- };
258
- const be = { class: "top-popup-header" }, ye = { class: "header-title" }, ke = { class: "top-popup-body" };
259
- function ge(e, a, i, t, f, d) {
260
- return l(), r(g, null, [
261
- s("div", {
262
- class: "top-popup",
263
- style: A(
264
- t.show ? "transform: translateY(0)" : "transform: translateY(100%)"
265
- )
266
- }, [
267
- s("div", be, [
268
- s("div", {
269
- class: "header-cancel",
270
- onClick: a[0] || (a[0] = (...o) => t.handleCancel && t.handleCancel(...o))
271
- }, h(i.cancelText), 1),
272
- s("div", ye, h(i.titleText), 1),
273
- s("div", {
274
- class: "header-comfig",
275
- onClick: a[1] || (a[1] = (...o) => t.handleComfig && t.handleComfig(...o))
276
- }, h(i.comfigText), 1)
277
- ]),
278
- s("div", ke, [
279
- k(e.$slots, "default", {}, void 0, !0)
280
- ])
281
- ], 4),
282
- t.show && i.isMask ? (l(), r("div", {
283
- key: 0,
284
- class: "top-popup-mask",
285
- onClick: a[2] || (a[2] = (o) => i.isMaskClose && t.handleClose())
286
- })) : _("", !0)
287
- ], 64);
288
- }
289
- const B = /* @__PURE__ */ N(he, [["render", ge], ["__scopeId", "data-v-5fc20816"]]);
290
- B.install = function(e) {
291
- return console.log("TopPopup.install", e), e.mount(B), e.component(B.name, B), e;
292
- };
293
- const Ce = {
294
- name: "TopButton",
295
- props: {
296
- type: { default: "default", type: String }
297
- },
298
- setup(e) {
299
- const a = v({
300
- textColor: "#fff",
301
- bckColor: "3c9cff"
302
- });
303
- switch (e.type) {
304
- case "primary":
305
- a.value.textColor = "#fff", a.value.bckColor = "#3c9cff";
306
- break;
307
- case "danger":
308
- a.value.textColor = "rgb(255, 96, 96)", a.value.bckColor = "rgb(255, 230, 230)";
309
- break;
310
- case "default":
311
- a.value.textColor = "rgb(51, 51, 51)", a.value.bckColor = "rgb(241, 241, 241)";
312
- break;
313
- }
314
- return {
315
- style: a
316
- };
317
- }
318
- };
319
- function Te(e, a, i, t, f, d) {
320
- return l(), r("div", {
321
- class: "top-button",
322
- style: A(`background-color:${t.style.bckColor};color:${t.style.textColor}`)
323
- }, [
324
- k(e.$slots, "default", {}, void 0, !0)
325
- ], 4);
326
- }
327
- const x = /* @__PURE__ */ N(Ce, [["render", Te], ["__scopeId", "data-v-3d3c6354"]]);
328
- x.install = function(e) {
329
- return e.component(x.name, x), e;
330
- };
331
- const Be = {
332
- name: "TopProcess",
333
- components: {
334
- TopTab: S,
335
- TopPopup: B,
336
- TopButton: x
337
- },
338
- props: {
339
- tapList: { require: !1, default: () => [], type: Array },
340
- processId: { require: !0, default: "", type: String },
341
- processDefId: { require: !0, default: "", type: String },
342
- taskId: { require: !0, default: "", type: String },
343
- isAdditional: { require: !1, default: !1, type: Boolean },
344
- isView: { default: !1, type: Boolean }
345
- },
346
- setup(e) {
347
- const a = v({}), i = v(), t = v([
348
- {
349
- taskId: "ecd82a93-4a62-42a7-b7bd-df38d2f1609a",
350
- taskState: 1,
351
- nodeId: "obj_026aac284c1a4303854f978b674be4b9",
352
- customUniqueId: "",
353
- nodeName: "部门负责人"
354
- }
355
- ]), f = v({
356
- id: "obj_026aac284c1a4303854f978b674be4b9",
357
- name: "部门负责人",
358
- no: "1",
359
- buttons: [],
360
- ccTaskButtonLabel: "",
361
- ccTaskButtonAnnex: null,
362
- completeButtonLabel: "同意",
363
- completeButtonAnnex: null,
364
- delegateTaskButtonLabel: "转办",
365
- delegateTaskButtonAnnex: null,
366
- printFormButtonLabel: "",
367
- supplyUnusualTransferButtonLabel: "",
368
- readingOfficeLabel: "",
369
- readingOfficeButtonAnnex: null,
370
- jointlySignLabel: "",
371
- jointlySignButtonAnnex: null,
372
- counterSignLabel: "加签",
373
- counterSignButtonAnnex: null,
374
- coordinationLabel: "",
375
- coordinationButtonAnnex: null,
376
- otherButtonAnnexList: null,
377
- humanPerformer: {
378
- id: "obj_2bd3494ae5c54309b7f2ea452921790b",
379
- name: "任意指定",
380
- resourceAssignmentExpressionModel: {
381
- formalExpression: ""
382
- }
383
- },
384
- commentModels: [
385
- {
386
- actionName: "提交",
387
- isDefault: !0
388
- },
389
- {
390
- actionName: "作废",
391
- isDefault: !1
392
- }
393
- ],
394
- routeTxt: {
395
- departmentIds: null,
396
- companyIds: null,
397
- teamList: null,
398
- routeType: "DynamicUsers"
399
- },
400
- loopCardinality: 1,
401
- isHistoryRoute: !1,
402
- participantList: null,
403
- historyRoute: !1
404
- });
405
- P(
406
- () => e.processId,
407
- (u, b) => {
408
- u && (a.value = {
409
- status: "审批中",
410
- createUid: "18ccbf63229f0c79f39940ae284c111e",
411
- createTopUserId: "128ec9c9b7f26135272596fe01c57690",
412
- createTime: "2023-04-20 15:01:48",
413
- currUserName: "朱鸿飞",
414
- allUserNames: ["朱鸿飞"],
415
- userNodeGroup: {
416
- 分管领导: ["朱鸿飞"]
417
- },
418
- appId: "com.awspaas.user.apps.top.study.project",
419
- statusCode: "1",
420
- statusName: "审批中",
421
- bizStatusName: "审批中",
422
- taskState: 1
423
- });
424
- },
425
- {
426
- //如果加了这个参数,值为true的话,就消除了惰性,watch会在创建后立即执行一次
427
- //那么首次执行,val为默认值,preVal为undefined
428
- immediate: !0,
429
- //这个参数代表监听对象时,可以监听深度嵌套的对象属性
430
- deep: !0
431
- }
432
- ), console.log("asd", t.value[0].taskState);
433
- const d = E(() => {
434
- var D, $;
435
- let u = [], b = t.value && t.value[0] && t.value[0].taskState != 4;
436
- if (b && !e.isView && f.value.completeButtonLabel) {
437
- let n = {};
438
- n.name = f.value.completeButtonLabel, n.btnProps = { type: "primary" }, u.push(n);
439
- }
440
- if (b && !e.isView && a.value.currUserName) {
441
- let n = {};
442
- n.name = "拒绝", n.btnProps = { type: "danger" }, u.push(n);
443
- }
444
- if (b && !e.isView && f.value.buttons && f.value.buttons.length && f.value.buttons.forEach((n) => {
445
- if (n.label === "退回") {
446
- let w = {};
447
- w.name = n.label, w.btnProps = { type: "danger" }, u.push(w);
448
- }
449
- }), b && !e.isView && f.value.delegateTaskButtonLabel) {
450
- let n = {};
451
- n.name = f.value.delegateTaskButtonLabel, n.btnProps = { type: "default" }, u.push(n);
452
- }
453
- if (e.processId && a.value.createTopUserId == e.userId && ((D = t.value[0]) == null ? void 0 : D.taskState) != 2 && a.value.status !== "已驳回" && a.value.status !== "已撤销") {
454
- let n = {};
455
- n.name = "催办", n.btnProps = { type: "default" }, u.push(n);
456
- }
457
- if (e.processId && a.value.createTopUserId == e.userId && (($ = t.value[0]) == null ? void 0 : $.taskState) != 2 && a.value.status !== "已驳回" && a.value.status !== "已撤销") {
458
- let n = {};
459
- n.name = "撤销", n.btnProps = { type: "default" }, u.push(n);
460
- }
461
- if (b && !e.isView && f.value.counterSignLabel) {
462
- let n = {};
463
- n.name = f.value.counterSignLabel, n.btnProps = { type: "primary" }, u.push(n);
464
- }
465
- return u;
466
- }), o = E(() => d.value.length > 3 ? d.value.slice(3) : []), y = () => {
467
- console.log("handleCancel");
468
- }, p = () => {
469
- console.log("handleComfig", "确定按钮"), i.value.handleClose();
470
- }, c = E(() => "calc(100vh - 205px)");
471
- return {
472
- processStatus: a,
473
- processCardHeight: c,
474
- handleTest: () => {
475
- i.value.handleOpen();
476
- },
477
- TopPopup1: i,
478
- handleCancel: y,
479
- handleComfig: p,
480
- operBtn: d,
481
- actionBtn: o
482
- };
483
- },
484
- methods: {
485
- getColor(e) {
486
- return e == "审核中" ? "#FFA52D" : e == "已驳回" ? "#F14B4C" : e == "已撤销" ? "#CECECE" : e == "已完成" ? "#6DC743" : "#1389FF";
487
- }
488
- }
489
- };
490
- const T = (e) => (q("data-v-710eca2f"), e = e(), O(), e), Se = { class: "process-warp" }, Le = {
491
- key: 0,
492
- class: "process-main"
493
- }, xe = { class: "process-ml-item border" }, Ie = /* @__PURE__ */ T(() => /* @__PURE__ */ s("div", { class: "process-mli-name" }, "流程状态", -1)), Ae = { class: "process-mli-value" }, Ne = { class: "process-ml-item border" }, we = /* @__PURE__ */ T(() => /* @__PURE__ */ s("div", { class: "process-mli-name" }, "流程发起时间", -1)), Ee = { class: "process-mli-value" }, Ue = {
494
- key: 0,
495
- class: "process-ml-item"
496
- }, Fe = /* @__PURE__ */ T(() => /* @__PURE__ */ s("div", { class: "process-mli-name" }, "审批节点", -1)), Pe = { class: "process-mli-value" }, De = { class: "process-mliv-jd" }, $e = {
497
- key: 1,
498
- class: "process-foot"
499
- }, je = { class: "footBtnRow" }, Ve = { class: "process-btn" }, Me = {
500
- key: 1,
501
- class: "elips"
502
- }, qe = /* @__PURE__ */ T(() => /* @__PURE__ */ s("div", { class: "circle" }, null, -1)), Oe = /* @__PURE__ */ T(() => /* @__PURE__ */ s("div", { class: "circle" }, null, -1)), We = /* @__PURE__ */ T(() => /* @__PURE__ */ s("div", { class: "circle" }, null, -1)), ze = [
503
- qe,
504
- Oe,
505
- We
506
- ];
507
- function He(e, a, i, t, f, d) {
508
- const o = U("TopTab"), y = U("TopButton"), p = U("TopPopup");
509
- return l(), r(g, null, [
510
- s("div", Se, [
511
- t.processStatus.status ? (l(), r("div", Le, [
512
- s("div", xe, [
513
- Ie,
514
- s("div", Ae, [
515
- t.processStatus.status || t.processStatus.bizStatusName ? (l(), r("div", {
516
- key: 0,
517
- class: "process-mliv-dd",
518
- style: A({ background: d.getColor(t.processStatus.status) })
519
- }, h(t.processStatus.bizStatusName ? t.processStatus.bizStatusName : t.processStatus.status), 5)) : _("", !0)
520
- ])
521
- ]),
522
- s("div", Ne, [
523
- we,
524
- s("div", Ee, [
525
- s("span", null, h(t.processStatus.createTime), 1)
526
- ])
527
- ]),
528
- t.processStatus.allUserNames && t.processStatus.allUserNames.length ? (l(), r("div", Ue, [
529
- Fe,
530
- s("div", Pe, [
531
- s("span", De, h(`${t.processStatus.taskState == 4 ? t.processStatus.currUserName : t.processStatus.allUserNames.toString()}审批中`), 1)
532
- ])
533
- ])) : _("", !0)
534
- ])) : _("", !0),
535
- s("div", {
536
- class: "process-card",
537
- style: A({ height: t.processCardHeight })
538
- }, [
539
- j(o, { tapList: i.tapList }, {
540
- default: F(() => [
541
- k(e.$slots, "default", {}, void 0, !0)
542
- ]),
543
- _: 3
544
- }, 8, ["tapList"])
545
- ], 4),
546
- i.isAdditional ? (l(), r("div", $e, [
547
- s("div", je, [
548
- k(e.$slots, "btn", {}, void 0, !0)
549
- ])
550
- ])) : _("", !0),
551
- s("div", Ve, [
552
- t.processStatus.status != "已完成" ? (l(!0), r(g, { key: 0 }, L(t.operBtn, (c, m) => (l(), r(g, {
553
- key: c.name
554
- }, [
555
- m < 3 ? (l(), R(y, {
556
- key: 0,
557
- onClick: t.handleTest,
558
- type: c.btnProps.type.toString()
559
- }, {
560
- default: F(() => [
561
- V(h(c.name), 1)
562
- ]),
563
- _: 2
564
- }, 1032, ["onClick", "type"])) : _("", !0)
565
- ], 64))), 128)) : _("", !0),
566
- t.operBtn.length > 3 ? (l(), r("div", Me, ze)) : _("", !0)
567
- ])
568
- ]),
569
- j(p, {
570
- ref: "TopPopup1",
571
- cancel: t.handleCancel,
572
- comfig: t.handleComfig
573
- }, {
574
- default: F(() => [
575
- V(" csaasd1 ")
576
- ]),
577
- _: 1
578
- }, 8, ["cancel", "comfig"])
579
- ], 64);
580
- }
581
- const I = /* @__PURE__ */ N(Be, [["render", He], ["__scopeId", "data-v-710eca2f"]]);
582
- I.install = function(e) {
583
- return e.component(I.name, I), e;
584
- };
585
- const Re = [S, I], Ye = function(e) {
586
- Re.forEach((a) => {
587
- e.use(a);
588
- });
589
- }, Ke = {
590
- install: Ye
591
- };
592
- export {
593
- I as TopProcess,
594
- S as TopTab,
595
- Ke as default
596
- };
@@ -1 +0,0 @@
1
- (function(_,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(_=typeof globalThis<"u"?globalThis:_||self,e(_.Design={},_.Vue))})(this,function(_,e){"use strict";const V={name:"TopTab",props:{tapList:{type:Array,default:()=>[]},selfTapList:{type:Array,default:()=>[]}},setup(t){const a=e.ref("http://59.53.91.231:8088/portal/r/w?sid=6f714ec1-7570-4525-ac51-b092402d8295&cmd=CLIENT_BPM_FORM_TRACK_OPEN&processInstId=1f6e7196-e1ea-428e-b295-aa23a54a2402&supportCanvas=true&formInfo="),r=e.ref([{actionName:"提交",activityName:"部门负责人",createDate:"2023-04-20 14:47:35",createUser:"18ccbf63229f0c79f39940ae284c111e",createUserName:"朱鸿飞",customUniqueId:"",departmentName:"测试部",id:"88df38c8-9756-4b4a-a9b0-dcb0ec1b57d5",metaAnnexList:null,msg:"同意",positionName:"测试部119147",processInstId:"1f6e7196-e1ea-428e-b295-aa23a54a2402",taskInstId:"38bbef1c-efbb-456d-bd79-08ed9d96b4b3"}]),o=e.ref(""),d=e.ref([{label:"基本信息",key:"a",type:"default",slot:"default"},{label:"流程图",key:"b",type:"default",slot:"tab2"},{label:"审批记录",key:"c",type:"default",slot:"tab3"}]),i=e.ref([{label:"基本信息",key:"a",type:"default",slot:"default"},{label:"流程图",key:"b",type:"default",slot:"tab2"},{label:"审批记录",key:"c",type:"default",slot:"tab3"}]),n=e.ref(),u=(l,m)=>{l!==o.value&&(o.value=l,p(m))},p=l=>{if(n.value.length){let m=document.getElementsByClassName("bottom-line")[0],c;if(m.offsetWidth<n.value[l].offsetWidth-10){let f=(n.value[l].offsetWidth-m.offsetWidth-10)/2;c=`${n.value[l].offsetLeft+f}px`}else if(m.offsetWidth>n.value[l].offsetWidth-10){let f=(m.offsetWidth-n.value[l].offsetWidth+10)/2;c=`${n.value[l].offsetLeft-f}px`}else c=`${n.value[l].offsetLeft}px`;m.style.transition=".3s",m.style.transform=`translateX(${c})`}};return e.watch(()=>t.selfTapList,(l,m)=>{l.length&&(i.value=[].concat(l),o.value=i.value[0].key)},{immediate:!0,deep:!0}),e.watch(()=>t.tapList,(l,m)=>{t.selfTapList.length||(i.value=[].concat(d.value),l.length>0&&l.forEach((c,f)=>{c.sort&&c.sort>1?i.value.splice(c.sort-1,0,c):c.sort==1?i.value.unshift(c):i.value.push(c)}),o.value=i.value[0].key)},{immediate:!0,deep:!0}),e.onMounted(()=>{p(0)}),{isTapList:i,active:o,handleActive:u,label:n,taskCommentList:r,trackUrl:a}}},Ee="",B=(t,a)=>{const r=t.__vccOpts||t;for(const[o,d]of a)r[o]=d;return r},h=t=>(e.pushScopeId("data-v-dfe642fd"),t=t(),e.popScopeId(),t),T={class:"tops-tab"},L={class:"tops-tab-header"},x=["onClick"],I={key:0,class:"bottom-line"},A={class:"tops-tab-body"},D=["src"],F={key:1,class:"textnone"},w={class:"seal-list__item--option"},P=h(()=>e.createElementVNode("span",null,"节点名称",-1)),U={class:"seal-list__item--option"},$=h(()=>e.createElementVNode("span",null,"审批人",-1)),j={class:"seal-list__item--option"},M=h(()=>e.createElementVNode("span",null,"审批操作",-1)),q={class:"seal-list__item--option"},z=h(()=>e.createElementVNode("span",null,"审批意见",-1)),O=["innerHTML"],W={class:"seal-list__item--option"},H=h(()=>e.createElementVNode("span",null,"审批时间",-1)),R={key:0,class:"seal-list__item--attch"},Y=[h(()=>e.createElementVNode("span",null,"查看附件",-1))],G={key:1,class:"textnone"};function K(t,a,r,o,d,i){return e.openBlock(),e.createElementBlock("div",T,[e.createElementVNode("div",L,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.isTapList,(n,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["tops-tab-header-items",[n.key===o.active?"active":""]]),onClick:p=>o.handleActive(n.key,u),ref_for:!0,ref:"label"},e.toDisplayString(n.label),11,x))),256)),o.isTapList.length?(e.openBlock(),e.createElementBlock("div",I)):e.createCommentVNode("",!0)]),e.createElementVNode("div",A,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.isTapList,n=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:n.key,style:{height:"calc(100% - 45px)"}},[n.key==="a"&&n.type==="default"?e.renderSlot(t.$slots,"default",{key:0},void 0,!0):e.createCommentVNode("",!0),n.key==="b"&&n.type==="default"?e.renderSlot(t.$slots,n.slot,{key:1},()=>[o.trackUrl?(e.openBlock(),e.createElementBlock("iframe",{key:0,src:o.trackUrl,style:{width:"100%","min-height":"500px",border:"none"},scrolling:"no",frameborder:"0"},null,8,D)):(e.openBlock(),e.createElementBlock("div",F," 暂无流程图 "))],!0):e.createCommentVNode("",!0),n.key==="c"&&n.type==="default"?e.renderSlot(t.$slots,n.slot,{key:2},()=>{var u;return[((u=o.taskCommentList)==null?void 0:u.length)>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(o.taskCommentList,(p,l)=>(e.openBlock(),e.createElementBlock("div",{key:p.id,class:"seal-list__item"},[e.createElementVNode("div",null,[e.createElementVNode("div",w,[P,e.createElementVNode("span",null,e.toDisplayString(p.activityName),1)]),e.createElementVNode("div",U,[$,e.createElementVNode("span",null,e.toDisplayString(p.createUserName),1)]),e.createElementVNode("div",j,[M,e.createElementVNode("span",null,e.toDisplayString(p.actionName),1)]),e.createElementVNode("div",q,[z,e.createElementVNode("span",{innerHTML:p.msg},null,8,O)]),e.createElementVNode("div",W,[H,e.createElementVNode("span",null,e.toDisplayString(p.createDate),1)]),p.metaAnnexList&&p.metaAnnexList.length?(e.openBlock(),e.createElementBlock("div",R,Y)):e.createCommentVNode("",!0)])]))),128)):(e.openBlock(),e.createElementBlock("div",G,"暂无数据"))]},!0):e.createCommentVNode("",!0),n.type=="slot"?e.renderSlot(t.$slots,n.slot,{key:3},void 0,!0):e.createCommentVNode("",!0)])),[[e.vShow,o.active===n.key]])),128))])])}const y=B(V,[["render",K],["__scopeId","data-v-dfe642fd"]]);y.install=function(t){return t.component(y.name,y),t};const X={name:"TopPopup",props:{titleText:{default:"top-popup",type:String},cancelText:{default:"取消",type:String},comfigText:{default:"确定",type:String},comfig:{default:null,type:Function},cancel:{default:null,type:Function},isMask:{require:!1,default:!0,type:Boolean},isMaskClose:{require:!1,default:!0,type:Boolean}},setup(t){const a=e.ref(!1),r=()=>{a.value=!0},o=()=>{typeof t.cancel=="function"&&t.cancel(),i()},d=()=>{typeof t.comfig=="function"&&t.comfig()},i=()=>{a.value=!1};return e.onMounted(()=>{document.querySelector("body")}),{handleOpen:r,handleCancel:o,handleComfig:d,handleClose:i,show:a}}},Se="",J={class:"top-popup-header"},Q={class:"header-title"},Z={class:"top-popup-body"};function v(t,a,r,o,d,i){return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:"top-popup",style:e.normalizeStyle(o.show?"transform: translateY(0)":"transform: translateY(100%)")},[e.createElementVNode("div",J,[e.createElementVNode("div",{class:"header-cancel",onClick:a[0]||(a[0]=(...n)=>o.handleCancel&&o.handleCancel(...n))},e.toDisplayString(r.cancelText),1),e.createElementVNode("div",Q,e.toDisplayString(r.titleText),1),e.createElementVNode("div",{class:"header-comfig",onClick:a[1]||(a[1]=(...n)=>o.handleComfig&&o.handleComfig(...n))},e.toDisplayString(r.comfigText),1)]),e.createElementVNode("div",Z,[e.renderSlot(t.$slots,"default",{},void 0,!0)])],4),o.show&&r.isMask?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-popup-mask",onClick:a[2]||(a[2]=n=>r.isMaskClose&&o.handleClose())})):e.createCommentVNode("",!0)],64)}const b=B(X,[["render",v],["__scopeId","data-v-5fc20816"]]);b.install=function(t){return console.log("TopPopup.install",t),t.mount(b),t.component(b.name,b),t};const Ve="",ee={name:"TopButton",props:{type:{default:"default",type:String}},setup(t){const a=e.ref({textColor:"#fff",bckColor:"3c9cff"});switch(t.type){case"primary":a.value.textColor="#fff",a.value.bckColor="#3c9cff";break;case"danger":a.value.textColor="rgb(255, 96, 96)",a.value.bckColor="rgb(255, 230, 230)";break;case"default":a.value.textColor="rgb(51, 51, 51)",a.value.bckColor="rgb(241, 241, 241)";break}return{style:a}}};function te(t,a,r,o,d,i){return e.openBlock(),e.createElementBlock("div",{class:"top-button",style:e.normalizeStyle(`background-color:${o.style.bckColor};color:${o.style.textColor}`)},[e.renderSlot(t.$slots,"default",{},void 0,!0)],4)}const N=B(ee,[["render",te],["__scopeId","data-v-3d3c6354"]]);N.install=function(t){return t.component(N.name,N),t};const oe={name:"TopProcess",components:{TopTab:y,TopPopup:b,TopButton:N},props:{tapList:{require:!1,default:()=>[],type:Array},processId:{require:!0,default:"",type:String},processDefId:{require:!0,default:"",type:String},taskId:{require:!0,default:"",type:String},isAdditional:{require:!1,default:!1,type:Boolean},isView:{default:!1,type:Boolean}},setup(t){const a=e.ref({}),r=e.ref(),o=e.ref([{taskId:"ecd82a93-4a62-42a7-b7bd-df38d2f1609a",taskState:1,nodeId:"obj_026aac284c1a4303854f978b674be4b9",customUniqueId:"",nodeName:"部门负责人"}]),d=e.ref({id:"obj_026aac284c1a4303854f978b674be4b9",name:"部门负责人",no:"1",buttons:[],ccTaskButtonLabel:"",ccTaskButtonAnnex:null,completeButtonLabel:"同意",completeButtonAnnex:null,delegateTaskButtonLabel:"转办",delegateTaskButtonAnnex:null,printFormButtonLabel:"",supplyUnusualTransferButtonLabel:"",readingOfficeLabel:"",readingOfficeButtonAnnex:null,jointlySignLabel:"",jointlySignButtonAnnex:null,counterSignLabel:"加签",counterSignButtonAnnex:null,coordinationLabel:"",coordinationButtonAnnex:null,otherButtonAnnexList:null,humanPerformer:{id:"obj_2bd3494ae5c54309b7f2ea452921790b",name:"任意指定",resourceAssignmentExpressionModel:{formalExpression:""}},commentModels:[{actionName:"提交",isDefault:!0},{actionName:"作废",isDefault:!1}],routeTxt:{departmentIds:null,companyIds:null,teamList:null,routeType:"DynamicUsers"},loopCardinality:1,isHistoryRoute:!1,participantList:null,historyRoute:!1});e.watch(()=>t.processId,(c,f)=>{c&&(a.value={status:"审批中",createUid:"18ccbf63229f0c79f39940ae284c111e",createTopUserId:"128ec9c9b7f26135272596fe01c57690",createTime:"2023-04-20 15:01:48",currUserName:"朱鸿飞",allUserNames:["朱鸿飞"],userNodeGroup:{分管领导:["朱鸿飞"]},appId:"com.awspaas.user.apps.top.study.project",statusCode:"1",statusName:"审批中",bizStatusName:"审批中",taskState:1})},{immediate:!0,deep:!0}),console.log("asd",o.value[0].taskState);const i=e.computed(()=>{var C,S;let c=[],f=o.value&&o.value[0]&&o.value[0].taskState!=4;if(f&&!t.isView&&d.value.completeButtonLabel){let s={};s.name=d.value.completeButtonLabel,s.btnProps={type:"primary"},c.push(s)}if(f&&!t.isView&&a.value.currUserName){let s={};s.name="拒绝",s.btnProps={type:"danger"},c.push(s)}if(f&&!t.isView&&d.value.buttons&&d.value.buttons.length&&d.value.buttons.forEach(s=>{if(s.label==="退回"){let E={};E.name=s.label,E.btnProps={type:"danger"},c.push(E)}}),f&&!t.isView&&d.value.delegateTaskButtonLabel){let s={};s.name=d.value.delegateTaskButtonLabel,s.btnProps={type:"default"},c.push(s)}if(t.processId&&a.value.createTopUserId==t.userId&&((C=o.value[0])==null?void 0:C.taskState)!=2&&a.value.status!=="已驳回"&&a.value.status!=="已撤销"){let s={};s.name="催办",s.btnProps={type:"default"},c.push(s)}if(t.processId&&a.value.createTopUserId==t.userId&&((S=o.value[0])==null?void 0:S.taskState)!=2&&a.value.status!=="已驳回"&&a.value.status!=="已撤销"){let s={};s.name="撤销",s.btnProps={type:"default"},c.push(s)}if(f&&!t.isView&&d.value.counterSignLabel){let s={};s.name=d.value.counterSignLabel,s.btnProps={type:"primary"},c.push(s)}return c}),n=e.computed(()=>i.value.length>3?i.value.slice(3):[]),u=()=>{console.log("handleCancel")},p=()=>{console.log("handleComfig","确定按钮"),r.value.handleClose()},l=e.computed(()=>"calc(100vh - 205px)");return{processStatus:a,processCardHeight:l,handleTest:()=>{r.value.handleOpen()},TopPopup1:r,handleCancel:u,handleComfig:p,operBtn:i,actionBtn:n}},methods:{getColor(t){return t=="审核中"?"#FFA52D":t=="已驳回"?"#F14B4C":t=="已撤销"?"#CECECE":t=="已完成"?"#6DC743":"#1389FF"}}},Te="",k=t=>(e.pushScopeId("data-v-710eca2f"),t=t(),e.popScopeId(),t),ae={class:"process-warp"},ne={key:0,class:"process-main"},se={class:"process-ml-item border"},le=k(()=>e.createElementVNode("div",{class:"process-mli-name"},"流程状态",-1)),ce={class:"process-mli-value"},re={class:"process-ml-item border"},ie=k(()=>e.createElementVNode("div",{class:"process-mli-name"},"流程发起时间",-1)),de={class:"process-mli-value"},pe={key:0,class:"process-ml-item"},me=k(()=>e.createElementVNode("div",{class:"process-mli-name"},"审批节点",-1)),fe={class:"process-mli-value"},ue={class:"process-mliv-jd"},_e={key:1,class:"process-foot"},he={class:"footBtnRow"},ye={class:"process-btn"},ke={key:1,class:"elips"},be=[k(()=>e.createElementVNode("div",{class:"circle"},null,-1)),k(()=>e.createElementVNode("div",{class:"circle"},null,-1)),k(()=>e.createElementVNode("div",{class:"circle"},null,-1))];function ge(t,a,r,o,d,i){const n=e.resolveComponent("TopTab"),u=e.resolveComponent("TopButton"),p=e.resolveComponent("TopPopup");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",ae,[o.processStatus.status?(e.openBlock(),e.createElementBlock("div",ne,[e.createElementVNode("div",se,[le,e.createElementVNode("div",ce,[o.processStatus.status||o.processStatus.bizStatusName?(e.openBlock(),e.createElementBlock("div",{key:0,class:"process-mliv-dd",style:e.normalizeStyle({background:i.getColor(o.processStatus.status)})},e.toDisplayString(o.processStatus.bizStatusName?o.processStatus.bizStatusName:o.processStatus.status),5)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",re,[ie,e.createElementVNode("div",de,[e.createElementVNode("span",null,e.toDisplayString(o.processStatus.createTime),1)])]),o.processStatus.allUserNames&&o.processStatus.allUserNames.length?(e.openBlock(),e.createElementBlock("div",pe,[me,e.createElementVNode("div",fe,[e.createElementVNode("span",ue,e.toDisplayString(`${o.processStatus.taskState==4?o.processStatus.currUserName:o.processStatus.allUserNames.toString()}审批中`),1)])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"process-card",style:e.normalizeStyle({height:o.processCardHeight})},[e.createVNode(n,{tapList:r.tapList},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},void 0,!0)]),_:3},8,["tapList"])],4),r.isAdditional?(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("div",he,[e.renderSlot(t.$slots,"btn",{},void 0,!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",ye,[o.processStatus.status!="已完成"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(o.operBtn,(l,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.name},[m<3?(e.openBlock(),e.createBlock(u,{key:0,onClick:o.handleTest,type:l.btnProps.type.toString()},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.name),1)]),_:2},1032,["onClick","type"])):e.createCommentVNode("",!0)],64))),128)):e.createCommentVNode("",!0),o.operBtn.length>3?(e.openBlock(),e.createElementBlock("div",ke,be)):e.createCommentVNode("",!0)])]),e.createVNode(p,{ref:"TopPopup1",cancel:o.handleCancel,comfig:o.handleComfig},{default:e.withCtx(()=>[e.createTextVNode(" csaasd1 ")]),_:1},8,["cancel","comfig"])],64)}const g=B(oe,[["render",ge],["__scopeId","data-v-710eca2f"]]);g.install=function(t){return t.component(g.name,g),t};const Be=[y,g],Ne={install:function(t){Be.forEach(a=>{t.use(a)})}};_.TopProcess=g,_.TopTab=y,_.default=Ne,Object.defineProperties(_,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -1,5 +0,0 @@
1
- declare module "*.vue" {
2
- import { DefineComponent } from "vue"
3
- const component: DefineComponent<{}, {}, any>
4
- export default component
5
- }
@@ -1 +0,0 @@
1
- /// <reference types="vite/client" />
package/lib/style.css DELETED
@@ -1 +0,0 @@
1
- .tops-tab[data-v-dfe642fd]{height:100%}.tops-tab-header[data-v-dfe642fd]{display:flex;width:100%;height:45px;font-size:14px;color:#333;padding:10px 17px;font-weight:500;box-sizing:border-box;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap;flex-shrink:0;-ms-overflow-style:none;position:relative;background-color:#fff}.tops-tab-header[data-v-dfe642fd]:after{content:"";position:absolute;width:100%;height:1px;background-color:#f2f2f2;left:0;bottom:0;z-index:10}.tops-tab-header[data-v-dfe642fd]::-webkit-scrollbar{display:none}.tops-tab-header-items[data-v-dfe642fd]{white-space:nowrap;padding-right:10px;box-sizing:border-box;display:inline-block;height:100%;text-align:center;margin-right:32px;font-weight:400;font-size:15px;text-align:left;color:#333;display:flex;align-items:center}.tops-tab-header-items[data-v-dfe642fd]:last-child{padding-right:0;margin-right:0}.tops-tab-header .active[data-v-dfe642fd]{position:relative;color:#1389ff;font-family:PingFang SC Bold;font-weight:700;font-size:15px;text-align:left}.tops-tab-header .bottom-line[data-v-dfe642fd]{width:30px;height:3px;border-radius:1.5px;background-color:#1389ff;position:absolute;bottom:1px;left:0;z-index:12}.tops-tab-body[data-v-dfe642fd]{height:100%}.seal-list__item[data-v-dfe642fd]{padding:6px 10px 0;margin:10px 10px 0;background-color:#fff;border-radius:10px;box-sizing:border-box}.seal-list__item[data-v-dfe642fd]:last-child{margin-bottom:70px}.seal-list__item .seal-list__item--header[data-v-dfe642fd]{margin-bottom:6px;display:flex;align-items:center}.seal-list__item .seal-list__item--header span[data-v-dfe642fd]:first-of-type{font-size:15px;margin-right:6px;font-weight:700}.seal-list__item .seal-list__item--option[data-v-dfe642fd]{display:flex;justify-content:space-between;align-items:center;font-size:14px;padding:10px 0;color:#333}.seal-list__item .seal-list__item--option span[data-v-dfe642fd]:last-child{max-width:144px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#888}.seal-list__item .seal-list__item--attch[data-v-dfe642fd]{font-size:14px;padding:10px 0;color:#333;text-align:right;color:#1389ff}.seal-list__item .seal-list__item--actions[data-v-dfe642fd]{margin-top:12px;position:relative;display:flex;justify-content:space-around;align-items:center}.seal-list__item .seal-list__item--actions[data-v-dfe642fd] :before{content:"";top:0;width:100%;transform:scaleY(.5);transform-origin:top;border-top:1px #e8e8e8 solid;position:absolute}.seal-list__item .seal-list__item--actions .van-button[data-v-dfe642fd]{width:50%}.seal-list__item .seal-list__item--actions .van-button[data-v-dfe642fd] :after{content:"";height:60%;border-left:1px #e8e8e8 solid;position:absolute;left:100%;top:50%;transform:translate(-50%,-50%) scaleX(.5);transform-origin:left}.seal-list__item .seal-list__item--actions .van-button[data-v-dfe642fd]:last-child :after{content:none}.top-popup[data-v-5fc20816]{width:100%;height:80vh;position:fixed;left:0;background-color:#fff;z-index:199;border-radius:20px 20px 0 0;padding:0 10px;box-sizing:border-box;transition:all .5s ease;bottom:0}.top-popup-mask[data-v-5fc20816]{position:fixed;width:100vw;height:100vh;background-color:#000;opacity:.7;top:0;left:0;z-index:99}.top-popup-header[data-v-5fc20816]{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.top-popup-header .header-cancel[data-v-5fc20816],.top-popup-header .header-comfig[data-v-5fc20816]{color:#1389ff}.fade-enter-active[data-v-5fc20816],.fade-leave-active[data-v-5fc20816]{transition:all .5s ease}.fade-enter[data-v-5fc20816],.fade-leave-to[data-v-5fc20816]{bottom:-100%}.fade-enter-to[data-v-5fc20816],.fade-leave[data-v-5fc20816]{bottom:0d}.top-button[data-v-3d3c6354]{width:100%;border-radius:20px;height:36px;background-color:#3c9cff;color:#fff;font-size:14px;justify-content:center;display:flex;align-items:center}.process-warp[data-v-710eca2f]{overflow:hidden;height:100vh;width:100%;position:relative;background-color:#f3f3f7}.process-main[data-v-710eca2f]{display:flex;justify-content:space-between;flex-direction:column;align-items:center;padding:0 17px;background:#fff;margin:0 0 10px}.process-main .border[data-v-710eca2f]{border-bottom:#e8e8e8 1px solid}.process-main .process-ml-item[data-v-710eca2f]{display:flex;align-items:center;font-size:15px;font-weight:400;width:100%;justify-content:space-between;height:44px}.process-main .process-ml-item .process-mli-name[data-v-710eca2f]{color:#333}.process-main .process-ml-item .process-mli-value[data-v-710eca2f]{color:#888}.process-main .process-ml-item .process-mli-value .process-mliv-dd[data-v-710eca2f]{height:26px;min-width:30px;padding:0 12px;border-radius:20px;background:#1389ff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px}.process-main .process-ml-item .process-mli-value .process-mliv-jd[data-v-710eca2f]{color:#1389ff}.process-btn[data-v-710eca2f]{display:flex;min-height:60px;padding-top:5px;background:#fff;border-top:1px solid #dddddf9e;box-sizing:border-box;justify-content:center;align-items:center;flex-direction:row-reverse}.process-btn .top-button[data-v-710eca2f],.process-btn .elips[data-v-710eca2f]{margin:0 5px}.elips[data-v-710eca2f]{min-width:60px;height:100%;background-color:#fff;display:flex;justify-content:center;align-items:center}.elips .circle[data-v-710eca2f]{width:6px;height:6px;margin:0 2px;background-color:#333;border-radius:50%}
package/lib/vite.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
@@ -1,9 +0,0 @@
1
- import { App, createApp } from "vue";
2
- import TopButton from "./src/index.vue";
3
-
4
- TopButton.install = function (app: App) {
5
- // 组件注册,按需引入
6
- app.component(TopButton.name, TopButton);
7
- return app;
8
- };
9
- export default TopButton;
@@ -1,11 +0,0 @@
1
- import { App, createApp } from "vue";
2
- import TopPopup from "./src/index.vue";
3
-
4
- TopPopup.install = function (app: App) {
5
- // 组件注册,按需引入
6
- console.log("TopPopup.install",app)
7
- app.mount(TopPopup)
8
- app.component(TopPopup.name, TopPopup);
9
- return app;
10
- };
11
- export default TopPopup;
@@ -1,9 +0,0 @@
1
- import { App } from "vue";
2
- import TopTab from "./src/index.vue";
3
-
4
- TopTab.install = function (app: App) {
5
- // 组件注册,按需引入
6
- app.component(TopTab.name, TopTab);
7
- return app;
8
- };
9
- export default TopTab;