setting.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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.customize.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">边框</SettingTitle>
  35. <div class="lc-field-body">
  36. <BorderSetting
  37. v-if="config.border"
  38. label-width="100px"
  39. :config="config.border"
  40. :bigTitle='config.title'
  41. />
  42. </div>
  43. <SettingTitle>基础</SettingTitle>
  44. <div class="lc-field-body">
  45. <el-form-item
  46. label="标题字体大小"
  47. label-width="100px"
  48. >
  49. <el-input
  50. v-model="config.customize.fontSize"
  51. placeholder="请输入标题字体大小"
  52. clearable
  53. >
  54. <template slot="append">
  55. px
  56. </template>
  57. </el-input>
  58. </el-form-item>
  59. <el-form-item
  60. label="标题字体权重"
  61. label-width="100px"
  62. >
  63. <el-input-number
  64. v-model="config.customize.fontWeight"
  65. class="bs-el-input-number"
  66. placeholder="请输入标题字体权重"
  67. />
  68. </el-form-item>
  69. <TextGradient v-model="config.customize.color" />
  70. </div>
  71. </el-form>
  72. </div>
  73. </template>
  74. <script>
  75. import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
  76. import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
  77. import TextGradient from 'data-room-ui/BigScreenDesign/RightSetting/TextGradient/index'
  78. import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
  79. export default {
  80. name: 'TextSetting',
  81. components: {
  82. TextGradient,
  83. PosWhSetting,
  84. SettingTitle,
  85. BorderSetting
  86. },
  87. data () {
  88. return {
  89. rules: {
  90. title: [
  91. { required: true, message: '请输入标题', trigger: 'blur' }
  92. ]
  93. }
  94. }
  95. },
  96. computed: {
  97. config: {
  98. get () {
  99. return this.$store.state.bigScreen.activeItemConfig
  100. },
  101. set (val) {
  102. this.$store.state.bigScreen.activeItemConfig = val
  103. }
  104. }
  105. },
  106. watch: {
  107. },
  108. mounted () {},
  109. methods: {
  110. }
  111. }
  112. </script>
  113. <style lang="scss" scoped>
  114. @import "../../assets/style/settingWrap.scss";
  115. .bs-setting-wrap{
  116. padding-top: 16px;
  117. }
  118. .lc-field-body {
  119. padding: 12px 16px;
  120. }
  121. </style>