@ajaxjs/util 1.0.9 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +11 -20
- package/dist/index.d.ts +34 -6
- package/dist/index.js +45 -8
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +1 -0
- package/dist/main.js +16 -0
- package/dist/main.js.map +1 -0
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.js +44 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router.d.ts +3 -0
- package/dist/router.js +44 -0
- package/dist/router.js.map +1 -0
- package/dist/shims-vue.d.ts +4 -0
- package/dist/style/common-functions.less +294 -0
- package/dist/style/reset.less +19 -0
- package/dist/util/cookies.d.ts +18 -0
- package/dist/util/cookies.js +46 -0
- package/dist/util/cookies.js.map +1 -0
- package/dist/util/dom.d.ts +17 -0
- package/dist/util/dom.js +44 -0
- package/dist/util/dom.js.map +1 -0
- package/dist/util/utils.d.ts +51 -0
- package/dist/util/utils.js +174 -0
- package/dist/util/utils.js.map +1 -0
- package/dist/{xhr-config.js.map → util/xhr-config.js.map} +1 -1
- package/dist/{xhr.d.ts → util/xhr.d.ts} +16 -1
- package/dist/{xhr.js → util/xhr.js} +84 -36
- package/dist/util/xhr.js.map +1 -0
- package/dist/widget/AccordionMenu.vue +140 -0
- package/dist/widget/AdjustFontSize.vue +65 -0
- package/dist/widget/Article.vue +59 -0
- package/dist/widget/EmptyContent.d.ts +5 -0
- package/dist/widget/EmptyContent.js +7 -0
- package/dist/widget/EmptyContent.js.map +1 -0
- package/dist/widget/Expander.vue +65 -0
- package/dist/widget/FileUploader/FileUploader.d.ts +70 -0
- package/dist/widget/FileUploader/FileUploader.js +139 -0
- package/dist/widget/FileUploader/FileUploader.js.map +1 -0
- package/dist/widget/FileUploader/FileUploader.less +68 -0
- package/dist/widget/FileUploader/FileUploader.ts +156 -0
- package/dist/widget/FileUploader/FileUploader.vue +43 -0
- package/dist/widget/HtmlEditor/HtmlEditor.d.ts +70 -0
- package/dist/widget/HtmlEditor/HtmlEditor.js +287 -0
- package/dist/widget/HtmlEditor/HtmlEditor.js.map +1 -0
- package/dist/widget/HtmlEditor/HtmlEditor.less +345 -0
- package/dist/widget/HtmlEditor/HtmlEditor.ts +339 -0
- package/dist/widget/HtmlEditor/HtmlEditor.vue +70 -0
- package/dist/widget/HtmlEditor/html-editor-HtmlSanitizer.js +103 -0
- package/dist/widget/ImageEnlarger.vue +105 -0
- package/dist/widget/OpacityBanner.vue +125 -0
- package/dist/widget/ProcessLine.vue +133 -0
- package/dist/widget/Resize.d.ts +51 -0
- package/dist/widget/Resize.js +133 -0
- package/dist/widget/Resize.js.map +1 -0
- package/dist/widget/Resize.ts +152 -0
- package/dist/widget/Resize.vue +104 -0
- package/dist/widget/TreeSelector.vue +4 -0
- package/dist/widget/calendar/BetweenDate.vue +63 -0
- package/dist/widget/calendar/Calendar.d.ts +55 -0
- package/dist/widget/calendar/Calendar.js +145 -0
- package/dist/widget/calendar/Calendar.js.map +1 -0
- package/dist/widget/calendar/Calendar.less +210 -0
- package/dist/widget/calendar/Calendar.ts +167 -0
- package/dist/widget/calendar/Calendar.vue +52 -0
- package/dist/widget/calendar/CalendarInput.vue +71 -0
- package/dist/widget/form/validator.d.ts +70 -0
- package/dist/widget/form/validator.js +220 -0
- package/dist/widget/form/validator.js.map +1 -0
- package/dist/widget/form/validator.ts +289 -0
- package/dist/widget/play-ground/sku.vue +93 -0
- package/package.json +31 -15
- package/dist/base.d.ts +0 -42
- package/dist/base.js +0 -133
- package/dist/base.js.map +0 -1
- package/dist/entity.d.ts +0 -26
- package/dist/entity.js +0 -2
- package/dist/entity.js.map +0 -1
- package/dist/xhr.js.map +0 -1
- package/src/base.ts +0 -145
- package/src/entity.ts +0 -31
- package/src/index.ts +0 -13
- package/src/xhr-config.ts +0 -25
- package/src/xhr.ts +0 -233
- package/tsconfig.json +0 -73
- /package/dist/{xhr-config.d.ts → util/xhr-config.d.ts} +0 -0
- /package/dist/{xhr-config.js → util/xhr-config.js} +0 -0
|
@@ -2,7 +2,21 @@ import { XhrConfig } from './xhr-config';
|
|
|
2
2
|
/**
|
|
3
3
|
* 处理响应的回调函数
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
type XhrCallback = (json: {}, text: string) => void;
|
|
6
|
+
/**
|
|
7
|
+
* 设置全局请求的 head 参数
|
|
8
|
+
*
|
|
9
|
+
* @param param
|
|
10
|
+
*/
|
|
11
|
+
export declare function setBaseHeadParams(params: any): void;
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param url
|
|
15
|
+
* @param cb
|
|
16
|
+
* @param params
|
|
17
|
+
* @param cfg
|
|
18
|
+
*/
|
|
19
|
+
export declare function xhr_post_upload(url: string, cb: XhrCallback, params: Document | XMLHttpRequestBodyInit, cfg?: XhrConfig): void;
|
|
6
20
|
/**
|
|
7
21
|
* XHR GET 请求
|
|
8
22
|
*
|
|
@@ -53,4 +67,5 @@ export declare function toParams(param: any): string;
|
|
|
53
67
|
* @returns
|
|
54
68
|
*/
|
|
55
69
|
export declare function getQuery(val: string): string;
|
|
70
|
+
export declare function getPageList(self: any, listArray: any, callback?: Function): XhrCallback;
|
|
56
71
|
export {};
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getQuery = exports.toParams = exports.xhr_put = exports.xhr_post = exports.xhr_del = exports.xhr_get = void 0;
|
|
3
|
+
exports.getPageList = exports.getQuery = exports.toParams = exports.xhr_put = exports.xhr_post = exports.xhr_del = exports.xhr_get = exports.xhr_post_upload = exports.setBaseHeadParams = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* 默认的请求配置
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
timeout:
|
|
7
|
+
const DEFAULT_XHR_CFG = {
|
|
8
|
+
timeout: 5000,
|
|
9
9
|
withCredentials: false,
|
|
10
10
|
parseContentType: 'json'
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* 全局请求的 head 参数
|
|
14
|
+
*/
|
|
15
|
+
let BASE_HEAD_PARAMS = null;
|
|
16
|
+
/**
|
|
17
|
+
* 设置全局请求的 head 参数
|
|
18
|
+
*
|
|
19
|
+
* @param param
|
|
20
|
+
*/
|
|
21
|
+
function setBaseHeadParams(params) {
|
|
22
|
+
if (BASE_HEAD_PARAMS === null)
|
|
23
|
+
BASE_HEAD_PARAMS = {};
|
|
24
|
+
Object.assign(BASE_HEAD_PARAMS, params);
|
|
25
|
+
}
|
|
26
|
+
exports.setBaseHeadParams = setBaseHeadParams;
|
|
12
27
|
/**
|
|
13
28
|
*
|
|
14
29
|
* @param getOrDel
|
|
@@ -17,9 +32,8 @@ var DEFAULT_XHR_CFG = {
|
|
|
17
32
|
* @param params
|
|
18
33
|
* @param cfg
|
|
19
34
|
*/
|
|
20
|
-
function getOrDel(getOrDel, url, cb, params, cfg) {
|
|
21
|
-
|
|
22
|
-
var xhr = initXhr(cfg);
|
|
35
|
+
function getOrDel(getOrDel, url, cb, params, cfg = DEFAULT_XHR_CFG) {
|
|
36
|
+
let xhr = initXhr(cfg);
|
|
23
37
|
if (params != null) {
|
|
24
38
|
if (url.indexOf('?') != -1)
|
|
25
39
|
url += '&' + toParams(params);
|
|
@@ -30,6 +44,9 @@ function getOrDel(getOrDel, url, cb, params, cfg) {
|
|
|
30
44
|
xhr.onreadystatechange = function () {
|
|
31
45
|
responseHandle(this, cb, cfg);
|
|
32
46
|
};
|
|
47
|
+
if (BASE_HEAD_PARAMS) // 设置自定义请求头
|
|
48
|
+
for (let key in BASE_HEAD_PARAMS)
|
|
49
|
+
xhr.setRequestHeader(key, BASE_HEAD_PARAMS[key]);
|
|
33
50
|
xhr.send();
|
|
34
51
|
}
|
|
35
52
|
/**
|
|
@@ -40,22 +57,46 @@ function getOrDel(getOrDel, url, cb, params, cfg) {
|
|
|
40
57
|
* @param params
|
|
41
58
|
* @param cfg
|
|
42
59
|
*/
|
|
43
|
-
function postOrPut(method, url, cb, params, cfg) {
|
|
44
|
-
|
|
45
|
-
var xhr = initXhr(cfg);
|
|
60
|
+
function postOrPut(method, url, cb, params, cfg = DEFAULT_XHR_CFG) {
|
|
61
|
+
let xhr = initXhr(cfg);
|
|
46
62
|
xhr.open(method, url, true);
|
|
47
63
|
xhr.onreadystatechange = function () {
|
|
48
64
|
responseHandle(this, cb, cfg);
|
|
49
65
|
};
|
|
50
|
-
|
|
66
|
+
if (BASE_HEAD_PARAMS) // 设置自定义请求头
|
|
67
|
+
for (let key in BASE_HEAD_PARAMS)
|
|
68
|
+
xhr.setRequestHeader(key, BASE_HEAD_PARAMS[key]);
|
|
69
|
+
// 此方法必须在 open() 方法和 send() 之间调用
|
|
51
70
|
if (!cfg.contentType) // 如未设置,默认为表单请求
|
|
52
71
|
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
53
|
-
|
|
72
|
+
else
|
|
73
|
+
xhr.setRequestHeader("Content-Type", cfg.contentType);
|
|
74
|
+
let _params = typeof params != 'string' ? toParams(params) : params;
|
|
54
75
|
if (_params)
|
|
55
76
|
xhr.send(_params);
|
|
56
77
|
else
|
|
57
78
|
xhr.send();
|
|
58
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
* @param url
|
|
83
|
+
* @param cb
|
|
84
|
+
* @param params
|
|
85
|
+
* @param cfg
|
|
86
|
+
*/
|
|
87
|
+
function xhr_post_upload(url, cb, params, cfg = DEFAULT_XHR_CFG) {
|
|
88
|
+
let xhr = initXhr(cfg);
|
|
89
|
+
xhr.open('post', url, true);
|
|
90
|
+
xhr.onreadystatechange = function () {
|
|
91
|
+
responseHandle(this, cb, cfg);
|
|
92
|
+
};
|
|
93
|
+
if (BASE_HEAD_PARAMS) // 设置自定义请求头
|
|
94
|
+
for (let key in BASE_HEAD_PARAMS)
|
|
95
|
+
xhr.setRequestHeader(key, BASE_HEAD_PARAMS[key]);
|
|
96
|
+
// 什么 Content-Type 都不设置
|
|
97
|
+
xhr.send(params);
|
|
98
|
+
}
|
|
99
|
+
exports.xhr_post_upload = xhr_post_upload;
|
|
59
100
|
/**
|
|
60
101
|
* XHR GET 请求
|
|
61
102
|
*
|
|
@@ -64,8 +105,7 @@ function postOrPut(method, url, cb, params, cfg) {
|
|
|
64
105
|
* @param params 参数,必填,如无填空字符串 "";参数类型是json;参数值会进行 URL 编码,最后附加到 QueryString 中
|
|
65
106
|
* @param cfg 配置,可选的
|
|
66
107
|
*/
|
|
67
|
-
function xhr_get(url, cb, params, cfg) {
|
|
68
|
-
if (cfg === void 0) { cfg = DEFAULT_XHR_CFG; }
|
|
108
|
+
function xhr_get(url, cb, params, cfg = DEFAULT_XHR_CFG) {
|
|
69
109
|
getOrDel('get', url, cb, params, cfg);
|
|
70
110
|
}
|
|
71
111
|
exports.xhr_get = xhr_get;
|
|
@@ -77,8 +117,7 @@ exports.xhr_get = xhr_get;
|
|
|
77
117
|
* @param params 参数,必填,如无填空字符串 "";参数类型是json;参数值会进行 URL 编码,最后附加到 QueryString 中
|
|
78
118
|
* @param cfg 配置,可选的
|
|
79
119
|
*/
|
|
80
|
-
function xhr_del(url, cb, params, cfg) {
|
|
81
|
-
if (cfg === void 0) { cfg = DEFAULT_XHR_CFG; }
|
|
120
|
+
function xhr_del(url, cb, params, cfg = DEFAULT_XHR_CFG) {
|
|
82
121
|
getOrDel('delete', url, cb, params, cfg);
|
|
83
122
|
}
|
|
84
123
|
exports.xhr_del = xhr_del;
|
|
@@ -90,8 +129,7 @@ exports.xhr_del = xhr_del;
|
|
|
90
129
|
* @param params 参数,必填,如无填空字符串 "";参数类型可以是字符串或 json;参数值会进行 URL 编码
|
|
91
130
|
* @param cfg 配置,可选的
|
|
92
131
|
*/
|
|
93
|
-
function xhr_post(url, cb, params, cfg) {
|
|
94
|
-
if (cfg === void 0) { cfg = DEFAULT_XHR_CFG; }
|
|
132
|
+
function xhr_post(url, cb, params, cfg = DEFAULT_XHR_CFG) {
|
|
95
133
|
postOrPut('post', url, cb, params, cfg);
|
|
96
134
|
}
|
|
97
135
|
exports.xhr_post = xhr_post;
|
|
@@ -103,8 +141,7 @@ exports.xhr_post = xhr_post;
|
|
|
103
141
|
* @param params 参数,必填,如无填空字符串 "";参数类型可以是字符串或 json;参数值会进行 URL 编码
|
|
104
142
|
* @param cfg 配置,可选的
|
|
105
143
|
*/
|
|
106
|
-
function xhr_put(url, cb, params, cfg) {
|
|
107
|
-
if (cfg === void 0) { cfg = DEFAULT_XHR_CFG; }
|
|
144
|
+
function xhr_put(url, cb, params, cfg = DEFAULT_XHR_CFG) {
|
|
108
145
|
postOrPut('put', url, cb, params, cfg);
|
|
109
146
|
}
|
|
110
147
|
exports.xhr_put = xhr_put;
|
|
@@ -115,10 +152,10 @@ exports.xhr_put = xhr_put;
|
|
|
115
152
|
* @returns
|
|
116
153
|
*/
|
|
117
154
|
function initXhr(cfg) {
|
|
118
|
-
|
|
155
|
+
let xhr = new XMLHttpRequest();
|
|
119
156
|
if (cfg && cfg.timeout) {
|
|
120
157
|
xhr.timeout = cfg.timeout;
|
|
121
|
-
xhr.ontimeout =
|
|
158
|
+
xhr.ontimeout = (e) => console.error('系统异常,XHR 连接服务超时');
|
|
122
159
|
}
|
|
123
160
|
if (cfg && cfg.withCredentials)
|
|
124
161
|
xhr.withCredentials = true;
|
|
@@ -130,17 +167,16 @@ function initXhr(cfg) {
|
|
|
130
167
|
* @param xhr
|
|
131
168
|
*/
|
|
132
169
|
function errHandle(xhr) {
|
|
133
|
-
|
|
170
|
+
let msg;
|
|
134
171
|
if (xhr.status <= 400)
|
|
135
172
|
msg = '请求参数错误或者权限不足。';
|
|
136
173
|
else if (xhr.status <= 500)
|
|
137
174
|
msg = '服务端异常。';
|
|
138
175
|
else
|
|
139
|
-
msg =
|
|
176
|
+
msg = `未知异常,HTTP code:${xhr.status}。`;
|
|
140
177
|
if (!xhr.responseText)
|
|
141
178
|
msg += " 服务端返回空的字符串!";
|
|
142
179
|
console.error(msg, xhr.responseText);
|
|
143
|
-
alert(msg);
|
|
144
180
|
}
|
|
145
181
|
/**
|
|
146
182
|
* 响应处理
|
|
@@ -152,8 +188,8 @@ function errHandle(xhr) {
|
|
|
152
188
|
function responseHandle(xhr, cb, cfg) {
|
|
153
189
|
if (xhr.readyState == 4) {
|
|
154
190
|
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
|
|
155
|
-
|
|
156
|
-
|
|
191
|
+
let text = xhr.responseText;
|
|
192
|
+
let json;
|
|
157
193
|
if (!text)
|
|
158
194
|
console.warn('服务端没有返回任何字符串');
|
|
159
195
|
switch (cfg.parseContentType) {
|
|
@@ -168,8 +204,8 @@ function responseHandle(xhr, cb, cfg) {
|
|
|
168
204
|
json = JSON.parse(text);
|
|
169
205
|
}
|
|
170
206
|
catch (e) {
|
|
207
|
+
console.error('解析 JSON 时候发生错误,非法 JSON');
|
|
171
208
|
console.warn(e);
|
|
172
|
-
alert('解析 JSON 时候发生错误,非法 JSON');
|
|
173
209
|
}
|
|
174
210
|
}
|
|
175
211
|
cb && cb(json, text);
|
|
@@ -185,10 +221,10 @@ function responseHandle(xhr, cb, cfg) {
|
|
|
185
221
|
* @returns URL 参数列表
|
|
186
222
|
*/
|
|
187
223
|
function toParams(param) {
|
|
188
|
-
|
|
189
|
-
for (
|
|
190
|
-
if (typeof param[
|
|
191
|
-
result += "&" +
|
|
224
|
+
let result = "";
|
|
225
|
+
for (let name in param) {
|
|
226
|
+
if (typeof param[name] != "function")
|
|
227
|
+
result += "&" + name + "=" + encodeURIComponent(param[name]);
|
|
192
228
|
}
|
|
193
229
|
return result.substring(1);
|
|
194
230
|
}
|
|
@@ -200,15 +236,27 @@ exports.toParams = toParams;
|
|
|
200
236
|
* @returns
|
|
201
237
|
*/
|
|
202
238
|
function getQuery(val) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
for (
|
|
207
|
-
|
|
239
|
+
const w = location.hash.indexOf('?');
|
|
240
|
+
const query = location.hash.substring(w + 1);
|
|
241
|
+
let vars = query.split('&');
|
|
242
|
+
for (let i = 0; i < vars.length; i++) {
|
|
243
|
+
const pair = vars[i].split('=');
|
|
208
244
|
if (pair[0] == val)
|
|
209
245
|
return pair[1];
|
|
210
246
|
}
|
|
211
247
|
return '';
|
|
212
248
|
}
|
|
213
249
|
exports.getQuery = getQuery;
|
|
250
|
+
function getPageList(self, listArray, callback) {
|
|
251
|
+
return (j) => {
|
|
252
|
+
if (j.status) {
|
|
253
|
+
listArray.total = j.total;
|
|
254
|
+
listArray.data = j.data;
|
|
255
|
+
callback && callback();
|
|
256
|
+
}
|
|
257
|
+
else
|
|
258
|
+
self.$Message.warning(j.message || '获取数据失败');
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
exports.getPageList = getPageList;
|
|
214
262
|
//# sourceMappingURL=xhr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xhr.js","sourceRoot":"","sources":["../../src/util/xhr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<ul class="aj-accordion-menu" @click="onClk">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
</ul>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script lang="ts">
|
|
8
|
+
/**
|
|
9
|
+
* 内部子菜单的高亮
|
|
10
|
+
*
|
|
11
|
+
* @param ev
|
|
12
|
+
*/
|
|
13
|
+
function highlightSubItem(ev: Event) {
|
|
14
|
+
let li: Element,
|
|
15
|
+
el: Element = ev.target as Element;
|
|
16
|
+
|
|
17
|
+
if (el.tagName == "A" && el.getAttribute("target")) {
|
|
18
|
+
li = el.parentNode as Element;
|
|
19
|
+
li.querySelectorAll("li").forEach((_el: Element) => {
|
|
20
|
+
if (_el == li) _el.classList.add("selected");
|
|
21
|
+
else _el.classList.remove("selected");
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default {
|
|
27
|
+
methods: {
|
|
28
|
+
onClk(ev: Event): void {
|
|
29
|
+
let children: HTMLCollection = this.$el.children;
|
|
30
|
+
highlightSubItem(ev);
|
|
31
|
+
let _btn: Element = ev.target as Element;
|
|
32
|
+
|
|
33
|
+
if (
|
|
34
|
+
_btn &&
|
|
35
|
+
_btn.tagName == "H3" &&
|
|
36
|
+
(_btn.parentNode as Element).tagName == "LI"
|
|
37
|
+
) {
|
|
38
|
+
_btn = _btn.parentNode as Element;
|
|
39
|
+
|
|
40
|
+
for (let btn: Element, i: number = 0, j = children.length; i < j; i++) {
|
|
41
|
+
btn = children[i];
|
|
42
|
+
let ul = btn.querySelector("ul");
|
|
43
|
+
|
|
44
|
+
if (btn == _btn) {
|
|
45
|
+
if (btn.className.indexOf("pressed") != -1) {
|
|
46
|
+
btn.classList.remove("pressed"); // 再次点击,隐藏!
|
|
47
|
+
if (ul) ul.style.height = "0px";
|
|
48
|
+
} else {
|
|
49
|
+
if (ul) ul.style.height = ul.scrollHeight + "px";
|
|
50
|
+
btn.classList.add("pressed");
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
btn.classList.remove("pressed");
|
|
54
|
+
if (ul) ul.style.height = "0px";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
} else return;
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
<style lang="less" scoped>
|
|
64
|
+
@import "../style/common-functions.less";
|
|
65
|
+
|
|
66
|
+
// 折叠菜单 Accordion Menu
|
|
67
|
+
.aj-accordion {
|
|
68
|
+
& > li h3 {
|
|
69
|
+
cursor: pointer;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.pressed {
|
|
73
|
+
& h3 {
|
|
74
|
+
color: black;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
& > li > ul {
|
|
79
|
+
.transition (height .5s cubic-bezier(0, 1, 0.5, 1));;
|
|
80
|
+
overflow: hidden;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
ul {
|
|
84
|
+
height: 0;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.aj-accordion-menu {
|
|
89
|
+
.aj-accordion ();
|
|
90
|
+
overflow: hidden;
|
|
91
|
+
|
|
92
|
+
& > li {
|
|
93
|
+
border-top: 1px solid white;
|
|
94
|
+
border-bottom: 1px solid lightgray;
|
|
95
|
+
|
|
96
|
+
&.pressed {
|
|
97
|
+
border-top: 0;
|
|
98
|
+
border-bottom: 1px solid lightgray;
|
|
99
|
+
box-shadow: inset 0px 10px 15px -15px gray;
|
|
100
|
+
|
|
101
|
+
h3 {
|
|
102
|
+
font-weight: bold;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
ul {
|
|
107
|
+
li {
|
|
108
|
+
// list-style-type: disc;
|
|
109
|
+
padding-left: 15%;
|
|
110
|
+
|
|
111
|
+
a {
|
|
112
|
+
width: 100%;
|
|
113
|
+
display: block;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
&.selected {
|
|
117
|
+
a {
|
|
118
|
+
color: black;
|
|
119
|
+
font-weight: bold;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
h3,
|
|
126
|
+
li {
|
|
127
|
+
padding: 5px 0 5px 15px;
|
|
128
|
+
letter-spacing: 2px;
|
|
129
|
+
line-height: 20px;
|
|
130
|
+
color: #939da8;
|
|
131
|
+
font-size: 12px;
|
|
132
|
+
|
|
133
|
+
&:hover,
|
|
134
|
+
a:hover {
|
|
135
|
+
color: black;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
</style>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="aj-adjust-font-size">
|
|
3
|
+
<span>字体大小</span>
|
|
4
|
+
<ul @click="onClk">
|
|
5
|
+
<li><label><input type="radio" name="fontSize" /> 小</label></li>
|
|
6
|
+
<li><label><input type="radio" name="fontSize" /> 中</label></li>
|
|
7
|
+
<li><label><input type="radio" name="fontSize" /> 大</label></li>
|
|
8
|
+
</ul>
|
|
9
|
+
</div>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script lang="ts">
|
|
13
|
+
/**
|
|
14
|
+
* 调整正文字体大小
|
|
15
|
+
*/
|
|
16
|
+
export default {
|
|
17
|
+
props: {
|
|
18
|
+
articleTarget: { type: String, default: "article p" }, // 正文所在的位置,通过 CSS Selector 定位
|
|
19
|
+
},
|
|
20
|
+
methods: {
|
|
21
|
+
onClk(ev: Event): void {
|
|
22
|
+
let el: Element = ev.target as Element;
|
|
23
|
+
let setFontSize = (fontSize: string): void => {
|
|
24
|
+
document.body
|
|
25
|
+
.querySelectorAll(this.$props.articleTarget)
|
|
26
|
+
.forEach((p: HTMLParagraphElement) => (p.style.fontSize = fontSize));
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
if (el.tagName == "LABEL" || el.tagName == "INPUT") {
|
|
30
|
+
if (el.tagName != "LABEL") el = el.parentNode as Element;
|
|
31
|
+
|
|
32
|
+
if (el.innerHTML.indexOf("大") != -1) setFontSize("12pt");
|
|
33
|
+
else if (el.innerHTML.indexOf("中") != -1) setFontSize("10.5pt");
|
|
34
|
+
else if (el.innerHTML.indexOf("小") != -1) setFontSize("9pt");
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<style lang="less" scoped>
|
|
42
|
+
.aj-adjust-font-size {
|
|
43
|
+
width: 210px;
|
|
44
|
+
font-size: 0.8rem;
|
|
45
|
+
padding: 2px 0;
|
|
46
|
+
|
|
47
|
+
span {
|
|
48
|
+
float: left;
|
|
49
|
+
width: 35%;
|
|
50
|
+
display: block;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
ul {
|
|
54
|
+
width: 65%;
|
|
55
|
+
float: right;
|
|
56
|
+
cursor: pointer;
|
|
57
|
+
|
|
58
|
+
li {
|
|
59
|
+
display: block;
|
|
60
|
+
float: right;
|
|
61
|
+
width: 33%;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
</style>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<article>
|
|
3
|
+
<h2>{{title}}</h2>
|
|
4
|
+
|
|
5
|
+
<div class="toolbar">
|
|
6
|
+
<span v-if="author">作者: {{author}}</span>
|
|
7
|
+
<a :href="source" v-if="source" target="_blank">
|
|
8
|
+
|
|
9
|
+
<svg width="16px" height="16px" viewBox="0 0 24 24" style="cursor:pointer;vertical-align: middle;">
|
|
10
|
+
<g stroke-width="2.1" stroke="#666" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
11
|
+
<polyline points="17 13.5 17 19.5 5 19.5 5 7.5 11 7.5"></polyline>
|
|
12
|
+
<path d="M14,4.5 L20,4.5 L20,10.5 M20,4.5 L11,13.5"></path>
|
|
13
|
+
</g>
|
|
14
|
+
</svg>
|
|
15
|
+
来源</a>
|
|
16
|
+
<FontSize style="float:right;clear:both"></FontSize>
|
|
17
|
+
</div>
|
|
18
|
+
<slot></slot>
|
|
19
|
+
</article>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
import FontSize from './AdjustFontSize.vue';
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
props: {
|
|
27
|
+
title: String, author: String, source: String
|
|
28
|
+
},
|
|
29
|
+
components: { FontSize }
|
|
30
|
+
}
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<style lang="less" scoped>
|
|
34
|
+
@import "../style/common-functions.less";
|
|
35
|
+
|
|
36
|
+
article {
|
|
37
|
+
& > p {
|
|
38
|
+
.aj-text-function();
|
|
39
|
+
text-indent: 2em;
|
|
40
|
+
}
|
|
41
|
+
& > img,
|
|
42
|
+
& > p > img {
|
|
43
|
+
max-width: 80%;
|
|
44
|
+
margin: 0 auto;
|
|
45
|
+
display: block;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
h2 {
|
|
49
|
+
.aj-text-title();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.toolbar {
|
|
53
|
+
height: 15px;
|
|
54
|
+
margin: 30px 0;
|
|
55
|
+
font-size: 0.8rem;
|
|
56
|
+
text-align: right;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
</style>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
empty: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBzdHJva2U9IiNEQURFRTMiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTUwLjU5OCAxMS4wOTNDMjUuNTU0IDE1Ljc2IDExLjcyOCAyNC41NzMgOS4xMiAzNy41MzUgNS45OSA2OC42NDQgMTI4LjA4IDcwLjIgMTEzLjIxIDEwMi44NjNjLTcuODI2IDEwLjg4Ny0yNS41NjYgMTMuMjItNTMuMjE5IDYuOTk5IiBzdHJva2UtZGFzaGFycmF5PSIzIi8+PGcgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZmlsbD0iI0ZGRiIgZD0ibTU1IDY4LjI3IDQyLjE2Mi0xMi4zMjR2NDkuNTc3TDU1IDExNy41Njh6TTU1IDY4LjEwOCAxNi4wODEgNTUuOTQ2djQ5LjU3N0w1NSAxMTcuNTY4eiIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik0xNi4wMTIgNTYuMDQgNTUgNjguMTA4IDQyLjUgODYuNzU3IDQuNzMgNzMuMDYzek05Ny4xNjIgNTUuOTQ2IDU1IDY4LjEwOGwxMi44MSAxOC42NDkgNDIuMzI1LTE0LjE2NnoiLz48cGF0aCBmaWxsPSIjRjZGN0Y4IiBkPSJtMTYuMDgxIDU1Ljk0NiA0My4zNDctMTIuMTYyIDM3LjczNCAxMi4xNjJMNTUgNjguMTA4eiIvPjwvZz48ZyBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBmaWxsPSIjRkZGIiBkPSJNNzguMDY4IDEwLjMxIDYwLjA0IDguOGwyLjc5LTUuMzF6Ii8+PHBhdGggZmlsbD0iI0Y2RjdGOCIgZD0iTTc4LjA2OCAxMC4zMSA1Ni40NSAxMy44OGwtMy44MzQtNS45MzR6Ii8+PC9nPjwvZz48L3N2Zz4=',
|
|
5
|
+
emptyDrak: 'data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEyMCIgd2lkdGg9IjEyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBzdHJva2U9IiMzYTNjNDYiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTUwLjU5OCAxMS4wOTNDMjUuNTU0IDE1Ljc2IDExLjcyOCAyNC41NzMgOS4xMiAzNy41MzUgNS45OSA2OC42NDQgMTI4LjA4IDcwLjIgMTEzLjIxIDEwMi44NjNjLTcuODI2IDEwLjg4Ny0yNS41NjYgMTMuMjItNTMuMjE5IDYuOTk5IiBzdHJva2UtZGFzaGFycmF5PSIzIi8+PGcgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGcgZmlsbD0iIzFhMWIxZSI+PHBhdGggZD0ibTU1IDY4LjI3IDQyLjE2Mi0xMi4zMjR2NDkuNTc3TDU1IDExNy41Njh6TTU1IDY4LjEwOCAxNi4wODEgNTUuOTQ2djQ5LjU3N0w1NSAxMTcuNTY4eiIvPjxwYXRoIGQ9Ik0xNi4wMTIgNTYuMDQgNTUgNjguMTA4IDQyLjUgODYuNzU3IDQuNzMgNzMuMDYzek05Ny4xNjIgNTUuOTQ2IDU1IDY4LjEwOGwxMi44MSAxOC42NDkgNDIuMzI1LTE0LjE2NnoiLz48L2c+PHBhdGggZD0ibTE2LjA4MSA1NS45NDYgNDMuMzQ3LTEyLjE2MiAzNy43MzQgMTIuMTYyTDU1IDY4LjEwOHoiIGZpbGw9IiMxNDE1MTgiLz48L2c+PGcgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTc4LjA2OCAxMC4zMSA2MC4wNCA4LjhsMi43OS01LjMxeiIgZmlsbD0iIzFhMWIxZSIvPjxwYXRoIGQ9Ik03OC4wNjggMTAuMzEgNTYuNDUgMTMuODhsLTMuODM0LTUuOTM0eiIgZmlsbD0iIzE0MTUxOCIvPjwvZz48L2c+PC9zdmc+'
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=EmptyContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyContent.js","sourceRoot":"","sources":["../../src/widget/EmptyContent.js"],"names":[],"mappings":";;AAAA,kBAAe;IACX,KAAK,EAAE,4jCAA4jC;IACnkC,SAAS,EAAE,4jCAA4jC;CAC1kC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="aj-expander" :style="'height:' + (expended ? openHeight : closeHeight) + 'px;'">
|
|
3
|
+
<div :class="expended ? 'closeBtn' : 'openBtn'" @click="expended = !expended;"></div>
|
|
4
|
+
<slot></slot>
|
|
5
|
+
</div>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script lang="ts">
|
|
9
|
+
/**
|
|
10
|
+
* 展开闭合器
|
|
11
|
+
*/
|
|
12
|
+
export default {
|
|
13
|
+
props: {
|
|
14
|
+
openHeight: { type: Number, default: 200 },
|
|
15
|
+
closeHeight: { type: Number, default: 50 },
|
|
16
|
+
},
|
|
17
|
+
data(): any {
|
|
18
|
+
return {
|
|
19
|
+
expended: false,
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<style lang="less" scoped>
|
|
26
|
+
.aj-expander {
|
|
27
|
+
overflow: hidden;
|
|
28
|
+
position: relative;
|
|
29
|
+
clear: both;
|
|
30
|
+
transition: height 200ms ease 0s;
|
|
31
|
+
|
|
32
|
+
.mask-layer {
|
|
33
|
+
position: absolute;
|
|
34
|
+
bottom: 0;
|
|
35
|
+
left: 0;
|
|
36
|
+
height: 23px;
|
|
37
|
+
width: 100%;
|
|
38
|
+
background: -webkit-gradient(
|
|
39
|
+
linear,
|
|
40
|
+
center top,
|
|
41
|
+
center bottom,
|
|
42
|
+
from(transparent),
|
|
43
|
+
to(white)
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.openBtn {
|
|
48
|
+
background: url("https://ajaxjs.nos-eastchina1.126.net/images/openBtn.png");
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.closeBtn {
|
|
52
|
+
background: url("https://ajaxjs.nos-eastchina1.126.net/images/closeBtn.png");
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.closeBtn,
|
|
56
|
+
.openBtn {
|
|
57
|
+
width: 45px;
|
|
58
|
+
height: 32px;
|
|
59
|
+
position: absolute;
|
|
60
|
+
cursor: pointer;
|
|
61
|
+
top: 0px;
|
|
62
|
+
right: 0px;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
</style>
|