@ajaxjs/ui 1.0.7 → 1.1.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 (66) hide show
  1. package/dist/components/form/FileUploader/FileUploader.js +104 -0
  2. package/dist/components/form/FileUploader/FileUploader.js.map +1 -0
  3. package/dist/components/form/FileUploader/FileUploader.less +55 -0
  4. package/dist/components/form/FileUploader/FileUploader.ts +121 -0
  5. package/dist/components/form/FileUploader/FileUploader.vue +26 -0
  6. package/dist/components/form/HtmlEditor/HtmlEditor.js +11 -4
  7. package/dist/components/form/HtmlEditor/HtmlEditor.js.map +1 -1
  8. package/dist/components/form/HtmlEditor/HtmlEditor.less +185 -5
  9. package/dist/components/form/HtmlEditor/HtmlEditor.ts +12 -4
  10. package/dist/components/form/HtmlEditor/HtmlEditor.vue +19 -19
  11. package/dist/components/widgets/ImageEnlarger.vue +77 -20
  12. package/package.json +7 -10
  13. package/.browserslistrc +0 -3
  14. package/.eslintrc.js +0 -25
  15. package/babel.config.js +0 -5
  16. package/dist/components/list/attachment-picture-list.js +0 -57
  17. package/dist/components/list/attachment-picture-list.js.map +0 -1
  18. package/dist/components/list/attachment-picture-list.ts +0 -57
  19. package/dist/components/list/list.js +0 -227
  20. package/dist/components/list/list.js.map +0 -1
  21. package/dist/components/list/list.ts +0 -261
  22. package/dist/components/widgets/AjAvatar.vue +0 -42
  23. package/public/favicon.ico +0 -0
  24. package/public/index.html +0 -24
  25. package/src/App.vue +0 -32
  26. package/src/assets/logo.png +0 -0
  27. package/src/components/form/AjSelect.vue +0 -33
  28. package/src/components/form/HtmlEditor/HtmlEditor.less +0 -165
  29. package/src/components/form/HtmlEditor/HtmlEditor.ts +0 -329
  30. package/src/components/form/HtmlEditor/HtmlEditor.vue +0 -70
  31. package/src/components/form/HtmlEditor/html-editor-HtmlSanitizer.js +0 -103
  32. package/src/components/form/TreeLikeSelect.vue +0 -125
  33. package/src/components/list/attachment-picture-list.ts +0 -57
  34. package/src/components/list/list.js +0 -227
  35. package/src/components/list/list.ts +0 -261
  36. package/src/components/widgets/AccordionMenu.vue +0 -138
  37. package/src/components/widgets/AdjustFontSize.vue +0 -66
  38. package/src/components/widgets/AjAvatar.vue +0 -42
  39. package/src/components/widgets/Article.vue +0 -49
  40. package/src/components/widgets/BaiduSearch.vue +0 -50
  41. package/src/components/widgets/Expander.vue +0 -65
  42. package/src/components/widgets/ImageEnlarger.vue +0 -42
  43. package/src/components/widgets/OpacityBanner.vue +0 -124
  44. package/src/components/widgets/ProcessLine.vue +0 -133
  45. package/src/globalDeclare/shims.d.ts +0 -4
  46. package/src/index.ts +0 -8
  47. package/src/main.ts +0 -12
  48. package/src/pages/Nav.vue +0 -23
  49. package/src/pages/common.less +0 -10
  50. package/src/pages/demo/Article.vue +0 -30
  51. package/src/pages/demo/Form.vue +0 -46
  52. package/src/pages/demo/Wdigets.vue +0 -168
  53. package/src/router/index.js +0 -39
  54. package/src/router/index.js.map +0 -1
  55. package/src/router/index.ts +0 -39
  56. package/src/shims-tsx.d.ts +0 -13
  57. package/src/shims-vue.d.ts +0 -4
  58. package/src/style/common-functions.less +0 -171
  59. package/src/style/reset.less +0 -18
  60. package/src/views/About.vue +0 -5
  61. package/src/views/Home.vue +0 -49
  62. package/src/views/desktop/Desktop.vue +0 -251
  63. package/src/views/desktop/Window.vue +0 -62
  64. package/src/views/desktop/desktop.md +0 -14
  65. package/tsconfig.json +0 -30
  66. package/vue.config.js +0 -17
@@ -2,7 +2,7 @@
2
2
  <div class="aj-form-html-editor">
3
3
  <ul class="toolbar">
4
4
  <li class="dorpdown">
5
- <i title="字体" class="fa-font"></i>
5
+ <i title="字体" class="text-icon">A</i>
6
6
  <div class="fontfamilyChoser" @click="onFontfamilyChoserClk">
7
7
  <a style="font-family: '宋体'">宋体</a>
8
8
  <a style="font-family: '黑体'">黑体</a>
@@ -21,7 +21,7 @@
21
21
  </div>
22
22
  </li>
23
23
  <li class="dorpdown">
24
- <i title="字号" class="fa-header"></i>
24
+ <i title="字号" class="text-icon">H</i>
25
25
  <div class="fontsizeChoser" @click="onFontsizeChoserClk">
26
26
  <a style="font-size: xx-small; ">极小</a>
27
27
  <a style="font-size: x-small; ">特小</a>
@@ -32,29 +32,29 @@
32
32
  <a style="font-size: xx-large; line-height: 140%">极大</a>
33
33
  </div>
34
34
  </li>
35
- <li @click="onCmdClk"><i title="加粗" class="bold fa-bold"></i></li>
36
- <li @click="onCmdClk"><i title="斜体" class="italic fa-italic"></i></li>
37
- <li @click="onCmdClk"><i title="下划线" class="underline fa-underline"></i></li>
38
- <li @click="onCmdClk"><i title="左对齐" class="justifyleft fa-align-left"></i></li>
39
- <li @click="onCmdClk"><i title="中间对齐" class="justifycenter fa-align-center"></i></li>
40
- <li @click="onCmdClk"><i title="右对齐" class="justifyright fa-align-right"></i></li>
41
- <li @click="onCmdClk"><i title="数字编号" class="insertorderedlist fa-list-ol"></i></li>
42
- <li @click="onCmdClk"><i title="项目编号" class="insertunorderedlist fa-list-ul"></i></li>
43
- <li @click="onCmdClk"><i title="增加缩进" class="outdent fa-outdent"></i></li>
44
- <li @click="onCmdClk"><i title="减少缩进" class="indent fa-indent"></i></li>
35
+ <li @click="onCmdClk"><i title="加粗" class="bold text-icon">B</i></li>
36
+ <li @click="onCmdClk"><i title="斜体" class="italic text-icon" style="font-style:italic">I</i></li>
37
+ <li @click="onCmdClk"><i title="下划线" class="underline text-icon" style="text-decoration: underline;">U</i></li>
38
+ <li @click="onCmdClk"><i title="左对齐" :class="'justifyleft '+ (isIonicons ? 'ivu-icon ivu-icon-bingo-menu-fold' : 'fontAwesome fa-align-left')"></i></li>
39
+ <li @click="onCmdClk"><i title="中间对齐" :class="'justifycenter '+ (isIonicons ? 'ivu-icon ivu-icon-md-menu' : 'fontAwesome fa-align-center')"></i></li>
40
+ <li @click="onCmdClk"><i title="右对齐" :class="'justifyright '+ (isIonicons ? 'ivu-icon ivu-icon-bingo-menu-unfold' : 'fontAwesome fa-align-right')"></i></li>
41
+ <li @click="onCmdClk"><i title="数字编号" :class="'insertorderedlist '+ (isIonicons ? 'ivu-icon ivu-icon-md-list' : 'fontAwesome fa-list-ol')"></i></li>
42
+ <li @click="onCmdClk"><i title="项目编号" :class="'insertunorderedlist '+ (isIonicons ? 'ivu-icon ivu-icon-ios-list' : 'fontAwesome fa-list-ul')"></i></li>
43
+ <li @click="onCmdClk"><i title="增加缩进" :class="'outdent '+ (isIonicons ? 'ivu-icon ivu-icon-ios-return-left' : 'fontAwesome fa-outdent')"></i></li>
44
+ <li @click="onCmdClk"><i title="减少缩进" :class="'indent '+ (isIonicons ? 'ivu-icon ivu-icon-ios-return-right' : 'fontAwesome fa-indent')"></i></li>
45
45
  <li class="dorpdown">
46
- <i title="字体颜色" class="fa-paint-brush"></i>
46
+ <i title="字体颜色" :class="isIonicons ? 'ivu-icon ivu-icon-md-brush' : 'fontAwesome fa-paint-brush'"></i>
47
47
  <div class="colorPicker" v-html="createColorPickerHTML()" @click="format('foreColor', $event.target.title)"></div>
48
48
  </li>
49
49
  <li class="dorpdown">
50
- <i title="背景颜色" class="fa-pencil"></i>
50
+ <i title="背景颜色" :class="isIonicons ? 'ivu-icon ivu-icon-ios-brush-outline' : 'fontAwesome fa-pencil'"></i>
51
51
  <div class="colorPicker" v-html="createColorPickerHTML()" @click="format('backColor', $event.target.title)"></div>
52
52
  </li>
53
- <li @click="createLink"><i title="增加链接" class="fa-link"></i></li>
54
- <li @click="insertImage"><i title="增加图片" class="fa-file-image-o"></i></li>
55
- <li @click="saveRemoteImage2Local"><i title="一键存图" class="saveRemoteImage2Local fa-hdd-o"></i></li>
56
- <li @click="cleanHTML"><i title="清理 HTML" class="fa-eraser"></i></li>
57
- <li @click="isShowCode = !isShowCode"><i title="切换到代码" class="switchMode fa-code"></i></li>
53
+ <li @click="createLink"><i title="增加链接" :class="isIonicons ? 'ivu-icon ivu-icon-ios-link' : 'fontAwesome fa-link'"></i></li>
54
+ <li @click="insertImage"><i title="增加图片" :class="isIonicons ? 'ivu-icon ivu-icon-md-images' : 'fontAwesome fa-file-image-o'"></i></li>
55
+ <li @click="saveRemoteImage2Local"><i title="一键存图" :class="isIonicons ? 'ivu-icon ivu-icon-md-photos' : 'fontAwesome fa-hdd-o'"></i></li>
56
+ <li @click="cleanHTML"><i title="清理 HTML" :class="isIonicons ? 'ivu-icon ivu-icon-md-done-all' : 'fontAwesome fa-eraser'"></i></li>
57
+ <li @click="isShowCode = !isShowCode"><i title="切换到代码" :class="(isIonicons ? 'ivu-icon ivu-icon-md-code' : 'fontAwesome fa-code')+ ' switchMode'"></i></li>
58
58
  </ul>
59
59
 
60
60
  <div class="editorBody">
@@ -1,42 +1,99 @@
1
1
  <template>
2
- <a class="aj-img-thumb" :href="getImgUrl" v-if="imgUrl" target="_blank">
3
- <img :src="getImgUrl" :onmouseenter="'aj_widget_imageEnlarger_imgUrl = ' + getImgUrl + ';'" onmouseleave="aj_widget_imageEnlarger_imgUrl = null;" />
2
+ <a class="aj-img-thumb" :href="imgUrl" v-if="imgUrl" target="_blank">
3
+ <img :src="imgUrl" @mouseenter="current = imgUrl" @mouseleave="current = null" />
4
4
  </a>
5
5
  </template>
6
6
 
7
- <script lang="ts">
7
+ <script>
8
8
  /**
9
9
  * 悬浮显示大图
10
10
  */
11
11
  export default {
12
12
  props: {
13
- imgUrl: {
14
- // 图片地址
15
- type: String,
16
- required: true,
17
- },
13
+ imgUrl: { type: String, required: true },// 图片地址
18
14
  },
19
- computed: {
20
- getImgUrl(): string {
21
- if (!this.imgUrl) return "";
22
15
 
23
- if (this.imgUrl.indexOf("http") != -1)
24
- // 图片地址已经是完整的 http 地址,直接返回
25
- return this.imgUrl;
26
- // uploadFile.imgPerfix
27
-
28
- if (!this.ajResources.imgPerfix) throw "未提供图片前缀地址";
16
+ data() {
17
+ return { current: '' }
18
+ },
19
+ watch: {
20
+ current(v) {
21
+ let el = document.querySelector("body > div.aj-image-large-view");
29
22
 
30
- return this.ajResources.imgPerfix + this.imgUrl;
31
- },
23
+ if (v) {
24
+ el.querySelector('img').src = v;
25
+ setTimeout(() => el.style.display = 'block', 700);
26
+ } else
27
+ el.style.display = 'none';
28
+ }
32
29
  },
30
+ mounted() {
31
+ // 初始化
32
+ if (!document.querySelector("body > div.aj-image-large-view")) {
33
+ let div = document.createElement("div");
34
+ div.className = "aj-image-large-view";
35
+ div.innerHTML = "<img />";
36
+ document.body.appendChild(div);
37
+
38
+ document.addEventListener("mousemove", throttle(e => {
39
+ if (this.imgUrl) {
40
+ let w = 0, imgWidth = div.querySelector("img").clientWidth;
41
+
42
+ if (imgWidth > e.pageX)
43
+ w = imgWidth;
44
+
45
+ div.style.top = e.pageY + 20 + "px";
46
+ div.style.left = e.pageX - div.clientWidth + w + "px";
47
+ }
48
+ }, 50, 5000), false);
49
+ }
50
+ }
33
51
  };
52
+
53
+ /**
54
+ * 函数节流
55
+ *
56
+ * @author https://www.cnblogs.com/moqiutao/p/6875955.html
57
+ * @param fn
58
+ * @param delay
59
+ * @param mustRunDelay
60
+ */
61
+ function throttle(fn, delay, mustRunDelay) {
62
+ var timer, t_start;
63
+ return function () {
64
+ var _this = this;
65
+ var t_curr = +new Date();
66
+ window.clearTimeout(timer);
67
+ if (!t_start) t_start = t_curr;
68
+ if (t_curr - t_start >= mustRunDelay) {
69
+ // @ts-ignore
70
+ fn.apply(this, arguments);
71
+ t_start = t_curr;
72
+ } else {
73
+ var args = arguments;
74
+ // @ts-ignore
75
+ timer = window.setTimeout(function () {
76
+ return fn.apply(_this, args);
77
+ }, delay);
78
+ }
79
+ };
80
+ }
34
81
  </script>
35
82
 
36
- <style lang="less" scoped>
83
+ <style lang="less">
37
84
  .aj-img-thumb img {
38
85
  max-width: 50px;
39
86
  max-height: 60px;
40
87
  vertical-align: middle;
41
88
  }
89
+
90
+ .aj-image-large-view {
91
+ position: fixed;
92
+ max-width: 400px;
93
+ transition: top ease-in 200ms, left ease-in 200ms;
94
+
95
+ img {
96
+ width: 100%;
97
+ }
98
+ }
42
99
  </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ajaxjs/ui",
3
- "version": "1.0.7",
3
+ "version": "1.1.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "private": false,
@@ -10,22 +10,19 @@
10
10
  "release": "tsc && xcopy src\\components dist\\components /s /y /d && npm publish --access public",
11
11
  "lint": "vue-cli-service lint"
12
12
  },
13
+ "files": [
14
+ "dist/"
15
+ ],
13
16
  "dependencies": {
14
- "core-js": "^3.6.5",
15
- "vue": "^2.6.11",
16
- "vue-router": "^3.2.0"
17
+ "vue": "^2.6.11"
17
18
  },
18
19
  "devDependencies": {
19
- "@typescript-eslint/eslint-plugin": "^4.18.0",
20
- "@typescript-eslint/parser": "^4.18.0",
20
+ "core-js": "^3.6.5",
21
+ "vue-router": "^3.2.0",
21
22
  "@vue/cli-plugin-babel": "~4.5.0",
22
- "@vue/cli-plugin-eslint": "~4.5.0",
23
23
  "@vue/cli-plugin-router": "~4.5.0",
24
24
  "@vue/cli-plugin-typescript": "~4.5.0",
25
25
  "@vue/cli-service": "~4.5.0",
26
- "@vue/eslint-config-typescript": "^7.0.0",
27
- "eslint": "^6.7.2",
28
- "eslint-plugin-vue": "^6.2.2",
29
26
  "less": "^3.0.4",
30
27
  "less-loader": "^5.0.0",
31
28
  "style-resources-loader": "^1.4.1",
package/.browserslistrc DELETED
@@ -1,3 +0,0 @@
1
- > 1%
2
- last 2 versions
3
- not dead
package/.eslintrc.js DELETED
@@ -1,25 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- env: {
4
- node: true,
5
- },
6
- extends: [
7
- "plugin:vue/essential",
8
- "eslint:recommended",
9
- "@vue/typescript/recommended",
10
- ],
11
- parserOptions: {
12
- ecmaVersion: 2020,
13
- },
14
- rules: {
15
- "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
16
- "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
17
- "no-unused-vars": "off",
18
- "prefer-const": "off",
19
- "@typescript-eslint/prefer-const": ["off"],
20
- "@typescript-eslint/no-unused-vars": ["off"],
21
- "@typescript-eslint/ban-ts-comment": "off",
22
- "@typescript-eslint/explicit-function-return-type": "off",
23
- "@typescript-eslint/no-explicit-any": ["off"]
24
- },
25
- };
package/babel.config.js DELETED
@@ -1,5 +0,0 @@
1
- module.exports = {
2
- presets: [
3
- '@vue/cli-plugin-babel/preset'
4
- ]
5
- }
@@ -1,57 +0,0 @@
1
- // interface AttachmentPictureList extends Ajax {
2
- // delImgUrl: string;
3
- // pics: BaseObject[];
4
- // }
5
- // /**
6
- // * 相册列表
7
- // */
8
- // Vue.component('aj-attachment-picture-list', {
9
- // template: `
10
- // <table>
11
- // <tr>
12
- // <td>
13
- // <div class="label">相册图:</div>
14
- // <ul>
15
- // <li v-for="pic in pics" style="float:left;margin-right:1%;text-align:center;">
16
- // <a :href="picCtx + pic.path" target="_blank"><img :src="picCtx + pic.path" style="max-width: 100px;max-height: 100px;" /></a><br />
17
- // <a href="###" @click="delPic(pic.id);">删 除</a>
18
- // </li>
19
- // </ul>
20
- // </td>
21
- // <td>
22
- // <aj-xhr-upload ref="attachmentPictureUpload" :action="uploadUrl" :is-img-upload="true" :img-place="blankBg"></aj-xhr-upload>
23
- // </td>
24
- // </tr>
25
- // </table>
26
- // `,
27
- // props: {
28
- // picCtx: String,
29
- // uploadUrl: String,
30
- // blankBg: String,
31
- // delImgUrl: String,
32
- // apiUrl: String
33
- // },
34
- // data() {
35
- // return {
36
- // pics: []
37
- // };
38
- // },
39
- // mounted(): void {
40
- // this.getData();
41
- // this.$refs.attachmentPictureUpload.uploadOk_callback = this.getData;
42
- // },
43
- // methods: {
44
- // getData(this: AttachmentPictureList): void {
45
- // aj.xhr.get(this.apiUrl, (j: RepsonseResult) => this.pics = j.result);
46
- // },
47
- // delPic(this: AttachmentPictureList, picId: string): void {
48
- // aj.showConfirm("确定删除相册图片?", () => {
49
- // aj.xhr.dele(this.delImgUrl + picId + "/", (j: RepsonseResult) => {
50
- // if (j.isOk)
51
- // this.getData();// 刷新
52
- // });
53
- // });
54
- // }
55
- // }
56
- // });
57
- //# sourceMappingURL=attachment-picture-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attachment-picture-list.js","sourceRoot":"","sources":["../../../src/components/list/attachment-picture-list.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,yBAAyB;AACzB,0BAA0B;AAC1B,IAAI;AAEJ,MAAM;AACN,UAAU;AACV,MAAM;AACN,gDAAgD;AAChD,kBAAkB;AAClB,kBAAkB;AAClB,mBAAmB;AACnB,uBAAuB;AACvB,oDAAoD;AACpD,2BAA2B;AAC3B,yGAAyG;AACzG,kKAAkK;AAClK,6EAA6E;AAC7E,gCAAgC;AAChC,4BAA4B;AAC5B,yBAAyB;AACzB,uBAAuB;AACvB,mJAAmJ;AACnJ,wBAAwB;AACxB,oBAAoB;AACpB,mBAAmB;AACnB,SAAS;AACT,eAAe;AACf,0BAA0B;AAC1B,6BAA6B;AAC7B,2BAA2B;AAC3B,6BAA6B;AAC7B,yBAAyB;AACzB,SAAS;AACT,eAAe;AACf,mBAAmB;AACnB,uBAAuB;AACvB,aAAa;AACb,SAAS;AACT,wBAAwB;AACxB,0BAA0B;AAC1B,+EAA+E;AAC/E,SAAS;AACT,iBAAiB;AACjB,uDAAuD;AACvD,oFAAoF;AACpF,aAAa;AACb,qEAAqE;AACrE,kDAAkD;AAClD,qFAAqF;AACrF,kCAAkC;AAClC,+CAA+C;AAC/C,sBAAsB;AACtB,kBAAkB;AAClB,YAAY;AACZ,QAAQ;AACR,MAAM"}
@@ -1,57 +0,0 @@
1
- // interface AttachmentPictureList extends Ajax {
2
- // delImgUrl: string;
3
- // pics: BaseObject[];
4
- // }
5
-
6
- // /**
7
- // * 相册列表
8
- // */
9
- // Vue.component('aj-attachment-picture-list', {
10
- // template: `
11
- // <table>
12
- // <tr>
13
- // <td>
14
- // <div class="label">相册图:</div>
15
- // <ul>
16
- // <li v-for="pic in pics" style="float:left;margin-right:1%;text-align:center;">
17
- // <a :href="picCtx + pic.path" target="_blank"><img :src="picCtx + pic.path" style="max-width: 100px;max-height: 100px;" /></a><br />
18
- // <a href="###" @click="delPic(pic.id);">删 除</a>
19
- // </li>
20
- // </ul>
21
- // </td>
22
- // <td>
23
- // <aj-xhr-upload ref="attachmentPictureUpload" :action="uploadUrl" :is-img-upload="true" :img-place="blankBg"></aj-xhr-upload>
24
- // </td>
25
- // </tr>
26
- // </table>
27
- // `,
28
- // props: {
29
- // picCtx: String,
30
- // uploadUrl: String,
31
- // blankBg: String,
32
- // delImgUrl: String,
33
- // apiUrl: String
34
- // },
35
- // data() {
36
- // return {
37
- // pics: []
38
- // };
39
- // },
40
- // mounted(): void {
41
- // this.getData();
42
- // this.$refs.attachmentPictureUpload.uploadOk_callback = this.getData;
43
- // },
44
- // methods: {
45
- // getData(this: AttachmentPictureList): void {
46
- // aj.xhr.get(this.apiUrl, (j: RepsonseResult) => this.pics = j.result);
47
- // },
48
- // delPic(this: AttachmentPictureList, picId: string): void {
49
- // aj.showConfirm("确定删除相册图片?", () => {
50
- // aj.xhr.dele(this.delImgUrl + picId + "/", (j: RepsonseResult) => {
51
- // if (j.isOk)
52
- // this.getData();// 刷新
53
- // });
54
- // });
55
- // }
56
- // }
57
- // });
@@ -1,227 +0,0 @@
1
- // namespace aj.list {
2
- // /**
3
- // * 分页列表专用的结果数据
4
- // */
5
- // interface PageListRepsonseResult extends RepsonseResult {
6
- // /**
7
- // * 结果总数
8
- // */
9
- // total: number;
10
- // }
11
- // /**
12
- // * 列表数据
13
- // */
14
- // interface DataStore extends Ajax {
15
- // /**
16
- // * 是否分页,false=读取所有数据
17
- // */
18
- // isPage: boolean;
19
- // pageStart: number;
20
- // pageSize: number;
21
- // initPageSize: number;
22
- // total: number;
23
- // /**
24
- // * 请求结果
25
- // */
26
- // result: BaseObject[];
27
- // totalPage: number;
28
- // currentPage: number;
29
- // /**
30
- // * 默认的分页参数其名字
31
- // */
32
- // pageParamNames: string[];
33
- // /**
34
- // * 计算分页
35
- // */
36
- // count(): void;
37
- // }
38
- // /**
39
- // * 本地数据仓库
40
- // * 一般情况下不会单独使用这个组件
41
- // */
42
- // export var datastore = {
43
- // props: {
44
- // apiUrl: { type: String, required: true }, // JSON 接口地址
45
- // isPage: { type: Boolean, default: true },
46
- // initPageSize: { type: Number, required: false, default: 9 },
47
- // isAutoLoad: { type: Boolean, default: true },
48
- // baseParam: { type: Object, default() { return {}; } },
49
- // pageParamNames: { type: Array, default() { return ['start', 'limit']; } }, // 默认的分页参数其名字
50
- // onLoad: Function
51
- // },
52
- // data(this: DataStore) {
53
- // return {
54
- // result: [],
55
- // extraParam: {}, // 与 baseParam 合并后每次请求可发送的,可以修改的
56
- // pageSize: this.initPageSize,
57
- // total: 0,
58
- // totalPage: 0,
59
- // pageStart: 0,
60
- // currentPage: 0
61
- // };
62
- // },
63
- // methods: {
64
- // /**
65
- // * 分页,跳到第几页,下拉控件传入指定的页码
66
- // *
67
- // * @param this
68
- // * @param ev
69
- // */
70
- // jumpPageBySelect(this: DataStore, ev: Event): void {
71
- // let selectEl: HTMLSelectElement = <HTMLSelectElement>ev.target;
72
- // let currentPage: string = selectEl.options[selectEl.selectedIndex].value;
73
- // this.pageStart = (Number(currentPage) - 1) * this.pageSize;
74
- // this.getData();
75
- // },
76
- // /**
77
- // * PageSize 改变时候重新分页
78
- // *
79
- // * @param this
80
- // * @param ev
81
- // */
82
- // onPageSizeChange(this: DataStore, ev: Event): void {
83
- // this.pageSize = Number((<HTMLInputElement>ev.target).value);
84
- // this.count();
85
- // this.getData();
86
- // },
87
- // count(this: DataStore): void {
88
- // let totalPage: number = this.total / this.pageSize, yushu: number = this.total % this.pageSize;
89
- // this.totalPage = parseInt(String(yushu == 0 ? totalPage : totalPage + 1));
90
- // //@ts-ignore
91
- // this.currentPage = parseInt((this.pageStart / this.pageSize) + 1);
92
- // },
93
- // /**
94
- // * 前一页
95
- // *
96
- // * @param this
97
- // */
98
- // previousPage(this: DataStore): void {
99
- // this.pageStart -= this.pageSize;
100
- // //@ts-ignore
101
- // this.currentPage = parseInt((this.pageStart / this.pageSize) + 1);
102
- // this.getData();
103
- // },
104
- // /**
105
- // * 下一页
106
- // *
107
- // * @param this
108
- // */
109
- // nextPage(this: DataStore): void {
110
- // this.pageStart += this.pageSize;
111
- // this.currentPage = (this.pageStart / this.pageSize) + 1;
112
- // this.getData();
113
- // }
114
- // }
115
- // };
116
- // /**
117
- // * 列表控件
118
- // */
119
- // interface List extends DataStore, Vue {
120
- // /**
121
- // * 数据分页是否追加模式,默认不追加 = false。 App 一般采用追加模式
122
- // */
123
- // isDataAppend: boolean;
124
- // /**
125
- // * 到达底部是否自动加载下一页,通常在 移动端使用,这个应该是元素的 CSS Selector
126
- // */
127
- // autoLoadWhenReachedBottom: boolean;
128
- // }
129
- // Vue.component('aj-list', {
130
- // mixins: [datastore],
131
- // template: html`
132
- // <div class="aj-list">
133
- // <slot name="header" v-if="total != 0"></slot>
134
- // <ul v-if="showDefaultUi && (total != 0)">
135
- // <li v-for="(item, index) in result">
136
- // <slot v-bind="item">
137
- // <a href="#" @click="show(item.id, index, $event)" :id="item.id">{{item.name}}</a>
138
- // </slot>
139
- // </li>
140
- // </ul>
141
- // <div class="no-data" v-show="isPage && total == 0">未有任何数据</div>
142
- // <footer v-if="isPage" class="pager">
143
- // <a v-if="pageStart > 0" href="#" @click="previousPage">上一页</a>
144
- // <a v-if="(pageStart > 0 ) && (pageStart + pageSize < total)" style="text-decoration: none;">&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;</a>
145
- // <a v-if="pageStart + pageSize < total" href="#" @click="nextPage">下一页</a>
146
- // <a href="javascript:;" @click="getData"><i class="fa fa-refresh" aria-hidden="true"></i> 刷新</a>
147
- // <input type="hidden" name="start" :value="pageStart" />
148
- // 页数:{{currentPage}}/{{totalPage}} 记录数:{{pageStart}}/{{total}}
149
- // 每页记录数: <input size="2" title="输入一个数字确定每页记录数" type="text" :value="pageSize" @change="onPageSizeChange" />
150
- // 跳转:
151
- // <select @change="jumpPageBySelect">
152
- // <option :value="n" v-for="n in totalPage">{{n}}</option>
153
- // </select>
154
- // </footer>
155
- // <div v-show="!!autoLoadWhenReachedBottom" class="buttom"></div>
156
- // </div>
157
- // `,
158
- // props: {
159
- // showDefaultUi: { type: Boolean, default: true }, // 如果只是单纯作为分页组件,那么则不需要 UI
160
- // isShowFooter: { type: Boolean, default: true }, // 是否显示分页 UI
161
- // hrefStr: { type: String, required: false },
162
- // autoLoadWhenReachedBottom: { type: String, default: '' },
163
- // isDataAppend: { type: Boolean, default: false }
164
- // },
165
- // mounted(this: List): void {
166
- // this.isAutoLoad && this.getData();
167
- // // this.BUS.$on('base-param-change', this.onExtraParamChange.bind(this));
168
- // if (!!this.autoLoadWhenReachedBottom) {
169
- // // var scrollSpy = new aj.scrollSpy({ scrollInElement: aj(this.autoLoadWhenReachedBottom), spyOn: thish.$el.$('.buttom') });
170
- // // scrollSpy.onScrollSpyBackInSight = e => this.nextPage();
171
- // }
172
- // },
173
- // methods: {
174
- // getData(this: List): void {
175
- // this.lastRequestParam = {};
176
- // aj.apply(this.lastRequestParam, this.baseParam);
177
- // aj.apply(this.lastRequestParam, this.extraParam);
178
- // initPageParams.call(this);
179
- // xhr.get(this.apiUrl, this.onLoad || ((j: PageListRepsonseResult) => {
180
- // if (j.result) {
181
- // if (this.isPage && j.total === undefined)
182
- // aj.alert('JSON 缺少 total 字段');
183
- // if (j.total == 0 || j.result.length == 0)
184
- // aj.alert('没有找到任何记录');
185
- // this.result = j.result;
186
- // if (this.isPage) {
187
- // this.total = j.total;
188
- // this.count();
189
- // }
190
- // }
191
- // this.$emit('pager-result', this.result);
192
- // }), this.lastRequestParam);
193
- // },
194
- // /**
195
- // * 复位
196
- // *
197
- // * @param this
198
- // */
199
- // reset(this: List): void {
200
- // this.total = this.totalPage = this.pageStart = this.currentPage = 0;
201
- // this.pageSize = this.initPageSize;
202
- // },
203
- // onExtraParamChange(this: List, params: JsonParam): void {
204
- // aj.apply(this.extraParam, params);
205
- // this.pageStart = 0; // 每次 extraParam 被改变,都是从第一笔开始
206
- // this.getData();
207
- // }
208
- // },
209
- // watch: {
210
- // extraParam(this: List): void {
211
- // this.getData();
212
- // }
213
- // }
214
- // });
215
- // /**
216
- // * 生成分页参数的名字
217
- // *
218
- // * @param this
219
- // */
220
- // function initPageParams(this: List) {
221
- // let params: { [key: string]: number } = {};
222
- // params[this.pageParamNames[0]] = this.pageStart;
223
- // params[this.pageParamNames[1]] = this.pageSize;
224
- // this.isPage && aj.apply(this.lastRequestParam, params);
225
- // }
226
- // }
227
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/components/list/list.ts"],"names":[],"mappings":"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"}