<!-- * @description: 标题属性设置面板 * @Date: 2022-08-17 16:53:28 * @Author: shiyi --> <template> <div> <el-form ref="form" label-width="100px" label-position="left" :model="config" :rules="rules" class="bs-el-form" > <SettingTitle>标题</SettingTitle> <div class="bs-setting-wrap"> <el-form-item label="标题" label-width="100px" prop="title" > <el-input v-model="config.customize.title" placeholder="请输入标题" clearable /> </el-form-item> </div> <SettingTitle>位置</SettingTitle> <div class="lc-field-body"> <PosWhSetting :config="config" /> </div> <SettingTitle v-if="config.border">边框</SettingTitle> <div class="lc-field-body"> <BorderSetting v-if="config.border" label-width="100px" :config="config.border" :bigTitle='config.title' /> </div> <SettingTitle>旋转</SettingTitle> <div class="lc-field-body"> <RotateSetting :config="config" /> </div> <SettingTitle>基础</SettingTitle> <div class="lc-field-body"> <el-form-item label="字体大小" label-width="100px" > <el-input v-model="config.customize.fontSize" placeholder="请输入标题字体大小" clearable > <template slot="append"> px </template> </el-input> </el-form-item> <el-form-item label="字体权重" label-width="100px" > <el-input-number v-model="config.customize.fontWeight" class="bs-el-input-number" placeholder="请输入标题字体权重" /> </el-form-item> <!-- 走马灯走向 --> <el-form-item label="滚动方向" label-width="100px" > <el-select v-model="config.customize.direction" class="bs-el-select" popper-class="bs-el-select" filterable clearable > <el-option v-for="direction in directionList" :key="direction.value" :label="direction.label" :value="direction.value" /> </el-select> </el-form-item> <!-- 滚动速度 --> <el-form-item label="滚动间隔" label-width="100px" > <el-input-number v-model="config.customize.dur" class="bs-el-input-number" placeholder="请输入滚动间隔" :min="1" :step="1" > <template slot="append"> s </template> </el-input-number> </el-form-item> <!-- 图标选择 --> <el-form-item label="图标选择" label-width="100px" > <!-- <IconPicker v-model="config.customize.icon.name" /> --> <el-select v-model="config.customize.icon.name" class="bs-el-select" popper-class="bs-el-select" filterable clearable > <el-option v-for="(icbroadcaston,index) in broadcastList" :key="index" :label="icbroadcaston.label" :value="icbroadcaston.value" > <icon-svg :name="icbroadcaston.value" /> <span style="float: right; color: #8492a6; font-size: 13px">{{ icbroadcaston.label }}</span> </el-option> </el-select> </el-form-item> <!-- 图标位置 --> <el-form-item v-if="config.customize.icon.name" label="图标位置" label-width="100px" > <el-select v-model="config.customize.icon.position" class="bs-el-select" popper-class="bs-el-select" filterable clearable > <el-option v-for="iconPosition in iconPositionOptions" :key="iconPosition.value" :label="iconPosition.label" :value="iconPosition.value" /> </el-select> </el-form-item> <!-- 图标颜色 --> <el-form-item v-if="config.customize.icon.name" label="图标颜色" label-width="100px" > <ColorPicker v-model="config.customize.icon.color" placeholder="请选择图标颜色" :predefine-colors="predefineThemeColors" /> </el-form-item> <el-form-item label="文字颜色类型"> <el-select v-model="config.customize.textColorType" popper-class="bs-el-select" class="bs-el-select" filterable clearable > <el-option label="纯色" value="pure" /> <el-option label="渐变色" value="gradient" /> </el-select> </el-form-item> <el-form-item v-if="config.customize.textColorType === 'pure'" label="文字颜色" > <ColorPicker v-model="config.customize.textColor" placeholder="请选择文字颜色" :predefine-colors="predefineThemeColors" /> </el-form-item> <el-form-item v-if="config.customize.textColorType === 'gradient'" label="文字渐变色方向" > <el-select v-model="config.customize.textGradientDirection" popper-class="bs-el-select" class="bs-el-select" filterable clearable > <el-option v-for="direction in gradientDirection" :key="direction.value" :label="direction.label" :value="direction.value" /> </el-select> </el-form-item> <el-form-item v-if="config.customize.textColorType === 'gradient'" label="文字渐变开始色" > <ColorPicker v-model="config.customize.textGradientColor0" placeholder="请选择渐变色开始色值" :predefine-colors="predefineThemeColors" /> </el-form-item> <el-form-item v-if="config.customize.textColorType === 'gradient'" label="文字渐变结束色" > <ColorPicker v-model="config.customize.textGradientColor1" placeholder="请选择渐变色结束色值" :predefine-colors="predefineThemeColors" /> </el-form-item> <el-form-item label="背景色类型"> <el-select v-model="config.customize.backgroundColorType" popper-class="bs-el-select" class="bs-el-select" filterable clearable > <el-option label="透明" value="transparent" /> <el-option label="纯色" value="pure" /> <el-option label="渐变色" value="gradient" /> </el-select> </el-form-item> <el-form-item v-if="config.customize.backgroundColorType === 'pure'" label="背景色" > <ColorPicker v-model="config.customize.backgroundColor" placeholder="请选择背景色" :predefine-colors="predefineThemeColors" /> </el-form-item> <el-form-item v-if="config.customize.backgroundColorType === 'gradient'" label="背景渐变色方向" > <el-select v-model="config.customize.bgGradientDirection" popper-class="bs-el-select" class="bs-el-select" filterable clearable > <el-option v-for="direction in gradientDirection" :key="direction.value" :label="direction.label" :value="direction.value" /> </el-select> </el-form-item> <el-form-item v-if="config.customize.backgroundColorType === 'gradient'" label="背景渐变开始色" > <ColorPicker v-model="config.customize.bgGradientColor0" placeholder="请选择渐变色开始色值" :predefine-colors="predefineThemeColors" /> </el-form-item> <el-form-item v-if="config.customize.backgroundColorType === 'gradient'" label="背景渐变结束色" > <ColorPicker v-model="config.customize.bgGradientColor1" placeholder="请选择渐变色结束色值" :predefine-colors="predefineThemeColors" /> </el-form-item> </div> <SettingTitle>其他</SettingTitle> <div class="lc-field-body"> <!-- 是否开启语音播报 --> <el-form-item label="语音播报" label-width="100px" > <el-switch v-model="config.customize.voiceBroadcast" :active-value="true" :inactive-value="false" class="bs-el-switch" /> </el-form-item> </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 BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue' import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue' import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue' import IconSvg from 'data-room-ui/SvgIcon' import {predefineColors} from "data-room-ui/js/utils/colorList"; export default { name: 'TextSetting', components: { PosWhSetting, ColorPicker, SettingTitle, RotateSetting, IconSvg, BorderSetting }, data () { return { predefineThemeColors: predefineColors, directionList: [ { value: 'right', label: '从右到左' }, { value: 'left', label: '从左到右' }, { value: 'top', label: '从上到下' }, { value: 'bottom', label: '从下到上' } ], gradientDirection: [ { label: '从左到右', value: 'to right' }, { label: '从上到下', value: 'to bottom' }, { label: '从左上到右下', value: 'to bottom right' }, { label: '从左下到右上', value: 'to top right' } ], iconPositionOptions: [ { label: '左侧', value: 'left' }, { label: '右侧', value: 'right' } ], broadcastList: [ { label: '广播1', value: 'broadcast-1' }, { label: '广播2', value: 'broadcast-2' }, { label: '广播3', value: 'broadcast-3' }, { label: '广播4', value: 'broadcast-4' }, { label: '广播5', value: 'broadcast-5' }, { label: '广播6', value: 'broadcast-6' }, { label: '广播7', value: 'broadcast-7' }, { label: '广播8', value: 'broadcast-8' }, { label: '广播9', value: 'broadcast-9' }, { label: '广播10', value: 'broadcast-10' }, { label: '广播11', value: 'broadcast-11' } ], rules: { title: [ { required: true, message: '请输入标题', trigger: 'blur' } ] } } }, computed: { config: { get () { return this.$store.state.bigScreen.activeItemConfig }, set (val) { this.$store.state.bigScreen.activeItemConfig = val } } }, watch: { }, mounted () { }, methods: { changeStyle () { } } } </script> <style lang="scss" scoped> @import '../../assets/style/settingWrap.scss'; @import '../../assets/style/bsTheme.scss'; .bs-setting-wrap { padding: 12px 16px; } .lc-field-body { padding: 12px 16px; } </style>