|
@@ -1,695 +0,0 @@
|
|
|
-<template>
|
|
|
- <div class="air">
|
|
|
- <div class="air-top">
|
|
|
- <Switch
|
|
|
- class="switch-btn"
|
|
|
- :size="23"
|
|
|
- :loading="loadingAir || firstLoadingAir"
|
|
|
- :disabled="!userIsControl || loadingAir || firstLoadingAir || disable"
|
|
|
- inactive-color="rgba(196, 196, 196, 0.4)"
|
|
|
- @click="airChange"
|
|
|
- :model-value="airData.isOpen"
|
|
|
- v-if="hasAir"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <!--温度调节-->
|
|
|
- <div class="air-control">
|
|
|
- <div class="control-title">温度调节</div>
|
|
|
- <div class="btn-box">
|
|
|
- <div class="control-btn mr20">
|
|
|
- <img :src="parseImgUrl('envmonitor', 'arrow-top.png')" alt="" />
|
|
|
- </div>
|
|
|
- <div class="control-btn">
|
|
|
- <img :src="parseImgUrl('envmonitor', 'arrow-down.png')" alt="" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="air-control">
|
|
|
- <div class="control-title">风量调节</div>
|
|
|
- <div class="btn-box">
|
|
|
- <div class="control-btn mr20">
|
|
|
- <img class="temp-img" :src="parseImgUrl('envmonitor', 'fengshan.png')" alt="" />
|
|
|
- </div>
|
|
|
- <div class="control-btn">
|
|
|
- <img class="temp-img" :src="parseImgUrl('envmonitor', 'wendu.png')" alt="" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script lang="ts">
|
|
|
-import {
|
|
|
- defineComponent,
|
|
|
- onMounted,
|
|
|
- reactive,
|
|
|
- toRefs,
|
|
|
- computed,
|
|
|
- watch,
|
|
|
- onUnmounted,
|
|
|
- onBeforeMount,
|
|
|
- onBeforeUnmount,
|
|
|
-} from "vue";
|
|
|
-import { Switch, Dialog, Loading, Toast } from "vant";
|
|
|
-import {
|
|
|
- changeTempHttp,
|
|
|
- getEquipmentListHttp,
|
|
|
- getFeedbackDocumentsHttp,
|
|
|
-} from "@/apis/envmonitor";
|
|
|
-import { parseImgUrl } from "@/utils";
|
|
|
-import any = jasmine.any;
|
|
|
-
|
|
|
-export default defineComponent({
|
|
|
- props: {
|
|
|
- temperature: {
|
|
|
- // 空调基本信息
|
|
|
- type: Number,
|
|
|
- default: () => 0,
|
|
|
- },
|
|
|
- hasAir: {
|
|
|
- // 有无空调
|
|
|
- type: Boolean,
|
|
|
- default: () => false,
|
|
|
- },
|
|
|
- airVolumes: {
|
|
|
- // 风量信息
|
|
|
- type: Array,
|
|
|
- default: () => [],
|
|
|
- },
|
|
|
- projectId: {
|
|
|
- type: String,
|
|
|
- default: () => "",
|
|
|
- },
|
|
|
- spaceId: {
|
|
|
- type: String,
|
|
|
- default: () => "",
|
|
|
- },
|
|
|
- userIsControl: {
|
|
|
- type: Boolean,
|
|
|
- default: () => false,
|
|
|
- },
|
|
|
- forceOverTimeFlag: {
|
|
|
- type: Boolean,
|
|
|
- default: () => false,
|
|
|
- },
|
|
|
- disable: {
|
|
|
- type: Boolean,
|
|
|
- default: () => false,
|
|
|
- },
|
|
|
- },
|
|
|
- components: {
|
|
|
- Switch,
|
|
|
- [Dialog.Component.name]: Dialog.Component,
|
|
|
- Loading,
|
|
|
- },
|
|
|
- setup(props, contx) {
|
|
|
- const propsVal = props;
|
|
|
- let airData: any = {
|
|
|
- avg: "", // 算法调节温度(目标值)
|
|
|
- icon: 1, // 固定框文案ID 7 为关机,其它都是开机
|
|
|
- spaceStatus: "", // 固定框文案展示
|
|
|
- notice: "", // 弹框文案展示
|
|
|
- mode: 0, // 模式
|
|
|
- tempSet: 0, // 温度
|
|
|
- isOpen: false, // 空调开关 true 是开
|
|
|
- };
|
|
|
- const feedbackTimer: any = null;
|
|
|
- const airTimer: any = null;
|
|
|
- const domAirOpeen: any = false;
|
|
|
- const proxyData = reactive({
|
|
|
- loadingAir: false,
|
|
|
- distroyFlag: false,
|
|
|
- temperature: props.temperature,
|
|
|
- userIsControl: props.userIsControl,
|
|
|
- forceOverTimeFlag: props.forceOverTimeFlag,
|
|
|
- firstLoadingAir: true,
|
|
|
- spaceId: props.spaceId,
|
|
|
- domAirOpeen: domAirOpeen,
|
|
|
- feedbackTimer: feedbackTimer,
|
|
|
- parseImgUrl: parseImgUrl,
|
|
|
- airData: airData,
|
|
|
- modeName: "",
|
|
|
- showAirVolumeBtn: false, // 是否展示风量调节按钮
|
|
|
- showDialog: false,
|
|
|
- airTimer: airTimer,
|
|
|
- airSetText: {
|
|
|
- // 空调反馈文案
|
|
|
- notice: "",
|
|
|
- remark: [],
|
|
|
- nowImg: "",
|
|
|
- toWhere: "",
|
|
|
- designTemperature: 0,
|
|
|
- },
|
|
|
- // 格式化模式
|
|
|
- formateModel(model: any) {
|
|
|
- if (model) {
|
|
|
- if (model === 1) {
|
|
|
- proxyData.modeName = "制冷";
|
|
|
- } else if (model === 2) {
|
|
|
- proxyData.modeName = "制热";
|
|
|
- } else if (model === 3) {
|
|
|
- proxyData.modeName = "通风";
|
|
|
- } else if (model === 4) {
|
|
|
- proxyData.modeName = "除湿";
|
|
|
- } else {
|
|
|
- proxyData.modeName = "";
|
|
|
- }
|
|
|
- } else {
|
|
|
- proxyData.modeName = "";
|
|
|
- }
|
|
|
- },
|
|
|
- // 获取设备类型(ACATVI)
|
|
|
- getEquipmentListHttp() {
|
|
|
- let params = {
|
|
|
- spaceId: proxyData.spaceId,
|
|
|
- };
|
|
|
- proxyData.showAirVolumeBtn = false;
|
|
|
- let flag: any = true;
|
|
|
- getEquipmentListHttp(params).then((res) => {
|
|
|
- let resData: any = res;
|
|
|
- let data: any = resData ? resData.data : [];
|
|
|
- if (data && data.length) {
|
|
|
- for (let i = 0; i < data.length; i++) {
|
|
|
- let item: any = data[i];
|
|
|
- if (item.equipmentCategory === "ACATVI") {
|
|
|
- // 多联机不展示风量调整
|
|
|
- proxyData.showAirVolumeBtn = false;
|
|
|
- flag = false;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (flag) {
|
|
|
- proxyData.showAirVolumeBtn = true;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- // 定时获取空调状态
|
|
|
- getAirInfoToTimer(timerLong: any = 3000) {
|
|
|
- if (proxyData.airTimer) {
|
|
|
- clearTimeout(proxyData.airTimer);
|
|
|
- }
|
|
|
- proxyData.airTimer = setTimeout(function () {
|
|
|
- if (!proxyData.distroyFlag) {
|
|
|
- proxyData.getAirInfo();
|
|
|
- }
|
|
|
- }, timerLong);
|
|
|
- },
|
|
|
- // 定时调文案的接口
|
|
|
- getFeedbackTimer(btnType: any, id: any) {
|
|
|
- clearTimeout(proxyData.airTimer);
|
|
|
- proxyData.airTimer = null;
|
|
|
- proxyData.feedbackTimer = setTimeout(() => {
|
|
|
- proxyData.getAirInfo("feedback", btnType, id, false); // 调节反馈文案
|
|
|
- }, 3000);
|
|
|
- },
|
|
|
- // 关闭空调的按钮点击的loading状态
|
|
|
- closeLoading() {
|
|
|
- let num: any = 0;
|
|
|
- let interval: any = setInterval(() => {
|
|
|
- if (num > 15 || proxyData.domAirOpeen === proxyData.airData.isOpen) {
|
|
|
- proxyData.loadingAir = false;
|
|
|
- clearInterval(interval);
|
|
|
- }
|
|
|
- num++;
|
|
|
- }, 1000);
|
|
|
- },
|
|
|
- getAirInfo(
|
|
|
- type: string = "",
|
|
|
- btnType: string = "",
|
|
|
- feedbackId: any = "",
|
|
|
- isTimer: boolean = true
|
|
|
- ) {
|
|
|
- let paramObj: any = {
|
|
|
- projectId: propsVal.projectId, // 项目id
|
|
|
- objectId: proxyData.spaceId, // 空间id
|
|
|
- };
|
|
|
-
|
|
|
- if (type === "feedback") {
|
|
|
- paramObj.id = feedbackId;
|
|
|
- }
|
|
|
- console.log("paramObj===");
|
|
|
- getFeedbackDocumentsHttp(paramObj)
|
|
|
- .then((res) => {
|
|
|
- const resData: any = res;
|
|
|
- if (type !== "feedback") {
|
|
|
- if (resData) {
|
|
|
- proxyData.airData = resData;
|
|
|
- proxyData.formateModel(proxyData.airData.mode);
|
|
|
- contx.emit("updateAirTemp", proxyData.airData.tempSet);
|
|
|
- if (proxyData.airData.icon && proxyData.airData.icon === 7) {
|
|
|
- proxyData.airData.isOpen = false;
|
|
|
- proxyData.airData.airImg = parseImgUrl(
|
|
|
- "page-officehome",
|
|
|
- "air_close.png"
|
|
|
- );
|
|
|
- } else {
|
|
|
- if (proxyData.airData.icon && proxyData.airData.icon !== 6) {
|
|
|
- proxyData.airData.isOpen = true;
|
|
|
- proxyData.airData.airImg = parseImgUrl(
|
|
|
- "page-officehome",
|
|
|
- "openair.png"
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // 弹窗
|
|
|
- if (type === "feedback") {
|
|
|
- if (resData.notice) {
|
|
|
- proxyData.airSetText.notice = resData.notice;
|
|
|
- if (resData.remark && resData.remark.length) {
|
|
|
- proxyData.airSetText.remark = resData.remark.split("*");
|
|
|
- }
|
|
|
- if (proxyData.feedbackTimer) {
|
|
|
- clearTimeout(proxyData.feedbackTimer); // 拿到反馈文案清除定时器
|
|
|
- proxyData.getAirInfoToTimer();
|
|
|
- }
|
|
|
- } else {
|
|
|
- proxyData.getFeedbackTimer(btnType, feedbackId);
|
|
|
- }
|
|
|
- } else {
|
|
|
- proxyData.getAirInfoToTimer();
|
|
|
- }
|
|
|
- proxyData.firstLoadingAir = false;
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- proxyData.getAirInfoToTimer();
|
|
|
- proxyData.firstLoadingAir = false;
|
|
|
- proxyData.airData.airImg = parseImgUrl("page-officehome", "air_close.png");
|
|
|
- });
|
|
|
- },
|
|
|
- airChange() {
|
|
|
- if (props.disable) {
|
|
|
- return;
|
|
|
- }
|
|
|
- // 先不更新状态等确认框弹出后再更新状
|
|
|
- if (proxyData.userIsControl) {
|
|
|
- if (!proxyData.loadingAir) {
|
|
|
- proxyData.airComfir();
|
|
|
- } else {
|
|
|
- Toast("指令正在下发中,勿重复操作!");
|
|
|
- }
|
|
|
- } else {
|
|
|
- Toast("您没有当前空间的控制权限!");
|
|
|
- }
|
|
|
- },
|
|
|
- // 确认
|
|
|
- airComfir() {
|
|
|
- const message = proxyData.airData.isOpen ? "要关闭空调吗?" : "要开启空调吗?";
|
|
|
- const confirmBtnText = proxyData.airData.isOpen ? "关闭" : "开启";
|
|
|
- Dialog.confirm({
|
|
|
- cancelButtonText: "取消",
|
|
|
- confirmButtonText: confirmBtnText,
|
|
|
- confirmButtonColor: "$elActiveColor",
|
|
|
- message: message,
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- // 操作空调
|
|
|
- const domAirOpen = !proxyData.airData.isOpen;
|
|
|
- if (proxyData.forceOverTimeFlag && domAirOpen) {
|
|
|
- //需要强制加班
|
|
|
- contx.emit("triggerWork");
|
|
|
- return;
|
|
|
- }
|
|
|
- const itemId = domAirOpen ? 12 : 10; // 12 开启 10关闭
|
|
|
- proxyData.domAirOpeen = domAirOpen;
|
|
|
- let btnTypeDetail = "";
|
|
|
- if (itemId == 12) {
|
|
|
- btnTypeDetail = "openAir";
|
|
|
- } else {
|
|
|
- btnTypeDetail = "closeAir";
|
|
|
- }
|
|
|
- proxyData.loadingAir = true;
|
|
|
- proxyData.closeLoading();
|
|
|
- proxyData.changeAir(itemId, "sw", btnTypeDetail);
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- // on cancel
|
|
|
- });
|
|
|
- },
|
|
|
- // 切换散会的时候手动关闭空调()
|
|
|
- closeScenarioAir() {
|
|
|
- proxyData.changeAir(10, "sw", "closeAir");
|
|
|
- },
|
|
|
- // 更新空调开关状态
|
|
|
- updatAirStatus(btnType: string) {
|
|
|
- // 开启空调后手动调一下状态更新接口
|
|
|
- if (btnType === "sw") {
|
|
|
- proxyData.getAirInfo("", "", "", false);
|
|
|
- }
|
|
|
- },
|
|
|
- // 更新
|
|
|
- updateAirText(btnType: string, val: any) {
|
|
|
- if (btnType !== "sw") {
|
|
|
- proxyData.airSetText.designTemperature = val.designTemperature; // 目标温度
|
|
|
- proxyData.airSetText.toWhere = val.toWhere;
|
|
|
- if (proxyData.airSetText.toWhere == "toCold") {
|
|
|
- proxyData.airSetText.nowImg = "dialog_cooling.svg";
|
|
|
- } else if (proxyData.airSetText.toWhere == "toWarm") {
|
|
|
- proxyData.airSetText.nowImg = "dialog_warmUp.svg";
|
|
|
- } else {
|
|
|
- proxyData.airSetText.nowImg = "icon_wind.svg";
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- // 展示空调反馈弹窗¬
|
|
|
- showAirConditioning(btnType: string, btnTypeDetail: string) {
|
|
|
- // 空调温度和风量调整的时候展示弹窗
|
|
|
- if (btnType !== "sw") {
|
|
|
- proxyData.showDialog = true;
|
|
|
- // 调整空调温度接口
|
|
|
- const defaultAirText: any = {
|
|
|
- toWhere: btnTypeDetail,
|
|
|
- designTemperature: 0,
|
|
|
- };
|
|
|
- proxyData.updateAirText(btnType, defaultAirText);
|
|
|
- }
|
|
|
- },
|
|
|
- // 关闭弹窗
|
|
|
- closeDialog() {
|
|
|
- if (proxyData.feedbackTimer) {
|
|
|
- clearInterval(proxyData.feedbackTimer); // 拿到反馈文案清除定时器
|
|
|
- proxyData.feedbackTimer = null;
|
|
|
- }
|
|
|
- proxyData.getAirInfoToTimer();
|
|
|
- proxyData.showDialog = false;
|
|
|
- },
|
|
|
- changeAir(itemId: number, btnType: string, btnTypeDetail: string) {
|
|
|
- /**
|
|
|
- * 缺少的逻辑:
|
|
|
- * 1.设备位置判断
|
|
|
- * 2.空调温度调整的反馈文案
|
|
|
- */
|
|
|
- // 温度切换的时候调整文案
|
|
|
- proxyData.airSetText.notice = "";
|
|
|
- proxyData.airSetText.remark = [];
|
|
|
- const paramObj = {
|
|
|
- projectId: propsVal.projectId, // 项目id
|
|
|
- objectId: proxyData.spaceId, // 空间id
|
|
|
- valueType: 1, // 固定为1
|
|
|
- itemId: itemId, // 12 开启 10关闭 4 调低温 2 调高温 5 调小风量 6 调大风量
|
|
|
- };
|
|
|
- // 空调温度和风量调整的时候展示弹窗
|
|
|
- proxyData.showAirConditioning(btnType, btnTypeDetail);
|
|
|
- changeTempHttp(paramObj)
|
|
|
- .then((res) => {
|
|
|
- let resData: any = res;
|
|
|
- // 开启和关闭空调之后手动
|
|
|
- // proxyData.updatAirStatus(btnType)
|
|
|
- // 调整温度和风量的时候修改文案
|
|
|
- let airText = {
|
|
|
- toWhere: btnTypeDetail,
|
|
|
- designTemperature: resData.designTemperature,
|
|
|
- };
|
|
|
- proxyData.updateAirText(btnType, airText);
|
|
|
- // 改变温度和风量的时候给弹窗设置文案
|
|
|
- if (btnType !== "sw") {
|
|
|
- // debugger
|
|
|
- if (resData.notice) {
|
|
|
- proxyData.airSetText.notice = resData.notice;
|
|
|
- if (resData.remark && resData.remark.length) {
|
|
|
- proxyData.airSetText.remark = resData.remark.split("*");
|
|
|
- }
|
|
|
- } else {
|
|
|
- proxyData.getFeedbackTimer(btnType, resData.id);
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- proxyData.loadingAir = false;
|
|
|
- });
|
|
|
- },
|
|
|
- });
|
|
|
- watch(
|
|
|
- [() => props, () => props.spaceId],
|
|
|
- (newProps: any, oldProps: any) => {
|
|
|
- if (newProps[1] && newProps[1] != oldProps[1]) {
|
|
|
- // 空间id改变的重新获取值调用接口
|
|
|
- // 定时调空间信息
|
|
|
- proxyData.spaceId = newProps[1];
|
|
|
- proxyData.distroyFlag = false;
|
|
|
- // proxyData.getAirInfoToTimer(0);
|
|
|
- proxyData.getAirInfo();
|
|
|
- // proxyData.getEquipmentListHttp();
|
|
|
- }
|
|
|
- if (newProps[0]) {
|
|
|
- proxyData.temperature = newProps[0].temperature;
|
|
|
- proxyData.userIsControl = newProps[0].userIsControl;
|
|
|
- proxyData.forceOverTimeFlag = newProps[0].forceOverTimeFlag;
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- deep: false,
|
|
|
- immediate: true,
|
|
|
- }
|
|
|
- );
|
|
|
- onBeforeUnmount(() => {
|
|
|
- proxyData.distroyFlag = true;
|
|
|
- if (proxyData.airTimer) {
|
|
|
- clearTimeout(proxyData.airTimer);
|
|
|
- proxyData.airTimer = null;
|
|
|
- }
|
|
|
- if (proxyData.feedbackTimer) {
|
|
|
- clearTimeout(proxyData.feedbackTimer);
|
|
|
- proxyData.feedbackTimer = null;
|
|
|
- }
|
|
|
- });
|
|
|
- onMounted(() => {
|
|
|
- // 获取空调信息
|
|
|
- proxyData.firstLoadingAir = true;
|
|
|
- proxyData.distroyFlag = false;
|
|
|
- proxyData.getAirInfo();
|
|
|
- proxyData.getEquipmentListHttp();
|
|
|
- });
|
|
|
- const airRunImg = computed(() => {
|
|
|
- let imgStr: string = "";
|
|
|
- switch (proxyData.airData.icon) {
|
|
|
- case 1:
|
|
|
- imgStr = parseImgUrl("page-officehome", "temp-keep.png");
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- imgStr = parseImgUrl("page-officehome", "temp_cold.svg");
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- imgStr = parseImgUrl("page-officehome", "temp_sun.png");
|
|
|
- break;
|
|
|
- default:
|
|
|
- imgStr = "";
|
|
|
- break;
|
|
|
- }
|
|
|
- return imgStr;
|
|
|
- });
|
|
|
- return {
|
|
|
- airRunImg,
|
|
|
- ...toRefs(proxyData),
|
|
|
- };
|
|
|
- },
|
|
|
-});
|
|
|
-</script>
|
|
|
-<style lang="scss" scoped>
|
|
|
-.air {
|
|
|
- box-sizing: border-box;
|
|
|
- width: 364px;
|
|
|
- height: 232px;
|
|
|
- border-radius: 24px 24px 24px 50px;
|
|
|
- box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.1);
|
|
|
- backdrop-filter: blur(40px);
|
|
|
- background: rgba(255, 255, 255, 0.2);
|
|
|
-}
|
|
|
-
|
|
|
-.air-top {
|
|
|
- padding-left: 20px;
|
|
|
- padding-bottom: 10px;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
-}
|
|
|
-
|
|
|
-.air-control {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- padding: 10px 0;
|
|
|
- padding-left: 28px;
|
|
|
- padding-right: 15px;
|
|
|
- border-top: 1px solid rgba(196, 196, 196, 0.4);
|
|
|
-
|
|
|
- .control-title {
|
|
|
- flex: 1;
|
|
|
- line-height: 42px;
|
|
|
- font-weight: 500;
|
|
|
- font-size: 12px;
|
|
|
- color: #c4c4c4;
|
|
|
- }
|
|
|
-
|
|
|
- .btn-box {
|
|
|
- flex: 1;
|
|
|
- text-align: right;
|
|
|
- }
|
|
|
-
|
|
|
- .control-btn {
|
|
|
- display: inline-block;
|
|
|
- vertical-align: middle;
|
|
|
- width: 42px;
|
|
|
- height: 42px;
|
|
|
- text-align: center;
|
|
|
- border-radius: 50%;
|
|
|
- background: rgba(196, 196, 196, 0.2);
|
|
|
-
|
|
|
- img {
|
|
|
- width: 13px;
|
|
|
- height: 17px;
|
|
|
- margin: 0 auto;
|
|
|
- margin-top: 12.5px;
|
|
|
- }
|
|
|
-
|
|
|
- .temp-img {
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.dialog-width {
|
|
|
- width: 280px !important;
|
|
|
-}
|
|
|
-
|
|
|
-.air-dialog-content {
|
|
|
- position: relative;
|
|
|
- width: 100%;
|
|
|
- height: 340px;
|
|
|
-
|
|
|
- .dialog-top {
|
|
|
- position: relative;
|
|
|
- height: 70px;
|
|
|
- background: #f3f3f3;
|
|
|
-
|
|
|
- .img-greey {
|
|
|
- background: #c4c4c4;
|
|
|
- }
|
|
|
-
|
|
|
- .img-blue {
|
|
|
- background: $elActiveColor;
|
|
|
- }
|
|
|
-
|
|
|
- .img-red {
|
|
|
- background: #e5574f;
|
|
|
- }
|
|
|
-
|
|
|
- img {
|
|
|
- box-sizing: border-box;
|
|
|
- border-radius: 50%;
|
|
|
- position: absolute;
|
|
|
- left: 50%;
|
|
|
- width: 70px;
|
|
|
- height: 70px;
|
|
|
- padding: 17px;
|
|
|
- transform: translateX(-50%);
|
|
|
- top: 15px;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.dialog-text {
|
|
|
- padding-top: 52px;
|
|
|
- text-align: center;
|
|
|
-
|
|
|
- .air-temp-num {
|
|
|
- font-family: Persagy;
|
|
|
- display: inline-block;
|
|
|
- font-size: 24px;
|
|
|
- font-weight: 400;
|
|
|
- line-height: 29px;
|
|
|
- color: rgba(20, 0, 80, 1);
|
|
|
-
|
|
|
- &.arrow-cooling {
|
|
|
- color: $elActiveColor;
|
|
|
- margin: 0 30px;
|
|
|
- margin-bottom: 70px;
|
|
|
- }
|
|
|
-
|
|
|
- &.arrow-warn {
|
|
|
- color: rgba(229, 87, 79, 1);
|
|
|
- margin: 0 30px;
|
|
|
- margin-bottom: 70px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .air-temp-num-load {
|
|
|
- display: inline-block;
|
|
|
- }
|
|
|
-
|
|
|
- .air-notice {
|
|
|
- padding-top: 10px;
|
|
|
- padding-left: 48px;
|
|
|
- padding-right: 48px;
|
|
|
- text-align: center;
|
|
|
- // display: flex;
|
|
|
- justify-content: center;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-size: 15px;
|
|
|
- font-weight: 400;
|
|
|
- line-height: 21px;
|
|
|
- color: rgba(77, 82, 98, 1);
|
|
|
- span {
|
|
|
- display: block;
|
|
|
- padding-bottom: 5px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .air-temp-load {
|
|
|
- padding-top: 25px;
|
|
|
- }
|
|
|
-
|
|
|
- .air-body-item-num {
|
|
|
- height: 50px;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.dialog-btns {
|
|
|
- position: absolute;
|
|
|
- left: 50%;
|
|
|
- bottom: 30px;
|
|
|
- transform: translateX(-50%);
|
|
|
- text-align: center;
|
|
|
- margin: 0 auto;
|
|
|
- width: 88px;
|
|
|
- height: 46px;
|
|
|
- line-height: 1;
|
|
|
- color: #4d5262;
|
|
|
- background: #ffffff;
|
|
|
- border: 1px solid #c4c4c4;
|
|
|
- border-radius: 30px;
|
|
|
- cursor: pointer;
|
|
|
-
|
|
|
- span {
|
|
|
- height: 46px;
|
|
|
- line-height: 46px;
|
|
|
- display: inline-block;
|
|
|
- }
|
|
|
-}
|
|
|
-</style>
|
|
|
-<style lang="scss">
|
|
|
-.air-dialog-content {
|
|
|
- .van-button_text {
|
|
|
- color: $elActiveColor;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.air {
|
|
|
- .van-loading__spinner {
|
|
|
- color: $elActiveColor !important;
|
|
|
- }
|
|
|
-
|
|
|
- .van-switch__loading {
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- line-height: 1;
|
|
|
- }
|
|
|
-
|
|
|
- .van-switch--disabled {
|
|
|
- opacity: 0.5;
|
|
|
- }
|
|
|
-}
|
|
|
-</style>
|