<template> <div class="app-container detail" style="background-color: rgb(238, 241, 245);"> <div style="padding-top: 10px;background: #fff;height: 100%;"> <el-row v-if ="resourceId == undefined"> <el-col :span="24" style="padding-left: 15px;margin-bottom: -10px;"> <div style="height: 45px;" @click="$router.go(-1)"> <el-button size="medium" type="text" style="font-size: 18px; color: rgb(7, 63, 112);float: left;">返回 </el-button> <div style="float: left;margin-top: 8px;margin-left: 5px;"><img src="../../../assets/logo/fanhui.png" style="width: 25px;" alt=""></div> </div> </el-col> </el-row> <el-row style="width: 100%;height: 40px;"> <el-col :span="24"> <div style=""> <ul><li style="list-style: none;font-weight: 900;font-size: 20px;color: #053b6a;">报警信息详情</li></ul> </div> </el-col> </el-row> <el-divider></el-divider> <el-row style="padding-left: 50px;margin-top: -10px;margin-bottom: -10px;"> <el-col :span="6"> <el-form ref="form" v-model="form" style="width: 100%;"> <el-form-item label="设备类型:" prop="deviceType"> <font>{{form.deviceType}}</font> </el-form-item> <el-form-item label="设备编号:" prop="deviceCode"> <font>{{form.deviceCode}}</font> </el-form-item> </el-form> </el-col> <el-col :span="6"> <el-form ref="form" v-model="form" style="width: 100%;"> <el-form-item label="报警类型:" prop="alarmType"> <font>{{form.alarmType}}</font> </el-form-item> <el-form-item label="报警值:" prop="alarmValue"> <font>{{form.alarmValue}}</font> </el-form-item> </el-form> </el-col> <el-col :span="6"> <el-form ref="form" v-model="form" style="width: 100%;"> <el-form-item label="报警开始时间:" prop="startTime"> <font>{{form.startTime}}</font> </el-form-item> <el-form-item label="报警结束时间:" prop="updateTime"> <font>{{form.endTime}}</font> </el-form-item> </el-form> </el-col> <el-col :span="6"> <el-form ref="form" v-model="form" style="width: 100%;"> <el-form-item label="工单编号:" prop="orderId"> <!-- <font>{{form.orderId}}</font> --> <template slot-scope="scope"> <font v-if="resourceId != undefined">{{form.orderId}}</font> <el-button type="text" @click="showDetail(form.orderId)" v-if="resourceId == undefined">{{form.orderId}}</el-button> </template> </el-form-item> <el-form-item label="处理状态:" prop="dealStatus"> <font v-if="form.orderId == null || form.orderId == ''">未生成工单</font> <font v-if="(form.dealStatus == null || form.dealStatus == '') && form.orderId != null && form.orderId != ''"> 暂未处理</font> <font v-if="form.dealStatus == 1">不需处理</font> <font v-if="form.dealStatus == 2">已处理完成</font> <font v-if="form.dealStatus == 3">未处理完成</font> </el-form-item> </el-form> </el-col> </el-row> <el-divider></el-divider> <el-row v-if="this.deviceType=='调压阀'||this.deviceType=='阀门井'" style="width: 100%;height: 45px;margin-top: -15px;"> <el-col :span="14" style="margin-bottom: -10px;"> <div style="color: #31EAEA;"> <ul><li>下级设备信息</li></ul> </div> </el-col> </el-row> <el-row v-if="this.deviceType=='调压阀'||this.deviceType=='阀门井'"> <el-col :span="36" style="padding: 20px;width: 100%;"> <div style="width: 100%;float: left;height: 100%;" v-if="form.deviceType != '管道'"> <el-table :data="deviceInfoList" style="width: 100%"> <el-table-column label="设备名称" align="center" prop="deviceName" /> <el-table-column label="设备编号" align="center" prop="deviceCode" /> <el-table-column label="浓度" align="center" prop="potency" /> <el-table-column label="设备状态" align="center" prop="deviceType" > <template slot-scope="scope"> <span v-if="scope.row.status == 0">预热</span> <span v-if="scope.row.status == 1">正常</span> <span v-if="scope.row.status == 2">错误</span> <span v-if="scope.row.status == 3">传感器故障</span> <span v-if="scope.row.status == 4">报警</span> <span v-if="scope.row.status == 5">低报</span> <span v-if="scope.row.status == 6">高报</span> <span v-if="scope.row.status == 7">通信故障</span> <span v-if="scope.row.status == 8">通信故障</span> <span v-if="scope.row.status == 9">离线</span> <span v-if="scope.row.status == 10">电量低</span> <span v-if="scope.row.status == 11">主电故障</span> <span v-if="scope.row.status == 12">备电故障</span> <span v-if="scope.row.status == 13">无此节点</span> <span v-if="scope.row.status == 14">低电压</span> <span v-if="scope.row.status == 15">故障</span> <span v-if="scope.row.status == 16">报警联动</span> <span v-if="scope.row.status == 17">低低报</span> <span v-if="scope.row.status == 18">高高报</span> <span v-if="scope.row.status == 19">水位淹没报警</span> </template> </el-table-column> </el-table> </div> </el-col> </el-row> <el-row style="width: 100%;height: 45px;margin-top: -15px;"> <el-col :span="24" style="margin-bottom: -10px;"> <div style="color: #31EAEA;"> <ul><li>设备详情</li></ul> </div> </el-col> </el-row> <el-row> <el-col :span="16" style="padding: 10px;"> <div style="width: 100%;float: left;height: 100%;" v-if="form.deviceType != '管道'"> <el-table :data="dataListdetail" style="width: 100%"> <el-table-column label="设备名称" align="center" prop="deviceName" /> <el-table-column label="设备编号" align="center" prop="deviceCode" /> <el-table-column label="设备类型" align="center" prop="deviceType" > <template slot-scope="scope"> <span v-if="scope.row.deviceType == 1">调压阀</span> <span v-if="scope.row.deviceType == 2">阀门井</span> <span v-if="scope.row.deviceType == 3">流量计</span> <span v-if="scope.row.deviceType == 4">压力表</span> </template> </el-table-column> <el-table-column label="设备型号" align="center" prop="deviceModel" /> </el-table> <el-table :data="dataListdetail" style="width: 100%;margin-top: 20px;"> <el-table-column label="物联网编号" align="center" prop="iotNo" /> <el-table-column label="所在地址" align="center" prop="deviceAddr" /> <el-table-column label="联系人" align="center" prop="linkman" /> <el-table-column label="联系电话" align="center" prop="phone" /> </el-table> <el-table :data="dataListdetail" style="width: 100%;margin-top: 20px;"> <el-table-column label="安装日期" align="center" prop="installationTime" /> <el-table-column label="最后巡检日期" align="center" prop="inspectionTime" /> <el-table-column label="图片" align="center" prop="iconUrl" > <template slot-scope="scope"> <el-image :src="scope.row.iconUrl" :preview-src-list="[scope.row.iconUrl]" v-if="scope.row.iconUrl != '' && scope.row.iconUrl != null" style="width: 16px;"></el-image> </template> </el-table-column> </el-table> </div> <div style="width: 100%;float: left;height: 100%;" v-if="form.deviceType == '管道'"> <el-table :data="dataListdetail" style="width: 100%"> <el-table-column label="管道名称" align="center" prop="pipeName" /> <el-table-column label="管道编号" align="center" prop="pipeCode" /> <el-table-column label="管道类型" align="center" prop="pipeType" > <template slot-scope="scope"> <span v-if="scope.row.pipeType == 1">地埋管线</span> <span v-if="scope.row.pipeType == 2">地表管线</span> </template> </el-table-column> </el-table> <el-table :data="dataListdetail" style="width: 100%;margin-top: 20px;"> <el-table-column label="管道压力" align="center" prop="pipePressure" > <template slot-scope="scope"> <span v-if="scope.row.pipePressure == 1">低压</span> <span v-if="scope.row.pipePressure == 2">中压</span> <span v-if="scope.row.pipePressure == 3">次高压</span> <span v-if="scope.row.pipePressure == 4">高压</span> </template> </el-table-column> <el-table-column label="管道长度" align="center" prop="pipeLength" /> <el-table-column label="管道地址" align="center" prop="pipeAddr" /> </el-table> <el-table :data="dataListdetail" style="width: 100%;margin-top: 20px;"> <el-table-column label="安装日期" align="center" prop="installationTime" /> <el-table-column label="最后巡检日期" align="center" prop="inspectionTime" /> <el-table-column label="图片" align="center" prop="iconUrl" > <template slot-scope="scope"> <el-image :src="scope.row.iconUrl" :preview-src-list="[scope.row.iconUrl]" v-if="scope.row.iconUrl != '' && scope.row.iconUrl != null" style="width: 16px;"></el-image> </template> </el-table-column> </el-table> </div> </el-col> <el-col :span="8" style="padding: 10px;padding-left: 0px;"> <div id="marbox" style="width: 100%;height: 304px; border: 1px solid rgb(218, 213, 213);float: right;"> <div style="width: 100%;height: 100%" id="containerAlarm"></div> </div> </el-col> </el-row> <template v-if="$route.query.deviceType!='管道' && form.deviceType != '管道'"> <el-row v-if="form.deviceType != '压力表'"> <el-col :span="12" style="padding: 10px;"> <div id="main1" style="height:300px;background-color: rgb(247 247 247);padding: 5px;"> <div v-if="form.deviceReportDataList == null" class="div-null"> <p>暂无数据</p> </div> </div> </el-col> <el-col :span="12" style="padding: 10px;"> <div id="main2" style="height:300px;background-color: rgb(247 247 247);padding: 5px;"> <div v-if="form.deviceReportDataList == null" class="div-null"> <p>暂无数据</p> </div> </div> </el-col> </el-row> <el-row> <el-col :span="12" style="padding: 10px;" v-if="form.deviceType != '压力表'"> <div id="main3" style="height:300px;background-color: rgb(247 247 247);padding: 5px;"> <div v-if="form.deviceReportDataList == null" class="div-null"> <p>暂无数据</p> </div> </div> </el-col> <el-col :span="12" style="padding: 10px;"> <div id="main4" style="height:300px;background-color: rgb(247 247 247);padding: 5px;"> <div v-if="form.deviceReportDataList == null" class="div-null"> <p>暂无数据</p> </div> </div> </el-col> </el-row> </template> <div class="" style="width: 95%; height: 60px;margin-left: 50px;text-align: center;" v-if="(form.orderId == '' || form.orderId == null) && resourceId == undefined"> <el-button size="normal" type="primary" icon="el-icon-edit" @click="handleIssue(form.alarmId)" v-hasPermi="['workOrder:basicsInfo:add']"> 生成工单 </el-button> <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="130px"> <el-form-item label="报警设备" prop="deviceName"> <font>{{ form.deviceName }}</font> </el-form-item> <el-form-item label="报警类型" prop="alarmType"> <font>{{ form.alarmType }}</font> </el-form-item> <el-form-item label="报警值" prop="alarmValue"> <font>{{ form.alarmValue }}</font> </el-form-item> <el-form-item label="工单名称" prop="orderName"> <el-input v-model="form.orderName" placeholder="请输入工单名称" /> </el-form-item> <el-form-item label="指定执行人员" prop="appointInspector"> <el-select v-model="form.appointInspector" placeholder="请选择执行人员" clearable size="small" @change="setUserId"> <el-option v-for="item in inspector" :key="item.userId" :label="item.nickName" :value="item.userId" ></el-option> </el-select> </el-form-item> <el-form-item label="工单描述" prop="remarks"> <el-input type="textarea" v-model="form.remarks" placeholder="请输入工单描述" /> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm">确 定</el-button> <el-button @click="cancel">取 消</el-button> </div> </el-dialog> </div> </div> <el-dialog title = "工单信息" lock-scroll :visible.sync="dialogVisible" width="70%" > <div style="height:80vh;overflow:auto"> <workOrder :linkOrderId="form.orderId"/> </div> </el-dialog> </div> </template> <script> import { getDeviceAlarm } from "@/api/dataMonitoring/deviceAlarm"; import { deviceTree,getInformation } from "@/api/device/deviceInfo"; import { addBasicsInfo } from "@/api/workOrder/basicsInfo"; import gaodeMap from "utils/gaodeMap.js"; import { map, DEVICE_TYPE } from "utils/gaodeMap.js"; import { inspectorList } from "@/api/system/user"; import echarts from 'echarts'; export default { props:["resourceId"], name: "DeviceAlarm", components: { workOrder: ()=> import('../../workOrder/detail/index.vue') }, data() { return { dialogVisible: false, dataListdetail: [], // 设备信息表格数据 deviceInfoList: [], alarmId:'', deviceType:'', // 折线图标题 title: "", open: false, // 巡检员列表 inspector: [], // 表单参数 form: { }, rule: { }, // 表单校验 rules: { orderName: [ { required: true, message: "工单名称不能为空", trigger: "blur" }, ], appointInspector: [ { required: true, message: "请选择巡检人员", trigger: "blur" }, ], }, }; }, created() { // 如果是跳转来的,则接受初始化参数 if(this.resourceId){ this.alarmId = this.resourceId; }else{ this.alarmId = this.$route.query.alarmId; } this.getDetail(); }, mounted() { // let gaoMap = new gaodeMap("石家庄"); // this.gaoMap = gaoMap; }, methods: { initData(getData1, getData2, getData3) { // 基于准备好的dom,初始化echarts实例 var myChart1 = echarts.init(document.getElementById('main1')); // 绘制图表 myChart1.setOption({ title: { text: '标况流量、工况流量(前后一小时)' }, tooltip: { trigger: 'axis' }, legend: { data: ['标况流量', '工况流量'], right: 80, }, xAxis: { type: 'category', // data: this.dataX, // data: ['23', '44', '77', '34', '56', '88', '38', '68', '55', '99', '44', '33'], data: getData3, boundaryGap: false, //控制日期是否在中间显示 axisLabel: { show: true, //是否显示日期 // interval: 0, //强制显示全部 rotate: 40,//倾斜的角度 textStyle: { color: '#000', //日期的颜色 fontSize: 10 //字体的大小 } }, axisLine: { lineStyle: { color: '#ccc' // x轴的颜色 } } }, yAxis: { type: 'value', axisLabel: { formatter: '{value}', textStyle: { color: '#000' //数字的颜色 }, inside: false //控制数据是否在内侧还是外侧显示 }, axisLine: { lineStyle: { color: '#ccc' // 折线的颜色 } } }, series: [ { // data: this.dataY, name: '标况流量', // data: [820, 232, 901, 534, 1290, 330, 1320, 345, 654, 189, 980, 234], data: getData1, type: 'line', symbol: 'circle', //是否显示实心的折线圆点 smooth: true, //让折线有弧度 symbolSize: 7, //折线圆点的大小 itemStyle: { normal: { color: '#efc883', //折线点的颜色 lineStyle: { color: '#efc883' //折线的颜色 }, // label: { show: true } //是否在折线点上显示数字 } } }, { // data: this.dataY, name: '工况流量', // data: [500, 600, 700, 300, 1100, 130, 1200, 820, 932, 901, 934, 1290], data: getData2, type: 'line', symbol: 'circle', //是否显示实心的折线圆点 smooth: true, //让折线有弧度 symbolSize: 7, //折线圆点的大小 itemStyle: { normal: { color: '#053B6A', //折线点的颜色 lineStyle: { color: '#053B6A' //折线的颜色 }, // label: { show: true } //是否在折线点上显示数字 } } } ] }); }, drawPieChart(getData4, getData5, getData3) { // 基于准备好的dom,初始化echarts实例 var myChart2 = echarts.init(document.getElementById('main2')); // 绘制图表 myChart2.setOption({ title: { text: '标况累积量、工况累积量(前后一小时)' }, tooltip: { trigger: 'axis' }, legend: { data: ['标况累积量', '工况累积量'], right: 80, }, xAxis: { type: 'category', // data: this.dataX, data: getData3, boundaryGap: false, //控制日期是否在中间显示 axisLabel: { show: true, //是否显示日期 // interval: 0, //强制显示全部 rotate: 40,//倾斜的角度 textStyle: { color: '#000', //日期的颜色 fontSize: 10 //字体的大小 } }, axisLine: { lineStyle: { color: '#ccc' // x轴的颜色 } } }, yAxis: { type: 'value', axisLabel: { formatter: '{value}', textStyle: { color: '#000' //数字的颜色 }, inside: false //控制数据是否在内侧还是外侧显示 }, axisLine: { lineStyle: { color: '#ccc' // 折线的颜色 } } }, series: [ { // data: this.dataY, name: '标况累积量', data: getData4, type: 'line', symbol: 'circle', //是否显示实心的折线圆点 smooth: true, //让折线有弧度 symbolSize: 7, //折线圆点的大小 itemStyle: { normal: { color: '#efc883', //折线点的颜色 lineStyle: { color: '#efc883' //折线的颜色 }, // label: { show: true } //是否在折线点上显示数字 } } }, { // data: this.dataY, name: '工况累积量', data: getData5, type: 'line', symbol: 'circle', //是否显示实心的折线圆点 smooth: true, //让折线有弧度 symbolSize: 7, //折线圆点的大小 itemStyle: { normal: { color: '#053B6A', //折线点的颜色 lineStyle: { color: '#053B6A' //折线的颜色 }, // label: { show: true } //是否在折线点上显示数字 } } } ] }); }, main3(getData6, getData3) { // 基于准备好的dom,初始化echarts实例 var myChart3 = echarts.init(document.getElementById('main3')); // 绘制图表 myChart3.setOption({ title: { text: '温度(前后一小时)' }, tooltip: { trigger: 'axis' }, legend: { data: ['温度'], right: 80, }, xAxis: { type: 'category', // data: this.dataX, data: getData3, boundaryGap: false, //控制日期是否在中间显示 axisLabel: { show: true, //是否显示日期 // interval: 0, //强制显示全部 // rotate: 40,//倾斜的角度 textStyle: { color: '#000', //日期的颜色 fontSize: 10 //字体的大小 } }, axisLine: { lineStyle: { color: '#ccc' // x轴的颜色 } } }, yAxis: { type: 'value', axisLabel: { formatter: '{value}', textStyle: { color: '#000' //数字的颜色 }, inside: false //控制数据是否在内侧还是外侧显示 }, axisLine: { lineStyle: { color: '#ccc' // 折线的颜色 } } }, series: [ { // data: this.dataY, name: '温度', data: getData6, type: 'line', symbol: 'circle', //是否显示实心的折线圆点 smooth: true, //让折线有弧度 symbolSize: 7, //折线圆点的大小 itemStyle: { normal: { color: '#efc883', //折线点的颜色 lineStyle: { color: '#efc883' //折线的颜色 }, // label: { show: true } //是否在折线点上显示数字 } } } ] }); }, main4(getData7, getData3) { // 基于准备好的dom,初始化echarts实例 var myChart4 = echarts.init(document.getElementById('main4')); // 绘制图表 myChart4.setOption({ title: { text: '压力(前后一小时)' }, tooltip: { trigger: 'axis' }, legend: { data: ['压力'], right: 80, }, xAxis: { type: 'category', // data: this.dataX, data: getData3, boundaryGap: false, //控制日期是否在中间显示 axisLabel: { show: true, //是否显示日期 // interval: 0, //强制显示全部 // rotate: 40,//倾斜的角度 textStyle: { color: '#000', //日期的颜色 fontSize: 10 //字体的大小 } }, axisLine: { lineStyle: { color: '#ccc' // x轴的颜色 } } }, yAxis: { type: 'value', axisLabel: { formatter: '{value}', textStyle: { color: '#000' //数字的颜色 }, inside: false //控制数据是否在内侧还是外侧显示 }, axisLine: { lineStyle: { color: '#ccc' // 折线的颜色 } } }, series: [ { // data: this.dataY, name: '压力', data: getData7, type: 'line', symbol: 'circle', //是否显示实心的折线圆点 smooth: true, //让折线有弧度 symbolSize: 7, //折线圆点的大小 itemStyle: { normal: { color: '#efc883', //折线点的颜色 lineStyle: { color: '#efc883' //折线的颜色 }, // label: { show: true } //是否在折线点上显示数字 } } } ] }); }, /** 下发按钮操作 */ handleIssue(alarmId) { // this.reset(); this.getInspectorList(); // const alarmId = row.alarmId || this.ids; getDeviceAlarm(alarmId).then((response) => { this.form = response.data; this.open = true; this.title = "填写工单信息"; }); }, /** 提交按钮 */ submitForm() { this.$refs["form"].validate((valid) => { if (valid) { this.form.resourceId = this.form.alarmId; this.form.orderType = "3"; addBasicsInfo(this.form).then((response) => { this.msgSuccess("生成工单成功"); this.open = false; this.getList(); }); } }); }, getInspectorList() { this.loading = true; inspectorList().then((response) => { this.inspector = response.data; this.loading = false; }); }, setUserId(val) { this.form.appointInspector = val; }, // 取消按钮 cancel() { this.open = false; // this.reset(); }, /** 详细信息跳转 */ showDetail(orderId) { /*this.$router.push({ path: '/workOrder/detail', query:{ orderId : orderId } }) //带参跳转*/ this.dialogVisible = true; }, getDetail (){ getDeviceAlarm(this.alarmId).then(response =>{ this.form = response.data; this.deviceType=this.form.deviceType; getInformation(this.form.deviceId).then(response =>{ this.deviceInfoList=response.data; }) console.log("this.form", this.form); if(this.form.pipeList != null){ let pipe = this.form.pipeList[0]; const {coordinates} = this.form.pipeList[0]; const path1 = eval(coordinates)[0]; const path2 = eval(coordinates)[1]; const path3 = [(Number(path1[0]) + Number(path2[0])) / 2, (Number(path1[1]) + Number(path2[1])) / 2]; let gaoMap = new gaodeMap(process.env.VUE_APP_MAP_CENTER,path3,"containerAlarm"); this.gaoMap=gaoMap; console.log("pipe", pipe); this.dataListdetail.push(pipe); this.gaoMap.onlyLine(pipe); } if(this.form.deviceList != null){ console.log(this.form.deviceList,"oooooooooooo") let device = this.form.deviceList[0]; console.log("device", device); this.dataListdetail.push(device); let gaoMap = new gaodeMap(process.env.VUE_APP_MAP_CENTER,[device.longitude, device.latitude],"containerAlarm"); this.gaoMap = gaoMap; if("1" == device.deviceType){ this.gaoMap.addMarker(DEVICE_TYPE.REGEULATORBOX, device,"false") } if("2" == device.deviceType){ this.gaoMap.addMarker(DEVICE_TYPE.VALUEWELL, device,"false") } if("3" == device.deviceType){ this.gaoMap.addMarker(DEVICE_TYPE.FLOWMETER, device,"false") } if("4" == device.deviceType){ this.gaoMap.addMarker(DEVICE_TYPE.PRESSUREGAGE, device,"false") } // this.gaoMap.addMarker(DEVICE_TYPE.WORKORDER, device); // this.gaoMap.resetMapCenter([device.longitude, device.latitude]); } var getData1 = []; var getData2 = []; var getData3 = []; var getData4 = []; var getData5 = []; var getData6 = []; var getData7 = []; //先进行赋值 for (let i = 0; i < this.form.deviceReportDataList.length; i++) { getData1.push(this.form.deviceReportDataList[i].standardConditionFlow) getData2.push(this.form.deviceReportDataList[i].workingConditionFlow) getData3.push(this.dateFtt("hh:mm:ss",new Date(this.form.deviceReportDataList[i].reportTime))) getData4.push(this.form.deviceReportDataList[i].standardConditionAccumulation) getData5.push(this.form.deviceReportDataList[i].workingConditionAccumulation) getData6.push(this.form.deviceReportDataList[i].temperature) getData7.push(this.form.deviceReportDataList[i].pressure) } this.initData(getData1, getData2, getData3); this.drawPieChart(getData4, getData5, getData3); this.main3(getData6, getData3); this.main4(getData7, getData3); console.log(this.form.deviceReportDataList) console.log("getData1", getData1) console.log("getData2", getData2) console.log("getData3", getData3) if(this.form.orderType == '1') { // 获取设备列表树 let data = { key1: this.form.deviceInfoList, key2: this.form.pipeList }; deviceTree(data).then(response => { this.deviceOptions[0].childList = response.data; }); } }); }, dateFtt(fmt,date) { //author: meizz var o = { "M+" : date.getMonth()+1, //月份 "d+" : date.getDate(), //日 "h+" : date.getHours(), //小时 "m+" : date.getMinutes(), //分 "s+" : date.getSeconds(), //秒 "q+" : Math.floor((date.getMonth()+3)/3), //季度 "S" : date.getMilliseconds() //毫秒 }; if(/(y+)/.test(fmt)) fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length)); for(var k in o) if(new RegExp("("+ k +")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); return fmt; } } } </script> <style> .div-null { width: 100%; height: 300px; text-align: center; line-height: 250px; } .el-tree-node__content { width: 150px; } .el-divider--horizontal { display: block; height: 1px; width: 100%; margin: 20px 0; } .feedbackTime-div { float: left; margin-left: 150px; margin-top: 10px; } .feedbackTime { height: 120px; width: 120px; float: left; margin-left: 15px; margin-top: 5px; margin-bottom: 15px; display: flex; justify-content: center; align-items: center; } .el-card__body { padding: 5px 20px 20px 20px; } .detail .el-form { width: 20%; } .detail .el-form-item { margin-bottom: 0px; } .el-tree { margin-top: 5px; } .avatar-uploader { width: 25%; float: left; } .avatar-uploader .el-upload { border: 1px dashed #d9d9d9; border-radius: 6px; cursor: pointer; position: relative; overflow: hidden; } .avatar-uploader .el-upload:hover { border-color: #409EFF; } .avatar-uploader-icon { font-size: 28px; color: #8c939d; width: 178px; height: 178px; line-height: 178px; text-align: center; } .avatar { width: 178px; height: 178px; display: block; } li { font-size: 15px; font-weight: 900; } </style>