src/views/datas/dataHis.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/home/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/test/api.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/test/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/test/jhyRtInfo.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/test/paramContent.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/test/testBatch.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/test/testDetails.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/test/ytjRtInfo.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/test/ytjTestDetails.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/datas/dataHis.vue
@@ -21,6 +21,10 @@ const monChart = ref(); const groupChart = ref(); const slideValue = ref(0); const testDataFormated = reactive({ labels: [], datas: [], }); const testRecordList = ref([]); const testDatas = ref([]); @@ -131,8 +135,9 @@ monBarVol.labels.push(monNum_text); monBarVol.datas.push(item.monVol); }); groupChart.value.updateChart(labels, groupVols); testDataFormated.datas = monVols; testDataFormated.labels = labels; setBarChart(monVols); } // 根据百分比获取显示的数据的笔数 @@ -144,7 +149,8 @@ } function handleSlider(params) { updateChart(testDatas.value); // updateChart(testDatas.value); setBarChart(testDataFormated.datas); } // 设置柱状图 @@ -228,6 +234,17 @@ .catch((err) => { console.log(err); }); } function formatTooltip(params) { let testTimeLong = testDataFormated.labels; let index = getDataIndex(testTimeLong.length, params); let test_long = formatSeconds(0); if (index != -1) { // test_long = formatSeconds(testTimeLong[index]); test_long = testTimeLong[index]; } return test_long; } onMounted(() => { @@ -332,7 +349,7 @@ <el-slider class="slider" v-model="slideValue" :show-tooltip="false" :format-tooltip="formatTooltip" :disabled="!canSlide" @input="handleSlider" /> src/views/home/index.vue
@@ -70,7 +70,9 @@ devTestByWeek: { actm, a200 }, }, } = JSON.parse(message.value); Object.keys(actm).forEach((v) => { Object.keys(actm).sort((a, b)=>{ return new Date(a).getTime() - new Date(b).getTime(); }).forEach((v) => { let item = actm[v]; // 2 放电 3充电 jhyData[0].data.push(item[3]); @@ -78,7 +80,9 @@ dates.push(v); }); Object.keys(a200).forEach((v) => { Object.keys(a200).sort((a,b) => { return new Date(a).getTime() - new Date(b).getTime(); }).forEach((v) => { let item = actm[v]; // 2 放电 3充电 ytjData[0].data.push(item[3]); src/views/test/api.js
@@ -56,6 +56,17 @@ }; /** * 停止一体机 */ export const stopA200 = (devId) => { return axios({ method: "GET", url: "a200param/stopA200Param", params: { devId }, }); }; /** * 批量启动一体机 */ export const startA200ParamPl = (type, devIds) => { @@ -67,6 +78,17 @@ }); }; /** * 批量停止一体机 */ export const stopA200ParamPl = (devIds) => { return axios({ method: "POST", url: "a200param/stopA200ParamPl", data: devIds, }); }; // ==================== /** src/views/test/index.vue
@@ -11,7 +11,7 @@ import jhParamContent from "./jhParamContent.vue"; import ytjRtInfo from "./ytjRtInfo.vue"; import jhyRtInfo from "./jhyRtInfo.vue"; import { controllerActmParam } from "./api"; import { controllerActmParam, stopA200 } from "./api"; import useElement from "@/hooks/useElement.js"; @@ -99,6 +99,28 @@ } }); function pauseYtj() {} function stopYtj() { let loading = $loading(); stopA200(currentDevId.value) .then((res) => { loading.close(); let { code, data, msg } = res.data; if (200 == code) { $message.success("操作成功"); console.log(data); } else { $message.error("操作失败:" + msg); } }) .catch((err) => { loading.close(); $message.error("操作失败:" + err); console.log(err); }); } function chooseDev(params) { currentDevId.value = params.devId; } @@ -155,8 +177,24 @@ size="small" :disabled="!currentDev.devOnline" class="btn-start" v-if="!currentDev.state?.isTesting" @click="test" >启动测试</el-button > <!-- <el-button size="small" :disabled="!currentDev.devOnline" class="btn-start" @click="pauseYtj" >暂停测试</el-button > --> <el-button size="small" :disabled="!currentDev.devOnline" v-else class="btn-start" @click="stopYtj" >停止测试</el-button > </template> <template v-else-if="currentDev.state"> @@ -196,40 +234,40 @@ > <!-- --> <template v-if="!onlyOneGroup"> <el-button size="small" :disabled="!currentDev.devOnline" class="btn-start btn-grp2" v-if="!currentDev.state[1].isTesting" @click="test(1)" >启动组2</el-button > <el-button size="small" :disabled="!currentDev.devOnline" v-else-if="!currentDev.state[1].isTestPause" class="btn-start btn-grp2" @click="controlTest(1, 2)" >暂停组2</el-button > <el-button size="small" :disabled="!currentDev.devOnline" v-if="currentDev.state[1].isTestPause" class="btn-start btn-grp2" @click="controlTest(1, 3)" >继续组2</el-button > <el-button size="small" :disabled="!currentDev.devOnline" class="btn-start btn-grp2" v-if=" currentDev.state[1].isTesting || currentDev.state[1].isTestPause " @click="controlTest(1, 4)" >停止组2</el-button > <el-button size="small" :disabled="!currentDev.devOnline" class="btn-start btn-grp2" v-if="!currentDev.state[1].isTesting" @click="test(1)" >启动组2</el-button > <el-button size="small" :disabled="!currentDev.devOnline" v-else-if="!currentDev.state[1].isTestPause" class="btn-start btn-grp2" @click="controlTest(1, 2)" >暂停组2</el-button > <el-button size="small" :disabled="!currentDev.devOnline" v-if="currentDev.state[1].isTestPause" class="btn-start btn-grp2" @click="controlTest(1, 3)" >继续组2</el-button > <el-button size="small" :disabled="!currentDev.devOnline" class="btn-start btn-grp2" v-if=" currentDev.state[1].isTesting || currentDev.state[1].isTestPause " @click="controlTest(1, 4)" >停止组2</el-button > </template> </template> </template> @@ -263,7 +301,12 @@ v-if="1 == devType" :devId="currentDevId" ></ytj-rt-info> <jhy-rt-info class="p-content" v-else :onlyOneGroup="onlyOneGroup" :devId="currentDevId"></jhy-rt-info> <jhy-rt-info class="p-content" v-else :onlyOneGroup="onlyOneGroup" :devId="currentDevId" ></jhy-rt-info> <!-- 弹窗 --> <el-dialog title="设置测试参数" @@ -714,8 +757,6 @@ } } } } .tab-container { height: 100%; src/views/test/jhyRtInfo.vue
@@ -228,7 +228,7 @@ stripe height="100%" size="small" :data="rtDatas['monStates0']" :data="rtDatas['monStates' + idx]" style="width: 100%" > <el-table-column src/views/test/paramContent.vue
@@ -286,7 +286,7 @@ function setParams() { let _params; // 判断测试类型 是充电还是放电 if (params.testType == 0) { if (params.testType == 1) { _params = { nominalCapacity: 0, testType: 0, @@ -468,7 +468,7 @@ </el-form-item> </el-col> <el-col :span="layout.span"> <el-form-item label="放电时间(m)" prop="dischargeTime"> <el-form-item label="放电时间(s)" prop="dischargeTime"> <el-input v-model="params.dischargeTime"></el-input> </el-form-item> </el-col> @@ -535,7 +535,7 @@ </el-form-item> </el-col> <el-col :span="layout.span"> <el-form-item label="充电时间(m)" prop="chargeTime"> <el-form-item label="充电时间(s)" prop="chargeTime"> <el-input v-model="params.chargeTime"></el-input> </el-form-item> </el-col> src/views/test/testBatch.vue
@@ -6,7 +6,10 @@ import jhParamContent from "./jhParamContent.vue"; import { useRoute, useRouter } from "vue-router"; import { cancelContPl, controllerActmParam } from "./api.js"; import { cancelContPl, controllerActmParam, stopA200ParamPl } from "./api.js"; import useElement from "@/hooks/useElement.js"; const { $alert, $loading, $message, $confirm } = useElement(); import useDevsRt from "@/hooks/useDevsRt"; const { list: devList } = useDevsRt(); @@ -167,6 +170,43 @@ testVisible.value = true; } function stopTest(groupIdx) { let devIds = devs.value.map((v) => v.devId); let loading = $loading(); stopA200ParamPl(devIds) .then((res) => { let { code, data, data2 } = res.data; loading.close(); let failList = []; let successList = []; Object.keys(data2).forEach((v) => { if (200 == data2[v].code) { successList.push(v); } else { failList.push(v); } }); if (code && data && successList.length) { $message.success("操作成功"); if (failList.length) { let failNames = props.devs .filter((v) => failList.some((vv) => vv == v.devId)) .map((v) => v.devIdcode); $alert(`操作失败的设备列表:${failNames.join(", ")}。`); } close(); } else { $message.error("操作失败"); } }) .catch((err) => { loading.close(); $message.error("操作失败"); console.log(err); }); } function controlTest(groupIdx, ctrlType) { // * 2暂停 * 3继续 * 4 停止 let loading = $loading(); @@ -188,13 +228,12 @@ }); } onMounted(() => { filterList(); }); onMounted(() => {}); onActivated(() => { if ($route.query.devType) { devType.value = $route.query.devType; devType.value = $route.query.devType * 1; } filterList(); }); </script> @@ -274,6 +313,13 @@ class="btn-start" @click="test" >启动测试</el-button > <el-button size="small" :disabled="!selectData[devType].length" class="btn-start" @click="stopTest" >停止测试</el-button > </template> <template v-else> @@ -590,6 +636,9 @@ .control-group { margin-top: 8px; margin-right: 8px; &.grp1 { margin-left: 8px; } cursor: pointer; & > :deep(span) { color: #000; src/views/test/testDetails.vue
@@ -9,14 +9,16 @@ // const type = $route.query.type; const type = computed(() => $route.query.type); const devId = computed(() => $route.query.devId); console.log("type", type, "============="); // console.log("type", type, "============="); onMounted(() => {}); </script> <template> <ytj-test-details :devId="devId" v-if="1 == type"></ytj-test-details> <jhy-test-details :devId="devId" v-else></jhy-test-details> <template v-if="devId"> <ytj-test-details :devId="devId" v-if="1 == type"></ytj-test-details> <jhy-test-details :devId="devId" v-else></jhy-test-details> </template> </template> <style scoped lang="less"></style> src/views/test/ytjRtInfo.vue
@@ -194,14 +194,14 @@ <div class="info"> <div class="label">最大值</div> <div class="value max"> {{ rtDatas.devStates.minBatteryVoltage }}V {{ rtDatas.devStates.maxBatteryVoltage }}V </div> <div class="label">最小值</div> <div class="value min"> {{ rtDatas.devStates.minBatteryVoltage }}V </div> <div class="label">平均值</div> <div class="value">{{ rtDatas.devStates.minBatteryVoltage }}V</div> <div class="value">{{ rtDatas.devStates.avgMonVol }}V</div> </div> <div class="list-wrap posR"> <div class="pos-full scroll"> @@ -215,7 +215,7 @@ <div :class="[ 'value', { max: 3 == item.monNum, min: 7 == item.monNum }, { max: rtDatas.devStates.maxBatteryVoltage == item.monVol, min: rtDatas.devStates.minBatteryVoltage == item.monVol }, ]" > {{ item.monVol }} V @@ -252,7 +252,7 @@ <div class="card"> <div class="row" v-for="row in item.list" :key="row.num"> <div class="time">{{ row.time }}</div> <div class="content">充电开始</div> <div class="content">{{ row.eventStr }}</div> </div> </div> </el-timeline-item> src/views/test/ytjTestDetails.vue
@@ -132,13 +132,13 @@ <div class="value">{{ formatMinutes(params.chargeTime) }}</div> <div class="label">预充容量限制</div> <div class="value"> {{ ["关闭", "开启"][params.isChargeCapacityEnable] }} {{ ["关闭", "开启"][params.isChargeCapacityEnable * 1] }} </div> <div class="label">预充容量</div> <div class="value">{{ params.chargeCapacity }}AH</div> <div class="label">单串上限限制</div> <div class="value"> {{ ["关闭", "开启"][params.isMaxBatteryVoltageEnable] }} {{ ["关闭", "开启"][params.isMaxBatteryVoltageEnable * 1] }} </div> <div class="label">单串上限</div> <div class="value">{{ params.maxBatteryVoltage }}V</div>