Merge branch 'hi-ucs-dev' into release

# Conflicts:
#	front/public/static/config/basicConfig.js
#	front/public/static/config/location.js
#	front/src/App.vue
#	front/src/views/personalCenter/components/MyPublish.vue
This commit is contained in:
a0049873 2022-11-28 17:38:34 +08:00
commit 77dc9be197
294 changed files with 10179 additions and 15193 deletions

3
.gitignore vendored
View File

@ -1,13 +1,16 @@
back/dist-西海岸-后台管理.zip back/dist-西海岸-后台管理.zip
back/public/index.html back/public/index.html
back/node_modules
back/dist-西海岸-后台管理-带配置文件.zip back/dist-西海岸-后台管理-带配置文件.zip
back/dist-市局-后台管理-带配置文件.zip back/dist-市局-后台管理-带配置文件.zip
back/dist-包头-后台管理.zip back/dist-包头-后台管理.zip
back/dist-市局-后台管理.zip back/dist-市局-后台管理.zip
back/dist-市局-后台管理-v0.8.2.1.zip back/dist-市局-后台管理-v0.8.2.1.zip
front/public/index.html front/public/index.html
front/node_modules
back/dist-西海岸-后台管理-v0.8.2.1.zip back/dist-西海岸-后台管理-v0.8.2.1.zip
back/dist-市局-后台管理-v0.8.2.3.zip back/dist-市局-后台管理-v0.8.2.3.zip
back/dist-西海岸-后台管理-v0.8.2.4.d.zip back/dist-西海岸-后台管理-v0.8.2.4.d.zip
*.zip *.zip
front/public/static/config/basicConfig.js front/public/static/config/basicConfig.js
front/public/static/config/basicConfig.js

View File

@ -65,75 +65,83 @@
</template> </template>
<script> <script>
import { isURL } from "@/utils/validate"; import { isURL } from '@/utils/validate'
export default { export default {
data() { data () {
return {}; return {}
}, },
methods: { methods: {
// tabs, iframe // tabs, iframe
tabIsIframe(url) { tabIsIframe (url) {
return isURL(url); return isURL(url)
}, },
// tabs, tab // tabs, tab
tabSelectedHandle(tab) { tabSelectedHandle (tab) {
tab = this.$store.state.contentTabs.filter( tab = this.$store.state.contentTabs.filter(
(item) => item.name === tab.name (item) => item.name === tab.name
)[0]; )[0]
if (tab) { if (tab) {
this.$router.push({ this.$router.push({
name: /^iframe_.+/.test(tab.name) ? "iframe" : tab.name, name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
params: { ...tab.params }, params: { ...tab.params },
query: { ...tab.query }, query: { ...tab.query }
}); })
} }
}, },
// tabs, tab // tabs, tab
tabRemoveHandle(tabName) { tabRemoveHandle (tabName) {
if (tabName === "home") { if (tabName === 'home') {
return false; return false
} }
console.log('删除', this.$store.state.contentTabs)
if (this.$store.state.contentTabs.length !== 1) {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter( this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name !== tabName (item) => item.name !== tabName
); )
if (this.$store.state.contentTabs.length <= 0) { } else {
this.$store.state.sidebarMenuActiveName = this.$message({
this.$store.state.contentTabsActiveName = "home"; message: '必须打开一个窗口!',
return false; type: 'warning'
})
} }
// if (this.$store.state.contentTabs.length <= 0) {
// this.$store.state.sidebarMenuActiveName =
// this.$store.state.contentTabsActiveName = 'home'
// return false
// }
// tab // tab
if (tabName === this.$store.state.contentTabsActiveName) { if (tabName === this.$store.state.contentTabsActiveName) {
let tab = const tab =
this.$store.state.contentTabs[ this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1 this.$store.state.contentTabs.length - 1
]; ]
this.$router.push({ this.$router.push({
name: /^iframe_.+/.test(tab.name) ? "iframe" : tab.name, name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
params: { ...tab.params }, params: { ...tab.params },
query: { ...tab.query }, query: { ...tab.query }
}); })
} }
}, },
// tabs, // tabs,
tabsCloseOtherHandle() { tabsCloseOtherHandle () {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter( this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => { (item) => {
return ( return (
item.name === "home" || item.name === 'home' ||
item.name === this.$store.state.contentTabsActiveName item.name === this.$store.state.contentTabsActiveName
); )
} }
); )
}, },
// tabs, // tabs,
tabsCloseAllHandle() { tabsCloseAllHandle () {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter( this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name === "home" (item) => item.name === 'home'
); )
this.$router.push({ name: "home" }); this.$router.push({ name: 'home' })
}, }
}, }
}; }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.aui-content { .aui-content {

View File

@ -81,8 +81,6 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" > <el-form :inline="true" >
<!--资源类型--> <!--资源类型-->
<el-form-item > <el-form-item >
@ -124,11 +122,9 @@
</el-form> </el-form>
</div> </div>
<el-card shadow="never" class="aui-card--fill" v-if="homeIsShow"> <el-card shadow="never" class="aui-card--fill" v-if="homeIsShow">
<div class="mod-demand__bsdemand"> <div class="mod-demand__bsdemand">
<div class="second-title"> <div class="second-title">
<span style="margin-right: 30px" :class="[ <span style="margin-right: 30px" :class="[
departmentId === 1 || departmentId === 3 departmentId === 1 || departmentId === 3
@ -157,7 +153,7 @@
明细 明细
</span> </span>
</template> </template>
<span v-else class="detail-button" @click="goToBack()"> 返回 </span> <span v-else class="detail-button" @click="goToBack()">统计</span>
</div> </div>
<div class="line-style"></div> <div class="line-style"></div>
<!--统计表--> <!--统计表-->
@ -267,7 +263,7 @@ export default {
data () { data () {
return { return {
checked: false, checked: false,
provideSelects:[], provideSelects: [],
departmentSelects: [], departmentSelects: [],
exportExcel: CONFIGITEM.configData[CONFIGITEM.version].apiURL + '/census/center/export', exportExcel: CONFIGITEM.configData[CONFIGITEM.version].apiURL + '/census/center/export',
exportExcelCondition: '', exportExcelCondition: '',
@ -374,7 +370,7 @@ export default {
status: '', status: '',
value1: [], // value1: [], //
abilityDepartment: '', // abilityDepartment: '', //
provideDepartment:'',// provideDepartment: '', //
abilityType: '', // abilityType: '', //
beginTime: '', // beginTime: '', //
endTime: '', // endTime: '', //
@ -744,7 +740,7 @@ export default {
startDate: this.startDate, startDate: this.startDate,
endDate: this.endDate, endDate: this.endDate,
resourceName: this.resourceName, resourceName: this.resourceName,
provideDept:this.provideDepartment provideDept: this.provideDepartment
} }
}) })
@ -758,7 +754,7 @@ export default {
startDate: this.startDate, startDate: this.startDate,
endDate: this.endDate, endDate: this.endDate,
resourceName: this.resourceName, resourceName: this.resourceName,
provideDept:this.provideDepartment provideDept: this.provideDepartment
}) })
}) })
}, },
@ -986,10 +982,10 @@ export default {
this.endDate = '' this.endDate = ''
this.examineStatus = '' this.examineStatus = ''
this.abilityDepartment = '' this.abilityDepartment = ''
this.provideDepartment='' this.provideDepartment = ''
this.abilityType = '' this.abilityType = ''
this.approveStatus = '' this.approveStatus = ''
this.resourceName='' this.resourceName = ''
this.exportExcelCondition = qs.stringify({ this.exportExcelCondition = qs.stringify({
approveStatus: this.status, approveStatus: this.status,
deptId: this.abilityDepartment, deptId: this.abilityDepartment,
@ -997,14 +993,13 @@ export default {
endDate: this.endDate, endDate: this.endDate,
resourceName: this.resourceName resourceName: this.resourceName
}) })
if (this.departmentId === 1) {// if (this.departmentId === 1) { //
this.handleChose(1) this.handleChose(1)
} else if (this.departmentId === 2) {//使 } else if (this.departmentId === 2) { // 使
this.handleChose(2) this.handleChose(2)
} else if (this.departmentId === 3) { //
} else if (this.departmentId === 3) {//
this.handleChose(3) this.handleChose(3)
} else {//使 } else { // 使
this.handleChose(4) this.handleChose(4)
} }
}, },

View File

@ -508,12 +508,13 @@ export default {
}, },
// //
deleteData (row) { deleteData (row) {
this.deleteDataArr.push(row.id)
if (this.deleteDataArr.length < 1) { if (this.deleteDataArr.length < 1) {
this.$message({ this.$message({
type: 'info', type: 'info',
message: '请选择要删除的数据' message: '请选择要删除的数据'
}) })
}else{ } else {
this.$confirm('此操作将删除当前数据, 是否继续?', '提示', { this.$confirm('此操作将删除当前数据, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
@ -521,9 +522,9 @@ export default {
}) })
.then(async () => { .then(async () => {
let ids = [] let ids = []
if(row.id && this.deleteDataArr.length==0){ if (row.id && this.deleteDataArr.length == 0) {
ids = [row.id] ids = [row.id]
}else{ } else {
ids = this.deleteDataArr ids = this.deleteDataArr
} }
this.$http this.$http
@ -546,7 +547,8 @@ export default {
type: 'info', type: 'info',
message: '已取消删除' message: '已取消删除'
}) })
})} })
}
}, },
// //
async openPreviewData (row) { async openPreviewData (row) {

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: hisense.guoyue * @Author: hisense.guoyue
* @LastEditors: hisense.guoyue * @LastEditors: Light
* @LastEditTime: 2022-09-27 14:23:29 * @LastEditTime: 2022-11-25 17:24:25
* @Description: 资金报表 * @Description: 资金报表
--> -->
<template> <template>
@ -44,28 +44,15 @@
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<!--审核状态-->
<!--提供部门 传id-->
<el-form-item> <el-form-item>
<span>提供部门</span> <span>审核状态</span>
<el-select <el-select v-model="dataForm.applyResult" placeholder="请选审核状态" clearable>
v-model="dataForm.provideDept"
placeholder="请选择提供部门"
filterable
clearable
>
<el-option label="全部" value=""></el-option> <el-option label="全部" value=""></el-option>
<el-option <el-option label="通过" value="通过"></el-option>
v-for="item in offerDepartSelects" <el-option label="审核中" value="审核中"></el-option>
:key="item.value"
:label="item.label"
:value="item.value"
v-bind="item"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!--申请部门 传汉字--> <!--申请部门 传汉字-->
<el-form-item> <el-form-item>
@ -86,8 +73,31 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!--提供部门 传id-->
<el-form-item>
<span>提供部门</span>
<el-select
v-model="dataForm.provideDept"
placeholder="请选择提供部门"
filterable
clearable
:disabled='disabled'
>
<el-option label="全部" value=""></el-option>
<el-option
v-for="item in offerDepartSelects"
:key="item.value"
:label="item.label"
:value="item.value"
v-bind="item"
></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form :inline="true">
<!--资源类型--> <!--资源类型-->
<el-form-item> <el-form-item>
<span>资源类型</span> <span>资源类型</span>
@ -108,19 +118,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true">
<!--审核状态-->
<el-form-item>
<span>审核状态</span>
<el-select v-model="dataForm.applyResult" placeholder="请选审核状态" clearable>
<el-option label="全部" value=""></el-option>
<el-option label="通过" value="通过"></el-option>
<el-option label="审核中" value="审核中"></el-option>
</el-select>
</el-form-item>
<!--资源名称--> <!--资源名称-->
<el-form-item> <el-form-item>
<span>资源名称</span> <span>资源名称</span>
@ -158,8 +156,6 @@
</el-form> </el-form>
<div class="mod-activiti__process"> <div class="mod-activiti__process">
<el-table <el-table
:data="tableData" :data="tableData"
@ -235,98 +231,120 @@ import Cookies from 'js-cookie'
import qs from 'qs' import qs from 'qs'
export default { export default {
data() { data () {
return { return {
exportExcelCondition:'', disabled: true,
exportExcelCondition: '',
token: Cookies.get('ucsToken'), token: Cookies.get('ucsToken'),
// //
exportExcel: CONFIGITEM.configData[CONFIGITEM.version].apiURL + '/processForm/tabilityapplication/exportFundStatementTable', exportExcel: CONFIGITEM.configData[CONFIGITEM.version].apiURL + '/processForm/tabilityapplication/exportFundStatementTable',
saveMoney: 0.0, saveMoney: 0.0,
offerDepartSelects: [], offerDepartSelects: [],
applyDepartSelects: [], applyDepartSelects: [],
typeOptions: [ typeOptions: [
{ name: "智能算法", value: 1 }, { name: '智能算法', value: 1 },
{ name: "图层服务", value: 2 }, { name: '图层服务', value: 2 },
{ name: "开发组件", value: 3 }, { name: '开发组件', value: 3 },
{ name: "业务组件", value: 4 }, { name: '业务组件', value: 4 },
{ name: "应用资源", value: 5 }, { name: '应用资源', value: 5 },
{ name: "会客厅", value: 6 }, { name: '会客厅', value: 6 }
], // ], //
tableData: [], tableData: [],
dateList: [],// dateList: [], //
dataForm: { dataForm: {
// date: '', // date: '',
startDate: "", startDate: '',
endDate: "", endDate: '',
provideDept: "", provideDept: '',
applyDept: "", applyDept: '',
resourceType: "", resourceType: '',
resourceName: "", resourceName: '',
applyResult:"通过", applyResult: '通过',
pageNum:1, pageNum: 1,
pageSize:10, pageSize: 10
}, },
currentPage: 1, currentPage: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0
}; }
}, },
methods: { methods: {
init() { init () {
if (this.dateList && this.dateList.length > 0) { if (this.dateList && this.dateList.length > 0) {
this.dataForm.startDate = this.dateList[0]; this.dataForm.startDate = this.dateList[0]
this.dataForm.endDate = this.dateList[1]; this.dataForm.endDate = this.dateList[1]
} else { } else {
this.dataForm.startDate = ""; this.dataForm.startDate = ''
this.dataForm.endDate = ""; this.dataForm.endDate = ''
} }
this.dataForm.pageNum=this.currentPage this.dataForm.pageNum = this.currentPage
let params = this.dataForm; const params = this.dataForm
this.$http this.$http
.get("/processForm/tabilityapplication/getFundStatement/", { .get('/processForm/tabilityapplication/getFundStatement/', {
params, params
}) })
.then((res) => { .then((res) => {
this.tableData = res.data.data.list; this.tableData = res.data.data.list
let price=Number(res.data.data.totalPrice); let price = Number(res.data.data.totalPrice)
price=price/ 10000; price = price / 10000
this.saveMoney=price.toFixed(1) this.saveMoney = price.toFixed(1)
this.total=Number(res.data.data.total); this.total = Number(res.data.data.total)
this.exportExcelCondition = qs.stringify(this.dataForm) this.exportExcelCondition = qs.stringify(this.dataForm)
}) })
}, },
handleCurrentChange(val) { handleCurrentChange (val) {
this.currentPage = val; this.currentPage = val
this.init(); this.init()
}, },
resetDataList() { resetDataList () {
this.dateList = []; this.dateList = []
this.dataForm.startDate = ""; this.dataForm.startDate = ''
this.dataForm.endDate = ""; this.dataForm.endDate = ''
this.dataForm.resourceType = ""; this.dataForm.resourceType = ''
this.dataForm.resourceName = ""; this.dataForm.resourceName = ''
this.dataForm.applyDept = ""; this.dataForm.applyDept = ''
this.dataForm.provideDept = ""; this.dataForm.provideDept = ''
this.dataForm.applyResult=""; this.dataForm.applyResult = ''
this.currentPage = 1; this.currentPage = 1
this.init(); this.init()
}
}, },
mounted () {
// this.init()
}, },
mounted() { created () {
this.init(); this.$http.get('/sys/dept/all').then((res) => {
}, this.applyDepartSelects = []
created() { this.offerDepartSelects = []
this.$http.get("/sys/dept/all").then((res) => {
this.applyDepartSelects = [];
this.offerDepartSelects = [];
res.data.data.map((val) => { res.data.data.map((val) => {
this.applyDepartSelects.push({ label: val.name, value: val.name }); this.applyDepartSelects.push({ label: val.name, value: val.name })
this.offerDepartSelects.push({ label: val.name, value: val.id }); this.offerDepartSelects.push({ label: val.name, value: val.id })
}); })
}); })
}, this.$http.get('/sys/user/info').then(res => {
}; this.dataForm.provideDept = res.data.data.deptId
this.init()
if (res.data.data.superAdmin == 1) {
this.disabled = false
this.dataForm.provideDept = ''
this.init()
return
}
if (res.data.data.roleIdList) {
res.data.data.roleIdList.map(val => {
this.$http.get('/sys/role/' + val).then(res1 => {
if (res1.data.data.name === '运维管理员') {
this.disabled = false
this.dataForm.provideDept = ''
this.init()
}
})
})
}
})
}
}
</script> </script>
<style scoped> <style scoped>
.demand-text { .demand-text {
@ -363,4 +381,3 @@ export default {
color: #fff; color: #fff;
} }
</style> </style>

View File

@ -65,6 +65,7 @@
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
<template v-if="dataList[0]">
<el-table-column <el-table-column
v-for="(item, index) in dataList[0].infoList" v-for="(item, index) in dataList[0].infoList"
:key="index" :key="index"
@ -77,6 +78,7 @@
{{ findValue(scope.row.infoList, item.attrType) }} {{ findValue(scope.row.infoList, item.attrType) }}
</template> </template>
</el-table-column> </el-table-column>
</template>
<el-table-column <el-table-column
:label="$t('handle')" :label="$t('handle')"
fixed="right" fixed="right"
@ -171,11 +173,11 @@ export default {
}, },
mounted () { mounted () {
window.addEventListener('resize', this.a) window.addEventListener('resize', this.a)
this.fullScreen(); this.fullScreen()
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.singleTable.doLayout(); // this.$refs.singleTable.doLayout() //
//:height="qp ? '810px' : '650px'" // :height="qp ? '810px' : '650px'"
}); })
}, },
methods: { methods: {
reset () { reset () {

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-29 15:59:51 * @Date: 2022-06-29 15:59:51
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-17 17:39:31 * @LastEditTime: 2022-11-28 11:28:43
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<!-- 流程业务表单 --> <!-- 流程业务表单 -->
@ -35,10 +35,15 @@
需求依据<span> 需求依据<span>
{{ dataForm.content.applicationBackground || '--' }}</span></span> {{ dataForm.content.applicationBackground || '--' }}</span></span>
</p> </p>
<p> <!-- <p>
<div> <div>
<el-button type="primary" v-if="dataForm.content.attachment" size="small" @click="download(dataForm.content)">附件下载</el-button> <el-button type="primary" v-if="dataForm.content.attachment" size="small" @click="download(dataForm.content)">附件下载</el-button>
</div> </div>
</p> -->
<p>
<div>
<el-button type="primary" size="small" @click="download(dataForm.content)">附件下载</el-button>
</div>
</p> </p>
<!-- <p> <!-- <p>
<span> <span>
@ -180,7 +185,7 @@ export default {
}) })
}) })
// KEY // KEY
console.log('params=================>', this.$route, this.$route.params) console.log('params=================>', this.$route, this.$route.params, this.dataForm)
this.dataForm.taskId = this.$route.params.taskId this.dataForm.taskId = this.$route.params.taskId
this.dataForm.instanceId = this.$route.params.processInstanceId this.dataForm.instanceId = this.$route.params.processInstanceId
this.init() this.init()
@ -262,6 +267,7 @@ export default {
getInfo () { getInfo () {
let params = '' let params = ''
if (this.dataForm.taskId) { if (this.dataForm.taskId) {
console.log('获取信息')
params = `taskId=${this.dataForm.taskId}` params = `taskId=${this.dataForm.taskId}`
this.$http this.$http
.get( .get(
@ -277,7 +283,9 @@ export default {
this.dataForm, this.dataForm,
'elas============================' 'elas============================'
) )
if (res.data.tAbilityApplicationDTOList[0].resourceOwnerDept) {
this.deptName = res.data.tAbilityApplicationDTOList[0].resourceOwnerDept.name this.deptName = res.data.tAbilityApplicationDTOList[0].resourceOwnerDept.name
}
this.$http this.$http
.get( .get(
`/act/task/getTaskVariables?${params}&variableName=allowEntrust` `/act/task/getTaskVariables?${params}&variableName=allowEntrust`
@ -297,6 +305,7 @@ export default {
} }
} }
}) })
console.log('获取信息', res.data)
if (res.data.tAbilityApplicationDTOList[0].applicationScene) { if (res.data.tAbilityApplicationDTOList[0].applicationScene) {
res.data.tAbilityApplicationDTOList[0].applicationSceneStr = '' res.data.tAbilityApplicationDTOList[0].applicationSceneStr = ''
res.data.tAbilityApplicationDTOList[0].applicationScene.map( res.data.tAbilityApplicationDTOList[0].applicationScene.map(
@ -359,6 +368,7 @@ export default {
this.dataForm, this.dataForm,
'elas============================' 'elas============================'
) )
console.log('获取信息2', res.data)
if (res.data[0].applicationScene) { if (res.data[0].applicationScene) {
res.data[0].applicationSceneStr = '' res.data[0].applicationSceneStr = ''
res.data[0].applicationScene.map((val, index) => { res.data[0].applicationScene.map((val, index) => {
@ -416,7 +426,6 @@ export default {
agreeOrNot: debounce( agreeOrNot: debounce(
function (data, type) { function (data, type) {
if (type === '同意') { if (type === '同意') {
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
comment: this.input || '同意' comment: this.input || '同意'
@ -522,10 +531,66 @@ export default {
// //
taskHandleErrorCallback (data) { }, taskHandleErrorCallback (data) { },
download (data) { download (data) {
const alink = document.createElement('a') this.downloadFile(data.attachment, '感知资源申请表')
alink.download = '附件' // ,,IE10 // const alink = document.createElement('a')
alink.href = data.attachment // url // alink.download = '' // ,,IE10
alink.click() // // // alink.href = data.attachment // url
// alink.href = 'http://10.134.135.92:8888/renren-admin/upload/2022/11/24/c1c2802f-b6d9-4eff-81c8-02965da1ba34.doc' // url
// alink.click() //
},
/**
* 获取 blob
* url 目标文件地址
*/
getBlob (url) {
return new Promise(resolve => {
const xhr = new XMLHttpRequest()
xhr.open('GET', url, true)
xhr.responseType = 'blob'
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response)
}
}
xhr.send()
})
},
/**
* 保存 blob
* filename 想要保存的文件名称
*/
saveAs (blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename)
} else {
const link = document.createElement('a')
const body = document.querySelector('body')
link.href = window.URL.createObjectURL(blob)
link.download = filename
// fix Firefox
link.style.display = 'none'
body.appendChild(link)
link.click()
body.removeChild(link)
window.URL.revokeObjectURL(link.href)
}
},
/**
* 下载
* @param {String} url 目标文件地址
* @param {String} filename 想要保存的文件名称
*/
downloadFile (url, filename) {
this.getBlob(url).then(blob => {
this.saveAs(blob, filename)
})
} }
}, },
mounted () { mounted () {

View File

@ -2,25 +2,25 @@
<el-card shadow="never" class="aui-card--fill"> <el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user"> <div class="mod-sys__user">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item> <el-form-item label="用户名">
<el-input v-model="dataForm.username" placeholder="用户名" clearable></el-input> <el-input v-model="dataForm.username" placeholder="用户名" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item label="真实姓名">
<el-input v-model="dataForm.real_name" placeholder="真实姓名" clearable></el-input> <el-input v-model="dataForm.real_name" placeholder="真实姓名" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item>
<ren-select v-model="dataForm.gender" dict-type="gender" :placeholder="$t('user.gender')"></ren-select>
</el-form-item>
<!-- <el-form-item> <!-- <el-form-item>
<el-select v-model="dataForm.postId" :placeholder="$t('user.postIdList')" clearable> <ren-select v-model="dataForm.gender" dict-type="gender" :placeholder="$t('user.gender')"></ren-select>
<el-option :label="data.postName" v-for="data in postList" :key="data.id" :value="data.id">{{ data.postName </el-form-item> -->
<el-form-item label="所属部门">
<el-select v-model="dataForm.deptId" :placeholder="$t('infrastructure.department')" clearable>
<el-option :label="data.name" v-for="data in deptList" :key="data.id" :value="data.id">{{ data.name
}}</el-option> }}</el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item>
<el-form-item> <!-- <el-form-item>
<ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :query="true" ref="renDeptTree"> <ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :query="true" ref="renDeptTree">
</ren-dept-tree> </ren-dept-tree>
</el-form-item> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button type="primary" @click="getDataList()">{{ <el-button type="primary" @click="getDataList()">{{
$t('query') $t('query')
@ -97,7 +97,7 @@ import AddOrUpdate from './user-add-or-update'
import qs from 'qs' import qs from 'qs'
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data() { data () {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/sys/user/page', getDataListURL: '/sys/user/page',
@ -106,7 +106,7 @@ export default {
deleteIsBatch: true, deleteIsBatch: true,
exportURL: '/sys/user/export' exportURL: '/sys/user/export'
}, },
postList: [], deptList: [],
dataForm: { dataForm: {
username: '', username: '',
deptId: '', deptId: '',
@ -118,18 +118,18 @@ export default {
components: { components: {
AddOrUpdate AddOrUpdate
}, },
created() { created () {
this.getPostList() this.getDeptList()
}, },
methods: { methods: {
reset() { reset () {
this.dataForm.username = '' this.dataForm.username = ''
this.dataForm.real_name = '' this.dataForm.real_name = ''
this.dataForm.deptId = '' this.dataForm.deptId = ''
this.dataForm.postId = '' this.dataForm.postId = ''
this.dataForm.gender = '' this.dataForm.gender = ''
if (this.$refs.renDeptTree) { if (this.$refs.renDeptTree) {
this.$refs.renDeptTree.showDeptName = ''; this.$refs.renDeptTree.showDeptName = ''
} }
this.$http this.$http
.get( .get(
@ -165,16 +165,13 @@ export default {
this.dataListLoading = false this.dataListLoading = false
}) })
}, },
getPostList() { getDeptList () {
this.$http this.$http.get('/sys/dept/list').then(({ data: res }) => {
.get('/sys/post/list')
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.postList = res.data this.deptList = res.data
}) }).catch(() => { })
.catch(() => { })
} }
} }
} }

2
front/.gitignore vendored
View File

@ -4,7 +4,7 @@ dist
package-lock.json package-lock.json
yarn.lock yarn.lock
*.zip *.zip
/node_modules
# local env files # local env files
.env.local .env.local
.env.*.local .env.*.local

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

View File

@ -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: Light * @LastEditors: Light
* @LastEditTime: 2022-11-24 09:11:58 * @LastEditTime: 2022-11-28 17:32:57
* @Description: 系统静态参数配置 * @Description: 系统静态参数配置
*/ */
var _global = {} var _global = {}
@ -63,14 +63,14 @@ var CONFIGITEM = {
}, },
// //
camreaInfo: { camreaInfo: {
// cameraUrl: '10.134.135.92:9537', // 西- cameraUrl: '10.134.135.92:9537', // 西-
// cameraUrl: '10.134.135.9:9537', // 西- // cameraUrl: '10.134.135.9:9537', // 西-
cameraUrl: '192.168.124.236:9537', // vpn // cameraUrl: '192.168.124.236:9537', // vpn
}, },
backUrl: 'http://10.134.135.9:9797', backUrl: 'http://10.134.135.9:9797',
// apiURL: 'http://10.134.135.92:8888/renren-admin', apiURL: 'http://10.134.135.92:8888/renren-admin',
apiURL: 'http://192.168.124.233:8888/ucs-admin', // apiURL: 'http://192.168.124.233:8888/ucs-admin',
previewUrl: 'http://10.134.135.9:9796/', // previewUrl: 'http://10.134.135.9:9796/',
// websocketURL: '10.134.135.9:8888/ucs-admin', // // websocketURL: '10.134.135.9:8888/ucs-admin', //
// websocketURL: '10.134.135.92:8888/ucs-admin', // // websocketURL: '10.134.135.92:8888/ucs-admin', //
websocketURL: '192.168.124.254:8888/ucs-admin', // - websocketURL: '192.168.124.254:8888/ucs-admin', // -

View File

@ -1,39 +1,43 @@
/* /*
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23 * @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.wuhongjian * @LastEditors: Light
* @LastEditTime: 2022-10-14 11:23:58 * @LastEditTime: 2022-11-28 17:34:04
* @Description: 数据资源参数配置 * @Description: 数据资源参数配置
*/ */
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
const newLocation = CONFIGITEM.version const newLocation = CONFIGITEM.version
// const newLocation = 'baotou' // const newLocation = 'baotou'
// const newLocation = 'xihaian' // const newLocation = 'xihaian'
// //
const whoShow = {} const whoShow = {}
const launchedDataNumObject = {} const launchedDataNumObject = {}
// //
const navListManagement = {} const navListManagement = {}
// //
const uavAndIndividualSoldier = {} const uavAndIndividualSoldier = {}
// //
const infrastructure = {} const infrastructure = {}
// //
const mapTestNum = {} const mapTestNum = {}
// //
const footerDataList = {} const footerDataList = {}
// 西-- // 西--
const xhaHasPermissionUser = {} const xhaHasPermissionUser = {}
// qingdao // qingdao
if (newLocation !== 'baotou' && newLocation !== 'xihaian') { if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
whoShow.itShowQingDao = true whoShow.itShowQingDao = true
infrastructure.deptName = '青岛市大数据发展管理局' infrastructure.deptName = '青岛市大数据发展管理局'
infrastructure.deptId = '1067246875800000066' infrastructure.deptId = '1067246875800000066'
navListManagement.navList = [ navListManagement.navList = [
{ name: '共享门户', key: 'home' }, { name: '共享门户', key: 'home' },
{ name: '能力集市', key: 'DetailsPageconetent', innerKey: 'algorithmCompare' }, {
// { name: '', key: 'capabilityCloud' }, name: '能力集市',
key: 'DetailsPageconetent',
innerKey: 'algorithmCompare',
},
{ name: '能力云图', key: 'capabilityCloud' },
{ name: '能力统计', key: 'abilityStatistics' }, { name: '能力统计', key: 'abilityStatistics' },
// { name: '', key: 'developmentGuide' }, // { name: '', key: 'developmentGuide' },
{ name: '新手指南', key: 'instructionManual' }, { name: '新手指南', key: 'instructionManual' },
@ -50,7 +54,8 @@ if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
left: '青岛市大数据发展管理局', left: '青岛市大数据发展管理局',
right: '政府标识码3702000106', right: '政府标识码3702000106',
}, },
address: [{ address: [
{
name: '邮编: 266071', name: '邮编: 266071',
value: 'Email: QDDSJJ@qingdao.shandong.cn', value: 'Email: QDDSJJ@qingdao.shandong.cn',
}, },
@ -64,7 +69,8 @@ if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
}, },
], ],
} }
mapTestNum.lsNum = [{ mapTestNum.lsNum = [
{
name: '基础设施', name: '基础设施',
key: 'lsjcss', key: 'lsjcss',
num: '20135个', num: '20135个',
@ -80,7 +86,8 @@ if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
num: '28个', num: '28个',
}, },
] ]
mapTestNum.xhaNum = [{ mapTestNum.xhaNum = [
{
name: '基础设施', name: '基础设施',
key: 'xhajcss', key: 'xhajcss',
num: '35282个', num: '35282个',
@ -105,7 +112,8 @@ if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
// baotou // baotou
else if (newLocation === 'baotou') { else if (newLocation === 'baotou') {
whoShow.itShowBaoTou = true whoShow.itShowBaoTou = true
launchedDataNumObject.launchedDataNum = [{ launchedDataNumObject.launchedDataNum = [
{
num: 10372, num: 10372,
}, },
{ {
@ -132,7 +140,8 @@ else if (newLocation === 'baotou') {
left: '包头市工业和信息化局大数据中心建设', left: '包头市工业和信息化局大数据中心建设',
right: '海信网络科技股份有限公司', right: '海信网络科技股份有限公司',
}, },
address: [{ address: [
{
name: '蒙ICP备05003330-1号', name: '蒙ICP备05003330-1号',
value: '政府标识码1502000040', value: '政府标识码1502000040',
}, },
@ -153,32 +162,41 @@ else if (newLocation === 'xihaian') {
infrastructure.deptName = '西海岸新区大数据发展' infrastructure.deptName = '西海岸新区大数据发展'
// infrastructure.deptId = '1067246875800000066' // infrastructure.deptId = '1067246875800000066'
uavAndIndividualSoldier.num = 4 uavAndIndividualSoldier.num = 4
uavAndIndividualSoldier.uavList = [{ uavAndIndividualSoldier.uavList = [
{
name: '经纬 M300 RTK-1', name: '经纬 M300 RTK-1',
url: '', url: '',
details: [{ details: [
{
name: '飞行器', name: '飞行器',
attribute: { attribute: {
尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××', 尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××',
对称电机轴距: '895 mm', 对称电机轴距: '895 mm',
'重量(含下置单云台支架):空机重量(不含电池)': '3.6 kg空机重量含双电池6.3 kg', '重量(含下置单云台支架):空机重量(不含电池)':
'3.6 kg空机重量含双电池6.3 kg',
单云台减震球最大负重: '930g', 单云台减震球最大负重: '930g',
最大起飞重量: '9 kg', 最大起飞重量: '9 kg',
工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz', 工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz',
'发射功率EIRP': '2.4000-2.4835 GHz29.5 dBmFCC、18.5dBmCE、18.5 dBmSRRC、18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC、12.5dBmCE、28.5 dBmSRRC', '发射功率EIRP':
'悬停精度P-GPS': '垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)', '2.4000-2.4835 GHz29.5 dBmFCC、18.5dBmCE、18.5 dBmSRRC、18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC、12.5dBmCE、28.5 dBmSRRC',
'RTK 位置精度': '在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直', '悬停精度P-GPS':
'垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)',
'RTK 位置精度':
'在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直',
最大旋转角速度: '俯仰轴300°/s、航向轴100°/s', 最大旋转角速度: '俯仰轴300°/s、航向轴100°/s',
最大俯仰角度: '30° P模式且前视视觉系统启用25°', 最大俯仰角度: '30° P模式且前视视觉系统启用25°',
最大上升速度: 'S 模式6 m/s、P 模式5 m/s', 最大上升速度: 'S 模式6 m/s、P 模式5 m/s',
'最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s', '最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s',
最大倾斜下降速度: 'S 模式7 m/s', 最大倾斜下降速度: 'S 模式7 m/s',
最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s', 最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s',
最大飞行海拔高度: '5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg', 最大飞行海拔高度:
'5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg',
最大可承受风速: '15m/s起飞及降落阶段为12m/s', 最大可承受风速: '15m/s起飞及降落阶段为12m/s',
最大飞行时间: '55 min', 最大飞行时间: '55 min',
'适配 DJI 云台': '禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1', '适配 DJI 云台':
支持云台安装方式: '下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台', '禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
支持云台安装方式:
'下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
'IP 防护等级': 'IP45', 'IP 防护等级': 'IP45',
GNSS: 'GPS+GLONASS+BeiDou+Galileo', GNSS: 'GPS+GLONASS+BeiDou+Galileo',
工作环境温度: '-20°C 至 50°C', 工作环境温度: '-20°C 至 50°C',
@ -188,10 +206,14 @@ else if (newLocation === 'xihaian') {
name: '遥控器', name: '遥控器',
attribute: { attribute: {
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz', 工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
'最大信号有效距离(无干扰、无遮挡)': 'NCC/FCC15 km、CE/MIC8 km、SRRC8 km', '最大信号有效距离(无干扰、无遮挡)':
'等效全向辐射功率EIRP': '2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC', 'NCC/FCC15 km、CE/MIC8 km、SRRC8 km',
外置电池: '名称WB37 智能电池容量4920 mAh电压7.6 V电池类型LiPo能量37.39 Wh充电时间使用 BS60 智能电池箱70 分钟15°C 至 45°C130 分钟0°C 至 15°C', '等效全向辐射功率EIRP':
内置电池: '类型18650 锂离子电池 5000 mAh @ 7.2 V充电方式使用规格为 12V/2A 的 USB 充电器额定功率17 W充电时间2 小时 15 分钟使用规格为12V/2A 的 USB 充电器)', '2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC',
外置电池:
'名称WB37 智能电池容量4920 mAh电压7.6 V电池类型LiPo能量37.39 Wh充电时间使用 BS60 智能电池箱70 分钟15°C 至 45°C130 分钟0°C 至 15°C',
内置电池:
'类型18650 锂离子电池 5000 mAh @ 7.2 V充电方式使用规格为 12V/2A 的 USB 充电器额定功率17 W充电时间2 小时 15 分钟使用规格为12V/2A 的 USB 充电器)',
续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时', 续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时',
'USB-A 接口供电电压/电流': '5 V / 1.5 A', 'USB-A 接口供电电压/电流': '5 V / 1.5 A',
工作环境温度: '-20° 至 40° C', 工作环境温度: '-20° 至 40° C',
@ -202,7 +224,8 @@ else if (newLocation === 'xihaian') {
attribute: { attribute: {
障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m', 障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m',
FOV: '前后下65°H50°V、左右上75°H60°V', FOV: '前后下65°H50°V、左右上75°H60°V',
使用环境: '表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境', 使用环境:
'表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境',
}, },
}, },
{ {
@ -238,8 +261,10 @@ else if (newLocation === 'xihaian') {
电池整体重量: '约 1.35 kg', 电池整体重量: '约 1.35 kg',
工作环境温度: '-20℃ 至 50℃', 工作环境温度: '-20℃ 至 50℃',
理想存放环境温度: '22℃ 至 30℃', 理想存放环境温度: '22℃ 至 30℃',
充电环境温度: '-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命', 充电环境温度:
充电时间: '使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟', '-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命',
充电时间:
'使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
}, },
}, },
{ {
@ -259,29 +284,37 @@ else if (newLocation === 'xihaian') {
{ {
name: '经纬 M300 RTK-2', name: '经纬 M300 RTK-2',
url: '', url: '',
details: [{ details: [
{
name: '飞行器', name: '飞行器',
attribute: { attribute: {
尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××', 尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××',
对称电机轴距: '895 mm', 对称电机轴距: '895 mm',
'重量(含下置单云台支架):空机重量(不含电池)': '3.6 kg空机重量含双电池6.3 kg', '重量(含下置单云台支架):空机重量(不含电池)':
'3.6 kg空机重量含双电池6.3 kg',
单云台减震球最大负重: '930g', 单云台减震球最大负重: '930g',
最大起飞重量: '9 kg', 最大起飞重量: '9 kg',
工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz', 工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz',
'发射功率EIRP': '2.4000-2.4835 GHz29.5 dBmFCC、18.5dBmCE、18.5 dBmSRRC、18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC、12.5dBmCE、28.5 dBmSRRC', '发射功率EIRP':
'悬停精度P-GPS': '垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)', '2.4000-2.4835 GHz29.5 dBmFCC、18.5dBmCE、18.5 dBmSRRC、18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC、12.5dBmCE、28.5 dBmSRRC',
'RTK 位置精度': '在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直', '悬停精度P-GPS':
'垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)',
'RTK 位置精度':
'在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直',
最大旋转角速度: '俯仰轴300°/s、航向轴100°/s', 最大旋转角速度: '俯仰轴300°/s、航向轴100°/s',
最大俯仰角度: '30° P模式且前视视觉系统启用25°', 最大俯仰角度: '30° P模式且前视视觉系统启用25°',
最大上升速度: 'S 模式6 m/s、P 模式5 m/s', 最大上升速度: 'S 模式6 m/s、P 模式5 m/s',
'最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s', '最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s',
最大倾斜下降速度: 'S 模式7 m/s', 最大倾斜下降速度: 'S 模式7 m/s',
最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s', 最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s',
最大飞行海拔高度: '5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg', 最大飞行海拔高度:
'5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg',
最大可承受风速: '15m/s起飞及降落阶段为12m/s', 最大可承受风速: '15m/s起飞及降落阶段为12m/s',
最大飞行时间: '55 min', 最大飞行时间: '55 min',
'适配 DJI 云台': '禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1', '适配 DJI 云台':
支持云台安装方式: '下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台', '禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
支持云台安装方式:
'下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
'IP 防护等级': 'IP45', 'IP 防护等级': 'IP45',
GNSS: 'GPS+GLONASS+BeiDou+Galileo', GNSS: 'GPS+GLONASS+BeiDou+Galileo',
工作环境温度: '-20°C 至 50°C', 工作环境温度: '-20°C 至 50°C',
@ -291,10 +324,14 @@ else if (newLocation === 'xihaian') {
name: '遥控器', name: '遥控器',
attribute: { attribute: {
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz', 工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
'最大信号有效距离(无干扰、无遮挡)': 'NCC/FCC15 km、CE/MIC8 km、SRRC8 km', '最大信号有效距离(无干扰、无遮挡)':
'等效全向辐射功率EIRP': '2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC', 'NCC/FCC15 km、CE/MIC8 km、SRRC8 km',
外置电池: '名称WB37 智能电池容量4920 mAh电压7.6 V电池类型LiPo能量37.39 Wh充电时间使用 BS60 智能电池箱70 分钟15°C 至 45°C130 分钟0°C 至 15°C', '等效全向辐射功率EIRP':
内置电池: '类型18650 锂离子电池 5000 mAh @ 7.2 V充电方式使用规格为 12V/2A 的 USB 充电器额定功率17 W充电时间2 小时 15 分钟使用规格为12V/2A 的 USB 充电器)', '2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC',
外置电池:
'名称WB37 智能电池容量4920 mAh电压7.6 V电池类型LiPo能量37.39 Wh充电时间使用 BS60 智能电池箱70 分钟15°C 至 45°C130 分钟0°C 至 15°C',
内置电池:
'类型18650 锂离子电池 5000 mAh @ 7.2 V充电方式使用规格为 12V/2A 的 USB 充电器额定功率17 W充电时间2 小时 15 分钟使用规格为12V/2A 的 USB 充电器)',
续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时', 续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时',
'USB-A 接口供电电压/电流': '5 V / 1.5 A', 'USB-A 接口供电电压/电流': '5 V / 1.5 A',
工作环境温度: '-20° 至 40° C', 工作环境温度: '-20° 至 40° C',
@ -305,7 +342,8 @@ else if (newLocation === 'xihaian') {
attribute: { attribute: {
障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m', 障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m',
FOV: '前后下65°H50°V、左右上75°H60°V', FOV: '前后下65°H50°V、左右上75°H60°V',
使用环境: '表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境', 使用环境:
'表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境',
}, },
}, },
{ {
@ -341,8 +379,10 @@ else if (newLocation === 'xihaian') {
电池整体重量: '约 1.35 kg', 电池整体重量: '约 1.35 kg',
工作环境温度: '-20℃ 至 50℃', 工作环境温度: '-20℃ 至 50℃',
理想存放环境温度: '22℃ 至 30℃', 理想存放环境温度: '22℃ 至 30℃',
充电环境温度: '-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命', 充电环境温度:
充电时间: '使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟', '-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命',
充电时间:
'使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
}, },
}, },
{ {
@ -360,7 +400,8 @@ else if (newLocation === 'xihaian') {
], ],
}, },
] ]
uavAndIndividualSoldier.individualSoldier = [{ uavAndIndividualSoldier.individualSoldier = [
{
name: 'T950天通-1', name: 'T950天通-1',
type: '单兵设备', type: '单兵设备',
details: { details: {
@ -370,9 +411,11 @@ else if (newLocation === 'xihaian') {
CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510', CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
存储: '标配:6GB ROM +128G RAM', 存储: '标配:6GB ROM +128G RAM',
显示屏: '6.52吋水滴屏;HD+1600*720(20:9)', 显示屏: '6.52吋水滴屏;HD+1600*720(20:9)',
后置摄像头: '后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯', 后置摄像头:
'后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯',
前置摄像头: '1600万', 前置摄像头: '1600万',
传感器相关: '指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器', 传感器相关:
'指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
WLAN: '802.11a/b/g/n/AC 支持MIMO', WLAN: '802.11a/b/g/n/AC 支持MIMO',
电池: '6000mAh@3.8V内置不可拆卸支持18W快充', 电池: '6000mAh@3.8V内置不可拆卸支持18W快充',
工作时间: '待机时长180h卫星通话时长16h', 工作时间: '待机时长180h卫星通话时长16h',
@ -414,9 +457,11 @@ else if (newLocation === 'xihaian') {
CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510', CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
存储: '标配:6GB ROM +128G RAM', 存储: '标配:6GB ROM +128G RAM',
显示屏: '6.52吋水滴屏;HD+1600*720(20:9)', 显示屏: '6.52吋水滴屏;HD+1600*720(20:9)',
后置摄像头: '后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯', 后置摄像头:
'后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯',
前置摄像头: '1600万', 前置摄像头: '1600万',
传感器相关: '指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器', 传感器相关:
'指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
WLAN: '802.11a/b/g/n/AC 支持MIMO', WLAN: '802.11a/b/g/n/AC 支持MIMO',
电池: '6000mAh@3.8V内置不可拆卸支持18W快充', 电池: '6000mAh@3.8V内置不可拆卸支持18W快充',
工作时间: '待机时长180h卫星通话时长16h', 工作时间: '待机时长180h卫星通话时长16h',
@ -467,7 +512,8 @@ else if (newLocation === 'xihaian') {
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
right: CONFIGITEM.vNum, right: CONFIGITEM.vNum,
}, },
address: [{ address: [
{
name: '鲁IC备00000000号', name: '鲁IC备00000000号',
value: '政府标识码3702000106', value: '政府标识码3702000106',
}, },

View File

@ -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-11-21 20:41:44 * @LastEditTime: 2022-11-24 17:33:36
* @Description: 地图静态参数配置 * @Description: 地图静态参数配置
*/ */
var _mapConfig = {} var _mapConfig = {}
@ -19,10 +19,10 @@ var _mapConfig = {}
base: 'xihaian', base: 'xihaian',
CURRENT_MAP_OPTIONS: { CURRENT_MAP_OPTIONS: {
// crs: CRS_4490, // crs: CRS_4490,
center: [36.17, 120.13], center: [36.017043, 119.922772],
maxZoom: 17, maxZoom: 17,
minZoom: 0, minZoom: 0,
zoom: 5, zoom: 10,
}, },
}, },
qingdao: { qingdao: {

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-05-06 11:12:0011-18 19:07:53 * @Date: 2022-05-06 11:12:0011-18 19:07:53
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-24 09:13:27 * @LastEditTime: 2022-11-28 17:33:32
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
@ -86,10 +86,10 @@
} }
onWholeWaterMark( onWholeWaterMark(
[realName, moment().format('YYYY-MM-DD')], [realName, moment().format('YYYY-MM-DD')],
600, 800,
300, 200,
30, 24,
50 40
) )
getCategoryTreePage({ getCategoryTreePage({
page: 1, page: 1,

View File

@ -0,0 +1,72 @@
import request from '@/utils/request'
//
export function getDistrictFundStatement() {
return request({
url: '/processForm/tabilityapplication/getDistrictFundStatement',
method: 'get',
})
}
//
export function getComponentFundStatement() {
return request({
url: '/processForm/tabilityapplication/getComponentFundStatement',
method: 'get',
})
}
//
export function getResourceFundStatement() {
return request({
url: '/processForm/tabilityapplication/getResourceFundStatement',
method: 'get',
})
}
//
export function getInfrastructureFundStatement() {
return request({
url: '/processForm/tabilityapplication/getInfrastructureFundStatement',
method: 'get',
})
}
//
export function getProvideDeptFundStatement() {
return request({
url: '/processForm/tabilityapplication/getProvideDeptFundStatement',
method: 'get',
})
}
//
export function getApplyDeptFundStatement() {
return request({
url: '/processForm/tabilityapplication/getApplyDeptFundStatement',
method: 'get',
})
}
//
export function getProvideDistrictFundStatement() {
return request({
url: '/processForm/tabilityapplication/getProvideDistrictFundStatement',
method: 'get',
})
}
//
export function getApplyDistrictFundStatement() {
return request({
url: '/processForm/tabilityapplication/getApplyDistrictFundStatement',
method: 'get',
})
}
//
export function selectTotal() {
return request({
url: '/resource/selectTotal',
method: 'get',
})
}
//
//
export function getApplyPriceCount() {
return request({
url: '/processForm/tabilityapplication/getApplyPriceCount',
method: 'get',
})
}

View File

@ -1,8 +1,8 @@
/* /*
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-04-20 17:16:35 * @Date: 2022-04-20 17:16:35
* @LastEditors: Light * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-11-21 10:51:25 * @LastEditTime: 2022-11-24 20:32:27
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
import request from '@/utils/request' import request from '@/utils/request'
@ -117,7 +117,7 @@ export function getPlaceType() {
//西 //西
export function CameraConditionPlaceType(params) { export function CameraConditionPlaceType(params) {
return axios.post( return axios.post(
`http://${_cameraUrl}/data_service/getCamera/CameraConditionPlaceType'`, `http://${_cameraUrl}/data_service/getCamera/CameraConditionPlaceType`,
params, params,
config2 config2
) )
@ -129,7 +129,8 @@ export function getCameraLiveStream(params) {
`http://${_cameraUrl}/data_service/getCamera/getCameraLiveStream?cameraIndexCode=` + `http://${_cameraUrl}/data_service/getCamera/getCameraLiveStream?cameraIndexCode=` +
params.channelId + params.channelId +
'&protocol=' + '&protocol=' +
'wss' + '&transmode=1&streamType=1', 'wss' +
'&transmode=1&streamType=1',
config2 config2
) )
} }
@ -140,7 +141,7 @@ let _cameraUrl =
_global.config.camreaInfo && _global.config.camreaInfo &&
_global.config.camreaInfo.cameraUrl) || _global.config.camreaInfo.cameraUrl) ||
'10.134.135.92:9537' '10.134.135.92:9537'
//- //-
export function getCameraInfoByAreaId(params) { export function getCameraInfoByAreaId(params) {
return axios.get( return axios.get(
`http://${_cameraUrl}/data_service/getCamera/getCameraInfoByAreaId?areaId=${params.areaId}`, `http://${_cameraUrl}/data_service/getCamera/getCameraInfoByAreaId?areaId=${params.areaId}`,

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -425,6 +425,16 @@ export const constantRoutes = [
icon: 'error-warning-line', icon: 'error-warning-line',
}, },
}, },
//
{
path: '/assertReport',
name: 'assertReport',
component: () => import('@/views/assertReport'),
meta: {
title: '能力云图',
icon: 'error-warning-line',
},
},
// //
{ {
path: '/AssignCaseDetailPage', path: '/AssignCaseDetailPage',

View File

@ -74,7 +74,7 @@ export function MapFun(mapObj) {
* @param layerName {String} 图层名 * @param layerName {String} 图层名
*/ */
const _removeLayerByLayerName = function(layerName) { const _removeLayerByLayerName = function(layerName) {
const layer = layerGroup.get(layerName) const layer = layerGroup.get(layerName) ||
// const feature = featureGroup; // const feature = featureGroup;
// map.popupclose(); // map.popupclose();
// debugger; // debugger;

View File

@ -66,15 +66,6 @@ function createMarkerClusterLayer(layerClassName, mapObj) {
} else { } else {
// 使 // 使
markerClusterLayer = L.markerClusterGroup({ markerClusterLayer = L.markerClusterGroup({
// iconCreateFunction(cluster) {
// const markers = cluster.getAllChildMarkers()
// let n = 0
// for (let i = 0; i < markers.length; i++) {
// n += markers[i].number
// }
// return L.divIcon({ html: markers.length, className: "topic-marker-cluster-video" })
// },
// PolylineOptions spider
spiderfyOnMaxZoom: false, spiderfyOnMaxZoom: false,
// //
showCoverageOnHover: true, showCoverageOnHover: true,
@ -84,19 +75,12 @@ function createMarkerClusterLayer(layerClassName, mapObj) {
}) })
markerClusterLayer.on('clusterclick', function(a) { markerClusterLayer.on('clusterclick', function(a) {
let clusterList = []; let clusterList = [];
//console.log('cluster ' + a.layer.getAllChildMarkers()); if (mapObj.getZoom() == mapObj.getMaxZoom()) {
if (a.layer.getAllChildMarkers().length < 50) {
for (var i = 0; i < a.layer.getAllChildMarkers().length; i++) { for (var i = 0; i < a.layer.getAllChildMarkers().length; i++) {
//console.log('yyyyyyyyy', a.layer.getAllChildMarkers()[i].resourceData);
//console.log('yyyyyyyyy', a.layer.getAllChildMarkers()[i].fData);
clusterList.push(a.layer.getAllChildMarkers()[i].resourceData); clusterList.push(a.layer.getAllChildMarkers()[i].resourceData);
} }
//console.log('clusterList ' + a.layer.getAllChildMarkers(array, true));
//console.log('zzzzzzzzz', mapObj.getZoom(), mapObj.getMaxZoom());
if (mapObj.getZoom() == mapObj.getMaxZoom()) {
mybus.emit('openOperationPopup', clusterList); mybus.emit('openOperationPopup', clusterList);
} }
}
}); });
} }
return markerClusterLayer return markerClusterLayer
@ -194,13 +178,14 @@ function addPointOnMap({
.openOn(mapObj.map) .openOn(mapObj.map)
}) })
} }
const layer = marker.addTo(mapObj.map);
return isOpenPopup ? featureGroup.addLayer(layer)
marker layerGroup.set('potcon', layer)
.addTo(mapObj.map) // marker
.bindPopup(elementHtml, { className: popupClassName }) // .addTo(mapObj.map)
.openPopup() : // .bindPopup(elementHtml, { className: popupClassName })
marker.addTo(mapObj.map) // .openPopup() :
// marker.addTo(mapObj.map)
} }
/** /**

View File

@ -0,0 +1,150 @@
/*
* @Author: hisense.wuhongjian
* @Date: 2021-08-12 10:50:17
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2021-08-12 14:20:07
* @Description: 数组公共方法
*/
/**
* @description: 根据属性名过滤数组支持一维属性及二维属性
* @param {*} arr 待过滤的数组
* @param {*} param 一维属性 'param' 二维属性 'param1[param2]'
* @return {*} 过滤之后的数组
*/
export function arrFilterByParam(arr, param) {
const res = new Map();
const paramArr = param.split('[');
if (paramArr.length > 1) {
const first = paramArr[0];
const second = paramArr[1].split(']')[0];
return arr.filter(
(list) => !res.has(list[first][second]) && res.set(list[first][second], 1));
} else {
return arr.filter(
(list) => !res.has(list[param]) && res.set(list[param], 1));
}
}
// 2021-09-24 19:53:01:765
// filters: {
// formatDate(time) {
// var date = new Date(time);
// return formatDate(date, 'yyyy-MM-dd hh:mm:ss');
// }
// },
//{{ | formatDate }}
export function formatDate (date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
}
}
return fmt;
};
function padLeftZero (str) {
return ('00' + str).substr(str.length);
};
//
export function NumbersConvertedToArrays(inNum) {
const str = inNum.toString();
const arr = str.split("");
const arrlenght = arr.length;
if (arrlenght == 2) {
arr.unshift(0);
}
if (arrlenght == 1) {
arr.unshift(0);
arr.unshift(0);
}
return arr;
};
// var lon = 107.631131;
// var lat = 29.2331231;
// var lonDMS = transformDMS(lon, "lon");
// var latDMS = transformDMS(lat, "lat");
// console.log(lonDMS); // 107°4435E
// console.log(latDMS); // 29°1417N
//
export function transformDMS(degree, direction) {
var D = plusZeroAtHead(Math.floor(degree));
var M = plusZeroAtHead(Math.floor((degree - D) * 60));
var S = plusZeroAtHead(Math.floor(((degree - D) * 60 - M) * 60));
var result = D + "°" + M + "" + S + "″";
// 0
function plusZeroAtHead(num) {
if (num > -10 && num < 0) {
num = "-0" + Math.abs(num)
}
if (num > 0 && num < 10) {
return "0" + num
}
return num;
}
if (direction === "lon") {
D > 0 ? result += "E" : result += "W";
return result;
}
if (direction === "lat") {
D > 0 ? result += "N" : result += "S";
return result;
}
return result;
};
export function getBlob(url,cb) {
var xhr = new XMLHttpRequest();
let that=this;
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function() {
if (xhr.status === 200) {
cb(xhr.response);
}
};
xhr.send();
};
/**
* 保存
* @param {Blob} blob
* @param {String} filename 想要保存的文件名称
*/
export function saveAs(blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {
var link = document.createElement('a');
var body = document.querySelector('body');
link.href = window.URL.createObjectURL(blob);
link.download = filename;
// fix Firefox
link.style.display = 'none';
body.appendChild(link);
link.click();
body.removeChild(link);
window.URL.revokeObjectURL(link.href);
}
};
//logo

View File

@ -92,9 +92,9 @@ instance.interceptors.request.use(
*/ */
instance.interceptors.response.use( instance.interceptors.response.use(
(response) => { (response) => {
console.log('接口返回', response) // console.log('', response)
console.log('接口返回headers', response.headers) // console.log('headers', response.headers)
console.log('接口返回REDIRECT', response.headers.redirect) // console.log('REDIRECT', response.headers.redirect)
response['Access-Control-Expose-Headers'] = 'redirect' response['Access-Control-Expose-Headers'] = 'redirect'
const { code, message } = response.data const { code, message } = response.data
@ -154,14 +154,14 @@ instance.interceptors.response.use(
// } // }
}, },
(error) => { (error) => {
console.log('接口error', error) // console.log('error', error)
if (loadingInstance) loadingInstance.close() if (loadingInstance) loadingInstance.close()
const { response, myMessage } = error const { response, myMessage } = error
if (error.response) { if (error.response) {
console.log('接口返回', response) // console.log('', response)
console.log('接口返回headers', response.headers) // console.log('headers', response.headers)
console.log('接口返回REDIRECT', response.headers.redirect) // console.log('REDIRECT', response.headers.redirect)
const { status, data } = response const { status, data } = response
handleCode(status, data.msg || myMessage, response.headers.redirect) handleCode(status, data.msg || myMessage, response.headers.redirect)

View File

@ -2,7 +2,7 @@
* @Author: Light * @Author: Light
* @Date: 2022-11-14 15:01:54 * @Date: 2022-11-14 15:01:54
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-16 09:57:28 * @LastEditTime: 2022-11-24 10:53:20
* @Description: 水印 * @Description: 水印
*/ */
const watermark = { const watermark = {
@ -20,12 +20,12 @@ const setWatermark = (str, width, height, size, top, index) => {
can.height = height can.height = height
const cans = can.getContext('2d') const cans = can.getContext('2d')
cans.rotate((-20 * Math.PI) / 180) cans.rotate((-13 * Math.PI) / 180)
cans.font = size + 'px Microsoft YaHei' cans.font = size + 'px Microsoft YaHei'
cans.fillStyle = 'rgba(200, 200, 200, 0.4)' cans.fillStyle = 'rgba(200, 200, 200, 0.4)'
cans.textAlign = 'left' cans.textAlign = 'center'
cans.textBaseline = 'middle' cans.textBaseline = 'middle'
cans.fillText(str, can.width / 3, can.height / 2) cans.fillText(str, can.width / 2 - 30, can.height - 10)
const WATER_MARK = document.createElement('div') const WATER_MARK = document.createElement('div')
const ALL_WIDTH = document.documentElement.clientWidth + 'px' const ALL_WIDTH = document.documentElement.clientWidth + 'px'
@ -35,7 +35,7 @@ const setWatermark = (str, width, height, size, top, index) => {
WATER_MARK.style.cssText = ` WATER_MARK.style.cssText = `
position: fixed; position: fixed;
top: ${index * top}px; top: ${index * top}px;
left: 0; left: ${(index * top) / 4}px;
zIndex: 99999999; zIndex: 99999999;
pointer-events: none; pointer-events: none;
width: ${ALL_WIDTH}; width: ${ALL_WIDTH};

View File

@ -0,0 +1,151 @@
<template>
<div class="right-survey">
<div class="platform-overview-bottom">
<div class="top"><span class="title">资源汇聚总量</span></div>
<div class="bottom">
<div
v-for="(item, index) in servicesNum"
:key="index"
class="component-services-content-right-left-content-son"
>
<p>{{ item.type }}</p>
<p class="num">{{ item.count }}</p>
</div>
</div>
</div>
</div>
</template>
<script>
import {
selectTotal
} from '@/api/assertReport'
export default {
components: {},
mounted() {
this.selectAllTotal()
},
data() {
//
return {
servicesNum: [],
}
},
methods: {
selectAllTotal(){
selectTotal().then((res) => {
this.servicesNum=res.data.data.total
})
}
}
}
</script>
<style lang='less' scoped>
@keyframes turn {
0% {
border-image: linear-gradient(to right, #003194, #00ffea) 1;
}
25% {
border-image: linear-gradient(to bottom, #003194, #00ffea) 1;
}
50% {
border-image: linear-gradient(to left, #003194, #00ffea) 1;
}
75% {
border-image: linear-gradient(to top, #003194, #00ffea) 1;
}
100% {
border-image: linear-gradient(to right, #003194, #00ffea) 1;
}
}
.top5-content::-webkit-scrollbar {
width: 6px;
/*height: 4px;*/
}
.top5-content::-webkit-scrollbar-thumb {
background-color: #00deff;
}
.map-search-result::-webkit-scrollbar-track,
.top5-content::-webkit-scrollbar-track {
background-color: #424748;
}
@keyframes topup50 {
from {
top: 50%;
}
to {
top: -100%;
}
}
.right-survey {
height: 100%;
color: #f0fafa;
font-size: 18px;
display: flex;
flex-direction: column;
.platform-overview-bottom {
margin-top: 20px;
width: 100%;
height: 1.7rem;
background: rgba(0, 108, 188, 0.2);
border-radius: 2px;
border: 1px solid rgba(0, 108, 188, 0.7);
text-decoration: none;
outline: none;
-webkit-transition: all 100ms ease-out;
-moz-transition: all 100ms ease-out;
transition: all 100ms ease-out;
.top {
font-size: 24px;
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
background-size: 100% 100%;
text-align: center;
}
.bottom {
margin-top: 20px;
display: flex;
justify-content: space-between;
align-items: center;
padding:0rem 0.2rem;
.component-services-content-right-left-content-son {
background: url('~@/assets/capabilityCloud/Component_services_snum.png')
no-repeat;
background-size: 1.1rem 0.59rem;
background-position: center;
text-align: center;
& > p:first-child {
color: #ffffff;
font-size: 0.16rem;
line-height: 0.16rem;
margin-bottom: 0.12rem;
}
& > p:last-child {
color: #1ef6f5;
font-size: 0.28rem;
line-height: 0.28rem;
padding-bottom: 0.24rem;
margin: 10px 45px;
}
}
}
}
.platform-overview-bottom:hover {
border: 2px solid;
animation: turn 5s linear infinite;
}
}
</style>

View File

@ -0,0 +1,453 @@
<template>
<div class="reservoir-survey">
<!-- 最上面 组件资源 -->
<div class="platform-overview-top">
<div class="top"><span class="title">组件资源</span></div>
<div class="bottom">
<div class="jiesheng"> <img src="../image/xing1.png" /><span style="padding-left:2px;">共节省{{componetsData.total}}万元 </span><img src="../image/xing1.png" /></div>
<div class="left">
<div class="item" v-for="item in componetsData.list">
<div class="content1">
<div class="img"> </div>
<div class="num">{{item.resourceType}}</div>
</div>
<div class="content">
<div class="name">节省</div>
<div claSS="num">{{item.applyPrice }}万元</div>
</div>
<div class="content">
<div class="name">数量</div>
<div claSS="num">{{item.resourceAmount}}</div>
</div>
<div class="content">
<div class="name">共申请</div>
<div claSS="num">{{item.applyCount}}</div>
</div>
</div>
</div>
</div>
</div>
<!-- 中间 应用资源-->
<div class="platform-overview-mid">
<div class="top"><span class="title">应用资源</span></div>
<div class="bottom">
<div class="jiesheng"> <img src="../image/xing1.png" /><span style="padding-left:2px;">共节省{{resoureData.total}}万元 </span><img src="../image/xing1.png" /></div>
<div class="component-services-content-right-right-bottom-right">
<div>
<span>排行</span>
<span>资源名称</span>
<span >提供部门</span>
<span >次数</span>
<span >贡献金额</span>
</div>
<div v-for="(item, index) in resoureData.list" :key="index">
<span>{{ index + 1 }}</span>
<a-tooltip>
<template #title>{{ item.resourceName }}</template>
<span>{{ item.resourceName }}</span>
</a-tooltip>
<a-tooltip>
<template #title>{{ item.deptName}}</template>
<span>{{ item.deptName }}</span>
</a-tooltip>
<span>{{ item.applyCount || 0 }}</span>
<span>{{ item.applyPrice || 0 }}</span>
</div>
</div>
</div>
</div>
<!-- 最下方 基础设施 -->
<div class="platform-overview-bottom">
<div class="top"><span class="title">基础设施</span></div>
<div class="bottom">
<div class="jiesheng"> <img src="../image/xing1.png" /><span style="padding-left:2px;">共节省{{infrastructureData.total}}万元 </span><img src="../image/xing1.png" /></div>
<div class="huiketing">
<div style="float:left;width:30%">
<img :src="leftImg" alt="" />
</div>
<div style="float:left;width:70%;margin-top: 30px;" v-for="item in infrastructureData.list">
<span style="font-size:22x">{{item.resourceName}}</span>
<span style="font-size:22px">节省 </span>
<span style="margin-right:10px;font-size:24px; color: #1ef6f5;">{{item.applyPrice}}</span>
<span style="font-size:20px"> 万元</span>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import {
getComponentFundStatement,
getResourceFundStatement,
getInfrastructureFundStatement
} from '@/api/assertReport'
import ResourceOverviewAnimation from "@/views/assertReport/components/ResourceOverviewAnimation.vue";
export default {
components: {
ResourceOverviewAnimation
},
created() {
},
mounted() {
//
this.getComponent()
//
this.getResource()
//
this.getInfrastructure()
},
data() {
return {
componetsData:{
total:'',
list:[]
},
resoureData:{
total:'',
list:[]
},
infrastructureData:{
total:'',
list:'',
},
leftImg:require('@/assets/capabilityCloud/resources-left.png'),
dataList:[{name:'第一个',count:43},{name:'第二个',count:43},
{name:'第三个',count:43},{name:'第四个',count:43},{name:'第五个',count:43}]
};
},
methods: {
getComponent(){
getComponentFundStatement().then((res) => {
this.componetsData.total=res.data.data.total
this.componetsData.list=res.data.data.list
})
},
getResource(){
getResourceFundStatement().then((res) => {
this.resoureData.total=res.data.data.total
this.resoureData.list=res.data.data.list
})
},
getInfrastructure(){
getInfrastructureFundStatement().then((res) => {
this.infrastructureData.total=res.data.data.total
this.infrastructureData.list=res.data.data.list
})
}
},
};
</script>
<style lang='less' scoped>
@keyframes topup50 {
from {
top: 50%;
}
to {
top: -100%;
}
}
.jiesheng{
text-align: center;
margin-bottom: 5px;
color: #f4fcfe; border-color: #107bb0;
box-shadow: 1px 1px 5px 1px RGB(16, 123, 176, 0.8) inset
}
@keyframes turn {
0% {
border-image: linear-gradient(to right, #003194, #00ffea) 1;
}
25% {
border-image: linear-gradient(to bottom, #003194, #00ffea) 1;
}
50% {
border-image: linear-gradient(to left, #003194, #00ffea) 1;
}
75% {
border-image: linear-gradient(to top, #003194, #00ffea) 1;
}
100% {
border-image: linear-gradient(to right, #003194, #00ffea) 1;
}
}
.reservoir-survey {
width: 520px;
height: 100%;
color: #f0fafa;
font-size: 18px;
display: flex;
flex-direction: column;
.platform-overview-top {
width: 100%;
height: 3.8rem;
background: rgba(0, 108, 188, 0.2);
border-radius: 2px;
border: 1px solid rgba(0, 108, 188, 0.7);
text-decoration: none;
outline: none;
-webkit-transition: all 100ms ease-out;
-moz-transition: all 100ms ease-out;
transition: all 100ms ease-out;
.top {
font-size: 24px;
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
background-size: 100% 100%;
text-align: center;
}
.bottom {
padding: 0.1rem;
.left {
display: flex;
flex-direction: column;
align-items: center;
.item {
width: 100%;
height: 0.6rem;
background: linear-gradient(
to bottom,
rgba(33, 54, 88, 0.5),
rgba(33, 54, 88, 0)
);
margin-top: 0.14rem;
display: flex;
justify-content: space-between;
align-items: center;
.content1 {
width: 1.8rem;
.img {
width: 0.36rem;
height: 0.36rem;
margin-left: 0.2rem;
margin-right: 0.2rem;
text-decoration: none;
outline: none;
-webkit-transition: all 800ms ease-out;
-moz-transition: all 800ms ease-out;
transition: all 800ms ease-out;
}
.img:hover {
width: 0.4rem;
height: 0.4rem;
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
transform: rotateY(180deg);
-webkit-transition-delay: 0.2s;
-moz-transition-delay: 0.2s;
transition-delay: 0.2s;
}
.num {
font-size: 18px;
color: #1ef6f5;
margin-left: 10px;
}
}
.content {
width: 1.5rem;
.name {
font-size: 14px;
color: #fff;
}
.num {
font-size: 18px;
color: #1ef6f5;
}
}
}
.item:hover {
background: linear-gradient(
to bottom,
rgba(33, 54, 88, 0.7),
rgba(33, 54, 88, 0.9)
);
}
.item:nth-of-type(1) {
margin-top: 10px;
.img {
background: url('~@/assets/capabilityCloud/zyys.png') no-repeat;
background-size: 100% 100%;
}
}
.item:nth-of-type(2) .img {
background: url('~@/assets/capabilityCloud/jszyys.png') no-repeat;
background-size: 100% 100%;
}
.item:nth-of-type(3) .img {
background: url('~@/assets/capabilityCloud/tyyys.png') no-repeat;
background-size: 100% 100%;
}
.item:nth-of-type(4) .img {
background: url('~@/assets/capabilityCloud/jszyys.png') no-repeat;
background-size: 100% 100%;
}
}
}
}
.platform-overview-top:hover {
border: 2px solid;
animation: turn 5s linear infinite;
}
.platform-overview-mid {
margin-top:20px;
width: 100%;
height: 3.9rem;
background: rgba(0, 108, 188, 0.2);
border-radius: 2px;
border: 1px solid rgba(0, 108, 188, 0.7);
text-decoration: none;
outline: none;
-webkit-transition: all 100ms ease-out;
-moz-transition: all 100ms ease-out;
transition: all 100ms ease-out;
.top {
font-size: 24px;
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
background-size: 100% 100%;
text-align: center;
margin-bottom: 8px;
}
.bottom {
align-items: center;
padding: 0rem 0.1rem;
.component-services-content-right-right-bottom-right {
width: 100%;
font-size: 0.16rem;
border: 0.01rem rgba(0, 108, 188, 0.7) solid;
color: rgba(255, 255, 255, 0.8);
height: 2.9rem;
overflow-y: auto;
& > div {
height: 0.32rem;
& > span {
display: inline-block;
height: 0.32rem;
line-height: 0.32rem;
border-right: 0.01rem rgba(0, 108, 188, 0.7) solid;
border-bottom: 0.01rem rgba(0, 108, 188, 0.7) solid;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
& > span:first-child {
width: 0.47rem;
text-align: center;
}
& > span:nth-child(2) {
width: 1.57rem;
padding-left: 0.05rem;
//text-align: center;
}
& > span:nth-child(3) {
width: 1.47rem;
padding-left: 0.05rem;
// text-align: center;
}
& > span:nth-child(4) {
width: 0.5rem;
padding-left: 0.05rem;
text-align: center;
}
& > span:last-child {
width: 0.7rem;
color: #1ffefd;
text-align: center;
border-right: 0;
text-align: center;
}
}
& > div:first-child {
color: #1ffefd;
background: #27528c;
}
}
}
}
.platform-overview-mid:hover {
border: 2px solid;
animation: turn 5s linear infinite;
}
.platform-overview-bottom {
margin-top:20px;
width: 100%;
height: 1.8rem;
background: rgba(0, 108, 188, 0.2);
border-radius: 2px;
border: 1px solid rgba(0, 108, 188, 0.7);
text-decoration: none;
outline: none;
-webkit-transition: all 100ms ease-out;
-moz-transition: all 100ms ease-out;
transition: all 100ms ease-out;
.top {
font-size: 24px;
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
background-size: 100% 100%;
text-align: center;
}
.bottom {
align-items: center;
padding: 0.1rem;
.huiketing{
display: flex;
img {
width: 90px;
width: 90px;
position: absolute;
// left: 50%;
// bottom: -1.38rem;
// margin-left: -45%;
animation: move 5s linear 0s infinite;
@keyframes move {
from {
transform: rotateY(360deg);
}
to {
transform: rotateY(0deg);
}
}
}
}
}
}
.platform-overview-bottom:hover {
border: 2px solid;
animation: turn 5s linear infinite;
}
}
</style>

View File

@ -0,0 +1,543 @@
<template>
<div class="right-survey">
<!--最上面 部门排行榜-->
<div class="platform-overview-top">
<div class="top"><span class="title">部门排行榜</span></div>
<div class="bottom1">
<div class="bottom-item">
<div class="inner-title">
<p style="width: 220px">市级部门共享贡献资金排行</p>
</div>
<div class="left-list">
<div class="left-list1">排行</div>
<div class="left-list2">部门名称</div>
<div class="left-list1">应用数</div>
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
</div>
<div class="left-list" v-for="(item, index) in top5DistrictList">
<div class="left-list1" v-if="item.img">
<img :src="item.img" />
</div>
<div class="left-list1" v-else>{{ index + 1 }}</div>
<a-tooltip>
<template #title>{{ item.deptName }}</template>
<div class="left-list2">{{ item.deptName }}</div>
</a-tooltip>
<div class="left-list1">{{ item.resourceCount }}</div>
<div class="left-list1" style="color: #1ffefd">
{{ item.applyPrice }}
</div>
</div>
</div>
<!-- <div class="bottom-item">
<div class="inner-title">
<p style="width: 220px">市级部门审评节省资金排行</p>
</div>
<div class="left-list">
<div class="left-list1">排行</div>
<div class="left-list2">部门名称</div>
<div class="left-list1">应用数</div>
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
</div>
<div class="left-list" v-for="(item, index) in top5DeptFundList">
<div class="left-list1" v-if="item.img">
<img :src="item.img" />
</div>
<div class="left-list1" v-else>{{ index + 1 }}</div>
<a-tooltip>
<template #title>{{ item.deptName }}</template>
<div class="left-list2">{{ item.deptName }}</div>
</a-tooltip>
<div class="left-list1">{{ item.applyCount }}</div>
<div class="left-list1" style="color: #1ffefd">
{{ item.applyPrice }}
</div>
</div>
</div> -->
</div>
<div class="bottom1">
<!-- <div class="bottom-item">
<div class="inner-title">
<p style="width: 220px">市级部门共享贡献资金排行</p>
</div>
<div class="left-list">
<div class="left-list1">排行</div>
<div class="left-list2">部门名称</div>
<div class="left-list1">应用数</div>
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
</div>
<div class="left-list" v-for="(item, index) in top5DistrictList">
<div class="left-list1" v-if="item.img">
<img :src="item.img" />
</div>
<div class="left-list1" v-else>{{ index + 1 }}</div>
<a-tooltip>
<template #title>{{ item.deptName }}</template>
<div class="left-list2">{{ item.deptName }}</div>
</a-tooltip>
<div class="left-list1">{{ item.resourceCount }}</div>
<div class="left-list1" style="color: #1ffefd">
{{ item.applyPrice }}
</div>
</div>
</div> -->
<div class="bottom-item">
<div class="inner-title">
<p style="width: 220px">市级部门审评节省资金排行</p>
</div>
<div class="left-list">
<div class="left-list1">排行</div>
<div class="left-list2">部门名称</div>
<div class="left-list1">应用数</div>
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
</div>
<div class="left-list" v-for="(item, index) in top5DeptFundList">
<div class="left-list1" v-if="item.img">
<img :src="item.img" />
</div>
<div class="left-list1" v-else>{{ index + 1 }}</div>
<a-tooltip>
<template #title>{{ item.deptName }}</template>
<div class="left-list2">{{ item.deptName }}</div>
</a-tooltip>
<div class="left-list1">{{ item.applyCount }}</div>
<div class="left-list1" style="color: #1ffefd">
{{ item.applyPrice }}
</div>
</div>
</div>
</div>
<div class="bottom2">
<div class="bottom-item">
<div class="inner-title">
<p style="width: 220px">区市部门共享贡献资金排行</p>
</div>
<div class="left-list">
<div class="left-list1">序号</div>
<div class="left-list2">部门名称</div>
<div class="left-list1">应用数</div>
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
</div>
<div style="height: 300px; overfolw-y: auto">
<div
class="left-list"
v-for="(item, index) in top5eDistrictFundList"
>
<div class="left-list1" v-if="item.img">
<img :src="item.img" />
</div>
<div class="left-list1" v-else>{{ index + 1 }}</div>
<a-tooltip>
<template #title>{{ item.districtName }}</template>
<div class="left-list2">{{ item.districtName }}</div>
</a-tooltip>
<div class="left-list1">{{ item.applyCount }}</div>
<div class="left-list1" style="color: #1ffefd">
{{ item.applyPrice }}
</div>
</div>
</div>
</div>
<div class="bottom-item">
<div class="inner-title">
<p style="width: 220px">区市部门申请节省资金排行</p>
</div>
<div class="left-list">
<div class="left-list1">序号</div>
<div class="left-list2">部门名称</div>
<div class="left-list1">应用数</div>
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
</div>
<div style="height: 200px; overfolw-y: auto">
<div
class="left-list"
v-for="(item, index) in top5ApplyDistrictList"
>
<div class="left-list1" v-if="item.img">
<img :src="item.img" />
</div>
<div class="left-list1" v-else>{{ index + 1 }}</div>
<a-tooltip>
<template #title>{{ item.districtName }}</template>
<div class="left-list2">{{ item.districtName }}</div>
</a-tooltip>
<div class="left-list1">{{ item.applyCount }}</div>
<div class="left-list1" style="color: #1ffefd">
{{ item.applyPrice }}
</div>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="platform-overview-bottom">
<div class="top"><span class="title">资源汇聚总量</span></div>
<div class="bottom">
<div
v-for="(item, index) in servicesNum"
:key="index"
class="component-services-content-right-left-content-son"
>
<p>{{ item.type }}</p>
<p class="num">{{ item.count }}</p>
</div>
</div>
</div> -->
</div>
</template>
<script>
import {
getProvideDeptFundStatement,
getApplyDeptFundStatement,
getProvideDistrictFundStatement,
getApplyDistrictFundStatement,
selectTotal,
} from '@/api/assertReport'
export default {
components: {},
created() {},
destroyed() {},
mounted() {
this.getgetProvideDeptFund()
this.getApplyDeptFund()
this.getProvideDistrict()
this.getApplyDistrictFund()
this.selectAllTotal()
},
data() {
//
return {
//
top5DistrictList: [],
//
top5DeptFundList: [],
//
top5eDistrictFundList: [],
//
top5ApplyDistrictList: [],
servicesNum: [],
}
},
methods: {
getgetProvideDeptFund() {
getProvideDeptFundStatement().then((res) => {
let result = res.data.data
if (result.length > 0) {
for (let i = 0; i < result.length; i++) {
if (i === 0) {
result[i].img = require('../image/one.png')
}
if (i === 1) {
result[i].img = require('../image/two.png')
}
if (i === 2) {
result[i].img = require('../image/three.png')
}
}
}
this.top5DistrictList = result
})
},
getApplyDeptFund() {
getApplyDeptFundStatement().then((res) => {
let result = res.data.data
if (result.length > 0) {
for (let i = 0; i < result.length; i++) {
if (i === 0) {
result[i].img = require('../image/one.png')
}
if (i === 1) {
result[i].img = require('../image/two.png')
}
if (i === 2) {
result[i].img = require('../image/three.png')
}
}
}
this.top5DeptFundList = result
})
},
getProvideDistrict() {
getProvideDistrictFundStatement().then((res) => {
let result = res.data.data
// if(result.length>0){
// for(let i=0;i<result.length;i++){
// if(i===0){
// result[i].img=require('../image/one.png')
// }
// if(i===1){
// result[i].img=require('../image/two.png')
// }
// if(i===2){
// result[i].img= require('../image/three.png')
// }
// }
// }
this.top5eDistrictFundList = result
})
},
getApplyDistrictFund() {
getApplyDistrictFundStatement().then((res) => {
let result = res.data.data
// if(result.length>0){
// for(let i=0;i<result.length;i++){
// if(i===0){
// result[i].img=require('../image/one.png')
// }
// if(i===1){
// result[i].img=require('../image/two.png')
// }
// if(i===2){
// result[i].img= require('../image/three.png')
// }
// }
// }
this.top5ApplyDistrictList = result
})
},
selectAllTotal() {
selectTotal().then((res) => {
this.servicesNum = res.data.data.total
})
},
},
}
</script>
<style lang='less' scoped>
@keyframes turn {
0% {
border-image: linear-gradient(to right, #003194, #00ffea) 1;
}
25% {
border-image: linear-gradient(to bottom, #003194, #00ffea) 1;
}
50% {
border-image: linear-gradient(to left, #003194, #00ffea) 1;
}
75% {
border-image: linear-gradient(to top, #003194, #00ffea) 1;
}
100% {
border-image: linear-gradient(to right, #003194, #00ffea) 1;
}
}
.top5-content::-webkit-scrollbar {
width: 6px;
/*height: 4px;*/
}
.top5-content::-webkit-scrollbar-thumb {
background-color: #00deff;
}
.map-search-result::-webkit-scrollbar-track,
.top5-content::-webkit-scrollbar-track {
background-color: #424748;
}
@keyframes topup50 {
from {
top: 50%;
}
to {
top: -100%;
}
}
.right-survey {
width: 620px;
height: 100%;
color: #f0fafa;
font-size: 18px;
display: flex;
flex-direction: column;
.platform-overview-top {
width: 100%;
height: 9.9rem;
background: rgba(0, 108, 188, 0.2);
border-radius: 2px;
border: 1px solid rgba(0, 108, 188, 0.7);
text-decoration: none;
outline: none;
-webkit-transition: all 100ms ease-out;
-moz-transition: all 100ms ease-out;
transition: all 100ms ease-out;
.top {
font-size: 24px;
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
background-size: 100% 100%;
text-align: center;
}
.bottom1 {
margin-top: 10px;
width: 100%;
display: table;
justify-content: space-between;
align-items: center;
height: 1.8rem;
.bottom-item {
width: 98%;
}
}
.bottom2 {
margin-top: 10px;
// margin-top:10px;
width: 100%;
display: table;
justify-content: space-between;
align-items: center;
height: 4.0rem;
.bottom-item {
width: 48%;
}
}
:hover.bottom-item {
background: rgba(0, 108, 188, 0.5);
}
.bottom-item {
height: 100%;
overflow-y: auto;
background: rgba(0, 108, 188, 0.2);
border-radius: 2px;
margin: 2px 5px;
border: 1px solid #10496f;
.inner-title {
margin-top: 10px;
margin-bottom: 10px;
margin-right: 5px;
font-weight: bold;
color: #ffffff;
p {
font-size: 16px;
line-height: 27px;
background: linear-gradient(
90deg,
#041d2f 0,
rgba(8, 115, 193, 0) 90%
);
color: #1ffefd;
width: auto;
padding-left: 5px;
}
}
display: inline-table;
.left-list {
text-align: center;
color: #fff;
width: 100%;
height: 26px;
margin-right: 10px;
margin-top: 5px;
font-size: 16px;
.left-list1 {
font-size: 16x;
float: left;
width: 22%;
height: 0.32rem;
line-height: 0.32rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
.left-list2 {
height: 0.32rem;
line-height: 0.32rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
cursor: pointer;
font-size: 16px;
float: left;
width: 30%;
&:hover {
color: rgb(0 255 255);
}
}
.active-item {
cursor: pointer;
font-size: 14px;
float: left;
width: 40%;
color: rgb(0 255 255);
font-weight: bold;
text-decoration: underline;
}
}
}
}
.platform-overview-top:hover {
border: 2px solid;
animation: turn 5s linear infinite;
}
.platform-overview-bottom {
margin-top: 20px;
width: 100%;
height: 1.7rem;
background: rgba(0, 108, 188, 0.2);
border-radius: 2px;
border: 1px solid rgba(0, 108, 188, 0.7);
text-decoration: none;
outline: none;
-webkit-transition: all 100ms ease-out;
-moz-transition: all 100ms ease-out;
transition: all 100ms ease-out;
.top {
font-size: 24px;
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
background-size: 100% 100%;
text-align: center;
}
.bottom {
margin-top: 20px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0rem 0.2rem;
.component-services-content-right-left-content-son {
background: url('~@/assets/capabilityCloud/Component_services_snum.png')
no-repeat;
background-size: 1.1rem 0.59rem;
background-position: center;
text-align: center;
& > p:first-child {
color: #ffffff;
font-size: 0.16rem;
line-height: 0.16rem;
margin-bottom: 0.12rem;
}
& > p:last-child {
color: #1ef6f5;
font-size: 0.28rem;
line-height: 0.28rem;
padding-bottom: 0.24rem;
margin: 0;
}
}
}
}
.platform-overview-bottom:hover {
border: 2px solid;
animation: turn 5s linear infinite;
}
}
</style>

View File

@ -0,0 +1,528 @@
<!--
* @Author: hisense.xiaoshangqing
* @Date: 2022-7-26 10:00:48
* @LastEditors: xiaoshangqing
* @LastEditTime: 2022-07-27 16:56:55
* @Description: 水库专题首页缩略图 -->
<template>
<div class="river-course-view">
<div ref="qdCityMap" class="city-map-content-echarts"></div>
<div class="topic-animation1 display-animation1"></div>
<div class="topic-animation2 display-animation2"></div>
<div class="topic-animation3 display-animation3"></div>
<div class="topic-animation4 display-animation4"></div>
<div class="topic-animation5 display-animation5"></div>
<div class="topic-animation6 display-animation6"></div>
</div>
</template>
<script>
import {
getDistrictFundStatement
} from '@/api/assertReport'
import axios from 'axios'
const echarts = require("echarts");
export default {
//import使
components: {},
data() {
//
return {
districtData: [
{
name: "市南区",
value: [120.395966, 36.000892],
},
{
name: "市北区",
value: [120.355026, 36.083819],
},
{
name: "李沧区",
value: [120.421236, 36.188023],
},
{
name: "崂山区",
value: [120.587393, 36.199569],
},
{
name: "城阳区",
value: [120.369135, 36.266833],
},
{
name: "即墨区",
value: [120.517352, 36.490847],
},
{
name: "莱西市",
value: [120.426226, 36.86009],
},
{
name: "胶州市",
value: [120.010202, 36.235878],
},
{
name: "平度市",
value: [119.959012, 36.788828],
},
{
name: "西海岸",
value: [119.895518, 35.875138],
},
],
};
},
mounted() {
this.findAllInfo();
},
//
methods: {
findAllInfo(){
getDistrictFundStatement().then((res) => {
let districtData=this.districtData
let resulrtData=res.data.data
for(let i=0;i<resulrtData.length;i++){
for(let j=0;j<districtData.length;j++){
if(resulrtData[i].districtName=districtData[j].name){
districtData[j].num=resulrtData[i].applyPrice
}
}
}
this.initMap(districtData)
})
},
initMap(data) {
this.loadedDataUrl = "./static/qingdao.json";
let _this=this
axios.get(_this.loadedDataUrl, {}) .then(geoJson =>{
_this.myChart = echarts.init(_this.$refs.qdCityMap);
echarts.registerMap("qingdao", geoJson.data);
const imgBack = new Image();
imgBack.src = "./static/assets/map-back.png";
const img = new Image();
img.src = "./static/assets/echarts-map-bak.png";
const typeImg = new Image();
typeImg.src = "./static/assets/reservoir-type-bak.png";
_this.option = {
visualMap: {
show: false,
max: 100,
seriesIndex: 1,
inRange: {
color: ["#000000", "yellow", "pink"],
},
},
geo: [
{
map: "qingdao",
roam: true, //
aspectScale: 0.8,
zoom: 1.1, //
top: 100,
z: 6,
label: {
show: true, //
textStyle: {
color: "#ffffff", //
fontSize: 16, //
fontFamily: "微软雅黑",
backgroundColor: "rgba(0,0,0,0)", //0
},
},
itemStyle: {
borderColor: "#25e8ff",
borderWidth: 2,
/* areaColor: "#004d8e", //rgba设置透明度0
shadowColor: "#10daff",
shadowBlur: 10,
shadowOffsetX: 10,
opacity: 0.53, */
areaColor: {
image: img,
repeat: "repeat",
},
},
emphasis: {
disabled: false,
focus: "none",
itemStyle: {
color: null,
},
label: {
show: true,
//color: "#fff",
},
},
},
{
map: "qingdao",
aspectScale: 0.8,
roam: true, //
zoom: 1.1, //
top: 105,
z: 4,
itemStyle: {
areaColor: "#1864a5",
borderColor: "transparent",
},
silent: true,
tooltip: {
show: false,
},
},
{
map: "qingdao",
aspectScale: 0.8,
roam: true, //
zoom: 1.1, //
top: 110,
z: 3,
itemStyle: {
areaColor: "#1864a5",
borderColor: "transparent",
borderWidth: 2,
},
silent: true,
tooltip: {
show: false,
},
},
{
map: "qingdao",
aspectScale: 0.8,
roam: true, //
zoom: 1.1, //
top: 115,
z: 2,
itemStyle: {
areaColor: "#1864a5",
//borderColor: "#0f3866",
borderColor: "transparent",
borderWidth: 1,
shadowColor: "#808080", //
shadowBlur: "10",
},
silent: true,
tooltip: {
show: false,
},
},
],
series: [
// {
// tooltip: {
// show: false,
// },
// type: "effectScatter",
// coordinateSystem: "geo",
// rippleEffect: {
// scale: 3,
// brushType: "stroke",
// },
// showEffectOn: "render",
// itemStyle: {
// normal: {
// shadowColor: "#ffffff",
// shadowBlur: 10,
// shadowOffsetX: 0,
// shadowOffsetY: 0,
// color: "#df1818",
// },
// },
// label: {
// normal: {
// color: "#fff",
// },
// },
// symbol: "circle",
// symbolSize: [10, 5],
// data:data, //
// zlevel: 1,
// },
// {
// type: "scatter",
// coordinateSystem: "geo",
// symbol: function (value, params) {
// return 'image://static/assets/warning-reservoir.png';
// },
// symbolSize: [25, 35],
// symbolOffset: [0, -20],
// z: 9999,
// data:data, //
// },
{
type: 'scatter',
coordinateSystem: 'geo',
label: {
normal: {
show: true,
formatter: function (params) {
var name = params.data.num;
var text = `{fline|${name}}`;
return text;
},
color: '#fff',
rich: {
fline: {
padding: [0, 25],
color: '#dcc52f',
textShadowColor: '#030615',
textShadowBlur: '0',
textShadowOffsetX: 1,
textShadowOffsetY: 1,
fontSize: 14,
fontWeight: 400,
},
tline: {
padding: [0, 27],
color: '#afd31d',
fontSize: 12,
},
},
},
emphasis: {
show: true,
},
},
itemStyle: {
color: '#e3e00a',
},
symbol: "image://static/assets/reservoir-type-bak.png",
symbolSize: [84, 28],
symbolOffset: [0, -30],
z: 999,
data: data, //
},
],
};
_this.myChart.setOption(_this.option);
_this.myChart.on("click", (params) => {
// console.log("", params);
// //
// //name
// const index = _this.districtData.findIndex((item) => {
// return item.name === params.name ;
// });
// //console.log('rrrrrrrr5555',index);
// let districtObject = {
// name:params.name,
// longitude:_this.districtData[index].value[0],
// latitude:_this.districtData[index].value[1],
// };
// _this.$emit('jumpIntoMap',districtObject);
});
});
},
},
beforeCreate() {}, // -
beforeMount() {}, // -
beforeUpdate() {}, // -
updated() {}, // -
beforeDestroy() {}, // -
destroyed() {}, // -
activated() {}, //keep-alive
};
</script>
<style lang='less' scoped>
//@import url(); css
.river-course-view {
position: relative;
width:100%;
height: 100%;
background: url("~@/assets/common/homePage/big-bak.png") no-repeat;
background-size: 100% 100%;
.city-map-content-echarts {
width: 10rem;
height: 7.9rem;
top: 10px;
left: 500px;
bottom: 2rem;
position: absolute;
z-index: 1000;
}
.map-menu {
position: absolute;
right: 486px;
bottom: 10px;
display: flex;
flex-direction: column;
align-items:flex-end;
pointer-events: none;
z-index:99999;
.map-tab {
// 1
display: flex;
pointer-events: auto;
.tab-item {
flex: 1;
cursor: pointer;
min-width: 1.4rem;
height: 30px;
line-height: 30px;
text-align: center;
border: 1px solid #2ab1e9;
border-left: 0;
font-size: 16px;
padding: 0px 20px;
background-color: #0d284f;
color: #35cffc;
&.active {
color: #fefefe;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0), #1eafda);
}
&:first-child {
border-left: 1px solid #2ab1e9;
}
}
}
}
.reservoirType-list{
position: absolute;
right: 486px;
width: 122px;
height: 100px;
top: 164px;
padding: 10px 0 0 10px;
display: flex;
flex-direction: column;
background-color: rgba(13,40,79,0.5);
border:1px solid #0d284f;
padding-top:22px;
.type-legend{
margin-bottom:20px;
margin-left: 10px;
display:flex;
flex-direction:row;
.legend-color{
width:12px;
height:12px;
border-radius: 50%;
text-align: center;
line-height: 12px;
}
.color-normal{
background-color:#00ebac ;
}
.color-warning{
background-color:#ff3537 ;
}
.legend-text{
margin-left: 10px;
span{
color:#ffffff;
font-size: 16px;
}
}
}
}
.topic-animation1 {
width: 100%;
height: 100%;
position: absolute;
margin: 0px auto;
background-image: url("~@/assets/common/homePage/animation1.png");
background-size: cover;
}
.display-animation1 {
animation: topup1 5s linear 1s infinite;
}
.topic-animation2 {
width: 100%;
height: 100%;
position: absolute;
margin: 0px auto;
background-image: url("~@/assets/common/homePage/animation2.png");
background-size: cover;
}
.display-animation2 {
animation: topup1 5s linear 2s infinite;
}
.topic-animation3 {
width: 100%;
height: 100%;
position: absolute;
margin: 0px auto;
background-image: url("~@/assets/common/homePage/animation3.png");
background-size: cover;
}
.display-animation3 {
animation: topup1 5s linear 3s infinite;
}
.topic-animation4 {
width: 100%;
height: 100%;
position: absolute;
margin: 0px auto;
background-image: url("~@/assets/common/homePage/animation4.png");
background-size: cover;
}
.display-animation4 {
animation: topup1 5s linear infinite;
}
.topic-animation5 {
width: 100%;
height: 100%;
position: absolute;
margin: 0px auto;
background-image: url("~@/assets/common/homePage/animation5.png");
background-size: cover;
}
.display-animation5 {
animation: topup1 5s linear 4s infinite;
}
.topic-animation6 {
width: 100%;
height: 100%;
position: absolute;
margin: 0px auto;
background-image: url("~@/assets/common/homePage/animation6.png");
background-size: cover;
}
.display-animation6 {
animation: topup1 5s linear infinite;
}
@keyframes topup1 {
from {
top: 0%;
}
to {
top: -100%;
}
}
}
</style>

View File

@ -0,0 +1,675 @@
<!--
* @Author: hisense.fanchunxiang
* @Date: 2021-10-26 15:16:59
* @LastEditors: hisense.fanchunxiang
* @LastEditTime: 2021-10-29 17:38:29
* @Description: file mountainData
-->
<template>
<div class="team-distribution-ball">
<div class="bg-ball" />
<div class="rotating-ring" />
<div class="sum-ball">
<div class="top">
</div>
<div class="bottom">企业</div>
</div>
<div class="num-wrap">
<div
v-for="(item, index) in resourceTypeData"
:key="index"
@click="handleClick(item, index)"
>
<p>{{item.typeNum}}</p>
<p class="num-wrap-bottom">{{item.typeName}}</p>
</div>
</div>
</div>
</template>
<script>
export default {
components: {},
props: {
//
selectedPeriod: {
type: Number,
default: '',
},
},
data() {
return {
nums: 0,
stationList: [],
// startTime: moment().subtract(12, "h").format("YYYY-MM-DD HH:mm:ss"),
// endTime: moment().format("YYYY-MM-DD HH:mm:ss"),
resourceType: ["石油化工", "有机化工", "精细化工", "化肥农药"],
detailTimer: null,
arr: [],
animationLock: true,
resourceTypeData: [
{
typeName: "石油化工",
typeNum: "17",
},
{
typeName: "有机化工",
typeNum: "329",
},
{
typeName: "精细化工",
typeNum: "432",
},
{
typeName: "化肥农药",
typeNum: "20",
}
],
resourceData:{}
};
},
computed: {},
watch: {},
created() {},
mounted() {
this.arr.push(document.querySelectorAll(".num-wrap div"));
console.log("===============>", this.arr);
this.setTimer();
this.setRotateTimer();
this.getResourceTypeData();
},
destroyed() {
//
clearInterval(this.detailTimer);
this.detailTimer = null;
},
methods: {
handleClick(item, index) {
if (this.animationLock) {
// console.log(item);
if(item.typeName == "应急专家"){
bus.$emit('refreshChartData', 'expert', this.resourceData.expertData.expertDistribution);
}
else if(item.typeName == "物资储备库"){
bus.$emit('refreshChartData', 'storage', this.resourceData.storageData.storageDistribution);
}
else if(item.typeName == "应急预案") {
bus.$emit('refreshChartData', 'plan', this.resourceData.planData);
}
else {
bus.$emit('refreshChartData', 'resource', this.resourceData.planData);
}
if (index > 0 && this.resourceTypeData.length - index >= 1) {
let i = 1;
clearInterval(this.rotateTimer);
this.animationFun2();
if (this.resourceTypeData.length - index === 1) {
this.setRotateTimer();
return;
}
this.rotateTimer2 = setInterval(() => {
this.animationFun2();
i++;
// console.log(i, this.mountainData.length - index)
if (i === (this.resourceTypeData.length - index)) {
clearInterval(this.rotateTimer2);
this.setRotateTimer();
}
}, 1050);
}
}
},
//,
getResourceTypeData(){
// Promise.all([
// this.getExpertStatisticsData(),
// this.getResourceStatisticsData(),
// this.getStorageStatisticsData(),
// this.getPlanStatisticsData(),
// ]).then((result)=>{
// ////
// //console.log('this.resourceData',this.resourceData);
// this.resourceTypeData.forEach(item => {
// if(item.typeName == "")
// {item.typeNum = this.resourceData.expertData.expertNum
// }
// else if(item.typeName==""){
// item.typeNum = this.resourceData.storageData.storageNum
// }
// else if(item.typeName==""){
// item.typeNum = this.resourceData.planData.city.length + this.resourceData.planData.country.length + this.resourceData.planData.province.length;
// }
// else {
// item.typeNum = 540;
// }
// });
// bus.$emit('refreshChartData', 'expert', this.resourceData.expertData.expertDistribution);
// })
},
//
setTimer() {
this.clearTimer();
this.timer = setInterval(() => {
this.getResourceTypeData();
}, 5 * 60 * 1000);
},
animationFun() {
// console.log(this.arr[0][0].classList)
if (this.animationLock) {
this.animationLock = !this.animationLock;
this.arr[0][0].classList.add("animation1");
this.arr[0][1].classList.add("animation2");
this.arr[0][2].classList.add("animation3");
this.arr[0][3].classList.add("animation4");
setTimeout(() => {
for (var i = 0; i < this.resourceTypeData.length - 1; i++) {
//
this.resourceTypeData.push(this.resourceTypeData.shift());
this.resourceTypeData.push(this.resourceTypeData.shift());
}
this.arr[0][0].classList.remove("animation1");
this.arr[0][1].classList.remove("animation2");
this.arr[0][2].classList.remove("animation3");
this.arr[0][3].classList.remove("animation4");
// bus.$emit('refreshChartData', val);
// if(this.resourceTypeData[0].typeName == ''){
// bus.$emit('refreshChartData', 'expert', this.resourceData.expertData.expertDistribution);
// }else if(this.resourceTypeData[0].typeName == ''){
// bus.$emit('refreshChartData', 'storage', this.resourceData.storageData.storageDistribution);
//
// }else if(this.resourceTypeData[0].typeName == ''){
// bus.$emit('refreshChartData', 'plan', this.resourceData.planData);
// }else{
// }
this.animationLock = !this.animationLock;
}, 2000);
}
},
animationFun2() {
// console.log(this.arr[0][0].classList)
this.animationLock = !this.animationLock;
this.arr[0][0].classList.add("animation2-1");
this.arr[0][1].classList.add("animation2-2");
this.arr[0][2].classList.add("animation2-3");
this.arr[0][3].classList.add("animation2-4");
setTimeout(() => {
for (var i = 0; i < this.resourceTypeData.length - 1; i++) {
//
let selectedData={};
bus.$emit('refreshChartData',selectedData);
this.resourceTypeData.push(this.resourceTypeData.shift());
}
this.arr[0][0].classList.remove("animation2-1");
this.arr[0][1].classList.remove("animation2-2");
this.arr[0][2].classList.remove("animation2-3");
this.arr[0][3].classList.remove("animation2-4");
this.animationLock = !this.animationLock;
}, 1000);
},
//8
setRotateTimer() {
this.clearTimer();
// this.animationFun();
this.rotateTimer = setInterval(() => {
this.animationFun();
},8*1000);
},
clearTimer() {
clearInterval(this.timer);
clearInterval(this.rotateTimer);
this.timer = null;
this.rotateTimer = null;
},
},
};
</script>
<style lang="less" scoped>
.team-distribution-ball {
width: 466px;
height: 230px;
position: relative;
left: -10px;
.bg-ball {
width: 466px;
height: 230px;
position: absolute;
left: 60%;
margin-left: -210px;
margin-top: 30px;
background: url("~@/assets/common/homePage/bg_ball.png")
no-repeat;
background-size: 70%;
}
.rotating-ring {
width: 230px;
height: 230px;
position: absolute;
border-radius: 50%;
background: url("~@/assets/common/homePage/rotating-ring2.png");
background-size: 100%;
transform: rotateX(30deg);
animation: spin1 3s linear infinite;
top: -5%;
left: 25%;
}
.sum-ball {
width: 150px;
height: 75px;
position: absolute;
left: 50%;
margin-left: -70px;
top: 50px;
text-align: center;
display: flex;
flex-direction: column;
.top {
width: 36px;
height: 36px;
background-image: url("~@/assets/common/homePage/ball-bak.png");
margin-left: 55px;
font-size: 16px;
color: #fff;
span {
font-size: 60px;
color: #fff;
}
}
.bottom {
font-size: 18px;
color: #fff;
}
}
@keyframes spin1 {
0% {
transform: rotateX(65deg) rotateZ(0deg);
}
50% {
transform: rotateX(65deg) rotateZ(180deg);
}
100% {
transform: rotateX(65deg) rotateZ(360deg);
}
}
.num-wrap {
z-index: 1002;
width: 100%;
height: 100%;
position: relative;
& > div {
position: absolute;
text-align: center;
cursor: pointer;
}
& > div:nth-child(1) {
background: url("~@/assets/common/homePage/ball-active.png");
background-size: 99%;
background-repeat: no-repeat;
background-position: center;
position: absolute;
width: 125px;
height: 190px;
right: 96px;
bottom: -23px;
p:nth-child(1) {
font-size: 24px;
color: #fff;
margin: 60px 0px 12px 0px;
padding-top: 20px;
}
p:nth-child(2) {
font-size: 16px;
color: #fff;
margin: 5px 0px 12px 0px;
padding-top: 12px;
}
}
& > div:nth-child(2) {
background: url("~@/assets/common/homePage/ball-front.png");
background-size: 70%;
background-repeat: no-repeat;
background-position: center;
width: 106px;
height: 132px;
left: 55px;
bottom: 45%;
margin-bottom: -80px;
p:nth-child(1) {
font-size: 20px;
color: #fff;
margin: 32px 0px 0px 0px;
padding-top: 20px;
}
p:nth-child(2) {
font-size: 14px;
color: #fff;
margin: 15px 0px 0px 0px;
padding-top: 12px;
}
}
& > div:nth-child(3) {
background: url("~@/assets/common/homePage/ball-back.png");
background-size: 70%;
background-repeat: no-repeat;
background-position: center;
width: 76px;
color: #53ceff;
height: 96px;
left: 95px;
top: 15px;
p:nth-child(1) {
font-size: 18px;
margin: 32px 0px 0px 0px;
color: #53ceff;
}
p:nth-child(2) {
font-size: 14px;
margin: 12px 0px 0px 0px;
color: #53ceff;
}
}
& > div:nth-child(4) {
background: url("~@/assets/common/homePage/ball-back.png");
background-size: 70%;
background-repeat: no-repeat;
background-position: center;
width: 76px;
color: #53ceff;
height: 96px;
right: 70px;
top: 20px;
p:nth-child(1) {
margin: 32px 0px 0px 0px;
font-size: 18px;
color: #53ceff;
}
p:nth-child(2) {
margin: 12px 0px 0px 0px;
font-size: 16px;
color: #53ceff;
}
}
& > div:nth-child(5) {
background: url("~@/assets/common/homePage/ball-front.png");
background-size: 70%;
background-repeat: no-repeat;
background-position: center;
width: 106px;
height: 132px;
right: 120px;
bottom: 43%;
margin-bottom: -80px;
p:nth-child(1) {
margin: 32px 0px 0px 0px;
padding-top: 12px;
color: #d9eeff;
font-size: 20px;
}
p:nth-child(2) {
margin: 12px 0px 0px 0px;
padding-top: 12px;
color: #d9eeff;
font-size: 16px;
}
}
/*依次设置图像盒子中每个图像旋转后位置*/
.animation1 {
animation: run1 2s linear both;
p:nth-child(1) {
animation: run1-test1 2s linear both;
}
p:nth-child(2) {
animation: run1-test 2s linear both;
}
}
.animation2 {
animation: run2 2s linear both;
p:nth-child(1) {
animation: run1-test2 2s linear both;
}
p:nth-child(2) {
animation: run2-test 2s linear both;
}
}
.animation3 {
animation: run3 2s linear both;
p:nth-child(1) {
animation: run1-test3 2s linear both;
}
p:nth-child(2) {
animation: run3-test 2s linear both;
}
}
.animation4 {
animation: run4 2s linear both;
p:nth-child(1) {
animation: run1-test4 2s linear both;
}
p:nth-child(2) {
animation: run4-test 2s linear both;
}
}
.animation5 {
animation: run5 2s linear both;
p:nth-child(1) {
animation: run1-test5 2s linear both;
}
p:nth-child(2) {
animation: run5-test 2s linear both;
}
}
.animation2-1 {
animation: run1 1s linear both;
p:nth-child(1) {
animation: run1-test1 2s linear both;
}
p:nth-child(2) {
animation: run1-test 1s linear both;
}
}
.animation2-2 {
animation: run2 1s linear both;
p:nth-child(1) {
animation: run1-test2 2s linear both;
}
p:nth-child(2) {
animation: run2-test 1s linear both;
}
}
.animation2-3 {
animation: run3 1s linear both;
p:nth-child(1) {
animation: run1-test3 2s linear both;
}
p :nth-child(2) {
animation: run3-test 1s linear both;
}
}
.animation2-4 {
animation: run4 1s linear both;
p:nth-child(1) {
animation: run1-test4 2s linear both;
}
p:nth-child(2) {
animation: run4-test 1s linear both;
}
}
.animation2-5 {
animation: run5 1s linear both;
p:nth-child(1) {
animation: run1-test5 2s linear both;
}
p:nth-child(2) {
animation: run5-test 1s linear both;
}
}
}
}
/*采用@keyframes 规则创建run动画。*/
@keyframes run1 {
0% {
transform: translateX(0px) translateY(0px);
}
25% {
transform: translateX(-37px) translateY(-4px);
}
50% {
transform: translateX(-93px) translateY(-21px);
}
75% {
transform: translateX(-120px) translateY(-34px);
}
100% {
transform: translateX(-150px) translateY(-52px);
background: url("~@/assets/common/homePage/ball-front.png");
background-size: 70%;
background-repeat: no-repeat;
background-position: center;
width: 106px;
height: 132px;
}
}
@keyframes run1-test1 {
0% {
}
100% {
font-size: 20px;
margin: 37px 0px 0px 0px;
color: #fff;
}
}
@keyframes run1-test {
0% {
}
100% {
font-size: 14px;
color: #fff;
margin: 10px 0px 0px 0px;
}
}
@keyframes run2 {
0% {
transform: translateX(0px) translateY(0px);
}
25% {
transform: translateX(-15px) translateY(-8px);
}
50% {
transform: translateX(-30px) translateY(-36px);
}
75% {
transform: translateX(-15px) translateY(-64px);
}
100% {
transform: translateX(5px) translateY(-102px);
background: url("~@/assets/common/homePage/ball-back.png");
background-size: 70%;
background-repeat: no-repeat;
background-position: center;
width: 76px;
height: 96px;
}
}
@keyframes run1-test2 {
0% {
}
100% {
font-size: 20px;
margin: 17px 0px 0px 0px;
color: #53ceff;
}
}
@keyframes run2-test {
0% {
}
100% {
font-size: 14px;
margin: 12px 0px 0px 0px;
color: #53ceff;
}
}
@keyframes run3 {
0% {
transform: translateX(-100px) translateY(0px);
}
25% {
transform: translateX(-20px) translateY(-15px);
}
50% {
transform: translateX(60.5px) translateY(-30px);
}
75% {
transform: translateX(240.75px) translateY(-15px);
}
100% {
transform: translateX(200px) translateY(5px);
background: url("~@/assets/common/homePage/ball-back.png");
background-size: 70%;
background-repeat: no-repeat;
}
}
@keyframes run1-test3 {
0% {
}
100% {
font-size: 20px;
margin: 17px 0px 0px 0px;
color: #53ceff;
}
}
@keyframes run3-test {
0% {
}
100% {
margin: 12px 0px 0px 0px;
font-size: 16px;
color: #53ceff;
}
}
@keyframes run4 {
0% {
transform: translateX(0px) translateY(0px);
}
25% {
transform: translateX(5px) translateY(18px);
}
50% {
transform: translateX(0px) translateY(36px);
}
75% {
transform: translateX(-5px) translateY(54px);
}
100% {
transform: translateX(-10px) translateY(78px);
background: url("~@/assets/common/homePage/ball-front.png");
background-size: 70%;
background-repeat: no-repeat;
background-position: center;
width: 106px;
height: 132px;
}
}
@keyframes run1-test4 {
0% {
}
100% {
font-size: 20px;
margin: 37px 0px 0px 0px;
color: #fff;
}
}
@keyframes run4-test {
0% {
}
100% {
margin: 22px 0px 0px 0px;
padding-top: 12px;
color: #d9eeff;
font-size: 16px;
}
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

View File

@ -0,0 +1,290 @@
<!-- -->
<template>
<div class="capability-cloud">
<div class="header">
<span class="title" @click="goHome">城市云脑通用能力服务平台</span>
</div>
<div class="header1">
<div style=" color:#bed1df; font-size: 32px">累计节省财政资金</div>
<div class="area-right">
<!-- <div class="mianJi">累计节省财政资金</div> -->
<template v-for="(item, index) in saveMonmy">
<p v-if="item == '.'" :key="index">
{{ item }}
</p>
<span v-else >{{ item }}</span>
</template>
<div class="mianJi">万元</div>
</div>
<div style=" color: #bed1df; font-size: 16px">资源参考价格由部门提供或参考市场价格设定</div>
</div>
<!--左侧-->
<div class="reservoir-left">
<!-- 左侧内容 -->
<reservoir-left />
</div>
<!--右侧-->
<div class="reservoir-right">
<reservoir-right />
</div>
<!--中间地图-->
<div class="reservoir-map">
<reservoir-thumbnail
@changeThumbnailMap="changeThumbnailMap"
@jumpIntoMap="jumpIntoMap"
/>
</div>
<!--下方-->
<div class="bottom">
<reservoir-bottom />
</div>
</div>
</template>
<script>
import {
getApplyPriceCount
} from '@/api/assertReport'
import ReservoirThumbnail from "./components/ReservoirThumbnail.vue";
import ReservoirLeft from "./components/ReservoirLeft";
import ReservoirRight from "./components/ReservoirRight";
import ReservoirBottom from "./components/ReservoirBottom";
import { NumbersConvertedToArrays } from "@/utils/arrayMethod.js";
export default {
//import使
components: {
ReservoirThumbnail,
ReservoirLeft,
ReservoirRight,
ReservoirBottom
},
data() {
//
return {
saveMonmy:[],
model: "common",
dialogTitle: "周边视频",
videoAnalysisDialogVisible: false, //
riverCourseHistoryDialogVisible: false, //
riverDetailInfo: {}, //
dialogType: "add",
dialogData: {},
dangerReportDialogVisible: false,
positionInfo: null,
reservoirDialogVisible: false, //
districtOptions: [], //
isThumbnail:true, //
tabindex:0, //3dtab
listType:"",// warnig
basicInfo: {}, //
type: '',
callSource:"indexPage",
};
},
// data
computed: {},
//data
watch: {},
//
methods: {
getSaveMoney(){
getApplyPriceCount().then((res) => {
this.saveMonmy=NumbersConvertedToArrays(res.data.data)
})
}
},
mounted() {
this.getSaveMoney()
},
};
</script>
<style lang="less">
@font-face {
font-family: 'SourceHanSansCN-Regular';
src: url('~@/assets/capabilityCloud/font/SourceHanSansCN-Regular.otf');
}
@font-face {
font-family: 'DIN-Bold';
src: url('~@/assets/capabilityCloud/font/DIN-Bold.otf');
}
@font-face {
font-family: 'ZhiheiJ-W5.ttf';
src: url('~@/assets/capabilityCloud/font/ZhiheiJ-W5.ttf');
}
.capability-cloud {
font-family: SourceHanSansCN-Regular;
.title {
font-family: ZhiheiJ-W5;
background: -webkit-linear-gradient(90deg, #99a8d0, #fff);
font-weight: 600;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.num {
font-family: DIN-Bold;
}
}
</style>
<style lang='less' scoped>
// scopeddate-pickerreservoir
//@import url(); css
.module-header-container {
position: absolute;
z-index: 1000;
top: 0px;
width: 100%;
pointer-events: none;
}
.capability-cloud {
height: 10.8rem;
background: url('~@/assets/capabilityCloud/bg.png') no-repeat;
background-size: 100% 100%;
overflow: hidden;
& > .header {
height: 1.04rem;
text-align: center;
background: url('~@/assets/capabilityCloud/header.png') no-repeat;
font-size: 0.46rem;
}
.bottom{
bottom: 12px;
position: absolute;
left: 545px;
width: 732px;
align-items: center;
z-index: 1004;
text-align: center;
height: 1.8rem;
}
.header1 {
top: 78px;
position: absolute;
left: 795px;
align-items: center;
z-index: 1004;
text-align: center;
.area-right {
display: flex;
align-items: center;
justify-items: flex-end;
padding-right: 20px;
color: #bed1df;
margin-left: 100px;
span {
width: 36px;
// height: 45px;
// line-height: 45px;
color: #fed93f;
font-weight: bold;
background: url("~@/assets/capabilityCloud/num_bg.png")
100% 100% no-repeat;
background-size: 100%;
text-align: center;
font-size: 34px;
margin-right: 3px;
font-family: DinPro-Bold;
}
.mianJi {
margin-top: 6px;;
margin-right: 3px;
font-size: 22px;
float:right;
}
p {
height: 44px;
display: flex;
align-items: flex-end;
justify-items: center;
font-size: 34px;
}
}
}
//position: relative;
.reservoir-left {
position: absolute;
left: 0.1rem;
z-index: 1000;
top: 0.8rem;
height: calc(100% - 0.8rem);
}
.reservoir-right {
position: absolute;
z-index: 1001;
right: 0.1rem;
top: 0.8rem;
height: calc(100% - 0.8rem);
}
.reservoir-map {
position: absolute;
width: 100%;
// height: 100%;
// bottom:2rem;
}
}
//
.phone-date-picker {
color: #fff;
//border: 1px solid #e4e7ed;
border: 1px solid #008fbb;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
//background: #000;
background: #123d68;
//background:rgba(0, 0, 0, 0);
line-height: 30px;
margin: 5px 0;
.el-date-table td.disabled div {
background: #305156 !important;
}
.el-picker-panel__footer {
//background-color: rgba(0, 0, 0, 0.8);
background: #123d68;
color: #fff;
.el-picker-panel__link-btn:first-of-type {
display: none;
}
}
.el-date-table td.in-range div {
background: #009ab3;
}
.el-input__inner {
//background-color: rgba(0, 0, 0, 0.8);
background: #123d68;
color: #fff;
}
.el-date-picker__header > button,
span {
color: #fff;
}
.el-picker-panel__content > .el-date-table > tbody > tr > th {
color: #fff;
}
.el-button.is-plain:hover,
.el-button.is-plain:focus {
background: #009ab3;
}
.el-button--default {
border-radius: 0;
background: #009ab3;
//border: 1px solid #dcdfe6;
border: 1px solid #008fbb;
border-color: #009ab3;
}
}
</style>

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-09 15:41:19 * @Date: 2022-06-09 15:41:19
* @LastEditors: hisense.liangjunhua * @LastEditors: Light
* @LastEditTime: 2022-08-02 11:30:50 * @LastEditTime: 2022-11-28 17:05:33
* @Description: 上传组件 * @Description: 上传组件
--> -->
<template> <template>
@ -92,6 +92,7 @@
} }
if (!isLt10M) { if (!isLt10M) {
message.error(`${file.name} 超出100M的大小`) message.error(`${file.name} 超出100M的大小`)
flag = false
} }
return flag || Upload.LIST_IGNORE return flag || Upload.LIST_IGNORE
} }

View File

@ -88,7 +88,7 @@
</span> </span>
<div <div
class="leixingsumfather" class="leixingsumfather"
:class="!item.shrinkFlag ? 'shrink' : ''" :class="!item.shrinkFlag ? 'shrink' : 'shrink'"
> >
<div <div
v-for="(item2, index2) in item.typeList" v-for="(item2, index2) in item.typeList"
@ -108,7 +108,7 @@
</a-checkable-tag> </a-checkable-tag>
</div> </div>
</div> </div>
<div <!-- <div
class="shrinkTag" class="shrinkTag"
v-if="item.showShrink" v-if="item.showShrink"
:key="item.shrinkFlag" :key="item.shrinkFlag"
@ -121,7 +121,7 @@
v-show="item.shrinkFlag" v-show="item.shrinkFlag"
@click="changeShrink(item.name)" @click="changeShrink(item.name)"
/> />
</div> </div> -->
</div> </div>
</div> </div>
</template> </template>
@ -143,7 +143,7 @@
show-size-changer show-size-changer
show-less-items show-less-items
show-quick-jumper show-quick-jumper
:showTotal="total => `共 ${total} 项`" :showTotal="(total) => `共 ${total} 项`"
:total="resourceTotal" :total="resourceTotal"
:page-size-options="pageSizeOptions" :page-size-options="pageSizeOptions"
@change="pageChange" @change="pageChange"
@ -306,7 +306,7 @@
<detailsPageconetentTree /> <detailsPageconetentTree />
</div> </div>
<div class="details-pageconetent-left" style="left: 0.16rem" v-else> <div class="details-pageconetent-left" style="left: 0.16rem" v-else>
<detailsPageInfrastructureTreeXha /> <detailsPageInfrastructureTreeXha v-show="showFlag" />
</div> </div>
<div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'"> <div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'">
<div class="top-title"> <div class="top-title">
@ -511,10 +511,14 @@
:resourceTotal="resourceTotal" :resourceTotal="resourceTotal"
></KnowledgeBase> ></KnowledgeBase>
</div> </div>
<template v-if="Cardsname == '基础设施'"> <div v-if="Cardsname == '基础设施'" v-show="showFlag">
<infrastructureApplication></infrastructureApplication> <infrastructureApplication></infrastructureApplication>
</template> </div>
<div class="talk-monitor" @click="openMonitor"> <div
class="talk-monitor"
@click="openMonitor"
v-if="Cardsname != '基础设施'"
>
<a-tooltip> <a-tooltip>
<template #title>问答机器人</template> <template #title>问答机器人</template>
<i></i> <i></i>
@ -915,9 +919,14 @@
const setTitle = () => { const setTitle = () => {
let title = titleNameArray let title = titleNameArray
let whoShow1 = ref(whoShow) let whoShow1 = ref(whoShow)
if (whoShow1 && whoShow1.value.itShowXiHaiAn) { if (
title[0] = title.splice(2, 1, title[0])[0] whoShow1 &&
whoShow1.value.itShowXiHaiAn &&
title[0].name !== '基础设施'
) {
;[title[0], title[2]] = [title[2], title[0]]
} }
debugger
titleName.value = title titleName.value = title
} }
// //
@ -1641,10 +1650,16 @@
resourceList.data = list resourceList.data = list
}) })
} }
mybus.on('getCameraByParentId', (ids) => { const showFlag = ref(true)
paramsGetResources2.value.regionId = ids mybus.on('getCameraByParentId', (val) => {
console.log('倒腾位置2')
paramsGetResources2.value.regionId = val.id
getAppResources() getAppResources()
}) })
mybus.on('changeShowFlag', (flag) => {
console.log('改变')
showFlag.value = flag
})
mybus.on('changeSearchValue', (val) => { mybus.on('changeSearchValue', (val) => {
searchValue.value = val searchValue.value = val
}) })
@ -1951,6 +1966,7 @@
saveSearchCodition, saveSearchCodition,
searchResultListDom, searchResultListDom,
handleSetSearchData, // todo handleSetSearchData, // todo
showFlag,
} }
}, },
components: { components: {
@ -1970,6 +1986,7 @@
}, },
beforeUnmount() { beforeUnmount() {
mybus.off('getCameraByParentId') mybus.off('getCameraByParentId')
mybus.off('changeShowFlag')
mybus.off('changeSearchValue') mybus.off('changeSearchValue')
mybus.off('selectCardsitem') mybus.off('selectCardsitem')
mybus.off('paramsGetResources') mybus.off('paramsGetResources')
@ -2066,7 +2083,11 @@
background: rgba(245, 243, 243, 0.3); background: rgba(245, 243, 243, 0.3);
.details-pageconetent-left { .details-pageconetent-left {
max-height: 8.5rem; // max-height: 8.5rem;
height: 100%;
height: -moz-available; /* WebKit-based browsers will ignore this. */
height: -webkit-fill-available; /* Mozilla-based browsers will ignore this. */
height: fill-available;
position: absolute; position: absolute;
width: 2.5rem; width: 2.5rem;
top: 0.17rem; top: 0.17rem;

View File

@ -296,17 +296,29 @@
const num = ref(0) const num = ref(0)
// //
const expireDateOptions = [ const expireDateOptions = [
{
value: moment().add(7, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '7天',
},
{ {
value: moment().add(30, 'days').format('YYYY-MM-DD HH:mm:ss'), value: moment().add(30, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '30天', label: '1个月',
}, },
{ {
value: moment().add(60, 'days').format('YYYY-MM-DD HH:mm:ss'), value: moment().add(180, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '60天', label: '6个月',
}, },
{ {
value: moment().add(90, 'days').format('YYYY-MM-DD HH:mm:ss'), value: moment().add(365, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '90天', label: '1年',
},
{
value: moment().add(730, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '2年',
},
{
value: moment().add(1095, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '3年',
}, },
] ]
const apiURL = window.SITE_CONFIG.apiURL const apiURL = window.SITE_CONFIG.apiURL

View File

@ -2,12 +2,13 @@
海康H5Player 海康H5Player
--> -->
<template> <template>
<div id="player" style="width: 800px; height: 600px; z-index: 9999"></div> <div :id="videoId" style="width: 800px; height: 600px; z-index: 9999"></div>
</template> </template>
<script> <script>
const IS_MOVE_DEVICE = document.body.clientWidth < 992 // // const IS_MOVE_DEVICE = document.body.clientWidth < 992 //
const MSE_IS_SUPPORT = !!window.MediaSource // mse const MSE_IS_SUPPORT = !!window.MediaSource // mse
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus'
export default { export default {
name: 'H5Player', name: 'H5Player',
props: { props: {
@ -15,6 +16,10 @@
type: String, type: String,
default: '', default: '',
}, },
videoId: {
type: String,
default: 'player',
},
index: { index: {
type: Number, type: Number,
default: 0, default: 0,
@ -23,11 +28,16 @@
type: Boolean, type: Boolean,
default: false, default: false,
}, },
unStopable: {
type: Boolean,
default: false,
},
}, },
data() { data() {
return { return {
player: null, player: null,
splitNum: 1, splitNum: 1,
realTime: true,
mseSupport: MSE_IS_SUPPORT, mseSupport: MSE_IS_SUPPORT,
// tabActive: MSE_IS_SUPPORT ? 'mse' : 'decoder', // tabActive: MSE_IS_SUPPORT ? 'mse' : 'decoder',
tabActive: 'decoder', tabActive: 'decoder',
@ -61,10 +71,16 @@
created() {}, created() {},
mounted() { mounted() {
this.init() this.init()
mybus.emit('closeLoading', true)
this.createPlayer() this.createPlayer()
this.arrangeWindow() this.arrangeWindow()
//videoUrl this.realplay(this.videoUrl,0);//index if (this.unStopable) {
this.videoPlay(this.videoUrl, 0)
} else {
this.realplay(this.videoUrl, 0) this.realplay(this.videoUrl, 0)
}
//videoUrl this.realplay(this.videoUrl,0);//index
//this.realplay('wss://10.134.135.44:6014/proxy/10.10.20.14:559/openUrl/y3mFfcA',0); //this.realplay('wss://10.134.135.44:6014/proxy/10.10.20.14:559/openUrl/y3mFfcA',0);
}, },
watch: { watch: {
@ -74,7 +90,16 @@
console.log('oldVal:', oldVal) console.log('oldVal:', oldVal)
console.log('newVal:', newVal) console.log('newVal:', newVal)
if (newVal) { if (newVal) {
if (!this.player) {
setTimeout(() => {
this.init()
this.createPlayer()
this.arrangeWindow()
this.realplay(newVal, 0) this.realplay(newVal, 0)
}, 1000)
} else {
this.realplay(newVal, 0)
}
} }
}, },
// //
@ -90,12 +115,13 @@
}) })
}, },
createPlayer() { createPlayer() {
//console.log('this.index',this.index); console.log('初始化id', this.videoId)
this.player = new window.JSPlugin({ this.player = new window.JSPlugin({
//szId: 'player'+this.index, //szId: 'player'+this.index,
szId: 'player', szId: this.videoId,
szBasePath: '/util/', //public/jsjs szBasePath: '/util/', //public/jsjs
iMaxSplit: 4, iMaxSplit: 4,
iWidth: '800px',
iCurrentSplit: 4, iCurrentSplit: 4,
openDebug: true, openDebug: true,
oStyle: { oStyle: {
@ -113,6 +139,7 @@
// //
console.log('pluginError callback: ', iWndIndex, iErrorCode, oError) console.log('pluginError callback: ', iWndIndex, iErrorCode, oError)
message.error('取流异常,请稍后尝试') message.error('取流异常,请稍后尝试')
mybus.emit('closeLoading', false)
}, },
windowEventOver: function (iWndIndex) { windowEventOver: function (iWndIndex) {
// //
@ -138,8 +165,11 @@
iWidth, iWidth,
iHeight iHeight
) )
// //
if (!that.realTime) {
that.pausePlay(iWndIndex) that.pausePlay(iWndIndex)
}
mybus.emit('closeLoading', false)
}, },
performanceLack: function () { performanceLack: function () {
// //
@ -161,9 +191,13 @@
// //
// //
realplay(playURL, index1) { realplay(playURL, index1) {
this.mode = 1 //0 1 this.realTime = false
const { player, mode, urls } = this, mybus.emit('closeLoading', true)
index = player.currentWindowIndex setTimeout(() => {
mybus.emit('closeLoading', false)
}, 3000)
this.mode = 0 //0 1
const { player, mode, urls } = this
// playURL = this.realplay // playURL = this.realplay
console.log('视频播放地址', playURL) console.log('视频播放地址', playURL)
// const startTime = { // const startTime = {
@ -190,13 +224,48 @@
} }
) )
}, },
//
videoPlay(playURL, index1) {
let that = this
this.realTime = true
mybus.emit('closeLoading', true)
setTimeout(() => {
mybus.emit('closeLoading', false)
}, 3000)
if (!that.unStopable) {
message.warning('预览将在约6s后停止')
setTimeout(() => {
that.stopAllPlay()
}, 6000)
}
this.mode = 0 //0 1
const { player, mode, urls } = this
// playURL = this.realplay
console.log('视频播放地址', playURL)
// const startTime = {
// startTime: ,
// }
// const endTime = {
// endTime: ,
// }
player.JS_Play(playURL, { playURL, mode }, index1).then(
() => {
console.log('realplay success')
// 6s
},
(e) => {
console.error(e)
// message.error(':' + e)
}
)
},
// //
stopAllPlay() { stopAllPlay() {
this.player.JS_StopRealPlayAll().then( this.player.JS_StopRealPlayAll().then(
() => { () => {
this.playback.rate = 0 this.playback.rate = 0
console.log('stopAllPlay success') console.log('stopAllPlay success')
this.closeVideoTree() // this.closeVideoTree()
}, },
(e) => { (e) => {
console.error(e) console.error(e)
@ -205,12 +274,15 @@
}, },
// //
pausePlay(index) { pausePlay(index) {
let that = this
this.player.JS_Pause(index).then( this.player.JS_Pause(index).then(
() => { () => {
console.log('暂停成功') console.log('暂停成功')
}, },
(e) => { (e) => {
console.error(e) console.error(e)
//
that.videoPlay(that.videoUrl, 0)
} }
) )
}, },

View File

@ -17,9 +17,17 @@
<div <div
v-for="item in navList" v-for="item in navList"
:key="item.key" :key="item.key"
@click="jumpPage(item,'headerClick')" @click="jumpPage(item, 'headerClick')"
class="nav" class="nav"
:class="[{'select':item.key == select},{'select-inner':(item.key == 'DetailsPageconetent' && item.innerKey && props.targetFlag)}]" :class="[
{ select: item.key == select },
{
'select-inner':
item.key == 'DetailsPageconetent' &&
item.innerKey &&
props.targetFlag,
},
]"
> >
{{ item.name }} {{ item.name }}
</div> </div>
@ -54,6 +62,7 @@
p-id="2187" p-id="2187"
width="0.35rem" width="0.35rem"
height="0.35rem" height="0.35rem"
@click="goToView()"
> >
<path <path
d="M544 161.536a330.666667 330.666667 0 0 1 298.666667 329.130667h-0.341334c0.213333 1.493333 0.341333 2.986667 0.341334 4.565333v219.434667h39.68a32 32 0 0 1 0 64h-212.053334a160 160 0 0 1-316.586666 0H141.909333a32 32 0 1 1 0-64h39.424v-219.434667c0-1.578667 0.128-3.072 0.341334-4.565333H181.333333a330.666667 330.666667 0 0 1 298.666667-329.130667V128a32 32 0 1 1 64 0v33.536z m-298.666667 553.130667h533.333334v-219.434667c0-1.578667 0.128-3.072 0.341333-4.565333h-0.341333a266.666667 266.666667 0 1 0-533.333334 0h-0.341333c0.213333 1.493333 0.341333 2.986667 0.341333 4.565333v219.434667z m359.765334 64H418.901333a96 96 0 0 0 186.197334 0z" d="M544 161.536a330.666667 330.666667 0 0 1 298.666667 329.130667h-0.341334c0.213333 1.493333 0.341333 2.986667 0.341334 4.565333v219.434667h39.68a32 32 0 0 1 0 64h-212.053334a160 160 0 0 1-316.586666 0H141.909333a32 32 0 1 1 0-64h39.424v-219.434667c0-1.578667 0.128-3.072 0.341334-4.565333H181.333333a330.666667 330.666667 0 0 1 298.666667-329.130667V128a32 32 0 1 1 64 0v33.536z m-298.666667 553.130667h533.333334v-219.434667c0-1.578667 0.128-3.072 0.341333-4.565333h-0.341333a266.666667 266.666667 0 1 0-533.333334 0h-0.341333c0.213333 1.493333 0.341333 2.986667 0.341333 4.565333v219.434667z m359.765334 64H418.901333a96 96 0 0 0 186.197334 0z"
@ -90,14 +99,18 @@
</template> </template>
<span <span
class="name" class="name"
@click="jumpPage({ name: '个人中心', key: 'personalCenter' },'headerClick')" @click="
jumpPage({ name: '个人中心', key: 'personalCenter' }, 'headerClick')
"
> >
{{ user.realName }} {{ user.realName }}
</span> </span>
</a-tooltip> </a-tooltip>
<span @click="logout" class="out">退出</span> <span @click="logout" class="out">退出</span>
<i <i
@click="jumpPage({ name: '后台管理', key: 'houtaiguanli' },'headerClick')" @click="
jumpPage({ name: '后台管理', key: 'houtaiguanli' }, 'headerClick')
"
class="iconTo" class="iconTo"
v-show="backFlag" v-show="backFlag"
></i> ></i>
@ -135,10 +148,10 @@
const mynoticeFlag = ref(false) const mynoticeFlag = ref(false)
const mynoticeData = ref([]) const mynoticeData = ref([])
const navList = ref(navListManagement.navList) const navList = ref(navListManagement.navList)
const targetRouter= ref('') const targetRouter = ref('')
const backFlag = ref(false) const backFlag = ref(false)
getUserInfo().then((res) => { getUserInfo().then((res) => {
if(res.data.data.superAdmin =='1'){ if (res.data.data.superAdmin == '1') {
backFlag.value = true backFlag.value = true
} else { } else {
res.data.data.roleIdList.map((val) => { res.data.data.roleIdList.map((val) => {
@ -188,8 +201,8 @@
window.open('http://15.72.177.175:18460/analystrunner/tonglan', '_blank') window.open('http://15.72.177.175:18460/analystrunner/tonglan', '_blank')
} }
// //
const jumpPage = (item,type) => { const jumpPage = (item, type) => {
if(type == 'headerClick'){ if (type == 'headerClick') {
// 西 // 西
if (itShowXiHaiAn.value) { if (itShowXiHaiAn.value) {
let _arr = ['共享门户', '能力云图', '能力统计', '需求中心', '赋能案例'] let _arr = ['共享门户', '能力云图', '能力统计', '需求中心', '赋能案例']
@ -203,7 +216,10 @@
select.value = item.key select.value = item.key
switch (item.name) { switch (item.name) {
case '个人中心': case '个人中心':
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle')) window.sessionStorage.setItem(
'type',
JSON.stringify('PurchaseVehicle')
)
router.push({ router.push({
path: '/personalCenter', path: '/personalCenter',
}) })
@ -275,11 +291,14 @@
router.push('/home') router.push('/home')
break break
} }
}else if(type == 'innerClick'){ } else if (type == 'innerClick') {
//select.value = item.key //select.value = item.key
switch (item.name) { switch (item.name) {
case '个人中心': case '个人中心':
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle')) window.sessionStorage.setItem(
'type',
JSON.stringify('PurchaseVehicle')
)
router.push({ router.push({
path: '/personalCenter', path: '/personalCenter',
}) })
@ -295,7 +314,7 @@
query: { query: {
id: targetRouter.value.id, id: targetRouter.value.id,
}, },
}); })
break break
case '能力云图': case '能力云图':
router.push({ router.push({
@ -321,7 +340,6 @@
router.push('/home') router.push('/home')
break break
} }
} }
} }
const scrollTop = ref(0) const scrollTop = ref(0)
@ -403,24 +421,32 @@
mybus.on('changeMenuStyle', (data) => { mybus.on('changeMenuStyle', (data) => {
debugger debugger
targetRouter.value = data; targetRouter.value = data
if(data.path=='/algorithmCompare'){ if (data.path == '/algorithmCompare') {
jumpPage({ jumpPage(
"name": "能力集市", {
"key": "DetailsPageconetent", name: '能力集市',
"innerKey":"algorithmCompare" key: 'DetailsPageconetent',
},'innerClick'); innerKey: 'algorithmCompare',
} else if(data.path =='/DetailsPageconetent'){ },
jumpPage({ name: '能力集市', key: 'DetailsPageconetent' },'headerClick') 'innerClick'
} else if(data.path =='/details'){ )
jumpPage({ } else if (data.path == '/DetailsPageconetent') {
"name": "能力集市", jumpPage(
"key": "DetailsPageconetent", { name: '能力集市', key: 'DetailsPageconetent' },
"innerKey":"details" 'headerClick'
},'innerClick'); )
} else if (data.path == '/details') {
jumpPage(
{
name: '能力集市',
key: 'DetailsPageconetent',
innerKey: 'details',
},
'innerClick'
)
} }
}) })
}) })
onBeforeUnmount(() => { onBeforeUnmount(() => {
mybus.off('getSgcNum') mybus.off('getSgcNum')

View File

@ -62,6 +62,55 @@
item.infoList.filter((val) => val.attrType == '应用图片')[0] item.infoList.filter((val) => val.attrType == '应用图片')[0]
.attrValue .attrValue
" "
:fallback="imgSrcYyzy"
/>
</div>
<div
class="left"
style="display: flex; align-items: center"
v-else-if="
(item.type === '组件服务' &&
item.infoList &&
item.infoList.filter((val) => val.attrType == '图层缩略图')[0]) ||
item.infoList.filter((val) => val.attrType == '组件图片')[0] ||
item.infoList.filter((val) => val.attrType == '算法效果图片')[0]
"
>
<a-image
v-if="
item.infoList.filter((val) => val.attrType == '图层缩略图')[0]
"
:width="106"
:preview="false"
:src="
item.infoList.filter((val) => val.attrType == '图层缩略图')[0]
.attrValue
"
:fallback="imgSrcTcfw"
/>
<a-image
v-else-if="
item.infoList.filter((val) => val.attrType == '组件图片')[0]
"
:width="106"
:preview="false"
:src="
item.infoList.filter((val) => val.attrType == '组件图片')[0]
.attrValue
"
:fallback="item.type == '开发组件' ? imgSrcKfzj : imgSrcYwzj"
/>
<a-image
v-else-if="
item.infoList.filter((val) => val.attrType == '算法效果图片')[0]
"
:width="106"
:preview="false"
:src="
item.infoList.filter((val) => val.attrType == '算法效果图片')[0]
.attrValue
"
:fallback="imgSrcZnsf"
/> />
</div> </div>
<div <div
@ -253,6 +302,18 @@
</div> </div>
</div> </div>
<div class="dec"> <div class="dec">
<div
v-if="
item.infoList.filter((val) => val.attrType == '组件类型')[0]
"
>
<span>
{{
item.infoList.filter((val) => val.attrType == '组件类型')[0]
.attrValue
}}
</span>
</div>
<div <div
v-if=" v-if="
selectCardsname !== '融合服务' && selectCardsname !== '融合服务' &&
@ -619,8 +680,8 @@
let pathData = { let pathData = {
path: '/details', path: '/details',
id: item.id, id: item.id,
}; }
mybus.emit('changeMenuStyle',pathData); mybus.emit('changeMenuStyle', pathData)
} }
} }
} }
@ -766,7 +827,11 @@
integrationServiceOrderDom.value.reset() integrationServiceOrderDom.value.reset()
} }
}) })
const imgSrcYyzy = ref(require('@/assets/home/yyzy_square.png'))
const imgSrcTcfw = ref(require('@/assets/home/tcfw_square.png'))
const imgSrcZnsf = ref(require('@/assets/home/znsf_square.png'))
const imgSrcKfzj = ref(require('@/assets/home/kfzj_square.png'))
const imgSrcYwzj = ref(require('@/assets/home/ywzj_square.png'))
let videoUrl = ref('') let videoUrl = ref('')
const options = reactive({ const options = reactive({
width: '700px', // width: '700px', //
@ -821,8 +886,8 @@
let pathData = { let pathData = {
path: '/algorithmCompare', path: '/algorithmCompare',
id: item.id, id: item.id,
}; }
mybus.emit('changeMenuStyle',pathData); mybus.emit('changeMenuStyle', pathData)
} }
return { return {
onSearch, onSearch,
@ -847,6 +912,11 @@
integrationServiceOrderDom, integrationServiceOrderDom,
orderObj, orderObj,
getTagList, getTagList,
imgSrcYyzy,
imgSrcTcfw,
imgSrcZnsf,
imgSrcKfzj,
imgSrcYwzj,
} }
}, },
beforeUnmount() { beforeUnmount() {

View File

@ -1,68 +1,73 @@
<!--
* @Author: Light
* @Date: 2022-11-24 09:07:50
* @LastEditors: Light
* @LastEditTime: 2022-11-25 09:56:50
* @Description: 告诉大家这是什么
-->
<template> <template>
<div> <div class="detail-back" @click="goToDetailsPageconetent">
<div class="nav-box"> <!-- <div class="nav-box"> -->
<a-breadcrumb> <!-- <a-breadcrumb>
<a-breadcrumb-item @click="goToDetailsPageconetent" class="bread-crumb-span">能力集市</a-breadcrumb-item> <a-breadcrumb-item @click="goToDetailsPageconetent" class="bread-crumb-span">能力集市</a-breadcrumb-item>
<a-breadcrumb-item>{{detailName}}</a-breadcrumb-item> <a-breadcrumb-item>{{detailName}}</a-breadcrumb-item>
</a-breadcrumb> </a-breadcrumb> -->
</div> <!-- </div> -->
</div> </div>
</template> </template>
<script setup> <script setup>
import { reactive, ref, watch, defineProps } from 'vue' import { reactive, ref, watch, defineProps } from 'vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { useStore } from 'vuex' import { useStore } from 'vuex'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
const router = useRouter() const router = useRouter()
const oldValue1= ref('') const oldValue1 = ref('')
const props = defineProps({ const props = defineProps({
textColor: { type: String, default: '' }, textColor: { type: String, default: '' },
}) })
const previousPage = () => { const previousPage = () => {
if (window.history.state.back){ if (window.history.state.back) {
window.history.go(-1) window.history.go(-1)
} else{ } else {
router.push({ router.push({
path: '/integrationServices', path: '/integrationServices',
}) })
} }
}
} const detailName = ref('应用资源')
const detailName = ref("应用资源") const goToDetailsPageconetent = () => {
const goToDetailsPageconetent = () =>{
let pathData = { let pathData = {
path: '/DetailsPageconetent', path: '/DetailsPageconetent',
}; }
mybus.emit('changeMenuStyle',pathData); mybus.emit('changeMenuStyle', pathData)
} }
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.detail-back { .detail-back {
position: absolute; position: absolute;
top: 0.6rem; top: 1rem;
left: 100px; left: 100px;
font-size: 0.18rem; font-size: 0.18rem;
color: #fff; color: #fff;
cursor: pointer; cursor: pointer;
width: 50px; width: 50px;
height: 50px; height: 50px;
//background-image: url('~@/assets/detailsAll/back.png'); background-image: url('~@/assets/detailsAll/back.png');
background-size: 100% 100%; background-size: 100% 100%;
} }
.nav-box { .nav-box {
position: absolute; position: absolute;
top: 0.6rem; top: 0.6rem;
//left: 100px; left: 100px;
font-size: 0.18rem; font-size: 0.18rem;
color: #fff; color: #fff;
height: 30px; height: 30px;
line-height:30px; line-height: 30px;
width: 100%; width: 100%;
font-size: 14px; font-size: 14px;
display: flex; display: flex;
@ -70,7 +75,7 @@ const goToDetailsPageconetent = () =>{
background: rgba(244, 245, 248, 0.8); background: rgba(244, 245, 248, 0.8);
padding-left: 145px; padding-left: 145px;
padding-top: 5px; padding-top: 5px;
.bread-crumb-span{ .bread-crumb-span {
cursor: pointer; cursor: pointer;
} }
} }

View File

@ -2,7 +2,11 @@
<div class="wrapper"> <div class="wrapper">
<div class="wrapper-title-left-tree" :key="showKey"> <div class="wrapper-title-left-tree" :key="showKey">
<div v-for="item in treeData" :key="item.id" class="primaryNode"> <div v-for="item in treeData" :key="item.id" class="primaryNode">
<div class="top" @click="showBottom(item)" :class="item.show ? 'topSelect' : ''"> <div
class="top"
@click="showBottom(item)"
:class="item.show ? 'topSelect' : ''"
>
{{ item.name }} {{ item.name }}
({{ item.channelCount }}) ({{ item.channelCount }})
<DownOutlined v-show="!item.show" /> <DownOutlined v-show="!item.show" />
@ -10,13 +14,28 @@
</div> </div>
<div class="bottom" v-show="item.show"> <div class="bottom" v-show="item.show">
<div v-for="val in item.children" :key="val.id" class="item"> <div v-for="val in item.children" :key="val.id" class="item">
<div class="up" :class="selectId == val.id ? 'select' : ''" <div
@click="showDown(item, val), onSelect(item, val)"> class="up"
:class="selectId == val.id ? 'select' : ''"
@click="showDown(item, val), onSelect(item, val)"
>
<div> <div>
<svg t="1654068878091" class="icon" viewBox="0 0 1024 1024" version="1.1" <svg
xmlns="http://www.w3.org/2000/svg" p-id="2156" width="0.25rem" height="0.25rem" t="1654068878091"
v-show="selectId == val.id"> class="icon"
<path d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z" p-id="2157" fill="#0058e1"></path> viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2156"
width="0.25rem"
height="0.25rem"
v-show="selectId == val.id"
>
<path
d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z"
p-id="2157"
fill="#0058e1"
></path>
</svg> </svg>
<span class="name">{{ val.name }}({{ val.channelCount }})</span> <span class="name">{{ val.name }}({{ val.channelCount }})</span>
</div> </div>
@ -27,13 +46,30 @@
</span> </span>
</div> </div>
<div class="down" v-show="val.show"> <div class="down" v-show="val.show">
<div v-for="child in val.children" :key="child.id" class="child" <div
:class="selectId == child.id ? 'select2' : ''" @click="onSelect(item, child, child)"> v-for="child in val.children"
:key="child.id"
class="child"
:class="selectId == child.id ? 'select2' : ''"
@click="onSelect(item, child, child)"
>
<div> <div>
<svg t="1654068878091" class="icon" viewBox="0 0 1024 1024" version="1.1" <svg
xmlns="http://www.w3.org/2000/svg" p-id="2156" width="0.25rem" height="0.25rem" t="1654068878091"
v-show="selectId == child.id"> class="icon"
<path d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z" p-id="2157" fill="#0058e1"></path> viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2156"
width="0.25rem"
height="0.25rem"
v-show="selectId == child.id"
>
<path
d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z"
p-id="2157"
fill="#0058e1"
></path>
</svg> </svg>
<span class="name"> <span class="name">
{{ child.name }} {{ child.name }}
@ -49,15 +85,15 @@
</div> </div>
</template> </template>
<script> <script>
import { defineComponent, ref, watch } from 'vue' import { defineComponent, ref, watch } from 'vue'
import { getCameraAllOrgan } from '@/api/videoSurveillance' import { getCameraAllOrgan } from '@/api/videoSurveillance'
import { getCameraInfoByAreaId } from '@/api/file' import { getCameraInfoByAreaId } from '@/api/file'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue' import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js' import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
export default defineComponent({ export default defineComponent({
setup() { setup() {
const router = useRouter() const router = useRouter()
const whoShow1 = ref(whoShow) const whoShow1 = ref(whoShow)
@ -72,7 +108,9 @@ export default defineComponent({
'router.currentRoute.value.query.select', 'router.currentRoute.value.query.select',
router.currentRoute.value.query.select router.currentRoute.value.query.select
) )
let select = router.currentRoute.value.query.select || DETAIL_PAGE_CONTENT_DEFAULT_TAB let select =
router.currentRoute.value.query.select ||
DETAIL_PAGE_CONTENT_DEFAULT_TAB
if (select === '123') { if (select === '123') {
select = '' select = ''
} }
@ -81,18 +119,20 @@ export default defineComponent({
router.currentRoute.value.query.select router.currentRoute.value.query.select
) )
if (select == '基础设施') { if (select == '基础设施') {
let res = {}; let res = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) { if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' }) res = await getCameraAllOrgan({
parentId: 'S4NbecfYB1DBH8HNULGS34',
})
} else { } else {
// 西 // 西
res = await getCameraInfoByAreaId({ res = await getCameraInfoByAreaId({
areaId: '70be8c5b664f4bcf869d82f2e8335051', areaId: '70be8c5b664f4bcf869d82f2e8335051',
}) })
} }
treeData.value = res.data && res.data.data || [] treeData.value = (res.data && res.data.data) || []
// //
if(res.data && res.data.data.length == 1) { if (res.data && res.data.data.length == 1) {
showBottom(treeData.value[0]) showBottom(treeData.value[0])
} }
} }
@ -102,10 +142,12 @@ export default defineComponent({
}) })
const onSelect = async (item, val, child) => { const onSelect = async (item, val, child) => {
console.log('item--------onSelect---->', item); console.log('item--------onSelect---->', item)
console.log('val------onSelect------>', val); console.log('val------onSelect------>', val)
console.log('child-----onSelect------->', child); console.log('child-----onSelect------->', child)
mybus.emit('getCameraByParentId', val.id) mybus.emit('getCameraByParentId', {
id: val.id,
})
mybus.emit('getListByParentId', val.id) mybus.emit('getListByParentId', val.id)
let res = {} let res = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) { if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
@ -131,14 +173,16 @@ export default defineComponent({
watch(selectId, (newVal) => { watch(selectId, (newVal) => {
if (newVal == '') { if (newVal == '') {
mybus.emit('getCameraByParentId', '') mybus.emit('getCameraByParentId', {
id: '',
})
mybus.emit('getListByParentId', '') mybus.emit('getListByParentId', '')
} }
}) })
const showBottom = async (item) => { const showBottom = async (item) => {
item.show = !item.show; item.show = !item.show
let res = {}; let res = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) { if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: item.id }) res = await getCameraAllOrgan({ parentId: item.id })
} else { } else {
@ -148,17 +192,17 @@ export default defineComponent({
treeData.value.map((treeDataItem, index) => { treeData.value.map((treeDataItem, index) => {
if (item.id == treeDataItem.id) { if (item.id == treeDataItem.id) {
treeData.value[index].children = res.data && res.data.data || [] treeData.value[index].children = (res.data && res.data.data) || []
console.log('treeData.value.[index]', treeData.value[index]) console.log('treeData.value.[index]', treeData.value[index])
} }
}) })
} }
const showDown = (item, val) => { const showDown = (item, val) => {
selectId.value = val.id selectId.value = val.id
console.log('item---showDown--------->', item); console.log('item---showDown--------->', item)
console.log('val----showDown-------->', val); console.log('val----showDown-------->', val)
if (item.children) { if (item.children) {
val.show = !val.show; val.show = !val.show
// //
if (!val.show) { if (!val.show) {
selectId.value = '' selectId.value = ''
@ -182,10 +226,10 @@ export default defineComponent({
UpOutlined, UpOutlined,
DownOutlined, DownOutlined,
}, },
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.primaryNode { .primaryNode {
.top { .top {
width: 100%; width: 100%;
height: 0.4rem; height: 0.4rem;
@ -232,7 +276,7 @@ export default defineComponent({
border-top: 0.01rem solid #ccc; border-top: 0.01rem solid #ccc;
padding: 0 0.1rem; padding: 0 0.1rem;
&>div { & > div {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
} }
@ -289,7 +333,7 @@ export default defineComponent({
align-items: center; align-items: center;
padding: 0 0.1rem; padding: 0 0.1rem;
&>div { & > div {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
} }
@ -332,5 +376,5 @@ export default defineComponent({
} }
} }
} }
} }
</style> </style>

View File

@ -118,23 +118,22 @@
{{ child.placeTypeName }} {{ child.placeTypeName }}
</div> </div>
</a-tooltip> </a-tooltip>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { defineComponent, ref, watch } from 'vue' import { defineComponent, ref, watch } from 'vue'
import { getCameraAllOrgan } from '@/api/videoSurveillance' import { getCameraAllOrgan } from '@/api/videoSurveillance'
import { getCameraInfoByAreaId ,getPlaceType} from '@/api/file' import { getCameraInfoByAreaId, getPlaceType } from '@/api/file'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue' import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js' import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
export default defineComponent({ export default defineComponent({
setup() { setup() {
const biaoqianList = ref([]) const biaoqianList = ref([])
const bumenImg = require('@/assets/newHome/bumen.png') const bumenImg = require('@/assets/newHome/bumen.png')
@ -148,38 +147,36 @@ export default defineComponent({
//tab //tab
const btnClick = (index) => { const btnClick = (index) => {
itemIndex.value = index itemIndex.value = index
if(index===2){ if (index === 2) {
if(chooseId.value !==''){ if (chooseId.value !== '') {
let placeTypeCode =[] let placeTypeCode = []
placeTypeCode.push(chooseId.value) placeTypeCode.push(chooseId.value)
mybus.emit('CameraConditionPlaceType', placeTypeCode) mybus.emit('CameraConditionPlaceType', placeTypeCode)
}else{ } else {
mybus.emit('clearLeftSelect') mybus.emit('clearLeftSelect')
} }
}else{ } else {
if(selectId.value!==''){ if (selectId.value !== '') {
mybus.emit('getCameraByParentId', selectId.value) mybus.emit('getCameraByParentId', {
}else{ id: selectId.value,
})
} else {
mybus.emit('clearLeftSelect') mybus.emit('clearLeftSelect')
} }
} }
} }
// //
const tabClick = (id) => { const tabClick = (id) => {
if(chooseId.value === id){ if (chooseId.value === id) {
chooseId.value = '' chooseId.value = ''
mybus.emit('clearLeftSelect') // mybus.emit('clearLeftSelect')
}else{ mybus.emit('CameraConditionPlaceType', [])
} else {
chooseId.value = id chooseId.value = id
let placeTypeCode =[] let placeTypeCode = []
placeTypeCode.push(id) placeTypeCode.push(id)
mybus.emit('CameraConditionPlaceType', placeTypeCode) mybus.emit('CameraConditionPlaceType', placeTypeCode)
} }
} }
// //
const init = async () => { const init = async () => {
@ -191,17 +188,16 @@ export default defineComponent({
select = '' select = ''
} }
if (select == '基础设施') { if (select == '基础设施') {
let res = {} let res = {}
res = await getCameraInfoByAreaId({ res = await getCameraInfoByAreaId({
areaId: '70be8c5b664f4bcf869d82f2e8335051', areaId: '70be8c5b664f4bcf869d82f2e8335051',
}) })
treeData.value = (res.data && res.data.data) || [] treeData.value = (res.data && res.data.data) || []
let tabs={} let tabs = {}
tabs = await getPlaceType() tabs = await getPlaceType()
//========= //=========
biaoqianList.value =(tabs.data && tabs.data.data) || [] biaoqianList.value = (tabs.data && tabs.data.data) || []
// //
if (res.data && res.data.data.length == 1) { if (res.data && res.data.data.length == 1) {
showBottom(treeData.value[0]) showBottom(treeData.value[0])
@ -212,12 +208,12 @@ export default defineComponent({
init() init()
}) })
mybus.on('clearChoose', () => { mybus.on('clearChoose', () => {
selectId.value='' selectId.value = ''
chooseId.value='' chooseId.value = ''
}) })
const onSelect = async (item, val, child) => { const onSelect = async (item, val, child) => {
let res = {}
let res = {}   console.log('点击', item, val, child)
res = await getCameraInfoByAreaId({ areaId: val.id }) res = await getCameraInfoByAreaId({ areaId: val.id })
treeData.value.map((treeDataItem, index) => { treeData.value.map((treeDataItem, index) => {
if (item.id == treeDataItem.id) { if (item.id == treeDataItem.id) {
@ -230,21 +226,25 @@ export default defineComponent({
} }
}) })
if (child) { if (child) {
if(selectId.value===child.id){ if (selectId.value === child.id) {
selectId.value='' selectId.value = ''
}else{ } else {
selectId.value = child.id selectId.value = child.id
mybus.emit('getCameraByParentId', val.id) //
const param = {
id: val.id,
reset: true,
}
mybus.emit('getCameraByParentId', param)
} }
} }
} }
watch(selectId, (newVal) => { watch(selectId, (newVal) => {
if (newVal == '') { if (newVal == '') {
  mybus.emit('clearLeftSelect') mybus.emit('getCameraByParentId', {
id: '70be8c5b664f4bcf869d82f2e8335051',
})
} }
}) })
@ -261,7 +261,6 @@ export default defineComponent({
}) })
} }
const showDown = (item, val) => { const showDown = (item, val) => {
selectId.value = val.id selectId.value = val.id
//mybus.emit('getCameraByParentId', val.id) //mybus.emit('getCameraByParentId', val.id)
if (item.children) { if (item.children) {
@ -270,8 +269,10 @@ export default defineComponent({
if (!val.show) { if (!val.show) {
selectId.value = '' selectId.value = ''
// mybus.emit('clearLeftSelect') // mybus.emit('clearLeftSelect')
}else{ } else {
mybus.emit('getCameraByParentId', val.id) mybus.emit('getCameraByParentId', {
id: val.id,
})
} }
} }
} }
@ -299,18 +300,18 @@ export default defineComponent({
UpOutlined, UpOutlined,
DownOutlined, DownOutlined,
}, },
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.titleName { .titleName {
font-size: 18px; font-size: 18px;
color: #7e7676; color: #7e7676;
margin-bottom: 10px; margin-bottom: 10px;
padding-left: 6px; padding-left: 6px;
border-left: 6px solid #1296db; border-left: 6px solid #1296db;
margin-left: 10px; margin-left: 10px;
} }
.glgkmk { .glgkmk {
cursor: pointer; cursor: pointer;
text-align: left; text-align: left;
position: relative; position: relative;
@ -333,12 +334,12 @@ export default defineComponent({
color: #0058e1; color: #0058e1;
font-weight: bold; font-weight: bold;
} }
} }
.glgkmk :hover { .glgkmk :hover {
color: #0058e1; color: #0058e1;
} }
.nav { .nav {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-right: 20px; margin-right: 20px;
@ -372,9 +373,9 @@ export default defineComponent({
color: #1296db; color: #1296db;
border-bottom: 0.02rem solid #1296db; border-bottom: 0.02rem solid #1296db;
} }
} }
.primaryNode { .primaryNode {
.top { .top {
width: 100%; width: 100%;
height: 0.4rem; height: 0.4rem;
@ -521,5 +522,5 @@ export default defineComponent({
} }
} }
} }
} }
</style> </style>

View File

@ -2,11 +2,11 @@
* @Author: Light * @Author: Light
* @Date: 2022-11-18 11:53:43 * @Date: 2022-11-18 11:53:43
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-23 10:32:10 * @LastEditTime: 2022-11-28 16:45:50
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
<div class="infrastructureApplication" v-if="showFlag"> <div class="infrastructureApplication" v-show="showFlag">
<div class="top"> <div class="top">
<a-list size="small" bordered :data-source="dataList.toBeApplied"> <a-list size="small" bordered :data-source="dataList.toBeApplied">
<template #renderItem="{ item }"> <template #renderItem="{ item }">
@ -31,7 +31,7 @@
<div class="title">待申请列表</div> <div class="title">待申请列表</div>
</template> </template>
<template #footer> <template #footer>
<a-button type="primary" @click="apply">一键申请</a-button> <a-button type="primary" @click="showApply">一键申请</a-button>
</template> </template>
</a-list> </a-list>
</div> </div>
@ -47,10 +47,16 @@
</div> </div>
<a-tag <a-tag
color="cyan" color="cyan"
style="margin-right: 0" style="margin-right: 0; cursor: pointer"
@click="selectItem(item)" @click="selectItem(item)"
> >
{{ item.approveStatus == '通过' ? '预览' : item.approveStatus }} {{
item.approveStatus == '通过'
? '预览'
: item.backToFirst == 'true'
? '被驳回'
: item.approveStatus
}}
</a-tag> </a-tag>
<a-popconfirm <a-popconfirm
v-if="item.approveStatus == '通过'" v-if="item.approveStatus == '通过'"
@ -82,6 +88,7 @@
</div> </div>
</div> </div>
<a-modal <a-modal
v-if="!dataList.selectItem.cameraInfo"
:width="800" :width="800"
v-model:visible="visible" v-model:visible="visible"
title="撤销申请" title="撤销申请"
@ -104,30 +111,51 @@
</a-table> </a-table>
</a-modal> </a-modal>
<a-modal <a-modal
v-if="dataList.selectItem.cameraInfo" v-else
v-model:visible="showVisible" v-model:visible="showVisible"
:title="dataList.selectItem.cameraInfo.channelName" :title="dataList.selectItem.cameraInfo.channelName"
:footer="null" :footer="null"
:width="845"
destroyOnClose
@cancel="clear" @cancel="clear"
> >
<div style="width: 100%; display: flex; justify-content: center"> <div
<div style="width: 100%; height: 100%; position: relative"> style="
<div class="waterMark waterMark-left-top"> width: 800px;
{{ userInfo.usernameShow }} height: 600px;
</div> display: flex;
<div class="waterMark waterMark-right-top"> justify-content: center;
{{ userInfo.realNameShow }} "
</div> >
<div class="waterMark waterMark-left-bottom"> <h5-player
{{ userInfo.usernameShow }} videoId="preview"
</div> unStopable="true"
<div class="waterMark waterMark-right-bottom"> :video-url="videoUrl"
{{ userInfo.realNameShow }} ></h5-player>
</div>
<h5-player :video-url="videoUrl"></h5-player>
</div>
</div> </div>
</a-modal> </a-modal>
<a-modal
:width="800"
v-model:visible="visibleApply"
title="视频监控申请"
@ok="apply"
@cancel="clear"
>
<p>本次申请的视频监控包含以下{{ showArrApply.length }}是否提交申请</p>
<a-table
:columns="columns"
:data-source="showArrApply"
:pagination="{
pageSize: 5,
}"
>
<template #bodyCell="{ column, text }">
<template v-if="column.dataIndex === 'name'">
<a>{{ text }}</a>
</template>
</template>
</a-table>
</a-modal>
</template> </template>
<script setup> <script setup>
import { import {
@ -152,8 +180,10 @@
const delWacFlag = ref(true) const delWacFlag = ref(true)
const delApply = ref(true) const delApply = ref(true)
const visible = ref(false) const visible = ref(false)
const visibleApply = ref(false)
const instanceId = ref('') const instanceId = ref('')
const showArr = ref({}) const showArr = ref([])
const showArrApply = ref([])
const columns = [ const columns = [
{ {
title: '名称', title: '名称',
@ -187,6 +217,18 @@
}) })
} }
}) })
const showApply = () => {
if (dataList.toBeApplied.length === 0) {
message.warning('待申请列表为空!')
return
}
if (dataList.toBeApplied.length + dataList.requested.length > 10) {
message.warning('最多只能申请10个视频监控!')
return
}
visibleApply.value = true
showArrApply.value = dataList.toBeApplied
}
const delWillApplyCamera = (id) => { const delWillApplyCamera = (id) => {
console.log('撤销===>', id) console.log('撤销===>', id)
if (delWacFlag.value) { if (delWacFlag.value) {
@ -194,10 +236,11 @@
willApplyCameraBatchDelete([id]).then((res) => { willApplyCameraBatchDelete([id]).then((res) => {
if (res.data.code == 0) { if (res.data.code == 0) {
message.success('移出成功') message.success('移出成功')
init()
} else { } else {
message.warning('移出失败') message.warning('移出失败')
}
init() init()
}
}) })
} }
} }
@ -255,10 +298,11 @@
delApplyCamera([item.id]).then((res) => { delApplyCamera([item.id]).then((res) => {
if (res.data.code == 0) { if (res.data.code == 0) {
message.success('撤销成功') message.success('撤销成功')
initApply()
} else { } else {
message.warning('撤销失败') message.warning('撤销失败')
}
initApply() initApply()
}
}) })
break break
} }
@ -278,17 +322,20 @@
getVideoUrl(item.cameraInfo) getVideoUrl(item.cameraInfo)
} else { } else {
dataList.selectItem = {} dataList.selectItem = {}
message.info('请耐心等待审核通过')
showVisible.value = false showVisible.value = false
} }
} }
const handleOk = () => { const handleOk = () => {
console.log('id', instanceId.value)
endProcess({ instanceId: instanceId.value }).then((res) => { endProcess({ instanceId: instanceId.value }).then((res) => {
if (res.data.code == 0) { if (res.data.code == 0) {
message.success('撤销成功') message.success('撤销成功')
initApply()
} else { } else {
message.warning('撤销失败') message.warning('撤销失败')
}
initApply() initApply()
}
visible.value = false visible.value = false
}) })
} }
@ -296,10 +343,13 @@
console.log('清空') console.log('清空')
instanceId.value = '' instanceId.value = ''
showArr.value = [] showArr.value = []
showArrApply.value = []
visible.value = false visible.value = false
visibleApply.value = false
delApply.value = true delApply.value = true
dataList.selectItem = {} dataList.selectItem = {}
showVisible.value = false showVisible.value = false
showVisible.value = false
} }
const init = () => { const init = () => {
willApplyCameraSelect().then((res) => { willApplyCameraSelect().then((res) => {
@ -337,13 +387,15 @@
//console.log('555555rrrrr',res) //console.log('555555rrrrr',res)
if (res.data.data) { if (res.data.data) {
videoUrl.value = res.data.data.url videoUrl.value = res.data.data.url
}
showVisible.value = true showVisible.value = true
} else {
message.warning('申请内容已失效,请撤销后重新进行申请!')
}
}) })
} }
mybus.on('selectCamera', (obj) => { mybus.on('selectCamera', (obj) => {
// 10 // 10 + dataList.requested.length
if (dataList.toBeApplied.length + dataList.requested.length >= 10) { if (dataList.toBeApplied.length >= 10) {
message.warning('最多只能申请10个视频监控') message.warning('最多只能申请10个视频监控')
return return
} }
@ -382,7 +434,7 @@
<style lang="less" scoped> <style lang="less" scoped>
.infrastructureApplication { .infrastructureApplication {
background: #fff; background: #fff;
position: fixed; position: absolute;
top: 50%; top: 50%;
right: 0.16rem; right: 0.16rem;
margin-top: -3.9rem; margin-top: -3.9rem;

View File

@ -134,7 +134,7 @@
v-model:current="roomPage" v-model:current="roomPage"
v-model:pageSize="roomLimit" v-model:pageSize="roomLimit"
show-quick-jumper show-quick-jumper
:showTotal="total => `共 ${total} 项`" :showTotal="(total) => `共 ${total} 项`"
:total="roomTotal" :total="roomTotal"
:page-size-options="pageSizeOptions" :page-size-options="pageSizeOptions"
@change="onRoomChange" @change="onRoomChange"
@ -266,7 +266,6 @@
<a-form <a-form
:model="formState" :model="formState"
name="basic" name="basic"
autocomplete="off" autocomplete="off"
@finish="onFinish" @finish="onFinish"
@finishFailed="onFinishFailed" @finishFailed="onFinishFailed"
@ -2185,8 +2184,8 @@
let params = { let params = {
regionId: regionId:
mapSearchParam.value.parentId || '70be8c5b664f4bcf869d82f2e8335051', mapSearchParam.value.parentId || '70be8c5b664f4bcf869d82f2e8335051',
pageNum: mapSearchParam.value.pageNum, // pageNum: mapSearchParam.value.pageNum,
pageSize: mapSearchParam.value.pageSize, // pageSize: mapSearchParam.value.pageSize,
longitude: mapSearchParam.value.gpsX || '', longitude: mapSearchParam.value.gpsX || '',
latitude: mapSearchParam.value.gpsY || '', latitude: mapSearchParam.value.gpsY || '',
radius: mapSearchParam.value.radius || '', radius: mapSearchParam.value.radius || '',
@ -2479,7 +2478,7 @@
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.queding{ .queding {
margin-left: 16px; margin-left: 16px;
cursor: pointer; cursor: pointer;
background: #0058e1; background: #0058e1;
@ -2821,8 +2820,6 @@
} }
} }
// :deep(.ant-pagination) { // :deep(.ant-pagination) {
// text-align: end; // text-align: end;
// } // }

View File

@ -403,7 +403,14 @@
</div> </div>
<div v-if="room"> <div v-if="room">
<!-- 地图 --> <!-- 地图 -->
<div class="map-contain" v-if="showMap"> <div
class="map-contain"
v-if="showMap"
v-loading="spinningHome"
element-loading-text="Loading..."
element-loading-svg-view-box="-10, -10, 50, 50"
element-loading-background="rgba(122, 122, 122, 0.8)"
>
<video-surveillance></video-surveillance> <video-surveillance></video-surveillance>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
@ -618,11 +625,16 @@
wrapClassName="camera-popup" wrapClassName="camera-popup"
v-model:visible="operationPopupFlag" v-model:visible="operationPopupFlag"
:width="1000" :width="1000"
:title="'视频监控点选择'"
destroyOnClose destroyOnClose
footer="{null}" footer="{null}"
@cancel="handleCancel" @cancel="handleCancel"
> >
<template #title>
<span>视频预览</span>
<span style="color: #ff4d4f; margin-left: 10px">
{{ `(请申请后观看视频)` }}
</span>
</template>
<div style="width: 100%; display: flex; justify-content: center"> <div style="width: 100%; display: flex; justify-content: center">
<div <div
style="width: 100%; height: 100%; position: relative" style="width: 100%; height: 100%; position: relative"
@ -643,10 +655,14 @@
{{ userInfo.realNameShow }} {{ userInfo.realNameShow }}
</div> </div>
<!--地图上点击之后弹出的操作弹窗--> <!--地图上点击之后弹出的操作弹窗-->
<camera-popup-on-map :camera-Data-List="cameraDataList" :reset-flag="resetFlag"></camera-popup-on-map> <a-spin size="large" :spinning="spinning">
<camera-popup-on-map
:camera-Data-List="cameraDataList"
:reset-flag="resetFlag"
></camera-popup-on-map>
</a-spin>
</div> </div>
</div> </div>
</a-modal> </a-modal>
</div> </div>
</div> </div>
@ -682,6 +698,8 @@
import { Form } from 'ant-design-vue' import { Form } from 'ant-design-vue'
import moment from 'moment' import moment from 'moment'
import { useStore } from 'vuex' import { useStore } from 'vuex'
import debounce from 'lodash/debounce'
import { stubFalse } from 'lodash'
const store = useStore() const store = useStore()
const username = store.getters['user/username'] const username = store.getters['user/username']
const props = defineProps({ const props = defineProps({
@ -689,9 +707,11 @@
searchValue: { type: String, default: '' }, searchValue: { type: String, default: '' },
searchType: { type: String, default: '' }, searchType: { type: String, default: '' },
}) })
const spinningHome = ref(false)
const current = ref(1) const current = ref(1)
const videoTotal = ref(0) const videoTotal = ref(0)
const router = useRouter() const router = useRouter()
const spinning = ref(true)
const whoShow1 = ref(whoShow) const whoShow1 = ref(whoShow)
const isXiHaiAn = whoShow1.value.itShowXiHaiAn const isXiHaiAn = whoShow1.value.itShowXiHaiAn
const options = reactive({ const options = reactive({
@ -949,6 +969,10 @@
mapSearchParam.value.parentId = parentId mapSearchParam.value.parentId = parentId
getCamera() getCamera()
}) })
mybus.off('closeLoading')
mybus.on('closeLoading', (val) => {
spinning.value = val
})
mybus.off('changeRoomInput') mybus.off('changeRoomInput')
mybus.on('changeRoomInput', (val) => { mybus.on('changeRoomInput', (val) => {
console.log('更改=======》') console.log('更改=======》')
@ -1455,6 +1479,7 @@
tabList.value[1].title = '视频标签' tabList.value[1].title = '视频标签'
} }
selectType.value = '视频资源' selectType.value = '视频资源'
mybus.emit('changeShowFlag', true)
console.log('444------------>', 444) console.log('444------------>', 444)
} else if (name == '政务云资源') { } else if (name == '政务云资源') {
room.value = true room.value = true
@ -1511,6 +1536,7 @@
dataSource.value = [] dataSource.value = []
dataSource2.value = [] dataSource2.value = []
room.value = true room.value = true
mybus.emit('changeShowFlag', true)
getCameraAllLabel().then((res) => { getCameraAllLabel().then((res) => {
res.data.data.forEach((val) => { res.data.data.forEach((val) => {
if (tabList.value[1]) { if (tabList.value[1]) {
@ -1604,9 +1630,11 @@
emits('add', 3) emits('add', 3)
} else if (name == '无人机') { } else if (name == '无人机') {
pagination.value.current = 1 pagination.value.current = 1
mybus.emit('changeShowFlag', false)
getSoldierData(indexFather, name) getSoldierData(indexFather, name)
} else if (name == '单兵设备') { } else if (name == '单兵设备') {
pagination.value.current = 1 pagination.value.current = 1
mybus.emit('changeShowFlag', false)
getSoldierData(indexFather, name) getSoldierData(indexFather, name)
} else if (name == '城市云脑会客厅') { } else if (name == '城市云脑会客厅') {
showMap.value = false showMap.value = false
@ -1953,7 +1981,8 @@
const wrjFlag = ref(false) const wrjFlag = ref(false)
// 西-loading // 西-loading
const loadingCamera = ref(false) const loadingCamera = ref(false)
const getCamera = (flag, str) => { const getCamera = debounce(
function (flag, str) {
loadingCamera.value = true loadingCamera.value = true
if (flag) { if (flag) {
mapSearchParam.value.cameraName = str mapSearchParam.value.cameraName = str
@ -1984,8 +2013,8 @@
let params = { let params = {
regionId: regionId:
mapSearchParam.value.parentId || '70be8c5b664f4bcf869d82f2e8335051', mapSearchParam.value.parentId || '70be8c5b664f4bcf869d82f2e8335051',
pageNum: mapSearchParam.value.pageNum, // pageNum: mapSearchParam.value.pageNum,
pageSize: mapSearchParam.value.pageSize, // pageSize: mapSearchParam.value.pageSize,
longitude: mapSearchParam.value.gpsX || '', longitude: mapSearchParam.value.gpsX || '',
latitude: mapSearchParam.value.gpsY || '', latitude: mapSearchParam.value.gpsY || '',
radius: mapSearchParam.value.radius || '', radius: mapSearchParam.value.radius || '',
@ -2016,9 +2045,12 @@
} }
} }
} }
console.log('位置1')
spinningHome.value = true
getCameraByCondition(params) getCameraByCondition(params)
.then((res) => { .then((res) => {
console.log('res--查询摄像头---------->', res) console.log('res--查询摄像头---------->', res)
spinningHome.value = false
loadingCamera.value = false loadingCamera.value = false
dataSource.value = res.data.data dataSource.value = res.data.data
pagination.value.total = res.data.count pagination.value.total = res.data.count
@ -2028,7 +2060,10 @@
message.error(err) message.error(err)
}) })
} }
} },
1000,
{ leading: true, trailing: false }
)
defineExpose({ defineExpose({
getCamera, getCamera,
reSetSearch, reSetSearch,
@ -2267,7 +2302,7 @@
} }
// //
const operationPopupFlag = ref(false)// const operationPopupFlag = ref(false) //
// //
const resetFlag = ref(false) const resetFlag = ref(false)

View File

@ -24,15 +24,19 @@
</div> </div>
</a-carousel> </a-carousel>
<div class="operation-content" style="position:ab"> <div class="operation-content" style="position:ab">
<div class="video-content">
<h5-player :video-url="videoUrl" :stop-flag="selectedFlag"></h5-player>
</div>
<div class="text-label"> <div class="text-label">
<span>{{defaultIndex+1}}</span>/<span>{{cameraDataList.length}}</span> <span>{{defaultIndex+1}}</span>/<span>{{cameraDataList.length}}</span>
</div> </div>
<div class="video-content">
<h5-player :video-url="videoUrl" :stop-flag="selectedFlag"></h5-player>
</div>
<div class="text-label des-label">
<span>监控名称: {{cameraDataList[defaultIndex].channelName}}</span>
<span>监控编码: {{cameraDataList[defaultIndex].channelId}}</span>
</div>
<div class="footer-button" v-if="showFlag"> <div class="footer-button" v-if="showFlag">
<a-button type="primary" @click="applyNow(cameraDataList[defaultIndex])">立即申请</a-button> <a-button type="primary" @click="applyNow(cameraDataList[defaultIndex])">立即申请</a-button>
<a-button type="primary" style="margin-left:20px" @click="addIntoCart(cameraDataList[defaultIndex])">加入申购车</a-button> <a-button type="primary" style="margin-left:20px" @click="addIntoCart(cameraDataList[defaultIndex])">加入申请列表</a-button>
</div> </div>
</div> </div>
</div> </div>
@ -133,6 +137,10 @@
getApplyCameraListXha().then(res => { getApplyCameraListXha().then(res => {
let flag = true let flag = true
if (res.data.code == 0) { if (res.data.code == 0) {
if(res.data.data.length >=10 ){
message.warning('最多只能申请10个感知资源')
return
}else{
res.data.data.map((val) => { res.data.data.map((val) => {
val.cameraInfo = JSON.parse(val.cameraInfo) val.cameraInfo = JSON.parse(val.cameraInfo)
console.log('applyNowapplyNow',val.cameraInfo); console.log('applyNowapplyNow',val.cameraInfo);
@ -140,10 +148,15 @@
flag = false flag = false
} }
}) })
}
if(flag){ if(flag){
willApplyCameraSelect().then(res => { willApplyCameraSelect().then(res1 => {
if (res.data.code == 0) { if (res1.data.code == 0) {
res.data.data.map(val => { if(res.data.data.length+res1.data.data.length>=10){
message.warning('最多只能申请10个感知资源')
return
}
res1.data.data.map(val => {
if(item.channelId == val.channelId){ if(item.channelId == val.channelId){
item.id = val.id item.id = val.id
} }
@ -180,7 +193,7 @@
} }
}) })
}else{ }else{
message.warning('该摄像头已申请!') message.warning('该感知资源已申请!')
} }
} }
}) })
@ -306,9 +319,16 @@
.text-label{ .text-label{
width:800px; width:800px;
height:30px; height:30px;
margin-top:10px; margin-top:-20px;
text-align:center; text-align:center;
font-size: 18px; font-size: 18px;
// color: #1eacd6;
}
.des-label {
color: #000;
margin-top:10px;
display: flex;
justify-content: space-around;
} }
.video-content{ .video-content{
width: 750px; width: 750px;
@ -317,7 +337,9 @@
padding: 5px; padding: 5px;
} }
.footer-button{ .footer-button{
width: 750px; display: flex;
justify-content: center;
// width: 750px;
//height:50px; //height:50px;
text-align: center; text-align: center;
padding-top:5px; padding-top:5px;

View File

@ -1,10 +1,19 @@
<template> <template>
<div class="ucs-leaflet-map"> <div class="ucs-leaflet-map">
<div id="contain">
<div class="map-box"> <div id="contain" >
<div class="map-box" >
<div :id="mapId" class="normal-map-content"> <div :id="mapId" class="normal-map-content">
<tiled-map :hi-map="hiMap" :map-id="mapId" />
<tiled-map v-loading="spinning" element-loading-text="Loading..."
element-loading-svg-view-box="-10, -10, 50, 50"
element-loading-background="rgba(122, 122, 122, 0.8)"
:hi-map="hiMap" :map-id="mapId" />
</div> </div>
</div> </div>
<div class="searchPoint"> <div class="searchPoint">
@ -32,8 +41,8 @@
</el-autocomplete> --> </el-autocomplete> -->
<!-- 第二版 --> <!-- 第二版 -->
<el-select class="input-with-select" v-model="addressType" style="width: 115px" @change="address=''"> <el-select class="input-with-select" v-model="addressType" style="width: 115px" @change="address=''">
<el-option label="兴趣点" value="1" /> <el-option label="地点名称" value="1" />
<el-option label="点位" value="2" /> <el-option label="监控名称" value="2" />
</el-select> </el-select>
<el-autocomplete <el-autocomplete
v-if="addressType==1" v-if="addressType==1"
@ -41,6 +50,7 @@
:fetch-suggestions="querySearch" :fetch-suggestions="querySearch"
clearable clearable
class="input-with-select" class="input-with-select"
@change = "changeComplete"
placeholder="请输入关键字" placeholder="请输入关键字"
@select=" @select="
(addressItem) => { (addressItem) => {
@ -104,7 +114,7 @@
</template> </template>
<script> <script>
import { ElMessage } from 'element-plus' import { ElMessage, ElLoading } from 'element-plus'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import { HieimpMap } from '@/supermap/map-init' import { HieimpMap } from '@/supermap/map-init'
import TiledMap from './components/tiledMap' import TiledMap from './components/tiledMap'
@ -121,6 +131,7 @@ import { ElMessage } from 'element-plus'
selectByChannelName, selectByChannelName,
} from '@/api/videoSurveillance' } from '@/api/videoSurveillance'
import { getCameraByCondition,getListForPOI,CameraConditionPlaceType } from '@/api/file' import { getCameraByCondition,getListForPOI,CameraConditionPlaceType } from '@/api/file'
import debounce from 'lodash/debounce'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import * as turf from '@turf/turf'; import * as turf from '@turf/turf';
@ -133,6 +144,7 @@ import { ElMessage } from 'element-plus'
checkboxGroup: [], checkboxGroup: [],
tabList: [], tabList: [],
state: '', state: '',
spinning: false,
timeout: null, timeout: null,
camreaTree: [], camreaTree: [],
camreaTreeIsShow: true, camreaTreeIsShow: true,
@ -192,9 +204,14 @@ import { ElMessage } from 'element-plus'
// this.getMapPoint() // this.getMapPoint()
// parentId // parentId
mybus.off('getCameraByParentId') mybus.off('getCameraByParentId')
mybus.on('getCameraByParentId', (parentId) => { mybus.on('getCameraByParentId', (val) => {
debugger debugger
this.mapSearchParam.parentId = parentId console.log('倒腾位置1')
//
if (val.reset) {
this.hiMapFun.mapFlyTo({lat:'36.017043',lng: '119.922772'}, 9)
}
this.mapSearchParam.parentId = val.id
this.mapSearchParam.type = "1" this.mapSearchParam.type = "1"
this.mapSearchParam.pageSize = 10000 this.mapSearchParam.pageSize = 10000
this.getCameraByParentId('','department') this.getCameraByParentId('','department')
@ -233,12 +250,16 @@ import { ElMessage } from 'element-plus'
}) })
}, },
methods: { methods: {
changeComplete(val) {
if (val === '') {
// console.log('')
this.hiMapFun.removeLayerByLayerName('potcon');
}
},
// //
queryCameraConditionPlace(data) { queryCameraConditionPlace(data) {
let params = { let params = {
placeTypeCode: data, placeTypeCode: data,
pageNum: "1",
pageSize: 40000,
} }
CameraConditionPlaceType(params).then((res) => { CameraConditionPlaceType(params).then((res) => {
this.addResourceTomap('videoMap', res.data.data) this.addResourceTomap('videoMap', res.data.data)
@ -246,7 +267,7 @@ import { ElMessage } from 'element-plus'
}, },
// //
querySearch (queryString, cb) { querySearch (queryString, cb) {
console.log('querySearch',queryString, cb,this.restaurants) console.log('querySearch',queryString)
if(queryString){ if(queryString){
getListForPOI({keywords:queryString}).then(res => { getListForPOI({keywords:queryString}).then(res => {
if(res.data.data.rows[0]){ if(res.data.data.rows[0]){
@ -260,7 +281,7 @@ import { ElMessage } from 'element-plus'
}else{ }else{
ElMessage({ ElMessage({
showClose: true, showClose: true,
message: '未查询到兴趣点!', message: '未查询到相关地点!',
type: 'warning', type: 'warning',
}) })
} }
@ -280,31 +301,6 @@ import { ElMessage } from 'element-plus'
) )
} }
}, },
//
handleEnter(queryString, cb){
console.log('查询',this.address,this.addressType)
if(this.address){
getListForPOI({keywords:this.address}).then(res => {
console.log('POI=========>',res.data.data)
if(res.data.data.rows[0]){
let arr = res.data.data.rows[0].location.split(',')
this.selectedAddress({location:{y:arr[1],x:arr[0]}})
}else{
ElMessage({
showClose: true,
message: '未查询到兴趣点!',
type: 'warning',
})
}
})
}else{
ElMessage({
showClose: true,
message: '请输入兴趣点!',
type: 'warning',
})
}
},
selectedAddress(item, index) { selectedAddress(item, index) {
mybus.emit('clearChoose') mybus.emit('clearChoose')
this.getCameraAllPage() this.getCameraAllPage()
@ -313,10 +309,16 @@ import { ElMessage } from 'element-plus'
const latLng = { const latLng = {
lat: item.location.y, lat: item.location.y,
lng: item.location.x, lng: item.location.x,
lon: item.location.x,
} }
this.hiMapFun.mapFlyTo(latLng) this.hiMapFun.mapFlyTo(latLng)
if(this.addressType=='2'){ if(this.addressType=='2'){
mybus.emit('openOperationPopup', [item]); mybus.emit('openOperationPopup', [item]);
}else{
this.hiMapFun.removeLayerByLayerName('potcon');
// this.hiMapFun.clearAllLayers();
// this.getCameraAllPage()
this.hiMapFun.addPointOnMap({feature:latLng,iconUrl:'poi-red.png',layerName:'potcon'})
} }
}, },
// //
@ -387,32 +389,24 @@ import { ElMessage } from 'element-plus'
this.mapSearchParam.gpsY = e.layer._latlng.lat this.mapSearchParam.gpsY = e.layer._latlng.lat
this.mapSearchParam.radius = radius this.mapSearchParam.radius = radius
this.mapSearchParam.type = 1 this.mapSearchParam.type = 1
const params = {
gpsX: this.mapSearchParam.gpsX,
gpsY: this.mapSearchParam.gpsY,
radius: radius,
type: this.mapSearchParam.type,
}
// mybus.emit('getListByMap', params)
this.getCameraByParentId('map') this.getCameraByParentId('map')
} }
} }
}) })
}, },
getCameraByParentId(type,dataName) { getCameraByParentId : debounce(function(type,dataName) {
if (!this.whoShow1.itShowXiHaiAn) { if (!this.whoShow1.itShowXiHaiAn) {
getCameraByParentId(this.mapSearchParam).then((res) => { getCameraByParentId(this.mapSearchParam).then((res) => {
console.log('根据parent查询摄像头', res.data.data) console.log('根据parent查询摄像头', res.data.data)
this.addResourceTomap('videoMap', res.data.data) this.addResourceTomap('videoMap', res.data.data)
}) })
} else { } else {
console.log('根据parent查询摄像头111111',this.mapSearchParam) // this.hiMapFun.mapFlyTo({lat:'36.017043',lng: '119.922772'}, 9)
let params = { let params = {
regionId: regionId:
this.mapSearchParam.parentId || this.mapSearchParam.parentId ||
'70be8c5b664f4bcf869d82f2e8335051', '70be8c5b664f4bcf869d82f2e8335051',
pageNum: this.mapSearchParam.pageNum,
pageSize: this.mapSearchParam.type!=0?this.mapSearchParam.pageSize:10,
name: this.mapSearchParam.cameraName || '', name: this.mapSearchParam.cameraName || '',
longitude: this.mapSearchParam.gpsX || '', longitude: this.mapSearchParam.gpsX || '',
latitude: this.mapSearchParam.gpsY || '', latitude: this.mapSearchParam.gpsY || '',
@ -438,8 +432,11 @@ import { ElMessage } from 'element-plus'
if(dataName){ if(dataName){
params.type='0'; params.type='0';
} }
console.log('位置2')
this.spinning = true;
getCameraByCondition(params).then((res) => { getCameraByCondition(params).then((res) => {
//console.log('parent44444', res.data.data) //console.log('parent44444', res.data.data)
this.spinning = false;
if(type=='map'){ if(type=='map'){
let params = this.mapSearchParam; let params = this.mapSearchParam;
params.dataSource = res.data.data||0; params.dataSource = res.data.data||0;
@ -447,15 +444,15 @@ import { ElMessage } from 'element-plus'
mybus.emit('getListByMap', params); mybus.emit('getListByMap', params);
} }
this.pointAllData = res.data.data; this.pointAllData = res.data.data;
if(this.mapSearchParam.type!=0) // if(this.mapSearchParam.type!=0)
this.addResourceTomap('videoMap', res.data.data) this.addResourceTomap('videoMap', res.data.data)
else // else
this.addResourceTomap('videoMap', []) //} // this.addResourceTomap('videoMap', []) //}
}) })
} }
}, }, 1000, { 'leading': true, 'trailing': false }),
// //
initAddressMatchService() { initAddressMatchService() {
this.L = window.L || {} this.L = window.L || {}
@ -527,9 +524,10 @@ import { ElMessage } from 'element-plus'
async searchAddressByKeyWord(queryString, cb, indexX) { async searchAddressByKeyWord(queryString, cb, indexX) {
console.log('querySearch',queryString, cb,this.restaurants) console.log('querySearch',queryString, cb,this.restaurants)
if(queryString){ if(queryString){
console.log('位置3')
getCameraByCondition({ getCameraByCondition({
pageNum: 1, // pageNum: 1,
pageSize: 40000, // pageSize: 40000,
regionId: "70be8c5b664f4bcf869d82f2e8335051", regionId: "70be8c5b664f4bcf869d82f2e8335051",
type: "0", type: "0",
name:queryString, name:queryString,
@ -553,12 +551,9 @@ import { ElMessage } from 'element-plus'
cb([]) cb([])
} }
}, },
getCameraAllPage(page) { getCameraAllPage: debounce(function(page) {
let params = { let params = {
regionId: "70be8c5b664f4bcf869d82f2e8335051", regionId: "70be8c5b664f4bcf869d82f2e8335051",
pageNum: "1",
pageSize: 40000,
type: 0,
borderPolygonList: [] borderPolygonList: []
} }
getCameraByCondition(params).then((res) => { getCameraByCondition(params).then((res) => {
@ -568,7 +563,7 @@ import { ElMessage } from 'element-plus'
// let t2 = new Date().getTime(); // let t2 = new Date().getTime();
// console.log("#############" + (t2 - t1)); // console.log("#############" + (t2 - t1));
}) })
}, },1000, { 'leading': true, 'trailing': false }),
getCameraAllLabel() {}, getCameraAllLabel() {},
tabChange(item) { tabChange(item) {
if (this.checkboxGroup.indexOf(item.labelName) !== -1) { if (this.checkboxGroup.indexOf(item.labelName) !== -1) {
@ -800,7 +795,7 @@ import { ElMessage } from 'element-plus'
.leaflet-control-attribution { .leaflet-control-attribution {
display: none; display: none;
} }
svg,.icon-poylon { .icon, .icon-poylon {
position: absolute; position: absolute;
bottom: 0.1rem; bottom: 0.1rem;
right: 0.1rem; right: 0.1rem;

View File

@ -257,7 +257,7 @@
path: '/DetailsPageconetent', path: '/DetailsPageconetent',
query: { query: {
// select: '', // select: '',
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
}, },
}) })
window.location.href = newpage.href window.location.href = newpage.href

View File

@ -125,7 +125,7 @@
if (abilityToTypeFunctionData.value == '组件服务') { if (abilityToTypeFunctionData.value == '组件服务') {
if (!componentTypeValue.value || componentTypeValue.value == '') { if (!componentTypeValue.value || componentTypeValue.value == '') {
message.error('请选择组件类型!') message.error('请选择组件类型!')
componentTypeValueOld.value='' componentTypeValueOld.value = ''
return return
} else if ( } else if (
componentTypeValue.value === '智能算法' || componentTypeValue.value === '智能算法' ||

View File

@ -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.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-26 18:15:01 * @LastEditTime: 2022-11-26 14:47:12
* @Description:我的申请 能力申请 查看详情 * @Description:我的申请 能力申请 查看详情
--> -->
<template> <template>
@ -172,7 +172,6 @@
> >
附件下载 附件下载
</a-button> </a-button>
</div> </div>
</div> </div>
</div> </div>
@ -225,11 +224,17 @@
style="cursor: pointer" style="cursor: pointer"
@click=" @click="
openView( openView(
'http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=' + val.channelCode+'&protocol=wss&transmode=1&streamType=1' 'http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=' +
val.channelCode +
'&protocol=wss&transmode=1&streamType=1'
) )
" "
> >
{{ 'http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=' + val.channelCode+'&protocol=wss&transmode=1&streamType=1' }} {{
'http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=' +
val.channelCode +
'&protocol=wss&transmode=1&streamType=1'
}}
</span> </span>
</div> </div>
</div> </div>
@ -245,7 +250,7 @@
border-radius: 5px; border-radius: 5px;
font-size: 14px; font-size: 14px;
color: #fff; color: #fff;
cursor:pointer; cursor: pointer;
" "
href="/static/download/InstallRootCert.exe" href="/static/download/InstallRootCert.exe"
> >
@ -262,8 +267,8 @@
border-radius: 5px; border-radius: 5px;
font-size: 14px; font-size: 14px;
color: #fff; color: #fff;
margin-left:40px; margin-left: 40px;
cursor:pointer; cursor: pointer;
" "
@click="downLoadClient()" @click="downLoadClient()"
> >
@ -280,7 +285,7 @@
wrapClassName="single-preview-modal" wrapClassName="single-preview-modal"
v-model:visible="visible" v-model:visible="visible"
title="视频预览" title="视频预览"
:width="1000" :width="850"
destroyOnClose destroyOnClose
> >
<template #footer></template> <template #footer></template>
@ -300,7 +305,11 @@
{{ userInfo.realNameShow }} {{ userInfo.realNameShow }}
</div> </div>
<!-- <vue3VideoPlay v-bind="options" /> --> <!-- <vue3VideoPlay v-bind="options" /> -->
<h5-player :video-url="videoUrl"></h5-player> <h5-player
unStopable="true"
:video-id="videoId"
:video-url="videoUrl"
></h5-player>
</div> </div>
</div> </div>
</a-modal> </a-modal>
@ -315,7 +324,7 @@
import { getStreamByChannelCode } from '@/api/videoSurveillance' import { getStreamByChannelCode } from '@/api/videoSurveillance'
import { getUser } from '@/api/home' import { getUser } from '@/api/home'
import H5Player from '@/views/home/components/H5Player.vue' import H5Player from '@/views/home/components/H5Player.vue'
import {getCameraLiveStream} from '@/api/file' import { getCameraLiveStream } from '@/api/file'
const router = useRouter() const router = useRouter()
const backUrl = ref(window.SITE_CONFIG.apiURL + '/') const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
const props = defineProps({ const props = defineProps({
@ -323,6 +332,7 @@
}) })
const whoShow1 = ref(whoShow) const whoShow1 = ref(whoShow)
let visible = ref(false) let visible = ref(false)
const videoId = ref('111111111111')
const options = reactive({ const options = reactive({
width: '912px', // width: '912px', //
height: '513px', // height: '513px', //
@ -359,7 +369,7 @@
dept.deptName = infrastructure.deptName dept.deptName = infrastructure.deptName
} }
const showThis = () => { const showThis = () => {
console.log('props.refObj.enclosure',props.refObj); console.log('props.refObj.enclosure', props.refObj)
window.open( window.open(
window.SITE_CONFIG.previewUrl + window.SITE_CONFIG.previewUrl +
'hisense_office/onlinePreview?url=' + 'hisense_office/onlinePreview?url=' +
@ -368,8 +378,9 @@
} }
// //
const downLoadClient = () => { const downLoadClient = () => {
let url = "https://open.hikvision.com/download/5c67f1e2f05948198c909700?type=10"; let url =
window.open( url, '_blank') 'https://open.hikvision.com/download/5c67f1e2f05948198c909700?type=10'
window.open(url, '_blank')
} }
const showArr = ref([]) const showArr = ref([])
console.log(props.refObj, '=====================================') console.log(props.refObj, '=====================================')
@ -517,13 +528,13 @@
const videoUrl = ref('') const videoUrl = ref('')
// //
const getVideoUrl = (data) =>{ const getVideoUrl = (data) => {
debugger debugger
let param = data; let param = data
getCameraLiveStream(param).then((res) => { getCameraLiveStream(param).then((res) => {
//console.log('555555rrrrr',res) //console.log('555555rrrrr',res)
if(res.data.data){ if (res.data.data) {
videoUrl.value = res.data.data.url; videoUrl.value = res.data.data.url
} }
visible.value = true visible.value = true
}) })
@ -578,7 +589,7 @@
}) })
} }
const openView = (url) => { const openView = (url) => {
console.log('valval',url); console.log('valval', url)
//http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=37021100421318000090&protocol=wss&transmode=1&streamType=1 //http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=37021100421318000090&protocol=wss&transmode=1&streamType=1
window.open(url, '_blank') window.open(url, '_blank')
} }
@ -628,7 +639,7 @@
width: 2.5rem; width: 2.5rem;
} }
} }
.downButton{ .downButton {
display: flex; display: flex;
justify-content: normal; justify-content: normal;
} }
@ -658,7 +669,7 @@
.box { .box {
margin-left: 0.1rem; margin-left: 0.1rem;
.ability { .ability {
height: 2.0rem; height: 2rem;
display: flex; display: flex;
border-bottom: 1px #eee solid; border-bottom: 1px #eee solid;
padding: 0.1rem 0; padding: 0.1rem 0;
@ -766,7 +777,7 @@
position: relative; position: relative;
} }
} }
.button-bottom{ .button-bottom {
margin-top: 0; margin-top: 0;
margin-bottom: 10px; margin-bottom: 10px;
} }

View File

@ -484,6 +484,10 @@
yaweiApproveDetails({ applyGuid: item.GUID }) yaweiApproveDetails({ applyGuid: item.GUID })
.then((res) => { .then((res) => {
console.log('详情===========>', res.data.data) console.log('详情===========>', res.data.data)
if (res.data.code !== 0) {
message.error('数据请求失败!')
return
}
res.data.data.map((val) => { res.data.data.map((val) => {
val.clsj = moment(val.clsj).format('YYYY-MM-DD HH:mm:ss') val.clsj = moment(val.clsj).format('YYYY-MM-DD HH:mm:ss')
}) })
@ -495,7 +499,8 @@
refObj.value.jslxr = item.jslxr // X refObj.value.jslxr = item.jslxr // X
refObj.value.jslxrdh = item.jslxrdh // refObj.value.jslxrdh = item.jslxrdh //
refObj.value.miaoshu = item.miaoshu // refObj.value.miaoshu = item.miaoshu //
refObj.value.zt = item.zt // // refObj.value.zt = item.zt //
refObj.value.LEVEL = item.LEVEL // ZBM": BM": SZQ": QZS":
refObj.value.resourceApplication = { refObj.value.resourceApplication = {
dataSource: [ dataSource: [
{ {
@ -716,6 +721,14 @@
} else if (typeName.value == '数据资源申请') { } else if (typeName.value == '数据资源申请') {
yaweiApproveStatus({ page: page.value, size: 4, title: '' }).then( yaweiApproveStatus({ page: page.value, size: 4, title: '' }).then(
(res) => { (res) => {
if (res.data.code !== 0) {
num.value = []
total.value = 0
contentList.data = []
contentList2.data = []
showType.value = ''
return
}
console.log('数据资源申请===============>', res.data.data) console.log('数据资源申请===============>', res.data.data)
contentList.data = res.data.data.data contentList.data = res.data.data.data
num.value = [] num.value = []
@ -726,6 +739,14 @@
} else if (typeName.value == '云资源申请') { } else if (typeName.value == '云资源申请') {
getResourceBusinessList({ userAccount: userName.value }).then((res) => { getResourceBusinessList({ userAccount: userName.value }).then((res) => {
console.log('数据资源申请===============>', res.data.data) console.log('数据资源申请===============>', res.data.data)
if (res.data.code !== 0) {
num.value = []
total.value = 0
contentList.data = []
contentList2.data = []
showType.value = ''
return
}
contentList.data = res.data.data contentList.data = res.data.data
contentList2.data = res.data.data contentList2.data = res.data.data
num.value = [] num.value = []
@ -734,6 +755,14 @@
}) })
} else if (typeName.value == '云视频申请') { } else if (typeName.value == '云视频申请') {
getVideoBusinessList({ userAccount: userName.value }).then((res) => { getVideoBusinessList({ userAccount: userName.value }).then((res) => {
if (res.data.code !== 0) {
num.value = []
total.value = 0
contentList.data = []
contentList2.data = []
showType.value = ''
return
}
console.log('数据资源申请===============>', res.data.data) console.log('数据资源申请===============>', res.data.data)
contentList.data = res.data.data contentList.data = res.data.data
contentList2.data = res.data.data contentList2.data = res.data.data

View File

@ -2,32 +2,58 @@
<div class="on-the-right-side-of-the-list"> <div class="on-the-right-side-of-the-list">
<div class="title">我的发布</div> <div class="title">我的发布</div>
<div class="sousuokuang"> <div class="sousuokuang">
<a-input-search v-model:value="name" placeholder="请输入关键词" enter-button="搜索" size="large" @change="onSearch" <a-input-search
@search="getApplyList(tabname)" /> v-model:value="name"
<a-button type="primary" style="width: 0.9rem; height: 0.36rem; margin-left: 0.1rem" @click="showModal2"> placeholder="请输入关键词"
enter-button="搜索"
size="large"
@change="onSearch"
@search="getApplyList(tabname)"
/>
<a-button
type="primary"
style="width: 0.9rem; height: 0.36rem; margin-left: 0.1rem"
@click="showModal2"
>
能力上架 能力上架
</a-button> </a-button>
<a-button type="primary" style="width: 0.9rem; height: 0.36rem; margin-left: 0.1rem" @click="replacement"> <a-button
type="primary"
style="width: 0.9rem; height: 0.36rem; margin-left: 0.1rem"
@click="replacement"
>
重置 重置
</a-button> </a-button>
</div> </div>
<div class="tab"> <div class="tab">
<span>能力类型</span> <span>能力类型</span>
<div :class="tabIndex == index ? 'tabclass' : ' '" @click="tabqiehuan(item, index)" <div
v-for="(item, index) in tabList" :key="index"> :class="tabIndex == index ? 'tabclass' : ' '"
@click="tabqiehuan(item, index)"
v-for="(item, index) in tabList"
:key="index"
>
{{ item }} {{ item }}
</div> </div>
</div> </div>
<div class="tab" style="margin-top: 0.1rem"> <div class="tab" style="margin-top: 0.1rem">
<span>能力状态</span> <span>能力状态</span>
<div :class="tabIndex2 == index ? 'tabclass' : ' '" @click="tabqiehuan2(item, index)" <div
v-for="(item, index) in tabList2" :key="index"> :class="tabIndex2 == index ? 'tabclass' : ' '"
@click="tabqiehuan2(item, index)"
v-for="(item, index) in tabList2"
:key="index"
>
{{ item }} {{ item }}
</div> </div>
</div> </div>
<div v-if="dataList.data.length > 0"> <div v-if="dataList.data.length > 0">
<div class="content"> <div class="content">
<div class="content-body" v-for="item in dataList.data" :key="item.index"> <div
class="content-body"
v-for="item in dataList.data"
:key="item.index"
>
<div class="content-body-title" v-if="item.currentTaskList"> <div class="content-body-title" v-if="item.currentTaskList">
<!-- {{ item.currentTaskList[0].taskName }} --> <!-- {{ item.currentTaskList[0].taskName }} -->
</div> </div>
@ -45,27 +71,57 @@
<!-- <div></div> --> <!-- <div></div> -->
</div> </div>
<div class="button"> <div class="button">
<div @click="showModal(item)" v-if="item.delFlag != 2" :class="item.delFlag != 0 ? 'del' : ''"> <div
@click="showModal(item)"
v-if="item.delFlag != 2"
:class="item.delFlag != 0 ? 'del' : ''"
>
能力下架 能力下架
</div> </div>
<div @click="showDetail(item)" v-if="item.delFlag != 2" :class="item.delFlag != 0 ? 'del' : ''"> <div
@click="showDetail(item)"
v-if="item.delFlag != 2"
:class="item.delFlag != 0 ? 'del' : ''"
>
查看详情 查看详情
</div> </div>
<svg t="1652233950228" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" <svg
p-id="5970" data-spm-anchor-id="a313x.7781069.0.i8" width="80" height="80" t="1652233950228"
v-if="item.delFlag == 4 || item.delFlag == 5" style="position: absolute; top: 0.2rem; left: 0.1rem"> class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="5970"
data-spm-anchor-id="a313x.7781069.0.i8"
width="80"
height="80"
v-if="item.delFlag == 4 || item.delFlag == 5"
style="position: absolute; top: 0.2rem; left: 0.1rem"
>
<path <path
d="M955.22053 256C813.82053 11.2 500.72053-72.6 255.92053 68.8S-72.67947 523.2 68.72053 768 523.22053 1096.6 768.02053 955.2c244.7-141.2 328.6-454.1 187.4-698.8 0-0.1-0.1-0.3-0.2-0.4zM762.02053 944.7c-239 138.1-544.8 56.2-682.9-182.8S22.92053 217.1 261.92053 79.1s544.8-56.2 682.9 182.8c137.9 239 56.1 544.6-182.8 682.8z" d="M955.22053 256C813.82053 11.2 500.72053-72.6 255.92053 68.8S-72.67947 523.2 68.72053 768 523.22053 1096.6 768.02053 955.2c244.7-141.2 328.6-454.1 187.4-698.8 0-0.1-0.1-0.3-0.2-0.4zM762.02053 944.7c-239 138.1-544.8 56.2-682.9-182.8S22.92053 217.1 261.92053 79.1s544.8-56.2 682.9 182.8c137.9 239 56.1 544.6-182.8 682.8z"
fill="#515151" opacity=".5" p-id="5971"></path> fill="#515151"
opacity=".5"
p-id="5971"
></path>
<path <path
d="M898.12053 289.2C775.02053 76 502.42053 2.9 289.22053 126 76.02053 249.1 3.02053 521.6 126.02053 734.8 249.12053 948 521.62053 1021.1 734.82053 898 947.92053 774.9 1021.02053 502.4 898.12053 289.2zM731.62053 892.8C521.32053 1014.3 252.42053 942.2 131.02053 731.9 9.52053 521.6 81.62053 252.7 291.92053 131.3 502.12053 9.9 771.02053 81.8 892.42053 292c121.5 210.3 49.5 479.3-160.8 600.8z" d="M898.12053 289.2C775.02053 76 502.42053 2.9 289.22053 126 76.02053 249.1 3.02053 521.6 126.02053 734.8 249.12053 948 521.62053 1021.1 734.82053 898 947.92053 774.9 1021.02053 502.4 898.12053 289.2zM731.62053 892.8C521.32053 1014.3 252.42053 942.2 131.02053 731.9 9.52053 521.6 81.62053 252.7 291.92053 131.3 502.12053 9.9 771.02053 81.8 892.42053 292c121.5 210.3 49.5 479.3-160.8 600.8z"
fill="#515151" opacity=".5" p-id="5972"></path> fill="#515151"
opacity=".5"
p-id="5972"
></path>
<path <path
d="M323.62053 176.8c3.6-2 6 0.8 8.8 2.8 6 4.4 12.4 8.8 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.4 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.6 0.6-2zM200.72053 289.2c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 14.8 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.4-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.4-1.2 0-1.6 0.8-2.4l0.2 0.4z m276.6-159.6c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.8-1.2-0.4-1.6 0.4-2.4l0.2 0.4z m141.9 29.6c3.6-2 6 0.8 8.8 2.8l18.8 12.8c7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4-7.7 0.4-15.2 0.8-22.4 0.8-4.4 6.8-8.4 13.2-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.5-1.2 0.2-1.6 0.6-2zM150.02053 430c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-4 14-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.5 0.6-2z m558.9 414.4c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.1 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-1.1 0.8-1.1 1.6-1.1h0.1z m-158.8 50c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.1-3.7-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2-1 4.2-1.7 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.4-0.8 0.8-0.8 1.7-0.7z m276.5-159.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8s-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.2 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0-0.8 0.8-1.2 1.6-1.2l0.1 0.1z m45.6-137.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.2-0.7 0.6-0.7 1.4-0.7h0.3zM402.72053 868c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-0.8 1-1.1 1.7-1.1z" d="M323.62053 176.8c3.6-2 6 0.8 8.8 2.8 6 4.4 12.4 8.8 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.4 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.6 0.6-2zM200.72053 289.2c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 14.8 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.4-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.4-1.2 0-1.6 0.8-2.4l0.2 0.4z m276.6-159.6c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.8-1.2-0.4-1.6 0.4-2.4l0.2 0.4z m141.9 29.6c3.6-2 6 0.8 8.8 2.8l18.8 12.8c7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4-7.7 0.4-15.2 0.8-22.4 0.8-4.4 6.8-8.4 13.2-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.5-1.2 0.2-1.6 0.6-2zM150.02053 430c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-4 14-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.5 0.6-2z m558.9 414.4c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.1 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-1.1 0.8-1.1 1.6-1.1h0.1z m-158.8 50c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.1-3.7-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2-1 4.2-1.7 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.4-0.8 0.8-0.8 1.7-0.7z m276.5-159.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8s-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.2 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0-0.8 0.8-1.2 1.6-1.2l0.1 0.1z m45.6-137.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.2-0.7 0.6-0.7 1.4-0.7h0.3zM402.72053 868c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-0.8 1-1.1 1.7-1.1z"
fill="#515151" opacity=".5" p-id="5973"></path> fill="#515151"
opacity=".5"
p-id="5973"
></path>
<path <path
d="M386.42053 590.4l-43.8-75.9L207.02053 592.7l10.2 17.7L334.02053 543l23.4 40.4-90.5 52.2-13.5-23.4-18.7 10.8 53.1 92c9.1 15.8 21.2 19.5 36.4 10.7l98.8-57c6.2-3.6 11-9.3 13.4-16.1-1.4-15.9-6.2-31.2-14.2-45l-21.4 4.8c6.7 10.3 11 21.9 12.8 34-1 3.3-3.2 6-6.1 7.8l-88.3 51c-6.2 3.6-11.1 2.1-14.8-4.3l-27.3-47.4 109.3-63.1z m2.9-103.2l10.4 18.1 65.6-37.9 79.9 138.4 18.6-10.8-55.9-96.9c18.8-0.9 43.2-0.6 73 0.7l1.5-23.1c-29.8-0.3-58.4 0.4-86 2.6l-12.5-21.6 74.9-43.2-10.4-18.1-159.1 91.8zM669.52053 329l38.2 66.2 61.4-35.4-38.1-66.1-61.5 35.3z m72.4 24.2l-26.3 15.2-19-33 26.3-15.2 19 33zM599.02053 356.7l7.9 13.7-23.3 13.5 9.8 17 21.8-12.6c7.5 18.7 6.6 39.6-2.5 57.6l20.7 4.4c10.3-23.1 10.3-49.4 0-72.5l18.8-10.9c6 9.2 10.7 19.2 14.2 29.7 0.3 5-2.6 9.7-7.2 11.7-2.9 1.2-6.4 2.8-10.9 4.9l14.1 14.1c3.7-1.3 7.3-2.9 10.7-4.8 8.6-3.9 14.4-12.2 15.2-21.6-5.4-22.1-14.6-43-27.4-61.8l-36.1 20.8-7.9-13.7-17.9 10.5z m29.9 108.1l10 17.4 53.2-30.7c-7.8 23.7-20.6 45.4-37.5 63.6l20.6 11.1c18.6-24.2 30-53.1 33-83.4l29.8 51.5 18.4-10.7-29.8-51.5c27.4 11.5 57.2 16.3 86.9 14.1l3.5-23.5c-24.7 5.1-50.1 5-74.8-0.1l53.5-30.9-10-17.3-69.3 40-7.3-12.6-18.4 10.7L698.02053 425l-69.1 39.8z" d="M386.42053 590.4l-43.8-75.9L207.02053 592.7l10.2 17.7L334.02053 543l23.4 40.4-90.5 52.2-13.5-23.4-18.7 10.8 53.1 92c9.1 15.8 21.2 19.5 36.4 10.7l98.8-57c6.2-3.6 11-9.3 13.4-16.1-1.4-15.9-6.2-31.2-14.2-45l-21.4 4.8c6.7 10.3 11 21.9 12.8 34-1 3.3-3.2 6-6.1 7.8l-88.3 51c-6.2 3.6-11.1 2.1-14.8-4.3l-27.3-47.4 109.3-63.1z m2.9-103.2l10.4 18.1 65.6-37.9 79.9 138.4 18.6-10.8-55.9-96.9c18.8-0.9 43.2-0.6 73 0.7l1.5-23.1c-29.8-0.3-58.4 0.4-86 2.6l-12.5-21.6 74.9-43.2-10.4-18.1-159.1 91.8zM669.52053 329l38.2 66.2 61.4-35.4-38.1-66.1-61.5 35.3z m72.4 24.2l-26.3 15.2-19-33 26.3-15.2 19 33zM599.02053 356.7l7.9 13.7-23.3 13.5 9.8 17 21.8-12.6c7.5 18.7 6.6 39.6-2.5 57.6l20.7 4.4c10.3-23.1 10.3-49.4 0-72.5l18.8-10.9c6 9.2 10.7 19.2 14.2 29.7 0.3 5-2.6 9.7-7.2 11.7-2.9 1.2-6.4 2.8-10.9 4.9l14.1 14.1c3.7-1.3 7.3-2.9 10.7-4.8 8.6-3.9 14.4-12.2 15.2-21.6-5.4-22.1-14.6-43-27.4-61.8l-36.1 20.8-7.9-13.7-17.9 10.5z m29.9 108.1l10 17.4 53.2-30.7c-7.8 23.7-20.6 45.4-37.5 63.6l20.6 11.1c18.6-24.2 30-53.1 33-83.4l29.8 51.5 18.4-10.7-29.8-51.5c27.4 11.5 57.2 16.3 86.9 14.1l3.5-23.5c-24.7 5.1-50.1 5-74.8-0.1l53.5-30.9-10-17.3-69.3 40-7.3-12.6-18.4 10.7L698.02053 425l-69.1 39.8z"
fill="#515151" opacity=".5" p-id="5974"></path> fill="#515151"
opacity=".5"
p-id="5974"
></path>
</svg> </svg>
<!-- <div v-if="item.delFlag == 0" class="button-son">审核通过</div> <!-- <div v-if="item.delFlag == 0" class="button-son">审核通过</div>
<div v-if="item.delFlag != 0">未审核</div> --> <div v-if="item.delFlag != 0">未审核</div> -->
@ -76,112 +132,161 @@
</div> </div>
</div> </div>
<div class="bottom"> <div class="bottom">
<a-pagination size="small" :total="total" show-size-changer show-quick-jumper @change="handleCurrentChange" <a-pagination
@showSizeChange="handlePageSizeChange" /> size="small"
:total="total"
show-size-changer
show-quick-jumper
@change="handleCurrentChange"
@showSizeChange="handlePageSizeChange"
/>
</div> </div>
</div> </div>
<a-empty v-else /> <a-empty v-else />
<a-modal v-model:visible="detailsVisible" :title="tabname" style="width: 9rem" :footer="null" destroyOnClose="true" <a-modal
:maskClosable="false"> v-model:visible="detailsVisible"
<!-- <publish-details :businessKey="businessKey" :processInstanceId="processInstanceId"></publish-details> --> :title="tabname"
style="width: 9rem"
:footer="null"
destroyOnClose="true"
:maskClosable="false"
>
<publish-details
:businessKey="businessKey"
:processInstanceId="processInstanceId"
></publish-details>
</a-modal> </a-modal>
<a-modal v-model:visible="increasedVisible" :title="tabname" style="width: 9rem" :footer="null" <a-modal
destroyOnClose="true" :maskClosable="false"> v-model:visible="increasedVisible"
:title="tabname"
style="width: 9rem"
:footer="null"
destroyOnClose="true"
:maskClosable="false"
>
<the-new-release></the-new-release> <the-new-release></the-new-release>
</a-modal> </a-modal>
<a-modal v-model:visible="visible" width="12.1rem" @ok="del()" @cancel="reason = ''" footer=""> <a-modal
v-model:visible="visible"
width="12.1rem"
@ok="del()"
@cancel="reason = ''"
footer=""
>
<TheShelvesAbility v-if="visible" :delObj="delObj"></TheShelvesAbility> <TheShelvesAbility v-if="visible" :delObj="delObj"></TheShelvesAbility>
<!-- <a-input v-model:value="reason" placeholder="请输入下架原因" /> --> <!-- <a-input v-model:value="reason" placeholder="请输入下架原因" /> -->
</a-modal> </a-modal>
<a-modal v-model:visible="visible2" @ok="handleOk" class="shangjia-class" @cancel="handlecancel">
<a-modal v-model:visible="visible2" class="shangjia-class">
<div class="ant-modal-title" id="vcDialogTitle1"> <div class="ant-modal-title" id="vcDialogTitle1">
<div class="showBg"></div> <!-- <div class="showBg"></div> -->
能力上架申请 能力上架申请
</div> </div>
<div class="ability-to-type"> <div class="ability-to-type">
<div class="title">能力类型选择</div> <div class="title">能力类型选择</div>
<div class="content"> <div class="ability-to-type-content">
<div v-for="item in abilityToType" :key="item" @click="abilityToTypeFunction(item)" :class=" <div
v-for="item in abilityToType"
:key="item"
@click="abilityToTypeFunction(item)"
:class="
abilityToTypeFunctionData == item ? 'ability-to-type-down' : '' abilityToTypeFunctionData == item ? 'ability-to-type-down' : ''
"> "
>
{{ item }} {{ item }}
</div> </div>
</div> </div>
</div> </div>
<div class="component-type" v-if="abilityToTypeFunctionData == '组件服务'">
<div
class="ability-to-type"
v-if="abilityToTypeFunctionData == '组件服务'"
>
<div class="title">组件类型选择</div> <div class="title">组件类型选择</div>
<div class="content"> <div class="ability-to-type-content">
<!-- <a-checkbox-group <div
v-model:value="value1" v-for="item in componentType"
name="checkboxgroup" :key="item"
:options="componentType" @click="componentTypeValueFunction(item)"
/> --> :class="componentTypeValue == item ? 'ability-to-type-down' : ''"
<a-radio-group v-model:value="componentTypeValue"> >
<a-radio @click="componentTypeValueFunction(item)" v-for="item in componentType" :key="item" :value="item">
{{ item }} {{ item }}
</a-radio>
</a-radio-group>
</div> </div>
</div> </div>
</div>
<template v-slot:footer>
<a-button class="shenqing" @click="handleOk">申请</a-button>
<a-button class="quxiao" @click="handlecancel">取消</a-button>
</template>
</a-modal> </a-modal>
</div> </div>
</template> </template>
<script setup> <script setup>
import { onMounted, reactive, ref, onBeforeUnmount } from 'vue' import { onMounted, reactive, ref, onBeforeUnmount } from 'vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
// , reactive // , reactive
import { wodepage, undercarriage } from '@/api/personalCenter' import { wodepage, undercarriage } from '@/api/personalCenter'
import { getUserInfo } from '@/api/user' import { getUserInfo } from '@/api/user'
// TheNewRelease // TheNewRelease
import TheNewRelease from '@/views/personalCenter/components/TheNewRelease' import TheNewRelease from '@/views/personalCenter/components/TheNewRelease'
// import PublishDetails from '@/views/personalCenter/components/PublishDetails' import PublishDetails from '@/views/personalCenter/components/PublishDetails'
import TheShelvesAbility from '@/views/personalCenter/components/TheShelvesAbility' // import TheShelvesAbility from '@/views/personalCenter/components/TheShelvesAbility' //
const router = useRouter() const router = useRouter()
let tabList = ref([ let tabList = ref([
// '', // '',
// ' ', // ' ',
// ' ', // ' ',
'组件服务', '组件服务',
'应用资源', '应用资源',
// '', // '',
]) ])
let tabList2 = ref(['已上架', '已下架']) let tabList2 = ref(['已上架', '已下架'])
// const contentList = reactive({ // const contentList = reactive({
// data: [ // data: [
// { // {
// currentTaskList: [ // currentTaskList: [
// { // {
// taskName: '111', // taskName: '111',
// createTime: '222222222222', // createTime: '222222222222',
// assigneeName: '333333333', // assigneeName: '333333333',
// }, // },
// ], // ],
// name: '111111', // name: '111111',
// }, // },
// ], // ],
// }) // })
// const contentListClone = reactive({ data: [] }) // const contentListClone = reactive({ data: [] })
// let contentListLength = contentList.length // let contentListLength = contentList.length
let name = ref('') let name = ref('')
let tabIndex = ref(0) let tabIndex = ref(0)
let tabIndex2 = ref(-1) let tabIndex2 = ref(-1)
const visible2 = ref(false) const visible2 = ref(false)
const showModal2 = () => { const showModal2 = () => {
visible2.value = true visible2.value = true
} }
let componentTypeValue = ref('') let componentTypeValue = ref('')
let abilityToTypeFunctionData = ref('组件服务') let abilityToTypeFunctionData = ref('组件服务')
function handlecancel() { function handlecancel() {
abilityToTypeFunctionData.value = '组件服务' abilityToTypeFunctionData.value = '组件服务'
componentTypeValue.value = '' componentTypeValue.value = ''
} }
function abilityToTypeFunction(item) { function abilityToTypeFunction(item) {
abilityToTypeFunctionData.value = item abilityToTypeFunctionData.value = item
} }
const handleOk = (e) => { let componentTypeValueOld = ref('')
function componentTypeValueFunction(item) {
componentTypeValue.value = item
if (componentTypeValueOld.value != item) {
componentTypeValue.value = item
componentTypeValueOld.value = item
} else {
componentTypeValue.value = ''
}
}
const handleOk = (e) => {
let snum = ref({}) let snum = ref({})
if (abilityToTypeFunctionData.value == '组件服务') { if (abilityToTypeFunctionData.value == '组件服务') {
if (!componentTypeValue.value || componentTypeValue.value == '') { if (!componentTypeValue.value || componentTypeValue.value == '') {
@ -215,18 +320,18 @@ const handleOk = (e) => {
abilityToTypeFunctionData.value = '组件服务' abilityToTypeFunctionData.value = '组件服务'
componentTypeValue.value = '' componentTypeValue.value = ''
console.log(e) console.log(e)
} }
let abilityToType = ref(['组件服务', '应用资源']) let abilityToType = ref(['组件服务', '应用资源'])
let componentType = ref([ let componentType = ref([
'智能算法', '智能算法',
'图层服务', '图层服务',
'开发组件', '开发组件',
// '', // '',
'业务组件', '业务组件',
// '', // '',
]) ])
let tabname = ref('组件服务') let tabname = ref('组件服务')
function tabqiehuan(item, index) { function tabqiehuan(item, index) {
tabIndex.value = index tabIndex.value = index
switch (item) { switch (item) {
case '组件服务': case '组件服务':
@ -247,8 +352,8 @@ function tabqiehuan(item, index) {
// getApplyList() // getApplyList()
// break // break
} }
} }
function tabqiehuan2(item, index) { function tabqiehuan2(item, index) {
if (index == tabIndex2.value) { if (index == tabIndex2.value) {
tabIndex2.value = -1 tabIndex2.value = -1
delFlag = '' delFlag = ''
@ -265,27 +370,27 @@ function tabqiehuan2(item, index) {
} }
page.value = 1 page.value = 1
getApplyList(tabname.value) getApplyList(tabname.value)
} }
// //
function onSearch(value) { function onSearch(value) {
console.log('搜索框', value) console.log('搜索框', value)
// getApplyList(tabname.value, value) // getApplyList(tabname.value, value)
} }
// //
function replacement() { function replacement() {
name.value = '' name.value = ''
tabIndex.value = 0 tabIndex.value = 0
tabname.value = '组件服务' tabname.value = '组件服务'
getApplyList(tabname.value) getApplyList(tabname.value)
} }
const detailsVisible = ref(false) const detailsVisible = ref(false)
const increasedVisible = ref(false) const increasedVisible = ref(false)
const businessKey = ref('') const businessKey = ref('')
const processInstanceId = ref('') const processInstanceId = ref('')
// const showIncreased = () => { // const showIncreased = () => {
// increasedVisible.value = true // increasedVisible.value = true
// } // }
const showDetail = (item) => { const showDetail = (item) => {
console.log('showDetail', item, item.id) console.log('showDetail', item, item.id)
if (item.delFlag == 0) { if (item.delFlag == 0) {
router.push({ router.push({
@ -300,16 +405,16 @@ const showDetail = (item) => {
// detailsVisible.value = true // detailsVisible.value = true
// businessKey.value = item.businessKey // businessKey.value = item.businessKey
// processInstanceId.value = item.processInstanceId // processInstanceId.value = item.processInstanceId
} }
const total = ref('') const total = ref('')
const page = ref('1') const page = ref('1')
const ended = ref('') const ended = ref('')
let delFlag = '' let delFlag = ''
let dataList = reactive({ data: [] }) let dataList = reactive({ data: [] })
const limt = ref('10') const limt = ref('10')
// //
const getApplyList = (item) => { const getApplyList = (item) => {
console.log(delFlag) console.log(delFlag)
getUserInfo().then((res) => { getUserInfo().then((res) => {
let ids = ref('') let ids = ref('')
@ -332,30 +437,30 @@ const getApplyList = (item) => {
}) })
console.log('用户信息', ids.value) console.log('用户信息', ids.value)
}) })
} }
const handleCurrentChange = (val, size) => { const handleCurrentChange = (val, size) => {
page.value = val page.value = val
limt.value = size limt.value = size
getApplyList(tabname.value) getApplyList(tabname.value)
} }
const newpage = router.resolve({ const newpage = router.resolve({
path: '/nenglishangjia', // path: '/nenglishangjia', //
}) })
// const nenglishangjia = () => { // const nenglishangjia = () => {
// window.open(newpage.href, '_blank') // window.open(newpage.href, '_blank')
// // router.resolve('/nenglishangjia') // // router.resolve('/nenglishangjia')
// } // }
const handlePageSizeChange = (current, size) => { const handlePageSizeChange = (current, size) => {
page.value = current page.value = current
limt.value = size limt.value = size
console.log('val', current, size) console.log('val', current, size)
getApplyList(tabname.value) getApplyList(tabname.value)
} }
// //
const del = () => { const del = () => {
console.log('下架================》', delObj.value) console.log('下架================》', delObj.value)
let fileObj = delObj2.value.fileList && delObj2.value.fileList[0] || {} let fileObj = (delObj2.value.fileList && delObj2.value.fileList[0]) || {}
undercarriage({ undercarriage({
reason: delObj2.value.reason, reason: delObj2.value.reason,
title: delObj2.value.title, title: delObj2.value.title,
@ -376,38 +481,38 @@ const del = () => {
visible.value = false visible.value = false
getApplyList(tabname.value) getApplyList(tabname.value)
}) })
} }
//退 //退
mybus.on('Cancellation', (val) => { mybus.on('Cancellation', (val) => {
visible.value = val visible.value = val
}) })
// //
mybus.on('Determine', (val) => { mybus.on('Determine', (val) => {
console.log('下架==============》', val) console.log('下架==============》', val)
delObj2.value = val delObj2.value = val
del() del()
}) })
onBeforeUnmount(() => { onBeforeUnmount(() => {
mybus.off('Cancellation') mybus.off('Cancellation')
mybus.off('Determine') mybus.off('Determine')
}) })
const reason = ref('') const reason = ref('')
const visible = ref(false) const visible = ref(false)
const delObj = ref({}) const delObj = ref({})
const delObj2 = ref({}) const delObj2 = ref({})
const showModal = (item) => { const showModal = (item) => {
if (item.delFlag == 0) { if (item.delFlag == 0) {
delObj.value = item delObj.value = item
visible.value = true visible.value = true
} }
} }
onMounted(() => { onMounted(() => {
getApplyList(tabname.value) getApplyList(tabname.value)
}) })
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.on-the-right-side-of-the-list { .on-the-right-side-of-the-list {
background: #ffffff; background: #ffffff;
padding: 0.2rem 0rem 0.3rem 0.2rem; padding: 0.2rem 0rem 0.3rem 0.2rem;
position: absolute; position: absolute;
@ -570,11 +675,11 @@ onMounted(() => {
.buttonAgree { .buttonAgree {
background-color: #49c988; background-color: #49c988;
} }
} }
</style> </style>
<style lang="less"> <style lang="less">
.shangjia-class { .shangjia-class {
position: fixed; position: fixed;
left: 50%; left: 50%;
top: 50%; top: 50%;
@ -675,5 +780,5 @@ onMounted(() => {
background-position: center; background-position: center;
margin-right: 0.1rem; margin-right: 0.1rem;
} }
} }
</style> </style>

View File

@ -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: Light * @LastEditors: Light
* @LastEditTime: 2022-11-11 14:38:06 * @LastEditTime: 2022-11-24 13:50:54
* @Description:我的申请 能力申请 查看详情 * @Description:我的申请 能力申请 查看详情
--> -->
<template> <template>
@ -25,9 +25,9 @@
<p> <p>
<span>共享数据必要性法分析{{ props.refObj.miaoshu }}</span> <span>共享数据必要性法分析{{ props.refObj.miaoshu }}</span>
</p> </p>
<p class="item"> <!-- <p class="item">
<span>办结结果{{ props.refObj.zt }}</span> <span>办结结果{{ props.refObj.zt }}</span>
</p> </p> -->
</div> </div>
</div> </div>
</div> </div>

View File

@ -29,8 +29,8 @@ const productionGzipExtensions = [
'ico', 'ico',
] ]
// gzip // gzip
// const isPro = process.env.NODE_ENV === 'production' const isPro = process.env.NODE_ENV === 'production'
const isPro = false // const isPro = false
if (donation) donationConsole() if (donation) donationConsole()
const { version, author } = require('./package.json') const { version, author } = require('./package.json')
const Webpack = require('webpack') const Webpack = require('webpack')

View File

@ -1 +0,0 @@
{}

View File

@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2020 Daniel Eden
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,48 +0,0 @@
# Animate.css
[![GitHub Version](https://img.shields.io/github/release/daneden/animate.css.svg?style=for-the-badge)](https://github.com/daneden/animate.css) [![Github Star](https://img.shields.io/github/stars/daneden/animate.css.svg?style=for-the-badge)](https://github.com/daneden/animate.css) [![Github Fork](https://img.shields.io/github/forks/daneden/animate.css.svg?style=for-the-badge)](https://github.com/daneden/animate.css) [![License](https://img.shields.io/github/license/daneden/animate.css.svg?style=for-the-badge)](https://github.com/daneden/animate.css)
> If you need the old docs - v3.x.x and under - you can find it [here](https://github.com/animate-css/animate.css/tree/a8d92e585b1b302f7749809c3308d5e381f9cb17).
## _Just-add-water CSS animation_
## Installation
Install with npm:
```shell
npm install animate.css --save
```
Install with yarn:
```shell
yarn add animate.css
```
## Getting started
You can find the Animate.css documentation on the [website](https://animate.style/).
## Accessibility
Animate.css supports the [`prefers-reduced-motion` media query](https://webkit.org/blog/7551/responsive-design-for-motion/) so that users with motion sensitivity can opt out of animations. On supported platforms (currently all the majors browsers and OS), users can select "reduce motion" on their operating system preferences and it will turn off CSS transitions for them without any further work required.
## Core team
| ![](https://avatars2.githubusercontent.com/u/439365?s=460&u=512b4cc5324938ae40bbb8f3b7769d335953cd3a&v=4) | ![](https://avatars2.githubusercontent.com/u/5007208?s=460&u=418401ee605824272e5dcb955fd64ea24546a857&v=4) | ![](https://avatars1.githubusercontent.com/u/15052701?s=460&u=9e58364978379536d3f26c4ce5cae1a2a449a0e4&v=4) |
| --- | --- | --- |
| [Daniel Eden](https://github.com/daneden) | [Elton Mesquita](https://github.com/eltonmesquita) | [Waren Gonzaga](https://github.com/WarenGonzaga) |
| Animate.css creator | Maintainer | Core contributor |
## License
Animate.css is licensed under the MIT license. <https://opensource.org/licenses/MIT>
## Code of Conduct
This project and everyone participating in it is governed by the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [callmeelton@gmail.com](mailto:callmeelton@gmail.com).
## Contributing
Pull requests are the way to go here. We only have two rules for submitting a pull request: match the naming convention (camelCase, categorised [fades, bounces, etc]) and let us see a demo of submitted animations in a [pen](https://codepen.io). That **last one is important**.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,78 +0,0 @@
{
"name": "animate.css",
"version": "4.1.1",
"main": "animate.css",
"repository": {
"type": "git",
"url": "https://github.com/animate-css/animate.css.git"
},
"author": {
"name": "Animate.css"
},
"homepage": "https://animate.style/",
"license": "MIT",
"animateConfig": {
"prefix": "animate__"
},
"scripts": {
"start": "npm-run-all raw prod compat",
"compat": "npx postcss source/animate.css -o animate.compat.css --no-map --env compat",
"dev": "npx postcss source/animate.css -o animate.css --no-map --env development -w",
"raw": "npx postcss source/animate.css -o animate.css --no-map --env development",
"prod": "npx postcss source/animate.css -o animate.min.css --no-map --env production",
"format": "prettier --write \"**/*.{js,json,md,css}\"",
"precommit": "lint-staged",
"docs:library": "npx postcss source/animate.css -o ./docs/animate.min.css --no-map --env production",
"docs:pages": "node ./docsSource/index.js",
"docs": "npm-run-all docs:library docs:pages",
"version": "npm-run-all start docs && git add -A docs animate.css animate.min.css animate.compat.css",
"postversion": "git push && git push --tags"
},
"browserslist": [
"> 3%",
"last 2 versions"
],
"style": "./animate.css",
"jspm": {
"main": "animate.css!",
"format": "global",
"directories": {
"lib": "./"
}
},
"devDependencies": {
"autoprefixer": "^9.7.6",
"cssnano": "^4.1.10",
"eslint": "^7.8.1",
"husky": "^4.2.5",
"lint-staged": "^10.3.0",
"markdown-it": "^11.0.0",
"npm-run-all": "^4.1.5",
"postcss": "^7.0.27",
"postcss-cli": "^7.1.2",
"postcss-header": "^2.0.0",
"postcss-import": "^12.0.1",
"postcss-prefixer": "^2.1.2",
"postcss-preset-env": "^6.7.0",
"prettier": "^2.1.1"
},
"lint-staged": {
"*.{js,json,md,css}": [
"prettier --write"
]
},
"husky": {
"hooks": {
"pre-commit": "npm-run-all start precommit"
}
},
"files": [
"animate.compat.css",
"animate.min.css",
"animate.css",
"source/**/*.css"
],
"__npminstall_done": true,
"_from": "animate.css@4.1.1",
"_resolved": "https://registry.npmmirror.com/animate.css/-/animate.css-4.1.1.tgz"
}

View File

@ -1,68 +0,0 @@
.animated {
animation-duration: var(--animate-duration);
animation-fill-mode: both;
}
.animated.infinite {
animation-iteration-count: infinite;
}
.animated.repeat-1 {
animation-iteration-count: var(--animate-repeat);
}
.animated.repeat-2 {
animation-iteration-count: calc(var(--animate-repeat) * 2);
}
.animated.repeat-3 {
animation-iteration-count: calc(var(--animate-repeat) * 3);
}
.animated.delay-1s {
animation-delay: var(--animate-delay);
}
.animated.delay-2s {
animation-delay: calc(var(--animate-delay) * 2);
}
.animated.delay-3s {
animation-delay: calc(var(--animate-delay) * 3);
}
.animated.delay-4s {
animation-delay: calc(var(--animate-delay) * 4);
}
.animated.delay-5s {
animation-delay: calc(var(--animate-delay) * 5);
}
.animated.faster {
animation-duration: calc(var(--animate-duration) / 2);
}
.animated.fast {
animation-duration: calc(var(--animate-duration) * 0.8);
}
.animated.slow {
animation-duration: calc(var(--animate-duration) * 2);
}
.animated.slower {
animation-duration: calc(var(--animate-duration) * 3);
}
@media print, (prefers-reduced-motion: reduce) {
.animated {
animation-duration: 1ms !important;
transition-duration: 1ms !important;
animation-iteration-count: 1 !important;
}
.animated[class*='Out'] {
opacity: 0;
}
}

View File

@ -1,5 +0,0 @@
:root {
--animate-duration: 1s;
--animate-delay: 1s;
--animate-repeat: 1;
}

View File

@ -1,131 +0,0 @@
@import '_vars.css';
@import '_base.css';
/* Attention seekers */
@import 'attention_seekers/bounce.css';
@import 'attention_seekers/flash.css';
@import 'attention_seekers/pulse.css';
@import 'attention_seekers/rubberBand.css';
@import 'attention_seekers/shakeX.css';
@import 'attention_seekers/shakeY.css';
@import 'attention_seekers/headShake.css';
@import 'attention_seekers/swing.css';
@import 'attention_seekers/tada.css';
@import 'attention_seekers/wobble.css';
@import 'attention_seekers/jello.css';
@import 'attention_seekers/heartBeat.css';
/* Back entrances */
@import 'back_entrances/backInDown.css';
@import 'back_entrances/backInLeft.css';
@import 'back_entrances/backInRight.css';
@import 'back_entrances/backInUp.css';
/* Back exits */
@import 'back_exits/backOutDown.css';
@import 'back_exits/backOutLeft.css';
@import 'back_exits/backOutRight.css';
@import 'back_exits/backOutUp.css';
/* Bouncing entrances */
@import 'bouncing_entrances/bounceIn.css';
@import 'bouncing_entrances/bounceInDown.css';
@import 'bouncing_entrances/bounceInLeft.css';
@import 'bouncing_entrances/bounceInRight.css';
@import 'bouncing_entrances/bounceInUp.css';
/* Bouncing exits */
@import 'bouncing_exits/bounceOut.css';
@import 'bouncing_exits/bounceOutDown.css';
@import 'bouncing_exits/bounceOutLeft.css';
@import 'bouncing_exits/bounceOutRight.css';
@import 'bouncing_exits/bounceOutUp.css';
/* Fading entrances */
@import 'fading_entrances/fadeIn.css';
@import 'fading_entrances/fadeInDown.css';
@import 'fading_entrances/fadeInDownBig.css';
@import 'fading_entrances/fadeInLeft.css';
@import 'fading_entrances/fadeInLeftBig.css';
@import 'fading_entrances/fadeInRight.css';
@import 'fading_entrances/fadeInRightBig.css';
@import 'fading_entrances/fadeInUp.css';
@import 'fading_entrances/fadeInUpBig.css';
@import 'fading_entrances/fadeInTopLeft.css';
@import 'fading_entrances/fadeInTopRight.css';
@import 'fading_entrances/fadeInBottomLeft.css';
@import 'fading_entrances/fadeInBottomRight.css';
/* Fading exits */
@import 'fading_exits/fadeOut.css';
@import 'fading_exits/fadeOutDown.css';
@import 'fading_exits/fadeOutDownBig.css';
@import 'fading_exits/fadeOutLeft.css';
@import 'fading_exits/fadeOutLeftBig.css';
@import 'fading_exits/fadeOutRight.css';
@import 'fading_exits/fadeOutRightBig.css';
@import 'fading_exits/fadeOutUp.css';
@import 'fading_exits/fadeOutUpBig.css';
@import 'fading_exits/fadeOutTopLeft.css';
@import 'fading_exits/fadeOutTopRight.css';
@import 'fading_exits/fadeOutBottomRight.css';
@import 'fading_exits/fadeOutBottomLeft.css';
/* Flippers */
@import 'flippers/flip.css';
@import 'flippers/flipInX.css';
@import 'flippers/flipInY.css';
@import 'flippers/flipOutX.css';
@import 'flippers/flipOutY.css';
/* Lightspeed */
@import 'lightspeed/lightSpeedInRight.css';
@import 'lightspeed/lightSpeedInLeft.css';
@import 'lightspeed/lightSpeedOutRight.css';
@import 'lightspeed/lightSpeedOutLeft.css';
/* Rotating entrances */
@import 'rotating_entrances/rotateIn.css';
@import 'rotating_entrances/rotateInDownLeft.css';
@import 'rotating_entrances/rotateInDownRight.css';
@import 'rotating_entrances/rotateInUpLeft.css';
@import 'rotating_entrances/rotateInUpRight.css';
/* Rotating exits */
@import 'rotating_exits/rotateOut.css';
@import 'rotating_exits/rotateOutDownLeft.css';
@import 'rotating_exits/rotateOutDownRight.css';
@import 'rotating_exits/rotateOutUpLeft.css';
@import 'rotating_exits/rotateOutUpRight.css';
/* Specials */
@import 'specials/hinge.css';
@import 'specials/jackInTheBox.css';
@import 'specials/rollIn.css';
@import 'specials/rollOut.css';
/* Zooming entrances */
@import 'zooming_entrances/zoomIn.css';
@import 'zooming_entrances/zoomInDown.css';
@import 'zooming_entrances/zoomInLeft.css';
@import 'zooming_entrances/zoomInRight.css';
@import 'zooming_entrances/zoomInUp.css';
/* Zooming exits */
@import 'zooming_exits/zoomOut.css';
@import 'zooming_exits/zoomOutDown.css';
@import 'zooming_exits/zoomOutLeft.css';
@import 'zooming_exits/zoomOutRight.css';
@import 'zooming_exits/zoomOutUp.css';
/* Sliding entrances */
@import 'sliding_entrances/slideInDown.css';
@import 'sliding_entrances/slideInLeft.css';
@import 'sliding_entrances/slideInRight.css';
@import 'sliding_entrances/slideInUp.css';
/* Sliding exits */
@import 'sliding_exits/slideOutDown.css';
@import 'sliding_exits/slideOutLeft.css';
@import 'sliding_exits/slideOutRight.css';
@import 'sliding_exits/slideOutUp.css';

View File

@ -1,34 +0,0 @@
@keyframes bounce {
from,
20%,
53%,
to {
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
transform: translate3d(0, 0, 0);
}
40%,
43% {
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
transform: translate3d(0, -30px, 0) scaleY(1.1);
}
70% {
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
transform: translate3d(0, -15px, 0) scaleY(1.05);
}
80% {
transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
transform: translate3d(0, 0, 0) scaleY(0.95);
}
90% {
transform: translate3d(0, -4px, 0) scaleY(1.02);
}
}
.bounce {
animation-name: bounce;
transform-origin: center bottom;
}

View File

@ -1,16 +0,0 @@
@keyframes flash {
from,
50%,
to {
opacity: 1;
}
25%,
75% {
opacity: 0;
}
}
.flash {
animation-name: flash;
}

View File

@ -1,30 +0,0 @@
@keyframes headShake {
0% {
transform: translateX(0);
}
6.5% {
transform: translateX(-6px) rotateY(-9deg);
}
18.5% {
transform: translateX(5px) rotateY(7deg);
}
31.5% {
transform: translateX(-3px) rotateY(-5deg);
}
43.5% {
transform: translateX(2px) rotateY(3deg);
}
50% {
transform: translateX(0);
}
}
.headShake {
animation-timing-function: ease-in-out;
animation-name: headShake;
}

View File

@ -1,27 +0,0 @@
@keyframes heartBeat {
0% {
transform: scale(1);
}
14% {
transform: scale(1.3);
}
28% {
transform: scale(1);
}
42% {
transform: scale(1.3);
}
70% {
transform: scale(1);
}
}
.heartBeat {
animation-name: heartBeat;
animation-duration: calc(var(--animate-duration) * 1.3);
animation-timing-function: ease-in-out;
}

View File

@ -1,40 +0,0 @@
@keyframes jello {
from,
11.1%,
to {
transform: translate3d(0, 0, 0);
}
22.2% {
transform: skewX(-12.5deg) skewY(-12.5deg);
}
33.3% {
transform: skewX(6.25deg) skewY(6.25deg);
}
44.4% {
transform: skewX(-3.125deg) skewY(-3.125deg);
}
55.5% {
transform: skewX(1.5625deg) skewY(1.5625deg);
}
66.6% {
transform: skewX(-0.78125deg) skewY(-0.78125deg);
}
77.7% {
transform: skewX(0.390625deg) skewY(0.390625deg);
}
88.8% {
transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
}
}
.jello {
animation-name: jello;
transform-origin: center;
}

View File

@ -1,20 +0,0 @@
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes pulse {
from {
transform: scale3d(1, 1, 1);
}
50% {
transform: scale3d(1.05, 1.05, 1.05);
}
to {
transform: scale3d(1, 1, 1);
}
}
.pulse {
animation-name: pulse;
animation-timing-function: ease-in-out;
}

View File

@ -1,33 +0,0 @@
@keyframes rubberBand {
from {
transform: scale3d(1, 1, 1);
}
30% {
transform: scale3d(1.25, 0.75, 1);
}
40% {
transform: scale3d(0.75, 1.25, 1);
}
50% {
transform: scale3d(1.15, 0.85, 1);
}
65% {
transform: scale3d(0.95, 1.05, 1);
}
75% {
transform: scale3d(1.05, 0.95, 1);
}
to {
transform: scale3d(1, 1, 1);
}
}
.rubberBand {
animation-name: rubberBand;
}

View File

@ -1,25 +0,0 @@
@keyframes shake {
from,
to {
transform: translate3d(0, 0, 0);
}
10%,
30%,
50%,
70%,
90% {
transform: translate3d(-10px, 0, 0);
}
20%,
40%,
60%,
80% {
transform: translate3d(10px, 0, 0);
}
}
.shake {
animation-name: shake;
}

View File

@ -1,25 +0,0 @@
@keyframes shakeX {
from,
to {
transform: translate3d(0, 0, 0);
}
10%,
30%,
50%,
70%,
90% {
transform: translate3d(-10px, 0, 0);
}
20%,
40%,
60%,
80% {
transform: translate3d(10px, 0, 0);
}
}
.shakeX {
animation-name: shakeX;
}

View File

@ -1,25 +0,0 @@
@keyframes shakeY {
from,
to {
transform: translate3d(0, 0, 0);
}
10%,
30%,
50%,
70%,
90% {
transform: translate3d(0, -10px, 0);
}
20%,
40%,
60%,
80% {
transform: translate3d(0, 10px, 0);
}
}
.shakeY {
animation-name: shakeY;
}

View File

@ -1,26 +0,0 @@
@keyframes swing {
20% {
transform: rotate3d(0, 0, 1, 15deg);
}
40% {
transform: rotate3d(0, 0, 1, -10deg);
}
60% {
transform: rotate3d(0, 0, 1, 5deg);
}
80% {
transform: rotate3d(0, 0, 1, -5deg);
}
to {
transform: rotate3d(0, 0, 1, 0deg);
}
}
.swing {
transform-origin: top center;
animation-name: swing;
}

View File

@ -1,31 +0,0 @@
@keyframes tada {
from {
transform: scale3d(1, 1, 1);
}
10%,
20% {
transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
}
30%,
50%,
70%,
90% {
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
}
40%,
60%,
80% {
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
}
to {
transform: scale3d(1, 1, 1);
}
}
.tada {
animation-name: tada;
}

View File

@ -1,35 +0,0 @@
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes wobble {
from {
transform: translate3d(0, 0, 0);
}
15% {
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
}
30% {
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
}
45% {
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
}
60% {
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
}
75% {
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
}
to {
transform: translate3d(0, 0, 0);
}
}
.wobble {
animation-name: wobble;
}

Some files were not shown because too many files have changed in this diff Show More