style:首页
Showing
6 changed files
with
1061 additions
and
29 deletions
... | @@ -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", | ... | ... |
src/components/calendar/calendar.js
0 → 100644
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 |
src/components/calendar/index.vue
0 → 100644
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 |
src/views/home/home.png
deleted
100644 → 0
328 KB
src/views/home/index.scss
0 → 100644
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 | ... | ... |
-
Please register or sign in to post a comment