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

This commit is contained in:
gongjiale 2023-01-06 17:13:51 +08:00
commit d076843d59
21 changed files with 1486 additions and 994 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -88,9 +88,8 @@
</el-form> </el-form>
</div> </div>
<template slot="footer"> <template slot="footer">
<el-button type="primary" @click="dataFormSubmitHandle()">提交</el-button>
<el-button @click="closeModal">{{ $t("cancel") }}</el-button> <el-button @click="closeModal">{{ $t("cancel") }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">提交</el-button>
</template> </template>
</el-dialog> </el-dialog>
</div> </div>

View File

@ -3,7 +3,6 @@
<el-dialog custom-class="customClass" :visible.sync="areaVisibleCopy" :title="modalTypeText[modalType]" <el-dialog custom-class="customClass" :visible.sync="areaVisibleCopy" :title="modalTypeText[modalType]"
@close="closeModal" :close-on-click-modal="false" :close-on-press-escape="false"> @close="closeModal" :close-on-click-modal="false" :close-on-press-escape="false">
<!-- 挂载和修改 --> <!-- 挂载和修改 -->
<div class="right"> <div class="right">
<el-form :model="dataForm" :rules="rules" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" <el-form :model="dataForm" :rules="rules" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()"
@ -52,12 +51,11 @@
</div> </div>
</div> </div>
</el-form> </el-form>
</div> </div>
<template slot="footer"> <template slot="footer">
<el-button type="primary" @click="dataFormSubmitHandle()">提交</el-button>
<el-button @click="closeModal">{{ $t("cancel") }}</el-button> <el-button @click="closeModal">{{ $t("cancel") }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">提交</el-button>
</template> </template>
</el-dialog> </el-dialog>
@ -83,14 +81,14 @@ export default {
watch: { watch: {
dataForm: { dataForm: {
handler(newVal) { handler (newVal) {
this.dataForm = newVal this.dataForm = newVal
}, },
deep: true, deep: true,
immediate: true immediate: true
}, },
areaVisible: { areaVisible: {
handler(newVal) { handler (newVal) {
this.getSceneArea() this.getSceneArea()
this.getArea() this.getArea()
this.areaVisibleCopy = newVal this.areaVisibleCopy = newVal
@ -112,25 +110,25 @@ export default {
} }
}, },
data() { data () {
return { return {
areas:[],// areas: [], //
sceneAreas:[], sceneAreas: [],
fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload', fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload',
dataForm: { dataForm: {
district: 1,//01 district: 1, // 01
area: '',// area: '', //
infrastructureCount: null, infrastructureCount: null,
dataSourceCount: null, dataSourceCount: null,
componentCount: null, componentCount: null,
name: '', name: '',
applicationArea: '',// applicationArea: '', //
description: '', description: '',
sceneUrl: '', sceneUrl: '',
fuseAttrList: [ fuseAttrList: [
{ {
attrType: '构建步骤', attrType: '构建步骤',
attrValue: [{ question: '', answer: [{ 'answer': '' }, { 'answer': '' }] }] attrValue: [{ question: '', answer: [{ answer: '' }, { answer: '' }] }]
}, },
{ {
attrType: '基础设施', attrType: '基础设施',
@ -156,7 +154,7 @@ export default {
attrType: '服务图片', attrType: '服务图片',
attrValue: '' attrValue: ''
} }
], ]
}, },
rules: { rules: {
@ -186,7 +184,7 @@ export default {
abilityListObj: {}, abilityListObj: {},
imgData: [], imgData: [],
// //
handleExceed() { handleExceed () {
this.$message({ type: 'error', message: '最多支持一张图片上传' }) this.$message({ type: 'error', message: '最多支持一张图片上传' })
}, },
imageUrl: '' imageUrl: ''
@ -194,8 +192,8 @@ export default {
}, },
methods: { methods: {
// //
getArea(){ getArea () {
const params = { const params = {
pid: '250000' pid: '250000'
} }
@ -207,8 +205,8 @@ export default {
this.areas = res.data.data this.areas = res.data.data
}) })
}, },
// //
getSceneArea() { getSceneArea () {
const params = { const params = {
topCategoryName: '应用资源' topCategoryName: '应用资源'
} }
@ -221,18 +219,16 @@ export default {
}) })
}, },
clearForm() { clearForm () {
this.$refs.dataForm && this.$refs.dataForm.resetFields() this.$refs.dataForm && this.$refs.dataForm.resetFields()
}, },
closeModal() { closeModal () {
this.$emit('closeModal') this.$emit('closeModal')
}, },
// //
dataFormSubmitHandle: debounce( dataFormSubmitHandle: debounce(
function () { function () {
this.$refs.dataForm.validate((valid) => { this.$refs.dataForm.validate((valid) => {
if (!valid) { if (!valid) {
this.$message.error('请检查表单是否填写完整') this.$message.error('请检查表单是否填写完整')
@ -253,10 +249,9 @@ export default {
}) })
this.dataForm.fuseAttrList.forEach(item => { this.dataForm.fuseAttrList.forEach(item => {
if(item.attrType!=='服务图片'){ if (item.attrType !== '服务图片') {
item.attrValue = JSON.stringify(item.attrValue); item.attrValue = JSON.stringify(item.attrValue)
} }
}) })
this.$http this.$http
[methodsObj[this.modalType]]('/fuse', _obj) [methodsObj[this.modalType]]('/fuse', _obj)
@ -284,16 +279,16 @@ export default {
{ leading: true, trailing: false } { leading: true, trailing: false }
), ),
// //
getDetail(data) { getDetail (data) {
this.dataForm = data this.dataForm = data
}, },
handleAvatarSuccess(res, file) { handleAvatarSuccess (res, file) {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.imageUrl = res.data this.imageUrl = res.data
}, },
beforeAvatarUpload(file) { beforeAvatarUpload (file) {
const isImage = const isImage =
file.type === 'image/jpeg' || file.type === 'image/jpeg' ||
file.type === 'image/jpg' || file.type === 'image/jpg' ||
@ -303,11 +298,11 @@ export default {
} }
return isImage return isImage
}, },
addUploadRemoveFile(file, fileList) { addUploadRemoveFile (file, fileList) {
this.$refs.addUpload.clearFiles() this.$refs.addUpload.clearFiles()
this.imageUrl = '' this.imageUrl = ''
}, },
editBeforeAvatarUpload(file) { editBeforeAvatarUpload (file) {
const isImage = const isImage =
file.type === 'image/jpeg' || file.type === 'image/jpeg' ||
file.type === 'image/jpg' || file.type === 'image/jpg' ||
@ -318,22 +313,21 @@ export default {
} }
return isImage return isImage
}, },
editUploadRemoveFile(file, fileList) { editUploadRemoveFile (file, fileList) {
this.$refs.editUpload.clearFiles() this.$refs.editUpload.clearFiles()
this.imageUrl = '' this.imageUrl = ''
}, },
eidtHandleAvatarSuccess(res, file) { eidtHandleAvatarSuccess (res, file) {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.imageUrl = res.data this.imageUrl = res.data
} }
}, },
mounted() { mounted () {
}, },
beforeDestroy() { beforeDestroy () {
this.clearForm() this.clearForm()
} }
} }
</script> </script>
@ -368,14 +362,11 @@ export default {
background-position-y: 22px; background-position-y: 22px;
} }
.right { .right {
width: 770px; width: 770px;
margin-left: 100px; margin-left: 100px;
margin-top: 24px; margin-top: 24px;
.info-inner { .info-inner {
margin-left: 10px; margin-left: 10px;
@ -392,7 +383,6 @@ export default {
border-radius: 2px; border-radius: 2px;
} }
.baseTitle { .baseTitle {
@ -404,7 +394,6 @@ export default {
background: url("~@/assets/img/biaoti.png") no-repeat; background: url("~@/assets/img/biaoti.png") no-repeat;
background-position-y: 2px; background-position-y: 2px;
} }
.baseInner { .baseInner {
@ -438,7 +427,6 @@ export default {
height: 580px; height: 580px;
overflow: auto; overflow: auto;
} }
.icon-input ::v-deep .el-input__inner { .icon-input ::v-deep .el-input__inner {
@ -558,4 +546,3 @@ export default {
display: block; display: block;
} }
</style> </style>

View File

@ -22,7 +22,6 @@
</div> </div>
</div> </div>
<!-- 挂载和修改 --> <!-- 挂载和修改 -->
<div class="right"> <div class="right">
<el-form :model="dataForm" :rules="rules" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" <el-form :model="dataForm" :rules="rules" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()"
@ -140,8 +139,8 @@
</el-form> </el-form>
</div> </div>
<template slot="footer"> <template slot="footer">
<el-button type="primary" @click="dataFormSubmitHandle()">提交</el-button>
<el-button @click="closeModal">{{ $t("cancel") }}</el-button> <el-button @click="closeModal">{{ $t("cancel") }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">提交</el-button>
</template> </template>
</el-dialog> </el-dialog>
@ -160,7 +159,6 @@ import InfrastructureModal from './components/infrastructure-modal.vue'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import upload from '@/views/modules/components/upload' import upload from '@/views/modules/components/upload'
export const getDescJson = (text) => { export const getDescJson = (text) => {
return { return {
descObj: { descObj: {
@ -189,14 +187,14 @@ export default {
watch: { watch: {
dataForm: { dataForm: {
handler(newVal) { handler (newVal) {
this.dataForm = newVal this.dataForm = newVal
}, },
deep: true, deep: true,
immediate: true immediate: true
}, },
cityVisible: { cityVisible: {
handler(newVal) { handler (newVal) {
this.getSceneArea() this.getSceneArea()
this.cityVisibleCopy = newVal this.cityVisibleCopy = newVal
if (this.modalType == 'add' && newVal) { if (this.modalType == 'add' && newVal) {
@ -218,42 +216,42 @@ export default {
} }
}, },
data() { data () {
return { return {
domArr: [], domArr: [],
scrollTop: 0, scrollTop: 0,
selectNow: '', selectNow: '',
activeStepIndex: 0,// activeStepIndex: 0, //
activeStepIndexs: 0, activeStepIndexs: 0,
baseTypeList: [{ value: '视频资源', label: '视频资源' }, { value: '云资源', label: '云资源' }, { value: '其他', label: '其他' }], baseTypeList: [{ value: '视频资源', label: '视频资源' }, { value: '云资源', label: '云资源' }, { value: '其他', label: '其他' }],
componetTypeList: [{ value: '智能算法', label: '智能算法' }, { value: ' 图层服务', label: ' 图层服务' }, componetTypeList: [{ value: '智能算法', label: '智能算法' }, { value: ' 图层服务', label: ' 图层服务' },
{ value: '开发组件', label: '开发组件' }, { value: '业务组件', label: '业务组件' }], { value: '开发组件', label: '开发组件' }, { value: '业务组件', label: '业务组件' }],
dataTypeList: [{ value: '数据', label: '数据' }], dataTypeList: [{ value: '数据', label: '数据' }],
sceneAreas: [],// sceneAreas: [], //
steps: [{ 'name': '基本信息', 'id': "anchor1" }, steps: [{ name: '基本信息', id: 'anchor1' },
{ 'name': '场景痛点', 'id': "anchor2" }, { name: '场景痛点', id: 'anchor2' },
{ 'name': '解决方案', 'id': "anchor3" }, { name: '解决方案', id: 'anchor3' },
{ 'name': '使用能力', 'id': "anchor4" }, { name: '使用能力', id: 'anchor4' },
{ 'name': '构建步骤', 'id': "anchor5" }], { name: '构建步骤', id: 'anchor5' }],
fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload', fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload',
painKeyTextObj: getDescJson('痛点'), painKeyTextObj: getDescJson('痛点'),
solutionKeyTextObj: getDescJson('方案'), solutionKeyTextObj: getDescJson('方案'),
dataForm: { dataForm: {
district: 0,// district: 0, //
area: '',// area: '', //
infrastructureCount: null, infrastructureCount: null,
dataSourceCount: null, dataSourceCount: null,
componentCount: null, componentCount: null,
name: '', name: '',
applicationArea: '',// applicationArea: '', //
description: '', description: '',
sceneUrl: '', sceneUrl: '',
fuseAttrList: [ fuseAttrList: [
{ {
attrType: '构建步骤', attrType: '构建步骤',
attrValue: [{ question: '', answer: [{ 'answer': '' }, { 'answer': '' }] }] attrValue: [{ question: '', answer: [{ answer: '' }, { answer: '' }] }]
}, },
{ {
attrType: '基础设施', attrType: '基础设施',
@ -279,7 +277,7 @@ export default {
attrType: '服务图片', attrType: '服务图片',
attrValue: '' attrValue: ''
} }
], ]
}, },
rules: { rules: {
@ -318,7 +316,7 @@ export default {
abilityListObj: {}, abilityListObj: {},
imgData: [], imgData: [],
// //
handleExceed() { handleExceed () {
this.$message({ type: 'error', message: '最多支持一张图片上传' }) this.$message({ type: 'error', message: '最多支持一张图片上传' })
}, },
imageUrl: '' imageUrl: ''
@ -327,16 +325,14 @@ export default {
methods: { methods: {
handleStep (item, index) {
handleStep(item, index) {
this.activeStepIndex = index this.activeStepIndex = index
this.selectNow = item.id // this.selectNow = item.id //
let top = document.querySelector('#' + item.id).offsetTop - 100 const top = document.querySelector('#' + item.id).offsetTop - 100
document.querySelectorAll(".customClass .el-dialog__body")[0].scrollTop = top document.querySelectorAll('.customClass .el-dialog__body')[0].scrollTop = top
}, },
// //
getSceneArea() { getSceneArea () {
const params = { const params = {
topCategoryName: '应用资源' topCategoryName: '应用资源'
} }
@ -349,23 +345,22 @@ export default {
}) })
}, },
clearForm() { clearForm () {
this.$refs.dataForm && this.$refs.dataForm.resetFields() this.$refs.dataForm && this.$refs.dataForm.resetFields()
}, },
closeModal() { closeModal () {
this.$emit('closeModal') this.$emit('closeModal')
}, },
// //
updateDataForm(data) { updateDataForm (data) {
this.dataForm.fuseAttrList.map(v => { this.dataForm.fuseAttrList.map(v => {
if (v.attrType === data.title) { if (v.attrType === data.title) {
v.attrValue = data.list v.attrValue = data.list
} }
}) })
}, },
// //
updateCount(data) { updateCount (data) {
if (data.title === '基础设施') { if (data.title === '基础设施') {
this.dataForm.infrastructureCount = data.count this.dataForm.infrastructureCount = data.count
} }
@ -375,13 +370,11 @@ export default {
if (data.title === '数据资源') { if (data.title === '数据资源') {
this.dataForm.dataSourceCount = data.count this.dataForm.dataSourceCount = data.count
} }
}, },
// //
dataFormSubmitHandle: debounce( dataFormSubmitHandle: debounce(
function () { function () {
this.$refs.dataForm.validate((valid) => { this.$refs.dataForm.validate((valid) => {
if (!valid) { if (!valid) {
this.$message.error('请检查表单是否填写完整') this.$message.error('请检查表单是否填写完整')
@ -401,10 +394,9 @@ export default {
type: '赋能场景' type: '赋能场景'
}) })
this.dataForm.fuseAttrList.forEach(item => { this.dataForm.fuseAttrList.forEach(item => {
if(item.attrType!=='服务图片'){ if (item.attrType !== '服务图片') {
item.attrValue = JSON.stringify(item.attrValue); item.attrValue = JSON.stringify(item.attrValue)
} }
}) })
this.$http this.$http
[methodsObj[this.modalType]]('/fuse', _obj) [methodsObj[this.modalType]]('/fuse', _obj)
@ -432,7 +424,7 @@ export default {
{ leading: true, trailing: false } { leading: true, trailing: false }
), ),
// //
getDetail(data) { getDetail (data) {
this.dataForm = data this.dataForm = data
this.$nextTick(() => { this.$nextTick(() => {
for (const key in this.refsParseArray) { for (const key in this.refsParseArray) {
@ -440,19 +432,15 @@ export default {
} }
const _imgObj = data.fuseAttrList.find(v => v.attrType == '服务图片') || {} const _imgObj = data.fuseAttrList.find(v => v.attrType == '服务图片') || {}
this.imageUrl = _imgObj.attrValue this.imageUrl = _imgObj.attrValue
}) })
}, },
handleAvatarSuccess(res, file) { handleAvatarSuccess (res, file) {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.imageUrl = res.data this.imageUrl = res.data
}, },
beforeAvatarUpload(file) { beforeAvatarUpload (file) {
const isImage = const isImage =
file.type === 'image/jpeg' || file.type === 'image/jpeg' ||
file.type === 'image/jpg' || file.type === 'image/jpg' ||
@ -462,11 +450,11 @@ export default {
} }
return isImage return isImage
}, },
addUploadRemoveFile(file, fileList) { addUploadRemoveFile (file, fileList) {
this.$refs.addUpload.clearFiles() this.$refs.addUpload.clearFiles()
this.imageUrl = '' this.imageUrl = ''
}, },
editBeforeAvatarUpload(file) { editBeforeAvatarUpload (file) {
const isImage = const isImage =
file.type === 'image/jpeg' || file.type === 'image/jpeg' ||
file.type === 'image/jpg' || file.type === 'image/jpg' ||
@ -477,54 +465,45 @@ export default {
} }
return isImage return isImage
}, },
editUploadRemoveFile(file, fileList) { editUploadRemoveFile (file, fileList) {
this.$refs.editUpload.clearFiles() this.$refs.editUpload.clearFiles()
this.imageUrl = '' this.imageUrl = ''
}, },
eidtHandleAvatarSuccess(res, file) { eidtHandleAvatarSuccess (res, file) {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.imageUrl = res.data this.imageUrl = res.data
} }
}, },
mounted() { mounted () {
const that = this; const that = this
this.$nextTick(() => { this.$nextTick(() => {
document.querySelector(".el-dialog__body").onscroll = function () { document.querySelector('.el-dialog__body').onscroll = function () {
const top = document.querySelectorAll('.customClass .el-dialog__body')[0].scrollTop - 100
let top = document.querySelectorAll(".customClass .el-dialog__body")[0].scrollTop - 100
if (top < document.querySelector('#anchor1').offsetTop - 100) { if (top < document.querySelector('#anchor1').offsetTop - 100) {
that.activeStepIndexs = 0 that.activeStepIndexs = 0
} } else if (top < document.querySelector('#anchor2').offsetTop - 100) {
else if (top < document.querySelector('#anchor2').offsetTop - 100) {
that.activeStepIndexs = 1 that.activeStepIndexs = 1
} } else if (top < document.querySelector('#anchor3').offsetTop - 100) {
else if (top < document.querySelector('#anchor3').offsetTop - 100) {
that.activeStepIndexs = 2 that.activeStepIndexs = 2
} } else if (top < document.querySelector('#anchor4').offsetTop - 100) {
else if (top < document.querySelector('#anchor4').offsetTop - 100) {
that.activeStepIndexs = 3 that.activeStepIndexs = 3
} } else if (top < document.querySelector('#anchor5').offsetTop - 100) {
else if (top < document.querySelector('#anchor5').offsetTop - 100) {
that.activeStepIndexs = 4 that.activeStepIndexs = 4
} else { } else {
that.activeStepIndexs = 0 that.activeStepIndexs = 0
} }
if (that.activeStepIndex !== that.activeStepIndexs) { if (that.activeStepIndex !== that.activeStepIndexs) {
that.activeStepIndex = that.activeStepIndexs; that.activeStepIndex = that.activeStepIndexs
that.$forceUpdate(); that.$forceUpdate()
} }
} }
}) })
}, },
beforeDestroy() { beforeDestroy () {
this.clearForm() this.clearForm()
} }
} }
</script> </script>
@ -632,9 +611,6 @@ export default {
border: 4px solid #1160e2; border: 4px solid #1160e2;
} }
.advice { .advice {
font-size: 10px; font-size: 10px;
color: #1160e2; color: #1160e2;
@ -653,7 +629,6 @@ export default {
margin-left: 157px; margin-left: 157px;
margin-top: -5px; margin-top: -5px;
.info-inner { .info-inner {
margin-left: 10px; margin-left: 10px;
@ -670,7 +645,6 @@ export default {
border-radius: 2px; border-radius: 2px;
} }
.baseTitle { .baseTitle {
@ -682,7 +656,6 @@ export default {
background: url("~@/assets/img/biaoti.png") no-repeat; background: url("~@/assets/img/biaoti.png") no-repeat;
background-position-y: 2px; background-position-y: 2px;
} }
.baseInner { .baseInner {
@ -716,7 +689,6 @@ export default {
height: 580px; height: 580px;
overflow: auto; overflow: auto;
} }
.icon-input ::v-deep .el-input__inner { .icon-input ::v-deep .el-input__inner {
@ -836,4 +808,3 @@ export default {
display: block; display: block;
} }
</style> </style>

View File

@ -63,7 +63,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-popconfirm <el-popconfirm
confirm-button-text="确认" confirm-button-text="确认"
cancel-button-text="不用了" cancel-button-text="取消"
icon="el-icon-info" icon="el-icon-info"
icon-color="red" icon-color="red"
title="确定删除该实例数据吗?" title="确定删除该实例数据吗?"
@ -86,117 +86,117 @@ export default {
props: { props: {
dataForm: { dataForm: {
type: Object, type: Object,
default: () => {}, default: () => {}
}, },
title: { title: {
type: String, type: String,
default: "", default: ''
}, },
typeList: { typeList: {
type: Array, type: Array,
default: () => [], default: () => []
}, }
}, },
watch: { watch: {
dataInfo: { dataInfo: {
handler(newVal) { handler (newVal) {
this.dataInfo = newVal; this.dataInfo = newVal
this.$emit("update", { this.$emit('update', {
title: this.title, title: this.title,
list: newVal, list: newVal
}); })
}, },
deep: true, deep: true,
immediate: true, immediate: true
}, },
count: { count: {
handler(newVal) { handler (newVal) {
this.count = newVal; this.count = newVal
this.$emit("updateCount", { this.$emit('updateCount', {
title: this.title, title: this.title,
count: newVal, count: newVal
}); })
}, },
deep: true, deep: true,
immediate: true, immediate: true
}
}, },
}, data () {
data() {
return { return {
count: "", count: '',
dataInfo: [], dataInfo: []
}; }
}, },
methods: { methods: {
addBaseInfo() { addBaseInfo () {
let data = { const data = {
name: "", name: '',
type: "", type: '',
dept: "", dept: ''
}; }
this.dataInfo.push(data); this.dataInfo.push(data)
}, },
handleDelete(row) { handleDelete (row) {
this.dataInfo.splice(row, 1); this.dataInfo.splice(row, 1)
}, },
getDataInfo(dataForm) { getDataInfo (dataForm) {
let arr = []; let arr = []
if (dataForm && (dataForm.id || dataForm.id === 0)) { if (dataForm && (dataForm.id || dataForm.id === 0)) {
if (this.title === "基础设施") { if (this.title === '基础设施') {
this.count = dataForm.infrastructureCount; this.count = dataForm.infrastructureCount
} }
if (this.title === "组件服务") { if (this.title === '组件服务') {
this.count = dataForm.componentCount; this.count = dataForm.componentCount
} }
if (this.title === "数据资源") { if (this.title === '数据资源') {
this.count = dataForm.dataSourceCount; this.count = dataForm.dataSourceCount
} }
let fuseAttrList = dataForm.fuseAttrList || []; const fuseAttrList = dataForm.fuseAttrList || []
let obj = fuseAttrList.find((v) => v.attrType === this.title) || {}; const obj = fuseAttrList.find((v) => v.attrType === this.title) || {}
let attrValue = JSON.parse(obj.attrValue || "[]"); const attrValue = JSON.parse(obj.attrValue || '[]')
if (attrValue.length > 0) { if (attrValue.length > 0) {
attrValue.map((v) => { attrValue.map((v) => {
arr.push(v); arr.push(v)
}); })
} else { } else {
arr = []; arr = []
} }
} else { } else {
arr = []; arr = []
} }
this.dataInfo = arr; this.dataInfo = arr
}, },
// //
addItem() { addItem () {
let index = this.dataInfo.length - 1; const index = this.dataInfo.length - 1
if (this.dataInfo[index][this.keyTextObj.descObj.key] === "") { if (this.dataInfo[index][this.keyTextObj.descObj.key] === '') {
return this.$message.warning("请填写完整信息!"); return this.$message.warning('请填写完整信息!')
} }
this.dataInfo.push({ this.dataInfo.push({
[this.keyTextObj.descObj.key]: "", [this.keyTextObj.descObj.key]: ''
}); })
}, },
// //
deleteItem(index) { deleteItem (index) {
this.$confirm("确认是否删除?", "提示", { this.$confirm('确认是否删除?', '提示', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning'
}) })
.then(() => { .then(() => {
this.$message({ this.$message({
type: "success", type: 'success',
message: "删除成功!", message: '删除成功!'
});
this.dataInfo.splice(index, 1);
}) })
.catch(() => {}); this.dataInfo.splice(index, 1)
}, })
}, .catch(() => {})
}; }
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-table thead { ::v-deep .el-table thead {

View File

@ -71,56 +71,56 @@
</template> </template>
<script> <script>
import mixinViewModule from "@/mixins/view-module"; import mixinViewModule from '@/mixins/view-module'
import cityAdd from "./city-add"; import cityAdd from './city-add'
import areaAdd from "./area-add"; import areaAdd from './area-add'
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data() { data () {
return { return {
// //
cityVisible:false, cityVisible: false,
// //
areaVisible:false, areaVisible: false,
//tab // tab
choose: 0, choose: 0,
tableData: [], tableData: [],
childName: '', childName: '',
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: "/fuse/page", getDataListURL: '/fuse/page',
exportURL: "/ability/bsabilityai/export", exportURL: '/ability/bsabilityai/export',
deleteURL: "/fuse", deleteURL: '/fuse',
getDataListIsPage: true, getDataListIsPage: true,
deleteIsBatch: false, deleteIsBatch: false
}, },
disabled: false, disabled: false,
dataForm: { dataForm: {
name: "", name: '',
order: 'desc', order: 'desc',
orderField: 'create_date', orderField: 'create_date',
type: '赋能场景', type: '赋能场景',
district: 0//0 1 district: 0// 0 1
}, },
qp: false, qp: false,
modalType: 'add', modalType: 'add'
}; }
}, },
components: { components: {
areaAdd, areaAdd,
cityAdd cityAdd
}, },
mounted() { mounted () {
window.addEventListener("resize", this.a); window.addEventListener('resize', this.a)
this.fullScreen(); this.fullScreen()
}, },
methods: { methods: {
handleChose(index) { handleChose (index) {
this.choose = index; this.choose = index
this.searchData() this.searchData()
}, },
deleteRow(id) { deleteRow (id) {
this.$confirm('确认是否删除?', '提示', { this.$confirm('确认是否删除?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
@ -131,91 +131,94 @@ export default {
}).then(res => { }).then(res => {
console.log('删除成功', res) console.log('删除成功', res)
if (res.data.code !== 0) { if (res.data.code !== 0) {
return this.$message.error(res.msg); return this.$message.error(res.msg)
} }
this.$message({ this.$message({
message: '删除成功', message: '删除成功',
type: "success", type: 'success',
duration: 500, duration: 500,
onClose: () => { onClose: () => {
this.query() this.query()
}, }
}); })
}).catch(err => { }).catch(err => {
this.$message.error(err); this.$message.error(err)
}) })
}).catch(() => { }).catch(() => {
}); })
}, },
// //
searchData() { searchData () {
this.dataForm.district=this.choose this.dataForm.district = this.choose
this.query() this.query()
}, },
// //
reset() { reset () {
this.dataForm.name = ""; this.dataForm.name = ''
this.query() this.query()
}, },
// //
handleUpdate(val) { handleUpdate (val) {
if(this.choose==0){ if (this.choose == 0) {
this.cityVisible=true this.cityVisible = true
}else{ } else {
this.areaVisible=true this.areaVisible = true
} }
this.modalType = 'update'; this.modalType = 'update'
const cloneVal = JSON.parse(JSON.stringify(val)) const cloneVal = JSON.parse(JSON.stringify(val))
this.$nextTick(() => { this.$nextTick(() => {
if(this.choose==0){ if (this.choose == 0) {
this.$refs.cityAdd.getDetail(cloneVal) this.$refs.cityAdd.getDetail(cloneVal)
}else{ } else {
this.$refs.areaAdd.getDetail(cloneVal) this.$refs.areaAdd.getDetail(cloneVal)
} }
}) })
}, },
// //
addServe() { addServe () {
//this.addOrUpdateVisible = true // this.addOrUpdateVisible = true
this.modalType = 'add'; this.modalType = 'add'
if(this.choose===0){ if (this.choose === 0) {
this.cityVisible=true this.cityVisible = true
}else{ } else {
this.areaVisible=true this.areaVisible = true
} }
}, },
closeModal() { closeModal () {
this.cityVisible = false; this.cityVisible = false
this.areaVisible=false; this.areaVisible = false
}, },
// //
showDetail(val) { showDetail (val) {
window.open(window.SITE_CONFIG.previewUrl + '#/integrationServicesDetails?id=' + val.id) if (val.district == 0) {
window.open(window.SITE_CONFIG.previewUrl + '#/integrationServicesDetails?id=' + val.id + '&districtType=0&type=典型赋能场景')
} else {
window.open(window.SITE_CONFIG.previewUrl + '#/integrationServicesDetails?id=' + val.id + '&districtType=1&type=典型赋能场景')
}
}, },
fullScreen() { fullScreen () {
if (window.outerHeight === screen.availHeight) { if (window.outerHeight === screen.availHeight) {
if (window.outerWidth === screen.availWidth) { if (window.outerWidth === screen.availWidth) {
console.log( console.log(
"全屏1", '全屏1'
); )
this.qp = false; this.qp = false
} else { } else {
console.log( console.log(
"不是全屏2", '不是全屏2'
); )
this.qp = true; this.qp = true
} }
} else { } else {
console.log( console.log(
"不是全屏3", '不是全屏3'
); )
this.qp = true; this.qp = true
} }
}, }
}, }
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.second-title { .second-title {

View File

@ -0,0 +1,292 @@
<!--
* @Author: Light
* @Date: 2023-01-04 16:29:33
* @LastEditors: Light
* @LastEditTime: 2023-01-06 10:50:23
* @Description: 数据统计
-->
<template>
<div class="data-statistics-box">
<div class="top">
<div class="item" v-for="item in topData" :key="item.type">
<div class="left">
<div>{{ item.type }}</div>
<div><span>{{ item.count }}</span></div>
</div>
<div class="right">
<div>
较上周<span>{{ item.weekly_change }}</span>
<svg v-if="item.weekly_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
<svg v-else-if="item.weekly_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
</div>
<div>
较上月<span>{{ item.month_change }}</span>
<svg v-if="item.month_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
<svg v-else-if="item.month_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
</div>
</div>
<el-image
:style="'width: ' + imgConfig[item.type].size + ' height: ' + imgConfig[item.type].size + ' position: absolute; bottom:' + imgConfig[item.type].bottom + ' right: '+imgConfig[item.type].right"
:src="imgConfig[item.type].url"
:fit="cover"></el-image>
</div>
</div>
<div class="bottom">
<div class="item-box" v-for="item in bottomData" :key="item.tip">
<div class="name">
<div>{{ item.tip }}<span>{{ item.dept_count }}</span></div>
</div>
<div class="item">
<div class="left">
<div>能力上架</div>
<div><span>{{ item.resource_sum }}</span></div>
</div>
<div class="right">
<div>
较上周<span>{{ item.resource_weekly_change }}</span>
<svg v-if="item.resource_weekly_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
<svg v-else-if="item.resource_weekly_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
</div>
<div>
较上月<span>{{ item.resource_month_change }}</span>
<svg v-if="item.resource_month_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
<svg v-else-if="item.resource_month_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
</div>
</div>
</div>
<div class="item">
<div class="left">
<div>能力申请</div>
<div><span>{{ item.apply_sum }}</span></div>
</div>
<div class="right">
<div>
较上周<span>{{ item.apply_weekly_change }}</span>
<svg v-if="item.apply_weekly_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
<svg v-else-if="item.apply_weekly_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
</div>
<div>
较上月<span>{{ item.apply_month_change }}</span>
<svg v-if="item.apply_month_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
<svg v-else-if="item.apply_month_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
</div>
</div>
</div>
<div class="bx"></div>
<div class="bx"></div>
</div>
</div>
</div>
</template>
<script>
export default {
name: '',
components: {
},
props: {
},
data () {
return {
sortList: ['四大类资源', '组件服务', '应用资源', '基础设施', '数据资源'],
imgConfig: {
四大类资源: {
url: require('@/assets/img/workBench/banner-gg.png'),
size: '80px;',
right: '20px;',
bottom: '40px;'
},
组件服务: {
url: require('@/assets/img/workBench/banner-zj.png'),
size: '60px;',
right: '20px;',
bottom: '48px;'
},
应用资源: {
url: require('@/assets/img/workBench/banner-yy.png'),
size: '60px;',
right: '20px;',
bottom: '43px;'
},
基础设施: {
url: require('@/assets/img/workBench/banner-jc.png'),
size: '60px;',
right: '20px;',
bottom: '46px;'
},
数据资源: {
url: require('@/assets/img/workBench/banner-sj.png'),
size: '60px;',
right: '20px;',
bottom: '50px;'
}
},
topData: [],
bottomData: []
}
},
methods: {
},
created () {
this.$http.get('/census/center/similitude').then(res => {
res.data.data = res.data.data.sort((a, b) => this.sortList.indexOf(a.type) - this.sortList.indexOf(b.type))
this.topData = res.data.data
console.log('获取数据', res.data.data)
})
this.$http.get('/census/center/similitude_dept').then(res => {
this.bottomData = res.data.data
console.log('获取数据', res.data.data)
})
},
mounted () {
}
}
</script>
<style lang='scss' scoped>
.data-statistics-box{
padding:10px;
.top{
display: flex;
justify-content: space-between;
align-items: center;
.item{
width: 290px;
height: 120px;
padding: 15px;
display: flex;
flex-direction: column;
align-items: flex-start;
background: #fff;
box-shadow: 2px 2px 5px #ccc;
border-radius: 10px;
position: relative;
.left{
width: 100px;
display: flex;
flex-direction: column;
align-items: flex-start;
font-size: 16px;
div{
margin-bottom: 1px;
}
span{
font-size: 24px;
font-weight: 600;
}
}
.right{
width: 180px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
margin-top: 10px;
div{
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 5px;
font-size: 14px;
color: #666;
span{
width: 30px;
margin-left: 30px;
}
svg{
margin-left: 10px;
}
}
}
}
}
.bottom{
margin-top: 10px;
.item-box{
display: flex;
margin-top: 10px;
justify-content: space-between;
align-items: center;
.name{
width: 290px;
height: 80px;
padding: 10px;
display: flex;
justify-content: space-between;
align-items: center;
background: #fff;
border-radius: 10px;
box-shadow: 2px 2px 5px #ccc;
div{
width: 200px;
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
span{
margin-left: 10px;
font-size: 28px;
font-weight: 600;
}
}
}
.item{
width: 290px;
height: 80px;
padding: 10px;
display: flex;
justify-content: space-between;
align-items: center;
background: #fff;
border-radius: 10px;
box-shadow: 2px 2px 5px #ccc;
.left{
width: 100px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 16px;
span{
font-size: 24px;
font-weight: 600;
}
}
.right{
width: 120px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
margin-top: 10px;
div{
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 5px;
font-size: 14px;
color: #666;
span{
width: 30px;
margin-left: 10px;
}
svg{
margin-left: 10px;
}
}
}
}
.bx{
width: 290px;
height: 80px;
}
}
}
}
</style>

View File

@ -16,13 +16,14 @@
</div> </div>
<div class="more" @click="jumpTo">查看更多 ></div> <div class="more" @click="jumpTo">查看更多 ></div>
</div> </div>
<div <!-- <div
class="no-data" class="no-data"
v-else v-else
style="display: flex; align-items: center; justify-content: center" style="display: flex; align-items: center; justify-content: center"
> >
暂无数据 暂无数据
</div> </div> -->
<el-empty v-else style="display: flex;flex-direction: column;justify-content: center; align-items: center;" description="暂无数据" :image-size="150"></el-empty>
</div> </div>
<!-- 部门推荐能力 --> <!-- 部门推荐能力 -->

View File

@ -3,7 +3,8 @@
<div class="title">{{ title }}</div> <div class="title">{{ title }}</div>
<div v-if="dataListCopy.length > 0" style="width:260px; height:232px" class="dept-chart-view" :id="id"> <div v-if="dataListCopy.length > 0" style="width:260px; height:232px" class="dept-chart-view" :id="id">
</div> </div>
<div class="no-data" v-else>暂无数据</div> <!-- <div class="no-data" v-else>暂无数据</div> -->
<el-empty v-else style="display: flex;flex-direction: column;justify-content: center; align-items: center;" description="暂无数据" :image-size="150"></el-empty>
</div> </div>
</template> </template>

View File

@ -33,7 +33,8 @@
<div class="count-text">{{ formatCount(data.count) }}</div> <div class="count-text">{{ formatCount(data.count) }}</div>
</div> </div>
</div> </div>
<div class="no-data" v-else>暂无数据</div> <!-- <div class="no-data" v-else>暂无数据</div> -->
<el-empty v-else style="display: flex;flex-direction: column;justify-content: center; align-items: center;" description="暂无数据" :image-size="150"></el-empty>
</div> </div>
</template> </template>

View File

@ -21,13 +21,14 @@
</div> </div>
</div> </div>
</div> </div>
<div <!-- <div
class="no-data" class="no-data"
v-else v-else
style="display: flex; align-items: center; justify-content: center" style="display: flex; align-items: center; justify-content: center"
> >
暂无数据 暂无数据
</div> </div> -->
<el-empty v-else style="display: flex;flex-direction: column;justify-content: center; align-items: center;" description="暂无数据" :image-size="150"></el-empty>
</div> </div>
</template> </template>
<script> <script>

View File

@ -1,5 +1,9 @@
<template> <template>
<div class="work-brnch-box"> <div class="work-brnch-box">
<!-- 数据统计 -->
<div class="data-statistics" v-if="($store.state.user.roleIdList.indexOf('运维管理员') !== -1)">
<DataStatistics></DataStatistics>
</div>
<!-- --> <!-- -->
<div class="flex-row-start top"> <div class="flex-row-start top">
<div class="flex-row-start dept-left"> <div class="flex-row-start dept-left">
@ -33,6 +37,7 @@
import BottomView from '../workBench/components/bottom-view.vue' import BottomView from '../workBench/components/bottom-view.vue'
import CenterView from '../workBench/components/center-view.vue' import CenterView from '../workBench/components/center-view.vue'
import DeptChartView from '../workBench/components/dept-chart-view.vue' import DeptChartView from '../workBench/components/dept-chart-view.vue'
import DataStatistics from './components/DataStatistics'
import deptTodoView from '../workBench/components/dept-todo-view.vue' import deptTodoView from '../workBench/components/dept-todo-view.vue'
import * as Apis from './api.js' import * as Apis from './api.js'
import bus from '@/views/bus.js' import bus from '@/views/bus.js'
@ -41,7 +46,8 @@ export default {
deptTodoView, deptTodoView,
BottomView, BottomView,
CenterView, CenterView,
DeptChartView DeptChartView,
DataStatistics
}, },
data () { data () {
return { return {
@ -241,7 +247,12 @@ export default {
} }
.work-brnch-box { .work-brnch-box {
.data-statistics{
background: #fff;
height: 324px;
margin-bottom: 16px;
box-shadow: 2px 2px 5px #ccc;
}
.top { .top {
height: 284px; height: 284px;
margin-bottom: 16px; margin-bottom: 16px;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -2,16 +2,27 @@
<template> <template>
<div class="IntegrationServicesDetails" :class="{ fixed2: scrollTop >= 600 }"> <div class="IntegrationServicesDetails" :class="{ fixed2: scrollTop >= 600 }">
<home-header></home-header> <home-header></home-header>
<detail-back v-show="!hiddenBackFlag" :returnType="returnType" :districtType="districtType"></detail-back> <detail-back
v-show="!hiddenBackFlag"
:returnType="returnType"
:districtType="districtType"
></detail-back>
<template v-if="districtType == 0 || returnType == '打包模式'"> <template v-if="districtType == 0 || returnType == '打包模式'">
<!-- 头部基本信息 --> <!-- 头部基本信息 -->
<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 }" style="z-index: 10012"> <div :class="{ fixed: scrollTop >= 600 }" style="z-index: 10012">
<div class="application-navigation"> <div class="application-navigation">
<template v-for="nav in navList" :key="nav.key"> <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 }} {{ nav.name }}
<span class="line"></span> <span class="line"></span>
</div> </div>
@ -30,11 +41,16 @@
</div> </div>
<div class="content" style="margin-left: 0.5rem"> <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; margin-bottom: 0.2rem;
font-size: 0.18rem; font-size: 0.18rem;
line-height: 0.3rem; line-height: 0.3rem;
"> "
>
{{ i + 1 + '、' + item.description }} {{ i + 1 + '、' + item.description }}
</div> </div>
</div> </div>
@ -42,17 +58,26 @@
</div> </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"> <div class="title-1">
<DetalsTitle title="解决方案" type="SOLUTION"></DetalsTitle> <DetalsTitle title="解决方案" type="SOLUTION"></DetalsTitle>
</div> </div>
<div class="flex-row-center"> <div class="flex-row-center">
<div class="content" style="background: #fff; margin-top: 0.2rem"> <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; margin-bottom: 0.2rem;
font-size: 0.18rem; font-size: 0.18rem;
line-height: 0.3rem; line-height: 0.3rem;
"> "
>
{{ i + 1 + '、' + item.description }} {{ i + 1 + '、' + item.description }}
</div> </div>
</div> </div>
@ -64,11 +89,26 @@
<div class="title-1"> <div class="title-1">
<DetalsTitle title="使用能力" type="ABILITY"></DetalsTitle> <DetalsTitle title="使用能力" type="ABILITY"></DetalsTitle>
</div> </div>
<div class="flex-row-center combine-content" v-for="(item, i) in combineList" :key="i" style="display: block"> <div
<div class="top" style="font-size: 0.24rem; text-align: center; margin-bottom: 0.3rem"> 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 ? '组件服务' : '数据资源' }} {{ i == 0 ? '基础设施' : i == 1 ? '组件服务' : '数据资源' }}
</div> </div>
<div class="data-count" style="font-size: 0.14rem; text-align: right; margin-bottom: 0.2rem"> <div
class="data-count"
style="font-size: 0.14rem; text-align: right; margin-bottom: 0.2rem"
>
<span style="color: #909399"> <span style="color: #909399">
{{ {{
@ -83,23 +123,63 @@
<div class="bottom" style="display: flex; align-items: flex-start"> <div class="bottom" style="display: flex; align-items: flex-start">
<div class="title" :class="'title' + i"></div> <div class="title" :class="'title' + i"></div>
<div class="table-box" v-if="returnType == '典型赋能场景'"> <div class="table-box" v-if="returnType == '典型赋能场景'">
<el-table class="table" :data="item.list" stripe :header-cell-style="{ 'text-align': 'center' }"> <el-table
<el-table-column prop="name" label="资源名称" align="center" width="200" class="table"
show-overflow-tooltip="true"></el-table-column> :data="item.list"
<el-table-column prop="type" label="资源类型" align="center" width="100" stripe
show-overflow-tooltip="true"></el-table-column> :header-cell-style="{ 'text-align': 'center' }"
<el-table-column prop="dept" label="来源部门" align="center" width="300" >
show-overflow-tooltip="true"></el-table-column> <el-table-column
prop="name"
label="资源名称"
align="center"
width="200"
show-overflow-tooltip="true"
></el-table-column>
<el-table-column
prop="type"
label="资源类型"
align="center"
width="100"
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> </el-table>
</div> </div>
<div class="table-box" v-else> <div class="table-box" v-else>
<el-table class="table" :data="item.list" stripe :header-cell-style="{ 'text-align': 'center' }"> <el-table
<el-table-column prop="name" label="资源名称" align="center" width="200" class="table"
show-overflow-tooltip="true"></el-table-column> :data="item.list"
<el-table-column prop="platform" label="资源类型" align="center" width="100" stripe
show-overflow-tooltip="true"></el-table-column> :header-cell-style="{ 'text-align': 'center' }"
<el-table-column prop="dept" label="能力来源" align="center" width="300" >
show-overflow-tooltip="true"></el-table-column> <el-table-column
prop="name"
label="资源名称"
align="center"
width="200"
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-column
prop="dept"
label="能力来源"
align="center"
width="300"
show-overflow-tooltip="true"
></el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
@ -107,7 +187,11 @@
</div> </div>
<!-- 构建步骤 --> <!-- 构建步骤 -->
<div id="integration-step" class="step scrollBox" style="background: #eee"> <div
id="integration-step"
class="step scrollBox"
style="background: #eee"
>
<div class="title-1"> <div class="title-1">
<DetalsTitle title="构建步骤" type="STEP"></DetalsTitle> <DetalsTitle title="构建步骤" type="STEP"></DetalsTitle>
</div> </div>
@ -132,31 +216,43 @@
<div class="li1" v-for="(item, i) in step" :key="i"> <div class="li1" v-for="(item, i) in step" :key="i">
<div> <div>
<div class="node"> <div class="node">
<div class="step-span">{{ i + 1 }}</div>
<div class="step-span">{{ i+ 1}}</div>
<div> <div>
<div class="step-question">{{ i+ 1}}:{{ item.question }}</div> <div class="step-question">
<div class="question-son" v-for="(itemson, i) in item.answer" :key="i"> {{ i + 1 }}:{{ item.question }}
<img src="~@/assets/home/arrow.png" style="margin-right:8px" />{{ i+ 1}}>{{ itemson.answer }} </div>
<div
class="question-son"
v-for="(itemson, i) in item.answer"
:key="i"
>
<img
src="~@/assets/home/arrow.png"
style="margin-right: 8px"
/>
{{ i + 1 }}>{{ itemson.answer }}
</div> </div>
</div> </div>
</div> </div>
<div class="borderLeft"></div> <div class="borderLeft"></div>
</div> </div>
<div class="advice"></div> <div class="advice"></div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<template v-else> <template v-else>
<div class="area"> <div class="area">
<a-image style="width:615px;height:345px" :preview="false" :src="bgImg || imgSrcYyzy" /> <a-image
<div class="label-name">{{ detailInfoObj.name }} <span class="label"> style="width: 615px; height: 345px"
:preview="false"
:src="bgImg || imgSrcYyzy"
/>
<div class="label-name">
{{ detailInfoObj.name }}
<span class="label">
{{ detailInfoObj.type }} {{ detailInfoObj.type }}
</span> </span>
<span class="label1"> <span class="label1">
@ -176,45 +272,45 @@
</template> </template>
<script setup> <script setup>
import ApplicationTopDetails from './components/ApplicationTopDetails.vue' import ApplicationTopDetails from './components/ApplicationTopDetails.vue'
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle' import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
import ApplicationCommonProblem from '@/views/detailsAll/components/Application/ApplicationCommonProblem' // import ApplicationCommonProblem from '@/views/detailsAll/components/Application/ApplicationCommonProblem' //
import HomeFooter from '@/views/newHome/components/Footer' import HomeFooter from '@/views/newHome/components/Footer'
import HomeHeader from '@/views/home/components/header' import HomeHeader from '@/views/home/components/header'
import detailBack from '@/views/home/detailBack.vue' import detailBack from '@/views/home/detailBack.vue'
import { ref, onMounted, onBeforeUnmount } from 'vue' import { ref, onMounted, onBeforeUnmount } from 'vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { getIntegrationDetail } from '@/api/home' import { getIntegrationDetail } from '@/api/home'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
const router = useRouter() const router = useRouter()
const scrollTop = ref(0) const scrollTop = ref(0)
const domArr = ref([]) const domArr = ref([])
const painPoint = ref([]) const painPoint = ref([])
const solution = ref([]) const solution = ref([])
const step = ref([]) const step = ref([])
const bgImg = ref('') const bgImg = ref('')
const dataSourceCount = ref(0) const dataSourceCount = ref(0)
const infrastructureCount = ref(0) const infrastructureCount = ref(0)
const componentCount = ref(0) const componentCount = ref(0)
const id = router.currentRoute.value.query.id const id = router.currentRoute.value.query.id
const returnType = router.currentRoute.value.query.type const returnType = router.currentRoute.value.query.type
const districtType = router.currentRoute.value.query.districtType const districtType = router.currentRoute.value.query.districtType
const hiddenBackFlag = router.currentRoute.value.query.hiddenBackFlag const hiddenBackFlag = router.currentRoute.value.query.hiddenBackFlag
const imgSrcYyzy = ref(require('@/assets/newHome/empty.png')) const imgSrcYyzy = ref(require('@/assets/newHome/empty.png'))
document.documentElement.style.transition = 'all 0.3s ease' document.documentElement.style.transition = 'all 0.3s ease'
document.documentElement.scrollTop = 0 document.documentElement.scrollTop = 0
document.body.style.transition = 'all 0.3s ease' document.body.style.transition = 'all 0.3s ease'
document.body.scrollTop = 0 document.body.scrollTop = 0
mybus.on('flyToView', (id) => { mybus.on('flyToView', (id) => {
let top = let top =
document.querySelector('#' + id) && document.querySelector('#' + id) &&
document.querySelector('#' + id).offsetTop - 50 document.querySelector('#' + id).offsetTop - 50
document.documentElement.scrollTop = top document.documentElement.scrollTop = top
document.body.scrollTop = top document.body.scrollTop = top
}) })
const navList = ref([ const navList = ref([
{ {
name: '场景痛点', name: '场景痛点',
key: 'integration-pain-point', key: 'integration-pain-point',
@ -231,11 +327,11 @@ const navList = ref([
name: '构建步骤', name: '构建步骤',
key: 'integration-step', key: 'integration-step',
}, },
]) ])
const selectNow = ref('integration-pain-point') const selectNow = ref('integration-pain-point')
const useWayShowList = ref([ const useWayShowList = ref([
{ {
title: '归属部门', title: '归属部门',
info: { info: {
@ -250,9 +346,9 @@ const useWayShowList = ref([
providerMobile: '联系人电话', providerMobile: '联系人电话',
}, },
}, },
]) ])
const combineList = ref([ const combineList = ref([
{ {
title: '基础设施', title: '基础设施',
list: [], list: [],
@ -265,10 +361,10 @@ const combineList = ref([
title: '数据资源', title: '数据资源',
list: [], list: [],
}, },
]) ])
const detailInfoObj = ref({}) const detailInfoObj = ref({})
onMounted(() => { onMounted(() => {
window.addEventListener('scroll', () => { window.addEventListener('scroll', () => {
domArr.value = document.querySelectorAll('.scrollBox') domArr.value = document.querySelectorAll('.scrollBox')
scrollTop.value = scrollTop.value =
@ -292,21 +388,25 @@ onMounted(() => {
} }
} }
}) })
}) })
const selectNav = (key) => { //
const openScene = (val) => {
window.open(val, '_blank')
}
const selectNav = (key) => {
selectNow.value = key selectNow.value = key
mybus.emit('flyToView', selectNow.value) mybus.emit('flyToView', selectNow.value)
} }
const getAttrValue = (fuseAttrList, text) => { const getAttrValue = (fuseAttrList, text) => {
let _obj = fuseAttrList.find((v) => v.attrType === text) || {} let _obj = fuseAttrList.find((v) => v.attrType === text) || {}
let data = JSON.parse(_obj.attrValue || '[]') || [] let data = JSON.parse(_obj.attrValue || '[]') || []
return data return data
} }
// -- // --
const getIntegrationServicesDeatil = (id) => { const getIntegrationServicesDeatil = (id) => {
getIntegrationDetail(id).then( getIntegrationDetail(id).then(
(res) => { (res) => {
if (res.data.code !== 0) { if (res.data.code !== 0) {
@ -340,7 +440,6 @@ const getIntegrationServicesDeatil = (id) => {
let fuseResourceList = res.data.data.fuseAttrList || [] let fuseResourceList = res.data.data.fuseAttrList || []
combineList.value.forEach((item) => { combineList.value.forEach((item) => {
let arr = [] let arr = []
let resource = fuseResourceList.filter( let resource = fuseResourceList.filter(
(v) => v.attrType == item.title (v) => v.attrType == item.title
@ -349,16 +448,13 @@ const getIntegrationServicesDeatil = (id) => {
// let a=resource[0].attrValue // let a=resource[0].attrValue
let resourceArrList = JSON.parse(resource[0].attrValue) let resourceArrList = JSON.parse(resource[0].attrValue)
if (resourceArrList.length > 0) { if (resourceArrList.length > 0) {
arr = resourceArrList.map((res) => ({ arr = resourceArrList.map((res) => ({
name: res.name, name: res.name,
dept: res.dept, dept: res.dept,
type: res.type, type: res.type,
})) }))
item.list = arr item.list = arr
} }
}) })
} else { } else {
// //
@ -404,7 +500,6 @@ const getIntegrationServicesDeatil = (id) => {
}) })
} }
detailInfoObj.value.infoList = [] detailInfoObj.value.infoList = []
detailInfoObj.value.infoList.push(questionObj) detailInfoObj.value.infoList.push(questionObj)
detailInfoObj.value.infoList.push(areaObj) detailInfoObj.value.infoList.push(areaObj)
@ -413,10 +508,10 @@ const getIntegrationServicesDeatil = (id) => {
message.error(err) message.error(err)
} }
) )
} }
getIntegrationServicesDeatil(id) getIntegrationServicesDeatil(id)
function handleOpenUrl(type) { function handleOpenUrl(type) {
let obj = let obj =
(detailInfoObj.value.fuseAttrList || []).find( (detailInfoObj.value.fuseAttrList || []).find(
(v) => v.attrType == type (v) => v.attrType == type
@ -430,15 +525,15 @@ function handleOpenUrl(type) {
'hisense_office/onlinePreview?url=' + 'hisense_office/onlinePreview?url=' +
btoa(encodeURI(url)) btoa(encodeURI(url))
) )
} }
onBeforeUnmount(() => { onBeforeUnmount(() => {
mybus.off('flyToView') mybus.off('flyToView')
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.area { .area {
padding-top: 93px; padding-top: 93px;
text-align: center; text-align: center;
margin-bottom: 32px; margin-bottom: 32px;
@ -450,7 +545,6 @@ onBeforeUnmount(() => {
margin-top: 32px; margin-top: 32px;
} }
.label { .label {
padding: 0.01rem 0.1rem; padding: 0.01rem 0.1rem;
margin-right: 0.1rem; margin-right: 0.1rem;
@ -477,41 +571,39 @@ onBeforeUnmount(() => {
height: 32px; height: 32px;
border-radius: 2px; border-radius: 2px;
border: 1px #0058e1 solid; border: 1px #0058e1 solid;
}
} }
} .area-desc {
.area-desc {
background: #f6f7f9; background: #f6f7f9;
padding: 24px; padding: 24px;
width: 1300px; width: 1300px;
margin-left: 343px; margin-left: 343px;
margin-bottom: 24px; margin-bottom: 24px;
} }
.flex-row-between { .flex-row-between {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
.flex-row-start { .flex-row-start {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;
} }
.flex-row-center { .flex-row-center {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.IntegrationServicesDetails { .IntegrationServicesDetails {
.fixed { .fixed {
position: fixed !important; position: fixed !important;
z-index: 2000; z-index: 2000;
@ -519,7 +611,7 @@ onBeforeUnmount(() => {
left: 0; left: 0;
} }
.fixed2>div:nth-of-type(3) { .fixed2 > div:nth-of-type(3) {
margin-top: 0.84rem; margin-top: 0.84rem;
} }
@ -557,9 +649,9 @@ onBeforeUnmount(() => {
} }
} }
} }
} }
.use-way { .use-way {
padding: 0.8rem 0; padding: 0.8rem 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -602,9 +694,11 @@ onBeforeUnmount(() => {
height: 1.5rem; height: 1.5rem;
width: 6.2rem; width: 6.2rem;
border-radius: 0.2rem; border-radius: 0.2rem;
background: linear-gradient(to right, background: linear-gradient(
to right,
rgba(113, 132, 252, 0.4), rgba(113, 132, 252, 0.4),
rgba(148, 163, 252, 0.4)); rgba(148, 163, 252, 0.4)
);
padding: 0 0.3rem; padding: 0 0.3rem;
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -635,9 +729,9 @@ onBeforeUnmount(() => {
} }
} }
} }
} }
.pain-point { .pain-point {
padding: 0.8rem 0; padding: 0.8rem 0;
background: rgb(247, 248, 250); background: rgb(247, 248, 250);
@ -672,9 +766,9 @@ onBeforeUnmount(() => {
margin: 0rem 0rem 0.1rem 0.1rem; margin: 0rem 0rem 0.1rem 0.1rem;
} }
} }
} }
.solution { .solution {
padding: 0.8rem 0; padding: 0.8rem 0;
background: rgb(247, 248, 250); background: rgb(247, 248, 250);
@ -686,9 +780,9 @@ onBeforeUnmount(() => {
margin: 0.3rem; margin: 0.3rem;
} }
} }
} }
.step { .step {
padding: 0.8rem 0; padding: 0.8rem 0;
background: rgb(247, 248, 250); background: rgb(247, 248, 250);
@ -698,7 +792,6 @@ onBeforeUnmount(() => {
background: #fff; background: #fff;
.left-process { .left-process {
padding-left: 18px; padding-left: 18px;
padding-top: 24px; padding-top: 24px;
@ -719,7 +812,6 @@ onBeforeUnmount(() => {
left: -1px; left: -1px;
} }
.step-question { .step-question {
color: #0058e1; color: #0058e1;
font-weight: bold; font-weight: bold;
@ -739,7 +831,6 @@ onBeforeUnmount(() => {
} }
.node { .node {
cursor: pointer; cursor: pointer;
font-size: 16px; font-size: 16px;
line-height: 22.5px; line-height: 22.5px;
@ -763,8 +854,6 @@ onBeforeUnmount(() => {
background-color: #fff; background-color: #fff;
} }
.advice { .advice {
font-size: 10px; font-size: 10px;
color: #0058e1; color: #0058e1;
@ -775,14 +864,11 @@ onBeforeUnmount(() => {
.li1:last-child .borderLeft { .li1:last-child .borderLeft {
display: none; display: none;
} }
}
}
} }
.ability {
}
}
.ability {
padding: 0.8rem 0; padding: 0.8rem 0;
background: rgb(247, 248, 250); background: rgb(247, 248, 250);
@ -837,7 +923,8 @@ onBeforeUnmount(() => {
font-size: 16px; font-size: 16px;
} }
.data-count {} .data-count {
}
} }
.name-box { .name-box {
@ -868,5 +955,5 @@ onBeforeUnmount(() => {
width: 50%; width: 50%;
box-sizing: border-box; box-sizing: border-box;
} }
} }
</style> </style>

View File

@ -21,6 +21,15 @@
<span class="xv-qui-zhong-xin">需求中心</span> <span class="xv-qui-zhong-xin">需求中心</span>
<span class="neng-li-shen-qing-liu-cheng">能力申请流程</span> <span class="neng-li-shen-qing-liu-cheng">能力申请流程</span>
<span class="neng-li-xv-qiu-liu-cheng">能力需求流程</span> <span class="neng-li-xv-qiu-liu-cheng">能力需求流程</span>
<i class="data-property-library-flow absolute flow-1"></i>
<i class="data-property-library-flow absolute flow-2"></i>
<i class="data-property-library-flow absolute flow-3"></i>
<i class="data-property-library-flow absolute flow-4"></i>
<i class="data-property-library-flow absolute flow-5"></i>
<i class="data-property-library-flow absolute flow-6"></i>
<i class="data-property-library-flow absolute flow-7"></i>
<i class="data-property-library-flow absolute flow-8"></i>
<i class="data-property-library-flow absolute flow-9"></i>
</div> </div>
</div> </div>
</template> </template>
@ -47,6 +56,7 @@
} }
} }
.TheOverallProcess-content { .TheOverallProcess-content {
width:1920px;
height: 855px; height: 855px;
background: url('~@/assets/menu/TheOverallProcess-bg.png'); background: url('~@/assets/menu/TheOverallProcess-bg.png');
position: relative; position: relative;
@ -166,6 +176,75 @@
left: 125px; left: 125px;
top: 102px; top: 102px;
} }
.data-property-library-flow {
width: 50px;
height: 38px;
background-image: url("~@/assets/menu/line-flow.png");
}
.absolute {
position: absolute;
}
.flow-1 {
offset-path: path("m982,198c0,0 0,68 0,68");
animation: move 2s linear infinite;
-webkit-animation: move 2s linear infinite;
}
.flow-2 {
offset-path: path("m928,281c0,0 0,-71 0,-71");
animation: move 2s linear infinite;
-webkit-animation: move 2s linear infinite;
}
.flow-3 {
offset-path: path("m539,359c0,0 318,-1 318,-1");
animation: move 2s linear infinite;
-webkit-animation: move 2s linear infinite;
animation-delay: 1s;
-webkit-animation-delay: 1s;
}
.flow-4 {
offset-path: path("m856,412c0,0 -308,0 -308,0");
animation: move 3s linear infinite;
-webkit-animation: move 3s linear infinite;
animation-delay: 2s;
-webkit-animation-delay: 2s;
}
.flow-5 {
offset-path: path("m454,480c0,0 0,160 0,160c0,0 401,0 401,0");
animation: move 4s linear infinite;
-webkit-animation: move 4s linear infinite;
}
.flow-6 {
offset-path: path("m402,478c0,0 0,295 0,295c0,0 1067,0 1067,0c0,0 -1,-273 -1,-273");
animation: move 6s linear infinite;
-webkit-animation: move 6s linear infinite;
}
.flow-7 {
offset-path: path("m1392,383c0,0 -332,0 -332,0");
animation: move 2s linear infinite;
-webkit-animation: move 2s linear infinite;
}
.flow-8 {
offset-path: path("m1457,295c0,0 0,-181 0,-181c0,0 -397,0 -397,0");
animation: move 3s linear infinite;
-webkit-animation: move 3s linear infinite;
animation-delay: 1s;
-webkit-animation-delay: 1s;
}
.flow-9 {
offset-path: path("m955,483c0,0 0,74 0,74");
animation: move 2s linear infinite;
-webkit-animation: move 2s linear infinite;
animation-delay: 1s;
-webkit-animation-delay: 1s;
}
@keyframes move {
0% {
offset-distance: 0%;
}
100% {
offset-distance: 100%;
}
}
} }
} }
</style> </style>

View File

@ -55,6 +55,22 @@
> >
{{ item.btnText }} >> {{ item.btnText }} >>
</div> </div>
<template v-if="item.name=='资源下架'">
<div class="resources-cont">
<p>能力归属方资源发生变更或停用可对改能力进行下架申请</p>
<p>能力归属方下架前需要先检查能力使用情况如果能力处于被使用状态需要提前协调使用方后再进行能力下架</p>
</div>
<div class="resources-step">
<p>开始</p>
<p>能力使用状态检查</p>
<p>通知使用方</p>
<p>能力下架申请</p>
<p>市大数据局审核</p>
<p>完成下架</p>
</div>
</template>
</div> </div>
<!-- 联系我们 --> <!-- 联系我们 -->
<!--<div class="img-bg callus-box"> <!--<div class="img-bg callus-box">
@ -460,6 +476,7 @@
} }
.img-box-new { .img-box-new {
margin-bottom: -60px; margin-bottom: -60px;
position: relative;
} }
.service-box { .service-box {
@ -535,6 +552,48 @@
height: 544px; height: 544px;
background-image: url('../../../assets/menu/down.png'); background-image: url('../../../assets/menu/down.png');
} }
.resources-cont{
position: absolute;
top:298px;
left:315px;
width:1294px;
height: 100px;
// border:1px solid red;
display: flex;
justify-content: space-between;
p{
width: 636px;
padding: 0 35px;
line-height: 30px;
font-size: 16px;
font-family: microsoft Yahei;
// border:1px solid blue;
}
p:first-child{
text-align: center;
}
}
.resources-step{
top: 440px;
position: absolute;
left: 333px;
width: 1326px;
height: 107px;
display: flex;
p{
width: 183px;
line-height: 106px;
font-weight: 500;
text-align: center;
font-size: 18px;
margin-right: 36px;
font-family: microsoft Yahei;
}
}
.list-box { .list-box {
display: flex; display: flex;