Merge branch 'hi-ucs-dev' of http://15.2.21.221:3000/wuhongjian/hi-ucs into hi-ucs-dev
This commit is contained in:
commit
4ee80c7529
|
@ -27,7 +27,7 @@
|
|||
'isTab': true, // 是否通过tab展示内容?
|
||||
'iframeURL': '' // 是否通过iframe嵌套展示内容? (以http[s]://开头, 自动匹配)
|
||||
};
|
||||
window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/#/vueTemplateDemo';
|
||||
window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.243:9796/#/vueTemplateDemo';
|
||||
// window.SITE_CONFIG['frontUrl'] = 'http://124.222.94.39:9796/#/vueTemplateDemo';
|
||||
// window.SITE_CONFIG['frontUrl'] = 'http://15.72.183.90:7008/#/vueTemplateDemo';
|
||||
// window.SITE_CONFIG['frontUrl'] = 'http://10.134.135.9:9797/#/vueTemplateDemo';
|
||||
|
@ -72,9 +72,9 @@
|
|||
<script>
|
||||
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://124.222.94.39:8888/renren-admin';
|
||||
|
||||
window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.243:9796/';
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.238:8888/renren-admin';
|
||||
window.SITE_CONFIG['apiURL'] = 'http://124.222.94.39:8888/renren-admin';
|
||||
window.SITE_CONFIG['apiURL'] = 'http://15.2.21.243:8888/renren-admin';
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://15.72.183.90:8000/renren-admin';
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
|
||||
// WebSocket地址
|
||||
|
|
|
@ -98,7 +98,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="agreeOr" v-if="this.dataForm.taskId">
|
||||
<div class="agreeOr" v-if="taskId">
|
||||
<div>
|
||||
<!-- <el-radio-group v-model="agreeOrList" style="width:230px;">
|
||||
<el-radio-button label="同意" class="blueAll" @click="showDialog('同意')">同意</el-radio-button>
|
||||
|
@ -136,6 +136,7 @@
|
|||
|
||||
<script>
|
||||
// 引入工作流公共方法
|
||||
import bus from '@/views/bus.js'
|
||||
import processModule from '@/mixins/process-module'
|
||||
import RenProcessDetail from '@/components/ren-process-detail/src/ren-process-detail'
|
||||
import debounce from 'lodash/debounce'
|
||||
|
@ -154,6 +155,7 @@ export default {
|
|||
dataForm: [],
|
||||
deptName: '',
|
||||
dataList: {},
|
||||
taskId: '',
|
||||
datalistrighttablelist: [
|
||||
'赋能应用名称',
|
||||
'应用归属部门',
|
||||
|
@ -242,6 +244,7 @@ export default {
|
|||
}
|
||||
return
|
||||
}
|
||||
bus.$emit('AbilityResourcesRemovedInit')
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
|
@ -271,6 +274,7 @@ export default {
|
|||
}
|
||||
return
|
||||
}
|
||||
bus.$emit('AbilityResourcesRemovedInit')
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
|
@ -324,6 +328,7 @@ export default {
|
|||
taskHandleErrorCallback (data) {}
|
||||
},
|
||||
created () {
|
||||
this.taskId = this.$route.params.taskId
|
||||
this.dataForm.taskId = this.$route.params.taskId
|
||||
this.init()
|
||||
},
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-27 11:27:22
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-06-29 16:31:26
|
||||
* @LastEditTime: 2022-07-25 09:45:35
|
||||
* @Description: "能力资源上架"
|
||||
-->
|
||||
<template>
|
||||
|
@ -128,6 +128,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import bus from '@/views/bus.js'
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import processModule from '@/mixins/process-module'
|
||||
export default {
|
||||
|
@ -165,6 +166,12 @@ export default {
|
|||
}
|
||||
this.getProcDefRouteSet(row, this.forwardTaskDetail)
|
||||
}
|
||||
},
|
||||
created () {
|
||||
bus.$off('abilityResourceShelfInit')
|
||||
bus.$on('abilityResourceShelfInit', () => {
|
||||
this.getDataList()
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-27 11:27:22
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-06-29 16:31:26
|
||||
* @LastEditTime: 2022-07-25 09:48:46
|
||||
* @Description: "能力资源下架"
|
||||
-->
|
||||
<template>
|
||||
|
@ -128,6 +128,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import bus from '@/views/bus.js'
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import processModule from '@/mixins/process-module'
|
||||
export default {
|
||||
|
@ -165,6 +166,12 @@ export default {
|
|||
}
|
||||
this.getProcDefRouteSet(row, this.forwardTaskDetail)
|
||||
}
|
||||
},
|
||||
created () {
|
||||
bus.$off('AbilityResourcesRemovedInit')
|
||||
bus.$on('AbilityResourcesRemovedInit', () => {
|
||||
this.getDataList()
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-27 11:27:22
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-06-29 16:31:26
|
||||
* @LastEditTime: 2022-07-25 09:39:01
|
||||
* @Description: 能力申请
|
||||
-->
|
||||
<template>
|
||||
|
@ -118,6 +118,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import bus from '@/views/bus.js'
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import processModule from '@/mixins/process-module'
|
||||
export default {
|
||||
|
@ -155,6 +156,12 @@ export default {
|
|||
}
|
||||
this.getProcDefRouteSet(row, this.forwardTaskDetail)
|
||||
}
|
||||
},
|
||||
created () {
|
||||
bus.$off('competencyApplicationInit')
|
||||
bus.$on('competencyApplicationInit', () => {
|
||||
this.getDataList()
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -83,6 +83,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import bus from '@/views/bus.js'
|
||||
import ResourcesAndServices from './ResourcesAndServices.vue'
|
||||
import debounce from 'lodash/debounce'
|
||||
import qs from 'qs'
|
||||
|
@ -214,6 +215,7 @@ export default {
|
|||
}
|
||||
return
|
||||
}
|
||||
bus.$emit('abilityResourceShelfInit')
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
|
@ -244,6 +246,7 @@ export default {
|
|||
}
|
||||
return
|
||||
}
|
||||
bus.$emit('abilityResourceShelfInit')
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-29 15:59:51
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-21 16:41:09
|
||||
* @LastEditTime: 2022-07-25 09:42:46
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<!-- 流程业务表单 -->
|
||||
|
@ -29,16 +29,18 @@
|
|||
{{ dataForm.content.title || '--' }}</span
|
||||
></span
|
||||
>
|
||||
<span class="text"
|
||||
<span class="text" v-if="dataForm.content.applicationSystem"
|
||||
>应用系统:<span>{{
|
||||
dataForm.content.applicationSystem || '--'
|
||||
}}</span></span
|
||||
>
|
||||
<span class="text"
|
||||
<span class="text" ></span>
|
||||
</p>
|
||||
<p>
|
||||
<span v-if="dataForm.content.applicationSceneStr"
|
||||
>应用场景:<span>
|
||||
{{ dataForm.content.applicationSceneStr || '--' }}</span
|
||||
></span
|
||||
>
|
||||
></span>
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
|
@ -131,6 +133,7 @@ import processModule from '@/mixins/process-module'
|
|||
import debounce from 'lodash/debounce'
|
||||
import qs from 'qs'
|
||||
import RenProcessDetail from '@/components/ren-process-detail/src/ren-process-detail'
|
||||
import bus from '@/views/bus.js'
|
||||
export default {
|
||||
// 注入公共方法
|
||||
mixins: [processModule],
|
||||
|
@ -386,6 +389,7 @@ export default {
|
|||
}
|
||||
return
|
||||
}
|
||||
bus.$emit('competencyApplicationInit')
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
|
@ -415,6 +419,7 @@ export default {
|
|||
}
|
||||
return
|
||||
}
|
||||
bus.$emit('competencyApplicationInit')
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
|
|
|
@ -15,21 +15,19 @@
|
|||
<div v-for="(item, i) in dataInfo.list" :key="i">
|
||||
<!-- 待办 -->
|
||||
<el-tooltip effect="dark" v-if="dataInfo.type === 'todo'"
|
||||
:content="(item.userName || '--')+'提交的'+(item.processDefinitionName|| '--')+(item.processDefinitionName!=='能力申请'?'申请':'')"
|
||||
:content="(item.userName || '--')+'提交的'+(item.processDefinitionName|| '--')+(item.processDefinitionName!=='能力申请'&&item.processDefinitionName!=='能力需求申请'?'申请':'')"
|
||||
placement="top">
|
||||
<div class="list-item ellipsis">
|
||||
<!-- {{ `${(item.processDefinitionName || '--')}${item.taskName ? ('—' + item.taskName) : ''}` }} -->
|
||||
{{(item.userName || '--')+'提交的'+(item.processDefinitionName|| '--')+(item.processDefinitionName!=='能力申请'?'申请':'')}}
|
||||
{{(item.userName || '--')+'提交的'+(item.processDefinitionName|| '--')+(item.processDefinitionName!=='能力申请'&&item.processDefinitionName!=='能力需求申请'?'申请':'')}}
|
||||
</div>
|
||||
</el-tooltip>
|
||||
<!-- 已办 -->
|
||||
<el-tooltip effect="dark" v-else
|
||||
:content="`${(item.processDefinitionName || '--')}${item.resourceName ? ('—' + item.resourceName) : ''}`"
|
||||
:content="(item.startUserName||'--')+'提交的'+(item.processDefinitionName|| '--')+(item.processDefinitionName!=='能力申请'&&item.processDefinitionName!=='能力需求申请'?'申请':'')"
|
||||
placement="top">
|
||||
<div class="list-item ellipsis">
|
||||
{{ `${(item.processDefinitionName || '--')}${item.resourceName ? ('—' + item.resourceName) :
|
||||
''}`
|
||||
}}
|
||||
{{ (item.startUserName||'--')+'提交的'+(item.processDefinitionName|| '--')+(item.processDefinitionName!=='能力申请'&&item.processDefinitionName!=='能力需求申请'?'申请':'')}}
|
||||
</div>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
/*
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-06-14 09:31:29
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-15 16:33:55
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
|
@ -15,6 +22,7 @@ module.exports = {
|
|||
ignorePatterns: [
|
||||
'src/supermap',
|
||||
'src/views/home/videoSurveillance',
|
||||
'src/views/vab/*',
|
||||
'src/utils/coordinateSystemTransform.js',
|
||||
],
|
||||
}
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"lint": "vue-cli-service lint",
|
||||
"lint": "eslint --ext .js --ext .jsx --ext .vue src/",
|
||||
"lint:fix": "eslint --fix --ext .js,.vue .",
|
||||
"fix": "eslint src/**/*.* --fix",
|
||||
"clear": "rimraf node_modules&&npm install --registry=https://registry.npm.taobao.org",
|
||||
"use:npm": "nrm use npm",
|
||||
"use:taobao": "nrm use taobao",
|
||||
|
@ -48,25 +50,25 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@turf/turf": "^6.5.0",
|
||||
"@vue/cli-plugin-babel": "^4.5.9",
|
||||
"@vue/cli-plugin-eslint": "^4.5.9",
|
||||
"@vue/cli-plugin-babel": "^4.5.15",
|
||||
"@vue/cli-plugin-eslint": "^4.5.15",
|
||||
"@vue/cli-service": "^4.5.9",
|
||||
"@vue/compiler-sfc": "^3.1.4",
|
||||
"@vue/eslint-config-prettier": "^6.0.0",
|
||||
"babel-eslint": "^11.0.0-beta.2",
|
||||
"body-parser": "^1.19.0",
|
||||
"@vue/eslint-config-prettier": "^7.0.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"body-parser": "^1.20.0",
|
||||
"chalk": "^4.1.1",
|
||||
"chokidar": "^3.5.2",
|
||||
"crypto-js": "^4.1.1",
|
||||
"eslint": "^7.30.0",
|
||||
"eslint-plugin-prettier": "^3.4.0",
|
||||
"eslint-plugin-vue": "^7.13.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-vue": "^9.1.1",
|
||||
"filemanager-webpack-plugin": "^6.1.4",
|
||||
"less": "^4.1.1",
|
||||
"less-loader": "^7.3.0",
|
||||
"prettier": "^2.3.2",
|
||||
"prettier": "^2.7.1",
|
||||
"stylelint": "^13.13.1",
|
||||
"stylelint-config-prettier": "^8.0.2",
|
||||
"stylelint-config-prettier": "^9.0.3",
|
||||
"stylelint-config-recess-order": "^2.4.0",
|
||||
"stylus": "^0.54.5",
|
||||
"stylus-loader": "^3.0.2",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-03-29 16:45:25
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-21 15:09:22
|
||||
* @LastEditTime: 2022-07-22 18:42:44
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
|
@ -40,9 +40,16 @@
|
|||
// window.SITE_CONFIG['frontUrl'] = 'http://10.110.205.1:8002/document/#/devModelFile/';
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://10.110.205.1:8000/renren-admin';
|
||||
|
||||
// 测试环境
|
||||
// window.SITE_CONFIG['backUrl'] = 'http://15.2.21.243:9797';
|
||||
// window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.243:9796/';
|
||||
// window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.243:9796/document/#/devModelFile/';
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.243:8888/renren-admin';
|
||||
// window.SITE_CONFIG['websocketURL'] = '15.2.21.243:8888/renren-admin';
|
||||
// window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
||||
// 西海岸版本
|
||||
// window.SITE_CONFIG['backUrl'] = 'http://10.134.135.9:9797';
|
||||
// window.SITE_CONFIG['previewUrl'] = 'http://10.134.135.9:9796/';基础设施
|
||||
// window.SITE_CONFIG['previewUrl'] = 'http://10.134.135.9:9796/';
|
||||
// window.SITE_CONFIG['frontUrl'] = 'http://10.134.135.9:9796/document/#/devModelFile/';
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
|
||||
// 开发
|
||||
|
@ -52,6 +59,11 @@
|
|||
window.SITE_CONFIG['apiURL'] = 'http://15.2.21.236:8888/renren-admin';
|
||||
window.SITE_CONFIG['websocketURL'] = '15.2.21.236:8888/renren-admin';
|
||||
window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
||||
// window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
|
||||
// window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796/';
|
||||
// window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/';
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.239:8888/renren-admin';
|
||||
// window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
||||
// 穿透版本
|
||||
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';
|
||||
// window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/';
|
||||
|
|
|
@ -83,14 +83,22 @@ export function dataResourceInfo(params) {
|
|||
//能力云图-调用趋势
|
||||
export function callTheTrendPort(start, end, params) {
|
||||
return request({
|
||||
url: '/metrics/api/v1/query_range?query=sum(increase(apigateway_http_status%5B1d%5D))&start=' + start + '&end=' + end + '&step=' + params,
|
||||
url:
|
||||
'/metrics/api/v1/query_range?query=sum(increase(apigateway_http_status%5B1d%5D))&start=' +
|
||||
start +
|
||||
'&end=' +
|
||||
end +
|
||||
'&step=' +
|
||||
params,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//能力云图-调用次数
|
||||
export function totalCallsSnum(params) {
|
||||
return request({
|
||||
url: '/metrics/api/v1/query?query=sum(apigateway_http_status)&time=1655793262.495' + params,
|
||||
url:
|
||||
'/metrics/api/v1/query?query=sum(apigateway_http_status)&time=1655793262.495' +
|
||||
params,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
|
|
@ -50,7 +50,14 @@ const setting = {
|
|||
//路由模式,可选值为 history 或 hash
|
||||
routerMode: 'hash',
|
||||
//不经过token校验的路由
|
||||
routesWhiteList: ['/login', '/register', '/callback', '/404', '/403', '/capabilityCloud'], // 新增统计云图白名单
|
||||
routesWhiteList: [
|
||||
'/login',
|
||||
'/register',
|
||||
'/callback',
|
||||
'/404',
|
||||
'/403',
|
||||
'/capabilityCloud',
|
||||
], // 新增统计云图白名单
|
||||
//加载时显示文字
|
||||
loadingText: '正在加载中...',
|
||||
//token名称
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-03-29 17:48:03
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-21 18:39:03
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-22 16:03:23
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
import { createApp } from 'vue'
|
||||
|
|
|
@ -2,182 +2,182 @@
|
|||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 登录、获取用户信息、退出登录、清除accessToken逻辑,不建议修改
|
||||
*/
|
||||
import { getUserInfo, login, logout } from '@/api/user'
|
||||
import {
|
||||
getAccessToken,
|
||||
removeAccessToken,
|
||||
setAccessToken,
|
||||
} from '@/utils/accessToken'
|
||||
import { title, tokenName } from '@/config'
|
||||
import { message, notification } from 'ant-design-vue'
|
||||
import { getUserInfo, login, logout } from '@/api/user'
|
||||
import {
|
||||
getAccessToken,
|
||||
removeAccessToken,
|
||||
setAccessToken,
|
||||
} from '@/utils/accessToken'
|
||||
import { title, tokenName } from '@/config'
|
||||
import { message, notification } from 'ant-design-vue'
|
||||
|
||||
const state = () => ({
|
||||
accessToken: getAccessToken(),
|
||||
username: '',
|
||||
userId: '',
|
||||
avatar: '',
|
||||
role: 0, // 用户管理员权限
|
||||
})
|
||||
const getters = {
|
||||
accessToken: (state) => state.accessToken,
|
||||
username: (state) => state.username,
|
||||
avatar: (state) => state.avatar,
|
||||
role: (state) => state.role,
|
||||
userId: (state) => state.userId,
|
||||
}
|
||||
const mutations = {
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置accessToken
|
||||
* @param {*} state
|
||||
* @param {*} accessToken
|
||||
*/
|
||||
setAccessToken(state, accessToken) {
|
||||
state.accessToken = accessToken
|
||||
setAccessToken(accessToken)
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置用户名
|
||||
* @param {*} state
|
||||
* @param {*} username
|
||||
*/
|
||||
setUsername(state, username) {
|
||||
state.username = username
|
||||
},
|
||||
// 设置角色
|
||||
setRole(state, role) {
|
||||
state.role = role
|
||||
},
|
||||
// 设置用户userId
|
||||
setUserId(state, id) {
|
||||
state.userId = id
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置头像
|
||||
* @param {*} state
|
||||
* @param {*} avatar
|
||||
*/
|
||||
setAvatar(state, avatar) {
|
||||
state.avatar = avatar
|
||||
},
|
||||
}
|
||||
const actions = {
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 登录拦截放行时,设置虚拟角色
|
||||
* @param {*} { commit, dispatch }
|
||||
*/
|
||||
setVirtualRoles({ commit, dispatch }) {
|
||||
dispatch('acl/setFull', true, {
|
||||
root: true,
|
||||
})
|
||||
commit('setAvatar', 'https://i.gtimg.cn/club/item/face/img/2/15922_100.gif')
|
||||
commit('setUsername', 'admin(未开启登录拦截)')
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 登录
|
||||
* @param {*} { commit }
|
||||
* @param {*} userInfo
|
||||
*/
|
||||
async login({ commit }, userInfo) {
|
||||
const { data } = await login(userInfo)
|
||||
// debugger
|
||||
const accessToken = data.data[tokenName]
|
||||
if (accessToken) {
|
||||
commit('setAccessToken', accessToken)
|
||||
const hour = new Date().getHours()
|
||||
const thisTime =
|
||||
hour < 8
|
||||
? '早上好'
|
||||
: hour <= 11
|
||||
? '上午好'
|
||||
: hour <= 13
|
||||
? '中午好'
|
||||
: hour < 18
|
||||
? '下午好'
|
||||
: '晚上好'
|
||||
notification.open({
|
||||
message: `欢迎登录${title}`,
|
||||
description: `${thisTime}!`,
|
||||
})
|
||||
} else {
|
||||
message.error(`登录接口异常,未正确返回${tokenName}...`)
|
||||
}
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 获取用户信息接口 这个接口非常非常重要,如果没有明确底层前逻辑禁止修改此方法,错误的修改可能造成整个框架无法正常使用
|
||||
* @param {*} { commit, dispatch, state }
|
||||
* @returns
|
||||
*/
|
||||
async getUserInfo({ commit }) {
|
||||
const { data } = await getUserInfo()
|
||||
if (!data) {
|
||||
message.error(`验证失败,请重新登录...`)
|
||||
return false
|
||||
}
|
||||
// debugger
|
||||
commit('setUsername', data.data.realName)
|
||||
commit('setRole', data.data.roleIdList.length)
|
||||
commit('setUserId', data.data.id)
|
||||
// TODO 获取用户信息,后续执行部分操作
|
||||
// let { username, avatar, roles, ability } = data
|
||||
// if (username && roles && Array.isArray(roles)) {
|
||||
// dispatch('acl/setRole', roles, {
|
||||
// root: true,
|
||||
// })
|
||||
// if (ability && ability.length > 0)
|
||||
// dispatch('acl/setAbility', ability, {
|
||||
// root: true,
|
||||
// })
|
||||
// commit('setUsername', username)
|
||||
// commit('setAvatar', avatar)
|
||||
// } else {
|
||||
// message.error('用户信息接口异常')
|
||||
// }
|
||||
},
|
||||
const state = () => ({
|
||||
accessToken: getAccessToken(),
|
||||
username: '',
|
||||
userId: '',
|
||||
avatar: '',
|
||||
role: 0, // 用户管理员权限
|
||||
})
|
||||
const getters = {
|
||||
accessToken: (state) => state.accessToken,
|
||||
username: (state) => state.username,
|
||||
avatar: (state) => state.avatar,
|
||||
role: (state) => state.role,
|
||||
userId: (state) => state.userId,
|
||||
}
|
||||
const mutations = {
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置accessToken
|
||||
* @param {*} state
|
||||
* @param {*} accessToken
|
||||
*/
|
||||
setAccessToken(state, accessToken) {
|
||||
state.accessToken = accessToken
|
||||
setAccessToken(accessToken)
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置用户名
|
||||
* @param {*} state
|
||||
* @param {*} username
|
||||
*/
|
||||
setUsername(state, username) {
|
||||
state.username = username
|
||||
},
|
||||
// 设置角色
|
||||
setRole(state, role) {
|
||||
state.role = role
|
||||
},
|
||||
// 设置用户userId
|
||||
setUserId(state, id) {
|
||||
state.userId = id
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置头像
|
||||
* @param {*} state
|
||||
* @param {*} avatar
|
||||
*/
|
||||
setAvatar(state, avatar) {
|
||||
state.avatar = avatar
|
||||
},
|
||||
}
|
||||
const actions = {
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 登录拦截放行时,设置虚拟角色
|
||||
* @param {*} { commit, dispatch }
|
||||
*/
|
||||
setVirtualRoles({ commit, dispatch }) {
|
||||
dispatch('acl/setFull', true, {
|
||||
root: true,
|
||||
})
|
||||
commit('setAvatar', 'https://i.gtimg.cn/club/item/face/img/2/15922_100.gif')
|
||||
commit('setUsername', 'admin(未开启登录拦截)')
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 登录
|
||||
* @param {*} { commit }
|
||||
* @param {*} userInfo
|
||||
*/
|
||||
async login({ commit }, userInfo) {
|
||||
const { data } = await login(userInfo)
|
||||
// debugger
|
||||
const accessToken = data.data[tokenName]
|
||||
if (accessToken) {
|
||||
commit('setAccessToken', accessToken)
|
||||
const hour = new Date().getHours()
|
||||
const thisTime =
|
||||
hour < 8
|
||||
? '早上好'
|
||||
: hour <= 11
|
||||
? '上午好'
|
||||
: hour <= 13
|
||||
? '中午好'
|
||||
: hour < 18
|
||||
? '下午好'
|
||||
: '晚上好'
|
||||
notification.open({
|
||||
message: `欢迎登录${title}`,
|
||||
description: `${thisTime}!`,
|
||||
})
|
||||
} else {
|
||||
message.error(`登录接口异常,未正确返回${tokenName}...`)
|
||||
}
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 获取用户信息接口 这个接口非常非常重要,如果没有明确底层前逻辑禁止修改此方法,错误的修改可能造成整个框架无法正常使用
|
||||
* @param {*} { commit, dispatch, state }
|
||||
* @returns
|
||||
*/
|
||||
async getUserInfo({ commit }) {
|
||||
const { data } = await getUserInfo()
|
||||
if (!data) {
|
||||
message.error(`验证失败,请重新登录...`)
|
||||
return false
|
||||
}
|
||||
// debugger
|
||||
commit('setUsername', data.data.realName)
|
||||
commit('setRole', data.data.roleIdList.length)
|
||||
commit('setUserId', data.data.id)
|
||||
// TODO 获取用户信息,后续执行部分操作
|
||||
// let { username, avatar, roles, ability } = data
|
||||
// if (username && roles && Array.isArray(roles)) {
|
||||
// dispatch('acl/setRole', roles, {
|
||||
// root: true,
|
||||
// })
|
||||
// if (ability && ability.length > 0)
|
||||
// dispatch('acl/setAbility', ability, {
|
||||
// root: true,
|
||||
// })
|
||||
// commit('setUsername', username)
|
||||
// commit('setAvatar', avatar)
|
||||
// } else {
|
||||
// message.error('用户信息接口异常')
|
||||
// }
|
||||
},
|
||||
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 退出登录
|
||||
* @param {*} { dispatch }
|
||||
*/
|
||||
async logout({ dispatch }) {
|
||||
await logout(state.accessToken)
|
||||
await dispatch('resetAll')
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 重置accessToken、roles、ability、router等
|
||||
* @param {*} { commit, dispatch }
|
||||
*/
|
||||
async resetAll({ dispatch }) {
|
||||
await dispatch('setAccessToken', '')
|
||||
await dispatch('acl/setFull', false, {
|
||||
root: true,
|
||||
})
|
||||
await dispatch('acl/setRole', [], {
|
||||
root: true,
|
||||
})
|
||||
await dispatch('acl/setAbility', [], {
|
||||
root: true,
|
||||
})
|
||||
removeAccessToken()
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置token
|
||||
*/
|
||||
setAccessToken({ commit }, accessToken) {
|
||||
commit('setAccessToken', accessToken)
|
||||
},
|
||||
}
|
||||
export default {
|
||||
state,
|
||||
getters,
|
||||
mutations,
|
||||
actions,
|
||||
}
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 退出登录
|
||||
* @param {*} { dispatch }
|
||||
*/
|
||||
async logout({ dispatch }) {
|
||||
await logout(state.accessToken)
|
||||
await dispatch('resetAll')
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 重置accessToken、roles、ability、router等
|
||||
* @param {*} { commit, dispatch }
|
||||
*/
|
||||
async resetAll({ dispatch }) {
|
||||
await dispatch('setAccessToken', '')
|
||||
await dispatch('acl/setFull', false, {
|
||||
root: true,
|
||||
})
|
||||
await dispatch('acl/setRole', [], {
|
||||
root: true,
|
||||
})
|
||||
await dispatch('acl/setAbility', [], {
|
||||
root: true,
|
||||
})
|
||||
removeAccessToken()
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置token
|
||||
*/
|
||||
setAccessToken({ commit }, accessToken) {
|
||||
commit('setAccessToken', accessToken)
|
||||
},
|
||||
}
|
||||
export default {
|
||||
state,
|
||||
getters,
|
||||
mutations,
|
||||
actions,
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ const handleCode = (code, msg, res) => {
|
|||
message.error(msg || '接口异常')
|
||||
break
|
||||
case 302:
|
||||
window.location.href = redirect
|
||||
// window.location.href = redirect
|
||||
break
|
||||
}
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ instance.interceptors.request.use(
|
|||
if (debounce.some((item) => config.url.includes(item))) {
|
||||
//这里写加载动画
|
||||
}
|
||||
if (!config.headers.REQUESTURI){
|
||||
if (!config.headers.REQUESTURI) {
|
||||
config.headers.REQUESTURI = window.location.href
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ instance.interceptors.response.use(
|
|||
}
|
||||
if (response.headers.redirect) {
|
||||
window.location.replace(response.headers.redirect)
|
||||
return
|
||||
return
|
||||
}
|
||||
if (response.headers.redirect === '/#/login') {
|
||||
var keys = document.cookie.match(/[^ =;]+(?=\=)/g)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-04-01 17:23:11
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-18 11:25:28
|
||||
* @LastEditTime: 2022-07-18 18:45:20
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
/**
|
||||
|
|
|
@ -53,10 +53,7 @@
|
|||
v-for="(item, index) in contenBox"
|
||||
:key="index"
|
||||
>
|
||||
<img
|
||||
:src="item.note1"
|
||||
alt=""
|
||||
/>
|
||||
<img :src="item.note1" alt="" />
|
||||
<h3>{{ item.name }}</h3>
|
||||
<p>
|
||||
发布时间
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-08 11:32:22
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-06-30 17:06:56
|
||||
* @LastEditTime: 2022-07-18 18:49:30
|
||||
* @Description: 算法详情页
|
||||
-->
|
||||
<template>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-08 11:32:22
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-18 13:55:03
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-22 18:43:37
|
||||
* @Description: 应用详情页
|
||||
-->
|
||||
<template>
|
||||
|
@ -87,16 +87,15 @@
|
|||
import ApplicationTopDetails from '@/views/detailsAll/components/Application/ApplicationTopDetails.vue'
|
||||
import ApplicationNavigation from '@/views/detailsAll/components/Application/ApplicationNavigation.vue'
|
||||
import ApplicationPresentation from '@/views/detailsAll/components/Application/ApplicationPresentation.vue'
|
||||
import ApplicationAbilityTrial from '@/views/detailsAll/components/Application/ApplicationAbilityTrial.vue'
|
||||
import ApplicationCommonProblem from '@/views/detailsAll/components/Application/ApplicationCommonProblem' //常见问题
|
||||
import ApplicationCommonProblem from '@/views/detailsAll/components/Application/ApplicationCommonProblem.vue'
|
||||
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import {
|
||||
updateVisits,
|
||||
selectOne,
|
||||
queryPartAppByKeyId,
|
||||
browsingInsert,
|
||||
} from '@/api/home'
|
||||
import { useRouter } from 'vue-router'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
const associatedComponents = ref([{ type: '组件服务', dataList: [] }])
|
||||
let loading = ref(true)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.gaoyuanwei
|
||||
* @Date: 2022-06-20 10:12:22
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-06-20 18:58:56
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-18 18:49:01
|
||||
* @Description: 业务组件详情页
|
||||
-->
|
||||
<template>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-08 11:32:22
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-06-20 18:59:01
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-18 18:48:53
|
||||
* @Description: 开发组件详情页
|
||||
-->
|
||||
<template>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-08 11:32:22
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-06-20 18:59:01
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-18 18:48:32
|
||||
* @Description: 图层服务详情页
|
||||
-->
|
||||
<template>
|
||||
|
|
|
@ -38,7 +38,9 @@
|
|||
() => props.dataList,
|
||||
(val) => {
|
||||
if (val) {
|
||||
let obj = val.infoList.filter((item) => item.attrType === '试用地址' && item.attrValue)[0]
|
||||
let obj = val.infoList.filter(
|
||||
(item) => item.attrType === '试用地址' && item.attrValue
|
||||
)[0]
|
||||
if (!obj) {
|
||||
flag.value = false
|
||||
} else {
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
</template>
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { paddleocr,algo } from '@/api/file'
|
||||
import { algo } from '@/api/file'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
const router = useRouter()
|
||||
|
@ -85,10 +85,12 @@
|
|||
const imageResult1 = ref('')
|
||||
const menuOpenKeys2 = ref(['全文还原'])
|
||||
// 图片初始化
|
||||
let responseUrl = ref('static/image/' + router.currentRoute.value.query.exampleImg)
|
||||
let responseUrl = ref(
|
||||
'static/image/' + router.currentRoute.value.query.exampleImg
|
||||
)
|
||||
const imgType = router.currentRoute.value.query.exampleImg.split('.')[1]
|
||||
const handleChange = (info) => {
|
||||
debugger;
|
||||
debugger
|
||||
if (info.file.status !== 'uploading') {
|
||||
console.log(info.file, info.fileList)
|
||||
}
|
||||
|
@ -111,7 +113,7 @@
|
|||
company: router.currentRoute.value.query.company,
|
||||
algorithmName: router.currentRoute.value.query.algorithmName,
|
||||
data: base64.split('base64,')[1],
|
||||
type: router.currentRoute.value.query.type
|
||||
type: router.currentRoute.value.query.type,
|
||||
}
|
||||
algo(param).then((res) => {
|
||||
// wordValue.value = res.data
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
</template>
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { correct,algo } from '@/api/file'
|
||||
import { algo } from '@/api/file'
|
||||
import { useRouter } from 'vue-router'
|
||||
const router = useRouter()
|
||||
// const keyId = router.currentRoute.value.query.id
|
||||
|
@ -58,7 +58,7 @@
|
|||
company: router.currentRoute.value.query.company,
|
||||
algorithmName: router.currentRoute.value.query.algorithmName,
|
||||
data: wordValue.value,
|
||||
type: router.currentRoute.value.query.type
|
||||
type: router.currentRoute.value.query.type,
|
||||
}
|
||||
// correct(param).then((res) => {
|
||||
// // wordContent.value = res.data.data
|
||||
|
@ -72,7 +72,7 @@
|
|||
// errorWordContent.value = val.value
|
||||
// })
|
||||
// })
|
||||
algo(param).then(res=>{
|
||||
algo(param).then((res) => {
|
||||
errorWord.value = res.data.data.text_data
|
||||
})
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
password2: '',
|
||||
})
|
||||
if (props.dataList.infoList) {
|
||||
let obj = props.dataList.applyState
|
||||
let obj = props.dataList.approveStatus
|
||||
if (obj !== '通过') {
|
||||
flag.value = false
|
||||
} else {
|
||||
|
@ -110,7 +110,7 @@
|
|||
() => props.dataList,
|
||||
(val) => {
|
||||
if (val) {
|
||||
let obj = props.dataList.applyState
|
||||
let obj = props.dataList.approveStatus
|
||||
if (obj !== '通过') {
|
||||
flag.value = false
|
||||
} else {
|
||||
|
|
|
@ -16,127 +16,125 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="no-data">
|
||||
暂无数据
|
||||
</div>
|
||||
<div v-else class="no-data">暂无数据</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||||
import { ref, defineProps, watch } from 'vue'
|
||||
const flag = ref(true)
|
||||
let dataFrom = ref([])
|
||||
const props = defineProps({
|
||||
dataList: { type: Object, default: null },
|
||||
})
|
||||
if (props.dataList.infoList) {
|
||||
let obj = props.dataList.infoList.filter(
|
||||
(item) => item.attrType === '常见问题'
|
||||
)[0]
|
||||
if (!obj) {
|
||||
flag.value = false
|
||||
} else {
|
||||
obj.attrValue = JSON.parse(obj.attrValue)
|
||||
obj.attrValue.map((item) => {
|
||||
let params = {
|
||||
title: item.question,
|
||||
answer: item.answer,
|
||||
}
|
||||
dataFrom.value.push(params)
|
||||
})
|
||||
}
|
||||
}
|
||||
watch(
|
||||
() => props.dataList,
|
||||
(val) => {
|
||||
if (val) {
|
||||
let obj = val.infoList.filter((item) => item.attrType === '常见问题')[0]
|
||||
if (!obj) {
|
||||
flag.value = false
|
||||
} else {
|
||||
obj.attrValue = JSON.parse(obj.attrValue)
|
||||
obj.attrValue.map((item) => {
|
||||
let params = {
|
||||
title: item.question,
|
||||
answer: item.answer,
|
||||
}
|
||||
dataFrom.value.push(params)
|
||||
})
|
||||
}
|
||||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||||
import { ref, defineProps, watch } from 'vue'
|
||||
const flag = ref(true)
|
||||
let dataFrom = ref([])
|
||||
const props = defineProps({
|
||||
dataList: { type: Object, default: null },
|
||||
})
|
||||
if (props.dataList.infoList) {
|
||||
let obj = props.dataList.infoList.filter(
|
||||
(item) => item.attrType === '常见问题'
|
||||
)[0]
|
||||
if (!obj) {
|
||||
flag.value = false
|
||||
} else {
|
||||
obj.attrValue = JSON.parse(obj.attrValue)
|
||||
obj.attrValue.map((item) => {
|
||||
let params = {
|
||||
title: item.question,
|
||||
answer: item.answer,
|
||||
}
|
||||
dataFrom.value.push(params)
|
||||
})
|
||||
}
|
||||
}
|
||||
)
|
||||
watch(
|
||||
() => props.dataList,
|
||||
(val) => {
|
||||
if (val) {
|
||||
let obj = val.infoList.filter((item) => item.attrType === '常见问题')[0]
|
||||
if (!obj) {
|
||||
flag.value = false
|
||||
} else {
|
||||
obj.attrValue = JSON.parse(obj.attrValue)
|
||||
obj.attrValue.map((item) => {
|
||||
let params = {
|
||||
title: item.question,
|
||||
answer: item.answer,
|
||||
}
|
||||
dataFrom.value.push(params)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.cpmmon-problem {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding-top: 160px;
|
||||
background: #f7f8fa;
|
||||
.cpmmon-problem {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding-top: 160px;
|
||||
background: #f7f8fa;
|
||||
|
||||
.content {
|
||||
width: 1300px;
|
||||
margin: 20px 0px;
|
||||
background: #ffffff;
|
||||
padding: 40px;
|
||||
.content {
|
||||
width: 1300px;
|
||||
margin: 20px 0px;
|
||||
background: #ffffff;
|
||||
padding: 40px;
|
||||
|
||||
.content-son {
|
||||
font-size: 20px;
|
||||
margin-bottom: 60px;
|
||||
.content-son {
|
||||
font-size: 20px;
|
||||
margin-bottom: 60px;
|
||||
|
||||
.content-top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
line-height: 20px;
|
||||
}
|
||||
.content-top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.content-bottom {
|
||||
display: flex;
|
||||
line-height: 34px;
|
||||
color: #666666;
|
||||
}
|
||||
.content-bottom {
|
||||
display: flex;
|
||||
line-height: 34px;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.content-top,
|
||||
.content-bottom {
|
||||
div:last-child {
|
||||
width: calc(100% - 54px);
|
||||
.content-top,
|
||||
.content-bottom {
|
||||
div:last-child {
|
||||
width: calc(100% - 54px);
|
||||
}
|
||||
}
|
||||
|
||||
.top-img {
|
||||
width: 34px;
|
||||
height: 30px;
|
||||
background: url('~@/assets/detailsAll/sf_top_img.png') no-repeat;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.bottom-img {
|
||||
width: 34px;
|
||||
height: 30px;
|
||||
background: url('~@/assets/detailsAll/sf_bottom_img.png') no-repeat;
|
||||
ackground-size: cover;
|
||||
background-position: center;
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.top-img {
|
||||
width: 34px;
|
||||
height: 30px;
|
||||
background: url('~@/assets/detailsAll/sf_top_img.png') no-repeat;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.bottom-img {
|
||||
width: 34px;
|
||||
height: 30px;
|
||||
background: url('~@/assets/detailsAll/sf_bottom_img.png') no-repeat;
|
||||
ackground-size: cover;
|
||||
background-position: center;
|
||||
margin-right: 20px;
|
||||
.content-son:last-child {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.content-son:last-child {
|
||||
margin-bottom: 0px;
|
||||
.no-data {
|
||||
background: transparent !important;
|
||||
color: #212121;
|
||||
text-align: center;
|
||||
padding: 0.5rem 0;
|
||||
font-size: 0.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.no-data {
|
||||
background: transparent !important;
|
||||
color: #212121;
|
||||
text-align: center;
|
||||
padding: 0.5rem 0;
|
||||
font-size: 0.2rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
if (
|
||||
props.dataList.link &&
|
||||
whoShow1.value.itShowQingDao &&
|
||||
props.dataList.applyState === '通过'
|
||||
props.dataList.approveStatus === '通过'
|
||||
) {
|
||||
list.value.push('应用详情')
|
||||
}
|
||||
|
@ -154,7 +154,7 @@
|
|||
if (
|
||||
props.dataList.link &&
|
||||
whoShow1.value.itShowQingDao &&
|
||||
props.dataList.applyState === '通过'
|
||||
props.dataList.approveStatus === '通过'
|
||||
) {
|
||||
list.value.push('应用详情')
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-08 15:25:33
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-16 16:58:16
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-16 17:03:24
|
||||
* @Description: 应用展示 视频播放
|
||||
-->
|
||||
<template>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-08 11:56:28
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-21 16:18:54
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-21 18:17:30
|
||||
* @Description: 算法详情页头部
|
||||
-->
|
||||
<template>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-08 14:54:01
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-06-15 18:24:39
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-16 16:43:19
|
||||
* @Description: 应用详情页导航
|
||||
-->
|
||||
<template>
|
||||
|
|
|
@ -1034,7 +1034,8 @@
|
|||
loading.value = false
|
||||
} else {
|
||||
resourceTotal.value = res.data.data.total || ''
|
||||
getShoppingCartList(res.data.data.records)
|
||||
resourceList.data = res.data.data.records || []
|
||||
// getShoppingCartList(res.data.data.records)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -1111,7 +1112,8 @@
|
|||
loading.value = false
|
||||
} else {
|
||||
resourceTotal.value = res.data.data.total || ''
|
||||
getShoppingCartList(res.data.data.records)
|
||||
resourceList.data = res.data.data.records || []
|
||||
// getShoppingCartList(res.data.data.records)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -1129,12 +1131,12 @@
|
|||
}).then((res) => {
|
||||
console.log('申购车列表================>', res.data.data.records)
|
||||
shoppingCartList.value = res.data.data.records
|
||||
list.map((item) => {
|
||||
item.isInShoppingCart = false
|
||||
item.isInShoppingCart = shoppingCartList.value.some((item2) => {
|
||||
return item.id === item2.resourceId
|
||||
})
|
||||
})
|
||||
// list.map((item) => {
|
||||
// item.isInShoppingCart = false
|
||||
// item.isInShoppingCart = shoppingCartList.value.some((item2) => {
|
||||
// return item.id === item2.resourceId
|
||||
// })
|
||||
// })
|
||||
console.log('经过过滤后的列表信息', list)
|
||||
resourceList.data = list
|
||||
})
|
||||
|
|
|
@ -1,54 +1,59 @@
|
|||
<template>
|
||||
<div>
|
||||
<div v-if="groupArray.length > 0">
|
||||
<div class="group-box" v-for="(data, i) in groupArray" :key="i">
|
||||
<div class="flex-row-start row-tr" v-for="(item, j) in Object.keys(data)" :key="j"
|
||||
:class="j == Object.keys(data).length - 1 ? 'border-bottom' : ''">
|
||||
<div class="td-name">{{ item }}</div>
|
||||
<div class="flex-row-start">
|
||||
<div class="td" v-for="(d, k) in data[item]" :key="k">{{ d || '--' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div v-if="groupArray.length > 0">
|
||||
<div class="group-box" v-for="(data, i) in groupArray" :key="i">
|
||||
<div
|
||||
class="flex-row-start row-tr"
|
||||
v-for="(item, j) in Object.keys(data)"
|
||||
:key="j"
|
||||
:class="j == Object.keys(data).length - 1 ? 'border-bottom' : ''"
|
||||
>
|
||||
<div class="td-name">{{ item }}</div>
|
||||
<div class="flex-row-start">
|
||||
<div class="td" v-for="(d, k) in data[item]" :key="k">
|
||||
{{ d || '--' }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ '哈啊哈哈哈哈' + groupArray.length }}
|
||||
<div v-if="groupArray.length == 0" class="no-data">暂无数据</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ '哈啊哈哈哈哈' + groupArray.length }}
|
||||
<div v-if="groupArray.length == 0" class="no-data">暂无数据</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { defineComponent, ref, onMounted, getCurrentInstance, computed, watch, nextTick } from 'vue'
|
||||
export default {
|
||||
props: ["dataList"],
|
||||
import { ref, watch, nextTick } from 'vue'
|
||||
export default {
|
||||
props: ['dataList'],
|
||||
setup(props) {
|
||||
let groupArray = ref([])
|
||||
watch(
|
||||
() => {
|
||||
return props.dataList
|
||||
},
|
||||
(newVal) => {
|
||||
console.log('newVal------------>', newVal);
|
||||
groupArray = ref([])
|
||||
newVal.map(v => {
|
||||
groupArray.value.push(v)
|
||||
})
|
||||
groupArray.value = groupArray.value.splice(0)
|
||||
nextTick(() => {
|
||||
console.log('groupArray---子组件--------->', groupArray.value);
|
||||
})
|
||||
},
|
||||
{
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
)
|
||||
|
||||
return {
|
||||
groupArray,
|
||||
let groupArray = ref([])
|
||||
watch(
|
||||
() => {
|
||||
return props.dataList
|
||||
},
|
||||
(newVal) => {
|
||||
console.log('newVal------------>', newVal)
|
||||
groupArray = ref([])
|
||||
newVal.map((v) => {
|
||||
groupArray.value.push(v)
|
||||
})
|
||||
groupArray.value = groupArray.value.splice(0)
|
||||
nextTick(() => {
|
||||
console.log('groupArray---子组件--------->', groupArray.value)
|
||||
})
|
||||
},
|
||||
{
|
||||
deep: true,
|
||||
immediate: true,
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
return {
|
||||
groupArray,
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- <script setup>
|
||||
|
@ -79,44 +84,43 @@ nextTick(() => {
|
|||
</script> -->
|
||||
|
||||
<style lang="less" scoped>
|
||||
.group-box {
|
||||
.group-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.border {
|
||||
.border {
|
||||
border: 1px solid #dddee1;
|
||||
border-bottom: none;
|
||||
border-right: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.row-tr {
|
||||
.row-tr {
|
||||
border: 1px solid #dddee1;
|
||||
border-right: none;
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
|
||||
.no-border-right {
|
||||
.no-border-right {
|
||||
border: 1px solid #dddee1;
|
||||
border-right: none;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-row-start {
|
||||
.flex-row-start {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.td-name {
|
||||
.td-name {
|
||||
border-right: 1px solid #dddee1;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
text-align: center;
|
||||
width: 200px;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.td {
|
||||
.td {
|
||||
border-right: 1px solid #dddee1;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
|
@ -128,18 +132,18 @@ nextTick(() => {
|
|||
word-wrap: break-all;
|
||||
word-break: normal;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
.border-bottom {
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid #dddee1;
|
||||
}
|
||||
}
|
||||
|
||||
.no-data {
|
||||
.no-data {
|
||||
height: 100px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 1px solid #dddee1;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -589,7 +589,6 @@
|
|||
// 加入申购车
|
||||
const addShoppingCart = (item, index) => {
|
||||
console.log('item===============>', item)
|
||||
mybus.emit('changeSelcted', index)
|
||||
if (flag.value && item.id) {
|
||||
flag.value = false
|
||||
sgcInsert({
|
||||
|
@ -600,6 +599,7 @@
|
|||
console.log(res)
|
||||
message.success('添加申购车成功!')
|
||||
mybus.emit('getSgcNum')
|
||||
mybus.emit('changeSelcted', index)
|
||||
flag.value = true
|
||||
})
|
||||
}
|
||||
|
@ -789,7 +789,7 @@
|
|||
},
|
||||
beforeUnmount() {
|
||||
mybus.off('chongzhi')
|
||||
mybus.emit('changeSelcted')
|
||||
// mybus.emit('changeSelcted')
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1,68 +1,68 @@
|
|||
export const titleNameArray = [
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-zj.png'),
|
||||
name: '组件服务',
|
||||
},
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-yy.png'),
|
||||
name: '应用资源',
|
||||
},
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-jc.png'),
|
||||
name: '基础设施',
|
||||
},
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-sj.png'),
|
||||
name: '数据资源',
|
||||
},
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-zs.png'),
|
||||
name: '知识库',
|
||||
},
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-zj.png'),
|
||||
name: '组件服务',
|
||||
},
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-yy.png'),
|
||||
name: '应用资源',
|
||||
},
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-jc.png'),
|
||||
name: '基础设施',
|
||||
},
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-sj.png'),
|
||||
name: '数据资源',
|
||||
},
|
||||
{
|
||||
photo: require('@/assets/newHome/banner-zs.png'),
|
||||
name: '知识库',
|
||||
},
|
||||
]
|
||||
|
||||
// 模糊查询
|
||||
export const keyongziyuanqingkaungArray = [
|
||||
{
|
||||
name: 'CPU/核:',
|
||||
value: 2102,
|
||||
},
|
||||
{
|
||||
name: '内存/T:',
|
||||
value: 6.68,
|
||||
},
|
||||
{
|
||||
name: '存储/T:',
|
||||
value: 2102,
|
||||
},
|
||||
{
|
||||
name: 'RDS for Mysql/G:',
|
||||
value: 982.82,
|
||||
},
|
||||
{
|
||||
name: 'RDS for SqlServer/G:',
|
||||
value: 997.17,
|
||||
},
|
||||
{
|
||||
name: 'CPU/核:',
|
||||
value: 2102,
|
||||
},
|
||||
{
|
||||
name: '内存/T:',
|
||||
value: 6.68,
|
||||
},
|
||||
{
|
||||
name: '存储/T:',
|
||||
value: 2102,
|
||||
},
|
||||
{
|
||||
name: 'RDS for Mysql/G:',
|
||||
value: 982.82,
|
||||
},
|
||||
{
|
||||
name: 'RDS for SqlServer/G:',
|
||||
value: 997.17,
|
||||
},
|
||||
]
|
||||
|
||||
export const shujuziyuanqingkuangArray = [
|
||||
{
|
||||
name: '已上线目录:',
|
||||
value: 10372,
|
||||
danwei: '条',
|
||||
},
|
||||
{
|
||||
name: '已发布服务:',
|
||||
value: 1080,
|
||||
danwei: '条',
|
||||
},
|
||||
{
|
||||
name: '已发布接口:',
|
||||
value: 976,
|
||||
danwei: '条',
|
||||
},
|
||||
{
|
||||
name: '更新时间:',
|
||||
value: '2022-05-06',
|
||||
},
|
||||
{
|
||||
name: '已上线目录:',
|
||||
value: 10372,
|
||||
danwei: '条',
|
||||
},
|
||||
{
|
||||
name: '已发布服务:',
|
||||
value: 1080,
|
||||
danwei: '条',
|
||||
},
|
||||
{
|
||||
name: '已发布接口:',
|
||||
value: 976,
|
||||
danwei: '条',
|
||||
},
|
||||
{
|
||||
name: '更新时间:',
|
||||
value: '2022-05-06',
|
||||
},
|
||||
]
|
|
@ -2,13 +2,20 @@
|
|||
<template>
|
||||
<div class="IntegrationServicesDetails" :class="{ fixed2: scrollTop >= 600 }">
|
||||
<!-- 头部基本信息 -->
|
||||
<application-top-details :dataList="detailInfoObj" :navList="navList"></application-top-details>
|
||||
<application-top-details
|
||||
:dataList="detailInfoObj"
|
||||
:navList="navList"
|
||||
></application-top-details>
|
||||
|
||||
<!-- 导航 -->
|
||||
<div :class="{ fixed: scrollTop >= 600 }">
|
||||
<div class="application-navigation">
|
||||
<template v-for="nav in navList" :key="nav.key">
|
||||
<div class="nav" :class="{ selectNow: nav.key == selectNow }" @click="selectNav(nav.key)">
|
||||
<div
|
||||
class="nav"
|
||||
:class="{ selectNow: nav.key == selectNow }"
|
||||
@click="selectNav(nav.key)"
|
||||
>
|
||||
{{ nav.name }}
|
||||
<span class="line"></span>
|
||||
</div>
|
||||
|
@ -17,7 +24,10 @@
|
|||
</div>
|
||||
|
||||
<!-- 组合能力 -->
|
||||
<div id="integration-combination-ability" class="combination-ability scrollBox">
|
||||
<div
|
||||
id="integration-combination-ability"
|
||||
class="combination-ability scrollBox"
|
||||
>
|
||||
<div class="title-1">
|
||||
<DetalsTitle title="组合能力" type="COMBINATION ABILITY"></DetalsTitle>
|
||||
</div>
|
||||
|
@ -50,9 +60,17 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="content-card flex-row-start">
|
||||
<div class="right-item content-card-item" v-for="(use, i) in useWayShowList" :key="i">
|
||||
<div
|
||||
class="right-item content-card-item"
|
||||
v-for="(use, i) in useWayShowList"
|
||||
:key="i"
|
||||
>
|
||||
<div class="card-title title">{{ use.title }}</div>
|
||||
<div class="card-text" v-for="(d, k) in Object.keys(use.info)" :key="k">
|
||||
<div
|
||||
class="card-text"
|
||||
v-for="(d, k) in Object.keys(use.info)"
|
||||
:key="k"
|
||||
>
|
||||
{{ use.info[d] }}:{{ detailInfoObj[d] || '--' }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -61,390 +79,403 @@
|
|||
</div>
|
||||
|
||||
<!-- 常见问题-->
|
||||
<application-common-problem :dataList="detailInfoObj" id="common-problem" class="scrollBox">
|
||||
</application-common-problem>
|
||||
<application-common-problem
|
||||
:dataList="detailInfoObj"
|
||||
id="common-problem"
|
||||
class="scrollBox"
|
||||
></application-common-problem>
|
||||
|
||||
<home-footer></home-footer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import ApplicationTopDetails from '@/views/detailsAll/components/Application/ApplicationTopDetails.vue'
|
||||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||||
import ApplicationCommonProblem from '@/views/detailsAll/components/Application/ApplicationCommonProblem' //常见问题
|
||||
import HomeFooter from '@/views/newHome/components/Footer'
|
||||
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getIntegrationDetail } from '@/api/home'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import ApplicationTopDetails from '@/views/detailsAll/components/Application/ApplicationTopDetails.vue'
|
||||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||||
import ApplicationCommonProblem from '@/views/detailsAll/components/Application/ApplicationCommonProblem' //常见问题
|
||||
import HomeFooter from '@/views/newHome/components/Footer'
|
||||
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getIntegrationDetail } from '@/api/home'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { message } from 'ant-design-vue'
|
||||
const router = useRouter()
|
||||
const scrollTop = ref(0)
|
||||
const domArr = ref([])
|
||||
const id = router.currentRoute.value.query.id
|
||||
document.documentElement.style.transition = 'all 0.3s ease'
|
||||
document.documentElement.scrollTop = 0
|
||||
document.body.style.transition = 'all 0.3s ease'
|
||||
document.body.scrollTop = 0
|
||||
mybus.on('flyToView', (id) => {
|
||||
let top =
|
||||
document.querySelector('#' + id) &&
|
||||
document.querySelector('#' + id).offsetTop - 50
|
||||
document.documentElement.scrollTop = top
|
||||
document.body.scrollTop = top
|
||||
})
|
||||
|
||||
const router = useRouter()
|
||||
const scrollTop = ref(0)
|
||||
const domArr = ref([])
|
||||
const id = router.currentRoute.value.query.id
|
||||
document.documentElement.style.transition = 'all 0.3s ease'
|
||||
document.documentElement.scrollTop = 0
|
||||
document.body.style.transition = 'all 0.3s ease'
|
||||
document.body.scrollTop = 0
|
||||
mybus.on('flyToView', (id) => {
|
||||
let top = document.querySelector('#' + id) && document.querySelector('#' + id).offsetTop - 50;
|
||||
document.documentElement.scrollTop = top
|
||||
document.body.scrollTop = top
|
||||
})
|
||||
|
||||
const navList = ref([
|
||||
{
|
||||
name: '组合能力',
|
||||
key: 'integration-combination-ability',
|
||||
},
|
||||
{
|
||||
name: '使用方式',
|
||||
key: 'integration-use-way',
|
||||
},
|
||||
{
|
||||
name: '常见问题',
|
||||
key: 'common-problem',
|
||||
},
|
||||
])
|
||||
|
||||
const selectNow = ref('integration-combination-ability')
|
||||
|
||||
const useWayShowList = ref([
|
||||
{
|
||||
title: '归属部门',
|
||||
info: {
|
||||
deptUser: '部门联系人',
|
||||
mobile: '联系人电话',
|
||||
const navList = ref([
|
||||
{
|
||||
name: '组合能力',
|
||||
key: 'integration-combination-ability',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '服务商',
|
||||
info: {
|
||||
providerUser: '服务商联系人',
|
||||
providerMobile: '联系人电话',
|
||||
{
|
||||
name: '使用方式',
|
||||
key: 'integration-use-way',
|
||||
},
|
||||
},
|
||||
])
|
||||
{
|
||||
name: '常见问题',
|
||||
key: 'common-problem',
|
||||
},
|
||||
])
|
||||
|
||||
const combineList = ref([
|
||||
{
|
||||
title: '基础设施',
|
||||
list: []
|
||||
},
|
||||
{
|
||||
title: '组件服务',
|
||||
list: []
|
||||
},
|
||||
{
|
||||
title: '数据资源',
|
||||
list: []
|
||||
},
|
||||
])
|
||||
const detailInfoObj = ref({})
|
||||
const selectNow = ref('integration-combination-ability')
|
||||
|
||||
onMounted(() => {
|
||||
window.addEventListener('scroll', () => {
|
||||
domArr.value = document.querySelectorAll('.scrollBox')
|
||||
scrollTop.value =
|
||||
document.documentElement.scrollTop || document.body.scrollTop
|
||||
for (let i = 0; i < domArr.value.length; i++) {
|
||||
if (i === 0) {
|
||||
if (scrollTop.value <= domArr.value[i + 1].offsetTop - 50) {
|
||||
selectNow.value = domArr.value[i].id
|
||||
}
|
||||
} else if (i == domArr.value.length - 1) {
|
||||
if (scrollTop.value >= domArr.value[i].offsetTop - 50) {
|
||||
selectNow.value = domArr.value[i].id
|
||||
}
|
||||
} else {
|
||||
if (
|
||||
scrollTop.value >= domArr.value[i].offsetTop - 50 &&
|
||||
scrollTop.value <= domArr.value[i + 1].offsetTop - 50
|
||||
) {
|
||||
selectNow.value = domArr.value[i].id
|
||||
const useWayShowList = ref([
|
||||
{
|
||||
title: '归属部门',
|
||||
info: {
|
||||
deptUser: '部门联系人',
|
||||
mobile: '联系人电话',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '服务商',
|
||||
info: {
|
||||
providerUser: '服务商联系人',
|
||||
providerMobile: '联系人电话',
|
||||
},
|
||||
},
|
||||
])
|
||||
|
||||
const combineList = ref([
|
||||
{
|
||||
title: '基础设施',
|
||||
list: [],
|
||||
},
|
||||
{
|
||||
title: '组件服务',
|
||||
list: [],
|
||||
},
|
||||
{
|
||||
title: '数据资源',
|
||||
list: [],
|
||||
},
|
||||
])
|
||||
const detailInfoObj = ref({})
|
||||
|
||||
onMounted(() => {
|
||||
window.addEventListener('scroll', () => {
|
||||
domArr.value = document.querySelectorAll('.scrollBox')
|
||||
scrollTop.value =
|
||||
document.documentElement.scrollTop || document.body.scrollTop
|
||||
for (let i = 0; i < domArr.value.length; i++) {
|
||||
if (i === 0) {
|
||||
if (scrollTop.value <= domArr.value[i + 1].offsetTop - 50) {
|
||||
selectNow.value = domArr.value[i].id
|
||||
}
|
||||
} else if (i == domArr.value.length - 1) {
|
||||
if (scrollTop.value >= domArr.value[i].offsetTop - 50) {
|
||||
selectNow.value = domArr.value[i].id
|
||||
}
|
||||
} else {
|
||||
if (
|
||||
scrollTop.value >= domArr.value[i].offsetTop - 50 &&
|
||||
scrollTop.value <= domArr.value[i + 1].offsetTop - 50
|
||||
) {
|
||||
selectNow.value = domArr.value[i].id
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
const selectNav = (key) => {
|
||||
selectNow.value = key
|
||||
mybus.emit('flyToView', selectNow.value)
|
||||
}
|
||||
|
||||
// 融合服务--详情
|
||||
const getIntegrationServicesDeatil = (id) => {
|
||||
getIntegrationDetail(id).then(res => {
|
||||
if (res.data.code !== 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
detailInfoObj.value = res.data.data || {}
|
||||
// 资源属性
|
||||
let fuseAttrList = res.data.data.fuseAttrList || []
|
||||
// 融合关系
|
||||
let fuseResourceList = res.data.data.fuseResourceList || []
|
||||
let questionValue = fuseAttrList.find(v => v.attrType === '常见问题') || {}
|
||||
let questionObj = {
|
||||
attrType: '常见问题',
|
||||
attrValue: questionValue.attrValue || "[]"
|
||||
}
|
||||
let areaObj = {
|
||||
attrType: '应用领域',
|
||||
attrValue: detailInfoObj.value.applicationArea
|
||||
}
|
||||
combineList.value.map(item => {
|
||||
let arr = (fuseResourceList.filter(v => v.resource && v.resource.type == item.title) || []).map(d => d.resource.name)
|
||||
item.list = arr;
|
||||
return item
|
||||
})
|
||||
detailInfoObj.value.infoList = []
|
||||
detailInfoObj.value.infoList.push(questionObj)
|
||||
detailInfoObj.value.infoList.push(areaObj)
|
||||
}, err => {
|
||||
message.error(err)
|
||||
})
|
||||
}
|
||||
getIntegrationServicesDeatil(id)
|
||||
|
||||
function handleOpenUrl(type) {
|
||||
let obj = (detailInfoObj.value.fuseAttrList || []).find(v => v.attrType == type) || {};
|
||||
let url = obj.attrValue || '';
|
||||
if (!obj.attrValue) {
|
||||
return message.error('错误的文档链接地址!')
|
||||
const selectNav = (key) => {
|
||||
selectNow.value = key
|
||||
mybus.emit('flyToView', selectNow.value)
|
||||
}
|
||||
window.open(
|
||||
window.SITE_CONFIG.previewUrl +
|
||||
'hisense_office/onlinePreview?url=' +
|
||||
btoa(encodeURI(url))
|
||||
)
|
||||
}
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
mybus.off('flyToView')
|
||||
})
|
||||
// 融合服务--详情
|
||||
const getIntegrationServicesDeatil = (id) => {
|
||||
getIntegrationDetail(id).then(
|
||||
(res) => {
|
||||
if (res.data.code !== 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
detailInfoObj.value = res.data.data || {}
|
||||
// 资源属性
|
||||
let fuseAttrList = res.data.data.fuseAttrList || []
|
||||
// 融合关系
|
||||
let fuseResourceList = res.data.data.fuseResourceList || []
|
||||
let questionValue =
|
||||
fuseAttrList.find((v) => v.attrType === '常见问题') || {}
|
||||
let questionObj = {
|
||||
attrType: '常见问题',
|
||||
attrValue: questionValue.attrValue || '[]',
|
||||
}
|
||||
let areaObj = {
|
||||
attrType: '应用领域',
|
||||
attrValue: detailInfoObj.value.applicationArea,
|
||||
}
|
||||
combineList.value.map((item) => {
|
||||
let arr = (
|
||||
fuseResourceList.filter(
|
||||
(v) => v.resource && v.resource.type == item.title
|
||||
) || []
|
||||
).map((d) => d.resource.name)
|
||||
item.list = arr
|
||||
return item
|
||||
})
|
||||
detailInfoObj.value.infoList = []
|
||||
detailInfoObj.value.infoList.push(questionObj)
|
||||
detailInfoObj.value.infoList.push(areaObj)
|
||||
},
|
||||
(err) => {
|
||||
message.error(err)
|
||||
}
|
||||
)
|
||||
}
|
||||
getIntegrationServicesDeatil(id)
|
||||
|
||||
function handleOpenUrl(type) {
|
||||
let obj =
|
||||
(detailInfoObj.value.fuseAttrList || []).find(
|
||||
(v) => v.attrType == type
|
||||
) || {}
|
||||
let url = obj.attrValue || ''
|
||||
if (!obj.attrValue) {
|
||||
return message.error('错误的文档链接地址!')
|
||||
}
|
||||
window.open(
|
||||
window.SITE_CONFIG.previewUrl +
|
||||
'hisense_office/onlinePreview?url=' +
|
||||
btoa(encodeURI(url))
|
||||
)
|
||||
}
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
mybus.off('flyToView')
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.flex-row-between {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.flex-row-start {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.flex-row-center {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
|
||||
.IntegrationServicesDetails {
|
||||
.fixed {
|
||||
position: fixed !important;
|
||||
z-index: 2000;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.fixed2>div:nth-of-type(3) {
|
||||
margin-top: 0.84rem;
|
||||
}
|
||||
|
||||
.application-navigation {
|
||||
width: 19.12rem;
|
||||
height: 0.84rem;
|
||||
line-height: 0.8rem;
|
||||
.flex-row-between {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
font-size: 0.24rem;
|
||||
color: #666;
|
||||
background: #fff;
|
||||
padding: 0 3rem;
|
||||
box-shadow: 0rem 0.05rem 0.1rem #f2f3fb;
|
||||
position: relative;
|
||||
|
||||
.nav {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.line {
|
||||
width: 0.4rem;
|
||||
height: 0.04rem;
|
||||
}
|
||||
}
|
||||
|
||||
.selectNow {
|
||||
color: #526aff;
|
||||
|
||||
.line {
|
||||
background: #526aff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.use-way {
|
||||
padding: 0.8rem 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.title-1 {
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.left {
|
||||
.btn {
|
||||
padding: 10px 20px;
|
||||
color: #526aff;
|
||||
background: #fff;
|
||||
border-radius: 50px;
|
||||
margin: 10px;
|
||||
font-size: 0.2rem;
|
||||
width: 150px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
width: 13rem;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.word-bg {
|
||||
background: linear-gradient(90deg, #7184fc, #94a3fc) !important;
|
||||
.flex-row-start {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.flex-row-center {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.IntegrationServicesDetails {
|
||||
.fixed {
|
||||
position: fixed !important;
|
||||
z-index: 2000;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.content-card {
|
||||
height: 1.5rem;
|
||||
width: 6.2rem;
|
||||
border-radius: 0.2rem;
|
||||
background: linear-gradient(to right,
|
||||
rgba(113, 132, 252, 0.4),
|
||||
rgba(148, 163, 252, 0.4));
|
||||
padding: 0 0.3rem;
|
||||
.fixed2 > div:nth-of-type(3) {
|
||||
margin-top: 0.84rem;
|
||||
}
|
||||
|
||||
.application-navigation {
|
||||
width: 19.12rem;
|
||||
height: 0.84rem;
|
||||
line-height: 0.8rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
justify-content: space-around;
|
||||
font-size: 0.24rem;
|
||||
color: #666;
|
||||
background: #fff;
|
||||
padding: 0 3rem;
|
||||
box-shadow: 0rem 0.05rem 0.1rem #f2f3fb;
|
||||
position: relative;
|
||||
|
||||
.card-title {
|
||||
font-size: 0.26rem;
|
||||
color: #212956;
|
||||
margin-bottom: 0.2rem;
|
||||
line-height: 0.26rem;
|
||||
.nav {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.line {
|
||||
width: 0.4rem;
|
||||
height: 0.04rem;
|
||||
}
|
||||
}
|
||||
|
||||
.content-card-item {
|
||||
width: 50%;
|
||||
.selectNow {
|
||||
color: #526aff;
|
||||
|
||||
.card-text {
|
||||
margin-right: 0.2rem;
|
||||
color: rgba(33, 41, 86, 0.8);
|
||||
font-size: 0.2rem;
|
||||
max-width: 2.8rem;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div:first-child {
|
||||
display: block;
|
||||
.line {
|
||||
background: #526aff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.combination-ability {
|
||||
padding: 0.8rem 0;
|
||||
background: rgb(247, 248, 250);
|
||||
|
||||
.title-1 {
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.combine-content {
|
||||
width: 13rem;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.combine-item {
|
||||
margin: 0 0.1rem;
|
||||
width: 4.28rem;
|
||||
.use-way {
|
||||
padding: 0.8rem 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
border: 1px solid #e4e6f5;
|
||||
border-radius: 0.1rem;
|
||||
padding: 0.1rem 0;
|
||||
cursor: pointer;
|
||||
height: 2.5rem;
|
||||
|
||||
&:hover {
|
||||
border-radius: 0.02rem;
|
||||
border: 0.01rem solid #0058e1;
|
||||
box-shadow: 0rem 0.08rem 0.2rem rgb(0 88 225 / 30%);
|
||||
.title-1 {
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.title {
|
||||
.left {
|
||||
.btn {
|
||||
padding: 10px 20px;
|
||||
color: #526aff;
|
||||
background: #fff;
|
||||
border-radius: 50px;
|
||||
margin: 10px;
|
||||
font-size: 0.2rem;
|
||||
width: 150px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
width: 13rem;
|
||||
justify-content: space-between;
|
||||
|
||||
.word-bg {
|
||||
background: linear-gradient(90deg, #7184fc, #94a3fc) !important;
|
||||
}
|
||||
|
||||
.content-card {
|
||||
height: 1.5rem;
|
||||
width: 6.2rem;
|
||||
border-radius: 0.2rem;
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
rgba(113, 132, 252, 0.4),
|
||||
rgba(148, 163, 252, 0.4)
|
||||
);
|
||||
padding: 0 0.3rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
.card-title {
|
||||
font-size: 0.26rem;
|
||||
color: #212956;
|
||||
margin-bottom: 0.2rem;
|
||||
line-height: 0.26rem;
|
||||
}
|
||||
|
||||
.content-card-item {
|
||||
width: 50%;
|
||||
|
||||
.card-text {
|
||||
margin-right: 0.2rem;
|
||||
color: rgba(33, 41, 86, 0.8);
|
||||
font-size: 0.2rem;
|
||||
max-width: 2.8rem;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div:first-child {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.combination-ability {
|
||||
padding: 0.8rem 0;
|
||||
background: rgb(247, 248, 250);
|
||||
|
||||
.title-1 {
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.combine-content {
|
||||
width: 13rem;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.combine-item {
|
||||
margin: 0 0.1rem;
|
||||
width: 4.28rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
border: 1px solid #e4e6f5;
|
||||
border-radius: 0.1rem;
|
||||
padding: 0.1rem 0;
|
||||
cursor: pointer;
|
||||
height: 2.5rem;
|
||||
|
||||
&:hover {
|
||||
border-radius: 0.02rem;
|
||||
border: 0.01rem solid #0058e1;
|
||||
box-shadow: 0rem 0.08rem 0.2rem rgb(0 88 225 / 30%);
|
||||
}
|
||||
|
||||
.title {
|
||||
color: #212121;
|
||||
text-align: center;
|
||||
padding: 0.2rem 0;
|
||||
font-size: 0.22rem;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.name-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.no-data {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.16rem;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.name-text {
|
||||
font-size: 0.16rem;
|
||||
color: #212121;
|
||||
line-height: 0.3rem;
|
||||
height: 0.3rem;
|
||||
text-align: center;
|
||||
padding: 0.2rem 0;
|
||||
font-size: .22rem;
|
||||
text-align: center;
|
||||
width: 50%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.name-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.no-data {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.16rem;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.name-text {
|
||||
font-size: 0.16rem;
|
||||
color: #212121;
|
||||
line-height: 0.3rem;
|
||||
height: 0.3rem;
|
||||
text-align: center;
|
||||
width: 50%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
clickData: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
title: ''
|
||||
''
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
|
@ -4,21 +4,40 @@
|
|||
<div id="container" class="content-menu">
|
||||
<div class="rela">
|
||||
<div class="left">
|
||||
<div class="first-title-text" v-for="(data, i) in titleList" :key="i" @click="changeName(data)"
|
||||
:style="{ color: data.name === titleData.name ? '#0058e1' : '' }">
|
||||
<div
|
||||
class="first-title-text"
|
||||
v-for="(data, i) in titleList"
|
||||
:key="i"
|
||||
@click="changeName(data)"
|
||||
:style="{ color: data.name === titleData.name ? '#0058e1' : '' }"
|
||||
>
|
||||
<div class="img" :class="data.className"></div>
|
||||
{{ data.name }}
|
||||
</div>
|
||||
<abilityDocTree :dataList="treeArray" @treeClick="treeClick" :clickData="clickData"></abilityDocTree>
|
||||
<abilityDocTree
|
||||
:dataList="treeArray"
|
||||
@treeClick="treeClick"
|
||||
:clickData="clickData"
|
||||
></abilityDocTree>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="new-menu-box" style="height: 100%" v-if="titleData.name === '新手指引'">
|
||||
<div
|
||||
class="new-menu-box"
|
||||
style="height: 100%"
|
||||
v-if="titleData.name === '新手指引'"
|
||||
>
|
||||
<!-- 新手指引 -->
|
||||
<a-empty description="新手指引" />
|
||||
</div>
|
||||
<div v-else style="height:100%">
|
||||
<iframe name="iframeName" width="1000" height="100%" id="iframeId" :frameborder="0"
|
||||
:src="doc_base_url + clickData.doc"></iframe>
|
||||
<div v-else style="height: 100%">
|
||||
<iframe
|
||||
name="iframeName"
|
||||
width="1000"
|
||||
height="100%"
|
||||
id="iframeId"
|
||||
:frameborder="0"
|
||||
:src="doc_base_url + clickData.doc"
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -26,199 +45,199 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import HomeHeader from '@/views/home/components/header'
|
||||
import abilityDocTree from './components/abilityDocTree'
|
||||
import { ref, reactive, onMounted, nextTick, watch } from 'vue'
|
||||
import { Empty, message } from 'ant-design-vue'
|
||||
import { getDevelopDocTree } from '@/api/home'
|
||||
import flatten from '@turf/flatten'
|
||||
import HomeHeader from '@/views/home/components/header'
|
||||
import abilityDocTree from './components/abilityDocTree'
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { getDevelopDocTree } from '@/api/home'
|
||||
// import flatten from '@turf/flatten'
|
||||
|
||||
const titleList = ref([
|
||||
{
|
||||
name: '新手指引',
|
||||
className: 'newGuide',
|
||||
},
|
||||
{
|
||||
name: '技术文档',
|
||||
className: 'doc',
|
||||
},
|
||||
])
|
||||
const titleData = ref(titleList.value[0])
|
||||
const clickData = ref({})
|
||||
const treeArray = ref([])
|
||||
const treeArrayCopy = ref([])
|
||||
let typeList = ['组件服务', '应用资源', '基础设施', '数据资源', '知识库']
|
||||
let doc_base_url = ref(window.SITE_CONFIG['frontUrl'])
|
||||
const titleList = ref([
|
||||
{
|
||||
name: '新手指引',
|
||||
className: 'newGuide',
|
||||
},
|
||||
{
|
||||
name: '技术文档',
|
||||
className: 'doc',
|
||||
},
|
||||
])
|
||||
const titleData = ref(titleList.value[0])
|
||||
const clickData = ref({})
|
||||
const treeArray = ref([])
|
||||
const treeArrayCopy = ref([])
|
||||
let typeList = ['组件服务', '应用资源', '基础设施', '数据资源', '知识库']
|
||||
let doc_base_url = ref(window.SITE_CONFIG['frontUrl'])
|
||||
|
||||
const treeClick = (item) => {
|
||||
clickData.value = item
|
||||
console.log('clickData------------>', item)
|
||||
titleData.value = titleList.value[1]
|
||||
}
|
||||
|
||||
const getTreeData = () => {
|
||||
getDevelopDocTree({})
|
||||
.then((res) => {
|
||||
console.log('res------文档树------>', res)
|
||||
if (res.data.code !== 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
treeArray.value = res.data.data || []
|
||||
treeArrayCopy.value = JSON.parse(JSON.stringify(treeArray.value))
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(err)
|
||||
})
|
||||
}
|
||||
|
||||
const changeName = (item) => {
|
||||
titleData.value = item
|
||||
if (item.name == '新手指引') {
|
||||
clickData.value = {}
|
||||
const treeClick = (item) => {
|
||||
clickData.value = item
|
||||
console.log('clickData------------>', item)
|
||||
titleData.value = titleList.value[1]
|
||||
}
|
||||
if (item.name == '技术文档') {
|
||||
if (!clickData.value.title) {
|
||||
clickData.value = {}
|
||||
treeArray.value = []
|
||||
treeArrayCopy.value.map((val, i) => {
|
||||
let obj = Object.assign({}, val, {
|
||||
title: val.title,
|
||||
show:
|
||||
(i === 0 && val.children && val.children.length > 0) ||
|
||||
typeList.includes(val.title)
|
||||
? true
|
||||
: false,
|
||||
children: [],
|
||||
})
|
||||
formData(val.children, obj)
|
||||
treeArray.value.push(obj)
|
||||
|
||||
const getTreeData = () => {
|
||||
getDevelopDocTree({})
|
||||
.then((res) => {
|
||||
console.log('res------文档树------>', res)
|
||||
if (res.data.code !== 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
treeArray.value = res.data.data || []
|
||||
treeArrayCopy.value = JSON.parse(JSON.stringify(treeArray.value))
|
||||
})
|
||||
getFirstData(treeArrayCopy.value[0] || {})
|
||||
.catch((err) => {
|
||||
message.error(err)
|
||||
})
|
||||
}
|
||||
|
||||
const changeName = (item) => {
|
||||
titleData.value = item
|
||||
if (item.name == '新手指引') {
|
||||
clickData.value = {}
|
||||
}
|
||||
if (item.name == '技术文档') {
|
||||
if (!clickData.value.title) {
|
||||
clickData.value = {}
|
||||
treeArray.value = []
|
||||
treeArrayCopy.value.map((val, i) => {
|
||||
let obj = Object.assign({}, val, {
|
||||
title: val.title,
|
||||
show:
|
||||
(i === 0 && val.children && val.children.length > 0) ||
|
||||
typeList.includes(val.title)
|
||||
? true
|
||||
: false,
|
||||
children: [],
|
||||
})
|
||||
formData(val.children, obj)
|
||||
treeArray.value.push(obj)
|
||||
})
|
||||
getFirstData(treeArrayCopy.value[0] || {})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const formData = (children = [], dataItem) => {
|
||||
children.map((item, index) => {
|
||||
let _obj = Object.assign({}, item, {
|
||||
title: item.title,
|
||||
show:
|
||||
(index === 0 && item.children && item.children.length > 0) ||
|
||||
const formData = (children = [], dataItem) => {
|
||||
children.map((item, index) => {
|
||||
let _obj = Object.assign({}, item, {
|
||||
title: item.title,
|
||||
show:
|
||||
(index === 0 && item.children && item.children.length > 0) ||
|
||||
typeList.includes(item.title)
|
||||
? true
|
||||
: false,
|
||||
children: [],
|
||||
? true
|
||||
: false,
|
||||
children: [],
|
||||
})
|
||||
if (item.children && item.children.length > 0) {
|
||||
formData(item.children, _obj)
|
||||
}
|
||||
dataItem.children.push(_obj)
|
||||
})
|
||||
if (item.children && item.children.length > 0) {
|
||||
formData(item.children, _obj)
|
||||
}
|
||||
dataItem.children.push(_obj)
|
||||
})
|
||||
}
|
||||
|
||||
const getFirstData = (firstObj = {}) => {
|
||||
if (firstObj && firstObj.children && firstObj.children.length > 0) {
|
||||
getFirstData(firstObj.children[0])
|
||||
} else {
|
||||
clickData.value = firstObj
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getTreeData()
|
||||
})
|
||||
const getFirstData = (firstObj = {}) => {
|
||||
if (firstObj && firstObj.children && firstObj.children.length > 0) {
|
||||
getFirstData(firstObj.children[0])
|
||||
} else {
|
||||
clickData.value = firstObj
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getTreeData()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.menu-box {
|
||||
// overflow: hidden;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.first-title-text {
|
||||
cursor: pointer;
|
||||
font-size: 18px;
|
||||
color: #333;
|
||||
padding-bottom: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
&:hover {
|
||||
color: #0058e1;
|
||||
.menu-box {
|
||||
// overflow: hidden;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.content-menu {
|
||||
width: 1240px;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
margin: 0 auto;
|
||||
margin-top: 74px;
|
||||
box-sizing: border-box;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
bottom: 0;
|
||||
transform: translateX(-50%);
|
||||
top: 0.6rem;
|
||||
top: 0;
|
||||
}
|
||||
.first-title-text {
|
||||
cursor: pointer;
|
||||
font-size: 18px;
|
||||
color: #333;
|
||||
padding-bottom: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.left {
|
||||
width: 240px;
|
||||
padding: 20px;
|
||||
height: 600px;
|
||||
margin-right: 20px;
|
||||
background: rgba(244, 245, 248, 0.8);
|
||||
overflow-y: scroll;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 0;
|
||||
}
|
||||
&:hover {
|
||||
color: #0058e1;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
width: 870px;
|
||||
height: calc(100% - 20px);
|
||||
.content-menu {
|
||||
width: 1240px;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
margin: 0 auto;
|
||||
margin-top: 74px;
|
||||
box-sizing: border-box;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
bottom: 0;
|
||||
transform: translateX(-50%);
|
||||
top: 0.6rem;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 260px;
|
||||
}
|
||||
.left {
|
||||
width: 240px;
|
||||
padding: 20px;
|
||||
height: 600px;
|
||||
margin-right: 20px;
|
||||
background: rgba(244, 245, 248, 0.8);
|
||||
overflow-y: scroll;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
right: 0 !important;
|
||||
}
|
||||
.right {
|
||||
width: 870px;
|
||||
height: calc(100% - 20px);
|
||||
|
||||
.content {
|
||||
right: 16rem !important;
|
||||
left: 0 !important;
|
||||
}
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 260px;
|
||||
}
|
||||
|
||||
.img {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
.sidebar {
|
||||
right: 0 !important;
|
||||
}
|
||||
|
||||
.doc {
|
||||
background: url('~@/assets/capabilityCloud/doc.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
.content {
|
||||
right: 16rem !important;
|
||||
left: 0 !important;
|
||||
}
|
||||
|
||||
.newGuide {
|
||||
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
.img {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.new-menu-box {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.doc {
|
||||
background: url('~@/assets/capabilityCloud/doc.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.rela {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
.newGuide {
|
||||
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.new-menu-box {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.rela {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -100,7 +100,7 @@
|
|||
query: {
|
||||
select: type,
|
||||
tecHnosphere: '',
|
||||
appLiCation: ''
|
||||
appLiCation: '',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -237,7 +237,7 @@
|
|||
resourceId: val.resourceId,
|
||||
createDate: val.createDate,
|
||||
updateDate: val.updateDate,
|
||||
...getObj(val, val.resourceDTO ? 'resourceDTO' : 'fuseDTO')
|
||||
...getObj(val, val.resourceDTO ? 'resourceDTO' : 'fuseDTO'),
|
||||
}
|
||||
if (checkedList.value.indexOf(val.resourceId) == -1) {
|
||||
checkAll.value = false
|
||||
|
@ -250,8 +250,8 @@
|
|||
}
|
||||
|
||||
function getObj(val, typeStr) {
|
||||
let typeObj = val[typeStr] || {};
|
||||
console.log('typeObj------------>', typeObj);
|
||||
let typeObj = val[typeStr] || {}
|
||||
console.log('typeObj------------>', typeObj)
|
||||
return {
|
||||
name: typeObj.name,
|
||||
type: typeObj.type,
|
||||
|
|
|
@ -39,7 +39,9 @@
|
|||
<a-list-item>
|
||||
<a-skeleton avatar :title="false" :loading="!!item.loading" active>
|
||||
<a-list-item-meta
|
||||
:description="item.description || '--'"
|
||||
:description="
|
||||
tabList[tabIndex] != '知识库' ? item.description || '--' : ''
|
||||
"
|
||||
style="position: relative"
|
||||
>
|
||||
<template #title>
|
||||
|
|
Loading…
Reference in New Issue