10.10 充电详情电池编码更改

property_main
shilei 2 weeks ago
parent a247341fc6
commit 59b57b017a

@ -8,24 +8,25 @@
</div>
<div class="main_info">
<div>
<el-form :model="ruleForm_vin" :rules="rules_vin" ref="ruleFormRef" label-width="150px">
<el-form-item label="VIN码" prop="velVin">
<el-input v-model="ruleForm_vin.velVin" size="large" placeholder="请输入合法的VIN码" style="width: 300px; margin-left: 30px" clearable></el-input>
<el-form :model="ruleForm_vin" :rules="rules_vin" ref="ruleFormRef" label-width="150px">
<el-form-item label="VIN码" prop="vehicleVin">
<el-input v-model="ruleForm_vin.vehicleVin" size="large" placeholder="请输入合法的VIN码" style="width: 300px; margin-left: 30px" clearable></el-input>
</el-form-item>
<!-- <el-form-item label="车型" prop="strVelType">
<el-select v-model="ruleForm_vin.strVelType" size="large" placeholder="请选择车型" style="width: 300px; margin-left: 30px">
<el-option v-for="item in car_type_list" :key="item.fTruckTypeCode" :label="item.fTruckTypeCode" :value="item.fTruckTypeCode"> </el-option>
</el-select>
</el-form-item> -->
<el-form-item label="车牌" prop="velNo">
<el-input v-model="ruleForm_vin.velNo" size="large" placeholder="请输入车牌" style="width: 300px; margin-left: 30px" clearable></el-input>
<el-form-item label="车牌" prop="vehicleNo">
<el-input v-model="ruleForm_vin.vehicleNo" size="large" placeholder="请输入车牌" style="width: 300px; margin-left: 30px" clearable></el-input>
</el-form-item>
<!-- <el-form-item label="蓝牙MAC地址" prop="strVelMac">
<el-input v-model="ruleForm_vin.strVelMac" size="large" placeholder="请输入合法的MAC地址" style="width: 300px; margin-left: 30px" clearable></el-input>
</el-form-item> -->
<el-form-item class="bot_right_item">
<el-button class="start_read" size="large" @click="write_dates"></el-button>
<el-button class="start_read" size="large" @click="read_dates"></el-button>
</el-form-item>
</el-form>
</div>
@ -72,20 +73,19 @@
import { getAPI } from '/@/utils/axios-utils';
import { ElMessageBox, ElMessage } from 'element-plus';
// import CreateForm from './form';
import { SysMonitorApi} from '/@/api-services/api';
import { SysMonitorApi } from '/@/api-services/api';
import { onMounted, reactive, ref } from 'vue';
import { useI18n } from 'vue-i18n';
const { t } = useI18n();
const ruleForm_vin = ref({
velVin:null,
velNo:null,
vehicleVin: null,
vehicleNo: null,
// strVelVin: null,
// strVelType: null,
// strVelNo: null,
// strVelMac: null,
});
const ruleFormRef=ref()
const ruleFormRef = ref();
const ruleForm_Preview = ref({
ASCll: null,
analysis: null,
@ -94,12 +94,12 @@ const ruleForm_identify = ref({
car_type: null,
});
const rules_vin = ref({
velVin: [{ required: true, message: '请输入VIN码', trigger: 'blur' }],
velNo: [{ required: true, message: '请输入VIN码', trigger: 'blur' }],
vehicleVin: [{ required: true, message: '请输入', trigger: 'blur' }],
vehicleNo: [{ required: true, message: '请输入', trigger: 'blur' }],
// strVelVin: [{ required: true, message: 'VIN', trigger: 'blur' }],
// strVelNo: [{ required: true, message: '', trigger: 'blur' }],
// strVelType: [{ required: true, message: '', trigger: 'blur' }],
// strVelMac: [{ required: true, message: 'MAC', trigger: 'blur' }],
// ASCll: [{ required: true, message: '', trigger: 'blur' }],
// analysis: [{ required: true, message: '', trigger: 'blur' }],
@ -110,21 +110,32 @@ onMounted(async () => {});
const beginToIdentify = async () => {};
const write_dates = async () => {
ruleFormRef.value.validate(async(valid, fields)=>{
if(!valid){
return
ruleFormRef.value.validate(async (valid, fields) => {
if (!valid) {
return;
}
const response = await getAPI(SysMonitorApi).apiManualWriteRfidPost(ruleForm_vin.value);
// console.log(response, 'response');
if (response.data.isSuccess) {
ElMessage.success(t('message.system_base_config.Operation_successful'));
} else {
ElMessage.error(t('message.system_base_config.Operation_failed'));
}
})
});
};
const read_dates = async () => {
const response = await getAPI(SysMonitorApi).apiReadRfidPost();
// console.log(response, 'response');
if (response.data.isSuccess) {
ElMessage.success('读取成功');
ruleForm_vin.value.vehicleNo = response.data.data.velNo;
ruleForm_vin.value.vehicleVin = response.data.data.velVin;
} else {
ElMessage.error('读取失败');
}
};
const getrfidtaginfo_handle = async () => {};
</script>

@ -9,7 +9,7 @@
</template>
<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="auto">
<el-row :gutter="35">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="创建人" prop="createdBy" >
<el-input v-model="state.ruleForm.createdBy" placeholder="" clearable />
</el-form-item>
@ -17,7 +17,6 @@
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="创建时间" prop="createdTime" >
<el-date-picker v-model="state.ruleForm.createdTime" type="datetime" placeholder="" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" class="w100" />
<!-- <el-input v-model="state.ruleForm.createdTime" placeholder="" clearable /> -->
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
@ -28,9 +27,8 @@
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="更新时间" prop="updatedTime" >
<el-date-picker v-model="state.ruleForm.updatedTime" type="datetime" placeholder="" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" class="w100" />
<!-- <el-input v-model="state.ruleForm.updatedTime" placeholder="" clearable /> -->
</el-form-item>
</el-col>
</el-col> -->
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="异常原因" prop="failReason" >
<el-input v-model="state.ruleForm.failReason" placeholder="" clearable />
@ -82,7 +80,7 @@ const state = reactive({
//
const openDialog = (row: any) => {
console.log(row,".........")
// console.log(row,".........")
state.ruleForm = JSON.parse(JSON.stringify(row));
state.isShowDialog = true;
ruleFormRef.value?.resetFields();

@ -16,50 +16,43 @@
</div>
<div style="padding: 10px; box-sizing: border-box">
<el-descriptions :column="1" border>
<el-descriptions-item label="单体电压过低轻微报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum11 == 'true'"></div>
<el-descriptions-item label="烟感故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.smokeSensorFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="单体电压过低一般报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum12 == 'true'"></div>
<el-descriptions-item label="输入电压过压" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.inputVoltageUndervoltage == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="单体电压过低严重报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum13 == 'true'"></div>
<el-descriptions-item label="输入电压欠压" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.inputVoltageUndervoltage == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="单体电压过高轻微报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum14 == 'true'"></div>
<el-descriptions-item label="直流输出过流" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.dcOutputOvercurrent == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="单体电压过高一般报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum15 == 'true'"></div>
<el-descriptions-item label="直流输出过压" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.dcOutputOvervoltage == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="单体电压过高严重报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum16 == 'true'"></div>
<el-descriptions-item label="直流输出欠压" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.dcOutputUndervoltage == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="单体压差过大轻微报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum17 == 'true'"></div>
<el-descriptions-item label="充电模块过流" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.chargingModuleOvercurrent == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="单体压差过大一般报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum18 == 'true'"></div>
<el-descriptions-item label="充电模块过温" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.chargingModuleOvertemperature == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="单体压差过大严重报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum21 == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="电池温度过低轻微报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum22 == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="电池温度过低一般报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum23 == 'true'"></div>
<el-descriptions-item label="后台通讯故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.backendCommunicationFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
</el-descriptions>
</div>
</div>
@ -108,47 +101,80 @@
<span>剩余充电时间(min)</span>
</div>
</div>
<div style="background: #28353f; margin-top: 10px; flex: 1">
<div style="background: #28353f; margin-top: 10px; flex: 1" class="public_column_flex">
<div class="public_flex">
<el-icon><MuteNotification /></el-icon>
<span style="margin-left: 5px">告警信息</span>
<span style="margin-left: 5px">故障信息</span>
</div>
<div style="padding: 10px; box-sizing: border-box">
<el-descriptions :column="1" border>
<el-descriptions-item label="电池温度过低严重报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum24 == 'true'"></div>
<el-descriptions :column="2" border>
<el-descriptions-item label="急停故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.emergencyStopFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="电池温度过高轻微报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum25 == 'true'"></div>
<el-descriptions-item label="直流母线输出接触器故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.dcOutputContactorFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="电池温度过高一般报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum26 == 'true'"></div>
<el-descriptions-item label="输出熔断器故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.outputFuseFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="电池温度过高严重报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum27 == 'true'"></div>
<el-descriptions-item label="充电接口电子锁故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.chargingInterfaceElectronicLockFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="电池温度过高严重报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum28 == 'true'"></div>
<el-descriptions-item label="充电机风扇故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.chargingMachineFanFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="电池温差过大一般报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum31 == 'true'"></div>
<el-descriptions-item label="避雷器故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.lightningArresterFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="电池温差过大严重报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<!-- <el-descriptions-item label="电池温差过大严重报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum32 == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item> -->
<el-descriptions-item label="整组模块通讯故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.wholeModuleCommunicationFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="绝缘监测故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.insulationMonitoringFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="电池反接故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.batteryReverseConnectionFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="充电桩过温故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.chargingPileOvertemperatureFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="充电枪过温故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.chargingGunOvertemperatureFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="直流电能表通讯故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.dcWatthourMeterCommunicationFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="门禁故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.accessControlFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="泄放回路故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.dischargeCircuitFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="SOC 过低轻微报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum33 == 'true'"></div>
<el-descriptions-item label="交流输入接触器粘连故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.acInputContactorStickingFailure == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
<el-descriptions-item label="SOC 过低一般报警" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.faultNum34 == 'true'"></div>
<el-descriptions-item label="并联接触器误动故障" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
<div class="success_item" v-if="preVersion_obj.batteryBaseInfoResp != null && preVersion_obj.batteryBaseInfoResp.parallelContactorMalfunction == 'true'"></div>
<div class="error_item" v-else></div>
</el-descriptions-item>
</el-descriptions>
@ -164,7 +190,7 @@
<div style="padding: 10px; box-sizing: border-box">
<el-descriptions :column="1" border>
<el-descriptions-item label="电池编码" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
{{ preVersion_obj.batteryBaseInfoResp == null ? '--' : preVersion_obj.batteryBaseInfoResp.BatteryNo }}
{{ preVersion_obj.batteryBaseInfoResp == null ? '--' : preVersion_obj.batteryBaseInfoResp.batteryNo }}
</el-descriptions-item>
<el-descriptions-item label="电池健康状态" label-align="left" align="center" label-class-name="my-label" class-name="my-content">
{{ preVersion_obj.batteryBaseInfoResp == null ? '--' : preVersion_obj.batteryBaseInfoResp.soh }}

@ -8,7 +8,7 @@
</div>
</div>
<el-row :gutter="10" class="bot_main">
<el-col :span="5">
<!-- <el-col :span="5">
<div class="left_hinge">
<div>
<div class="hinge_topsdates">
@ -16,9 +16,6 @@
关键数据 / KEY DATA
</div>
<dv-decoration3 style="width: 250px; height: 25px" />
<!-- <div class="interval_line"></div> -->
<!-- -->
<div class="batter_dates">
<div class="allow_infos">
<div>
@ -41,19 +38,16 @@
</div>
</div>
<div class="echarts_battery" id="echarts_battery" ref="homeLineRef_THREE">
<!-- <dv-conical-column-chart :config="conical_config" style="width: 100%; height: 100%" /> -->
<!-- <dv-capsule-chart :config="conical_config" style="width: 100%; height: 100%" /> -->
</div>
</div>
</div>
<!-- echarts 表格 -->
<div class="batter_charts">
<div id="charts_content" ref="homeLineRef" v-if="isshowing_charts" class="hover_steam_in"></div>
<div id="charts_content_EQM" ref="homeLineRef_EQM" v-else class="hover_steam_in"></div>
</div>
</div>
</el-col>
<el-col :span="19">
</el-col> -->
<el-col :span="24">
<div class="strategy_center">
<div class="infor_monitor">
<div class="strategy_soc">

@ -81,8 +81,8 @@
</div>
<div>
<span>车辆Mac:</span>
<span>{{ mStationSwapTruckField != null ? mStationSwapTruckField.velMac : '--' }}</span>
<span>换电时长:</span>
<span>{{ mStationSwapTruckField != null ? mStationSwapTruckField.swapDuration : '--' }}</span>
</div>
<div>
<span>车辆连接:</span>
@ -90,7 +90,7 @@
<span v-if="boxConnectFlag"></span>
<span v-else></span>
</div>
<!-- <div>
<div>
<span @click="handle_check_deviceLogs(0)">:</span>
<span v-if="radarConnectFlag == 1"></span>
<span v-else-if="radarConnectFlag == 2">无电池</span>
@ -100,7 +100,7 @@
<span v-else-if="radarConnectFlag == 6">车辆到位</span>
<span v-else-if="radarConnectFlag == 7">车辆靠左</span>
<span v-else></span>
</div> -->
</div>
<div>
<span>钥匙状态:</span>
<!-- <span>{{ mStationSwapTruckField != null ? mStationSwapTruckField.velMac : '--' }}</span> -->
@ -152,9 +152,9 @@
</div>
<!-- -->
<div class="center_charg">
<div v-for="(item, index) in batter_list" :key="index" :class="handle_isgreen_brder(index)">
<div v-for="(item, index) in batter_list" :key="index" :class="handle_isgreen_brder(item.no)">
<!-- <div v-for="(item, index) in batter_list" :key="index" class="isborder_green"> -->
<div class="title_posi">#{{ item.no }}</div>
<div class="title_posi">#{{ item.no }}<i style="text-decoration: underline; color: #e2a84e; cursor: pointer" @click="handle_push_going(item)">()</i></div>
<div class="switch_posi" :class="item.exists == 1 ? 'switch_posi isswitch_posi' : 'switch_posi isfalseswitch_posi'">{{ item.exists == 1 ? '在位' : '不在位' }}</div>
<!-- -->
<div class="form_info">
@ -180,11 +180,7 @@
/>
</div>
<div>
<span @click="handle_push_going(item)"
>电池编号
<i style="text-decoration: underline; color: #e2a84e; cursor: pointer">(详情)</i>
</span
>
<span>电池编号 </span>
<span>{{ item.batteryNo }}</span>
</div>
<div>
@ -218,23 +214,6 @@
</div>
<div class="first_power">
<!-- <div class="bleth_status">
<div>
<div class="content_status" @click="handle_check_deviceLogs(0)">
<span>雷达状态</span>
<div class="public_flex fouth_south">
<span :class="radarConnectFlag == 0 ? 'blue_tooth_class' : ''">不工作</span>
<span :class="radarConnectFlag == 1 ? 'blue_tooth_class' : ''">无车</span>
<span :class="radarConnectFlag == 2 ? 'blue_tooth_class' : ''">无电池</span>
<span :class="radarConnectFlag == 3 ? 'blue_tooth_class' : ''">角度偏移过大</span>
<span :class="radarConnectFlag == 4 ? 'blue_tooth_class' : ''">车辆靠后</span>
<span :class="radarConnectFlag == 5 ? 'blue_tooth_class' : ''">车辆靠前</span>
<span :class="radarConnectFlag == 6 ? 'blue_tooth_class' : ''">车辆到位</span>
<span :class="radarConnectFlag == 7 ? 'blue_tooth_class' : ''">车辆靠左</span>
</div>
</div>
</div>
</div> -->
<div class="bleth_status">
<div>
<div class="content_status" @click="handle_check_deviceLogs(0)">
<span>雷达状态</span>
@ -244,7 +223,7 @@
</div>
</div>
</div>
</div>
</div> -->
<div class="bleth_status">
<div>
@ -257,17 +236,7 @@
</div>
</div>
</div>
<!-- <div class="bleth_status">
<div>
<div class="content_status" @click="handle_check_deviceLogs(2)">
<span>{{ $t('message.swapping.Connection_vehicles') }}</span>
<div class="public_flex fouth_south">
<span :class="boxConnectFlag ? 'blue_tooth_class' : ''">{{ $t('message.swapping.connect') }}</span>
<span :class="boxConnectFlag == false ? 'blue_tooth_class' : ''">{{ $t('message.swapping.Not_connected') }}</span>
</div>
</div>
</div>
</div> -->
<div class="bleth_status">
<div>
<div class="content_status" @click="handle_check_deviceLogs(3)">
@ -279,29 +248,6 @@
</div>
</div>
</div>
<!-- <div class="bleth_status">
<div>
<div class="content_status">
<span>{{ $t('message.swapping.Key_status') }}</span>
<div class="public_flex fouth_south">
<span :class="keyStatus == 2 ? 'blue_tooth_class' : ''">ON</span>
<span :class="keyStatus == 1 ? 'blue_tooth_class' : ''">ACC</span>
<span :class="keyStatus == 0 ? 'blue_tooth_class' : ''">OFF</span>
</div>
</div>
</div>
</div> -->
<!-- <div class="bleth_status">
<div>
<div class="content_status">
<span>{{ $t('message.swapping.Locked_state') }}</span>
<div class="public_flex fouth_south">
<span :class="lockStatus == 2 ? 'blue_tooth_class' : ''">{{ $t('message.swapping.Lock_up') }}</span>
<span :class="lockStatus == 1 ? 'blue_tooth_class' : ''">{{ $t('message.swapping.Unlock') }}</span>
</div>
</div>
</div>
</div> -->
<div class="bleth_status">
<div>
@ -434,14 +380,14 @@
<el-dialog v-model="dialogFormVisible_personnel" :title="$t('message.swapping.manual_operation')" width="500">
<el-form :model="per_form" ref="per_ruleform" label-width="auto">
<el-form-item :label="$t('message.swapping.Operator')" prop="operator" :rules="[{ required: true, message: $t('message.system_base_config.is_null'), trigger: 'blur' }]">
<!-- <el-form-item :label="$t('message.swapping.Operator')" prop="operator" :rules="[{ required: true, message: $t('message.system_base_config.is_null'), trigger: 'blur' }]">
<el-input v-model="per_form.operator" autocomplete="off" />
</el-form-item>
</el-form-item> -->
<el-form-item :label="$t('message.swapping.Reason_for_operation')" prop="reason" :rules="[{ required: true, message: $t('message.system_base_config.is_null'), trigger: 'blur' }]">
<!-- <el-select v-model="per_form.reason" placeholder="" clearable>
<el-select v-model="per_form.reason" placeholder="" clearable>
<el-option :label="item.failReason" :value="item.failReason" v-for="(item, index) in reason_list" :key="index" />
</el-select> -->
<el-input v-model="per_form.reason" type="textarea" autocomplete="off" />
</el-select>
<!-- <el-input v-model="per_form.reason" type="textarea" autocomplete="off" /> -->
</el-form-item>
</el-form>
<template #footer>
@ -536,7 +482,7 @@ const error_info_list = ref([]);
const batter_list = ref([]);
const isStep_active = ref(1);
const plcConnectFlag = ref(false);
const radarConnectFlag = ref(false);
const radarConnectFlag = ref(1);
const rfidConnectFlag = ref(false);
const isanimation = ref(false);
const deviceLogs = ref([]);
@ -557,6 +503,7 @@ onMounted(async () => {
handle_SwapMonitorData();
handle_GetDeviceState();
handle_apiSwapPlcSuccGet();
handle_charge();
}, 4000);
timer_one.value = setInterval(() => {
updateTime();
@ -564,7 +511,7 @@ onMounted(async () => {
handle_car_list();
handle_charg_List();
handle_car_maual_list();
// handle_car_reason_list();
handle_car_reason_list();
});
onBeforeUnmount(() => {
clearInterval(timer.value);
@ -665,7 +612,7 @@ const handle_GetDeviceState = async () => {
boxConnectFlag.value = response.data?.data.boxConnectFlag;
plcConnectFlag.value = response.data?.data.plcConnectFlag;
rfidConnectFlag.value = response.data?.data.rfidConnectFlag;
radarConnectFlag.value = response.data?.data.radarConnectFlag;
// radarConnectFlag.value = response.data?.data.radarConnectFlag;
};
const handle_error_list = async () => {
@ -692,11 +639,21 @@ const handle_charge = async () => {
item.canSwapFlag = false;
}
}
batter_list.value = array;
//
//
const newIndexes = [1, 3, 5, 7, 0, 2, 4, 6];
//
const rearrangedArray = newIndexes.map((index) => array[index]);
// console.log(rearrangedArray, 'rearrangedArray');
batter_list.value = rearrangedArray;
};
const handle_isgreen_brder = (index) => {
if (index + 1 == mStationSwapTruckField.value.downBatteryBinNo || index + 1 == mStationSwapTruckField.value.upBatteryBinNo) {
if (index == mStationSwapTruckField.value.downBatteryBinNo || index == mStationSwapTruckField.value.upBatteryBinNo) {
return 'isborder_green';
} else {
return '';
@ -993,7 +950,7 @@ const handle_SwapMonitorData = async () => {
mStationSwapTruckField.value = obj_data?.vehicleInfo;
batteryInfo.value = obj_data?.batteryInfo;
steps_list.value = obj_data.stateInfo;
// radarConnectFlag.value = obj_data?.radarResp.carStatus;
radarConnectFlag.value = obj_data?.radarResp.carStatus;
deviceLogs.value = Object.values(obj_data?.deviceLogs);
for (var i = 0; i < steps_list.value.length; i++) {
if (steps_list.value[i].status == 1) {

@ -4,20 +4,19 @@
<el-col :span="18" :xs="40" style="display: flex; height: 100%; flex: 1">
<el-card class="full-table" shadow="hover" style="margin-top: 5px" :body-style="{ height: 'calc(100% - 51px)' }">
<el-form :model="state.queryParams" ref="queryForm" :inline="true">
<el-form-item :label="$t('message.replace_log.orderNumber')">
<!-- <el-form-item :label="$t('message.replace_log.orderNumber')">
<el-input v-model="state.queryParams.sn" placeholder="" clearable />
</el-form-item>
</el-form-item> -->
<el-form-item :label="$t('message.replace_log.licensePlate')">
<el-input v-model="state.queryParams.vehicleNo" placeholder="" clearable />
</el-form-item>
<el-form-item :label="$t('message.replace_log.fullBatteryCode')">
<!-- <el-form-item :label="$t('message.replace_log.fullBatteryCode')">
<el-input v-model="state.queryParams.upBatteryNo" placeholder="" clearable />
</el-form-item>
<el-form-item :label="$t('message.replace_log.emptyBatteryCode')">
<el-input v-model="state.queryParams.downBatteryNo" placeholder="" clearable />
</el-form-item>
</el-form-item> -->
<el-form-item :label="$t('message.replace_log.batteryChangeResult')">
<!-- <el-input v-model="state.queryParams.swapResult" placeholder="" clearable /> -->
<el-select v-model="state.queryParams.swapResult" placeholder="" clearable class="w100">
<el-option :label="$t('message.replace_log.unknown')" :value="0" />
<el-option :label="$t('message.replace_log.success')" :value="1" />
@ -45,11 +44,45 @@
</el-form-item>
</el-form>
<el-table :data="state.tenantData" style="width: 100%" v-loading="state.loading" border ref="tableRef" @selection-change="handleSelectionChange" @row-click="handleDictType">
<el-table-column type="selection" width="55" fixed> </el-table-column>
<!-- <el-table-column type="selection" width="55" fixed> </el-table-column> -->
<el-table-column type="index" :label="$t('message.replace_log.serialNumber')" width="55" align="center" fixed />
<el-table-column prop="sn" :label="$t('message.replace_log.orderNumber')" align="center" show-overflow-tooltip width="200" />
<el-table-column prop="vehicleNo" :label="$t('message.replace_log.licensePlate')" align="center" show-overflow-tooltip width="150" />
<el-table-column prop="stationNumber" label="站号" align="center" show-overflow-tooltip width="150" />
<el-table-column prop="createdTime" label="创建时间" align="center" show-overflow-tooltip width="200" />
<el-table-column prop="vehicleVin" :label="$t('message.replace_log.vehicleVin')" align="center" show-overflow-tooltip width="200" />
<el-table-column prop="vehicleNo" :label="$t('message.replace_log.licensePlate')" align="center" show-overflow-tooltip width="150" />
<el-table-column prop="company" label="公司" align="center" show-overflow-tooltip width="200" />
<el-table-column prop="departments" label="部门" align="center" show-overflow-tooltip width="200" />
<el-table-column :label="$t('message.replace_log.batteryChangeType')" align="center" width="200" show-overflow-tooltip>
<template #default="scope">
<el-tag v-if="scope.row.swapWay === 0"> {{ $t('message.replace_log.manual') }} </el-tag>
<el-tag v-if="scope.row.swapWay === 1"> {{ $t('message.replace_log.automatic') }} </el-tag>
<el-tag v-if="scope.row.swapWay === 2"> </el-tag>
</template>
</el-table-column>
<el-table-column prop="swapBeginTime" :label="$t('message.replace_log.batteryChangeStartTime')" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="swapEndTime" :label="$t('message.replace_log.batteryChangeEndTime')" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="swapDuration" label="换电用时" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="upBatteryBinNo" label="换电仓位(取)" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="upBatteryNo" label="电池编号(取)" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="upBatteryElectricQuantity" label="换池电量kWh" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="upBatterySocDto" label="soc" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="downBatteryBinNo" label="换电仓位(存)" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="downBatteryNo" label="电池编号(存)" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="downBatteryElectricQuantity" label="换池电量kwh" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="downBatterySocDto" label="soc" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="electricQuantity" label="电量差kwh" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="swapResult" :label="$t('message.replace_log.batteryChangeResult')" align="center" show-overflow-tooltip>
<template #default="scope">
<el-tag v-if="scope.row.swapResult === 0"> {{ $t('message.replace_log.unknown') }} </el-tag>
<el-tag v-if="scope.row.swapResult === 1"> {{ $t('message.replace_log.success') }} </el-tag>
<el-tag v-if="scope.row.swapResult === 2"> {{ $t('message.replace_log.failure') }} </el-tag>
</template>
</el-table-column>
<el-table-column prop="serviceTotalFee" label="服务费" align="center" width="200" show-overflow-tooltip>
<template #default="scope">
{{ scope.row.serviceTotalFee / 100 }}
</template>
</el-table-column>
<el-table-column prop="electricityTotalFee" label="电费(元)" align="center" show-overflow-tooltip width="200">
<template #default="scope">
@ -66,29 +99,8 @@
{{ scope.row.totalFee / 100 }}
</template>
</el-table-column>
<el-table-column prop="manualStep" label="手动操作" align="center" show-overflow-tooltip width="200" />
<el-table-column prop="manualStep" label="备注" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="vehicleEnterTime" :label="$t('message.replace_log.vehicleEntryTime')" header-align="center" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="vehicleLeaveTime" :label="$t('message.replace_log.vehicleExitTime')" header-align="center" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="swapBeginTime" :label="$t('message.replace_log.batteryChangeStartTime')" align="center" width="200" show-overflow-tooltip />
<el-table-column prop="swapEndTime" :label="$t('message.replace_log.batteryChangeEndTime')" align="center" width="200" show-overflow-tooltip />
<el-table-column :label="$t('message.replace_log.batteryChangeType')" align="center" show-overflow-tooltip>
<template #default="scope">
<el-tag v-if="scope.row.swapWay === 0"> {{ $t('message.replace_log.manual') }} </el-tag>
<el-tag v-if="scope.row.swapWay === 1"> {{ $t('message.replace_log.automatic') }} </el-tag>
<el-tag v-if="scope.row.swapWay === 2"> </el-tag>
</template>
</el-table-column>
<el-table-column prop="swapResult" :label="$t('message.replace_log.batteryChangeResult')" align="center" show-overflow-tooltip>
<template #default="scope">
<el-tag v-if="scope.row.swapResult === 0"> {{ $t('message.replace_log.unknown') }} </el-tag>
<el-tag v-if="scope.row.swapResult === 1"> {{ $t('message.replace_log.success') }} </el-tag>
<el-tag v-if="scope.row.swapResult === 2"> {{ $t('message.replace_log.failure') }} </el-tag>
</template>
</el-table-column>
<el-table-column prop="failReason" :label="$t('message.replace_log.failureReason')" align="center" show-overflow-tooltip />
<el-table-column prop="company" label="公司" align="center" show-overflow-tooltip width="200" />
<el-table-column prop="departments" label="部门" align="center" show-overflow-tooltip width="200" />
<el-table-column :label="$t('message.replace_log.operation')" width="250" fixed="right" align="center" show-overflow-tooltip>
<template #default="scope">
<el-button icon="ele-Edit" size="small" text type="primary" @click="openEditTenant(scope.row)"> {{ $t('message.replace_log.edit') }} </el-button>

Loading…
Cancel
Save