diff --git a/src/screenApi/api.js b/src/screenApi/api.js index 93bcec7..2962316 100644 --- a/src/screenApi/api.js +++ b/src/screenApi/api.js @@ -12,16 +12,37 @@ const GetPreparationRevisionSC = (params) => getActionZxd( '/serviceInterface/ge // 标准归口情况(各SC)- 各SC归口在研项目和标准数量 const GetCentralizedData = (params) => getActionZxd( '/serviceInterface/getDpData3', params) +/*历年计划下达情况-------开始*/ +// 历年计划下达情况--(总体)逐年下达计划数量 +const GetReleasePlanData = (params) => getActionZxd( '/serviceInterface/getDpData4_1', params) +// 历年计划下达情况--(各SC)逐年下达计划数量 --获取所有的SC值 +const GetReleasePlanSCData = (params) => getActionZxd( '/serviceInterface/getDpData4_2_1', params) +// 历年计划下达情况--(各SC)逐年下达计划数量 -- 通过SC查询 +const GetReleasePlanDataBySC = (params) => getActionZxd( '/serviceInterface/getDpData4_2_2', params) +/*历年计划下达情况-------结束*/ + +/*历年标准发布情况-------开始*/ +const GetReleaseStandardData = (params) => getActionZxd( '/serviceInterface/getDpData5_1', params) +// 历年计划下达情况--(各SC)逐年下达计划数量 --获取所有的SC值 +const GetReleaseStandardSCData = (params) => getActionZxd( '/serviceInterface/getDpData5_2_1', params) +// 历年计划下达情况--(各SC)逐年下达计划数量 -- 通过SC查询 +const GetReleaseStandardDataBySC = (params) => getActionZxd( '/serviceInterface/getDpData5_2_2', params) + +/*历年标准发布情况-------结束*/ + + // 各SC超期情况统计 const GetOverdueData = (params) => getActionZxd( '/serviceInterface/getDpData7_ext', params) - // 各SC每年计划完成率 --各年应完成项目情况 const GetShouldBeCompletedProjectData = (params) => getActionZxd( '/serviceInterface/getDpData6_1_1', params) // 各SC历年应完成项目情况 const GetCompletionProjectData = (params) => getActionZxd( '/serviceInterface/getDpData6_1_2', params) +// 第一起草单位贡献度排名 +const GetEnterpriseContributionData = (params) => getActionZxd( '/serviceInterface/getDpData8', params) + export { @@ -29,7 +50,18 @@ export { GetPreparationRevisionSituation, GetPreparationRevisionSC, GetCentralizedData, + + GetReleasePlanData, + GetReleasePlanSCData, + GetReleasePlanDataBySC, + + GetReleaseStandardData, + GetReleaseStandardSCData, + GetReleaseStandardDataBySC, + GetOverdueData, GetShouldBeCompletedProjectData, - GetCompletionProjectData + GetCompletionProjectData, + + GetEnterpriseContributionData } \ No newline at end of file diff --git a/src/screenApi/manage.js b/src/screenApi/manage.js index 01d1a3a..f530c2e 100644 --- a/src/screenApi/manage.js +++ b/src/screenApi/manage.js @@ -11,4 +11,18 @@ export function getActionZxd(url, parameter) { method: 'get', params: parameter }) +} +export function getActionWP(url, parameter) { + return axios({ + url: '/WPApi' + url, + method: 'get', + params: parameter + }) +} +export function getActionISO(url, parameter) { + return axios({ + url: '/ISOApi' + url, + method: 'get', + params: parameter + }) } \ No newline at end of file diff --git a/src/views/screen/HomePage.vue b/src/views/screen/HomePage.vue index 60a66d2..6acd9f8 100644 --- a/src/views/screen/HomePage.vue +++ b/src/views/screen/HomePage.vue @@ -8,7 +8,7 @@ @@ -16,6 +16,18 @@
汽车标准制修订管理系统
+ + + + + + @@ -23,6 +35,7 @@ import IncomePaymentScreen from './incomePayments/index' import PreparationRevisionScreen from './preparationRevision/index' +import WPScreen from './wp29/index' export default { name: 'HomePage', diff --git a/src/views/screen/incomePayments/DepartmentTotalEcharts.vue b/src/views/screen/incomePayments/DepartmentTotalEcharts.vue index aa5e7fa..6e6e490 100644 --- a/src/views/screen/incomePayments/DepartmentTotalEcharts.vue +++ b/src/views/screen/incomePayments/DepartmentTotalEcharts.vue @@ -29,6 +29,10 @@ + + + + diff --git a/src/views/screen/preparationRevision/OverdueChart.vue b/src/views/screen/preparationRevision/OverdueChart.vue index bda2d57..4aab98d 100644 --- a/src/views/screen/preparationRevision/OverdueChart.vue +++ b/src/views/screen/preparationRevision/OverdueChart.vue @@ -9,9 +9,8 @@ diff --git a/src/views/screen/preparationRevision/ReleaseStandardChart.vue b/src/views/screen/preparationRevision/ReleaseStandardChart.vue index 8f6e82b..4d4cf35 100644 --- a/src/views/screen/preparationRevision/ReleaseStandardChart.vue +++ b/src/views/screen/preparationRevision/ReleaseStandardChart.vue @@ -9,7 +9,7 @@ :class="{'active': selectType === 2}" v-model="selectValue" style="width: 70px" - placeholder="SC" + placeholder="各SC" :bordered="false" show-search :show-arrow="false" @@ -32,6 +32,14 @@ diff --git a/src/views/screen/preparationRevision/ShouldBeCompletedProjectChart.vue b/src/views/screen/preparationRevision/ShouldBeCompletedProjectChart.vue index 9c5c5c0..924fa88 100644 --- a/src/views/screen/preparationRevision/ShouldBeCompletedProjectChart.vue +++ b/src/views/screen/preparationRevision/ShouldBeCompletedProjectChart.vue @@ -7,7 +7,7 @@ class="active" v-model="selectValue" style="width: 70px" - placeholder="SC" + placeholder="各SC" :bordered="false" show-search :show-arrow="false" diff --git a/src/views/screen/util/BarAndLineOptions.js b/src/views/screen/util/BarAndLineOptions.js index 5fc0700..3086a52 100644 --- a/src/views/screen/util/BarAndLineOptions.js +++ b/src/views/screen/util/BarAndLineOptions.js @@ -50,7 +50,6 @@ export const BarAndLineOptions = { // 获取xAxis data中的数据 let dataStr = '' params.forEach(item => { - console.log('--item--------', item) let color = '' if(typeof item.color === 'string') { color = item.color @@ -66,7 +65,11 @@ export const BarAndLineOptions = { ` } else { - let valueText = item.value === undefined ? '-' : `${item.value}%` + let valueText = item.value + // 求比例的时候特殊处理 + if(item.seriesName.indexOf('比例') > -1) { + valueText = item.value === undefined ? '-' : `${item.value}%` + } dataStr += `
diff --git a/src/views/screen/util/BarOptions.js b/src/views/screen/util/BarOptions.js index 74512d8..dbafd77 100644 --- a/src/views/screen/util/BarOptions.js +++ b/src/views/screen/util/BarOptions.js @@ -2,7 +2,7 @@ import * as echarts from 'echarts' import { formatMoney } from '../../../utils/formatMoney' import { deepMerge } from '../../../utils/util' - +// 正常的柱状图配置 export const BarOptions = { // color: ['#4471EF', '#00D8F1', '#6CFBCE'], color: [ @@ -135,7 +135,6 @@ export const BarOptions = { } return newParamsName } - }, type: 'category', boundaryGap: ['30%', '20%'], @@ -170,12 +169,164 @@ export const BarOptions = { } } -// 生成柱状图 -export function createBarChart(idName, option) { +// X轴是value的配置 +export const BarAxisTransformOptions = { + color: [ + { + type: 'linear', + x: 1, + y: 0, + x2: 0, + y2: 0, + colorStops: [ + { + offset: 0, color: '#4471EF' // 0% 处的颜色 + }, + { + offset: 0.9, color: '#2D419A' // 100% 处的颜色 + }, + { + offset: 1, color: 'transparent' // 100% 处的颜色 + } + ], + global: false // 缺省为 false + }, + '#69C4F3' + ], + tooltip: { + trigger: 'axis', + formatter: params => { + // 获取xAxis data中的数据 + let dataStr = `
${params[0].name}
` + params.forEach(item => { + let color = '' + if(typeof item.color === 'string') { + color = item.color + } else { + color = item.color.colorStops[0].color + } + dataStr += `
+
+ + ${item.seriesName} + ${item.value} +
+
` + }) + return dataStr + }, + borderWidth: 0, + //提示框浮层的背景颜色 + backgroundColor: '#233062', + //额外附加到浮层的 css 样式。如下为浮层添加阴影的示例: + extraCssText: 'box-shadow: 0 0 4px #7599E8 inset;' + }, + + legend: { + //图例的公用文本样式。 + textStyle: { + color: '#7599E8' + }, + itemWidth: 14, + right: '3%' + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + toolbox: {}, + yAxis: { + axisLine: { + show: true, + lineStyle: { + color: '#7599E8' + } + }, + axisLabel: { + show: true, + color: '#7FA6FB', + interval: 0, + formatter: function(params) { + let newParamsName = '' // 最终拼接成的字符串 + let paramsNameNumber = params.length // 实际标签的个数 + let provideNumber = 10 // 每行能显示的字的个数 + let rowNumber = Math.ceil(paramsNameNumber / provideNumber) // 换行的话,需要显示几行,向上取整 + /** + * 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签 + */ + // 条件等同于rowNumber>1 + if (paramsNameNumber > provideNumber) { + /** 循环每一行,p表示行 */ + for (let p = 0; p < rowNumber; p++) { + let tempStr = ''// 表示每一次截取的字符串 + let start = p * provideNumber // 开始截取的位置 + let end = start + provideNumber // 结束截取的位置 + // 此处特殊处理最后一行的索引值 + if (p === rowNumber - 1) { + // 最后一次不换行 + tempStr = params.substring(start, paramsNameNumber) + } else { + // 每一次拼接字符串并换行 + tempStr = params.substring(start, end) + '\n' + } + newParamsName += tempStr // 最终拼成的字符串 + } + } else { + // 将旧标签的值赋给新标签 + newParamsName = params + } + return newParamsName + } + }, + type: 'category', + boundaryGap: ['30%', '20%'], + // 刻度线设置 + axisTick: { + show: false + }, + // TODO 需要自己扩展的 + data: [] + }, + xAxis: { + axisLine: { + show: true, + lineStyle: { + color: '#7599E8' + } + }, + axisLabel: { + show: true, + color: '#7FA6FB' + }, + splitLine: { + lineStyle: { + color: '#7599E8', + type: 'dashed' + } + }, + type: 'value', + nameTextStyle: { + color: '#7FA6FB' + } + } +} + +/** + * 生成柱状图 + * @param idName --- 当前dom的id + * @param option --- 配置项 + * @param xValue --- 横坐标是否是value,默认不传 + */ +export function createBarChart(idName, option, xValue) { const chartDom = document.getElementById(idName) echarts.dispose(chartDom) // debugger let chartOption = deepMerge({}, BarOptions, option) + if(xValue) { + chartOption = deepMerge({},BarAxisTransformOptions, option) + } let myChart = echarts.init(chartDom) chartOption && myChart.setOption(chartOption) window.addEventListener('resize', () => {