@neatui/vue 1.2.22 → 2.0.0-beta.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 +16 -3
- package/rollup.config.js +35 -0
- package/src/components/basic/IDraggable@b.vue +1 -1
- package/src/components/basic/IRouterView.vue +1 -1
- package/src/components/display/Calendar.vue +4 -4
- package/src/components/display/CalendarReg.vue +4 -4
- package/src/components/display/Image.vue +1 -1
- package/src/components/form/Cascader.vue +1 -1
- package/src/components/form/DateRangeView@v3.vue +10 -10
- package/src/components/form/DateView.vue +7 -9
- package/src/components/form/DateView@v2.vue +11 -11
- package/src/components/form/DateView@v3.vue +9 -9
- package/src/components/form/ImgUpload.vue +1 -1
- package/src/components/form/MoreSelectList.vue +1 -1
- package/src/components/form/MoreSelectPicker.vue +2 -2
- package/src/components/form/MoreSelectTags.vue +1 -1
- package/src/components/form/SelectList.vue +2 -2
- package/src/components/form/SelectPicker.vue +2 -2
- package/src/components/form/SelectTags.vue +1 -1
- package/src/components/form/TimeView.vue +4 -4
- package/src/components/form/Upload.vue +2 -2
- package/src/components/loader/FormLoader/FormLoader.vue +425 -0
- package/src/components/loader/FormLoader/FormRender.vue +274 -0
- package/src/components/loader/TableLoader/TableLoader.vue +120 -118
- package/src/components/tools/FormDraftsView.vue +1 -1
- package/src/shims-vue.d.ts +5 -0
- package/tsconfig.json +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neatui/vue",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-beta.0",
|
|
4
4
|
"description": "basic component ui",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,21 +8,34 @@
|
|
|
8
8
|
"peerDependencies": {
|
|
9
9
|
"vue": "^3.2.0"
|
|
10
10
|
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "rollup -c rollup.config.js"
|
|
13
|
+
},
|
|
11
14
|
"devDependencies": {
|
|
15
|
+
"@rollup/plugin-typescript": "^11.1.6",
|
|
16
|
+
"postcss-scss": "^4.0.9",
|
|
17
|
+
"rollup-plugin-scss": "^4.0.0",
|
|
18
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
12
19
|
"typescript": "^5.1.6"
|
|
13
20
|
},
|
|
14
21
|
"dependencies": {
|
|
15
22
|
"@fekit/floor": "^2.2.2",
|
|
16
23
|
"@fekit/follow": "^1.0.10",
|
|
17
|
-
"@fekit/itable": "^1.1.
|
|
24
|
+
"@fekit/itable": "^1.1.6",
|
|
18
25
|
"@fekit/pullload": "^1.3.4",
|
|
19
26
|
"@fekit/scale": "^2.0.1",
|
|
20
27
|
"@fekit/scrollto": "^3.0.2",
|
|
21
28
|
"@fekit/toast": "^2.2.3",
|
|
22
29
|
"@fekit/url": "^2.0.1",
|
|
23
|
-
"@fekit/utils": "^2.10.
|
|
30
|
+
"@fekit/utils": "^2.10.21",
|
|
31
|
+
"@rollup/plugin-commonjs": "^26.0.1",
|
|
32
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
33
|
+
"@vue/compiler-sfc": "^3.4.30",
|
|
24
34
|
"compressorjs": "^1.2.1",
|
|
25
35
|
"echarts": "^5.5.0",
|
|
36
|
+
"rollup": "^4.18.0",
|
|
37
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
38
|
+
"rollup-plugin-vue": "^6.0.0",
|
|
26
39
|
"swiper": "^11.0.4",
|
|
27
40
|
"vue-cropper": "^0.6.4",
|
|
28
41
|
"vuedraggable": "^4.1.0"
|
package/rollup.config.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const resolve = require('@rollup/plugin-node-resolve');
|
|
2
|
+
const commonjs = require('@rollup/plugin-commonjs');
|
|
3
|
+
const vue = require('rollup-plugin-vue');
|
|
4
|
+
const postcss = require('rollup-plugin-postcss');
|
|
5
|
+
const typescript = require('@rollup/plugin-typescript');
|
|
6
|
+
const { terser } = require('rollup-plugin-terser');
|
|
7
|
+
const scss = require('postcss-scss');
|
|
8
|
+
|
|
9
|
+
module.exports = {
|
|
10
|
+
input: 'src/components/loader/index.ts',
|
|
11
|
+
output: {
|
|
12
|
+
file: 'dist/bundle.js',
|
|
13
|
+
format: 'es'
|
|
14
|
+
},
|
|
15
|
+
plugins: [
|
|
16
|
+
resolve({
|
|
17
|
+
extensions: ['.js', '.ts', '.vue']
|
|
18
|
+
}),
|
|
19
|
+
commonjs(),
|
|
20
|
+
vue({
|
|
21
|
+
css: false,
|
|
22
|
+
compileTemplate: true
|
|
23
|
+
}),
|
|
24
|
+
postcss({
|
|
25
|
+
extensions: ['.css', '.scss'],
|
|
26
|
+
extract: true,
|
|
27
|
+
minimize: true,
|
|
28
|
+
syntax: scss
|
|
29
|
+
}),
|
|
30
|
+
typescript({
|
|
31
|
+
tsconfig: './tsconfig.json'
|
|
32
|
+
}),
|
|
33
|
+
terser()
|
|
34
|
+
]
|
|
35
|
+
};
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
v-for="(item, idx) in list || []"
|
|
5
5
|
:key="idx"
|
|
6
6
|
style="user-select: none"
|
|
7
|
-
class="drag-move-item b-solid
|
|
7
|
+
class="drag-move-item b-solid bk-line b-xs n-sm"
|
|
8
8
|
:data-move-ing="state.__moveing"
|
|
9
9
|
@mousedown="fMoveSta($event, list, idx)"
|
|
10
10
|
@mousemove="fMoveIng($event, list, idx)"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div :am-view="view" :am-mode="mode" class="iroute-view pr full
|
|
2
|
+
<div :am-view="view" :am-mode="mode" class="iroute-view pr full" :view-full="full ? 1 : 0" @animationend="anim">
|
|
3
3
|
<div :class="listClass" :style="listStyle" am-view-item="list">
|
|
4
4
|
<slot name="list" :mode="mode"></slot>
|
|
5
5
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div :class="`${frame ? 'b-solid
|
|
3
|
-
<div ui-calendar-head="" class="nx-sl ny-sm b-solid
|
|
2
|
+
<div :class="`${frame ? 'b-solid bk-line b-xs r-sm' : ''}`" ui-flex="col xy">
|
|
3
|
+
<div ui-calendar-head="" class="nx-sl ny-sm b-solid bk-line bb-xs">
|
|
4
4
|
<div ui-flex="row lm"></div>
|
|
5
5
|
<div ui-flex="row cm" class="nx-ss-sub">
|
|
6
6
|
<p class="mx-ss-sub">
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
<div
|
|
20
20
|
ui-flex="col cm"
|
|
21
21
|
class="r-ss b-solid bk-none b-xs"
|
|
22
|
-
:class="`${item.isToday ? 'bk-main
|
|
23
|
-
state.selected && state.selected === item.date ? 'active bg-main
|
|
22
|
+
:class="`${item.isToday ? 'bk-main-ls' : item.isLastMonth || item.isNextMonth ? 'co-note' : item.isHoliday ? 'co-risk' : ''} ${
|
|
23
|
+
state.selected && state.selected === item.date ? 'active bg-main-ls co-fore' : 'hover-bg-weak'
|
|
24
24
|
}`"
|
|
25
25
|
>
|
|
26
26
|
<span>{{ item.day }}</span>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div :class="`${frame ? 'b-solid
|
|
3
|
-
<div ui-calendar-head="" class="nx-sl ny-sm b-solid
|
|
2
|
+
<div :class="`${frame ? 'b-solid bk-line b-xs r-sm' : ''}`" ui-flex="col xy">
|
|
3
|
+
<div ui-calendar-head="" class="nx-sl ny-sm b-solid bk-line bb-xs">
|
|
4
4
|
<div ui-flex="row lm"></div>
|
|
5
5
|
<div ui-flex="row cm" class="nx-ss-sub">
|
|
6
6
|
<p class="mx-ss-sub">
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
<div
|
|
20
20
|
ui-flex="col cm"
|
|
21
21
|
class="r-ss b-solid bk-none b-xs"
|
|
22
|
-
:class="`${item.isToday ? 'bk-main
|
|
23
|
-
state.selected && state.selected === item.date ? 'active bg-main
|
|
22
|
+
:class="`${item.isToday ? 'bk-main-ls' : item.isLastMonth || item.isNextMonth ? 'co-note' : item.isHoliday ? 'co-risk' : ''} ${
|
|
23
|
+
state.selected && state.selected === item.date ? 'active bg-main-ls co-fore' : 'hover-bg-weak'
|
|
24
24
|
}`"
|
|
25
25
|
>
|
|
26
26
|
<span>{{ item.day }}</span>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div :class="`mc-img b-solid
|
|
3
|
+
<div :class="`mc-img b-solid bk-case b-xs ${imgClass}`" :style="imgStyle">
|
|
4
4
|
<img :src="src[srcName]" :style="`object-fit: ${fit}`" @click.stop="showPreview" />
|
|
5
5
|
<div v-if="tools" class="mc-img-tools">
|
|
6
6
|
<slot name="tools">
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<template #tips v-if="!readonly && !disabled">
|
|
13
13
|
<div v-if="state.flatOpts?.length && state.flatOpts[0]?.length > 0" ui-flex="row">
|
|
14
14
|
<template v-for="(opt, optIndex) in state.flatOpts" :key="optIndex">
|
|
15
|
-
<ul v-if="opt?.length" class="min-h-ms max-h-ls" :class="`nx-sm lh-ml ${optIndex === 0 ? '' : 'bl-xs
|
|
15
|
+
<ul v-if="opt?.length" class="min-h-ms max-h-ls" :class="`nx-sm lh-ml ${optIndex === 0 ? '' : 'bl-xs bk-back b-solid'}`" ui-scroll=":y s">
|
|
16
16
|
<!-- 多选 -->
|
|
17
17
|
<template v-if="multiple">
|
|
18
18
|
<li v-for="(item, idx) of opt" :key="idx" class="ux-hover nx-sm r-ss nowrap" @click="multiSelect(item, optIndex)">
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div :class="`${frame ? 'b-solid
|
|
2
|
+
<div :class="`${frame ? 'b-solid bk-line b-xs r-sm' : ''}`" ui-flex="col xy" style="width: 41em">
|
|
3
3
|
<div class="flex-block" ui-flex="row xy">
|
|
4
4
|
<div class="w-ll flex-fixed" ui-flex="col xy">
|
|
5
|
-
<div ui-date-head="" class="nx-sl mt-ss ny-sm b-solid
|
|
5
|
+
<div ui-date-head="" class="nx-sl mt-ss ny-sm b-solid bk-back" ui-flex="row xm">
|
|
6
6
|
<div ui-flex="row lm" class="o-lm">
|
|
7
7
|
<div ui-btn="@a s none :square" @click="prev(1, { y: -1 })">
|
|
8
8
|
<Icon name="double-arrow-left" />
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
v-if="item.day"
|
|
53
53
|
:ui-date-day="item.day"
|
|
54
54
|
class="flex-block"
|
|
55
|
-
:class="`${item.range ? 'bg-main
|
|
55
|
+
:class="`${item.range ? 'bg-main-xs' : ''} ${item.sta ? 'r-lt-sl r-lb-sl' : ''} ${item.end ? 'r-rt-sl r-rb-sl' : ''}`"
|
|
56
56
|
ui-flex="col cm"
|
|
57
57
|
@click="change(1, item)"
|
|
58
58
|
>
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
class="r-sm b-solid bk-none b-xs my-ss ux-scale"
|
|
62
62
|
style="width: 1.8em; height: 1.8em"
|
|
63
63
|
:class="`${item.isLastMonth || item.isNextMonth ? 'co-case' : item.holiday ? 'co-risk' : ''} ${
|
|
64
|
-
item.selected ? 'active bg-main
|
|
64
|
+
item.selected ? 'active bg-main-lm co-fore' : 'hover-bg-weak'
|
|
65
65
|
}`"
|
|
66
66
|
>
|
|
67
67
|
<span>{{ item.day }}</span>
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
</div>
|
|
77
77
|
<div class="flex-block"></div>
|
|
78
78
|
<div class="w-ll flex-fixed" ui-flex="col xy">
|
|
79
|
-
<div ui-date-head="" class="nx-sl mt-ss ny-sm b-solid
|
|
79
|
+
<div ui-date-head="" class="nx-sl mt-ss ny-sm b-solid bk-back" ui-flex="row xm">
|
|
80
80
|
<div ui-flex="row lm">
|
|
81
81
|
<div v-if="idate(sta.panel).time < idate(end.panel).update({ y: -1 }).time" ui-btn="@a s none :square" @click="prev(2, { y: -1 })">
|
|
82
82
|
<Icon name="double-arrow-left" />
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
v-if="item.day"
|
|
127
127
|
:ui-date-day="item.day"
|
|
128
128
|
class="flex-block"
|
|
129
|
-
:class="`${item.range ? 'bg-main
|
|
129
|
+
:class="`${item.range ? 'bg-main-xs' : ''} ${item.sta ? 'r-lt-sl r-lb-sl' : ''} ${item.end ? 'r-rt-sl r-rb-sl' : ''}`"
|
|
130
130
|
ui-flex="col cm"
|
|
131
131
|
@click="change(2, item)"
|
|
132
132
|
>
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
class="r-sm b-solid bk-none b-xs my-ss ux-scale"
|
|
136
136
|
style="width: 1.8em; height: 1.8em"
|
|
137
137
|
:class="`${item.isLastMonth || item.isNextMonth ? 'co-case' : item.holiday ? 'co-risk' : ''} ${
|
|
138
|
-
item.selected ? 'active bg-main
|
|
138
|
+
item.selected ? 'active bg-main-lm co-fore' : 'hover-bg-weak'
|
|
139
139
|
}`"
|
|
140
140
|
>
|
|
141
141
|
<span>{{ item.day }}</span>
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
</div>
|
|
150
150
|
</div>
|
|
151
151
|
</div>
|
|
152
|
-
<div v-if="tools" ui-date-foot="" ui-flex="row xm" class="nx-sl ny-sl b-solid bk-line
|
|
152
|
+
<div v-if="tools" ui-date-foot="" ui-flex="row xm" class="nx-sl ny-sl b-solid bk-line-ls bt-xs">
|
|
153
153
|
<div ui-flex="row lm" class="nl-ss">
|
|
154
154
|
<p v-if="sta.value || end.value">
|
|
155
155
|
<span class="nowrap">已选:</span>
|
|
@@ -158,8 +158,8 @@
|
|
|
158
158
|
<div v-else-if="com.shortcuts?.length" ui-flex="row lm">
|
|
159
159
|
<span class="nowrap">推荐:</span>
|
|
160
160
|
<div class="mr-sm-sub nx-sl-sub ny-ss-sub lh-ss nowrap fs-ss dib-sub" ui-scroll=":x y:hidden">
|
|
161
|
-
<p v-for="(item, idx) in com.shortcuts" :key="idx" class="bg-main
|
|
162
|
-
<p class="bg-main
|
|
161
|
+
<p v-for="(item, idx) in com.shortcuts" :key="idx" class="bg-main-xs co-main r-xl" ui-btn="@a xs none :round" @click="item?.func">{{ item?.text }}</p>
|
|
162
|
+
<p class="bg-main-xs co-main r-xl" ui-btn="@a xs none :round"><Icon class="co-main" name="more" /></p>
|
|
163
163
|
</div>
|
|
164
164
|
</div>
|
|
165
165
|
<div v-else> </div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div ui-date="@a" class="w-ll" :class="`${frame ? 'b-solid
|
|
3
|
-
<div ui-date-head="" class="nx-sl mt-ss ny-sm b-solid
|
|
2
|
+
<div ui-date="@a" class="w-ll" :class="`${frame ? 'b-solid bk-line b-xs r-sm' : ''}`" ui-flex="col xy">
|
|
3
|
+
<div ui-date-head="" class="nx-sl mt-ss ny-sm b-solid bk-back" ui-flex="row xm">
|
|
4
4
|
<div ui-flex="row lm" class="o-lm">
|
|
5
5
|
<div ui-btn="@a s none :square" @click="prev('y')">
|
|
6
6
|
<Icon name="double-arrow-left" />
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
v-if="item.day"
|
|
45
45
|
:ui-date-day="item.day"
|
|
46
46
|
class="flex-block"
|
|
47
|
-
:class="`${item.range ? 'bg-main
|
|
47
|
+
:class="`${item.range ? 'bg-main-xs' : ''} ${item.sta ? 'r-lt-sl r-lb-sl' : ''} ${item.end ? 'r-rt-sl r-rb-sl' : ''}`"
|
|
48
48
|
ui-flex="col cm"
|
|
49
49
|
@click="change(item)"
|
|
50
50
|
@mouseenter="setRangeValue(item)"
|
|
@@ -53,9 +53,7 @@
|
|
|
53
53
|
ui-flex="col cm"
|
|
54
54
|
class="r-sm b-solid bk-none b-xs my-ss ux-scale"
|
|
55
55
|
style="width: 1.8em; height: 1.8em"
|
|
56
|
-
:class="`${item.isLastMonth || item.isNextMonth ? 'co-idle' : item.isHoliday ? 'co-risk' : ''} ${
|
|
57
|
-
item.selected ? 'active bg-main+o-lm co-fore' : 'hover-bg-weak'
|
|
58
|
-
}`"
|
|
56
|
+
:class="`${item.isLastMonth || item.isNextMonth ? 'co-idle' : item.isHoliday ? 'co-risk' : ''} ${item.selected ? 'active bg-main-lm co-fore' : 'hover-bg-weak'}`"
|
|
59
57
|
>
|
|
60
58
|
<span>{{ item.day }}</span>
|
|
61
59
|
</div>
|
|
@@ -66,7 +64,7 @@
|
|
|
66
64
|
</ul>
|
|
67
65
|
</div>
|
|
68
66
|
</div>
|
|
69
|
-
<div v-if="tools" ui-date-foot="" ui-flex="row xm" class="nx-sl ny-sl b-solid bk-line
|
|
67
|
+
<div v-if="tools" ui-date-foot="" ui-flex="row xm" class="nx-sl ny-sl b-solid bk-line-mm bt-xs">
|
|
70
68
|
<div ui-flex="row lm" class="nl-ss">
|
|
71
69
|
<p v-if="state.date">
|
|
72
70
|
<span class="nowrap">已选:</span>
|
|
@@ -75,8 +73,8 @@
|
|
|
75
73
|
<div v-else-if="state.shortcuts?.length" ui-flex="row lm">
|
|
76
74
|
<span class="nowrap">推荐:</span>
|
|
77
75
|
<div class="mr-sm-sub nx-sl-sub ny-ss-sub lh-ss nowrap fs-ss dib-sub" ui-scroll=":x y:hidden">
|
|
78
|
-
<p v-for="(item, idx) in state.shortcuts" :key="idx" class="bg-main
|
|
79
|
-
<p class="bg-main
|
|
76
|
+
<p v-for="(item, idx) in state.shortcuts" :key="idx" class="bg-main-xs co-main r-xl" ui-btn="@a xs none :round" @click="item?.func">{{ item?.text }}</p>
|
|
77
|
+
<p class="bg-main-xs co-main r-xl" ui-btn="@a xs none :round"><Icon class="co-main" name="more" /></p>
|
|
80
78
|
</div>
|
|
81
79
|
</div>
|
|
82
80
|
<div v-else> </div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div ui-date="@a" class="fekit-date-view pr" :class="`${frame ? 'b-solid
|
|
3
|
-
<div ui-date-head="" class="flex-fixed nx-sl mt-ss ny-sm b-solid
|
|
2
|
+
<div ui-date="@a" class="fekit-date-view pr" :class="`${frame ? 'b-solid bk-line b-xs r-sm' : ''}`" ui-flex="col xy" style="width: 22em">
|
|
3
|
+
<div ui-date-head="" class="flex-fixed nx-sl mt-ss ny-sm b-solid bk-back" ui-flex="row xm">
|
|
4
4
|
<div ui-flex="row lm" class="o-lm">
|
|
5
5
|
<div ui-btn="@a s none :square" @click="prev('y')">
|
|
6
6
|
<Icon name="double-arrow-left" />
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
v-if="item.day"
|
|
46
46
|
:ui-date-day="item.day"
|
|
47
47
|
class="flex-block"
|
|
48
|
-
:class="`${item.range ? 'bg-main
|
|
48
|
+
:class="`${item.range ? 'bg-main-xs' : ''} ${item.sta ? 'r-lt-sl r-lb-sl' : ''} ${item.end ? 'r-rt-sl r-rb-sl' : ''}`"
|
|
49
49
|
ui-flex="col cm"
|
|
50
50
|
@click="change(item)"
|
|
51
51
|
@mouseenter="setRangeValue(item)"
|
|
@@ -54,9 +54,7 @@
|
|
|
54
54
|
ui-flex="col cm"
|
|
55
55
|
class="r-sm b-solid bk-none b-xs my-ss ux-scale"
|
|
56
56
|
style="width: 1.8em; height: 1.8em"
|
|
57
|
-
:class="`${item.isLastMonth || item.isNextMonth ? 'co-idle' : item.isHoliday ? 'co-risk' : ''} ${
|
|
58
|
-
item.selected ? 'active bg-main+o-lm co-fore' : 'hover-bg-weak'
|
|
59
|
-
}`"
|
|
57
|
+
:class="`${item.isLastMonth || item.isNextMonth ? 'co-idle' : item.isHoliday ? 'co-risk' : ''} ${item.selected ? 'active bg-main-lm co-fore' : 'hover-bg-weak'}`"
|
|
60
58
|
>
|
|
61
59
|
<span>{{ item.day }}</span>
|
|
62
60
|
</div>
|
|
@@ -68,7 +66,7 @@
|
|
|
68
66
|
</div>
|
|
69
67
|
</div>
|
|
70
68
|
<div v-if="!state.isNoTime" class="ny-sm nx-ms">
|
|
71
|
-
<div class="full ac b-solid
|
|
69
|
+
<div class="full ac b-solid bk-back b-xs r-sm" ui-row="mob-8" style="width: 100%; height: 3em; padding: 0.5em">
|
|
72
70
|
<ul
|
|
73
71
|
:style="`${state.panel ? '' : 'pointer-events: none; opacity:.35'}`"
|
|
74
72
|
class="fekit-date-view-time-scroll"
|
|
@@ -111,7 +109,7 @@
|
|
|
111
109
|
</div>
|
|
112
110
|
</div>
|
|
113
111
|
|
|
114
|
-
<div v-if="tools" ui-date-foot="" ui-flex="row xm" class="flex-fixed nx-sl ny-sl b-solid bk-line
|
|
112
|
+
<div v-if="tools" ui-date-foot="" ui-flex="row xm" class="flex-fixed nx-sl ny-sl b-solid bk-line-mm bt-xs">
|
|
115
113
|
<div ui-flex="row lm" class="nl-ss">
|
|
116
114
|
<div v-if="state.panel" ui-flex="row lm">
|
|
117
115
|
<span :anim-editing="state.type === 'date'" ui-btn="@a xs none" class="nx-ss" @click="setPanelType('date')">{{ idate(state.panel).format('YYYY-MM-DD') }}</span>
|
|
@@ -121,8 +119,8 @@
|
|
|
121
119
|
</div>
|
|
122
120
|
<div v-else-if="state.shortcuts?.length" ui-flex="row lm">
|
|
123
121
|
<div class="mr-sm-sub nx-sl-sub ny-ss-sub lh-ss nowrap fs-ss dib-sub" ui-scroll=":x y:hidden">
|
|
124
|
-
<p v-for="(item, idx) in state.shortcuts" :key="idx" class="bg-main
|
|
125
|
-
<p class="bg-main
|
|
122
|
+
<p v-for="(item, idx) in state.shortcuts" :key="idx" class="bg-main-ss co-main r-xl" ui-btn="@a xs none :round" @click="item?.func">{{ item?.text }}</p>
|
|
123
|
+
<p class="bg-main-ss co-main r-xl" ui-btn="@a xs none :round"><Icon class="co-main" name="more" /></p>
|
|
126
124
|
</div>
|
|
127
125
|
</div>
|
|
128
126
|
<div> </div>
|
|
@@ -136,7 +134,8 @@
|
|
|
136
134
|
</template>
|
|
137
135
|
<script setup lang="ts">
|
|
138
136
|
import { computed, ref, reactive, watch, onMounted } from 'vue';
|
|
139
|
-
import {
|
|
137
|
+
import { isDateString, isObject, isString } from '@fekit/utils';
|
|
138
|
+
import { idate } from '@fekit/utils';
|
|
140
139
|
import { Icon } from '../basic';
|
|
141
140
|
|
|
142
141
|
// 创建日期
|
|
@@ -232,6 +231,7 @@
|
|
|
232
231
|
// 当前时间计算
|
|
233
232
|
curr: computed(() => {
|
|
234
233
|
const date = idate(state.panel);
|
|
234
|
+
console.log(235, date);
|
|
235
235
|
const days = date.calendar({ group: true, value: [state.panel] });
|
|
236
236
|
return { days, ...date.attr };
|
|
237
237
|
}),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div ui-date="@a" class="fekit-date-view pr" :class="`${frame ? 'b-solid
|
|
2
|
+
<div ui-date="@a" class="fekit-date-view pr" :class="`${frame ? 'b-solid bk-line b-xs r-sm' : ''}`" ui-flex="col xy" style="width: 31em; height: 24.5em">
|
|
3
3
|
<div class="flex-block" ui-flex="row xy">
|
|
4
4
|
<div style="width: 20em; height: 100%">
|
|
5
|
-
<div ui-date-head="" class="h-xs+ flex-fixed nx-sl mt-ss ny-ss b-solid
|
|
5
|
+
<div ui-date-head="" class="h-xs+ flex-fixed nx-sl mt-ss ny-ss b-solid bk-back -bb-xs" ui-flex="row xm">
|
|
6
6
|
<div ui-flex="row lm" class="o-lm">
|
|
7
7
|
<div ui-btn="@a s none :square" @click="prev('y')">
|
|
8
8
|
<Icon name="double-arrow-left" />
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
v-if="item.day"
|
|
47
47
|
:ui-date-day="item.day"
|
|
48
48
|
class="flex-block"
|
|
49
|
-
:class="`${item.range ? 'bg-main
|
|
49
|
+
:class="`${item.range ? 'bg-main-xs' : ''} ${item.sta ? 'r-lt-sl r-lb-sl' : ''} ${item.end ? 'r-rt-sl r-rb-sl' : ''}`"
|
|
50
50
|
ui-flex="col cm"
|
|
51
51
|
@click="change(item)"
|
|
52
52
|
@mouseenter="setRangeValue(item)"
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
class="r-sm b-solid bk-none b-xs my-ss ux-scale"
|
|
57
57
|
style="width: 1.8em; height: 1.8em"
|
|
58
58
|
:class="`${item.isLastMonth || item.isNextMonth ? 'co-idle' : item.isHoliday ? 'co-risk' : ''} ${
|
|
59
|
-
item.selected ? 'active bg-main
|
|
59
|
+
item.selected ? 'active bg-main-lm co-fore' : 'hover-bg-weak'
|
|
60
60
|
}`"
|
|
61
61
|
>
|
|
62
62
|
<span>{{ item.day }}</span>
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
</div>
|
|
70
70
|
</div>
|
|
71
71
|
</div>
|
|
72
|
-
<div style="width: 11em" class="flex-fixed b-solid
|
|
73
|
-
<div ui-date-head="" class="h-xs+ flex-fixed nx-sl mt-ss ny-ss b-solid
|
|
72
|
+
<div style="width: 11em" class="flex-fixed b-solid bk-back bl-xs" ui-flex="col xy">
|
|
73
|
+
<div ui-date-head="" class="h-xs+ flex-fixed nx-sl mt-ss ny-ss b-solid bk-back -bb-xs" ui-flex="row cm">
|
|
74
74
|
<div ui-flex="row cm" class="nx-ss-sub">
|
|
75
75
|
<div ui-flex="row cm" class="nx-ss-sub">
|
|
76
76
|
<p class="nx-ss-sub nowrap" ui-flex="row cm" ui-btns="@a none xs">
|
|
@@ -251,7 +251,7 @@
|
|
|
251
251
|
</div>
|
|
252
252
|
</div>
|
|
253
253
|
</div>
|
|
254
|
-
<div v-if="tools" ui-date-foot="" ui-flex="row xm" class="flex-fixed nx-sl ny-sl b-solid bk-line
|
|
254
|
+
<div v-if="tools" ui-date-foot="" ui-flex="row xm" class="flex-fixed nx-sl ny-sl b-solid bk-line-mm bt-xs">
|
|
255
255
|
<div ui-flex="row lm" class="nl-ss">
|
|
256
256
|
<p v-if="state.panel" ui-flex="row lm">
|
|
257
257
|
<span ui-btn="@a xs none" class="nx-ss" @click="setPanelType('date')">{{ state.panel }}</span>
|
|
@@ -259,8 +259,8 @@
|
|
|
259
259
|
</p>
|
|
260
260
|
<div v-else-if="state.shortcuts?.length" ui-flex="row lm">
|
|
261
261
|
<div class="mr-sm-sub nx-sl-sub ny-ss-sub lh-ss nowrap fs-ss dib-sub" ui-scroll=":x y:hidden">
|
|
262
|
-
<p v-for="(item, idx) in state.shortcuts" :key="idx" class="bg-main
|
|
263
|
-
<p class="bg-main
|
|
262
|
+
<p v-for="(item, idx) in state.shortcuts" :key="idx" class="bg-main-xs co-main r-xl" ui-btn="@a xs none :round" @click="item?.func">{{ item?.text }}</p>
|
|
263
|
+
<p class="bg-main-xs co-main r-xl" ui-btn="@a xs none :round"><Icon class="co-main" name="more" /></p>
|
|
264
264
|
</div>
|
|
265
265
|
</div>
|
|
266
266
|
<div> </div>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
</template>
|
|
12
12
|
<template v-if="(!multiple && files && files.length === 0) || (multiple && (!limit || (limit && files && files.length < limit)))">
|
|
13
13
|
<slot>
|
|
14
|
-
<div ui-flex="row cm" ui-form="@a type:upload tips:hover" :class="`upload bg-fore b-solid
|
|
14
|
+
<div ui-flex="row cm" ui-form="@a type:upload tips:hover" :class="`upload bg-fore b-solid bk-case b-xs mb-sl ${uploadClass}`" :style="uploadStyle">
|
|
15
15
|
<div v-if="tips" ui-form-tips>
|
|
16
16
|
{{ tips }}
|
|
17
17
|
</div>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<li
|
|
5
5
|
v-for="(item, idx) of props.options"
|
|
6
6
|
:key="idx"
|
|
7
|
-
:class="`${mv?.some((i: any) => `${i}` === `${item.value}`) ? 'bg-main
|
|
7
|
+
:class="`${mv?.some((i: any) => `${i}` === `${item.value}`) ? 'bg-main-ss bk-main-ml' : 'bk-case'}`"
|
|
8
8
|
class="n-sm r-ss b-solid b-xs"
|
|
9
9
|
@click.stop="select(item.value)"
|
|
10
10
|
>
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
</Input>
|
|
7
7
|
<template #options>
|
|
8
8
|
<div class="full n-xs" ui-flex="col xy">
|
|
9
|
-
<div class="flex-fixed n-ms b-solid
|
|
9
|
+
<div class="flex-fixed n-ms b-solid bk-line bb-xs" ui-flex="row xm">
|
|
10
10
|
<div><button class="co-note" @click="cancel">取消</button></div>
|
|
11
11
|
<div><button class="co-main" @click="confirm">确定</button></div>
|
|
12
12
|
</div>
|
|
13
13
|
<div class="flex-block">
|
|
14
14
|
<IScrollView class="full n-ms" :pull="false" :load="false">
|
|
15
15
|
<ul v-if="props.options?.length" class="my-sm-sub">
|
|
16
|
-
<li class="ux-hover n-sm r-ss nowrap b-solid
|
|
16
|
+
<li class="ux-hover n-sm r-ss nowrap b-solid bk-case b-xs" v-for="(item, idx) of props.options" :key="idx" @click.stop="select(item.value)">
|
|
17
17
|
<label style="pointer-events: none" ui-form="@a type:checkbox :block">
|
|
18
18
|
<input type="checkbox" :name="field" :checked="mv?.some((i: any) => `${i}` === `${item.value}`)" />
|
|
19
19
|
<span class="ml-sm">{{ item.label || item }}</span>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<li
|
|
6
6
|
v-for="(item, idx) of props.options"
|
|
7
7
|
:key="idx"
|
|
8
|
-
:class="`${mv?.some((i: any) => `${i}` === `${item.value}`) ? 'bg-main
|
|
8
|
+
:class="`${mv?.some((i: any) => `${i}` === `${item.value}`) ? 'bg-main-ss bk-main-ml' : 'bk-case'}`"
|
|
9
9
|
class="nx-ms ny-ss r-sm b-solid b-xs pr"
|
|
10
10
|
@click.stop="select(item.value)"
|
|
11
11
|
>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<ul v-if="props.options?.length" class="my-sm-sub lh-ss">
|
|
3
3
|
<li
|
|
4
|
-
class="hover:bg-main
|
|
5
|
-
:class="`${item.value === mv ? 'bk-main
|
|
4
|
+
class="hover:bg-main-ss n-sl r-ss b-solid b-xs"
|
|
5
|
+
:class="`${item.value === mv ? 'bk-main-ml bg-main-ss' : 'bk-case'}`"
|
|
6
6
|
v-for="(item, idx) of props.options"
|
|
7
7
|
:key="idx"
|
|
8
8
|
@click="mv = item.value === mv ? '' : item.value"
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
</Input>
|
|
7
7
|
<template #options>
|
|
8
8
|
<div class="full n-xs" ui-flex="col xy">
|
|
9
|
-
<div class="flex-fixed n-ms b-solid
|
|
9
|
+
<div class="flex-fixed n-ms b-solid bk-line bb-xs" ui-flex="row xm">
|
|
10
10
|
<div><button class="co-note" @click="cancel">取消</button></div>
|
|
11
11
|
<div><button class="co-main" @click="select">确定</button></div>
|
|
12
12
|
</div>
|
|
13
13
|
<div class="flex-block">
|
|
14
14
|
<IScrollView class="full n-ms" :pull="false" :load="false">
|
|
15
15
|
<ul v-if="props.options?.length" class="my-sm-sub">
|
|
16
|
-
<li class="ux-hover n-sm r-ss b-solid
|
|
16
|
+
<li class="ux-hover n-sm r-ss b-solid bk-case b-xs" v-for="(item, idx) of props.options" :key="idx" @click="mv = item.value">
|
|
17
17
|
<label ui-form="@a type:radio">
|
|
18
18
|
<input type="radio" :name="item.field" :checked="item.value === mv" /><span>{{ item.label || item }}</span>
|
|
19
19
|
</label>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div v-if="props.options?.length" class="mr-sm-sub mb-sm-sub">
|
|
3
3
|
<span
|
|
4
4
|
class="lh-ss ny-sm nx-ms r-xl dib"
|
|
5
|
-
:class="`${mv == item.value ? 'bg-main
|
|
5
|
+
:class="`${mv == item.value ? 'bg-main-sm co-main' : 'bg-weak'}`"
|
|
6
6
|
v-for="(item, idx) of props.options"
|
|
7
7
|
:key="idx"
|
|
8
8
|
@click="mv = item.value === mv ? '' : item.value"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div :class="`${frame ? 'b-solid
|
|
3
|
-
<div ui-calendar-head="" class="nx-sl ny-sm b-solid
|
|
2
|
+
<div :class="`${frame ? 'b-solid bk-line b-xs r-sm' : ''}`" ui-flex="col xy">
|
|
3
|
+
<div ui-calendar-head="" class="nx-sl ny-sm b-solid bk-line bb-xs">
|
|
4
4
|
<div ui-flex="row lm"></div>
|
|
5
5
|
<div ui-flex="row cm" class="nx-ss-sub">
|
|
6
6
|
<p class="mx-ss-sub">
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
<div
|
|
20
20
|
ui-flex="col cm"
|
|
21
21
|
class="r-sm b-solid bk-none b-xs"
|
|
22
|
-
:class="`${item.isToday ? 'bk-main
|
|
23
|
-
state.selected && state.selected === item.date ? 'active bg-main
|
|
22
|
+
:class="`${item.isToday ? 'bk-main-ls' : item.isLastMonth || item.isNextMonth ? 'co-note' : item.isHoliday ? 'co-risk' : ''} ${
|
|
23
|
+
state.selected && state.selected === item.date ? 'active bg-main-ls co-fore' : 'hover-bg-weak'
|
|
24
24
|
}`"
|
|
25
25
|
>
|
|
26
26
|
<span>{{ item.day }}</span>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<ul ui-flex="row lm :wrap" class="mb-ss-sub mr-ss-sub" v-bind="{ ...attrs }">
|
|
3
|
-
<li v-for="(file, idx) in state.files" :key="idx" ui-flex="col cm" class="flex-fixed bg-fore n-sl w-ms h-ms b-solid
|
|
3
|
+
<li v-for="(file, idx) in state.files" :key="idx" ui-flex="col cm" class="flex-fixed bg-fore n-sl w-ms h-ms b-solid bk-line b-xs">
|
|
4
4
|
<img v-if="file.type === 'image'" :src="file.path" alt="" />
|
|
5
5
|
<template v-else-if="file.type === 'pdf'">
|
|
6
6
|
<svg t="1705645350800" class="w-ss h-ss" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1913">
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
</li>
|
|
140
140
|
<li v-if="(!multiple && state.files && state.files.length === 0) || (multiple && (!limit || (limit && state.files && state.files.length < limit)))">
|
|
141
141
|
<slot>
|
|
142
|
-
<label ui-flex="row cm" ui-form="@a type:upload tips:hover" :class="`upload w-ms h-ms n-sl bg-fore b-solid
|
|
142
|
+
<label ui-flex="row cm" ui-form="@a type:upload tips:hover" :class="`upload w-ms h-ms n-sl bg-fore b-solid bk-line b-xs ${uploadClass}`" :style="uploadStyle">
|
|
143
143
|
<div v-if="tips" ui-form-tips>
|
|
144
144
|
{{ tips }}
|
|
145
145
|
</div>
|