fix: 部分bug修复

This commit is contained in:
mx00085@163.com
2023-03-30 09:41:36 +08:00
parent f68575d08e
commit 6ef948e01b
4 changed files with 122 additions and 116 deletions

View File

@@ -35,6 +35,8 @@
allowClear
v-model:value="type"
:options="typeOption"
change-on-select
expandTrigger="hover"
:fieldNames="{
label: 'name',
value: 'name',

View File

@@ -125,7 +125,7 @@
<div class="left">
<div class="title">
<div class="leftTile">学习内容</div>
<div class="rightTile">
<div class="rightTile" @click="exportThree">
<img src="../../assets/svg/export.png" alt="" />
<span>导出学习内容</span>
</div>
@@ -136,6 +136,7 @@
<a-select
style="width: 100%"
placeholder="请选择日期格式"
@change="selectChange"
:options="[
{ label: '按日查找', value: 0 },
{ label: '按月查找', value: 1 },
@@ -148,9 +149,13 @@
v-if="threeLeftType == 0"
style="width: 100%"
format="YYYY-MM-DD"
v-model:value="threeDay"
separator="至"
@change="leftDayChange"
:placeholder="[' 开始时间', ' 结束时间']"
@openChange="onOpenChange"
@calendarChange="onCalendarChange"
:disabled-date="disabledDate"
/>
<a-range-picker
v-if="threeLeftType == 1"
@@ -233,10 +238,10 @@ import "dayjs/locale/zh-cn";
import { onMounted, ref, reactive, toRefs } from "vue";
import * as api from "../../api/indexProject";
import dayjs from "dayjs";
// import axios from "axios";
// import Cookies from "vue-cookies";
// import downLoad from "../../utils/downLoad";
// import { message } from "ant-design-vue";
import axios from "axios";
import Cookies from "vue-cookies";
import downLoad from "../../utils/downLoad";
import { message } from "ant-design-vue";
export default {
name: "OperationaL",
setup() {
@@ -244,6 +249,7 @@ export default {
threeData: [],
threeLeftType: 1,
threeTime: [],
threeDay: [],
threeXData: [],
});
const surfaceRef = ref(null);
@@ -251,6 +257,30 @@ export default {
const surface2Ref = ref(null);
const surface3Ref = ref(null);
const dates = ref();
// const value = ref();
const hackValue = ref();
const onCalendarChange = (val) => {
dates.value = val;
};
const onOpenChange = (open) => {
if (open) {
dates.value = [];
hackValue.value = [];
} else {
hackValue.value = undefined;
}
};
const disabledDate = (current) => {
if (!dates.value || dates.value.length === 0) {
return false;
}
const tooLate =
dates.value[0] && current.diff(dates.value[0], "days") > 60;
const tooEarly =
dates.value[1] && dates.value[1].diff(current, "days") > 60;
return tooEarly || tooLate;
};
// 获取第第三排第一个柱状图的数据
const leftMonthChange = async (e) => {
if (e?.length > 0) {
@@ -304,7 +334,7 @@ export default {
const project = [];
const router = [];
res?.data?.forEach((item) => {
xData.push(item.xdata);
xData.push(item.xdata.slice(item.xdata.indexOf("-") + 1));
item?.list?.forEach((iten) => {
if (iten.name == "course") {
course.push(iten.value);
@@ -315,9 +345,6 @@ export default {
}
});
});
// options1.value.dataZoom[0].end=computedPosition(11,res?.data?.length)
// console.log(computedPosition(1,res?.data?.length),'22222222222222222')
// console.log(options1.value.dataZoom[0].end)
options1.value.xAxis.data = xData;
options1.value.series[0].data = course;
options1.value.series[1].data = project;
@@ -326,6 +353,76 @@ export default {
}
}
};
const selectChange = async (e) => {
if (e == 1) {
leftMonthChange(state.threeTime);
} else if (e == 0) {
leftDayChange(state.threeDay);
}
};
//第三排第一个柱状图导出数据
const exportThree = () => {
if (state.threeLeftType == 0) {
if (state.threeDay.length < 1) {
message.error("请选择要导出的时间日期后再进行导出");
} else {
const dayStart = dayjs(state.threeDay[0])
.startOf("day")
.format("YYYY-MM-DD 00:00:01");
const dayEnd = dayjs(state.threeDay[1])
.endOf("day")
.format("YYYY-MM-DD hh:mm:ss");
axios({
method: "post",
url: "/report/data/statistics/export/v1",
data: {
startTime: dayStart,
endTime: dayEnd,
dateType: state.threeLeftType,
},
responseType: "blob",
headers: {
token: Cookies.get("token"),
},
}).then(
(res) => {
downLoad(res.data, "学习内容.xlsx");
},
(err) => {
message.error(err);
}
);
}
} else if (state.threeLeftType == 1) {
if (state.threeData.length < 1) {
message.error("请选择要导出的月份后再进行导出");
} else {
const monthEnd = dayjs(state.threeData[1])
.endOf("month")
.format("YYYY-MM-DD hh:mm:ss");
axios({
method: "post",
url: "/report/data/statistics/export/v1",
data: {
startTime: dayjs(state.threeData[0]).format("YYYY-MM-01 00:00:01"),
endTime: monthEnd,
dateType: state.threeLeftType,
},
responseType: "blob",
headers: {
token: Cookies.get("token"),
},
}).then(
(res) => {
downLoad(res.data, "学习内容.xlsx");
},
(err) => {
message.error(err);
}
);
}
}
};
// 折线图配置项
const option = ref({
tooltip: {
@@ -392,7 +489,7 @@ export default {
type: "category",
data: [],
axisLabel: {
interval: 1,
interval: 0,
},
},
yAxis: {
@@ -429,13 +526,13 @@ export default {
type: "slider",
show: true,
xAxisIndex: [0],
start: 1,
end: 35,
brushSelect: false,
// start: 1,
// end: 35,
startValue: 0,
endValue: 5,
// brushSelect: false,
showDetail: false,
startValue: 1,
endValue: 7,
zoomLock: true,
// zoomLock: true,
},
],
});
@@ -486,101 +583,26 @@ export default {
],
});
// 图表1 数据源
const echartOneData = ref([
{
time: "1月",
person: 20,
num: 220,
long: 150,
},
{
time: "2月",
person: 32,
num: 182,
long: 232,
},
{
time: "3月",
person: 40,
num: 191,
long: 201,
},
{
time: "4月",
person: 1,
num: 234,
long: 154,
},
{
time: "5月",
person: 90,
num: 290,
long: 190,
},
{
time: "6月",
person: 30,
num: 330,
long: 330,
},
{
time: "7月",
person: 10,
num: 310,
long: 410,
},
]);
// 处理图表数据的方法
// const changeData = () => {
// const timeList = [];
// const personList = [];
// const numList = [];
// const longList = [];
// echartOneData.value?.forEach((item) => {
// timeList.push(item.time);
// personList.push(item.person);
// numList.push(item.num);
// longList.push(item.long);
// });
// // 处理x轴显示信息
// option.value.xAxis.data = timeList;
// // 右侧坐标轴数据
// option.value.series[0].data = personList;
// //左侧坐标轴数据
// option.value.series[1].data = numList;
// option.value.series[2].data = longList;
// // 柱状图1
// options1.value.xAxis.data = state.threeXData;
// options1.value.series[0].data = personList;
// options1.value.series[1].data = numList;
// options1.value.series[2].data = longList;
// };
// 生成echarts的方法
const createEcharts1 = () => {
// changeData();
// 图表1
const myChart = echarts.init(surfaceRef.value);
option.value && myChart.setOption(option.value);
};
// 生成echarts的方法
const createEcharts2 = () => {
// changeData();
// 图表2
const myChart1 = echarts.init(surface1Ref.value);
option.value && myChart1.setOption(option.value);
};
// 生成echarts的方法
const createEcharts3 = () => {
// changeData();
// 图表3左侧图表
const myChart2 = echarts.init(surface2Ref.value);
options1.value && myChart2.setOption(options1.value);
};
// 生成echarts的方法
const createEcharts4 = () => {
// changeData();
// 图表3 右侧图表
const myChart3 = echarts.init(surface3Ref.value);
options2.value && myChart3.setOption(options2.value);
@@ -591,13 +613,6 @@ export default {
state.threeTime = [dayjs(start), dayjs(monthEnd)];
leftMonthChange([dayjs(start), dayjs(monthEnd)]);
};
// const computedPosition=(length,xArraylength)=> {
// if(xArraylength>=10){
// return length <= 10 ? 35 : (100 - Math.floor(35 / length * 100));
// }else{
// return 100;//小于十条数据显示全部
// }
// }
// 挂载完成
onMounted(() => {
createEcharts1();
@@ -608,13 +623,17 @@ export default {
});
return {
...toRefs(state),
exportThree,
disabledDate,
onCalendarChange,
onOpenChange,
surfaceRef,
surface1Ref,
surface2Ref,
surface3Ref,
echartOneData,
leftMonthChange,
leftDayChange,
selectChange,
};
},
};

View File

@@ -200,10 +200,6 @@ export default {
selectedRowKeys: [], // 选中的列
status: null,
stateOptions: [
{
label: "草稿",
value: 0,
},
{
label: "提交待审核",
value: 1,
@@ -220,18 +216,6 @@ export default {
label: "发布",
value: 4,
},
{
label: "已结束",
value: -1,
},
{
label: "删除",
value: -2,
},
{
label: "撤回审核",
value: -3,
},
{
label: "撤回发布",
value: -4,
@@ -317,7 +301,7 @@ export default {
axios({
method: "post",
url: "/report/boeu/project/exportDetailAll",
data: { params },
data: params ,
responseType: "blob",
headers: {
token: Cookies.get("token"),

View File

@@ -250,6 +250,7 @@ export default {
//table 分页事件
const changePagination = (page) => {
state.pageNo = page;
getTableData();
};
// table选中
const onSelectChange = (selectedRowKeys) => {