mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-10 19:36:46 +08:00
fix: 部分bug修复
This commit is contained in:
@@ -35,6 +35,8 @@
|
|||||||
allowClear
|
allowClear
|
||||||
v-model:value="type"
|
v-model:value="type"
|
||||||
:options="typeOption"
|
:options="typeOption"
|
||||||
|
change-on-select
|
||||||
|
expandTrigger="hover"
|
||||||
:fieldNames="{
|
:fieldNames="{
|
||||||
label: 'name',
|
label: 'name',
|
||||||
value: 'name',
|
value: 'name',
|
||||||
|
|||||||
@@ -125,7 +125,7 @@
|
|||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<div class="leftTile">学习内容</div>
|
<div class="leftTile">学习内容</div>
|
||||||
<div class="rightTile">
|
<div class="rightTile" @click="exportThree">
|
||||||
<img src="../../assets/svg/export.png" alt="" />
|
<img src="../../assets/svg/export.png" alt="" />
|
||||||
<span>导出学习内容</span>
|
<span>导出学习内容</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -136,6 +136,7 @@
|
|||||||
<a-select
|
<a-select
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
placeholder="请选择日期格式"
|
placeholder="请选择日期格式"
|
||||||
|
@change="selectChange"
|
||||||
:options="[
|
:options="[
|
||||||
{ label: '按日查找', value: 0 },
|
{ label: '按日查找', value: 0 },
|
||||||
{ label: '按月查找', value: 1 },
|
{ label: '按月查找', value: 1 },
|
||||||
@@ -148,9 +149,13 @@
|
|||||||
v-if="threeLeftType == 0"
|
v-if="threeLeftType == 0"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
|
v-model:value="threeDay"
|
||||||
separator="至"
|
separator="至"
|
||||||
@change="leftDayChange"
|
@change="leftDayChange"
|
||||||
:placeholder="[' 开始时间', ' 结束时间']"
|
:placeholder="[' 开始时间', ' 结束时间']"
|
||||||
|
@openChange="onOpenChange"
|
||||||
|
@calendarChange="onCalendarChange"
|
||||||
|
:disabled-date="disabledDate"
|
||||||
/>
|
/>
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
v-if="threeLeftType == 1"
|
v-if="threeLeftType == 1"
|
||||||
@@ -233,10 +238,10 @@ import "dayjs/locale/zh-cn";
|
|||||||
import { onMounted, ref, reactive, toRefs } from "vue";
|
import { onMounted, ref, reactive, toRefs } from "vue";
|
||||||
import * as api from "../../api/indexProject";
|
import * as api from "../../api/indexProject";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
// import axios from "axios";
|
import axios from "axios";
|
||||||
// import Cookies from "vue-cookies";
|
import Cookies from "vue-cookies";
|
||||||
// import downLoad from "../../utils/downLoad";
|
import downLoad from "../../utils/downLoad";
|
||||||
// import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
export default {
|
export default {
|
||||||
name: "OperationaL",
|
name: "OperationaL",
|
||||||
setup() {
|
setup() {
|
||||||
@@ -244,6 +249,7 @@ export default {
|
|||||||
threeData: [],
|
threeData: [],
|
||||||
threeLeftType: 1,
|
threeLeftType: 1,
|
||||||
threeTime: [],
|
threeTime: [],
|
||||||
|
threeDay: [],
|
||||||
threeXData: [],
|
threeXData: [],
|
||||||
});
|
});
|
||||||
const surfaceRef = ref(null);
|
const surfaceRef = ref(null);
|
||||||
@@ -251,6 +257,30 @@ export default {
|
|||||||
const surface2Ref = ref(null);
|
const surface2Ref = ref(null);
|
||||||
const surface3Ref = 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) => {
|
const leftMonthChange = async (e) => {
|
||||||
if (e?.length > 0) {
|
if (e?.length > 0) {
|
||||||
@@ -304,7 +334,7 @@ export default {
|
|||||||
const project = [];
|
const project = [];
|
||||||
const router = [];
|
const router = [];
|
||||||
res?.data?.forEach((item) => {
|
res?.data?.forEach((item) => {
|
||||||
xData.push(item.xdata);
|
xData.push(item.xdata.slice(item.xdata.indexOf("-") + 1));
|
||||||
item?.list?.forEach((iten) => {
|
item?.list?.forEach((iten) => {
|
||||||
if (iten.name == "course") {
|
if (iten.name == "course") {
|
||||||
course.push(iten.value);
|
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.xAxis.data = xData;
|
||||||
options1.value.series[0].data = course;
|
options1.value.series[0].data = course;
|
||||||
options1.value.series[1].data = project;
|
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({
|
const option = ref({
|
||||||
tooltip: {
|
tooltip: {
|
||||||
@@ -392,7 +489,7 @@ export default {
|
|||||||
type: "category",
|
type: "category",
|
||||||
data: [],
|
data: [],
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
interval: 1,
|
interval: 0,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
@@ -429,13 +526,13 @@ export default {
|
|||||||
type: "slider",
|
type: "slider",
|
||||||
show: true,
|
show: true,
|
||||||
xAxisIndex: [0],
|
xAxisIndex: [0],
|
||||||
start: 1,
|
// start: 1,
|
||||||
end: 35,
|
// end: 35,
|
||||||
brushSelect: false,
|
startValue: 0,
|
||||||
|
endValue: 5,
|
||||||
|
// brushSelect: false,
|
||||||
showDetail: false,
|
showDetail: false,
|
||||||
startValue: 1,
|
// zoomLock: true,
|
||||||
endValue: 7,
|
|
||||||
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的方法
|
// 生成echarts的方法
|
||||||
const createEcharts1 = () => {
|
const createEcharts1 = () => {
|
||||||
// changeData();
|
|
||||||
// 图表1
|
// 图表1
|
||||||
const myChart = echarts.init(surfaceRef.value);
|
const myChart = echarts.init(surfaceRef.value);
|
||||||
option.value && myChart.setOption(option.value);
|
option.value && myChart.setOption(option.value);
|
||||||
};
|
};
|
||||||
// 生成echarts的方法
|
// 生成echarts的方法
|
||||||
const createEcharts2 = () => {
|
const createEcharts2 = () => {
|
||||||
// changeData();
|
|
||||||
// 图表2
|
// 图表2
|
||||||
const myChart1 = echarts.init(surface1Ref.value);
|
const myChart1 = echarts.init(surface1Ref.value);
|
||||||
option.value && myChart1.setOption(option.value);
|
option.value && myChart1.setOption(option.value);
|
||||||
};
|
};
|
||||||
// 生成echarts的方法
|
// 生成echarts的方法
|
||||||
const createEcharts3 = () => {
|
const createEcharts3 = () => {
|
||||||
// changeData();
|
|
||||||
// 图表3左侧图表
|
// 图表3左侧图表
|
||||||
const myChart2 = echarts.init(surface2Ref.value);
|
const myChart2 = echarts.init(surface2Ref.value);
|
||||||
options1.value && myChart2.setOption(options1.value);
|
options1.value && myChart2.setOption(options1.value);
|
||||||
};
|
};
|
||||||
// 生成echarts的方法
|
// 生成echarts的方法
|
||||||
const createEcharts4 = () => {
|
const createEcharts4 = () => {
|
||||||
// changeData();
|
|
||||||
// 图表3 右侧图表
|
// 图表3 右侧图表
|
||||||
const myChart3 = echarts.init(surface3Ref.value);
|
const myChart3 = echarts.init(surface3Ref.value);
|
||||||
options2.value && myChart3.setOption(options2.value);
|
options2.value && myChart3.setOption(options2.value);
|
||||||
@@ -591,13 +613,6 @@ export default {
|
|||||||
state.threeTime = [dayjs(start), dayjs(monthEnd)];
|
state.threeTime = [dayjs(start), dayjs(monthEnd)];
|
||||||
leftMonthChange([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(() => {
|
onMounted(() => {
|
||||||
createEcharts1();
|
createEcharts1();
|
||||||
@@ -608,13 +623,17 @@ export default {
|
|||||||
});
|
});
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
|
exportThree,
|
||||||
|
disabledDate,
|
||||||
|
onCalendarChange,
|
||||||
|
onOpenChange,
|
||||||
surfaceRef,
|
surfaceRef,
|
||||||
surface1Ref,
|
surface1Ref,
|
||||||
surface2Ref,
|
surface2Ref,
|
||||||
surface3Ref,
|
surface3Ref,
|
||||||
echartOneData,
|
|
||||||
leftMonthChange,
|
leftMonthChange,
|
||||||
leftDayChange,
|
leftDayChange,
|
||||||
|
selectChange,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -200,10 +200,6 @@ export default {
|
|||||||
selectedRowKeys: [], // 选中的列
|
selectedRowKeys: [], // 选中的列
|
||||||
status: null,
|
status: null,
|
||||||
stateOptions: [
|
stateOptions: [
|
||||||
{
|
|
||||||
label: "草稿",
|
|
||||||
value: 0,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: "提交待审核",
|
label: "提交待审核",
|
||||||
value: 1,
|
value: 1,
|
||||||
@@ -220,18 +216,6 @@ export default {
|
|||||||
label: "发布",
|
label: "发布",
|
||||||
value: 4,
|
value: 4,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: "已结束",
|
|
||||||
value: -1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "删除",
|
|
||||||
value: -2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "撤回审核",
|
|
||||||
value: -3,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: "撤回发布",
|
label: "撤回发布",
|
||||||
value: -4,
|
value: -4,
|
||||||
@@ -317,7 +301,7 @@ export default {
|
|||||||
axios({
|
axios({
|
||||||
method: "post",
|
method: "post",
|
||||||
url: "/report/boeu/project/exportDetailAll",
|
url: "/report/boeu/project/exportDetailAll",
|
||||||
data: { params },
|
data: params ,
|
||||||
responseType: "blob",
|
responseType: "blob",
|
||||||
headers: {
|
headers: {
|
||||||
token: Cookies.get("token"),
|
token: Cookies.get("token"),
|
||||||
|
|||||||
@@ -250,6 +250,7 @@ export default {
|
|||||||
//table 分页事件
|
//table 分页事件
|
||||||
const changePagination = (page) => {
|
const changePagination = (page) => {
|
||||||
state.pageNo = page;
|
state.pageNo = page;
|
||||||
|
getTableData();
|
||||||
};
|
};
|
||||||
// table选中
|
// table选中
|
||||||
const onSelectChange = (selectedRowKeys) => {
|
const onSelectChange = (selectedRowKeys) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user