From 4e91ae3c1ff41d0bf9f65d444c90c2583e69cdb7 Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期五, 27 九月 2024 17:16:10 +0800 Subject: [PATCH] 下线打印报告优化 --- jcdm-ui/src/views/main/kb/repairOnline/index.vue | 710 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 710 insertions(+), 0 deletions(-) diff --git a/jcdm-ui/src/views/main/kb/repairOnline/index.vue b/jcdm-ui/src/views/main/kb/repairOnline/index.vue new file mode 100644 index 0000000..8b27010 --- /dev/null +++ b/jcdm-ui/src/views/main/kb/repairOnline/index.vue @@ -0,0 +1,710 @@ +<template> + <div class="app-container"> + <el-row :gutter="5"> + <el-col :span="7"> + <el-card style="height: 71px;" shadow="never"> + 宸ヤ綅缂栧彿 : + <el-select v-model="headContent.processesCode" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in processesCodeOptions" + :key="item.index" + :label="item.processesCode" + :value="item.processesCode"> + </el-option> + </el-select> + </el-card> + </el-col> + <el-col :span="17"> + <el-card shadow="never"> + <span class="head-font">澹充綋缂栫爜 : </span> + <el-input style="width: 40%" ref="inputData" v-model="shellBarcode" @change="handleEnter" placeholder="璇锋壂鎻忓3浣撶紪鐮�"></el-input> + 鏄惁鎵撳埢 : + <el-select v-model="engravingStatus" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in engravingOptions" + :key="item.index" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + + <el-button @click="clearClick" style="float: right" type="danger" >娓呴櫎</el-button> + </el-card> + </el-col> + + </el-row> + <el-row :gutter="5" style="margin-top: 5px"> + <el-col :span="7" > + <el-card class="bottom-card"> + <div slot="header" class="clearfix"> + <i class="el-icon-tickets"></i> + <span style="font-weight: bold">褰撳墠宸ヤ欢淇℃伅</span> + </div> + <el-descriptions :column="1" border :content-style="{'min-width': '140px'}"> + <el-descriptions-item label="浜у搧搴忓垪鍙�"> + <span>{{headContent.sfcCode}}</span> + </el-descriptions-item> + <el-descriptions-item label="宸ュ崟缂栧彿"> + <span>{{workpieceInformation.workOrderNo}}</span> + </el-descriptions-item> + <el-descriptions-item label="浜у搧缂栫爜"> + <span>{{workpieceInformation.productCode}}</span> + </el-descriptions-item> + <el-descriptions-item label="璁″垝鏁伴噺"> + <span>{{workpieceInformation.planQty}}</span> + </el-descriptions-item> +<!-- <el-descriptions-item label="寮�濮嬫椂闂�">--> +<!-- <span>{{workpieceInformation.inboundTime}}</span>--> +<!-- </el-descriptions-item>--> + </el-descriptions> + <el-divider></el-divider> + <el-button @click="repairClick" type="primary">杩斾慨</el-button> + <!-- <el-row>--> +<!-- <el-col :span="12">--> +<!-- <el-button class="circle-button" :class="cakeLamp.plcState ? 'circle-green-animate':'circle-red'" circle></el-button>--> +<!-- <span style="display: none">{{cakeLamp.plcState}}</span>--> +<!-- <span> PLC鐘舵��</span>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-button class="circle-button" :class="cakeLamp.scannerState ? 'circle-green-animate':'circle-red'" circle></el-button>--> +<!-- <span style="display: none">{{cakeLamp.scannerState}}</span>--> +<!-- <span> 鎵爜鏋姸鎬�</span>--> +<!-- </el-col>--> +<!-- </el-row>--> +<!-- <el-row style="margin-top: 20px">--> +<!-- <el-col :span="12">--> +<!-- <el-button class="circle-button" :class="cakeLamp.InPlace ? 'circle-green':'circle-red'" circle></el-button>--> +<!-- <span style="display: none">{{cakeLamp.InPlace}}</span>--> +<!-- <span> 宸ヤ欢鍒颁綅</span>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-button class="circle-button" :class="cakeLamp.scanFinish ? 'circle-green':'circle-red'" circle></el-button>--> +<!-- <span style="display: none">{{cakeLamp.scanFinish}}</span>--> +<!-- <span> 鎵爜瀹屾垚</span>--> +<!-- </el-col>--> +<!-- </el-row>--> +<!-- <el-row style="margin-top: 20px">--> +<!-- <el-col :span="12">--> +<!-- <el-button class="circle-button" :class="cakeLamp.startWork ? 'circle-green':'circle-red'" circle></el-button>--> +<!-- <span style="display: none">{{cakeLamp.startWork}}</span>--> +<!-- <span> 寮�濮嬩綔涓�</span>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-button class="circle-button" :class="cakeLamp.release ? 'circle-green':'circle-red'" circle></el-button>--> +<!-- <span style="display: none">{{cakeLamp.release}}</span>--> +<!-- <span> 鍏佽鏀捐</span>--> +<!-- </el-col>--> +<!-- </el-row>--> + </el-card> + + </el-col> + <el-col :span="17"> + <el-tabs type="border-card" style="height: 600px" v-model="activeName"> + <el-tab-pane name="first"> + <span slot="label"> <a class="el-icon-date"></a>棣栭〉</span> + <el-col :span="24"> + <el-table height="500" :cell-style="rowStyle" :data="formulaChildList"> + <el-table-column label="鎷х揣姝ュ彿" width="80" align="center" prop="stepSort"> + </el-table-column> + <el-table-column label="鎿嶄綔鍐呭" align="center" prop="operationSteps"> + </el-table-column> + <el-table-column label="浜у搧缂栧彿" width="80" align="center" prop="productCode"> + </el-table-column> + <el-table-column label="鐗╂枡缂栫爜" width="110" align="center" prop="materialCode"> + </el-table-column> + <el-table-column label="閲囬泦鍊�" align="center" prop="collectData"> + </el-table-column> + <el-table-column label="缁撴灉" width="60" align="center" prop="results"> + </el-table-column> + + </el-table> + </el-col> + </el-tab-pane> + </el-tabs> + </el-col> + </el-row> + </div> +</template> +<script> +import {listWorkReport} from "@/api/main/om/workReport/workReport"; +import {listStationConf,getIpv4} from "@/api/main/sc/stationConf"; +import { + clearWorkpieceRelease, + fistSetpNumber, initializedData, + listFormulaChild, + noPageListFormulaChild, + releaseCheck, unfinishedProcess, + updateResults, + updateTighteningFormula, + workpieceRelease, writeRepairInformationIntoPlc +} from "@/api/main/bs/formulaChild/formulaChild"; +import MySerialPort from "@/utils/MySerialPort"; +import USBDevice from "@/utils/usb.json"; +import { + bindYzSfcFlag, + checkCarCode, checkYzSfcCode, + findBytrolleyYardGetOne, + listProductionOrde, listProductionOrdeLoopLine, mozuReceivingWorkOrders, + receivingWorkOrders, + trolleyYardBinDing +} from "@/api/main/om/productionOrde/productionOrde"; +import {addPassingStationCollection} from "@/api/main/da/passingStationCollection/passingStationCollection"; +import { + addBasicParameters, + addParamCollection, + addTighteningParameters, + saveCampaignTimeParameters, + replaceAssemblyCode, checkRecordDataDone, +} from "@/api/main/da/paramCollection/paramCollection"; +import {addFormula} from "@/api/main/bs/formula/formula"; +import QRCode from "qrcodejs2"; +import VueQr from "vue-qr"; +import {listProcesses, listProcessesNoPage} from "@/api/main/bs/processes/processes"; + +export default { + components: { + VueQr + }, + name: "stationTerminal", + data() { + return { + engravingStatus: '', + engravingOptions: [{ + value: '1', + label: '鏄�' + }, { + value: '2', + label: '鍚�' + }], + processesCodeOptions:[], // 宸ュ簭缂栫爜 + shellBarcode: '', // 宸ヤ欢鏉$爜 + text: 'P9900200461#T2408170000004#V993983#SSW001.001#HHW001.001#NMCU', + materialCode: '', // 鐗╂枡缂栫爜 + carCode: '', + showInput: false, + onLineBinDing: false, + + serialPortContent: '', + // 鏌ヨ鍙傛暟 + formulaChildParams: { + pageNum: 1, + pageSize: 10, + productCode: null, + processesCode: null, + }, + // 閰嶆柟閰嶇疆瀛愪俊鎭〃鏍兼暟鎹� + formulaChildList: [], + ipAddress: '', + imgSrc: '', + headContent: { + processesCode: '', + processesName: '', + sfcCode: '', + yzSfcCode: '', + cardCode: '', + }, + workpieceInformation: { + workOrderNo: null, + productCode: null, + productModel: null, + productName: null, + inboundTime: null, + materialCode: null, + planQty: null, + }, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + sfcCode: null, + productNum: '', + trolleyYard: '', + }, + // 鏌ヨ鍙傛暟 + StationConfQueryParams: { + pageNum: 1, + pageSize: 10, + ipAddress: null, + }, + cakeLamp: { + plcState: 1, //plc + scannerState: 1, //鎵爜鏋� + InPlace: 0, //宸ヤ欢鍒颁綅 + scanFinish: 0, + startWork: 0, + release: 0 //鍏佽鏀捐 + }, + content: '', + // url: "ws://10.103.214.26:8080/websocket/message/", + url: "ws://192.168.20.250:8080/websocket/message/", + + passingStationForm: {}, + originalArray: [], + orderFlag: true, + printFlag: false, + activeName: 'first', + printMaterialCode : '', + + } + }, + mounted() { + this.setFocus() + }, + beforeDestroy() { + this.exit(); + }, + created() { + // this.initStation(); + this.initProcesses() + }, + computed: { + isDisable() { + return this.btnType === "danger"; + }, + }, + methods: { + repairClick(){ + if(this.headContent.processesCode !== '' && this.engravingStatus !== '' && this.headContent.sfcCode !== ''){ + writeRepairInformationIntoPlc({ + processesCode: this.headContent.processesCode, + engravingStatus: this.engravingStatus, + sfcCode: this.headContent.sfcCode, + workOrderNo: this.workpieceInformation.workOrderNo, + }).then(response => {}); + }else { + this.$message.error("鍩虹鍙傛暟缂哄け锛岃妫�鏌ュ伐浣嶇紪鍙峰拰鎵撳埢鐘舵�佹槸鍚﹀凡閫夋嫨锛�"); + } + }, + initProcesses(){ + listProcessesNoPage(this.queryParams).then(response => { + this.processesCodeOptions = response.rows; + }); + }, + setFocus(){ + this.$nextTick(()=>{ + this.$refs.inputData.focus() + }) + }, + changeMenu(tab, event) { + console.log(tab, event); + }, + handleEnter() { + if(this.headContent.processesCode !== '' && this.engravingStatus !== ''){ + this.queryParams.trolleyYard = this.shellBarcode + listProductionOrde(this.queryParams).then(response => { + let rowsData = response.rows[0]; + if(rowsData){ + console.log('杩涘叆鍒濆鍖栧姞杞絣ist鏂规硶'+response.rows[0]) + this.headContent.sfcCode = rowsData.productNum; + this.workpieceInformation.productCode = rowsData.productCode; + this.workpieceInformation.workOrderNo = rowsData.workOrderNo; + this.workpieceInformation.planQty = rowsData.planQty; + }else { + this.$message.error('绯荤粺娌℃湁姝ゅ伐鍗曪紝璇烽噸鏂版壂鐮侊紒'); + } + }); + }else { + this.$message.error("鍩虹鍙傛暟缂哄け锛岃妫�鏌ュ伐浣嶇紪鍙峰拰鎵撳埢鐘舵�佹槸鍚﹀凡閫夋嫨锛�"); + } + }, + + + serialLink() { + this.open1 = true + }, + serialPortMethod(value){ + let formulaChildParams = { + scanBarcode: value, + sfcBarcode: this.headContent.sfcCode, + workOrderNo: this.workpieceInformation.workOrderNo, + productCode: this.workpieceInformation.productCode, + locationCode: this.headContent.processesCode, + collectionTime: new Date() + } + updateResults(formulaChildParams).then(response => { + console.log(response) + if(response.msg === "3"){ + this.cakeLamp.release= 1 //鍏佽鏀捐 + }else if(response.msg === "2"){ + this.$message.error('鎵爜閲嶅璇烽噸鏂版壂鐮侊紒'); + } + this.getListFormulaChild() + }); + }, + rowStyle({ row }) { + if (row.results === 'OK') { + return 'background-color: PaleGreen'; + } else if (row.results === 'NG') { + return 'background-color: LightSalmon'; + } + return ''; + }, + /** 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭垪琛� */ + getListFormulaChild() { + // this.formulaChildList = [] + this.formulaChildParams.productCode = this.workpieceInformation.productCode + this.formulaChildParams.processesCode = this.headContent.processesCode + console.log(this.formulaChildParams) + noPageListFormulaChild(this.formulaChildParams).then(response => { + this.formulaChildList = response.rows; + if (this.formulaChildList.length >0){ + let pos = 0 + const tempArr = this.formulaChildList.filter(x=> 'OK' === x.results) + if (tempArr.length>0){ + pos = tempArr.length + this.$nextTick(() => { + let temp33 = document.getElementsByClassName('el-table__row') + console.log('temp33',temp33) + console.log('len',temp33.item(pos)) + if (temp33.length > 0){ + console.log('1111111111111111') + let arr = temp33[pos-1] + console.log('srr',arr) + arr.scrollIntoView({ block: 'center' }) + } + }) + } + + } + + }); + }, + endClear(){ + this.cakeLamp.InPlace= 0 //宸ヤ欢鍒颁綅 + this.cakeLamp.scanFinish= 0 + this.cakeLamp.startWork= 0 + this.cakeLamp.release= 0 //鍏佽鏀捐 + + this.formulaChildList = [] + this.workpieceInformation.productCode = null; + this.workpieceInformation.workOrderNo = null; + this.workpieceInformation.productModel = null; + this.workpieceInformation.productName = null; + this.workpieceInformation.inboundTime = null; + this.headContent.sfcCode = ''; + this.headContent.yzSfcCode = ''; + this.headContent.cardCode = ''; + this.workpieceInformation.planQty = '' + this.headContent.processesCode = '' + this.engravingStatus = '' + this.headContent.sfcCode = '' + this.workpieceInformation.workOrderNo = '' + this.shellBarcode = '' + }, + clearClick(){ + this.endClear() + }, + /** 鏌ヨ宸ュ崟鍒楄〃 */ + async getList() { + await listProductionOrde(this.queryParams).then(response => { + console.log('杩涘叆鍒濆鍖栧姞杞絣ist鏂规硶') + let rowsData = response.rows[0]; + if(rowsData){ + console.log('杩涘叆鍒濆鍖栧姞杞絣ist鏂规硶'+response.rows[0]) + this.workpieceInformation.workOrderNo = rowsData.workOrderNo; + this.workpieceInformation.productCode = rowsData.productCode; + this.workpieceInformation.materialCode = rowsData.materialCode; + this.workpieceInformation.planQty = rowsData.planQty; + this.headContent.cardCode = rowsData.trolleyYard; + this.printMaterialCode = rowsData.productCode + }else { + this.$message.error('绯荤粺娌℃湁姝ゅ伐鍗曪紝璇烽噸鏂版壂鐮侊紒'); + } + }); + }, + + initializedData(){ + const param = { + locationCode: this.headContent.processesCode, + } + initializedData(param).then(response => { + if(response.msg !== ''){ + if(this.headContent.processesCode === 'OP165'){ + this.headContent.sfcCode = response.msg.substring(13,26) + this.queryParams.productNum = response.msg.substring(13,26); + }else { + this.headContent.sfcCode = response.msg; + this.queryParams.productNum = response.msg; + } + this.getList() + this.cakeLamp.scanFinish = 1 + this.cakeLamp.startWork = 1 + this.cakeLamp.InPlace = 1 + // this.text = 'P9900200461#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU' + } + }); + }, + + getCurrentTime() { + const now = new Date(); + const year = now.getFullYear(); + const month = this.padTimeUnit(now.getMonth() + 1); // 鏈堜唤鏄粠0寮�濮嬬殑 + const day = this.padTimeUnit(now.getDate()); + const hours = this.padTimeUnit(now.getHours()); + const minutes = this.padTimeUnit(now.getMinutes()); + const seconds = this.padTimeUnit(now.getSeconds()); + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + }, + padTimeUnit(value) { + return value.toString().padStart(2, '0'); + }, + + exit() { + if (this.ws) { + this.ws.close(); + this.ws = null; + } + }, + test1(){ + document.getElementById('canvasWrapper1').innerHTML = ''; + this.$nextTick(() => { + let qrCode = new QRCode('canvasWrapper1',{ + width: 83, + height: 83, + text: 'P9900200461#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU', + colorDark: '#000', + colorLight: '#fff' + }) + } + ) + }, + test2(){ + document.getElementById('canvasWrapper2').innerHTML = ''; + this.$nextTick(() => { + let qrCode = new QRCode('canvasWrapper2',{ + width: 83, + height: 83, + text: 'P9900200461#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU', + colorDark: '#000', + colorLight: '#fff' + }) + } + ) + }, + send() { + if (this.ws) { + this.ws.send(this.message); + } else { + alert("鏈繛鎺ュ埌鏈嶅姟鍣�"); + } + }, + + initStation: async function () { + await getIpv4().then(response => { + this.StationConfQueryParams.ipAddress = response.msg + console.log('鏌ヨ鍒版湰宸ヤ綅IP涓�' + this.StationConfQueryParams.ipAddress) + }); + await listStationConf(this.StationConfQueryParams).then(response => { + let rows = response.rows[0] + if (response.rows.length === 0) { + this.$message('璇ュ伐浣嶆病鏈夐厤缃甀P锛岃鑱旂郴绠$悊鍛橀厤缃甀P'); + return + } + this.headContent.processesName = rows.processesName + this.headContent.processesCode = rows.processesCode + this.initializedData() + if(this.headContent.processesCode === 'OP165'){ + this.printFlag = true + } + + if(this.headContent.processesCode === 'OP250'){ + this.printFlag = true + } + + }); + console.log('websocket杩炴帴宸ヤ綅涓�' + this.headContent.processesCode) + const wsuri = this.url + this.headContent.processesCode; + this.ws = new WebSocket(wsuri); + const self = this; + this.ws.onopen = function (event) { + self.$message('websocket杩炴帴鎴愬姛锛�'); + }; + + + //socket浠庡悗鍙板悜鍓嶅彴鎺ㄩ�佹暟鎹� + this.ws.onmessage = function (event) { + if (event.data === "print") { + document.getElementById('print').click(); + unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 21}).then(response => {}); + }else if (event.data === "IN") { + self.cakeLamp.InPlace = 1; + }else if(event.data === "twoHundredAndThirtyEND"){ + self.endClear() + } else if (event.data === "OUT") { + self.cakeLamp.release = 1; + } else if (event.data === "END") { + + const formulaChildIndex = self.formulaChildList.length-1 + + const orderParam = { + productNum: self.headContent.sfcCode, + } + + if(self.headContent.sfcCode=== ''||self.headContent.sfcCode=== null){ + self.$message('鎬绘垚鐮佷负绌猴紝璇锋壂鐮侊紒') + unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 26}).then(response => {}); + return; + } + + if(self.formulaChildList[formulaChildIndex].results !== 'OK'){ + self.$message('鏈仛瀹屽伐搴忕姝㈡斁琛�'); + unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 25}).then(response => {}); + return; + } + + + const param = { + workOrderNo: self.workpieceInformation.workOrderNo, + productCode: self.workpieceInformation.productCode, + locationCode: self.headContent.processesCode, + productBarcode: self.headContent.sfcCode, + inboundTime: self.workpieceInformation.inboundTime, + formulaChildEntity: self.formulaChildList[formulaChildIndex] + } + + console.log("杩涘叆鏈�缁堟柟娉�") + self.endSaveData(param) + + } else if(event.data.includes("productNum")){//浜у搧搴忓垪鍙� + let productNum = event.data.split(',')[1]; + if(self.headContent.processesCode === 'OP165'){ + console.log("杩涘幓鎴彇鎬绘垚鐮佹柟娉�165宸ョ珯鍘熷鍊兼槸"+productNum+"鎴彇涔嬪悗鐨勬槸"+productNum.substring(13,26)) + self.headContent.sfcCode = productNum.substring(13,26) + console.log("self.headContent.sfcCode"+self.headContent.sfcCode) + }else { + self.headContent.sfcCode = productNum; + } + self.queryParams.productNum = productNum; + self.getList() + self.cakeLamp.scanFinish = 1 + self.cakeLamp.startWork = 1 + self.cakeLamp.InPlace = 1 + + const param = { + processesCode: self.headContent.processesCode, + productCode: self.workpieceInformation.productCode + } + fistSetpNumber(param).then(response => { + console.log("fistSetpNumber------"+response.msg) + }); + + //鎵撳嵃 + if(self.headContent.processesCode === "OP165"){ + // self.test1() + // self.test2() + self.text = 'P9900200461#T'+self.headContent.sfcCode+'#V993983#SSW002.005#HHW001.001#NMCU#' + } + + }else if (event.data.includes("[")) {//鎷х揣 + let formulaChilds = ""; + self.formulaChildList.sort((a, b) => a.stepSort - b.stepSort); + self.formulaChildList + .filter((formulaChild) => formulaChild.operationType === '1'); + for (let i = 0; i < self.formulaChildList.length; i++) { + let formulaChild = self.formulaChildList[i]; + let results = formulaChild.results; + + if (results === '' || results === null || results === 'NG') { + formulaChilds = formulaChild; + break; + } + } + if(formulaChilds === ""){ + self.$message.error('鏈伐浣嶅凡宸ヤ綔瀹屾垚锛�'); + return; + } + const param = { + id: formulaChilds.id, + tightenTheArray: event.data, + paramCode: formulaChilds.paramCode, + workOrderNo: self.workpieceInformation.workOrderNo, + productCode: self.workpieceInformation.productCode, + locationCode: self.headContent.processesCode, + productBarcode: self.headContent.sfcCode, + spareField1: formulaChilds.spareField1, + spareField2: formulaChilds.spareField2, + spareField3: formulaChilds.spareField3, + spareField4: formulaChilds.spareField4, + stepSort: formulaChilds.stepSort, + ngTimes: formulaChilds.ngTimes, + } + if(formulaChilds.paramCode === null||formulaChilds.paramCode ===''){ + self.$message('鏈壘鍒板弬鏁扮爜锛岃妫�鏌ュ弬鏁扮爜鏄惁姝g‘'); + return; + } + self.formulaChildParams.artificialNgFlag = null + console.log("self.formulaChildParams.artificialNgFlag"+self.formulaChildParams.artificialNgFlag) + if(self.headContent.sfcCode!==null||self.headContent.sfcCode!==''){ + updateTighteningFormula(param).then(response => { + //addTighteningParameters(param).then(response => {}); + self.getListFormulaChild() + }).catch(error =>{ + self.getListFormulaChild() + }); + } + } + }; + }, + + endSaveData(param){ + saveCampaignTimeParameters(param).then(response => { + this.cakeLamp.release = 1; + this.endClear() + workpieceRelease(param).then(response => {}); + }); + }, + } +} + +</script> +<style scoped> +.div1, .div2 { + flex: 1; /* 涓や釜div骞冲垎瀹瑰櫒瀹藉害 */ +} +.span{ + font-family: 'Microsoft YaHei', sans-serif; +} +.div2{ + margin-left: 30px; +} +.bottom-card{ + height: 600px; +} +.circle-button{ + height: 30px; + width: 30px; +} +.circle-red { + background-color: #e01a4f; +} +.circle-green { + background-color: green; +} +.circle-green-animate { + background-color: green; + animation: circle-green-animate 2s infinite; +} + @keyframes circle-green-animate { + 50% { + opacity: 0.6; + } + 0% { + opacity: 0.2; + } + } +.head-font{ + /*font-weight: bold;*/ + /*font-size: 25px;*/ +} +span{ + font-size: 15px; +} +.el-table .warning-row { + background: oldlace; +} + +.el-table .success-row { + background: #f0f9eb; +} +</style> + -- Gitblit v1.9.3