Merge branch 'hi-ucs-dev' of http://124.222.94.39:3001/wuhongjian/hi-ucs into hi-ucs-dev

This commit is contained in:
guoyue 2022-06-28 10:32:58 +08:00
commit 3672d8fbf8
11 changed files with 361 additions and 193 deletions

View File

@ -0,0 +1,22 @@
<template>
<div class="wrapper">概况和异常</div>
</template>
<script>
export default {
components: {},
props: {},
data() {
return {};
},
watch: {},
computed: {},
methods: {},
created() {},
mounted() {},
};
</script>
<style lang="scss" scoped>
.wrapper {
}
</style>

View File

@ -0,0 +1,22 @@
<template>
<div class="wrapper">请求分析</div>
</template>
<script>
export default {
components: {},
props: {},
data() {
return {};
},
watch: {},
computed: {},
methods: {},
created() {},
mounted() {},
};
</script>
<style lang="scss" scoped>
.wrapper {
}
</style>

View File

@ -0,0 +1,22 @@
<template>
<div class="wrapper">上边时间</div>
</template>
<script>
export default {
components: {},
props: {},
data() {
return {};
},
watch: {},
computed: {},
methods: {},
created() {},
mounted() {},
};
</script>
<style lang="scss" scoped>
.wrapper {
}
</style>

View File

@ -0,0 +1,40 @@
<!-- 权限管理-能力运行监控 -->
<template>
<div class="wrapper">
<div class="capability-operation-monitoring-top">
<capability-operation-monitoring-time></capability-operation-monitoring-time>
</div>
<div class="capability-operation-monitoring-center">
<abnormal-situation></abnormal-situation>
</div>
<div class="capability-operation-monitoring-bottom">
<analysis-of-the-request></analysis-of-the-request>
</div>
</div>
</template>
<script>
import AbnormalSituation from "./components/AbnormalSituation.vue";
import AnalysisOfTheRequest from "./components/AnalysisOfTheRequest.vue";
import CapabilityOperationMonitoringTime from "./components/CapabilityOperationMonitoringTime.vue";
export default {
components: {
AbnormalSituation,
AnalysisOfTheRequest,
CapabilityOperationMonitoringTime,
},
props: {},
data() {
return {};
},
watch: {},
computed: {},
methods: {},
created() {},
mounted() {},
};
</script>
<style lang="scss" scoped>
.wrapper {
}
</style>

View File

@ -104,6 +104,11 @@
yAxis: {
type: 'value',
},
tooltip: {
show: true,
trigger: 'item',
formatter: '{b}的浏览量:</br> {c} 次',
},
series: [
{
data: datas.value,

View File

@ -1605,8 +1605,9 @@
}
.top-content-father {
width: 10.87rem;
padding-left: 0.2rem;
// padding-left: 0.2rem;
// margin-bottom: .2rem;
padding: 0.16rem;
background: #f3f5f9;
.top-content-son {
background: #fff;

View File

@ -1,7 +1,7 @@
<template>
<div class="wrapper">
<div class="wrapper-title-left-tree" :key="showKey">
<div v-for="item in treeData" :key="item.key" class="primaryNode">
<div v-for="item in treeData" :key="item.id" class="primaryNode">
<!-- <div v-if="!item.children || item.children.length == 0">
{{ item.title }}
</div> -->
@ -10,15 +10,15 @@
@click="showBottom(item)"
:class="item.show ? 'topSelect' : ''"
>
{{ item.title }}
{{ item.name }}
<DownOutlined v-show="!item.show" />
<UpOutlined v-show="item.show" />
</div>
<div class="bottom" v-show="item.show">
<div v-for="val in item.children" :key="val.key" class="item">
<div v-for="val in item.children" :key="val.id" class="item">
<div
class="up"
:class="selectId == val.key ? 'select' : ''"
:class="selectId == val.id ? 'select' : ''"
@click="showDown(item, val), onSelect(item, val)"
>
<div>
@ -31,7 +31,7 @@
p-id="2156"
width="0.25rem"
height="0.25rem"
v-show="selectId == val.key"
v-show="selectId == val.id"
>
<path
d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z"
@ -40,10 +40,10 @@
></path>
</svg>
<span class="name">
{{ val.title }}
{{ val.name }}
</span>
</div>
<span v-if="item.title !== '区级'">{{ val.total }}</span>
<span v-if="item.children.length < 0">{{ val.total }}</span>
<span v-else>
<down-outlined v-show="!val.show" />
<up-outlined v-show="val.show" />
@ -52,9 +52,9 @@
<div class="down" v-show="val.show">
<div
v-for="child in val.children"
:key="child.key"
:key="child.id"
class="child"
:class="selectId == child.key ? 'select2' : ''"
:class="selectId == child.id ? 'select2' : ''"
@click="onSelect(item, val, child)"
>
<div>
@ -67,7 +67,7 @@
p-id="2156"
width="0.25rem"
height="0.25rem"
v-show="selectId == child.key"
v-show="selectId == child.id"
>
<path
d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z"
@ -76,7 +76,7 @@
></path>
</svg>
<span class="name">
{{ child.title }}
{{ child.name }}
</span>
</div>
<span>{{ child.total }}</span>
@ -97,7 +97,7 @@
<script>
import { defineComponent, ref, watch } from 'vue'
import { selectDeptList } from '@/api/home.js'
import { getCameraAllOrgan } from '@/api/videoSurveillance'
import mybus from '@/myplugins/mybus'
import { useRouter } from 'vue-router'
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
@ -127,43 +127,44 @@
'获取url中的select=====================>',
router.currentRoute.value.query.select
)
if (
// select !== '' &&
select !== '数据资源' &&
select !== '知识库'
) {
selectDeptList({ type: select }).then((res) => {
// console.log('=========================>', res.data.data)
res.data.data.forEach((val) => {
if (val.type !== '全部能力目录') {
let obj = {
title: val.type,
total: val.total,
show: val.type === '市级' ? true : false,
select: false,
key: val.type,
children: [],
if (select == '基础设施') {
getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' }).then(
(res) => {
treeData.value = res.data.data
}
switch (val.type) {
case '市级':
case '其他':
generateChildren(val, obj)
break
case '区级':
generateChildren2(val, obj)
break
}
treeData.value.push(obj)
}
})
//
const sortArr = ['全部能力目录', '市级', '区级', '企业', '其他']
treeData.value.sort((a, b) => {
return sortArr.indexOf(a.key) - sortArr.indexOf(b.key)
})
console.log('左侧树结构数据======================>', treeData.value)
showKey.value++
})
)
// selectDeptList({ type: select }).then((res) => {
// // console.log('=========================>', res.data.data)
// res.data.data.forEach((val) => {
// if (val.type !== '') {
// let obj = {
// title: val.type,
// total: val.total,
// show: val.type === '' ? true : false,
// select: false,
// key: val.type,
// children: [],
// }
// switch (val.type) {
// case '':
// case '':
// generateChildren(val, obj)
// break
// case '':
// generateChildren2(val, obj)
// break
// }
// treeData.value.push(obj)
// }
// })
// //
// const sortArr = ['', '', '', '', '']
// treeData.value.sort((a, b) => {
// return sortArr.indexOf(a.key) - sortArr.indexOf(b.key)
// })
// console.log('======================>', treeData.value)
// showKey.value++
// })
}
}
mybus.on('getDeptList', () => {
@ -241,24 +242,22 @@
// }
const selectId = ref('')
const onSelect = (item, val, child) => {
if (item.title === '区级') {
console.log('item, val, child', child)
getCameraAllOrgan({ parentId: val.id }).then((res) => {
treeData.value.map((treeDataItem, index) => {
if (item.id == treeDataItem.id) {
treeData.value[index].children.map((childItem, childIndex) => {
if (childItem.id == val.id) {
treeData.value[index].children[childIndex].children =
res.data.data
}
})
console.log('treeData.value.[index]', treeData.value[index])
}
})
})
if (child) {
if (selectId.value !== child.key) {
mybus.emit('paramsGetResources', [child.key])
selectId.value = child.key
} else {
mybus.emit('paramsGetResources', [])
selectId.value = ''
}
}
} else {
if (selectId.value !== val.key) {
mybus.emit('paramsGetResources', [val.key])
selectId.value = val.key
} else {
mybus.emit('paramsGetResources', [])
selectId.value = ''
}
selectId.value = child.id
}
}
watch(selectedKeys, () => {
@ -305,10 +304,18 @@
}
const showBottom = (item) => {
item.show = !item.show
getCameraAllOrgan({ parentId: item.id }).then((res) => {
treeData.value.map((treeDataItem, index) => {
if (item.id == treeDataItem.id) {
treeData.value[index].children = res.data.data
console.log('treeData.value.[index]', treeData.value[index])
}
})
})
}
const showDown = (item, val) => {
console.log('showDown', val)
if (item.title === '区级') {
if (item.children) {
val.show = !val.show
}
}

View File

@ -5,6 +5,7 @@
<div class="infrastructrue-tab">
<div v-for="(item, index) in tabList" :key="index" class="tabBox">
<b class="leftType">{{ item.title }}</b>
<button @click="nullClick" v-if="item.title == '视频细分'">清空</button>
<span
v-for="itemContent in item.content"
:key="itemContent"
@ -17,6 +18,10 @@
</span>
</div>
</div>
<!-- 地图 -->
<div class="map-contain">
<video-surveillance></video-surveillance>
</div>
<!-- 功能行 -->
<div class="infrastructrue-content">
<!-- 表格数据统计 -->
@ -84,7 +89,13 @@
</div>
</template>
<script setup>
import { ref } from 'vue'
import VideoSurveillance from '@/views/home/videoSurveillance'
import { getCategoryTreePage } from '@/api/personalCenter'
import { dataType } from 'element-plus/es/components/table-v2/src/common'
import { ref, onMounted } from 'vue'
onMounted(() => {
tabClick(0, '视频资源')
})
const tabList = ref([
{
title: '设施类型',
@ -92,18 +103,19 @@
},
{
title: '视频细分',
content: [
'云主机',
'算力主机',
'对象存储',
'堡垒机',
'防火墙',
'网闸',
'负载均衡',
'公网IP',
],
content: [],
},
]) //
])
// const dataTypeList = () => {
// if (tabList.value[0].content.indexOf('') != -1) {
// tabList.value[1].content = ['123344', '213124']
// }else if(tabList.value[0].content.indexOf('') != -1){
// tabList.value[1].content = ['5555', '666']
// }
// }
// dataTypeList()
//
const init = () => {
tabList.value.map((item) => {
let params = {
@ -118,13 +130,13 @@
//
let tableHeight = ref('600')
//tab
const tabClick = (indexFather, name, fatherName) => {
const tabClick = (indexFather, name) => {
if (clickList.value[indexFather].content.indexOf(name) != -1) {
if (fatherName == '视频资源') {
if (name == '视频资源') {
tableHeight.value = 330
} else if (fatherName == '云资源') {
} else if (name == '云资源') {
tableHeight.value = 600
} else if (fatherName == '感知资源') {
} else if (name == '感知资源') {
tableHeight.value = 330
}
clickList.value[indexFather].content.splice(
@ -132,17 +144,51 @@
1
)
} else {
if (fatherName == '视频资源') {
if (name == '视频资源') {
tableHeight.value = 330
} else if (fatherName == '云资源') {
tableHeight.value = 600
} else if (fatherName == '感知资源') {
tableHeight.value = 330
}
tabList.value[1].content = []
clickList.value[1].content = []
clickList.value[indexFather].content[0] = name
const params = {
page: 1,
limit: 50,
dictTypeId: '1541336217898848257',
}
getCategoryTreePage(params).then((res) => {
res.data.data.list.forEach((val) => {
tabList.value[1].content.push(val.dictLabel)
})
})
} else if (name == '云资源') {
tableHeight.value = 600
clickList.value[1].content = []
clickList.value[indexFather].content[0] = name
tabList.value[1].content = [
'云主机',
'算力主机',
'对象存储',
'堡垒机',
'防火墙',
'网闸',
'负载均衡',
'公网IP',
]
} else if (name == '感知资源') {
tableHeight.value = 330
clickList.value[1].content = []
clickList.value[indexFather].content[0] = name
tabList.value[1].content = ['333333', '213124']
} else {
clickList.value[indexFather].content.push(name)
}
}
console.log('clickList.value', clickList.value)
}
//
const nullClick = () => {
clickList.value[1].content = []
console.log('hhhhhhhh')
}
const name = ref('')
//
const onSearch = (name) => {
@ -298,13 +344,15 @@
</script>
<style lang="less" scoped>
.infrastructrueBox {
width: 10.87rem;
padding: 0.2rem;
background: #f3f5f9;
.infrastructrue-tab {
// background: #f3f5f9;
background: #ffffff;
padding: 0.2rem;
/* padding: 0.16rem; */
border-bottom: 0.01rem solid rgba(150, 144, 144, 0.3);
.infrastructrue-tab {
// background: #ffffff;
// padding: 0.2rem;
// border-bottom: 0.01rem solid rgba(150, 144, 144, 0.3);
span {
display: inline-block;
height: 0.24rem;
@ -326,7 +374,6 @@
color: #ffffff;
}
.tabBox {
height: 0.3rem;
margin-bottom: 0.16rem;
}
.tabBox:last-of-type {
@ -423,5 +470,11 @@
background-color: #fafafa;
}
}
.map-contain {
// width: 9.46rem;
height: 4.1rem;
margin-left: 0.16rem;
position: relative;
}
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<div>
<div class="ucs-leaflet-map">
<div id="contain">
<div class="map-box">
<div :id="mapId" class="normal-map-content">
@ -8,7 +8,32 @@
</div>
<div class="searchPoint">
<el-autocomplete
<a-auto-complete
v-model:value="value"
class="certain-category-search"
dropdown-class-name="certain-category-search-dropdown"
:dropdown-match-select-width="500"
style="width: 250px"
:options="dataSource"
>
<template #option="item">
<template>
<span>
{{ item.value }}
<a
style="float: right"
href="https://www.google.com/search?q=antd"
target="_blank"
rel="noopener noreferrer"
>
more
</a>
</span>
</template>
</template>
<a-input-search placeholder="搜索地点" size="large"></a-input-search>
</a-auto-complete>
<!-- <el-autocomplete
class="inline-input"
prefix-icon="Search"
v-model="state"
@ -28,93 +53,26 @@
</span>
</template>
<template v-slot:append>搜索</template>
</el-autocomplete>
</el-autocomplete> -->
</div>
<aside class="tag-box">
<div class="refresh" @click="refresh">
<el-icon><Refresh /></el-icon>
</div>
<el-tabs type="border-card" class="border-card">
<el-tab-pane label="视频标签">
<el-input
placeholder="请输入关键词"
suffix-icon="Search"
v-model="labelSearch"
@input="searchLabel"
></el-input>
<el-checkbox-group v-model="checkboxGroup">
<el-checkbox-button
v-for="item in tabList"
:label="item.labelName"
:key="item.id"
@change="tabChange(item)"
<svg
t="1656319660834"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="1691"
width="0.48rem"
height="0.48rem"
@click="circleMode()"
>
{{ item.labelName }}
</el-checkbox-button>
</el-checkbox-group>
</el-tab-pane>
<el-tab-pane label="视频列表">
<el-input
placeholder="请输入关键词"
suffix-icon="Search"
v-model="labelSearch"
@input="searchCameraTree"
></el-input>
<!-- <el-radio-group v-model="checkStatus">
<el-radio :label="2">全部</el-radio>
<el-radio :label="1">正常</el-radio>
<el-radio :label="0">异常</el-radio>
</el-radio-group>
<span class="reset-button" @click="reset">重置</span> -->
<el-tree
id="tree"
:data="camreaTree"
:props="{ label: 'name', children: 'children', isLeaf: 'leaf' }"
:load="loadNode"
node-key="id"
@node-click="treeCameraClick"
empty-text="暂无数据"
:filter-node-method="filterNode"
lazy
>
<!-- 是否离线checkStatus -->
<!-- <span
:style="{
backgroundColor: data?.checkStatus == 0 ? '#ccc' : '',
}"
slot-scope="{ node, data }"
class="custom-tree-node"
>
<span>
{{ data?.checkStatus == 0 ? `(离线)` : '' }}{{ data.name }}
</span>
</span> -->
</el-tree>
<!-- <el-tree
v-show="!camreaTreeIsShow"
ref="tree"
:data="camreaTreeSingle"
:props="{ label: 'channelName', children: 'children' }"
:filter-node-method="filterNode"
@node-click="treeCameraClick"
>
<span
:style="{
backgroundColor: data?.checkStatus == 0 ? '#ccc' : '',
}"
slot-scope="{ node, data }"
class="custom-tree-node"
>
<span>
{{ data?.checkStatus == 0 ? `(离线)` : ''
}}{{ data?.channelName }}
</span>
</span>
</el-tree> -->
</el-tab-pane>
</el-tabs>
</aside>
<path
d="M736.21333333 638.08l69.76-54.08c5.22666667-4.05333333 8-10.45333333 7.46666667-17.06666667-0.53333333-6.61333333-4.37333333-12.48-10.24-15.57333333L450.02666666 361.38666666c-6.82666667-3.62666667-15.04-2.98666667-21.12 1.70666667-6.08 4.69333333-8.85333333 12.58666667-7.04 20.05333333l95.57333334 389.54666667c1.6 6.4 6.29333333 11.62666667 12.48 13.76 6.18666667 2.13333333 13.12 1.06666667 18.34666666-2.98666667l69.86666667-54.08L769.06666666 924.37333333c3.2 4.05333333 7.78666667 6.72 12.90666667 7.36 0.85333333 0.10666667 1.6 0.10666667 2.45333333 0.10666667 4.26666667 0 8.53333333-1.38666667 11.94666667-4.05333334l87.25333333-67.52c8.53333333-6.61333333 10.02666667-18.88 3.52-27.30666666L736.21333333 638.08zM178.24 282.02666666l-31.25333334-21.01333333c-14.61333333 21.76-27.30666667 44.90666667-37.86666666 68.90666667l34.56 15.14666666c9.6-21.86666667 21.22666667-43.09333333 34.56-63.04zM549.54666666 103.89333333l3.2-37.54666667c-26.02666667-2.24-52.69333333-2.13333333-78.50666666 0.21333334l3.41333333 37.54666666c23.57333333-2.13333333 48-2.24 71.89333333-0.21333333zM120.74666666 413.22666666l-36.69333333-8.74666666c-6.08 25.38666667-9.92 51.52-11.30666667 77.76l37.65333334 2.13333333c1.38666667-24 4.8-47.89333333 10.34666666-71.14666667zM112.64 556.26666666l-37.44 4.48c3.09333333 26.02666667 8.64 51.94666667 16.32 76.90666667l36.05333333-11.09333333c-7.04-22.82666667-12.05333333-46.50666667-14.93333333-70.29333334zM919.36 327.46666666c-10.66666667-23.89333333-23.46666667-46.93333333-38.29333334-68.58666666l-31.14666666 21.22666666c13.44 19.84 25.28 40.96 34.98666666 62.82666667l34.45333334-15.46666667zM831.36 197.97333333c-18.34666667-18.77333333-38.4-35.94666667-59.62666667-51.09333333L749.86666666 177.6c19.52 13.86666667 37.86666667 29.65333333 54.61333334 46.82666666l26.88-26.45333333zM703.89333333 107.09333333c-23.68-11.2-48.53333333-20.37333333-73.81333333-27.09333333l-9.81333334 36.37333333c23.14666667 6.18666667 45.86666667 14.61333333 67.52 24.85333333l16.10666667-34.13333333zM277.76 178.98666666l-22.08-30.50666666c-21.22666667 15.36-41.17333333 32.64-59.41333334 51.52l27.09333334 26.13333333c16.74666667-17.28 35.09333333-33.06666667 54.4-47.14666667zM348.90666666 918.08c24.32 9.81333333 49.6 17.49333333 75.2 22.82666666l7.68-36.90666666c-23.46666667-4.90666667-46.61333333-11.94666667-68.8-20.90666667l-14.08 34.98666667zM503.25333333 912.42666666l-1.06666667 37.65333334c4.16 0.10666667 8.42666667 0.21333333 12.58666667 0.21333333 21.97333333 0 44.16-1.6 65.81333333-4.90666667l-5.54666666-37.22666666c-23.57333333 3.52-47.89333333 4.90666667-71.78666667 4.26666666zM944.85333333 401.81333333l-36.58666667 8.96c5.65333333 23.14666667 9.28 47.14666667 10.77333334 71.04l37.65333333-2.34666667c-1.70666667-26.13333333-5.65333333-52.26666667-11.84-77.65333333zM396.8 80.64c-25.28 6.93333333-50.02666667 16.21333333-73.6 27.62666666l16.32 33.92c21.54666667-10.34666667 44.26666667-18.88 67.30666666-25.17333333L396.8 80.64zM121.17333333 710.4c11.94666667 23.25333333 26.13333333 45.54666667 42.13333333 66.34666666l29.86666667-22.93333333c-14.61333333-18.98666667-27.52-39.46666667-38.50666667-60.69333333L121.17333333 710.4zM216.42666666 834.66666666c19.30666667 17.70666667 40.42666667 33.70666667 62.50666667 47.68l20.05333333-31.89333333c-20.26666667-12.8-39.46666667-27.41333333-57.17333333-43.62666667l-25.38666667 27.84z"
p-id="1692"
fill="#1296db"
data-spm-anchor-id="a313x.7781069.0.i0"
></path>
</svg>
</div>
<video-play
v-if="openVideo"
@ -146,9 +104,7 @@
return {
hiMap: new HieimpMap(), //
mapId: 'map-single', // id
cameraAllData: [],
checkboxGroup: [],
tabList: [],
state: '',
@ -161,6 +117,7 @@
timer: null,
openVideo: false,
channelCode: [],
circleModeFlag: false,
}
},
components: {
@ -209,6 +166,18 @@
// })
},
methods: {
circleMode() {
//
this.circleModeFlag = !this.circleModeFlag
if(this.circleModeFlag){
//
}else {
//
}
},
getCameraAllPage(page) {
let params = {
page: page,
@ -327,7 +296,7 @@
if (res.data.data.length == 0) {
const params = {
parentId: node.data.id,
checkStatus:'1'
checkStatus: '1',
// this.checkStatus == '2' ? ['0', '1'] : this.checkStatus,
}
getCameraByParentId(params).then((res) => {
@ -444,8 +413,8 @@
<style scoped lang="less">
.map-box {
width: 100%;
// height: 100%;
height: 624px;
height: 100%;
// height: 624px;
position: absolute;
.normal-map-content {
width: 100%;
@ -453,14 +422,14 @@
position: absolute;
}
}
#contain {
.searchPoint {
position: absolute;
z-index: 1000;
left: 100px;
top: 0.1rem;
right: 0.1rem;
border-radius: 4px;
margin-top: 20px;
// margin-top: 20px;
:deep(.el-input__wrapper) {
background: #629ab8;
border-radius: 20px;
@ -642,3 +611,20 @@
}
}
</style>
<style lang="less">
.ucs-leaflet-map {
.iclient-leaflet-logo {
display: none;
}
.leaflet-control-attribution {
display: none;
}
svg {
position: absolute;
bottom: 0.1rem;
right: 0.1rem;
z-index: 1001;
cursor: pointer;
}
}
</style>

View File

@ -32,7 +32,15 @@
<div class="img" :class="item.imgType"></div>
</div>
<div class="item-right">
<div class="fw">{{ select }}:{{ item.visits }}</div>
<div class="fw" v-if="select == '访问量'">
{{ select }}:{{ item.visits }}
</div>
<div class="fw" v-if="select == '申购量'">
{{ select }}:{{ item.applyCount }}
</div>
<div class="fw" v-if="select == '收藏量'">
{{ select }}:{{ item.collectCount }}
</div>
<div class="name">{{ item.name }}</div>
<div class="text">
{{ item.description || '暂无描述' }}

View File

@ -135,7 +135,7 @@
<a-upload
v-model:file-list="fileList"
name="file"
:action="`${window.SITE_CONFIG.apiURL}/upload`"
:action="upLoadUrl"
:headers="headers"
@change="handleChange"
>
@ -242,6 +242,7 @@
},
setup() {
const disabled = ref(false)
const upLoadUrl = ref(window.SITE_CONFIG.apiURL + '/upload')
const formName = reactive({
applyUserDeptId: '',
applyUserDeptName: '',
@ -346,6 +347,7 @@
disabled,
signOut,
processStartHandle,
upLoadUrl,
// baseURL,
}
},