ScreenLight.vue 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <template>
  2. <div class="l-flex--col center has-border radius has-padding ">
  3. <i
  4. class="o-icon lg u-pointer"
  5. @click="invoke"
  6. />
  7. <div class="has-padding u-color--black u-bold">{{ type }}</div>
  8. <c-dialog
  9. ref="dialog"
  10. size="medium"
  11. :title="settings"
  12. >
  13. <template #default>
  14. <tabbar
  15. :items="tabs"
  16. :active.sync="active"
  17. />
  18. <template v-if="isImmediate">
  19. <div class="l-flex__auto l-flex--col jcenter center has-bottom-padding">
  20. <div class="c-sibling-item--v c-grid-form auto">
  21. <span class="c-grid-form__label u-required">{{ tip }}</span>
  22. <div class="l-flex--row">
  23. <el-input-number
  24. v-model="taskValue"
  25. :min="0"
  26. :max="100"
  27. step-strictly
  28. />&nbsp;%
  29. </div>
  30. </div>
  31. <button
  32. class="c-sibling-item--v o-button"
  33. @click="onInvoke"
  34. >
  35. 应用
  36. </button>
  37. </div>
  38. </template>
  39. <schema-table
  40. v-else
  41. ref="table"
  42. :schema="schema"
  43. :proxy.sync="options"
  44. />
  45. </template>
  46. </c-dialog>
  47. <task-dialog
  48. ref="taskDialog"
  49. :title="dialogTitle"
  50. @confirm="onSave"
  51. >
  52. <span class="c-grid-form__label u-required">{{ tip }}</span>
  53. <div class="l-flex--row">
  54. <el-input-number
  55. v-model="task"
  56. :min="0"
  57. :max="100"
  58. step-strictly
  59. />&nbsp;%
  60. </div>
  61. </task-dialog>
  62. </div>
  63. </template>
  64. <script>
  65. import simpleTaskMixin from './mixins/simple-task'
  66. export default {
  67. name: 'ScreenLight',
  68. mixins: [simpleTaskMixin],
  69. data () {
  70. return {
  71. type: '亮度',
  72. functionKey: 'brightnessControl',
  73. valueKey: 'brigthness',
  74. schema: this.createSchema([
  75. { label: '亮度值(%)', render ({ inputs }) { return inputs[0]?.value } }
  76. ])
  77. }
  78. }
  79. }
  80. </script>
  81. <style lang="scss" scoped>
  82. .o-icon {
  83. background-image: url("~@/assets/icon_screen_light.png");
  84. }
  85. </style>