Compare commits

...

32 Commits

Author SHA1 Message Date
a0049873 72a900723f Merge branch 'hi-ucs-dev' into release 2022-11-18 15:43:18 +08:00
a0049873 84ea475d64 西海岸版本 基础设施开发 2022-11-18 15:38:56 +08:00
a0049873 8a02cc43b4 政务云资源对接 2022-11-18 15:37:00 +08:00
unknown 938ad4cd9b Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-11-18 11:19:23 +08:00
unknown 74925cc9e0 西海岸基础设施修改 2022-11-18 11:18:56 +08:00
gongjiale 8f04b9403e 修改 2022-11-18 10:56:19 +08:00
a0049873 cf1e1452c3 分离西海岸基础设施 2022-11-18 10:30:24 +08:00
a0049873 23fd66cd98 点同意按钮 默认添加同意 2022-11-17 17:42:56 +08:00
a0049873 8939f054df 编目问题BUG修改 以及转办判断完善 2022-11-17 17:14:44 +08:00
a0049873 51271131b6 UI修改 2022-11-17 16:52:16 +08:00
gongjiale b3899dbfaf Merge branch 'hi-ucs-dev' of http://192.168.124.50:80/wuhongjian/hi-ucs into hi-ucs-dev 2022-11-17 15:38:09 +08:00
gongjiale 177d0cc95d Merge branch 'hi-ucs-dev' of http://192.168.124.50:80/wuhongjian/hi-ucs into hi-ucs-dev 2022-11-17 15:37:35 +08:00
unknown 9796982337 Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-11-17 15:37:22 +08:00
gongjiale 11994b6120 修改按钮统一样式 2022-11-17 15:37:09 +08:00
unknown 8d15818d1b 新手指南删除底部蓝色图片 2022-11-17 15:35:42 +08:00
a0049873 904c7cbbb5 UI样式修改 2022-11-17 15:35:00 +08:00
a0049873 b5f18ecedc 能力统计echarts修改 2022-11-17 15:13:30 +08:00
a0049873 f8bb9c9223 编目修改 组件服务 应用资源合并 2022-11-17 10:15:29 +08:00
a0049873 65894066b5 水印相关功能 2022-11-16 16:25:56 +08:00
unknown 2c69d3829b 头部菜单修改 2022-11-16 16:20:41 +08:00
gongjiale 2f55fca391 修改UI 2022-11-16 15:10:45 +08:00
wuhongjian 1ee871886f 后台管理登录bug修复 2022-11-15 19:27:22 +08:00
unknown ac544cee15 Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-11-15 18:23:46 +08:00
unknown 6d806547ef 模糊搜索ui修改 2022-11-15 18:23:26 +08:00
unknown db469bd53d 新需求,能力申请新UI 2022-11-15 17:06:32 +08:00
a0049873 e60f697325 BUG修改 2022-11-15 16:17:25 +08:00
a0049873 f094da8cd5 西海岸屏蔽我的申请新增的三个类型 2022-11-15 16:13:56 +08:00
a0049873 dbdaa313ff 样式修改 2022-11-15 15:23:13 +08:00
gongjiale 6a5139f8b3 Merge branch 'hi-ucs-dev' of http://192.168.124.50:80/wuhongjian/hi-ucs into hi-ucs-dev 2022-11-15 14:57:32 +08:00
gongjiale 3eab1e693f UI样式修改 2022-11-15 14:57:22 +08:00
a0049873 e03c1455ec 隐藏期望效果 2022-11-15 14:36:22 +08:00
a0049873 a320b46ade 样式修改 2022-11-15 14:25:42 +08:00
95 changed files with 7821 additions and 2971 deletions

View File

@ -13,7 +13,28 @@
<style> <style>
.el-table th.gutter{ .el-table th.gutter{
display: table-cell!important; display: table-cell !important;
}
.el-button {
vertical-align: middle !important;
align-items: center !important;
display: inline-flex !important;
height:32px !important;
line-height: 32px !important;
justify-content: center !important;
min-width: 80px !important;
border-radius:2px !important;
}
.el-button--primary {
vertical-align: middle !important;
align-items: center !important;
display: inline-flex !important;
height:32px !important;
line-height: 32px !important;
justify-content: center !important;
min-width: 80px !important;
border-radius:2px !important;
} }
</style> </style>
<script> <script>

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-05-11 20:03:41 * @Date: 2022-05-11 20:03:41
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-11-11 11:07:09 * @LastEditTime: 2022-11-15 19:26:30
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
import axios from 'axios' import axios from 'axios'
@ -102,7 +102,7 @@ http.interceptors.response.use(
response['Access-Control-Expose-Headers'] = 'redirect' response['Access-Control-Expose-Headers'] = 'redirect'
const { code, message } = response.data const { code, message } = response.data
if (response.headers.token) { if (response.headers.token) {
Cookies.set('ucsToken', response.headers.token, { expires: 'session' }) Cookies.set('ucsToken', response.headers.token)
} }
if (response.headers.redirect) { if (response.headers.redirect) {
window.location.href = response.headers.redirect window.location.href = response.headers.redirect

View File

@ -6,7 +6,7 @@
<el-input v-model="dataForm.name" placeholder="名称" clearable></el-input> <el-input v-model="dataForm.name" placeholder="名称" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="searchData">{{ <el-button type="primary" @click="searchData">{{
$t("query") $t("query")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
@ -16,7 +16,7 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="reset">重置</el-button> <el-button type="primary" @click="reset">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"

View File

@ -6,7 +6,7 @@
<el-input v-model="dataForm.name" placeholder="名称" clearable></el-input> <el-input v-model="dataForm.name" placeholder="名称" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="searchData">{{ <el-button type="primary" @click="searchData">{{
$t("query") $t("query")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
@ -16,7 +16,7 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="reset">重置</el-button> <el-button type="primary" @click="reset">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"

View File

@ -15,7 +15,7 @@
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ <el-button type="primary" @click="exportHandle()">{{
$t('export') $t('export')
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
@ -35,13 +35,13 @@
<el-form-item> <el-form-item>
<el-button <el-button
v-if="$hasPermission('ability:bsabilityai:delete')" v-if="$hasPermission('ability:bsabilityai:delete')"
type="danger" type="primary"
@click="deleteHandle2()" @click="deleteHandle2()"
>{{ $t('deleteBatch') }}</el-button >{{ $t('deleteBatch') }}</el-button
> >
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="reset">重置</el-button> <el-button type="primary" @click="reset">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
@ -636,7 +636,7 @@ export default {
this.showPutOnTheShelfFlag = true this.showPutOnTheShelfFlag = true
this.$http.get('/category/getCategoryTree').then((res) => { this.$http.get('/category/getCategoryTree').then((res) => {
this.insertList = res.data.data.filter( this.insertList = res.data.data.filter(
(item) => item.name === '组件服务' (item) => item.name === '组件服务'
)[0] )[0]
}) })
}, },
@ -887,7 +887,7 @@ export default {
UpdateData (item) { UpdateData (item) {
this.$http.get('/category/getCategoryTree').then((res) => { this.$http.get('/category/getCategoryTree').then((res) => {
this.insertList = res.data.data.filter( this.insertList = res.data.data.filter(
(item) => item.name === '组件服务' (item) => item.name === '组件服务'
)[0] )[0]
this.radio = item.infoList.filter( this.radio = item.infoList.filter(
(val) => val.attrType === '组件类型' (val) => val.attrType === '组件类型'

View File

@ -10,12 +10,12 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList2(dataForm.name)">{{ <el-button type="primary" @click="getDataList2(dataForm.name)">{{
$t("query") $t("query")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ <el-button type="primary" @click="exportHandle()">{{
$t("export") $t("export")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
@ -37,13 +37,13 @@
<el-form-item> <el-form-item>
<el-button <el-button
v-if="$hasPermission('ability:bsabilityai:delete')" v-if="$hasPermission('ability:bsabilityai:delete')"
type="danger" type="primary"
@click="deleteHandle2()" @click="deleteHandle2()"
>{{ $t("deleteBatch") }}</el-button >{{ $t("deleteBatch") }}</el-button
> >
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="reset">重置</el-button> <el-button type="primary" @click="reset">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
@ -577,7 +577,7 @@ export default {
showPutOnTheShelf () { showPutOnTheShelf () {
this.showPutOnTheShelfFlag2 = true this.showPutOnTheShelfFlag2 = true
this.$http.get('/category/getCategoryTree').then(res => { this.$http.get('/category/getCategoryTree').then(res => {
this.insertList = res.data.data.filter(item => item.name === '应用资源')[0] this.insertList = res.data.data.filter(item => item.name === '应用资源')[0]
this.putOnTheShelfList = this.insertList.children this.putOnTheShelfList = this.insertList.children
}) })
}, },
@ -747,7 +747,7 @@ export default {
// //
UpdateData (item) { UpdateData (item) {
this.$http.get('/category/getCategoryTree').then(res => { this.$http.get('/category/getCategoryTree').then(res => {
this.insertList = res.data.data.filter(item => item.name === '应用资源')[0] this.insertList = res.data.data.filter(item => item.name === '应用资源')[0]
this.radio = '应用资源' this.radio = '应用资源'
// this.radio = item.infoList.filter(val => val.attrType === '')[0].attrValue // this.radio = item.infoList.filter(val => val.attrType === '')[0].attrValue
this.putOnTheShelfList = this.insertList.children this.putOnTheShelfList = this.insertList.children

View File

@ -10,7 +10,7 @@
<el-input v-model="dataForm.orderId" :placeholder="$t('infrastructure.resourceName')" clearable></el-input> <el-input v-model="dataForm.orderId" :placeholder="$t('infrastructure.resourceName')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="resetDataList()">{{ $t('reset') }}</el-button> <el-button type="primary" @click="resetDataList()">{{ $t('reset') }}</el-button>

View File

@ -34,9 +34,9 @@
<p> <p>
<span>应用背景{{ detailParams.applicationBackground }}</span> <span>应用背景{{ detailParams.applicationBackground }}</span>
</p> </p>
<p> <!-- <p>
<span>期望效果{{ detailParams.effectWish }}</span> <span>期望效果{{ detailParams.effectWish }}</span>
</p> </p> -->
</div> </div>
</div> </div>
</div> </div>
@ -53,13 +53,13 @@
<span class="img"></span> <span class="img"></span>
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
</div> </div>
<div <!-- <div
style=" style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
" "
></div> ></div> -->
<div class="ability" v-for="val in item.list" :key="val.id"> <div class="ability" v-for="val in item.list" :key="val.id">
<div class="box" v-if="item.list.length > 0"> <div class="box" v-if="item.list.length > 0">
<div class="right"> <div class="right">
@ -280,7 +280,7 @@ export default {
} }
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.title { .title {
font-size: 22px; font-size: 22px;
color: #000; color: #000;
@ -324,7 +324,7 @@ export default {
font-size: 16px; font-size: 16px;
span { span {
width: 50px; width: 300px;
} }
} }
} }
@ -334,7 +334,8 @@ export default {
.main { .main {
.item { .item {
border-top: 1px #eee solid; border-top: 1px #eee solid;
line-height: 30px;
margin-bottom: 10px;
.deptName { .deptName {
color: #0058e1; color: #0058e1;
font-size: 16px; font-size: 16px;

View File

@ -1,27 +1,8 @@
<template> <template>
<div> <div>
<div class="container"> <div class="container">
<!-- <div class='container-left' v-if='homeIsShow'>
<div class='left-search'>
<div>
<input type="text" class='input-style' placeholder="请输入部门关键词" v-model="inputTxt">
<div class='input-search' @click='searchBtn'>
<img src="@/assets/img/搜索.png" style='margin-top:7px;margin-left:16px' >
</div>
</div>
</div>
<el-tree
class='tree-style'
:data="treeData"
:props="defaultProps"
accordion
@node-click="handleNodeClick">
<span slot-scope="{ node }" class='tree-text-style'>
<img src="@/assets/img/一级图标.png" style="width: 16px; height: 16px" />
{{ node.label }}
</span>
</el-tree>
</div> -->
<el-form :inline="true"> <el-form :inline="true">
<!--起始日期 @keyup.enter.native="getDataList()"--> <!--起始日期 @keyup.enter.native="getDataList()"-->
<el-form-item> <el-form-item>
@ -71,14 +52,14 @@
<!--资源名称 仅明细添加--> <!--资源名称 仅明细添加-->
<el-form-item v-if="this.departmentId === 3 || this.departmentId === 4"> <el-form-item v-if="this.departmentId === 3 || this.departmentId === 4">
<span>名称</span>
<!-- <span v-if="this.departmentId === 2 || this.departmentId === 4">资源名称</span> --> <!-- <span v-if="this.departmentId === 2 || this.departmentId === 4">资源名称</span> -->
<el-input v-model="resourceName" placeholder="请输入资源名称" clearable></el-input> <el-input style="width:80%;" v-model="resourceName" placeholder="请输入资源名称" clearable></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" style="display: flex;justify-content: end;margin-right: 40px;"> <el-form :inline="true" style="margin-right: 40px;">
<!--操作按钮查询--> <!--操作按钮查询-->
<el-form-item> <el-form-item>
<el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<!--操作按钮重置--> <!--操作按钮重置-->
<el-form-item> <el-form-item>
@ -1179,16 +1160,17 @@ input::placeholder {
} }
.export { .export {
margin-top: 6px;
display: inline-block; display: inline-block;
width: 70px; width: 80px;
height: 40px; height: 32px;
line-height: 40px; line-height: 32px;
text-align: center; text-align: center;
border-radius: 5px; border-radius: 2px;
background: #fff; background: #fff;
border: 1px solid #dcdfe6; border: 2px solid #dcdfe6;
color: #000; color: #000;
color: #FFF; color: #fff;
background-color: #0058e1; background-color: #0058e1;
border-color: #0058e1; border-color: #0058e1;
text-decoration: none; text-decoration: none;
@ -1197,7 +1179,6 @@ input::placeholder {
.export:hover { .export:hover {
background: #65a5f9; background: #65a5f9;
border-color: #65a5f9; border-color: #65a5f9;
color: #FFF; color: #fff;
} }
</style> </style>

View File

@ -60,7 +60,25 @@
</el-tooltip> </el-tooltip>
</el-form-item> </el-form-item>
<el-form-item v-if="dataForm.enclosure" label="申请附件" prop="enclosure"> <el-form-item v-if="dataForm.enclosure" label="申请附件" prop="enclosure">
<el-button @click="downloadFile(dataForm.enclosure, '申请附件')">附件下载</el-button> <button
style="
width: 100px;
height: 30px;
margin-right: 10px;
background: rgb(237, 244, 252);
color: rgb(0, 135, 255);
font-size: 14px;
border-radius: 6px;
border: 1px solid rgb(187, 211, 239);
padding: 0px;
text-align: center;
cursor: pointer;
"
@click="downloadFile(dataForm.enclosure, '申请附件')"
>
附件下载
</button>
<!-- <el-button class="DownloadAttachment" @click="downloadFile(dataForm.enclosure, '申请附件')">附件下载</el-button> -->
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 流程综合组件 --> <!-- 流程综合组件 -->
@ -73,11 +91,16 @@
></ren-process-multiple> --> ></ren-process-multiple> -->
<!-- 审批 --> <!-- 审批 -->
<div class="agreeOr" v-if="taskId"> <div class="agreeOr" v-if="taskId">
<div> <div class="approvalOperation">
<el-button type="primary" @click="showDialog('同意')">同意</el-button> <!-- <el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('拒绝')" <el-button type="danger" plain @click="showDialog('拒绝')"
>驳回</el-button >驳回</el-button
> > -->
<div class="contentOperation">
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<el-button class="agreeButton" @click="agreeOrNot($store.state.contentTabsActiveName,'同意')">同意</el-button>
<el-button class="rejectButton" @click="agreeOrNot($store.state.contentTabsActiveName,'驳回')">驳回</el-button>
</div>
</div> </div>
</div> </div>
<!-- 审批弹窗 --> <!-- 审批弹窗 -->
@ -221,46 +244,46 @@ export default {
}, },
// 退 // 退
agreeOrNot: debounce( agreeOrNot: debounce(
function (data) { function (data, type) {
this.dataForm.taskId = this.$route.params.taskId this.dataForm.taskId = this.$route.params.taskId
if (this.dialogType === '同意') { if (type === '同意') {
if (this.input !== '') { // if (this.input !== '') {
console.log('this.dataForm', this.dataForm) console.log('this.dataForm', this.dataForm)
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
comment: this.input comment: this.input || '同意'
}) })
console.log(params) console.log(params)
this.$http this.$http
.post('/act/task/complete?' + params) .post('/act/task/complete?' + params)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) { if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res) this.callbacks.taskHandleErrorCallback(res)
}
return
} }
bus.$emit('AbilityResourcesRemovedInit') return
this.$message({ }
message: this.$t('prompt.success'), bus.$emit('AbilityResourcesRemovedInit')
type: 'success', this.$message({
duration: 500, message: this.$t('prompt.success'),
onClose: () => { type: 'success',
this.visible = false duration: 500,
this.dialogVisible = false onClose: () => {
if (this.callbacks.taskHandleSuccessCallback) { this.visible = false
this.callbacks.taskHandleSuccessCallback(res) this.dialogVisible = false
} if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
} }
}) }
}) })
.catch(() => {}) })
this.tabRemoveHandle(data) .catch(() => {})
} else { this.tabRemoveHandle(data)
this.$message.error('请输入审批意见!') // } else {
} // this.$message.error('')
} else if (this.dialogType === '拒绝') { // }
} else if (type === '驳回') {
if (this.input !== '') { if (this.input !== '') {
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
@ -334,6 +357,11 @@ export default {
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.DownloadAttachment {
position: absolute;
right: 10px;
top: -150px;
}
.agreeOr { .agreeOr {
& > div { & > div {
// text-align: right; // text-align: right;
@ -341,4 +369,102 @@ export default {
margin: 20px 0; margin: 20px 0;
} }
} }
.approvalOperation{
display: flex;
flex-direction: column;
.contentOperation{
display: flex;
flex-direction: row;
margin-bottom: 10px;
.el-input{
margin-left: 0px;
width: 500px;
height: 32px;
line-height: 32px;
.el-input__inner{
height: 32px;
width: 500px;
line-height: 32px;
}
}
.agreeButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #ffffff;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin-left: 10px;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
background-color: #0058e1;
}
.agreeButton:hover{
background: #65a5f9;
border-color: #65a5f9;
color: #FFF;
}
.rejectButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #F56C6C;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
border-color: #F56C6C;
margin-left: 12px;
}
.rejectButton:hover{
background-color: #F56C6C;
border-color: #F56C6C;
color: #ffffff;
}
.transferButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #0058e1;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
border-color: #0058e1;
margin-left: 12px;
}
}
}
</style> </style>

View File

@ -32,11 +32,16 @@
></ren-process-multiple> --> ></ren-process-multiple> -->
<!-- 审批 --> <!-- 审批 -->
<div class="agreeOr" v-if="taskId"> <div class="agreeOr" v-if="taskId">
<div> <div class="approvalOperation">
<el-button type="primary" @click="showDialog('同意')">同意</el-button> <!-- <el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('拒绝')" <el-button type="danger" plain @click="showDialog('拒绝')"
>驳回</el-button >驳回</el-button
> > -->
<div class="contentOperation">
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<el-button class="agreeButton" @click="agreeOrNot($store.state.contentTabsActiveName,'同意')">同意</el-button>
<el-button class="rejectButton" @click="agreeOrNot($store.state.contentTabsActiveName,'拒绝')">驳回</el-button>
</div>
</div> </div>
</div> </div>
<!-- 审批弹窗 --> <!-- 审批弹窗 -->
@ -149,46 +154,46 @@ export default {
}, },
// 退 // 退
agreeOrNot: debounce( agreeOrNot: debounce(
function (data) { function (data, type) {
this.dataForm.taskId = this.$route.params.taskId this.dataForm.taskId = this.$route.params.taskId
if (this.dialogType === '同意') { if (type === '同意') {
if (this.input !== '') { // if (this.input !== '') {
console.log('this.dataForm', this.dataForm) console.log('this.dataForm', this.dataForm)
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
comment: this.input comment: this.input || '同意'
}) })
console.log(params) console.log(params)
this.$http this.$http
.post('/act/task/complete?' + params) .post('/act/task/complete?' + params)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) { if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res) this.callbacks.taskHandleErrorCallback(res)
}
return
} }
bus.$emit('AbilityResourcesRemovedInit') return
this.$message({ }
message: this.$t('prompt.success'), bus.$emit('AbilityResourcesRemovedInit')
type: 'success', this.$message({
duration: 500, message: this.$t('prompt.success'),
onClose: () => { type: 'success',
this.visible = false duration: 500,
this.dialogVisible = false onClose: () => {
if (this.callbacks.taskHandleSuccessCallback) { this.visible = false
this.callbacks.taskHandleSuccessCallback(res) this.dialogVisible = false
} if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
} }
}) }
}) })
.catch(() => {}) })
this.tabRemoveHandle(data) .catch(() => {})
} else { this.tabRemoveHandle(data)
this.$message.error('请输入审批意见!') // } else {
} // this.$message.error('')
} else if (this.dialogType === '拒绝') { // }
} else if (type === '拒绝') {
if (this.input !== '') { if (this.input !== '') {
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
@ -291,4 +296,102 @@ export default {
height: 100px; height: 100px;
resize: none; resize: none;
} }
.approvalOperation{
display: flex;
flex-direction: column;
.contentOperation{
display: flex;
flex-direction: row;
margin-bottom: 10px;
.el-input{
margin-left: 0px;
width: 500px;
height: 32px;
line-height: 32px;
.el-input__inner{
height: 32px;
width: 500px;
line-height: 32px;
}
}
.agreeButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #ffffff;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin-left: 10px;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
background-color: #0058e1;
}
.agreeButton:hover{
background: #65a5f9;
border-color: #65a5f9;
color: #FFF;
}
.rejectButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #F56C6C;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
border-color: #F56C6C;
margin-left: 12px;
}
.rejectButton:hover{
background-color: #F56C6C;
border-color: #F56C6C;
color: #ffffff;
}
.transferButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #0058e1;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
border-color: #0058e1;
margin-left: 12px;
}
}
}
</style> </style>

View File

@ -6,7 +6,7 @@
<el-button v-if="$hasPermission('sys:correction:all')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button v-if="$hasPermission('sys:correction:all')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:correction:all')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button v-if="$hasPermission('sys:correction:all')" type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -234,42 +234,42 @@ export default {
function (data) { function (data) {
this.dataForm.taskId = this.$route.params.taskId this.dataForm.taskId = this.$route.params.taskId
if (this.dialogType === '同意') { if (this.dialogType === '同意') {
if (this.input !== '') { // if (this.input !== '') {
console.log('this.dataForm', this.dataForm) console.log('this.dataForm', this.dataForm)
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
comment: this.input comment: this.input || '同意'
}) })
console.log(params) console.log(params)
this.$http this.$http
.post('/act/task/complete?' + params) .post('/act/task/complete?' + params)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) { if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res) this.callbacks.taskHandleErrorCallback(res)
}
return
} }
bus.$emit('AbilityResourcesRemovedInit') return
this.$message({ }
message: this.$t('prompt.success'), bus.$emit('AbilityResourcesRemovedInit')
type: 'success', this.$message({
duration: 500, message: this.$t('prompt.success'),
onClose: () => { type: 'success',
this.visible = false duration: 500,
this.dialogVisible = false onClose: () => {
if (this.callbacks.taskHandleSuccessCallback) { this.visible = false
this.callbacks.taskHandleSuccessCallback(res) this.dialogVisible = false
} if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
} }
}) }
}) })
.catch(() => {}) })
this.tabRemoveHandle(data) .catch(() => {})
} else { this.tabRemoveHandle(data)
this.$message.error('请输入审批意见!') // } else {
} // this.$message.error('')
// }
} else if (this.dialogType === '拒绝') { } else if (this.dialogType === '拒绝') {
if (this.input !== '') { if (this.input !== '') {
const params = qs.stringify({ const params = qs.stringify({

View File

@ -31,7 +31,7 @@
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ <el-button type="primary" @click="deleteHandle()">{{
$t("deleteBatch") $t("deleteBatch")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>

View File

@ -11,7 +11,7 @@
<el-button type="primary" class="button-new" @click="flashTableData" <el-button type="primary" class="button-new" @click="flashTableData"
>查询</el-button >查询</el-button
> >
<el-button @click="restTableData">重置</el-button> <el-button type="primary" @click="restTableData">重置</el-button>
<div style="float: right"> <div style="float: right">
<el-button <el-button
size="mini" size="mini"
@ -521,12 +521,11 @@ export default {
}) })
.then(async () => { .then(async () => {
let ids = [] let ids = []
if (this.deleteDataArr.length > 1) { if(row.id && this.deleteDataArr.length==0){
ids = [row.id]
}else{
ids = this.deleteDataArr ids = this.deleteDataArr
} else {
ids = [row.id]
} }
console.log(ids)
this.$http this.$http
.delete('/workdynamics/delete', { .delete('/workdynamics/delete', {
data: ids data: ids

View File

@ -9,7 +9,7 @@
<el-input v-model="dataForm.key" :placeholder="$t('process.key')" clearable></el-input> <el-input v-model="dataForm.key" :placeholder="$t('process.key')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -9,13 +9,13 @@
<el-input v-model="dataForm.key" :placeholder="$t('process.key')" clearable></el-input> <el-input v-model="dataForm.key" :placeholder="$t('process.key')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="deployHandle()">{{ $t('process.deployFile') }}</el-button> <el-button type="primary" @click="deployHandle()">{{ $t('process.deployFile') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -9,7 +9,7 @@
<el-input v-model="dataForm.definitionKey" :placeholder="$t('running.definitionKey')" clearable></el-input> <el-input v-model="dataForm.definitionKey" :placeholder="$t('running.definitionKey')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -20,8 +20,8 @@
end-placeholder="结束日期" end-placeholder="结束日期"
:picker-options="pickerOptions"> :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
<el-button @click="flashTableData">查询</el-button> <el-button type="primary" @click="flashTableData">查询</el-button>
<el-button @click="resetTableData">重置</el-button> <el-button type="primary" @click="resetTableData">重置</el-button>
</div> </div>
</el-row> </el-row>
<div style="display:flex;flex-wrap:wrap"> <div style="display:flex;flex-wrap:wrap">

View File

@ -13,12 +13,12 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList2(dataForm.name)">{{ <el-button type="primary" @click="getDataList2(dataForm.name)">{{
$t("query") $t("query")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ <el-button type="primary" @click="exportHandle()">{{
$t("export") $t("export")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
@ -33,13 +33,13 @@
<el-form-item> <el-form-item>
<el-button <el-button
v-if="$hasPermission('ability:bsabilityai:delete')" v-if="$hasPermission('ability:bsabilityai:delete')"
type="danger" type="primary"
@click="deleteHandle2()" @click="deleteHandle2()"
>{{ $t("deleteBatch") }}</el-button >{{ $t("deleteBatch") }}</el-button
> >
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="reset">重置</el-button> <el-button type="primary" @click="reset">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -11,8 +11,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="flashTableData">查询</el-button> <el-button type="primary" @click="flashTableData">查询</el-button>
<el-button @click="resetTableData">重置</el-button> <el-button type="primary" @click="resetTableData">重置</el-button>
<el-button type="primary" @click="addTask">任务新增</el-button> <el-button type="primary" @click="addTask">任务新增</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -10,12 +10,12 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList2(dataForm.name)">{{ <el-button type="primary" @click="getDataList2(dataForm.name)">{{
$t("query") $t("query")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ <el-button type="primary" @click="exportHandle()">{{
$t("export") $t("export")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
@ -30,13 +30,13 @@
<el-form-item> <el-form-item>
<el-button <el-button
v-if="$hasPermission('ability:bsabilityai:delete')" v-if="$hasPermission('ability:bsabilityai:delete')"
type="danger" type="primary"
@click="deleteHandle2()" @click="deleteHandle2()"
>{{ $t("deleteBatch") }}</el-button >{{ $t("deleteBatch") }}</el-button
> >
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="reset">重置</el-button> <el-button type="primary" @click="reset">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -9,19 +9,19 @@
<el-input v-model="dataForm.identity" :placeholder="$t('excel.identity')" clearable></el-input> <el-input v-model="dataForm.identity" :placeholder="$t('excel.identity')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="warning" @click="importHandle()">{{ $t('excel.import') }}</el-button> <el-button type="primary" @click="importHandle()">{{ $t('excel.import') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button type="primary" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -16,13 +16,13 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -6,13 +6,13 @@
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> <el-input v-model="dataForm.id" placeholder="id" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('demo:product:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button v-if="$hasPermission('demo:product:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('demo:product:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button v-if="$hasPermission('demo:product:delete')" type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -6,13 +6,13 @@
<el-input v-model="dataForm.code" placeholder="基类编码" clearable></el-input> <el-input v-model="dataForm.code" placeholder="基类编码" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">查询</el-button> <el-button type="primary" @click="getDataList()">查询</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">新增</el-button> <el-button type="primary" @click="addOrUpdateHandle()">新增</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">删除</el-button> <el-button type="primary" @click="deleteHandle()">删除</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -14,13 +14,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">查询</el-button> <el-button type="primary" @click="getDataList()">查询</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">新增</el-button> <el-button type="primary" @click="addOrUpdateHandle()">新增</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">删除</el-button> <el-button type="primary" @click="deleteHandle()">删除</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -9,13 +9,13 @@
<el-input v-model="dataForm.attrType" placeholder="属性类型" clearable></el-input> <el-input v-model="dataForm.attrType" placeholder="属性类型" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">查询</el-button> <el-button type="primary" @click="getDataList()">查询</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">新增</el-button> <el-button type="primary" @click="addOrUpdateHandle()">新增</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">删除</el-button> <el-button type="primary" @click="deleteHandle()">删除</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -6,13 +6,13 @@
<el-input v-model="dataForm.tableName" placeholder="表名"></el-input> <el-input v-model="dataForm.tableName" placeholder="表名"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">查询</el-button> <el-button type="primary" @click="getDataList()">查询</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="importHandle()">导入数据库表</el-button> <el-button type="primary" @click="importHandle()">导入数据库表</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">删除</el-button> <el-button type="primary" @click="deleteHandle()">删除</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -12,13 +12,13 @@
<el-button type="primary" @click="addOrUpdateHandle()">新增</el-button> <el-button type="primary" @click="addOrUpdateHandle()">新增</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="success" @click="enabledHandle()">启用</el-button> <el-button type="primary" @click="enabledHandle()">启用</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="warning" @click="disabledHandle()">禁用</el-button> <el-button type="primary" @click="disabledHandle()">禁用</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">删除</el-button> <el-button type="primary" @click="deleteHandle()">删除</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -6,25 +6,24 @@
<el-input v-model="dataForm.beanName" :placeholder="$t('schedule.beanName')" clearable></el-input> <el-input v-model="dataForm.beanName" :placeholder="$t('schedule.beanName')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:schedule:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button v-if="$hasPermission('sys:schedule:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:schedule:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button v-if="$hasPermission('sys:schedule:delete')" type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:schedule:pause')" type="danger" @click="pauseHandle()">{{ $t('schedule.pauseBatch') }}</el-button> <el-button v-if="$hasPermission('sys:schedule:pause')" type="primary" @click="pauseHandle()">{{ $t('schedule.pauseBatch') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:schedule:resume')" type="danger" @click="resumeHandle()">{{ $t('schedule.resumeBatch') }}</el-button> <el-button v-if="$hasPermission('sys:schedule:resume')" type="primary" @click="resumeHandle()">{{ $t('schedule.resumeBatch') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:schedule:run')" type="danger" @click="runHandle()">{{ $t('schedule.runBatch') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:schedule:log')" type="success" @click="logHandle()">{{ $t('schedule.log') }}</el-button> <el-button v-if="$hasPermission('sys:schedule:log')" type="primary" @click="logHandle()">{{ $t('schedule.log') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -15,10 +15,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -12,7 +12,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button type="primary" @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> <el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template> </template>
</el-dialog> </el-dialog>

View File

@ -6,7 +6,7 @@
<el-input v-model="dataForm.name" :placeholder="$t('mail.name')" clearable></el-input> <el-input v-model="dataForm.name" :placeholder="$t('mail.name')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
@ -15,7 +15,7 @@
<el-button type="primary" @click="configHandle()">{{ $t('mail.config') }}</el-button> <el-button type="primary" @click="configHandle()">{{ $t('mail.config') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -15,10 +15,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:smslog:all')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button v-if="$hasPermission('sys:smslog:all')" type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -9,7 +9,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button type="primary" @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> <el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template> </template>
</el-dialog> </el-dialog>

View File

@ -10,13 +10,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -156,7 +156,7 @@ export default {
type: Array type: Array
} }
}, },
data() { data () {
return { return {
dataList: [], dataList: [],
dataView: [], dataView: [],
@ -171,16 +171,16 @@ export default {
} }
}, },
watch: { watch: {
dataList(item) { dataList (item) {
if (item) { if (item) {
this.dataList = item this.dataList = item
} }
}, },
insertList(val) { insertList (val) {
if (val) { if (val) {
if (this.dataForm.type === '应用资源') { if (this.dataForm.type === '应用资源') {
this.dataView = val.filter( this.dataView = val.filter(
(item) => item.name === this.dataForm.type + '一' (item) => item.name === this.dataForm.type
)[0] )[0]
this.dataForm.infoList.map((item, index) => { this.dataForm.infoList.map((item, index) => {
this.dataView.children.map((itemView, indexView) => { this.dataView.children.map((itemView, indexView) => {
@ -253,7 +253,7 @@ export default {
(item) => item.attrType === '组件类型' (item) => item.attrType === '组件类型'
) )
this.dataView = val.filter( this.dataView = val.filter(
(item) => item.name === this.dataForm.type + '一' (item) => item.name === this.dataForm.type
)[0] )[0]
this.dataView = this.dataView.children.filter( this.dataView = this.dataView.children.filter(
(item) => item.name === componentType[0].attrValue (item) => item.name === componentType[0].attrValue
@ -366,7 +366,7 @@ export default {
}, },
computed: {}, computed: {},
methods: { methods: {
videoAndImg(link) { videoAndImg (link) {
if (link) { if (link) {
window.open(link) window.open(link)
} else { } else {
@ -376,7 +376,7 @@ export default {
}) })
} }
}, },
deptName() { deptName () {
console.log(this.dataForm.deptId) console.log(this.dataForm.deptId)
this.$http this.$http
.get(`/sys/dept/${this.dataForm.deptId}`) .get(`/sys/dept/${this.dataForm.deptId}`)
@ -385,7 +385,7 @@ export default {
this.unit = res.data.name this.unit = res.data.name
}) })
}, },
queryPartAppByKeyIdFunction(index, indexSon, indexSonSon) { queryPartAppByKeyIdFunction (index, indexSon, indexSonSon) {
if (this.dataForm.type === '组件服务') { if (this.dataForm.type === '组件服务') {
this.$http this.$http
.get( .get(
@ -424,8 +424,8 @@ export default {
} }
} }
}, },
created() { }, created () { },
mounted() { mounted () {
this.deptName() this.deptName()
} }
} }

View File

@ -35,12 +35,18 @@
<!-- 审批 --> <!-- 审批 -->
<div class="agreeOr" v-if="taskId"> <div class="agreeOr" v-if="taskId">
<h3>审批</h3> <h3>审批</h3>
<div> <div class="approvalOperation">
<el-button type="info" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button> <div class="contentOperation">
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<el-button class="agreeButton" @click="agreeOrNot($store.state.contentTabsActiveName,'同意')">同意</el-button>
<el-button class="rejectButton" @click="agreeOrNot($store.state.contentTabsActiveName,'驳回')">驳回</el-button>
<el-button class="transferButton" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button>
</div>
<!-- <el-button type="info" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button>
<el-button type="primary" @click="showDialog('同意')">同意</el-button> <el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('驳回')" <el-button type="danger" plain @click="showDialog('驳回')"
>驳回</el-button >驳回</el-button
> > -->
<!-- <el-radio-group v-model="agreeOrList" style="width: 230px"> <!-- <el-radio-group v-model="agreeOrList" style="width: 230px">
<el-radio-button label="同意" class="blueAll">同意</el-radio-button> <el-radio-button label="同意" class="blueAll">同意</el-radio-button>
<el-radio-button label="退回" class="redAll">退回</el-radio-button> <el-radio-button label="退回" class="redAll">退回</el-radio-button>
@ -149,7 +155,7 @@ export default {
'/act/task/getTaskVariables?taskId=' + this.$route.params.taskId + '&variableName=allowEntrust' '/act/task/getTaskVariables?taskId=' + this.$route.params.taskId + '&variableName=allowEntrust'
).then(entrust => { ).then(entrust => {
console.log('11111111111111', entrust, this.dataForm) console.log('11111111111111', entrust, this.dataForm)
if (entrust.data.data.allowEntrust === true) { if (entrust.data.data && entrust.data.data.allowEntrust === true) {
this.taskEntrustFlag2 = true this.taskEntrustFlag2 = true
if (this.taskEntrustFlag && this.taskEntrustFlag2) { if (this.taskEntrustFlag && this.taskEntrustFlag2) {
this.$alert('当前审核部门为' + this.dataForm.deptName + ',该部门未配置审核人,请联系运维工程师配置完成后进行流程转办!', '流程提醒', { this.$alert('当前审核部门为' + this.dataForm.deptName + ',该部门未配置审核人,请联系运维工程师配置完成后进行流程转办!', '流程提醒', {
@ -243,46 +249,46 @@ export default {
}, },
// 退 // 退
agreeOrNot: debounce( agreeOrNot: debounce(
function (data) { function (data, type) {
if (this.dialogType === '同意') { if (type === '同意') {
if (this.input !== '') { // if (this.input !== '') {
console.log('this.dataForm', this.dataForm) console.log('this.dataForm', this.dataForm)
const params = qs.stringify({ const params = qs.stringify({
taskId: this.taskId, taskId: this.taskId,
comment: this.input comment: this.input || '同意'
}) })
console.log(params) console.log(params)
this.$http this.$http
.post('/act/task/complete?' + params) .post('/act/task/complete?' + params)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) { if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res) this.callbacks.taskHandleErrorCallback(res)
}
return
} }
bus.$emit('abilityResourceShelfInit') return
this.$message({ }
message: this.$t('prompt.success'), bus.$emit('abilityResourceShelfInit')
type: 'success', this.$message({
duration: 500, message: this.$t('prompt.success'),
onClose: () => { type: 'success',
this.visible = false duration: 500,
this.dialogVisible = false onClose: () => {
this.input = '' this.visible = false
if (this.callbacks.taskHandleSuccessCallback) { this.dialogVisible = false
this.callbacks.taskHandleSuccessCallback(res) this.input = ''
} if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
} }
}) }
}) })
.catch(() => {}) })
this.tabRemoveHandle(data) .catch(() => {})
} else { this.tabRemoveHandle(data)
this.$message.error('请输入审批意见!') // } else {
} // this.$message.error('')
} else if (this.dialogType === '驳回') { // }
} else if (type === '驳回') {
if (this.input !== '') { if (this.input !== '') {
const params = qs.stringify({ const params = qs.stringify({
taskId: this.taskId, taskId: this.taskId,
@ -358,7 +364,7 @@ export default {
} }
::v-deep .agreeOr > div { ::v-deep .agreeOr > div {
display: flex; display: flex;
align-items: center; //align-items: center;
.el-input { .el-input {
margin-right: 10px; margin-right: 10px;
margin-left: 32px; margin-left: 32px;
@ -416,4 +422,99 @@ export default {
.blueInput { .blueInput {
width: 55px; width: 55px;
} }
.approvalOperation{
display: flex;
flex-direction: column;
.contentOperation{
display: flex;
flex-direction: row;
margin-bottom: 10px;
.el-input{
margin-left: 0px;
width: 500px;
height: 32px;
::v-deep.el-input__inner{
height: 32px;
}
}
.agreeButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #ffffff;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
background-color: #0058e1;
}
.agreeButton:hover{
background: #65a5f9;
border-color: #65a5f9;
color: #FFF;
}
.rejectButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #F56C6C;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
border-color: #F56C6C;
margin-left: 12px;
}
.rejectButton:hover{
background-color: #F56C6C;
border-color: #F56C6C;
color: #ffffff;
}
.transferButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #0058e1;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
border-color: #0058e1;
margin-left: 12px;
}
}
}
</style> </style>

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-01 15:00:19 * @LastEditTime: 2022-11-17 17:39:31
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<!-- 流程业务表单 --> <!-- 流程业务表单 -->
@ -89,15 +89,18 @@
<!-- 审批 --> <!-- 审批 -->
<div class="agreeOr" v-if="dataForm.taskId"> <div class="agreeOr" v-if="dataForm.taskId">
<h3>审批</h3> <h3>审批</h3>
<div> <div class="approvalOperation">
<!-- <el-radio-group v-model="agreeOrList" style="width:230px;"> <!-- <el-radio-group v-model="agreeOrList" style="width:230px;">
<el-radio-button label="同意" class="blueAll" @click="showDialog('同意')">同意</el-radio-button> <el-radio-button label="同意" class="blueAll" @click="showDialog('同意')">同意</el-radio-button>
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button> <el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
</el-radio-group> --> </el-radio-group> -->
<!-- 委托 --> <!-- 委托 -->
<el-button type="info" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button> <div class="contentOperation">
<el-button type="primary" @click="showDialog('同意')">同意</el-button> <el-input v-model="input" placeholder="请输入审批意见"></el-input>
<el-button type="danger" plain @click="showDialog('驳回')">驳回</el-button> <el-button class="agreeButton" @click="agreeOrNot($store.state.contentTabsActiveName,'同意')">同意</el-button>
<el-button class="rejectButton" @click="agreeOrNot($store.state.contentTabsActiveName,'驳回')">驳回</el-button>
<el-button class="transferButton" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button>
</div>
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input> <!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input> <el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
<el-button class="inputBule" @click="agreeOrNot">提交</el-button> --> <el-button class="inputBule" @click="agreeOrNot">提交</el-button> -->
@ -107,14 +110,14 @@
<ren-task-entrust v-if="renTaskEntrustVisible" ref="renTaskEntrust"></ren-task-entrust> <ren-task-entrust v-if="renTaskEntrustVisible" ref="renTaskEntrust"></ren-task-entrust>
<!-- 流程详情 --> <!-- 流程详情 -->
<ren-process-detail ref="renProcessMultiple"></ren-process-detail> <ren-process-detail ref="renProcessMultiple"></ren-process-detail>
<el-dialog title="审批意见" :close-on-click-modal="false" :visible.sync="dialogVisible" width="30%" <!-- <el-dialog title="审批意见" :close-on-click-modal="false" :visible.sync="dialogVisible" width="30%"
:before-close="handleClose"> :before-close="handleClose">
<el-input v-model="input" placeholder="请输入审批意见"></el-input> <el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="handleClose2"> </el-button> <el-button @click="handleClose2"> </el-button>
<el-button type="primary" @click.native="agreeOrNot($store.state.contentTabsActiveName)"> </el-button> <el-button type="primary" @click.native="agreeOrNot($store.state.contentTabsActiveName)"> </el-button>
</span> </span>
</el-dialog> </el-dialog> -->
</el-card> </el-card>
</template> </template>
@ -169,6 +172,7 @@ export default {
this.$http.get('/sys/user/info').then(({ data: res }) => { this.$http.get('/sys/user/info').then(({ data: res }) => {
res.data.roleIdList.map(val => { res.data.roleIdList.map(val => {
this.$http.get('/sys/role/' + val).then(role => { this.$http.get('/sys/role/' + val).then(role => {
console.log('role', role)
if (role.data.data.name === '流程管理员') { if (role.data.data.name === '流程管理员') {
this.taskEntrustFlag = true this.taskEntrustFlag = true
} }
@ -278,7 +282,7 @@ export default {
.get( .get(
`/act/task/getTaskVariables?${params}&variableName=allowEntrust` `/act/task/getTaskVariables?${params}&variableName=allowEntrust`
).then(entrust => { ).then(entrust => {
if (entrust.data.data.allowEntrust === true) { if (entrust.data.data && entrust.data.data.allowEntrust === true) {
this.taskEntrustFlag2 = true this.taskEntrustFlag2 = true
if (this.taskEntrustFlag && this.taskEntrustFlag2) { if (this.taskEntrustFlag && this.taskEntrustFlag2) {
this.$alert('当前审核部门为' + res.data.tAbilityApplicationDTOList[0].resourceOwnerDept.name + ',该部门未配置审核人,请联系运维工程师配置完成后进行流程转办!', '流程提醒', { this.$alert('当前审核部门为' + res.data.tAbilityApplicationDTOList[0].resourceOwnerDept.name + ',该部门未配置审核人,请联系运维工程师配置完成后进行流程转办!', '流程提醒', {
@ -410,45 +414,47 @@ export default {
}, },
// 退 // 退
agreeOrNot: debounce( agreeOrNot: debounce(
function (data) { function (data, type) {
if (this.dialogType === '同意') { // console.log('datadata',data);
if (this.input !== '') { // console.log('tttttt',type);
console.log('this.dataForm', this.dataForm) // if (type === '') {
const params = qs.stringify({ if (this.input !== '') {
taskId: this.dataForm.taskId, console.log('this.dataForm', this.dataForm)
comment: this.input const params = qs.stringify({
}) taskId: this.dataForm.taskId,
console.log(params) comment: this.input || '同意'
this.$http })
.post('/act/task/complete?' + params) console.log(params)
.then(({ data: res }) => { this.$http
if (res.code !== 0) { .post('/act/task/complete?' + params)
this.$message.error(res.msg) .then(({ data: res }) => {
if (this.callbacks.taskHandleErrorCallback) { if (res.code !== 0) {
this.callbacks.taskHandleErrorCallback(res) this.$message.error(res.msg)
} if (this.callbacks.taskHandleErrorCallback) {
return this.callbacks.taskHandleErrorCallback(res)
} }
bus.$emit('competencyApplicationInit') return
this.$message({ }
message: this.$t('prompt.success'), bus.$emit('competencyApplicationInit')
type: 'success', this.$message({
duration: 500, message: this.$t('prompt.success'),
onClose: () => { type: 'success',
this.visible = false duration: 500,
this.dialogVisible = false onClose: () => {
if (this.callbacks.taskHandleSuccessCallback) { this.visible = false
this.callbacks.taskHandleSuccessCallback(res) this.dialogVisible = false
} if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
} }
}) }
}) })
.catch(() => { }) })
this.tabRemoveHandle(data) .catch(() => { })
} else { this.tabRemoveHandle(data)
this.$message.error('请输入审批意见!') // } else {
} // this.$message.error('')
} else if (this.dialogType === '驳回') { // }
} else if (type === '驳回') {
if (this.input !== '') { if (this.input !== '') {
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
@ -670,7 +676,7 @@ export default {
::v-deep .agreeOr > div { ::v-deep .agreeOr > div {
display: flex; display: flex;
align-items: center; //align-items: center;
.el-input { .el-input {
margin-right: 10px; margin-right: 10px;
@ -737,4 +743,99 @@ export default {
.blueInput { .blueInput {
width: 55px; width: 55px;
} }
.approvalOperation{
display: flex;
flex-direction: column;
.contentOperation{
display: flex;
flex-direction: row;
margin-bottom: 10px;
.el-input{
margin-left: 0px;
width: 500px;
height: 32px;
::v-deep.el-input__inner{
height: 32px;
}
}
.agreeButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #ffffff;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
background-color: #0058e1;
}
.agreeButton:hover{
background: #65a5f9;
border-color: #65a5f9;
color: #FFF;
}
.rejectButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #F56C6C;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
border-color: #F56C6C;
margin-left: 12px;
}
.rejectButton:hover{
background-color: #F56C6C;
border-color: #F56C6C;
color: #ffffff;
}
.transferButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #0058e1;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
border-color: #0058e1;
margin-left: 12px;
}
}
}
</style> </style>

View File

@ -6,7 +6,7 @@
<ren-select v-model="dataForm.type" dict-type="notice_type" :placeholder="$t('notice.type')"></ren-select> <ren-select v-model="dataForm.type" dict-type="notice_type" :placeholder="$t('notice.type')"></ren-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -6,13 +6,13 @@
<ren-select v-model="dataForm.type" dict-type="notice_type" :placeholder="$t('notice.type')"></ren-select> <ren-select v-model="dataForm.type" dict-type="notice_type" :placeholder="$t('notice.type')"></ren-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"

View File

@ -9,7 +9,7 @@
<el-button type="primary" @click="uploadHandle()">{{ $t('oss.upload') }}</el-button> <el-button type="primary" @click="uploadHandle()">{{ $t('oss.upload') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -12,7 +12,7 @@
<el-input v-model="dataForm.tradeStatus" :placeholder="$t('order.tradeStatus')" clearable></el-input> <el-input v-model="dataForm.tradeStatus" :placeholder="$t('order.tradeStatus')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -12,7 +12,7 @@
<ren-select v-model="dataForm.status" dict-type="order_status" :placeholder="$t('order.status')"></ren-select> <ren-select v-model="dataForm.status" dict-type="order_status" :placeholder="$t('order.status')"></ren-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>

View File

@ -9,7 +9,7 @@
<el-input v-model="dataForm.resourceName" placeholder="应用名称" clearable></el-input> <el-input v-model="dataForm.resourceName" placeholder="应用名称" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="reset">重置</el-button> <el-button type="primary" @click="reset">重置</el-button>

View File

@ -15,7 +15,7 @@
<el-date-picker v-model="dataForm.applyTime" value-format="yyyy-MM-dd" type="date" :placeholder="$t('projectList.applydate')" clearable></el-date-picker> <el-date-picker v-model="dataForm.applyTime" value-format="yyyy-MM-dd" type="date" :placeholder="$t('projectList.applydate')" clearable></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="resetDataList()">{{ $t('reset') }}</el-button> <el-button type="primary" @click="resetDataList()">{{ $t('reset') }}</el-button>

View File

@ -22,7 +22,7 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="getDataList()">查询</el-button> <el-button type="primary" @click="getDataList()">查询</el-button>
<el-button @click="reset">重置</el-button> <el-button type="primary" @click="reset">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table row-key="id" :data="dataList" border style="width: 100%"> <el-table row-key="id" :data="dataList" border style="width: 100%">

View File

@ -9,13 +9,13 @@
<el-input v-model="dataForm.dictType" :placeholder="$t('dict.dictType')" clearable></el-input> <el-input v-model="dataForm.dictType" :placeholder="$t('dict.dictType')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:dict:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button type="primary" v-if="$hasPermission('sys:dict:save')" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:dict:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" v-if="$hasPermission('sys:dict:delete')" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -65,10 +65,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="resetFunction()"> 重置 </el-button> <el-button type="primary" @click="resetFunction()"> 重置 </el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item> <!-- <el-form-item>
<el-button type="info" @click="exportHandle()">{{ <el-button type="info" @click="exportHandle()">{{

View File

@ -3,7 +3,7 @@
<div class="mod-sys__log-error"> <div class="mod-sys__log-error">
<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>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button type="primary" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @sort-change="dataListSortChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @sort-change="dataListSortChangeHandle" style="width: 100%;">

View File

@ -13,10 +13,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button type="primary" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @sort-change="dataListSortChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @sort-change="dataListSortChangeHandle" style="width: 100%;">

View File

@ -45,10 +45,10 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="resetFunction()"> 重置 </el-button> <el-button type="primary" @click="resetFunction()"> 重置 </el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item> <!-- <el-form-item>
<el-button type="info" @click="exportHandle()">{{ <el-button type="info" @click="exportHandle()">{{

View File

@ -9,6 +9,15 @@
<el-card shadow="never" class="aui-card--fill"> <el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__menu"> <div class="mod-sys__menu">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.name" :placeholder="$t('process.name')" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetHandle()">{{ $t('reset') }}</el-button>
</el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:menu:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button v-if="$hasPermission('sys:menu:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
@ -52,11 +61,22 @@ export default {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/sys/menu/list', getDataListURL: '/sys/menu/list',
deleteURL: '/sys/menu' deleteURL: '/sys/menu'
} },
dataForm: {
name: null
},
} }
}, },
components: { components: {
AddOrUpdate AddOrUpdate
},
methods: {
resetHandle() {
this.dataForm.name = '';
this.$nextTick(() => {
this.getDataList()
})
},
} }
} }
</script> </script>

View File

@ -6,7 +6,7 @@
<el-input v-model="dataForm.username" :placeholder="$t('online.username')" clearable></el-input> <el-input v-model="dataForm.username" :placeholder="$t('online.username')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -6,13 +6,13 @@
<el-input v-model="dataForm.paramCode" :placeholder="$t('params.paramCode')" clearable></el-input> <el-input v-model="dataForm.paramCode" :placeholder="$t('params.paramCode')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:params:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button v-if="$hasPermission('sys:params:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:params:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button v-if="$hasPermission('sys:params:delete')" type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">

View File

@ -12,14 +12,14 @@
<ren-select v-model="dataForm.status" dict-type="post_status" :placeholder="$t('post.status')"></ren-select> <ren-select v-model="dataForm.status" dict-type="post_status" :placeholder="$t('post.status')"></ren-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:post:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }} <el-button type="primary" v-if="$hasPermission('sys:post:save')" @click="addOrUpdateHandle()">{{ $t('add') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:post:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') <el-button v-if="$hasPermission('sys:post:delete')" type="primary" @click="deleteHandle()">{{ $t('deleteBatch')
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>

View File

@ -6,13 +6,13 @@
<el-input v-model="dataForm.name" :placeholder="$t('role.name')" clearable></el-input> <el-input v-model="dataForm.name" :placeholder="$t('role.name')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button @click="getDataList()" type="primary">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:role:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button v-if="$hasPermission('sys:role:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:role:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button v-if="$hasPermission('sys:role:delete')" type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:role:reset')" type="primary" @click="resetHandle()">{{ $t('reset') }}</el-button> <el-button v-if="$hasPermission('sys:role:reset')" type="primary" @click="resetHandle()">{{ $t('reset') }}</el-button>

View File

@ -27,19 +27,19 @@
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:user:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }} <el-button type="primary" v-if="$hasPermission('sys:user:save')" @click="addOrUpdateHandle()">{{ $t('add') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:user:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') <el-button type="primary" v-if="$hasPermission('sys:user:delete')" @click="deleteHandle()">{{ $t('deleteBatch')
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:user:export')" type="info" @click="exportHandle()">{{ $t('export') }} <el-button type="primary" v-if="$hasPermission('sys:user:export')" @click="exportHandle()">{{ $t('export') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="reset()">重置</el-button> <el-button type="primary" @click="reset()">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"

View File

@ -6,10 +6,10 @@
<el-input v-model="dataForm.fileName" :placeholder="$t('fileName')" clearable></el-input> <el-input v-model="dataForm.fileName" :placeholder="$t('fileName')" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button type="primary" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table

View File

@ -7,527 +7,485 @@
*/ */
// 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' }, { name: '能力集市', key: 'DetailsPageconetent', innerKey: 'algorithmCompare' },
// { name: '', key: 'capabilityCloud' }, // { name: '', key: 'capabilityCloud' },
{ name: '能力统计', key: 'abilityStatistics' }, { name: '能力统计', key: 'abilityStatistics' },
// { name: '', key: 'developmentGuide' }, // { name: '', key: 'developmentGuide' },
{ name: '新手指南', key: 'instructionManual' }, { name: '新手指南', key: 'instructionManual' },
{ name: '需求中心', key: 'demandCenter' }, { name: '需求中心', key: 'demandCenter' },
// { name: '', key: 'personalCenter' }, // { name: '', key: 'personalCenter' },
// { name: '', key: 'mapTest' }, // { name: '', key: 'mapTest' },
// { name: '', key: 'houtaiguanli' }, // { name: '', key: 'houtaiguanli' },
// { name: '', key: 'assignCase' }, // { name: '', key: 'assignCase' },
{ name: '融合服务', key: 'integrationServices' }, { name: '融合服务', key: 'integrationServices' },
{ name: 'CIM专区', key: 'cimSpecialArea' }, { name: 'CIM专区', key: 'cimSpecialArea' },
] ]
footerDataList.footerList = { footerDataList.footerList = {
company: { company: {
left: '青岛市大数据发展管理局', left: '青岛市大数据发展管理局',
right: '政府标识码3702000106', right: '政府标识码3702000106',
}, },
address: [ address: [{
{ name: '邮编: 266071',
name: '邮编: 266071', value: 'Email: QDDSJJ@qingdao.shandong.cn',
value: 'Email: QDDSJJ@qingdao.shandong.cn', },
}, {
{ name: '版权所有:青岛市大数据发展管理局',
name: '版权所有:青岛市大数据发展管理局', value: '地址山东省青岛市香港中路17号市级机关三号办公楼',
value: '地址山东省青岛市香港中路17号市级机关三号办公楼', },
}, {
{ name: '电话0532-85912587',
name: '电话0532-85912587', value: '传真0532-85912181',
value: '传真0532-85912181', },
}, ],
], }
} mapTestNum.lsNum = [{
mapTestNum.lsNum = [ name: '基础设施',
{ key: 'lsjcss',
name: '基础设施', num: '20135个',
key: 'lsjcss', },
num: '20135个', {
}, name: '数据资源',
{ key: 'lsjcss',
name: '数据资源', num: '857项',
key: 'lsjcss', },
num: '857项', {
}, name: '应用资源',
{ key: 'lsjcss',
name: '应用资源', num: '28个',
key: 'lsjcss', },
num: '28个', ]
}, mapTestNum.xhaNum = [{
] name: '基础设施',
mapTestNum.xhaNum = [ key: 'xhajcss',
{ num: '35282个',
name: '基础设施', },
key: 'xhajcss', {
num: '35282个', name: '数据资源',
}, key: 'xhajcss',
{ num: '11项',
name: '数据资源', },
key: 'xhajcss', {
num: '11项', name: '应用资源',
}, key: 'xhajcss',
{ num: '23个',
name: '应用资源', },
key: 'xhajcss', {
num: '23个', name: '组件服务',
}, key: 'xhazjfw',
{ num: '8个',
name: '组件服务', },
key: 'xhazjfw', ]
num: '8个',
},
]
} }
// baotou // baotou
else if (newLocation === 'baotou') { else if (newLocation === 'baotou') {
whoShow.itShowBaoTou = true whoShow.itShowBaoTou = true
launchedDataNumObject.launchedDataNum = [ launchedDataNumObject.launchedDataNum = [{
{ num: 10372,
num: 10372, },
}, {
{ num: 1080,
num: 1080, },
}, {
{ num: 976,
num: 976, },
}, ]
] navListManagement.navList = [
navListManagement.navList = [ { name: '共享门户', key: 'home' },
{ name: '共享门户', key: 'home' }, { name: '能力集市', key: 'DetailsPageconetent' },
{ name: '能力集市', key: 'DetailsPageconetent' }, { name: '能力云图', key: 'capabilityCloud' },
{ name: '能力云图', key: 'capabilityCloud' }, { name: '能力统计', key: 'abilityStatistics' },
{ name: '能力统计', key: 'abilityStatistics' }, // { name: '', key: 'developmentGuide' },
// { name: '', key: 'developmentGuide' }, { name: '需求中心', key: 'demandCenter' },
{ name: '需求中心', key: 'demandCenter' }, // { name: '', key: 'personalCenter' },
// { name: '', key: 'personalCenter' }, // { name: '', key: 'mapTest' },
// { name: '', key: 'mapTest' }, // { name: '', key: 'houtaiguanli' },
// { name: '', key: 'houtaiguanli' }, { name: '赋能案例', key: 'assignCase' },
{ name: '赋能案例', key: 'assignCase' }, ]
] footerDataList.footerList = {
footerDataList.footerList = { company: {
company: { left: '包头市工业和信息化局大数据中心建设',
left: '包头市工业和信息化局大数据中心建设', right: '海信网络科技股份有限公司',
right: '海信网络科技股份有限公司', },
}, address: [{
address: [ name: '蒙ICP备05003330-1号',
{ value: '政府标识码1502000040',
name: '蒙ICP备05003330-1号', },
value: '政府标识码1502000040', {
}, name: '版权所有:包头市工业和信息化局大数据中心',
{ value: '地址内蒙古自治区包头市九原区开元大街1号',
name: '版权所有:包头市工业和信息化局大数据中心', },
value: '地址内蒙古自治区包头市九原区开元大街1号', {
}, name: '电话0472-5618235',
{ value: '传真0472-5618235',
name: '电话0472-5618235', },
value: '传真0472-5618235', ],
}, }
],
}
} }
// xihaian // xihaian
else if (newLocation === 'xihaian') { else if (newLocation === 'xihaian') {
whoShow.itShowXiHaiAn = true whoShow.itShowXiHaiAn = true
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: '飞行器',
{ attribute: {
name: '飞行器', 尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××',
attribute: { 对称电机轴距: '895 mm',
尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××', '重量(含下置单云台支架):空机重量(不含电池)': '3.6 kg空机重量含双电池6.3 kg',
对称电机轴距: '895 mm', 单云台减震球最大负重: '930g',
'重量(含下置单云台支架):空机重量(不含电池)': 最大起飞重量: '9 kg',
'3.6 kg空机重量含双电池6.3 kg', 工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz',
单云台减震球最大负重: '930g', '发射功率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',
最大起飞重量: '9 kg', '悬停精度P-GPS': '垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)',
工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz', 'RTK 位置精度': '在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直',
'发射功率EIRP': 最大旋转角速度: '俯仰轴300°/s、航向轴100°/s',
'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', 最大俯仰角度: '30° P模式且前视视觉系统启用25°',
'悬停精度P-GPS': 最大上升速度: 'S 模式6 m/s、P 模式5 m/s',
'垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)', '最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s',
'RTK 位置精度': 最大倾斜下降速度: 'S 模式7 m/s',
'在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直', 最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s',
最大旋转角速度: '俯仰轴300°/s、航向轴100°/s', 最大飞行海拔高度: '5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg',
最大俯仰角度: '30° P模式且前视视觉系统启用25°', 最大可承受风速: '15m/s起飞及降落阶段为12m/s',
最大上升速度: 'S 模式6 m/s、P 模式5 m/s', 最大飞行时间: '55 min',
'最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s', '适配 DJI 云台': '禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
最大倾斜下降速度: 'S 模式7 m/s', 支持云台安装方式: '下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s', 'IP 防护等级': 'IP45',
最大飞行海拔高度: GNSS: 'GPS+GLONASS+BeiDou+Galileo',
'5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg', 工作环境温度: '-20°C 至 50°C',
最大可承受风速: '15m/s起飞及降落阶段为12m/s', },
最大飞行时间: '55 min', },
'适配 DJI 云台': {
'禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1', name: '遥控器',
支持云台安装方式: attribute: {
'下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台', 工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
'IP 防护等级': 'IP45', '最大信号有效距离(无干扰、无遮挡)': 'NCC/FCC15 km、CE/MIC8 km、SRRC8 km',
GNSS: 'GPS+GLONASS+BeiDou+Galileo', '等效全向辐射功率EIRP': '2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC',
工作环境温度: '-20°C 至 50°C', 外置电池: '名称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 小时',
'USB-A 接口供电电压/电流': '5 V / 1.5 A',
工作环境温度: '-20° 至 40° C',
},
},
{
name: '视觉系统',
attribute: {
障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m',
FOV: '前后下65°H50°V、左右上75°H60°V',
使用环境: '表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境',
},
},
{
name: '红外感知系统',
attribute: {
障碍物感知范围: '0.1-8 m',
FOV: '30°±15°',
使用环境: '漫反射,大尺寸,高反射率(反射率>10%)障碍物',
},
},
{
name: '上下补光灯',
attribute: {
有效照明距离: '5 m',
},
},
{
name: 'FPV摄像头',
attribute: {
分辨率: '960p',
FOV: '145°',
帧率: '30 fps',
},
},
{
name: '智能飞行电池',
attribute: {
型号: 'TB60',
容量: '5935 mAh',
电压: '52.8 V',
电池类型: 'LiPo 12S',
能量: '274 Wh',
电池整体重量: '约 1.35 kg',
工作环境温度: '-20℃ 至 50℃',
理想存放环境温度: '22℃ 至 30℃',
充电环境温度: '-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命',
充电时间: '使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
},
},
{
name: 'BS60智能电池箱',
attribute: {
外形尺寸: '501×403×252 mm',
空箱重量: '8.37 kg',
可放置物品: 'TB60 智能飞行电池 8 块、WB37 智能电池 4 块',
输入电压: '100-120 VAC50-60 Hz / 220-240 VAC50-60 Hz',
最大输入功率: '1070 W',
输出功率: '100-120 V750 W、220-240 V992 W',
工作环境温度: '-20℃ 至 40℃',
},
},
],
}, },
{ {
name: '遥控器', name: '经纬 M300 RTK-2',
attribute: { url: '',
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz', details: [{
'最大信号有效距离(无干扰、无遮挡)': name: '飞行器',
'NCC/FCC15 km、CE/MIC8 km、SRRC8 km', attribute: {
'等效全向辐射功率EIRP': 尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××',
'2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC', 对称电机轴距: '895 mm',
外置电池: '重量(含下置单云台支架):空机重量(不含电池)': '3.6 kg空机重量含双电池6.3 kg',
'名称WB37 智能电池容量4920 mAh电压7.6 V电池类型LiPo能量37.39 Wh充电时间使用 BS60 智能电池箱70 分钟15°C 至 45°C130 分钟0°C 至 15°C', 单云台减震球最大负重: '930g',
内置电池: 最大起飞重量: '9 kg',
'类型18650 锂离子电池 5000 mAh @ 7.2 V充电方式使用规格为 12V/2A 的 USB 充电器额定功率17 W充电时间2 小时 15 分钟使用规格为12V/2A 的 USB 充电器)', 工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz',
续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时', '发射功率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',
'USB-A 接口供电电压/电流': '5 V / 1.5 A', '悬停精度P-GPS': '垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)',
工作环境温度: '-20° 至 40° C', 'RTK 位置精度': '在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直',
}, 最大旋转角速度: '俯仰轴300°/s、航向轴100°/s',
最大俯仰角度: '30° P模式且前视视觉系统启用25°',
最大上升速度: 'S 模式6 m/s、P 模式5 m/s',
'最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s',
最大倾斜下降速度: 'S 模式7 m/s',
最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s',
最大飞行海拔高度: '5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg',
最大可承受风速: '15m/s起飞及降落阶段为12m/s',
最大飞行时间: '55 min',
'适配 DJI 云台': '禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
支持云台安装方式: '下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
'IP 防护等级': 'IP45',
GNSS: 'GPS+GLONASS+BeiDou+Galileo',
工作环境温度: '-20°C 至 50°C',
},
},
{
name: '遥控器',
attribute: {
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
'最大信号有效距离(无干扰、无遮挡)': 'NCC/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',
外置电池: '名称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 小时',
'USB-A 接口供电电压/电流': '5 V / 1.5 A',
工作环境温度: '-20° 至 40° C',
},
},
{
name: '视觉系统',
attribute: {
障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m',
FOV: '前后下65°H50°V、左右上75°H60°V',
使用环境: '表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境',
},
},
{
name: '红外感知系统',
attribute: {
障碍物感知范围: '0.1-8 m',
FOV: '30°±15°',
使用环境: '漫反射,大尺寸,高反射率(反射率>10%)障碍物',
},
},
{
name: '上下补光灯',
attribute: {
有效照明距离: '5 m',
},
},
{
name: 'FPV摄像头',
attribute: {
分辨率: '960p',
FOV: '145°',
帧率: '30 fps',
},
},
{
name: '智能飞行电池',
attribute: {
型号: 'TB60',
容量: '5935 mAh',
电压: '52.8 V',
电池类型: 'LiPo 12S',
能量: '274 Wh',
电池整体重量: '约 1.35 kg',
工作环境温度: '-20℃ 至 50℃',
理想存放环境温度: '22℃ 至 30℃',
充电环境温度: '-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命',
充电时间: '使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
},
},
{
name: 'BS60智能电池箱',
attribute: {
外形尺寸: '501×403×252 mm',
空箱重量: '8.37 kg',
可放置物品: 'TB60 智能飞行电池 8 块、WB37 智能电池 4 块',
输入电压: '100-120 VAC50-60 Hz / 220-240 VAC50-60 Hz',
最大输入功率: '1070 W',
输出功率: '100-120 V750 W、220-240 V992 W',
工作环境温度: '-20℃ 至 40℃',
},
},
],
},
]
uavAndIndividualSoldier.individualSoldier = [{
name: 'T950天通-1',
type: '单兵设备',
details: {
基本信息: {
外观设计: '172X81X15.7(不含天线)336g',
操作系统: 'Android P',
CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
存储: '标配:6GB ROM +128G RAM',
显示屏: '6.52吋水滴屏;HD+1600*720(20:9)',
后置摄像头: '后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯',
前置摄像头: '1600万',
传感器相关: '指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
WLAN: '802.11a/b/g/n/AC 支持MIMO',
电池: '6000mAh@3.8V内置不可拆卸支持18W快充',
工作时间: '待机时长180h卫星通话时长16h',
},
制式频段: {
卫星频段: '天通一号卫星',
频段: '2G:GSM 850/900/1800/1900;3G:WCDMA850/900/1900/2100;4G:TD-LTE B38/39/40/41;4G:FDD-LTE B1/3/5/7/8;5G: N1N28N41, N78N79',
双卡: '双nano卡(卫星卡+运营商全网通卡)',
CA: 'B1+B3 下行 2CA(电信);B40/41带内上下行 2CA',
VOLTE: '支持',
},
IO接口: {
USB接口类型: 'TYPE-C USB3.0支持OTG功能',
耳机接口: '3.5mm,美标',
存储卡: '支持TF卡扩展',
},
其它功能: {
蓝牙: 'V5.0',
定位: 'GPS、北斗混合定位、单北斗模式',
NFC: '支持',
充电方式: '三种充电方式(线充、座充、磁吸充电)',
按键: '开机键、音量+/-、 SOS(侧面)、PTT按键',
},
环境适应性: {
工作温度: '-20°~ 60°',
存储温度: '-40°~ 80°',
高温高湿: '(95±3)%(≧40°)24小时',
防护等级: 'IP68',
},
},
}, },
{ {
name: '视觉系统', name: 'T950天通-2',
attribute: { type: '单兵设备',
障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m', details: {
FOV: '前后下65°H50°V、左右上75°H60°V', 基本信息: {
使用环境: 外观设计: '172X81X15.7(不含天线)336g',
'表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境', 操作系统: 'Android P',
}, CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
存储: '标配:6GB ROM +128G RAM',
显示屏: '6.52吋水滴屏;HD+1600*720(20:9)',
后置摄像头: '后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯',
前置摄像头: '1600万',
传感器相关: '指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
WLAN: '802.11a/b/g/n/AC 支持MIMO',
电池: '6000mAh@3.8V内置不可拆卸支持18W快充',
工作时间: '待机时长180h卫星通话时长16h',
},
制式频段: {
卫星频段: '天通一号卫星',
频段: '2G:GSM 850/900/1800/1900;3G:WCDMA850/900/1900/2100;4G:TD-LTE B38/39/40/41;4G:FDD-LTE B1/3/5/7/8;5G: N1N28N41, N78N79',
双卡: '双nano卡(卫星卡+运营商全网通卡)',
CA: 'B1+B3 下行 2CA(电信);B40/41带内上下行 2CA',
VOLTE: '支持',
},
IO接口: {
USB接口类型: 'TYPE-C USB3.0支持OTG功能',
耳机接口: '3.5mm,美标',
存储卡: '支持TF卡扩展',
},
其它功能: {
蓝牙: 'V5.0',
定位: 'GPS、北斗混合定位、单北斗模式',
NFC: '支持',
充电方式: '三种充电方式(线充、座充、磁吸充电)',
按键: '开机键、音量+/-、 SOS(侧面)、PTT按键',
},
环境适应性: {
工作温度: '-20°~ 60°',
存储温度: '-40°~ 80°',
高温高湿: '(95±3)%(≧40°)24小时',
防护等级: 'IP68',
},
},
}, },
{ ]
name: '红外感知系统', navListManagement.navList = [
attribute: { { name: '共享门户', key: 'home' },
障碍物感知范围: '0.1-8 m', { name: '能力集市', key: 'DetailsPageconetent' },
FOV: '30°±15°', { name: '能力云图', key: 'capabilityCloud' },
使用环境: '漫反射,大尺寸,高反射率(反射率>10%)障碍物', { name: '能力统计', key: 'abilityStatistics' },
}, // { name: '', key: 'developmentGuide' },
{ name: '需求中心', key: 'demandCenter' },
// { name: '', key: 'personalCenter' },
// { name: '', key: 'mapTest' },
// { name: '', key: 'houtaiguanli' },
{ name: '赋能案例', key: 'assignCase' },
]
footerDataList.footerList = {
company: {
left: '青岛西海岸新区大数据发展促进局建设',
// eslint-disable-next-line no-undef
right: CONFIGITEM.vNum,
}, },
{ address: [{
name: '上下补光灯', name: '鲁IC备00000000号',
attribute: { value: '政府标识码3702000106',
有效照明距离: '5 m', },
}, {
}, name: '版权所有:青岛西海岸新区大数据发展促进局',
{ value: '地址青岛市西海岸新区长江中路369号',
name: 'FPV摄像头', },
attribute: { {
分辨率: '960p', name: '电话0532-86986596',
FOV: '145°', value: '传真0532-86986596',
帧率: '30 fps', },
}, ],
}, }
{ xhaHasPermissionUser.list = [
name: '智能飞行电池', 'xihaian01',
attribute: { 'xihaian02',
型号: 'TB60', 'xihaian03',
容量: '5935 mAh', 'xihaian04',
电压: '52.8 V', 'admin',
电池类型: 'LiPo 12S', ]
能量: '274 Wh', }
电池整体重量: '约 1.35 kg',
工作环境温度: '-20℃ 至 50℃',
理想存放环境温度: '22℃ 至 30℃',
充电环境温度:
'-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命',
充电时间:
'使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
},
},
{
name: 'BS60智能电池箱',
attribute: {
外形尺寸: '501×403×252 mm',
空箱重量: '8.37 kg',
可放置物品: 'TB60 智能飞行电池 8 块、WB37 智能电池 4 块',
输入电压: '100-120 VAC50-60 Hz / 220-240 VAC50-60 Hz',
最大输入功率: '1070 W',
输出功率: '100-120 V750 W、220-240 V992 W',
工作环境温度: '-20℃ 至 40℃',
},
},
],
},
{
name: '经纬 M300 RTK-2',
url: '',
details: [
{
name: '飞行器',
attribute: {
尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××',
对称电机轴距: '895 mm',
'重量(含下置单云台支架):空机重量(不含电池)':
'3.6 kg空机重量含双电池6.3 kg',
单云台减震球最大负重: '930g',
最大起飞重量: '9 kg',
工作频率: '2.4000-2.4835 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',
'悬停精度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',
最大俯仰角度: '30° P模式且前视视觉系统启用25°',
最大上升速度: 'S 模式6 m/s、P 模式5 m/s',
'最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s',
最大倾斜下降速度: 'S 模式7 m/s',
最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s',
最大飞行海拔高度:
'5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg',
最大可承受风速: '15m/s起飞及降落阶段为12m/s',
最大飞行时间: '55 min',
'适配 DJI 云台':
'禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
支持云台安装方式:
'下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
'IP 防护等级': 'IP45',
GNSS: 'GPS+GLONASS+BeiDou+Galileo',
工作环境温度: '-20°C 至 50°C',
},
},
{
name: '遥控器',
attribute: {
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
'最大信号有效距离(无干扰、无遮挡)':
'NCC/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',
外置电池:
'名称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 小时',
'USB-A 接口供电电压/电流': '5 V / 1.5 A',
工作环境温度: '-20° 至 40° C',
},
},
{
name: '视觉系统',
attribute: {
障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m',
FOV: '前后下65°H50°V、左右上75°H60°V',
使用环境:
'表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境',
},
},
{
name: '红外感知系统',
attribute: {
障碍物感知范围: '0.1-8 m',
FOV: '30°±15°',
使用环境: '漫反射,大尺寸,高反射率(反射率>10%)障碍物',
},
},
{
name: '上下补光灯',
attribute: {
有效照明距离: '5 m',
},
},
{
name: 'FPV摄像头',
attribute: {
分辨率: '960p',
FOV: '145°',
帧率: '30 fps',
},
},
{
name: '智能飞行电池',
attribute: {
型号: 'TB60',
容量: '5935 mAh',
电压: '52.8 V',
电池类型: 'LiPo 12S',
能量: '274 Wh',
电池整体重量: '约 1.35 kg',
工作环境温度: '-20℃ 至 50℃',
理想存放环境温度: '22℃ 至 30℃',
充电环境温度:
'-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命',
充电时间:
'使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
},
},
{
name: 'BS60智能电池箱',
attribute: {
外形尺寸: '501×403×252 mm',
空箱重量: '8.37 kg',
可放置物品: 'TB60 智能飞行电池 8 块、WB37 智能电池 4 块',
输入电压: '100-120 VAC50-60 Hz / 220-240 VAC50-60 Hz',
最大输入功率: '1070 W',
输出功率: '100-120 V750 W、220-240 V992 W',
工作环境温度: '-20℃ 至 40℃',
},
},
],
},
]
uavAndIndividualSoldier.individualSoldier = [
{
name: 'T950天通-1',
type: '单兵设备',
details: {
基本信息: {
外观设计: '172X81X15.7(不含天线)336g',
操作系统: 'Android P',
CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
存储: '标配:6GB ROM +128G RAM',
显示屏: '6.52吋水滴屏;HD+1600*720(20:9)',
后置摄像头:
'后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯',
前置摄像头: '1600万',
传感器相关:
'指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
WLAN: '802.11a/b/g/n/AC 支持MIMO',
电池: '6000mAh@3.8V内置不可拆卸支持18W快充',
工作时间: '待机时长180h卫星通话时长16h',
},
制式频段: {
卫星频段: '天通一号卫星',
频段: '2G:GSM 850/900/1800/1900;3G:WCDMA850/900/1900/2100;4G:TD-LTE B38/39/40/41;4G:FDD-LTE B1/3/5/7/8;5G: N1N28N41, N78N79',
双卡: '双nano卡(卫星卡+运营商全网通卡)',
CA: 'B1+B3 下行 2CA(电信);B40/41带内上下行 2CA',
VOLTE: '支持',
},
IO接口: {
USB接口类型: 'TYPE-C USB3.0支持OTG功能',
耳机接口: '3.5mm,美标',
存储卡: '支持TF卡扩展',
},
其它功能: {
蓝牙: 'V5.0',
定位: 'GPS、北斗混合定位、单北斗模式',
NFC: '支持',
充电方式: '三种充电方式(线充、座充、磁吸充电)',
按键: '开机键、音量+/-、 SOS(侧面)、PTT按键',
},
环境适应性: {
工作温度: '-20°~ 60°',
存储温度: '-40°~ 80°',
高温高湿: '(95±3)%(≧40°)24小时',
防护等级: 'IP68',
},
},
},
{
name: 'T950天通-2',
type: '单兵设备',
details: {
基本信息: {
外观设计: '172X81X15.7(不含天线)336g',
操作系统: 'Android P',
CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
存储: '标配:6GB ROM +128G RAM',
显示屏: '6.52吋水滴屏;HD+1600*720(20:9)',
后置摄像头:
'后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯',
前置摄像头: '1600万',
传感器相关:
'指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
WLAN: '802.11a/b/g/n/AC 支持MIMO',
电池: '6000mAh@3.8V内置不可拆卸支持18W快充',
工作时间: '待机时长180h卫星通话时长16h',
},
制式频段: {
卫星频段: '天通一号卫星',
频段: '2G:GSM 850/900/1800/1900;3G:WCDMA850/900/1900/2100;4G:TD-LTE B38/39/40/41;4G:FDD-LTE B1/3/5/7/8;5G: N1N28N41, N78N79',
双卡: '双nano卡(卫星卡+运营商全网通卡)',
CA: 'B1+B3 下行 2CA(电信);B40/41带内上下行 2CA',
VOLTE: '支持',
},
IO接口: {
USB接口类型: 'TYPE-C USB3.0支持OTG功能',
耳机接口: '3.5mm,美标',
存储卡: '支持TF卡扩展',
},
其它功能: {
蓝牙: 'V5.0',
定位: 'GPS、北斗混合定位、单北斗模式',
NFC: '支持',
充电方式: '三种充电方式(线充、座充、磁吸充电)',
按键: '开机键、音量+/-、 SOS(侧面)、PTT按键',
},
环境适应性: {
工作温度: '-20°~ 60°',
存储温度: '-40°~ 80°',
高温高湿: '(95±3)%(≧40°)24小时',
防护等级: 'IP68',
},
},
},
]
navListManagement.navList = [
{ name: '共享门户', key: 'home' },
{ name: '能力集市', key: 'DetailsPageconetent' },
{ name: '能力云图', key: 'capabilityCloud' },
{ name: '能力统计', key: 'abilityStatistics' },
// { name: '', key: 'developmentGuide' },
{ name: '需求中心', key: 'demandCenter' },
// { name: '', key: 'personalCenter' },
// { name: '', key: 'mapTest' },
// { name: '', key: 'houtaiguanli' },
{ name: '赋能案例', key: 'assignCase' },
]
footerDataList.footerList = {
company: {
left: '青岛西海岸新区大数据发展促进局建设',
// eslint-disable-next-line no-undef
right: CONFIGITEM.vNum,
},
address: [
{
name: '鲁IC备00000000号',
value: '政府标识码3702000106',
},
{
name: '版权所有:青岛西海岸新区大数据发展促进局',
value: '地址青岛市西海岸新区长江中路369号',
},
{
name: '电话0532-86986596',
value: '传真0532-86986596',
},
],
}
xhaHasPermissionUser.list = [
'xihaian01',
'xihaian02',
'xihaian03',
'xihaian04',
'admin',
]
}

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-05-06 11:12:00 * @Date: 2022-05-06 11:12:00
* @LastEditors: hisense.wuhongjian * @LastEditors: Light
* @LastEditTime: 2022-08-03 10:13:59 * @LastEditTime: 2022-11-16 10:21:49
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
@ -13,56 +13,138 @@
</div> </div>
</template> </template>
<script setup> <script setup>
import zhCN from 'ant-design-vue/es/locale/zh_CN' import onWholeWaterMark from '@/utils/waterMark'
import Cookies from 'js-cookie' import * as moment from 'moment'
import { onBeforeUnmount } from 'vue' import { getUser } from '@/api/home'
import { useRouter } from 'vue-router' import { getCategoryTreePage } from '@/api/personalCenter'
import mybus from '@/myplugins/mybus' import zhCN from 'ant-design-vue/es/locale/zh_CN'
const router = useRouter() import Cookies from 'js-cookie'
import { onBeforeUnmount, onMounted, watch, nextTick } from 'vue'
import { useRouter } from 'vue-router'
import mybus from '@/myplugins/mybus'
const router = useRouter()
const locale = zhCN const locale = zhCN
const token = Cookies.get('ucsToken') const token = Cookies.get('ucsToken')
console.log('token=================>', token) console.log('token=================>', token)
let ws = new WebSocket( let ws = new WebSocket(
`ws://${window.SITE_CONFIG['websocketURL']}/websocket?token=${token}`
)
// ws.send()
// onmessage
ws.onmessage = function (e) {
console.log('WebSocket服务器返回的信息: ' + e.data)
mybus.emit('getMynotice')
//
if (router.currentRoute.value.name === 'mynoticeView') {
mybus.emit('noticeListInit')
}
}
ws.onerror = function (e) {
console.log('WebSocket连接异常============================>', e)
ws = new WebSocket(
`ws://${window.SITE_CONFIG['websocketURL']}/websocket?token=${token}` `ws://${window.SITE_CONFIG['websocketURL']}/websocket?token=${token}`
) )
} // ws.send()
ws.onclose = function (e) { // onmessage
console.log('WebSocket连接断开============================>', e) ws.onmessage = function (e) {
} console.log('WebSocket服务器返回的信息: ' + e.data)
onBeforeUnmount(() => { mybus.emit('getMynotice')
// 4., //
ws.close() if (router.currentRoute.value.name === 'mynoticeView') {
}) mybus.emit('noticeListInit')
}
}
ws.onerror = function (e) {
console.log('WebSocket连接异常============================>', e)
ws = new WebSocket(
`ws://${window.SITE_CONFIG['websocketURL']}/websocket?token=${token}`
)
}
ws.onclose = function (e) {
console.log('WebSocket连接断开============================>', e)
}
let realName = '默认水印'
const arr = []
const changeWaterMark = (newValue) => {
console.log('监听', newValue, arr)
if (document.getElementById(realName.charCodeAt())) {
if (arr.indexOf(newValue) > -1) {
document.getElementById(realName.charCodeAt()).style.opacity = 1
document.getElementById(
moment().format('YYYY-MM-DD').charCodeAt()
).style.opacity = 1
} else {
document.getElementById(realName.charCodeAt()).style.opacity = 0
document.getElementById(
moment().format('YYYY-MM-DD').charCodeAt()
).style.opacity = 0
}
} else if (document.getElementById('默认水印'.charCodeAt())) {
if (arr.indexOf(newValue) > -1) {
document.getElementById('默认水印'.charCodeAt()).style.opacity = 1
document.getElementById(
moment().format('YYYY-MM-DD').charCodeAt()
).style.opacity = 1
} else {
document.getElementById('默认水印'.charCodeAt()).style.opacity = 0
document.getElementById(
moment().format('YYYY-MM-DD').charCodeAt()
).style.opacity = 0
}
}
}
const waterMarkInit = (newValue) => {
getUser().then((res) => {
if (res.data.code == 0) {
realName = res.data.data.realName
}
onWholeWaterMark(
[realName, moment().format('YYYY-MM-DD')],
600,
300,
30,
50
)
getCategoryTreePage({
page: 1,
limit: 999,
dictTypeId: '1592357067014803457',
}).then((res) => {
arr.length = 0
res.data.data.list.map((val) => {
arr.push(val.dictValue)
})
if (newValue) {
changeWaterMark(newValue)
}
})
})
}
watch(
() => router.currentRoute.value.path,
(newValue, oldValue) => {
console.log(
'路由变化',
newValue,
oldValue,
realName,
realName.charCodeAt()
)
//
if (oldValue == '/login' || oldValue == '/') {
waterMarkInit(newValue)
}
changeWaterMark(newValue)
},
{ immediate: true }
)
onMounted(() => {
waterMarkInit()
})
onBeforeUnmount(() => {
// 4.,
ws.close()
})
</script> </script>
<style lang="less"> <style lang="less">
@import '~@/vab/styles/vab.less'; @import '~@/vab/styles/vab.less';
#vue-admin-beautiful { #vue-admin-beautiful {
max-width: 1920px; max-width: 1920px;
// max-height: 1080px; // max-height: 1080px;
margin: auto; margin: auto;
height: 100%; height: 100%;
position: relative; position: relative;
background-color: #fff; background-color: #fff;
} }
body { body {
font-size: 0.14rem; font-size: 0.14rem;
} }
</style> </style>

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-04-01 19:19:40 * @Date: 2022-04-01 19:19:40
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-10-31 15:52:57 * @LastEditTime: 2022-11-18 14:09:20
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
import request from '@/utils/request' import request from '@/utils/request'
@ -526,3 +526,10 @@ export function getGisByArea(data) {
data, data,
}) })
} }
export function getPolicyCloudService(data) {
return request({
url: '/resource/getPolicyCloudService',
method: 'post',
data,
})
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

View File

@ -0,0 +1,69 @@
/*
* @Author: Light
* @Date: 2022-11-14 15:01:54
* @LastEditors: Light
* @LastEditTime: 2022-11-16 09:57:28
* @Description: 水印
*/
const watermark = {
timer: null,
set: () => {},
}
const setWatermark = (str, width, height, size, top, index) => {
console.log('生成水印')
const id = str.charCodeAt()
if (document.getElementById(id) !== null) {
document.body.removeChild(document.getElementById(id))
}
const can = document.createElement('canvas')
can.width = width
can.height = height
const cans = can.getContext('2d')
cans.rotate((-20 * Math.PI) / 180)
cans.font = size + 'px Microsoft YaHei'
cans.fillStyle = 'rgba(200, 200, 200, 0.4)'
cans.textAlign = 'left'
cans.textBaseline = 'middle'
cans.fillText(str, can.width / 3, can.height / 2)
const WATER_MARK = document.createElement('div')
const ALL_WIDTH = document.documentElement.clientWidth + 'px'
const ALL_HEIGHT = document.documentElement.clientHeight + 'px'
WATER_MARK.id = id
WATER_MARK.style.cssText = `
position: fixed;
top: ${index * top}px;
left: 0;
zIndex: 99999999;
pointer-events: none;
width: ${ALL_WIDTH};
height: ${ALL_HEIGHT};
background: url(${can.toDataURL('image/png')}) left top repeat;
opacity: 0;
`
document.body.appendChild(WATER_MARK)
return id
}
//
watermark.set = (str, width, height, size, top, index) => {
let id = setWatermark(str, width, height, size, top, index)
watermark.timer && clearTimeout(watermark.timer)
watermark.timer = setTimeout(() => {
if (document.getElementById(id) === null) {
id = setWatermark(str, width, height, size, top, index)
}
}, 300)
window.onresize = () => {
setWatermark(str, width, height, size, top, index)
}
}
const onWholeWaterMark = (arr, width, height, size, top) => {
arr.map((str, index) => {
watermark.set(str, width, height, size, top, index)
})
}
export default onWholeWaterMark

View File

@ -259,7 +259,7 @@
padding-bottom: 0; padding-bottom: 0;
.main { .main {
width: 100%; width: 100%;
margin-top: 10px; margin-top: 60px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
@ -273,7 +273,7 @@
flex-wrap: wrap; flex-wrap: wrap;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
margin-bottom: 26px; margin-bottom: -10px;
.line { .line {
width: 34px; width: 34px;
height: 3px; height: 3px;
@ -356,6 +356,8 @@
color: #734204; color: #734204;
} }
.content-neirong { .content-neirong {
font-size: 18px;
font-weight: 600;
width: 215px; width: 215px;
text-overflow: -o-ellipsis-lastline; text-overflow: -o-ellipsis-lastline;
overflow: hidden; overflow: hidden;

View File

@ -31,7 +31,11 @@
查看更多 查看更多
<span class="gengduo"></span> <span class="gengduo"></span>
</div> </div>
<a-empty v-else style="margin-top: 160px; margin-bottom: 60px" /> <a-empty
v-else
style="margin-top: 160px; margin-bottom: 60px"
:imageStyle="{ color: '#0058e1' }"
/>
</div> </div>
</div> </div>
</template> </template>
@ -92,6 +96,7 @@
dataList.value[index].photo = photo.value[4] dataList.value[index].photo = photo.value[4]
break break
} }
dataList.value = []
}) })
console.log('123123123qwee', dataList.value) console.log('123123123qwee', dataList.value)

View File

@ -240,8 +240,8 @@
}, },
legend: { legend: {
icon: 'emptyCircle', icon: 'emptyCircle',
height: 3, itemGap: 20,
itemGap: 40, padding: 20,
// orient: 'horizontal', // orient: 'horizontal',
bottom: 0, bottom: 0,
formatter: function (name) { formatter: function (name) {
@ -261,8 +261,7 @@
{ {
center: ['50%', '40%'], center: ['50%', '40%'],
type: 'pie', type: 'pie',
selectedMode: 'single', // selectedMode: 'single',
silent: true,
radius: ['50%', '30%'], radius: ['50%', '30%'],
color: ['#fe845e', '#6cc95a', '#02d1b0', '#1772ff', '#FAC858'], color: ['#fe845e', '#6cc95a', '#02d1b0', '#1772ff', '#FAC858'],
top: '0', top: '0',
@ -290,7 +289,6 @@
type: 'pie', type: 'pie',
center: ['50%', '40%'], center: ['50%', '40%'],
radius: ['58%', '50%'], radius: ['58%', '50%'],
silent: true,
itemStyle: { itemStyle: {
normal: { normal: {
color: '#c2c7d6', color: '#c2c7d6',
@ -477,7 +475,7 @@
barGap: '-100%', barGap: '-100%',
itemStyle: { itemStyle: {
normal: { normal: {
color: '#C1232B', color: '#ECB53F',
}, },
}, },
// data: [5, 20, 36, 10, 10, 20] // data: [5, 20, 36, 10, 10, 20]
@ -490,7 +488,7 @@
barGap: '-100%', barGap: '-100%',
itemStyle: { itemStyle: {
normal: { normal: {
color: '#B5C334', color: '#FE845E',
}, },
}, },
// data: [5, 20, 36, 10, 10, 20] // data: [5, 20, 36, 10, 10, 20]
@ -503,7 +501,7 @@
barGap: '-100%', barGap: '-100%',
itemStyle: { itemStyle: {
normal: { normal: {
color: '#FCCE10', color: '#6CC95A',
}, },
}, },
// data: [5, 20, 36, 10, 10, 20] // data: [5, 20, 36, 10, 10, 20]
@ -516,7 +514,7 @@
barGap: '-100%', barGap: '-100%',
itemStyle: { itemStyle: {
normal: { normal: {
color: '#E87C25', color: '#02D1B0',
}, },
}, },
// data: [5, 20, 36, 10, 10, 20] // data: [5, 20, 36, 10, 10, 20]
@ -529,20 +527,7 @@
barGap: '-100%', barGap: '-100%',
itemStyle: { itemStyle: {
normal: { normal: {
color: '#27727B', color: '#1772FF',
},
},
// data: [5, 20, 36, 10, 10, 20]
data: [],
},
{
name: '',
type: 'bar',
barWidth: 35,
barGap: '-100%',
itemStyle: {
normal: {
color: '#FE8463',
}, },
}, },
// data: [5, 20, 36, 10, 10, 20] // data: [5, 20, 36, 10, 10, 20]
@ -560,6 +545,7 @@
for (let i = 0; i < 5; i++) { for (let i = 0; i < 5; i++) {
if (i == index) { if (i == index) {
arr.push(val.value) arr.push(val.value)
// arr.push(10) // 便
} else { } else {
arr.push(0) arr.push(0)
} }

View File

@ -8,9 +8,17 @@
<div class="SharingSituation-left"> <div class="SharingSituation-left">
<div> <div>
<div class="left-title"> <div class="left-title">
<div>日平均浏览量 {{ browseAvg }}</div> <div>
日平均浏览量
<span>{{ browseAvg }}</span>
</div>
<div></div> <div></div>
<div>日最大浏览量{{ browseMax }}</div> <div>
日最大浏览量
<span>{{ browseMax }}</span>
</div>
</div> </div>
<div class="left-content-title"> <div class="left-content-title">
<div <div
@ -34,7 +42,7 @@
style=" style="
font-size: 14px; font-size: 14px;
float: left; float: left;
margin-left: 420px; margin-left: 505px;
text-align: center; text-align: center;
padding-top: 6px; padding-top: 6px;
" "
@ -42,6 +50,9 @@
单位: 单位:
</span> </span>
<p class="p">申请量</p> <p class="p">申请量</p>
<p class="p" style="position: absolute; top: 420px; left: -564px">
浏览量
</p>
</div> </div>
<div class="volume_box"> <div class="volume_box">
@ -61,12 +72,12 @@
backgroundImage: `url(${item.photo}) `, backgroundImage: `url(${item.photo}) `,
}" }"
></div> ></div>
<div class="name">{{ item.type }}</div> <div class="type">{{ item.type }}</div>
<div class-="type">{{ item.amount }}</div> <div class="amount">{{ item.amount }}</div>
</div> </div>
<div class="volume_box-son-bottom" v-else> <div class="volume_box-son-bottom" v-else>
<div class="type">{{ item.amount }}</div> <div class="amount">{{ item.amount }}</div>
<div class="name">{{ item.type }}</div> <div class="type">{{ item.type }}</div>
<div <div
class="photo" class="photo"
:style="{ :style="{
@ -97,12 +108,20 @@
let myChart = echarts.init(chartDom) let myChart = echarts.init(chartDom)
let option let option
option = { option = {
grid: {
top: '10%',
right: '5%',
bottom: '10%',
left: '5%',
},
xAxis: { xAxis: {
type: 'category', type: 'category',
data: datas.time, data: datas.time,
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
name: '单位:次',
// minInterval: 1,
}, },
tooltip: { tooltip: {
show: true, show: true,
@ -255,16 +274,21 @@
} }
.situation { .situation {
font-weight: 600; font-size: 30px;
font-style: normal; color: #000;
font-size: 24px;
text-align: center; text-align: center;
} display: flex;
.line { flex-direction: column;
width: 34px; flex-wrap: wrap;
height: 3px; justify-content: center;
background-color: #0058e1; align-items: center;
margin-top: 8px; margin-bottom: 26px;
.line {
width: 34px;
height: 3px;
background-color: #0058e1;
margin-top: 8px;
}
} }
.SharingSituation { .SharingSituation {
@ -274,6 +298,7 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
margin-top: 40px; margin-top: 40px;
position: relative;
.SharingSituation-left { .SharingSituation-left {
width: 666px; width: 666px;
@ -282,6 +307,7 @@
z-index: 2; z-index: 2;
.left-title { .left-title {
height: 50px; height: 50px;
line-height: 50px;
width: 100%; width: 100%;
background: #0058e1; background: #0058e1;
color: #ffffff; color: #ffffff;
@ -290,6 +316,10 @@
align-items: center; align-items: center;
border-radius: 2px; border-radius: 2px;
padding: 0 80px; padding: 0 80px;
span {
font-size: 26px;
font-weight: 600;
}
} }
.left-content-title { .left-content-title {
display: flex; display: flex;
@ -321,8 +351,8 @@
.Chart { .Chart {
flex: 1; flex: 1;
width: 598px; width: 638px;
height: 286px; height: 296px;
background: #f7f7f7; background: #f7f7f7;
text-align: center; text-align: center;
margin: auto; margin: auto;
@ -333,15 +363,16 @@
border-radius: 2px; border-radius: 2px;
margin-left: -40px; margin-left: -40px;
.p { .p {
width: 96px; width: 95px;
height: 36px; height: 48px;
color: #0058e1; color: #0058e1;
font-size: 18px; font-size: 18px;
background: url('../../../assets/abilityStatistics/gongxiangqingkuangliulanl.png') background: url('../../../assets/abilityStatistics/gongxiangqingkuangliulanl.png')
no-repeat; no-repeat;
background-size: 100%;
text-align: center; text-align: center;
line-height: 36px; line-height: 48px;
margin-left: 500px; margin-left: 570px;
} }
.volume_box { .volume_box {
width: 666px; width: 666px;
@ -373,6 +404,13 @@
height: 46px; height: 46px;
width: 46px; width: 46px;
} }
.amount {
font-size: 30px;
font-weight: 600;
}
.type {
font-size: 18px;
}
} }
.volume_box-son-bottom { .volume_box-son-bottom {
position: absolute; position: absolute;

File diff suppressed because it is too large Load Diff

View File

@ -7,17 +7,19 @@
--> -->
<template> <template>
<div class="box"> <div class="box">
<div class="header">能力上架申请</div> <!-- <div class="header">能力上架申请</div> -->
<div class="top"> <div class="top">
<div <div
v-for="(nav, index) in navList" v-for="(nav, index) in navList"
:key="nav" :key="nav"
:class="[index <= navList2.indexOf(showView) ? 'finish' : '']" :class="[index <= navList2.indexOf(showView) ? 'finish' : 'ff']"
> >
<span class="bg-box"> <div class="wai">
<span>{{ index + 1 }}</span> <span class="bg-box">
</span> <span>{{ index + 1 }}</span>
<span>{{ nav.name }}</span> </span>
<span class="bg-name">{{ nav.name }}</span>
</div>
<div class="line" v-if="index !== navList.length - 1"></div> <div class="line" v-if="index !== navList.length - 1"></div>
</div> </div>
</div> </div>
@ -101,7 +103,7 @@
></application-deployment-use> --> ></application-deployment-use> -->
</div> </div>
<div class="btn" :class="showView === '基本信息' ? 'first' : ''"> <div class="btn" :class="showView === '基本信息' ? 'first' : ''">
<button @click="close()">取消</button>
<a-popconfirm <a-popconfirm
v-if=" v-if="
@ -116,13 +118,14 @@
@confirm="changeGnjs('上一步')" @confirm="changeGnjs('上一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>上一步</button> <button class="buzhou">上一步</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView == '功能介绍'" @click="changeGnjs('上一步')"> <button class="buzhou" v-else-if="showView == '功能介绍'" @click="changeGnjs('上一步')">
上一步 上一步
</button> </button>
<!-- 分割线 --> <!-- 分割线 -->
<button <button
class="buzhou"
v-show="showView !== '基本信息' && showView === '部署与应用'" v-show="showView !== '基本信息' && showView === '部署与应用'"
@click="back()" @click="back()"
> >
@ -141,12 +144,12 @@
@confirm="changeBs('预览')" @confirm="changeBs('预览')"
@cancel="cancel" @cancel="cancel"
> >
<button>预览</button> <button class="buzhou">预览</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView === '部署与应用'" @click="preview()"> <button class="buzhou" v-else-if="showView === '部署与应用'" @click="preview()">
预览 预览
</button> </button>
<button v-show="showView === '基本信息'" @click="next()">下一步</button> <button class="buzhou" v-show="showView === '基本信息'" @click="next()">下一步</button>
<a-popconfirm <a-popconfirm
v-if=" v-if="
showView == '功能介绍' && showView == '功能介绍' &&
@ -160,9 +163,9 @@
@confirm="changeGnjs('下一步')" @confirm="changeGnjs('下一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>下一步</button> <button class="buzhou">下一步</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView == '功能介绍'" @click="changeGnjs('下一步')"> <button class="buzhou" v-else-if="showView == '功能介绍'" @click="changeGnjs('下一步')">
下一步 下一步
</button> </button>
<a-popconfirm <a-popconfirm
@ -178,11 +181,12 @@
@confirm="changeBs('提交')" @confirm="changeBs('提交')"
@cancel="cancel" @cancel="cancel"
> >
<button>提交</button> <button class="buzhou">提交</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView === '部署与应用'" @click="submit()"> <button class="buzhou" v-else-if="showView === '部署与应用'" @click="submit()">
提交 提交
</button> </button>
<button class="quxiao" @click="close()">取消</button>
</div> </div>
</div> </div>
</template> </template>
@ -374,7 +378,7 @@
// ) { // ) {
// notFilled.value.push('') // notFilled.value.push('')
// } // }
if (notFilled.value.length > 0) { if (notFilled.value.length > 0) {
message.warning('请填写必填字段') message.warning('请填写必填字段')
console.log(notFilled.value) console.log(notFilled.value)
@ -476,7 +480,7 @@
getCategoryTree().then((res) => { getCategoryTree().then((res) => {
// console.clear() // console.clear()
res.data.data = res.data.data.filter( res.data.data = res.data.data.filter(
(item) => item.name === '应用资源' (item) => item.name === '应用资源'
)[0] )[0]
navList.value = [] navList.value = []
navList2.value = [] navList2.value = []
@ -715,85 +719,120 @@
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.box { .box {
position: relative; position: relative;
top: 64px; top: 0.64rem;
margin: 15px 400px; // margin: 0.15rem 3rem;
padding: 10px; padding: 0.1rem;
background: #fff; background: #fff;
.header { .header {
font-size: 28px; font-size: 0.28rem;
font-weight: 600; font-weight: 600;
} }
.vue-box { .vue-box {
padding: 0 100px; padding: 0 1rem;
} }
.top { .top {
margin: 10px 20px 0; font-size: 16px;
padding: 15px 30px; margin: 0.32px 0.4px 0;
background: #edf4fc; padding: 24px 24pxs;
display: flex; display: flex;
justify-content: space-between; justify-content: center;
div { .ff {
font-size: 18px; color: #b3b3b3;
color: #999; display: inline-flex;
display: flex; justify-content: center;
justify-content: center; align-items: center;
align-items: center; .wai {
margin-top: 14px;
.bg-box { .bg-box {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 45px; width: 32px;
height: 45px; height: 32px;
border-radius: 50%; border-radius: 50%;
border: 1px solid rgb(214, 214, 214); // border: 0.01rem solid rgb(214, 214, 214);
margin-right: 10px; margin: 0px 16px;
transition: all 0.3s ease; transition: all 0.3s ease;
span { span {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 30px; width: 32px;
height: 30px; height: 32px;
border-radius: 50%; border-radius: 50%;
border: 1px solid #999; border: 1px solid #d9d9d9;
} }
} }
.line { .bg-name {
margin-left: 10px; color: #b3b3b3;
width: 280px;
height: 1px;
background: #999;
} }
} }
.finish { .line {
color: #0087ff; // margin-left: 16px;
width: 326px;
height: 2px;
background: #d9d9d9;
}
}
.finish {
color: #fff;
display: inline-flex;
justify-content: center;
align-items: center;
.wai {
margin-top: 14px;
.bg-box { .bg-box {
background: #9ccefa; display: flex;
color: #fff; justify-content: center;
border: 1px solid #9ccefa; align-items: center;
width: 32px;
height: 32px;
border-radius: 50%;
// border: 0.01rem solid rgb(214, 214, 214);
margin: 0px 16px;
transition: all 0.3s ease;
span { span {
background: #0087ff; background: #0058e1;
border: 1px solid #0087ff; display: flex;
justify-content: center;
align-items: center;
width: 32px;
height: 32px;
border-radius: 50%;
border: 1px solid solid #0058e1;
} }
} }
.line { .bg-name {
background: #0087ff; color: #212121;
font-weight: bold;
} }
} }
.line {
// margin-left: 16px;
width: 326px;
height: 2px;
background: #0058e1;
}
} }
.btn { .btn {
display: flex; display: flex;
justify-content: space-between; justify-content: space-around;
padding: 10px 350px 0; padding: 0.1rem 3.5rem 0;
button { button {
cursor: pointer; cursor: pointer;
width: 80px; font-size: 0.14rem;
height: 35px; width: 0.8rem;
height: 0.35rem;
text-align: center; text-align: center;
color: #fff; color: #fff;
border: none; border: 0.01rem solid #9ccefa;
border-radius: 6px; span {
background: #0087ff;
border: 0.01rem solid #0087ff;
}
}
.line {
background: #0087ff; background: #0087ff;
} }
button:nth-of-type(1) { button:nth-of-type(1) {
@ -805,7 +844,55 @@
} }
} }
.first { .first {
justify-content: space-around; justify-content: center;
} }
} }
.btn {
display: flex;
justify-content: center;
padding: 0.1rem 3.5rem 0;
// button {
// cursor: pointer;
// font-size: 14px;
// text-align: center;
// color: #fff;
// border: none;
// border-radius: 0.06rem;
// background: #0087ff;
// margin-right:12px;
// margin-right:12px;
.quxiao{
margin-right:12px;
cursor: pointer;
width: 90px;
height: 32px;
background: #ffffff;
color:#0058e1;
border-radius: 2px;
border: 1px #0058e1 solid;
}
// .quxiao:hover{
// background: #0058e1;
// color:#ffffff;
// }
.buzhou{
margin-right:12px;
cursor: pointer;
background: #0058e1;
color:#ffffff;
width: 90px;
height: 32px;
border-radius: 2px;
border: 1px #0058e1 solid;
}
// .buzhou:hover{
// background: #ffffff;
// color:#0058e1;
// }
}
.first {
justify-content: center;
}
}
</style> </style>

View File

@ -7,17 +7,19 @@
--> -->
<template> <template>
<div class="box"> <div class="box">
<div class="header">能力上架申请</div> <!-- <div class="header">能力上架申请</div> -->
<div class="top"> <div class="top">
<div <div
v-for="(nav, index) in navList" v-for="(nav, index) in navList"
:key="nav" :key="nav"
:class="[index <= navList2.indexOf(showView) ? 'finish' : '']" :class="[index <= navList2.indexOf(showView) ? 'finish' : 'ff']"
> >
<span class="bg-box"> <div class="wai">
<span>{{ index + 1 }}</span> <span class="bg-box">
</span> <span>{{ index + 1 }}</span>
<span>{{ nav.name }}</span> </span>
<span class="bg-name">{{ nav.name }}</span>
</div>
<div class="line" v-if="index !== navList.length - 1"></div> <div class="line" v-if="index !== navList.length - 1"></div>
</div> </div>
</div> </div>
@ -80,7 +82,7 @@
></put-on-the-shelf> ></put-on-the-shelf>
</div> </div>
<div class="btn" :class="showView === '基本信息' ? 'first' : ''"> <div class="btn" :class="showView === '基本信息' ? 'first' : ''">
<button @click="close()">取消</button>
<a-popconfirm <a-popconfirm
v-if=" v-if="
showView == '功能介绍' && showView == '功能介绍' &&
@ -94,9 +96,10 @@
@confirm="changeGnjs('上一步')" @confirm="changeGnjs('上一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>上一步</button> <button class="buzhou" >上一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '功能介绍' && showView == '功能介绍' &&
gnjs[0].list.filter((val) => val.note1 !== '').length == gnjs[0].list.filter((val) => val.note1 !== '').length ==
@ -119,9 +122,10 @@
@confirm="changeYycj('上一步')" @confirm="changeYycj('上一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>上一步</button> <button class="buzhou" >上一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '应用场景' && showView == '应用场景' &&
yycj[0].list.filter((val) => val.note1 !== '').length == yycj[0].list.filter((val) => val.note1 !== '').length ==
@ -131,7 +135,7 @@
> >
上一步 上一步
</button> </button>
<button v-else-if="showView !== '基本信息'" @click="back()"> <button class="buzhou" v-else-if="showView !== '基本信息'" @click="back()">
上一步 上一步
</button> </button>
<a-popconfirm <a-popconfirm
@ -146,9 +150,9 @@
@confirm="changeBs('预览')" @confirm="changeBs('预览')"
@cancel="cancel" @cancel="cancel"
> >
<button>预览</button> <button class="buzhou" >预览</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView === '部署与使用'" @click="preview()"> <button class="buzhou" v-else-if="showView === '部署与使用'" @click="preview()">
预览 预览
</button> </button>
<a-popconfirm <a-popconfirm
@ -164,9 +168,10 @@
@confirm="changeGnjs('下一步')" @confirm="changeGnjs('下一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>下一步</button> <button class="buzhou" >下一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '功能介绍' && showView == '功能介绍' &&
gnjs[0].list.filter((val) => val.note1 !== '').length == gnjs[0].list.filter((val) => val.note1 !== '').length ==
@ -189,9 +194,10 @@
@confirm="changeYycj('下一步')" @confirm="changeYycj('下一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>下一步</button> <button class="buzhou" >下一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '应用场景' && showView == '应用场景' &&
yycj[0].list.filter((val) => val.note1 !== '').length == yycj[0].list.filter((val) => val.note1 !== '').length ==
@ -201,7 +207,7 @@
> >
下一步 下一步
</button> </button>
<button v-else-if="showView !== '部署与使用'" @click="next()"> <button class="buzhou" v-else-if="showView !== '部署与使用'" @click="next()">
下一步 下一步
</button> </button>
<a-popconfirm <a-popconfirm
@ -216,11 +222,12 @@
@confirm="changeBs('提交')" @confirm="changeBs('提交')"
@cancel="cancel" @cancel="cancel"
> >
<button>提交</button> <button class="buzhou" >提交</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView === '部署与使用'" @click="submit()"> <button class="buzhou" v-else-if="showView === '部署与使用'" @click="submit()">
提交 提交
</button> </button>
<button class="quxiao" @click="close()">取消</button>
</div> </div>
</div> </div>
</template> </template>
@ -572,7 +579,7 @@
getCategoryTree().then((res) => { getCategoryTree().then((res) => {
// console.clear() // console.clear()
res.data.data = res.data.data res.data.data = res.data.data
.filter((item) => item.name === '组件服务')[0] .filter((item) => item.name === '组件服务')[0]
.children.filter((item) => item.name === '业务组件')[0] .children.filter((item) => item.name === '业务组件')[0]
navList.value = [] navList.value = []
navList2.value = [] navList2.value = []
@ -802,86 +809,121 @@
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.box { .box {
position: relative; position: relative;
top: 64px; top: 0.64rem;
margin: 15px 400px; // margin: 0.15rem 3rem;
padding: 10px; padding: 0.1rem;
background: #fff; background: #fff;
.header { .header {
font-size: 28px; font-size: 0.28rem;
font-weight: 600; font-weight: 600;
} }
.vue-box { .vue-box {
padding: 0 100px; padding: 0 1rem;
} }
.top { .top {
margin: 10px 20px 0; font-size: 16px;
padding: 15px 30px; margin: 0.32px 0.4px 0;
background: #edf4fc; padding: 24px 24pxs;
display: flex; display: flex;
justify-content: space-between; justify-content: center;
div { .ff {
font-size: 18px; color: #b3b3b3;
color: #999; display: inline-flex;
display: flex; justify-content: center;
justify-content: center; align-items: center;
align-items: center; .wai {
margin-top: 14px;
.bg-box { .bg-box {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 45px; width: 32px;
height: 45px; height: 32px;
border-radius: 50%; border-radius: 50%;
border: 1px solid rgb(214, 214, 214); // border: 0.01rem solid rgb(214, 214, 214);
margin-right: 10px; margin: 0px 16px;
transition: all 0.3s ease; transition: all 0.3s ease;
span { span {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 30px; width: 32px;
height: 30px; height: 32px;
border-radius: 50%; border-radius: 50%;
border: 1px solid #999; border: 1px solid #d9d9d9;
} }
} }
.line { .bg-name {
margin-left: 10px; color: #b3b3b3;
width: 130px;
height: 1px;
background: #999;
} }
} }
.finish { .line {
color: #0087ff; // margin-left: 16px;
width: 326px;
height: 2px;
background: #d9d9d9;
}
}
.finish {
color: #fff;
display: inline-flex;
justify-content: center;
align-items: center;
.wai {
margin-top: 14px;
.bg-box { .bg-box {
background: #9ccefa; display: flex;
color: #fff; justify-content: center;
border: 1px solid #9ccefa; align-items: center;
width: 32px;
height: 32px;
border-radius: 50%;
// border: 0.01rem solid rgb(214, 214, 214);
margin: 0px 16px;
transition: all 0.3s ease;
span { span {
background: #0087ff; background: #0058e1;
border: 1px solid #0087ff; display: flex;
justify-content: center;
align-items: center;
width: 32px;
height: 32px;
border-radius: 50%;
border: 1px solid solid #0058e1;
} }
} }
.line { .bg-name {
background: #0087ff; color: #212121;
font-weight: bold;
} }
} }
.line {
// margin-left: 16px;
width: 326px;
height: 2px;
background: #0058e1;
}
} }
.btn { .btn {
display: flex; display: flex;
justify-content: space-between; justify-content: space-around;
padding: 10px 350px 0; padding: 0.1rem 3.5rem 0;
button { button {
cursor: pointer; cursor: pointer;
width: 80px; font-size: 0.14rem;
height: 35px; width: 0.8rem;
height: 0.35rem;
text-align: center; text-align: center;
color: #fff; color: #fff;
border: none; border: 0.01rem solid #9ccefa;
border-radius: 6px; span {
background: #0087ff;
border: 0.01rem solid #0087ff;
}
}
.line {
background: #0087ff; background: #0087ff;
} }
button:nth-of-type(1) { button:nth-of-type(1) {
@ -893,7 +935,55 @@
} }
} }
.first { .first {
justify-content: space-around; justify-content: center;
} }
} }
.btn {
display: flex;
justify-content: center;
padding: 0.1rem 3.5rem 0;
// button {
// cursor: pointer;
// font-size: 14px;
// text-align: center;
// color: #fff;
// border: none;
// border-radius: 0.06rem;
// background: #0087ff;
// margin-right:12px;
// margin-right:12px;
.quxiao{
margin-right:12px;
cursor: pointer;
width: 90px;
height: 32px;
background: #ffffff;
color:#0058e1;
border-radius: 2px;
border: 1px #0058e1 solid;
}
// .quxiao:hover{
// background: #0058e1;
// color:#ffffff;
// }
.buzhou{
margin-right:12px;
cursor: pointer;
background: #0058e1;
color:#ffffff;
width: 90px;
height: 32px;
border-radius: 2px;
border: 1px #0058e1 solid;
}
// .buzhou:hover{
// background: #ffffff;
// color:#0058e1;
// }
}
.first {
justify-content: center;
}
}
</style> </style>

View File

@ -7,17 +7,19 @@
--> -->
<template> <template>
<div class="box"> <div class="box">
<div class="header">能力上架申请</div> <!-- <div class="header">能力上架申请</div> -->
<div class="top"> <div class="top">
<div <div
v-for="(nav, index) in navList" v-for="(nav, index) in navList"
:key="nav" :key="nav"
:class="[index <= navList2.indexOf(showView) ? 'finish' : '']" :class="[index <= navList2.indexOf(showView) ? 'finish' : 'ff']"
> >
<span class="bg-box"> <div class="wai">
<span>{{ index + 1 }}</span> <span class="bg-box">
</span> <span>{{ index + 1 }}</span>
<span>{{ nav.name }}</span> </span>
<span class="bg-name">{{ nav.name }}</span>
</div>
<div class="line" v-if="index !== navList.length - 1"></div> <div class="line" v-if="index !== navList.length - 1"></div>
</div> </div>
</div> </div>
@ -79,7 +81,7 @@
></put-on-the-shelf> ></put-on-the-shelf>
</div> </div>
<div class="btn" :class="showView === '基本信息' ? 'first' : ''"> <div class="btn" :class="showView === '基本信息' ? 'first' : ''">
<button @click="close()">取消</button>
<a-popconfirm <a-popconfirm
v-if=" v-if="
showView == '功能介绍' && showView == '功能介绍' &&
@ -93,9 +95,10 @@
@confirm="changeGnjs('上一步')" @confirm="changeGnjs('上一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>上一步</button> <button class="buzhou">上一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '功能介绍' && showView == '功能介绍' &&
gnjs[0].list.filter((val) => val.note1 !== '').length == gnjs[0].list.filter((val) => val.note1 !== '').length ==
@ -118,9 +121,10 @@
@confirm="changeYycj('上一步')" @confirm="changeYycj('上一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>上一步</button> <button class="buzhou">上一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '应用场景' && showView == '应用场景' &&
yycj[0].list.filter((val) => val.note1 !== '').length == yycj[0].list.filter((val) => val.note1 !== '').length ==
@ -130,7 +134,7 @@
> >
上一步 上一步
</button> </button>
<button v-else-if="showView !== '基本信息'" @click="back()"> <button class="buzhou" v-else-if="showView !== '基本信息'" @click="back()">
上一步 上一步
</button> </button>
<a-popconfirm <a-popconfirm
@ -145,9 +149,9 @@
@confirm="changeBs('预览')" @confirm="changeBs('预览')"
@cancel="cancel" @cancel="cancel"
> >
<button>预览</button> <button class="buzhou">预览</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView === '部署与使用'" @click="preview()"> <button class="buzhou" v-else-if="showView === '部署与使用'" @click="preview()">
预览 预览
</button> </button>
<a-popconfirm <a-popconfirm
@ -163,9 +167,10 @@
@confirm="changeGnjs('下一步')" @confirm="changeGnjs('下一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>下一步</button> <button class="buzhou">下一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '功能介绍' && showView == '功能介绍' &&
gnjs[0].list.filter((val) => val.note1 !== '').length == gnjs[0].list.filter((val) => val.note1 !== '').length ==
@ -188,9 +193,10 @@
@confirm="changeYycj('下一步')" @confirm="changeYycj('下一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>下一步</button> <button class="buzhou">下一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '应用场景' && showView == '应用场景' &&
yycj[0].list.filter((val) => val.note1 !== '').length == yycj[0].list.filter((val) => val.note1 !== '').length ==
@ -200,7 +206,7 @@
> >
下一步 下一步
</button> </button>
<button v-else-if="showView !== '部署与使用'" @click="next()"> <button class="buzhou" v-else-if="showView !== '部署与使用'" @click="next()">
下一步 下一步
</button> </button>
<a-popconfirm <a-popconfirm
@ -215,11 +221,12 @@
@confirm="changeBs('提交')" @confirm="changeBs('提交')"
@cancel="cancel" @cancel="cancel"
> >
<button>提交</button> <button class="buzhou">提交</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView === '部署与使用'" @click="submit()"> <button class="buzhou" v-else-if="showView === '部署与使用'" @click="submit()">
提交 提交
</button> </button>
<button class="quxiao" @click="close()">取消</button>
</div> </div>
</div> </div>
</template> </template>
@ -570,7 +577,7 @@
getCategoryTree().then((res) => { getCategoryTree().then((res) => {
// console.clear() // console.clear()
res.data.data = res.data.data res.data.data = res.data.data
.filter((item) => item.name === '组件服务')[0] .filter((item) => item.name === '组件服务')[0]
.children.filter((item) => item.name === '开发组件')[0] .children.filter((item) => item.name === '开发组件')[0]
navList.value = [] navList.value = []
navList2.value = [] navList2.value = []
@ -800,85 +807,120 @@
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.box { .box {
position: relative; position: relative;
top: 64px; top: 0.64rem;
margin: 15px 400px; // margin: 0.15rem 3rem;
padding: 10px; padding: 0.1rem;
background: #fff; background: #fff;
.header { .header {
font-size: 28px; font-size: 0.28rem;
font-weight: 600; font-weight: 600;
} }
.vue-box { .vue-box {
padding: 0 100px; padding: 0 1rem;
} }
.top { .top {
margin: 10px 20px 0; font-size: 16px;
padding: 15px 30px; margin: 0.32px 0.4px 0;
background: #edf4fc; padding: 24px 24pxs;
display: flex; display: flex;
justify-content: space-between; justify-content: center;
div { .ff {
font-size: 18px; color: #b3b3b3;
color: #999; display: inline-flex;
display: flex; justify-content: center;
justify-content: center; align-items: center;
align-items: center; .wai {
margin-top: 14px;
.bg-box { .bg-box {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 45px; width: 32px;
height: 45px; height: 32px;
border-radius: 50%; border-radius: 50%;
border: 1px solid rgb(214, 214, 214); // border: 0.01rem solid rgb(214, 214, 214);
margin-right: 10px; margin: 0px 16px;
transition: all 0.3s ease; transition: all 0.3s ease;
span { span {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 30px; width: 32px;
height: 30px; height: 32px;
border-radius: 50%; border-radius: 50%;
border: 1px solid #999; border: 1px solid #d9d9d9;
} }
} }
.line { .bg-name {
margin-left: 10px; color: #b3b3b3;
width: 130px;
height: 1px;
background: #999;
} }
} }
.finish { .line {
color: #0087ff; // margin-left: 16px;
width: 326px;
height: 2px;
background: #d9d9d9;
}
}
.finish {
color: #fff;
display: inline-flex;
justify-content: center;
align-items: center;
.wai {
margin-top: 14px;
.bg-box { .bg-box {
background: #9ccefa; display: flex;
color: #fff; justify-content: center;
border: 1px solid #9ccefa; align-items: center;
width: 32px;
height: 32px;
border-radius: 50%;
// border: 0.01rem solid rgb(214, 214, 214);
margin: 0px 16px;
transition: all 0.3s ease;
span { span {
background: #0087ff; background: #0058e1;
border: 1px solid #0087ff; display: flex;
justify-content: center;
align-items: center;
width: 32px;
height: 32px;
border-radius: 50%;
border: 1px solid solid #0058e1;
} }
} }
.line { .bg-name {
background: #0087ff; color: #212121;
font-weight: bold;
} }
} }
.line {
// margin-left: 16px;
width: 326px;
height: 2px;
background: #0058e1;
}
} }
.btn { .btn {
display: flex; display: flex;
justify-content: space-between; justify-content: space-around;
padding: 10px 350px 0; padding: 0.1rem 3.5rem 0;
button { button {
cursor: pointer; cursor: pointer;
width: 80px; font-size: 0.14rem;
height: 35px; width: 0.8rem;
height: 0.35rem;
text-align: center; text-align: center;
color: #fff; color: #fff;
border: none; border: 0.01rem solid #9ccefa;
border-radius: 6px; span {
background: #0087ff;
border: 0.01rem solid #0087ff;
}
}
.line {
background: #0087ff; background: #0087ff;
} }
button:nth-of-type(1) { button:nth-of-type(1) {
@ -890,7 +932,55 @@
} }
} }
.first { .first {
justify-content: space-around; justify-content: center;
} }
} }
.btn {
display: flex;
justify-content: center;
padding: 0.1rem 3.5rem 0;
// button {
// cursor: pointer;
// font-size: 14px;
// text-align: center;
// color: #fff;
// border: none;
// border-radius: 0.06rem;
// background: #0087ff;
// margin-right:12px;
// margin-right:12px;
.quxiao{
margin-right:12px;
cursor: pointer;
width: 90px;
height: 32px;
background: #ffffff;
color:#0058e1;
border-radius: 2px;
border: 1px #0058e1 solid;
}
// .quxiao:hover{
// background: #0058e1;
// color:#ffffff;
// }
.buzhou{
margin-right:12px;
cursor: pointer;
background: #0058e1;
color:#ffffff;
width: 90px;
height: 32px;
border-radius: 2px;
border: 1px #0058e1 solid;
}
// .buzhou:hover{
// background: #ffffff;
// color:#0058e1;
// }
}
.first {
justify-content: center;
}
}
</style> </style>

View File

@ -7,17 +7,19 @@
--> -->
<template> <template>
<div class="box"> <div class="box">
<div class="header">能力上架申请</div> <!-- <div class="header">能力上架申请</div> -->
<div class="top"> <div class="top">
<div <div
v-for="(nav, index) in navList" v-for="(nav, index) in navList"
:key="nav" :key="nav"
:class="[index <= navList2.indexOf(showView) ? 'finish' : '']" :class="[index <= navList2.indexOf(showView) ? 'finish' : 'ff']"
> >
<span class="bg-box"> <div class="wai">
<span>{{ index + 1 }}</span> <span class="bg-box">
</span> <span>{{ index + 1 }}</span>
<span>{{ nav.name }}</span> </span>
<span class="bg-name">{{ nav.name }}</span>
</div>
<div class="line" v-if="index !== navList.length - 1"></div> <div class="line" v-if="index !== navList.length - 1"></div>
</div> </div>
</div> </div>
@ -76,7 +78,7 @@
></put-on-the-shelf> ></put-on-the-shelf>
</div> </div>
<div class="btn" :class="showView === '基本信息' ? 'first' : ''"> <div class="btn" :class="showView === '基本信息' ? 'first' : ''">
<button @click="close()">取消</button>
<a-popconfirm <a-popconfirm
v-if=" v-if="
showView == '应用场景' && showView == '应用场景' &&
@ -90,9 +92,10 @@
@confirm="changeYycj('上一步')" @confirm="changeYycj('上一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>上一步</button> <button class="buzhou">上一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '应用场景' && showView == '应用场景' &&
yycj[0].list.filter((val) => val.note1 !== '').length == yycj[0].list.filter((val) => val.note1 !== '').length ==
@ -102,7 +105,7 @@
> >
上一步 上一步
</button> </button>
<button v-else-if="showView !== '基本信息'" @click="back()"> <button class="buzhou" v-else-if="showView !== '基本信息'" @click="back()">
上一步 上一步
</button> </button>
<a-popconfirm <a-popconfirm
@ -118,9 +121,9 @@
@confirm="changeBs('预览')" @confirm="changeBs('预览')"
@cancel="cancel" @cancel="cancel"
> >
<button>预览</button> <button class="buzhou">预览</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView === '部署与使用'" @click="preview()"> <button class="buzhou" v-else-if="showView === '部署与使用'" @click="preview()">
预览 预览
</button> </button>
<a-popconfirm <a-popconfirm
@ -136,9 +139,10 @@
@confirm="changeYycj('下一步')" @confirm="changeYycj('下一步')"
@cancel="cancel" @cancel="cancel"
> >
<button>下一步</button> <button class="buzhou">下一步</button>
</a-popconfirm> </a-popconfirm>
<button <button
class="buzhou"
v-else-if=" v-else-if="
showView == '应用场景' && showView == '应用场景' &&
yycj[0].list.filter((val) => val.note1 !== '').length == yycj[0].list.filter((val) => val.note1 !== '').length ==
@ -148,7 +152,7 @@
> >
下一步 下一步
</button> </button>
<button v-else-if="showView !== '部署与使用'" @click="next()"> <button class="buzhou" v-else-if="showView !== '部署与使用'" @click="next()">
下一步 下一步
</button> </button>
<a-popconfirm <a-popconfirm
@ -164,11 +168,12 @@
@confirm="changeBs('提交')" @confirm="changeBs('提交')"
@cancel="cancel" @cancel="cancel"
> >
<button>提交</button> <button class="buzhou">提交</button>
</a-popconfirm> </a-popconfirm>
<button v-else-if="showView === '部署与使用'" @click="submit()"> <button class="buzhou" v-else-if="showView === '部署与使用'" @click="submit()">
提交 提交
</button> </button>
<button class="quxiao" @click="close()">取消</button>
</div> </div>
</div> </div>
</template> </template>
@ -467,7 +472,7 @@
getCategoryTree().then((res) => { getCategoryTree().then((res) => {
// console.clear() // console.clear()
res.data.data = res.data.data res.data.data = res.data.data
.filter((item) => item.name === '组件服务')[0] .filter((item) => item.name === '组件服务')[0]
.children.filter((item) => item.name === '图层服务')[0] .children.filter((item) => item.name === '图层服务')[0]
navList.value = [] navList.value = []
navList2.value = [] navList2.value = []
@ -670,85 +675,120 @@
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.box { .box {
position: relative; position: relative;
top: 64px; top: 0.64rem;
margin: 15px 400px; // margin: 0.15rem 3rem;
padding: 10px; padding: 0.1rem;
background: #fff; background: #fff;
.header { .header {
font-size: 28px; font-size: 0.28rem;
font-weight: 600; font-weight: 600;
} }
.vue-box { .vue-box {
padding: 0 100px; padding: 0 1rem;
} }
.top { .top {
margin: 10px 20px 0; font-size: 16px;
padding: 15px 30px; margin: 0.32px 0.4px 0;
background: #edf4fc; padding: 24px 24pxs;
display: flex; display: flex;
justify-content: space-between; justify-content: center;
div { .ff {
font-size: 18px; color: #b3b3b3;
color: #999; display: inline-flex;
display: flex; justify-content: center;
justify-content: center; align-items: center;
align-items: center; .wai {
margin-top: 14px;
.bg-box { .bg-box {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 45px; width: 32px;
height: 45px; height: 32px;
border-radius: 50%; border-radius: 50%;
border: 1px solid rgb(214, 214, 214); // border: 0.01rem solid rgb(214, 214, 214);
margin-right: 10px; margin: 0px 16px;
transition: all 0.3s ease; transition: all 0.3s ease;
span { span {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 30px; width: 32px;
height: 30px; height: 32px;
border-radius: 50%; border-radius: 50%;
border: 1px solid #999; border: 1px solid #d9d9d9;
} }
} }
.line { .bg-name {
margin-left: 10px; color: #b3b3b3;
width: 130px;
height: 1px;
background: #999;
} }
} }
.finish { .line {
color: #0087ff; // margin-left: 16px;
width: 326px;
height: 2px;
background: #d9d9d9;
}
}
.finish {
color: #fff;
display: inline-flex;
justify-content: center;
align-items: center;
.wai {
margin-top: 14px;
.bg-box { .bg-box {
background: #9ccefa; display: flex;
color: #fff; justify-content: center;
border: 1px solid #9ccefa; align-items: center;
width: 32px;
height: 32px;
border-radius: 50%;
// border: 0.01rem solid rgb(214, 214, 214);
margin: 0px 16px;
transition: all 0.3s ease;
span { span {
background: #0087ff; background: #0058e1;
border: 1px solid #0087ff; display: flex;
justify-content: center;
align-items: center;
width: 32px;
height: 32px;
border-radius: 50%;
border: 1px solid solid #0058e1;
} }
} }
.line { .bg-name {
background: #0087ff; color: #212121;
font-weight: bold;
} }
} }
.line {
// margin-left: 16px;
width: 326px;
height: 2px;
background: #0058e1;
}
} }
.btn { .btn {
display: flex; display: flex;
justify-content: space-between; justify-content: space-around;
padding: 10px 350px 0; padding: 0.1rem 3.5rem 0;
button { button {
cursor: pointer; cursor: pointer;
width: 80px; font-size: 0.14rem;
height: 35px; width: 0.8rem;
height: 0.35rem;
text-align: center; text-align: center;
color: #fff; color: #fff;
border: none; border: 0.01rem solid #9ccefa;
border-radius: 6px; span {
background: #0087ff;
border: 0.01rem solid #0087ff;
}
}
.line {
background: #0087ff; background: #0087ff;
} }
button:nth-of-type(1) { button:nth-of-type(1) {
@ -760,7 +800,55 @@
} }
} }
.first { .first {
justify-content: space-around; justify-content: center;
} }
} }
.btn {
display: flex;
justify-content: center;
padding: 0.1rem 3.5rem 0;
// button {
// cursor: pointer;
// font-size: 14px;
// text-align: center;
// color: #fff;
// border: none;
// border-radius: 0.06rem;
// background: #0087ff;
// margin-right:12px;
// margin-right:12px;
.quxiao{
margin-right:12px;
cursor: pointer;
width: 90px;
height: 32px;
background: #ffffff;
color:#0058e1;
border-radius: 2px;
border: 1px #0058e1 solid;
}
// .quxiao:hover{
// background: #0058e1;
// color:#ffffff;
// }
.buzhou{
margin-right:12px;
cursor: pointer;
background: #0058e1;
color:#ffffff;
width: 90px;
height: 32px;
border-radius: 2px;
border: 1px #0058e1 solid;
}
// .buzhou:hover{
// background: #ffffff;
// color:#0058e1;
// }
}
.first {
justify-content: center;
}
}
</style> </style>

File diff suppressed because it is too large Load Diff

View File

@ -147,7 +147,7 @@
<button <button
style=" style="
width: 100px; width: 100px;
height: 30px; height: 35px;
margin-right: 10px; margin-right: 10px;
background: rgb(237, 244, 252); background: rgb(237, 244, 252);
color: rgb(0, 135, 255); color: rgb(0, 135, 255);

View File

@ -21,21 +21,22 @@
@change="onSearch" @change="onSearch"
class="resultListSearchInput" class="resultListSearchInput"
/> />
<button class="button-reset" @click="chongzhi()">重置</button> <i class="searchImg" aria-hidden="true"></i>
<button class="button-reset" @click="globalSearch()">全局搜索</button>
<button <button
class="button-reset" class="button-reset"
style="margin-left: 0.1rem" style="margin-left: 0.1rem"
@click="globalSearch()" @click="chongzhi()"
> >
全局搜索 重置
</button> </button>
<button <button
v-if="Cardsname == '应用资源'" v-if="Cardsname == '应用资源'"
class="button-reset" class="button-reset"
@click="applyAll()" @click="applyAll()"
style="margin-left: 0.1rem" style="margin-left: 0.1rem; width: 135px"
> >
全部申请 申请全部应用资源
</button> </button>
<div class="hengxian" style="background: transparent"></div> <div class="hengxian" style="background: transparent"></div>
</div> </div>
@ -168,13 +169,14 @@
@change="onSearch" @change="onSearch"
class="resultListSearchInput" class="resultListSearchInput"
/> />
<button class="button-reset" @click="chongzhi()">重置</button> <i class="searchImg" aria-hidden="true"></i>
<button class="button-reset" @click="globalSearch()">全局搜索</button>
<button <button
class="button-reset" class="button-reset"
style="margin-left: 0.1rem" style="margin-left: 0.1rem"
@click="globalSearch()" @click="chongzhi()"
> >
全局搜索 重置
</button> </button>
<div class="hengxian" style="background: transparent"></div> <div class="hengxian" style="background: transparent"></div>
</div> </div>
@ -228,13 +230,14 @@
@change="onSearch" @change="onSearch"
class="resultListSearchInput" class="resultListSearchInput"
/> />
<button class="button-reset" @click="chongzhi()">重置</button> <i class="searchImg" aria-hidden="true"></i>
<button class="button-reset" @click="globalSearch()">全局搜索</button>
<button <button
class="button-reset" class="button-reset"
style="margin-left: 0.1rem" style="margin-left: 0.1rem"
@click="globalSearch()" @click="chongzhi()"
> >
全局搜索 重置
</button> </button>
<div class="hengxian" style="background: transparent"></div> <div class="hengxian" style="background: transparent"></div>
</div> </div>
@ -301,8 +304,8 @@
<div class="details-pageconetent-left" v-if="Cardsname != '基础设施'"> <div class="details-pageconetent-left" v-if="Cardsname != '基础设施'">
<detailsPageconetentTree /> <detailsPageconetentTree />
</div> </div>
<div class="details-pageconetent-left" v-else> <div class="details-pageconetent-left" style="left: 0.16rem" v-else>
<detailsPageInfrastructureTree /> <detailsPageInfrastructureTreeXha />
</div> </div>
<div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'"> <div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'">
<div class="top-title"> <div class="top-title">
@ -334,7 +337,14 @@
@change="onSearch" @change="onSearch"
class="resultListSearchInput" class="resultListSearchInput"
/> />
<button class="button-reset" @click="chongzhi()">重置</button> <i class="searchImg" aria-hidden="true"></i>
<button
class="button-reset"
style="margin-left: 0.1rem"
@click="chongzhi()"
>
重置
</button>
<div class="hengxian"></div> <div class="hengxian"></div>
</div> </div>
</div> </div>
@ -425,7 +435,11 @@
<a-empty /> <a-empty />
</div> </div>
</div> </div>
<div class="top" v-else-if="Cardsname === '基础设施'"> <div
class="top"
style="width: 13.5rem; margin-left: 0"
v-else-if="Cardsname === '基础设施'"
>
<div class="top-title"> <div class="top-title">
<div <div
v-for="item in titleName" v-for="item in titleName"
@ -444,7 +458,7 @@
</div> </div>
</div> </div>
<div class="top-content-father"> <div class="top-content-father">
<infrastructurePage <infrastructurePageXha
ref="camera" ref="camera"
:searchValue="searchValue" :searchValue="searchValue"
:searchType="searchType" :searchType="searchType"
@ -481,7 +495,14 @@
@change="onSearch" @change="onSearch"
class="resultListSearchInput" class="resultListSearchInput"
/> />
<button class="button-reset" @click="chongzhi()">重置</button> <i class="searchImg" aria-hidden="true"></i>
<button
class="button-reset"
style="margin-left: 0.1rem"
@click="chongzhi()"
>
重置
</button>
</div> </div>
</div> </div>
<KnowledgeBase <KnowledgeBase
@ -489,6 +510,9 @@
:resourceTotal="resourceTotal" :resourceTotal="resourceTotal"
></KnowledgeBase> ></KnowledgeBase>
</div> </div>
<div v-if="Cardsname == '基础设施'">
<infrastructureApplication></infrastructureApplication>
</div>
<div class="talk-monitor" @click="openMonitor"> <div class="talk-monitor" @click="openMonitor">
<a-tooltip> <a-tooltip>
<template #title>问答机器人</template> <template #title>问答机器人</template>
@ -538,7 +562,14 @@
@change="onSearch" @change="onSearch"
class="resultListSearchInput" class="resultListSearchInput"
/> />
<button class="button-reset" @click="chongzhi()">重置</button> <i class="searchImg" aria-hidden="true"></i>
<button
class="button-reset"
style="margin-left: 0.1rem"
@click="chongzhi()"
>
重置
</button>
<div class="hengxian"></div> <div class="hengxian"></div>
</div> </div>
</div> </div>
@ -703,7 +734,14 @@
@change="onSearch" @change="onSearch"
class="resultListSearchInput" class="resultListSearchInput"
/> />
<button class="button-reset" @click="chongzhi()">重置</button> <i class="searchImg" aria-hidden="true"></i>
<button
class="button-reset"
style="margin-left: 0.1rem"
@click="chongzhi()"
>
重置
</button>
</div> </div>
</div> </div>
<KnowledgeBase <KnowledgeBase
@ -743,7 +781,10 @@
import DetailsPageResource from '@/views/home/components/DetailsPageResource.vue' import DetailsPageResource from '@/views/home/components/DetailsPageResource.vue'
// //
import infrastructurePage from '@/views/home/infrastructurePage.vue' import infrastructurePage from '@/views/home/infrastructurePage.vue'
import infrastructurePageXha from '@/views/home/infrastructurePageXha.vue'
import detailsPageInfrastructureTree from '@/views/home/detailsPageInfrastructureTree.vue' import detailsPageInfrastructureTree from '@/views/home/detailsPageInfrastructureTree.vue'
import detailsPageInfrastructureTreeXha from '@/views/home/detailsPageInfrastructureTreeXha.vue'
import infrastructureApplication from '@/views/home/infrastructureApplication.vue'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js' import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
import { useStore } from 'vuex' import { useStore } from 'vuex'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
@ -769,7 +810,7 @@
const handleAdd = (value) => { const handleAdd = (value) => {
flag.value = value flag.value = value
} }
const titleName = ref(titleNameArray) const titleName = ref([])
const openMonitor = () => { const openMonitor = () => {
window.open('http://www.qingdao.gov.cn:8083/ghwd/znwdqd/index.html') window.open('http://www.qingdao.gov.cn:8083/ghwd/znwdqd/index.html')
} }
@ -869,6 +910,15 @@
pageSize: currentPageSize.value, pageSize: currentPageSize.value,
name: '', name: '',
}) })
// 西
const setTitle = () => {
let title = titleNameArray
let whoShow1 = ref(whoShow)
if (whoShow1 && whoShow1.value.itShowXiHaiAn) {
title[0] = title.splice(2, 1, title[0])[0]
}
titleName.value = title
}
// //
const onSearch = () => { const onSearch = () => {
loading.value = true loading.value = true
@ -1706,6 +1756,8 @@
} }
onMounted(() => { onMounted(() => {
// //
//西
setTitle()
handleSetSearchData() handleSetSearchData()
listKey2.value++ listKey2.value++
// //
@ -1843,6 +1895,7 @@
) )
} }
return { return {
setTitle,
listKey, listKey,
ListContent, ListContent,
searchValue, searchValue,
@ -1903,7 +1956,9 @@
KnowledgeBase, KnowledgeBase,
DetailsPageResource, DetailsPageResource,
infrastructurePage, infrastructurePage,
infrastructurePageXha,
detailsPageInfrastructureTree, detailsPageInfrastructureTree,
detailsPageInfrastructureTreeXha,
}, },
beforeUnmount() { beforeUnmount() {
mybus.off('getCameraByParentId') mybus.off('getCameraByParentId')
@ -1930,13 +1985,21 @@
.resultListSearchInput-son { .resultListSearchInput-son {
background: #fff; background: #fff;
padding: 0.2rem 0.2rem 0rem 0.3rem; padding: 0.2rem 0.2rem 0rem 0.3rem;
position: relative;
.hengxian { .hengxian {
width: 100%; width: 100%;
height: 0.01rem; height: 0.01rem;
background: rgba(150, 144, 144, 0.3); background: rgba(150, 144, 144, 0.3);
margin-top: 0.2rem; margin-top: 0.2rem;
} }
.searchImg {
width: 17px;
height: 17px;
background: url('~@/assets/home/searchInner.png');
position: absolute;
top: 29px;
left: 480px;
}
} }
} }
@ -1945,20 +2008,20 @@
:deep(.ant-input) { :deep(.ant-input) {
width: 4rem; width: 4rem;
height: 0.36rem; height: 0.32rem;
background: #fff; background: #fff;
border-radius: 0.04rem; border-radius: 0.02rem;
} }
:deep(.ant-input-search-button) { :deep(.ant-input-search-button) {
width: 0.8rem; width: 0.8rem;
height: 0.36rem; height: 0.32rem;
background: #0087ff; background: #0558e1;
border-radius: 0.04rem !important; border-radius: 0.02rem !important;
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 400; font-weight: 400;
color: #fff; color: #fff;
line-height: 0.34rem; line-height: 0.32rem;
margin-left: 0.1rem; margin-left: 0.1rem;
} }
@ -1971,13 +2034,15 @@
border: 0; border: 0;
outline: none; outline: none;
width: 0.8rem; width: 0.8rem;
height: 0.36rem; height: 0.32rem;
background: #e1edfa; color: #fff;
border-radius: 0.04rem; //background: #e1edfa;
background: #0558e1;
border-radius: 0.02rem;
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 400; font-weight: 400;
color: #0087ff; //color: #0087ff;
line-height: 0.34rem; line-height: 0.32rem;
margin-left: 2.5rem; margin-left: 2.5rem;
cursor: pointer; cursor: pointer;
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="bg"> <div class="bg">
<home-header></home-header> <home-header :target-flag = "targetFlag"></home-header>
<div class="box-container"> <div class="box-container">
<a-spin <a-spin
size="large" size="large"
@ -10,7 +10,7 @@
/> />
<div class="nav-box"> <div class="nav-box">
<a-breadcrumb> <a-breadcrumb>
<a-breadcrumb-item>能力集市</a-breadcrumb-item> <a-breadcrumb-item @click="goToDetailsPageconetent" class="bread-crumb-span">能力集市</a-breadcrumb-item>
<a-breadcrumb-item>算法对比</a-breadcrumb-item> <a-breadcrumb-item>算法对比</a-breadcrumb-item>
</a-breadcrumb> </a-breadcrumb>
</div> </div>
@ -194,11 +194,11 @@
import { selectOne } from '@/api/home' import { selectOne } from '@/api/home'
import { message, Tooltip, Table, Spin } from 'ant-design-vue' import { message, Tooltip, Table, Spin } from 'ant-design-vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import mybus from '@/myplugins/mybus'
const router = useRouter() const router = useRouter()
let queryId = router.currentRoute.value.query.id let queryId = router.currentRoute.value.query.id
const ctx = getCurrentInstance() const ctx = getCurrentInstance()
const targetFlag= ref(true)
// 4 // 4
const pagination = ref([]) const pagination = ref([])
// //
@ -653,6 +653,14 @@
let _obj = Object.assign({}, obj, _newObj) let _obj = Object.assign({}, obj, _newObj)
return _obj return _obj
} }
//goToDetailsPageconetent
const goToDetailsPageconetent = () => {
let pathData = {
path: '/DetailsPageconetent',
};
mybus.emit('changeMenuStyle',pathData);
}
</script> </script>
<style> <style>
@ -719,6 +727,9 @@
align-items: center; align-items: center;
background: rgba(244, 245, 248, 0.8); background: rgba(244, 245, 248, 0.8);
padding-left: 10px; padding-left: 10px;
.bread-crumb-span{
cursor: pointer;
}
} }
.left { .left {

View File

@ -0,0 +1,125 @@
<!--
* @Author: Light
* @Date: 2022-11-16 16:46:16
* @LastEditors: Light
* @LastEditTime: 2022-11-18 15:35:25
* @Description: 政务云资源列表
-->
<template>
<div class="top">
<div>检索结果{{ props.governmentCloud.total }}</div>
<div>
使用声明:
附加增值服务委办局单位可以根据自身需求按需采购由采购单位付费
</div>
</div>
<div
class="bottom"
v-for="(item, index) in props.governmentCloud.data"
:key="item.service_item_tier1 + index"
>
<div class="left"></div>
<div class="right">
<div class="title">
<div>
<div class="name">{{ item.service_item_tier1 }}</div>
<div class="type">{{ item.service_type }}</div>
</div>
<div>年份{{ item.year }}</div>
</div>
<div class="text">{{ item.service_description }}</div>
<div class="info">
<div>一级条目{{ item.service_item_tier2 }}</div>
<div>规格{{ item.specification }}</div>
</div>
</div>
</div>
<a-pagination
v-model:current="current"
:pageSize="5"
:total="props.governmentCloud.total"
:showSizeChanger="false"
@change="changeCurrent"
show-less-items
/>
</template>
<script setup>
import { ref, defineProps, defineEmits } from 'vue'
const props = defineProps({
governmentCloud: { type: Object, default: null },
})
const emit = defineEmits(['getGovernmentCloud'])
const current = ref(props.governmentCloud.current)
const changeCurrent = (current) => {
console.log(current)
emit('getGovernmentCloud', current)
}
</script>
<style lang="less" scoped>
.top {
display: flex;
justify-content: space-between;
color: #333;
padding-bottom: 10px;
border-bottom: 1px #ccc solid;
}
.bottom {
margin-top: 20px;
padding-bottom: 20px;
display: flex;
justify-content: flex-start;
align-items: center;
border-bottom: 1px #ccc solid;
.left {
width: 110px;
height: 110px;
background: url('~@/assets/home/znsf_square.png') no-repeat;
background-size: 100%;
}
.right {
flex: 1;
margin-left: 20px;
.title {
display: flex;
justify-content: space-between;
div:nth-of-type(1) {
display: flex;
justify-content: flex-start;
align-items: center;
.name {
max-width: 400px;
height: 22px;
line-height: 24px;
overflow: hidden; //
display: -webkit-box;
-webkit-line-clamp: 1; //
-webkit-box-orient: vertical;
font-size: 20px;
font-weight: 600;
}
.type {
margin-left: 10px;
padding: 1px 5px;
color: rgba(0, 88, 225, 0.8);
background-color: rgba(0, 135, 225, 0.1);
border-radius: 15px;
}
}
}
.text {
height: 50px;
overflow: hidden; //
display: -webkit-box;
-webkit-line-clamp: 2; //
-webkit-box-orient: vertical;
}
.info {
display: flex;
justify-content: flex-start;
div:nth-of-type(1) {
margin-right: 50px;
}
}
}
}
</style>

View File

@ -17,9 +17,9 @@
<div <div
v-for="item in navList" v-for="item in navList"
:key="item.key" :key="item.key"
@click="jumpPage(item)" @click="jumpPage(item,'headerClick')"
class="nav" class="nav"
:class="item.key == select ? 'select' : ''" :class="[{'select':item.key == select},{'select-inner':(item.key == 'DetailsPageconetent' && item.innerKey == 'algorithmCompare'&& props.targetFlag)}]"
> >
{{ item.name }} {{ item.name }}
</div> </div>
@ -90,14 +90,14 @@
</template> </template>
<span <span
class="name" class="name"
@click="jumpPage({ name: '个人中心', key: 'personalCenter' })" @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' })" @click="jumpPage({ name: '后台管理', key: 'houtaiguanli' },'headerClick')"
class="iconTo" class="iconTo"
v-show="backFlag" v-show="backFlag"
></i> ></i>
@ -135,6 +135,7 @@
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 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'){
@ -153,6 +154,7 @@
const props = defineProps({ const props = defineProps({
showView: { type: String, default: '' }, showView: { type: String, default: '' },
targetFlag: { type: Boolean, default: false },
}) })
// 退 // 退
@ -185,8 +187,9 @@
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) => { const jumpPage = (item,type) => {
// 西 if(type == 'headerClick'){
// 西
if (itShowXiHaiAn.value) { if (itShowXiHaiAn.value) {
let _arr = ['共享门户', '能力云图', '能力统计', '需求中心', '赋能案例'] let _arr = ['共享门户', '能力云图', '能力统计', '需求中心', '赋能案例']
if ( if (
@ -271,6 +274,84 @@
router.push('/home') router.push('/home')
break break
} }
}else if(type == 'innerClick'){
//select.value = item.key
switch (item.name) {
case '个人中心':
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle'))
router.push({
path: '/personalCenter',
})
break
case '能力统计':
router.push({
path: '/abilityStatistics',
})
break
case '能力集市':
router.push({
path: '/algorithmCompare',
query: {
id: targetRouter.value.id,
},
});
break
case '能力云图':
router.push({
path: '/capabilityCloud',
})
break
// case '':
// router.push({
// path: '/developmentGuide',
// })
// break
case '新手指南':
router.push({
path: '/instructionManual',
})
break
case '需求中心':
router.push({
path: '/demandCenter',
})
break
case '区市站点':
router.push({
path: '/mapTest',
})
break
case '后台管理':
Cookies.remove('JSESSIONID')
window.open(window.SITE_CONFIG.backUrl + '/#/workBench-workBench')
// window.reload('http://15.2.21.238:9797')
break
case '赋能案例':
router.push({
path: '/assignCase',
})
break
case '典型赋能案例':
router.push({
path: '/assignCase',
})
break
case '融合服务':
router.push({
path: '/integrationServices',
})
break
case 'CIM专区':
router.push({
path: '/cimSpecialArea',
})
break
default:
router.push('/home')
break
}
}
} }
const scrollTop = ref(0) const scrollTop = ref(0)
window.onscroll = function () { window.onscroll = function () {
@ -348,6 +429,20 @@
mybus.on('getMynotice', () => { mybus.on('getMynotice', () => {
getMynotice() getMynotice()
}) })
mybus.on('changeMenuStyle', (data) => {
if(data.path=='/algorithmCompare'){
targetRouter.value = data;
jumpPage({
"name": "能力集市",
"key": "DetailsPageconetent",
"innerKey":"algorithmCompare"
},'innerClick');
} else if(data.path =='/DetailsPageconetent'){
jumpPage({ name: '能力集市', key: 'DetailsPageconetent' },'headerClick')
}
})
}) })
onBeforeUnmount(() => { onBeforeUnmount(() => {
mybus.off('getSgcNum') mybus.off('getSgcNum')
@ -433,6 +528,10 @@
.select { .select {
background: #0058e1; background: #0058e1;
color: #fff !important; color: #fff !important;
}
.select-inner {
background: #0058e1;
color: #fff !important;
} }
.info1 { .info1 {
margin-left: 0.1rem; margin-left: 0.1rem;

View File

@ -805,12 +805,18 @@
} }
// //
const goComparePk = (item) => { const goComparePk = (item) => {
router.push({ // router.push({
// path: '/algorithmCompare',
// query: {
// id: item.id,
// },
// });
//
let pathData = {
path: '/algorithmCompare', path: '/algorithmCompare',
query: { id: item.id,
id: item.id, };
}, mybus.emit('changeMenuStyle',pathData);
})
} }
return { return {
onSearch, onSearch,

View File

@ -0,0 +1,336 @@
<template>
<div class="wrapper">
<div class="wrapper-title-left-tree" :key="showKey">
<div v-for="item in treeData" :key="item.id" class="primaryNode">
<div class="top" @click="showBottom(item)" :class="item.show ? 'topSelect' : ''">
{{ item.name }}
({{ item.channelCount }})
<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.id" class="item">
<div class="up" :class="selectId == val.id ? 'select' : ''"
@click="showDown(item, val), onSelect(item, val)">
<div>
<svg t="1654068878091" class="icon" 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>
<span class="name">{{ val.name }}({{ val.channelCount }})</span>
</div>
<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" />
</span>
</div>
<div class="down" v-show="val.show">
<div v-for="child in val.children" :key="child.id" class="child"
:class="selectId == child.id ? 'select2' : ''" @click="onSelect(item, child, child)">
<div>
<svg t="1654068878091" class="icon" 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>
<span class="name">
{{ child.name }}
</span>
</div>
<span>{{ child.channelCount }}</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { defineComponent, ref, watch } from 'vue'
import { getCameraAllOrgan } from '@/api/videoSurveillance'
import { getCameraInfoByAreaId } from '@/api/file'
import mybus from '@/myplugins/mybus'
import { useRouter } from 'vue-router'
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
export default defineComponent({
setup() {
const router = useRouter()
const whoShow1 = ref(whoShow)
const showKey = ref(0)
const treeData = ref([])
const selectId = ref('')
//
const init = async () => {
treeData.value = []
console.log(
'router.currentRoute.value.query.select',
router.currentRoute.value.query.select
)
let select = router.currentRoute.value.query.select || DETAIL_PAGE_CONTENT_DEFAULT_TAB
if (select === '123') {
select = ''
}
console.log(
'获取url中的select=====================>',
router.currentRoute.value.query.select
)
if (select == '基础设施') {
let res = {};
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' })
} else {
// 西
res = await getCameraInfoByAreaId({
areaId: '70be8c5b664f4bcf869d82f2e8335051',
})
}
treeData.value = res.data && res.data.data || []
//
if(res.data && res.data.data.length == 1) {
showBottom(treeData.value[0])
}
}
}
mybus.on('getDeptList', () => {
init()
})
const onSelect = async (item, val, child) => {
console.log('item--------onSelect---->', item);
console.log('val------onSelect------>', val);
console.log('child-----onSelect------->', child);
mybus.emit('getCameraByParentId', val.id)
mybus.emit('getListByParentId', val.id)
let res = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: val.id })
} else {
// 西
res = await getCameraInfoByAreaId({ areaId: val.id })
}
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
}
})
}
})
if (child) {
selectId.value = child.id
}
}
watch(selectId, (newVal) => {
if (newVal == '') {
mybus.emit('getCameraByParentId', '')
mybus.emit('getListByParentId', '')
}
})
const showBottom = async (item) => {
item.show = !item.show;
let res = {};
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: item.id })
} else {
// 西
res = await getCameraInfoByAreaId({ areaId: item.id })
}
treeData.value.map((treeDataItem, index) => {
if (item.id == treeDataItem.id) {
treeData.value[index].children = res.data && res.data.data || []
console.log('treeData.value.[index]', treeData.value[index])
}
})
}
const showDown = (item, val) => {
selectId.value = val.id
console.log('item---showDown--------->', item);
console.log('val----showDown-------->', val);
if (item.children) {
val.show = !val.show;
//
if (!val.show) {
selectId.value = ''
}
}
}
return {
treeData,
showKey,
onSelect,
showBottom,
showDown,
selectId,
}
},
beforeUnmount() {
mybus.off('getDeptList')
console.log('getDeptList销毁~~~~~~~~~~~~~~~~~~~')
},
components: {
UpOutlined,
DownOutlined,
},
})
</script>
<style lang="less" scoped>
.primaryNode {
.top {
width: 100%;
height: 0.4rem;
background: rgba(0, 135, 225, 0.1);
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 0.1rem;
margin-top: 0.08rem;
}
.top:hover {
cursor: pointer;
// 0058e1 0.5
background: rgba(0, 88, 225, 0.8);
color: white;
:deep(.anticon) {
color: white;
}
}
.topSelect {
background: #0058e1;
color: white;
:deep(.anticon) {
color: white;
}
}
.bottom {
width: 100%;
background: rgba(244, 245, 248, 0.8);
padding: 0 0.1rem;
// margin-bottom: .08rem;
.up {
cursor: pointer;
height: 0.4rem;
display: flex;
justify-content: space-between;
align-items: center;
border-top: 0.01rem solid #ccc;
padding: 0 0.1rem;
&>div {
display: flex;
justify-content: flex-start;
}
.name {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
}
.up:hover {
.name {
color: #0058e1;
font-weight: 600;
}
span {
color: #0058e1;
font-weight: 600;
}
}
.select {
padding: 0 0.1rem 0 0;
.name {
width: 1.7rem;
color: #0058e1 !important;
font-weight: 600;
}
span {
color: #0058e1;
font-weight: 600;
}
}
.item:nth-of-type(1) .up {
border-top: none;
}
.down {
width: 100%;
.child {
cursor: pointer;
height: 0.4rem;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 0.1rem;
&>div {
display: flex;
justify-content: flex-start;
}
.name {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
}
.child:hover {
.name {
color: #0058e1;
font-weight: 600;
}
span {
color: #0058e1;
font-weight: 600;
}
}
.select2 {
.name {
width: 1.7rem;
color: #0058e1;
font-weight: 600;
}
span {
color: #0058e1;
font-weight: 600;
}
padding: 0 0.1rem 0 0;
}
}
}
}
</style>

View File

@ -0,0 +1,12 @@
<!--
* @Author: Light
* @Date: 2022-11-18 11:53:43
* @LastEditors: Light
* @LastEditTime: 2022-11-18 11:54:11
* @Description: 告诉大家这是什么
-->
<template>
<div>基础设施申请</div>
</template>
<script setup></script>
<style lang="less" scoped></style>

View File

@ -560,6 +560,16 @@
@change="handleMeeting" @change="handleMeeting"
></a-table> ></a-table>
</div> </div>
<div
class="infrastructrue-table"
:key="showKey"
v-if="!wrjFlag && selectType == '政务云资源'"
>
<GovernmentCloudResources
:governmentCloud="governmentCloud"
@getGovernmentCloud="getGovernmentCloud"
></GovernmentCloudResources>
</div>
<!-- 西海岸-无人机单兵设备 --> <!-- 西海岸-无人机单兵设备 -->
<div class="infrastructrue-table" v-else-if="isXiHaiAn && wrjFlag"> <div class="infrastructrue-table" v-else-if="isXiHaiAn && wrjFlag">
<a-table <a-table
@ -771,20 +781,10 @@
</template> </template>
<script setup> <script setup>
import VideoSurveillance from '@/views/home/videoSurveillance' import VideoSurveillance from '@/views/home/videoSurveillance'
import GovernmentCloudResources from './components/GovernmentCloudResources'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { message, Upload } from 'ant-design-vue' import { message } from 'ant-design-vue'
import { import { ref, reactive, onMounted, defineProps, defineExpose } from 'vue'
ref,
reactive,
onMounted,
defineProps,
watch,
defineComponent,
nextTick,
defineExpose,
computed,
} from 'vue'
import { getUser, getEnkeUsers } from '@/api/home'
import { initiateMeet } from '@/api/file' import { initiateMeet } from '@/api/file'
import { import {
getCameraByParentId, getCameraByParentId,
@ -794,17 +794,18 @@
} from '@/api/videoSurveillance' } from '@/api/videoSurveillance'
import { getCameraByCondition } from '@/api/file' import { getCameraByCondition } from '@/api/file'
import { import {
getUser,
getEnkeUsers,
sgcInsert, sgcInsert,
xhaAddCart,
getRoomSearch, getRoomSearch,
getDate, getDate,
setSubmit, setSubmit,
getYuyue, getYuyue,
getSoldierList, getSoldierList,
getMaxApplyNum, getMaxApplyNum,
getPolicyCloudService,
} from '@/api/home' } from '@/api/home'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import dayjs from 'dayjs'
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'
@ -1123,7 +1124,7 @@
let clickList = ref([]) //tab let clickList = ref([]) //tab
if (!isXiHaiAn) { if (!isXiHaiAn) {
tabList.value.push({ tabList.value.push({
title: '城市云脑会客厅', title: '筛选条件',
content: [], content: [],
}) })
} }
@ -1556,6 +1557,7 @@
} }
const emits = defineEmits(['add']) const emits = defineEmits(['add'])
const selectType = ref('政务云资源') const selectType = ref('政务云资源')
const showKey = ref(0)
// //
let tableHeight = ref('600') let tableHeight = ref('600')
//tab //tab
@ -1580,7 +1582,7 @@
dataSource2.value = [] dataSource2.value = []
pagination.value.total = 0 pagination.value.total = 0
if (tabList.value[1]) { if (tabList.value[1]) {
tabList.value[1].title = '政务云资源分类' tabList.value[1].title = '服务类别'
} }
selectType.value = '政务云资源' selectType.value = '政务云资源'
} else if (name == '感知资源') { } else if (name == '感知资源') {
@ -1604,10 +1606,12 @@
} }
selectType.value = '视频会议' selectType.value = '视频会议'
} }
clickList.value[indexFather].content.splice( if (indexFather !== 0 && selectType.value !== '政务云资源') {
clickList.value[indexFather].content.indexOf(name), clickList.value[indexFather].content.splice(
1 clickList.value[indexFather].content.indexOf(name),
) 1
)
}
} else { } else {
if (name == '视频资源') { if (name == '视频资源') {
selectType.value = '视频资源' selectType.value = '视频资源'
@ -1661,17 +1665,21 @@
} }
clickList.value[indexFather].content[0] = name clickList.value[indexFather].content[0] = name
if (tabList.value[1]) { if (tabList.value[1]) {
tabList.value[1].title = '政务云资源分类' if (!isXiHaiAn) {
tabList.value[1].content = [ tabList.value[1].title = '服务类别'
'云主机', tabList.value[1].content = [
'算力主机', '基础服务',
'对象存储', 'PaaS服务',
'堡垒机', '安全服务',
'防火墙', '大数据服务',
'网闸', '附加增值服务',
'负载均衡', ]
'公网IP', } else {
] if (tabList.value[1]) {
tabList.value[1].title = ''
tabList.value[1].content = []
}
}
} }
room.value = true room.value = true
wrjFlag.value = false wrjFlag.value = false
@ -1738,11 +1746,53 @@
emits('add', 6) emits('add', 6)
searchData() searchData()
} else { } else {
if (clickList.value[indexFather]) { if (
clickList.value[indexFather] &&
(clickList.value[0].content[0] !== '政务云资源' || indexFather !== 1)
) {
clickList.value[indexFather].content.push(name) clickList.value[indexFather].content.push(name)
} }
} }
} }
//
console.log(
'点击==========>',
indexFather,
name,
clickList.value,
clickList.value[0].content[0],
clickList.value[indexFather].content.indexOf(name)
)
if (!isXiHaiAn && indexFather == 0 && name == '政务云资源') {
getGovernmentCloud()
}
if (
clickList.value[0].content[0] === '政务云资源' &&
name !== '政务云资源'
) {
console.log(
'点击政务云资源',
clickList.value[1].content[0],
clickList.value[indexFather].content.indexOf(name) !== -1
)
if (clickList.value[indexFather].content.indexOf(name) !== -1) {
console.log(
'点击政务云资源点击过',
clickList.value[indexFather].content[0]
)
clickList.value[indexFather].content.splice(
clickList.value[indexFather].content.indexOf(name),
1
)
} else {
clickList.value[indexFather].content = [name]
}
if (!isXiHaiAn) {
getGovernmentCloud(1)
governmentCloud.current = 1
showKey.value++
}
}
// labelCode // labelCode
mapSearchParam.value.labelCodes = [] mapSearchParam.value.labelCodes = []
if (clickList.value[1]) { if (clickList.value[1]) {
@ -2106,18 +2156,11 @@
// //
const addShoppingCart = () => { const addShoppingCart = () => {
if (selectedList.value.length > 0) { if (selectedList.value.length > 0) {
let _arr = [] sgcInsert({
selectedList.value.map((v) => { delFlag: '0',
_arr.push({ resourceld: '8888888880000000001',
delFlag: '0', note1: selectedList.value,
resourceId: v.idtCameraChannel, }).then((res) => {
note1: [v],
})
})
xhaAddCart(_arr).then((res) => {
if (res.data.code !== 0) {
return message.error(res.data.msg)
}
message.success('添加申购车成功!') message.success('添加申购车成功!')
mybus.emit('getSgcNum') mybus.emit('getSgcNum')
}) })
@ -2277,7 +2320,19 @@
} else { } else {
} }
} }
const governmentCloud = reactive({ data: [], total: 0, current: 1 })
const getGovernmentCloud = (page) => {
getPolicyCloudService({
limit: 5,
page: page || 1,
name: '',
type: clickList.value[1].content[0],
}).then((res) => {
console.log('获取政务云资源======》', res.data.data)
governmentCloud.data = res.data.data.list
governmentCloud.total = res.data.data.total
})
}
// tab // tab
const handleTableChange = (val) => { const handleTableChange = (val) => {
pagination.value.current = val.current pagination.value.current = val.current

File diff suppressed because it is too large Load Diff

View File

@ -29,6 +29,7 @@
@change="onSearch" @change="onSearch"
class="resultListSearchInput" class="resultListSearchInput"
/> />
<i class="searchImg" aria-hidden="true"></i>
<button class="button-reset" @click="resetAction()">重置</button> <button class="button-reset" @click="resetAction()">重置</button>
<div class="hengxian"></div> <div class="hengxian"></div>
</div> </div>
@ -342,6 +343,14 @@
background: rgba(150, 144, 144, 0.3); background: rgba(150, 144, 144, 0.3);
margin-top: 0.2rem; margin-top: 0.2rem;
} }
.searchImg{
width: 17px;
height: 17px;
background: url('~@/assets/home/searchInner.png');
position: absolute;
top: 139px;
left: 500px;
}
} }
} }
@ -350,20 +359,20 @@
:deep(.ant-input) { :deep(.ant-input) {
width: 4rem; width: 4rem;
height: 0.36rem; height: 0.32rem;
background: #fff; background: #fff;
border-radius: 0.04rem; border-radius: 0.02rem;
} }
:deep(.ant-input-search-button) { :deep(.ant-input-search-button) {
width: 0.8rem; width: 0.8rem;
height: 0.36rem; height: 0.32rem;
background: #0087ff; background: #0558e1;
border-radius: 0.04rem !important; border-radius: 0.02rem !important;
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 400; font-weight: 400;
color: #fff; color: #fff;
line-height: 0.34rem; line-height: 0.32rem;
margin-left: 0.1rem; margin-left: 0.1rem;
} }
@ -376,13 +385,15 @@
border: 0; border: 0;
outline: none; outline: none;
width: 0.8rem; width: 0.8rem;
height: 0.36rem; height: 0.32rem;
background: #e1edfa; //background: #e1edfa;
border-radius: 0.04rem; background: #0558e1;
border-radius: 0.02rem;
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 400; font-weight: 400;
color: #0087ff; //color: #0087ff;
line-height: 0.34rem; color: #fff;
line-height: 0.32rem;
margin-left: 2.5rem; margin-left: 2.5rem;
cursor: pointer; cursor: pointer;
} }

View File

@ -47,8 +47,8 @@
</div> </div>
</div> </div>
<!-- 联系我们 --> <!-- 联系我们 -->
<div class="img-bg callus-box"> <!--<div class="img-bg callus-box">
<!-- <div class="title" style="margin-bottom: 20px"> <div class="title" style="margin-bottom: 20px">
<div class="text text-white">联系我们</div> <div class="text text-white">联系我们</div>
<div class="line line-white"></div> <div class="line line-white"></div>
</div> </div>
@ -61,8 +61,8 @@
手机号 手机号
<span>0530-0000000</span> <span>0530-0000000</span>
</p> </p>
</div> --> </div>
</div> </div> -->
<!-- 能力上架弹窗 --> <!-- 能力上架弹窗 -->
<a-modal <a-modal
v-model:visible="visible" v-model:visible="visible"

View File

@ -83,6 +83,7 @@
function handlecancel() { function handlecancel() {
abilityToTypeFunctionData.value = '组件服务' abilityToTypeFunctionData.value = '组件服务'
componentTypeValue.value = '' componentTypeValue.value = ''
visible.value = false
} }
let abilityToTypeFunctionData = ref('组件服务') let abilityToTypeFunctionData = ref('组件服务')
function abilityToTypeFunction(item) { function abilityToTypeFunction(item) {
@ -124,6 +125,7 @@
if (abilityToTypeFunctionData.value == '组件服务') { if (abilityToTypeFunctionData.value == '组件服务') {
if (!componentTypeValue.value || componentTypeValue.value == '') { if (!componentTypeValue.value || componentTypeValue.value == '') {
message.error('请选择组件类型!') message.error('请选择组件类型!')
componentTypeValueOld.value=''
return return
} else if ( } else if (
componentTypeValue.value === '智能算法' || componentTypeValue.value === '智能算法' ||
@ -152,7 +154,7 @@
visible.value = false visible.value = false
abilityToTypeFunctionData.value = '组件服务' abilityToTypeFunctionData.value = '组件服务'
componentTypeValue.value = '' componentTypeValue.value = ''
console.log(e) visible.value = false
} }
const getList = () => { const getList = () => {
const params = { const params = {

View File

@ -306,20 +306,24 @@
getUserInfo().then((res) => { getUserInfo().then((res) => {
userName.value = res.data.data.username userName.value = res.data.data.username
}) })
let typeList = ref([
'能力申请',
'能力上架',
'能力下架',
'能力需求',
'需求评论',
'数据资源申请',
'云资源申请',
'云视频申请',
// '',
])
const formState = ref({ name: '' }) const formState = ref({ name: '' })
// 西- // 西-
let isXiHaiAn = whoShow.itShowXiHaiAn let isXiHaiAn = whoShow.itShowXiHaiAn
let typeList = ref(
isXiHaiAn
? ['能力申请', '能力上架', '能力下架', '能力需求', '需求评论']
: [
'能力申请',
'能力上架',
'能力下架',
'能力需求',
'需求评论',
'数据资源申请',
'云资源申请',
'云视频申请',
// '',
]
)
const itShowXiHaiAn = ref(isXiHaiAn) const itShowXiHaiAn = ref(isXiHaiAn)
const phoneSate = ref([2, 3]) const phoneSate = ref([2, 3])
if (isXiHaiAn) { if (isXiHaiAn) {
@ -769,8 +773,9 @@
contentList.data = res.data.data.list contentList.data = res.data.data.list
total.value = res.data.data.total total.value = res.data.data.total
initNum() initNum()
console.log('typeIndex', typeIndex.value)
switch (typeIndex.value) { switch (typeIndex.value) {
case 2: case 1:
contentList.data.map((val) => { contentList.data.map((val) => {
nengliziyuanshangjiaapply(val.businessKey).then((res1) => { nengliziyuanshangjiaapply(val.businessKey).then((res1) => {
console.log('上架===========>', res1.data.data) console.log('上架===========>', res1.data.data)
@ -780,7 +785,7 @@
}) })
}) })
break break
case 3: case 2:
contentList.data.map((val) => { contentList.data.map((val) => {
selectOneDel(val.businessKey).then((res1) => { selectOneDel(val.businessKey).then((res1) => {
console.log('下架===========>', res1.data.data) console.log('下架===========>', res1.data.data)
@ -790,7 +795,7 @@
}) })
}) })
break break
case 4: case 3:
contentList.data.map((val) => { contentList.data.map((val) => {
getDemandForm(val.businessKey).then((res1) => { getDemandForm(val.businessKey).then((res1) => {
console.log('需求===========>', res1.data.data) console.log('需求===========>', res1.data.data)
@ -801,7 +806,7 @@
}) })
}) })
break break
case 5: case 4:
contentList.data.map((val) => { contentList.data.map((val) => {
demandComment(val.businessKey).then((res1) => { demandComment(val.businessKey).then((res1) => {
console.log('评论===========>', res1.data.data) console.log('评论===========>', res1.data.data)