setting.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <template>
  2. <div class="bs-setting-wrap">
  3. <el-form
  4. ref="form"
  5. :model="config"
  6. label-width="90px"
  7. label-position="left"
  8. class="setting-body bs-el-form"
  9. >
  10. <div class="lc-field-body">
  11. <slot name="top" />
  12. <el-form
  13. :model="config.customize"
  14. label-position="left"
  15. class="setting-body bs-el-form"
  16. label-width="90px"
  17. >
  18. <el-form-item label="边框名称">
  19. <el-input
  20. v-model="config.title"
  21. clearable
  22. />
  23. </el-form-item>
  24. <PosWhSetting :config="config" />
  25. <SettingTitle>旋转</SettingTitle>
  26. <div class="lc-field-body">
  27. <RotateSetting
  28. :config="config"
  29. />
  30. </div>
  31. <el-form-item label="文本">
  32. <el-input
  33. v-model="config.customize.text"
  34. clearable
  35. />
  36. </el-form-item>
  37. </el-form>
  38. <el-form-item label="边框线颜色">
  39. <ColorPicker
  40. v-model="config.customize.borderColor"
  41. placeholder="请选择边框线颜色"
  42. :predefine-colors="predefineThemeColors"
  43. />
  44. </el-form-item>
  45. <el-form-item label="背景色一">
  46. <ColorPicker
  47. v-model="config.customize.gradientColor0"
  48. placeholder="请选择背景色"
  49. :predefine-colors="predefineThemeColors"
  50. />
  51. </el-form-item>
  52. <el-form-item label="背景色二">
  53. <ColorPicker
  54. v-model="config.customize.gradientColor1"
  55. placeholder="请选择背景色"
  56. :predefine-colors="predefineThemeColors"
  57. />
  58. </el-form-item>
  59. <el-form-item label="渐变色方向">
  60. <el-select
  61. v-model="config.customize.gradientDirection"
  62. popper-class="bs-el-select"
  63. class="bs-el-select"
  64. >
  65. <el-option
  66. v-for="item in gradientDirection"
  67. :key="item.value"
  68. :label="item.label"
  69. :value="item.value"
  70. />
  71. </el-select>
  72. </el-form-item>
  73. <el-form-item label="字体颜色">
  74. <ColorPicker
  75. v-model="config.customize.fontColor"
  76. placeholder="请选择背景色"
  77. :predefine-colors="predefineThemeColors"
  78. />
  79. </el-form-item>
  80. <el-form-item label="边框线宽度">
  81. <el-input-number
  82. v-model="config.customize.borderWidth"
  83. class="bs-el-input-number"
  84. />
  85. </el-form-item>
  86. <el-form-item label="字体大小">
  87. <el-input-number
  88. v-model="config.customize.fontSize"
  89. class="bs-el-input-number"
  90. :min="12"
  91. :step="1"
  92. />
  93. </el-form-item>
  94. <el-form-item label="字体粗度">
  95. <el-input-number
  96. v-model="config.customize.fontWeight"
  97. class="bs-el-input-number"
  98. :min="400"
  99. :step="1"
  100. />
  101. </el-form-item>
  102. <el-form-item label="不透明度">
  103. <el-input-number
  104. v-model="config.customize.opacity"
  105. class="bs-el-input-number"
  106. :min="0"
  107. :max="100"
  108. :step="1"
  109. />
  110. </el-form-item>
  111. </div>
  112. </el-form>
  113. </div>
  114. </template>
  115. <script>
  116. import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
  117. import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
  118. import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
  119. import {predefineColors} from "data-room-ui/js/utils/colorList";
  120. export default {
  121. name: 'Border14Setting',
  122. components: {
  123. ColorPicker,
  124. PosWhSetting,
  125. RotateSetting
  126. },
  127. props: {
  128. config: {
  129. type: Object,
  130. required: true
  131. },
  132. predefineThemeColors: {
  133. type: Array,
  134. default: () => predefineColors
  135. }
  136. },
  137. data () {
  138. return {
  139. gradientDirection: [
  140. {
  141. label: '从左到右',
  142. value: 'to right'
  143. },
  144. {
  145. label: '从右到左',
  146. value: 'to left'
  147. },
  148. {
  149. label: '从上到下',
  150. value: 'to bottom'
  151. },
  152. {
  153. label: '从下到上',
  154. value: 'to top'
  155. },
  156. {
  157. label: '从左上到右下',
  158. value: 'to bottom right'
  159. },
  160. {
  161. label: '从右上到左下',
  162. value: 'to bottom left'
  163. },
  164. {
  165. label: '从左下到右上',
  166. value: 'to top right'
  167. },
  168. {
  169. label: '从右下到左上',
  170. value: 'to top left'
  171. }
  172. ]
  173. }
  174. },
  175. watch: {},
  176. mounted () {},
  177. methods: {}
  178. }
  179. </script>
  180. <style lang="scss" scoped>
  181. .lc-field-body {
  182. padding: 16px;
  183. }
  184. </style>