From 5c6f699d5567f822e8abf5497412f6534539246a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E9=98=94?= Date: Tue, 12 Nov 2024 17:56:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E9=92=BB?= =?UTF-8?q?=E5=8F=96=E7=9A=84=E6=8C=89=E6=9C=BA=E6=9E=84=E9=92=BB=E5=8F=96?= =?UTF-8?q?=E8=81=94=E8=B0=83=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/dataset/RepIndexSet/index.ts | 9 + src/utils/dateUtil.ts | 347 +++++++++++++++++- .../IndexSearchServiceMs.vue | 117 ++---- .../components/DataDillingByOrgan.vue | 66 +++- .../components/DrillingOrAnalysis.vue | 96 +++-- 5 files changed, 502 insertions(+), 133 deletions(-) diff --git a/src/api/dataset/RepIndexSet/index.ts b/src/api/dataset/RepIndexSet/index.ts index 6227015..fe8fb8b 100644 --- a/src/api/dataset/RepIndexSet/index.ts +++ b/src/api/dataset/RepIndexSet/index.ts @@ -80,3 +80,12 @@ export const getIndexSetTreeApi = async () => { return []; }; +//按机构钻取指标/RepIndexSet/spi/dataset/RepIndexSet/RepIndexSetDrilling +export const RepIndexSetDrilling = (data: any) => { + return request.postJson({ url: '/RepIndexSet/spi/dataset/RepIndexSet/RepIndexSetDrilling', data }); +}; + +//获取父级机构信息/RepIndexSet/spi/dataset/RepIndexSet/RepIndexSetDrillingQuery +export const RepIndexSetDrillingQuery = (data: any) => { + return request.postJson({ url: '/RepIndexSet/spi/dataset/RepIndexSet/RepIndexSetDrillingQuery', data }); +}; \ No newline at end of file diff --git a/src/utils/dateUtil.ts b/src/utils/dateUtil.ts index fa95fd1..48f0dad 100644 --- a/src/utils/dateUtil.ts +++ b/src/utils/dateUtil.ts @@ -18,5 +18,350 @@ export function formatToDate(date?: dayjs.ConfigType, format = DATE_FORMAT): str export function getDateByPrevMonth(date?: dayjs.ConfigType, format = DATE_FORMAT): string { return dayjs(date).subtract(1, 'month').endOf('month').format(format) } - export const dateUtil = dayjs + +//获取reportDate +export function getReportDateOfValue(row,field){ + let resultDate = row.paramDate; + //上期值 + if(field == 'prevPeriodValue'){ + switch (row.frequency) { + //日报 : 上期取前一天数据 + case '0': + var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length); + var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/"))); + dateTime.setDate(dateTime.getDate() - 1); + var year = dateTime.getFullYear(); + var month = dateTime.getMonth() + 1 < 10 ? "0" + (dateTime.getMonth() + 1) : dateTime.getMonth() + 1; + var day = dateTime.getDate() < 10 ? "0" + dateTime.getDate() : dateTime.getDate(); + resultDate = year + "" + month + "" + day; + break; + //旬报:上期取上月同一期 + case '1': + var stringYear = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + var partOfMonth = resultDate.substring(6,resultDate.length); + if(parseInt(month) == 1){ + var year = parseInt(stringYear) - 1; + resultDate = year + "12" + partOfMonth; + }else{ + var stringMonth = parseInt(month) - 1; + resultDate = stringYear + '' + stringMonth + '' + partOfMonth; + } + break; + //月报:上期取上个月 + case '2': + var stringYear = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + var stringMonth = parseInt(month) - 1; + if(stringMonth == 0){ + stringYear = parseInt(stringYear) - 1; + stringMonth = "12"; + } + if (stringMonth < 10) { + stringMonth = '0' + stringMonth; + } + resultDate = stringYear + '' + stringMonth + "00"; + break; + //季报:上期取上季度 + case '3': + var year = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + if(parseInt(month) <= 3){ + var stringYear = parseInt(year)-1; + resultDate = stringYear + "1200"; + }else if(parseInt(month) > 3 && parseInt(month) <= 6){ + resultDate = year + "0300"; + }else if(parseInt(month) > 6 && parseInt(month) <= 9){ + resultDate = year + "0600"; + }else if(parseInt(month) > 9 && parseInt(month) <= 12){ + resultDate = year + "0900"; + } + break; + //半年报:上期取 + case '4': + var year = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + if(parseInt(month) <= 6 ){ + var stringYear = parseInt(year)-1; + resultDate = stringYear + "1200"; + }else if(parseInt(month) > 6 && parseInt(month) <= 12){ + resultDate = year + "0600"; + } + break; + //年报:上期取上一年 + case '5': + var year = resultDate.substring(0,4); + var stringYear = parseInt(year)-1; + resultDate = stringYear + '' + resultDate.substring(4,resultDate.length); + break; + default: + resultDate = row.paramDate; + break; + } + } + //年初值 + if(field == 'yearAtFirstValue'){ + switch (row.frequency) { + case '0': + var stringYear = resultDate.substring(0,4); + var year = parseInt(stringYear) - 1; + resultDate = year + "1200"; + break; + case '1': + var stringYear = resultDate.substring(0,4); + var year = parseInt(stringYear) - 1; + resultDate = year + "1200"; + break; + case '2': + var stringYear = resultDate.substring(0,4); + var year = parseInt(stringYear) - 1; + resultDate = year + "1200"; + break; + case '3': + var stringYear = resultDate.substring(0,4); + var year = parseInt(stringYear) - 1; + resultDate = year + "1200"; + break; + case '4': + var stringYear = resultDate.substring(0,4); + var year = parseInt(stringYear) - 1; + resultDate = year + "1200"; + break; + case '5': + var stringYear = resultDate.substring(0,4); + var year = parseInt(stringYear) - 1; + resultDate = year + "1200"; + break; + default: + resultDate = row.paramDate; + break; + } + + } + //上年同期 + if(field == 'prevYearValue'){ + switch (row.frequency) { + //日报:上年同期取上年同一天 + case '0': + // var year = resultDate.substring(0,4); + // var month = resultDate.substring(4,6); + // var day = resultDate.substring(6,resultDate.length); + // var stringYear = parseInt(year) - 1; + // resultDate = stringYear + month + day; + var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length); + var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/"))); + dateTime.setFullYear(dateTime.getFullYear() - 1); + var year = dateTime.getFullYear(); + var month = dateTime.getMonth() + 1 < 10 ? "0" + (dateTime.getMonth() + 1) : dateTime.getMonth() + 1; + var day = dateTime.getDate() < 10 ? "0" + dateTime.getDate() : dateTime.getDate(); + resultDate = year + "" + month + "" + day; + break; + //旬报;上年同期取上年同月 + case '1': + var stringYear = resultDate.substring(0,4); + var year = parseInt(stringYear) - 1; + resultDate = year + '' + resultDate.substring(4,resultDate.length); + break; + //月报:上年同期取上年同月 + case '2': + var year = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + var stringYear = parseInt(year) - 1; + resultDate = stringYear + '' + month + "00"; + break; + //季报:上年同期取上年同季度 + case '3': + var year = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + var stringYear = parseInt(year) - 1; + resultDate = stringYear + '' + month + "00"; + break; + //半年报:上年同期取 + case '4': + var year = resultDate.substring(0,4); + // var month = resultDate.substring(4,6); + var stringYear = parseInt(year) - 1; + // resultDate = stringYear + month + "00"; + resultDate = stringYear + '' + resultDate.substring(4,resultDate.length); + break; + //年报: + case '5': + var year = resultDate.substring(0,4); + // var month = resultDate.substring(4,6); + var stringYear = parseInt(year)-1; + // resultDate = stringYear + month + "00"; + resultDate = stringYear + '' + resultDate.substring(4,resultDate.length); + break; + default: + resultDate = row.paramDate; + break; + } + } + //上日值 + if(field == 'cprevDayValue'){ + switch (row.frequency) { + //日报: + case '0': + var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length); + var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/"))); + dateTime.setDate(dateTime.getDate() - 1); + var year = dateTime.getFullYear(); + var month = dateTime.getMonth() + 1 < 10 ? "0" + (dateTime.getMonth() + 1) : dateTime.getMonth() + 1; + var day = dateTime.getDate() < 10 ? "0" + dateTime.getDate() : dateTime.getDate(); + resultDate = year + "" + month + "" + day; + break; + case '1': + resultDate = row.paramDate; + break; + case '2': + resultDate = row.paramDate; + break; + case '3': + resultDate = row.paramDate; + break; + case '4': + resultDate = row.paramDate; + break; + case '5': + resultDate = row.paramDate; + break; + default: + resultDate = row.paramDate; + break; + } + } + //上月值 + if(field == 'cprevMonthValue'){ + switch (row.frequency) { + //日报: + case '0': + //上月值取上月月末最后一日数据(保持跟后台一致) + var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length); + var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/"))); + var year = dateTime.getFullYear(); + var month = dateTime.getMonth(); + if (month == 0) { + month = 12; + year = year - 1; + } + if (month < 10) { + month = '0' + month; + } + var myDate = new Date(year, month, 0); + resultDate = year + "" + month + "" + myDate.getDate(); + //上月值取上月同一天 + // var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length); + // var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/"))); + // var year = dateTime.getFullYear(); + // var month = dateTime.getMonth() + 1; + // var day = dateTime.getDate(); + // if(parseInt(month) < 10){ + // month = "0" + month; + // } + // if(parseInt(day) < 10){ + // day = "0" + day; + // } + // resultDate = year + month + day; + // var preMonth = parseInt(month) - 1; + // preMonth = preMonth < 10 ? "0" + preMonth : preMonth; + // var preMonthDays = new Date(year, parseInt(month) - 1, 0).getDate(); + // if(preMonthDays < parseInt(day)){ + // resultDate = year + preMonth + preMonthDays; + // } + // if(parseInt(month) == 1){ + // resultDate = parseInt(year) + "12" + day; + // } + break; + //旬报 + case '1': + var stringYear = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + var partOfMonth = resultDate.substring(6,resultDate.length); + if(parseInt(month) == 1){ + var year = parseInt(stringYear) - 1; + resultDate = year + "12" + partOfMonth; + }else{ + var stringMonth = parseInt(month) - 1; + resultDate = stringYear + '' + stringMonth + '' + partOfMonth; + } + break; + //月报 + case '2': + var stringYear = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + var stringMonth = parseInt(month) - 1; + if(stringMonth == 0){ + stringYear = parseInt(stringYear) - 1; + stringMonth = "12"; + } + if (stringMonth < 10) { + stringMonth = '0' + stringMonth; + } + resultDate = stringYear + '' + stringMonth + "00"; + break; + case '3': + resultDate = row.paramDate; + break; + case '4': + resultDate = row.paramDate; + break; + case '5': + resultDate = row.paramDate; + break; + default: + resultDate = row.paramDate; + break; + } + } + //上季值 + if(field == 'cprevQuarterValue'){ + switch (row.frequency) { + //日报:取上季度末最后一天值 + case '0': + var stringYear = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + if((parseInt(month)) <= 3){ + var year = parseInt(stringYear) - 1; + resultDate = year + "12"+"31"; + }else if((parseInt(month)) > 3 && (parseInt(month)) <= 6){ + resultDate = stringYear + "03"+"31"; + }else if((parseInt(month)) > 6 && (parseInt(month)) <= 9){ + resultDate = stringYear + "06"+"30"; + }else if((parseInt(month)) > 9 && (parseInt(month)) <= 12){ + resultDate = stringYear + "09"+"30"; + } + break; + case '1': + resultDate = row.paramDate; + break; + case '2': + resultDate = row.paramDate; + break; + case '3': + var stringYear = resultDate.substring(0,4); + var month = resultDate.substring(4,6); + if((parseInt(month)) <= 3){ + var year = parseInt(stringYear) - 1; + resultDate = year + "12"+"00"; + }else if((parseInt(month)) > 3 && (parseInt(month)) <= 6){ + resultDate = stringYear + "03"+"00"; + }else if((parseInt(month)) > 6 && (parseInt(month)) <= 9){ + resultDate = stringYear + "06"+"00"; + }else if((parseInt(month)) > 9 && (parseInt(month)) <= 12){ + resultDate = stringYear + "09"+"00"; + } + break; + case '4': + resultDate = row.paramDate; + break; + case '5': + resultDate = row.paramDate; + break; + default: + resultDate = row.paramDate; + break; + } + } + return resultDate; +} diff --git a/src/views/dataset/IndexSearchServiceMs/IndexSearchServiceMs.vue b/src/views/dataset/IndexSearchServiceMs/IndexSearchServiceMs.vue index b40b9c7..fac6eac 100644 --- a/src/views/dataset/IndexSearchServiceMs/IndexSearchServiceMs.vue +++ b/src/views/dataset/IndexSearchServiceMs/IndexSearchServiceMs.vue @@ -1,7 +1,8 @@ \ No newline at end of file