Merge branch 'hi-ucs-dev' into release

This commit is contained in:
a0049873 2023-01-06 17:20:04 +08:00
commit ead4a2f949
16 changed files with 1430 additions and 1071 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -16,13 +16,14 @@
</div>
<div class="more" @click="jumpTo">查看更多 ></div>
</div>
<div
<!-- <div
class="no-data"
v-else
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>
<!-- 部门推荐能力 -->

View File

@ -3,7 +3,8 @@
<div class="title">{{ title }}</div>
<div v-if="dataListCopy.length > 0" style="width:260px; height:232px" class="dept-chart-view" :id="id">
</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>
</template>

View File

@ -33,7 +33,8 @@
<div class="count-text">{{ formatCount(data.count) }}</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>
</template>

View File

@ -21,13 +21,14 @@
</div>
</div>
</div>
<div
<!-- <div
class="no-data"
v-else
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>
</template>
<script>

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

@ -357,11 +357,15 @@
:showSearch="true"
>
<a-select-option
:value="item.value"
:value="item.label"
v-for="item in deptList"
:key="item.value"
>
<a-tooltip v-if="item.label.length > 9">
<template #title>{{ item.label }}</template>
{{ item.label }}
</a-tooltip>
<template v-else>{{ item.label }}</template>
</a-select-option>
</a-select>
</a-form-item>
@ -408,23 +412,12 @@
:wrapper-col="{ span: 14, offset: 4 }"
style="text-align: center; margin-top: 0.4rem"
>
<a-button
class="tijiao"
@click="onSubmit"
>
提交
</a-button>
<a-button class="quxiao" @click="appointmentRoom = false" >
<a-button class="tijiao" @click="onSubmit">提交</a-button>
<a-button class="quxiao" @click="appointmentRoom = false">
取消
</a-button>
</a-form-item>
</a-form>
</a-modal>
</div>
<div v-if="room">
@ -882,7 +875,7 @@
deptList.value = []
res.data.data.map((val) => {
deptList.value.push({
value: val.name,
value: val.id,
label: val.name,
})
})
@ -1215,7 +1208,8 @@
if (item && item.status != 1) {
return
// return message.warning('线, ')
}handleChose
}
handleChose
console.log('打开视频', id)
const param = {
key: id,
@ -2520,34 +2514,33 @@
})
</script>
<style lang="less" scoped>
.quxiao{
margin-right:12px;
.quxiao {
margin-right: 12px;
cursor: pointer;
width: 90px;
height: 32px;
background: #ffffff;
color:#0058e1;
color: #0058e1;
border-radius: 2px;
border: 1px #0058e1 solid;
}
.quxiao:hover{
.quxiao:hover {
background: #fff;
color: #0558e1;
opacity: 0.8;
}
.tijiao{
margin-right:12px;
.tijiao {
margin-right: 12px;
cursor: pointer;
width: 90px;
height: 32px;
background: #0058e1;
color:#ffffff;
color: #ffffff;
border-radius: 2px;
border: 1px #0058e1 solid;
margin-left:20px;
margin-left: 20px;
}
.tijiao:hover{
.tijiao:hover {
background: #0558e1;
color: #fff;
opacity: 0.8;
@ -2870,7 +2863,7 @@
.rightContent {
height: 1.75rem;
width: 5.8rem;
margin-right:72px;
margin-right: 72px;
.topContent {
font-size: 0.2rem;
color: #000;
@ -2903,16 +2896,15 @@
font-size: 16px !important;
font-weight: 600 !important;
}
:deep(.ant-table-tbody > tr.ant-table-row-selected > td){
:deep(.ant-table-tbody > tr.ant-table-row-selected > td) {
background: #e6eefb;
}
:deep(.ant-checkbox-checked .ant-checkbox-inner){
:deep(.ant-checkbox-checked .ant-checkbox-inner) {
background-color: #0058e1;
}
:deep(.ant-checkbox-indeterminate .ant-checkbox-inner::after){
:deep(.ant-checkbox-indeterminate .ant-checkbox-inner::after) {
background-color: #0058e1;
}
</style>
<style lang="less">
.eia-dropdown-class {
@ -2950,7 +2942,7 @@
.ant-modal-title {
font-weight: 600;
color:#fff;
color: #fff;
}
.ant-modal-content {

View File

@ -2,16 +2,27 @@
<template>
<div class="IntegrationServicesDetails" :class="{ fixed2: scrollTop >= 600 }">
<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 == '打包模式'">
<!-- 头部基本信息 -->
<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="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>
@ -30,11 +41,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>
@ -42,17 +58,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>
@ -64,11 +89,26 @@
<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="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">
{{
@ -83,23 +123,63 @@
<div class="bottom" style="display: flex; align-items: flex-start">
<div class="title" :class="'title' + i"></div>
<div class="table-box" v-if="returnType == '典型赋能场景'">
<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="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
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="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>
</div>
<div class="table-box" v-else>
<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="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
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="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>
</div>
</div>
@ -107,7 +187,11 @@
</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">
<DetalsTitle title="构建步骤" type="STEP"></DetalsTitle>
</div>
@ -132,31 +216,43 @@
<div class="li1" v-for="(item, i) in step" :key="i">
<div>
<div class="node">
<div class="step-span">{{ i+ 1}}</div>
<div class="step-span">{{ i + 1 }}</div>
<div>
<div class="step-question">{{ i+ 1}}:{{ item.question }}</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 class="step-question">
{{ i + 1 }}:{{ item.question }}
</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 class="borderLeft"></div>
</div>
<div class="advice"></div>
</div>
</div>
</div>
</div>
</template>
<template v-else>
<div class="area">
<a-image style="width:615px;height:345px" :preview="false" :src="bgImg || imgSrcYyzy" />
<div class="label-name">{{ detailInfoObj.name }} <span class="label">
<a-image
style="width: 615px; height: 345px"
:preview="false"
:src="bgImg || imgSrcYyzy"
/>
<div class="label-name">
{{ detailInfoObj.name }}
<span class="label">
{{ detailInfoObj.type }}
</span>
<span class="label1">
@ -176,45 +272,45 @@
</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 dataSourceCount = ref(0)
const infrastructureCount = ref(0)
const componentCount = ref(0)
const id = router.currentRoute.value.query.id
const returnType = router.currentRoute.value.query.type
const districtType = router.currentRoute.value.query.districtType
const hiddenBackFlag = router.currentRoute.value.query.hiddenBackFlag
const imgSrcYyzy = ref(require('@/assets/newHome/empty.png'))
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 dataSourceCount = ref(0)
const infrastructureCount = ref(0)
const componentCount = ref(0)
const id = router.currentRoute.value.query.id
const returnType = router.currentRoute.value.query.type
const districtType = router.currentRoute.value.query.districtType
const hiddenBackFlag = router.currentRoute.value.query.hiddenBackFlag
const imgSrcYyzy = ref(require('@/assets/newHome/empty.png'))
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',
@ -231,11 +327,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: {
@ -250,9 +346,9 @@ const useWayShowList = ref([
providerMobile: '联系人电话',
},
},
])
])
const combineList = ref([
const combineList = ref([
{
title: '基础设施',
list: [],
@ -265,10 +361,10 @@ const combineList = ref([
title: '数据资源',
list: [],
},
])
const detailInfoObj = ref({})
])
const detailInfoObj = ref({})
onMounted(() => {
onMounted(() => {
window.addEventListener('scroll', () => {
domArr.value = document.querySelectorAll('.scrollBox')
scrollTop.value =
@ -292,21 +388,25 @@ onMounted(() => {
}
}
})
})
})
const selectNav = (key) => {
//
const openScene = (val) => {
window.open(val, '_blank')
}
const selectNav = (key) => {
selectNow.value = key
mybus.emit('flyToView', selectNow.value)
}
}
const getAttrValue = (fuseAttrList, text) => {
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) {
@ -340,7 +440,6 @@ const getIntegrationServicesDeatil = (id) => {
let fuseResourceList = res.data.data.fuseAttrList || []
combineList.value.forEach((item) => {
let arr = []
let resource = fuseResourceList.filter(
(v) => v.attrType == item.title
@ -349,16 +448,13 @@ const getIntegrationServicesDeatil = (id) => {
// let a=resource[0].attrValue
let resourceArrList = JSON.parse(resource[0].attrValue)
if (resourceArrList.length > 0) {
arr = resourceArrList.map((res) => ({
name: res.name,
dept: res.dept,
type: res.type,
}))
item.list = arr
}
})
} else {
//
@ -404,7 +500,6 @@ const getIntegrationServicesDeatil = (id) => {
})
}
detailInfoObj.value.infoList = []
detailInfoObj.value.infoList.push(questionObj)
detailInfoObj.value.infoList.push(areaObj)
@ -413,10 +508,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
@ -430,15 +525,15 @@ function handleOpenUrl(type) {
'hisense_office/onlinePreview?url=' +
btoa(encodeURI(url))
)
}
}
onBeforeUnmount(() => {
onBeforeUnmount(() => {
mybus.off('flyToView')
})
})
</script>
<style lang="less" scoped>
.area {
.area {
padding-top: 93px;
text-align: center;
margin-bottom: 32px;
@ -450,7 +545,6 @@ onBeforeUnmount(() => {
margin-top: 32px;
}
.label {
padding: 0.01rem 0.1rem;
margin-right: 0.1rem;
@ -477,41 +571,39 @@ onBeforeUnmount(() => {
height: 32px;
border-radius: 2px;
border: 1px #0058e1 solid;
}
}
}
.area-desc {
.area-desc {
background: #f6f7f9;
padding: 24px;
width: 1300px;
margin-left: 343px;
margin-bottom: 24px;
}
}
.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;
@ -519,7 +611,7 @@ onBeforeUnmount(() => {
left: 0;
}
.fixed2>div:nth-of-type(3) {
.fixed2 > div:nth-of-type(3) {
margin-top: 0.84rem;
}
@ -557,9 +649,9 @@ onBeforeUnmount(() => {
}
}
}
}
}
.use-way {
.use-way {
padding: 0.8rem 0;
display: flex;
flex-direction: column;
@ -602,9 +694,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;
@ -635,9 +729,9 @@ onBeforeUnmount(() => {
}
}
}
}
}
.pain-point {
.pain-point {
padding: 0.8rem 0;
background: rgb(247, 248, 250);
@ -672,9 +766,9 @@ onBeforeUnmount(() => {
margin: 0rem 0rem 0.1rem 0.1rem;
}
}
}
}
.solution {
.solution {
padding: 0.8rem 0;
background: rgb(247, 248, 250);
@ -686,9 +780,9 @@ onBeforeUnmount(() => {
margin: 0.3rem;
}
}
}
}
.step {
.step {
padding: 0.8rem 0;
background: rgb(247, 248, 250);
@ -698,7 +792,6 @@ onBeforeUnmount(() => {
background: #fff;
.left-process {
padding-left: 18px;
padding-top: 24px;
@ -719,7 +812,6 @@ onBeforeUnmount(() => {
left: -1px;
}
.step-question {
color: #0058e1;
font-weight: bold;
@ -739,7 +831,6 @@ onBeforeUnmount(() => {
}
.node {
cursor: pointer;
font-size: 16px;
line-height: 22.5px;
@ -763,8 +854,6 @@ onBeforeUnmount(() => {
background-color: #fff;
}
.advice {
font-size: 10px;
color: #0058e1;
@ -775,14 +864,11 @@ onBeforeUnmount(() => {
.li1:last-child .borderLeft {
display: none;
}
}
}
}
}
}
.ability {
.ability {
padding: 0.8rem 0;
background: rgb(247, 248, 250);
@ -837,7 +923,8 @@ onBeforeUnmount(() => {
font-size: 16px;
}
.data-count {}
.data-count {
}
}
.name-box {
@ -868,5 +955,5 @@ onBeforeUnmount(() => {
width: 50%;
box-sizing: border-box;
}
}
}
</style>

View File

@ -21,6 +21,15 @@
<span class="xv-qui-zhong-xin">需求中心</span>
<span class="neng-li-shen-qing-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>
</template>
@ -47,6 +56,7 @@
}
}
.TheOverallProcess-content {
width:1920px;
height: 855px;
background: url('~@/assets/menu/TheOverallProcess-bg.png');
position: relative;
@ -166,6 +176,75 @@
left: 125px;
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>

View File

@ -55,6 +55,22 @@
>
{{ item.btnText }} >>
</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 class="img-bg callus-box">
@ -460,6 +476,7 @@
}
.img-box-new {
margin-bottom: -60px;
position: relative;
}
.service-box {
@ -535,6 +552,48 @@
height: 544px;
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 {
display: flex;

View File

@ -97,10 +97,142 @@
<a-empty /></div>
</template>
<!--数据资源和视频资源-->
<!--数据资源-->
<template v-else-if="chooseTab == 1">
<div style="height: 740px;background: #fff; padding-top: 250px;" >
<a-empty></a-empty>
<div style="height: 740px;background: #fff; padding-top: 50px;" >
<div v-if="contentList.data.length > 0">
<div class="content">
<div
class="content-body"
v-for="item in contentList.data"
:key="item.index"
>
<div class="withdraw" v-if="item.approveStatus === '不通过'"></div>
<div class="content-body-title">
<span>
申请单号{{
item.applyNumber || item.GUID || item.BSNUM || '--'
}}
</span>
<div></div>
</div>
<a-tooltip>
<template #title>
{{
item.cameraList
? item.system
: item.title || item.name || item.title || item.BUSINESS_NAME
}}
</template>
<div class="content-body-title">
<span>
名称{{
item.cameraList
? item.system
: item.title ||
item.name ||
item.title ||
item.BUSINESS_NAME
}}
</span>
<div></div>
</div>
</a-tooltip>
<div class="content-body-content">
<p class="content-body-content-son">
审核结果{{ item.bmyijian === 0 ? '审核中' : '审核完成' }}
</p>
<div>
申请日期{{
item.createDate ||
item.startTime ||
item.tbsj ||
(item.CREATE_TIME &&
moment(item.CREATE_TIME.time + 480 * 60 * 1000).format(
'YYYY-MM-DD HH:mm:ss'
))
}}
</div>
<!-- 西海岸--增加过期时间显示 -->
<div v-if="isXiHaiAn">过期时间{{ item.expireDate || '' }}</div>
</div>
<div class="button-box">
<div
class="button"
v-if="typeName == '设备申请' && phoneSate.includes(item.state)"
@click="showPhoneModal(item)"
>
联系方式
</div>
<div class="button" @click="showDetail(item)">查看详情</div>
<div
class="button"
@click="showAdd(item)"
v-if="typeName !== '能力申请' && item.backToFirst"
>
修改
</div>
<svg
t="1652233950228"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="5970"
data-spm-anchor-id="a313x.7781069.0.i8"
width="80"
height="80"
v-if="
item.processDefinitionName != '能力资源下架' &&
item.approveStatus !== '不通过' &&
(item.resourceStatus == 4 || item.resourceStatus == 5)
"
style="position: absolute; top: 20px; left: -850px"
>
<path
d="M955.22053 256C813.82053 11.2 500.72053-72.6 255.92053 68.8S-72.67947 523.2 68.72053 768 523.22053 1096.6 768.02053 955.2c244.7-141.2 328.6-454.1 187.4-698.8 0-0.1-0.1-0.3-0.2-0.4zM762.02053 944.7c-239 138.1-544.8 56.2-682.9-182.8S22.92053 217.1 261.92053 79.1s544.8-56.2 682.9 182.8c137.9 239 56.1 544.6-182.8 682.8z"
fill="#515151"
opacity=".5"
p-id="5971"
></path>
<path
d="M898.12053 289.2C775.02053 76 502.42053 2.9 289.22053 126 76.02053 249.1 3.02053 521.6 126.02053 734.8 249.12053 948 521.62053 1021.1 734.82053 898 947.92053 774.9 1021.02053 502.4 898.12053 289.2zM731.62053 892.8C521.32053 1014.3 252.42053 942.2 131.02053 731.9 9.52053 521.6 81.62053 252.7 291.92053 131.3 502.12053 9.9 771.02053 81.8 892.42053 292c121.5 210.3 49.5 479.3-160.8 600.8z"
fill="#515151"
opacity=".5"
p-id="5972"
></path>
<path
d="M323.62053 176.8c3.6-2 6 0.8 8.8 2.8 6 4.4 12.4 8.8 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.4 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.6 0.6-2zM200.72053 289.2c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 14.8 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.4-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.4-1.2 0-1.6 0.8-2.4l0.2 0.4z m276.6-159.6c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.8-1.2-0.4-1.6 0.4-2.4l0.2 0.4z m141.9 29.6c3.6-2 6 0.8 8.8 2.8l18.8 12.8c7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4-7.7 0.4-15.2 0.8-22.4 0.8-4.4 6.8-8.4 13.2-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.5-1.2 0.2-1.6 0.6-2zM150.02053 430c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-4 14-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.5 0.6-2z m558.9 414.4c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.1 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-1.1 0.8-1.1 1.6-1.1h0.1z m-158.8 50c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.1-3.7-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2-1 4.2-1.7 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.4-0.8 0.8-0.8 1.7-0.7z m276.5-159.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8s-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.2 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0-0.8 0.8-1.2 1.6-1.2l0.1 0.1z m45.6-137.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.2-0.7 0.6-0.7 1.4-0.7h0.3zM402.72053 868c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-0.8 1-1.1 1.7-1.1z"
fill="#515151"
opacity=".5"
p-id="5973"
></path>
<path
d="M386.42053 590.4l-43.8-75.9L207.02053 592.7l10.2 17.7L334.02053 543l23.4 40.4-90.5 52.2-13.5-23.4-18.7 10.8 53.1 92c9.1 15.8 21.2 19.5 36.4 10.7l98.8-57c6.2-3.6 11-9.3 13.4-16.1-1.4-15.9-6.2-31.2-14.2-45l-21.4 4.8c6.7 10.3 11 21.9 12.8 34-1 3.3-3.2 6-6.1 7.8l-88.3 51c-6.2 3.6-11.1 2.1-14.8-4.3l-27.3-47.4 109.3-63.1z m2.9-103.2l10.4 18.1 65.6-37.9 79.9 138.4 18.6-10.8-55.9-96.9c18.8-0.9 43.2-0.6 73 0.7l1.5-23.1c-29.8-0.3-58.4 0.4-86 2.6l-12.5-21.6 74.9-43.2-10.4-18.1-159.1 91.8zM669.52053 329l38.2 66.2 61.4-35.4-38.1-66.1-61.5 35.3z m72.4 24.2l-26.3 15.2-19-33 26.3-15.2 19 33zM599.02053 356.7l7.9 13.7-23.3 13.5 9.8 17 21.8-12.6c7.5 18.7 6.6 39.6-2.5 57.6l20.7 4.4c10.3-23.1 10.3-49.4 0-72.5l18.8-10.9c6 9.2 10.7 19.2 14.2 29.7 0.3 5-2.6 9.7-7.2 11.7-2.9 1.2-6.4 2.8-10.9 4.9l14.1 14.1c3.7-1.3 7.3-2.9 10.7-4.8 8.6-3.9 14.4-12.2 15.2-21.6-5.4-22.1-14.6-43-27.4-61.8l-36.1 20.8-7.9-13.7-17.9 10.5z m29.9 108.1l10 17.4 53.2-30.7c-7.8 23.7-20.6 45.4-37.5 63.6l20.6 11.1c18.6-24.2 30-53.1 33-83.4l29.8 51.5 18.4-10.7-29.8-51.5c27.4 11.5 57.2 16.3 86.9 14.1l3.5-23.5c-24.7 5.1-50.1 5-74.8-0.1l53.5-30.9-10-17.3-69.3 40-7.3-12.6-18.4 10.7L698.02053 425l-69.1 39.8z"
fill="#515151"
opacity=".5"
p-id="5974"
></path>
</svg>
</div>
</div>
</div>
<div class="bottom">
<a-pagination
size="small"
pageSize="4"
:total="total"
:current="page"
@change="handleCurrentChange"
@showSizeChange="handlePageSizeChange"
:showSizeChanger="false"
/>
</div>
</div>
<div style="height: 640px;background: #fff; padding-top: 200px;" v-else>
<a-empty />
</div>
</div>
</template>
<!--UCS内部资源-->
@ -405,7 +537,6 @@ const phoneVisible = ref(false)
//
const changeType = (item, index) => {
debugger
contentList.data = []
formState.value.name = ''
@ -425,11 +556,16 @@ const getChooseeList = () => {
getCloudList()
} else if (index == 3) {//
getVideoList()
}else if (index == 1) {//
getDataList()
}
}
//tab
const handleTab = (index) => {
chooseTab.value = index
if(index==1){
typeName.value = '数据资源'
}
Object.keys(yunForm).map((key) => {
delete yunForm[key]
})
@ -442,6 +578,13 @@ const handleTab = (index) => {
cloudList.data=[]
getCloudResource()
getVideoList()
}else if (index == 1) {//
contentList.data=[]
getDataList()
}else{
contentList.data=[]
typeName.value = '能力申请'
getApplyList()
}
}
const cloudSearchReserve = () => {
@ -452,6 +595,8 @@ const cloudSearchReserve = () => {
getCloudList()
} else if (index == 3) {//
getVideoList()
}else if (index == 1) {//
getDataList()
}
}
//
@ -590,6 +735,7 @@ const showCloudDetail = (item) => {
baseInfo.value = item
}
//ucs
const showDetail = (item) => {
cilckRowData.value = item
// 西-
@ -614,10 +760,10 @@ const showDetail = (item) => {
message.error('数据请求失败!')
}
})
} else if (typeName.value == '数据资源申请') {
} else if (typeName.value == '数据资源') {
yaweiApproveDetails({ applyGuid: item.GUID })
.then((res) => {
console.log('详情===========>', res.data.data)
console.log('数据资源详情===========>', res.data.data)
if (res.data.code !== 0) {
message.error('数据请求失败!')
return
@ -834,6 +980,7 @@ function replacement() {
name.value = ''
getApplyList(name.value)
}
//UCS
const getApplyList = () => {
const params = {
page: page.value,
@ -988,6 +1135,35 @@ const getApplyList = () => {
showType.value = ''
}
}
//
const getDataList = () => {
yaweiApproveStatus({ page: page.value, size: 4, title: '' }).then(
(res) => {
if (res.data.code !== 0) {
num.value = []
total.value = 0
contentList.data = []
contentList2.data = []
showType.value = ''
return
}
// let data1=[{
// GUID:'aa',
// title:'11',
// ywlxr:'111',
// ywlxrdh:'123',
// BUSINESS_NAME:'123'
// }]
console.log('数据资源申请===============>', res.data.data)
contentList.data = res.data.data.data
contentList.data=data1
num.value = []
total.value = res.data.data.cos
showType.value = '数据资源申请'
}
)
}
const onSubmit = () => {
contentList.data = contentList2.data.filter(
(val) => val.BUSINESS_NAME.indexOf(formState.value.name) > -1
@ -995,10 +1171,12 @@ const onSubmit = () => {
}
const handleCurrentChange = (val) => {
page.value = val
if (chooseTab.value == 2) {
if (chooseTab.value == 2) {//
getCloudList()
} else if (chooseTab.value == 3) {//
getVideoList()
} else if (chooseTab.value == 1) {//
getDataList()
} else {
getApplyList()
}
@ -1010,6 +1188,8 @@ const handlePageSizeChange = (val) => {
getCloudList()
} else if (chooseTab.value == 3) {//
getVideoList()
} else if (chooseTab.value == 1) {//
getDataList()
} else {
getApplyList()
}
@ -1026,7 +1206,6 @@ const viewDetail = (processDefinitionName, id, ended, businessKey) => {
})
}
if (processDefinitionName == '能力资源上架') {
console.log('showDetail', id, businessKey, ended)
router.push({
path: '/details',
query: {
@ -1127,7 +1306,6 @@ const showPhoneModal = () => {
}
mybus.on('closeModal', (obj) => {
debugger
detailsVisible.value = false
obj.name=obj.type
changeType(obj, obj.index)