detail.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <template>
  2. <div class='app-container'>
  3. <el-form :model="form" ref="form" :rules="rules" label-width="auto">
  4. <el-form-item label="大类名称:">
  5. <el-input placeholder="请输入大类名称" />
  6. </el-form-item>
  7. <el-form-item label="设备分类:">
  8. <el-select placeholder="请选择设备分类">
  9. <el-option v-for="item in classOptions" :key="item.id" :value="item.id" :label="item.name" />
  10. </el-select>
  11. </el-form-item>
  12. <el-form-item label="设备类型:">
  13. <el-select placeholder="请选择设备类型">
  14. <el-option v-for="item in typeOptions" :key="item.value" :value="item.value" :label="item.label" />
  15. </el-select>
  16. </el-form-item>
  17. <el-form-item label="是否热门:">
  18. <el-select placeholder="请选择是否热门">
  19. <el-option v-for="item in hotOptions" :key="item.value" :value="item.value" :label="item.label" />
  20. </el-select>
  21. </el-form-item>
  22. <el-form-item label="关联设备:">
  23. <el-select placeholder="请选择要关联的设备">
  24. <el-option />
  25. </el-select>
  26. </el-form-item>
  27. <el-form-item label="可见用户:">
  28. <el-select placeholder="请选择可见用户">
  29. <el-option v-for="item in pushOptions" :key="item.value" :value="item.value" :label="item.label" />
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="指定用户:">
  33. <el-input placeholder="请输入指定用户" />
  34. </el-form-item>
  35. <el-row :gutter="10">
  36. <el-col :span="12">
  37. <el-form-item label="在线图片:">
  38. <Upload listType="picture-card" />
  39. </el-form-item>
  40. </el-col>
  41. <el-col :span="12">
  42. <el-form-item label="离线图片:">
  43. <Upload listType="picture-card" />
  44. </el-form-item>
  45. </el-col>
  46. </el-row>
  47. <el-button type="primary" icon="el-icon-plus" @click="getAdd">新增</el-button>
  48. <div class="children">
  49. <el-form-item label="设备模式:">
  50. <el-select placeholder="请选择设备模式">
  51. <el-option v-for="item in modeOptions" :key="item.value" :value="item.value" :label="item.label" />
  52. </el-select>
  53. </el-form-item>
  54. <el-form-item label="功能权限:">
  55. <el-select placeholder="请选择功能权限">
  56. <el-option v-for="item in functionOptions" :key="item.id" :value="item.id" :label="item.name" />
  57. </el-select>
  58. </el-form-item>
  59. <el-form-item label="连接方式:">
  60. <el-select placeholder="请选择连接方式">
  61. <el-option v-for="item in connectOptions" :key="item.value" :value="item.value" :label="item.label" />
  62. </el-select>
  63. </el-form-item>
  64. <el-row :gutter="30">
  65. <el-col :span="12">
  66. <el-form-item label="连接引导图:">
  67. <Upload listType="picture-card" />
  68. </el-form-item>
  69. </el-col>
  70. <el-col :span="12">
  71. <el-form-item label="配对引导图:">
  72. <Upload listType="picture-card" />
  73. </el-form-item>
  74. </el-col>
  75. </el-row>
  76. <el-form-item label="引导页:">
  77. <Editor :min-height="250" />
  78. </el-form-item>
  79. </div>
  80. </el-form>
  81. <div>
  82. <el-button>取消</el-button>
  83. <el-button type="primary">确定</el-button>
  84. </div>
  85. </div>
  86. </template>
  87. <script>
  88. import { list as classList } from "@/api/device/class";
  89. import { list as functionList } from "@/api/device/function";
  90. import { devModeMixin } from '@/mixin/index'
  91. export default {
  92. mixins: [devModeMixin],
  93. data() {
  94. return {
  95. form: {
  96. id: this.$route.query.id
  97. },
  98. // 校验
  99. rules: {},
  100. // 设备分类
  101. classOptions: [],
  102. // 设备类型
  103. typeOptions: [{
  104. value: 0,
  105. label: '音响'
  106. }, {
  107. value: 1,
  108. label: '耳机'
  109. }, {
  110. value: 2,
  111. label: '穿戴'
  112. }],
  113. // 是否热门
  114. hotOptions: [{
  115. value: 0,
  116. label: '否'
  117. }, {
  118. value: 1,
  119. label: '是'
  120. }],
  121. // 可见用户
  122. pushOptions: [{
  123. value: 1,
  124. label: '全部'
  125. }, {
  126. value: 3,
  127. label: '指定'
  128. }],
  129. // 功能权限
  130. functionOptions: [],
  131. // 设备连接
  132. connectOptions: [{
  133. value: 2,
  134. label: 'UPnP'
  135. }, {
  136. value: 3,
  137. label: 'MQTT'
  138. }],
  139. }
  140. },
  141. mounted() {
  142. this.getClassList()
  143. this.getFunctionList()
  144. if (this.form.id) {
  145. this.getDetail()
  146. }
  147. },
  148. methods: {
  149. // 详情
  150. getDetail() {
  151. detail(this.form.id).then(res => {
  152. if (res.code === 0) {
  153. // this.form.typeList.map((i) => {
  154. // this.modeOptions[i.type - 1].disabled = true;
  155. // });
  156. }
  157. })
  158. },
  159. // 设备分类
  160. getClassList() {
  161. classList({
  162. status: 1,
  163. }).then((res) => {
  164. if (res.code === 0) {
  165. this.classOptions = res.data
  166. }
  167. })
  168. },
  169. // 功能权限
  170. getFunctionList() {
  171. functionList({
  172. isDelete: 0
  173. }).then((res) => {
  174. if (res.code === 0) {
  175. this.functionOptions = res.data
  176. }
  177. })
  178. },
  179. // 新增子表单
  180. getAdd() {
  181. }
  182. }
  183. }
  184. </script>
  185. <style lang="scss" scoped>
  186. .el-form {
  187. width: 550px;
  188. }
  189. .children {
  190. position: relative;
  191. border: 1px solid #e8e8e8;
  192. padding: 25px 25px 0 0;
  193. margin-bottom: 20px;
  194. }
  195. </style>