setting.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <!--
  2. * @description: 标题属性设置面板
  3. * @Date: 2022-08-17 16:53:28
  4. * @Author: shiyi
  5. -->
  6. <template>
  7. <div>
  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="bs-setting-wrap">
  32. <PosWhSetting :config="config" />
  33. </div>
  34. <SettingTitle>基础</SettingTitle>
  35. <div class="bs-setting-wrap">
  36. <el-form-item
  37. label="链接地址"
  38. label-width="100px"
  39. prop="title"
  40. >
  41. <el-input
  42. v-model="config.customize.url"
  43. placeholder="请输入链接地址"
  44. clearable
  45. />
  46. </el-form-item>
  47. <el-form-item
  48. label="打开方式"
  49. label-width="100px"
  50. prop="title"
  51. >
  52. <el-select
  53. v-model="config.customize.openType"
  54. popper-class="bs-el-select"
  55. class="bs-el-select"
  56. >
  57. <el-option
  58. v-for="type in openTypeList"
  59. :key="type.label"
  60. :label="type.label"
  61. :value="type.value"
  62. />
  63. </el-select>
  64. </el-form-item>
  65. <el-form-item
  66. v-if="config.customize.openType === 'dialog'"
  67. label="弹窗宽度"
  68. label-width="100px"
  69. >
  70. <el-input-number
  71. v-model="config.customize.dialogW"
  72. class="bs-el-input-number"
  73. placeholder="请输入弹窗宽度"
  74. clearable
  75. />
  76. </el-form-item>
  77. <el-form-item
  78. v-if="config.customize.openType === 'dialog'"
  79. label="弹窗高度"
  80. label-width="100px"
  81. >
  82. <el-input-number
  83. v-model="config.customize.dialogH"
  84. class="bs-el-input-number"
  85. placeholder="请输入弹窗高度"
  86. clearable
  87. />
  88. </el-form-item>
  89. <el-form-item
  90. label="标题字体大小"
  91. label-width="100px"
  92. >
  93. <el-input
  94. v-model="config.customize.fontSize"
  95. placeholder="请输入标题字体大小"
  96. clearable
  97. >
  98. <template slot="append">
  99. px
  100. </template>
  101. </el-input>
  102. </el-form-item>
  103. <el-form-item
  104. label="标题字体权重"
  105. label-width="100px"
  106. >
  107. <el-input-number
  108. v-model="config.customize.fontWeight"
  109. class="bs-el-input-number"
  110. placeholder="请输入标题字体权重"
  111. />
  112. </el-form-item>
  113. <TextGradient v-model="config.customize.color" />
  114. </div>
  115. </el-form>
  116. </div>
  117. </template>
  118. <script>
  119. import SettingTitle from 'packages/SettingTitle/index.vue'
  120. import TextGradient from 'packages/BigScreenDesign/RightSetting/TextGradient/index'
  121. import PosWhSetting from 'packages/BigScreenDesign/RightSetting/PosWhSetting.vue'
  122. export default {
  123. name: 'LinkChartSetting',
  124. components: {
  125. TextGradient,
  126. PosWhSetting,
  127. SettingTitle
  128. },
  129. data () {
  130. return {
  131. openTypeList: [
  132. {
  133. label: '当前窗口',
  134. value: '_self'
  135. },
  136. {
  137. label: '新窗口',
  138. value: '_blank'
  139. },
  140. {
  141. label: '弹窗',
  142. value: 'dialog'
  143. }
  144. ],
  145. rules: {
  146. title: [
  147. { required: true, message: '请输入标题', trigger: 'blur' }
  148. ]
  149. }
  150. }
  151. },
  152. computed: {
  153. config: {
  154. get () {
  155. return this.$store.state.bigScreen.activeItemConfig
  156. },
  157. set (val) {
  158. this.$store.state.bigScreen.activeItemConfig = val
  159. }
  160. }
  161. },
  162. watch: {
  163. },
  164. mounted () {},
  165. methods: {
  166. }
  167. }
  168. </script>
  169. <style lang="scss" scoped>
  170. @import "../../assets/style/settingWrap.scss";
  171. .bs-setting-wrap{
  172. padding: 12px 16px;
  173. }
  174. </style>