wl-design-mobile 0.0.1 → 0.0.2

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 (53) hide show
  1. package/api/doc.js +25 -0
  2. package/api/x1.js +56 -0
  3. package/btn/lambo-big-button.vue +125 -121
  4. package/btn/lambo-button-group.vue +47 -47
  5. package/btn/lambo-medium-button.vue +123 -121
  6. package/btn/lambo-small-button-group.vue +31 -31
  7. package/btn/lambo-small-button-select.vue +53 -53
  8. package/btn/lambo-small-button.vue +123 -121
  9. package/card-item/card-row-icon.vue +0 -1
  10. package/card-item/filtrate-row.vue +1 -0
  11. package/collapse/lambo-collapse.vue +80 -80
  12. package/config/config.js +14 -0
  13. package/detail/lambo-detail-grid.vue +87 -57
  14. package/detail/lambo-detail-row.vue +59 -59
  15. package/doc/file/lambo-file-upload.vue +176 -179
  16. package/doc/file/styles/css/index.css +118 -118
  17. package/doc/img/lambo-img-upload.vue +109 -109
  18. package/edit/list/Lambo-edit-list.vue +90 -90
  19. package/edit/list/lambo-edit-card-group.vue +103 -103
  20. package/edit/select/lambo-edit-date-range.vue +135 -135
  21. package/edit/select/lambo-edit-date-time.vue +105 -0
  22. package/edit/select/lambo-edit-date.vue +108 -108
  23. package/edit/select/lambo-edit-input-textarea.vue +92 -92
  24. package/edit/select/lambo-edit-input.vue +92 -92
  25. package/edit/select/lambo-edit-multi-select.vue +160 -160
  26. package/edit/select/lambo-edit-single-select.vue +153 -153
  27. package/flow/lambo-flow-detail.vue +30 -30
  28. package/flow/lambo-flow-edit.vue +30 -30
  29. package/icon/lambo-required-red-star.vue +47 -47
  30. package/list/lambo-list.vue +1 -1
  31. package/nav/lambo-top-nav.vue +89 -89
  32. package/package.json +4 -2
  33. package/search/lambo-date-range-page.vue +191 -191
  34. package/search/lambo-date-range.vue +107 -107
  35. package/search/lambo-input.vue +74 -74
  36. package/search/lambo-multi-select.vue +125 -125
  37. package/search/lambo-org-select-page.vue +109 -109
  38. package/search/lambo-search-box.vue +55 -55
  39. package/search/lambo-single-select.vue +119 -119
  40. package/styles/base.less +75 -75
  41. package/styles/components/btn.less +7 -7
  42. package/styles/components/search.less +33 -33
  43. package/styles/components/tag.less +181 -181
  44. package/styles/index.less +4 -4
  45. package/tag/lambo-tag.vue +25 -0
  46. package/title/lambo-title1.vue +129 -129
  47. package/title/lambo-title2.vue +37 -37
  48. package/util/assist.js +43 -0
  49. package/util/axios/cacheconf.js +19 -0
  50. package/util/axios/index.js +11 -0
  51. package/util/axios/interceptors.js +101 -0
  52. package/util/bus.js +4 -0
  53. package/util/token.js +36 -0
@@ -1,37 +1,37 @@
1
- <template>
2
- <div class="indicator-card-title">
3
- <div class="tag-line"/>
4
- {{ title }}
5
- </div>
6
- </template>
7
- <script>
8
-
9
- export default {
10
- name: "LamboTitle2",
11
- props: {
12
- title: {
13
- type: String,
14
- default: "",
15
- }
16
- }
17
- }
18
- </script>
19
- <style scoped>
20
- @import "../styles/index.less";
21
-
22
- .indicator-card-title {
23
- display: flex;
24
- align-items: center;
25
- color: black;
26
- font-weight: bold;
27
- font-size: var(--ind-font-size-md);
28
- margin-left: 10px;
29
- }
30
-
31
- .indicator-card-title .tag-line {
32
- width: 3px;
33
- height: 14px;
34
- background-color: var(--scl-blue);
35
- margin-right: var(--ind-padding-xs);
36
- }
37
- </style>
1
+ <template>
2
+ <div class="indicator-card-title">
3
+ <div class="tag-line"/>
4
+ {{ title }}
5
+ </div>
6
+ </template>
7
+ <script>
8
+
9
+ export default {
10
+ name: "LamboTitle2",
11
+ props: {
12
+ title: {
13
+ type: String,
14
+ default: "",
15
+ }
16
+ }
17
+ }
18
+ </script>
19
+ <style scoped>
20
+ @import "../styles/index.less";
21
+
22
+ .indicator-card-title {
23
+ display: flex;
24
+ align-items: center;
25
+ color: black;
26
+ font-weight: bold;
27
+ font-size: var(--ind-font-size-md);
28
+ margin-left: 10px;
29
+ }
30
+
31
+ .indicator-card-title .tag-line {
32
+ width: 3px;
33
+ height: 14px;
34
+ background-color: var(--scl-blue);
35
+ margin-right: var(--ind-padding-xs);
36
+ }
37
+ </style>
package/util/assist.js ADDED
@@ -0,0 +1,43 @@
1
+ // 深拷贝
2
+ export function deepCopy(data) {
3
+ let i;
4
+ const t = typeOf(data);
5
+ let o;
6
+
7
+ if (t === 'array') {
8
+ o = [];
9
+ } else if (t === 'object') {
10
+ o = {};
11
+ } else {
12
+ return data;
13
+ }
14
+
15
+ if (t === 'array') {
16
+ for (i = 0; i < data.length; i++) {
17
+ o.push(deepCopy(data[i]));
18
+ }
19
+ } else if (t === 'object') {
20
+ for (i in data) {
21
+ o[i] = deepCopy(data[i]);
22
+ }
23
+ }
24
+ return o;
25
+ }
26
+
27
+ // 判断对象类型
28
+ export function typeOf(obj) {
29
+ const toString = Object.prototype.toString;
30
+ const map = {
31
+ '[object Boolean]': 'boolean',
32
+ '[object Number]': 'number',
33
+ '[object String]': 'string',
34
+ '[object Function]': 'function',
35
+ '[object Array]': 'array',
36
+ '[object Date]': 'date',
37
+ '[object RegExp]': 'regExp',
38
+ '[object Undefined]': 'undefined',
39
+ '[object Null]': 'null',
40
+ '[object Object]': 'object'
41
+ };
42
+ return map[toString.call(obj)];
43
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 配置在该文件下的正则匹配都会被缓存
3
+ * @type {RegExp[]}
4
+ */
5
+ const cacheRules = [
6
+ /manage\/menu\/list/,
7
+ /manage\/menu\/list/,
8
+ /dict\/getDictsMap/,
9
+ /dict\/getDicts/,
10
+ /dict\/getDictsForMulti/,
11
+ /upmsOrg\/getSubOrgCodes/,
12
+ /upmsOrg\/getSubDeptCodesByOrgCode/,
13
+ /upmsOrg\/getProvincesCodes/,
14
+ /upmsOrg\/getCitysCodes/,
15
+ /upmsOrg\/getIndustrysCodes/,
16
+ /manage\/permission\/check/
17
+ ];
18
+
19
+ export default cacheRules
@@ -0,0 +1,11 @@
1
+ import axios from 'axios'
2
+ import config from '../../config/config'
3
+ import interceptors from './interceptors'
4
+
5
+ const ajax = axios.create();
6
+ ajax.defaults.baseURL = config.serverContext
7
+ ajax.defaults.headers.common['Content-Type'] = 'application/json;charset=UTF-8'
8
+ ajax.interceptors.request.use(interceptors.requestInterceptors, interceptors.requestError);
9
+ ajax.interceptors.response.use(interceptors.responseInterceptors, interceptors.responseError);
10
+
11
+ export {ajax as axios}
@@ -0,0 +1,101 @@
1
+ import cacheRules from "./cacheconf";
2
+ import {getToken, getUrlParams, TOKEN_KEY} from '../token'
3
+ import Bus from '../bus';
4
+ import {Dialog} from 'vant'
5
+
6
+ let timer1, timer2;
7
+ let hasDialog = false;
8
+
9
+ function requestInterceptors(config) {
10
+ const params = getUrlParams();
11
+
12
+ let token = getToken();
13
+ if (token) {
14
+ config.headers.token = token;
15
+ }
16
+
17
+ //sso_token认证
18
+ if (Object.prototype.hasOwnProperty.call(params, 'sso_token') || sessionStorage.getItem('sso_token')) {
19
+ config.params = Object.assign({
20
+ sso_token: params.sso_token || sessionStorage.getItem('sso_token'),
21
+ sso_id: params.sso_id
22
+ }, config.params)
23
+ }
24
+
25
+ //oauth认证
26
+ if (Object.prototype.hasOwnProperty.call(params, 'token')) {
27
+ if (config.url.indexOf('?') === -1) {
28
+ config.url = config.url + "?token=" + params.token + "&ssoid=" + params.ssoid;
29
+ } else {
30
+ config.url = config.url + "&token=" + params.token + "&ssoid=" + params.ssoid;
31
+ }
32
+ }
33
+
34
+ if (config.method === 'post') {
35
+ // payload为自定义不使用qs.stringify序列化的标记,默认config.payload == undefined;
36
+ // 为true时用于匹配@requestBody定义参数的接口
37
+ // 使用方式:post(config.AAAServerContext + '/AAA/BBB/CCC', { ...paramRequestBody }, { payload: true })
38
+ if (!config.payload) {
39
+ config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
40
+ // config.data = qs.stringify(config.data)
41
+ }
42
+ } else if (config.method === 'get') {
43
+ for (let rule of cacheRules) {
44
+ if (rule.test(config.url)) {
45
+ return config;
46
+ }
47
+ }
48
+ if (config.url.indexOf('?') === -1) {
49
+ config.url = config.url + "?t=" + new Date().getTime();
50
+ } else {
51
+ config.url = config.url + "&t=" + new Date().getTime();
52
+ }
53
+ }
54
+ return config;
55
+ }
56
+
57
+ function requestError(error) {
58
+ console.error("服务器内部异常,请稍候再试", error);
59
+ return Promise.reject(error);
60
+ }
61
+
62
+ function responseInterceptors(response) {
63
+ let data = response.data;
64
+
65
+ if (data instanceof Object) {
66
+ const code = data["code"];
67
+ if (code === 10106) {
68
+ sessionStorage.removeItem(TOKEN_KEY)
69
+ if (!hasDialog) {
70
+ clearTimeout(timer1);
71
+ timer1 = setTimeout(function () {
72
+ hasDialog = true;
73
+ Dialog.alert({
74
+ message: '会话已失效,请重新登录',
75
+ theme: 'round-button',
76
+ confirmButtonColor: '#0070D2'
77
+ }).then(() => {
78
+ hasDialog = false;
79
+ Bus.$emit("needLogin");
80
+ });
81
+ }, 500)
82
+ }
83
+ }
84
+ }
85
+ return data;
86
+ }
87
+
88
+ function responseError(error) {
89
+ clearTimeout(timer2);
90
+ timer2 = setTimeout(function () {
91
+ console.error("服务器内部异常,请稍候再试");
92
+ }, 500)
93
+ return Promise.reject(error);
94
+ }
95
+
96
+ export default {
97
+ requestInterceptors,
98
+ responseInterceptors,
99
+ requestError,
100
+ responseError
101
+ }
package/util/bus.js ADDED
@@ -0,0 +1,4 @@
1
+ import Vue from 'vue'
2
+
3
+ const Bus = new Vue();
4
+ export default Bus;
package/util/token.js ADDED
@@ -0,0 +1,36 @@
1
+ export const TOKEN_KEY = 'lambo-token'
2
+
3
+ export const COOKIE_KEY = 'lambo-sso-key'
4
+
5
+ export const SSO_TOKEN_KEY = 'lambo-sso-token'
6
+
7
+ export const setToken = (token) => {
8
+ sessionStorage.setItem(TOKEN_KEY, token)
9
+ }
10
+
11
+ export const getToken = () => {
12
+ const token = sessionStorage.getItem(TOKEN_KEY)
13
+ if (token) return token
14
+ else return false
15
+ }
16
+
17
+ /**
18
+ * 获取浏览器地址url中的参数
19
+ * @param url
20
+ * @returns {Object}
21
+ */
22
+ export const getUrlParams = (url) => {
23
+ if (!url) {
24
+ url = location.search;
25
+ }
26
+ //const url = location.search; //获取url中"?"符后的字串
27
+ const theRequest = {};
28
+ if (url.indexOf("?") !== -1) {
29
+ const str = url.substr(1);
30
+ let strs = str.split("&");
31
+ for (let i = 0; i < strs.length; i++) {
32
+ theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
33
+ }
34
+ }
35
+ return theRequest;
36
+ }