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

<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">
小时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>
</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>