setting.vue 4.2 KB

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