From 6ef948e01bac0fe1468f72d3b9f9735d330f65ae Mon Sep 17 00:00:00 2001 From: "mx00085@163.com" Date: Thu, 30 Mar 2023 09:41:36 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=83=A8=E5=88=86bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/report/Curriculum.vue | 2 + src/views/report/Operational.vue | 217 ++++++++++++----------- src/views/report/Project.vue | 18 +- src/views/report/Questionsandanswers.vue | 1 + 4 files changed, 122 insertions(+), 116 deletions(-) diff --git a/src/views/report/Curriculum.vue b/src/views/report/Curriculum.vue index 2e8e67e3..dea3c59a 100644 --- a/src/views/report/Curriculum.vue +++ b/src/views/report/Curriculum.vue @@ -35,6 +35,8 @@ allowClear v-model:value="type" :options="typeOption" + change-on-select + expandTrigger="hover" :fieldNames="{ label: 'name', value: 'name', diff --git a/src/views/report/Operational.vue b/src/views/report/Operational.vue index 98532a1f..d39f7e92 100644 --- a/src/views/report/Operational.vue +++ b/src/views/report/Operational.vue @@ -125,7 +125,7 @@
学习内容
-
+
导出学习内容
@@ -136,6 +136,7 @@ { + 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, }; }, }; diff --git a/src/views/report/Project.vue b/src/views/report/Project.vue index a1fc189f..e74d18d9 100644 --- a/src/views/report/Project.vue +++ b/src/views/report/Project.vue @@ -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"), diff --git a/src/views/report/Questionsandanswers.vue b/src/views/report/Questionsandanswers.vue index c084ef7a..8327b5b5 100644 --- a/src/views/report/Questionsandanswers.vue +++ b/src/views/report/Questionsandanswers.vue @@ -250,6 +250,7 @@ export default { //table 分页事件 const changePagination = (page) => { state.pageNo = page; + getTableData(); }; // table选中 const onSelectChange = (selectedRowKeys) => {