setting.vue 5.2 KB

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