<template>
|
<div class="el-dialog-wrapper">
|
<el-dialog :visible.sync="dialogVisible" class="position-absolute dialog-center dialog-no-header" width="840px"
|
top="0" :modal="false" :destroy-on-close="true" :close-on-press-escape="false" :close-on-click-modal="false"
|
:modal-append-to-body="false" v-loading="loading" element-loading-text="拼命加载中"
|
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0)">
|
<mw-step v-model="step"></mw-step>
|
<div class="step-list">
|
<div class="step-item" v-show="step == 0">
|
<new-test @nextStep="newTest"></new-test>
|
</div>
|
<div class="step-item" v-show="step == 1" v-if="step>0">
|
<test-data-input :type="params.type" @nextStep="dataInput"></test-data-input>
|
</div>
|
<div class="step-item" v-show="step == 2" v-if="step>1">
|
<test-step-confirm v-if="type=='fz'" @nextStep="completeTest"></test-step-confirm>
|
<test-step-confirm-kz v-else-if="type=='kz'" @nextStep="completeTest"></test-step-confirm-kz>
|
</div>
|
</div>
|
</el-dialog>
|
<el-dialog :visible.sync="testStepCheck" class="position-absolute dialog-center dialog-no-header" width="840px"
|
top="0" :modal="false" :destroy-on-close="true" :close-on-press-escape="false" :close-on-click-modal="false"
|
:modal-append-to-body="false">
|
<test-start :type="type" @startTest="startTest" v-if="testStepCheck"></test-start>
|
</el-dialog>
|
<el-dialog :visible.sync="startResult" class="position-absolute dialog-center dialog-no-header" width="840px"
|
top="0" :modal="false" :destroy-on-close="true" :close-on-press-escape="false" :close-on-click-modal="false"
|
:modal-append-to-body="false">
|
<heating-up-rs :list="heatingUpList" @updatePoint="updatePoint"></heating-up-rs>
|
</el-dialog>
|
<test-step-dialog :type="type" :step="testStepKey" :list="list" :end="endStep" :progress="progressStep">
|
</test-step-dialog>
|
</div>
|
</template>
|
|
<script>
|
import mwStep from "@/components/smallModule/mwStep";
|
import newTest from "@/pages/test/dialog/newTest";
|
import TestDataInput from "@/pages/test/dialog/testDataInput";
|
import TestStepConfirm from "@/pages/test/dialog/testStepConfirm";
|
import testStepConfirmKz from "@/pages/test/dialog/testStepConfirmKz";
|
import TestStart from "@/pages/test/dialog/testStart";
|
import {
|
addKzFzTest,
|
experimentPoint,
|
getExitTest,
|
testHeatingUp
|
} from "@/pages/test/js/api";
|
import HeatingUpRs from "@/pages/test/dialog/heatingUpRs";
|
import {
|
getLabel
|
} from "@/assets/js/tools";
|
import {
|
constTestType
|
} from "@/pages/test/js/const";
|
import Timeout from "@/assets/js/tools/Timeout";
|
import TestStepDialog from "@/pages/test/dialog/testStepDialog";
|
|
export default {
|
name: "LoadTestDialog",
|
props: {
|
visible: {
|
type: Boolean,
|
default: false,
|
},
|
type: {
|
require: true,
|
type: String,
|
}
|
},
|
components: {
|
TestStepDialog,
|
HeatingUpRs,
|
TestStepConfirm,
|
TestDataInput,
|
mwStep,
|
newTest,
|
testStepConfirmKz,
|
TestStart
|
},
|
data() {
|
return {
|
loading: false,
|
timer: new Timeout(),
|
step: 0,
|
dialogVisible: false,
|
testStepCheck: false,
|
startResult: false,
|
experimentId: 0,
|
params: {
|
baseData: {
|
experimentId: "", // 试验编号
|
gearSpeedRatio: "", // 齿轮转速比
|
ratedLateralSpeed: 0, // 高速侧转速,单位:r/min
|
ratedPower: 0, // 额定功率,单位KW
|
ratedRotateSpeed: 0, // 额定转速,单位:r/min
|
ratedVol: 0 // 额定电压,单位V
|
},
|
createTime: "", // 创建时间
|
deviceId: "", // 被测设备id
|
deviceSn: "", // 被测设备SN
|
duration: "", // 试验时长
|
endTime: "", // 结束时间
|
id: "", // 试验编号
|
name: "", // 试验名称
|
point: [],
|
projectId: 0, // 对应的项目
|
rz_link: 0, // 各相绕组连接情况 0 引出; 1 内部连接
|
startTime: "", // 启动时间
|
status: 0, // 状态:-1-取消,0-未开始,1-进行中,2-完成
|
type: "", // 试验类型:九大试验
|
userId: sessionStorage.getItem('uid'), // 负责人
|
username: "" // 负责人姓名
|
},
|
heatingUpList: [],
|
list: [],
|
testStepKey: -1,
|
endStep: false,
|
progressStep: false,
|
}
|
},
|
watch: {
|
visible(value) {
|
this.dialogVisible = value;
|
},
|
},
|
methods: {
|
startTimer() {
|
this.timer.start(() => {
|
this.$axios.all([
|
this.experimentPoint()
|
]).then(res => {
|
this.timer.open();
|
}).catch(error => {
|
this.timer.open();
|
});
|
}, 2000);
|
|
},
|
experimentPoint() {
|
let postData = {
|
experimentId: this.experimentId
|
}
|
experimentPoint(postData).then((res) => {
|
let rs = res.data;
|
let data = [];
|
if (rs.code == 1) {
|
data = rs.data.map(item => {
|
let start = item.startTime ? new Date(item.startTime).format("hh:mm:ss") : '';
|
let end = item.endTime ? new Date(item.endTime).format("hh:mm:ss") : '';
|
item.start = item.startTime ? `开始时间&&${start}` : '';
|
item.end = item.endTime ? `完成时间&&${end}` : '';
|
item.endText = item.averagePower ? `平均功率&&${item.averagePower}kW` : '';
|
return item;
|
});
|
}
|
this.list = data;
|
this.$nextTick(() => {
|
// 设置testStepKey
|
let step = -1;
|
this.progressStep = false;
|
for (let i = 0; i < data.length; i++) {
|
let status = data[i].status;
|
if (status == 0) {
|
step = i;
|
this.endStep = false;
|
break;
|
} else if (status == 1) {
|
step = i;
|
this.progressStep = true;
|
break;
|
}
|
step = i;
|
this.endStep = true;
|
}
|
// 设置未激活点
|
this.testStepKey = step;
|
});
|
this.$emit('updateList', this.list);
|
}).catch((err) => {
|
console.log(err)
|
});
|
},
|
checkIsTesting() {
|
getExitTest().then(res => {
|
let rs = res.data;
|
console.log(rs);
|
if (rs.code == 1) {
|
let data = rs.data;
|
if (data.type != this.type) {
|
let testType = getLabel(data.type, constTestType);
|
this.$alert("当前已开启试验:" + testType + "。如需要进行其他试验需先关闭此试验。", '系统提示', {
|
callback: () => {
|
this.$router.push('/index/testManager/testing');
|
}
|
});
|
} else {
|
console.log('查询试验步骤');
|
this.experimentId = rs.data.id;
|
this.startTimer();
|
}
|
} else {
|
this.dialogVisible = true;
|
}
|
}).catch(error => {
|
|
});
|
},
|
newTest(data) {
|
this.params.name = data.name;
|
this.params.projectId = data.projectId;
|
this.step++;
|
},
|
dataInput(data) {
|
this.params.baseData.experimentId = data.experimentId;
|
this.params.id = data.experimentId;
|
this.params.deviceSn = data.deviceSn;
|
this.params.deviceId = data.deviceId;
|
this.params.baseData.ratedPower = data.ratedPower;
|
this.params.baseData.ratedVol = data.ratedVol;
|
this.params.baseData.gearSpeedRatio = data.gearSpeedRatio;
|
this.params.baseData.ratedRotateSpeed = data.ratedRotateSpeed;
|
this.params.baseData.ratedLateralSpeed = data.ratedLateralSpeed;
|
this.step++;
|
},
|
completeTest(data) {
|
let experimentId = this.params.baseData.experimentId;
|
this.params.point = data.point.map(item => {
|
item.experimentId = experimentId;
|
return item;
|
});
|
this.loading = true;
|
addKzFzTest(this.params).then(res => {
|
let rs = res.data;
|
if (rs.code == 1) {
|
this.dialogVisible = false;
|
this.$nextTick(() => {
|
this.$layer.msg("生成试验成功");
|
this.testStepCheck = true;
|
});
|
} else {
|
this.$layer.msg("生成试验失败");
|
}
|
this.loading = false;
|
}).catch(error => {
|
this.$layer.msg("请检测网络");
|
this.loading = false;
|
});
|
},
|
startTest() { // 开始试验, 进行升温
|
this.testStepCheck = false;
|
testHeatingUp(this.params.id).then(res => {
|
let rs = res.data;
|
let data = [];
|
if (rs.code == 1) {
|
data = rs.data;
|
}
|
this.heatingUpList = data;
|
this.startResult = true;
|
}).catch(error => {
|
|
});
|
},
|
updatePoint() { // 更新节点数据
|
this.$emit('updatePoint');
|
this.startResult = false;
|
this.experimentId = this.params.id;
|
this.startTimer();
|
}
|
},
|
mounted() {
|
this.params.type = this.type;
|
this.dialogVisible = this.visible;
|
|
this.checkIsTesting();
|
},
|
destroyed() {
|
this.timer.stop();
|
}
|
}
|
</script>
|
|
<style scoped>
|
|
</style>
|