|
|
@@ -92,8 +92,15 @@ import Map from './components/map.vue'
|
|
|
import warnTitle from '@/assets/warnTitle.png'
|
|
|
import lightChart from './components/lightChart.vue'
|
|
|
import { queryTunnelList } from '@/api/tunnel'
|
|
|
-import { reactive, onMounted } from 'vue'
|
|
|
+import {reactive, onMounted, ref, watch} from 'vue'
|
|
|
+// 单灯控制
|
|
|
+import { updateTunnelLamp } from "@/api/tunnel";
|
|
|
+// 四路控制
|
|
|
+import { deviceSwitch } from "@/api/device";
|
|
|
import {useScreenStore} from "@/pinia/modules/screen";
|
|
|
+import {ElMessage} from "element-plus";
|
|
|
+// 灯光数据
|
|
|
+const lampData = reactive({})
|
|
|
const useScreen = useScreenStore()
|
|
|
|
|
|
const deviceList = reactive([
|
|
|
@@ -112,21 +119,161 @@ const condition = {
|
|
|
regionId: 0,
|
|
|
userId: 1
|
|
|
}
|
|
|
-const jumpScreen = (type) => {
|
|
|
- console.log(type)
|
|
|
+
|
|
|
+// 存储模型数据
|
|
|
+let materialOne = reactive({})
|
|
|
+let materialTwo = reactive({})
|
|
|
+
|
|
|
+// 亮度调整
|
|
|
+const transparency = ref(0)
|
|
|
+const relayList = reactive([])
|
|
|
+const changeTransparency = (e) => {
|
|
|
+ let option = {
|
|
|
+ 0: [0.8, 33, 1],
|
|
|
+ 50: [0.5, 66, 2],
|
|
|
+ 100: [0.2, 100, 3]
|
|
|
+ }
|
|
|
+ materialOne.opacity = option[e][0]
|
|
|
+ if (lampData.switchType === '单灯控制器') {
|
|
|
+ updateTunnelLamp({
|
|
|
+ id: lampData.ID,
|
|
|
+ tunnelSn: lampData.tunnelSn,
|
|
|
+ lampValue1: option[e][1]
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code === 0) {
|
|
|
+ ElMessage.success('已发送')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ let relay = relayList[0].deviceRelays
|
|
|
+ console.log(relayList[0])
|
|
|
+ for (let i = 0; i < relay.length; i++) {
|
|
|
+ relay[i].state = i < option[e][2];
|
|
|
+ }
|
|
|
+ for (let j = 0; j < relay.length; j++) {
|
|
|
+ deviceSwitch({
|
|
|
+ tunnelSn: lampData.tunnelSn,
|
|
|
+ radarId: relayList[0].radarId,
|
|
|
+ relayId: relay[j].relayId,
|
|
|
+ state: relay[j].state
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code === 0) {
|
|
|
+ console.log('发送成功')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const transparencyTwo = ref(0)
|
|
|
+const changeTransparencyTwo = (e) => {
|
|
|
+ let option = {
|
|
|
+ 0: [0.8, 33, 1],
|
|
|
+ 50: [0.5, 66, 2],
|
|
|
+ 100: [0.2, 100, 3]
|
|
|
+ }
|
|
|
+ materialTwo.opacity = option[e][0]
|
|
|
+ if (lampData.switchType === '单灯控制器') {
|
|
|
+ updateTunnelLamp({
|
|
|
+ id: lampData.ID,
|
|
|
+ tunnelSn: lampData.tunnelSn,
|
|
|
+ lampValue2: option[e][1]
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code === 0) {
|
|
|
+ ElMessage.success('已发送')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ let relay = relayList[1].deviceRelays
|
|
|
+ for (let i = 0; i < relay.length; i++) {
|
|
|
+ if (i < option[e][2]) {
|
|
|
+ relay[i].state = true
|
|
|
+ } else {
|
|
|
+ relay[i].state = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (let j = 0; j < relay.length; j++) {
|
|
|
+ deviceSwitch({
|
|
|
+ tunnelSn: lampData.tunnelSn,
|
|
|
+ radarId: relayList[1].radarId,
|
|
|
+ relayId: relay[j].relayId,
|
|
|
+ state: relay[j].state
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code === 0) {
|
|
|
+ console.log('发送成功');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
const parentMethod = (e) => {
|
|
|
console.log('子组件调用了')
|
|
|
console.log(e)
|
|
|
}
|
|
|
+
|
|
|
+const brightness = () => {
|
|
|
+ if (lampData.switchType === '单灯控制器') {
|
|
|
+ let val1 = lampData.lampValue1
|
|
|
+ let val2 = lampData.lampValue2
|
|
|
+ let judge = {
|
|
|
+ 0:[0.8,0],
|
|
|
+ 33: [0.8,0],
|
|
|
+ 66: [0.5,50],
|
|
|
+ 100: [0.2,100],
|
|
|
+ }
|
|
|
+ transparency.value = judge[val1][1]
|
|
|
+ transparencyTwo.value = judge[val1][1]
|
|
|
+ materialOne.opacity = judge[val1][0]
|
|
|
+ materialTwo.opacity = judge[val2][0]
|
|
|
+ } else if(lampData.switchType === '四路控制器') {
|
|
|
+ relayList.length = 0
|
|
|
+ lampData.devices.forEach(item => {
|
|
|
+ if (item.genre === 6) {
|
|
|
+ relayList.push(item)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ let deviceLamp1 = relayList[0].deviceRelays
|
|
|
+ let deviceLamp2 = relayList[1].deviceRelays
|
|
|
+ let count1 = 0
|
|
|
+ let count2 = 0
|
|
|
+ deviceLamp1.forEach(item => {
|
|
|
+ item.state ? count1++ : count1
|
|
|
+ })
|
|
|
+ deviceLamp2.forEach(item => {
|
|
|
+ item.state ? count2++ : count2
|
|
|
+ })
|
|
|
+ let judgeWay = {
|
|
|
+ 0: [0.8,0],
|
|
|
+ 1: [0.8,0],
|
|
|
+ 2: [0.5,50],
|
|
|
+ 3: [0.2,100],
|
|
|
+ 4: [0.2,100]
|
|
|
+ }
|
|
|
+ transparency.value = judgeWay[count1][1]
|
|
|
+ transparencyTwo.value = judgeWay[count2][1]
|
|
|
+ materialOne.opacity = judgeWay[count1][0]
|
|
|
+ materialTwo.opacity = judgeWay[count2][0]
|
|
|
+ }
|
|
|
+}
|
|
|
onMounted(() => {
|
|
|
queryTunnelList(condition).then(res => {
|
|
|
if (res.code === 0) {
|
|
|
useScreen.setTunnelList(res.data)
|
|
|
+ Object.assign(lampData, res.data.list[0])
|
|
|
+ brightness()
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
+
|
|
|
+watch(() => useScreen.currentTunnel, (newValue, oldValue) => {
|
|
|
+ yourMethod(newValue) // 调用你的方法
|
|
|
+})
|
|
|
+
|
|
|
+const yourMethod = (value) => {
|
|
|
+ Object.assign(lampData, value)
|
|
|
+ brightness()
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="less">
|