setting.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <!--
  2. * @description: 标题属性设置面板
  3. * @Date: 2022-08-17 16:53:28
  4. * @Author: shiyi
  5. -->
  6. <template>
  7. <div class="bs-setting-wrap">
  8. <el-form
  9. ref="form"
  10. label-width="100px"
  11. label-position="left"
  12. :model="config"
  13. :rules="rules"
  14. class="bs-el-form"
  15. >
  16. <SettingTitle>标题</SettingTitle>
  17. <div class="bs-setting-wrap">
  18. <el-form-item
  19. label="标题"
  20. label-width="100px"
  21. prop="title"
  22. >
  23. <el-input
  24. v-model="config.title"
  25. placeholder="请输入标题"
  26. clearable
  27. />
  28. </el-form-item>
  29. </div>
  30. <SettingTitle>位置</SettingTitle>
  31. <div class="lc-field-body">
  32. <PosWhSetting :config="config" />
  33. </div>
  34. <SettingTitle v-if="config.border">
  35. 边框
  36. </SettingTitle>
  37. <div class="lc-field-body">
  38. <BorderSetting
  39. v-if="config.border"
  40. label-width="100px"
  41. :config="config.border"
  42. :big-title="config.title"
  43. />
  44. </div>
  45. <SettingTitle>基础</SettingTitle>
  46. <div class="lc-field-body">
  47. <el-form-item
  48. label="标题字体大小"
  49. label-width="100px"
  50. >
  51. <el-input
  52. v-model="config.customize.fontSize"
  53. placeholder="请输入标题字体大小"
  54. clearable
  55. >
  56. <template slot="append">
  57. px
  58. </template>
  59. </el-input>
  60. </el-form-item>
  61. <el-form-item
  62. label="标题字体权重"
  63. label-width="100px"
  64. >
  65. <el-input-number
  66. v-model="config.customize.fontWeight"
  67. class="bs-el-input-number"
  68. placeholder="请输入标题字体权重"
  69. />
  70. </el-form-item>
  71. <el-form-item
  72. label="标题字体类型"
  73. label-width="100px"
  74. >
  75. <el-select
  76. v-model="config.customize.fontFamily"
  77. popper-class="bs-el-select"
  78. class="bs-el-select"
  79. >
  80. <el-option
  81. v-for="item in fontFamilyList"
  82. :key="item.value"
  83. :label="item.label"
  84. :value="item.value"
  85. />
  86. </el-select>
  87. </el-form-item>
  88. <TextGradient v-model="config.customize.color" />
  89. </div>
  90. </el-form>
  91. </div>
  92. </template>
  93. <script>
  94. import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
  95. import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
  96. import TextGradient from 'data-room-ui/BigScreenDesign/RightSetting/TextGradient/index'
  97. import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
  98. export default {
  99. name: 'TextSetting',
  100. components: {
  101. TextGradient,
  102. PosWhSetting,
  103. SettingTitle,
  104. BorderSetting
  105. },
  106. data () {
  107. return {
  108. fontFamilyList: [
  109. {
  110. label: '默认',
  111. value: ''
  112. },
  113. {
  114. label: '时钟加粗倾斜',
  115. value: 'ds-digitalbold_italic'
  116. },
  117. {
  118. label: '时钟加粗正常',
  119. value: 'ds-digitalbold'
  120. },
  121. {
  122. label: '时钟倾斜',
  123. value: 'ds-digitalitalic'
  124. },
  125. {
  126. label: '时钟正常',
  127. value: 'ds-digitalnormal'
  128. }],
  129. rules: {
  130. title: [
  131. { required: true, message: '请输入标题', trigger: 'blur' }
  132. ]
  133. }
  134. }
  135. },
  136. computed: {
  137. config: {
  138. get () {
  139. return this.$store.state.bigScreen.activeItemConfig
  140. },
  141. set (val) {
  142. this.$store.state.bigScreen.activeItemConfig = val
  143. }
  144. }
  145. },
  146. watch: {
  147. },
  148. mounted () {},
  149. methods: {
  150. }
  151. }
  152. </script>
  153. <style lang="scss" scoped>
  154. @import "../../assets/style/settingWrap.scss";
  155. .bs-setting-wrap{
  156. padding-top: 16px;
  157. }
  158. .lc-field-body {
  159. padding: 12px 16px;
  160. }
  161. </style>