<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-select v-model="config.customize.formatType" class="bs-el-select" popper-class="bs-el-select" > <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 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 v-if="config.customize.formatType === 'custom'" label="时间数据格式化" > <div class="description"> <el-input v-model="config.customize.valueFormat" 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' export default { name: 'Border14Setting', components: { ColorPicker, PosWhSetting, SettingTitle, RotateSetting }, props: { config: { type: Object, required: true }, predefineThemeColors: { type: Array, default: () => { return [ '#007aff', '#1aa97b', '#ff4d53', '#1890FF', '#DF0E1B', '#0086CC', '#2B74CF', '#00BC9D', '#ED7D32' ] } } }, watch: { 'config.customize.formatType': { handler (val) { if (val === 'timestamp') { this.config.customize.format = 'timestamp' this.config.customize.valueFormat = 'timestamp' } else if (val === 'custom') { this.config.customize.format = 'HH:mm:ss' this.config.customize.valueFormat = 'HH:mm:ss' } }, immediate: true } }, data () { return { // 时间格式化类型选项 formatTypeOptions: [ { label: '时间戳', value: 'timestamp' }, { label: '自定义', value: 'custom' } ] } }, mounted () {}, methods: { } } </script> <style lang="scss" scoped> .lc-field-body { width: 97%; padding: 16px; } .description{ display: flex; align-items: center; .el-tooltip{ margin-left: 5px; } } </style>