You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

247 lines
9.1 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="bs-setting-wrap">
<el-form
ref="form"
:model="config"
label-width="100px"
label-position="left"
class="setting-body bs-el-form"
>
<div>
<slot name="top" />
<el-form
:model="config.customize"
label-position="left"
class="setting-body bs-el-form"
label-width="100px"
>
<SettingTitle>位置</SettingTitle>
<div class="lc-field-body">
<PosWhSetting :config="config" />
</div>
<SettingTitle>旋转</SettingTitle>
<div class="lc-field-body">
<RotateSetting
:config="config"
/>
</div>
<SettingTitle>基础</SettingTitle>
<div class="lc-field-body">
<!-- 选择器背景颜色 -->
<el-form-item label="背景颜色">
<ColorPicker
v-model="config.customize.backgroundColor"
:predefine="predefineThemeColors"
/>
</el-form-item>
<!-- 字体大小 -->
<el-form-item label="字体大小">
<el-input-number
v-model="config.customize.fontSize"
class="bs-el-input-number"
:min="12"
:max="100"
/>
</el-form-item>
<!-- 字体颜色 -->
<el-form-item label="字体颜色">
<ColorPicker
v-model="config.customize.fontColor"
:predefine="predefineThemeColors"
/>
</el-form-item>
</div>
<SettingTitle>下拉项</SettingTitle>
<!-- 选择器下拉框背景颜色 -->
<div class="lc-field-body">
<el-form-item label="背景颜色">
<ColorPicker
v-model="config.customize.dropDownBackgroundColor"
:predefine="predefineThemeColors"
/>
</el-form-item>
<el-form-item label="字体颜色">
<ColorPicker
v-model="config.customize.dropDownFontColor"
:predefine="predefineThemeColors"
/>
</el-form-item>
<!-- 下拉项悬浮背景颜色 -->
<el-form-item label="悬浮颜色">
<ColorPicker
v-model="config.customize.dropDownHoverBackgroundColor"
:predefine="predefineThemeColors"
/>
</el-form-item>
<!-- 下拉项悬浮字体颜色 -->
<el-form-item label="悬浮字体颜色">
<ColorPicker
v-model="config.customize.dropDownHoverFontColor"
:predefine="predefineThemeColors"
/>
</el-form-item>
<!-- 激活项文字颜色 -->
<el-form-item label="选中项文字颜色">
<ColorPicker
v-model="config.customize.dropDownSelectedFontColor"
:predefine="predefineThemeColors"
/>
</el-form-item>
</div>
<SettingTitle>时间格式</SettingTitle>
<div class="lc-field-body">
<!-- <el-form-item label="时间显示格式化">
<div class="description">
<el-input
v-model="config.customize.format"
placeholder="例如HH:mm:ss"
clearable
/>
<el-tooltip placement="top">
<span
class="el-icon-question"
style="color:#9e9e9e"
/>
<div slot="content">
小时H表示小时24小时制不补0例如3<br>
小时HH表示小时24小时制补0例如03<br>
小时h表示小时12小时制须和 A 或 a 使用不补0例如3<br>
小时hh表示小时12小时制须和 A 或 a 使用补0例如03<br>
分钟m表示分钟不补0例如4<br>
分钟mm表示分钟补0例如04<br>
s表示秒钟不补0例如5<br>
ss表示秒钟补0例如05<br>
JS时间戳timestamp仅 value-format 可用组件绑定值为number类型例如1483326245000<br>
不需要格式化字符:[MM]使用方括号标识不需要格式化的字符例如MM<br>
具体的时间格式化字符和使用方式可以参考Element-UI官网的日期选择器的时间格式化部分。
</div>
</el-tooltip>
</div>
</el-form-item> -->
<el-form-item label="时间类型">
<div class="description">
<el-select
v-model="config.customize.formatType"
class="bs-el-select"
popper-class="bs-el-select"
@change="changeFormatType"
>
<el-option
v-for="(type) in formatTypeOptions"
:key="type.value"
:label="type.label"
:value="type.value"
/>
</el-select>
<el-tooltip placement="top">
<span
class="el-icon-question"
style="color:#9e9e9e"
/>
<div slot="content">
时间戳从1970年1月1日开始计算的秒数数据类型为数值型例如1483326245000。<br>
自定义通过输入特定的格式字符串来指定时间的数据格式例如HH:mm:ss对应数据为 09:30:00。<br>
</div>
</el-tooltip>
</div>
</el-form-item>
<el-form-item
v-if="config.customize.formatType === 'custom'"
label="时间格式"
>
<div class="description">
<el-input
v-model="config.customize.format"
placeholder="例如HH:mm:ss"
clearable
/>
<el-tooltip placement="top">
<span
class="el-icon-question"
style="color:#9e9e9e"
/>
<div slot="content">
H2403<br>
小时HH表示小时24小时制补0例如03<br>
小时h表示小时12小时制须和 A a 使用不补0例如3<br>
小时hh表示小时12小时制须和 A a 使用补0例如03<br>
分钟m表示分钟不补0例如4<br>
分钟mm表示分钟补0例如04<br>
s表示秒钟不补0例如5<br>
ss表示秒钟补0例如05<br>
JS时间戳timestamp value-format 可用组件绑定值为number类型例如1483326245000<br>
不需要格式化字符[MM]使用方括号标识不需要格式化的字符例如MM<br>
具体的时间格式化字符和使用方式可以参考Element-UI官网的日期选择器的时间格式化部分
</div>
</el-tooltip>
</div>
</el-form-item>
</div>
</el-form>
</div>
</el-form>
</div>
</template>
<script>
import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
import {predefineColors} from "data-room-ui/js/utils/colorList";
export default {
name: 'TimePickerSetting',
components: {
ColorPicker,
PosWhSetting,
SettingTitle,
RotateSetting
},
props: {
config: {
type: Object,
required: true
},
predefineThemeColors: {
type: Array,
default: () => predefineColors
}
},
watch: {},
data () {
return {
// 时间格式化类型选项
formatTypeOptions: [
{ label: '时间戳', value: 'timestamp' },
{ label: '自定义格式', value: 'custom' }
]
}
},
mounted () { },
methods: {
changeFormatType (val) {
if (val === 'timestamp') {
this.config.customize.format = 'timestamp'
} else if (val === 'custom') {
this.config.customize.format = 'HH:mm:ss'
}
}
}
}
</script>
<style lang="scss" scoped>
.lc-field-body {
width: 97%;
padding: 16px;
}
.description {
display: flex;
align-items: center;
.el-tooltip {
margin-left: 5px;
}
}
</style>