scdctrl.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <!-- 杀虫灯控制 -->
  2. <template>
  3. <div class=''>
  4. <div class="equipId">设备ID:{{equipId}}</div>
  5. <el-form
  6. ref="equipContrlRef"
  7. :model="equipContrlForm"
  8. label-position="top"
  9. label-width="150px"
  10. >
  11. <el-form-item label="设备开关:" prop="ds">
  12. <el-select v-model="equipContrlForm.ds">
  13. <el-option label="开机" :value="1"></el-option>
  14. <el-option label="关机" :value="0"></el-option>
  15. </el-select>
  16. </el-form-item>
  17. <el-form-item label="定时模式:" prop="timctrl">
  18. <el-select v-model="equipContrlForm.timctrl" placeholder="定时模式">
  19. <el-option label="光控" :value="0"></el-option>
  20. <el-option label="时控" :value="1"></el-option>
  21. </el-select>
  22. </el-form-item>
  23. <el-form-item
  24. v-if="equipContrlForm.timctrl == 1"
  25. label="开始结束时间:"
  26. >
  27. <el-time-select
  28. placeholder="起始时间"
  29. v-model="equipContrlForm.st"
  30. default-value="00:00"
  31. :picker-options="{
  32. start: '00:00',
  33. step: '01:00',
  34. end: '24:00',
  35. }"
  36. ></el-time-select>
  37. -
  38. <el-time-select
  39. placeholder="结束时间"
  40. v-model="equipContrlForm.et"
  41. default-value="00:00"
  42. :picker-options="{
  43. start: '00:00',
  44. step: '01:00',
  45. end: '24:00',
  46. }"
  47. ></el-time-select>
  48. </el-form-item>
  49. <el-form-item
  50. v-if="equipContrlForm.timctrl != 1"
  51. label="定时时长(h):"
  52. prop="tt"
  53. >
  54. <el-select v-model="equipContrlForm.tt" placeholder="定时时长">
  55. <el-option label="常亮" :value="0"></el-option>
  56. <el-option :label="1" :value="1"></el-option>
  57. <el-option :label="2" :value="2"></el-option>
  58. <el-option :label="3" :value="3"></el-option>
  59. <el-option :label="4" :value="4"></el-option>
  60. <el-option :label="5" :value="5"></el-option>
  61. <el-option :label="6" :value="6"></el-option>
  62. <el-option :label="7" :value="7"></el-option>
  63. </el-select>
  64. </el-form-item>
  65. <el-form-item label="上传时间间隔(min):" prop="dattim">
  66. <div class="sliderParent">
  67. <div class="block">
  68. <el-slider
  69. :min="10"
  70. :step="10"
  71. :max="120"
  72. v-model="equipContrlForm.dattim"
  73. show-input
  74. ></el-slider>
  75. </div>
  76. </div>
  77. </el-form-item>
  78. <el-form-item label="自清虫定时(min):" prop="clt">
  79. <div class="sliderParent">
  80. <div class="block">
  81. <el-slider
  82. :min="10"
  83. :max="120"
  84. v-model="equipContrlForm.clt"
  85. show-input
  86. ></el-slider>
  87. </div>
  88. </div>
  89. </el-form-item>
  90. <el-form-item class="handAddFormBtn">
  91. <el-button type="blueInfo" size="small" @click="equipControlSubm"
  92. >确定</el-button
  93. >
  94. <el-button type="grayInfo" size="small" @click="resetForm()">取消</el-button
  95. >
  96. </el-form-item>
  97. </el-form>
  98. </div>
  99. </template>
  100. <script>
  101. //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
  102. //例如:import 《组件名称》 from '《组件路径》';
  103. export default {
  104. props: ["equipId", "equipType","d_id"],
  105. //import引入的组件需要注入到对象中才能使用
  106. components: {},
  107. data() {
  108. //这里存放数据
  109. return {
  110. equipContrlForm: {
  111. st: "",
  112. et: "",
  113. ds: "",
  114. ts: "",
  115. tt: "",
  116. dattim: 10,
  117. clt: 10,
  118. timctrl: "",
  119. },
  120. equipContrlForm2: "{}",
  121. };
  122. },
  123. //监听属性 类似于data概念
  124. computed: {},
  125. //监控data中的数据变化
  126. watch: {},
  127. //方法集合
  128. methods: {
  129. //设备控制
  130. EquipControl() {
  131. this.$axios({
  132. method: "POST",
  133. url:
  134. "/api/api_gateway?method=forecast.send_control.device_control_info",
  135. data: this.qs.stringify({ d_id:this.d_id, cmd: "paramconf" }),
  136. }).then((res) => {
  137. if (res.data.data && Object.keys(res.data.data).length > 0) {
  138. let data = res.data.data;
  139. data.st =
  140. data.st && data.st < 10 ? "0" + data.st + ":00" : data.st + ":00";
  141. data.et =
  142. data.et && data.et < 10 ? "0" + data.et + ":00" : data.et + ":00";
  143. data.clt = Number(data.clt);
  144. this.equipContrlForm = data;
  145. this.equipContrlForm2 = JSON.stringify(data);
  146. }
  147. });
  148. },
  149. equipControlSubm() {
  150. let obj = this.equipContrlForm;
  151. obj.st =
  152. obj.st && obj.st.slice(0, 2).charAt(0) != "0"
  153. ? obj.st.slice(0, 2)
  154. : obj.st.slice(1, 2);
  155. obj.et =
  156. obj.et && obj.et.slice(0, 2).charAt(0) != "0"
  157. ? obj.et.slice(0, 2)
  158. : obj.et.slice(1, 2);
  159. this.$axios({
  160. method: "POST",
  161. url: "/api/api_gateway?method=forecast.send_control.device_control",
  162. data: this.qs.stringify({
  163. device_type_id: 2,
  164. d_id: this.d_id,
  165. config: JSON.stringify(obj),
  166. }),
  167. }).then((res) => {
  168. if (res.data.message == "") {
  169. this.$message.success("设备控制修改成功");
  170. } else {
  171. his.$message.error("设备控制修改失败");
  172. }
  173. this.equipControlDialogVisible = false;
  174. });
  175. },
  176. resetForm() {
  177. if(this.equipContrlForm2){
  178. this.equipContrlForm = JSON.parse(this.equipContrlForm2);
  179. }else{
  180. this.equipContrlForm={
  181. st: "",
  182. et: "",
  183. ds: "",
  184. ts: "",
  185. tt: "",
  186. dattim: 10,
  187. clt: 10,
  188. timctrl: "",
  189. }
  190. }
  191. }
  192. },
  193. //生命周期 - 创建完成(可以访问当前this实例)
  194. created() {
  195. },
  196. //生命周期 - 挂载完成(可以访问DOM元素)
  197. mounted() {
  198. this.EquipControl()
  199. },
  200. beforeCreate() {}, //生命周期 - 创建之前
  201. beforeMount() {}, //生命周期 - 挂载之前
  202. beforeUpdate() {}, //生命周期 - 更新之前
  203. updated() {}, //生命周期 - 更新之后
  204. beforeDestroy() {}, //生命周期 - 销毁之前
  205. destroyed() {}, //生命周期 - 销毁完成
  206. activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
  207. }
  208. </script>
  209. <style scoped lang="less">
  210. .equipId{
  211. line-height: 33px;
  212. text-align: center;
  213. background: #eee;
  214. }
  215. .handAddFormBtn{
  216. margin-top: 20px;
  217. text-align: right;
  218. }
  219. // 时间input框
  220. /deep/.el-date-editor.el-input,
  221. /deep/.el-date-editor.el-input__inner{
  222. width: 177px;
  223. }
  224. </style>