setting.vue 4.6 KB

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