setting.vue 4.9 KB

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