setting.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <!--
  2. * @description: 指标组件案例设计面板
  3. * @Date: 2022-08-17 16:53:28
  4. * @Author: xingheng
  5. -->
  6. <template>
  7. <div class="setting-wrap">
  8. <el-form
  9. ref="form"
  10. label-width="100px"
  11. label-position="left"
  12. :model="config"
  13. class="bs-el-form"
  14. >
  15. <SettingTitle>标题</SettingTitle>
  16. <el-form-item
  17. class="lc-field-body"
  18. label="标题"
  19. label-width="100px"
  20. >
  21. <el-input
  22. v-model="config.title"
  23. placeholder="请输入标题"
  24. />
  25. </el-form-item>
  26. <SettingTitle>位置</SettingTitle>
  27. <div class="lc-field-body">
  28. <PosWhSetting :config="config" />
  29. </div>
  30. <SettingTitle v-if="config.border">边框</SettingTitle>
  31. <div class="lc-field-body">
  32. <BorderSetting
  33. v-if="config.border"
  34. label-width="100px"
  35. :config="config.border"
  36. :bigTitle='config.title'
  37. />
  38. </div>
  39. <SettingTitle>旋转</SettingTitle>
  40. <div class="lc-field-body">
  41. <RotateSetting
  42. :config="config"
  43. />
  44. </div>
  45. <SettingTitle>基础</SettingTitle>
  46. <div class="lc-field-body">
  47. <el-form-item
  48. label="字体大小"
  49. label-width="100px"
  50. >
  51. <el-input-number
  52. v-model="config.customize.fontSize"
  53. class="bs-el-input-number"
  54. placeholder="请输入字体大小"
  55. :min="0"
  56. />
  57. </el-form-item>
  58. <el-form-item
  59. label="字体权重"
  60. label-width="100px"
  61. >
  62. <el-input-number
  63. v-model="config.customize.fontWeight"
  64. class="bs-el-input-number"
  65. :min="0"
  66. :step="100"
  67. placeholder="请输入字体权重"
  68. />
  69. </el-form-item>
  70. <el-form-item
  71. label="字体类型"
  72. label-width="100px"
  73. >
  74. <el-select
  75. v-model="config.customize.fontFamily"
  76. popper-class="bs-el-select"
  77. class="bs-el-select"
  78. >
  79. <el-option
  80. v-for="item in fontFamilyList"
  81. :key="item.value"
  82. :label="item.label"
  83. :value="item.value"
  84. />
  85. </el-select>
  86. </el-form-item>
  87. <el-form-item
  88. label="字体颜色"
  89. label-width="100px"
  90. >
  91. <el-color-picker
  92. v-model="config.customize.color"
  93. popper-class="bs-el-color-picker"
  94. class="bs-el-color-picker"
  95. />
  96. </el-form-item>
  97. <el-form-item
  98. label="结束日期"
  99. label-width="100px"
  100. >
  101. <el-date-picker
  102. v-model="config.endTime"
  103. style="position: relative;"
  104. popper-class="bs-el-date-picker"
  105. type="datetime"
  106. align="left"
  107. size="mini"
  108. placeholder="请选择结束日期"
  109. :picker-options="pickerOptions"
  110. value-format="timestamp"
  111. :append-to-body="false"
  112. />
  113. </el-form-item>
  114. </div>
  115. </el-form>
  116. </div>
  117. </template>
  118. <script>
  119. import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
  120. import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
  121. import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
  122. import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
  123. import fontList from 'data-room-ui/js/utils/fontList'
  124. export default {
  125. name: 'TimeCountDownSetting',
  126. components: {
  127. PosWhSetting,
  128. SettingTitle,
  129. BorderSetting,
  130. RotateSetting
  131. },
  132. data () {
  133. return {
  134. fontFamilyList: fontList,
  135. pickerOptions: {
  136. disabledDate (time) {
  137. return time.getTime() < Date.now() - 8.64e7
  138. }
  139. },
  140. HeaderFontSizeList: [
  141. { label: '正常', value: 16 },
  142. { label: '较小', value: 14 },
  143. { label: '较大', value: 30 }
  144. ],
  145. numberFormatList: [
  146. { label: '原始数据', value: 'value' },
  147. { label: '千位分隔', value: 'kilobit' }
  148. ]
  149. }
  150. },
  151. computed: {
  152. config: {
  153. get () {
  154. return this.$store.state.bigScreen.activeItemConfig
  155. },
  156. set (val) {
  157. this.$store.state.bigScreen.activeItemConfig = val
  158. }
  159. }
  160. },
  161. watch: {},
  162. mounted () {
  163. this.initEndTime()
  164. },
  165. methods: {
  166. initEndTime () {
  167. if (this.config.endTime) {
  168. this.config.endTime = new Date(this.config.endTime).getTime()
  169. }
  170. }
  171. }
  172. }
  173. </script>
  174. <style lang="scss" scoped>
  175. @import "../../assets/style/settingWrap.scss";
  176. .setting-wrap {
  177. padding-top: 16px;
  178. }
  179. .el-date-editor.el-input,
  180. .el-date-editor.el-input__inner {
  181. width: 100%;
  182. }
  183. .lc-field-body {
  184. padding: 12px 16px;
  185. }
  186. </style>