|
@@ -3,29 +3,43 @@
|
|
|
<div class="scene-box">
|
|
<div class="scene-box">
|
|
|
<div class="top-box">
|
|
<div class="top-box">
|
|
|
<div class="top-center row">
|
|
<div class="top-center row">
|
|
|
- <div v-if="hasPermission('btn:control')" class="button-box" @click="playAnimation(1)">打开前门</div>
|
|
|
|
|
- <div v-if="hasPermission('btn:control')" class="button-box" @click="playAnimation(2)">关闭前门</div>
|
|
|
|
|
- <div v-if="hasPermission('btn:control') && selectData.ndoorcount == '3'" class="button-box" @click="playAnimation(8)">打开中间门</div>
|
|
|
|
|
- <div v-if="hasPermission('btn:control') && selectData.ndoorcount == '3'" class="button-box" @click="playAnimation(9)">关闭中间门</div>
|
|
|
|
|
|
|
+ <div v-if="hasPermission('btn:control')" class="button-box" @click="setControl('frontGateOpen_S', '打开前门')">打开前门</div>
|
|
|
|
|
+ <div v-if="hasPermission('btn:control')" class="button-box" @click="setControl('frontGateClose_S', '关闭前门')">关闭前门</div>
|
|
|
|
|
+ <div v-if="hasPermission('btn:control_stop')" class="button-box" @click="setControl('frontGateStop_S', '暂停前门')">暂停前门</div>
|
|
|
|
|
+ <div v-if="hasPermission('btn:control') && selectData.ndoorcount == '3'" class="button-box" @click="setControl('midGateOpen_S', '打开中间门')"
|
|
|
|
|
+ >打开中间门
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-if="hasPermission('btn:control') && selectData.ndoorcount == '3'"
|
|
|
|
|
+ class="button-box"
|
|
|
|
|
+ @click="setControl('midGateClose_S', '关闭中间门')"
|
|
|
|
|
+ >关闭中间门
|
|
|
|
|
+ </div>
|
|
|
<div
|
|
<div
|
|
|
v-if="hasPermission('btn:control') && (selectData.ndoorcount == '2' || selectData.ndoorcount == '3')"
|
|
v-if="hasPermission('btn:control') && (selectData.ndoorcount == '2' || selectData.ndoorcount == '3')"
|
|
|
class="button-box"
|
|
class="button-box"
|
|
|
- @click="playAnimation(3)"
|
|
|
|
|
|
|
+ @click="setControl('rearGateOpen_S', '打开后门')"
|
|
|
>打开后门
|
|
>打开后门
|
|
|
</div>
|
|
</div>
|
|
|
<div
|
|
<div
|
|
|
v-if="hasPermission('btn:control') && (selectData.ndoorcount == '2' || selectData.ndoorcount == '3')"
|
|
v-if="hasPermission('btn:control') && (selectData.ndoorcount == '2' || selectData.ndoorcount == '3')"
|
|
|
class="button-box"
|
|
class="button-box"
|
|
|
- @click="playAnimation(4)"
|
|
|
|
|
|
|
+ @click="setControl('rearGateClose_S', '关闭后门')"
|
|
|
>关闭后门
|
|
>关闭后门
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-if="hasPermission('btn:control_stop') && (selectData.ndoorcount == '2' || selectData.ndoorcount == '3')"
|
|
|
|
|
+ class="button-box"
|
|
|
|
|
+ @click="setControl('rearGateStop_S', '暂停后门')"
|
|
|
|
|
+ >暂停后门
|
|
|
|
|
+ </div>
|
|
|
<div
|
|
<div
|
|
|
v-if="
|
|
v-if="
|
|
|
hasPermission('btn:totalControl') ||
|
|
hasPermission('btn:totalControl') ||
|
|
|
(selectData['isShowGatesContrl'] == 1 && (selectData.ndoorcount == '2' || selectData.ndoorcount == '3'))
|
|
(selectData['isShowGatesContrl'] == 1 && (selectData.ndoorcount == '2' || selectData.ndoorcount == '3'))
|
|
|
"
|
|
"
|
|
|
class="button-box"
|
|
class="button-box"
|
|
|
- @click="playAnimation(5)"
|
|
|
|
|
|
|
+ @click="setControl('sameTimeOpen', '同时打开')"
|
|
|
>同时打开
|
|
>同时打开
|
|
|
</div>
|
|
</div>
|
|
|
<div
|
|
<div
|
|
@@ -34,19 +48,19 @@
|
|
|
(selectData['isShowGatesContrl'] == 1 && (selectData.ndoorcount == '2' || selectData.ndoorcount == '3'))
|
|
(selectData['isShowGatesContrl'] == 1 && (selectData.ndoorcount == '2' || selectData.ndoorcount == '3'))
|
|
|
"
|
|
"
|
|
|
class="button-box"
|
|
class="button-box"
|
|
|
- @click="playAnimation(6)"
|
|
|
|
|
|
|
+ @click="setControl('sameTimeClose', '同时关闭')"
|
|
|
>同时关闭
|
|
>同时关闭
|
|
|
</div>
|
|
</div>
|
|
|
<template v-if="selectData['gateStyle'] && selectData['gateStyle'].includes('fm_fc')">
|
|
<template v-if="selectData['gateStyle'] && selectData['gateStyle'].includes('fm_fc')">
|
|
|
<template v-if="selectData['nwindownum'] == 4">
|
|
<template v-if="selectData['nwindownum'] == 4">
|
|
|
- <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="playAnimation(10)">A窗控制</div>
|
|
|
|
|
- <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="playAnimation(11)">B窗控制</div>
|
|
|
|
|
- <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="playAnimation(12)">C窗控制</div>
|
|
|
|
|
- <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="playAnimation(13)">D窗控制</div>
|
|
|
|
|
|
|
+ <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="setControl('frontSetValue1', 'A窗控制')">A窗控制</div>
|
|
|
|
|
+ <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="setControl('frontSetValue2', 'B窗控制')">B窗控制</div>
|
|
|
|
|
+ <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="setControl('rearSetValue1', 'C窗控制')">C窗控制</div>
|
|
|
|
|
+ <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="setControl('rearSetValue2', 'D窗控制')">D窗控制</div>
|
|
|
</template>
|
|
</template>
|
|
|
<template v-if="selectData['nwindownum'] == 2">
|
|
<template v-if="selectData['nwindownum'] == 2">
|
|
|
- <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="playAnimation(14)">前窗控制</div>
|
|
|
|
|
- <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="playAnimation(15)">后窗控制</div>
|
|
|
|
|
|
|
+ <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="setControl('frontSetValue', '前窗控制')">前窗控制</div>
|
|
|
|
|
+ <div v-if="hasPermission('btn:controlWindow')" class="button-box" @click="setControl('rearSetValue', '后窗控制')">后窗控制</div>
|
|
|
</template>
|
|
</template>
|
|
|
</template>
|
|
</template>
|
|
|
</div>
|
|
</div>
|
|
@@ -60,7 +74,7 @@
|
|
|
<a-radio :value="item.value" :disabled="true">{{ item.text }}</a-radio>
|
|
<a-radio :value="item.value" :disabled="true">{{ item.text }}</a-radio>
|
|
|
</template>
|
|
</template>
|
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
|
- <div class="button-box" @click="playAnimation(7)">切换模式</div>
|
|
|
|
|
|
|
+ <div class="button-box" @click="setControlMode()">切换模式</div>
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 控制指令是多个,每个状态需要下发单独的指令 -->
|
|
<!-- 控制指令是多个,每个状态需要下发单独的指令 -->
|
|
|
<div class="vent-flex-m row" v-else-if="selectData.contrlMod == 'codeCtrl' && modelList.length > 0">
|
|
<div class="vent-flex-m row" v-else-if="selectData.contrlMod == 'codeCtrl' && modelList.length > 0">
|
|
@@ -70,7 +84,7 @@
|
|
|
<a-radio :value="item.value" :disabled="true">{{ item.text }}</a-radio>
|
|
<a-radio :value="item.value" :disabled="true">{{ item.text }}</a-radio>
|
|
|
</template>
|
|
</template>
|
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
|
- <div class="button-box" v-for="(item, index) in modelList" @click="playAnimation(7, item.value)" :key="index"> {{ item.text }}</div>
|
|
|
|
|
|
|
+ <div class="button-box" v-for="(item, index) in modelList" @click="setControlMode(item.value)" :key="index"> {{ item.text }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 济南嘉鸿远程、就地、自动控制,自动切换,点位为true就是选中状态 -->
|
|
<!-- 济南嘉鸿远程、就地、自动控制,自动切换,点位为true就是选中状态 -->
|
|
|
<div class="vent-flex-m row" v-else-if="selectData.contrlMod == 'jnjhCtrl' && modelList.length > 0">
|
|
<div class="vent-flex-m row" v-else-if="selectData.contrlMod == 'jnjhCtrl' && modelList.length > 0">
|
|
@@ -78,7 +92,7 @@
|
|
|
<a-radio v-model:checked="selectData['autoRoManual']" :disabled="true">远程</a-radio>
|
|
<a-radio v-model:checked="selectData['autoRoManual']" :disabled="true">远程</a-radio>
|
|
|
<a-radio v-model:checked="selectData['autoRoManual1']" :disabled="true">自动</a-radio>
|
|
<a-radio v-model:checked="selectData['autoRoManual1']" :disabled="true">自动</a-radio>
|
|
|
<a-radio v-model:checked="selectData['autoRoManual2']" :disabled="true">手动</a-radio>
|
|
<a-radio v-model:checked="selectData['autoRoManual2']" :disabled="true">手动</a-radio>
|
|
|
- <div class="button-box" @click="playAnimation(7)">模式切换</div>
|
|
|
|
|
|
|
+ <div class="button-box" @click="setControlMode()">模式切换</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="vent-flex-m row" v-else-if="modelList.length > 0">
|
|
<div class="vent-flex-m row" v-else-if="modelList.length > 0">
|
|
|
<div class="control-title">控制模式:</div>
|
|
<div class="control-title">控制模式:</div>
|
|
@@ -87,7 +101,7 @@
|
|
|
<a-radio :value="item.value" :disabled="true">{{ item.text }}</a-radio>
|
|
<a-radio :value="item.value" :disabled="true">{{ item.text }}</a-radio>
|
|
|
</template>
|
|
</template>
|
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
|
- <div class="button-box" v-for="(item, index) in modelList" @click="playAnimation(7, item.value)" :key="index"> {{ item.text }}</div>
|
|
|
|
|
|
|
+ <div class="button-box" v-for="(item, index) in modelList" @click="setControlMode(item.value)" :key="index"> {{ item.text }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div v-if="hasPermission('gate:overhaul')" class="run-type row">
|
|
<div v-if="hasPermission('gate:overhaul')" class="run-type row">
|
|
@@ -466,47 +480,28 @@
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- /** 控制类型枚举 */
|
|
|
|
|
- enum GateControlType {
|
|
|
|
|
- FRONT_GATE_OPEN = 1, // 打开前门
|
|
|
|
|
- FRONT_GATE_CLOSE = 2, // 关闭前门
|
|
|
|
|
- REAR_GATE_OPEN = 3, // 打开后门
|
|
|
|
|
- REAR_GATE_CLOSE = 4, // 关闭后门
|
|
|
|
|
- MID_GATE_OPEN = 8, // 打开中间门
|
|
|
|
|
- MID_GATE_CLOSE = 9, // 关闭中间门
|
|
|
|
|
- GATES_OPEN_TOGETHER = 5, // 同时打开
|
|
|
|
|
- GATES_CLOSE_TOGETHER = 6, // 同时关闭
|
|
|
|
|
- CONTROL_MODE_SWITCH = 7, // 控制模式切换
|
|
|
|
|
- WINDOW_A_CONTROL = 10, // A窗控制
|
|
|
|
|
- WINDOW_B_CONTROL = 11, // B窗控制
|
|
|
|
|
- WINDOW_C_CONTROL = 12, // C窗控制
|
|
|
|
|
- WINDOW_D_CONTROL = 13, // D窗控制
|
|
|
|
|
- FRONT_WINDOW_CONTROL = 14, // 前窗控制
|
|
|
|
|
- REAR_WINDOW_CONTROL = 15, // 后窗控制
|
|
|
|
|
- OVERHAUL_CONTROL = 16, // 检修控制
|
|
|
|
|
- MANUAL_AUTO_MODE_SWITCH = 17, // 手自控制模式切换
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /** 封装通用的模态框打开方法(setControl 模式:点位code直接传参) */
|
|
|
|
|
+ const openGateControlModal = (paramcode: string, title: string) => {
|
|
|
|
|
+ modalType.value = paramcode;
|
|
|
|
|
+ modalTitle.value = title;
|
|
|
|
|
+ modalIsShow.value = true;
|
|
|
|
|
|
|
|
- /** 控制类型-标题映射配置 */
|
|
|
|
|
- const GATE_CONTROL_CONFIG_MAP = {
|
|
|
|
|
- [GateControlType.FRONT_GATE_OPEN]: '打开前门',
|
|
|
|
|
- [GateControlType.FRONT_GATE_CLOSE]: '关闭前门',
|
|
|
|
|
- [GateControlType.REAR_GATE_OPEN]: '打开后门',
|
|
|
|
|
- [GateControlType.REAR_GATE_CLOSE]: '关闭后门',
|
|
|
|
|
- [GateControlType.MID_GATE_OPEN]: '打开中间门',
|
|
|
|
|
- [GateControlType.MID_GATE_CLOSE]: '关闭中间门',
|
|
|
|
|
- [GateControlType.GATES_OPEN_TOGETHER]: '同时打开',
|
|
|
|
|
- [GateControlType.GATES_CLOSE_TOGETHER]: '同时关闭',
|
|
|
|
|
- [GateControlType.CONTROL_MODE_SWITCH]: '控制模式切换',
|
|
|
|
|
- [GateControlType.WINDOW_A_CONTROL]: 'A窗控制',
|
|
|
|
|
- [GateControlType.WINDOW_B_CONTROL]: 'B窗控制',
|
|
|
|
|
- [GateControlType.WINDOW_C_CONTROL]: 'C窗控制',
|
|
|
|
|
- [GateControlType.WINDOW_D_CONTROL]: 'D窗控制',
|
|
|
|
|
- [GateControlType.FRONT_WINDOW_CONTROL]: '前窗控制',
|
|
|
|
|
- [GateControlType.REAR_WINDOW_CONTROL]: '后窗控制',
|
|
|
|
|
- [GateControlType.OVERHAUL_CONTROL]: '检修控制',
|
|
|
|
|
- [GateControlType.MANUAL_AUTO_MODE_SWITCH]: '手动/自动模式切换',
|
|
|
|
|
- } as const;
|
|
|
|
|
|
|
+ // 模拟密码模式下直接执行操作
|
|
|
|
|
+ if (globalConfig?.simulatedPassword) {
|
|
|
|
|
+ handleOK('', paramcode);
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ /** 统一控制入口:点位code + 标题 直接传参(与 windowMonitor 的 setControl 模式一致) */
|
|
|
|
|
+ const setControl = (paramcode: string, title: string) => {
|
|
|
|
|
+ openGateControlModal(paramcode, title);
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ /** 控制模式切换(paramcode 需根据 contrlMod + contrlValue 动态决定) */
|
|
|
|
|
+ const setControlMode = (value?: string) => {
|
|
|
|
|
+ contrlValue = value;
|
|
|
|
|
+ openGateControlModal('modeSwitch', '控制模式切换');
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
const [registerModal, { openModal, closeModal }] = useModal();
|
|
const [registerModal, { openModal, closeModal }] = useModal();
|
|
|
|
|
|
|
@@ -684,145 +679,63 @@
|
|
|
await getCamera(selectRow.deviceID, playerRef, renderPlayer);
|
|
await getCamera(selectRow.deviceID, playerRef, renderPlayer);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /** 封装通用的模态框打开方法 */
|
|
|
|
|
- const openGateControlModal = (
|
|
|
|
|
- controlType: GateControlType | number,
|
|
|
|
|
- customTitle?: string // 自定义标题(可选)
|
|
|
|
|
- ) => {
|
|
|
|
|
- // 优先使用自定义标题,无则从配置读取
|
|
|
|
|
- let finalTitle = customTitle;
|
|
|
|
|
- if (!finalTitle) {
|
|
|
|
|
- const configItem = GATE_CONTROL_CONFIG_MAP[controlType as keyof typeof GATE_CONTROL_CONFIG_MAP];
|
|
|
|
|
- if (configItem) {
|
|
|
|
|
- finalTitle = configItem;
|
|
|
|
|
- } else {
|
|
|
|
|
- message.warning(`未配置控制类型【${controlType}】的标题`);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 统一赋值逻辑
|
|
|
|
|
- modalType.value = String(controlType);
|
|
|
|
|
- modalTitle.value = finalTitle;
|
|
|
|
|
- modalIsShow.value = true;
|
|
|
|
|
-
|
|
|
|
|
- // 如果有模拟密码,则直接执行操作
|
|
|
|
|
- if (globalConfig?.simulatedPassword) {
|
|
|
|
|
- handleOK('', String(controlType));
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
- // 播放动画
|
|
|
|
|
- function playAnimation(handlerState: GateControlType | number, data: any = null) {
|
|
|
|
|
- const value = data;
|
|
|
|
|
- contrlValue = value;
|
|
|
|
|
-
|
|
|
|
|
- // 使用封装的方法打开模态框
|
|
|
|
|
- openGateControlModal(handlerState);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ /** 检修切换 */
|
|
|
const changeOverhaul = (e) => {
|
|
const changeOverhaul = (e) => {
|
|
|
- openGateControlModal(GateControlType.OVERHAUL_CONTROL);
|
|
|
|
|
|
|
+ // 检修值需要在打开模态框前设置(handleOK 中按 toggle 逻辑计算下发值)
|
|
|
|
|
+ openGateControlModal('overhaul', '检修控制');
|
|
|
contrlValue = e;
|
|
contrlValue = e;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ /** 统一下发控制指令(仿 windowMonitor 模式:handlerState 即点位code,特殊情况单独判断) */
|
|
|
function handleOK(passWord, handlerState, value?) {
|
|
function handleOK(passWord, handlerState, value?) {
|
|
|
if (!passWord && !globalConfig?.simulatedPassword) {
|
|
if (!passWord && !globalConfig?.simulatedPassword) {
|
|
|
message.warning('请输入密码');
|
|
message.warning('请输入密码');
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
const data = {
|
|
const data = {
|
|
|
deviceid: selectData.deviceID,
|
|
deviceid: selectData.deviceID,
|
|
|
devicetype: selectData.deviceType,
|
|
devicetype: selectData.deviceType,
|
|
|
paramcode: '',
|
|
paramcode: '',
|
|
|
- value: contrlValue,
|
|
|
|
|
|
|
+ value: value ?? null,
|
|
|
password: passWord || globalConfig?.simulatedPassword,
|
|
password: passWord || globalConfig?.simulatedPassword,
|
|
|
masterComputer: selectData.masterComputer,
|
|
masterComputer: selectData.masterComputer,
|
|
|
};
|
|
};
|
|
|
- let handler = () => {};
|
|
|
|
|
|
|
|
|
|
- switch (handlerState) {
|
|
|
|
|
- case '1': // 打开前门
|
|
|
|
|
- data.paramcode = 'frontGateOpen_S';
|
|
|
|
|
- break;
|
|
|
|
|
- case '2': // 关闭前门
|
|
|
|
|
- data.paramcode = 'frontGateClose_S';
|
|
|
|
|
- break;
|
|
|
|
|
- case '3': // 打开后门
|
|
|
|
|
- data.paramcode = 'rearGateOpen_S';
|
|
|
|
|
- break;
|
|
|
|
|
- case '4': // 关闭后门
|
|
|
|
|
- data.paramcode = 'rearGateClose_S';
|
|
|
|
|
- break;
|
|
|
|
|
- case '8': // 打开中间门
|
|
|
|
|
- data.paramcode = 'midGateOpen_S';
|
|
|
|
|
- break;
|
|
|
|
|
- case '9': // 关闭中间门
|
|
|
|
|
- data.paramcode = 'midGateClose_S';
|
|
|
|
|
- break;
|
|
|
|
|
- case '5': // 打开前后门
|
|
|
|
|
- data.paramcode = 'sameTimeOpen';
|
|
|
|
|
- break;
|
|
|
|
|
- case '6': // 关闭前后门
|
|
|
|
|
- data.paramcode = 'sameTimeClose';
|
|
|
|
|
- break;
|
|
|
|
|
- case '7': // 远程与就地
|
|
|
|
|
- if (selectData.contrlMod == 'codeCtrl') {
|
|
|
|
|
- if (contrlValue == '1') {
|
|
|
|
|
- data.paramcode = 'autoRoManualControl1';
|
|
|
|
|
- } else if (contrlValue == '0') {
|
|
|
|
|
- data.paramcode = 'autoRoManualControl2';
|
|
|
|
|
- } else {
|
|
|
|
|
- data.paramcode = 'autoRoManualControl0';
|
|
|
|
|
- }
|
|
|
|
|
- data.value = '';
|
|
|
|
|
- selectData.autoRoManual = null;
|
|
|
|
|
- } else if (selectData.contrlMod == 'loopCtrl' || selectData.contrlMod == 'jnjhCtrl') {
|
|
|
|
|
- data.paramcode = 'autoRoManualControl';
|
|
|
|
|
- data.value = '';
|
|
|
|
|
- selectData.autoRoManual = null;
|
|
|
|
|
|
|
+ // 特殊:控制模式切换(paramcode 根据 contrlMod + contrlValue 动态决定)
|
|
|
|
|
+ if (handlerState === 'modeSwitch') {
|
|
|
|
|
+ if (selectData.contrlMod == 'codeCtrl') {
|
|
|
|
|
+ if (contrlValue == '1') {
|
|
|
|
|
+ data.paramcode = 'autoRoManualControl1';
|
|
|
|
|
+ } else if (contrlValue == '0') {
|
|
|
|
|
+ data.paramcode = 'autoRoManualControl2';
|
|
|
} else {
|
|
} else {
|
|
|
- data.paramcode = 'autoRoManualControl';
|
|
|
|
|
- data.value = contrlValue;
|
|
|
|
|
- selectData.autoRoManual = null;
|
|
|
|
|
|
|
+ data.paramcode = 'autoRoManualControl0';
|
|
|
}
|
|
}
|
|
|
- break;
|
|
|
|
|
- case '10': // 前(A)窗控制
|
|
|
|
|
- data.paramcode = 'frontSetValue1';
|
|
|
|
|
- data.value = value;
|
|
|
|
|
- break;
|
|
|
|
|
- case '11': // 后(B)窗控制
|
|
|
|
|
- data.paramcode = 'frontSetValue2';
|
|
|
|
|
- data.value = value;
|
|
|
|
|
- break;
|
|
|
|
|
- case '12': // 后(B)窗控制
|
|
|
|
|
- data.paramcode = 'rearSetValue1';
|
|
|
|
|
- data.value = value;
|
|
|
|
|
- break;
|
|
|
|
|
- case '13': // 后(B)窗控制
|
|
|
|
|
- data.paramcode = 'rearSetValue2';
|
|
|
|
|
- data.value = value;
|
|
|
|
|
- break;
|
|
|
|
|
- case '14': // 后(B)窗控制
|
|
|
|
|
- data.paramcode = 'frontSetValue';
|
|
|
|
|
- data.value = value;
|
|
|
|
|
- break;
|
|
|
|
|
- case '15': // 后(B)窗控制
|
|
|
|
|
- data.paramcode = 'rearSetValue';
|
|
|
|
|
- data.value = value;
|
|
|
|
|
- break;
|
|
|
|
|
- case '16': // 检修控制
|
|
|
|
|
- data.paramcode = 'runRoRecondition_S';
|
|
|
|
|
- data.value = selectData['runRoRecondition'] == 0 ? '1' : '0';
|
|
|
|
|
- break;
|
|
|
|
|
- case '17': // 手动自动模式切换
|
|
|
|
|
- data.paramcode = 'manualAutoMode_w';
|
|
|
|
|
- break;
|
|
|
|
|
|
|
+ data.value = '';
|
|
|
|
|
+ } else if (selectData.contrlMod == 'loopCtrl' || selectData.contrlMod == 'jnjhCtrl') {
|
|
|
|
|
+ data.paramcode = 'autoRoManualControl';
|
|
|
|
|
+ data.value = '';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ data.paramcode = 'autoRoManualControl';
|
|
|
|
|
+ data.value = contrlValue;
|
|
|
|
|
+ }
|
|
|
|
|
+ selectData.autoRoManual = null;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 特殊:检修控制(value 取反 toggle)
|
|
|
|
|
+ else if (handlerState === 'overhaul') {
|
|
|
|
|
+ data.paramcode = 'runRoRecondition_S';
|
|
|
|
|
+ data.value = selectData['runRoRecondition'] == 0 ? '1' : '0';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 默认:handlerState 即点位code(setControl 直接传参)
|
|
|
|
|
+ else {
|
|
|
|
|
+ data.paramcode = handlerState;
|
|
|
|
|
+ data.value = value ?? contrlValue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (data.paramcode) {
|
|
if (data.paramcode) {
|
|
|
deviceControlApi(data)
|
|
deviceControlApi(data)
|
|
|
.then((res) => {
|
|
.then((res) => {
|
|
|
- // 模拟时开启
|
|
|
|
|
if (res.success) {
|
|
if (res.success) {
|
|
|
modalIsShow.value = false;
|
|
modalIsShow.value = false;
|
|
|
if (globalConfig.History_Type == 'remote') {
|
|
if (globalConfig.History_Type == 'remote') {
|
|
@@ -972,7 +885,8 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const handleSwitchChange = (checked: boolean) => {
|
|
const handleSwitchChange = (checked: boolean) => {
|
|
|
- playAnimation(17, checked);
|
|
|
|
|
|
|
+ contrlValue = checked;
|
|
|
|
|
+ setControl('manualAutoMode_w', '手动/自动模式切换');
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|