Compare commits
42 Commits
ff44fd4691
...
0a16dd5e84
Author | SHA1 | Date |
---|---|---|
wuhongjian | 0a16dd5e84 | |
wuhongjian | 11362c536d | |
guoyue | 1959ac68f9 | |
guoyue | de2930eda4 | |
guoyue | d6f8ad6f31 | |
guoyue | 3f0f51ad13 | |
guoyue | 2649c45a66 | |
guoyue | f59460da3a | |
guoyue | 9a8be5272e | |
a0049873 | b5a94cd6a7 | |
a0049873 | 9bb633e1e6 | |
lizhicheng2 | ae2e323769 | |
lizhicheng2 | 035a600a3c | |
guoyue | c5d7351809 | |
guoyue | 1ccd81cd66 | |
gaoyuanwei | 636318536b | |
gaoyuanwei | 52c1850cfb | |
wuhongjian | 8ecafcc1ae | |
wuhongjian | 2bf1249913 | |
a0049873 | dafc2ac1be | |
851673013@qq.com | 1cd5db6444 | |
851673013@qq.com | a202bb27c9 | |
a0049873 | 80e9ddf3fc | |
a0049873 | ce5d587c35 | |
a0049873 | 328ab1102e | |
851673013@qq.com | 53f0b38c5a | |
851673013@qq.com | b79f0674bf | |
guoyue | 1d5a81d091 | |
guoyue | 44d1aad7dd | |
gaoyuanwei | 5f0e5bb7ce | |
gaoyuanwei | 879797d0c5 | |
guoyue | 7b04a81d62 | |
guoyue | 6b07f48dd1 | |
guoyue | 32ad0904c2 | |
gaoyuanwei | c8a8a58705 | |
851673013@qq.com | 35d8487a5f | |
851673013@qq.com | 3609c2ba20 | |
lizhicheng2 | 4d31d111ac | |
851673013@qq.com | d8cbe92fb6 | |
gaoyuanwei | 16a624b136 | |
gaoyuanwei | cfa9de0b32 | |
guoyue | 42bad9af8e |
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-04-11 10:11:40
|
* @Date: 2022-04-11 10:11:40
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-08-02 10:16:51
|
* @LastEditTime: 2022-08-02 10:18:38
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
@ -45,9 +45,9 @@
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.166:8888/renren-admin';
|
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.166:8888/renren-admin';
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://124.222.94.39:8888/renren-admin';
|
// window.SITE_CONFIG['apiURL'] = 'http://124.222.94.39:8888/renren-admin';
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://10.16.5.35:8888/renren-admin';
|
// window.SITE_CONFIG['apiURL'] = 'http://10.16.5.35:8888/renren-admin';
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.236:8888/renren-admin';
|
window.SITE_CONFIG['apiURL'] = 'http://192.168.124.236:8888/renren-admin';
|
||||||
window.SITE_CONFIG['previewUrl'] = 'http://localhost:8080/';
|
window.SITE_CONFIG['previewUrl'] = 'http://localhost:8080/';
|
||||||
window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
|
// window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
|
||||||
// WebSocket地址
|
// WebSocket地址
|
||||||
window.SITE_CONFIG['socketURL'] ='ws://localhost:8080/renren-admin/websocket';
|
window.SITE_CONFIG['socketURL'] ='ws://localhost:8080/renren-admin/websocket';
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -40,6 +40,9 @@
|
||||||
<el-button type="primary" style="margin-left:10px;margin-top:4px" size="small" @click="getData">
|
<el-button type="primary" style="margin-left:10px;margin-top:4px" size="small" @click="getData">
|
||||||
搜索
|
搜索
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button type="primary" style="margin-left:10px;margin-top:4px" size="small" @click="clear">
|
||||||
|
重置
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -252,6 +255,8 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
this.checkList.push(item.labelCode)
|
this.checkList.push(item.labelCode)
|
||||||
}
|
}
|
||||||
|
console.log('this.checkList------------>', this.checkList);
|
||||||
|
this.getData()
|
||||||
},
|
},
|
||||||
// 获取列表
|
// 获取列表
|
||||||
getData(parentId = '') {
|
getData(parentId = '') {
|
||||||
|
@ -265,7 +270,7 @@ export default {
|
||||||
gpsX: '',
|
gpsX: '',
|
||||||
gpsY: '',
|
gpsY: '',
|
||||||
radius: '',
|
radius: '',
|
||||||
labelCodes: '',
|
labelCodes: this.checkList.join(),
|
||||||
}
|
}
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this.$http.get('/api/project/selectByParentIdNew', { params: postData }).then(res => {
|
this.$http.get('/api/project/selectByParentIdNew', { params: postData }).then(res => {
|
||||||
|
@ -283,6 +288,7 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
changeParentId(parentId) {
|
changeParentId(parentId) {
|
||||||
|
console.log('parentId------------>', parentId);
|
||||||
this.getData(parentId)
|
this.getData(parentId)
|
||||||
},
|
},
|
||||||
confirmSubmitHandle() {
|
confirmSubmitHandle() {
|
||||||
|
@ -312,6 +318,11 @@ export default {
|
||||||
this.transferData = [];
|
this.transferData = [];
|
||||||
this.$emit('closeModal');
|
this.$emit('closeModal');
|
||||||
},
|
},
|
||||||
|
clear() {
|
||||||
|
this.cameraName = ''
|
||||||
|
this.selectedArray = [];
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
onSelect(item, val, child) {
|
onSelect(item, val, child) {
|
||||||
// mybus.emit('getListByParentId', val.id)
|
this.$emit('changeParentId', val.id)
|
||||||
this.getCameraAllOrgan({ parentId: val.id }).then((res) => {
|
this.getCameraAllOrgan({ parentId: val.id }).then((res) => {
|
||||||
if (res.data.code !== 1) {
|
if (res.data.code !== 1) {
|
||||||
return this.$message.error(res.msg);
|
return this.$message.error(res.msg);
|
||||||
|
|
|
@ -755,6 +755,9 @@ export default {
|
||||||
if (!this.submitFrom.deptContacts) {
|
if (!this.submitFrom.deptContacts) {
|
||||||
this.notFilled.push('部门联系人')
|
this.notFilled.push('部门联系人')
|
||||||
}
|
}
|
||||||
|
if (!this.submitFrom.deptId) {
|
||||||
|
this.notFilled.push('归属部门')
|
||||||
|
}
|
||||||
if (!this.submitFrom.deptPhone) {
|
if (!this.submitFrom.deptPhone) {
|
||||||
this.notFilled.push('部门联系人电话')
|
this.notFilled.push('部门联系人电话')
|
||||||
}
|
}
|
||||||
|
|
|
@ -680,6 +680,9 @@ export default {
|
||||||
if (!this.submitFrom.shareCondition) {
|
if (!this.submitFrom.shareCondition) {
|
||||||
this.notFilled.push('共享条件')
|
this.notFilled.push('共享条件')
|
||||||
}
|
}
|
||||||
|
if (!this.submitFrom.deptId) {
|
||||||
|
this.notFilled.push('归属部门')
|
||||||
|
}
|
||||||
if (!this.submitFrom.deptContacts) {
|
if (!this.submitFrom.deptContacts) {
|
||||||
this.notFilled.push('部门联系人')
|
this.notFilled.push('部门联系人')
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<div class="Ability-to-take-off-the-shelf-approval-title">能力下架审批</div>
|
<div class="Ability-to-take-off-the-shelf-approval-title">能力下架审批</div>
|
||||||
<div class="basic-information">
|
<div class="basic-information">
|
||||||
<div class="basic-information-title">
|
<div class="basic-information-title">
|
||||||
<span></span><span>基本1111信息</span>
|
<span></span><span>基本信息</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-information-content">
|
<div class="basic-information-content">
|
||||||
<p>
|
<p>
|
||||||
|
@ -429,7 +429,7 @@ export default {
|
||||||
.data-list-left {
|
.data-list-left {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
height: 110px;
|
height: 110px;
|
||||||
background: url('~@/assets/img/Capabilitydiagram.png') no-repeat;
|
background: url("~@/assets/img/Capabilitydiagram.png") no-repeat;
|
||||||
background-size: 80px 80px;
|
background-size: 80px 80px;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button @click="flashTableData">查询</el-button>
|
<el-button @click="flashTableData">查询</el-button>
|
||||||
<el-button @click="resetTableData">重置</el-button>
|
<el-button @click="resetTableData">重置</el-button>
|
||||||
|
<el-button type="primary" @click="addTask">任务新增</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-table row-key="id" :data="dataList" border style="width: 100%;">
|
<el-table row-key="id" :data="dataList" border style="width: 100%;">
|
||||||
|
@ -129,7 +130,9 @@ export default {
|
||||||
|
|
||||||
return '未知状态'
|
return '未知状态'
|
||||||
},
|
},
|
||||||
|
addTask () {
|
||||||
|
window.open('http://10.132.191.54:10219/skyline/auth/third/client/view')
|
||||||
|
},
|
||||||
// 重置
|
// 重置
|
||||||
resetTableData () {
|
resetTableData () {
|
||||||
this.queryData.keyworld = ''
|
this.queryData.keyworld = ''
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<el-form :model="dataView">
|
<el-form :model="dataView">
|
||||||
<div v-for="(item, index) in dataView.children" :key="item">
|
<div v-for="(item, index) in dataView.children" :key="item">
|
||||||
<div class="dataTitle">{{ item.name }}</div>
|
<!-- <div class="dataTitle">{{ item.name }}</div> -->
|
||||||
<div v-for="itemson in item.children" :key="itemson.name">
|
<div v-for="itemson in item.children" :key="itemson.name">
|
||||||
<div class="dataTitleSon">
|
<div class="dataTitleSon">
|
||||||
{{ itemson.name }}
|
{{ itemson.name }}
|
||||||
|
@ -21,7 +21,14 @@
|
||||||
:label="
|
:label="
|
||||||
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
|
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
|
||||||
"
|
"
|
||||||
v-show="!(itemsonson.name==='平台地址'|| itemsonson.name==='SDK安装包' || itemsonson.name==='接口请求方式' || itemsonson.name==='服务接口')"
|
v-show="
|
||||||
|
!(
|
||||||
|
itemsonson.name === '平台地址' ||
|
||||||
|
itemsonson.name === 'SDK安装包' ||
|
||||||
|
itemsonson.name === '接口请求方式' ||
|
||||||
|
itemsonson.name === '服务接口'
|
||||||
|
)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="videoAndImgCss"
|
class="videoAndImgCss"
|
||||||
|
@ -40,29 +47,52 @@
|
||||||
v-for="multipleAdditionsItem in itemsonson.note1"
|
v-for="multipleAdditionsItem in itemsonson.note1"
|
||||||
:key="multipleAdditionsItem"
|
:key="multipleAdditionsItem"
|
||||||
>
|
>
|
||||||
<div>
|
<el-tooltip placement="top">
|
||||||
{{
|
<div slot="content">
|
||||||
multipleAdditionsItem.question ||
|
{{
|
||||||
multipleAdditionsItem.type ||
|
multipleAdditionsItem.question ||
|
||||||
multipleAdditionsItem.name
|
multipleAdditionsItem.type ||
|
||||||
}}
|
multipleAdditionsItem.name
|
||||||
</div>
|
}}
|
||||||
<div>
|
</div>
|
||||||
{{
|
<div>
|
||||||
multipleAdditionsItem.answer ||
|
{{
|
||||||
multipleAdditionsItem.price ||
|
multipleAdditionsItem.question ||
|
||||||
multipleAdditionsItem.img
|
multipleAdditionsItem.type ||
|
||||||
}}
|
multipleAdditionsItem.name
|
||||||
</div>
|
}}
|
||||||
<div>{{ multipleAdditionsItem.desc }}</div>
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tooltip placement="top">
|
||||||
|
<div slot="content">
|
||||||
|
{{
|
||||||
|
multipleAdditionsItem.answer ||
|
||||||
|
multipleAdditionsItem.price ||
|
||||||
|
multipleAdditionsItem.img
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{
|
||||||
|
multipleAdditionsItem.answer ||
|
||||||
|
multipleAdditionsItem.price ||
|
||||||
|
multipleAdditionsItem.img
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tooltip placement="top">
|
||||||
|
<div slot="content">{{ multipleAdditionsItem.desc }}</div>
|
||||||
|
<div>{{ multipleAdditionsItem.desc }}</div>
|
||||||
|
</el-tooltip>
|
||||||
<!-- <div>{{ multipleAdditionsItem }}</div> -->
|
<!-- <div>{{ multipleAdditionsItem }}</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<el-tooltip v-else placement="top">
|
||||||
|
<div slot="content">{{ itemsonson.note1 }}</div>
|
||||||
<el-input
|
<el-input
|
||||||
v-else
|
v-model="itemsonson.note1"
|
||||||
v-model="itemsonson.note1"
|
disabled="disabled"
|
||||||
disabled="disabled"
|
></el-input>
|
||||||
></el-input>
|
</el-tooltip>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-for="itemsonson in itemson.children"
|
v-for="itemsonson in itemson.children"
|
||||||
|
@ -70,15 +100,23 @@
|
||||||
:label="
|
:label="
|
||||||
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
|
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
|
||||||
"
|
"
|
||||||
v-show="((itemsonson.name==='平台地址'&&showDocking)|| (itemsonson.name==='SDK安装包'&&showSDK) || (itemsonson.name==='接口请求方式'&&showInterface) || (itemsonson.name==='服务接口'&&showInterface))"
|
v-show="
|
||||||
|
(itemsonson.name === '平台地址' && showDocking) ||
|
||||||
|
(itemsonson.name === 'SDK安装包' && showSDK) ||
|
||||||
|
(itemsonson.name === '接口请求方式' && showInterface) ||
|
||||||
|
(itemsonson.name === '服务接口' && showInterface)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="itemsonson.note1"
|
v-model="itemsonson.note1"
|
||||||
disabled="disabled"
|
disabled="disabled"
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="itemson.name === '算法优势'">
|
<div
|
||||||
|
v-else-if="itemson.name === '算法优势'"
|
||||||
|
style="margin-bottom: 20px"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
v-for="itemDataForm in dataForm.infoList"
|
v-for="itemDataForm in dataForm.infoList"
|
||||||
:key="itemDataForm.attrType"
|
:key="itemDataForm.attrType"
|
||||||
|
@ -94,12 +132,18 @@
|
||||||
style="border: 1px solid #3c9bcd;margin"
|
style="border: 1px solid #3c9bcd;margin"
|
||||||
>
|
>
|
||||||
<div>{{ itemDataFormValue.name }}</div>
|
<div>{{ itemDataFormValue.name }}</div>
|
||||||
<div>{{ itemDataFormValue.desc }}</div>
|
<el-tooltip placement="top">
|
||||||
|
<div slot="content">{{ itemDataFormValue.desc }}</div>
|
||||||
|
<div>{{ itemDataFormValue.desc }}</div>
|
||||||
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="itemson.name === '应用场景'">
|
<div
|
||||||
|
v-else-if="itemson.name === '应用场景'"
|
||||||
|
style="margin-bottom: 20px"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
v-for="itemDataForm in dataForm.infoList"
|
v-for="itemDataForm in dataForm.infoList"
|
||||||
:key="itemDataForm.attrType"
|
:key="itemDataForm.attrType"
|
||||||
|
@ -115,13 +159,19 @@
|
||||||
style="border: 1px solid #3c9bcd;margin"
|
style="border: 1px solid #3c9bcd;margin"
|
||||||
>
|
>
|
||||||
<div>{{ itemDataFormValue.name }}</div>
|
<div>{{ itemDataFormValue.name }}</div>
|
||||||
<div>{{ itemDataFormValue.desc }}</div>
|
<el-tooltip placement="top">
|
||||||
|
<div slot="content">{{ itemDataFormValue.desc }}</div>
|
||||||
|
<div>{{ itemDataFormValue.desc }}</div>
|
||||||
|
</el-tooltip>
|
||||||
<div @click="videoAndImg(itemDataFormValue.img)">浏览</div>
|
<div @click="videoAndImg(itemDataFormValue.img)">浏览</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="itemson.name === '功能介绍'">
|
<div
|
||||||
|
v-else-if="itemson.name === '功能介绍'"
|
||||||
|
style="margin-bottom: 20px"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
v-for="itemDataForm in dataForm.infoList"
|
v-for="itemDataForm in dataForm.infoList"
|
||||||
:key="itemDataForm.attrType"
|
:key="itemDataForm.attrType"
|
||||||
|
@ -137,7 +187,10 @@
|
||||||
style="border: 1px solid #3c9bcd;margin"
|
style="border: 1px solid #3c9bcd;margin"
|
||||||
>
|
>
|
||||||
<div>{{ itemDataFormValue.name }}</div>
|
<div>{{ itemDataFormValue.name }}</div>
|
||||||
<div>{{ itemDataFormValue.desc }}</div>
|
<el-tooltip placement="top">
|
||||||
|
<div slot="content">{{ itemDataFormValue.desc }}</div>
|
||||||
|
<div>{{ itemDataFormValue.desc }}</div>
|
||||||
|
</el-tooltip>
|
||||||
<div @click="videoAndImg(itemDataFormValue.img)">浏览</div>
|
<div @click="videoAndImg(itemDataFormValue.img)">浏览</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -196,30 +249,34 @@ export default {
|
||||||
itemViewSon.children.map((itemSon, indexSon) => {
|
itemViewSon.children.map((itemSon, indexSon) => {
|
||||||
// console.log('itemSon', itemSon)
|
// console.log('itemSon', itemSon)
|
||||||
if (itemSon.name.indexOf('描述') != -1) {
|
if (itemSon.name.indexOf('描述') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.description
|
].children[indexSon].note1 = this.dataForm.description
|
||||||
} else if (itemSon.name.indexOf('名称') != -1) {
|
} else if (itemSon.name.indexOf('名称') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.name
|
].children[indexSon].note1 = this.dataForm.name
|
||||||
} else if (itemSon.name.indexOf('能力类型') != -1) {
|
} else if (itemSon.name.indexOf('能力类型') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.type
|
].children[indexSon].note1 = this.dataForm.type
|
||||||
|
} else if (itemSon.name.indexOf('共享条件') != -1) {
|
||||||
|
this.dataView.children[indexView].children[
|
||||||
|
indexViewSon
|
||||||
|
].children[indexSon].note1 = this.dataForm.shareCondition
|
||||||
} else if (itemSon.name === '部门联系人') {
|
} else if (itemSon.name === '部门联系人') {
|
||||||
console.log('itemSon.name', itemSon.name)
|
console.log('itemSon.name', itemSon.name)
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.deptContacts
|
].children[indexSon].note1 = this.dataForm.deptContacts
|
||||||
} else if (itemSon.name.indexOf('属部门') != -1) {
|
} else if (itemSon.name.indexOf('属部门') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.unit
|
].children[indexSon].note1 = this.unit
|
||||||
} else if (itemSon.name === '部门联系人电话') {
|
} else if (itemSon.name === '部门联系人电话') {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.deptPhone
|
].children[indexSon].note1 = this.dataForm.deptPhone
|
||||||
} else if (
|
} else if (
|
||||||
itemSon.name === '关联组件信息' &&
|
itemSon.name === '关联组件信息' &&
|
||||||
item.attrType === '关联组件信息'
|
item.attrType === '关联组件信息'
|
||||||
|
@ -268,42 +325,42 @@ export default {
|
||||||
itemViewSon.children.map((itemSon, indexSon) => {
|
itemViewSon.children.map((itemSon, indexSon) => {
|
||||||
console.log('itemSon', itemSon)
|
console.log('itemSon', itemSon)
|
||||||
if (itemSon.name.indexOf('描述') != -1) {
|
if (itemSon.name.indexOf('描述') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.description
|
].children[indexSon].note1 = this.dataForm.description
|
||||||
} else if (itemSon.name.indexOf('名称') != -1) {
|
} else if (itemSon.name.indexOf('名称') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.name
|
].children[indexSon].note1 = this.dataForm.name
|
||||||
} else if (itemSon.name.indexOf('共享条件') != -1) {
|
} else if (itemSon.name.indexOf('共享条件') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.shareCondition
|
].children[indexSon].note1 = this.dataForm.shareCondition
|
||||||
} else if (itemSon.name.indexOf('共享方式') != -1) {
|
} else if (itemSon.name.indexOf('共享方式') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.shareMode
|
].children[indexSon].note1 = this.dataForm.shareMode
|
||||||
} else if (itemSon.name.indexOf('共享类型') != -1) {
|
} else if (itemSon.name.indexOf('共享类型') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.shareType
|
].children[indexSon].note1 = this.dataForm.shareType
|
||||||
} else if (itemSon.name === '部门联系人') {
|
} else if (itemSon.name === '部门联系人') {
|
||||||
console.log('itemSon.name', itemSon.name)
|
console.log('itemSon.name', itemSon.name)
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.deptContacts
|
].children[indexSon].note1 = this.dataForm.deptContacts
|
||||||
} else if (itemSon.name.indexOf('属部门') != -1) {
|
} else if (itemSon.name.indexOf('属部门') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.unit
|
].children[indexSon].note1 = this.unit
|
||||||
} else if (itemSon.name === '部门联系人电话') {
|
} else if (itemSon.name === '部门联系人电话') {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.deptPhone
|
].children[indexSon].note1 = this.dataForm.deptPhone
|
||||||
} else if (itemSon.name.indexOf('接口请求方式') != -1) {
|
} else if (itemSon.name.indexOf('接口请求方式') != -1) {
|
||||||
this.dataView.children[indexView].children[indexViewSon].children[
|
this.dataView.children[indexView].children[
|
||||||
indexSon
|
indexViewSon
|
||||||
].note1 = this.dataForm.apiMethodType
|
].children[indexSon].note1 = this.dataForm.apiMethodType
|
||||||
} else if (
|
} else if (
|
||||||
itemSon.name === '来源应用' &&
|
itemSon.name === '来源应用' &&
|
||||||
item.attrType === '来源应用'
|
item.attrType === '来源应用'
|
||||||
|
@ -343,11 +400,11 @@ export default {
|
||||||
this.dataView
|
this.dataView
|
||||||
)
|
)
|
||||||
// 智能算法-使用方式-3种方式联动
|
// 智能算法-使用方式-3种方式联动
|
||||||
this.dataView.children.map(val => {
|
this.dataView.children.map((val) => {
|
||||||
if (val.name === '部署与使用') {
|
if (val.name === '部署与使用') {
|
||||||
val.children.map(val => {
|
val.children.map((val) => {
|
||||||
if (val.name === '使用方式') {
|
if (val.name === '使用方式') {
|
||||||
val.children.map(val => {
|
val.children.map((val) => {
|
||||||
if (val.name === '使用方式') {
|
if (val.name === '使用方式') {
|
||||||
if (val.note1 === 'SDK') {
|
if (val.note1 === 'SDK') {
|
||||||
this.showSDK = true
|
this.showSDK = true
|
||||||
|
@ -432,6 +489,11 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss">
|
||||||
|
.el-tooltip__popper {
|
||||||
|
max-width: 300px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.wrapper {
|
.wrapper {
|
||||||
.dataTitle {
|
.dataTitle {
|
||||||
|
@ -445,7 +507,7 @@ export default {
|
||||||
color: #333333;
|
color: #333333;
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
background: url("~@/assets/img/sj-jx.png") no-repeat;
|
background: url('~@/assets/img/sj-jx.png') no-repeat;
|
||||||
background-position-x: 15px;
|
background-position-x: 15px;
|
||||||
}
|
}
|
||||||
.multipleAdditionsClass {
|
.multipleAdditionsClass {
|
||||||
|
@ -464,6 +526,28 @@ export default {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
line-height: 14px;
|
line-height: 14px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
}
|
||||||
|
& > div:nth-child(2) {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 6;
|
||||||
|
line-height: initial;
|
||||||
|
}
|
||||||
|
& > div:nth-child(3) {
|
||||||
|
width: 90%;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 6;
|
||||||
|
line-height: initial;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -503,7 +587,7 @@ export default {
|
||||||
& > div:nth-child(3) {
|
& > div:nth-child(3) {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 30px;
|
bottom: 8px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
border: 1px solid #3c9bcd;
|
border: 1px solid #3c9bcd;
|
||||||
|
|
|
@ -42,6 +42,12 @@
|
||||||
{{ dataForm.content.applicationSceneStr || '--' }}</span
|
{{ dataForm.content.applicationSceneStr || '--' }}</span
|
||||||
></span>
|
></span>
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>
|
||||||
|
应用背景:<span>
|
||||||
|
{{ dataForm.content.applicationBackground || '--' }}</span
|
||||||
|
></span>
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span>
|
<span>
|
||||||
能力应用期望效果:<span>
|
能力应用期望效果:<span>
|
||||||
|
@ -573,7 +579,7 @@ export default {
|
||||||
}
|
}
|
||||||
.clearfix:after {
|
.clearfix:after {
|
||||||
display: block;
|
display: block;
|
||||||
content: '';
|
content: "";
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
.title {
|
.title {
|
||||||
|
@ -583,7 +589,7 @@ export default {
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
}
|
}
|
||||||
.title:before {
|
.title:before {
|
||||||
content: '';
|
content: "";
|
||||||
width: 6px;
|
width: 6px;
|
||||||
height: 6px;
|
height: 6px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
|
@ -1,32 +1,129 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="risk">
|
<div class="risk">
|
||||||
<contentTitle title="部门能力风险TOP5"></contentTitle>
|
<contentTitle title="部门能力风险TOP5"></contentTitle>
|
||||||
<div class="no-data">暂无数据</div>
|
<div class="no-data" v-if="topData.length > 0">
|
||||||
|
<div
|
||||||
|
class="data-card"
|
||||||
|
v-for="(item, index) in topData"
|
||||||
|
:key="`data${index}`"
|
||||||
|
>
|
||||||
|
<div class="data-index">{{ index + 1 }}</div>
|
||||||
|
<div class="data-name-And-progress">
|
||||||
|
<div class="data-title">{{ item.name }}</div>
|
||||||
|
<div class="data-progress-And-value">
|
||||||
|
<div class="data-progress">
|
||||||
|
<div :style="widthFunction(item.count)"></div>
|
||||||
|
</div>
|
||||||
|
<div class="data-count">
|
||||||
|
{{ item.count }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
class="no-data"
|
||||||
|
v-else
|
||||||
|
style="display: flex; align-items: center; justify-content: center"
|
||||||
|
>
|
||||||
|
暂无数据
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import contentTitle from './content-title.vue'
|
import contentTitle from './content-title.vue'
|
||||||
export default {
|
export default {
|
||||||
components: { contentTitle }
|
components: { contentTitle },
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
oneData: 100,
|
||||||
|
topData: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 判断值域范围
|
||||||
|
widthFunction (value) {
|
||||||
|
value = (value / this.oneData) * 100
|
||||||
|
if (value >= 80) {
|
||||||
|
return `height:10px;width: ${value}%;background: linear-gradient(to right,#ee8a08,#ffcb64)`
|
||||||
|
} else if (value >= 60 && value < 80) {
|
||||||
|
return `height:10px;width: ${value}%;background: linear-gradient(to right,#788da5,#d4dbe4)`
|
||||||
|
} else if (value >= 40 && value < 60) {
|
||||||
|
return `height:10px;width: ${value}%;background: linear-gradient(to right,#d29c62,#e8c5a2)`
|
||||||
|
} else if (value < 40) {
|
||||||
|
return `height:10px;width: ${value}%;background: linear-gradient(to right,#6fa1ef,#9bbef8)`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
queryGroupByDepartment () {
|
||||||
|
this.$http
|
||||||
|
.get(
|
||||||
|
'/gateway-monitor/queryGroupByDepartment?query=topk(5, sum(label_replace(apigateway_http_status{code!="200"}, "deptInfo", "$1", "matched_uri", "/juapi/(.*?)/(.*?)/.*")) by (deptInfo))&time=1659058871'
|
||||||
|
)
|
||||||
|
.then((res) => {
|
||||||
|
console.log(res.data.data)
|
||||||
|
if (res.data.data) {
|
||||||
|
this.topData = res.data.data
|
||||||
|
this.oneData = this.topData[0].count
|
||||||
|
} else {
|
||||||
|
this.topData = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted () {
|
||||||
|
this.queryGroupByDepartment()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.risk {
|
.risk {
|
||||||
width: 540px;
|
width: 540px;
|
||||||
height: 335px;
|
height: 335px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
padding: 0 16px;
|
padding: 0 16px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.no-data {
|
.no-data {
|
||||||
width: 520px;
|
width: 520px;
|
||||||
height: 287px;
|
height: 287px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
line-height: 232px;
|
font-size: 16px;
|
||||||
font-size: 16px;
|
color: #212121;
|
||||||
color: #212121;
|
text-align: center;
|
||||||
text-align: center;
|
.data-card {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
.data-index {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 16px;
|
||||||
|
color: #515151;
|
||||||
|
margin-right: 13px;
|
||||||
|
}
|
||||||
|
.data-name-And-progress {
|
||||||
|
.data-title {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 16px;
|
||||||
|
color: #515151;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.data-progress-And-value {
|
||||||
|
display: flex;
|
||||||
|
.data-progress {
|
||||||
|
width: 422px;
|
||||||
|
height: 10px;
|
||||||
|
background: #eeeeee;
|
||||||
|
}
|
||||||
|
.data-count {
|
||||||
|
margin-left: 20px;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 14px;
|
||||||
|
color: #2b2b2b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-03-29 16:45:25
|
* @Date: 2022-03-29 16:45:25
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-08-02 10:16:41
|
* @LastEditTime: 2022-08-02 10:18:50
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2020-07-07 16:03:23
|
* @Date: 2020-07-07 16:03:23
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-07-28 16:57:28
|
* @LastEditTime: 2022-08-02 10:18:58
|
||||||
* @Description: 数据资源参数配置
|
* @Description: 数据资源参数配置
|
||||||
*/
|
*/
|
||||||
const newLocation = 'qingdao'
|
const newLocation = 'qingdao'
|
||||||
|
@ -14,6 +14,8 @@ const whoShow = {}
|
||||||
const launchedDataNumObject = {}
|
const launchedDataNumObject = {}
|
||||||
// 导航数据
|
// 导航数据
|
||||||
const navListManagement = {}
|
const navListManagement = {}
|
||||||
|
// 无人机单兵数据
|
||||||
|
const uavAndIndividualSoldier = {}
|
||||||
// 基础设施
|
// 基础设施
|
||||||
const infrastructure = {}
|
const infrastructure = {}
|
||||||
// 区市站点数据
|
// 区市站点数据
|
||||||
|
@ -149,6 +151,341 @@ else if (newLocation === 'baotou') {
|
||||||
// xihaian
|
// xihaian
|
||||||
else if (newLocation === 'xihaian') {
|
else if (newLocation === 'xihaian') {
|
||||||
whoShow.itShowXiHaiAn = true
|
whoShow.itShowXiHaiAn = true
|
||||||
|
infrastructure.deptName = '西海岸新区大数据发展'
|
||||||
|
// infrastructure.deptId = '1067246875800000066'
|
||||||
|
uavAndIndividualSoldier.num = 4
|
||||||
|
uavAndIndividualSoldier.uavList = [
|
||||||
|
{
|
||||||
|
name: '经纬 M300 RTK-1',
|
||||||
|
url: '',
|
||||||
|
details: [
|
||||||
|
{
|
||||||
|
name: '飞行器',
|
||||||
|
attribute: {
|
||||||
|
尺寸: '尺寸(展开,不包含桨叶):810×670×430 mm(长×宽×高);尺寸(折叠,包含桨叶):430×420×430 mm(长×宽×高)',
|
||||||
|
对称电机轴距: '895 mm',
|
||||||
|
'重量(含下置单云台支架):空机重量(不含电池)':
|
||||||
|
'3.6 kg;空机重量(含双电池):6.3 kg',
|
||||||
|
单云台减震球最大负重: '930g',
|
||||||
|
最大起飞重量: '9 kg',
|
||||||
|
工作频率: '2.4000-2.4835 GHz;5.725-5.850 GHz',
|
||||||
|
'发射功率(EIRP)':
|
||||||
|
'2.4000-2.4835 GHz:29.5 dBm(FCC)、18.5dBm(CE)、18.5 dBm(SRRC)、18.5dBm(MIC);5.725-5.850 GHz:28.5 dBm(FCC)、12.5dBm(CE)、28.5 dBm(SRRC)',
|
||||||
|
'悬停精度(P-GPS)':
|
||||||
|
'垂直:±0.1 m(视觉定位正常工作时)、±0.5 m(GPS 正常工作时)、±0.1 m(RTK 定位正常工作时);水平:±0.3 m(视觉定位正常工作时)、±1.5 m(GPS 正常工作时)、±0.1 m(RTK 定位正常工作时)',
|
||||||
|
'RTK 位置精度':
|
||||||
|
'在 RTK FIX 时:1 cm+1 ppm(水平)、1.5 cm + 1 ppm(垂直)',
|
||||||
|
最大旋转角速度: '俯仰轴:300°/s、航向轴:100°/s',
|
||||||
|
最大俯仰角度: '30° (P模式且前视视觉系统启用:25°)',
|
||||||
|
最大上升速度: 'S 模式:6 m/s、P 模式:5 m/s',
|
||||||
|
'最大下降速度(垂直)': 'S 模式:5 m/s、P 模式:4 m/s',
|
||||||
|
最大倾斜下降速度: 'S 模式:7 m/s',
|
||||||
|
最大水平飞行速度: 'S 模式:23 m/s、P 模式:17 m/s',
|
||||||
|
最大飞行海拔高度:
|
||||||
|
'5000 m(2110 桨叶,起飞重量≤7 kg)/ 7000 m(2195 高原静音桨叶,起飞重量≤7 kg)',
|
||||||
|
最大可承受风速: '15m/s(起飞及降落阶段为12m/s)',
|
||||||
|
最大飞行时间: '55 min',
|
||||||
|
'适配 DJI 云台':
|
||||||
|
'禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
|
||||||
|
支持云台安装方式:
|
||||||
|
'下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
|
||||||
|
'IP 防护等级': 'IP45',
|
||||||
|
GNSS: 'GPS+GLONASS+BeiDou+Galileo',
|
||||||
|
工作环境温度: '-20°C 至 50°C',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '遥控器',
|
||||||
|
attribute: {
|
||||||
|
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
|
||||||
|
'最大信号有效距离(无干扰、无遮挡)':
|
||||||
|
'NCC/FCC:15 km、CE/MIC:8 km、SRRC:8 km',
|
||||||
|
'等效全向辐射功率(EIRP)':
|
||||||
|
'2.4000-2.4835 GHz:29.5 dBm(FCC);18.5dBm(CE)、18.5 dBm(SRRC);18.5dBm(MIC);5.725-5.850 GHz:28.5 dBm(FCC);12.5dBm(CE)、20.5 dBm(SRRC)',
|
||||||
|
外置电池:
|
||||||
|
'名称:WB37 智能电池;容量:4920 mAh;电压:7.6 V;电池类型:LiPo;能量:37.39 Wh;充电时间(使用 BS60 智能电池箱):70 分钟(15°C 至 45°C);130 分钟(0°C 至 15°C)',
|
||||||
|
内置电池:
|
||||||
|
'类型:18650 锂离子电池 (5000 mAh @ 7.2 V);充电方式:使用规格为 12V/2A 的 USB 充电器;额定功率:17 W;充电时间:2 小时 15 分钟(使用规格为12V/2A 的 USB 充电器)',
|
||||||
|
续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时',
|
||||||
|
'USB-A 接口供电电压/电流': '5 V / 1.5 A',
|
||||||
|
工作环境温度: '-20° 至 40° C',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '视觉系统',
|
||||||
|
attribute: {
|
||||||
|
障碍物感知范围: '前后左右:0.7-40 m、上下:0.6-30 m',
|
||||||
|
FOV: '前后下:65°(H),50°(V)、左右上:75°(H),60°(V)',
|
||||||
|
使用环境:
|
||||||
|
'表面有丰富纹理,光照条件充足(>15 lux,室内日光灯正常照射环境)',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '红外感知系统',
|
||||||
|
attribute: {
|
||||||
|
障碍物感知范围: '0.1-8 m',
|
||||||
|
FOV: '30°(±15°)',
|
||||||
|
使用环境: '漫反射,大尺寸,高反射率(反射率>10%)障碍物',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '上下补光灯',
|
||||||
|
attribute: {
|
||||||
|
有效照明距离: '5 m',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'FPV摄像头',
|
||||||
|
attribute: {
|
||||||
|
分辨率: '960p',
|
||||||
|
FOV: '145°',
|
||||||
|
帧率: '30 fps',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '智能飞行电池',
|
||||||
|
attribute: {
|
||||||
|
型号: 'TB60',
|
||||||
|
容量: '5935 mAh',
|
||||||
|
电压: '52.8 V',
|
||||||
|
电池类型: 'LiPo 12S',
|
||||||
|
能量: '274 Wh',
|
||||||
|
电池整体重量: '约 1.35 kg',
|
||||||
|
工作环境温度: '-20℃ 至 50℃',
|
||||||
|
理想存放环境温度: '22℃ 至 30℃',
|
||||||
|
充电环境温度:
|
||||||
|
'-20°C 至 40°C(当环境温度低于 5°C时,电池会启动自加热功能,在低温环境下充电有可能会降低电池使用寿命)',
|
||||||
|
充电时间:
|
||||||
|
'使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'BS60智能电池箱',
|
||||||
|
attribute: {
|
||||||
|
外形尺寸: '501×403×252 mm',
|
||||||
|
空箱重量: '8.37 kg',
|
||||||
|
可放置物品: 'TB60 智能飞行电池 8 块、WB37 智能电池 4 块',
|
||||||
|
输入电压: '100-120 VAC,50-60 Hz / 220-240 VAC,50-60 Hz',
|
||||||
|
最大输入功率: '1070 W',
|
||||||
|
输出功率: '100-120 V:750 W、220-240 V:992 W',
|
||||||
|
工作环境温度: '-20℃ 至 40℃',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '经纬 M300 RTK-2',
|
||||||
|
url: '',
|
||||||
|
details: [
|
||||||
|
{
|
||||||
|
name: '飞行器',
|
||||||
|
attribute: {
|
||||||
|
尺寸: '尺寸(展开,不包含桨叶):810×670×430 mm(长×宽×高);尺寸(折叠,包含桨叶):430×420×430 mm(长×宽×高)',
|
||||||
|
对称电机轴距: '895 mm',
|
||||||
|
'重量(含下置单云台支架):空机重量(不含电池)':
|
||||||
|
'3.6 kg;空机重量(含双电池):6.3 kg',
|
||||||
|
单云台减震球最大负重: '930g',
|
||||||
|
最大起飞重量: '9 kg',
|
||||||
|
工作频率: '2.4000-2.4835 GHz;5.725-5.850 GHz',
|
||||||
|
'发射功率(EIRP)':
|
||||||
|
'2.4000-2.4835 GHz:29.5 dBm(FCC)、18.5dBm(CE)、18.5 dBm(SRRC)、18.5dBm(MIC);5.725-5.850 GHz:28.5 dBm(FCC)、12.5dBm(CE)、28.5 dBm(SRRC)',
|
||||||
|
'悬停精度(P-GPS)':
|
||||||
|
'垂直:±0.1 m(视觉定位正常工作时)、±0.5 m(GPS 正常工作时)、±0.1 m(RTK 定位正常工作时);水平:±0.3 m(视觉定位正常工作时)、±1.5 m(GPS 正常工作时)、±0.1 m(RTK 定位正常工作时)',
|
||||||
|
'RTK 位置精度':
|
||||||
|
'在 RTK FIX 时:1 cm+1 ppm(水平)、1.5 cm + 1 ppm(垂直)',
|
||||||
|
最大旋转角速度: '俯仰轴:300°/s、航向轴:100°/s',
|
||||||
|
最大俯仰角度: '30° (P模式且前视视觉系统启用:25°)',
|
||||||
|
最大上升速度: 'S 模式:6 m/s、P 模式:5 m/s',
|
||||||
|
'最大下降速度(垂直)': 'S 模式:5 m/s、P 模式:4 m/s',
|
||||||
|
最大倾斜下降速度: 'S 模式:7 m/s',
|
||||||
|
最大水平飞行速度: 'S 模式:23 m/s、P 模式:17 m/s',
|
||||||
|
最大飞行海拔高度:
|
||||||
|
'5000 m(2110 桨叶,起飞重量≤7 kg)/ 7000 m(2195 高原静音桨叶,起飞重量≤7 kg)',
|
||||||
|
最大可承受风速: '15m/s(起飞及降落阶段为12m/s)',
|
||||||
|
最大飞行时间: '55 min',
|
||||||
|
'适配 DJI 云台':
|
||||||
|
'禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
|
||||||
|
支持云台安装方式:
|
||||||
|
'下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
|
||||||
|
'IP 防护等级': 'IP45',
|
||||||
|
GNSS: 'GPS+GLONASS+BeiDou+Galileo',
|
||||||
|
工作环境温度: '-20°C 至 50°C',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '遥控器',
|
||||||
|
attribute: {
|
||||||
|
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
|
||||||
|
'最大信号有效距离(无干扰、无遮挡)':
|
||||||
|
'NCC/FCC:15 km、CE/MIC:8 km、SRRC:8 km',
|
||||||
|
'等效全向辐射功率(EIRP)':
|
||||||
|
'2.4000-2.4835 GHz:29.5 dBm(FCC);18.5dBm(CE)、18.5 dBm(SRRC);18.5dBm(MIC);5.725-5.850 GHz:28.5 dBm(FCC);12.5dBm(CE)、20.5 dBm(SRRC)',
|
||||||
|
外置电池:
|
||||||
|
'名称:WB37 智能电池;容量:4920 mAh;电压:7.6 V;电池类型:LiPo;能量:37.39 Wh;充电时间(使用 BS60 智能电池箱):70 分钟(15°C 至 45°C);130 分钟(0°C 至 15°C)',
|
||||||
|
内置电池:
|
||||||
|
'类型:18650 锂离子电池 (5000 mAh @ 7.2 V);充电方式:使用规格为 12V/2A 的 USB 充电器;额定功率:17 W;充电时间:2 小时 15 分钟(使用规格为12V/2A 的 USB 充电器)',
|
||||||
|
续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时',
|
||||||
|
'USB-A 接口供电电压/电流': '5 V / 1.5 A',
|
||||||
|
工作环境温度: '-20° 至 40° C',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '视觉系统',
|
||||||
|
attribute: {
|
||||||
|
障碍物感知范围: '前后左右:0.7-40 m、上下:0.6-30 m',
|
||||||
|
FOV: '前后下:65°(H),50°(V)、左右上:75°(H),60°(V)',
|
||||||
|
使用环境:
|
||||||
|
'表面有丰富纹理,光照条件充足(>15 lux,室内日光灯正常照射环境)',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '红外感知系统',
|
||||||
|
attribute: {
|
||||||
|
障碍物感知范围: '0.1-8 m',
|
||||||
|
FOV: '30°(±15°)',
|
||||||
|
使用环境: '漫反射,大尺寸,高反射率(反射率>10%)障碍物',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '上下补光灯',
|
||||||
|
attribute: {
|
||||||
|
有效照明距离: '5 m',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'FPV摄像头',
|
||||||
|
attribute: {
|
||||||
|
分辨率: '960p',
|
||||||
|
FOV: '145°',
|
||||||
|
帧率: '30 fps',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '智能飞行电池',
|
||||||
|
attribute: {
|
||||||
|
型号: 'TB60',
|
||||||
|
容量: '5935 mAh',
|
||||||
|
电压: '52.8 V',
|
||||||
|
电池类型: 'LiPo 12S',
|
||||||
|
能量: '274 Wh',
|
||||||
|
电池整体重量: '约 1.35 kg',
|
||||||
|
工作环境温度: '-20℃ 至 50℃',
|
||||||
|
理想存放环境温度: '22℃ 至 30℃',
|
||||||
|
充电环境温度:
|
||||||
|
'-20°C 至 40°C(当环境温度低于 5°C时,电池会启动自加热功能,在低温环境下充电有可能会降低电池使用寿命)',
|
||||||
|
充电时间:
|
||||||
|
'使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'BS60智能电池箱',
|
||||||
|
attribute: {
|
||||||
|
外形尺寸: '501×403×252 mm',
|
||||||
|
空箱重量: '8.37 kg',
|
||||||
|
可放置物品: 'TB60 智能飞行电池 8 块、WB37 智能电池 4 块',
|
||||||
|
输入电压: '100-120 VAC,50-60 Hz / 220-240 VAC,50-60 Hz',
|
||||||
|
最大输入功率: '1070 W',
|
||||||
|
输出功率: '100-120 V:750 W、220-240 V:992 W',
|
||||||
|
工作环境温度: '-20℃ 至 40℃',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
uavAndIndividualSoldier.individualSoldier = [
|
||||||
|
{
|
||||||
|
name: 'T950天通-1',
|
||||||
|
type: '单兵设备',
|
||||||
|
details: {
|
||||||
|
基本信息: {
|
||||||
|
外观设计: '172X81X15.7(不含天线),336g',
|
||||||
|
操作系统: 'Android P',
|
||||||
|
CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
|
||||||
|
存储: '标配:6GB ROM +128G RAM',
|
||||||
|
显示屏: '6.52吋水滴屏;HD+,1600*720(20:9)',
|
||||||
|
后置摄像头:
|
||||||
|
'后置为4800万主摄+200万微距+200万红外三摄组合,支持闪光灯',
|
||||||
|
前置摄像头: '1600万',
|
||||||
|
传感器相关:
|
||||||
|
'指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
|
||||||
|
WLAN: '802.11a/b/g/n/AC 支持MIMO',
|
||||||
|
电池: '6000mAh@3.8V,内置不可拆卸,支持18W快充',
|
||||||
|
工作时间: '待机时长180h,卫星通话时长16h',
|
||||||
|
},
|
||||||
|
制式频段: {
|
||||||
|
卫星频段: '天通一号卫星',
|
||||||
|
频段: '2G:GSM 850/900/1800/1900;3G:WCDMA850/900/1900/2100;4G:TD-LTE B38/39/40/41;4G:FDD-LTE B1/3/5/7/8;5G: N1,N28,N41, N78,N79',
|
||||||
|
双卡: '双nano卡(卫星卡+运营商全网通卡)',
|
||||||
|
CA: 'B1+B3 下行 2CA(电信);B40/41带内上下行 2CA',
|
||||||
|
VOLTE: '支持',
|
||||||
|
},
|
||||||
|
IO接口: {
|
||||||
|
USB接口类型: 'TYPE-C USB3.0,支持OTG功能',
|
||||||
|
耳机接口: '3.5mm,美标',
|
||||||
|
存储卡: '支持TF卡扩展',
|
||||||
|
},
|
||||||
|
其它功能: {
|
||||||
|
蓝牙: 'V5.0',
|
||||||
|
定位: 'GPS、北斗混合定位、单北斗模式',
|
||||||
|
NFC: '支持',
|
||||||
|
充电方式: '三种充电方式(线充、座充、磁吸充电)',
|
||||||
|
按键: '开机键、音量+/-、 SOS(侧面)、PTT按键',
|
||||||
|
},
|
||||||
|
环境适应性: {
|
||||||
|
工作温度: '-20°~ 60°',
|
||||||
|
存储温度: '-40°~ 80°',
|
||||||
|
高温高湿: '(95±3)%(≧40°),24小时',
|
||||||
|
防护等级: 'IP68',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'T950天通-2',
|
||||||
|
type: '单兵设备',
|
||||||
|
details: {
|
||||||
|
基本信息: {
|
||||||
|
外观设计: '172X81X15.7(不含天线),336g',
|
||||||
|
操作系统: 'Android P',
|
||||||
|
CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
|
||||||
|
存储: '标配:6GB ROM +128G RAM',
|
||||||
|
显示屏: '6.52吋水滴屏;HD+,1600*720(20:9)',
|
||||||
|
后置摄像头:
|
||||||
|
'后置为4800万主摄+200万微距+200万红外三摄组合,支持闪光灯',
|
||||||
|
前置摄像头: '1600万',
|
||||||
|
传感器相关:
|
||||||
|
'指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
|
||||||
|
WLAN: '802.11a/b/g/n/AC 支持MIMO',
|
||||||
|
电池: '6000mAh@3.8V,内置不可拆卸,支持18W快充',
|
||||||
|
工作时间: '待机时长180h,卫星通话时长16h',
|
||||||
|
},
|
||||||
|
制式频段: {
|
||||||
|
卫星频段: '天通一号卫星',
|
||||||
|
频段: '2G:GSM 850/900/1800/1900;3G:WCDMA850/900/1900/2100;4G:TD-LTE B38/39/40/41;4G:FDD-LTE B1/3/5/7/8;5G: N1,N28,N41, N78,N79',
|
||||||
|
双卡: '双nano卡(卫星卡+运营商全网通卡)',
|
||||||
|
CA: 'B1+B3 下行 2CA(电信);B40/41带内上下行 2CA',
|
||||||
|
VOLTE: '支持',
|
||||||
|
},
|
||||||
|
IO接口: {
|
||||||
|
USB接口类型: 'TYPE-C USB3.0,支持OTG功能',
|
||||||
|
耳机接口: '3.5mm,美标',
|
||||||
|
存储卡: '支持TF卡扩展',
|
||||||
|
},
|
||||||
|
其它功能: {
|
||||||
|
蓝牙: 'V5.0',
|
||||||
|
定位: 'GPS、北斗混合定位、单北斗模式',
|
||||||
|
NFC: '支持',
|
||||||
|
充电方式: '三种充电方式(线充、座充、磁吸充电)',
|
||||||
|
按键: '开机键、音量+/-、 SOS(侧面)、PTT按键',
|
||||||
|
},
|
||||||
|
环境适应性: {
|
||||||
|
工作温度: '-20°~ 60°',
|
||||||
|
存储温度: '-40°~ 80°',
|
||||||
|
高温高湿: '(95±3)%(≧40°),24小时',
|
||||||
|
防护等级: 'IP68',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
navListManagement.navList = [
|
navListManagement.navList = [
|
||||||
{ name: '共享门户', key: 'home' },
|
{ name: '共享门户', key: 'home' },
|
||||||
{ name: '能力集市', key: 'DetailsPageconetent' },
|
{ name: '能力集市', key: 'DetailsPageconetent' },
|
||||||
|
@ -164,7 +501,7 @@ else if (newLocation === 'xihaian') {
|
||||||
footerDataList.footerList = {
|
footerDataList.footerList = {
|
||||||
company: {
|
company: {
|
||||||
left: '青岛西海岸新区大数据发展促进局建设',
|
left: '青岛西海岸新区大数据发展促进局建设',
|
||||||
right: 'v0.8.1.5',
|
right: 'v0.8.3.3',
|
||||||
},
|
},
|
||||||
address: [
|
address: [
|
||||||
{
|
{
|
||||||
|
|
|
@ -97,7 +97,7 @@ export function callTheTrendPort(start, end, params) {
|
||||||
export function totalCallsSnum(params) {
|
export function totalCallsSnum(params) {
|
||||||
return request({
|
return request({
|
||||||
url:
|
url:
|
||||||
`metrics/api/v1/query?query=sum(increase(apigateway_http_status))&time=${params}`,
|
`/metrics/api/v1/query?time=${params}&query=sum(apigateway_http_status)`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ export function totalCallsSnum(params) {
|
||||||
export function totalCallsSnum2(params) {
|
export function totalCallsSnum2(params) {
|
||||||
return request({
|
return request({
|
||||||
url:
|
url:
|
||||||
`metrics/api/v1/query?query=sum(increase(apigateway_http_status{code=~"^2.."}))&time=${params}`,
|
`metrics/api/v1/query?query=sum(apigateway_http_status{code=~"^2.."})&time=${params}`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
After Width: | Height: | Size: 128 KiB |
After Width: | Height: | Size: 137 KiB |
After Width: | Height: | Size: 177 KiB |
After Width: | Height: | Size: 119 KiB |
After Width: | Height: | Size: 278 KiB |
After Width: | Height: | Size: 119 KiB |
After Width: | Height: | Size: 608 KiB |
After Width: | Height: | Size: 478 KiB |
After Width: | Height: | Size: 123 KiB |
|
@ -122,6 +122,9 @@
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
case '基础设施':
|
case '基础设施':
|
||||||
|
if (uavAndIndividualSoldier.num) {
|
||||||
|
val.count = val.count - 0 + uavAndIndividualSoldier.num
|
||||||
|
}
|
||||||
dataList.value.dataList.push({
|
dataList.value.dataList.push({
|
||||||
organization: '个',
|
organization: '个',
|
||||||
type: '基础设施',
|
type: '基础设施',
|
||||||
|
@ -237,7 +240,7 @@
|
||||||
type: 'pie',
|
type: 'pie',
|
||||||
selectedMode: 'single',
|
selectedMode: 'single',
|
||||||
radius: ['50%', '30%'],
|
radius: ['50%', '30%'],
|
||||||
color: ['#fe845e', '#6cc95a', '#02d1b0', '#1772ff', '#fe8455'],
|
color: ['#fe845e', '#6cc95a', '#02d1b0', '#1772ff', '#FAC858'],
|
||||||
top: '0',
|
top: '0',
|
||||||
label: {
|
label: {
|
||||||
normal: {
|
normal: {
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
import * as moment from 'moment'
|
import * as moment from 'moment'
|
||||||
import * as echarts from 'echarts'
|
import * as echarts from 'echarts'
|
||||||
import { applyAmount, trafficStatistics } from '@/api/abilityStatistics'
|
import { applyAmount, trafficStatistics } from '@/api/abilityStatistics'
|
||||||
const quarter = ref(['近七天', '近14天', '月度'])
|
const quarter = ref(['近七天', '近十四天', '月度'])
|
||||||
let startDate = ref('')
|
let startDate = ref('')
|
||||||
let endDate = ref('')
|
let endDate = ref('')
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
hebdomad()
|
hebdomad()
|
||||||
swtichname.value = '日'
|
swtichname.value = '日'
|
||||||
break
|
break
|
||||||
case '近14天':
|
case '近十四天':
|
||||||
fortnight()
|
fortnight()
|
||||||
swtichname.value = '14日'
|
swtichname.value = '14日'
|
||||||
break
|
break
|
||||||
|
|
|
@ -408,18 +408,14 @@
|
||||||
//总调用次数接口
|
//总调用次数接口
|
||||||
const TotalCallsAPI = () => {
|
const TotalCallsAPI = () => {
|
||||||
const end = Date.parse(new Date()) / 1000
|
const end = Date.parse(new Date()) / 1000
|
||||||
if (!xinhaianIsShow) {
|
totalCallsSnum(end).then((res) => {
|
||||||
totalCallsSnum(end).then((res) => {
|
debugger
|
||||||
snum.value[1].num = res.data.data.result[0].value[1]
|
snum.value[1].num = res.data.data.result[0].value[1]
|
||||||
totalCallsSnum2(end).then((resSon) => {
|
totalCallsSnum2(end).then((resSon) => {
|
||||||
snum.value[2].num =
|
snum.value[2].num =
|
||||||
((snum.value[1].num - resSon.data.data.result[0].value[1]) /
|
(resSon.data.data.result[0].value[1] / snum.value[1].num) * 100 + '%'
|
||||||
snum.value[1].num) *
|
|
||||||
100 +
|
|
||||||
'%'
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
const init = () => {
|
const init = () => {
|
||||||
timeSwitch(timeSwitchindex.value)
|
timeSwitch(timeSwitchindex.value)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-19 10:15:33
|
* @Date: 2022-06-19 10:15:33
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-06-22 17:03:21
|
* @LastEditTime: 2022-07-30 17:33:54
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -87,6 +87,11 @@
|
||||||
myDataList.value.forEach((val) => {
|
myDataList.value.forEach((val) => {
|
||||||
const obj = res.data.data.filter((item) => item.type === val.title)[0]
|
const obj = res.data.data.filter((item) => item.type === val.title)[0]
|
||||||
if (obj) {
|
if (obj) {
|
||||||
|
if (obj.type == '视频资源数量') {
|
||||||
|
if (uavAndIndividualSoldier.num) {
|
||||||
|
obj.amount = obj.amount - 0 + uavAndIndividualSoldier.num
|
||||||
|
}
|
||||||
|
}
|
||||||
val.snum = obj.amount
|
val.snum = obj.amount
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -429,6 +429,9 @@
|
||||||
if (!dataFrom.value.shareCondition) {
|
if (!dataFrom.value.shareCondition) {
|
||||||
notFilled.value.push('共享条件')
|
notFilled.value.push('共享条件')
|
||||||
}
|
}
|
||||||
|
if (!dataFrom.value.deptId) {
|
||||||
|
notFilled.value.push('归属部门')
|
||||||
|
}
|
||||||
if (!dataFrom.value.deptContacts) {
|
if (!dataFrom.value.deptContacts) {
|
||||||
notFilled.value.push('部门联系人')
|
notFilled.value.push('部门联系人')
|
||||||
}
|
}
|
||||||
|
@ -677,7 +680,9 @@
|
||||||
break
|
break
|
||||||
case '归属部门':
|
case '归属部门':
|
||||||
dataFrom.value.deptId = obj.attrValue
|
dataFrom.value.deptId = obj.attrValue
|
||||||
dataFrom.value.deptName = obj.attrValueTwo.label
|
if (obj.attrValueTwo) {
|
||||||
|
dataFrom.value.deptName = obj.attrValueTwo.label
|
||||||
|
}
|
||||||
break
|
break
|
||||||
case '部门联系人':
|
case '部门联系人':
|
||||||
dataFrom.value.deptContacts = obj.attrValue
|
dataFrom.value.deptContacts = obj.attrValue
|
||||||
|
|
|
@ -323,6 +323,9 @@
|
||||||
if (!dataFrom.value.description) {
|
if (!dataFrom.value.description) {
|
||||||
notFilled.value.push('应用描述')
|
notFilled.value.push('应用描述')
|
||||||
}
|
}
|
||||||
|
if (!dataFrom.value.deptId) {
|
||||||
|
notFilled.value.push('归属部门')
|
||||||
|
}
|
||||||
if (!dataFrom.value.deptContacts) {
|
if (!dataFrom.value.deptContacts) {
|
||||||
notFilled.value.push('部门联系人')
|
notFilled.value.push('部门联系人')
|
||||||
}
|
}
|
||||||
|
@ -522,7 +525,9 @@
|
||||||
break
|
break
|
||||||
case '归属部门':
|
case '归属部门':
|
||||||
dataFrom.value.deptId = obj.attrValue
|
dataFrom.value.deptId = obj.attrValue
|
||||||
dataFrom.value.deptName = obj.attrValueTwo.label
|
if (obj.attrValueTwo) {
|
||||||
|
dataFrom.value.deptName = obj.attrValueTwo.label
|
||||||
|
}
|
||||||
break
|
break
|
||||||
case '部门联系人':
|
case '部门联系人':
|
||||||
dataFrom.value.deptContacts = obj.attrValue
|
dataFrom.value.deptContacts = obj.attrValue
|
||||||
|
|
|
@ -399,6 +399,9 @@
|
||||||
if (!dataFrom.value.shareCondition) {
|
if (!dataFrom.value.shareCondition) {
|
||||||
notFilled.value.push('共享条件')
|
notFilled.value.push('共享条件')
|
||||||
}
|
}
|
||||||
|
if (!dataFrom.value.deptId) {
|
||||||
|
notFilled.value.push('归属部门')
|
||||||
|
}
|
||||||
if (!dataFrom.value.deptContacts) {
|
if (!dataFrom.value.deptContacts) {
|
||||||
notFilled.value.push('部门联系人')
|
notFilled.value.push('部门联系人')
|
||||||
}
|
}
|
||||||
|
@ -600,7 +603,9 @@
|
||||||
break
|
break
|
||||||
case '归属部门':
|
case '归属部门':
|
||||||
dataFrom.value.deptId = obj.attrValue
|
dataFrom.value.deptId = obj.attrValue
|
||||||
dataFrom.value.deptName = obj.attrValueTwo.label
|
if (obj.attrValueTwo) {
|
||||||
|
dataFrom.value.deptName = obj.attrValueTwo.label
|
||||||
|
}
|
||||||
break
|
break
|
||||||
case '部门联系人':
|
case '部门联系人':
|
||||||
dataFrom.value.deptContacts = obj.attrValue
|
dataFrom.value.deptContacts = obj.attrValue
|
||||||
|
|
|
@ -398,6 +398,9 @@
|
||||||
if (!dataFrom.value.shareCondition) {
|
if (!dataFrom.value.shareCondition) {
|
||||||
notFilled.value.push('共享条件')
|
notFilled.value.push('共享条件')
|
||||||
}
|
}
|
||||||
|
if (!dataFrom.value.deptId) {
|
||||||
|
notFilled.value.push('归属部门')
|
||||||
|
}
|
||||||
if (!dataFrom.value.deptContacts) {
|
if (!dataFrom.value.deptContacts) {
|
||||||
notFilled.value.push('部门联系人')
|
notFilled.value.push('部门联系人')
|
||||||
}
|
}
|
||||||
|
@ -599,7 +602,9 @@
|
||||||
break
|
break
|
||||||
case '归属部门':
|
case '归属部门':
|
||||||
dataFrom.value.deptId = obj.attrValue
|
dataFrom.value.deptId = obj.attrValue
|
||||||
dataFrom.value.deptName = obj.attrValueTwo.label
|
if (obj.attrValueTwo) {
|
||||||
|
dataFrom.value.deptName = obj.attrValueTwo.label
|
||||||
|
}
|
||||||
break
|
break
|
||||||
case '部门联系人':
|
case '部门联系人':
|
||||||
dataFrom.value.deptContacts = obj.attrValue
|
dataFrom.value.deptContacts = obj.attrValue
|
||||||
|
|
|
@ -298,6 +298,9 @@
|
||||||
if (!dataFrom.value.shareCondition) {
|
if (!dataFrom.value.shareCondition) {
|
||||||
notFilled.value.push('共享条件')
|
notFilled.value.push('共享条件')
|
||||||
}
|
}
|
||||||
|
if (!dataFrom.value.deptId) {
|
||||||
|
notFilled.value.push('归属部门')
|
||||||
|
}
|
||||||
if (!dataFrom.value.deptContacts) {
|
if (!dataFrom.value.deptContacts) {
|
||||||
notFilled.value.push('部门联系人')
|
notFilled.value.push('部门联系人')
|
||||||
}
|
}
|
||||||
|
@ -496,7 +499,9 @@
|
||||||
break
|
break
|
||||||
case '归属部门':
|
case '归属部门':
|
||||||
dataFrom.value.deptId = obj.attrValue
|
dataFrom.value.deptId = obj.attrValue
|
||||||
dataFrom.value.deptName = obj.attrValueTwo.label
|
if (obj.attrValueTwo) {
|
||||||
|
dataFrom.value.deptName = obj.attrValueTwo.label
|
||||||
|
}
|
||||||
break
|
break
|
||||||
case '部门联系人':
|
case '部门联系人':
|
||||||
dataFrom.value.deptContacts = obj.attrValue
|
dataFrom.value.deptContacts = obj.attrValue
|
||||||
|
|
|
@ -477,6 +477,8 @@
|
||||||
:render="(item) => item.title"
|
:render="(item) => item.title"
|
||||||
@change="handleChangeOther"
|
@change="handleChangeOther"
|
||||||
@selectChange="handleSelectChangeOther"
|
@selectChange="handleSelectChangeOther"
|
||||||
|
show-search
|
||||||
|
:filter-option="filterOptionTransfer"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
@ -927,7 +929,7 @@
|
||||||
mockDataOther.value.push({
|
mockDataOther.value.push({
|
||||||
key: val.id,
|
key: val.id,
|
||||||
title: val.name,
|
title: val.name,
|
||||||
description: val.id,
|
description: val.name,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -948,7 +950,7 @@
|
||||||
mockDataOther.value.push({
|
mockDataOther.value.push({
|
||||||
key: val.id,
|
key: val.id,
|
||||||
title: val.name,
|
title: val.name,
|
||||||
description: val.id,
|
description: val.name,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -978,6 +980,11 @@
|
||||||
console.log('targetSelectedKeys: ', targetSelectedKeys, sourceSelectedKeys)
|
console.log('targetSelectedKeys: ', targetSelectedKeys, sourceSelectedKeys)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const filterOptionTransfer = (inputValue, option) => {
|
||||||
|
console.log(option, 'option')
|
||||||
|
return option.description.indexOf(inputValue) > -1
|
||||||
|
}
|
||||||
|
|
||||||
const handleOk = (e) => {
|
const handleOk = (e) => {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
visibleAssociatedApplicationOther.value = false
|
visibleAssociatedApplicationOther.value = false
|
||||||
|
|
|
@ -47,10 +47,7 @@
|
||||||
<div :class="contentLocation(1, dataFrom.attrType)">
|
<div :class="contentLocation(1, dataFrom.attrType)">
|
||||||
<div class="content-right-scene" :class="'content-right-case'">
|
<div class="content-right-scene" :class="'content-right-case'">
|
||||||
<div class="content-top">{{ itemSonTitle.name }}</div>
|
<div class="content-top">{{ itemSonTitle.name }}</div>
|
||||||
<a-tooltip>
|
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
||||||
<template #title>{{ itemSonTitle.desc }}</template>
|
|
||||||
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
|
||||||
</a-tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -170,10 +167,10 @@
|
||||||
.tab-top {
|
.tab-top {
|
||||||
min-width: 120px;
|
min-width: 120px;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
line-height: 24px;
|
line-height: 26px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
max-width: 200px;
|
max-width: 200px;
|
||||||
height: 24px;
|
height: 26px;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
|
|
|
@ -85,7 +85,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
line-height: 20px;
|
div:last-child {
|
||||||
|
line-height: 34px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.content-bottom {
|
.content-bottom {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -258,7 +258,7 @@
|
||||||
// white-space: nowrap;
|
// white-space: nowrap;
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
max-width: 7rem;
|
max-width: 6rem;
|
||||||
text-overflow: -o-ellipsis-lastline;
|
text-overflow: -o-ellipsis-lastline;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|
|
@ -402,7 +402,7 @@
|
||||||
.content-right-left {
|
.content-right-left {
|
||||||
border-right: 0.01rem solid #707fe0;
|
border-right: 0.01rem solid #707fe0;
|
||||||
padding-right: 0.1rem;
|
padding-right: 0.1rem;
|
||||||
margin-right: 0.1rem;
|
margin-right: 0.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-right-title {
|
.content-right-title {
|
||||||
|
@ -424,12 +424,12 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
// width: 1.60rem;
|
width: 2.3rem;
|
||||||
height: 0.2rem;
|
height: 0.2rem;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
// overflow: hidden;
|
overflow: hidden;
|
||||||
margin-bottom: 0.08rem;
|
margin-bottom: 0.08rem;
|
||||||
white-space: nowrap;
|
// white-space: nowrap;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
|
|
|
@ -89,7 +89,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
line-height: 20px;
|
div:last-child {
|
||||||
|
line-height: 34px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-bottom {
|
.content-bottom {
|
||||||
|
|
|
@ -47,10 +47,7 @@
|
||||||
<div class="content-right">
|
<div class="content-right">
|
||||||
<div class="content-right-scene">
|
<div class="content-right-scene">
|
||||||
<div class="content-top">{{ itemSonTitle.name }}</div>
|
<div class="content-top">{{ itemSonTitle.name }}</div>
|
||||||
<a-tooltip>
|
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
||||||
<template #title>{{ itemSonTitle.desc }}</template>
|
|
||||||
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
|
||||||
</a-tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -153,10 +150,10 @@
|
||||||
.tab-top {
|
.tab-top {
|
||||||
min-width: 1.2rem;
|
min-width: 1.2rem;
|
||||||
font-size: 0.24rem;
|
font-size: 0.24rem;
|
||||||
line-height: 0.24rem;
|
line-height: 0.26rem;
|
||||||
margin-bottom: 0.2rem;
|
margin-bottom: 0.2rem;
|
||||||
max-width: 2rem;
|
max-width: 2rem;
|
||||||
height: 0.24rem;
|
height: 0.26rem;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<div class="card-title">{{ item.childrenTitle }}</div>
|
<div class="card-title">{{ item.childrenTitle }}</div>
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<div v-for="carditem in item.childrenContent" :key="carditem">
|
<div v-for="carditem in item.childrenContent" :key="carditem">
|
||||||
<div>
|
<div style="display: flex">
|
||||||
<span>{{ carditem.attrType }}:</span>
|
<span>{{ carditem.attrType }}:</span>
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>{{ carditem.attrValue }}</template>
|
<template #title>{{ carditem.attrValue }}</template>
|
||||||
|
@ -220,11 +220,21 @@
|
||||||
|
|
||||||
div {
|
div {
|
||||||
max-width: 2.8rem;
|
max-width: 2.8rem;
|
||||||
|
display: flex;
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
// text-overflow: ellipsis;
|
// text-overflow: ellipsis;
|
||||||
// display: -webkit-box;
|
// display: -webkit-box;
|
||||||
// -webkit-box-orient: vertical;
|
// -webkit-box-orient: vertical;
|
||||||
// -webkit-line-clamp: 1;
|
// -webkit-line-clamp: 1;
|
||||||
|
span:last-child {
|
||||||
|
display: block;
|
||||||
|
width: 2.3rem;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 1;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,16 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-08 15:25:33
|
* @Date: 2022-06-08 15:25:33
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-07-16 17:03:24
|
* @LastEditTime: 2022-08-01 17:52:20
|
||||||
* @Description: 应用展示 视频播放
|
* @Description: 应用展示 视频播放
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="application-presentation" v-if="flag">
|
<div
|
||||||
|
class="application-presentation"
|
||||||
|
id="application-presentation"
|
||||||
|
v-if="flag"
|
||||||
|
>
|
||||||
<detals-title title="应用展示" type="IMAGE&VIDEO"></detals-title>
|
<detals-title title="应用展示" type="IMAGE&VIDEO"></detals-title>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="left" @click="chagneShow()"></div>
|
<div class="left" @click="chagneShow()"></div>
|
||||||
|
@ -33,6 +37,7 @@
|
||||||
</div>
|
</div>
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model:visible="visible"
|
v-model:visible="visible"
|
||||||
|
:getContainer="() => document.getElementById('application-presentation')"
|
||||||
title="视频预览"
|
title="视频预览"
|
||||||
:width="750"
|
:width="750"
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
|
@ -84,7 +89,19 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const showModal = () => {
|
const showModal = () => {
|
||||||
|
// console.log(
|
||||||
|
// '点击视频==================>',
|
||||||
|
// document.documentElement.scrollTop,
|
||||||
|
// document.body.scrollTop
|
||||||
|
// )
|
||||||
visible.value = true
|
visible.value = true
|
||||||
|
// window.setTimeout(() => {
|
||||||
|
// console.log(
|
||||||
|
// '点击视频==================>',
|
||||||
|
// document.documentElement.scrollTop,
|
||||||
|
// document.body.scrollTop
|
||||||
|
// )
|
||||||
|
// }, 1000)
|
||||||
}
|
}
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dataList: { type: Object, default: null },
|
dataList: { type: Object, default: null },
|
||||||
|
|
|
@ -44,14 +44,6 @@
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom" v-if="props.dataList.id">
|
<div class="bottom" v-if="props.dataList.id">
|
||||||
<a-button type="primary" @click="toView()">
|
|
||||||
<template #icon><form-outlined /></template>
|
|
||||||
申请使用
|
|
||||||
</a-button>
|
|
||||||
<a-button type="primary" @click="addShoppingCart()">
|
|
||||||
<template #icon><shopping-cart-outlined /></template>
|
|
||||||
加入购物车
|
|
||||||
</a-button>
|
|
||||||
<!-- 融合服务 存在fuseResourceList -->
|
<!-- 融合服务 存在fuseResourceList -->
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -63,6 +55,18 @@
|
||||||
</template>
|
</template>
|
||||||
申请使用
|
申请使用
|
||||||
</a-button>
|
</a-button>
|
||||||
|
<a-button v-else type="primary" @click="toView()">
|
||||||
|
<template #icon><form-outlined /></template>
|
||||||
|
申请使用
|
||||||
|
</a-button>
|
||||||
|
<a-button
|
||||||
|
v-if="!dataList.fuseResourceList"
|
||||||
|
type="primary"
|
||||||
|
@click="addShoppingCart()"
|
||||||
|
>
|
||||||
|
<template #icon><shopping-cart-outlined /></template>
|
||||||
|
加入购物车
|
||||||
|
</a-button>
|
||||||
<a-button type="primary" @click="goTOCollection()">
|
<a-button type="primary" @click="goTOCollection()">
|
||||||
{{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏
|
{{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏
|
||||||
</a-button>
|
</a-button>
|
||||||
|
@ -257,7 +261,7 @@
|
||||||
margin-right: 0.2rem;
|
margin-right: 0.2rem;
|
||||||
font-size: 0.4rem;
|
font-size: 0.4rem;
|
||||||
margin-right: 0.2rem;
|
margin-right: 0.2rem;
|
||||||
max-width: 7rem;
|
max-width: 6rem;
|
||||||
text-overflow: -o-ellipsis-lastline;
|
text-overflow: -o-ellipsis-lastline;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|
|
@ -47,10 +47,7 @@
|
||||||
<div :class="contentLocation(1, dataFrom.attrType)">
|
<div :class="contentLocation(1, dataFrom.attrType)">
|
||||||
<div class="content-right-scene" :class="'content-right-case'">
|
<div class="content-right-scene" :class="'content-right-case'">
|
||||||
<div class="content-top">{{ itemSonTitle.name }}</div>
|
<div class="content-top">{{ itemSonTitle.name }}</div>
|
||||||
<a-tooltip>
|
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
||||||
<template #title>{{ itemSonTitle.desc }}</template>
|
|
||||||
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
|
||||||
</a-tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -170,10 +167,10 @@
|
||||||
.tab-top {
|
.tab-top {
|
||||||
min-width: 120px;
|
min-width: 120px;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
line-height: 24px;
|
line-height: 26px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
max-width: 200px;
|
max-width: 200px;
|
||||||
height: 24px;
|
height: 26px;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
|
|
|
@ -85,7 +85,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 0.2rem;
|
margin-bottom: 0.2rem;
|
||||||
line-height: 0.2rem;
|
div:last-child {
|
||||||
|
line-height: 0.34rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.content-bottom {
|
.content-bottom {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -47,10 +47,7 @@
|
||||||
<div class="content-right">
|
<div class="content-right">
|
||||||
<div class="content-right-scene">
|
<div class="content-right-scene">
|
||||||
<!-- <div class="content-top">{{ itemSonTitle.name }}</div>-->
|
<!-- <div class="content-top">{{ itemSonTitle.name }}</div>-->
|
||||||
<a-tooltip>
|
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
||||||
<template #title>{{ itemSonTitle.desc }}</template>
|
|
||||||
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
|
||||||
</a-tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -150,10 +147,10 @@
|
||||||
.tab-top {
|
.tab-top {
|
||||||
min-width: 1.2rem;
|
min-width: 1.2rem;
|
||||||
font-size: 0.24rem;
|
font-size: 0.24rem;
|
||||||
line-height: 0.24rem;
|
line-height: 0.26rem;
|
||||||
margin-bottom: 0.2rem;
|
margin-bottom: 0.2rem;
|
||||||
max-width: 2rem;
|
max-width: 2rem;
|
||||||
height: 0.24rem;
|
height: 0.26rem;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
|
|
|
@ -243,7 +243,7 @@
|
||||||
// white-space: nowrap;
|
// white-space: nowrap;
|
||||||
font-size: 0.4rem;
|
font-size: 0.4rem;
|
||||||
margin-right: 0.2rem;
|
margin-right: 0.2rem;
|
||||||
max-width: 7rem;
|
max-width: 6rem;
|
||||||
text-overflow: -o-ellipsis-lastline;
|
text-overflow: -o-ellipsis-lastline;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|
|
@ -322,7 +322,7 @@
|
||||||
.content-right-left {
|
.content-right-left {
|
||||||
border-right: 0.01rem solid #707fe0;
|
border-right: 0.01rem solid #707fe0;
|
||||||
padding-right: 0.1rem;
|
padding-right: 0.1rem;
|
||||||
margin-right: 0.1rem;
|
margin-right: 0.3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-right-title {
|
.content-right-title {
|
||||||
|
@ -344,12 +344,11 @@
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
// width: 1.60rem;
|
min-width: 2.2rem;
|
||||||
height: 0.2rem;
|
height: 0.2rem;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
// overflow: hidden;
|
overflow: hidden;
|
||||||
margin-bottom: 0.08rem;
|
margin-bottom: 0.08rem;
|
||||||
white-space: nowrap;
|
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
margin-right: 0.15rem;
|
margin-right: 0.15rem;
|
||||||
|
|
|
@ -47,10 +47,7 @@
|
||||||
<div :class="contentLocation(1, dataFrom.attrType)">
|
<div :class="contentLocation(1, dataFrom.attrType)">
|
||||||
<div class="content-right-scene" :class="'content-right-case'">
|
<div class="content-right-scene" :class="'content-right-case'">
|
||||||
<div class="content-top">{{ itemSonTitle.name }}</div>
|
<div class="content-top">{{ itemSonTitle.name }}</div>
|
||||||
<a-tooltip>
|
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
||||||
<template #title>{{ itemSonTitle.desc }}</template>
|
|
||||||
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
|
||||||
</a-tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -170,10 +167,10 @@
|
||||||
.tab-top {
|
.tab-top {
|
||||||
min-width: 120px;
|
min-width: 120px;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
line-height: 24px;
|
line-height: 26px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
max-width: 200px;
|
max-width: 200px;
|
||||||
height: 24px;
|
height: 26px;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
|
|
|
@ -85,7 +85,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
line-height: 20px;
|
div:last-child {
|
||||||
|
line-height: 34px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.content-bottom {
|
.content-bottom {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -47,10 +47,7 @@
|
||||||
<div class="content-right">
|
<div class="content-right">
|
||||||
<div class="content-right-scene">
|
<div class="content-right-scene">
|
||||||
<div class="content-top">{{ itemSonTitle.name }}</div>
|
<div class="content-top">{{ itemSonTitle.name }}</div>
|
||||||
<a-tooltip>
|
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
||||||
<template #title>{{ itemSonTitle.desc }}</template>
|
|
||||||
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
|
||||||
</a-tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -149,11 +146,11 @@
|
||||||
.tab-top {
|
.tab-top {
|
||||||
min-width: 1.2rem;
|
min-width: 1.2rem;
|
||||||
font-size: 0.24rem;
|
font-size: 0.24rem;
|
||||||
line-height: 0.24rem;
|
line-height: 0.26rem;
|
||||||
margin-bottom: 0.2rem;
|
margin-bottom: 0.2rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
max-width: 2rem;
|
max-width: 2rem;
|
||||||
height: 0.24rem;
|
height: 0.26rem;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
|
|
|
@ -265,7 +265,7 @@
|
||||||
// -webkit-line-clamp: 1;
|
// -webkit-line-clamp: 1;
|
||||||
& > span:last-child {
|
& > span:last-child {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 1.49rem;
|
width: 2rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
|
@ -246,7 +246,7 @@
|
||||||
// white-space: nowrap;
|
// white-space: nowrap;
|
||||||
font-size: 0.4rem;
|
font-size: 0.4rem;
|
||||||
margin-right: 0.2rem;
|
margin-right: 0.2rem;
|
||||||
max-width: 7rem;
|
max-width: 6rem;
|
||||||
text-overflow: -o-ellipsis-lastline;
|
text-overflow: -o-ellipsis-lastline;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|
|
@ -47,10 +47,7 @@
|
||||||
<div :class="contentLocation(1, dataFrom.attrType)">
|
<div :class="contentLocation(1, dataFrom.attrType)">
|
||||||
<div class="content-right-scene" :class="'content-right-case'">
|
<div class="content-right-scene" :class="'content-right-case'">
|
||||||
<div class="content-top">{{ itemSonTitle.name }}</div>
|
<div class="content-top">{{ itemSonTitle.name }}</div>
|
||||||
<a-tooltip>
|
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
||||||
<template #title>{{ itemSonTitle.desc }}</template>
|
|
||||||
<div class="content-bottom">{{ itemSonTitle.desc }}</div>
|
|
||||||
</a-tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -170,10 +167,10 @@
|
||||||
.tab-top {
|
.tab-top {
|
||||||
min-width: 120px;
|
min-width: 120px;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
line-height: 24px;
|
line-height: 26px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
max-width: 200px;
|
max-width: 200px;
|
||||||
height: 24px;
|
height: 26px;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
|
|
|
@ -85,7 +85,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 0.2rem;
|
margin-bottom: 0.2rem;
|
||||||
line-height: 0.2rem;
|
div:last-child {
|
||||||
|
line-height: 34px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.content-bottom {
|
.content-bottom {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -239,7 +239,7 @@
|
||||||
// white-space: nowrap;
|
// white-space: nowrap;
|
||||||
font-size: 0.4rem;
|
font-size: 0.4rem;
|
||||||
margin-right: 0.2rem;
|
margin-right: 0.2rem;
|
||||||
max-width: 7rem;
|
max-width: 6rem;
|
||||||
text-overflow: -o-ellipsis-lastline;
|
text-overflow: -o-ellipsis-lastline;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|
|
@ -345,8 +345,8 @@
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
// width: 1.60rem;
|
width: 2.6rem;
|
||||||
height: 0.2rem;
|
// height: 0.2rem;
|
||||||
margin-right: 0.15rem;
|
margin-right: 0.15rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
? 'kfzj'
|
? 'kfzj'
|
||||||
: val.componentType == '业务组件'
|
: val.componentType == '业务组件'
|
||||||
? 'ywzj'
|
? 'ywzj'
|
||||||
: ''
|
: 'znsf'
|
||||||
"
|
"
|
||||||
></div>
|
></div>
|
||||||
<div class="text">
|
<div class="text">
|
||||||
|
@ -49,8 +49,8 @@
|
||||||
<div class="description">
|
<div class="description">
|
||||||
{{
|
{{
|
||||||
val.description ||
|
val.description ||
|
||||||
(val.note1 &&
|
((val.note1 || '') &&
|
||||||
JSON.parse(val.note1)[0].channelName +
|
( JSON.parse(val.note1)[0].channelName || '--') +
|
||||||
'等' +
|
'等' +
|
||||||
JSON.parse(val.note1).length +
|
JSON.parse(val.note1).length +
|
||||||
'个摄像头') ||
|
'个摄像头') ||
|
||||||
|
|
|
@ -269,14 +269,14 @@
|
||||||
class="resultListSearchInput"
|
class="resultListSearchInput"
|
||||||
/>
|
/>
|
||||||
<button class="button-reset" @click="chongzhi()">重置</button>
|
<button class="button-reset" @click="chongzhi()">重置</button>
|
||||||
<button
|
<!-- <button
|
||||||
v-if="Cardsname == '应用资源'"
|
v-if="Cardsname == '应用资源'"
|
||||||
class="button-reset"
|
class="button-reset"
|
||||||
@click="applyAll()"
|
@click="applyAll()"
|
||||||
style="margin-left: 0.1rem"
|
style="margin-left: 0.1rem"
|
||||||
>
|
>
|
||||||
全部申请
|
全部申请
|
||||||
</button>
|
</button> -->
|
||||||
<div class="hengxian"></div>
|
<div class="hengxian"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -44,7 +44,6 @@
|
||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item
|
<a-form-item
|
||||||
style="margin: 0 22px"
|
style="margin: 0 22px"
|
||||||
label="电话"
|
label="电话"
|
||||||
|
@ -62,7 +61,6 @@
|
||||||
v-model:value="formName.phone"
|
v-model:value="formName.phone"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item
|
<a-form-item
|
||||||
label="单位"
|
label="单位"
|
||||||
name="unit"
|
name="unit"
|
||||||
|
@ -138,7 +136,6 @@
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a-form-item
|
<a-form-item
|
||||||
style="color: #666; font-size: 16px"
|
style="color: #666; font-size: 16px"
|
||||||
label="申请单附件"
|
label="申请单附件"
|
||||||
|
@ -179,7 +176,6 @@
|
||||||
</div>
|
</div>
|
||||||
</a-upload>
|
</a-upload>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<div class="bottom-btn">
|
<div class="bottom-btn">
|
||||||
<a-button
|
<a-button
|
||||||
style="
|
style="
|
||||||
|
@ -232,7 +228,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import AbilityToApplyFor from './AbilityToApplyFor.vue'
|
import AbilityToApplyFor from './AbilityToApplyFor.vue'
|
||||||
import HomeHeader from '@/views/home/components/header'
|
import HomeHeader from '@/views/home/components/header'
|
||||||
|
@ -260,7 +255,6 @@
|
||||||
import { pageWithAttrs } from '@/api/home'
|
import { pageWithAttrs } from '@/api/home'
|
||||||
// import { baseURL } from '@/config'
|
// import { baseURL } from '@/config'
|
||||||
// import AsideMenu from './components/asideMenu.vue'
|
// import AsideMenu from './components/asideMenu.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: '',
|
name: '',
|
||||||
props: {},
|
props: {},
|
||||||
|
@ -310,6 +304,8 @@
|
||||||
const formName = reactive({
|
const formName = reactive({
|
||||||
title: applyAll
|
title: applyAll
|
||||||
? '全部应用资源申请'
|
? '全部应用资源申请'
|
||||||
|
: list.value[0].arr && list.value[0].arr[0].type == '单兵设备'
|
||||||
|
? '单兵设备申请'
|
||||||
: list.value[0].children
|
: list.value[0].children
|
||||||
? list.value[0].children
|
? list.value[0].children
|
||||||
.filter((val) => val.id == list.value[0].checkedList[0])[0]
|
.filter((val) => val.id == list.value[0].checkedList[0])[0]
|
||||||
|
@ -425,65 +421,122 @@
|
||||||
return message.error('请设置表单名称')
|
return message.error('请设置表单名称')
|
||||||
}
|
}
|
||||||
if (!applyAll) {
|
if (!applyAll) {
|
||||||
let ids = []
|
console.log(list.value[0].arr[0])
|
||||||
let falgNum = 0
|
// 单兵设备为了演示 添加 不做处理
|
||||||
let sxt = true
|
if (list.value[0].arr[0].type == '单兵设备') {
|
||||||
formName.system = []
|
message.success('单兵设备申请提交成功!')
|
||||||
console.log('list==================', list.value)
|
router.push({
|
||||||
list.value.map((val) => {
|
path: '/DetailsPageconetent',
|
||||||
val.arr.map((item) => {
|
query: {
|
||||||
if (item.type !== '基础设施') {
|
select: '组件服务',
|
||||||
falgNum++
|
},
|
||||||
}
|
|
||||||
})
|
})
|
||||||
})
|
} else {
|
||||||
list.value.map((val) => {
|
let ids = []
|
||||||
val.arr.map((item) => {
|
let falgNum = 0
|
||||||
if (item.type !== '基础设施') {
|
let sxt = true
|
||||||
formName.system.push({
|
formName.system = []
|
||||||
resourceId: item.resourceId,
|
console.log('list==================', list.value)
|
||||||
resourceName: item.resourceName,
|
list.value.map((val) => {
|
||||||
})
|
val.arr.map((item) => {
|
||||||
falgNum++
|
if (item.type !== '基础设施') {
|
||||||
console.log(item.id)
|
falgNum++
|
||||||
if (item.id) {
|
|
||||||
ids.push(item.id)
|
|
||||||
}
|
}
|
||||||
} else {
|
})
|
||||||
let obj = {}
|
})
|
||||||
Object.assign(obj, formName)
|
list.value.map((val) => {
|
||||||
console.log('摄像头===============>', obj, item)
|
val.arr.map((item) => {
|
||||||
obj.system = []
|
if (item.type !== '基础设施') {
|
||||||
item.note1 = JSON.parse(item.note1)
|
formName.system.push({
|
||||||
item.note1.map((sxt) => {
|
resourceId: item.resourceId,
|
||||||
obj.system.push({
|
resourceName: item.resourceName,
|
||||||
resourceId: sxt.idtCameraChannel + '',
|
|
||||||
resourceName: sxt.channelName,
|
|
||||||
cameraId: sxt.channelId, // 改接口后删除
|
|
||||||
channelCode: sxt.channelCode,
|
|
||||||
channelId: sxt.channelId,
|
|
||||||
channelName: sxt.channelName,
|
|
||||||
checkStatus: sxt.checkStatus + '',
|
|
||||||
gpsX: sxt.gpsX,
|
|
||||||
gpsY: sxt.gpsY,
|
|
||||||
idtCameraChannel: sxt.idtCameraChannel + '',
|
|
||||||
nodeName: sxt.nodeName,
|
|
||||||
parentId: sxt.parentId,
|
|
||||||
status: sxt.status + '',
|
|
||||||
})
|
})
|
||||||
})
|
falgNum++
|
||||||
submitApply(obj).then((res) => {
|
console.log(item.id)
|
||||||
// applySuccess.value = false
|
|
||||||
console.log('摄像头申请================>', res)
|
|
||||||
if (item.id) {
|
if (item.id) {
|
||||||
sgcDel({ ids: [item.id] }).then((res1) => {
|
ids.push(item.id)
|
||||||
if (res1.data.msg === 'success') {
|
}
|
||||||
if (falgNum == 0 && sxt) {
|
} else {
|
||||||
message.success(
|
let obj = {}
|
||||||
'申请提交成功,请到消息中心查看!'
|
Object.assign(obj, formName)
|
||||||
)
|
console.log('摄像头===============>', obj, item)
|
||||||
sxt = false
|
obj.system = []
|
||||||
|
item.note1 = JSON.parse(item.note1)
|
||||||
|
item.note1.map((sxt) => {
|
||||||
|
obj.system.push({
|
||||||
|
resourceId: sxt.idtCameraChannel + '',
|
||||||
|
resourceName: sxt.channelName,
|
||||||
|
cameraId: sxt.channelId, // 改接口后删除
|
||||||
|
channelCode: sxt.channelCode,
|
||||||
|
channelId: sxt.channelId,
|
||||||
|
channelName: sxt.channelName,
|
||||||
|
checkStatus: sxt.checkStatus + '',
|
||||||
|
gpsX: sxt.gpsX,
|
||||||
|
gpsY: sxt.gpsY,
|
||||||
|
idtCameraChannel: sxt.idtCameraChannel + '',
|
||||||
|
nodeName: sxt.nodeName,
|
||||||
|
parentId: sxt.parentId,
|
||||||
|
status: sxt.status + '',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
submitApply(obj).then((res) => {
|
||||||
|
// applySuccess.value = false
|
||||||
|
console.log('摄像头申请================>', res)
|
||||||
|
if (item.id) {
|
||||||
|
sgcDel({ ids: [item.id] }).then((res1) => {
|
||||||
|
if (res1.data.msg === 'success') {
|
||||||
|
if (falgNum == 0 && sxt) {
|
||||||
|
message.success(
|
||||||
|
'申请提交成功,请到消息中心查看!'
|
||||||
|
)
|
||||||
|
sxt = false
|
||||||
|
}
|
||||||
|
mybus.emit('getSgcNum')
|
||||||
|
router.push({
|
||||||
|
path: '/DetailsPageconetent',
|
||||||
|
query: {
|
||||||
|
select: '组件服务',
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
if (
|
||||||
|
res.data.msg === 'success' &&
|
||||||
|
falgNum == 0 &&
|
||||||
|
sxt
|
||||||
|
) {
|
||||||
|
message.success('申请提交成功,请到消息中心查看!')
|
||||||
|
sxt = false
|
||||||
|
}
|
||||||
|
router.push({
|
||||||
|
path: '/DetailsPageconetent',
|
||||||
|
query: {
|
||||||
|
select: '组件服务',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
console.log(
|
||||||
|
'提交数据==========================>',
|
||||||
|
formName,
|
||||||
|
ids
|
||||||
|
)
|
||||||
|
if (formName.system.length !== 0) {
|
||||||
|
if (formName.applicationSystem.length == 0) {
|
||||||
|
formName.applicationSystem = ''
|
||||||
|
}
|
||||||
|
submitApply(formName).then((res) => {
|
||||||
|
// applySuccess.value = false
|
||||||
|
message.success('申请提交成功,请到消息中心查看!')
|
||||||
|
console.log('能力申请================>', res)
|
||||||
|
if (res.data.code == 0) {
|
||||||
|
if (ids && ids.length > 0) {
|
||||||
|
sgcDel({ ids: ids }).then((res) => {
|
||||||
|
if (res.data.msg === 'success') {
|
||||||
mybus.emit('getSgcNum')
|
mybus.emit('getSgcNum')
|
||||||
router.push({
|
router.push({
|
||||||
path: '/DetailsPageconetent',
|
path: '/DetailsPageconetent',
|
||||||
|
@ -494,10 +547,6 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
if (res.data.msg === 'success' && falgNum == 0 && sxt) {
|
|
||||||
message.success('申请提交成功,请到消息中心查看!')
|
|
||||||
sxt = false
|
|
||||||
}
|
|
||||||
router.push({
|
router.push({
|
||||||
path: '/DetailsPageconetent',
|
path: '/DetailsPageconetent',
|
||||||
query: {
|
query: {
|
||||||
|
@ -505,44 +554,11 @@
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
console.log('提交数据==========================>', formName, ids)
|
|
||||||
if (formName.system.length !== 0) {
|
|
||||||
if (formName.applicationSystem.length == 0) {
|
|
||||||
formName.applicationSystem = ''
|
|
||||||
}
|
|
||||||
submitApply(formName).then((res) => {
|
|
||||||
// applySuccess.value = false
|
|
||||||
message.success('申请提交成功,请到消息中心查看!')
|
|
||||||
console.log('能力申请================>', res)
|
|
||||||
if (res.data.code == 0) {
|
|
||||||
if (ids && ids.length > 0) {
|
|
||||||
sgcDel({ ids: ids }).then((res) => {
|
|
||||||
if (res.data.msg === 'success') {
|
|
||||||
mybus.emit('getSgcNum')
|
|
||||||
router.push({
|
|
||||||
path: '/DetailsPageconetent',
|
|
||||||
query: {
|
|
||||||
select: '组件服务',
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
router.push({
|
message.error('申请失败!')
|
||||||
path: '/DetailsPageconetent',
|
|
||||||
query: {
|
|
||||||
select: '组件服务',
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
} else {
|
})
|
||||||
message.error('申请失败!')
|
}
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
formName.applicationSystem = ''
|
formName.applicationSystem = ''
|
||||||
|
@ -604,7 +620,6 @@
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
.catch(() => {})
|
||||||
}
|
}
|
||||||
|
|
||||||
const options = ref([
|
const options = ref([
|
||||||
{
|
{
|
||||||
value: '政法委',
|
value: '政法委',
|
||||||
|
@ -633,12 +648,10 @@
|
||||||
])
|
])
|
||||||
const systemOptions = ref([])
|
const systemOptions = ref([])
|
||||||
const systemOptions2 = ref([])
|
const systemOptions2 = ref([])
|
||||||
|
|
||||||
const handleChange = (info) => {
|
const handleChange = (info) => {
|
||||||
if (info.file.status !== 'uploading') {
|
if (info.file.status !== 'uploading') {
|
||||||
// console.log(info.file, info.fileList)
|
// console.log(info.file, info.fileList)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info.file.status === 'done') {
|
if (info.file.status === 'done') {
|
||||||
message.success(`${info.file.name} 上传成功`)
|
message.success(`${info.file.name} 上传成功`)
|
||||||
formName.enclosure = info.file.response.data
|
formName.enclosure = info.file.response.data
|
||||||
|
@ -658,11 +671,9 @@
|
||||||
'image/pdf' ||
|
'image/pdf' ||
|
||||||
'image/xlxs' ||
|
'image/xlxs' ||
|
||||||
'image/ppt'
|
'image/ppt'
|
||||||
|
|
||||||
if (!isPNG) {
|
if (!isPNG) {
|
||||||
message.error(`上传失败`)
|
message.error(`上传失败`)
|
||||||
}
|
}
|
||||||
|
|
||||||
return isPNG || Upload.LIST_IGNORE
|
return isPNG || Upload.LIST_IGNORE
|
||||||
}
|
}
|
||||||
const fileList = ref([])
|
const fileList = ref([])
|
||||||
|
@ -703,7 +714,6 @@
|
||||||
const handleBlur = () => {
|
const handleBlur = () => {
|
||||||
console.log('blur')
|
console.log('blur')
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleFocus = () => {
|
const handleFocus = () => {
|
||||||
console.log('focus')
|
console.log('focus')
|
||||||
// console.log(formName.applicationSystem)
|
// console.log(formName.applicationSystem)
|
||||||
|
@ -711,11 +721,9 @@
|
||||||
systemOptions.value = systemOptions2.value
|
systemOptions.value = systemOptions2.value
|
||||||
// systemOptions.value = []
|
// systemOptions.value = []
|
||||||
}
|
}
|
||||||
|
|
||||||
// const filterOption = (input, option) => {
|
// const filterOption = (input, option) => {
|
||||||
// return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
// return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
// }
|
// }
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
mybus.off('reomveOldData')
|
mybus.off('reomveOldData')
|
||||||
})
|
})
|
||||||
|
@ -751,7 +759,6 @@
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
#apply-container {
|
#apply-container {
|
||||||
// background-color: #f5f8fc;
|
// background-color: #f5f8fc;
|
||||||
|
@ -802,7 +809,6 @@
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.ant-input) {
|
:deep(.ant-input) {
|
||||||
border: 1px solid #e0e0e0;
|
border: 1px solid #e0e0e0;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
|
@ -835,4 +841,4 @@
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
// position: fixed;
|
// position: fixed;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
|
@ -151,6 +151,8 @@
|
||||||
|
|
||||||
// eslint-disable-next-line no-undef
|
// eslint-disable-next-line no-undef
|
||||||
const navList = ref(navListManagement.navList)
|
const navList = ref(navListManagement.navList)
|
||||||
|
console.log('navList------------>', navList)
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
showView: { type: String, default: '' },
|
showView: { type: String, default: '' },
|
||||||
})
|
})
|
||||||
|
@ -420,6 +422,9 @@
|
||||||
padding: 0 0.04rem 0 0.1rem;
|
padding: 0 0.04rem 0 0.1rem;
|
||||||
border-left: 0.01rem solid #666;
|
border-left: 0.01rem solid #666;
|
||||||
}
|
}
|
||||||
|
.icon {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.white {
|
.white {
|
||||||
|
@ -428,6 +433,9 @@
|
||||||
.name {
|
.name {
|
||||||
color: #0058e1;
|
color: #0058e1;
|
||||||
}
|
}
|
||||||
|
.icon {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
.nav {
|
.nav {
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
<template>
|
||||||
|
<div class="box flex-row-start">
|
||||||
|
<div class="img" :style="{ 'background-image': `url(${abilityInfo.bgImg || ''})` }"></div>
|
||||||
|
<div class="list-box" v-if="abilityInfo.list.length">
|
||||||
|
<div class="list-item" v-for="(item, i) in abilityInfo.list" :key="i" :class="i % 2 == 0 ? 'one' : ''">
|
||||||
|
{{ item }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="no-data" v-else>
|
||||||
|
<a-empty description="暂无数据" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
const props = defineProps({
|
||||||
|
abilityInfo: { type: Object, default: () => { } },
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('abilityInfo------------>', props.abilityInfo);
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.box {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-bottom: 0.3rem;
|
||||||
|
padding-bottom: 0.3rem;
|
||||||
|
border-bottom: 2px solid #f0f0f0;
|
||||||
|
|
||||||
|
.img {
|
||||||
|
width: 3rem;
|
||||||
|
height: 3rem;
|
||||||
|
background-image: url('../../../assets/home/integration/jcssDetail.png');
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-data {
|
||||||
|
flex: 1;
|
||||||
|
height: 3rem;
|
||||||
|
line-height: 3rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-box {
|
||||||
|
flex: 1;
|
||||||
|
margin-left: 0.5rem;
|
||||||
|
height: 3rem;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-item {
|
||||||
|
padding: 0.1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.one {
|
||||||
|
background: rgb(246, 247, 249);
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -10,7 +10,7 @@
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
<div class="condition" :key="showKey">
|
<div class="condition" :key="showKey">
|
||||||
<ul v-if="selectCardsname === '融合服务'">
|
<ul v-if="selectCardsname === '融合服务' || selectCardsname === '赋能场景'">
|
||||||
<li v-for="(item, i) in orderList" :key="item.value" @click="changeOrder(i, item.value, item.orderType)">
|
<li v-for="(item, i) in orderList" :key="item.value" @click="changeOrder(i, item.value, item.orderType)">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
<span class="arrow" :class="item.orderType == 'ASC' ? 'down' : ''"></span>
|
<span class="arrow" :class="item.orderType == 'ASC' ? 'down' : ''"></span>
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="left" style="display: flex;
|
<div class="left" style="display: flex;
|
||||||
align-items: center"
|
align-items: center"
|
||||||
v-else-if="selectCardsname === '融合服务' && item.fuseAttrList && item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]">
|
v-else-if="(selectCardsname === '融合服务' || selectCardsname === '赋能场景') && item.fuseAttrList && item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]">
|
||||||
<a-image :width="106" :preview="false"
|
<a-image :width="106" :preview="false"
|
||||||
:src="item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0].attrValue" />
|
:src="item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0].attrValue" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -72,10 +72,10 @@
|
||||||
? 'ywzj'
|
? 'ywzj'
|
||||||
: ''
|
: ''
|
||||||
" v-else-if="
|
" v-else-if="
|
||||||
selectCardsname !== '基础设施' && selectCardsname !== '融合服务'
|
selectCardsname !== '基础设施' && selectCardsname !== '融合服务' && selectCardsname !== '赋能场景'
|
||||||
"></div>
|
"></div>
|
||||||
<div class="left jcss" v-else-if="selectCardsname === '基础设施'"></div>
|
<div class="left jcss" v-else-if="selectCardsname === '基础设施'"></div>
|
||||||
<div class="left rhfw" v-else-if="selectCardsname === '融合服务'"></div>
|
<div class="left rhfw" v-else-if="selectCardsname === '融合服务' || selectCardsname === '赋能场景'"></div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<span style="display: flex; align-items: center; width: 680px">
|
<span style="display: flex; align-items: center; width: 680px">
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
</svg>
|
</svg>
|
||||||
</span>
|
</span>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div v-if="selectCardsname === '融合服务'" class="label-content">
|
<div v-if="selectCardsname === '融合服务' || selectCardsname === '赋能场景'" class="label-content">
|
||||||
<template v-if="item.fuseAttrList && item.fuseAttrList.filter((val) => val.attrType == '应用领域')[0]">
|
<template v-if="item.fuseAttrList && item.fuseAttrList.filter((val) => val.attrType == '应用领域')[0]">
|
||||||
<span class="label"
|
<span class="label"
|
||||||
v-for="(data, index) in item.fuseAttrList.filter((val) => val.attrType == '应用领域')[0].attrValue.split(';')"
|
v-for="(data, index) in item.fuseAttrList.filter((val) => val.attrType == '应用领域')[0].attrValue.split(';')"
|
||||||
|
@ -132,7 +132,7 @@
|
||||||
<span>{{ item.shareType || '--' }}</span>
|
<span>{{ item.shareType || '--' }}</span>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div v-if="
|
<div v-if="
|
||||||
selectCardsname !== '融合服务' && selectCardsname !== '基础设施'
|
selectCardsname !== '融合服务' && selectCardsname !== '赋能场景' && selectCardsname !== '基础设施'
|
||||||
">
|
">
|
||||||
<span>{{ item.deptName || '--' }}</span>
|
<span>{{ item.deptName || '--' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -148,20 +148,23 @@
|
||||||
<div>
|
<div>
|
||||||
<div v-if="
|
<div v-if="
|
||||||
selectCardsname !== '数据资源' &&
|
selectCardsname !== '数据资源' &&
|
||||||
selectCardsname !== '融合服务'
|
selectCardsname !== '融合服务' &&
|
||||||
|
selectCardsname !== '赋能场景'
|
||||||
">
|
">
|
||||||
浏览量:{{ item.visits || 0 }}次
|
浏览量:{{ item.visits || 0 }}次
|
||||||
</div>
|
</div>
|
||||||
<div v-if="
|
<div v-if="
|
||||||
selectCardsname !== '数据资源' &&
|
selectCardsname !== '数据资源' &&
|
||||||
selectCardsname !== '融合服务' &&
|
selectCardsname !== '融合服务' &&
|
||||||
|
selectCardsname !== '赋能场景' &&
|
||||||
(selectCardsname !== '应用资源' || whoShow1.itShowQingDao)
|
(selectCardsname !== '应用资源' || whoShow1.itShowQingDao)
|
||||||
">
|
">
|
||||||
申请量:{{ item.applyCount || 0 }}次
|
申请量:{{ item.applyCount || 0 }}次
|
||||||
</div>
|
</div>
|
||||||
<div v-if="
|
<div v-if="
|
||||||
selectCardsname === '数据资源' &&
|
selectCardsname === '数据资源' &&
|
||||||
selectCardsname !== '融合服务'
|
selectCardsname !== '融合服务' &&
|
||||||
|
selectCardsname !== '赋能场景'
|
||||||
">
|
">
|
||||||
数据量:{{ item.sjlCount || 0 }}
|
数据量:{{ item.sjlCount || 0 }}
|
||||||
</div>
|
</div>
|
||||||
|
@ -201,7 +204,7 @@
|
||||||
<a-button type="primary" @click="toView('details', item)" v-if="!whoShow1.itShowBaoTou">
|
<a-button type="primary" @click="toView('details', item)" v-if="!whoShow1.itShowBaoTou">
|
||||||
查看详情
|
查看详情
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button style="margin-left: 10px" v-show="selectCardsname === '融合服务'"
|
<a-button style="margin-left: 10px" v-show="selectCardsname === '融合服务' || selectCardsname === '赋能场景'"
|
||||||
@click="handleAKeyApplication(item)">
|
@click="handleAKeyApplication(item)">
|
||||||
一键申请
|
一键申请
|
||||||
</a-button>
|
</a-button>
|
||||||
|
@ -588,39 +591,94 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 融合服务--一键申请
|
// 融合服务--一键申请
|
||||||
const handleAKeyApplication = (item) => {
|
// 一键申请
|
||||||
let _applyList = []
|
const handleAKeyApplication = (item ) => {
|
||||||
; (item.fuseResourceList || []).map((v) => {
|
let _applyList = [];
|
||||||
let resource = v.resource || {}
|
let fuseResourceList = item.fuseResourceList || []
|
||||||
let obj = {
|
let jcssArray = fuseResourceList.filter(v => v.type === '基础设施')
|
||||||
arr: [
|
let otherArray = fuseResourceList.filter(v => v.type !== '基础设施')
|
||||||
{
|
jcssArray = jcssArray.map(v => {
|
||||||
delFlag: resource.delFlag,
|
v = Object.assign(v, v.resource)
|
||||||
description: resource.description,
|
return v
|
||||||
resourceId: resource.id,
|
})
|
||||||
resourceName: resource.name,
|
let jcss = [
|
||||||
time: resource.createDate,
|
{
|
||||||
type: resource.type,
|
arr: [
|
||||||
},
|
{
|
||||||
],
|
description: '',
|
||||||
deptId: resource.deptId,
|
note1: JSON.stringify(jcssArray),
|
||||||
deptName: resource.deptName,
|
resourceId: '1522550195055828996',
|
||||||
}
|
resourceName: '摄像头列表',
|
||||||
_applyList.push(obj)
|
type: '基础设施',
|
||||||
})
|
},
|
||||||
|
],
|
||||||
|
deptId: '',
|
||||||
|
deptName: '',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
if (infrastructure) {
|
||||||
|
jcss[0].deptId = infrastructure.deptId
|
||||||
|
jcss[0].deptName = infrastructure.deptName
|
||||||
|
}
|
||||||
|
otherArray.map((v) => {
|
||||||
|
let resource = v.resource || {}
|
||||||
|
console.log('resource------------>', resource);
|
||||||
|
let obj = {
|
||||||
|
arr: [
|
||||||
|
{
|
||||||
|
delFlag: resource.delFlag,
|
||||||
|
description: resource.description,
|
||||||
|
resourceId: resource.id,
|
||||||
|
resourceName: resource.name,
|
||||||
|
time: resource.createDate,
|
||||||
|
type: resource.type,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
deptId: resource.deptId,
|
||||||
|
deptName: resource.deptName,
|
||||||
|
}
|
||||||
|
_applyList.push(obj)
|
||||||
|
})
|
||||||
|
_applyList = jcss.concat(_applyList)
|
||||||
localStorage.setItem('applyList', JSON.stringify(_applyList))
|
localStorage.setItem('applyList', JSON.stringify(_applyList))
|
||||||
router.push({
|
router.push({
|
||||||
path: '/apply',
|
path: '/apply',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// const handleAKeyApplication = (item) => {
|
||||||
|
// let _applyList = []
|
||||||
|
// ; (item.fuseResourceList || []).map((v) => {
|
||||||
|
// let resource = v.resource || {}
|
||||||
|
// let obj = {
|
||||||
|
// arr: [
|
||||||
|
// {
|
||||||
|
// delFlag: resource.delFlag,
|
||||||
|
// description: resource.description,
|
||||||
|
// resourceId: resource.id,
|
||||||
|
// resourceName: resource.name,
|
||||||
|
// time: resource.createDate,
|
||||||
|
// type: resource.type,
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
// deptId: resource.deptId,
|
||||||
|
// deptName: resource.deptName,
|
||||||
|
// }
|
||||||
|
// _applyList.push(obj)
|
||||||
|
// })
|
||||||
|
|
||||||
|
// localStorage.setItem('applyList', JSON.stringify(_applyList))
|
||||||
|
// router.push({
|
||||||
|
// path: '/apply',
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
|
||||||
mybus.on('chongzhi', (typeObj) => {
|
mybus.on('chongzhi', (typeObj) => {
|
||||||
console.log('typeObj------------>', typeObj)
|
console.log('typeObj------------>', typeObj)
|
||||||
if (!typeObj) {
|
if (!typeObj) {
|
||||||
selData.value = 'total'
|
selData.value = 'total'
|
||||||
}
|
}
|
||||||
if (typeObj && typeObj.type === '融合服务') {
|
if (typeObj && (typeObj.type === '融合服务' || typeObj.type === '赋能场景')) {
|
||||||
orderList.value = [
|
orderList.value = [
|
||||||
{
|
{
|
||||||
value: 'collectCount',
|
value: 'collectCount',
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<video-surveillance></video-surveillance>
|
<video-surveillance></video-surveillance>
|
||||||
</div>
|
</div>
|
||||||
<!-- 功能行 -->
|
<!-- 功能行 -->
|
||||||
<div class="infrastructrue-content">
|
<div class="infrastructrue-content" v-if="!wrjFlag">
|
||||||
<!-- 表格数据统计 -->
|
<!-- 表格数据统计 -->
|
||||||
<div class="contentNum">
|
<div class="contentNum">
|
||||||
<p>
|
<p>
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="infrastructrue-table">
|
<div class="infrastructrue-table" v-if="!wrjFlag">
|
||||||
<a-table
|
<a-table
|
||||||
class="ant-table-striped"
|
class="ant-table-striped"
|
||||||
:dataSource="dataSource"
|
:dataSource="dataSource"
|
||||||
|
@ -114,10 +114,39 @@
|
||||||
</template>
|
</template>
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="infrastructrue-table" v-else-if="isXiHaiAn && wrjFlag">
|
||||||
|
<a-table
|
||||||
|
class="ant-table-striped"
|
||||||
|
:dataSource="dataSource2"
|
||||||
|
:columns="columns2"
|
||||||
|
:scroll="{ y: tableHeight }"
|
||||||
|
rowKey="channelId"
|
||||||
|
:rowClassName="
|
||||||
|
(record, index) => (index % 2 === 1 ? 'table-striped' : null)
|
||||||
|
"
|
||||||
|
:pagination="dataSource2.length"
|
||||||
|
>
|
||||||
|
<template #bodyCell="{ column, record }">
|
||||||
|
<template v-if="column.dataIndex === 'operation'">
|
||||||
|
<a
|
||||||
|
@click="goToWrj(record)"
|
||||||
|
style="margin-right: 10px"
|
||||||
|
v-if="record.type !== '单兵设备'"
|
||||||
|
>
|
||||||
|
控制台
|
||||||
|
</a>
|
||||||
|
<a @click="goToApply(record)" style="margin-right: 10px" v-else>
|
||||||
|
申请
|
||||||
|
</a>
|
||||||
|
<a @click="showWrj(record)">详情</a>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model:visible="visible"
|
v-model:visible="visible"
|
||||||
title="视频预览"
|
title="视频预览"
|
||||||
:width="750"
|
:width="950"
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
>
|
>
|
||||||
<template #footer></template>
|
<template #footer></template>
|
||||||
|
@ -127,6 +156,63 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<a-modal
|
||||||
|
wrapClassName="wrj"
|
||||||
|
v-model:visible="wrjVisible"
|
||||||
|
:width="1000"
|
||||||
|
:title="wrjName + '详情'"
|
||||||
|
@ok="wrjVisible = false"
|
||||||
|
>
|
||||||
|
<template v-if="dataSource2[0].type !== '单兵设备'">
|
||||||
|
<div v-for="wrj in wrjData" :key="wrj.name">
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
margin: 10px 0;
|
||||||
|
text-align: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ wrj.name }}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style="padding: 0 30px"
|
||||||
|
v-for="(value, key) in wrj.attribute"
|
||||||
|
:key="value"
|
||||||
|
>
|
||||||
|
{{ key + ':' + value }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<div v-for="(db, key) in wrjData" :key="key">
|
||||||
|
<template v-if="typeof db == 'object'">
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
margin: 10px 0;
|
||||||
|
text-align: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ key }}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style="padding: 0 30px"
|
||||||
|
v-for="(value, key2) in db"
|
||||||
|
:key="value"
|
||||||
|
>
|
||||||
|
{{ key2 + ':' + value }}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<div style="padding: 0 30px">
|
||||||
|
{{ key + ':' + db }}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -231,6 +317,43 @@
|
||||||
content: [],
|
content: [],
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
const wrjVisible = ref(false)
|
||||||
|
const wrjName = ref('')
|
||||||
|
const wrjData = ref([])
|
||||||
|
const showWrj = (data) => {
|
||||||
|
wrjName.value = data.wrjName
|
||||||
|
wrjData.value = data.details
|
||||||
|
wrjVisible.value = true
|
||||||
|
}
|
||||||
|
const goToWrj = (data) => {
|
||||||
|
window.open(data.url)
|
||||||
|
}
|
||||||
|
const goToApply = (data) => {
|
||||||
|
console.log(data, dept)
|
||||||
|
let arr = [
|
||||||
|
{
|
||||||
|
arr: [
|
||||||
|
{
|
||||||
|
description:
|
||||||
|
'申请单兵手持便携终端,提告前端人员执法透明度,加强执法人员与指挥中心实时沟通。',
|
||||||
|
resourceId: 'dbsb',
|
||||||
|
resourceName: data.wrjName,
|
||||||
|
type: '单兵设备',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
deptId: dept.deptId,
|
||||||
|
deptName: dept.deptName,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
localStorage.setItem('applyList', JSON.stringify(arr))
|
||||||
|
router.push({
|
||||||
|
path: '/apply',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (whoShow1.value.itShowXiHaiAn) {
|
||||||
|
tabList.value[0].content.push('无人机')
|
||||||
|
tabList.value[0].content.push('单兵设备')
|
||||||
|
}
|
||||||
const openVideo = (id) => {
|
const openVideo = (id) => {
|
||||||
console.log('打开视频', id)
|
console.log('打开视频', id)
|
||||||
const param = {
|
const param = {
|
||||||
|
@ -288,12 +411,14 @@
|
||||||
tableHeight.value = 600
|
tableHeight.value = 600
|
||||||
showMap.value = false
|
showMap.value = false
|
||||||
dataSource.value = []
|
dataSource.value = []
|
||||||
|
dataSource2.value = []
|
||||||
pagination.value.total = 0
|
pagination.value.total = 0
|
||||||
tabList.value[1].title = '云资源分类'
|
tabList.value[1].title = '云资源分类'
|
||||||
} else if (name == '感知资源') {
|
} else if (name == '感知资源') {
|
||||||
tableHeight.value = 330
|
tableHeight.value = 330
|
||||||
showMap.value = true
|
showMap.value = true
|
||||||
dataSource.value = []
|
dataSource.value = []
|
||||||
|
dataSource2.value = []
|
||||||
pagination.value.total = 0
|
pagination.value.total = 0
|
||||||
}
|
}
|
||||||
clickList.value[indexFather].content.splice(
|
clickList.value[indexFather].content.splice(
|
||||||
|
@ -302,12 +427,15 @@
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
if (name == '视频资源') {
|
if (name == '视频资源') {
|
||||||
|
wrjFlag.value = false
|
||||||
tableHeight.value = 330
|
tableHeight.value = 330
|
||||||
showMap.value = true
|
showMap.value = true
|
||||||
tabList.value[1].content = []
|
tabList.value[1].content = []
|
||||||
clickList.value[1].content = []
|
clickList.value[1].content = []
|
||||||
tabList.value[1].title = '视频标签'
|
tabList.value[1].title = '视频标签'
|
||||||
clickList.value[indexFather].content[0] = name
|
clickList.value[indexFather].content[0] = name
|
||||||
|
dataSource.value = []
|
||||||
|
dataSource2.value = []
|
||||||
getCameraAllLabel().then((res) => {
|
getCameraAllLabel().then((res) => {
|
||||||
res.data.data.forEach((val) => {
|
res.data.data.forEach((val) => {
|
||||||
tabList.value[1].content.push({
|
tabList.value[1].content.push({
|
||||||
|
@ -328,6 +456,7 @@
|
||||||
tableHeight.value = 600
|
tableHeight.value = 600
|
||||||
showMap.value = false
|
showMap.value = false
|
||||||
dataSource.value = []
|
dataSource.value = []
|
||||||
|
dataSource2.value = []
|
||||||
pagination.value.total = 0
|
pagination.value.total = 0
|
||||||
clickList.value[1].content = []
|
clickList.value[1].content = []
|
||||||
tabList.value[1].title = '云资源分类'
|
tabList.value[1].title = '云资源分类'
|
||||||
|
@ -342,6 +471,7 @@
|
||||||
'负载均衡',
|
'负载均衡',
|
||||||
'公网IP',
|
'公网IP',
|
||||||
]
|
]
|
||||||
|
wrjFlag.value = false
|
||||||
} else if (name == '感知资源') {
|
} else if (name == '感知资源') {
|
||||||
tableHeight.value = 330
|
tableHeight.value = 330
|
||||||
showMap.value = true
|
showMap.value = true
|
||||||
|
@ -351,6 +481,46 @@
|
||||||
clickList.value[indexFather].content[0] = name
|
clickList.value[indexFather].content[0] = name
|
||||||
tabList.value[1].content = []
|
tabList.value[1].content = []
|
||||||
dataSource.value = []
|
dataSource.value = []
|
||||||
|
dataSource2.value = []
|
||||||
|
wrjFlag.value = false
|
||||||
|
} else if (name == '无人机') {
|
||||||
|
tableHeight.value = 600
|
||||||
|
showMap.value = false
|
||||||
|
dataSource.value = []
|
||||||
|
dataSource2.value = []
|
||||||
|
pagination.value.total = 0
|
||||||
|
clickList.value[1].content = []
|
||||||
|
clickList.value[indexFather].content[0] = name
|
||||||
|
tabList.value[1].title = ''
|
||||||
|
tabList.value[1].content = []
|
||||||
|
uavAndIndividualSoldier.uavList.map((wrj) => {
|
||||||
|
dataSource2.value.push({
|
||||||
|
wrjName: wrj.name,
|
||||||
|
wrjState: '已申请',
|
||||||
|
url: wrj.url,
|
||||||
|
details: wrj.details,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
wrjFlag.value = true
|
||||||
|
} else if (name == '单兵设备') {
|
||||||
|
tableHeight.value = 600
|
||||||
|
showMap.value = false
|
||||||
|
dataSource.value = []
|
||||||
|
dataSource2.value = []
|
||||||
|
pagination.value.total = 0
|
||||||
|
clickList.value[1].content = []
|
||||||
|
clickList.value[indexFather].content[0] = name
|
||||||
|
tabList.value[1].title = ''
|
||||||
|
tabList.value[1].content = []
|
||||||
|
uavAndIndividualSoldier.individualSoldier.map((db) => {
|
||||||
|
dataSource2.value.push({
|
||||||
|
wrjName: db.name,
|
||||||
|
wrjState: '未申请',
|
||||||
|
details: db.details,
|
||||||
|
type: db.type,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
wrjFlag.value = true
|
||||||
} else {
|
} else {
|
||||||
clickList.value[indexFather].content.push(name)
|
clickList.value[indexFather].content.push(name)
|
||||||
}
|
}
|
||||||
|
@ -374,9 +544,12 @@
|
||||||
// }
|
// }
|
||||||
if (name == '云资源' || name == '感知资源') {
|
if (name == '云资源' || name == '感知资源') {
|
||||||
dataSource.value = []
|
dataSource.value = []
|
||||||
|
dataSource2.value = []
|
||||||
pagination.value.total = 0
|
pagination.value.total = 0
|
||||||
} else {
|
} else {
|
||||||
getCamera()
|
if (name !== '无人机' && name !== '单兵设备') {
|
||||||
|
getCamera()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 清空
|
// 清空
|
||||||
|
@ -430,6 +603,8 @@
|
||||||
// const addShopCar = () => {
|
// const addShopCar = () => {
|
||||||
// console.log('添加至购物车')
|
// console.log('添加至购物车')
|
||||||
// }
|
// }
|
||||||
|
const isXiHaiAn = whoShow1.value.itShowXiHaiAn
|
||||||
|
const wrjFlag = ref(false)
|
||||||
const getCamera = () => {
|
const getCamera = () => {
|
||||||
console.log('初始化调用')
|
console.log('初始化调用')
|
||||||
console.log('不选左侧树的时候不调用接口', mapSearchParam.value)
|
console.log('不选左侧树的时候不调用接口', mapSearchParam.value)
|
||||||
|
@ -491,6 +666,7 @@
|
||||||
}
|
}
|
||||||
// 表格
|
// 表格
|
||||||
const dataSource = ref([])
|
const dataSource = ref([])
|
||||||
|
const dataSource2 = ref([])
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
{
|
{
|
||||||
title: '名称',
|
title: '名称',
|
||||||
|
@ -510,6 +686,25 @@
|
||||||
key: 'channelId',
|
key: 'channelId',
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
const columns2 = ref([
|
||||||
|
{
|
||||||
|
title: '名称',
|
||||||
|
dataIndex: 'wrjName',
|
||||||
|
key: 'wrjName',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '申请状态',
|
||||||
|
dataIndex: 'wrjState',
|
||||||
|
width: '60%',
|
||||||
|
key: 'wrjState',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'operation',
|
||||||
|
width: '20%',
|
||||||
|
key: 'wrjName',
|
||||||
|
},
|
||||||
|
])
|
||||||
// const allClick = ref([])
|
// const allClick = ref([])
|
||||||
const onSelectChange = (record, selected, selectedRows, nativeEvent) => {
|
const onSelectChange = (record, selected, selectedRows, nativeEvent) => {
|
||||||
console.log('hahhahah', record, selected, selectedRows, nativeEvent)
|
console.log('hahhahah', record, selected, selectedRows, nativeEvent)
|
||||||
|
@ -710,3 +905,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<style lang="less">
|
||||||
|
.wrj {
|
||||||
|
.ant-modal-body {
|
||||||
|
height: 700px !important;
|
||||||
|
overflow-y: scroll !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<!-- 融合服务详情 -->
|
<!-- 融合服务详情 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="IntegrationServicesDetails" :class="{ fixed2: scrollTop >= 600 }">
|
<div class="IntegrationServicesDetails" :class="{ fixed2: scrollTop >= 600 }">
|
||||||
|
<home-header></home-header>
|
||||||
<!-- 头部基本信息 -->
|
<!-- 头部基本信息 -->
|
||||||
<application-top-details
|
<application-top-details
|
||||||
:dataList="detailInfoObj"
|
:dataList="detailInfoObj"
|
||||||
|
@ -56,22 +57,44 @@
|
||||||
|
|
||||||
<!-- 使用能力 -->
|
<!-- 使用能力 -->
|
||||||
<div
|
<div
|
||||||
id="integration-combination-ability"
|
id="integration-ability"
|
||||||
class="combination-ability scrollBox"
|
class="ability scrollBox"
|
||||||
>
|
>
|
||||||
<div class="title-1">
|
<div class="title-1">
|
||||||
<DetalsTitle title="使用能力" type="COMBINATION ABILITY"></DetalsTitle>
|
<DetalsTitle title="使用能力" type="ABILITY"></DetalsTitle>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-row-center combine-content">
|
<div class="flex-row-center combine-content" v-for="(item, i) in combineList" :key="i">
|
||||||
<div class="combine-item" v-for="(item, i) in combineList" :key="i">
|
<div class="title"></div>
|
||||||
<div class="title">{{ item.title }}</div>
|
<div>
|
||||||
<div class="name-box">
|
<el-table
|
||||||
<div class="name-text" v-for="(name, j) in item.list" :key="j">
|
class="table"
|
||||||
{{ name }}
|
:data="item.list"
|
||||||
</div>
|
stripe
|
||||||
|
:header-cell-style="{'text-align': 'center'}">
|
||||||
|
<el-table-column
|
||||||
|
prop="name"
|
||||||
|
label="数据"
|
||||||
|
align="center"
|
||||||
|
width="200"
|
||||||
|
show-overflow-tooltip="true">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="dept"
|
||||||
|
label="能力来源"
|
||||||
|
align="center"
|
||||||
|
width="300"
|
||||||
|
show-overflow-tooltip="true">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="platform"
|
||||||
|
label="申请平台"
|
||||||
|
align="center"
|
||||||
|
width="100"
|
||||||
|
show-overflow-tooltip="true">
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 构建步骤 -->
|
<!-- 构建步骤 -->
|
||||||
|
@ -82,15 +105,12 @@
|
||||||
<div class="title-1">
|
<div class="title-1">
|
||||||
<DetalsTitle title="构建步骤" type="STEP"></DetalsTitle>
|
<DetalsTitle title="构建步骤" type="STEP"></DetalsTitle>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-row-center">
|
<div class="flex-row-center step-content">
|
||||||
<div style="height: 300px;">
|
<el-steps direction="vertical" :space="150" :active="step.length">
|
||||||
<el-steps direction="vertical" :active="step.length">
|
<el-step v-for="(item, i) in step" :key="i" :title="item.question" :description="item.answer"></el-step>
|
||||||
<el-step v-for="(item, i) in step" :key="i" :title="item.question" :description="item.answer"></el-step>
|
</el-steps>
|
||||||
</el-steps>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<home-footer></home-footer>
|
<home-footer></home-footer>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -100,6 +120,7 @@
|
||||||
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 { 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'
|
||||||
|
@ -135,7 +156,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '使用能力',
|
name: '使用能力',
|
||||||
key: 'integration-combination-ability',
|
key: 'integration-ability',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '构建步骤',
|
name: '构建步骤',
|
||||||
|
@ -234,14 +255,25 @@
|
||||||
attrType: '应用领域',
|
attrType: '应用领域',
|
||||||
attrValue: fuseAttrList.find((v) => v.attrType === '应用领域').attrValue,
|
attrValue: fuseAttrList.find((v) => v.attrType === '应用领域').attrValue,
|
||||||
}
|
}
|
||||||
combineList.value.map((item) => {
|
combineList.value.forEach((item) => {
|
||||||
let arr = (
|
let arr = []
|
||||||
fuseResourceList.filter(
|
let resource=fuseResourceList.filter((v)=>v.resource && v.type == item.title)
|
||||||
(v) => v.resource && v.resource.type == item.title
|
if(resource.length>0){
|
||||||
) || []
|
if(item.title==='基础设施'){
|
||||||
).map((d) => d.resource.name)
|
arr=resource.map(res=>({
|
||||||
|
id: res.resource.idtCameraChannel, name: res.resource.channelName, dept: res.resource.nodeName, platform: 'UCS'
|
||||||
|
}))
|
||||||
|
}else if(item.title==='组件服务'){
|
||||||
|
arr=resource.map(res=>({
|
||||||
|
id: res.resource.id, name: res.resource.name, dept: res.resource.deptName, platform: 'UCS'
|
||||||
|
}))
|
||||||
|
}else if(item.title==='数据资源'){
|
||||||
|
arr=resource.map(res=>({
|
||||||
|
id: res.resource.zycode, name: res.resource.zyname, dept: res.resource.TGBM, platform: '共享交换平台'
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
}
|
||||||
item.list = arr
|
item.list = arr
|
||||||
return item
|
|
||||||
})
|
})
|
||||||
detailInfoObj.value.infoList = []
|
detailInfoObj.value.infoList = []
|
||||||
detailInfoObj.value.infoList.push(questionObj)
|
detailInfoObj.value.infoList.push(questionObj)
|
||||||
|
@ -429,17 +461,20 @@
|
||||||
padding: 0.8rem 0;
|
padding: 0.8rem 0;
|
||||||
background: rgb(247, 248, 250);
|
background: rgb(247, 248, 250);
|
||||||
.bg {
|
.bg {
|
||||||
height: 2rem;
|
height: 3rem;
|
||||||
width: 2rem;
|
width: 3rem;
|
||||||
background: url('~@/assets/home/rhfw_square.png') no-repeat;
|
background: url('~@/assets/home/rhfw_square.png') no-repeat;
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
margin-top: 0.3rem;
|
margin-top: 0.3rem;
|
||||||
}
|
}
|
||||||
.content {
|
.content {
|
||||||
height: 2rem;
|
overflow: auto;
|
||||||
|
height: 3rem;
|
||||||
width: 6rem;
|
width: 6rem;
|
||||||
|
margin-top: 0.3rem;
|
||||||
.content-item {
|
.content-item {
|
||||||
margin: 0.1rem;
|
font-size: 16px;
|
||||||
|
margin: 0rem 0rem 0.1rem 0.1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -448,9 +483,9 @@
|
||||||
padding: 0.8rem 0;
|
padding: 0.8rem 0;
|
||||||
background: rgb(247, 248, 250);
|
background: rgb(247, 248, 250);
|
||||||
.content {
|
.content {
|
||||||
height: 2rem;
|
width: 9rem;
|
||||||
width: 8rem;
|
|
||||||
.content-item {
|
.content-item {
|
||||||
|
font-size: 16px;
|
||||||
margin: 0.3rem;
|
margin: 0.3rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -459,10 +494,18 @@
|
||||||
.step {
|
.step {
|
||||||
padding: 0.8rem 0;
|
padding: 0.8rem 0;
|
||||||
background: rgb(247, 248, 250);
|
background: rgb(247, 248, 250);
|
||||||
|
.step-content {
|
||||||
|
margin-top: 0.3rem;
|
||||||
|
/deep/ .el-step__title {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
/deep/ .el-step__description {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.combination-ability {
|
.ability {
|
||||||
padding: 0.8rem 0;
|
padding: 0.8rem 0;
|
||||||
background: rgb(247, 248, 250);
|
background: rgb(247, 248, 250);
|
||||||
|
|
||||||
|
@ -471,34 +514,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.combine-content {
|
.combine-content {
|
||||||
width: 13rem;
|
margin-top: 0.3rem;
|
||||||
margin: 0 auto;
|
align-items: flex-start;
|
||||||
}
|
|
||||||
|
|
||||||
.combine-item {
|
|
||||||
margin: 0 0.1rem;
|
|
||||||
width: 4.28rem;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
border: 1px solid #e4e6f5;
|
|
||||||
border-radius: 0.1rem;
|
|
||||||
padding: 0.1rem 0;
|
|
||||||
cursor: pointer;
|
|
||||||
height: 2.5rem;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
border-radius: 0.02rem;
|
|
||||||
border: 0.01rem solid #0058e1;
|
|
||||||
box-shadow: 0rem 0.08rem 0.2rem rgb(0 88 225 / 30%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
color: #212121;
|
height: 3rem;
|
||||||
text-align: center;
|
width: 3rem;
|
||||||
padding: 0.2rem 0;
|
margin-right: 0.5rem;
|
||||||
font-size: 0.22rem;
|
background: url('~@/assets/home/rhfw_square.png') no-repeat;
|
||||||
text-align: center;
|
background-size: 100%;
|
||||||
|
}
|
||||||
|
.table {
|
||||||
|
width: 100%;
|
||||||
|
font-size: 16px
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,152 +2,344 @@
|
||||||
<!-- 青岛 -->
|
<!-- 青岛 -->
|
||||||
<div class="details-pageconetent">
|
<div class="details-pageconetent">
|
||||||
<home-header></home-header>
|
<home-header></home-header>
|
||||||
<div></div>
|
<div class="content-box" v-loading="loadingPage">
|
||||||
|
<div class="package-title">打包模式</div>
|
||||||
|
<div class="basic-info">
|
||||||
|
<div class="title-box">
|
||||||
|
<div class="bar"></div>
|
||||||
|
<span class="title-text">基本信息</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex-row-start info-box">
|
||||||
|
<a-image class="img" style="width:4rem;height:3rem" :preview="false" :src="imgUrl" />
|
||||||
|
<div class="right">
|
||||||
|
<div class="name">名称:{{ detailInfoObj.name || '--' }}</div>
|
||||||
|
<div class="flex-row-start area">
|
||||||
|
<div class="name">应用领域:</div>
|
||||||
|
<div class="flex-row-start tag" v-if="detailInfoObj.applicationArea">
|
||||||
|
{{ detailInfoObj.applicationArea }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-row-start desc">
|
||||||
|
<div class="desc">描述:{{ detailInfoObj.description || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-box">
|
||||||
|
<a-button size="big" class="btn-text" type="primary" @click="handleAKeyApplication()">
|
||||||
|
<template #icon>
|
||||||
|
<form-outlined />
|
||||||
|
</template>
|
||||||
|
申请使用
|
||||||
|
</a-button>
|
||||||
|
<a-button size="big" class="btn-text" :type="detailInfoObj.isCollect == 'true' ? 'primary' : ''"
|
||||||
|
@click="addCollect()">
|
||||||
|
<template #icon>
|
||||||
|
<form-outlined />
|
||||||
|
</template>
|
||||||
|
收藏
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ability-list-box" style="margin-top: 30px">
|
||||||
|
<div class="title-box">
|
||||||
|
<div class="bar"></div>
|
||||||
|
<span class="title-text">服务使用能力列表</span>
|
||||||
|
</div>
|
||||||
|
<div class="list-box">
|
||||||
|
<packageAbilityList style="margin-bottom:20px" v-for="(item, i) in abilityList" :abilityInfo="item"
|
||||||
|
:key="i" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<home-footer></home-footer>
|
<home-footer></home-footer>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import HomeFooter from '@/views/newHome/components/Footer'
|
import HomeFooter from '@/views/newHome/components/Footer'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
import { defineComponent, reactive, ref, toRefs, onMounted, watch } from 'vue'
|
import { defineComponent, reactive, ref, toRefs, onMounted, watch } from 'vue'
|
||||||
|
|
||||||
import { getIntegrationServicesList } from '@/api/home.js'
|
import { getIntegrationServicesList } from '@/api/home.js'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import HomeHeader from '@/views/home/components/header'
|
|
||||||
import searchResultList from '@/views/home/components/searchResultList.vue'
|
import searchResultList from '@/views/home/components/searchResultList.vue'
|
||||||
|
import packageAbilityList from '@/views/home/components/packageAbilityList.vue'
|
||||||
import { message } from 'ant-design-vue'
|
import { message } from 'ant-design-vue'
|
||||||
|
import { getIntegrationDetail } from '@/api/home'
|
||||||
|
import HomeHeader from '@/views/home/components/header'
|
||||||
|
import { scInsert, scDel } from '@/api/personalCenter'
|
||||||
|
|
||||||
|
const router = useRouter()
|
||||||
|
const id = router.currentRoute.value.query.id
|
||||||
|
const loadingPage = ref(false)
|
||||||
|
|
||||||
|
const detailInfoObj = ref({})
|
||||||
|
const abilityList = ref([
|
||||||
|
{
|
||||||
|
name: '数据资源',
|
||||||
|
bgImg: require('../../assets/home/integration/sjzyDetail.png'),
|
||||||
|
list: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '组件服务',
|
||||||
|
bgImg: require('../../assets/home/integration/zjfwDetail.png'),
|
||||||
|
list: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '基础设施',
|
||||||
|
bgImg: require('../../assets/home/integration/jcssDetail.png'),
|
||||||
|
list: []
|
||||||
|
},
|
||||||
|
])
|
||||||
|
const imgUrl = ref('')
|
||||||
|
|
||||||
|
// 融合服务--详情
|
||||||
|
const getIntegrationServicesDeatil = (id) => {
|
||||||
|
loadingPage.value = true
|
||||||
|
getIntegrationDetail(id).then(
|
||||||
|
(res) => {
|
||||||
|
loadingPage.value = false
|
||||||
|
if (res.data.code !== 0) {
|
||||||
|
return message.error(res.data.msg)
|
||||||
|
}
|
||||||
|
detailInfoObj.value = res.data.data || {}
|
||||||
|
console.log('detailInfoObj------------>', detailInfoObj);
|
||||||
|
|
||||||
|
let fuseResourceList = detailInfoObj.value.fuseResourceList || []
|
||||||
|
abilityList.value.map(v => {
|
||||||
|
let list = fuseResourceList.filter(x => x.type == v.name) || [];
|
||||||
|
v.list = list.map(v => v.resource && v.resource.channelName) || []
|
||||||
|
})
|
||||||
|
let imgList = detailInfoObj.value.fuseAttrList.filter((val) => val.attrType == '服务图片') || []
|
||||||
|
imgUrl.value = imgList[0] && imgList[0].attrValue || ''
|
||||||
|
},
|
||||||
|
(err) => {
|
||||||
|
loadingPage.value = false
|
||||||
|
message.error(err)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 一键申请
|
||||||
|
const handleAKeyApplication = () => {
|
||||||
|
let _applyList = [];
|
||||||
|
let fuseResourceList = detailInfoObj.value.fuseResourceList || []
|
||||||
|
let jcssArray = fuseResourceList.filter(v => v.type === '基础设施')
|
||||||
|
let otherArray = fuseResourceList.filter(v => v.type !== '基础设施')
|
||||||
|
jcssArray = jcssArray.map(v => {
|
||||||
|
v = Object.assign(v, v.resource)
|
||||||
|
return v
|
||||||
|
})
|
||||||
|
let jcss = [
|
||||||
|
{
|
||||||
|
arr: [
|
||||||
|
{
|
||||||
|
description: '',
|
||||||
|
note1: JSON.stringify(jcssArray),
|
||||||
|
resourceId: '1522550195055828996',
|
||||||
|
resourceName: '摄像头列表',
|
||||||
|
type: '基础设施',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
deptId: '',
|
||||||
|
deptName: '',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
if (infrastructure) {
|
||||||
|
jcss[0].deptId = infrastructure.deptId
|
||||||
|
jcss[0].deptName = infrastructure.deptName
|
||||||
|
}
|
||||||
|
otherArray.map((v) => {
|
||||||
|
let resource = v.resource || {}
|
||||||
|
console.log('resource------------>', resource);
|
||||||
|
let obj = {
|
||||||
|
arr: [
|
||||||
|
{
|
||||||
|
delFlag: resource.delFlag,
|
||||||
|
description: resource.description,
|
||||||
|
resourceId: resource.id,
|
||||||
|
resourceName: resource.name,
|
||||||
|
time: resource.createDate,
|
||||||
|
type: resource.type,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
deptId: resource.deptId,
|
||||||
|
deptName: resource.deptName,
|
||||||
|
}
|
||||||
|
_applyList.push(obj)
|
||||||
|
})
|
||||||
|
_applyList = jcss.concat(_applyList)
|
||||||
|
localStorage.setItem('applyList', JSON.stringify(_applyList))
|
||||||
|
router.push({
|
||||||
|
path: '/apply',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const dataPosting = ref(true)
|
||||||
|
const addCollect = () => {
|
||||||
|
if (dataPosting.value && detailInfoObj.value.id) {
|
||||||
|
dataPosting.value = false
|
||||||
|
if (detailInfoObj.value.isCollect == 'true') {
|
||||||
|
scDel([detailInfoObj.value.id]).then((res) => {
|
||||||
|
if (res.data.msg === 'success') {
|
||||||
|
message.success('取消成功')
|
||||||
|
detailInfoObj.value.isCollect = 'false'
|
||||||
|
detailInfoObj.value.collectCount--
|
||||||
|
dataPosting.value = true
|
||||||
|
console.log('收藏2===============>', res.data, dataPosting.value)
|
||||||
|
getIntegrationServicesDeatil(id)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log('err------------>', err);
|
||||||
|
message.success(err)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
scInsert([
|
||||||
|
{
|
||||||
|
resourceId: detailInfoObj.value.id,
|
||||||
|
},
|
||||||
|
]).then((res) => {
|
||||||
|
if (res.data.msg === 'success') {
|
||||||
|
message.success('添加收藏成功!')
|
||||||
|
detailInfoObj.value.isCollect = 'true'
|
||||||
|
detailInfoObj.value.collectCount++
|
||||||
|
dataPosting.value = true
|
||||||
|
console.log('收藏2===============>', res.data, dataPosting.value)
|
||||||
|
getIntegrationServicesDeatil(id)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log('err------------>', err);
|
||||||
|
message.success(err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getIntegrationServicesDeatil(id)
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.resultListSearchInput-father {
|
.flex-row-start {
|
||||||
background: #f3f5f9;
|
display: flex;
|
||||||
padding: 0.2rem;
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
// padding-left: 0.2rem;
|
|
||||||
// padding-top: 0.2rem;
|
|
||||||
.resultListSearchInput-son {
|
|
||||||
background: #fff;
|
|
||||||
padding: 0.2rem 0.2rem 0rem 0.3rem;
|
|
||||||
|
|
||||||
.hengxian {
|
|
||||||
width: 100%;
|
|
||||||
height: 0.01rem;
|
|
||||||
background: rgba(150, 144, 144, 0.3);
|
|
||||||
margin-top: 0.2rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.resultListSearchInput {
|
.flex-row-center {
|
||||||
margin-left: 0.1rem;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
:deep(.ant-input) {
|
justify-content: center;
|
||||||
width: 4rem;
|
|
||||||
height: 0.36rem;
|
|
||||||
background: #fff;
|
|
||||||
border-radius: 0.04rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.ant-input-search-button) {
|
|
||||||
width: 0.8rem;
|
|
||||||
height: 0.36rem;
|
|
||||||
background: #0087ff;
|
|
||||||
border-radius: 0.04rem !important;
|
|
||||||
font-size: 0.14rem;
|
|
||||||
font-weight: 400;
|
|
||||||
color: #fff;
|
|
||||||
line-height: 0.34rem;
|
|
||||||
margin-left: 0.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.ant-input-group-addon) {
|
|
||||||
left: 0 !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.button-reset {
|
|
||||||
border: 0;
|
|
||||||
outline: none;
|
|
||||||
width: 0.8rem;
|
|
||||||
height: 0.36rem;
|
|
||||||
background: #e1edfa;
|
|
||||||
border-radius: 0.04rem;
|
|
||||||
font-size: 0.14rem;
|
|
||||||
font-weight: 400;
|
|
||||||
color: #0087ff;
|
|
||||||
line-height: 0.34rem;
|
|
||||||
margin-left: 2.5rem;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.details-pageconetent {
|
.details-pageconetent {
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
background: rgb(247, 247, 250);
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-box {
|
||||||
|
width: 14rem;
|
||||||
|
background: #fff;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0.84rem 0.4rem 0.4rem 0.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.package-title {
|
||||||
|
padding: 10px 0;
|
||||||
|
color: #000;
|
||||||
|
font-size: 0.18rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-box {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-top: 0.67rem;
|
justify-content: flex-start;
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px 0;
|
||||||
|
border-bottom: 2px solid #f0f0f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bar {
|
||||||
|
height: 26px;
|
||||||
|
width: 6px;
|
||||||
|
background: #0058e1;
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
font-size: 0.16rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-box {
|
||||||
|
padding: 0.2rem;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img {
|
||||||
|
height: 3rem;
|
||||||
|
width: 4rem;
|
||||||
|
// background-image: url('../../assets/home/integration/jcssDetail.png');
|
||||||
|
// background-size: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-image-img {
|
||||||
|
height: 3rem;
|
||||||
|
width: 4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
padding: 0 0.2rem;
|
||||||
|
flex: 1;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: rgba(245, 243, 243, 0.3);
|
height: 3rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
.details-pageconetent-left {
|
.name {
|
||||||
max-height: 6.9rem;
|
|
||||||
position: absolute;
|
|
||||||
width: 2.5rem;
|
|
||||||
top: 0.17rem;
|
|
||||||
left: 2.5rem;
|
|
||||||
margin-right: 0.17rem;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top {
|
|
||||||
min-height: 7.2rem;
|
|
||||||
position: relative;
|
|
||||||
width: 11.5rem;
|
|
||||||
display: flex;
|
|
||||||
padding-top: 0.2rem;
|
|
||||||
flex-direction: column;
|
|
||||||
font-size: 0.16rem;
|
font-size: 0.16rem;
|
||||||
justify-content: left;
|
margin-bottom: 0.2rem;
|
||||||
background: #f3f5f9;
|
margin-top: 0.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
.pagination {
|
.area {
|
||||||
background: #f3f5f9;
|
margin-bottom: 0.2rem;
|
||||||
padding-bottom: 0.6rem;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.top-title {
|
.desc {
|
||||||
padding: 0.2rem;
|
font-size: 0.16rem;
|
||||||
display: flex;
|
overflow: hidden;
|
||||||
font-size: 18px;
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
.tabAll {
|
-webkit-line-clamp: 6;
|
||||||
font-size: 18px;
|
-webkit-box-orient: vertical;
|
||||||
color: #000000;
|
|
||||||
margin-right: 35px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tabAll:nth-child(1) {
|
|
||||||
margin-left: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sel {
|
|
||||||
font-weight: 600;
|
|
||||||
color: #0087ff;
|
|
||||||
border-bottom: 0.02rem solid #0087ff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.ant-card-grid) {
|
.btn-box {
|
||||||
overflow: hidden;
|
position: absolute;
|
||||||
white-space: nowrap;
|
bottom: 0;
|
||||||
text-overflow: ellipsis;
|
left: 0.2rem;
|
||||||
-webkit-line-clamp: 1;
|
|
||||||
word-break: break-all;
|
.btn-text {
|
||||||
|
bottom: 0.2rem;
|
||||||
|
height: 0.4rem;
|
||||||
|
width: 1.2rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
padding: 4px 10px;
|
||||||
|
background: #40a9ff;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 0.12rem;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-box {
|
||||||
|
padding: 0.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -521,7 +521,7 @@
|
||||||
#contain {
|
#contain {
|
||||||
.searchPoint {
|
.searchPoint {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 1000;
|
z-index: 800;
|
||||||
top: 0.1rem;
|
top: 0.1rem;
|
||||||
right: 0.1rem;
|
right: 0.1rem;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
|
|
@ -0,0 +1,234 @@
|
||||||
|
<template>
|
||||||
|
<div class="menu-box">
|
||||||
|
<div class="content-box">
|
||||||
|
<!-- 提供服务 -->
|
||||||
|
<div class="img-bg service-box">
|
||||||
|
<div class="title" style="margin-bottom: 20px">
|
||||||
|
<div class="text text-white">提供服务</div>
|
||||||
|
<div class="line line-white"></div>
|
||||||
|
</div>
|
||||||
|
<div class="list-box">
|
||||||
|
<div class="list-item" v-for="(item, i) in seviceList" :key="i">
|
||||||
|
<div class="item-name">{{ item.name }}</div>
|
||||||
|
<div class="name-box">
|
||||||
|
<div class="item-v" v-for="(v, j) in item.list" :key="j">{{ v }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- imgList -->
|
||||||
|
<div class="img-box" v-for="(item, i) in imgList" :key="i">
|
||||||
|
<div class="title">
|
||||||
|
<div class="text">{{ item.name }}</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
</div>
|
||||||
|
<div class="img-bg" :class="item.className" :style="{ 'background-image': `url(${item.bgImg || ''})` }">
|
||||||
|
</div>
|
||||||
|
<div v-if="item.btnText" class="btn">{{ item.btnText }} >></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import HomeHeader from '@/views/home/components/header'
|
||||||
|
import HomeFooter from '@/views/newHome/components/Footer'
|
||||||
|
import { ref, onMounted } from 'vue'
|
||||||
|
|
||||||
|
const seviceList = ref(
|
||||||
|
[
|
||||||
|
{
|
||||||
|
name: '组件服务',
|
||||||
|
list: ['智能算法', '图层服务', '开发组件', '业务组件'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '应用资源',
|
||||||
|
list: ['办公系统', '业务系统', '门户网站', '大屏看板', '小程序', '公众号'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '组件服务',
|
||||||
|
list: ['视频资源', '云资源', '感知资源'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '组件服务',
|
||||||
|
list: ['政务信息资源'],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
const imgList = ref([
|
||||||
|
{
|
||||||
|
name: '能力上架',
|
||||||
|
bgImg: require('../../../assets/menu/shelves.png'),
|
||||||
|
btnText: '立即上架',
|
||||||
|
className: 'shelves-img'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '能力申请',
|
||||||
|
bgImg: require('../../../assets/menu/apply.png'),
|
||||||
|
btnText: '立即申请',
|
||||||
|
className: 'apply-img'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '需求发布',
|
||||||
|
bgImg: require('../../../assets/menu/demand.png'),
|
||||||
|
btnText: '立即发布',
|
||||||
|
className: 'demand-img'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '资源下架',
|
||||||
|
bgImg: require('../../../assets/menu/down.png'),
|
||||||
|
btnText: '立即下架',
|
||||||
|
className: 'down-img'
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.menu-box {
|
||||||
|
width: 1920px;
|
||||||
|
padding-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
.text {
|
||||||
|
padding: 20px 0;
|
||||||
|
font-size: 26px;
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line {
|
||||||
|
width: 50px;
|
||||||
|
height: 3px;
|
||||||
|
background: #0058e1;
|
||||||
|
margin: 0 auto
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-white {
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-white {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
width: 150px;
|
||||||
|
height: 50px;
|
||||||
|
line-height: 50px;
|
||||||
|
text-align: center;
|
||||||
|
margin: 30px auto;
|
||||||
|
color: #0058e1;
|
||||||
|
border: 1px solid #0058e1;
|
||||||
|
border-radius: 2px;
|
||||||
|
font-size: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: #e5eefc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.img-box {
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-box {
|
||||||
|
width: 1920px;
|
||||||
|
height: 613px;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-image: url('../../../assets/menu/service.png');
|
||||||
|
|
||||||
|
.list-box {
|
||||||
|
width: 1560px;
|
||||||
|
height: 350px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-bg {
|
||||||
|
width: 1920px;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-img {
|
||||||
|
height: 855px;
|
||||||
|
background-image: url('../../../assets/menu/process.png');
|
||||||
|
}
|
||||||
|
|
||||||
|
.shelves-img {
|
||||||
|
height: 497px;
|
||||||
|
width: 1107px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background-image: url('../../../assets/menu/shelves.png');
|
||||||
|
}
|
||||||
|
|
||||||
|
.apply-img {
|
||||||
|
height: 752px;
|
||||||
|
background-image: url('../../../assets/menu/apply.png');
|
||||||
|
}
|
||||||
|
|
||||||
|
.demand-img {
|
||||||
|
height: 525px;
|
||||||
|
width: 1300px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background-image: url('../../../assets/menu/demand.png');
|
||||||
|
}
|
||||||
|
|
||||||
|
.down-img {
|
||||||
|
height: 544px;
|
||||||
|
background-image: url('../../../assets/menu/down.png');
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-box {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
.list-item {
|
||||||
|
padding: 10px 20px;
|
||||||
|
width: 310px;
|
||||||
|
height: 330px;
|
||||||
|
background: rgba(23, 85, 177, 0.43);
|
||||||
|
border: 1px solid #74a9f8;
|
||||||
|
border-radius: 2px;
|
||||||
|
margin: 0 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
|
||||||
|
.item-name {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 20px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 20px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name-box {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-v {
|
||||||
|
min-width: 100px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 20px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid rgba(255, 255, 255, 0.4);
|
||||||
|
border-radius: 6px;
|
||||||
|
background: rgba(255, 255, 255, 0.2);
|
||||||
|
margin: 0 16px 20px 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,243 +1,230 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="menu-box">
|
<home-header></home-header>
|
||||||
<home-header></home-header>
|
<div class="menu-container">
|
||||||
<div id="container" class="content-menu">
|
<div class="menu-box">
|
||||||
<div class="rela">
|
<div id="container" class="content-menu">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div
|
<div class="first-title-text" v-for="(data, i) in titleList" :key="i" @click="changeName(data)"
|
||||||
class="first-title-text"
|
:style="{ color: data.name === titleData.name ? '#0058e1' : '' }">
|
||||||
v-for="(data, i) in titleList"
|
|
||||||
:key="i"
|
|
||||||
@click="changeName(data)"
|
|
||||||
:style="{ color: data.name === titleData.name ? '#0058e1' : '' }"
|
|
||||||
>
|
|
||||||
<div class="img" :class="data.className"></div>
|
<div class="img" :class="data.className"></div>
|
||||||
{{ data.name }}
|
{{ data.name }}
|
||||||
</div>
|
</div>
|
||||||
<abilityDocTree
|
<abilityDocTree :dataList="treeArray" @treeClick="treeClick" :clickData="clickData"></abilityDocTree>
|
||||||
:dataList="treeArray"
|
|
||||||
@treeClick="treeClick"
|
|
||||||
:clickData="clickData"
|
|
||||||
></abilityDocTree>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<!-- 技术文档 -->
|
||||||
<div
|
<div class="right" v-if="titleData.name !== '新手指引'">
|
||||||
class="new-menu-box"
|
<div style="height: 100%">
|
||||||
style="height: 100%"
|
<iframe name="iframeName" width="1300" height="100%" id="iframeId" :frameborder="0"
|
||||||
v-if="titleData.name === '新手指引'"
|
:src="doc_base_url + clickData.doc"></iframe>
|
||||||
>
|
|
||||||
<!-- 新手指引 -->
|
|
||||||
<a-empty description="新手指引" />
|
|
||||||
</div>
|
|
||||||
<div v-else style="height: 100%">
|
|
||||||
<iframe
|
|
||||||
name="iframeName"
|
|
||||||
width="1000"
|
|
||||||
height="100%"
|
|
||||||
id="iframeId"
|
|
||||||
:frameborder="0"
|
|
||||||
:src="doc_base_url + clickData.doc"
|
|
||||||
></iframe>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<menuBook v-if="titleData.name === '新手指引'"></menuBook>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- <home-footer></home-footer> -->
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import HomeHeader from '@/views/home/components/header'
|
import HomeHeader from '@/views/home/components/header'
|
||||||
import abilityDocTree from './components/abilityDocTree'
|
import abilityDocTree from './components/abilityDocTree'
|
||||||
import { ref, onMounted } from 'vue'
|
import menuBook from './components/menuBook'
|
||||||
import { message } from 'ant-design-vue'
|
import { ref, onMounted } from 'vue'
|
||||||
import { getDevelopDocTree } from '@/api/home'
|
import { message } from 'ant-design-vue'
|
||||||
// import flatten from '@turf/flatten'
|
import { getDevelopDocTree } from '@/api/home'
|
||||||
|
import HomeFooter from '@/views/newHome/components/Footer'
|
||||||
|
// import flatten from '@turf/flatten'
|
||||||
|
|
||||||
const titleList = ref([
|
const titleList = ref([
|
||||||
{
|
{
|
||||||
name: '新手指引',
|
name: '新手指引',
|
||||||
className: 'newGuide',
|
className: 'newGuide',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '技术文档',
|
name: '技术文档',
|
||||||
className: 'doc',
|
className: 'doc',
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
const titleData = ref(titleList.value[0])
|
const titleData = ref(titleList.value[0])
|
||||||
const clickData = ref({})
|
const clickData = ref({})
|
||||||
const treeArray = ref([])
|
const treeArray = ref([])
|
||||||
const treeArrayCopy = ref([])
|
const treeArrayCopy = ref([])
|
||||||
let typeList = ['组件服务', '应用资源', '基础设施', '数据资源', '知识库']
|
let typeList = ['组件服务', '应用资源', '基础设施', '数据资源', '知识库']
|
||||||
let doc_base_url = ref(window.SITE_CONFIG['frontUrl'])
|
let doc_base_url = ref(window.SITE_CONFIG['frontUrl'])
|
||||||
|
|
||||||
const treeClick = (item) => {
|
const treeClick = (item) => {
|
||||||
clickData.value = item
|
clickData.value = item
|
||||||
console.log('clickData------------>', item)
|
console.log('clickData------------>', item)
|
||||||
titleData.value = titleList.value[1]
|
titleData.value = titleList.value[1]
|
||||||
}
|
}
|
||||||
|
|
||||||
const getTreeData = () => {
|
const getTreeData = () => {
|
||||||
getDevelopDocTree({})
|
getDevelopDocTree({})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log('res------文档树------>', res)
|
console.log('res------文档树------>', res)
|
||||||
if (res.data.code !== 0) {
|
if (res.data.code !== 0) {
|
||||||
return message.error(res.data.msg)
|
return message.error(res.data.msg)
|
||||||
}
|
|
||||||
treeArray.value = res.data.data || []
|
|
||||||
treeArrayCopy.value = JSON.parse(JSON.stringify(treeArray.value))
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
message.error(err)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const changeName = (item) => {
|
|
||||||
titleData.value = item
|
|
||||||
if (item.name == '新手指引') {
|
|
||||||
clickData.value = {}
|
|
||||||
}
|
|
||||||
if (item.name == '技术文档') {
|
|
||||||
if (!clickData.value.title) {
|
|
||||||
clickData.value = {}
|
|
||||||
treeArray.value = []
|
|
||||||
treeArrayCopy.value.map((val, i) => {
|
|
||||||
let obj = Object.assign({}, val, {
|
|
||||||
title: val.title,
|
|
||||||
show:
|
|
||||||
(i === 0 && val.children && val.children.length > 0) ||
|
|
||||||
typeList.includes(val.title)
|
|
||||||
? true
|
|
||||||
: false,
|
|
||||||
children: [],
|
|
||||||
})
|
|
||||||
formData(val.children, obj)
|
|
||||||
treeArray.value.push(obj)
|
|
||||||
})
|
|
||||||
getFirstData(treeArrayCopy.value[0] || {})
|
|
||||||
}
|
}
|
||||||
}
|
treeArray.value = res.data.data || []
|
||||||
}
|
treeArrayCopy.value = JSON.parse(JSON.stringify(treeArray.value))
|
||||||
|
|
||||||
const formData = (children = [], dataItem) => {
|
|
||||||
children.map((item, index) => {
|
|
||||||
let _obj = Object.assign({}, item, {
|
|
||||||
title: item.title,
|
|
||||||
show:
|
|
||||||
(index === 0 && item.children && item.children.length > 0) ||
|
|
||||||
typeList.includes(item.title)
|
|
||||||
? true
|
|
||||||
: false,
|
|
||||||
children: [],
|
|
||||||
})
|
|
||||||
if (item.children && item.children.length > 0) {
|
|
||||||
formData(item.children, _obj)
|
|
||||||
}
|
|
||||||
dataItem.children.push(_obj)
|
|
||||||
})
|
})
|
||||||
}
|
.catch((err) => {
|
||||||
|
message.error(err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const getFirstData = (firstObj = {}) => {
|
const changeName = (item) => {
|
||||||
if (firstObj && firstObj.children && firstObj.children.length > 0) {
|
titleData.value = item
|
||||||
getFirstData(firstObj.children[0])
|
if (item.name == '新手指引') {
|
||||||
} else {
|
clickData.value = {}
|
||||||
clickData.value = firstObj
|
}
|
||||||
|
if (item.name == '技术文档') {
|
||||||
|
if (!clickData.value.title) {
|
||||||
|
clickData.value = {}
|
||||||
|
treeArray.value = []
|
||||||
|
treeArrayCopy.value.map((val, i) => {
|
||||||
|
let obj = Object.assign({}, val, {
|
||||||
|
title: val.title,
|
||||||
|
show:
|
||||||
|
(i === 0 && val.children && val.children.length > 0) ||
|
||||||
|
typeList.includes(val.title)
|
||||||
|
? true
|
||||||
|
: false,
|
||||||
|
children: [],
|
||||||
|
})
|
||||||
|
formData(val.children, obj)
|
||||||
|
treeArray.value.push(obj)
|
||||||
|
})
|
||||||
|
getFirstData(treeArrayCopy.value[0] || {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
const formData = (children = [], dataItem) => {
|
||||||
getTreeData()
|
children.map((item, index) => {
|
||||||
|
let _obj = Object.assign({}, item, {
|
||||||
|
title: item.title,
|
||||||
|
show:
|
||||||
|
(index === 0 && item.children && item.children.length > 0) ||
|
||||||
|
typeList.includes(item.title)
|
||||||
|
? true
|
||||||
|
: false,
|
||||||
|
children: [],
|
||||||
|
})
|
||||||
|
if (item.children && item.children.length > 0) {
|
||||||
|
formData(item.children, _obj)
|
||||||
|
}
|
||||||
|
dataItem.children.push(_obj)
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const getFirstData = (firstObj = {}) => {
|
||||||
|
if (firstObj && firstObj.children && firstObj.children.length > 0) {
|
||||||
|
getFirstData(firstObj.children[0])
|
||||||
|
} else {
|
||||||
|
clickData.value = firstObj
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getTreeData()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
.menu-box {
|
.menu-box {
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.first-title-text {
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 18px;
|
||||||
|
color: #333;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #0058e1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.first-title-text {
|
.menu-container {
|
||||||
cursor: pointer;
|
width: 100%;
|
||||||
font-size: 18px;
|
padding-top: 0.74rem;
|
||||||
color: #333;
|
}
|
||||||
padding-bottom: 10px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
&:hover {
|
.content-menu {
|
||||||
color: #0058e1;
|
width: 1800px;
|
||||||
}
|
display: flex;
|
||||||
}
|
justify-content: flex-start;
|
||||||
|
margin: 0 auto;
|
||||||
|
box-sizing: border-box;
|
||||||
|
// position: fixed;
|
||||||
|
// left: 50%;
|
||||||
|
// bottom: 0;
|
||||||
|
// transform: translateX(-50%);
|
||||||
|
// top: 0.6rem;
|
||||||
|
// top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.content-menu {
|
.left {
|
||||||
width: 1240px;
|
width: 200px;
|
||||||
display: flex;
|
padding: 20px;
|
||||||
justify-content: flex-start;
|
margin-right: 20px;
|
||||||
margin: 0 auto;
|
background: rgba(244, 245, 248, 1);
|
||||||
margin-top: 74px;
|
overflow-y: scroll;
|
||||||
box-sizing: border-box;
|
position: fixed;
|
||||||
position: fixed;
|
top: 200px;
|
||||||
left: 50%;
|
left: 90px;
|
||||||
bottom: 0;
|
}
|
||||||
transform: translateX(-50%);
|
|
||||||
top: 0.6rem;
|
|
||||||
top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.left {
|
.right {
|
||||||
width: 240px;
|
width: 1300px;
|
||||||
padding: 20px;
|
height: calc(100% - 20px);
|
||||||
height: 600px;
|
position: absolute;
|
||||||
margin-right: 20px;
|
top: 10px;
|
||||||
background: rgba(244, 245, 248, 0.8);
|
left: 300px;
|
||||||
overflow-y: scroll;
|
min-height: 600px;
|
||||||
position: absolute;
|
}
|
||||||
top: 10px;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right {
|
.sidebar {
|
||||||
width: 870px;
|
right: 0 !important;
|
||||||
height: calc(100% - 20px);
|
}
|
||||||
|
|
||||||
position: absolute;
|
.content {
|
||||||
top: 10px;
|
right: 16rem !important;
|
||||||
left: 260px;
|
left: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
.img {
|
||||||
right: 0 !important;
|
height: 20px;
|
||||||
}
|
width: 20px;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
.content {
|
.doc {
|
||||||
right: 16rem !important;
|
background: url('~@/assets/capabilityCloud/doc.png') no-repeat;
|
||||||
left: 0 !important;
|
background-size: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.img {
|
.newGuide {
|
||||||
height: 20px;
|
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
|
||||||
width: 20px;
|
background-size: 100%;
|
||||||
margin-right: 8px;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.doc {
|
.new-menu-box {
|
||||||
background: url('~@/assets/capabilityCloud/doc.png') no-repeat;
|
height: 100%;
|
||||||
background-size: 100%;
|
display: flex;
|
||||||
}
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
.newGuide {
|
.rela {
|
||||||
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
|
width: 100%;
|
||||||
background-size: 100%;
|
height: 100%;
|
||||||
}
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
.new-menu-box {
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rela {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -171,6 +171,16 @@
|
||||||
num: res.data.data[key],
|
num: res.data.data[key],
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if (uavAndIndividualSoldier.num) {
|
||||||
|
jcList.value.push({
|
||||||
|
name: '无人机',
|
||||||
|
num: uavAndIndividualSoldier.uavList.length,
|
||||||
|
})
|
||||||
|
jcList.value.push({
|
||||||
|
name: '单兵设备',
|
||||||
|
num: uavAndIndividualSoldier.individualSoldier.length,
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
pageWithAttrs(paramsGetResources).then((res) => {
|
pageWithAttrs(paramsGetResources).then((res) => {
|
||||||
|
|
|
@ -75,6 +75,9 @@
|
||||||
break
|
break
|
||||||
case '基础设施':
|
case '基础设施':
|
||||||
jcNum.value = val.count
|
jcNum.value = val.count
|
||||||
|
if (uavAndIndividualSoldier.num) {
|
||||||
|
jcNum.value = jcNum.value - 0 + uavAndIndividualSoldier.num
|
||||||
|
}
|
||||||
break
|
break
|
||||||
case '数据资源':
|
case '数据资源':
|
||||||
sjNum.value = val.count
|
sjNum.value = val.count
|
||||||
|
|
|
@ -384,7 +384,6 @@
|
||||||
height: 2.2rem;
|
height: 2.2rem;
|
||||||
padding-top: 0.49rem;
|
padding-top: 0.49rem;
|
||||||
}
|
}
|
||||||
background: #f3f5f9;
|
|
||||||
border: #eaedf2 0.01rem solid;
|
border: #eaedf2 0.01rem solid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -516,7 +515,8 @@
|
||||||
.content > div {
|
.content > div {
|
||||||
height: 4.8rem;
|
height: 4.8rem;
|
||||||
width: 3.1rem;
|
width: 3.1rem;
|
||||||
margin-right: 0.2rem;
|
margin-right: 0.1rem;
|
||||||
|
background: #f3f5f9;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fixedmount {
|
.fixedmount {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-07-12 09:42:44
|
* @Date: 2022-07-12 09:42:44
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-07-28 14:13:22
|
* @LastEditTime: 2022-08-01 10:49:31
|
||||||
* @Description:我的申请 能力申请 查看详情
|
* @Description:我的申请 能力申请 查看详情
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -357,10 +357,10 @@
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
}
|
}
|
||||||
.result:hover {
|
// .result:hover {
|
||||||
color: #0058e1;
|
// color: #0058e1;
|
||||||
cursor: pointer;
|
// cursor: pointer;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,13 +64,13 @@
|
||||||
{{ item.cameraList ? item.system : item.title }}
|
{{ item.cameraList ? item.system : item.title }}
|
||||||
</template>
|
</template>
|
||||||
<div class="content-body-title">
|
<div class="content-body-title">
|
||||||
<span
|
<!-- <span
|
||||||
v-if="item.cameraList && item.ended"
|
v-if="item.cameraList && item.ended"
|
||||||
@click="showVideoList(item)"
|
@click="showVideoList(item)"
|
||||||
>
|
>
|
||||||
名称:{{ item.cameraList ? item.system : item.title }}
|
名称:{{ item.cameraList ? item.system : item.title }}
|
||||||
</span>
|
</span> -->
|
||||||
<span v-else>
|
<span>
|
||||||
名称:{{ item.cameraList ? item.system : item.title }}
|
名称:{{ item.cameraList ? item.system : item.title }}
|
||||||
</span>
|
</span>
|
||||||
<div></div>
|
<div></div>
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<a-popconfirm
|
<a-popconfirm
|
||||||
|
v-if="checkedListAbility.length != 0"
|
||||||
title="是否进行批量删除?"
|
title="是否进行批量删除?"
|
||||||
ok-text="是"
|
ok-text="是"
|
||||||
cancel-text="否"
|
cancel-text="否"
|
||||||
|
@ -37,10 +38,26 @@
|
||||||
background: #fff;
|
background: #fff;
|
||||||
color: #0558e1;
|
color: #0558e1;
|
||||||
"
|
"
|
||||||
|
@click="ceshiFunction()"
|
||||||
>
|
>
|
||||||
批量删除
|
批量删除
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-popconfirm>
|
</a-popconfirm>
|
||||||
|
<a-button
|
||||||
|
v-else
|
||||||
|
type="primary"
|
||||||
|
style="
|
||||||
|
width: 1rem;
|
||||||
|
height: 0.36rem;
|
||||||
|
margin-right: 0.12rem;
|
||||||
|
border-radius: 2px;
|
||||||
|
background: #fff;
|
||||||
|
color: #0558e1;
|
||||||
|
"
|
||||||
|
@click="ceshiFunction()"
|
||||||
|
>
|
||||||
|
批量删除
|
||||||
|
</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
style="
|
style="
|
||||||
|
@ -767,7 +784,13 @@
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//ceshiFunction
|
||||||
|
const ceshiFunction = () => {
|
||||||
|
debugger
|
||||||
|
if (checkedListAbility.value.length == 0) {
|
||||||
|
message.warning('请先选择需要操作的数据!')
|
||||||
|
}
|
||||||
|
}
|
||||||
const delOne = (item, index) => {
|
const delOne = (item, index) => {
|
||||||
// console.log(item)
|
// console.log(item)
|
||||||
sgcDel({
|
sgcDel({
|
||||||
|
|