overseas 0.0.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.
Files changed (178) hide show
  1. package/README.md +12 -0
  2. package/lib/base/bottom-popup.js +550 -0
  3. package/lib/base/button.js +400 -0
  4. package/lib/base/dialog.js +979 -0
  5. package/lib/base/icon.js +273 -0
  6. package/lib/base/image.js +309 -0
  7. package/lib/base/material-list.js +357 -0
  8. package/lib/base/popup.js +364 -0
  9. package/lib/business/basic-image.js +325 -0
  10. package/lib/business/bottom-fixed-button.js +350 -0
  11. package/lib/business/class-choose.js +1717 -0
  12. package/lib/business/grade-panel.js +683 -0
  13. package/lib/business/material-panel.js +778 -0
  14. package/lib/business/notified-panel.js +2141 -0
  15. package/lib/business/page-render.js +364 -0
  16. package/lib/business/registration-panel.js +1071 -0
  17. package/lib/business/selector-panel.js +667 -0
  18. package/lib/business/student-info.js +1172 -0
  19. package/lib/business/switch-student.js +1407 -0
  20. package/lib/business/tips-popup.js +626 -0
  21. package/lib/business/user-login.js +816 -0
  22. package/lib/index.js +1 -0
  23. package/lib/network/api.js +64 -0
  24. package/lib/network/apiUrl.js +68 -0
  25. package/lib/overseas-ui.common.js +8771 -0
  26. package/lib/static/logo.b6015b3.png +0 -0
  27. package/lib/static/logo.b6015b30.png +0 -0
  28. package/lib/theme-style/bottom-fixed-button.css +1 -0
  29. package/lib/theme-style/bottom-popup.css +1 -0
  30. package/lib/theme-style/button.css +1 -0
  31. package/lib/theme-style/class-choose.css +1 -0
  32. package/lib/theme-style/common.css +1 -0
  33. package/lib/theme-style/dialog.css +1 -0
  34. package/lib/theme-style/grade-panel.css +1 -0
  35. package/lib/theme-style/icon.css +1 -0
  36. package/lib/theme-style/image.css +1 -0
  37. package/lib/theme-style/img/body_bg.png +0 -0
  38. package/lib/theme-style/img/pdf.png +0 -0
  39. package/lib/theme-style/img/title_bg.png +0 -0
  40. package/lib/theme-style/index.css +1 -0
  41. package/lib/theme-style/material-list.css +1 -0
  42. package/lib/theme-style/material-panel.css +1 -0
  43. package/lib/theme-style/notified-panel.css +1 -0
  44. package/lib/theme-style/page-render.css +1 -0
  45. package/lib/theme-style/registration-panel.css +1 -0
  46. package/lib/theme-style/selector-panel.css +1 -0
  47. package/lib/theme-style/student-info.css +1 -0
  48. package/lib/theme-style/switch-student.css +1 -0
  49. package/lib/theme-style/tips-popup.css +1 -0
  50. package/lib/theme-style/user-login.css +1 -0
  51. package/lib/utils/dom.js +60 -0
  52. package/lib/utils/filters.js +87 -0
  53. package/lib/utils/merge.js +19 -0
  54. package/lib/utils/phone.js +156 -0
  55. package/lib/utils/popup/index.js +132 -0
  56. package/lib/utils/popup/popup-manager.js +198 -0
  57. package/lib/utils/storage.js +27 -0
  58. package/lib/utils/utils.js +65 -0
  59. package/package.json +80 -0
  60. package/packages/.DS_Store +0 -0
  61. package/packages/base/bottom-popup/index.js +10 -0
  62. package/packages/base/bottom-popup/src/bottom-popup.vue +151 -0
  63. package/packages/base/button/index.js +10 -0
  64. package/packages/base/button/src/button.vue +108 -0
  65. package/packages/base/dialog/index.js +10 -0
  66. package/packages/base/dialog/src/dialog.vue +173 -0
  67. package/packages/base/icon/index.js +10 -0
  68. package/packages/base/icon/src/icon.vue +15 -0
  69. package/packages/base/image/index.js +10 -0
  70. package/packages/base/image/src/image.vue +40 -0
  71. package/packages/base/material-list/index.js +10 -0
  72. package/packages/base/material-list/src/material-list.vue +48 -0
  73. package/packages/base/popup/index.js +10 -0
  74. package/packages/base/popup/src/popup.vue +44 -0
  75. package/packages/business/basic-image/index.js +10 -0
  76. package/packages/business/basic-image/src/basicImage.vue +51 -0
  77. package/packages/business/bottom-fixed-button/index.js +10 -0
  78. package/packages/business/bottom-fixed-button/src/bottomFixedButton.vue +66 -0
  79. package/packages/business/class-choose/index.js +10 -0
  80. package/packages/business/class-choose/src/courseCard.vue +142 -0
  81. package/packages/business/class-choose/src/img/icon_close_bottomcard.svg +14 -0
  82. package/packages/business/class-choose/src/img/icon_date.svg +21 -0
  83. package/packages/business/class-choose/src/img/icon_full.svg +27 -0
  84. package/packages/business/class-choose/src/img/icon_full_EL.svg +49 -0
  85. package/packages/business/class-choose/src/img/icon_selected.svg +18 -0
  86. package/packages/business/class-choose/src/img/icon_star_selected.svg +13 -0
  87. package/packages/business/class-choose/src/img/icon_star_unselect.svg +13 -0
  88. package/packages/business/class-choose/src/index.vue +316 -0
  89. package/packages/business/grade-panel/index.js +10 -0
  90. package/packages/business/grade-panel/src/gradePanel.vue +150 -0
  91. package/packages/business/material-panel/index.js +10 -0
  92. package/packages/business/material-panel/src/index.vue +136 -0
  93. package/packages/business/notified-panel/index.js +10 -0
  94. package/packages/business/notified-panel/src/areaCodeList.js +181 -0
  95. package/packages/business/notified-panel/src/index.vue +491 -0
  96. package/packages/business/page-render/index.js +10 -0
  97. package/packages/business/page-render/src/pageRender.vue +73 -0
  98. package/packages/business/registration-panel/index.js +10 -0
  99. package/packages/business/registration-panel/src/areaCodeList.js +181 -0
  100. package/packages/business/registration-panel/src/img/icon_off.png +0 -0
  101. package/packages/business/registration-panel/src/img/icon_on.png +0 -0
  102. package/packages/business/registration-panel/src/index.vue +329 -0
  103. package/packages/business/registration-panel/src/languageList.js +41 -0
  104. package/packages/business/selector-panel/index.js +10 -0
  105. package/packages/business/selector-panel/src/selectorPanel.vue +134 -0
  106. package/packages/business/student-info/index.js +10 -0
  107. package/packages/business/student-info/src/api/index.js +10 -0
  108. package/packages/business/student-info/src/config.js +11 -0
  109. package/packages/business/student-info/src/studentInfo.vue +145 -0
  110. package/packages/business/switch-student/index.js +10 -0
  111. package/packages/business/switch-student/src/api/index.js +28 -0
  112. package/packages/business/switch-student/src/switchStudent.vue +245 -0
  113. package/packages/business/tips-popup/index.js +10 -0
  114. package/packages/business/tips-popup/src/tipsPopup.vue +76 -0
  115. package/packages/business/user-login/index.js +10 -0
  116. package/packages/business/user-login/src/api/index.js +23 -0
  117. package/packages/business/user-login/src/img/logo.png +0 -0
  118. package/packages/business/user-login/src/index.vue +149 -0
  119. package/packages/theme-style/lib/bottom-fixed-button.css +1 -0
  120. package/packages/theme-style/lib/bottom-popup.css +1 -0
  121. package/packages/theme-style/lib/button.css +1 -0
  122. package/packages/theme-style/lib/class-choose.css +1 -0
  123. package/packages/theme-style/lib/common.css +1 -0
  124. package/packages/theme-style/lib/dialog.css +1 -0
  125. package/packages/theme-style/lib/grade-panel.css +1 -0
  126. package/packages/theme-style/lib/icon.css +1 -0
  127. package/packages/theme-style/lib/image.css +1 -0
  128. package/packages/theme-style/lib/img/body_bg.png +0 -0
  129. package/packages/theme-style/lib/img/pdf.png +0 -0
  130. package/packages/theme-style/lib/img/title_bg.png +0 -0
  131. package/packages/theme-style/lib/index.css +1 -0
  132. package/packages/theme-style/lib/material-list.css +1 -0
  133. package/packages/theme-style/lib/material-panel.css +1 -0
  134. package/packages/theme-style/lib/notified-panel.css +1 -0
  135. package/packages/theme-style/lib/page-render.css +1 -0
  136. package/packages/theme-style/lib/registration-panel.css +1 -0
  137. package/packages/theme-style/lib/selector-panel.css +1 -0
  138. package/packages/theme-style/lib/student-info.css +1 -0
  139. package/packages/theme-style/lib/switch-student.css +1 -0
  140. package/packages/theme-style/lib/tips-popup.css +1 -0
  141. package/packages/theme-style/lib/user-login.css +1 -0
  142. package/packages/theme-style/package.json +38 -0
  143. package/packages/theme-style/src/bottom-fixed-button.scss +31 -0
  144. package/packages/theme-style/src/bottom-popup.scss +87 -0
  145. package/packages/theme-style/src/button.scss +110 -0
  146. package/packages/theme-style/src/class-choose.scss +251 -0
  147. package/packages/theme-style/src/common/popup.scss +39 -0
  148. package/packages/theme-style/src/common/var.scss +6 -0
  149. package/packages/theme-style/src/common.scss +97 -0
  150. package/packages/theme-style/src/dialog.scss +130 -0
  151. package/packages/theme-style/src/grade-panel.scss +76 -0
  152. package/packages/theme-style/src/icon.scss +369 -0
  153. package/packages/theme-style/src/image.scss +8 -0
  154. package/packages/theme-style/src/img/body_bg.png +0 -0
  155. package/packages/theme-style/src/img/pdf.png +0 -0
  156. package/packages/theme-style/src/img/title_bg.png +0 -0
  157. package/packages/theme-style/src/index.scss +20 -0
  158. package/packages/theme-style/src/material-list.scss +118 -0
  159. package/packages/theme-style/src/material-panel.scss +2 -0
  160. package/packages/theme-style/src/notified-panel.scss +207 -0
  161. package/packages/theme-style/src/page-render.scss +3 -0
  162. package/packages/theme-style/src/registration-panel.scss +158 -0
  163. package/packages/theme-style/src/selector-panel.scss +86 -0
  164. package/packages/theme-style/src/student-info.scss +114 -0
  165. package/packages/theme-style/src/switch-student.scss +176 -0
  166. package/packages/theme-style/src/tips-popup.scss +60 -0
  167. package/packages/theme-style/src/user-login.scss +93 -0
  168. package/src/index.js +74 -0
  169. package/src/network/api.js +53 -0
  170. package/src/network/apiUrl.js +65 -0
  171. package/src/utils/dom.js +54 -0
  172. package/src/utils/filters.js +82 -0
  173. package/src/utils/merge.js +16 -0
  174. package/src/utils/phone.js +153 -0
  175. package/src/utils/popup/index.js +115 -0
  176. package/src/utils/popup/popup-manager.js +178 -0
  177. package/src/utils/storage.js +22 -0
  178. package/src/utils/utils.js +49 -0
@@ -0,0 +1,178 @@
1
+ /* eslint-disable no-use-before-define */
2
+ import Vue from 'vue';
3
+ import { addClass, removeClass } from '../dom';
4
+
5
+ let hasInitZIndex = false;
6
+ const initZIndex = 2000;
7
+ let zIndex;
8
+ let hasModal = false;
9
+
10
+ // eslint-disable-next-line func-names
11
+ const getModal = function () {
12
+ if (Vue.prototype.$isServer) return null;
13
+ let { modalDom } = PopupManager;
14
+ if (modalDom) {
15
+ hasModal = true;
16
+ } else {
17
+ hasModal = false;
18
+ modalDom = document.createElement('div');
19
+ PopupManager.modalDom = modalDom;
20
+
21
+ modalDom.addEventListener('touchmove', (event) => {
22
+ event.preventDefault();
23
+ event.stopPropagation();
24
+ });
25
+
26
+ modalDom.addEventListener('click', () => {
27
+ if (PopupManager.doOnModalClick) PopupManager.doOnModalClick();
28
+ });
29
+ }
30
+
31
+ return modalDom;
32
+ };
33
+ const instances = {};
34
+
35
+ const PopupManager = {
36
+ modalFade: true,
37
+
38
+ getInstance(id) {
39
+ return instances[id];
40
+ },
41
+
42
+ // 注册弹出层
43
+ register(id, instance) {
44
+ if (id && instance) {
45
+ instances[id] = instance;
46
+ }
47
+ },
48
+
49
+ // 删除弹出层
50
+ deregister(id) {
51
+ if (id) {
52
+ instances[id] = null;
53
+ delete instances[id];
54
+ }
55
+ },
56
+
57
+ nextZIndex() {
58
+ // eslint-disable-next-line no-plusplus
59
+ return PopupManager.zIndex++
60
+ },
61
+
62
+ modalStack: [],
63
+
64
+ doOnModalClick() {
65
+ const topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];
66
+ if (!topItem) return;
67
+
68
+ const instance = PopupManager.getInstance(topItem.id);
69
+ if (instance && instance.closeOnClickModal) {
70
+ instance.close();
71
+ }
72
+ },
73
+
74
+ // 显示蒙层
75
+ // eslint-disable-next-line no-shadow
76
+ openModal(id, zIndex, dom, modalClass, modalFade) {
77
+ console.log('open modal')
78
+ if (Vue.prototype.$isServer) return;
79
+ if (!id || zIndex === undefined) return;
80
+
81
+ this.modalFade = modalFade;
82
+
83
+ const { modalStack } = this;
84
+
85
+ for (let i = 0, j = modalStack.length; i < j; i += 1) {
86
+ const item = modalStack[i];
87
+ if (item.id === id) {
88
+ return;
89
+ }
90
+ }
91
+
92
+ const modalDom = getModal();
93
+
94
+ addClass(modalDom, 'v-modal');
95
+ if (this.modalFade && !hasModal) {
96
+ addClass(modalDom, 'v-modal-enter');
97
+ }
98
+ if (modalClass) {
99
+ const classArr = modalClass.trim().split(/\s+/);
100
+ classArr.forEach((item) => addClass(modalDom, item));
101
+ }
102
+ setTimeout(() => {
103
+ removeClass(modalDom, 'v-modal-enter');
104
+ }, 200);
105
+
106
+ if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {
107
+ dom.parentNode.appendChild(modalDom);
108
+ } else {
109
+ document.body.appendChild(modalDom);
110
+ }
111
+
112
+ if (zIndex) {
113
+ modalDom.style.zIndex = zIndex;
114
+ }
115
+ modalDom.tabIndex = 0;
116
+ modalDom.style.display = '';
117
+
118
+ this.modalStack.push({ id, zIndex, modalClass });
119
+ },
120
+
121
+ // 关闭蒙层
122
+ closeModal(id) {
123
+ const { modalStack } = this;
124
+ const modalDom = getModal();
125
+
126
+ if (modalStack.length > 0) {
127
+ const topItem = modalStack[modalStack.length - 1];
128
+ if (topItem.id === id) {
129
+ if (topItem.modalClass) {
130
+ const classArr = topItem.modalClass.trim().split(/\s+/);
131
+ classArr.forEach((item) => removeClass(modalDom, item));
132
+ }
133
+
134
+ modalStack.pop();
135
+ if (modalStack.length > 0) {
136
+ modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;
137
+ }
138
+ } else {
139
+ for (let i = modalStack.length - 1; i >= 0; i -= 1) {
140
+ if (modalStack[i].id === id) {
141
+ modalStack.splice(i, 1);
142
+ break;
143
+ }
144
+ }
145
+ }
146
+ }
147
+
148
+ if (modalStack.length === 0) {
149
+ if (this.modalFade) {
150
+ addClass(modalDom, 'v-modal-leave');
151
+ }
152
+ setTimeout(() => {
153
+ if (modalStack.length === 0) {
154
+ if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);
155
+ modalDom.style.display = 'none';
156
+ PopupManager.modalDom = undefined;
157
+ }
158
+ removeClass(modalDom, 'v-modal-leave');
159
+ }, 200);
160
+ }
161
+ },
162
+ }
163
+
164
+ Object.defineProperty(PopupManager, 'zIndex', {
165
+ configurable: true,
166
+ get() {
167
+ if (!hasInitZIndex) {
168
+ zIndex = zIndex || (Vue.prototype.$ELEMENT || {}).zIndex || initZIndex;
169
+ hasInitZIndex = true;
170
+ }
171
+ return zIndex;
172
+ },
173
+ set(value) {
174
+ zIndex = value;
175
+ },
176
+ });
177
+
178
+ export default PopupManager;
@@ -0,0 +1,22 @@
1
+ export const myStorage = {
2
+ //存储
3
+ set(key, value) {
4
+ localStorage.setItem(key, JSON.stringify(value));
5
+ },
6
+ //取出数据
7
+ get(key) {
8
+ try {
9
+ const value = localStorage.getItem(key);
10
+ if (value === null || value === undefined || value === "") {
11
+ return null;
12
+ }
13
+ return JSON.parse(localStorage.getItem(key));
14
+ } catch (err) {
15
+ return null;
16
+ }
17
+ },
18
+ //删除数据
19
+ remove(key) {
20
+ localStorage.removeItem(key);
21
+ },
22
+ };
@@ -0,0 +1,49 @@
1
+ import Cookies from 'js-cookie';
2
+
3
+ /**
4
+ * 设置accessToken
5
+ */
6
+ export const setCookies = (tokenName = '_official_token', token) => {
7
+ let domain = window.location.hostname;
8
+ const reg = /\./g;
9
+ const domainTestResult = domain.match(reg);
10
+ // cookies存储在二级域名上
11
+ if (domainTestResult && domainTestResult.length > 1) {
12
+ const regDomain = /\.[a-zA-Z\d\.]+$/;
13
+ const result = domain.match(regDomain);
14
+ // eslint-disable-next-line prefer-destructuring
15
+ if (result && result.length > 0) domain = result[0];
16
+ }
17
+
18
+ // 历史原因,设置Cookies之前,先删除原完整域名下的cookies
19
+ Cookies.remove(tokenName);
20
+ // 设置官网的Cookies
21
+ Cookies.set(tokenName, token, { expires: 365, domain });
22
+ }
23
+
24
+ /**
25
+ * 移除Cookies
26
+ */
27
+ export const getCookies = (tokenName = '_official_token') => {
28
+ return Cookies.get(tokenName) || ''
29
+ }
30
+
31
+ /**
32
+ * 移除Cookies
33
+ */
34
+ export const removeCookies = (tokenName = '_official_token') => {
35
+ let domain = window.location.hostname;
36
+ const reg = /\./g;
37
+ const domainTestResult = domain.match(reg);
38
+ // cookies存储在二级域名上
39
+ if (domainTestResult && domainTestResult.length > 1) {
40
+ const regDomain = /\.[a-zA-Z\d\.]+$/;
41
+ const result = domain.match(regDomain);
42
+ // eslint-disable-next-line prefer-destructuring
43
+ if (result && result.length > 0) domain = result[0];
44
+ }
45
+
46
+ // 清除官网的Cookies
47
+ Cookies.remove(tokenName, { domain });
48
+ Cookies.remove(tokenName);
49
+ }