setting.vue 4.9 KB

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