Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-R7-Res
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-R7-Res
提交
46251fd4
提交
46251fd4
编写于
12月 15, 2022
作者:
WodahsOrez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update: 时间选择器 -u2
上级
8d2c5fc2
变更
2
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
163 行增加
和
53 行删除
+163
-53
app-date-range.scss
src/components/app-date-range/app-date-range.scss
+8
-2
app-date-range.vue
src/components/app-date-range/app-date-range.vue
+155
-51
未找到文件。
src/components/app-date-range/app-date-range.scss
浏览文件 @
46251fd4
.app-date-range
{
display
:
block
;
// 带时间
.app-date-range--datetime
{
min-width
:
333px
;
}
// 不带时间
.app-date-range--date
{
min-width
:
210px
;
}
\ No newline at end of file
src/components/app-date-range/app-date-range.vue
浏览文件 @
46251fd4
<
template
>
<date-picker></date-picker>
<date-picker
:class=
"['app-date-range', 'app-date-range--' + type]"
:type=
"rangeType"
:value=
"realVal"
:placeholder=
"placeholder"
:disabled=
"disabled"
transfer
@
on-change=
"onChange"
@
on-open-change=
"onOpenChange"
></date-picker>
</
template
>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Prop
,
Watch
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Watch
}
from
"vue-property-decorator"
;
@
Component
({})
export
default
class
AppDateRange
extends
Vue
{
/**
* 是否禁用
*
* @type {string}
* @memberof AppDateRange
*/
@
Prop
({
default
:
false
})
public
disabled
?:
boolean
;
/**
* 当前值
* placeholder
*
* @type {*}
* @memberof AppSpan
* @type {string}
* @memberof AppDateRange
*/
@
Prop
({
default
:
"请选择时间"
})
public
placeholder
?:
string
;
/**
* 日期值格式化
*
* @type {string}
* @memberof AppDateRange
*/
@
Prop
()
public
value
?:
any
;
@
Prop
()
public
valueFormat
?:
string
;
/**
* 数据类型
*
* @type {string}
* @memberof AppSpan
* @memberof AppDateRange
*/
@
Prop
({
default
:
'datetime'
})
public
type
?:
'datetime'
|
'date'
;
@
Prop
({
default
:
"datetime"
})
public
type
?:
"datetime"
|
"date"
;
/**
* 是否禁用
* 开始属性名称
*
* @type {string}
* @memberof AppSpan
* @memberof AppDateRange
*/
@
Prop
({
default
:
false
})
public
disabled
?:
boolean
;
@
Prop
()
public
startField
?:
string
;
/**
* 日期值格式化
* 结束属性名称
*
* @type {string}
* @memberof AppSpan
* @memberof AppDateRange
*/
@
Prop
()
public
valueFormat
?:
string
;
@
Prop
()
public
endField
?:
string
;
/**
* 传入表单数据
*
* @type {*}
* @memberof AppSpan
* @memberof AppDateRange
*/
@
Prop
()
public
data
?:
any
;
/**
* 实际组件维护的值
*
* @type {*}
* @memberof AppDateRange
*/
public
realVal
:
any
[]
=
[];
/**
* 是否修改过数据
* @type {boolean}
* @memberof AppDateRange
*/
public
modified
:
boolean
=
false
;
/**
* iview组件类型`
*
* @type {string}
* @memberof AppDateRange
*/
get
rangeType
()
{
switch
(
this
.
type
)
{
case
"date"
:
return
"daterange"
;
default
:
return
"datetimerange"
;
}
}
/**
* 生命周期
*
* @type {string}
* @memberof AppDateRange
*/
created
()
{
if
(
!
this
.
startField
)
{
this
.
$Notice
.
error
({
title
:
this
.
$t
(
"app.commonWords.wrong"
)
as
string
,
desc
:
"没有配置开始属性"
,
});
}
if
(
!
this
.
endField
)
{
this
.
$Notice
.
error
({
title
:
this
.
$t
(
"app.commonWords.wrong"
)
as
string
,
desc
:
"没有配置结束属性"
,
});
}
}
/**
* 监控表单属性 data 值
*
* @memberof AppSpan
* @memberof AppDateRange
*/
@
Watch
(
'data'
)
@
Watch
(
"data"
,
{
deep
:
true
,
immediate
:
true
}
)
onDataChange
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
!==
oldVal
){
console
.
log
(
newVal
);
if
(
newVal
&&
this
.
startField
&&
this
.
endField
)
{
this
.
realVal
=
[
newVal
[
this
.
startField
],
newVal
[
this
.
endField
]];
this
.
modified
=
false
;
console
.
log
(
this
.
realVal
);
}
}
/**
* iview组件值变更事件(只更新realVal,不抛出)
*
* @memberof AppDateRange
*/
onChange
(
values
:
any
[])
{
this
.
realVal
=
values
;
this
.
modified
=
true
;
if
(
values
[
0
]
===
''
&&
values
[
1
]
===
''
){
//清空的情况,直接抛值,openChange会先触发,或不触发。
this
.
$emit
(
"change"
,
this
.
startField
!
,
null
);
this
.
$emit
(
"change"
,
this
.
endField
!
,
null
);
}
}
/**
* iview组件值关闭事件(如果数据有变更,则抛出change事件)
*
* @memberof AppDateRange
*/
onOpenChange
(
isOpen
:
boolean
)
{
if
(
!
isOpen
&&
this
.
modified
)
{
const
[
start
,
end
]
=
this
.
realVal
;
this
.
$emit
(
"change"
,
this
.
startField
!
,
start
);
this
.
$emit
(
"change"
,
this
.
endField
!
,
end
);
}
}
}
</
script
>
<
style
lang=
'scss'
>
@import
'./app-date-range.scss'
;
<
style
lang=
"scss"
>
@import
"./app-date-range.scss"
;
</
style
>
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录