n20-common-lib 1.2.8 → 1.2.9

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 (189) hide show
  1. package/README.md +2 -2
  2. package/package.json +87 -87
  3. package/src/_qiankun/index.js +113 -113
  4. package/src/_qiankun/postMessage.js +48 -48
  5. package/src/assets/css/_coreLib.scss +35 -35
  6. package/src/assets/css/cl-anchor.scss +23 -23
  7. package/src/assets/css/cl-approve-card.scss +58 -58
  8. package/src/assets/css/cl-dialog.scss +99 -99
  9. package/src/assets/css/cl-drag-list.scss +22 -22
  10. package/src/assets/css/cl-empty.scss +10 -10
  11. package/src/assets/css/cl-expandable-pane.scss +26 -26
  12. package/src/assets/css/cl-expandable.scss +24 -24
  13. package/src/assets/css/cl-file-upload-table.scss +11 -11
  14. package/src/assets/css/cl-filter.scss +4 -4
  15. package/src/assets/css/cl-flow-step.scss +185 -185
  16. package/src/assets/css/cl-footer-box.scss +10 -10
  17. package/src/assets/css/cl-form-item.scss +454 -454
  18. package/src/assets/css/cl-general-card.scss +11 -11
  19. package/src/assets/css/cl-layout-aside.scss +88 -88
  20. package/src/assets/css/cl-layout-content.scss +16 -16
  21. package/src/assets/css/cl-layout-header.scss +73 -73
  22. package/src/assets/css/cl-layout-tabs.scss +87 -87
  23. package/src/assets/css/cl-layout.scss +97 -97
  24. package/src/assets/css/cl-login-temporary.scss +37 -37
  25. package/src/assets/css/cl-message.scss +75 -75
  26. package/src/assets/css/cl-more-tab.scss +98 -98
  27. package/src/assets/css/cl-nav-menu.scss +5 -5
  28. package/src/assets/css/cl-pagination.scss +65 -65
  29. package/src/assets/css/cl-secondary-tab.scss +39 -39
  30. package/src/assets/css/cl-showcolumn.scss +23 -23
  31. package/src/assets/css/cl-sifting.scss +51 -51
  32. package/src/assets/css/cl-statis.scss +42 -42
  33. package/src/assets/css/cl-step.scss +73 -73
  34. package/src/assets/css/cl-suspend.scss +19 -19
  35. package/src/assets/css/cl-tertiary-tab.scss +9 -9
  36. package/src/assets/css/cl-upload.scss +41 -41
  37. package/src/assets/css/cl-worn-pagination.scss +50 -50
  38. package/src/assets/css/el-button.scss +173 -173
  39. package/src/assets/css/el-table.scss +79 -79
  40. package/src/assets/css/element-variables.scss +1061 -1061
  41. package/src/assets/css/element.dev.scss +21 -21
  42. package/src/assets/css/font-icon.scss +27 -27
  43. package/src/assets/css/index.dev.scss +4 -4
  44. package/src/assets/css/index.scss +11 -11
  45. package/src/assets/css/normalize.scss +726 -726
  46. package/src/assets/css/rootvar.scss +139 -139
  47. package/src/assets/css/select.scss +25 -25
  48. package/src/assets/css/title-pop.scss +4 -4
  49. package/src/assets/getJsonc.js +50 -50
  50. package/src/assets/realUrl.js +12 -12
  51. package/src/components/.DS_Store +0 -0
  52. package/src/components/Anchor/AnchorItem.vue +29 -29
  53. package/src/components/Anchor/index.vue +185 -185
  54. package/src/components/ApprovalButtons/index.vue +232 -232
  55. package/src/components/ApprovalCard/index.vue +128 -128
  56. package/src/components/ApprovalRecord/approvalImg.vue +39 -39
  57. package/src/components/ApprovalRecord/index.vue +59 -59
  58. package/src/components/Button/button-group.vue +150 -150
  59. package/src/components/Button/icon-group-button.vue +61 -61
  60. package/src/components/Button/index.vue +56 -56
  61. package/src/components/CascaderArea/index.vue +81 -81
  62. package/src/components/ContentLoading/index.vue +41 -41
  63. package/src/components/ContentNull/index.vue +19 -19
  64. package/src/components/DatePicker/index.vue +27 -27
  65. package/src/components/DatePicker/por.vue +169 -169
  66. package/src/components/Dialog/index.vue +26 -26
  67. package/src/components/Dialog/indexO.vue +116 -116
  68. package/src/components/DragList/index.vue +68 -68
  69. package/src/components/Empty/img/abnormal.svg +108 -108
  70. package/src/components/Empty/img/dispose.svg +71 -71
  71. package/src/components/Empty/img/empty.svg +57 -57
  72. package/src/components/Empty/img/general.svg +58 -58
  73. package/src/components/Empty/img/lock.svg +57 -57
  74. package/src/components/Empty/img/network.svg +59 -59
  75. package/src/components/Empty/img/relevant.svg +68 -68
  76. package/src/components/Empty/img/search.svg +72 -72
  77. package/src/components/Empty/index.vue +92 -92
  78. package/src/components/Expandable/index.vue +49 -49
  79. package/src/components/Expandable/main.vue +52 -52
  80. package/src/components/FileExportAsync/index.vue +174 -174
  81. package/src/components/FileUploadTable/index.vue +484 -484
  82. package/src/components/Filters/index.vue +369 -369
  83. package/src/components/Filters/indexO.vue +104 -104
  84. package/src/components/FlowStep/index.vue +68 -68
  85. package/src/components/FooterBox/index.vue +21 -21
  86. package/src/components/GeneralCard/index.vue +15 -15
  87. package/src/components/InputNumber/index.vue +153 -153
  88. package/src/components/InputNumber/numberRange.vue +47 -47
  89. package/src/components/InputSearch/index.vue +75 -75
  90. package/src/components/Layout/.DS_Store +0 -0
  91. package/src/components/Layout/AsideNav/index.vue +119 -119
  92. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  93. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  94. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  95. package/src/components/Layout/HeaderWrap/index.vue +348 -348
  96. package/src/components/Layout/HeaderWrap/noticePop.vue +300 -300
  97. package/src/components/Layout/SubContent/index.vue +131 -131
  98. package/src/components/Layout/TabsNav/index.vue +170 -170
  99. package/src/components/Layout/index.vue +529 -529
  100. package/src/components/Layout/utils.js +12 -12
  101. package/src/components/LoginTemporary/form.vue +537 -537
  102. package/src/components/LoginTemporary/index.vue +122 -122
  103. package/src/components/LoginTemporary/qrcode.vue +90 -90
  104. package/src/components/LoginTemporary/retrievePw.vue +28 -28
  105. package/src/components/LoginTemporary/utils.js +73 -73
  106. package/src/components/MicroApp/index.js +67 -67
  107. package/src/components/MicroFrame/index.vue +95 -95
  108. package/src/components/MoreTab/index.vue +232 -232
  109. package/src/components/NavMenu/index.vue +60 -60
  110. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +184 -184
  111. package/src/components/PageLayout/page.vue +15 -15
  112. package/src/components/Pagination/index.vue +96 -96
  113. package/src/components/SecondaryTab/index.vue +58 -58
  114. package/src/components/SelectLazy/index.vue +75 -75
  115. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  116. package/src/components/SelectTree/index.vue +205 -205
  117. package/src/components/ShowColumn/index.vue +204 -204
  118. package/src/components/Sifting/index.vue +99 -99
  119. package/src/components/Statis/index.vue +97 -97
  120. package/src/components/Statis/statisItem.vue +54 -54
  121. package/src/components/Statis/statisPopover.vue +55 -55
  122. package/src/components/Step/index.vue +38 -38
  123. package/src/components/Suspend/index.vue +72 -72
  124. package/src/components/Table/index.vue +179 -179
  125. package/src/components/Table/indexO.vue +149 -149
  126. package/src/components/Task/index.vue +26 -26
  127. package/src/components/TertiaryTab/index.vue +53 -53
  128. package/src/components/TimePicker/index.vue +28 -28
  129. package/src/components/Upload/index.vue +242 -242
  130. package/src/components/WornPagination/index.vue +73 -73
  131. package/src/directives/VClickOutside/index.js +19 -19
  132. package/src/directives/VHas/index.js +32 -32
  133. package/src/directives/VMove/index.js +42 -42
  134. package/src/directives/VTitle/index.js +64 -64
  135. package/src/directives/VTitle/tooltip.vue +21 -21
  136. package/src/index.js +225 -225
  137. package/src/plugins/CompatibleOld/index.js +57 -57
  138. package/src/plugins/Print/index.js +4 -4
  139. package/src/plugins/Print/print-js/.babelrc +12 -12
  140. package/src/plugins/Print/print-js/LICENSE +21 -21
  141. package/src/plugins/Print/print-js/README.md +98 -98
  142. package/src/plugins/Print/print-js/dist/print.css +96 -96
  143. package/src/plugins/Print/print-js/dist/print.js +990 -990
  144. package/src/plugins/Print/print-js/package.json +60 -60
  145. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  146. package/src/plugins/Print/print-js/src/index.js +10 -10
  147. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  148. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  149. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  150. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  151. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  152. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  153. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  154. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  155. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  156. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  157. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  158. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  159. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  160. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  161. package/src/plugins/Print/print.js +2 -2
  162. package/src/plugins/Print/print.scss +1 -1
  163. package/src/plugins/SetMenuTree/index.vue +41 -41
  164. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  165. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  166. package/src/plugins/SetMenuTree/utils.js +74 -74
  167. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  168. package/src/plugins/Sign/index.js +65 -65
  169. package/src/plugins/Sign/sign.js +1 -1
  170. package/src/plugins/setTabsForSub.js +2 -2
  171. package/src/utils/auth.js +53 -53
  172. package/src/utils/axios.js +203 -203
  173. package/src/utils/downloadBlob.js +19 -19
  174. package/src/utils/forEachs.js +16 -16
  175. package/src/utils/getScrollContainer.js +43 -43
  176. package/src/utils/i18n/cn2hk.json +1270 -1270
  177. package/src/utils/i18n/index.js +54 -54
  178. package/src/utils/list2tree.js +36 -36
  179. package/src/utils/msgboxPor.js +26 -26
  180. package/src/utils/print.js +161 -161
  181. package/src/utils/relaNo.js +69 -69
  182. package/src/utils/repairElementUI.js +66 -66
  183. package/src/utils/urlToGo.js +82 -82
  184. package/style/css/normalize.scss +723 -726
  185. package/style/pageDemo/demo-1.vue +130 -131
  186. package/style/pageDemo/demo-2.vue +35 -35
  187. package/style/pageDemo/demo-3.vue +22 -22
  188. package/style/pageDemo/seeCode.js +20 -20
  189. package/style/server-config.jsonc +663 -596
@@ -1,81 +1,81 @@
1
- <template>
2
- <el-cascader
3
- ref="el-cascader"
4
- :value="value"
5
- v-bind="$attrs"
6
- :options="areaTree"
7
- :filterable="filterable"
8
- :clearable="clearable"
9
- :props="{
10
- value: 'regionNo',
11
- label: 'regionName',
12
- children: 'children',
13
- expandTrigger: 'hover'
14
- }"
15
- v-on="$listeners"
16
- />
17
- </template>
18
-
19
- <script>
20
- import axios from '../../utils/axios'
21
- import list2tree from '../../utils/list2tree'
22
-
23
- window._china_area_tree_ = undefined
24
-
25
- export default {
26
- name: 'CascaderArea',
27
- props: {
28
- value: {
29
- type: [String, Array],
30
- default: undefined
31
- },
32
- filterable: {
33
- type: Boolean,
34
- default: true
35
- },
36
- clearable: {
37
- type: Boolean,
38
- default: true
39
- }
40
- },
41
- data() {
42
- return {
43
- areaTree: []
44
- }
45
- },
46
- mounted() {
47
- if (!window._china_area_tree_) {
48
- this.getAreaTree()
49
- } else {
50
- this.areaTree = window._china_area_tree_
51
- }
52
- },
53
- methods: {
54
- getAreaTree() {
55
- axios
56
- .get('/bems/1.0/area', { isEnable: 1 }, { loading: false })
57
- .then(({ data }) => {
58
- let areaTree = list2tree(
59
- data,
60
- 'regionNo',
61
- 'fatherNo',
62
- 'children',
63
- 'regionNo'
64
- )
65
- let noAreaTree = areaTree.filter((a) => a.regionLevel !== '1')
66
- if (noAreaTree.length > 0) {
67
- console.warn('这些区域找不到父级节点:', noAreaTree)
68
- }
69
-
70
- window._china_area_tree_ = areaTree.filter(
71
- (a) => a.regionLevel === '1'
72
- )
73
- this.areaTree = window._china_area_tree_
74
- })
75
- },
76
- updateArea() {
77
- this.getAreaTree()
78
- }
79
- }
80
- }
81
- </script>
1
+ <template>
2
+ <el-cascader
3
+ ref="el-cascader"
4
+ :value="value"
5
+ v-bind="$attrs"
6
+ :options="areaTree"
7
+ :filterable="filterable"
8
+ :clearable="clearable"
9
+ :props="{
10
+ value: 'regionNo',
11
+ label: 'regionName',
12
+ children: 'children',
13
+ expandTrigger: 'hover'
14
+ }"
15
+ v-on="$listeners"
16
+ />
17
+ </template>
18
+
19
+ <script>
20
+ import axios from '../../utils/axios'
21
+ import list2tree from '../../utils/list2tree'
22
+
23
+ window._china_area_tree_ = undefined
24
+
25
+ export default {
26
+ name: 'CascaderArea',
27
+ props: {
28
+ value: {
29
+ type: [String, Array],
30
+ default: undefined
31
+ },
32
+ filterable: {
33
+ type: Boolean,
34
+ default: true
35
+ },
36
+ clearable: {
37
+ type: Boolean,
38
+ default: true
39
+ }
40
+ },
41
+ data() {
42
+ return {
43
+ areaTree: []
44
+ }
45
+ },
46
+ mounted() {
47
+ if (!window._china_area_tree_) {
48
+ this.getAreaTree()
49
+ } else {
50
+ this.areaTree = window._china_area_tree_
51
+ }
52
+ },
53
+ methods: {
54
+ getAreaTree() {
55
+ axios
56
+ .get('/bems/1.0/area', { isEnable: 1 }, { loading: false })
57
+ .then(({ data }) => {
58
+ let areaTree = list2tree(
59
+ data,
60
+ 'regionNo',
61
+ 'fatherNo',
62
+ 'children',
63
+ 'regionNo'
64
+ )
65
+ let noAreaTree = areaTree.filter((a) => a.regionLevel !== '1')
66
+ if (noAreaTree.length > 0) {
67
+ console.warn('这些区域找不到父级节点:', noAreaTree)
68
+ }
69
+
70
+ window._china_area_tree_ = areaTree.filter(
71
+ (a) => a.regionLevel === '1'
72
+ )
73
+ this.areaTree = window._china_area_tree_
74
+ })
75
+ },
76
+ updateArea() {
77
+ this.getAreaTree()
78
+ }
79
+ }
80
+ }
81
+ </script>
@@ -1,41 +1,41 @@
1
- <template>
2
- <div v-loading="loading" :element-loading-text="loadingText"></div>
3
- </template>
4
-
5
- <script>
6
- export default {
7
- name: 'ContentLoading',
8
- data() {
9
- return {
10
- loading: true,
11
- loadingText: '加载中',
12
- timeout: 12000
13
- }
14
- },
15
- mounted() {
16
- this.setTimeOut()
17
- },
18
- activated() {
19
- this.setTimeOut()
20
- },
21
- deactivated() {
22
- this.clearTimeOut()
23
- },
24
- beforeDestroy() {
25
- this.clearTimeOut()
26
- },
27
- methods: {
28
- setTimeOut() {
29
- clearTimeout(this.sT)
30
-
31
- this.sT = setTimeout(() => {
32
- this.loadingText = '请求超时,请刷新尝试'
33
- }, this.timeout)
34
- },
35
- clearTimeOut() {
36
- this.loadingText = '加载中'
37
- clearTimeout(this.sT)
38
- }
39
- }
40
- }
41
- </script>
1
+ <template>
2
+ <div v-loading="loading" :element-loading-text="loadingText"></div>
3
+ </template>
4
+
5
+ <script>
6
+ export default {
7
+ name: 'ContentLoading',
8
+ data() {
9
+ return {
10
+ loading: true,
11
+ loadingText: '加载中',
12
+ timeout: 12000
13
+ }
14
+ },
15
+ mounted() {
16
+ this.setTimeOut()
17
+ },
18
+ activated() {
19
+ this.setTimeOut()
20
+ },
21
+ deactivated() {
22
+ this.clearTimeOut()
23
+ },
24
+ beforeDestroy() {
25
+ this.clearTimeOut()
26
+ },
27
+ methods: {
28
+ setTimeOut() {
29
+ clearTimeout(this.sT)
30
+
31
+ this.sT = setTimeout(() => {
32
+ this.loadingText = '请求超时,请刷新尝试'
33
+ }, this.timeout)
34
+ },
35
+ clearTimeOut() {
36
+ this.loadingText = '加载中'
37
+ clearTimeout(this.sT)
38
+ }
39
+ }
40
+ }
41
+ </script>
@@ -1,19 +1,19 @@
1
- <template>
2
- <empty-box type="404">
3
- <div slot="content">暂无访问权限</div>
4
- </empty-box>
5
- </template>
6
-
7
- <script>
8
- import EmptyBox from '../Empty/index.vue'
9
- export default {
10
- name: 'ContentNull',
11
- components: {
12
- EmptyBox
13
- },
14
- data() {
15
- this.isNull = true
16
- return {}
17
- }
18
- }
19
- </script>
1
+ <template>
2
+ <empty-box type="404">
3
+ <div slot="content">暂无访问权限</div>
4
+ </empty-box>
5
+ </template>
6
+
7
+ <script>
8
+ import EmptyBox from '../Empty/index.vue'
9
+ export default {
10
+ name: 'ContentNull',
11
+ components: {
12
+ EmptyBox
13
+ },
14
+ data() {
15
+ this.isNull = true
16
+ return {}
17
+ }
18
+ }
19
+ </script>
@@ -1,27 +1,27 @@
1
- <template>
2
- <el-date-picker
3
- ref="date-picker"
4
- class="n20-date-editor"
5
- :class="{ 'has-value': clearable && value }"
6
- v-bind="$attrs"
7
- :value="value"
8
- :clearable="clearable"
9
- v-on="$listeners"
10
- />
11
- </template>
12
-
13
- <script>
14
- export default {
15
- name: 'DatePicker',
16
- props: {
17
- value: {
18
- type: [String, Number, Date],
19
- default: undefined
20
- },
21
- clearable: {
22
- type: Boolean,
23
- default: true
24
- }
25
- }
26
- }
27
- </script>
1
+ <template>
2
+ <el-date-picker
3
+ ref="date-picker"
4
+ class="n20-date-editor"
5
+ :class="{ 'has-value': clearable && value }"
6
+ v-bind="$attrs"
7
+ :value="value"
8
+ :clearable="clearable"
9
+ v-on="$listeners"
10
+ />
11
+ </template>
12
+
13
+ <script>
14
+ export default {
15
+ name: 'DatePicker',
16
+ props: {
17
+ value: {
18
+ type: [String, Number, Date],
19
+ default: undefined
20
+ },
21
+ clearable: {
22
+ type: Boolean,
23
+ default: true
24
+ }
25
+ }
26
+ }
27
+ </script>
@@ -1,169 +1,169 @@
1
- <template>
2
- <el-date-picker
3
- ref="date-picker"
4
- v-model="valueC"
5
- class="n20-date-editor"
6
- :class="{ 'has-value': clearable && valueC }"
7
- :type="type"
8
- :value-format="valueFormat"
9
- placeholder="选择日期"
10
- start-placeholder="开始日期"
11
- end-placeholder="结束日期"
12
- :picker-options="pickerOptions"
13
- :clearable="clearable"
14
- v-bind="$attrs"
15
- v-on="listeners"
16
- />
17
- </template>
18
-
19
- <script>
20
- let disabledDate_1 = (t) => {
21
- return t < Date.now() - 86400000
22
- }
23
- let shortcuts_1 = [
24
- {
25
- text: '最近一月',
26
- onClick(picker) {
27
- const start = new Date()
28
- start.setMonth(start.getMonth() - 1)
29
- picker.$emit('pick', start)
30
- }
31
- },
32
- {
33
- text: '最近三月',
34
- onClick(picker) {
35
- const start = new Date()
36
- start.setMonth(start.getMonth() - 3)
37
- picker.$emit('pick', start)
38
- }
39
- },
40
- {
41
- text: '最近六月',
42
- onClick(picker) {
43
- const start = new Date()
44
- start.setMonth(start.getMonth() - 6)
45
- picker.$emit('pick', start)
46
- }
47
- },
48
- {
49
- text: '最近一年',
50
- onClick(picker) {
51
- const start = new Date()
52
- start.setFullYear(start.getFullYear() - 1)
53
- picker.$emit('pick', start)
54
- }
55
- }
56
- ]
57
- let shortcuts_2 = [
58
- {
59
- text: '最近一月',
60
- onClick(picker) {
61
- const end = new Date()
62
- const start = new Date()
63
- start.setMonth(start.getMonth() - 1)
64
- picker.$emit('pick', [start, end])
65
- }
66
- },
67
- {
68
- text: '最近三月',
69
- onClick(picker) {
70
- const end = new Date()
71
- const start = new Date()
72
- start.setMonth(start.getMonth() - 3)
73
- picker.$emit('pick', [start, end])
74
- }
75
- },
76
- {
77
- text: '最近六月',
78
- onClick(picker) {
79
- const end = new Date()
80
- const start = new Date()
81
- start.setMonth(start.getMonth() - 6)
82
- picker.$emit('pick', [start, end])
83
- }
84
- },
85
- {
86
- text: '最近一年',
87
- onClick(picker) {
88
- const end = new Date()
89
- const start = new Date()
90
- start.setFullYear(start.getFullYear() - 1)
91
- picker.$emit('pick', [start, end])
92
- }
93
- }
94
- ]
95
-
96
- export default {
97
- name: 'DatePickerPor',
98
- props: {
99
- type: {
100
- type: String,
101
- default: 'date'
102
- },
103
- value: {
104
- type: [String, Number, Date],
105
- default: undefined
106
- },
107
- valueFormat: {
108
- type: String,
109
- default: 'yyyy-MM-dd'
110
- },
111
- startDate: {
112
- type: [String, Number, Date],
113
- default: null
114
- },
115
- endDate: {
116
- type: [String, Number, Date],
117
- default: null
118
- },
119
- minNow: {
120
- type: Boolean,
121
- default: false
122
- },
123
- showShortcut: {
124
- type: Boolean,
125
- default: true
126
- },
127
- clearable: {
128
- type: Boolean,
129
- default: true
130
- }
131
- },
132
- data() {
133
- this.pickerOptions = {
134
- disabledDate: this.minNow ? disabledDate_1 : undefined,
135
- shortcuts: this.showShortcut
136
- ? this.type === 'date'
137
- ? shortcuts_1
138
- : shortcuts_2
139
- : undefined
140
- }
141
-
142
- this.listeners = Object.assign({}, this.$listeners, { input: () => {} })
143
- return {}
144
- },
145
- computed: {
146
- valueC: {
147
- get() {
148
- if (this.type === 'daterange' || this.type === 'monthrange') {
149
- if (this.startDate && this.endDate) {
150
- return [this.startDate, this.endDate]
151
- } else {
152
- return null
153
- }
154
- } else {
155
- return this.value
156
- }
157
- },
158
- set(val) {
159
- if (this.type === 'daterange' || this.type === 'monthrange') {
160
- this.$emit('update:start-date', val ? val[0] : null)
161
- this.$emit('update:end-date', val ? val[1] : null)
162
- } else {
163
- this.$emit('input', val)
164
- }
165
- }
166
- }
167
- }
168
- }
169
- </script>
1
+ <template>
2
+ <el-date-picker
3
+ ref="date-picker"
4
+ v-model="valueC"
5
+ class="n20-date-editor"
6
+ :class="{ 'has-value': clearable && valueC }"
7
+ :type="type"
8
+ :value-format="valueFormat"
9
+ placeholder="选择日期"
10
+ start-placeholder="开始日期"
11
+ end-placeholder="结束日期"
12
+ :picker-options="pickerOptions"
13
+ :clearable="clearable"
14
+ v-bind="$attrs"
15
+ v-on="listeners"
16
+ />
17
+ </template>
18
+
19
+ <script>
20
+ let disabledDate_1 = (t) => {
21
+ return t < Date.now() - 86400000
22
+ }
23
+ let shortcuts_1 = [
24
+ {
25
+ text: '最近一月',
26
+ onClick(picker) {
27
+ const start = new Date()
28
+ start.setMonth(start.getMonth() - 1)
29
+ picker.$emit('pick', start)
30
+ }
31
+ },
32
+ {
33
+ text: '最近三月',
34
+ onClick(picker) {
35
+ const start = new Date()
36
+ start.setMonth(start.getMonth() - 3)
37
+ picker.$emit('pick', start)
38
+ }
39
+ },
40
+ {
41
+ text: '最近六月',
42
+ onClick(picker) {
43
+ const start = new Date()
44
+ start.setMonth(start.getMonth() - 6)
45
+ picker.$emit('pick', start)
46
+ }
47
+ },
48
+ {
49
+ text: '最近一年',
50
+ onClick(picker) {
51
+ const start = new Date()
52
+ start.setFullYear(start.getFullYear() - 1)
53
+ picker.$emit('pick', start)
54
+ }
55
+ }
56
+ ]
57
+ let shortcuts_2 = [
58
+ {
59
+ text: '最近一月',
60
+ onClick(picker) {
61
+ const end = new Date()
62
+ const start = new Date()
63
+ start.setMonth(start.getMonth() - 1)
64
+ picker.$emit('pick', [start, end])
65
+ }
66
+ },
67
+ {
68
+ text: '最近三月',
69
+ onClick(picker) {
70
+ const end = new Date()
71
+ const start = new Date()
72
+ start.setMonth(start.getMonth() - 3)
73
+ picker.$emit('pick', [start, end])
74
+ }
75
+ },
76
+ {
77
+ text: '最近六月',
78
+ onClick(picker) {
79
+ const end = new Date()
80
+ const start = new Date()
81
+ start.setMonth(start.getMonth() - 6)
82
+ picker.$emit('pick', [start, end])
83
+ }
84
+ },
85
+ {
86
+ text: '最近一年',
87
+ onClick(picker) {
88
+ const end = new Date()
89
+ const start = new Date()
90
+ start.setFullYear(start.getFullYear() - 1)
91
+ picker.$emit('pick', [start, end])
92
+ }
93
+ }
94
+ ]
95
+
96
+ export default {
97
+ name: 'DatePickerPor',
98
+ props: {
99
+ type: {
100
+ type: String,
101
+ default: 'date'
102
+ },
103
+ value: {
104
+ type: [String, Number, Date],
105
+ default: undefined
106
+ },
107
+ valueFormat: {
108
+ type: String,
109
+ default: 'yyyy-MM-dd'
110
+ },
111
+ startDate: {
112
+ type: [String, Number, Date],
113
+ default: null
114
+ },
115
+ endDate: {
116
+ type: [String, Number, Date],
117
+ default: null
118
+ },
119
+ minNow: {
120
+ type: Boolean,
121
+ default: false
122
+ },
123
+ showShortcut: {
124
+ type: Boolean,
125
+ default: true
126
+ },
127
+ clearable: {
128
+ type: Boolean,
129
+ default: true
130
+ }
131
+ },
132
+ data() {
133
+ this.pickerOptions = {
134
+ disabledDate: this.minNow ? disabledDate_1 : undefined,
135
+ shortcuts: this.showShortcut
136
+ ? this.type === 'date'
137
+ ? shortcuts_1
138
+ : shortcuts_2
139
+ : undefined
140
+ }
141
+
142
+ this.listeners = Object.assign({}, this.$listeners, { input: () => {} })
143
+ return {}
144
+ },
145
+ computed: {
146
+ valueC: {
147
+ get() {
148
+ if (this.type === 'daterange' || this.type === 'monthrange') {
149
+ if (this.startDate && this.endDate) {
150
+ return [this.startDate, this.endDate]
151
+ } else {
152
+ return null
153
+ }
154
+ } else {
155
+ return this.value
156
+ }
157
+ },
158
+ set(val) {
159
+ if (this.type === 'daterange' || this.type === 'monthrange') {
160
+ this.$emit('update:start-date', val ? val[0] : null)
161
+ this.$emit('update:end-date', val ? val[1] : null)
162
+ } else {
163
+ this.$emit('input', val)
164
+ }
165
+ }
166
+ }
167
+ }
168
+ }
169
+ </script>