|  |  | @ -2,13 +2,80 @@ | 
			
		
	
		
			
				
					|  |  |  |   <Dialog v-model="modelVisible" title="设备操作"> | 
			
		
	
		
			
				
					|  |  |  |     <div class='DeviceControlDialog'> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       <ElTabs v-model="activeName" class="tabs"> | 
			
		
	
		
			
				
					|  |  |  |       <ElTabs v-model="activeName" class="tabs" @tab-click="tabClick"> | 
			
		
	
		
			
				
					|  |  |  |         <ElTabPane label="一般模式" name="first"> | 
			
		
	
		
			
				
					|  |  |  |           <Form v-model="formData" class="form" ref="FormConfigRef" :formList="formList1" column="1" | 
			
		
	
		
			
				
					|  |  |  |             labelWidth="120px" /> | 
			
		
	
		
			
				
					|  |  |  |         </ElTabPane> | 
			
		
	
		
			
				
					|  |  |  |         <ElTabPane label="自定义模式" name="second"> | 
			
		
	
		
			
				
					|  |  |  |           <Form class="form" ref="FormConfigRef" :formList="formList2" column="1" labelWidth="120px" /> | 
			
		
	
		
			
				
					|  |  |  |           <div style="display: flex; margin: 20px 0;"> | 
			
		
	
		
			
				
					|  |  |  |             <p style="width: 115px;">工作时长(分):</p> | 
			
		
	
		
			
				
					|  |  |  |             <el-input-number v-model="onWorkStatus2" :min="0" :max="999" label="工作时长(s分):"></el-input-number> | 
			
		
	
		
			
				
					|  |  |  |           </div> | 
			
		
	
		
			
				
					|  |  |  |           <Table :data="tableData"> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="ds" label="段数"></ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="time" width="120" label="时间"> | 
			
		
	
		
			
				
					|  |  |  |               <template slot-scope="scope"> | 
			
		
	
		
			
				
					|  |  |  |                 <div style="display: flex;"> | 
			
		
	
		
			
				
					|  |  |  |                   <el-input-number style="width: 80px;" v-model="scope.row.time" :min="0" :max="999"></el-input-number> | 
			
		
	
		
			
				
					|  |  |  |                   <p>秒</p> | 
			
		
	
		
			
				
					|  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |               </template> | 
			
		
	
		
			
				
					|  |  |  |             </ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="A" label="线路A"> | 
			
		
	
		
			
				
					|  |  |  |               <template slot-scope="scope"> | 
			
		
	
		
			
				
					|  |  |  |                 <el-switch v-model="scope.row.A" active-color="#13ce66" inactive-color="#C9C9C9"> | 
			
		
	
		
			
				
					|  |  |  |                 </el-switch> | 
			
		
	
		
			
				
					|  |  |  |               </template> | 
			
		
	
		
			
				
					|  |  |  |             </ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="B" label="线路B"> | 
			
		
	
		
			
				
					|  |  |  |               <template slot-scope="scope"> | 
			
		
	
		
			
				
					|  |  |  |                 <el-switch v-model="scope.row.B" active-color="#13ce66" inactive-color="#C9C9C9"> | 
			
		
	
		
			
				
					|  |  |  |                 </el-switch> | 
			
		
	
		
			
				
					|  |  |  |               </template> | 
			
		
	
		
			
				
					|  |  |  |             </ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="C" label="线路C"> | 
			
		
	
		
			
				
					|  |  |  |               <template slot-scope="scope"> | 
			
		
	
		
			
				
					|  |  |  |                 <el-switch v-model="scope.row.C" active-color="#13ce66" inactive-color="#C9C9C9"> | 
			
		
	
		
			
				
					|  |  |  |                 </el-switch> | 
			
		
	
		
			
				
					|  |  |  |               </template> | 
			
		
	
		
			
				
					|  |  |  |             </ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="D" label="线路D"> | 
			
		
	
		
			
				
					|  |  |  |               <template slot-scope="scope"> | 
			
		
	
		
			
				
					|  |  |  |                 <el-switch v-model="scope.row.D" active-color="#13ce66" inactive-color="#C9C9C9"> | 
			
		
	
		
			
				
					|  |  |  |                 </el-switch> | 
			
		
	
		
			
				
					|  |  |  |               </template> | 
			
		
	
		
			
				
					|  |  |  |             </ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="E" label="线路E"> | 
			
		
	
		
			
				
					|  |  |  |               <template slot-scope="scope"> | 
			
		
	
		
			
				
					|  |  |  |                 <el-switch v-model="scope.row.E" active-color="#13ce66" inactive-color="#C9C9C9"> | 
			
		
	
		
			
				
					|  |  |  |                 </el-switch> | 
			
		
	
		
			
				
					|  |  |  |               </template> | 
			
		
	
		
			
				
					|  |  |  |             </ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="F" label="线路F"> | 
			
		
	
		
			
				
					|  |  |  |               <template slot-scope="scope"> | 
			
		
	
		
			
				
					|  |  |  |                 <el-switch v-model="scope.row.F" active-color="#13ce66" inactive-color="#C9C9C9"> | 
			
		
	
		
			
				
					|  |  |  |                 </el-switch> | 
			
		
	
		
			
				
					|  |  |  |               </template> | 
			
		
	
		
			
				
					|  |  |  |             </ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="G" label="线路G"> | 
			
		
	
		
			
				
					|  |  |  |               <template slot-scope="scope"> | 
			
		
	
		
			
				
					|  |  |  |                 <el-switch v-model="scope.row.G" active-color="#13ce66" inactive-color="#C9C9C9"> | 
			
		
	
		
			
				
					|  |  |  |                 </el-switch> | 
			
		
	
		
			
				
					|  |  |  |               </template> | 
			
		
	
		
			
				
					|  |  |  |             </ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  |             <ElTableColumn prop="H" label="线路H"> | 
			
		
	
		
			
				
					|  |  |  |               <template slot-scope="scope"> | 
			
		
	
		
			
				
					|  |  |  |                 <el-switch v-model="scope.row.H" active-color="#13ce66" inactive-color="#C9C9C9"> | 
			
		
	
		
			
				
					|  |  |  |                 </el-switch> | 
			
		
	
		
			
				
					|  |  |  |               </template> | 
			
		
	
		
			
				
					|  |  |  |             </ElTableColumn> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           </Table> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         </ElTabPane> | 
			
		
	
		
			
				
					|  |  |  |       </ElTabs> | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
	
		
			
				
					|  |  | @ -25,13 +92,11 @@ | 
			
		
	
		
			
				
					|  |  |  | </template> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | <script> | 
			
		
	
		
			
				
					|  |  |  | import Table from '@screen/components/Table.vue'; | 
			
		
	
		
			
				
					|  |  |  | import Dialog from "@screen/components/Dialog/index.vue"; | 
			
		
	
		
			
				
					|  |  |  | import Button from "@screen/components/Buttons/Button.vue" | 
			
		
	
		
			
				
					|  |  |  | import Form from '@screen/components/FormConfig'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { delay } from "@screen/utils/common.js" | 
			
		
	
		
			
				
					|  |  |  | import request from "@/utils/request"; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { Message } from "element-ui"; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -40,7 +105,8 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |   components: { | 
			
		
	
		
			
				
					|  |  |  |     Dialog, | 
			
		
	
		
			
				
					|  |  |  |     Button, | 
			
		
	
		
			
				
					|  |  |  |     Form | 
			
		
	
		
			
				
					|  |  |  |     Form, | 
			
		
	
		
			
				
					|  |  |  |     Table | 
			
		
	
		
			
				
					|  |  |  |   }, | 
			
		
	
		
			
				
					|  |  |  |   model: { | 
			
		
	
		
			
				
					|  |  |  |     prop: 'visible', | 
			
		
	
	
		
			
				
					|  |  | @ -54,40 +120,77 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |     return { | 
			
		
	
		
			
				
					|  |  |  |       submitting: false, | 
			
		
	
		
			
				
					|  |  |  |       activeName: "first", | 
			
		
	
		
			
				
					|  |  |  |       onWorkStatus2: 0, | 
			
		
	
		
			
				
					|  |  |  |       formData: {}, | 
			
		
	
		
			
				
					|  |  |  |       duan: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T'], | 
			
		
	
		
			
				
					|  |  |  |       tableData: [ | 
			
		
	
		
			
				
					|  |  |  |         // { | 
			
		
	
		
			
				
					|  |  |  |         //   ds: 'A', | 
			
		
	
		
			
				
					|  |  |  |         //   time: 0, | 
			
		
	
		
			
				
					|  |  |  |         //   A: false, | 
			
		
	
		
			
				
					|  |  |  |         //   B: false, | 
			
		
	
		
			
				
					|  |  |  |         //   C: false, | 
			
		
	
		
			
				
					|  |  |  |         //   D: false, | 
			
		
	
		
			
				
					|  |  |  |         //   E: false, | 
			
		
	
		
			
				
					|  |  |  |         //   F: false, | 
			
		
	
		
			
				
					|  |  |  |         //   G: false, | 
			
		
	
		
			
				
					|  |  |  |         //   H: false, | 
			
		
	
		
			
				
					|  |  |  |         // } | 
			
		
	
		
			
				
					|  |  |  |       ], | 
			
		
	
		
			
				
					|  |  |  |       formList1: [ | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           label: "设备模式:", | 
			
		
	
		
			
				
					|  |  |  |           label: "工作模式:", | 
			
		
	
		
			
				
					|  |  |  |           key: "controlType", | 
			
		
	
		
			
				
					|  |  |  |           type: "RadioGroup", | 
			
		
	
		
			
				
					|  |  |  |           default: "00", | 
			
		
	
		
			
				
					|  |  |  |           type: "select", | 
			
		
	
		
			
				
					|  |  |  |           default: "1", | 
			
		
	
		
			
				
					|  |  |  |           options: { | 
			
		
	
		
			
				
					|  |  |  |             type: 'circle', | 
			
		
	
		
			
				
					|  |  |  |             options: [ | 
			
		
	
		
			
				
					|  |  |  |               { | 
			
		
	
		
			
				
					|  |  |  |                 key: "00", | 
			
		
	
		
			
				
					|  |  |  |                 label: "常量", | 
			
		
	
		
			
				
					|  |  |  |                 value: "0", | 
			
		
	
		
			
				
					|  |  |  |                 label: "激光关闭" | 
			
		
	
		
			
				
					|  |  |  |               }, | 
			
		
	
		
			
				
					|  |  |  |               { | 
			
		
	
		
			
				
					|  |  |  |                 key: "01", | 
			
		
	
		
			
				
					|  |  |  |                 label: "闪烁", | 
			
		
	
		
			
				
					|  |  |  |               } | 
			
		
	
		
			
				
					|  |  |  |                 value: "1", | 
			
		
	
		
			
				
					|  |  |  |                 label: "常亮模式" | 
			
		
	
		
			
				
					|  |  |  |               }, | 
			
		
	
		
			
				
					|  |  |  |               { | 
			
		
	
		
			
				
					|  |  |  |                 value: "2", | 
			
		
	
		
			
				
					|  |  |  |                 label: "间隔100ms闪烁模式" | 
			
		
	
		
			
				
					|  |  |  |               }, | 
			
		
	
		
			
				
					|  |  |  |               { | 
			
		
	
		
			
				
					|  |  |  |                 value: "3", | 
			
		
	
		
			
				
					|  |  |  |                 label: "间隔200ms闪烁模式", | 
			
		
	
		
			
				
					|  |  |  |               }, | 
			
		
	
		
			
				
					|  |  |  |               { | 
			
		
	
		
			
				
					|  |  |  |                 value: "4", | 
			
		
	
		
			
				
					|  |  |  |                 label: "间隔500ms闪烁模式", | 
			
		
	
		
			
				
					|  |  |  |               }, | 
			
		
	
		
			
				
					|  |  |  |               { | 
			
		
	
		
			
				
					|  |  |  |                 value: "5", | 
			
		
	
		
			
				
					|  |  |  |                 label: "2次闪烁模式" | 
			
		
	
		
			
				
					|  |  |  |               }, | 
			
		
	
		
			
				
					|  |  |  |               { | 
			
		
	
		
			
				
					|  |  |  |                 value: "6", | 
			
		
	
		
			
				
					|  |  |  |                 label: "SOS模式" | 
			
		
	
		
			
				
					|  |  |  |               }, | 
			
		
	
		
			
				
					|  |  |  |             ], | 
			
		
	
		
			
				
					|  |  |  |           }, | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           label: "操作时长:", | 
			
		
	
		
			
				
					|  |  |  |           label: "工作时长(分):", | 
			
		
	
		
			
				
					|  |  |  |           key: "onWorkStatus", | 
			
		
	
		
			
				
					|  |  |  |           required: true, | 
			
		
	
		
			
				
					|  |  |  |           type: "select", | 
			
		
	
		
			
				
					|  |  |  |           default: 0, | 
			
		
	
		
			
				
					|  |  |  |           type: "inputNumber", | 
			
		
	
		
			
				
					|  |  |  |           options: { | 
			
		
	
		
			
				
					|  |  |  |             placeholder: "请选择", | 
			
		
	
		
			
				
					|  |  |  |             min: 0, | 
			
		
	
		
			
				
					|  |  |  |             max: 999 | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |       ], | 
			
		
	
		
			
				
					|  |  |  |       formList2: [ | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           label: "设备模式:", | 
			
		
	
		
			
				
					|  |  |  |           label: "工作模式:", | 
			
		
	
		
			
				
					|  |  |  |           key: "controlType", | 
			
		
	
		
			
				
					|  |  |  |           type: "RadioGroup", | 
			
		
	
		
			
				
					|  |  |  |           default: "00", | 
			
		
	
	
		
			
				
					|  |  | @ -115,7 +218,7 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           label: "操作时长:", | 
			
		
	
		
			
				
					|  |  |  |           label: "工作时长:", | 
			
		
	
		
			
				
					|  |  |  |           key: "onWorkStatus", | 
			
		
	
		
			
				
					|  |  |  |           required: true, | 
			
		
	
		
			
				
					|  |  |  |           type: "select", | 
			
		
	
	
		
			
				
					|  |  | @ -123,12 +226,21 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |             placeholder: "请选择", | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |       ] | 
			
		
	
		
			
				
					|  |  |  |       ], | 
			
		
	
		
			
				
					|  |  |  |       rules: { | 
			
		
	
		
			
				
					|  |  |  |         onWorkStatus: [ | 
			
		
	
		
			
				
					|  |  |  |           { required: true, message: '工作时长不能为空', trigger: 'blur' }, | 
			
		
	
		
			
				
					|  |  |  |         ], | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   }, | 
			
		
	
		
			
				
					|  |  |  |   computed: { | 
			
		
	
		
			
				
					|  |  |  |     modelVisible: { | 
			
		
	
		
			
				
					|  |  |  |       get() { | 
			
		
	
		
			
				
					|  |  |  |         if (this.visible) { | 
			
		
	
		
			
				
					|  |  |  |           this.deviceId = 'K82+285'; | 
			
		
	
		
			
				
					|  |  |  |           this.initData(); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |         return this.visible | 
			
		
	
		
			
				
					|  |  |  |       }, | 
			
		
	
		
			
				
					|  |  |  |       set(val) { | 
			
		
	
	
		
			
				
					|  |  | @ -136,138 +248,128 @@ export default { | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   }, | 
			
		
	
		
			
				
					|  |  |  |   watch: { | 
			
		
	
		
			
				
					|  |  |  |     modelVisible: { | 
			
		
	
		
			
				
					|  |  |  |       immediate: true, | 
			
		
	
		
			
				
					|  |  |  |       handler(bool) { | 
			
		
	
		
			
				
					|  |  |  |         if (!bool) return; | 
			
		
	
		
			
				
					|  |  |  |   // watch: { | 
			
		
	
		
			
				
					|  |  |  |   //   modelVisible: { | 
			
		
	
		
			
				
					|  |  |  |   //     immediate: true, | 
			
		
	
		
			
				
					|  |  |  |   //     handler(bool) { | 
			
		
	
		
			
				
					|  |  |  |   //       if (!bool) return; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         // this.reDisplay(); | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   }, | 
			
		
	
		
			
				
					|  |  |  |   //       // this.requestURL(); | 
			
		
	
		
			
				
					|  |  |  |   //     } | 
			
		
	
		
			
				
					|  |  |  |   //   } | 
			
		
	
		
			
				
					|  |  |  |   // }, | 
			
		
	
		
			
				
					|  |  |  |   methods: { | 
			
		
	
		
			
				
					|  |  |  |     requestURL(functionId, options = {}) { | 
			
		
	
		
			
				
					|  |  |  |       return new Promise((resolve, reject) => { | 
			
		
	
		
			
				
					|  |  |  |         request.post(`business/device/functions/${this.deviceId}/${functionId}`, options) | 
			
		
	
		
			
				
					|  |  |  |           .then((result) => { | 
			
		
	
		
			
				
					|  |  |  |             if (result.code != 200) return reject(); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             resolve(result.data[0]); | 
			
		
	
		
			
				
					|  |  |  |           }) | 
			
		
	
		
			
				
					|  |  |  |           .catch((err) => { | 
			
		
	
		
			
				
					|  |  |  |             reject(); | 
			
		
	
		
			
				
					|  |  |  |           }); | 
			
		
	
		
			
				
					|  |  |  |     async initData() { | 
			
		
	
		
			
				
					|  |  |  |       //查询模式 | 
			
		
	
		
			
				
					|  |  |  |       let result = await this.requestURL('ASKMD'); | 
			
		
	
		
			
				
					|  |  |  |       if (result.data == 7) { | 
			
		
	
		
			
				
					|  |  |  |         this.activeName = 'second'; | 
			
		
	
		
			
				
					|  |  |  |         this.tabClick(); | 
			
		
	
		
			
				
					|  |  |  |       } else { | 
			
		
	
		
			
				
					|  |  |  |         this.formData.controlType = result.data + "" || '1'; | 
			
		
	
		
			
				
					|  |  |  |         //查询时间 | 
			
		
	
		
			
				
					|  |  |  |         let resultTime = await this.requestURL('ASKTM'); | 
			
		
	
		
			
				
					|  |  |  |         this.formData.onWorkStatus = resultTime.data || 0; | 
			
		
	
		
			
				
					|  |  |  |         this.activeName = 'first'; | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |     async requestURL(functionId, options = {}) { | 
			
		
	
		
			
				
					|  |  |  |       let result = await request({ | 
			
		
	
		
			
				
					|  |  |  |         url: `/business/device/functions/${this.deviceId}/${functionId}`, | 
			
		
	
		
			
				
					|  |  |  |         method: "post", | 
			
		
	
		
			
				
					|  |  |  |         data: options, | 
			
		
	
		
			
				
					|  |  |  |       }); | 
			
		
	
		
			
				
					|  |  |  |       if (result.code != 200) return Message.error(result?.msg); | 
			
		
	
		
			
				
					|  |  |  |       //模式设定:SETMD;模式查询:ASKMD;时间设定:SETTM;时间查询:ASKTM;自定义设置:SETDF;自定义查询:ASKDF | 
			
		
	
		
			
				
					|  |  |  |       console.log('aaaa', result); | 
			
		
	
		
			
				
					|  |  |  |       return result; | 
			
		
	
		
			
				
					|  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |     reDisplay() { | 
			
		
	
		
			
				
					|  |  |  |       this.requestURL(52) | 
			
		
	
		
			
				
					|  |  |  |         .then(async (data) => { | 
			
		
	
		
			
				
					|  |  |  |           await delay(0); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           const formData = this.$refs.FormConfigRef?.formData; | 
			
		
	
		
			
				
					|  |  |  |     async tabClick() { | 
			
		
	
		
			
				
					|  |  |  |       if (this.activeName == 'second') { | 
			
		
	
		
			
				
					|  |  |  |         //查询自定义模式 | 
			
		
	
		
			
				
					|  |  |  |         let result = await request({ | 
			
		
	
		
			
				
					|  |  |  |           url: `/business/device/properties/latest/${this.deviceId}`, | 
			
		
	
		
			
				
					|  |  |  |           method: "get", | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |         if (result.code != 200) return Message.error(result?.msg); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           formData.controlType = data.mode; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           switch (data.mode) { | 
			
		
	
		
			
				
					|  |  |  |             case "00": | 
			
		
	
		
			
				
					|  |  |  |               formData.onWorkStatus = data.onWorkStatus; | 
			
		
	
		
			
				
					|  |  |  |               formData.inWorkStatus = data.inWorkStatus; | 
			
		
	
		
			
				
					|  |  |  |               break; | 
			
		
	
		
			
				
					|  |  |  |             case "01": | 
			
		
	
		
			
				
					|  |  |  |             case "02": | 
			
		
	
		
			
				
					|  |  |  |               await this.requestURL("3C") | 
			
		
	
		
			
				
					|  |  |  |                 .then((data2) => { | 
			
		
	
		
			
				
					|  |  |  |                   formData.onWorkStatus = data2.onWorkStatus; | 
			
		
	
		
			
				
					|  |  |  |                   formData.inWorkStatus = data2.inWorkStatus; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                   if (data.mode === '01') | 
			
		
	
		
			
				
					|  |  |  |                     formData.displayTime = [data.startDisplay, data.endDisplay]; | 
			
		
	
		
			
				
					|  |  |  |                 }) | 
			
		
	
		
			
				
					|  |  |  |                 .catch(() => { }); | 
			
		
	
		
			
				
					|  |  |  |               break; | 
			
		
	
		
			
				
					|  |  |  |         this.tableData = []; | 
			
		
	
		
			
				
					|  |  |  |         let tData = []; | 
			
		
	
		
			
				
					|  |  |  |         result.data.forEach(item => { | 
			
		
	
		
			
				
					|  |  |  |           if (item.property == 'TM') { | 
			
		
	
		
			
				
					|  |  |  |             this.onWorkStatus2 = item.value; | 
			
		
	
		
			
				
					|  |  |  |           } else if (item.property == 'MD') { | 
			
		
	
		
			
				
					|  |  |  |           } else { | 
			
		
	
		
			
				
					|  |  |  |             let data = JSON.parse(item.value || {}); | 
			
		
	
		
			
				
					|  |  |  |             tData.push({ ...data, ds: item.property }) | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           this.oldFormData = { ...formData }; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         }) | 
			
		
	
		
			
				
					|  |  |  |         this.tableData = tData; | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |     handleSubmit() { | 
			
		
	
		
			
				
					|  |  |  |       const result = {}, formData = this.$refs.FormConfigRef?.formData; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       result.mode = formData.controlType; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       delete result.controlType; | 
			
		
	
		
			
				
					|  |  |  |     async handleSubmit() { | 
			
		
	
		
			
				
					|  |  |  |       if (this.activeName == 'first') {//一般模式 | 
			
		
	
		
			
				
					|  |  |  |         this.$refs.FormConfigRef.validate().then(async (formData) => { | 
			
		
	
		
			
				
					|  |  |  |           console.log('formData', formData); | 
			
		
	
		
			
				
					|  |  |  |           //设定模式 | 
			
		
	
		
			
				
					|  |  |  |           await this.requestURL('SETMD', { SET: formData.controlType }) | 
			
		
	
		
			
				
					|  |  |  |           //设定时长 | 
			
		
	
		
			
				
					|  |  |  |           let res = await this.requestURL('SETTM', { SET: formData.onWorkStatus }) | 
			
		
	
		
			
				
					|  |  |  |           console.log('res', res) | 
			
		
	
		
			
				
					|  |  |  |           if (res.code == 200) { | 
			
		
	
		
			
				
					|  |  |  |             Message.success('设置成功!'); | 
			
		
	
		
			
				
					|  |  |  |             this.$emit('update:value', false) | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |       } else if (this.activeName == 'second') {//自定义模式 | 
			
		
	
		
			
				
					|  |  |  |         let rData = []; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       if (result.mode === '01') { | 
			
		
	
		
			
				
					|  |  |  |         if (!formData.displayTime?.length) return Message.error(`时间不能为空!`); | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |         this.tableData.forEach((it, index) => { | 
			
		
	
		
			
				
					|  |  |  |           rData.push({ | 
			
		
	
		
			
				
					|  |  |  |             order: 7, | 
			
		
	
		
			
				
					|  |  |  |             time: it.time, | 
			
		
	
		
			
				
					|  |  |  |             numberOfSegments: this.duan[index], | 
			
		
	
		
			
				
					|  |  |  |             A: Number(it.A), | 
			
		
	
		
			
				
					|  |  |  |             B: Number(it.B), | 
			
		
	
		
			
				
					|  |  |  |             C: Number(it.C), | 
			
		
	
		
			
				
					|  |  |  |             D: Number(it.D), | 
			
		
	
		
			
				
					|  |  |  |             E: Number(it.E), | 
			
		
	
		
			
				
					|  |  |  |             F: Number(it.F), | 
			
		
	
		
			
				
					|  |  |  |             G: Number(it.G), | 
			
		
	
		
			
				
					|  |  |  |             H: Number(it.H), | 
			
		
	
		
			
				
					|  |  |  |           }) | 
			
		
	
		
			
				
					|  |  |  |         }) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       if (!formData.onWorkStatus || !formData.inWorkStatus) return Message.error(`工作状态不能为空!`); | 
			
		
	
		
			
				
					|  |  |  |         //设定自定义模式 | 
			
		
	
		
			
				
					|  |  |  |         await request({ | 
			
		
	
		
			
				
					|  |  |  |           url: `/business/device/batchLaserFatigueInvokedFunction`, | 
			
		
	
		
			
				
					|  |  |  |           method: "post", | 
			
		
	
		
			
				
					|  |  |  |           data: { | 
			
		
	
		
			
				
					|  |  |  |             deviceId: this.deviceId, | 
			
		
	
		
			
				
					|  |  |  |             functionId: 'SETDF', | 
			
		
	
		
			
				
					|  |  |  |             params: rData | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |         //设定时长 | 
			
		
	
		
			
				
					|  |  |  |         let res = await this.requestURL('SETTM', { SET: this.onWorkStatus2 }); | 
			
		
	
		
			
				
					|  |  |  |         if (res.code == 200) { | 
			
		
	
		
			
				
					|  |  |  |           Message.success('设置成功!') | 
			
		
	
		
			
				
					|  |  |  |           this.$emit('update:value', false) | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       if (["01", "02"].includes(result.mode)) { | 
			
		
	
		
			
				
					|  |  |  |         if (["04", "00"].includes(formData.onWorkStatus)) return Message.error(`上行工作状态不能选择当前类型!`); | 
			
		
	
		
			
				
					|  |  |  |         if (["04", "00"].includes(formData.inWorkStatus)) return Message.error(`下行工作状态不能选择当前类型!`); | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       result.onWorkStatus = formData.onWorkStatus; | 
			
		
	
		
			
				
					|  |  |  |       result.inWorkStatus = formData.inWorkStatus; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       this.submitting = true; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       // this.submitting = false; | 
			
		
	
		
			
				
					|  |  |  |       // return; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       /** | 
			
		
	
		
			
				
					|  |  |  |        * 接口 地址 | 
			
		
	
		
			
				
					|  |  |  |        * | 
			
		
	
		
			
				
					|  |  |  |        * https://www.showdoc.com.cn/2450725213006196/10877717880262686 | 
			
		
	
		
			
				
					|  |  |  |        */ | 
			
		
	
		
			
				
					|  |  |  |       let promise = []; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       switch (result.mode) { | 
			
		
	
		
			
				
					|  |  |  |         case "00": | 
			
		
	
		
			
				
					|  |  |  |           promise.push(this.requestURL("51", result)) | 
			
		
	
		
			
				
					|  |  |  |           break; | 
			
		
	
		
			
				
					|  |  |  |         case "01": | 
			
		
	
		
			
				
					|  |  |  |         case "02": | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           const options = { mode: result.mode }; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           if (result.mode === '01') { | 
			
		
	
		
			
				
					|  |  |  |             options.startDisplayTime = formData.displayTime[0]; | 
			
		
	
		
			
				
					|  |  |  |             options.endDisplayTime = formData.displayTime[1]; | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           promise.push( | 
			
		
	
		
			
				
					|  |  |  |             this.requestURL("30", { | 
			
		
	
		
			
				
					|  |  |  |               onWorkStatus: result.onWorkStatus, | 
			
		
	
		
			
				
					|  |  |  |               inWorkStatus: result.inWorkStatus, | 
			
		
	
		
			
				
					|  |  |  |             }), | 
			
		
	
		
			
				
					|  |  |  |             this.requestURL("51", options), | 
			
		
	
		
			
				
					|  |  |  |           ) | 
			
		
	
		
			
				
					|  |  |  |           break; | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |       Promise.all(promise) | 
			
		
	
		
			
				
					|  |  |  |         .then(() => { | 
			
		
	
		
			
				
					|  |  |  |           this.modelVisible = false; | 
			
		
	
		
			
				
					|  |  |  |         }) | 
			
		
	
		
			
				
					|  |  |  |         .catch((err) => { | 
			
		
	
		
			
				
					|  |  |  |           console.log("%c [ err ]-110-「DeviceControlDialog.vue」", "font-size:15px; background:#547bf2; color:#98bfff;", err); | 
			
		
	
		
			
				
					|  |  |  |           Message.error(`设备操作失败!`); | 
			
		
	
		
			
				
					|  |  |  |         }) | 
			
		
	
		
			
				
					|  |  |  |         .finally(() => { | 
			
		
	
		
			
				
					|  |  |  |           this.submitting = false; | 
			
		
	
		
			
				
					|  |  |  |         }) | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   }, | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | </script> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | <style lang='scss' scoped> | 
			
		
	
		
			
				
					|  |  |  | .DeviceControlDialog { | 
			
		
	
		
			
				
					|  |  |  |   width: 450px; | 
			
		
	
		
			
				
					|  |  |  |   height: 210px; | 
			
		
	
		
			
				
					|  |  |  |   width: 850px; | 
			
		
	
		
			
				
					|  |  |  |   min-height: 410px; | 
			
		
	
		
			
				
					|  |  |  |   display: flex; | 
			
		
	
		
			
				
					|  |  |  |   flex-direction: column; | 
			
		
	
		
			
				
					|  |  |  |   gap: 15px; | 
			
		
	
	
		
			
				
					|  |  | 
 |