diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/assessRules/editPermWeight.vue b/src/views/assessRules/editPermWeight.vue new file mode 100644 index 0000000..6ae68be --- /dev/null +++ b/src/views/assessRules/editPermWeight.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/assessRules/editPermWeight.vue b/src/views/assessRules/editPermWeight.vue new file mode 100644 index 0000000..6ae68be --- /dev/null +++ b/src/views/assessRules/editPermWeight.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/assessRules/listDeptRules.vue b/src/views/assessRules/listDeptRules.vue new file mode 100644 index 0000000..c18c4ad --- /dev/null +++ b/src/views/assessRules/listDeptRules.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/assessRules/editPermWeight.vue b/src/views/assessRules/editPermWeight.vue new file mode 100644 index 0000000..6ae68be --- /dev/null +++ b/src/views/assessRules/editPermWeight.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/assessRules/listDeptRules.vue b/src/views/assessRules/listDeptRules.vue new file mode 100644 index 0000000..c18c4ad --- /dev/null +++ b/src/views/assessRules/listDeptRules.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/src/views/assessRules/listOverview.vue b/src/views/assessRules/listOverview.vue new file mode 100644 index 0000000..5cc14e6 --- /dev/null +++ b/src/views/assessRules/listOverview.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/assessRules/editPermWeight.vue b/src/views/assessRules/editPermWeight.vue new file mode 100644 index 0000000..6ae68be --- /dev/null +++ b/src/views/assessRules/editPermWeight.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/assessRules/listDeptRules.vue b/src/views/assessRules/listDeptRules.vue new file mode 100644 index 0000000..c18c4ad --- /dev/null +++ b/src/views/assessRules/listDeptRules.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/src/views/assessRules/listOverview.vue b/src/views/assessRules/listOverview.vue new file mode 100644 index 0000000..5cc14e6 --- /dev/null +++ b/src/views/assessRules/listOverview.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/assessRules/listPermWeight.vue b/src/views/assessRules/listPermWeight.vue new file mode 100644 index 0000000..644bc08 --- /dev/null +++ b/src/views/assessRules/listPermWeight.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/assessRules/editPermWeight.vue b/src/views/assessRules/editPermWeight.vue new file mode 100644 index 0000000..6ae68be --- /dev/null +++ b/src/views/assessRules/editPermWeight.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/assessRules/listDeptRules.vue b/src/views/assessRules/listDeptRules.vue new file mode 100644 index 0000000..c18c4ad --- /dev/null +++ b/src/views/assessRules/listDeptRules.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/src/views/assessRules/listOverview.vue b/src/views/assessRules/listOverview.vue new file mode 100644 index 0000000..5cc14e6 --- /dev/null +++ b/src/views/assessRules/listOverview.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/assessRules/listPermWeight.vue b/src/views/assessRules/listPermWeight.vue new file mode 100644 index 0000000..644bc08 --- /dev/null +++ b/src/views/assessRules/listPermWeight.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/views/assessRules/listTargetNum.vue b/src/views/assessRules/listTargetNum.vue new file mode 100644 index 0000000..5de3f75 --- /dev/null +++ b/src/views/assessRules/listTargetNum.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/assessRules/editPermWeight.vue b/src/views/assessRules/editPermWeight.vue new file mode 100644 index 0000000..6ae68be --- /dev/null +++ b/src/views/assessRules/editPermWeight.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/assessRules/listDeptRules.vue b/src/views/assessRules/listDeptRules.vue new file mode 100644 index 0000000..c18c4ad --- /dev/null +++ b/src/views/assessRules/listDeptRules.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/src/views/assessRules/listOverview.vue b/src/views/assessRules/listOverview.vue new file mode 100644 index 0000000..5cc14e6 --- /dev/null +++ b/src/views/assessRules/listOverview.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/assessRules/listPermWeight.vue b/src/views/assessRules/listPermWeight.vue new file mode 100644 index 0000000..644bc08 --- /dev/null +++ b/src/views/assessRules/listPermWeight.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/views/assessRules/listTargetNum.vue b/src/views/assessRules/listTargetNum.vue new file mode 100644 index 0000000..5de3f75 --- /dev/null +++ b/src/views/assessRules/listTargetNum.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/views/assessRules/permManage.vue b/src/views/assessRules/permManage.vue new file mode 100644 index 0000000..b605144 --- /dev/null +++ b/src/views/assessRules/permManage.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/assessRules/editPermWeight.vue b/src/views/assessRules/editPermWeight.vue new file mode 100644 index 0000000..6ae68be --- /dev/null +++ b/src/views/assessRules/editPermWeight.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/assessRules/listDeptRules.vue b/src/views/assessRules/listDeptRules.vue new file mode 100644 index 0000000..c18c4ad --- /dev/null +++ b/src/views/assessRules/listDeptRules.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/src/views/assessRules/listOverview.vue b/src/views/assessRules/listOverview.vue new file mode 100644 index 0000000..5cc14e6 --- /dev/null +++ b/src/views/assessRules/listOverview.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/assessRules/listPermWeight.vue b/src/views/assessRules/listPermWeight.vue new file mode 100644 index 0000000..644bc08 --- /dev/null +++ b/src/views/assessRules/listPermWeight.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/views/assessRules/listTargetNum.vue b/src/views/assessRules/listTargetNum.vue new file mode 100644 index 0000000..5de3f75 --- /dev/null +++ b/src/views/assessRules/listTargetNum.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/views/assessRules/permManage.vue b/src/views/assessRules/permManage.vue new file mode 100644 index 0000000..b605144 --- /dev/null +++ b/src/views/assessRules/permManage.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue new file mode 100644 index 0000000..4447f72 --- /dev/null +++ b/src/views/dashboard/components/PanelGroup.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/assessRules/editPermWeight.vue b/src/views/assessRules/editPermWeight.vue new file mode 100644 index 0000000..6ae68be --- /dev/null +++ b/src/views/assessRules/editPermWeight.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/assessRules/listDeptRules.vue b/src/views/assessRules/listDeptRules.vue new file mode 100644 index 0000000..c18c4ad --- /dev/null +++ b/src/views/assessRules/listDeptRules.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/src/views/assessRules/listOverview.vue b/src/views/assessRules/listOverview.vue new file mode 100644 index 0000000..5cc14e6 --- /dev/null +++ b/src/views/assessRules/listOverview.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/assessRules/listPermWeight.vue b/src/views/assessRules/listPermWeight.vue new file mode 100644 index 0000000..644bc08 --- /dev/null +++ b/src/views/assessRules/listPermWeight.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/views/assessRules/listTargetNum.vue b/src/views/assessRules/listTargetNum.vue new file mode 100644 index 0000000..5de3f75 --- /dev/null +++ b/src/views/assessRules/listTargetNum.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/views/assessRules/permManage.vue b/src/views/assessRules/permManage.vue new file mode 100644 index 0000000..b605144 --- /dev/null +++ b/src/views/assessRules/permManage.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue new file mode 100644 index 0000000..4447f72 --- /dev/null +++ b/src/views/dashboard/components/PanelGroup.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/src/views/dashboard/index-bak.vue b/src/views/dashboard/index-bak.vue new file mode 100644 index 0000000..714de54 --- /dev/null +++ b/src/views/dashboard/index-bak.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/config/dev.env.js b/config/dev.env.js index fcc970d..a176c11 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -10,7 +10,8 @@ // BASE_API: '"http://106.74.146.218:2031"' // BASE_API: '"http://192.168.0.212:8083"' // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.0.123:20007"' // BASE_API: '"http://192.168.2.107:20007"' // BASE_API: '"http://192.170.1.102:8093"' diff --git a/config/index.js b/config/index.js index e2feec2..d400bd2 100644 --- a/config/index.js +++ b/config/index.js @@ -23,7 +23,7 @@ // after: require('./../mock/mock-server.js'), // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 8083, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined //是否自动打开浏览器 autoOpenBrowser: true, errorOverlay: true, @@ -69,7 +69,7 @@ * then assetsPublicPath should be set to "/bar/". * In most cases please use '/' !!! */ - assetsPublicPath: '/callcenter/', + assetsPublicPath: '/wenxiao/', /** * Source Maps diff --git a/config/prod.env.js b/config/prod.env.js index 9ba8ed4..6be2384 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -4,6 +4,7 @@ // BASE_API: '"http://119.254.103.80:14537"', // BASE_API: '"http://10.18.0.23:8083/callcenter/api"' // BASE_API: '"http://10.18.0.23:8084/callcenter/api"' - BASE_API: '"http://139.198.16.38:20007"' + // BASE_API: '"http://139.198.16.38:20007"' + BASE_API: '"http://111.198.10.15:11408"' // BASE_API: '"http://192.168.8.201:8083"' } diff --git a/package.json b/package.json index 4a06342..3439aaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "v-charts": "^1.19.0", + "v-region": "^2.2.2", "vue": "2.5.17", "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", diff --git a/src/api/assessResult.js b/src/api/assessResult.js new file mode 100644 index 0000000..265c246 --- /dev/null +++ b/src/api/assessResult.js @@ -0,0 +1,124 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptResultList(params) { + return request({ + url: 'checkResult/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptResultDetail(params) { + return request({ + url: 'checkResultDetail/listPage', + method: 'get', + params + }) +} + +// 获取总览列表 +export function statisticsByDepartment(params) { + return request({ + url: 'checkResult/statisticsByDepartment', + method: 'get', + params + }) +} + +export function statisticsByIndex(params) { + return request({ + url: 'checkResult/statisticsByIndex', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkResult/statistics', + method: 'get', + params + }) +} + +export function indexAnalysis(params) { + return request({ + url: 'checkResult/indexAnalysis', + method: 'get', + params + }) +} + +export function getMenuByDepartment(params) { + return request({ + url: 'checkRule/getMenuByDepartment', + method: 'get', + params + }) +} + +export function alarmIndexAnalysis(params) { + return request({ + url: 'checkResult/alarmIndexAnalysis', + method: 'get', + params + }) +} + +// 批量导出 +export function batchExport(params) { + return request({ + url: 'checkResult/export', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} + +export function batchExportIndex(params) { + return request({ + url: 'checkResult/analysisExport', + method: 'get', + timeout: 120000, + params, + responseType: 'blob' // 这一步也很关键,一定要加上 responseType 值为 blob + }) +} diff --git a/src/api/assessRules.js b/src/api/assessRules.js new file mode 100644 index 0000000..e94abfd --- /dev/null +++ b/src/api/assessRules.js @@ -0,0 +1,70 @@ +/** + * 组织机构接口 + */ +import request from '@/utils/request' +// 获取权重分配列表 +export function getPermWeightList(params) { + return request({ + url: 'checkProportion/listPage', + method: 'get', + params + }) +} +// 组织机构树列表 +export function updateWeight(params) { + return request({ + url: 'checkProportion/update', + method: 'post', + params + }) +} + +// 部门考核规则列表 +export function getDeptRuleList(params) { + return request({ + url: 'checkRule/listPage', + method: 'get', + params + }) +} +// 组织机构列表 +export function getDeptList(pid) { + return request({ + url: 'checkRule/getDept/' + pid, + method: 'get' + }) +} + +// 获取部门考核规则详情 +export function getDeptRuleDetail(ruleid) { + return request({ + url: 'checkRuleDetail/detail/' + ruleid, + method: 'get' + }) +} + +// 获取总览列表 +export function getOverviewList(params) { + return request({ + url: 'checkProject/listPage', + method: 'get', + params + }) +} + +// 修改部门考核规则 +export function updateDeptRule(params) { + return request({ + url: 'checkRuleDetail/add', + method: 'post', + params + }) +} +// 获取部门考核统计数据 +export function getStatistics(params) { + return request({ + url: 'checkMenu/detail/' + params, + method: 'get' + }) +} + diff --git a/src/components/BigData/Card/index.vue b/src/components/BigData/Card/index.vue new file mode 100644 index 0000000..cfa1d61 --- /dev/null +++ b/src/components/BigData/Card/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/Calendar/calendar.vue b/src/components/Calendar/calendar.vue new file mode 100644 index 0000000..fbe5ab4 --- /dev/null +++ b/src/components/Calendar/calendar.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Clock/clock.vue b/src/components/Clock/clock.vue new file mode 100644 index 0000000..9e8f3cd --- /dev/null +++ b/src/components/Clock/clock.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/layout/components/AppHeader.vue b/src/layout/components/AppHeader.vue index 37dcb0b..60701ca 100644 --- a/src/layout/components/AppHeader.vue +++ b/src/layout/components/AppHeader.vue @@ -2,7 +2,7 @@

{{ title }}

- +
欢迎您,{{ name }} @@ -63,7 +63,7 @@ this.$store.dispatch('LogOut').then(() => { const BASE_API = process.env.BASE_API if (BASE_API.search('http://10.18.0.23') !== -1) { - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/logout' } else { location.reload() // this.$router.replace('/') diff --git a/src/router/index.js b/src/router/index.js index ac7440b..ea0d9ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,10 @@ /* Layout */ import Layout from '@/layout/Layout' +import { assessRulesRouters } from './modules/assessRules' +import { assessResultRouters } from './modules/assessResult' +import { indexStatusRouters } from './modules/indexStatus' +import { statisticsRouters } from './modules/statistics' import { systemRouters } from './modules/system' import { caseRouters } from './modules/case' import { knowledgeRouters } from './modules/knowledge' @@ -74,6 +78,10 @@ // 异步挂载路由 // 动态需要根据权限加载的路由表 export const asyncRouterMap = [ + ...assessRulesRouters, + ...assessResultRouters, + ...indexStatusRouters, + ...statisticsRouters, ...caseRouters, ...knowledgeRouters, ...customerRouters, diff --git a/src/router/modules/assessResult.js b/src/router/modules/assessResult.js new file mode 100644 index 0000000..c8e4a00 --- /dev/null +++ b/src/router/modules/assessResult.js @@ -0,0 +1,35 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessResultRouters = [{ + path: 'assessResult', + component: Layout, + redirect: '/resource', + name: 'AssessResult', + alwaysShow: true, + meta: { + title: '问效考核结果', + icon: 'app-config', // 图标 + permission: ['/assessResult']// 权限名称 + }, + children: [ + { + path: '/deptResult', + name: 'DeptResult', + component: () => import('@/views/assessResult/deptResult'), + meta: { title: '部门考核结果', icon: 'tree', permission: ['/deptResult'] } + }, + // { + // path: '/resultDetail', + // name: 'ResultDetail', + // hidden: true, + // component: () => import('@/views/assessResult/components/resultDetail'), + // meta: { title: '考核结果详情', icon: '', permission: ['/resultDetail'] } + // }, + { + path: '/resultStatistics', + name: 'ResultStatistics', + component: () => import('@/views/assessResult/resultStatistics'), + meta: { title: '指标统计图表', icon: 'function', permission: ['/resultStatistics'] } + } + ] +}] diff --git a/src/router/modules/assessRules.js b/src/router/modules/assessRules.js new file mode 100644 index 0000000..223c901 --- /dev/null +++ b/src/router/modules/assessRules.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const assessRulesRouters = [{ + path: 'assessRules', + component: Layout, + redirect: '/resource', + name: 'AssessRules', + alwaysShow: true, + meta: { + title: '考核规则管理', + icon: 'app-config', // 图标 + permission: ['/assessRules']// 权限名称 + }, + children: [ + { + path: '/listOverview', + name: 'ListOverview', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '考核单项总览', icon: 'function', permission: ['/listOverview'] } + }, + { + path: '/deptRules', + name: 'DeptRules', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '考核规则列表', icon: 'function', permission: ['/deptRules'] } + }, + { + path: '/permManage', + name: 'PermManage', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '权重分配管理', icon: 'tree', permission: ['/permManage'] } + } + ] +}] diff --git a/src/router/modules/indexStatus.js b/src/router/modules/indexStatus.js new file mode 100644 index 0000000..ac1cf80 --- /dev/null +++ b/src/router/modules/indexStatus.js @@ -0,0 +1,28 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const indexStatusRouters = [{ + path: 'indexStatus', + component: Layout, + redirect: '/resource', + name: 'IndexStatus', + alwaysShow: true, + meta: { + title: '指标态势分析', + icon: 'app-config', // 图标 + permission: ['/indexStatus']// 权限名称 + }, + children: [ + { + path: '/indexAnalysis', + name: 'IndexAnalysis', + component: () => import('@/views/indexStatus/indexAnalysis'), + meta: { title: '异常指标分析', icon: 'tree', permission: ['/indexAnalysis'] } + }, + { + path: '/alarmIndex', + name: 'AlarmIndex', + component: () => import('@/views/indexStatus/alarmIndex'), + meta: { title: '预警指标分析', icon: 'tree', permission: ['/alarmIndex'] } + } + ] +}] diff --git a/src/router/modules/statistics.js b/src/router/modules/statistics.js new file mode 100644 index 0000000..a36d38c --- /dev/null +++ b/src/router/modules/statistics.js @@ -0,0 +1,34 @@ +/* Layout */ +import Layout from '@/layout/Layout' +export const statisticsRouters = [{ + path: 'statistics', + component: Layout, + redirect: '/resource', + name: 'Statistics', + alwaysShow: true, + meta: { + title: '结果分析统计', + icon: 'app-config', // 图标 + permission: ['/statistics']// 权限名称 + }, + children: [ + { + path: '/statisticsOverview', + name: 'StatisticsOverview', + component: () => import('@/views/assessRules/permManage'), + meta: { title: '统计数据总览', icon: 'tree', permission: ['/statisticsOverview'] } + }, + { + path: '/dataShow', + name: 'DataShow', + component: () => import('@/views/assessRules/listDeptRules'), + meta: { title: '统计数据呈现', icon: 'function', permission: ['/dataShow'] } + }, + { + path: '/resultExport', + name: 'ResultExport', + component: () => import('@/views/assessRules/listOverview'), + meta: { title: '统计结果导出', icon: 'function', permission: ['/resultExport'] } + } + ] +}] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 7fca992..0262066 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -101,21 +101,22 @@ // 登录 AppLogin({ commit }, token) { return new Promise((resolve, reject) => { + reject() // 如果token存在直接setToken - if (token) { - setToken(token) - commit('SET_TOKEN', token) - resolve() - } else { - // 判断是开发环境还是生产环境, - // 生产环境不存在跳转到公共登陆平台 - if (process.env.NODE_ENV === 'development') { - reject() - } else { - const systemName = getProject().type - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName - } - } + // if (token) { + // setToken(token) + // commit('SET_TOKEN', token) + // resolve() + // } else { + // // 判断是开发环境还是生产环境, + // // 生产环境不存在跳转到公共登陆平台 + // if (process.env.NODE_ENV === 'development') { + // reject() + // } else { + // // const systemName = getProject().type + // // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin?systemName=' + systemName + // } + // } }) }, // 获取用户信息 diff --git a/src/utils/baseConfig.js b/src/utils/baseConfig.js index 1815c28..3c43d70 100644 --- a/src/utils/baseConfig.js +++ b/src/utils/baseConfig.js @@ -1,5 +1,5 @@ const project = { - title: '呼叫中心业务平台', + title: '行政问效综合评价平台', type: 'callcenter', // title: '城市协同工作平台', // // type: 'city', diff --git a/src/utils/parseutils.js b/src/utils/parseutils.js new file mode 100644 index 0000000..d895fa8 --- /dev/null +++ b/src/utils/parseutils.js @@ -0,0 +1,31 @@ +// 解析工具 + +/** + * 根据路径解析url参数 + * @param url 待解析路径 + * @return params 参数对象或是null + */ +export function parseUrl(url) { + // url样式如:xxxxx.com/api?key1=value1&key2=value2 + // 分割url中?前后字符串,有问号的表示有参数 + const query = url.split('?') + // 如果query长度大于1 表示有参数 + if (query.length > 1) { + const paramsObject = {} + // 将参数字符串用&分割,key1=value1&key2=value2 + const paramsStr = query[1].split('&') + // 遍历所有参数 + for (let i = 0; i < paramsStr.length; i++) { + const paramStr = paramsStr[i] // 请求参数,key=value + // 将参数的key和value分割 + const pos = paramStr.indexOf('=') + if (pos === -1) continue + const key = paramStr.substring(0, pos) // 获得参数名 + const value = paramStr.substring(pos + 1) // 获得参数值 + paramsObject[key] = value + } + return paramsObject + } else { + return null + } +} diff --git a/src/utils/request.js b/src/utils/request.js index 517107c..34c1cf4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,7 +53,7 @@ }) } else if (res.code === 402) { console.log('402页面跳转') - window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' + // window.location.href = 'http://10.18.0.50:8086/platform-sso-server/login?service=' + process.env.BASE_API + '/app/caslogin' } else { Message({ showClose: true, diff --git a/src/views/assessResult/components/chartDeptResult.vue b/src/views/assessResult/components/chartDeptResult.vue new file mode 100644 index 0000000..f63a666 --- /dev/null +++ b/src/views/assessResult/components/chartDeptResult.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/assessResult/components/deptStatistics.vue b/src/views/assessResult/components/deptStatistics.vue new file mode 100644 index 0000000..23ff616 --- /dev/null +++ b/src/views/assessResult/components/deptStatistics.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/assessResult/components/histogramDeptStatistics.vue b/src/views/assessResult/components/histogramDeptStatistics.vue new file mode 100644 index 0000000..b81c744 --- /dev/null +++ b/src/views/assessResult/components/histogramDeptStatistics.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/assessResult/components/indexStatistics.vue b/src/views/assessResult/components/indexStatistics.vue new file mode 100644 index 0000000..9e86323 --- /dev/null +++ b/src/views/assessResult/components/indexStatistics.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/views/assessResult/components/listDeptResult.vue b/src/views/assessResult/components/listDeptResult.vue new file mode 100644 index 0000000..3407ef3 --- /dev/null +++ b/src/views/assessResult/components/listDeptResult.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/views/assessResult/components/pieDeptStatistics.vue b/src/views/assessResult/components/pieDeptStatistics.vue new file mode 100644 index 0000000..a3544b0 --- /dev/null +++ b/src/views/assessResult/components/pieDeptStatistics.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/assessResult/components/resultDetail.vue b/src/views/assessResult/components/resultDetail.vue new file mode 100644 index 0000000..2ca3049 --- /dev/null +++ b/src/views/assessResult/components/resultDetail.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/views/assessResult/deptResult.vue b/src/views/assessResult/deptResult.vue new file mode 100644 index 0000000..ad64da0 --- /dev/null +++ b/src/views/assessResult/deptResult.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/assessResult/resultStatistics.vue b/src/views/assessResult/resultStatistics.vue new file mode 100644 index 0000000..1f4559d --- /dev/null +++ b/src/views/assessResult/resultStatistics.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/assessRules/deptStatistics.vue b/src/views/assessRules/deptStatistics.vue new file mode 100644 index 0000000..05dc76e --- /dev/null +++ b/src/views/assessRules/deptStatistics.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/assessRules/editDeptRule.vue b/src/views/assessRules/editDeptRule.vue new file mode 100644 index 0000000..a0098fe --- /dev/null +++ b/src/views/assessRules/editDeptRule.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/assessRules/editPermWeight.vue b/src/views/assessRules/editPermWeight.vue new file mode 100644 index 0000000..6ae68be --- /dev/null +++ b/src/views/assessRules/editPermWeight.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/assessRules/listDeptRules.vue b/src/views/assessRules/listDeptRules.vue new file mode 100644 index 0000000..c18c4ad --- /dev/null +++ b/src/views/assessRules/listDeptRules.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/src/views/assessRules/listOverview.vue b/src/views/assessRules/listOverview.vue new file mode 100644 index 0000000..5cc14e6 --- /dev/null +++ b/src/views/assessRules/listOverview.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/assessRules/listPermWeight.vue b/src/views/assessRules/listPermWeight.vue new file mode 100644 index 0000000..644bc08 --- /dev/null +++ b/src/views/assessRules/listPermWeight.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/views/assessRules/listTargetNum.vue b/src/views/assessRules/listTargetNum.vue new file mode 100644 index 0000000..5de3f75 --- /dev/null +++ b/src/views/assessRules/listTargetNum.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/views/assessRules/permManage.vue b/src/views/assessRules/permManage.vue new file mode 100644 index 0000000..b605144 --- /dev/null +++ b/src/views/assessRules/permManage.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue new file mode 100644 index 0000000..4447f72 --- /dev/null +++ b/src/views/dashboard/components/PanelGroup.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/src/views/dashboard/index-bak.vue b/src/views/dashboard/index-bak.vue new file mode 100644 index 0000000..714de54 --- /dev/null +++ b/src/views/dashboard/index-bak.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index 998ef1a..50923f1 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -1,21 +1,21 @@