39d91ee3 by 任超

style:首页

1 parent 2fc1abcc
...@@ -8,10 +8,15 @@ ...@@ -8,10 +8,15 @@
8 "build": "vue-cli-service build" 8 "build": "vue-cli-service build"
9 }, 9 },
10 "dependencies": { 10 "dependencies": {
11 "@antv/g2": "^4.2.8",
11 "@babel/polyfill": "^7.12.1", 12 "@babel/polyfill": "^7.12.1",
12 "axios": "^0.21.1", 13 "axios": "^0.21.1",
13 "babel-polyfill": "^6.26.0", 14 "babel-polyfill": "^6.26.0",
15 "bpmn-js": "^7.4.0",
16 "bpmn-js-properties-panel": "^0.37.2",
17 "bpmn-js-token-simulation": "^0.10.0",
14 "core-js": "^3.6.5", 18 "core-js": "^3.6.5",
19 "diagram-js": "^6.8.2",
15 "js-cookie": "2.2.0", 20 "js-cookie": "2.2.0",
16 "lodash": "^4.17.21", 21 "lodash": "^4.17.21",
17 "node-sass": "^4.14.1", 22 "node-sass": "^4.14.1",
...@@ -19,11 +24,7 @@ ...@@ -19,11 +24,7 @@
19 "nprogress": "0.2.0", 24 "nprogress": "0.2.0",
20 "vue": "2.6.10", 25 "vue": "2.6.10",
21 "vue-router": "3.0.2", 26 "vue-router": "3.0.2",
22 "vuex": "3.1.0", 27 "vuex": "3.1.0"
23 "bpmn-js": "^7.4.0",
24 "diagram-js": "^6.8.2",
25 "bpmn-js-properties-panel": "^0.37.2",
26 "bpmn-js-token-simulation": "^0.10.0"
27 }, 28 },
28 "devDependencies": { 29 "devDependencies": {
29 "@vue/cli-plugin-babel": "4.4.4", 30 "@vue/cli-plugin-babel": "4.4.4",
......
1 /**
2 * @1900-2100区间内的公历、农历互转
3 * @charset UTF-8
4 * @Author Jea杨(JJonline@JJonline.Cn)
5 * @Time 2014-7-21
6 * @Time 2016-8-13 Fixed 2033hex、Attribution Annals
7 * @Time 2016-9-25 Fixed lunar LeapMonth Param Bug
8 * @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year
9 * @Version 1.0.3
10 * @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0]
11 * @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0]
12 */
13 const calendar = {
14
15 /**
16 * 农历1900-2100的润大小信息表
17 * @Array Of Property
18 * @return Hex
19 */
20 lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,//1900-1909
21 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977,//1910-1919
22 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970,//1920-1929
23 0x06566, 0x0d4a0, 0x0ea50, 0x16a95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950,//1930-1939
24 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557,//1940-1949
25 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0,//1950-1959
26 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,//1960-1969
27 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6,//1970-1979
28 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570,//1980-1989
29 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0,//1990-1999
30 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5,//2000-2009
31 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930,//2010-2019
32 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530,//2020-2029
33 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,//2030-2039
34 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0,//2040-2049
35 /**Add By JJonline@JJonline.Cn**/
36 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0,//2050-2059
37 0x092e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4,//2060-2069
38 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0,//2070-2079
39 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160,//2080-2089
40 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252,//2090-2099
41 0x0d520],//2100
42
43 /**
44 * 公历每个月份的天数普通表
45 * @Array Of Property
46 * @return Number
47 */
48 solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
49
50 /**
51 * 天干地支之天干速查表
52 * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"]
53 * @return Cn string
54 */
55 Gan: ["\u7532", "\u4e59", "\u4e19", "\u4e01", "\u620a", "\u5df1", "\u5e9a", "\u8f9b", "\u58ec", "\u7678"],
56
57 /**
58 * 天干地支之地支速查表
59 * @Array Of Property
60 * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"]
61 * @return Cn string
62 */
63 Zhi: ["\u5b50", "\u4e11", "\u5bc5", "\u536f", "\u8fb0", "\u5df3", "\u5348", "\u672a", "\u7533", "\u9149", "\u620c", "\u4ea5"],
64
65 /**
66 * 天干地支之地支速查表<=>生肖
67 * @Array Of Property
68 * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
69 * @return Cn string
70 */
71 Animals: ["\u9f20", "\u725b", "\u864e", "\u5154", "\u9f99", "\u86c7", "\u9a6c", "\u7f8a", "\u7334", "\u9e21", "\u72d7", "\u732a"],
72
73 /**
74 * 阳历节日
75 */
76 festival: {
77 '1-1': { title: '元旦节' },
78 '2-14': { title: '情人节' },
79 '5-1': { title: '劳动节' },
80 '5-4': { title: '青年节' },
81 '6-1': { title: '儿童节' },
82 '9-10': { title: '教师节' },
83 '10-1': { title: '国庆节' },
84 '12-25': { title: '圣诞节' },
85
86 '3-8': { title: '妇女节' },
87 '3-12': { title: '植树节' },
88 '4-1': { title: '愚人节' },
89 '5-12': { title: '护士节' },
90 '7-1': { title: '建党节' },
91 '8-1': { title: '建军节' },
92 '12-24': { title: '平安夜' },
93 },
94
95 /**
96 * 农历节日
97 */
98 lFestival: {
99 '12-30': { title: '除夕' },
100 '1-1': { title: '春节' },
101 '1-15': { title: '元宵节' },
102 '2-2': { title: '龙抬头' },
103 '5-5': { title: '端午节' },
104 '7-7': { title: '七夕节' },
105 '7-15': { title: '中元节' },
106 '8-15': { title: '中秋节' },
107 '9-9': { title: '重阳节' },
108 '10-1': { title: '寒衣节' },
109 '10-15': { title: '下元节' },
110 '12-8': { title: '腊八节' },
111 '12-23': { title: '北方小年' },
112 '12-24': { title: '南方小年' },
113 },
114
115 /**
116 * 返回默认定义的阳历节日
117 */
118 getFestival () {
119 return this.festival
120 },
121
122 /**
123 * 返回默认定义的内容里节日
124 */
125 getLunarFestival () {
126 return this.lFestival
127 },
128
129 /**
130 *
131 * @param param {Object} 按照festival的格式输入数据,设置阳历节日
132 */
133 setFestival (param = {}) {
134 this.festival = param
135 },
136
137 /**
138 *
139 * @param param {Object} 按照lFestival的格式输入数据,设置农历节日
140 */
141 setLunarFestival (param = {}) {
142 this.lFestival = param
143 },
144
145 /**
146 * 24节气速查表
147 * @Array Of Property
148 * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"]
149 * @return Cn string
150 */
151 solarTerm: ["\u5c0f\u5bd2", "\u5927\u5bd2", "\u7acb\u6625", "\u96e8\u6c34", "\u60ca\u86f0", "\u6625\u5206", "\u6e05\u660e", "\u8c37\u96e8", "\u7acb\u590f", "\u5c0f\u6ee1", "\u8292\u79cd", "\u590f\u81f3", "\u5c0f\u6691", "\u5927\u6691", "\u7acb\u79cb", "\u5904\u6691", "\u767d\u9732", "\u79cb\u5206", "\u5bd2\u9732", "\u971c\u964d", "\u7acb\u51ac", "\u5c0f\u96ea", "\u5927\u96ea", "\u51ac\u81f3"],
152
153 /**
154 * 1900-2100各年的24节气日期速查表
155 * @Array Of Property
156 * @return 0x string For splice
157 */
158 sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f',
159 '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
160 '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa',
161 '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f',
162 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f',
163 '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa',
164 '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2',
165 '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f',
166 '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e',
167 '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
168 '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722',
169 '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f',
170 '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
171 '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
172 '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722',
173 '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f',
174 '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
175 '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
176 '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722',
177 '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
178 '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
179 '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
180 '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722',
181 '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
182 '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
183 '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
184 '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722',
185 '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
186 '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
187 '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
188 '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
189 '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
190 '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
191 '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
192 '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
193 '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
194 '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
195 '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
196 '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721',
197 '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2',
198 '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
199 '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
200 '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd',
201 '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
202 '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
203 '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
204 '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd',
205 '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
206 '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
207 '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721',
208 '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5',
209 '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722',
210 '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
211 '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
212 '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35',
213 '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
214 '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721',
215 '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd',
216 '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35',
217 '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
218 '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721',
219 '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5',
220 '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35',
221 '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
222 '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
223 '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35',
224 '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'],
225
226 /**
227 * 数字转中文速查表
228 * @Array Of Property
229 * @trans ['日','一','二','三','四','五','六','七','八','九','十']
230 * @return Cn string
231 */
232 nStr1: ["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341"],
233
234 /**
235 * 日期转农历称呼速查表
236 * @Array Of Property
237 * @trans ['初','十','廿','卅']
238 * @return Cn string
239 */
240 nStr2: ["\u521d", "\u5341", "\u5eff", "\u5345"],
241
242 /**
243 * 月份转农历称呼速查表
244 * @Array Of Property
245 * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊']
246 * @return Cn string
247 */
248 nStr3: ["\u6b63", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341", "\u51ac", "\u814a"],
249
250 /**
251 * 返回农历y年一整年的总天数
252 * @param y lunar Year
253 * @return Number
254 * @eg:var count = calendar.lYearDays(1987) ;//count=387
255 */
256 lYearDays: function (y) {
257 let i, sum = 348;
258 for (i = 0x8000; i > 0x8; i >>= 1) {
259 sum += (this.lunarInfo[y - 1900] & i) ? 1 : 0;
260 }
261 return (sum + this.leapDays(y));
262 },
263
264 /**
265 * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0
266 * @param y lunar Year
267 * @return Number (0-12)
268 * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6
269 */
270 leapMonth: function (y) { //闰字编码 \u95f0
271 return (this.lunarInfo[y - 1900] & 0xf);
272 },
273
274 /**
275 * 返回农历y年闰月的天数 若该年没有闰月则返回0
276 * @param y lunar Year
277 * @return Number (0、29、30)
278 * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29
279 */
280 leapDays: function (y) {
281 if (this.leapMonth(y)) {
282 return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29);
283 }
284 return (0);
285 },
286
287 /**
288 * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法
289 * @param y lunar Year
290 * @param m lunar Month
291 * @return Number (-1、29、30)
292 * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29
293 */
294 monthDays: function (y, m) {
295 if (m > 12 || m < 1) {
296 return -1
297 }//月份参数从1至12,参数错误返回-1
298 return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29);
299 },
300
301 /**
302 * 返回公历(!)y年m月的天数
303 * @param y solar Year
304 * @param m solar Month
305 * @return Number (-1、28、29、30、31)
306 * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30
307 */
308 solarDays: function (y, m) {
309 if (m > 12 || m < 1) {
310 return -1
311 } //若参数错误 返回-1
312 const ms = m - 1;
313 if (ms === 1) { //2月份的闰平规律测算后确认返回28或29
314 return (((y % 4 === 0) && (y % 100 !== 0) || (y % 400 === 0)) ? 29 : 28);
315 } else {
316 return (this.solarMonth[ms]);
317 }
318 },
319
320 /**
321 * 农历年份转换为干支纪年
322 * @param lYear 农历年的年份数
323 * @return Cn string
324 */
325 toGanZhiYear: function (lYear) {
326 var ganKey = (lYear - 3) % 10;
327 var zhiKey = (lYear - 3) % 12;
328 if (ganKey === 0) ganKey = 10;//如果余数为0则为最后一个天干
329 if (zhiKey === 0) zhiKey = 12;//如果余数为0则为最后一个地支
330 return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1];
331
332 },
333
334 /**
335 * 公历月、日判断所属星座
336 * @param cMonth [description]
337 * @param cDay [description]
338 * @return Cn string
339 */
340 toAstro: function (cMonth, cDay) {
341 const s = "\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf";
342 const arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22];
343 return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + "\u5ea7";//座
344 },
345
346 /**
347 * 传入offset偏移量返回干支
348 * @param offset 相对甲子的偏移量
349 * @return Cn string
350 */
351 toGanZhi: function (offset) {
352 return this.Gan[offset % 10] + this.Zhi[offset % 12];
353 },
354
355 /**
356 * 传入公历(!)y年获得该年第n个节气的公历日期
357 * @param y y公历年(1900-2100)
358 * @param n n二十四节气中的第几个节气(1~24);从n=1(小寒)算起
359 * @return day Number
360 * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春
361 */
362 getTerm: function (y, n) {
363 if (y < 1900 || y > 2100) {
364 return -1;
365 }
366 if (n < 1 || n > 24) {
367 return -1;
368 }
369 const _table = this.sTermInfo[y - 1900];
370 const _info = [
371 parseInt('0x' + _table.substr(0, 5)).toString(),
372 parseInt('0x' + _table.substr(5, 5)).toString(),
373 parseInt('0x' + _table.substr(10, 5)).toString(),
374 parseInt('0x' + _table.substr(15, 5)).toString(),
375 parseInt('0x' + _table.substr(20, 5)).toString(),
376 parseInt('0x' + _table.substr(25, 5)).toString()
377 ];
378 const _calcDay = [
379 _info[0].substr(0, 1),
380 _info[0].substr(1, 2),
381 _info[0].substr(3, 1),
382 _info[0].substr(4, 2),
383
384 _info[1].substr(0, 1),
385 _info[1].substr(1, 2),
386 _info[1].substr(3, 1),
387 _info[1].substr(4, 2),
388
389 _info[2].substr(0, 1),
390 _info[2].substr(1, 2),
391 _info[2].substr(3, 1),
392 _info[2].substr(4, 2),
393
394 _info[3].substr(0, 1),
395 _info[3].substr(1, 2),
396 _info[3].substr(3, 1),
397 _info[3].substr(4, 2),
398
399 _info[4].substr(0, 1),
400 _info[4].substr(1, 2),
401 _info[4].substr(3, 1),
402 _info[4].substr(4, 2),
403
404 _info[5].substr(0, 1),
405 _info[5].substr(1, 2),
406 _info[5].substr(3, 1),
407 _info[5].substr(4, 2),
408 ];
409 return parseInt(_calcDay[n - 1]);
410 },
411
412 /**
413 * 传入农历数字月份返回汉语通俗表示法
414 * @param m lunar month
415 * @return Cn string
416 * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月'
417 */
418 toChinaMonth: function (m) { // 月 => \u6708
419 if (m > 12 || m < 1) {
420 return -1
421 } //若参数错误 返回-1
422 let s = this.nStr3[m - 1];
423 s += "\u6708";//加上月字
424 return s;
425 },
426
427 /**
428 * 传入农历日期数字返回汉字表示法
429 * @param d lunar day
430 * @return Cn string
431 * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一'
432 */
433 toChinaDay: function (d) { //日 => \u65e5
434 let s;
435 switch (d) {
436 case 10:
437 s = '\u521d\u5341';
438 break;
439 case 20:
440 s = '\u4e8c\u5341';
441 break;
442 case 30:
443 s = '\u4e09\u5341';
444 break;
445 default:
446 s = this.nStr2[Math.floor(d / 10)];
447 s += this.nStr1[d % 10];
448 }
449 return (s);
450 },
451
452 /**
453 * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春”
454 * @param y year
455 * @return Cn string
456 * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔'
457 */
458 getAnimal: function (y) {
459 return this.Animals[(y - 4) % 12]
460 },
461
462 /**
463 * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON
464 * !important! 公历参数区间1900.1.31~2100.12.31
465 * @param yPara solar year
466 * @param mPara solar month
467 * @param dPara solar day
468 * @return JSON object
469 * @eg:console.log(calendar.solar2lunar(1987,11,01));
470 */
471 solar2lunar: function (yPara, mPara, dPara) {
472 let y = parseInt(yPara);
473 let m = parseInt(mPara);
474 let d = parseInt(dPara);
475 //年份限定、上限
476 if (y < 1900 || y > 2100) {
477 return -1;// undefined转换为数字变为NaN
478 }
479 //公历传参最下限
480 if (y === 1900 && m === 1 && d < 31) {
481 return -1;
482 }
483
484 //未传参 获得当天
485 let objDate;
486 if (!y) {
487 objDate = new Date();
488 } else {
489 objDate = new Date(y, parseInt(m) - 1, d);
490 }
491 let i, leap = 0, temp = 0;
492 //修正ymd参数
493 y = objDate.getFullYear();
494 m = objDate.getMonth() + 1;
495 d = objDate.getDate();
496 let offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000;
497 for (i = 1900; i < 2101 && offset > 0; i++) {
498 temp = this.lYearDays(i);
499 offset -= temp;
500 }
501 if (offset < 0) {
502 offset += temp;
503 i--;
504 }
505
506 //是否今天
507 let isTodayObj = new Date(),
508 isToday = false;
509 if (isTodayObj.getFullYear() === y && isTodayObj.getMonth() + 1 === m && isTodayObj.getDate() === d) {
510 isToday = true;
511 }
512 //星期几
513 let nWeek = objDate.getDay(),
514 cWeek = this.nStr1[nWeek];
515 //数字表示周几顺应天朝周一开始的惯例
516 if (nWeek === 0) {
517 nWeek = 7;
518 }
519 //农历年
520 const year = i;
521 leap = this.leapMonth(i); //闰哪个月
522 let isLeap = false;
523
524 //效验闰月
525 for (i = 1; i < 13 && offset > 0; i++) {
526 //闰月
527 if (leap > 0 && i === (leap + 1) && isLeap === false) {
528 --i;
529 isLeap = true;
530 temp = this.leapDays(year); //计算农历闰月天数
531 } else {
532 temp = this.monthDays(year, i);//计算农历普通月天数
533 }
534 //解除闰月
535 if (isLeap === true && i === (leap + 1)) {
536 isLeap = false;
537 }
538 offset -= temp;
539 }
540 // 闰月导致数组下标重叠取反
541 if (offset === 0 && leap > 0 && i === leap + 1) {
542 if (isLeap) {
543 isLeap = false;
544 } else {
545 isLeap = true;
546 --i;
547 }
548 }
549 if (offset < 0) {
550 offset += temp;
551 --i;
552 }
553 //农历月
554 const month = i;
555 //农历日
556 const day = offset + 1;
557 //天干地支处理
558 const sm = m - 1;
559 const gzY = this.toGanZhiYear(year);
560
561 // 当月的两个节气
562 // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year`
563 const firstNode = this.getTerm(y, (m * 2 - 1));//返回当月「节」为几日开始
564 const secondNode = this.getTerm(y, (m * 2));//返回当月「节」为几日开始
565
566 // 依据12节气修正干支月
567 let gzM = this.toGanZhi((y - 1900) * 12 + m + 11);
568 if (d >= firstNode) {
569 gzM = this.toGanZhi((y - 1900) * 12 + m + 12);
570 }
571
572 //传入的日期的节气与否
573 let isTerm = false;
574 let Term = null;
575 if (firstNode === d) {
576 isTerm = true;
577 Term = this.solarTerm[m * 2 - 2];
578 }
579 if (secondNode === d) {
580 isTerm = true;
581 Term = this.solarTerm[m * 2 - 1];
582 }
583 //日柱 当月一日与 1900/1/1 相差天数
584 const dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10;
585 const gzD = this.toGanZhi(dayCyclical + d - 1);
586 //该日期所属的星座
587 const astro = this.toAstro(m, d);
588
589 const solarDate = y + '-' + m + '-' + d;
590 const lunarDate = year + '-' + month + '-' + day;
591
592 const festival = this.festival;
593 const lFestival = this.lFestival;
594
595 const festivalDate = m + '-' + d;
596 const lunarFestivalDate = month + '-' + day;
597
598 return {
599 date: solarDate,
600 lunarDate: lunarDate,
601 festival: festival[festivalDate] ? festival[festivalDate].title : null,
602 lunarFestival: lFestival[lunarFestivalDate] ? lFestival[lunarFestivalDate].title : null,
603 'lYear': year,
604 'lMonth': month,
605 'lDay': day,
606 'Animal': this.getAnimal(year),
607 'IMonthCn': (isLeap ? "\u95f0" : '') + this.toChinaMonth(month),
608 'IDayCn': this.toChinaDay(day),
609 'cYear': y,
610 'cMonth': m,
611 'cDay': d,
612 'gzYear': gzY,
613 'gzMonth': gzM,
614 'gzDay': gzD,
615 'isToday': isToday,
616 'isLeap': isLeap,
617 'nWeek': nWeek,
618 'ncWeek': "\u661f\u671f" + cWeek,
619 'isTerm': isTerm,
620 'Term': Term,
621 'astro': astro
622 };
623 },
624
625 /**
626 * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON
627 * !important! 参数区间1900.1.31~2100.12.1
628 * @param y lunar year
629 * @param m lunar month
630 * @param d lunar day
631 * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可]
632 * @return JSON object
633 * @eg:console.log(calendar.lunar2solar(1987,9,10));
634 */
635 lunar2solar: function (y, m, d, isLeapMonth) {
636 y = parseInt(y)
637 m = parseInt(m)
638 d = parseInt(d)
639 isLeapMonth = !!isLeapMonth;
640 const leapOffset = 0;
641 const leapMonth = this.leapMonth(y);
642 const leapDay = this.leapDays(y);
643 if (isLeapMonth && (leapMonth !== m)) {
644 return -1;
645 }//传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同
646 if (y === 2100 && m === 12 && d > 1 || y === 1900 && m === 1 && d < 31) {
647 return -1;
648 }//超出了最大极限值
649 const day = this.monthDays(y, m);
650 let _day = day;
651 //bugFix 2016-9-25
652 //if month is leap, _day use leapDays method
653 if (isLeapMonth) {
654 _day = this.leapDays(y, m);
655 }
656 if (y < 1900 || y > 2100 || d > _day) {
657 return -1;
658 }//参数合法性效验
659
660 //计算农历的时间差
661 let offset = 0;
662 let i;
663 for (i = 1900; i < y; i++) {
664 offset += this.lYearDays(i);
665 }
666 let leap = 0, isAdd = false;
667 for (i = 1; i < m; i++) {
668 leap = this.leapMonth(y);
669 if (!isAdd) {//处理闰月
670 if (leap <= i && leap > 0) {
671 offset += this.leapDays(y);
672 isAdd = true;
673 }
674 }
675 offset += this.monthDays(y, i);
676 }
677 //转换闰月农历 需补充该年闰月的前一个月的时差
678 if (isLeapMonth) {
679 offset += day;
680 }
681 //1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点)
682 const strap = Date.UTC(1900, 1, 30, 0, 0, 0);
683 const calObj = new Date((offset + d - 31) * 86400000 + strap);
684 const cY = calObj.getUTCFullYear();
685 const cM = calObj.getUTCMonth() + 1;
686 const cD = calObj.getUTCDate();
687
688 return this.solar2lunar(cY, cM, cD);
689 }
690 };
691
692 export default calendar
...\ No newline at end of file ...\ No newline at end of file
1
2 <template>
3 <el-calendar v-model="date">
4 <template slot="dateCell" slot-scope="{date, data}">
5 <div :class="{ selected: isSelected(date, data) }">
6 <div class="solar">{{ data.day.split('-')[2] }}</div>
7 <div class="lunar" :class="{ festival: isFestival(date, data) }">{{ solarToLunar(date, data) }}</div>
8 </div>
9 </template>
10 </el-calendar>
11 </template>
12
13 <script>
14 import calendar from './calendar'
15 export default {
16 name: 'calendar',
17 data () {
18 return {
19 date: new Date(),
20 // 根据selectedDates设置选中日期
21 selectedDates: []
22 }
23 },
24 methods: {
25 // 是否选中日期
26 isSelected: function (slotDate, slotData) {
27 return this.selectedDates.includes(slotData.day)
28 },
29 // 是否节假日
30 isFestival (slotDate, slotData) {
31 let solarDayArr = slotData.day.split('-');
32 let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
33
34 // 公历节日\农历节日\农历节气
35 let festAndTerm = [];
36 festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
37 festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
38 festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
39 festAndTerm = festAndTerm.join('')
40
41 return festAndTerm != ''
42 },
43 // 公历转农历
44 solarToLunar (slotDate, slotData) {
45 let solarDayArr = slotData.day.split('-');
46 let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
47
48 // 农历日期
49 let lunarMD = lunarDay.IMonthCn + lunarDay.IDayCn
50
51 // 公历节日\农历节日\农历节气
52 let festAndTerm = [];
53 festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
54 festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
55 festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
56 festAndTerm = festAndTerm.join('')
57
58 return festAndTerm == '' ? lunarMD : festAndTerm
59 }
60 }
61 }
62 </script>
63
64 <style scoped>
65 /**隐藏上一月、本月、下一月*/
66 .el-calendar__button-group {
67 display: none;
68 }
69
70 /deep/.el-calendar__body {
71 padding: 12px !important;
72 }
73
74 /deep/.el-calendar-table .el-calendar-day {
75 height: auto;
76 padding: 5px;
77 }
78
79 /**月份居中*/
80 .el-calendar__title {
81 width: 100%;
82 text-align: center;
83 }
84
85 /**日期div的样式*/
86 .el-calendar-table tr td:first-child {
87 border-left: 0px;
88 }
89
90 .el-calendar-table td {
91 min-height: 110px;
92 min-width: 110px;
93 border-right: 0px;
94 }
95
96 .el-calendar-table td.is-selected {
97 background-color: white;
98 }
99
100 .el-calendar-table .el-calendar-day {
101 padding: 0px;
102 text-align: center;
103 }
104
105 .el-calendar-table .el-calendar-day>div {
106 text-align: center
107 }
108
109 /**日期div的样式-公历*/
110 .el-calendar-table .el-calendar-day>div .solar {
111 text-align: center
112 }
113
114 /**日期div的样式-农历*/
115 .el-calendar-table .el-calendar-day>div .lunar {
116 padding-top: 5px;
117 font-size: 12px;
118 text-align: center
119 }
120
121 /**日期div的样式-选中*/
122 .el-calendar-table .el-calendar-day>div.selected {
123 background-color: #fef2f2;
124 border: 3px solid #fb0;
125 border-radius: 20px;
126 text-align: center
127 }
128
129 /**本月周末设置为红色*/
130 .el-calendar-table .current:nth-last-child(-n+2) .solar {
131 color: red;
132 }
133
134 /**本月农历设置为灰色*/
135 .el-calendar-table .current .lunar {
136 color: #606266;
137 font-size: 12px;
138 }
139
140 /**本月农历节日设置为红色*/
141 .el-calendar-table .current .lunar.festival {
142 color: red;
143 }
144
145 .el-calendar-table td {
146 border-right: none !important;
147 }
148
149 /**禁用点击效果*/
150 /*.el-calendar-table td {*/
151 /*pointer-events: none;*/
152 /*}*/
153 </style>
...\ No newline at end of file ...\ No newline at end of file
1 .home {
2 display: flex;
3 justify-content: space-between;
4
5 .flexst {
6 display: flex;
7 justify-content: space-between;
8 }
9
10 .marginZL15 {
11 margin: 0 15px;
12 }
13
14 .right15 {
15 margin-right: 15px;
16 }
17
18 .title {
19 font-size: 18px;
20 }
21
22 .marginTop10 {
23 margin-top: 7px;
24 }
25
26 .home-left {
27 width: 70%;
28 padding-right: 3px;
29
30 .list-title {
31 overflow: hidden;
32 text-overflow: ellipsis;
33 white-space: nowrap;
34 }
35
36 ul {
37 li {
38 line-height: 36px;
39
40 p {
41 white-space: nowrap;
42 }
43 }
44 }
45 }
46
47 .home-right {
48 padding-left: 4px;
49 width: 30%;
50 }
51 }
...\ No newline at end of file ...\ No newline at end of file
1 <template> 1 <template>
2 <div class="dashboard-container"> 2 <div class="home">
3 <img src="./home.png" alt=""> 3 <div class="home-left">
4 <el-row :gutter="8">
5 <el-col :span="12">
6 <el-card shadow="hover">
7 鼠标悬浮时显示
8 </el-card>
9 </el-col>
10 <el-col :span="12">
11 <el-card shadow="hover">
12 <div slot="header" class="flexst">
13 <h5 class="title">通知公告</h5>
14 <i class="el-icon-s-unfold pointer"></i>
15 </div>
16 <ul>
17 <li v-for="(item, index) in notice" :key="index" class="flexst">
18 <p class="list-title">{{ item.title }}</p>
19 <p class="marginZL15">{{ item.date }}</p>
20 <p>{{ item.state }}</p>
21 </li>
22 </ul>
23 </el-card>
24 </el-col>
25 </el-row>
26 <el-row :gutter="8" class="marginTop10">
27 <el-col :span="12">
28 <el-card shadow="hover">
29 <div slot="header" class="flexst">
30 <h5 class="title">待办事项</h5>
31 <i class="el-icon-s-unfold pointer"></i>
32 </div>
33 <ul>
34 <li v-for="(item, index) in toList" :key="index" class="flexst">
35 <p class="right15">{{ item.date }}</p>
36 <p class="list-title">{{ item.title }}</p>
37 </li>
38 </ul>
39 </el-card>
40 </el-col>
41 <el-col :span="12">
42 <el-card shadow="hover">
43 <div slot="header" class="flexst">
44 <h5 class="title">公司邮件</h5>
45 <i class="el-icon-s-unfold pointer"></i>
46 </div>
47 <ul>
48 <li v-for="(item, index) in mailList" :key="index" class="flexst">
49 <p class="right15">{{ item.date }}</p>
50 <p class="list-title">{{ item.title }}</p>
51 </li>
52 </ul>
53 </el-card>
54 </el-col>
55 </el-row>
56 <el-card shadow="hover" class="marginTop10" :body-style="{ paddingRight: '6px' }">
57 <div id="mountNode"></div>
58 </el-card>
59 </div>
60 <div class="home-right">
61 <calendar />
62 <el-card shadow="hover" class="marginTop10">
63 鼠标悬浮时显示
64 </el-card>
65 </div>
4 </div> 66 </div>
5 </template> 67 </template>
6
7 <script> 68 <script>
69 import * as G2 from '@antv/g2'
70 import calendar from '@/components/calendar/index'
8 export default { 71 export default {
9 name: 'Dashboard', 72 name: 'home',
73 components: { calendar },
10 data () { 74 data () {
11 return { 75 return {
12 currentRole: 'adminDashboard' 76 chartData: [{
77 year: '1991',
78 value: 15468
79 }, {
80 year: '1992',
81 value: 16100
82 }, {
83 year: '1993',
84 value: 15900
85 }, {
86 year: '1994',
87 value: 17409
88 }, {
89 year: '1995',
90 value: 17000
91 }, {
92 year: '1996',
93 value: 31056
94 }, {
95 year: '1997',
96 value: 31982
97 }, {
98 year: '1998',
99 value: 32040
100 }, {
101 year: '1999',
102 value: 33233
103 }],
104 notice: [
105 {
106 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
107 date: '2022-12',
108 state: '未读'
109 },
110 {
111 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
112 date: '2022-12',
113 state: '未读'
114 }
115 ],
116 toList: [
117 {
118 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
119 date: '2022-12',
120 },
121 {
122 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
123 date: '2022-12',
124 }
125 ],
126 mailList: [
127 {
128 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
129 date: '2022-12',
130 }
131 ]
13 } 132 }
14 }, 133 },
15 computed: { 134 mounted () {
16 // ...mapGetters([ 135 this.buildChart();
17 // 'roles'
18 // ])
19 },
20 created () {
21 // 可实现不同角色配置不同首页
22 // if (!this.roles.includes('admin')) {
23 // this.currentRole = 'editorDashboard'
24 // }
25 }, 136 },
26 methods: { 137 methods: {
27 138 buildChart () {
139 var chart = new G2.Chart({
140 container: 'mountNode',
141 height: 300
142 });
143 const e = document.createEvent('Event')
144 e.initEvent('resize', true, true)
145 window.dispatchEvent(e)
146 chart.source(this.chartData);
147 chart.scale({
148 value: {
149 min: 10000
150 },
151 year: {
152 range: [0, 1]
153 }
154 });
155 chart.axis('value', {
156 label: {
157 formatter: function formatter (val) {
158 return (val / 10000).toFixed(1) + 'k';
159 }
160 }
161 });
162 chart.tooltip({
163 crosshairs: true
164 })
165 chart.forceFit();
166 chart.area().position('year*value').shape('smooth');
167 chart.line().position('year*value').size(2).shape('smooth');
168 chart.render();
169 }
28 } 170 }
29 } 171 }
30 </script> 172 </script>
31 <style scoped lang="scss"> 173 <style scoped lang="scss">
32 .dashboard-container { 174 @import "./index.scss";
33 height: 100%;
34
35 img {
36 width: 100%;
37 height: 100%;
38 }
39 }
40 </style> 175 </style>
...\ No newline at end of file ...\ No newline at end of file
......