Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev

This commit is contained in:
unknown 2022-10-13 10:47:48 +08:00
commit bff7f51467
22 changed files with 3175 additions and 2967 deletions

View File

@ -2,16 +2,16 @@
* @Author: hisense.wuhongjian
* @Date: 2022-08-25 14:37:49
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-08-27 14:25:39
* @LastEditTime: 2022-10-12 15:25:01
* @Description: 告诉大家这是什么
*/
var _global = {}
var CONFIGITEM = {
version: 'qingdao', // 青岛
// version: 'qingdao', // 青岛
// version: 'xihaian', // 西海岸
// version: 'test', // 测试
// version: 'frp', // 内网穿透
// version: 'dev', // 开发
version: 'xihaian', // 开发
vNum: 'v0.8.7.2',
configData: {
// 青岛市大数据局
@ -24,7 +24,9 @@ var CONFIGITEM = {
xihaian: {
previewUrl: 'http://10.134.135.9:9796/',
// apiURL: 'http://10.134.135.9:8888/renren-admin',
apiURL: 'http://10.16.5.35:8888/renren-admin', // 李志成
// apiURL: 'http://10.16.5.35:8888/renren-admin', // 李志成-研发
apiURL: 'http://192.168.124.236:8888/renren-admin',
// apiURL: 'http://192.168.124.254:8888/renren-admin', // 李志成-远雄
websocketURL: 'ws://10.134.135.9:8888/renren-admin/websocket'
},
// 测试

View File

@ -9,6 +9,7 @@
<use :xlink:href="`#${menu.icon}`"></use>
</svg>
<span class="first-level-text">{{ menu.name }}</span>
<span class="tabNum" v-if="menu.total && menu.total !==0">{{menu.total}}</span>
</template>
<sub-menu
v-for="item in menu.children"
@ -32,6 +33,7 @@
<use :xlink:href="`#${menu.icon}`"></use>
</svg>
<span>{{ menu.name }}</span>
<span class="tabNum" v-if="menu.total && menu.total !==0 ">{{menu.total}}</span>
</a>
</el-menu-item>
</template>
@ -110,6 +112,13 @@ export default {
</script>
<style lang="scss">
.tabNum{
color: #ffffff;
margin-left: 5px;
background: red;
padding:1px 4px;
border-radius:5px;
}
.aui-sidebar__menu {
.first-level-text {
font-size: 16px;

View File

@ -18,29 +18,81 @@
:collapseTransition="false"
class="aui-sidebar__menu"
>
<div >
<sub-menu
v-for="menu in $store.state.sidebarMenuList"
:key="menu.id"
:menu="menu"
/>
>
<span>sdddd</span>
</sub-menu>
</div>
</el-menu>
</div>
</aside>
</template>
<script>
import http from '@/utils/request'
import SubMenu from "./main-sidebar-sub-menu";
export default {
data() {
return {};
return {
numObject:{}
};
},
components: {
SubMenu,
},
created() {
this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
this.getNum()
//this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
},
};
methods: {
getNum(){
http.get('/act/task/myToDoTaskNum').then(({ data: res }) => {
this.numObject=res.data
console.log("this.numObject========",this.numObject)
let menuList= window.SITE_CONFIG["menuList"];
for(var i=0;i<menuList.length;i++){
let menu=menuList[i];
// menu.total=0;
if(menu.id=='1541261628388888578'){//
let daibanNum=0
for(let j=0;j<menu.children.length;j++){
let children=menu.children[j]
if(children.id=="1541261780432408577"){// v3
children.total=Number(this.numObject.abilityprocess_v3)
daibanNum=Number(daibanNum)+Number(children.total)
} if(children.id=="1559376285703081986"){//
children.total=Number(this.numObject.meetingroom_book)
daibanNum=Number(daibanNum)+Number(children.total)
}if(children.id=="1545292602084827138"){//
children.total=Number(this.numObject.resourcemountapply)
daibanNum=Number(daibanNum)+Number(children.total)
}if(children.id=="1545312045695377410"){//
children.total=Number(this.numObject.abilitydemandapply)
daibanNum=Number(daibanNum)+Number(children.total)
}if(children.id=="1545313018614521857"){//
children.total=Number(this.numObject.resourcundercarriageapply)
daibanNum=Number(daibanNum)+Number(children.total)
}if(children.id=="1545313754106699777"){//
children.total=Number(this.numObject.comment_review)
daibanNum=Number(daibanNum)+Number(children.total)
}if(children.id=="1554294862931562498"){//
children.total=0
daibanNum=Number(daibanNum)+Number(children.total)
}
}
menu.total=daibanNum
}
}
this.$store.state.sidebarMenuList=menuList
})
}
}};
</script>
<style scoped lang="scss">
.aui-sidebar {

View File

@ -33,9 +33,13 @@
<el-form-item prop="sort" :label="$t('menu.sort')">
<el-input-number v-model="dataForm.sort" controls-position="right" :min="0" :label="$t('menu.sort')"></el-input-number>
</el-form-item>
<!-- 授权标识 -->
<el-form-item prop="permissions" :label="$t('menu.permissions')">
<el-input v-model="dataForm.permissions" :placeholder="$t('menu.permissionsTips')"></el-input>
</el-form-item>
<el-form-item prop="site" label="站点标识">
<el-input v-model="dataForm.site" placeholder="请输入站点标识(1为共享门户,0为后台管理)"></el-input>
</el-form-item>
<el-form-item v-if="dataForm.type === 0" prop="icon" :label="$t('menu.icon')" class="icon-list">
<el-popover v-model="iconListVisible" ref="iconListPopover" placement="bottom-start" trigger="click" popper-class="mod-sys__menu-icon-popover">
<div class="mod-sys__menu-icon-inner">
@ -77,6 +81,7 @@ export default {
name: '',
pid: '0',
parentName: '',
site: 0,
url: '',
permissions: '',
sort: 0,
@ -98,14 +103,14 @@ export default {
},
watch: {
'dataForm.type' (val) {
this.$refs['dataForm'].clearValidate()
this.$refs.dataForm.clearValidate()
}
},
methods: {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
this.$refs.dataForm.resetFields()
this.iconList = getIconList()
console.log('iconList', this.iconList)
this.dataForm.parentName = this.$t('menu.parentNameDefault')
@ -159,7 +164,7 @@ export default {
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
this.$refs.dataForm.validate((valid) => {
if (!valid) {
return false
}
@ -178,7 +183,7 @@ export default {
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}, 1000, { leading: true, trailing: false })
}
}
</script>

View File

@ -1,15 +1,15 @@
/*
* @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-09-19 09:36:49
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-12 15:29:29
* @Description: 系统静态参数配置
*/
var _global = {}
var CONFIGITEM = {
// version: 'qingdao', //
version: 'xihaian', // 西
// version: 'dev', //
// version: 'xihaian', // 西
version: 'dev', //
// version: 'zhanTingDev', // dev (2022-09-13:)
//version: 'test', //
//version: 'frp', // 穿
@ -61,6 +61,11 @@ var CONFIGITEM = {
userName: '',
userPwd: '',
},
//
camreaInfo: {
// cameraUrl: '10.134.135.92:9537', //
cameraUrl: '10.134.135.9:9537', //
},
backUrl: 'http://10.134.135.9:9797',
previewUrl: 'http://10.134.135.9:9796/',
// websocketURL: '10.134.135.9:8888/renren-admin', //

View File

@ -97,13 +97,16 @@ export function getHls(params) {
config2
)
}
// 西-- (10.134.135.92:9537)
let _cameraUrl = _global && _global.config && _global.config.camreaInfo && _global.config.camreaInfo.cameraUrl || '10.134.135.92:9537';
//-
export function getCameraInfoByAreaId(params) {
return axios.get(`http://10.134.135.92:9537/data_service/getCamera/getCameraInfoByAreaId?areaId=${params.areaId}`,
return axios.get(`http://${_cameraUrl}/data_service/getCamera/getCameraInfoByAreaId?areaId=${params.areaId}`,
config2
)
}
//-
export function getCameraByCondition(params) {
return axios.post('http://10.134.135.92:9537/data_service/getCamera/getCameraByCondition', params, config2)
return axios.post(`http://${_cameraUrl}/data_service/getCamera/getCameraByCondition`, params, config2)
}

View File

@ -74,7 +74,15 @@ export function getHls(params) {
//
export function sgcInsert(data) {
return request({
// url: '/resourcecar/insert',
url: '/resourcecar/insert',
method: 'post',
data,
})
}
// 西--
export function xhaAddCart(data) {
return request({
url: '/resourcecar/batchInsert', // 西-
method: 'post',
data,

View File

@ -126,16 +126,16 @@ const actions = {
* @returns
*/
async getUserInfo({ commit }) {
const { data } = await getUserInfo()
if (!data) {
const res = await getUserInfo()
if (!res || !res.data) {
message.error(`验证失败,请重新登录...`)
return false
}
// debugger
commit('setUsername', data.data.username)
commit('setRealname', data.data.realName)
commit('setRole', data.data.roleIdList.length)
commit('setUserId', data.data.id)
commit('setUsername', res.data.data.username)
commit('setRealname', res.data.data.realName)
commit('setRole', res.data.data.roleIdList.length)
commit('setUserId', res.data.data.id)
// TODO
// let { username, avatar, roles, ability } = data
// if (username && roles && Array.isArray(roles)) {
@ -168,6 +168,7 @@ const actions = {
* @param {*} { commit, dispatch }
*/
async resetAll({ dispatch }) {
debugger
await dispatch('setAccessToken', '')
await dispatch('acl/setFull', false, {
root: true,

View File

@ -11,14 +11,8 @@ import store from '@/store'
import qs from 'qs'
import router from '@/router'
// import { isArray } from '@/utils/validate'
import {
message
} from 'ant-design-vue'
import {
getAccessToken,
setAccessToken
} from '@/utils/accessToken'
import { message } from 'ant-design-vue'
import { getAccessToken, setAccessToken } from '@/utils/accessToken'
let loadingInstance
@ -33,12 +27,14 @@ const handleCode = (code, msg, res) => {
switch (code) {
case 401:
debugger
store.dispatch('user/resetAll').catch(() => { })
store.dispatch('user/resetAll').catch(() => {})
break
case 403:
router.push({
path: '/401'
}).catch(() => { })
router
.push({
path: '/401',
})
.catch(() => {})
break
case 500:
message.error(msg || '接口异常')
@ -103,17 +99,14 @@ instance.interceptors.response.use(
console.log('接口返回headers', response.headers)
console.log('接口返回REDIRECT', response.headers.redirect)
response['Access-Control-Expose-Headers'] = 'redirect'
const {
code,
message
} = response.data
const { code, message } = response.data
if (response.headers.token) {
setAccessToken(response.headers.token)
}
if (response.headers.redirect) {
const _old_href = window.location.href.split('#')[0];
const _new_href = response.headers.redirect.split('#')[0];
const _old_href = window.location.href.split('#')[0]
const _new_href = response.headers.redirect.split('#')[0]
window.location.replace(response.headers.redirect)
// url
if (_old_href === _new_href) {
@ -124,7 +117,7 @@ instance.interceptors.response.use(
if (response.headers.redirect === '/#/login') {
var keys = document.cookie.match(/[^ =;]+(?=\=)/g)
if (keys) {
for (var i = keys.length; i--;) {
for (var i = keys.length; i--; ) {
document.cookie =
keys[i] + '=0;path=/;expires=' + new Date(0).toUTCString() //,m.kevis.com
document.cookie =
@ -168,14 +161,14 @@ instance.interceptors.response.use(
console.log('接口error', error)
if (loadingInstance) loadingInstance.close()
const {
response,
message
} = error
const { response, message } = error
if (error.response) {
console.log('接口返回', response)
console.log('接口返回headers', response.headers)
console.log('接口返回REDIRECT', response.headers.redirect)
const { status, data } = response
handleCode(status, data.msg || message, response.headers.redirect)
if (response.headers.token) {
setAccessToken(response.headers.token)
}
@ -183,17 +176,10 @@ instance.interceptors.response.use(
window.location.replace(response.headers.redirect)
return Promise.resolve()
}
const {
status,
data
} = response
handleCode(status, data.msg || message, response.headers.redirect)
return Promise.reject(error)
} else {
let {
message
} = error
let { message } = error
if (message === 'Network Error') {
message = '后端接口连接异常'
}

View File

@ -1,8 +1,8 @@
/*
* @Author: hisense.wuhongjian
* @Date: 2022-04-01 17:23:11
* @LastEditors: Light
* @LastEditTime: 2022-10-10 16:43:58
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-11 13:59:18
* @Description: 告诉大家这是什么
*/
/**
@ -26,7 +26,7 @@ router.beforeEach(async (to, from, next) => {
// if (SSOTOKEN) {
// setAccessToken(SSOTOKEN)
// }
console.log('验证白名单', routesWhiteList)
const token = getAccessToken()
console.log('token', token)
let hasToken = token
@ -45,6 +45,7 @@ router.beforeEach(async (to, from, next) => {
router.addRoute(item)
})
if (routesWhiteList.indexOf(to.path) !== -1) {
debugger
next()
} else {
//

View File

@ -11,9 +11,12 @@
<div v-for="item in dataList.dataList" :key="item.name">
<div v-if="item.type !== '资源汇聚总量'" class="content-left">
<div class="name">
<span class="name-photo" :style="{
<span
class="name-photo"
:style="{
backgroundImage: `url(${item.photo}) `,
}"></span>
}"
></span>
<span class="name-text">{{ item.type }}</span>
</div>
<div class="organization-value">
@ -52,64 +55,64 @@
</div>
</template>
<script setup>
import { ref, onMounted, watch } from 'vue'
import { selectTotal } from '@/api/home'
import {
import { ref, onMounted, watch } from 'vue'
import { selectTotal } from '@/api/home'
import {
// numberOfResourcesByCategory,
sourceDepartmentStatistics,
} from '@/api/abilityStatistics.js'
// import { zywMessage } from '@/api/home'
import * as echarts from 'echarts'
import { message } from 'ant-design-vue'
//
let dataList = ref({
} from '@/api/abilityStatistics.js'
// import { zywMessage } from '@/api/home'
import * as echarts from 'echarts'
import { message } from 'ant-design-vue'
//
let dataList = ref({
title: '各类资源汇聚量',
dataList: [],
})
// let photo = ref([
// require('../../../assets/abilityStatistics/banner-jc.png'),
// require('../../../assets/abilityStatistics/banner-sj.png'),
// require('../../../assets/abilityStatistics/banner-zj.png'),
// require('../../../assets/abilityStatistics/banner-yy.png'),
// require('../../../assets/abilityStatistics/banner-zs.png'),
// ])
// let name = ref([])
//
// const findZywMessage = () => {
// zywMessage().then((res) => {
// const { data } = res.data
// dataSourceNum.value = data.sxmlcount || 0
// snum()
// })
// }
//
// function snum() {
// numberOfResourcesByCategory().then((res) => {
// dataList.value.dataList = res.data.data
// res.data.data.map((item, index) => {
// // if (dataList.value.dataList[index].type === '') {
// // dataList.value.dataList[index].amount = dataSourceNum.value || 0
// // }
// dataList.value.dataList[index].organization = ''
// dataList.value.dataList[index].photo = photo.value[index]
// })
// })
// }
selectTotal().then((res) => {
})
// let photo = ref([
// require('../../../assets/abilityStatistics/banner-jc.png'),
// require('../../../assets/abilityStatistics/banner-sj.png'),
// require('../../../assets/abilityStatistics/banner-zj.png'),
// require('../../../assets/abilityStatistics/banner-yy.png'),
// require('../../../assets/abilityStatistics/banner-zs.png'),
// ])
// let name = ref([])
//
// const findZywMessage = () => {
// zywMessage().then((res) => {
// const { data } = res.data
// dataSourceNum.value = data.sxmlcount || 0
// snum()
// })
// }
//
// function snum() {
// numberOfResourcesByCategory().then((res) => {
// dataList.value.dataList = res.data.data
// res.data.data.map((item, index) => {
// // if (dataList.value.dataList[index].type === '') {
// // dataList.value.dataList[index].amount = dataSourceNum.value || 0
// // }
// dataList.value.dataList[index].organization = ''
// dataList.value.dataList[index].photo = photo.value[index]
// })
// })
// }
selectTotal().then((res) => {
console.log('selectTotal===============>', res)
if(res.data.code !== 0) {
if (res.data.code !== 0) {
return message.error(res.data.msg)
}
let imgObj = {
'组件服务': require('../../../assets/abilityStatistics/banner-zj.png'),
'应用资源': require('../../../assets/abilityStatistics/banner-yy.png'),
'基础设施': require('../../../assets/abilityStatistics/banner-jc.png'),
'数据资源': require('../../../assets/abilityStatistics/banner-sj.png'),
'知识库': require('../../../assets/abilityStatistics/banner-zs.png'),
组件服务: require('../../../assets/abilityStatistics/banner-zj.png'),
应用资源: require('../../../assets/abilityStatistics/banner-yy.png'),
基础设施: require('../../../assets/abilityStatistics/banner-jc.png'),
数据资源: require('../../../assets/abilityStatistics/banner-sj.png'),
知识库: require('../../../assets/abilityStatistics/banner-zs.png'),
}
res.data.data.total.forEach((val) => {
let _obj = {
organization: '个',
organization: '项',
type: val.type,
photo: val.type && imgObj[val.type],
amount: val.count,
@ -119,11 +122,14 @@ selectTotal().then((res) => {
_obj.amount = val.count - 0 + uavAndIndividualSoldier.num
}
}
if (val.type == '知识库') {
_obj.organization = '条'
}
dataList.value.dataList.push(_obj)
// switch (val.type) {
// case '':
// dataList.value.dataList.push({
// organization: '',
// organization: '',
// type: '',
// photo: require('../../../assets/abilityStatistics/banner-zj.png'),
// amount: val.count,
@ -131,7 +137,7 @@ selectTotal().then((res) => {
// break
// case '':
// dataList.value.dataList.push({
// organization: '',
// organization: '',
// type: '',
// photo: require('../../../assets/abilityStatistics/banner-yy.png'),
// amount: val.count,
@ -142,7 +148,7 @@ selectTotal().then((res) => {
// val.count = val.count - 0 + uavAndIndividualSoldier.num
// }
// dataList.value.dataList.push({
// organization: '',
// organization: '',
// type: '',
// photo: require('../../../assets/abilityStatistics/banner-jc.png'),
// amount: val.count,
@ -150,7 +156,7 @@ selectTotal().then((res) => {
// break
// case '':
// dataList.value.dataList.push({
// organization: '',
// organization: '',
// type: '',
// photo: require('../../../assets/abilityStatistics/banner-sj.png'),
// amount: val.count,
@ -158,7 +164,7 @@ selectTotal().then((res) => {
// break
// case '':
// dataList.value.dataList.push({
// organization: '',
// organization: '',
// type: '',
// photo: require('../../../assets/abilityStatistics/banner-zs.png'),
// amount: val.count,
@ -170,14 +176,14 @@ selectTotal().then((res) => {
dataList.value.dataList.sort((a, b) => {
return arr.indexOf(a.type) - arr.indexOf(b.type)
})
})
let datas = ref([])
let laiyuanDataList = ref([])
// let dataSourceNum = ref(0)
let bumenSum = ref([])
})
let datas = ref([])
let laiyuanDataList = ref([])
// let dataSourceNum = ref(0)
let bumenSum = ref([])
//-
const sourceDepartment = () => {
//-
const sourceDepartment = () => {
sourceDepartmentStatistics().then((res) => {
// datas.value = res.data.data.deptTypeCount
bumenSum.value = res.data.data.deptCount
@ -206,10 +212,10 @@ const sourceDepartment = () => {
}
console.log('laiyuanDataList.value', laiyuanDataList.value)
})
}
//
let leftDom = ref(0)
const pieCharti = (dataLists) => {
}
//
let leftDom = ref(0)
const pieCharti = (dataLists) => {
leftDom.value += 'a'
echarts.init(document.getElementById('left')).dispose()
let chartDom = document.getElementById('left')
@ -307,9 +313,9 @@ const pieCharti = (dataLists) => {
}
option && myChart.setOption(option)
}
//
const funnelPlot = (dataList) => {
}
//
const funnelPlot = (dataList) => {
//
let arrCopy = ['0-5', '5-10', '10-15', '15-20', '20以上']
//
@ -317,7 +323,7 @@ const funnelPlot = (dataList) => {
return Number(a.value) - Number(b.value)
})
let _arr = dataList.map(v => v.fanwei) || arrCopy;
let _arr = dataList.map((v) => v.fanwei) || arrCopy
//
let chartData = _arr.map((v, i) => {
return {
@ -326,12 +332,12 @@ const funnelPlot = (dataList) => {
}
})
let newArr = [];
dataList.map(v => {
let newArr = []
dataList.map((v) => {
if (v.value && Number(v.value > 0)) {
newArr.push({
name: v.fanwei,
value: v.value
value: v.value,
})
}
})
@ -343,10 +349,14 @@ const funnelPlot = (dataList) => {
tooltip: {
trigger: 'item',
formatter: function (info) {
let _obj = dataList.find(v => v.fanwei == info.data.name) || {}
let _obj = dataList.find((v) => v.fanwei == info.data.name) || {}
let dom = ref()
dom.value =
'部门数<br/>' + (_obj.fanwei || '--') + ' : ' + (_obj.value || _obj.value === 0 ? _obj.value : '--') + '个'
'部门数<br/>' +
(_obj.fanwei || '--') +
' : ' +
(_obj.value || _obj.value === 0 ? _obj.value : '--') +
'项'
console.log('name', info.data)
return dom.value
},
@ -382,24 +392,28 @@ const funnelPlot = (dataList) => {
label: {
show: true,
formatter: function (info) {
let _obj = dataList.find(v => v.fanwei == info.data.name) || {}
let _obj = dataList.find((v) => v.fanwei == info.data.name) || {}
let dom = ref()
dom.value = (_obj.fanwei || '--') + ' : ' + (_obj.value || _obj.value === 0 ? _obj.value : '--') + '个';
dom.value =
(_obj.fanwei || '--') +
' : ' +
(_obj.value || _obj.value === 0 ? _obj.value : '--') +
'项'
console.log('name', info.data)
return dom.value
},
rich: {
b: {
fontSize: 14
}
}
fontSize: 14,
},
},
},
labelLine: {
length: 40,
lineStyle: {
width: 1,
type: 'solid'
}
type: 'solid',
},
},
itemStyle: {
borderColor: '#fff',
@ -411,60 +425,60 @@ const funnelPlot = (dataList) => {
},
},
data: chartData,
}
},
],
}
option && myChart.setOption(option)
}
onMounted(() => {
}
onMounted(() => {
// findZywMessage()
// snum()
sourceDepartment()
})
watch(
})
watch(
datas,
(value) => {
pieCharti(value)
},
{ deep: true }
)
watch(
)
watch(
laiyuanDataList,
(value) => {
funnelPlot(value)
console.log(value, ' laiyuanDataList')
},
{ deep: true }
)
)
</script>
<style lang="less" scoped>
@font-face {
@font-face {
font-family: 'num-typeface';
src: url('~@/assets/newHome/font/num-typeface.otf');
}
}
@font-face {
@font-face {
font-family: 'text-typeface';
src: url('~@/assets/newHome/font/text-typeface.otf');
}
}
.num {
.num {
font-family: num-typeface;
font-size: 32px;
font-weight: 600;
margin-right: 5px;
}
}
.hengxian {
.hengxian {
height: 3px;
width: 30px;
border-radius: 1px;
margin-top: 6px;
background: #0058e1;
}
}
.resource-aggregation {
.resource-aggregation {
font-size: 18px;
font-family: text-typeface;
width: 100%;
@ -571,7 +585,8 @@ watch(
.bumensnum-photo {
height: 50px;
width: 50px;
background: url('~@/assets/abilityStatistics/bumenzongshu.png') no-repeat;
background: url('~@/assets/abilityStatistics/bumenzongshu.png')
no-repeat;
margin-bottom: 30px;
}
@ -626,5 +641,5 @@ watch(
}
}
}
}
}
</style>

View File

@ -1085,7 +1085,7 @@ export default defineComponent({
// -
const getQingDao = (res) => {
; ((res.data && res.data.data && res.data.data.data) || []).forEach(
((res.data && res.data.data && res.data.data.data) || []).forEach(
(val) => {
val.id = val.guid // id
val.name = val.zyname //
@ -1101,7 +1101,7 @@ export default defineComponent({
}
// -西
const getXiHaiAn = (res) => {
; ((res.data && res.data.data && res.data.data.list) || []).forEach(
((res.data && res.data.data && res.data.data.list) || []).forEach(
(val) => {
val.id = val.serviceId // id
val.name = val.serviceName //

View File

@ -1,8 +1,11 @@
<template>
<div class="home-header" :class="[
<div
class="home-header"
:class="[
select !== 'home' || scrollTop > 500 ? 'white' : '',
props.showView === 'algorithm-details' ? '' : '',
]">
]"
>
<div class="name" @click="goToHome">
<div class="name-bg" v-if="!itShowXiHaiAn"></div>
<div class="name-bg-xihaian" v-else></div>
@ -11,26 +14,52 @@
<p>(United Capacity System)</p>
</div>
</div>
<div v-for="item in navList" :key="item.key" @click="jumpPage(item)" class="nav"
:class="item.key == select ? 'select' : ''">
<div
v-for="item in navList"
:key="item.key"
@click="jumpPage(item)"
class="nav"
:class="item.key == select ? 'select' : ''"
>
{{ item.name }}
</div>
<!-- 购物车 -->
<a-badge :count="sgcNum">
<svg t="1650455446850" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="2069" width="0.4rem" height="0.4rem" @click="goToSgc">
<svg
t="1650455446850"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2069"
width="0.4rem"
height="0.4rem"
@click="goToSgc"
>
<path
d="M384 832v85.333333h-85.333333v-85.333333h85.333333z m405.333333 0v85.333333h-85.333333v-85.333333h85.333333zM240.32 185.002667l24.149333 140.928h633.173334L835.285333 746.666667h-563.626666l-85.333334-497.685334H94.485333v-64h145.834667z m583.104 204.928H275.434667L325.632 682.666667h454.464l43.328-292.736z"
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'" p-id="2070"></path>
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'"
p-id="2070"
></path>
</svg>
</a-badge>
<a-badge :count="mynoticeNum" style="margin-left: 0.2rem">
<!-- 消息提醒 -->
<svg t="1654051054113" class="icon2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="2187" width="0.35rem" height="0.35rem">
<svg
t="1654051054113"
class="icon2"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2187"
width="0.35rem"
height="0.35rem"
>
<path
d="M544 161.536a330.666667 330.666667 0 0 1 298.666667 329.130667h-0.341334c0.213333 1.493333 0.341333 2.986667 0.341334 4.565333v219.434667h39.68a32 32 0 0 1 0 64h-212.053334a160 160 0 0 1-316.586666 0H141.909333a32 32 0 1 1 0-64h39.424v-219.434667c0-1.578667 0.128-3.072 0.341334-4.565333H181.333333a330.666667 330.666667 0 0 1 298.666667-329.130667V128a32 32 0 1 1 64 0v33.536z m-298.666667 553.130667h533.333334v-219.434667c0-1.578667 0.128-3.072 0.341333-4.565333h-0.341333a266.666667 266.666667 0 1 0-533.333334 0h-0.341333c0.213333 1.493333 0.341333 2.986667 0.341333 4.565333v219.434667z m359.765334 64H418.901333a96 96 0 0 0 186.197334 0z"
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'" p-id="2188"></path>
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'"
p-id="2188"
></path>
</svg>
<!-- <a-avatar shape="square" size="large" /> -->
</a-badge>
@ -59,7 +88,10 @@
<template #title>
<span>{{ user.realName }}</span>
</template>
<span class="name" @click="jumpPage({ name: '个人中心', key: 'personalCenter' })">
<span
class="name"
@click="jumpPage({ name: '个人中心', key: 'personalCenter' })"
>
{{ user.realName }}
</span>
</a-tooltip>
@ -82,45 +114,55 @@
fill="#bfbfbf"
></path>
</svg> -->
<i @click="jumpPage({ name: '后台管理', key: 'houtaiguanli' })" class="iconTo"></i>
<i
@click="jumpPage({ name: '后台管理', key: 'houtaiguanli' })"
class="iconTo"
v-show="backFlag"
></i>
</div>
</div>
</template>
<script setup>
import { ref, onMounted, onBeforeUnmount, defineProps } from 'vue'
import { recordRoute } from '@/config'
import { useRoute, useRouter } from 'vue-router'
import { mynotice } from '@/api/home'
import { useStore } from 'vuex'
import { getSgcTotal } from '@/api/home'
import Cookies from 'js-cookie'
import mybus from '@/myplugins/mybus'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
import { message } from 'ant-design-vue'
import { ref, onMounted, onBeforeUnmount, defineProps } from 'vue'
import { getUserInfo } from '@/api/user'
import { recordRoute } from '@/config'
import { useRoute, useRouter } from 'vue-router'
import { mynotice } from '@/api/home'
import { useStore } from 'vuex'
import { getSgcTotal } from '@/api/home'
import Cookies from 'js-cookie'
import mybus from '@/myplugins/mybus'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
import { message } from 'ant-design-vue'
const store = useStore()
const router = useRouter()
const route = useRoute()
const store = useStore()
const router = useRouter()
const route = useRoute()
const itShowXiHaiAn = ref(whoShow.itShowXiHaiAn)
const itShowXiHaiAn = ref(whoShow.itShowXiHaiAn)
//
const user = ref({
//
const user = ref({
username: store.getters['user/username'],
realName: store.getters['user/realName'],
})
const select = ref(router.currentRoute.value.name)
const mynoticeFlag = ref(false)
const mynoticeData = ref([])
const navList = ref(navListManagement.navList)
console.log('navList------------>', navList)
})
const select = ref(router.currentRoute.value.name)
const mynoticeFlag = ref(false)
const mynoticeData = ref([])
const navList = ref(navListManagement.navList)
const backFlag = ref(true)
getUserInfo().then((res) => {
if (res.data.data.roleIdList.length == 0) {
backFlag.value = false
}
})
console.log('navList------------>', navList)
const props = defineProps({
const props = defineProps({
showView: { type: String, default: '' },
})
})
// 退
const logout = async () => {
// 退
const logout = async () => {
await store.dispatch('user/logout')
window.sessionStorage.setItem('visits', JSON.stringify([]))
// 西
@ -132,19 +174,22 @@ const logout = async () => {
router.push('/login')
}
}
}
//
const goToHome = () => {
}
//
const goToHome = () => {
router.push({
path: '/home',
})
}
//
const jumpPage = (item) => {
}
//
const jumpPage = (item) => {
// 西
if (itShowXiHaiAn.value) {
let _arr = ['共享门户', '能力云图', '能力统计', '需求中心', '赋能案例']
if (_arr.includes(item.name) && !xhaHasPermissionUser.list.includes(user.value.username)) {
if (
_arr.includes(item.name) &&
!xhaHasPermissionUser.list.includes(user.value.username)
) {
return message.warn('暂无权限')
}
}
@ -165,7 +210,7 @@ const jumpPage = (item) => {
router.push({
path: '/DetailsPageconetent',
query: {
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
},
})
break
@ -223,50 +268,50 @@ const jumpPage = (item) => {
router.push('/home')
break
}
}
const scrollTop = ref(0)
window.onscroll = function () {
}
const scrollTop = ref(0)
window.onscroll = function () {
//
//scrollTop
scrollTop.value =
document.documentElement.scrollTop || document.body.scrollTop
// console.log('' + scrollTop.value)
}
mybus.on('getSgcNum', () => {
}
mybus.on('getSgcNum', () => {
getSgcTotal().then((res) => {
sgcNum.value = res.data.data.count
// console.log('========================>', res.data.data.count)
})
})
})
const sgcNum = ref(0)
const goToSgc = () => {
const sgcNum = ref(0)
const goToSgc = () => {
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle'))
router.push('/personalCenter')
}
const mynoticeNum = ref(0)
//
const getMynotice = () => {
}
const mynoticeNum = ref(0)
//
const getMynotice = () => {
mynotice({ page: 1, limit: 3, readStatus: 0 }).then((res) => {
// console.log('', res.data.data)
mynoticeNum.value = res.data.data.total
mynoticeData.value = res.data.data.list
})
}
const goToView = () => {
}
const goToView = () => {
router.push({
path: '/mynoticeView',
})
}
// const read = (item) => {
// mynoticeRead(item.id).then((res) => {
// console.log('', res)
// getMynotice()
// })
// }
// -- cookie
}
// const read = (item) => {
// mynoticeRead(item.id).then((res) => {
// console.log('', res)
// getMynotice()
// })
// }
// -- cookie
onMounted(() => {
onMounted(() => {
getSgcTotal().then((res) => {
// console.log('========================>', res.data.data.count)
sgcNum.value = res.data.data.count
@ -300,19 +345,19 @@ onMounted(() => {
mybus.on('getMynotice', () => {
getMynotice()
})
})
onBeforeUnmount(() => {
})
onBeforeUnmount(() => {
mybus.off('getSgcNum')
mybus.off('getMynotice')
})
})
</script>
<style lang="less" scoped>
@font-face {
@font-face {
font-family: 'header-typeface';
src: url('~@/assets/newHome/font/header-typeface.ttf');
}
}
.home-header {
.home-header {
height: 0.64rem;
width: 100%;
max-width: 1920px;
@ -349,7 +394,8 @@ onBeforeUnmount(() => {
.name-bg-xihaian {
height: 0.6rem;
width: 0.6rem;
background: url('~@/assets/newHome/newHome-title-bg-xihaian.png') no-repeat;
background: url('~@/assets/newHome/newHome-title-bg-xihaian.png')
no-repeat;
background-size: 100%;
margin-right: 0.15rem;
}
@ -429,9 +475,9 @@ onBeforeUnmount(() => {
cursor: pointer;
}
}
}
}
.white {
.white {
background-color: #fff;
box-shadow: 0 0.02rem 0.1rem rgba(0, 0, 0, 0.1);
@ -464,13 +510,15 @@ onBeforeUnmount(() => {
color: #000;
}
}
}
}
.blue {
.blue {
position: absolute;
background: linear-gradient(to right,
background: linear-gradient(
to right,
rgba(15, 90, 253, 0.8),
rgba(36, 25, 248, 0.8));
rgba(36, 25, 248, 0.8)
);
.name {
color: #fff;
@ -490,9 +538,9 @@ onBeforeUnmount(() => {
color: #fff;
}
}
}
}
.mynotice {
.mynotice {
width: 4rem;
height: 3rem;
background: #eee;
@ -509,19 +557,18 @@ onBeforeUnmount(() => {
color: #000;
font-size: 0.16rem;
}
}
}
.mynotice::-webkit-scrollbar {
.mynotice::-webkit-scrollbar {
display: none;
}
}
:deep(.ant-list-item) {
:deep(.ant-list-item) {
border-bottom: 0.01rem solid #ccc;
padding: 0.1rem;
}
:deep(.ant-list-item-meta-title) {
}
:deep(.ant-list-item-meta-title) {
// display: flex;
// justify-content: space-around;
// align-items: center;
@ -547,18 +594,18 @@ onBeforeUnmount(() => {
font-size: 0.1rem;
}
}
}
}
.iconTo {
.iconTo {
display: block;
width: 0.35rem;
height: 0.35rem;
background: url('~@/assets/newHome/iconTo.png') no-repeat;
cursor: pointer;
}
}
</style>
<style>
html::-webkit-scrollbar {
html::-webkit-scrollbar {
display: none;
}
}
</style>

View File

@ -10,51 +10,82 @@
}}
</div>
<div class="condition" :key="showKey">
<IntegrationServiceOrder ref="integrationServiceOrderDom" v-if="
<IntegrationServiceOrder
ref="integrationServiceOrderDom"
v-if="
selectCardsname === '融合服务' || selectCardsname === '赋能场景'
"></IntegrationServiceOrder>
"
></IntegrationServiceOrder>
<ul v-else>
<li v-for="(item, i) in selList" :key="i" @click="changeCondition(item)" v-show="
<li
v-for="(item, i) in selList"
:key="i"
@click="changeCondition(item)"
v-show="
item.show &&
item.name !== '评分' &&
selectCardsname !== '数据资源'
">
"
>
{{ item.name }}
<span class="arrow" :class="
orderObj.orderType == 'ASC' &&
orderObj.orderField == item.value
<span
class="arrow"
:class="
orderObj.orderType == 'ASC' && orderObj.orderField == item.value
? 'down'
: ''
"></span>
"
></span>
</li>
</ul>
</div>
</div>
<div class="result-list" v-for="(item, index) in resourceList.data" :key="item.index">
<div
class="result-list"
v-for="(item, index) in resourceList.data"
:key="item.index"
>
<div class="item" :key="showKey">
<div class="left" style="display: flex; align-items: center" v-if="
<div
class="left"
style="display: flex; align-items: center"
v-if="
item.type === '应用资源' &&
item.infoList &&
item.infoList.filter((val) => val.attrType == '应用图片')[0]
">
<a-image :width="106" :preview="false" :src="
"
>
<a-image
:width="106"
:preview="false"
:src="
item.infoList.filter((val) => val.attrType == '应用图片')[0]
.attrValue
" />
"
/>
</div>
<div class="left" style="display: flex; align-items: center" v-else-if="
<div
class="left"
style="display: flex; align-items: center"
v-else-if="
(selectCardsname === '融合服务' ||
selectCardsname === '赋能场景') &&
item.fuseAttrList &&
item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]
">
<a-image :width="106" :preview="false" :src="
"
>
<a-image
:width="106"
:preview="false"
:src="
item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]
.attrValue
" />
"
/>
</div>
<div class="left" :class="
<div
class="left"
:class="
item.type == '应用资源'
? 'yyzy'
: !item.type
@ -79,33 +110,55 @@
.attrValue == '业务组件'
? 'ywzj'
: ''
" @click="toView('details', item)" v-else-if="
"
@click="toView('details', item)"
v-else-if="
selectCardsname !== '基础设施' &&
selectCardsname !== '融合服务' &&
selectCardsname !== '赋能场景'
"></div>
"
></div>
<div class="left jcss" v-else-if="selectCardsname === '基础设施'"></div>
<div class="left rhfw" v-else-if="
<div
class="left rhfw"
v-else-if="
selectCardsname === '融合服务' || selectCardsname === '赋能场景'
"></div>
"
></div>
<div class="right" @click="toView('details', item)">
<div class="header">
<span style="display: flex; align-items: center; width: 680px">
{{ item.name }}
<!-- 已申请--通过 -->
<svg t="1652322568870" class="icon" viewBox="0 0 3072 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="3062" width="40" height="40" v-if="
<svg
t="1652322568870"
class="icon"
viewBox="0 0 3072 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="3062"
width="40"
height="40"
v-if="
item.applyState == '已申请' && item.approveStatus == '通过'
" style="margin-left: 10px; min-width: 40px">
"
style="margin-left: 10px; min-width: 40px"
>
<path
d="M2958.222222 0a113.777778 113.777778 0 0 1 113.777778 113.777778v796.444444a113.777778 113.777778 0 0 1-113.777778 113.777778H500.053333a113.777778 113.777778 0 0 1-85.617777-38.798222L32.824889 549.432889a56.888889 56.888889 0 0 1 0-74.922667L414.435556 38.798222A113.777778 113.777778 0 0 1 499.996444 0H2958.222222z m0 56.888889H500.053333a56.888889 56.888889 0 0 0-42.837333 19.399111L75.605333 512l381.610667 435.712a56.888889 56.888889 0 0 0 42.780444 19.399111H2958.222222a56.888889 56.888889 0 0 0 56.888889-56.888889V113.777778a56.888889 56.888889 0 0 0-56.888889-56.888889z"
fill="#d81e06" p-id="3063"></path>
fill="#d81e06"
p-id="3063"
></path>
<path
d="M398.222222 398.222222a113.777778 113.777778 0 1 1 0 227.555556 113.777778 113.777778 0 0 1 0-227.555556z m0 56.888889a56.888889 56.888889 0 1 0 0 113.777778 56.888889 56.888889 0 0 0 0-113.777778z"
fill="#d81e06" p-id="3064"></path>
fill="#d81e06"
p-id="3064"
></path>
<path
d="M1309.582222 491.064889v-273.066667h-505.173333v47.786667h455.338667v178.176h-378.88V342.926222h-49.152v358.4c0 55.978667 27.306667 84.650667 82.602666 84.650667h370.005334c28.672-1.365333 51.2-8.874667 66.218666-23.210667 16.384-17.749333 27.989333-68.266667 34.816-152.917333l-47.786666-15.018667-1.706667 26.737778c-4.664889 58.766222-12.970667 93.582222-24.917333 104.334222-10.24 8.192-23.893333 12.288-40.277334 12.288h-342.698666c-31.402667 0-47.104-15.701333-47.104-45.738666v-201.386667h428.714666z m430.08-307.2v102.4h-219.136v386.389333h48.469334v-46.421333h170.666666v178.858667h50.517334v-178.858667h167.936v41.642667h48.469333V286.264889h-216.405333v-102.4h-50.517334z m-170.666666 395.946667v-102.4h170.666666v102.4h-170.666666z m221.184 0v-102.4h167.936v102.4h-167.936z m-221.184-146.773334V332.003556h170.666666v101.034666h-170.666666z m221.184 0V332.003556h167.936v101.034666h-167.936z m733.866666-251.221333v44.373333h-165.205333v40.277334h165.205333v45.738666h-137.898666v39.594667h137.898666V398.222222h-184.32v40.96h417.792V398.222222h-186.368v-46.421333h144.725334v-39.594667h-144.725334v-45.738666h169.301334v-40.277334h-169.301334v-44.373333h-47.104z m-85.333333 429.397333h220.501333v49.834667h-220.501333v-49.834667z m220.501333-38.229333h-220.501333v-50.517333h220.501333v50.517333z m-220.501333 126.293333h220.501333v38.912c0 15.701333-8.874667 23.893333-25.258666 23.893334l-54.613334-2.048 11.605334 43.690666h57.344c38.229333 0 58.026667-18.432 58.026666-55.296v-266.24H2391.608889V807.822222h47.104v-108.544z m-222.549333-509.952l-34.816 33.450667c49.152 36.864 88.064 71.68 116.736 104.448l33.450666-34.133333a795.079111 795.079111 0 0 0-115.370666-103.765334z m-82.602667 201.386667h144.725333v299.690667c20.48-19.114667 41.642667-40.277333 64.853334-64.170667l12.970666 51.882667a923.932444 923.932444 0 0 1-121.514666 105.813333l-19.114667-43.690667c10.24-9.557333 15.701333-19.797333 15.701333-31.402666V437.816889h-97.621333v-47.104z"
fill="#d81e06" p-id="3065"></path>
fill="#d81e06"
p-id="3065"
></path>
</svg>
<!-- 审核中 -->
<!-- <svg
@ -151,19 +204,28 @@
</span> -->
</span>
<div class="header-right">
<div v-if="
<div
v-if="
selectCardsname === '融合服务' ||
selectCardsname === '赋能场景'
" class="label-content">
<template v-if="
"
class="label-content"
>
<template
v-if="
item.fuseAttrList &&
item.fuseAttrList.filter(
(val) => val.attrType == '应用领域'
)[0]
">
<span class="label" v-for="(data, index) in item.fuseAttrList
"
>
<span
class="label"
v-for="(data, index) in item.fuseAttrList
.filter((val) => val.attrType == '应用领域')[0]
.attrValue.split(';')" :key="index">
.attrValue.split(';')"
:key="index"
>
{{ data }}
</span>
</template>
@ -181,15 +243,21 @@
</div>
</div>
<div class="dec">
<div v-if="
<div
v-if="
selectCardsname !== '融合服务' &&
selectCardsname !== '赋能场景' &&
selectCardsname !== '基础设施'
">
"
>
<span>{{ item.deptName || '--' }}</span>
</div>
</div>
<div v-if="selectCardsname !== '基础设施'" style="margin-top: 0.1rem" class="description">
<div
v-if="selectCardsname !== '基础设施'"
style="margin-top: 0.1rem"
class="description"
>
<a-tooltip>
<template #title>{{ item.description }}</template>
{{ item.description || '--' }}
@ -198,26 +266,32 @@
<div class="btn">
<div class="bottom" v-if="selectCardsname !== '基础设施'">
<div>
<div v-if="
<!-- <div
v-if="
selectCardsname !== '数据资源' &&
selectCardsname !== '融合服务' &&
selectCardsname !== '赋能场景'
">
"
>
浏览量{{ item.visits || 0 }}
</div>
<div v-if="
</div> -->
<div
v-if="
selectCardsname !== '数据资源' &&
selectCardsname !== '融合服务' &&
selectCardsname !== '赋能场景' &&
(selectCardsname !== '应用资源' || whoShow1.itShowQingDao)
">
"
>
申请量{{ item.applyCount || 0 }}
</div>
<div v-if="
<div
v-if="
selectCardsname === '数据资源' &&
selectCardsname !== '融合服务' &&
selectCardsname !== '赋能场景'
">
"
>
数据量{{ item.sjlCount || 0 }}
</div>
<div v-if="selectCardsname !== '数据资源'">
@ -227,39 +301,75 @@
</div>
<div class="right" v-if="selectCardsname !== '基础设施'">
<div class="shopping" :key="shoppingKey">
<template v-if="
<template
v-if="
(selectCardsname == '组件服务' &&
item.infoList.filter(
(val) => val.attrType == '外部服务地址'
).length === 0) ||
(selectCardsname == '应用资源' && whoShow1.itShowQingDao)
">
<span class="shopping-down" v-if="item.isInShoppingCart"></span>
<span class="shopping-on" v-else @click.stop="addShoppingCart(item, index)"></span>
"
>
<span
class="shopping-down"
v-if="item.isInShoppingCart"
></span>
<span
class="shopping-on"
v-else
@click.stop="addShoppingCart(item, index)"
></span>
</template>
</div>
<div class="sc">
<span class="sc-down" v-if="item.isCollect == 'false'" @click.stop="addCollect(item)"></span>
<span class="sc-on" v-if="item.isCollect == 'true'" @click.stop="addCollect(item)"></span>
<span
class="sc-down"
v-if="item.isCollect == 'false'"
@click.stop="addCollect(item)"
></span>
<span
class="sc-on"
v-if="item.isCollect == 'true'"
@click.stop="addCollect(item)"
></span>
</div>
<div class="shopping pk" :key="pk" v-show="
<div
class="shopping pk"
:key="pk"
v-show="
cardType == '组件服务' && findComponentName(item, '智能算法')
">
<span class="pk-on" @click.stop="goComparePk(item, index)"></span>
"
>
<span
class="pk-on"
@click.stop="goComparePk(item, index)"
></span>
</div>
<a-button type="primary" @click.stop="toView('details', item)" v-if="!whoShow1.itShowBaoTou">
<a-button
type="primary"
@click.stop="toView('details', item)"
v-if="!whoShow1.itShowBaoTou"
>
查看详情
</a-button>
<a-button style="margin-left: 10px" v-show="
<a-button
style="margin-left: 10px"
v-show="
selectCardsname === '融合服务' ||
selectCardsname === '赋能场景'
" @click.stop="handleAKeyApplication(item)">
"
@click.stop="handleAKeyApplication(item)"
>
一键申请
</a-button>
<a-button type="primary" @click.stop="toView('apply', item)" v-show="
<a-button
type="primary"
@click.stop="toView('apply', item)"
v-show="
cardType == '组件服务' ||
(cardType == '应用资源' && whoShow1.itShowQingDao)
">
"
>
{{
item.shareCondition == '免批申请' ? '免批申请' : '立即申请'
}}
@ -274,7 +384,12 @@
</div>
</div>
</div>
<a-modal v-model:visible="visible" title="视频预览" :width="750" destroyOnClose>
<a-modal
v-model:visible="visible"
title="视频预览"
:width="750"
destroyOnClose
>
<template #footer></template>
<div style="width: 100%; display: flex; justify-content: center">
<div style="width: 100%; height: 100%">
@ -285,21 +400,21 @@
</div>
</template>
<script>
import { ref, reactive } from 'vue'
import { message } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { getUser, sgcInsert } from '@/api/home'
import { scInsert, scDel } from '@/api/personalCenter'
import mybus from '@/myplugins/mybus'
import { getHls } from '@/api/home.js'
import IntegrationServiceOrder from './integrationServiceOrder.vue';
import ComponentServiceTag from './ComponentServiceTag.vue';
export default {
import { ref, reactive } from 'vue'
import { message } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { getUser, sgcInsert } from '@/api/home'
import { scInsert, scDel } from '@/api/personalCenter'
import mybus from '@/myplugins/mybus'
import { getHls } from '@/api/home.js'
import IntegrationServiceOrder from './integrationServiceOrder.vue'
import ComponentServiceTag from './ComponentServiceTag.vue'
export default {
name: '',
props: {
resourceList: {
type: Object,
default: () => { },
default: () => {},
},
resourceTotal: {
type: String,
@ -332,9 +447,9 @@ export default {
{ name: '评分', value: 'score', show: true },
])
// 西-
if (whoShow1.itShowXiHaiAn) {
selList.value = selList.value.filter(v => v.name !== '浏览量')
}
// if (whoShow1.itShowXiHaiAn) {
selList.value = selList.value.filter((v) => v.name !== '浏览量')
// }
if (props.selectCardsname === '基础设施') {
selList.value.map((val) => (val.show = false))
} else if (props.selectCardsname === '数据资源') {
@ -355,8 +470,9 @@ export default {
// 西----
const showTagArray = ['已落地', '需要计算支持']
const getTagList = (item) => {
let _arr = item.infoList.filter((x) => showTagArray.includes(x.attrValue)) || []
let tagArray = _arr.map(v => v.attrValue)
let _arr =
item.infoList.filter((x) => showTagArray.includes(x.attrValue)) || []
let tagArray = _arr.map((v) => v.attrValue)
return tagArray
}
console.log('this.resourceList', props.resourceList.data)
@ -548,18 +664,18 @@ export default {
* isFromFather: 是否来自父组件传值
*/
const changeCondition = (item, isFromFather = false) => {
console.log('item, isFromFather------------>', item, isFromFather);
let newType = item.orderType == 'DESC' ? 'ASC' : 'DESC';
console.log('item, isFromFather------------>', item, isFromFather)
let newType = item.orderType == 'DESC' ? 'ASC' : 'DESC'
if (isFromFather) {
newType = item.orderType;
newType = item.orderType
}
orderObj.orderField = item.value;
orderObj.orderType = newType;
let _index = selList.value.findIndex(x => x.value == item.value)
orderObj.orderField = item.value
orderObj.orderType = newType
let _index = selList.value.findIndex((x) => x.value == item.value)
if (_index > -1) {
selList.value[_index].orderType = newType
}
selList.value = selList.value.splice(0);
selList.value = selList.value.splice(0)
mybus.emit('changeCondition', orderObj)
}
@ -713,10 +829,10 @@ export default {
mybus.off('chongzhi')
// mybus.emit('changeSelcted')
},
}
}
</script>
<style scoped lang="less">
#search-result-list-container {
#search-result-list-container {
width: 1088px;
padding: 0 20px;
background: #f3f5f9;
@ -1049,11 +1165,11 @@ export default {
margin-top: 10px;
align-items: center;
&>div {
& > div {
display: flex;
align-items: center;
&>div {
& > div {
margin: 0 10px;
}
}
@ -1080,9 +1196,9 @@ export default {
margin-top: 0;
}
}
}
}
.description {
.description {
max-width: 990px;
height: 52px;
font-size: 14px;
@ -1096,5 +1212,5 @@ export default {
/*超出显示为省略号*/
-webkit-box-orient: vertical;
word-break: break-all;
}
}
</style>

View File

@ -330,7 +330,6 @@
<a-input v-model:value="formState.name" style="width: 72%" />
</a-form-item>
</a-col>
<!-- v-bind="validateInfos.phone" -->
<a-col :span="8">
<a-form-item
name="phone"
@ -416,7 +415,6 @@
<span>{{ pagination.total || 0 }}</span>
</p>
<!-- <i class="boundary"></i> -->
<p>
已选
<span>{{ selectedRowKeys.length }}</span>
@ -425,7 +423,6 @@
</div>
<!-- 右侧 -->
<div class="contentRight">
<!-- 搜索@search="onSearch" -->
<div class="searchInput" v-if="isXiHaiAn">
<a-input-search
v-model:value="mapSearchParam.cameraName"
@ -490,10 +487,10 @@
@change="handleTableChange"
:row-selection="{
selectedRowKeys: selectedRowKeys,
// onChange: onSelectChange,
onSelect: onSelectChange,
onSelectAll: onSelectAll,
}"
:loading="loadingCamera"
>
<template #bodyCell="{ column, record }">
<template v-if="isXiHaiAn && column.dataIndex === 'status'">
@ -512,18 +509,6 @@
>
预览
</a>
<!-- <a
v-else
@click="
openPicture(
record.channelCode ||
record.channelId ||
record.channelCode.channelId
)
"
>
预览
</a> -->
</template>
</template>
</a-table>
@ -566,19 +551,19 @@
>
<template #footer></template>
<div style="width: 100%; display: flex; justify-content: center">
<div style="width: 100%; height: 100%; position: relative">
<div style="width: 100%; height: 100%; position: relative" v-show="isXiHaiAn">
<!-- 西海岸--预览视频--遮罩 todo-->
<div class="video-cover" @click="videoShowMsg" v-show="isXiHaiAn"></div>
<div class="waterMark waterMark-left-top" v-show="isXiHaiAn">
<div class="video-cover" @click="videoShowMsg"></div>
<div class="waterMark waterMark-left-top">
{{ userInfo.usernameShow }}
</div>
<div class="waterMark waterMark-right-top" v-show="isXiHaiAn">
<div class="waterMark waterMark-right-top">
{{ userInfo.realNameShow }}
</div>
<div class="waterMark waterMark-left-bottom" v-show="isXiHaiAn">
<div class="waterMark waterMark-left-bottom">
{{ userInfo.usernameShow }}
</div>
<div class="waterMark waterMark-right-bottom" v-show="isXiHaiAn">
<div class="waterMark waterMark-right-bottom">
{{ userInfo.realNameShow }}
</div>
<vue3VideoPlay v-bind="options" />
@ -684,6 +669,7 @@
:title="wrjName + '详情'"
@ok="wrjVisible = false"
>
<template #footer></template>
<div v-for="(db, key) in wrjData" :key="key">
<template v-if="typeof db == 'object'">
<div
@ -736,6 +722,7 @@
import { getCameraByCondition } from '@/api/file'
import {
sgcInsert,
xhaAddCart,
getRoomSearch,
getDate,
setSubmit,
@ -843,13 +830,6 @@
},
],
matter: [{ min: 1, max: 500, required: true, message: '可输入500字内容' }],
// phone: [
// {
// required: true,
// pattern: /^1[3|4|5|7|8|9][0-9]\d{8}$/,
// message: '',
// },
// ],
dept: [
{
required: true,
@ -948,7 +928,6 @@
dataSource.value = param.dataSource
pagination.value.total = param.total
// getCamera()
})
//
mybus.off('pointMarkerClick')
@ -1004,10 +983,6 @@
{
arr: [
{
// description:
// '便',
// resourceId: 'dbsb',
// type: '',
description: data.description,
resourceId: data.id,
resourceName: data.wrjName,
@ -1423,7 +1398,6 @@
}
selectType.value = '视频资源'
console.log('444------------>', 444);
} else if (name == '政务云资源') {
room.value = true
tableHeight.value = 600
@ -1444,14 +1418,6 @@
pagination.value.total = 0
selectType.value = '感知资源'
} else if (name == '城市云脑会客厅') {
// room.value = false
// wrjFlag.value = true
// showMap.value = false
// roomYuyue.value = true
// roomResult.value = false
// tabList.value[1] = []
// emits('add', 6)
// searchData()
}
clickList.value[indexFather].content.splice(
clickList.value[indexFather].content.indexOf(name),
@ -1491,12 +1457,10 @@
mapSearchParam.value.labelCodes.push(item.labelCode)
})
}
// todo
mapSearchParam.value.gpsX = ''
mapSearchParam.value.gpsY = ''
mapSearchParam.value.radius = ''
mapSearchParam.value.type = ''
console.log('mapSearchParam----->查询条件', mapSearchParam.value)
mapSearchParam.value.labelCodes = mapSearchParam.value.labelCodes + ''
emits('add', 1)
getCamera()
@ -1615,6 +1579,8 @@
clickList.value[1].content = []
}
clickList.value[indexFather].content[0] = name
console.log('clickList.value[indexFather].content[0]------------>', clickList.value[indexFather].content[0]);
if (tabList.value[1]) {
tabList.value[1].title = ''
tabList.value[1].content = []
@ -1717,7 +1683,6 @@
videoList.value.push(ob)
})
}
console.log('验证数据的准确性', videoList)
batchVisible.value = true
} else {
message.error('请选择需要预览的数据')
@ -1750,7 +1715,6 @@
videoList.value.push(ob)
})
}
console.log('验证数据的准确性', videoList)
batchPicVisible.value = true
} else {
message.error('请选择需要预览的数据')
@ -1778,8 +1742,6 @@
}
const videoClean = () => {
//
// selectedList.value = []
// selectedRowKeys.value = []
videoList.value = []
current.value = 1
}
@ -1787,11 +1749,8 @@
const changePage = (page) => {}
//
const dept = reactive({})
// eslint-disable-next-line no-undef
if (infrastructure) {
// eslint-disable-next-line no-undef
dept.deptId = infrastructure.deptId || ''
// eslint-disable-next-line no-undef
dept.deptName = infrastructure.deptName || ''
}
@ -1809,7 +1768,6 @@
}
const apply = async () => {
console.log('一键申请', selectedList.value)
if (selectedRowKeys.value.length != 0) {
//
let maxNumRes = await judegNumber()
@ -1831,6 +1789,7 @@
deptName: dept.deptName,
},
]
console.log('一键申请', arr)
localStorage.setItem('applyList', JSON.stringify(arr))
router.push({
path: '/apply',
@ -1851,30 +1810,27 @@
break
}
}
// //
// const addShopCar = () => {
// console.log('')
// }
const wrjFlag = ref(false)
// 西-loading
const loadingCamera = ref(false)
const getCamera = (flag, str) => {
console.log(
'mapSearchParam.value.cameraName------------>',
mapSearchParam.value.cameraName
)
loadingCamera.value = true;
if (flag) {
mapSearchParam.value.cameraName = str
console.log('赋值===============》', str, mapSearchParam.value)
}
console.log('初始化调用')
console.log('不选左侧树的时候不调用接口', mapSearchParam.value)
if (!whoShow1.value.itShowXiHaiAn) {
getCameraByParentId(mapSearchParam.value).then((res) => {
console.log('RRRRRRRRRR', res.data.data)
console.log('res--查询摄像头---------->', res);
loadingCamera.value = false;
dataSource.value = res.data.data
pagination.value.total = res.data.count
}).catch(err => {
loadingCamera.value = false;
message.error(err)
})
} else {
console.log('mapSearchParam------------>', mapSearchParam)
let params = {
regionId:
mapSearchParam.value.parentId || '70be8c5b664f4bcf869d82f2e8335051',
@ -1911,9 +1867,13 @@
}
}
getCameraByCondition(params).then((res) => {
console.log('res--查询摄像头---------->', res);
loadingCamera.value = false;
dataSource.value = res.data.data
pagination.value.total = res.data.count
console.log('根据parent查询摄像头', res.data.data)
}).catch(err => {
loadingCamera.value = false;
message.error(err)
})
}
}
@ -1931,9 +1891,7 @@
note1: [v],
})
})
console.log('_arr------------>', _arr);
sgcInsert(_arr).then((res) => {
console.log('res------申购车------>', res);
xhaAddCart(_arr).then((res) => {
if(res.data.code !== 0) {
return message.error(res.data.msg)
}
@ -2001,7 +1959,6 @@
align: 'center',
},
])
// const allClick = ref([])
const onSelectChange = (
record,
selected,
@ -2009,7 +1966,6 @@
nativeEvent,
type
) => {
console.log('hahhahah', record, selected, selectedRows, nativeEvent)
record = JSON.parse(JSON.stringify(record))
if (selected) {
if (selectedRowKeys.value.length == 1000) {
@ -2041,9 +1997,6 @@
if (selectedRowKeys.value.length > 1000) {
message.warning('最多只能添加1000个摄像头')
changeRows.map((val) => {
// selectedList.value = selectedList.value.filter(
// (item) => item.idtCameraChannel !== val.idtCameraChannel
// )
selectedList.value.forEach((ele, index) => {
if (ele.channelCode == record.channelCode) {
selectedList.value.splice(index, 1)

View File

@ -4,13 +4,20 @@
<home-header></home-header>
<detail-back></detail-back>
<!-- 头部基本信息 -->
<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>
@ -29,11 +36,16 @@
</div>
<div class="content" style="margin-left: 0.5rem">
<div class="content-item" v-for="(item, i) in painPoint" :key="i" style="
<div
class="content-item"
v-for="(item, i) in painPoint"
:key="i"
style="
margin-bottom: 0.2rem;
font-size: 0.18rem;
line-height: 0.3rem;
">
"
>
{{ i + 1 + '、' + item.description }}
</div>
</div>
@ -41,17 +53,26 @@
</div>
<!-- 解决方案 -->
<div id="integration-solution" class="solution scrollBox" style="background: #eee">
<div
id="integration-solution"
class="solution scrollBox"
style="background: #eee"
>
<div class="title-1">
<DetalsTitle title="解决方案" type="SOLUTION"></DetalsTitle>
</div>
<div class="flex-row-center">
<div class="content" style="background: #fff; margin-top: 0.2rem">
<div class="content-item" v-for="(item, i) in solution" :key="i" style="
<div
class="content-item"
v-for="(item, i) in solution"
:key="i"
style="
margin-bottom: 0.2rem;
font-size: 0.18rem;
line-height: 0.3rem;
">
"
>
{{ i + 1 + '、' + item.description }}
</div>
</div>
@ -63,20 +84,48 @@
<div class="title-1">
<DetalsTitle title="使用能力" type="ABILITY"></DetalsTitle>
</div>
<div class="flex-row-center combine-content" v-for="(item, i) in combineList" :key="i" style="display: block">
<div class="top" style="font-size: 0.24rem; text-align: center; margin-bottom: 0.3rem">
<div
class="flex-row-center combine-content"
v-for="(item, i) in combineList"
:key="i"
style="display: block"
>
<div
class="top"
style="font-size: 0.24rem; text-align: center; margin-bottom: 0.3rem"
>
{{ i == 0 ? '基础设施' : i == 1 ? '组件服务' : '数据资源' }}
</div>
<div class="bottom" style="display: flex; align-items: flex-start">
<div class="title" :class="'title' + i"></div>
<div class="table-box">
<el-table class="table" :data="item.list" stripe :header-cell-style="{ 'text-align': 'center' }">
<el-table-column prop="name" label="数据" align="center" width="200" show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="dept" label="能力来源" align="center" width="300" show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="platform" label="申请平台" align="center" width="100" show-overflow-tooltip="true">
</el-table-column>
<el-table
class="table"
:data="item.list"
stripe
:header-cell-style="{ 'text-align': 'center' }"
>
<el-table-column
prop="name"
label="数据"
align="center"
width="200"
show-overflow-tooltip="true"
></el-table-column>
<el-table-column
prop="dept"
label="能力来源"
align="center"
width="300"
show-overflow-tooltip="true"
></el-table-column>
<el-table-column
prop="platform"
label="申请平台"
align="center"
width="100"
show-overflow-tooltip="true"
></el-table-column>
</el-table>
</div>
</div>
@ -90,7 +139,12 @@
</div>
<div class="flex-row-center step-content">
<el-steps direction="vertical" :space="150" :active="step.length">
<el-step v-for="(item, i) in step" :key="i" :title="item.question" :description="item.answer"></el-step>
<el-step
v-for="(item, i) in step"
:key="i"
:title="item.question"
:description="item.answer"
></el-step>
</el-steps>
</div>
</div>
@ -99,38 +153,38 @@
</template>
<script setup>
import ApplicationTopDetails from './components/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 HomeHeader from '@/views/home/components/header'
import detailBack from '@/views/home/detailBack.vue'
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 painPoint = ref([])
const solution = ref([])
const step = ref([])
const bgImg = 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) => {
import ApplicationTopDetails from './components/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 HomeHeader from '@/views/home/components/header'
import detailBack from '@/views/home/detailBack.vue'
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 painPoint = ref([])
const solution = ref([])
const step = ref([])
const bgImg = 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([
const navList = ref([
{
name: '场景痛点',
key: 'integration-pain-point',
@ -147,11 +201,11 @@ const navList = ref([
name: '构建步骤',
key: 'integration-step',
},
])
])
const selectNow = ref('integration-pain-point')
const selectNow = ref('integration-pain-point')
const useWayShowList = ref([
const useWayShowList = ref([
{
title: '归属部门',
info: {
@ -166,9 +220,9 @@ const useWayShowList = ref([
providerMobile: '联系人电话',
},
},
])
])
const combineList = ref([
const combineList = ref([
{
title: '基础设施',
list: [],
@ -181,10 +235,10 @@ const combineList = ref([
title: '数据资源',
list: [],
},
])
const detailInfoObj = ref({})
])
const detailInfoObj = ref({})
onMounted(() => {
onMounted(() => {
window.addEventListener('scroll', () => {
domArr.value = document.querySelectorAll('.scrollBox')
scrollTop.value =
@ -208,23 +262,21 @@ onMounted(() => {
}
}
})
})
})
const selectNav = (key) => {
const selectNav = (key) => {
selectNow.value = key
mybus.emit('flyToView', selectNow.value)
}
}
const getAttrValue = (fuseAttrList, data, text) => {
let _obj = fuseAttrList.find((v) => v.attrType === text) || {};
data =
JSON.parse(
_obj.attrValue || '[]'
) || []
}
const getAttrValue = (fuseAttrList, text) => {
let _obj = fuseAttrList.find((v) => v.attrType === text) || {}
let data = JSON.parse(_obj.attrValue || '[]') || []
return data
}
// --
const getIntegrationServicesDeatil = (id) => {
// --
const getIntegrationServicesDeatil = (id) => {
getIntegrationDetail(id).then(
(res) => {
if (res.data.code !== 0) {
@ -241,9 +293,9 @@ const getIntegrationServicesDeatil = (id) => {
attrType: '常见问题',
attrValue: questionValue.attrValue || '[]',
}
getAttrValue(fuseAttrList, painPoint.value, '场景痛点');
getAttrValue(fuseAttrList, solution.value, '解决方案');
getAttrValue(fuseAttrList, step.value, '使用步骤');
painPoint.value = getAttrValue(fuseAttrList, '场景痛点')
solution.value = getAttrValue(fuseAttrList, '解决方案')
step.value = getAttrValue(fuseAttrList, '使用步骤')
bgImg.value =
fuseAttrList.find((v) => v.attrType === '服务图片').attrValue || ''
let areaObj = {
@ -310,10 +362,10 @@ const getIntegrationServicesDeatil = (id) => {
message.error(err)
}
)
}
getIntegrationServicesDeatil(id)
}
getIntegrationServicesDeatil(id)
function handleOpenUrl(type) {
function handleOpenUrl(type) {
let obj =
(detailInfoObj.value.fuseAttrList || []).find(
(v) => v.attrType == type
@ -327,36 +379,36 @@ function handleOpenUrl(type) {
'hisense_office/onlinePreview?url=' +
btoa(encodeURI(url))
)
}
}
onBeforeUnmount(() => {
onBeforeUnmount(() => {
mybus.off('flyToView')
})
})
</script>
<style lang="less" scoped>
.flex-row-between {
.flex-row-between {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
}
.flex-row-start {
.flex-row-start {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
}
}
.flex-row-center {
.flex-row-center {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
}
.IntegrationServicesDetails {
.IntegrationServicesDetails {
.fixed {
position: fixed !important;
z-index: 2000;
@ -364,7 +416,7 @@ onBeforeUnmount(() => {
left: 0;
}
.fixed2>div:nth-of-type(3) {
.fixed2 > div:nth-of-type(3) {
margin-top: 0.84rem;
}
@ -402,9 +454,9 @@ onBeforeUnmount(() => {
}
}
}
}
}
.use-way {
.use-way {
padding: 0.8rem 0;
display: flex;
flex-direction: column;
@ -447,9 +499,11 @@ onBeforeUnmount(() => {
height: 1.5rem;
width: 6.2rem;
border-radius: 0.2rem;
background: linear-gradient(to right,
background: linear-gradient(
to right,
rgba(113, 132, 252, 0.4),
rgba(148, 163, 252, 0.4));
rgba(148, 163, 252, 0.4)
);
padding: 0 0.3rem;
display: flex;
justify-content: center;
@ -480,9 +534,9 @@ onBeforeUnmount(() => {
}
}
}
}
}
.pain-point {
.pain-point {
padding: 0.8rem 0;
background: rgb(247, 248, 250);
@ -512,9 +566,9 @@ onBeforeUnmount(() => {
margin: 0rem 0rem 0.1rem 0.1rem;
}
}
}
}
.solution {
.solution {
padding: 0.8rem 0;
background: rgb(247, 248, 250);
@ -526,9 +580,9 @@ onBeforeUnmount(() => {
margin: 0.3rem;
}
}
}
}
.step {
.step {
padding: 0.8rem 0;
background: rgb(247, 248, 250);
@ -551,9 +605,9 @@ onBeforeUnmount(() => {
font-size: 14px;
}
}
}
}
.ability {
.ability {
padding: 0.8rem 0;
background: rgb(247, 248, 250);
@ -636,5 +690,5 @@ onBeforeUnmount(() => {
width: 50%;
box-sizing: border-box;
}
}
}
</style>

View File

@ -8,65 +8,40 @@
<div class="bottom">
<div class="item">
<div class="zj">组件服务</div>
<div
class="name"
v-for="(item, index) in zjList.slice(0, 5)"
:key="item.name"
:class="index == 4 ? 'name-last' : ''"
@click="selectOne1(item.name)"
>
<div class="name" v-for="(item, index) in zjList.slice(0, 5)" :key="item.name"
:class="index == 4 ? 'name-last' : ''" @click="selectOne1(item.name)">
{{ item.name + '-' + item.num + '项' }}
</div>
<div class="btn" @click="jumpPage('组件服务')">查看更多</div>
</div>
<div class="item">
<div class="yy">应用资源</div>
<div
class="name"
v-for="(item, index) in yyList.slice(0, 5)"
:key="item.name"
:class="index == 4 ? 'name-last' : ''"
@click="selectOne11(item.name)"
>
<div class="name" v-for="(item, index) in yyList.slice(0, 5)" :key="item.name"
:class="index == 4 ? 'name-last' : ''" @click="selectOne11(item.name)">
{{ item.name + '-' + item.num + '项' }}
</div>
<div class="btn" @click="jumpPage('应用资源')">查看更多</div>
</div>
<div class="item">
<div class="jc">基础设施</div>
<div
class="name"
v-for="(item, index) in jcList.slice(0, 5)"
:key="item.name"
:class="index == 2 ? 'name-last' : ''"
@click="selectOne2(item.name)"
>
<div class="name" v-for="(item, index) in jcList.slice(0, 5)" :key="item.name"
:class="index == 2 ? 'name-last' : ''" @click="selectOne2(item.name)">
{{ item.name + '-' + item.num + '项' }}
</div>
<div class="btn" @click="jumpPage('基础设施')">查看更多</div>
</div>
<div class="item">
<div class="sj">数据资源</div>
<div
class="name"
v-for="(item, index) in sjList"
:key="item.id"
:class="index == 4 ? 'name-last' : ''"
@click="selectOne3(item.name)"
>
<div class="name" v-for="(item, index) in sjList" :key="item.id" :class="index == 4 ? 'name-last' : ''"
@click="selectOne3(item.name)">
{{ index + 1 }}-{{ item.name }}
</div>
<div class="btn" @click="jumpPage('数据资源')">查看更多</div>
</div>
<div class="item">
<div class="zs">知识库</div>
<div
class="name"
v-for="(item, index) in zsList"
:key="item.id"
:class="index == 4 ? 'name-last' : ''"
@click="openHref(item)"
>
<div class="name" v-for="(item, index) in zsList" :key="item.id" :class="index == 4 ? 'name-last' : ''"
@click="openHref(item)">
{{ index + 1 }}-{{ item.name }}
</div>
<div class="btn" @click="jumpPage('知识库')">查看更多</div>
@ -76,29 +51,29 @@
</div>
</template>
<script setup>
import {
import {
pageWithAttrs,
getDataResource,
selectInfrastructureList,
selectCollectComponentList,
selectCollectResourceList
} from '@/api/home.js'
import { ref, reactive } from 'vue'
import { useRouter } from 'vue-router'
import { useStore } from 'vuex'
import { updateVisits, browsingInsert, getSoldierList } from '@/api/home'
import { message, Upload } from 'ant-design-vue'
import mybus from '@/myplugins/mybus'
const store = useStore()
const router = useRouter()
const zjList = ref([])
const jcList = ref([])
const sjList = ref([])
const yyList = ref([])
//
const zsList = ref([])
// const jcList = ref([])
const paramsGetResources = {
} from '@/api/home.js'
import { ref, reactive } from 'vue'
import { useRouter } from 'vue-router'
import { useStore } from 'vuex'
import { updateVisits, browsingInsert, getSoldierList } from '@/api/home'
import { message, Upload } from 'ant-design-vue'
import mybus from '@/myplugins/mybus'
const store = useStore()
const router = useRouter()
const zjList = ref([])
const jcList = ref([])
const sjList = ref([])
const yyList = ref([])
//
const zsList = ref([])
// const jcList = ref([])
const paramsGetResources = {
districtId: '',
pageNum: 1,
pageSize: 5,
@ -107,19 +82,19 @@
infoList: [],
orderField: 'total', // total visits 访 applyCount score collectCount
orderType: 'DESC', // ASC DESC
}
console.log('dataShowdev==========================>', whoShow)
// eslint-disable-next-line no-undef
const whoShow1 = ref(whoShow)
const interfaceSuccess = ref(0)
const object = reactive({
}
console.log('dataShowdev==========================>', whoShow)
// eslint-disable-next-line no-undef
const whoShow1 = ref(whoShow)
const interfaceSuccess = ref(0)
const object = reactive({
yyNum: '',
zjNum: '',
jcNum: '',
sjNum: '',
zsNum: '',
})
const getAppResources = (type, obj) => {
})
const getAppResources = (type, obj) => {
paramsGetResources.type = type
if (type === '数据资源' && !whoShow1.value.itShowBaoTou) {
getDataResource({
@ -162,7 +137,7 @@
if (type == '基础设施') {
jcList.value = []
selectInfrastructureList().then((res) => {
console.log('基础设施==========>', res.data.data)
console.log('基础设施------res------>', res);
for (const key in res.data.data) {
if (whoShow1.value.itShowXiHaiAn) {
if (key === '视频资源') {
@ -208,41 +183,27 @@
else if (type == '组件服务') {
zjList.value = []
selectCollectComponentList().then((res) => {
console.log('组件服务----res-------->', res);
for (const key in res.data.data) {
if (whoShow1.value.itShowXiHaiAn) {
if (key === '视频资源') {
console.log('key------------>', key);
zjList.value.push({
name: key,
num: res.data.data[key],
})
}
} else {
zjList.value.push({
name: key,
num: res.data.data[key],
})
}
}
console.log('zjList------------>', zjList);
})
}
else if (type == '应用资源') {
yyList.value = []
selectCollectResourceList().then((res) => {
console.log('应用资源---res--------->', res);
for (const key in res.data.data) {
if (whoShow1.value.itShowXiHaiAn) {
if (key === '视频资源') {
yyList.value.push({
name: key,
num: res.data.data[key],
})
}
} else {
yyList.value.push({
name: key,
num: res.data.data[key],
})
}
}
})
}
else {
@ -266,10 +227,10 @@
})
}
}
}
}
// todo
const getSoldierData = (name) => {
// todo
const getSoldierData = (name) => {
let _params = {
type: name,
page: 1,
@ -288,9 +249,9 @@
reject(err)
})
})
}
}
const openHref = (item) => {
const openHref = (item) => {
console.log(item.id, 'wowowo')
console.log(item.visits, 'wowowo')
browsingInsert({ resourceId: item.id }).then((res) => {
@ -308,27 +269,17 @@
})
}
window.open(item.link)
// window.open(
// window.SITE_CONFIG.previewUrl +
// 'hisense_office/onlinePreview?url=' +
// btoa(encodeURI(item.fileHref))
// )
}
const assignmentMethod = (type, res) => {
}
const assignmentMethod = (type, res) => {
object[type] = res.data.data.total
// interfaceSuccess.value++
// console.log('object======>', object, interfaceSuccess.value, type)
// if (interfaceSuccess.value >= 4) {
// mybus.emit('chagneNum', object)
// }
}
getAppResources('组件服务', zjList)
getAppResources('应用资源', yyList)
getAppResources('基础设施', jcList)
getAppResources('数据资源', sjList)
getAppResources('知识库', zsList)
}
getAppResources('组件服务', zjList)
getAppResources('应用资源', yyList)
getAppResources('基础设施', jcList)
getAppResources('数据资源', sjList)
getAppResources('知识库', zsList)
function jumpPage(type) {
function jumpPage(type) {
// store
store.commit('home/selectCardsData', {
selectCardsnum: type,
@ -344,8 +295,8 @@
select: type,
},
})
}
const selectOne = (id) => {
}
const selectOne = (id) => {
console.log('点击===============》', id)
router.push({
path: '/details',
@ -353,8 +304,8 @@
id: id,
},
})
}
const selectOne1 = (name) => {
}
const selectOne1 = (name) => {
router.push({
path: '/DetailsPageconetent',
query: {
@ -362,8 +313,8 @@
select: '组件服务',
},
})
}
const selectOne11 = (name) => {
}
const selectOne11 = (name) => {
router.push({
path: '/DetailsPageconetent',
query: {
@ -371,8 +322,8 @@
select: '应用资源',
},
})
}
const selectOne2 = (name) => {
}
const selectOne2 = (name) => {
console.log('点击===============》', name)
router.push({
path: '/DetailsPageconetent',
@ -381,8 +332,8 @@
select: '基础设施',
},
})
}
const selectOne3 = (name) => {
}
const selectOne3 = (name) => {
console.log('点击===============》', name)
router.push({
path: '/DetailsPageconetent',
@ -391,10 +342,10 @@
select: '数据资源',
},
})
}
}
</script>
<style lang="less" scoped>
.capability-convergence {
.capability-convergence {
height: 7.2rem;
background: url('~@/assets/newHome/Convergence-bg.png') no-repeat;
background-size: 100%;
@ -519,5 +470,5 @@
}
}
}
}
}
</style>

View File

@ -7,7 +7,7 @@
<div class="name">组件服务</div>
<div class="sl">
<span class="num">{{ zjNum || 0 }}</span>
</div>
</div>
</a-tooltip>
@ -18,7 +18,7 @@
<div class="name">应用资源</div>
<div class="sl">
<span class="num">{{ yyNum || 0 }}</span>
</div>
</div>
</a-tooltip>
@ -29,7 +29,7 @@
<div class="name">基础设施</div>
<div class="sl">
<span class="num">{{ jcNum || 0 }}</span>
</div>
</div>
</a-tooltip>
@ -51,7 +51,7 @@
<div class="name">知识库</div>
<div class="sl">
<span class="num">{{ zsNum || 0 }}</span>
</div>
</div>
</a-tooltip>

View File

@ -32,9 +32,9 @@
<div class="img" :class="item.imgType"></div>
</div>
<div class="item-right">
<div class="fw" v-if="select == '浏览量'">
<!-- <div class="fw" v-if="select == '浏览量'">
{{ select }}:{{ item.visits }}
</div>
</div> -->
<div class="fw" v-if="select == '申请量'">
{{ select }}:{{ item.applyCount }}
</div>
@ -139,7 +139,7 @@
path: '/DetailsPageconetent',
query: {
// select: '',
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
},
})
}

View File

@ -65,7 +65,7 @@
<a-popconfirm v-if="!item.ended" title="是否终止此流程?" ok-text="" cancel-text=""
@confirm="endThis(item.instanceId)" @cancel="cancel">
<a-button type="primary" danger style="margin-left: 10px">
流程终止
撤回申请
</a-button>
</a-popconfirm>
</div>
@ -271,10 +271,10 @@ console.log(props.refObj, '=====================================')
const endThis = (instanceId) => {
endProcess({ instanceId: instanceId }).then((res) => {
if (res.data.code == 0) {
message.success('流程终止成功!')
message.success('撤回申请成功!')
mybus.emit('closeModal', { type: '能力申请', index: 0 })
} else {
message.warning('流程终止失败!')
message.warning('撤回申请失败!')
}
})
}

View File

@ -643,7 +643,7 @@ const delList = () => {
}
//ceshiFunction
const ceshiFunction = () => {
debugger
// debugger
if (checkedListAbility.value.length == 0) {
message.warning('请先选择需要操作的数据!')
}
@ -660,7 +660,7 @@ const handleDelete = (item, index) => {
if (checkedListAbility.value.length == 0) {
return message.warning('请先选择需要操作的数据!')
} else {
delArr = checkedListAbility.value
delArr = checkedListAbility.value.map(v=>v.id)
}
}
sgcDel({

View File

@ -19,7 +19,7 @@
@confirm="endThis"
@cancel="cancel"
>
<a-button type="primary" danger>流程终止</a-button>
<a-button type="primary" danger>撤回申请</a-button>
</a-popconfirm>
<div v-else></div>
</div>
@ -54,10 +54,10 @@
const endThis = () => {
endProcess({ instanceId: props.refObj.processInstanceId }).then((res) => {
if (res.data.code == 0) {
message.success('流程终止成功!')
message.success('撤回申请成功!')
mybus.emit('closeModal', { type: '能力上架', index: 2 })
} else {
message.warning('流程终止失败!')
message.warning('撤回申请失败!')
}
})
}