widget.qw 1.0.83 → 1.0.85

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 (108) hide show
  1. package/.env.development +10 -10
  2. package/.env.production +8 -8
  3. package/README.md +75 -75
  4. package/build/style.css +521 -471
  5. package/build/widget.qw.es.js +253 -84
  6. package/build/widget.qw.umd.js +252 -83
  7. package/index.html +17 -17
  8. package/package.json +47 -47
  9. package/src/App.vue +26 -26
  10. package/src/api/index.js +173 -165
  11. package/src/components/AuditBar.vue +396 -396
  12. package/src/components/BillCard.vue +164 -164
  13. package/src/components/CascaderPicker.vue +132 -132
  14. package/src/components/CascaderPop.vue +375 -371
  15. package/src/components/CheckGroup.vue +113 -113
  16. package/src/components/DatetimeDropdown.vue +62 -0
  17. package/src/components/{DatetimePicker/index.vue → DatetimePicker.vue} +124 -124
  18. package/src/components/DayDropdown.vue +56 -56
  19. package/src/components/FilePicker.vue +169 -169
  20. package/src/components/HeadBar.vue +130 -0
  21. package/src/components/Input.vue +80 -80
  22. package/src/components/MonthDropdown.vue +51 -51
  23. package/src/components/MultiPicker.vue +123 -123
  24. package/src/components/ObjsEditor.vue +334 -334
  25. package/src/components/SecretNotify.js +5 -5
  26. package/src/components/Sheet.vue +92 -92
  27. package/src/components/SingleApiPicker.vue +108 -108
  28. package/src/components/SinglePicker.vue +102 -102
  29. package/src/components/SingleUserSelector.vue +425 -425
  30. package/src/components/Switch.vue +64 -64
  31. package/src/components/TreePicker.vue +113 -113
  32. package/src/components/UserPicker.vue +106 -106
  33. package/src/components/UserProfile.vue +129 -129
  34. package/src/components/UsersPicker.vue +118 -118
  35. package/src/components/YearDropdown.vue +59 -59
  36. package/src/components/data_selector.vue +303 -303
  37. package/src/components/image_picker.vue +123 -123
  38. package/src/components/images_picker.vue +195 -195
  39. package/src/components/index.js +172 -162
  40. package/src/components/mult_list_selector.vue +155 -155
  41. package/src/components/subdepartment_selector.vue +481 -481
  42. package/src/components/user_selector.vue +639 -639
  43. package/src/components/widget/DataPop.vue +95 -95
  44. package/src/components/{DatetimePicker → widget}/DatetimePop.vue +342 -342
  45. package/src/components/widget/TreePop.vue +88 -88
  46. package/src/components/widget/UserPop.vue +347 -347
  47. package/src/main.js +117 -117
  48. package/src/router/index.ts +183 -173
  49. package/src/util/array_util.js +32 -32
  50. package/src/util/auth_util.js +72 -72
  51. package/src/util/bool_util.js +5 -5
  52. package/src/util/bus.js +1 -1
  53. package/src/util/cache_util.js +18 -18
  54. package/src/util/errer_code.js +6 -6
  55. package/src/util/eval_util.js +19 -19
  56. package/src/util/icon_util.js +36 -36
  57. package/src/util/image_util.js +27 -27
  58. package/src/util/index.js +57 -57
  59. package/src/util/num_util.js +70 -70
  60. package/src/util/obj_util.js +28 -28
  61. package/src/util/request.js +73 -73
  62. package/src/util/request_json.js +71 -71
  63. package/src/util/request_json_mute.js +65 -65
  64. package/src/util/request_upload.js +79 -79
  65. package/src/util/route_util.js +31 -31
  66. package/src/util/str_util.js +143 -143
  67. package/src/util/time_util.js +406 -406
  68. package/src/util/toast_util.js +24 -24
  69. package/src/util/tree_util.js +153 -153
  70. package/src/util/uuid_util.js +9 -9
  71. package/src/util/validate.js +182 -182
  72. package/src/util/vue_filter.js +223 -223
  73. package/src/views/auditbar/index.vue +78 -78
  74. package/src/views/billcard/index.vue +48 -48
  75. package/src/views/cascaderpicker/index.vue +0 -0
  76. package/src/views/cascaderpicker/userpicker.vue +183 -0
  77. package/src/views/cascaderpop/index.vue +90 -90
  78. package/src/views/checkgroup/index.vue +35 -35
  79. package/src/views/dataSelector/index.vue +48 -48
  80. package/src/views/datetimedropdown/index.vue +34 -0
  81. package/src/views/datetimepicker/index.vue +34 -34
  82. package/src/views/daydropdown/index.vue +31 -31
  83. package/src/views/filepicker/index.vue +32 -32
  84. package/src/views/headbar/index.vue +28 -0
  85. package/src/views/home/index.vue +0 -0
  86. package/src/views/imagepicker/index.vue +31 -31
  87. package/src/views/imagespicker/index.vue +37 -37
  88. package/src/views/input/index.vue +35 -35
  89. package/src/views/monthdropdown/index.vue +31 -31
  90. package/src/views/multListSelector/index.vue +61 -61
  91. package/src/views/multipicker/index.vue +36 -36
  92. package/src/views/objseditor/index.vue +277 -277
  93. package/src/views/productSelector/index.vue +35 -35
  94. package/src/views/projectpicker/index.vue +41 -41
  95. package/src/views/secretnotify/index.vue +27 -27
  96. package/src/views/sheet/index.vue +45 -45
  97. package/src/views/singlepicker/index.vue +35 -35
  98. package/src/views/subdepartmentSelector/index.vue +40 -40
  99. package/src/views/switch/index.vue +34 -34
  100. package/src/views/treepicker/index.vue +41 -41
  101. package/src/views/userSelector/index.vue +54 -54
  102. package/src/views/userSelectorNew/index.vue +45 -45
  103. package/src/views/userpicker/index.vue +43 -43
  104. package/src/views/userprofile/index.vue +30 -30
  105. package/src/views/userspicker/index.vue +43 -43
  106. package/src/views/yeardropdown/index.vue +32 -32
  107. package/src/vm/index.js +1 -1
  108. package/vite.config.ts +122 -122
@@ -1,29 +1,29 @@
1
- export function objSwapPrev(obj, targetProp) {
2
- const keys = Object.keys(obj);
3
- const targetIndex = keys.indexOf(targetProp);
4
- if (targetIndex > 0) {
5
- const prevIndex = targetIndex - 1;
6
- // 交换属性位置
7
- [keys[targetIndex], keys[prevIndex]] = [keys[prevIndex], keys[targetIndex]];
8
- }
9
- const newObj = {};
10
- keys.forEach(key => {
11
- newObj[key] = obj[key];
12
- });
13
- return newObj;
14
- }
15
-
16
- export function objSwapNext(obj, targetProp) {
17
- const keys = Object.keys(obj);
18
- const targetIndex = keys.indexOf(targetProp);
19
- if (targetIndex < keys.length - 1) {
20
- const nextIndex = targetIndex + 1;
21
- // 交换属性位置
22
- [keys[targetIndex], keys[nextIndex]] = [keys[nextIndex], keys[targetIndex]];
23
- }
24
- const newObj = {};
25
- keys.forEach(key => {
26
- newObj[key] = obj[key];
27
- });
28
- return newObj;
1
+ export function objSwapPrev(obj, targetProp) {
2
+ const keys = Object.keys(obj);
3
+ const targetIndex = keys.indexOf(targetProp);
4
+ if (targetIndex > 0) {
5
+ const prevIndex = targetIndex - 1;
6
+ // 交换属性位置
7
+ [keys[targetIndex], keys[prevIndex]] = [keys[prevIndex], keys[targetIndex]];
8
+ }
9
+ const newObj = {};
10
+ keys.forEach(key => {
11
+ newObj[key] = obj[key];
12
+ });
13
+ return newObj;
14
+ }
15
+
16
+ export function objSwapNext(obj, targetProp) {
17
+ const keys = Object.keys(obj);
18
+ const targetIndex = keys.indexOf(targetProp);
19
+ if (targetIndex < keys.length - 1) {
20
+ const nextIndex = targetIndex + 1;
21
+ // 交换属性位置
22
+ [keys[targetIndex], keys[nextIndex]] = [keys[nextIndex], keys[targetIndex]];
23
+ }
24
+ const newObj = {};
25
+ keys.forEach(key => {
26
+ newObj[key] = obj[key];
27
+ });
28
+ return newObj;
29
29
  }
@@ -1,74 +1,74 @@
1
- import vm from '../vm'
2
- import axios from "axios"
3
- import qs from "qs"
4
- import { NEED_LOGIN_CODES } from './errer_code.js'
5
- import { getToken,TOKEN_KEY } from './auth_util.js'
6
- import util from './index.js'
7
-
8
-
9
- // create an axios instance
10
- const service = axios.create({
11
- baseURL: '', // url = domain + request url
12
- withCredentials: true, // send cookies when cross-domain requests
13
- timeout: 1000 * 60 * 10, // request timeout
14
- })
15
-
16
- //请求拦截器
17
- service.interceptors.request.use(
18
- config => {
19
- util.showLoading()
20
-
21
- //请求头加token
22
- config.headers[TOKEN_KEY] = getToken()
23
-
24
- if (config.method.toLowerCase() == 'post') {
25
- config.data = qs.stringify(config.data)
26
- }
27
- return config
28
- },
29
- error => {
30
- // do something with request error
31
- console.log(error) // for debug
32
- util.hideLoading()
33
- util.warnToast(error)
34
- return Promise.reject(error)
35
- }
36
- )
37
-
38
- //响应拦截器
39
- service.interceptors.response.use(
40
- response => {
41
- util.hideLoading()
42
-
43
- const res = response.data
44
- console.log(res)
45
-
46
- if (res.code !== 200) {
47
- util.warnToast(res.msg || "Error")
48
-
49
- console.log(NEED_LOGIN_CODES)
50
-
51
- if (NEED_LOGIN_CODES.indexOf(res.code) >= 0) {
52
- util.warnToast('请登录')
53
- setTimeout(() => {
54
- if (vm.needLoginCallback) {
55
- vm.needLoginCallback()
56
- }
57
- return
58
- }, 1500)
59
- }
60
-
61
- return res
62
- }
63
-
64
- return res
65
- },
66
- error => {
67
- util.hideLoading()
68
- console.log("err" + error) // for debug
69
- util.warnToast(error.message)
70
- return Promise.reject(error)
71
- }
72
- )
73
-
1
+ import vm from '../vm'
2
+ import axios from "axios"
3
+ import qs from "qs"
4
+ import { NEED_LOGIN_CODES } from './errer_code.js'
5
+ import { getToken,TOKEN_KEY } from './auth_util.js'
6
+ import util from './index.js'
7
+
8
+
9
+ // create an axios instance
10
+ const service = axios.create({
11
+ baseURL: '', // url = domain + request url
12
+ withCredentials: true, // send cookies when cross-domain requests
13
+ timeout: 1000 * 60 * 10, // request timeout
14
+ })
15
+
16
+ //请求拦截器
17
+ service.interceptors.request.use(
18
+ config => {
19
+ util.showLoading()
20
+
21
+ //请求头加token
22
+ config.headers[TOKEN_KEY] = getToken()
23
+
24
+ if (config.method.toLowerCase() == 'post') {
25
+ config.data = qs.stringify(config.data)
26
+ }
27
+ return config
28
+ },
29
+ error => {
30
+ // do something with request error
31
+ console.log(error) // for debug
32
+ util.hideLoading()
33
+ util.warnToast(error)
34
+ return Promise.reject(error)
35
+ }
36
+ )
37
+
38
+ //响应拦截器
39
+ service.interceptors.response.use(
40
+ response => {
41
+ util.hideLoading()
42
+
43
+ const res = response.data
44
+ console.log(res)
45
+
46
+ if (res.code !== 200) {
47
+ util.warnToast(res.msg || "Error")
48
+
49
+ console.log(NEED_LOGIN_CODES)
50
+
51
+ if (NEED_LOGIN_CODES.indexOf(res.code) >= 0) {
52
+ util.warnToast('请登录')
53
+ setTimeout(() => {
54
+ if (vm.needLoginCallback) {
55
+ vm.needLoginCallback()
56
+ }
57
+ return
58
+ }, 1500)
59
+ }
60
+
61
+ return res
62
+ }
63
+
64
+ return res
65
+ },
66
+ error => {
67
+ util.hideLoading()
68
+ console.log("err" + error) // for debug
69
+ util.warnToast(error.message)
70
+ return Promise.reject(error)
71
+ }
72
+ )
73
+
74
74
  export default service
@@ -1,72 +1,72 @@
1
- import vm from '../vm'
2
- import axios from "axios"
3
- import qs from "qs"
4
- import { NEED_LOGIN_CODES } from './errer_code.js'
5
- import { getToken,TOKEN_KEY } from './auth_util.js'
6
- import util from './index.js'
7
-
8
- // create an axios instance
9
- const service = axios.create({
10
- baseURL: '', // url = domain + request url
11
- withCredentials: true, // send cookies when cross-domain requests
12
- timeout: 1000 * 60 * 10, // request timeout
13
- })
14
-
15
- //请求拦截器
16
- service.interceptors.request.use(
17
- config => {
18
- util.showLoading()
19
-
20
- //请求头加token
21
- config.headers[TOKEN_KEY] = getToken()
22
-
23
- config.headers['Content-Type'] = 'application/json'
24
- config.data = JSON.stringify(config.data)
25
- return config
26
- },
27
- error => {
28
- // do something with request error
29
- console.log(error) // for debug
30
- util.hideLoading()
31
- util.warnToast(error)
32
- return Promise.reject(error)
33
- }
34
- )
35
-
36
- //响应拦截器
37
- service.interceptors.response.use(
38
- response => {
39
- util.hideLoading()
40
-
41
- const res = response.data
42
- console.log(res)
43
-
44
- if (res.code !== 200) {
45
- util.warnToast(res.msg || "Error")
46
-
47
- console.log(NEED_LOGIN_CODES)
48
-
49
- if (NEED_LOGIN_CODES.indexOf(res.code) >= 0) {
50
- util.warnToast('请登录')
51
- setTimeout(() => {
52
- if (vm.needLoginCallback) {
53
- vm.needLoginCallback()
54
- }
55
- return
56
- }, 1500)
57
- }
58
-
59
- return res
60
- }
61
-
62
- return res
63
- },
64
- error => {
65
- util.hideLoading()
66
- console.log("err" + error) // for debug
67
- util.warnToast(error.message)
68
- return Promise.reject(error)
69
- }
70
- )
71
-
1
+ import vm from '../vm'
2
+ import axios from "axios"
3
+ import qs from "qs"
4
+ import { NEED_LOGIN_CODES } from './errer_code.js'
5
+ import { getToken,TOKEN_KEY } from './auth_util.js'
6
+ import util from './index.js'
7
+
8
+ // create an axios instance
9
+ const service = axios.create({
10
+ baseURL: '', // url = domain + request url
11
+ withCredentials: true, // send cookies when cross-domain requests
12
+ timeout: 1000 * 60 * 10, // request timeout
13
+ })
14
+
15
+ //请求拦截器
16
+ service.interceptors.request.use(
17
+ config => {
18
+ util.showLoading()
19
+
20
+ //请求头加token
21
+ config.headers[TOKEN_KEY] = getToken()
22
+
23
+ config.headers['Content-Type'] = 'application/json'
24
+ config.data = JSON.stringify(config.data)
25
+ return config
26
+ },
27
+ error => {
28
+ // do something with request error
29
+ console.log(error) // for debug
30
+ util.hideLoading()
31
+ util.warnToast(error)
32
+ return Promise.reject(error)
33
+ }
34
+ )
35
+
36
+ //响应拦截器
37
+ service.interceptors.response.use(
38
+ response => {
39
+ util.hideLoading()
40
+
41
+ const res = response.data
42
+ console.log(res)
43
+
44
+ if (res.code !== 200) {
45
+ util.warnToast(res.msg || "Error")
46
+
47
+ console.log(NEED_LOGIN_CODES)
48
+
49
+ if (NEED_LOGIN_CODES.indexOf(res.code) >= 0) {
50
+ util.warnToast('请登录')
51
+ setTimeout(() => {
52
+ if (vm.needLoginCallback) {
53
+ vm.needLoginCallback()
54
+ }
55
+ return
56
+ }, 1500)
57
+ }
58
+
59
+ return res
60
+ }
61
+
62
+ return res
63
+ },
64
+ error => {
65
+ util.hideLoading()
66
+ console.log("err" + error) // for debug
67
+ util.warnToast(error.message)
68
+ return Promise.reject(error)
69
+ }
70
+ )
71
+
72
72
  export default service
@@ -1,66 +1,66 @@
1
- import vm from '../vm'
2
- import axios from "axios"
3
- import qs from "qs"
4
- import { NEED_LOGIN_CODES } from './errer_code.js'
5
- import { getToken,TOKEN_KEY } from './auth_util.js'
6
- import util from './index.js'
7
-
8
- // create an axios instance
9
- const service = axios.create({
10
- baseURL: '', // url = domain + request url
11
- withCredentials: true, // send cookies when cross-domain requests
12
- timeout: 1000 * 60 * 10, // request timeout
13
- })
14
-
15
- //请求拦截器
16
- service.interceptors.request.use(
17
- config => {
18
- //请求头加token
19
- config.headers[TOKEN_KEY] = getToken()
20
-
21
- config.headers['Content-Type'] = 'application/json'
22
- config.data = JSON.stringify(config.data)
23
- return config
24
- },
25
- error => {
26
- // do something with request error
27
- console.log(error) // for debug
28
- util.warnToast(error)
29
- return Promise.reject(error)
30
- }
31
- )
32
-
33
- //响应拦截器
34
- service.interceptors.response.use(
35
- response => {
36
- const res = response.data
37
- console.log(res)
38
-
39
- if (res.code !== 200) {
40
- util.warnToast(res.msg || "Error")
41
-
42
- console.log(NEED_LOGIN_CODES)
43
-
44
- if (NEED_LOGIN_CODES.indexOf(res.code) >= 0) {
45
- util.warnToast('请登录')
46
- setTimeout(() => {
47
- if (vm.needLoginCallback) {
48
- vm.needLoginCallback()
49
- }
50
- return
51
- }, 1500)
52
- }
53
-
54
- return res
55
- }
56
-
57
- return res
58
- },
59
- error => {
60
- console.log("err" + error) // for debug
61
- util.warnToast(error.message)
62
- return Promise.reject(error)
63
- }
64
- )
65
-
1
+ import vm from '../vm'
2
+ import axios from "axios"
3
+ import qs from "qs"
4
+ import { NEED_LOGIN_CODES } from './errer_code.js'
5
+ import { getToken,TOKEN_KEY } from './auth_util.js'
6
+ import util from './index.js'
7
+
8
+ // create an axios instance
9
+ const service = axios.create({
10
+ baseURL: '', // url = domain + request url
11
+ withCredentials: true, // send cookies when cross-domain requests
12
+ timeout: 1000 * 60 * 10, // request timeout
13
+ })
14
+
15
+ //请求拦截器
16
+ service.interceptors.request.use(
17
+ config => {
18
+ //请求头加token
19
+ config.headers[TOKEN_KEY] = getToken()
20
+
21
+ config.headers['Content-Type'] = 'application/json'
22
+ config.data = JSON.stringify(config.data)
23
+ return config
24
+ },
25
+ error => {
26
+ // do something with request error
27
+ console.log(error) // for debug
28
+ util.warnToast(error)
29
+ return Promise.reject(error)
30
+ }
31
+ )
32
+
33
+ //响应拦截器
34
+ service.interceptors.response.use(
35
+ response => {
36
+ const res = response.data
37
+ console.log(res)
38
+
39
+ if (res.code !== 200) {
40
+ util.warnToast(res.msg || "Error")
41
+
42
+ console.log(NEED_LOGIN_CODES)
43
+
44
+ if (NEED_LOGIN_CODES.indexOf(res.code) >= 0) {
45
+ util.warnToast('请登录')
46
+ setTimeout(() => {
47
+ if (vm.needLoginCallback) {
48
+ vm.needLoginCallback()
49
+ }
50
+ return
51
+ }, 1500)
52
+ }
53
+
54
+ return res
55
+ }
56
+
57
+ return res
58
+ },
59
+ error => {
60
+ console.log("err" + error) // for debug
61
+ util.warnToast(error.message)
62
+ return Promise.reject(error)
63
+ }
64
+ )
65
+
66
66
  export default service
@@ -1,79 +1,79 @@
1
- import vm from '../vm'
2
- import axios from 'axios'
3
- import { getToken, TOKEN_KEY } from './auth_util'
4
- import { NEED_LOGIN_CODES } from './errer_code'
5
- import util from './index.js'
6
-
7
- // create an axios instance
8
- const service = axios.create({
9
- baseURL: '', // url = domain + base path + request url
10
- withCredentials: true, // send cookies when cross-domain requests
11
- timeout: 1000 * 60 * 10, // request timeout
12
- })
13
-
14
- //请求拦截器
15
- service.interceptors.request.use(
16
- (config) => {
17
- util.showLoading()
18
-
19
- //设置文件上传请求头
20
- config.headers['Content-Type'] = 'multipart/form-data'
21
-
22
- //请求头加token
23
- config.headers[TOKEN_KEY] = getToken()
24
-
25
- //解析并传入post参数
26
- if (config.method.toLowerCase() == 'post') {
27
- const form = new FormData()
28
- // 文件对象
29
- for (const key in config.data) {
30
- form.append(key, config.data[key])
31
- }
32
- config.data = form
33
- }
34
- return config
35
- },
36
- (error) => {
37
- util.hideLoading()
38
- // do something with request error
39
- console.log(error) // for debug
40
- if (error.message && error.message.toUpperCase().indexOf('NETWORK') >= 0) {
41
- util.warnToast('网络连接失败')
42
- } else {
43
- util.warnToast(error.msg || error.message || error)
44
- }
45
- return Promise.reject(error)
46
- }
47
- )
48
-
49
- //响应拦截器
50
- service.interceptors.response.use(
51
- (response) => {
52
- util.hideLoading()
53
-
54
- const res = response.data
55
- console.log(res)
56
-
57
- if (res.code !== 200) {
58
- if (NEED_LOGIN_CODES.indexOf(res.code) >= 0) {
59
- if (vm.needLoginCallback) {
60
- vm.needLoginCallback()
61
- }
62
- } else {
63
- util.warnToast(res.msg || 'Error')
64
- }
65
-
66
- return Promise.reject(new Error(res.msg || 'Error'))
67
- }
68
-
69
- return Promise.resolve(res)
70
- },
71
- (error) => {
72
- util.hideLoading()
73
- console.log('err' + error) // for debug
74
- util.warnToast(error)
75
- return Promise.reject(error)
76
- }
77
- )
78
-
79
- export default service
1
+ import vm from '../vm'
2
+ import axios from 'axios'
3
+ import { getToken, TOKEN_KEY } from './auth_util'
4
+ import { NEED_LOGIN_CODES } from './errer_code'
5
+ import util from './index.js'
6
+
7
+ // create an axios instance
8
+ const service = axios.create({
9
+ baseURL: '', // url = domain + base path + request url
10
+ withCredentials: true, // send cookies when cross-domain requests
11
+ timeout: 1000 * 60 * 10, // request timeout
12
+ })
13
+
14
+ //请求拦截器
15
+ service.interceptors.request.use(
16
+ (config) => {
17
+ util.showLoading()
18
+
19
+ //设置文件上传请求头
20
+ config.headers['Content-Type'] = 'multipart/form-data'
21
+
22
+ //请求头加token
23
+ config.headers[TOKEN_KEY] = getToken()
24
+
25
+ //解析并传入post参数
26
+ if (config.method.toLowerCase() == 'post') {
27
+ const form = new FormData()
28
+ // 文件对象
29
+ for (const key in config.data) {
30
+ form.append(key, config.data[key])
31
+ }
32
+ config.data = form
33
+ }
34
+ return config
35
+ },
36
+ (error) => {
37
+ util.hideLoading()
38
+ // do something with request error
39
+ console.log(error) // for debug
40
+ if (error.message && error.message.toUpperCase().indexOf('NETWORK') >= 0) {
41
+ util.warnToast('网络连接失败')
42
+ } else {
43
+ util.warnToast(error.msg || error.message || error)
44
+ }
45
+ return Promise.reject(error)
46
+ }
47
+ )
48
+
49
+ //响应拦截器
50
+ service.interceptors.response.use(
51
+ (response) => {
52
+ util.hideLoading()
53
+
54
+ const res = response.data
55
+ console.log(res)
56
+
57
+ if (res.code !== 200) {
58
+ if (NEED_LOGIN_CODES.indexOf(res.code) >= 0) {
59
+ if (vm.needLoginCallback) {
60
+ vm.needLoginCallback()
61
+ }
62
+ } else {
63
+ util.warnToast(res.msg || 'Error')
64
+ }
65
+
66
+ return Promise.reject(new Error(res.msg || 'Error'))
67
+ }
68
+
69
+ return Promise.resolve(res)
70
+ },
71
+ (error) => {
72
+ util.hideLoading()
73
+ console.log('err' + error) // for debug
74
+ util.warnToast(error)
75
+ return Promise.reject(error)
76
+ }
77
+ )
78
+
79
+ export default service