sh-view 2.0.8 → 2.1.0
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.
- package/package.json +2 -2
- package/packages/assets/css/main.scss +2 -50
- package/packages/assets/css/theme.scss +35 -16
- package/packages/components/global-components/sh-drawer/index.vue +7 -1
- package/packages/components/other-components/sh-cron-modal/components/cron-content.vue +283 -287
- package/packages/components/other-components/sh-menu/index.vue +2 -0
- package/packages/components/other-components/sh-menu/menu-item-content.vue +61 -61
- package/packages/components/other-components/sh-menu-card/index.vue +19 -3
- package/packages/components/other-components/sh-menu-card/menu-box.vue +81 -68
- package/packages/components/other-components/sh-system-tip/index.vue +111 -113
- package/packages/vxeTable/css/index.scss +3 -0
- package/packages/vxeTable/render/cell/vxe-render-input.vue +13 -1
- package/packages/vxeTable/render/mixin/cell-mixin.js +0 -11
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div ref="shMenuItem" class="sh-menu-item" :class="itemClass" :style="itemStyle">
|
|
3
|
-
<sh-icon v-if="iconType" class="sh-menu-item-icon" :type="iconType"></sh-icon>
|
|
4
|
-
<span class="sh-menu-item-title">{{
|
|
5
|
-
<sh-icon v-if="arrow" class="sh-menu-item-arrow" type="ios-arrow-forward"></sh-icon>
|
|
6
|
-
</div>
|
|
7
|
-
</template>
|
|
8
|
-
|
|
9
|
-
<script>
|
|
10
|
-
export default {
|
|
11
|
-
name: 'MenuItemBox',
|
|
12
|
-
inject: {
|
|
13
|
-
MenuInstance: {
|
|
14
|
-
default: null
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
props: {
|
|
18
|
-
arrow: Boolean,
|
|
19
|
-
menuLevel: {
|
|
20
|
-
type: Number
|
|
21
|
-
},
|
|
22
|
-
menuItem: {
|
|
23
|
-
type: Object,
|
|
24
|
-
default() {
|
|
25
|
-
return {}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
computed: {
|
|
30
|
-
defaultIcon() {
|
|
31
|
-
if (!this.menuLevel || this.menuLevel < 2) return 'md-folder'
|
|
32
|
-
else if (this.menuLevel === 2) return 'md-bookmark'
|
|
33
|
-
else return ''
|
|
34
|
-
},
|
|
35
|
-
iconType() {
|
|
36
|
-
return this.menuItem.meta?.icon || this.menuItem.icon || this.defaultIcon
|
|
37
|
-
},
|
|
38
|
-
itemClass() {
|
|
39
|
-
return {
|
|
40
|
-
'sh-menu-item-level': !this.menuLevel,
|
|
41
|
-
'sh-menu-item-active': this.MenuInstance.activeName === this.menuItem.name
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
itemStyle() {
|
|
45
|
-
let result = {}
|
|
46
|
-
const { mode, collapsed, indent } = this.MenuInstance
|
|
47
|
-
if (mode === 'vertical' && !collapsed && this.menuLevel) {
|
|
48
|
-
result.paddingLeft = `${indent * this.menuLevel}px`
|
|
49
|
-
}
|
|
50
|
-
return result
|
|
51
|
-
},
|
|
52
|
-
itemTitle() {
|
|
53
|
-
const { labelField, labelFormat } = this.MenuInstance
|
|
54
|
-
return labelFormat ? labelFormat(this.menuItem) : this.$vUtils.get(this.menuItem, labelField)
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
methods: {}
|
|
58
|
-
}
|
|
59
|
-
</script>
|
|
60
|
-
|
|
61
|
-
<style scoped></style>
|
|
1
|
+
<template>
|
|
2
|
+
<div ref="shMenuItem" class="sh-menu-item" :class="itemClass" :style="itemStyle">
|
|
3
|
+
<sh-icon v-if="iconType" class="sh-menu-item-icon" :type="iconType"></sh-icon>
|
|
4
|
+
<span class="sh-menu-item-title">{{ itemTitle }}</span>
|
|
5
|
+
<sh-icon v-if="arrow" class="sh-menu-item-arrow" type="ios-arrow-forward"></sh-icon>
|
|
6
|
+
</div>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<script>
|
|
10
|
+
export default {
|
|
11
|
+
name: 'MenuItemBox',
|
|
12
|
+
inject: {
|
|
13
|
+
MenuInstance: {
|
|
14
|
+
default: null
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
props: {
|
|
18
|
+
arrow: Boolean,
|
|
19
|
+
menuLevel: {
|
|
20
|
+
type: Number
|
|
21
|
+
},
|
|
22
|
+
menuItem: {
|
|
23
|
+
type: Object,
|
|
24
|
+
default() {
|
|
25
|
+
return {}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
computed: {
|
|
30
|
+
defaultIcon() {
|
|
31
|
+
if (!this.menuLevel || this.menuLevel < 2) return 'md-folder'
|
|
32
|
+
else if (this.menuLevel === 2) return 'md-bookmark'
|
|
33
|
+
else return ''
|
|
34
|
+
},
|
|
35
|
+
iconType() {
|
|
36
|
+
return this.menuItem.meta?.icon || this.menuItem.icon || this.defaultIcon
|
|
37
|
+
},
|
|
38
|
+
itemClass() {
|
|
39
|
+
return {
|
|
40
|
+
'sh-menu-item-level': !this.menuLevel,
|
|
41
|
+
'sh-menu-item-active': this.MenuInstance.activeName === this.menuItem.name
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
itemStyle() {
|
|
45
|
+
let result = {}
|
|
46
|
+
const { mode, collapsed, indent } = this.MenuInstance
|
|
47
|
+
if (mode === 'vertical' && !collapsed && this.menuLevel) {
|
|
48
|
+
result.paddingLeft = `${indent * this.menuLevel}px`
|
|
49
|
+
}
|
|
50
|
+
return result
|
|
51
|
+
},
|
|
52
|
+
itemTitle() {
|
|
53
|
+
const { labelField, labelFormat } = this.MenuInstance
|
|
54
|
+
return labelFormat ? labelFormat(this.menuItem) : this.$vUtils.get(this.menuItem, labelField)
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
methods: {}
|
|
58
|
+
}
|
|
59
|
+
</script>
|
|
60
|
+
|
|
61
|
+
<style scoped></style>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<sh-row :gutter="10">
|
|
3
3
|
<template v-for="(menuitem, menuindex) in resetRenderList(list)" :key="menuindex">
|
|
4
4
|
<sh-col v-bind="colsConfig">
|
|
5
|
-
<sh-card :icon="menuitem.icon" size="small" :title="menuitem
|
|
5
|
+
<sh-card :icon="menuitem.icon" size="small" :title="menuitem?.meta?.title" :icon-size="18" :color="getMenuColor(menuindex)" :padding="8" class="menuCard">
|
|
6
6
|
<div :ref="`cardBtnsWrap${menuindex}`" class="cardBtnsWrap">
|
|
7
7
|
<template v-for="cardBtn in menuitem.buttons" :key="cardBtn.value">
|
|
8
8
|
<template v-if="menuitem.children && menuitem.children.length > 0">
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
:title="cardBtn.name"
|
|
13
13
|
:width="poptipWidth"
|
|
14
14
|
:placement="cardBtn.placement"
|
|
15
|
-
@
|
|
16
|
-
@
|
|
15
|
+
@popper-show="handleFocusBtn(cardBtn, menuindex)"
|
|
16
|
+
@popper-hide="handleBlurBtn(cardBtn, menuindex)">
|
|
17
17
|
<div class="cardBtn" :style="getCardStyle(menuindex, cardActive === cardBtn.value + menuindex)" @click="handleCardBtn($event, cardBtn, menuitem, menuindex)">
|
|
18
18
|
<sh-icon :type="cardBtn.icon" :size="16" class="mr-2" :color="getMenuColor(menuindex, cardActive === cardBtn.value + menuindex)" />
|
|
19
19
|
<span>{{ cardBtn.name }}</span>
|
|
@@ -49,6 +49,11 @@ export default {
|
|
|
49
49
|
components: {
|
|
50
50
|
menuBox
|
|
51
51
|
},
|
|
52
|
+
provide() {
|
|
53
|
+
return {
|
|
54
|
+
MenuCardInstance: this
|
|
55
|
+
}
|
|
56
|
+
},
|
|
52
57
|
props: {
|
|
53
58
|
list: {
|
|
54
59
|
type: Array,
|
|
@@ -83,8 +88,16 @@ export default {
|
|
|
83
88
|
{ name: '已办事项', value: 'untodo', icon: 'ios-calendar', placement: 'bottom-end' }
|
|
84
89
|
]
|
|
85
90
|
}
|
|
91
|
+
},
|
|
92
|
+
labelField: {
|
|
93
|
+
type: String,
|
|
94
|
+
default: 'label'
|
|
95
|
+
},
|
|
96
|
+
labelFormat: {
|
|
97
|
+
type: Function
|
|
86
98
|
}
|
|
87
99
|
},
|
|
100
|
+
emits: ['select'],
|
|
88
101
|
data() {
|
|
89
102
|
return {
|
|
90
103
|
poptipWidth: 320,
|
|
@@ -161,6 +174,9 @@ export default {
|
|
|
161
174
|
},
|
|
162
175
|
handleBlurBtn(card, index) {
|
|
163
176
|
if (this.cardActive === card.value + index) this.cardActive = ''
|
|
177
|
+
},
|
|
178
|
+
onMenuSelect(menu) {
|
|
179
|
+
this.$emit('select', menu)
|
|
164
180
|
}
|
|
165
181
|
}
|
|
166
182
|
}
|
|
@@ -1,68 +1,81 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="menuBoxWrap" :class="{ first }">
|
|
3
|
-
<template v-if="menus.length > 0">
|
|
4
|
-
<div v-if="first" class="menuBoxFilter">
|
|
5
|
-
<vxe-input v-model="filterText" size="mini" class="w-100" clearable placeholder="请输入关键词" prefix-icon="vxe-icon-search"></vxe-input>
|
|
6
|
-
</div>
|
|
7
|
-
<template v-for="(item, itemindex) in menuBoxList" :key="itemindex">
|
|
8
|
-
<a class="menuBoxTitle" @click="
|
|
9
|
-
<menuBox v-if="hasChildren(item)" :menu="item"></menuBox>
|
|
10
|
-
</template>
|
|
11
|
-
</template>
|
|
12
|
-
<sh-empty v-else></sh-empty>
|
|
13
|
-
</div>
|
|
14
|
-
</template>
|
|
15
|
-
|
|
16
|
-
<script>
|
|
17
|
-
export default {
|
|
18
|
-
name: 'MenuBox',
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div class="menuBoxWrap" :class="{ first }">
|
|
3
|
+
<template v-if="menus.length > 0">
|
|
4
|
+
<div v-if="first" class="menuBoxFilter">
|
|
5
|
+
<vxe-input v-model="filterText" size="mini" class="w-100" clearable placeholder="请输入关键词" prefix-icon="vxe-icon-search"></vxe-input>
|
|
6
|
+
</div>
|
|
7
|
+
<template v-for="(item, itemindex) in menuBoxList" :key="itemindex">
|
|
8
|
+
<a class="menuBoxTitle" @click="handleMenuClick(item)">{{ getItemTitle(item) }}</a>
|
|
9
|
+
<menuBox v-if="hasChildren(item)" :menu="item"></menuBox>
|
|
10
|
+
</template>
|
|
11
|
+
</template>
|
|
12
|
+
<sh-empty v-else></sh-empty>
|
|
13
|
+
</div>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script>
|
|
17
|
+
export default {
|
|
18
|
+
name: 'MenuBox',
|
|
19
|
+
inject: {
|
|
20
|
+
MenuCardInstance: {
|
|
21
|
+
default: null
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
props: {
|
|
25
|
+
menu: {
|
|
26
|
+
type: [Object, Array],
|
|
27
|
+
default() {
|
|
28
|
+
return {}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
first: {
|
|
32
|
+
type: Boolean
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
data() {
|
|
36
|
+
return {
|
|
37
|
+
filterText: '',
|
|
38
|
+
filterData: null,
|
|
39
|
+
filterChangeDebounce: this.$vUtils.debounce(this.handleMenuFilter, 500)
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
computed: {
|
|
43
|
+
menus() {
|
|
44
|
+
return Array.isArray(this.menu) ? this.menu : this.menu?.children || []
|
|
45
|
+
},
|
|
46
|
+
menuBoxList() {
|
|
47
|
+
return this.filterData || this.menus
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
watch: {
|
|
51
|
+
filterText: {
|
|
52
|
+
handler(newvalue, oldValue) {
|
|
53
|
+
this.filterChangeDebounce(newvalue)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
methods: {
|
|
58
|
+
hasChildren(menu) {
|
|
59
|
+
return menu && menu.children && Array.isArray(menu.children) && menu.children.length > 0
|
|
60
|
+
},
|
|
61
|
+
getItemTitle(menu) {
|
|
62
|
+
const { labelField, labelFormat } = this.MenuCardInstance
|
|
63
|
+
return labelFormat ? labelFormat(menu) : this.$vUtils.get(menu, labelField) || ''
|
|
64
|
+
},
|
|
65
|
+
handleMenuClick(item) {
|
|
66
|
+
this.MenuCardInstance.onMenuSelect(item)
|
|
67
|
+
},
|
|
68
|
+
// 全局搜索过滤事件
|
|
69
|
+
handleMenuFilter(text) {
|
|
70
|
+
const { menus, $vUtils, getItemTitle } = this
|
|
71
|
+
let filterText = $vUtils.toValueString(text).trim().toLowerCase()
|
|
72
|
+
let filterData = null
|
|
73
|
+
if (filterText) {
|
|
74
|
+
filterData = $vUtils.searchTree(menus, menu => getItemTitle(menu).indexOf(filterText) > -1)
|
|
75
|
+
}
|
|
76
|
+
if (this.filterData === null && !filterText) return
|
|
77
|
+
this.filterData = filterData
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
</script>
|
|
@@ -1,113 +1,111 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<sh-header size="large">
|
|
3
|
-
<template #title>
|
|
4
|
-
<div v-html="headerTitle.title"></div>
|
|
5
|
-
</template>
|
|
6
|
-
<div>{{ headerTitle.desc }}</div>
|
|
7
|
-
</sh-header>
|
|
8
|
-
</template>
|
|
9
|
-
|
|
10
|
-
<script>
|
|
11
|
-
export default {
|
|
12
|
-
name: 'SystemTip',
|
|
13
|
-
props: {
|
|
14
|
-
name: {
|
|
15
|
-
type: String,
|
|
16
|
-
default: ''
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
data() {
|
|
20
|
-
return {
|
|
21
|
-
nowdate: new Date()
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
computed: {
|
|
25
|
-
headerDate() {
|
|
26
|
-
let hours = this.nowdate.getHours()
|
|
27
|
-
let month = this.nowdate.getMonth() + 1
|
|
28
|
-
let day = this.nowdate.getDate()
|
|
29
|
-
let week = this.nowdate.getDay()
|
|
30
|
-
return { date: this.nowdate, hours, month, day, week }
|
|
31
|
-
},
|
|
32
|
-
headerWeek() {
|
|
33
|
-
let { week } = this.headerDate
|
|
34
|
-
let tw = ''
|
|
35
|
-
switch (week) {
|
|
36
|
-
case 0:
|
|
37
|
-
tw = '星期天'
|
|
38
|
-
break
|
|
39
|
-
case 1:
|
|
40
|
-
tw = '星期一'
|
|
41
|
-
break
|
|
42
|
-
case 2:
|
|
43
|
-
tw = '星期二'
|
|
44
|
-
break
|
|
45
|
-
case 3:
|
|
46
|
-
tw = '星期三'
|
|
47
|
-
break
|
|
48
|
-
case 4:
|
|
49
|
-
tw = '星期四'
|
|
50
|
-
break
|
|
51
|
-
case 5:
|
|
52
|
-
tw = '星期五'
|
|
53
|
-
break
|
|
54
|
-
case 6:
|
|
55
|
-
tw = '星期六'
|
|
56
|
-
break
|
|
57
|
-
}
|
|
58
|
-
return tw
|
|
59
|
-
},
|
|
60
|
-
headerTitle() {
|
|
61
|
-
let { hours } = this.headerDate
|
|
62
|
-
let title = ''
|
|
63
|
-
let desc = ''
|
|
64
|
-
switch (true) {
|
|
65
|
-
case hours === 0 || (hours >= 23 && hours <= 24):
|
|
66
|
-
title = '午夜啦,早点休息喔'
|
|
67
|
-
desc = '思念不因劳累而改变,问候不因疲惫而变懒,祝福不因休息而变缓,关怀随星星眨眼,牵挂在深夜依然,轻轻道声:祝你晚安!'
|
|
68
|
-
break
|
|
69
|
-
case hours >= 1 && hours <= 4:
|
|
70
|
-
title = '凌晨啦,注意身体喔'
|
|
71
|
-
desc = '时间不早啦,记得早点休息,保证睡眠质量!'
|
|
72
|
-
break
|
|
73
|
-
case hours >= 5 && hours <= 6:
|
|
74
|
-
title = '清晨啦,准备迎接新的一天吧'
|
|
75
|
-
desc = '睁开眼,缓一缓,快起床,伸懒腰;笑一笑,美好的一天又开始了.早安,祝你今天好心情,工作顺利,生活甜美!'
|
|
76
|
-
break
|
|
77
|
-
case hours >= 7 && hours <= 8:
|
|
78
|
-
title = '早上好,记得吃早餐喔'
|
|
79
|
-
desc = '一日之计在于晨,愿我这阳光初露时的小小问候能将快乐带给你,愿你用快乐开启,用微笑结束这美好的一天.'
|
|
80
|
-
break
|
|
81
|
-
case hours >= 9 && hours <= 10:
|
|
82
|
-
title = '上午好,时刻保持好心情呀'
|
|
83
|
-
desc = '上午好,一束阳光照在身,祝你天天都开心,财神家中去,梦想变成真,今天中大奖,明天去上任.'
|
|
84
|
-
break
|
|
85
|
-
case hours >= 11 && hours <= 12:
|
|
86
|
-
title = '中午好,午餐时间到啦'
|
|
87
|
-
desc = '中午好,到了吃午餐的时间了,吃完午餐记得午睡一小会,保证下午可以有良好的精神状态.'
|
|
88
|
-
break
|
|
89
|
-
case hours >= 13 && hours <= 16:
|
|
90
|
-
title = '下午好,别太辛苦了'
|
|
91
|
-
desc = '送各位一杯下午茶:已祝福为叶,叮咛做花,热情为水,包容当杯,喝出你一天好心情和一生的幸福,下午愉快!'
|
|
92
|
-
break
|
|
93
|
-
case hours >= 17 && hours <= 18:
|
|
94
|
-
title = '傍晚啦,看看窗外的风景吧'
|
|
95
|
-
desc = '工作是做不完的,身体可是累的垮的!看看外面的天空吧!'
|
|
96
|
-
break
|
|
97
|
-
case hours >= 19 && hours <= 22:
|
|
98
|
-
title = '晚上好,准备好进入梦乡啦'
|
|
99
|
-
desc = '睡前请把窗户打开,让"幸福"进来,睡前请把"心情"打开,让"快乐"入驻,睡前请把"思想"放飞,让甜蜜入梦!今晚祝你好梦成真,幸福一生!晚安!'
|
|
100
|
-
break
|
|
101
|
-
}
|
|
102
|
-
return { title: `Hi! <span class="primary">${this.name}</span> ${title}`, desc }
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
<style lang="scss" scoped></style>
|
|
1
|
+
<template>
|
|
2
|
+
<sh-header size="large">
|
|
3
|
+
<template #title>
|
|
4
|
+
<div v-html="headerTitle.title"></div>
|
|
5
|
+
</template>
|
|
6
|
+
<div>{{ headerTitle.desc }}</div>
|
|
7
|
+
</sh-header>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script>
|
|
11
|
+
export default {
|
|
12
|
+
name: 'SystemTip',
|
|
13
|
+
props: {
|
|
14
|
+
name: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: ''
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
data() {
|
|
20
|
+
return {
|
|
21
|
+
nowdate: new Date()
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
computed: {
|
|
25
|
+
headerDate() {
|
|
26
|
+
let hours = this.nowdate.getHours()
|
|
27
|
+
let month = this.nowdate.getMonth() + 1
|
|
28
|
+
let day = this.nowdate.getDate()
|
|
29
|
+
let week = this.nowdate.getDay()
|
|
30
|
+
return { date: this.nowdate, hours, month, day, week }
|
|
31
|
+
},
|
|
32
|
+
headerWeek() {
|
|
33
|
+
let { week } = this.headerDate
|
|
34
|
+
let tw = ''
|
|
35
|
+
switch (week) {
|
|
36
|
+
case 0:
|
|
37
|
+
tw = '星期天'
|
|
38
|
+
break
|
|
39
|
+
case 1:
|
|
40
|
+
tw = '星期一'
|
|
41
|
+
break
|
|
42
|
+
case 2:
|
|
43
|
+
tw = '星期二'
|
|
44
|
+
break
|
|
45
|
+
case 3:
|
|
46
|
+
tw = '星期三'
|
|
47
|
+
break
|
|
48
|
+
case 4:
|
|
49
|
+
tw = '星期四'
|
|
50
|
+
break
|
|
51
|
+
case 5:
|
|
52
|
+
tw = '星期五'
|
|
53
|
+
break
|
|
54
|
+
case 6:
|
|
55
|
+
tw = '星期六'
|
|
56
|
+
break
|
|
57
|
+
}
|
|
58
|
+
return tw
|
|
59
|
+
},
|
|
60
|
+
headerTitle() {
|
|
61
|
+
let { hours } = this.headerDate
|
|
62
|
+
let title = ''
|
|
63
|
+
let desc = ''
|
|
64
|
+
switch (true) {
|
|
65
|
+
case hours === 0 || (hours >= 23 && hours <= 24):
|
|
66
|
+
title = '午夜啦,早点休息喔'
|
|
67
|
+
desc = '思念不因劳累而改变,问候不因疲惫而变懒,祝福不因休息而变缓,关怀随星星眨眼,牵挂在深夜依然,轻轻道声:祝你晚安!'
|
|
68
|
+
break
|
|
69
|
+
case hours >= 1 && hours <= 4:
|
|
70
|
+
title = '凌晨啦,注意身体喔'
|
|
71
|
+
desc = '时间不早啦,记得早点休息,保证睡眠质量!'
|
|
72
|
+
break
|
|
73
|
+
case hours >= 5 && hours <= 6:
|
|
74
|
+
title = '清晨啦,准备迎接新的一天吧'
|
|
75
|
+
desc = '睁开眼,缓一缓,快起床,伸懒腰;笑一笑,美好的一天又开始了.早安,祝你今天好心情,工作顺利,生活甜美!'
|
|
76
|
+
break
|
|
77
|
+
case hours >= 7 && hours <= 8:
|
|
78
|
+
title = '早上好,记得吃早餐喔'
|
|
79
|
+
desc = '一日之计在于晨,愿我这阳光初露时的小小问候能将快乐带给你,愿你用快乐开启,用微笑结束这美好的一天.'
|
|
80
|
+
break
|
|
81
|
+
case hours >= 9 && hours <= 10:
|
|
82
|
+
title = '上午好,时刻保持好心情呀'
|
|
83
|
+
desc = '上午好,一束阳光照在身,祝你天天都开心,财神家中去,梦想变成真,今天中大奖,明天去上任.'
|
|
84
|
+
break
|
|
85
|
+
case hours >= 11 && hours <= 12:
|
|
86
|
+
title = '中午好,午餐时间到啦'
|
|
87
|
+
desc = '中午好,到了吃午餐的时间了,吃完午餐记得午睡一小会,保证下午可以有良好的精神状态.'
|
|
88
|
+
break
|
|
89
|
+
case hours >= 13 && hours <= 16:
|
|
90
|
+
title = '下午好,别太辛苦了'
|
|
91
|
+
desc = '送各位一杯下午茶:已祝福为叶,叮咛做花,热情为水,包容当杯,喝出你一天好心情和一生的幸福,下午愉快!'
|
|
92
|
+
break
|
|
93
|
+
case hours >= 17 && hours <= 18:
|
|
94
|
+
title = '傍晚啦,看看窗外的风景吧'
|
|
95
|
+
desc = '工作是做不完的,身体可是累的垮的!看看外面的天空吧!'
|
|
96
|
+
break
|
|
97
|
+
case hours >= 19 && hours <= 22:
|
|
98
|
+
title = '晚上好,准备好进入梦乡啦'
|
|
99
|
+
desc = '睡前请把窗户打开,让"幸福"进来,睡前请把"心情"打开,让"快乐"入驻,睡前请把"思想"放飞,让甜蜜入梦!今晚祝你好梦成真,幸福一生!晚安!'
|
|
100
|
+
break
|
|
101
|
+
}
|
|
102
|
+
return { title: `Hi! <span class="primary">${this.name}</span> ${title}`, desc }
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
activated() {
|
|
106
|
+
this.nowdate = new Date()
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
</script>
|
|
110
|
+
|
|
111
|
+
<style lang="scss" scoped></style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
|
|
2
|
+
<span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform, 'flex-render': controlButton }">
|
|
3
3
|
<template v-if="redit || isEditAll">
|
|
4
4
|
<span v-if="rprops.prefixText && rform" class="prefix">
|
|
5
5
|
<vxe-button v-if="prefixButton" v-bind="psButtonConfig" @click="vxeInputPrefixClick">{{ rprops.prefixText }}</vxe-button>
|
|
@@ -61,6 +61,18 @@ export default {
|
|
|
61
61
|
let { $form } = this.rparams
|
|
62
62
|
$form.context.emit('suffix-click', this.rparams, this)
|
|
63
63
|
}
|
|
64
|
+
},
|
|
65
|
+
// 输入框数字加减控制
|
|
66
|
+
vxeControlClick(bol) {
|
|
67
|
+
const { step = 1, min, max } = this.rprops
|
|
68
|
+
let value = bol ? this.$vUtils.add(this.renderValue, step) : this.$vUtils.subtract(this.renderValue, step)
|
|
69
|
+
if ((min !== undefined && value < min) || (max !== undefined && value > max)) return
|
|
70
|
+
this.renderValue = value
|
|
71
|
+
if (this.rform) {
|
|
72
|
+
this.setFormValue(value)
|
|
73
|
+
} else {
|
|
74
|
+
this.setTableValue(value)
|
|
75
|
+
}
|
|
64
76
|
}
|
|
65
77
|
}
|
|
66
78
|
}
|
|
@@ -89,17 +89,6 @@ export default {
|
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
91
|
methods: {
|
|
92
|
-
// 输入框数字加减控制
|
|
93
|
-
vxeControlClick(bol) {
|
|
94
|
-
const { step = 1, min, max } = this.rprops
|
|
95
|
-
let value = bol ? this.$vUtils.add(this.renderValue, step) : this.$vUtils.subtract(this.renderValue, step)
|
|
96
|
-
if (value < min || value > max) return
|
|
97
|
-
if (this.rform) {
|
|
98
|
-
this.setFormValue(value)
|
|
99
|
-
} else {
|
|
100
|
-
this.setTableValue(value)
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
92
|
// 输入框变化
|
|
104
93
|
async vxeInputChange({ value, $event }) {
|
|
105
94
|
if (!this.rform) {
|