优化多个弹出框

menu1.0
fanluyan 6 months ago
parent 15b220d37d
commit 0cbf443c26

@ -18,6 +18,7 @@ export default new Vuex.Store({
cmdId: "",
channelIdList: [],
isRenderTab: true,
responseProcessing: false, // 用于防止重复处理相同错误状态的标志
},
getters: {
token: (state) => state.token,
@ -27,6 +28,9 @@ export default new Vuex.Store({
menuPermission: (state) => state.resources,
},
mutations: {
setResponseProcessing(state, status) {
state.responseProcessing = status;
},
//点击获取的左侧列表
currentData(state, currentData) {
state.currentData = currentData;

@ -1,7 +1,7 @@
import axios from "axios";
import { MessageBox, Message } from "element-ui";
import router from "../router/index";
import store from "../store/index"; // 确保路径正确
const service = axios.create({
// process.env.NODE_ENV === 'development' 来判断是否开发环境
// easy-mock服务挂了暂时不使用了
@ -21,7 +21,9 @@ service.interceptors.request.use((config) => {
service.interceptors.response.use(
(response) => {
const res = response.data;
if (res.code !== 200) {
if (res.code !== 200 && !store.state.responseProcessing) {
store.commit("setResponseProcessing", true); // 设置状态为处理中
if (res.code === 401) {
Message({
showClose: true,
@ -31,26 +33,23 @@ service.interceptors.response.use(
});
localStorage.removeItem("token");
router.push("/login");
}
if (res.code === 400) {
} else if (res.code === 400) {
Message({
showClose: true,
message: res.msg,
type: "error",
duration: 1500,
});
}
if (res.code === 500) {
//alert(res.msg || "Error");
} else if (res.code === 500) {
Message({
showClose: true,
message: res.msg,
message: res.msg || "Error",
type: "error",
duration: 1500,
});
}
store.commit("setResponseProcessing", false); // 重置状态
return Promise.reject(new Error(res.msg || "Error"));
} else {
return res;

@ -1,198 +0,0 @@
<template>
<div class="icingBox">
<div class="icingContain">
<leftTree ref="sideTree"></leftTree>
<div class="rightTable">
<div class="dataBox">
<div class="childBox">
<div class="searchBox" ref="searchref">
<el-form
:inline="true"
:model="formdata"
class="demo-form-inline"
>
<el-form-item label="开始日期">
<el-date-picker
v-model="formdata.starttime"
type="date"
placeholder="开始日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="结束日期">
<el-date-picker
@change="changedate"
v-model="formdata.endtime"
type="date"
placeholder="结束日期"
class="ml10"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit"></el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="exportExcl"
>导出数据</el-button
>
</el-form-item>
<el-form-item>
<el-button
v-if="!echartsShow"
type="primary"
@click="lookLineCharts"
>曲线图</el-button
>
<el-button
v-if="echartsShow"
type="primary"
@click="lookTableCharts"
>列表数据</el-button
>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import leftTree from "../components/leftTree.vue";
import {
LeadPullJoggle,
leadpullsListJoggle,
exportJoggle,
} from "@/utils/api/iceApi";
export default {
name: "icing",
components: {
leftTree,
},
data() {
return {
echartsShow: false,
formdata: {},
paramsData: null,
};
},
watch: {
endtime(newVal) {
if (newVal) {
const date = new Date(newVal);
date.setHours(23);
date.setMinutes(59);
date.setSeconds(59);
this.formdata.endtime = date.getTime();
}
},
},
created() {
var that = this;
document.onkeydown = function (e) {
var key = window.event.keyCode;
if (key === 13) {
that.onSubmit(); //
}
};
this.$set(
this.formdata,
"starttime",
new Date(new Date().toLocaleDateString()).getTime()
);
const currentDate = new Date(); //
currentDate.setHours(23); // 23
currentDate.setMinutes(59); // 59
currentDate.setSeconds(59); // 59
this.$set(this.formdata, "endtime", currentDate.getTime());
},
mounted() {},
methods: {
//
changedate() {
console.log(new Date(this.formdata.endtime));
const currentDate = new Date(this.formdata.endtime); //
currentDate.setHours(23); // 23
currentDate.setMinutes(59); // 59
currentDate.setSeconds(59); // 59
this.formdata.endtime = currentDate;
console.log("结束时间", this.formdata.endtime);
},
//tree
getCurrentData(data) {
console.log("执行父组件", data);
this.paramsData = data;
let pullParams;
console.log(data);
const sTime = Math.floor(this.formdata.starttime / 1000);
const eTime = Math.floor(this.formdata.endtime / 1000);
if (data.dyValue) {
console.log("电压-公司");
pullParams = {
devType: "2",
dyId: data.id,
pageNum: 1,
pageSize: this.pageSize,
start: sTime,
end: eTime,
};
this.getIcingData(pullParams);
}
},
//
onSubmit() {},
exportExcl() {
const sTime = Math.floor(this.formdata.starttime / 1000);
const eTime = Math.floor(this.formdata.endtime / 1000);
window.location.href =
"/api/xymanager/leadpulls/export?+" +
"lineId=" +
this.paramsData.lineid +
"&termId=" +
this.paramsData.id +
"&towerId=" +
this.paramsData.towerid +
"&start=" +
sTime +
"&end=" +
eTime;
},
//
lookTableCharts() {},
//线
lookLineCharts() {},
},
};
</script>
<style lang="less">
.icingBox {
width: calc(100% - 24px);
height: calc(100% - 24px);
padding: 12px 12px;
background: #fff;
.icingContain {
display: flex;
height: 100%;
box-sizing: border-box;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
}
.rightTable {
display: flex;
width: 100%;
height: 100%;
flex: 1;
overflow: hidden;
border-left: 1px solid #ddd;
.dataBox {
width: calc(100% - 24px);
height: calc(100% - 24px);
padding: 12px 12px;
background: #fff;
}
}
}
</style>

@ -66,8 +66,8 @@
<el-table-column prop="cmdid" label="cmdid"> </el-table-column>
<el-table-column prop="termId" label="termId"> </el-table-column>
<el-table-column prop="funcCode" label="funcCode"> </el-table-column>
<el-table-column prop="point" label="point"> </el-table-column>
<el-table-column prop="ccll" label="ccll"> </el-table-column>
<el-table-column prop="point" label="point(相位)"> </el-table-column>
<el-table-column prop="ccll" label="ccll(初始拉力)"> </el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
@ -91,7 +91,7 @@
@select="handleSelect"
></el-autocomplete>
</el-form-item>
<el-form-item label="相位">
<el-form-item label="funcCode">
<el-input
placeholder="请输入内容"
v-model="iceForm.funcCode"
@ -99,7 +99,7 @@
>
</el-input>
</el-form-item>
<el-form-item label="point">
<el-form-item label="point相位">
<el-input placeholder="请输入内容" v-model="iceForm.point" clearable>
</el-input>
</el-form-item>

Loading…
Cancel
Save