| | |
| | | <template> |
| | | <div :class="update()" :style="{ left: left, top: top, marginBottom: 0 + 'px', marginTop: 0 + 'px' }" |
| | | <div :class="update" :style="{ left: left, top: top, marginBottom: 0 + 'px', marginTop: 15 + 'px' }" |
| | | @click="mouseClick" v-loading.fullscreen.lock="fullscreenLoading"> |
| | | <img v-if="imgType === '2'" src="../../public/lines.png" /> |
| | | <img v-if="imgType === '1'" src="../../public/lines2.png" /> |
| | | <label v-if="equipNo" class="equip-no">{{ equipNo }}</label> |
| | | </div> |
| | | <el-dialog v-model="dialogVisible" title="è¾éçº¿ä¿¡æ¯æ¥ç" :before-close="handleClose"> |
| | | <el-form ref="$form" :model="lineItemInfo" label-position="left" label-width="100px" size="medium"> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="设å¤ç¼å·ï¼"> |
| | | <j-el-description :value="equipNo" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="æ¯å¦æç:"> |
| | | <j-el-description :value="lineItemInfo.inStock" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä»»å¡å·:"> |
| | | <j-el-description :value="lineItemInfo.taskNumm" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="æ¥è¦ä»£ç ï¼"> |
| | | <j-el-description :value="lineItemInfo.alarm" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </el-form><el-divider /> |
| | | <h4 style="margin-bottom: 20px;">æå¨æä½</h4> |
| | | <el-form ref="form" :model="form" label-width="100px"> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä»» å¡ å½ ä»¤" prop="TargetAddress"> |
| | | <el-select size="large" v-model="form.TaskType" placeholder="è¯·éæ©ä»»å¡å½ä»¤"> |
| | | <el-option label="å
¥åº" value="1" /> |
| | | <el-option label="åºåº" value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä¸ä¸ç®æ å°å:"> |
| | | <el-input size="large" v-model="form.TargetAddress" placeholder="请è¾å
¥ä¸ä¸ç®æ å°å" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-divider /> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="primary" size="small" plain @click="SendCommand"> |
| | | <i class="el-icon-check">åéå½ä»¤</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="warning" size="small" plain @click="ConveyorLineReset"> |
| | | <i class="el-icon-check">å¤ä½</i> |
| | | </el-button> |
| | | |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineEmergencyStop"> |
| | | <i class="el-icon-check">忢</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineReturn"> |
| | | <i class="el-icon-check">éå</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineCancel"> |
| | | <i class="el-icon-check">åæ¶ä»»å¡</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineInitialize"> |
| | | <i class="el-icon-check">å·¥ä½åå§å</i> |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">åæ¶</el-button> |
| | | <el-button type="primary" @click="dialogVisible = false"> |
| | | 确认 |
| | | </el-button> |
| | | <el-dialog v-model="dialogVisible" :before-close="handleClose" width="520px" class="modern-dialog"> |
| | | <div class="dialog-header"> |
| | | <h3 class="dialog-title">è¾é线信æ¯</h3> |
| | | </div> |
| | | <div class="dialog-content"> |
| | | <div class="info-list"> |
| | | <div class="info-item"> |
| | | <span class="item-label">设å¤ç¼å·</span> |
| | | <span class="item-value">{{ equipNo || 'æ ' }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="item-label">ä»»å¡å·</span> |
| | | <span class="item-value">{{ ConveyorLineInfo.TaskNum || 'æ ' }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="item-label">æ¯å¦æç</span> |
| | | <span class="item-value">{{ ConveyorLineInfo.HasGoods || 'æ ' }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="item-label">æçæ¡ç </span> |
| | | <span class="item-value">{{ ConveyorLineInfo.PalletCode || 'æ ' }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="item-label">ç¶æ</span> |
| | | <span :class="['item-value', statusClass]">{{ ConveyorLineInfo.Status || 'æ ' }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="item-label">å½ä»¤</span> |
| | | <span class="item-value">{{ ConveyorLineInfo.Command || 'æ ' }}</span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | |
| | | left: "500px", |
| | | top: "400px", |
| | | dialogVisible: false, |
| | | lineItemInfo: { |
| | | inStock: "", |
| | | taskNum: "", |
| | | alarm: "", |
| | | fullscreenLoading: false, |
| | | timer1: null, |
| | | hasGoods: false, |
| | | isAlarm: false, |
| | | ConveyorLineInfo: { |
| | | TaskNum: "", |
| | | HasGoods: "", |
| | | Status: "", |
| | | Command: "", |
| | | PalletCode: "", |
| | | }, |
| | | form: { |
| | | TaskType: "", |
| | | TargetAddress: "", |
| | | DeviceCode: "", |
| | | }, |
| | | Map: { |
| | | Command: { |
| | | 0: "æ å½ä»¤", |
| | | 1: "é就绪ï¼ä¸æ§è¡ä¸åå½ä»¤ï¼", |
| | | 2: "åè´§ç«å°å·¥ä½å°±ç»ªï¼ææï¼", |
| | | 3: "æ¾è´§ç«å°å·¥ä½å°±ç»ªï¼æ æï¼", |
| | | 4: "æ¾è´§ç«å°å·¥ä½å°±ç»ªï¼ææï¼", |
| | | 5: "æ«ç å·¥ä½å°±ç»ª", |
| | | 6: "ä»»å¡å·¥ä½å°±ç»ª", |
| | | 7: "ç³è¯·ææ¡", |
| | | 8: "ææ¡å°ä½", |
| | | 9: "æ§è¡å½ä»¤ä¸" |
| | | }, |
| | | Status: { |
| | | 0: "è±æºä¸", |
| | | 1: "æå¨å¾
æº", |
| | | 2: "èªå¨å¾
æº", |
| | | 3: "设å¤è¿è¡", |
| | | 4: "è®¾å¤æ
é" |
| | | } |
| | | }, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | const axisX = (this.positionX - 1) * 40 + 100; |
| | | const axisX = (this.positionX - 1) * 60 + 100; |
| | | const axisY = (this.positionY - 1) + 50; |
| | | this.$nextTick(() => { |
| | | this.left = `${axisX}px`; |
| | | this.top = `${axisY}px`; |
| | | }); |
| | | // å¯å¨å®æ¶å¨ï¼æ¯ç§æ´æ°ä¸æ¬¡æ°æ® |
| | | this.timer1 = setInterval(() => { |
| | | this.updateAlarmStatus(); |
| | | }, 1000); |
| | | }, |
| | | beforeUnmount() { |
| | | // æ¸
é¤å®æ¶å¨ |
| | | if (this.timer1) { |
| | | clearInterval(this.timer1); |
| | | this.timer1 = null; |
| | | } |
| | | }, |
| | | watch: { |
| | | '$root.conveyorLineDetails': { |
| | | handler() { |
| | | this.updateAlarmStatus(); |
| | | }, |
| | | deep: true, |
| | | immediate: true |
| | | } |
| | | }, |
| | | methods: { |
| | | updateAlarmStatus() { |
| | | const equipNoStr = String(this.equipNo); |
| | | if (this.$root.conveyorLineDetails && this.$root.conveyorLineDetails[equipNoStr]) { |
| | | const rawData = this.$root.conveyorLineDetails[equipNoStr]; |
| | | this.hasGoods = rawData.inStock === 'æ¯' || false; |
| | | // 使ç¨Home.vueä¸å·²ç»è®¡ç®å¥½çisAlarmå¼ï¼æè
æ ¹æ®ç¶æå¤æ |
| | | this.isAlarm = rawData.isAlarm || (rawData.status === 4) || false; |
| | | // 宿¶æ´æ°å¯¹è¯æ¡ä¸çæ°æ® |
| | | this.ConveyorLineInfo = { |
| | | TaskNum: rawData.taskNum || rawData.TaskNum || 'æ ', |
| | | HasGoods: (rawData.taskNum && rawData.taskNum !== 'æ ' && rawData.taskNum !== '0') ? 'æ¯' : 'å¦', |
| | | Status: rawData.status || rawData.Status || 'æ ', |
| | | Command: rawData.command || rawData.Command || 'æ ', |
| | | PalletCode: rawData.palletCode || rawData.PalletCode || 'æ ', |
| | | }; |
| | | // å°å½ä»¤ä»£ç 转æ¢ä¸ºå¯¹åºç䏿æè¿° |
| | | if (this.ConveyorLineInfo.Command !== '' && this.ConveyorLineInfo.Command !== 'æ ') { |
| | | const commandCode = parseInt(this.ConveyorLineInfo.Command); |
| | | if (!isNaN(commandCode) && this.Map.Command && this.Map.Command[commandCode] !== undefined) { |
| | | this.ConveyorLineInfo.Command = this.Map.Command[commandCode]; |
| | | } |
| | | } |
| | | // å°ç¶æä»£ç 转æ¢ä¸ºå¯¹åºç䏿æè¿° |
| | | if (this.ConveyorLineInfo.Status !== '' && this.ConveyorLineInfo.Status !== 'æ ') { |
| | | const statusCode = parseInt(this.ConveyorLineInfo.Status); |
| | | if (!isNaN(statusCode) && this.Map.Status && this.Map.Status[statusCode] !== undefined) { |
| | | this.ConveyorLineInfo.Status = this.Map.Status[statusCode]; |
| | | } |
| | | } |
| | | } else { |
| | | this.hasGoods = false; |
| | | this.isAlarm = false; |
| | | } |
| | | }, |
| | | mouseClick() { |
| | | this.fullscreenLoading = true; |
| | | this.dialogVisible = true; |
| | | // å¤çç¹å»äºä»¶ |
| | | this.http.post("api/DeviceInfo/GetConveyorLineInfo?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (x.status) { |
| | | this.lineItemInfo = x.data; |
| | | } else { |
| | | this.$message({ |
| | | type: "error", |
| | | message: x.message, |
| | | }); |
| | | } |
| | | }); |
| | | // ä»å
¨å±åéä¸è·åè¾é线详ç»ä¿¡æ¯ |
| | | if (this.$root.conveyorLineDetails && this.$root.conveyorLineDetails[this.equipNo]) { |
| | | // å
è·ååå§æ°æ® |
| | | const rawData = this.$root.conveyorLineDetails[this.equipNo]; |
| | | |
| | | // å¤å¶æ°æ®å°ConveyorLineInfoï¼æ¨¡æ¿ä¸ç»å®çå¯¹è±¡ï¼ |
| | | this.ConveyorLineInfo = { |
| | | TaskNum: rawData.taskNum || rawData.TaskNum || 'æ ', |
| | | HasGoods: (rawData.taskNum && rawData.taskNum !== 'æ ' && rawData.taskNum !== '0') ? 'æ¯' : 'å¦', |
| | | Status: rawData.status || rawData.Status || 'æ ', |
| | | Command: rawData.command || rawData.Command || 'æ ', |
| | | PalletCode: rawData.palletCode || rawData.PalletCode || 'æ ', |
| | | }; |
| | | |
| | | // å°å½ä»¤ä»£ç 转æ¢ä¸ºå¯¹åºç䏿æè¿° |
| | | if (this.ConveyorLineInfo.Command !== '' && this.ConveyorLineInfo.Command !== 'æ ') { |
| | | const commandCode = parseInt(this.ConveyorLineInfo.Command); |
| | | if (!isNaN(commandCode) && this.Map.Command && this.Map.Command[commandCode] !== undefined) { |
| | | this.ConveyorLineInfo.Command = this.Map.Command[commandCode]; |
| | | } |
| | | } |
| | | |
| | | // å°ç¶æä»£ç 转æ¢ä¸ºå¯¹åºç䏿æè¿° |
| | | if (this.ConveyorLineInfo.Status !== '' && this.ConveyorLineInfo.Status !== 'æ ') { |
| | | const statusCode = parseInt(this.ConveyorLineInfo.Status); |
| | | if (!isNaN(statusCode) && this.Map.Status && this.Map.Status[statusCode] !== undefined) { |
| | | this.ConveyorLineInfo.Status = this.Map.Status[statusCode]; |
| | | } |
| | | } |
| | | |
| | | // å°æ¥è¦ä»£ç 转æ¢ä¸ºå¯¹åºç䏿æè¿° |
| | | if (rawData.alarm !== '' && rawData.alarm !== 'æ ') { |
| | | const alarmCode = parseInt(rawData.alarm); |
| | | if (!isNaN(alarmCode) && this.Map.ErrorCode && this.Map.ErrorCode[alarmCode] !== undefined) { |
| | | this.ConveyorLineInfo.Alarm = this.Map.ErrorCode[alarmCode]; |
| | | } |
| | | } |
| | | } else { |
| | | // å¦ææ²¡ææ°æ®ï¼ä½¿ç¨é»è®¤å¼ |
| | | this.ConveyorLineInfo = { |
| | | TaskNum: '', |
| | | HasGoods: '', |
| | | Status: '', |
| | | Command: '', |
| | | PalletCode: '', |
| | | }; |
| | | } |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | handleClose() { |
| | | this.dialogVisible = false; |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | |
| | | SendCommand() { |
| | | this.fullscreenLoading = true; |
| | | this.form.DeviceCode=this.equipNo; |
| | | this.http.post("api/DeviceInfo/ConveyorLineHandTask" ,this.form) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineReset() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineReset?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | // SendCommand() { |
| | | // this.fullscreenLoading = true; |
| | | // this.form.DeviceCode=this.equipNo; |
| | | // this.http.post("api/DeviceInfo/ConveyorLineHandTask" ,this.form) |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // ConveyorLineReset() { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/ConveyorLineReset?DeviceChildCode=" + this.equipNo, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineEmergencyStop() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineEmergencyStop?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // ConveyorLineEmergencyStop() { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/ConveyorLineEmergencyStop?DeviceChildCode=" + this.equipNo, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineReturn() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineReturn?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineCancel() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineCancel?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineInitialize() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineInitialize?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | update() { |
| | | return !this.condition ? 'custom-img' : 'custom-img-color' |
| | | }, |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // ConveyorLineReturn() { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/ConveyorLineReturn?DeviceChildCode=" + this.equipNo, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // ConveyorLineCancel() { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/ConveyorLineCancel?DeviceChildCode=" + this.equipNo, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // ConveyorLineInitialize() { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/ConveyorLineInitialize?DeviceChildCode=" + this.equipNo, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | //}, |
| | | startTimer() { |
| | | // å¼å¯å®æ¶å¨ï¼æ¯3ç§æ§è¡ä¸æ¬¡ |
| | | this.timer1 = setInterval(() => { |
| | | update(); |
| | | }, 500); |
| | | this.updateAlarmStatus(); |
| | | }, 1000); |
| | | }, |
| | | }, |
| | | computed: { |
| | | update() { |
| | | if (this.isAlarm) { |
| | | return 'custom-img-alarm'; |
| | | } |
| | | // 使ç¨ä¸æç¶æå¼å¤æ |
| | | const statusText = this.ConveyorLineInfo.Status; |
| | | // ç¶æä¸ºæå¨å¾
æºæ¶ï¼æ è®ºææ ç齿¾ç¤ºèè² |
| | | if (statusText === 'æå¨å¾
æº') { |
| | | return 'custom-img-blue'; |
| | | } |
| | | // ç¶æä¸ºèªå¨å¾
æºæè®¾å¤è¿è¡ä¸æçæ¶æ¾ç¤ºç»¿è² |
| | | if ((statusText === 'èªå¨å¾
æº' || statusText === '设å¤è¿è¡') && (this.hasGoods || this.ConveyorLineInfo.HasGoods === 'æ¯')) { |
| | | return 'custom-img-color'; |
| | | } |
| | | return 'custom-img'; |
| | | }, |
| | | statusClass() { |
| | | const statusText = this.ConveyorLineInfo.Status; |
| | | if (statusText === 'æå¨å¾
æº') { |
| | | return 'status-blue'; |
| | | } else if (statusText === 'èªå¨å¾
æº' || statusText === '设å¤è¿è¡') { |
| | | return 'status-green'; |
| | | } else if (statusText === 'è®¾å¤æ
é') { |
| | | return 'status-red'; |
| | | } |
| | | return ''; |
| | | } |
| | | } |
| | | }); |
| | | </script> |
| | | |
| | |
| | | text-align: center; |
| | | } |
| | | |
| | | .custom-img-alarm { |
| | | position: relative; |
| | | display: inline-block; |
| | | background-color: #ff0000; |
| | | color: white; |
| | | text-align: center; |
| | | } |
| | | |
| | | .custom-img-blue { |
| | | position: relative; |
| | | display: inline-block; |
| | | background-color: #409eff; |
| | | color: white; |
| | | text-align: center; |
| | | } |
| | | |
| | | .custom-img-blue img { |
| | | width: 80px; |
| | | height: 50px; |
| | | } |
| | | |
| | | .custom-img-alarm img { |
| | | width: 80px; |
| | | height: 50px; |
| | | } |
| | | |
| | | .custom-img img { |
| | | width: 80px; |
| | | height: 50px; |
| | | } |
| | | |
| | | .custom-img-color img { |
| | | width: 80px; |
| | | height: 50px; |
| | | } |
| | | |
| | | /* .custom-img-color::before { |
| | | content: ""; |
| | | position: absolute; |
| | |
| | | } */ |
| | | |
| | | .custom-img img { |
| | | width: 40px; |
| | | height: 40px; |
| | | width: 80px; |
| | | height: 50px; |
| | | } |
| | | |
| | | .custom-img-color img { |
| | | width: 40px; |
| | | height: 40px; |
| | | width: 80px; |
| | | height: 50px; |
| | | } |
| | | |
| | | .equip-no { |
| | | position: absolute; |
| | | top: 15px; |
| | | font-size: 12px; |
| | | margin-left: -35px; |
| | | top: 50%; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | font-size: 25px; |
| | | text-align: center; |
| | | width: 100%; |
| | | } |
| | | |
| | | .modern-dialog { |
| | | border-radius: 16px !important; |
| | | overflow: hidden; |
| | | box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15); |
| | | } |
| | | |
| | | .modern-dialog .el-dialog__header { |
| | | display: none; |
| | | } |
| | | |
| | | .modern-dialog .el-dialog__body { |
| | | padding: 0; |
| | | margin: 0; |
| | | } |
| | | |
| | | .dialog-header { |
| | | background: linear-gradient(135deg, #409eff 0%, #67c23a 100%); |
| | | padding: 20px 24px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .dialog-title { |
| | | color: #fff; |
| | | font-size: 18px; |
| | | font-weight: 600; |
| | | margin: 0; |
| | | letter-spacing: 2px; |
| | | } |
| | | |
| | | .dialog-content { |
| | | padding: 28px; |
| | | background: #f8fafc; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .info-list { |
| | | width: 100%; |
| | | max-width: 420px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 12px; |
| | | } |
| | | |
| | | .info-item { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 16px 20px; |
| | | background: #fff; |
| | | border-radius: 12px; |
| | | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); |
| | | transition: all 0.3s ease; |
| | | } |
| | | |
| | | .info-item:hover { |
| | | transform: translateX(4px); |
| | | box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .item-label { |
| | | font-size: 14px; |
| | | color: #6b7280; |
| | | font-weight: 500; |
| | | min-width: 80px; |
| | | text-align: left; |
| | | } |
| | | |
| | | .item-value { |
| | | font-size: 15px; |
| | | color: #1f2937; |
| | | font-weight: 500; |
| | | text-align: right; |
| | | flex: 1; |
| | | margin-left: 20px; |
| | | word-break: break-all; |
| | | padding-left: 20px; |
| | | border-left: 1px solid #e5e7eb; |
| | | } |
| | | |
| | | .status-blue { |
| | | color: #409eff !important; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .status-green { |
| | | color: #67c23a !important; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .status-red { |
| | | color: #f56c6c !important; |
| | | font-weight: 600; |
| | | } |
| | | </style> |