Merge branch 'hi-ucs-dev' into release
# Conflicts: # front/public/static/config/basicConfig.js # front/src/App.vue
This commit is contained in:
commit
f92ac21530
|
@ -79,6 +79,18 @@
|
|||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="resoureType"
|
||||
label="资源类型"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="provideDept"
|
||||
label="提供部门"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<!-- <el-table-column prop="startTime" :label="$t('process.startTime')" header-align="center" align="center"></el-table-column> -->
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
|
|
|
@ -168,7 +168,7 @@
|
|||
>
|
||||
<i class="el-icon-plus"></i>
|
||||
</el-upload>
|
||||
<el-dialog :visible.sync="dialogVisible">
|
||||
<el-dialog :visible.sync="dialogVisible" append-to-body>
|
||||
<img width="100%" :src="picImg" alt="" />
|
||||
</el-dialog>
|
||||
<div
|
||||
|
@ -224,7 +224,7 @@ export default {
|
|||
window.SITE_CONFIG.apiURL + '/upload?token=' + Cookies.get('ucsToken'),
|
||||
labelPosition: 'left',
|
||||
dialogFormVisible: false,
|
||||
// dialogImageUrl: '',
|
||||
// dialogImageUrl: '',
|
||||
ruleForm: {
|
||||
name: '',
|
||||
num: '',
|
||||
|
@ -294,12 +294,13 @@ export default {
|
|||
this.fileList = []
|
||||
},
|
||||
handlePictureCardPreview (file) {
|
||||
this.dialogImageUrl = file.url
|
||||
|
||||
this.picImg = file.url
|
||||
this.dialogVisible = true
|
||||
},
|
||||
// 上传个数限制
|
||||
beforeUpload (file, fileList) {
|
||||
this.$message.error('最多只能上传一张图片!')
|
||||
this.$message.error('最多只能上传一张图片!')
|
||||
},
|
||||
// 图片上传成功时钩子
|
||||
onSuccess (response, file, fileList) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-29 15:59:51
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-11-28 11:28:43
|
||||
* @LastEditTime: 2022-11-30 15:45:35
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<!-- 流程业务表单 -->
|
||||
|
@ -41,7 +41,7 @@
|
|||
</div>
|
||||
</p> -->
|
||||
<p>
|
||||
<div>
|
||||
<div v-if="version == 'xihaian'">
|
||||
<el-button type="primary" size="small" @click="download(dataForm.content)">附件下载</el-button>
|
||||
</div>
|
||||
</p>
|
||||
|
@ -149,6 +149,7 @@ export default {
|
|||
input: '',
|
||||
visible: true,
|
||||
showKey: 0,
|
||||
version: CONFIGITEM.version,
|
||||
// 表单属性是否可编辑
|
||||
// fieldDisabled: false,
|
||||
// dataForm: {
|
||||
|
|
|
@ -0,0 +1,170 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
:visible.sync="visible"
|
||||
title="审核权限配置检查"
|
||||
:footer="false"
|
||||
@close="onClose"
|
||||
|
||||
>
|
||||
<el-tabs v-model="tab" type="card" >
|
||||
<el-tab-pane label="未配置部门管理员权限部门" name="first">
|
||||
<div style="float: left;margin-bottom: 8px;font-size: 16px;">检测结果:共{{deptTotal}}个</div>
|
||||
<el-table
|
||||
:data="deptData"
|
||||
:header-cell-style="{ textAlign: 'center', height: '40px' }"
|
||||
:cell-style="{ textAlign: 'center' }"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column width="80px" label="序号" align="center">
|
||||
<template slot-scope="scop">
|
||||
{{scop.$index+1}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="部门名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="type"
|
||||
label="类型"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
<div class="block" >
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange1"
|
||||
layout=" prev, pager, next"
|
||||
:total="deptTotal"
|
||||
:page-size="pageSize"
|
||||
:current-page="currentPageDept"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="未配置区市审核人权限区市" name="second">
|
||||
<div style="float: left;margin-bottom: 8px;font-size: 16px;">检测结果:共{{districtTotal}}个</div>
|
||||
<el-table
|
||||
:data="districtData"
|
||||
:header-cell-style="{ textAlign: 'center', height: '40px' }"
|
||||
:cell-style="{ textAlign: 'center' }"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column width="80px" label="序号" align="center">
|
||||
<template slot-scope="scop">
|
||||
{{scop.$index+1}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="NAME"
|
||||
label="区市名称"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<!-- <el-table-column
|
||||
prop="type"
|
||||
label="类型"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column> -->
|
||||
|
||||
</el-table>
|
||||
<div class="block" >
|
||||
<el-pagination
|
||||
@current-change="handleCurrentChange2"
|
||||
layout="prev, pager, next"
|
||||
:total="deptTotal"
|
||||
:page-size="pageSize"
|
||||
:current-page="currentPageDistrict"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
visible:false,
|
||||
tab:'first',
|
||||
deptTotal:0,
|
||||
districtTotal:0,
|
||||
deptData:[],
|
||||
districtData:[],
|
||||
currentPageDistrict:1,
|
||||
currentPageDept:1,
|
||||
pageSize:10,
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
|
||||
},
|
||||
methods: {
|
||||
handleCurrentChange1 (val) {
|
||||
this.currentPageDept = val
|
||||
this.getDeptList()
|
||||
},
|
||||
handleCurrentChange2 (val) {
|
||||
this.currentPageDistrict = val
|
||||
this.getDistrinctList()
|
||||
},
|
||||
getDeptList(){
|
||||
let params = {
|
||||
pageNum:this.currentPageDept,
|
||||
pageSize:this.pageSize
|
||||
|
||||
}
|
||||
this.$http
|
||||
.get('/sys/user/getApproverUnconfiguredDepartment/', {params
|
||||
|
||||
})
|
||||
.then((res) => {
|
||||
this.deptData = res.data.data.list
|
||||
this.deptTotal = Number(res.data.data.total)
|
||||
})
|
||||
},
|
||||
getDistrinctList(){
|
||||
let params = {
|
||||
pageNum:this.currentPageDistrict,
|
||||
pageSize:this.pageSize
|
||||
|
||||
}
|
||||
this.$http
|
||||
.get('/sys/user/getApproverUnconfiguredRegion', {params
|
||||
|
||||
})
|
||||
.then((res) => {
|
||||
this.districtData = res.data.data
|
||||
this.districtTotal = Number(res.data.data.length)
|
||||
})
|
||||
},
|
||||
onClose(){
|
||||
this.visible=false;
|
||||
this.$emit("refreshCheck",false)
|
||||
},
|
||||
init(){
|
||||
this.visible = true
|
||||
this.getDeptList()
|
||||
this.getDistrinctList()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
::v-deep .aui-content .el-tabs__header {
|
||||
left: 0px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -41,6 +41,9 @@
|
|||
<el-form-item>
|
||||
<el-button type="primary" @click="reset()">重置</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="check()">审核权限配置检查</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"
|
||||
@sort-change="dataListSortChangeHandle" style="width: 100%">
|
||||
|
@ -87,6 +90,8 @@
|
|||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
<!-- 审核权限配置检查 -->
|
||||
<check v-if="checkVisible" ref="check" @refreshCheck="refreshCheck"></check>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
@ -94,11 +99,14 @@
|
|||
<script>
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import AddOrUpdate from './user-add-or-update'
|
||||
import Check from './check'
|
||||
import qs from 'qs'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data () {
|
||||
return {
|
||||
//审核权限配置检查
|
||||
checkVisible:false,
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/sys/user/page',
|
||||
getDataListIsPage: true,
|
||||
|
@ -116,12 +124,22 @@ export default {
|
|||
}
|
||||
},
|
||||
components: {
|
||||
AddOrUpdate
|
||||
AddOrUpdate,
|
||||
Check
|
||||
},
|
||||
created () {
|
||||
this.getDeptList()
|
||||
},
|
||||
methods: {
|
||||
check(){
|
||||
this.checkVisible=true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.check.init()
|
||||
})
|
||||
},
|
||||
refreshCheck(val){
|
||||
this.checkVisible=val
|
||||
},
|
||||
reset () {
|
||||
this.dataForm.username = ''
|
||||
this.dataForm.real_name = ''
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2020-07-07 16:03:23
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-11-28 17:32:57
|
||||
* @LastEditTime: 2022-12-01 12:32:58
|
||||
* @Description: 系统静态参数配置
|
||||
*/
|
||||
var _global = {}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-05-06 11:12:0011-18 19:07:53
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-11-28 17:33:32
|
||||
* @LastEditTime: 2022-12-01 12:33:18
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<template>
|
||||
|
@ -19,13 +19,14 @@
|
|||
import { getCategoryTreePage } from '@/api/personalCenter'
|
||||
import zhCN from 'ant-design-vue/es/locale/zh_CN'
|
||||
import Cookies from 'js-cookie'
|
||||
import { onBeforeUnmount, onMounted, watch, nextTick } from 'vue'
|
||||
import { onBeforeUnmount, onMounted, watch, ref } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
const router = useRouter()
|
||||
|
||||
const locale = zhCN
|
||||
const token = Cookies.get('ucsToken')
|
||||
const whoShow1 = ref(whoShow)
|
||||
console.log('token=================>', token)
|
||||
let ws = new WebSocket(
|
||||
`ws://${window.SITE_CONFIG['websocketURL']}/websocket?token=${token}`
|
||||
|
@ -39,6 +40,13 @@
|
|||
if (router.currentRoute.value.name === 'mynoticeView') {
|
||||
mybus.emit('noticeListInit')
|
||||
}
|
||||
// 判断当前路由是否是待办列表
|
||||
if (
|
||||
router.currentRoute.value.name === 'DetailsPageconetent' &&
|
||||
whoShow1.value.itShowXiHaiAn
|
||||
) {
|
||||
mybus.emit('initDetailsPageconetent')
|
||||
}
|
||||
}
|
||||
ws.onerror = function (e) {
|
||||
console.log('WebSocket连接异常============================>', e)
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
/*
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-11-28 16:43:10
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-11-29 11:35:36
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
//获取中间地图
|
||||
export function getDistrictFundStatement() {
|
||||
|
@ -8,65 +15,65 @@ export function getDistrictFundStatement() {
|
|||
}
|
||||
//左侧获取组件资源节约资金列表
|
||||
export function getComponentFundStatement() {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getComponentFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getComponentFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//左侧获取应用资源列表
|
||||
export function getResourceFundStatement() {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getResourceFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getResourceFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//左侧基础设施
|
||||
export function getInfrastructureFundStatement() {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getInfrastructureFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//右侧市级部门共享排行
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getInfrastructureFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//右侧市级部门共享排行
|
||||
export function getProvideDeptFundStatement() {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getProvideDeptFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//右侧市级部门申请排行
|
||||
export function getApplyDeptFundStatement() {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getApplyDeptFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getProvideDeptFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//右侧市级部门申请排行
|
||||
export function getApplyDeptFundStatement() {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getApplyDeptFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//右侧区市提供排行
|
||||
export function getProvideDistrictFundStatement() {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getProvideDistrictFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getProvideDistrictFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//右侧区市申请排行
|
||||
export function getApplyDistrictFundStatement() {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getApplyDistrictFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getApplyDistrictFundStatement',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//右侧资源汇聚总量
|
||||
export function selectTotal() {
|
||||
return request({
|
||||
url: '/resource/selectTotal',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//首页 获取总节省资金
|
||||
//右侧资源汇聚总量
|
||||
return request({
|
||||
url: '/resource/selectTotal',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
//首页 获取总节省资金
|
||||
//右侧资源汇聚总量
|
||||
export function getApplyPriceCount() {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getApplyPriceCount',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/getApplyPriceCount',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 254 B |
Binary file not shown.
After Width: | Height: | Size: 469 B |
Binary file not shown.
After Width: | Height: | Size: 126 KiB |
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
|
@ -2,7 +2,7 @@
|
|||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 登录、获取用户信息、退出登录、清除accessToken逻辑,不建议修改
|
||||
*/
|
||||
import { getUserInfo, login, logout } from '@/api/user'
|
||||
import { getUserInfo, login, logout, getRole } from '@/api/user'
|
||||
import {
|
||||
getAccessToken,
|
||||
removeAccessToken,
|
||||
|
@ -20,6 +20,7 @@ const state = () => ({
|
|||
userId: '',
|
||||
avatar: '',
|
||||
role: 0, // 用户管理员权限
|
||||
roleList: [], // 用户管理员权限
|
||||
})
|
||||
const getters = {
|
||||
accessToken: (state) => state.accessToken,
|
||||
|
@ -27,6 +28,7 @@ const getters = {
|
|||
realName: (state) => state.realName,
|
||||
avatar: (state) => state.avatar,
|
||||
role: (state) => state.role,
|
||||
roleList: (state) => state.roleList,
|
||||
userId: (state) => state.userId,
|
||||
deptName: (state) => state.deptName,
|
||||
deptId: (state) => state.deptId,
|
||||
|
@ -64,6 +66,9 @@ const mutations = {
|
|||
setRole(state, role) {
|
||||
state.role = role
|
||||
},
|
||||
setRoleList(state, role) {
|
||||
state.roleList = role
|
||||
},
|
||||
// 设置用户userId
|
||||
setUserId(state, id) {
|
||||
state.userId = id
|
||||
|
@ -146,6 +151,14 @@ const actions = {
|
|||
commit('setUsername', res.data.data.username)
|
||||
commit('setRealname', res.data.data.realName)
|
||||
commit('setRole', res.data.data.roleIdList.length)
|
||||
// 获取角色数据
|
||||
const roleArr = []
|
||||
res.data.data.roleIdList.map((val) => {
|
||||
getRole(val).then((role) => {
|
||||
roleArr.push(role.data.data.name)
|
||||
})
|
||||
})
|
||||
commit('setRoleList', roleArr)
|
||||
commit('setUserId', res.data.data.id)
|
||||
commit('setDeptName', res.data.data.deptName)
|
||||
commit('setDeptId', res.data.data.deptId)
|
||||
|
@ -181,7 +194,6 @@ const actions = {
|
|||
* @param {*} { commit, dispatch }
|
||||
*/
|
||||
async resetAll({ dispatch }) {
|
||||
|
||||
await dispatch('setAccessToken', '')
|
||||
await dispatch('acl/setFull', false, {
|
||||
root: true,
|
||||
|
|
|
@ -687,7 +687,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
.item:nth-child(2n) {
|
||||
.item:nth-(2n) {
|
||||
margin-left: 0.4rem;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,8 +33,12 @@
|
|||
</div>
|
||||
<a-empty
|
||||
v-else
|
||||
style="margin-top: 160px; margin-bottom: 60px"
|
||||
:imageStyle="{ color: '#0058e1' }"
|
||||
style="
|
||||
margin-top: 160px;
|
||||
margin-bottom: 60px;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
"
|
||||
:image="empty"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -51,6 +55,7 @@
|
|||
require('../../../assets/newHome/popular-yy.png'),
|
||||
require('../../../assets/newHome/popular-zs.png'),
|
||||
])
|
||||
const empty = ref(require('@/assets/newHome/empty.png'))
|
||||
//查看详情方法
|
||||
function viewDetails(id) {
|
||||
console.log('id=========>', id)
|
||||
|
|
|
@ -1,151 +1,167 @@
|
|||
|
||||
<template>
|
||||
<div class="right-survey">
|
||||
|
||||
<div class="platform-overview-bottom">
|
||||
<div class="top"><span class="title">资源汇聚总量</span></div>
|
||||
<div class="bottom">
|
||||
<div
|
||||
v-for="(item, index) in servicesNum"
|
||||
:key="index"
|
||||
class="component-services-content-right-left-content-son"
|
||||
>
|
||||
<p>{{ item.type }}</p>
|
||||
<p class="num">{{ item.count }}</p>
|
||||
</div>
|
||||
<div class="right-survey">
|
||||
|
||||
<div class="platform-overview-bottom">
|
||||
<div class="top"><span class="title">资源汇聚总量</span></div>
|
||||
<div class="jiesheng"> <img src="../image/xing2.png" /><span style="padding-left:2px;">共{{total}}项 </span><img src="../image/xing2.png" /></div>
|
||||
<div class="bottom">
|
||||
|
||||
<div
|
||||
v-for="(item, index) in servicesNum"
|
||||
:key="index"
|
||||
class="component-services-content-right-left-content-son"
|
||||
>
|
||||
<p>{{ item.type }}</p>
|
||||
<p class="num">{{ item.count }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
selectTotal
|
||||
} from '@/api/assertReport'
|
||||
export default {
|
||||
|
||||
components: {},
|
||||
|
||||
mounted() {
|
||||
this.selectAllTotal()
|
||||
},
|
||||
data() {
|
||||
//这里存放数据
|
||||
return {
|
||||
|
||||
servicesNum: [],
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
</div>
|
||||
</template>
|
||||
|
||||
selectAllTotal(){
|
||||
selectTotal().then((res) => {
|
||||
this.servicesNum=res.data.data.total
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang='less' scoped>
|
||||
@keyframes turn {
|
||||
0% {
|
||||
border-image: linear-gradient(to right, #003194, #00ffea) 1;
|
||||
<script>
|
||||
import {
|
||||
selectTotal
|
||||
} from '@/api/assertReport'
|
||||
export default {
|
||||
|
||||
components: {},
|
||||
|
||||
mounted() {
|
||||
this.selectAllTotal()
|
||||
},
|
||||
data() {
|
||||
//这里存放数据
|
||||
return {
|
||||
total:'',
|
||||
servicesNum: [],
|
||||
}
|
||||
25% {
|
||||
border-image: linear-gradient(to bottom, #003194, #00ffea) 1;
|
||||
}
|
||||
50% {
|
||||
border-image: linear-gradient(to left, #003194, #00ffea) 1;
|
||||
}
|
||||
75% {
|
||||
border-image: linear-gradient(to top, #003194, #00ffea) 1;
|
||||
}
|
||||
100% {
|
||||
border-image: linear-gradient(to right, #003194, #00ffea) 1;
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
selectAllTotal(){
|
||||
selectTotal().then((res) => {
|
||||
let result=res.data.data.total
|
||||
let now=[]
|
||||
let num=0;
|
||||
for(let i=0;i<result.length;i++){
|
||||
if(result[i].type!=='知识库'){
|
||||
now.push(result[i])
|
||||
num=num+Number(result[i].count)
|
||||
}
|
||||
}
|
||||
this.servicesNum=now
|
||||
this.total=num
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang='less' scoped>
|
||||
@keyframes turn {
|
||||
0% {
|
||||
border-image: linear-gradient(to right, #003194, #00ffea) 1;
|
||||
}
|
||||
.top5-content::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
/*height: 4px;*/
|
||||
25% {
|
||||
border-image: linear-gradient(to bottom, #003194, #00ffea) 1;
|
||||
}
|
||||
|
||||
.top5-content::-webkit-scrollbar-thumb {
|
||||
background-color: #00deff;
|
||||
50% {
|
||||
border-image: linear-gradient(to left, #003194, #00ffea) 1;
|
||||
}
|
||||
.map-search-result::-webkit-scrollbar-track,
|
||||
.top5-content::-webkit-scrollbar-track {
|
||||
background-color: #424748;
|
||||
75% {
|
||||
border-image: linear-gradient(to top, #003194, #00ffea) 1;
|
||||
}
|
||||
@keyframes topup50 {
|
||||
from {
|
||||
top: 50%;
|
||||
}
|
||||
to {
|
||||
top: -100%;
|
||||
100% {
|
||||
border-image: linear-gradient(to right, #003194, #00ffea) 1;
|
||||
}
|
||||
}
|
||||
.jiesheng{
|
||||
margin:8px 8px;
|
||||
text-align: center;
|
||||
color: #f4fcfe; border-color: #107bb0;
|
||||
box-shadow: 1px 1px 5px 1px RGB(16, 123, 176, 0.8) inset
|
||||
}
|
||||
.top5-content::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
/*height: 4px;*/
|
||||
}
|
||||
|
||||
.top5-content::-webkit-scrollbar-thumb {
|
||||
background-color: #00deff;
|
||||
}
|
||||
.map-search-result::-webkit-scrollbar-track,
|
||||
.top5-content::-webkit-scrollbar-track {
|
||||
background-color: #424748;
|
||||
}
|
||||
@keyframes topup50 {
|
||||
from {
|
||||
top: 50%;
|
||||
}
|
||||
.right-survey {
|
||||
|
||||
height: 100%;
|
||||
color: #f0fafa;
|
||||
font-size: 18px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
|
||||
.platform-overview-bottom {
|
||||
to {
|
||||
top: -100%;
|
||||
}
|
||||
}
|
||||
.right-survey {
|
||||
|
||||
height: 100%;
|
||||
color: #f0fafa;
|
||||
font-size: 18px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
|
||||
.platform-overview-bottom {
|
||||
margin-top: 5px;
|
||||
width: 100%;
|
||||
height: 1.78rem;
|
||||
background: rgba(0, 108, 188, 0.2);
|
||||
border-radius: 2px;
|
||||
border: 1px solid rgba(0, 108, 188, 0.7);
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
-webkit-transition: all 100ms ease-out;
|
||||
-moz-transition: all 100ms ease-out;
|
||||
transition: all 100ms ease-out;
|
||||
.top {
|
||||
font-size: 24px;
|
||||
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
.bottom {
|
||||
margin-top: 20px;
|
||||
width: 100%;
|
||||
height: 1.7rem;
|
||||
background: rgba(0, 108, 188, 0.2);
|
||||
border-radius: 2px;
|
||||
border: 1px solid rgba(0, 108, 188, 0.7);
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
-webkit-transition: all 100ms ease-out;
|
||||
-moz-transition: all 100ms ease-out;
|
||||
transition: all 100ms ease-out;
|
||||
.top {
|
||||
font-size: 24px;
|
||||
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0px 10px;
|
||||
.component-services-content-right-left-content-son {
|
||||
background: url('~@/assets/capabilityCloud/Component_services_snum.png')
|
||||
no-repeat;
|
||||
background-size: 1.1rem 0.59rem;
|
||||
background-position: center;
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
.bottom {
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding:0rem 0.2rem;
|
||||
.component-services-content-right-left-content-son {
|
||||
background: url('~@/assets/capabilityCloud/Component_services_snum.png')
|
||||
no-repeat;
|
||||
background-size: 1.1rem 0.59rem;
|
||||
background-position: center;
|
||||
text-align: center;
|
||||
|
||||
& > p:first-child {
|
||||
color: #ffffff;
|
||||
font-size: 0.16rem;
|
||||
line-height: 0.16rem;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
& > p:last-child {
|
||||
color: #1ef6f5;
|
||||
font-size: 0.28rem;
|
||||
line-height: 0.28rem;
|
||||
padding-bottom: 0.24rem;
|
||||
margin: 10px 45px;
|
||||
}
|
||||
|
||||
& > p:first-child {
|
||||
color: #ffffff;
|
||||
font-size: 0.16rem;
|
||||
line-height: 0.16rem;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
& > p:last-child {
|
||||
color: #1ef6f5;
|
||||
font-size: 0.28rem;
|
||||
line-height: 0.28rem;
|
||||
padding-bottom: 0.24rem;
|
||||
margin: 10px 45px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.platform-overview-bottom:hover {
|
||||
border: 2px solid;
|
||||
animation: turn 5s linear infinite;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
.platform-overview-bottom:hover {
|
||||
border: 2px solid;
|
||||
animation: turn 5s linear infinite;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
<template>
|
||||
<div class="right-survey">
|
||||
<!--最上面 部门排行榜-->
|
||||
|
@ -7,7 +6,7 @@
|
|||
<div class="bottom1">
|
||||
<div class="bottom-item">
|
||||
<div class="inner-title">
|
||||
<p style="width: 220px">市级部门共享贡献资金排行</p>
|
||||
<p style="width: 220px">市级部门共享节省资金排行</p>
|
||||
</div>
|
||||
<div class="left-list">
|
||||
<div class="left-list1">排行</div>
|
||||
|
@ -15,6 +14,7 @@
|
|||
<div class="left-list1">应用数</div>
|
||||
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
|
||||
</div>
|
||||
<div style=" height: 1.7rem; overflow-y: auto;overflow-x: hidden;width: 100%;">
|
||||
<div class="left-list" v-for="(item, index) in top5DistrictList">
|
||||
<div class="left-list1" v-if="item.img">
|
||||
<img :src="item.img" />
|
||||
|
@ -30,64 +30,15 @@
|
|||
{{ item.applyPrice }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="bottom-item">
|
||||
<div class="inner-title">
|
||||
<p style="width: 220px">市级部门审评节省资金排行</p>
|
||||
</div>
|
||||
<div class="left-list">
|
||||
<div class="left-list1">排行</div>
|
||||
<div class="left-list2">部门名称</div>
|
||||
<div class="left-list1">应用数</div>
|
||||
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
|
||||
</div>
|
||||
<div class="left-list" v-for="(item, index) in top5DeptFundList">
|
||||
<div class="left-list1" v-if="item.img">
|
||||
<img :src="item.img" />
|
||||
</div>
|
||||
<div class="left-list1" v-else>{{ index + 1 }}</div>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.deptName }}</template>
|
||||
<div class="left-list2">{{ item.deptName }}</div>
|
||||
</a-tooltip>
|
||||
|
||||
<div class="left-list1">{{ item.applyCount }}</div>
|
||||
<div class="left-list1" style="color: #1ffefd">
|
||||
{{ item.applyPrice }}
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
<div class="bottom1">
|
||||
<!-- <div class="bottom-item">
|
||||
<div class="inner-title">
|
||||
<p style="width: 220px">市级部门共享贡献资金排行</p>
|
||||
</div>
|
||||
<div class="left-list">
|
||||
<div class="left-list1">排行</div>
|
||||
<div class="left-list2">部门名称</div>
|
||||
<div class="left-list1">应用数</div>
|
||||
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
|
||||
</div>
|
||||
<div class="left-list" v-for="(item, index) in top5DistrictList">
|
||||
<div class="left-list1" v-if="item.img">
|
||||
<img :src="item.img" />
|
||||
</div>
|
||||
<div class="left-list1" v-else>{{ index + 1 }}</div>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.deptName }}</template>
|
||||
<div class="left-list2">{{ item.deptName }}</div>
|
||||
</a-tooltip>
|
||||
|
||||
<div class="left-list1">{{ item.resourceCount }}</div>
|
||||
<div class="left-list1" style="color: #1ffefd">
|
||||
{{ item.applyPrice }}
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="bottom-item">
|
||||
<div class="inner-title">
|
||||
<p style="width: 220px">市级部门审评节省资金排行</p>
|
||||
<p style="width: 220px">市级部门申请节省资金排行</p>
|
||||
</div>
|
||||
<div class="left-list">
|
||||
<div class="left-list1">排行</div>
|
||||
|
@ -95,6 +46,7 @@
|
|||
<div class="left-list1">应用数</div>
|
||||
<div class="left-list1" style="color: #1ffefd">贡献金额</div>
|
||||
</div>
|
||||
<div style=" height: 1.7rem; overflow-y: auto;overflow-x: hidden;width: 100%;">
|
||||
<div class="left-list" v-for="(item, index) in top5DeptFundList">
|
||||
<div class="left-list1" v-if="item.img">
|
||||
<img :src="item.img" />
|
||||
|
@ -109,13 +61,14 @@
|
|||
<div class="left-list1" style="color: #1ffefd">
|
||||
{{ item.applyPrice }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom2">
|
||||
<div class="bottom-item">
|
||||
<div class="inner-title">
|
||||
<p style="width: 220px">区市部门共享贡献资金排行</p>
|
||||
<p style="width: 220px">区市部门共享节省资金</p>
|
||||
</div>
|
||||
<div class="left-list">
|
||||
<div class="left-list1">序号</div>
|
||||
|
@ -146,7 +99,7 @@
|
|||
</div>
|
||||
<div class="bottom-item">
|
||||
<div class="inner-title">
|
||||
<p style="width: 220px">区市部门申请节省资金排行</p>
|
||||
<p style="width: 220px">区市部门申请节省资金</p>
|
||||
</div>
|
||||
<div class="left-list">
|
||||
<div class="left-list1">序号</div>
|
||||
|
@ -195,126 +148,126 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getProvideDeptFundStatement,
|
||||
getApplyDeptFundStatement,
|
||||
getProvideDistrictFundStatement,
|
||||
getApplyDistrictFundStatement,
|
||||
selectTotal,
|
||||
} from '@/api/assertReport'
|
||||
export default {
|
||||
components: {},
|
||||
created() {},
|
||||
destroyed() {},
|
||||
import {
|
||||
getProvideDeptFundStatement,
|
||||
getApplyDeptFundStatement,
|
||||
getProvideDistrictFundStatement,
|
||||
getApplyDistrictFundStatement,
|
||||
selectTotal,
|
||||
} from '@/api/assertReport'
|
||||
export default {
|
||||
components: {},
|
||||
created() {},
|
||||
unmounted() {},
|
||||
|
||||
mounted() {
|
||||
this.getgetProvideDeptFund()
|
||||
this.getApplyDeptFund()
|
||||
this.getProvideDistrict()
|
||||
this.getApplyDistrictFund()
|
||||
this.selectAllTotal()
|
||||
},
|
||||
data() {
|
||||
//这里存放数据
|
||||
return {
|
||||
//市级部门共享排行
|
||||
top5DistrictList: [],
|
||||
//市级部门申请排行
|
||||
top5DeptFundList: [],
|
||||
//区市提供排行
|
||||
top5eDistrictFundList: [],
|
||||
//区市申请排行
|
||||
top5ApplyDistrictList: [],
|
||||
servicesNum: [],
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getgetProvideDeptFund()
|
||||
this.getApplyDeptFund()
|
||||
this.getProvideDistrict()
|
||||
this.getApplyDistrictFund()
|
||||
this.selectAllTotal()
|
||||
},
|
||||
data() {
|
||||
//这里存放数据
|
||||
return {
|
||||
//市级部门共享排行
|
||||
top5DistrictList: [],
|
||||
//市级部门申请排行
|
||||
top5DeptFundList: [],
|
||||
//区市提供排行
|
||||
top5eDistrictFundList: [],
|
||||
//区市申请排行
|
||||
top5ApplyDistrictList: [],
|
||||
servicesNum: [],
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
getgetProvideDeptFund() {
|
||||
getProvideDeptFundStatement().then((res) => {
|
||||
let result = res.data.data
|
||||
if (result.length > 0) {
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
if (i === 0) {
|
||||
result[i].img = require('../image/one.png')
|
||||
}
|
||||
if (i === 1) {
|
||||
result[i].img = require('../image/two.png')
|
||||
}
|
||||
if (i === 2) {
|
||||
result[i].img = require('../image/three.png')
|
||||
methods: {
|
||||
getgetProvideDeptFund() {
|
||||
getProvideDeptFundStatement().then((res) => {
|
||||
let result = res.data.data
|
||||
if (result.length > 0) {
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
if (i === 0) {
|
||||
result[i].img = require('../image/one.png')
|
||||
}
|
||||
if (i === 1) {
|
||||
result[i].img = require('../image/two.png')
|
||||
}
|
||||
if (i === 2) {
|
||||
result[i].img = require('../image/three.png')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.top5DistrictList = result
|
||||
})
|
||||
},
|
||||
getApplyDeptFund() {
|
||||
getApplyDeptFundStatement().then((res) => {
|
||||
let result = res.data.data
|
||||
if (result.length > 0) {
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
if (i === 0) {
|
||||
result[i].img = require('../image/one.png')
|
||||
}
|
||||
if (i === 1) {
|
||||
result[i].img = require('../image/two.png')
|
||||
}
|
||||
if (i === 2) {
|
||||
result[i].img = require('../image/three.png')
|
||||
this.top5DistrictList = result
|
||||
})
|
||||
},
|
||||
getApplyDeptFund() {
|
||||
getApplyDeptFundStatement().then((res) => {
|
||||
let result = res.data.data
|
||||
if (result.length > 0) {
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
if (i === 0) {
|
||||
result[i].img = require('../image/one.png')
|
||||
}
|
||||
if (i === 1) {
|
||||
result[i].img = require('../image/two.png')
|
||||
}
|
||||
if (i === 2) {
|
||||
result[i].img = require('../image/three.png')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.top5DeptFundList = result
|
||||
})
|
||||
this.top5DeptFundList = result
|
||||
})
|
||||
},
|
||||
getProvideDistrict() {
|
||||
getProvideDistrictFundStatement().then((res) => {
|
||||
let result = res.data.data
|
||||
// if(result.length>0){
|
||||
// for(let i=0;i<result.length;i++){
|
||||
// if(i===0){
|
||||
// result[i].img=require('../image/one.png')
|
||||
// }
|
||||
// if(i===1){
|
||||
// result[i].img=require('../image/two.png')
|
||||
// }
|
||||
// if(i===2){
|
||||
// result[i].img= require('../image/three.png')
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
this.top5eDistrictFundList = result
|
||||
})
|
||||
},
|
||||
getApplyDistrictFund() {
|
||||
getApplyDistrictFundStatement().then((res) => {
|
||||
let result = res.data.data
|
||||
// if(result.length>0){
|
||||
// for(let i=0;i<result.length;i++){
|
||||
// if(i===0){
|
||||
// result[i].img=require('../image/one.png')
|
||||
// }
|
||||
// if(i===1){
|
||||
// result[i].img=require('../image/two.png')
|
||||
// }
|
||||
// if(i===2){
|
||||
// result[i].img= require('../image/three.png')
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
this.top5ApplyDistrictList = result
|
||||
})
|
||||
},
|
||||
selectAllTotal() {
|
||||
selectTotal().then((res) => {
|
||||
this.servicesNum = res.data.data.total
|
||||
})
|
||||
},
|
||||
},
|
||||
getProvideDistrict() {
|
||||
getProvideDistrictFundStatement().then((res) => {
|
||||
let result = res.data.data
|
||||
// if(result.length>0){
|
||||
// for(let i=0;i<result.length;i++){
|
||||
// if(i===0){
|
||||
// result[i].img=require('../image/one.png')
|
||||
// }
|
||||
// if(i===1){
|
||||
// result[i].img=require('../image/two.png')
|
||||
// }
|
||||
// if(i===2){
|
||||
// result[i].img= require('../image/three.png')
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
this.top5eDistrictFundList = result
|
||||
})
|
||||
},
|
||||
getApplyDistrictFund() {
|
||||
getApplyDistrictFundStatement().then((res) => {
|
||||
let result = res.data.data
|
||||
// if(result.length>0){
|
||||
// for(let i=0;i<result.length;i++){
|
||||
// if(i===0){
|
||||
// result[i].img=require('../image/one.png')
|
||||
// }
|
||||
// if(i===1){
|
||||
// result[i].img=require('../image/two.png')
|
||||
// }
|
||||
// if(i===2){
|
||||
// result[i].img= require('../image/three.png')
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
this.top5ApplyDistrictList = result
|
||||
})
|
||||
},
|
||||
selectAllTotal() {
|
||||
selectTotal().then((res) => {
|
||||
this.servicesNum = res.data.data.total
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang='less' scoped>
|
||||
<style lang="less" scoped>
|
||||
@keyframes turn {
|
||||
0% {
|
||||
border-image: linear-gradient(to right, #003194, #00ffea) 1;
|
||||
|
@ -332,212 +285,215 @@ export default {
|
|||
border-image: linear-gradient(to right, #003194, #00ffea) 1;
|
||||
}
|
||||
}
|
||||
.top5-content::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
/*height: 4px;*/
|
||||
}
|
||||
|
||||
.top5-content::-webkit-scrollbar-thumb {
|
||||
background-color: #00deff;
|
||||
}
|
||||
.map-search-result::-webkit-scrollbar-track,
|
||||
.top5-content::-webkit-scrollbar-track {
|
||||
background-color: #424748;
|
||||
}
|
||||
@keyframes topup50 {
|
||||
from {
|
||||
top: 50%;
|
||||
.top5-content::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
/*height: 4px;*/
|
||||
}
|
||||
to {
|
||||
top: -100%;
|
||||
|
||||
.top5-content::-webkit-scrollbar-thumb {
|
||||
background-color: #00deff;
|
||||
}
|
||||
}
|
||||
.right-survey {
|
||||
width: 620px;
|
||||
height: 100%;
|
||||
color: #f0fafa;
|
||||
font-size: 18px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.map-search-result::-webkit-scrollbar-track,
|
||||
.top5-content::-webkit-scrollbar-track {
|
||||
background-color: #424748;
|
||||
}
|
||||
@keyframes topup50 {
|
||||
from {
|
||||
top: 50%;
|
||||
}
|
||||
to {
|
||||
top: -100%;
|
||||
}
|
||||
}
|
||||
.right-survey {
|
||||
width: 620px;
|
||||
height: 100%;
|
||||
color: #f0fafa;
|
||||
font-size: 18px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.platform-overview-top {
|
||||
width: 100%;
|
||||
height: 9.9rem;
|
||||
background: rgba(0, 108, 188, 0.2);
|
||||
border-radius: 2px;
|
||||
border: 1px solid rgba(0, 108, 188, 0.7);
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
-webkit-transition: all 100ms ease-out;
|
||||
-moz-transition: all 100ms ease-out;
|
||||
transition: all 100ms ease-out;
|
||||
.top {
|
||||
font-size: 24px;
|
||||
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
text-align: center;
|
||||
}
|
||||
.bottom1 {
|
||||
margin-top: 10px;
|
||||
.platform-overview-top {
|
||||
width: 100%;
|
||||
display: table;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 1.8rem;
|
||||
.bottom-item {
|
||||
width: 98%;
|
||||
}
|
||||
}
|
||||
.bottom2 {
|
||||
margin-top: 10px;
|
||||
// margin-top:10px;
|
||||
width: 100%;
|
||||
display: table;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 4.0rem;
|
||||
.bottom-item {
|
||||
width: 48%;
|
||||
}
|
||||
}
|
||||
|
||||
:hover.bottom-item {
|
||||
background: rgba(0, 108, 188, 0.5);
|
||||
}
|
||||
.bottom-item {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
height: 9.9rem;
|
||||
background: rgba(0, 108, 188, 0.2);
|
||||
border-radius: 2px;
|
||||
margin: 2px 5px;
|
||||
border: 1px solid #10496f;
|
||||
|
||||
.inner-title {
|
||||
border: 1px solid rgba(0, 108, 188, 0.7);
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
-webkit-transition: all 100ms ease-out;
|
||||
-moz-transition: all 100ms ease-out;
|
||||
transition: all 100ms ease-out;
|
||||
.top {
|
||||
font-size: 24px;
|
||||
background: url('~@/assets/capabilityCloud/infrastructure_title.png')
|
||||
no-repeat;
|
||||
background-size: 100% 100%;
|
||||
text-align: center;
|
||||
}
|
||||
.bottom1 {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 5px;
|
||||
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
p {
|
||||
font-size: 16px;
|
||||
line-height: 27px;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
#041d2f 0,
|
||||
rgba(8, 115, 193, 0) 90%
|
||||
);
|
||||
color: #1ffefd;
|
||||
width: auto;
|
||||
padding-left: 5px;
|
||||
width: 100%;
|
||||
// display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 2.5rem;
|
||||
// overflow-y: auto;
|
||||
.bottom-item {
|
||||
width: 98%;
|
||||
}
|
||||
}
|
||||
.bottom2 {
|
||||
margin-top: 10px;
|
||||
// margin-top:10px;
|
||||
width: 100%;
|
||||
display: table;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 4rem;
|
||||
.bottom-item {
|
||||
width: 48%;
|
||||
}
|
||||
}
|
||||
|
||||
display: inline-table;
|
||||
:hover.bottom-item {
|
||||
background: rgba(0, 108, 188, 0.5);
|
||||
}
|
||||
.bottom-item {
|
||||
height: 100%;
|
||||
// overflow-y: auto;
|
||||
background: rgba(0, 108, 188, 0.2);
|
||||
border-radius: 2px;
|
||||
margin: 2px 5px;
|
||||
border: 1px solid #10496f;
|
||||
|
||||
.left-list {
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
height: 26px;
|
||||
margin-right: 10px;
|
||||
margin-top: 5px;
|
||||
font-size: 16px;
|
||||
.left-list1 {
|
||||
font-size: 16x;
|
||||
float: left;
|
||||
width: 22%;
|
||||
height: 0.32rem;
|
||||
line-height: 0.32rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
.left-list2 {
|
||||
height: 0.32rem;
|
||||
line-height: 0.32rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
float: left;
|
||||
width: 30%;
|
||||
&:hover {
|
||||
color: rgb(0 255 255);
|
||||
.inner-title {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 5px;
|
||||
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
p {
|
||||
font-size: 16px;
|
||||
line-height: 27px;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
#041d2f 0,
|
||||
rgba(8, 115, 193, 0) 90%
|
||||
);
|
||||
color: #1ffefd;
|
||||
width: auto;
|
||||
padding-left: 5px;
|
||||
}
|
||||
}
|
||||
.active-item {
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
float: left;
|
||||
width: 40%;
|
||||
color: rgb(0 255 255);
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
|
||||
display: inline-table;
|
||||
|
||||
.left-list {
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
height: 26px;
|
||||
margin-right: 10px;
|
||||
margin-top: 5px;
|
||||
font-size: 16px;
|
||||
.left-list1 {
|
||||
font-size: 16x;
|
||||
float: left;
|
||||
width: 22%;
|
||||
height: 0.32rem;
|
||||
line-height: 0.32rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
.left-list2 {
|
||||
height: 0.32rem;
|
||||
line-height: 0.32rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
float: left;
|
||||
width: 30%;
|
||||
&:hover {
|
||||
color: rgb(0 255 255);
|
||||
}
|
||||
}
|
||||
.active-item {
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
float: left;
|
||||
width: 40%;
|
||||
color: rgb(0 255 255);
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.platform-overview-top:hover {
|
||||
border: 2px solid;
|
||||
animation: turn 5s linear infinite;
|
||||
}
|
||||
.platform-overview-bottom {
|
||||
margin-top: 20px;
|
||||
width: 100%;
|
||||
height: 1.7rem;
|
||||
background: rgba(0, 108, 188, 0.2);
|
||||
border-radius: 2px;
|
||||
border: 1px solid rgba(0, 108, 188, 0.7);
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
-webkit-transition: all 100ms ease-out;
|
||||
-moz-transition: all 100ms ease-out;
|
||||
transition: all 100ms ease-out;
|
||||
.top {
|
||||
font-size: 24px;
|
||||
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
text-align: center;
|
||||
.platform-overview-top:hover {
|
||||
border: 2px solid;
|
||||
animation: turn 5s linear infinite;
|
||||
}
|
||||
.bottom {
|
||||
.platform-overview-bottom {
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0rem 0.2rem;
|
||||
.component-services-content-right-left-content-son {
|
||||
background: url('~@/assets/capabilityCloud/Component_services_snum.png')
|
||||
width: 100%;
|
||||
height: 1.7rem;
|
||||
background: rgba(0, 108, 188, 0.2);
|
||||
border-radius: 2px;
|
||||
border: 1px solid rgba(0, 108, 188, 0.7);
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
-webkit-transition: all 100ms ease-out;
|
||||
-moz-transition: all 100ms ease-out;
|
||||
transition: all 100ms ease-out;
|
||||
.top {
|
||||
font-size: 24px;
|
||||
background: url('~@/assets/capabilityCloud/infrastructure_title.png')
|
||||
no-repeat;
|
||||
background-size: 1.1rem 0.59rem;
|
||||
background-position: center;
|
||||
background-size: 100% 100%;
|
||||
text-align: center;
|
||||
& > p:first-child {
|
||||
color: #ffffff;
|
||||
font-size: 0.16rem;
|
||||
line-height: 0.16rem;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
& > p:last-child {
|
||||
color: #1ef6f5;
|
||||
font-size: 0.28rem;
|
||||
line-height: 0.28rem;
|
||||
padding-bottom: 0.24rem;
|
||||
margin: 0;
|
||||
}
|
||||
.bottom {
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0rem 0.2rem;
|
||||
.component-services-content-right-left-content-son {
|
||||
background: url('~@/assets/capabilityCloud/Component_services_snum.png')
|
||||
no-repeat;
|
||||
background-size: 1.1rem 0.59rem;
|
||||
background-position: center;
|
||||
text-align: center;
|
||||
& > p:first-child {
|
||||
color: #ffffff;
|
||||
font-size: 0.16rem;
|
||||
line-height: 0.16rem;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
& > p:last-child {
|
||||
color: #1ef6f5;
|
||||
font-size: 0.28rem;
|
||||
line-height: 0.28rem;
|
||||
padding-bottom: 0.24rem;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.platform-overview-bottom:hover {
|
||||
border: 2px solid;
|
||||
animation: turn 5s linear infinite;
|
||||
}
|
||||
}
|
||||
.platform-overview-bottom:hover {
|
||||
border: 2px solid;
|
||||
animation: turn 5s linear infinite;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.xiaoshangqing
|
||||
* @Date: 2022-7-26 10:00:48
|
||||
* @LastEditors: xiaoshangqing
|
||||
* @LastEditTime: 2022-07-27 16:56:55
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-11-29 11:47:26
|
||||
* @Description: 水库专题首页缩略图 -->
|
||||
<template>
|
||||
<div class="river-course-view">
|
||||
|
@ -13,516 +13,450 @@
|
|||
<div class="topic-animation4 display-animation4"></div>
|
||||
<div class="topic-animation5 display-animation5"></div>
|
||||
<div class="topic-animation6 display-animation6"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getDistrictFundStatement
|
||||
} from '@/api/assertReport'
|
||||
import axios from 'axios'
|
||||
const echarts = require("echarts");
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用
|
||||
components: {},
|
||||
data() {
|
||||
//这里存放数据
|
||||
return {
|
||||
|
||||
districtData: [
|
||||
{
|
||||
name: "市南区",
|
||||
value: [120.395966, 36.000892],
|
||||
},
|
||||
{
|
||||
name: "市北区",
|
||||
value: [120.355026, 36.083819],
|
||||
|
||||
},
|
||||
{
|
||||
name: "李沧区",
|
||||
value: [120.421236, 36.188023],
|
||||
|
||||
},
|
||||
{
|
||||
name: "崂山区",
|
||||
value: [120.587393, 36.199569],
|
||||
},
|
||||
{
|
||||
name: "城阳区",
|
||||
value: [120.369135, 36.266833],
|
||||
|
||||
},
|
||||
{
|
||||
name: "即墨区",
|
||||
value: [120.517352, 36.490847],
|
||||
|
||||
},
|
||||
{
|
||||
name: "莱西市",
|
||||
value: [120.426226, 36.86009],
|
||||
|
||||
},
|
||||
{
|
||||
name: "胶州市",
|
||||
value: [120.010202, 36.235878],
|
||||
|
||||
},
|
||||
{
|
||||
name: "平度市",
|
||||
value: [119.959012, 36.788828],
|
||||
|
||||
},
|
||||
{
|
||||
name: "西海岸",
|
||||
value: [119.895518, 35.875138],
|
||||
|
||||
},
|
||||
],
|
||||
|
||||
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.findAllInfo();
|
||||
},
|
||||
//方法集合
|
||||
methods: {
|
||||
findAllInfo(){
|
||||
getDistrictFundStatement().then((res) => {
|
||||
|
||||
let districtData=this.districtData
|
||||
let resulrtData=res.data.data
|
||||
for(let i=0;i<resulrtData.length;i++){
|
||||
for(let j=0;j<districtData.length;j++){
|
||||
if(resulrtData[i].districtName=districtData[j].name){
|
||||
|
||||
districtData[j].num=resulrtData[i].applyPrice
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.initMap(districtData)
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
initMap(data) {
|
||||
this.loadedDataUrl = "./static/qingdao.json";
|
||||
let _this=this
|
||||
axios.get(_this.loadedDataUrl, {}) .then(geoJson =>{
|
||||
|
||||
_this.myChart = echarts.init(_this.$refs.qdCityMap);
|
||||
echarts.registerMap("qingdao", geoJson.data);
|
||||
const imgBack = new Image();
|
||||
imgBack.src = "./static/assets/map-back.png";
|
||||
const img = new Image();
|
||||
img.src = "./static/assets/echarts-map-bak.png";
|
||||
const typeImg = new Image();
|
||||
typeImg.src = "./static/assets/reservoir-type-bak.png";
|
||||
|
||||
_this.option = {
|
||||
visualMap: {
|
||||
show: false,
|
||||
max: 100,
|
||||
seriesIndex: 1,
|
||||
inRange: {
|
||||
color: ["#000000", "yellow", "pink"],
|
||||
},
|
||||
import { getProvideDistrictFundStatement } from '@/api/assertReport'
|
||||
import axios from 'axios'
|
||||
const echarts = require('echarts')
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用
|
||||
components: {},
|
||||
data() {
|
||||
//这里存放数据
|
||||
return {
|
||||
districtData: [
|
||||
{
|
||||
name: '市南区',
|
||||
value: [120.435966, 35.980892],
|
||||
},
|
||||
geo: [
|
||||
{
|
||||
map: "qingdao",
|
||||
roam: false, // 是否允许缩放
|
||||
aspectScale: 0.8,
|
||||
zoom: 1.1, // 默认显示级别
|
||||
top: 100,
|
||||
z: 6,
|
||||
label: {
|
||||
show: true, //是否显示市
|
||||
textStyle: {
|
||||
color: "#ffffff", //文字颜色
|
||||
fontSize: 16, //文字大小
|
||||
fontFamily: "微软雅黑",
|
||||
backgroundColor: "rgba(0,0,0,0)", //透明度0清空文字背景
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
borderColor: "#25e8ff",
|
||||
borderWidth: 2,
|
||||
/* areaColor: "#004d8e", //rgba设置透明度0
|
||||
shadowColor: "#10daff",
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 10,
|
||||
opacity: 0.53, */
|
||||
areaColor: {
|
||||
image: img,
|
||||
repeat: "repeat",
|
||||
},
|
||||
},
|
||||
emphasis: {
|
||||
disabled: false,
|
||||
focus: "none",
|
||||
itemStyle: {
|
||||
color: null,
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
//color: "#fff",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
map: "qingdao",
|
||||
aspectScale: 0.8,
|
||||
roam: false, // 是否允许缩放
|
||||
zoom: 1.1, // 默认显示级别
|
||||
top: 105,
|
||||
z: 4,
|
||||
itemStyle: {
|
||||
areaColor: "#1864a5",
|
||||
borderColor: "transparent",
|
||||
},
|
||||
silent: true,
|
||||
tooltip: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
map: "qingdao",
|
||||
aspectScale: 0.8,
|
||||
roam: false, // 是否允许缩放
|
||||
zoom: 1.1, // 默认显示级别
|
||||
top: 110,
|
||||
z: 3,
|
||||
itemStyle: {
|
||||
areaColor: "#1864a5",
|
||||
borderColor: "transparent",
|
||||
borderWidth: 2,
|
||||
},
|
||||
silent: true,
|
||||
tooltip: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
map: "qingdao",
|
||||
aspectScale: 0.8,
|
||||
roam: true, // 是否允许缩放
|
||||
zoom: 1.1, // 默认显示级别
|
||||
top: 115,
|
||||
z: 2,
|
||||
itemStyle: {
|
||||
areaColor: "#1864a5",
|
||||
//borderColor: "#0f3866",
|
||||
borderColor: "transparent",
|
||||
borderWidth: 1,
|
||||
shadowColor: "#808080", // 外部阴影
|
||||
shadowBlur: "10",
|
||||
},
|
||||
silent: true,
|
||||
tooltip: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
],
|
||||
series: [
|
||||
// {
|
||||
// tooltip: {
|
||||
// show: false,
|
||||
// },
|
||||
// type: "effectScatter",
|
||||
// coordinateSystem: "geo",
|
||||
// rippleEffect: {
|
||||
// scale: 3,
|
||||
// brushType: "stroke",
|
||||
// },
|
||||
// showEffectOn: "render",
|
||||
// itemStyle: {
|
||||
// normal: {
|
||||
// shadowColor: "#ffffff",
|
||||
// shadowBlur: 10,
|
||||
// shadowOffsetX: 0,
|
||||
// shadowOffsetY: 0,
|
||||
// color: "#df1818",
|
||||
// },
|
||||
// },
|
||||
// label: {
|
||||
// normal: {
|
||||
// color: "#fff",
|
||||
// },
|
||||
// },
|
||||
// symbol: "circle",
|
||||
// symbolSize: [10, 5],
|
||||
// data:data, //地标闪烁小圆点
|
||||
// zlevel: 1,
|
||||
// },
|
||||
// {
|
||||
// type: "scatter",
|
||||
// coordinateSystem: "geo",
|
||||
// symbol: function (value, params) {
|
||||
// return 'image://static/assets/warning-reservoir.png';
|
||||
// },
|
||||
// symbolSize: [25, 35],
|
||||
// symbolOffset: [0, -20],
|
||||
// z: 9999,
|
||||
// data:data, //企业图片
|
||||
// },
|
||||
{
|
||||
type: 'scatter',
|
||||
coordinateSystem: 'geo',
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
formatter: function (params) {
|
||||
var name = params.data.num;
|
||||
var text = `{fline|${name}}`;
|
||||
return text;
|
||||
},
|
||||
color: '#fff',
|
||||
rich: {
|
||||
fline: {
|
||||
padding: [0, 25],
|
||||
color: '#dcc52f',
|
||||
textShadowColor: '#030615',
|
||||
textShadowBlur: '0',
|
||||
textShadowOffsetX: 1,
|
||||
textShadowOffsetY: 1,
|
||||
fontSize: 14,
|
||||
fontWeight: 400,
|
||||
},
|
||||
tline: {
|
||||
padding: [0, 27],
|
||||
color: '#afd31d',
|
||||
fontSize: 12,
|
||||
},
|
||||
},
|
||||
},
|
||||
emphasis: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
color: '#e3e00a',
|
||||
},
|
||||
symbol: "image://static/assets/reservoir-type-bak.png",
|
||||
symbolSize: [84, 28],
|
||||
symbolOffset: [0, -30],
|
||||
z: 999,
|
||||
data: data, //企业名称
|
||||
},
|
||||
|
||||
|
||||
|
||||
],
|
||||
};
|
||||
_this.myChart.setOption(_this.option);
|
||||
_this.myChart.on("click", (params) => {
|
||||
// console.log("点的是什么", params);
|
||||
// //进入对应区的三维地图
|
||||
// //跟右下角菜单切换触发调用方法一样,但是要传递区划参数,区划name
|
||||
// const index = _this.districtData.findIndex((item) => {
|
||||
// return item.name === params.name ;
|
||||
// });
|
||||
// //console.log('rrrrrrrr5555',index);
|
||||
// let districtObject = {
|
||||
// name:params.name,
|
||||
// longitude:_this.districtData[index].value[0],
|
||||
// latitude:_this.districtData[index].value[1],
|
||||
// };
|
||||
// _this.$emit('jumpIntoMap',districtObject);
|
||||
});
|
||||
});
|
||||
{
|
||||
name: '市北区',
|
||||
value: [120.355026, 36.083819],
|
||||
},
|
||||
{
|
||||
name: '李沧区',
|
||||
value: [120.421236, 36.188023],
|
||||
},
|
||||
{
|
||||
name: '崂山区',
|
||||
value: [120.587393, 36.199569],
|
||||
},
|
||||
{
|
||||
name: '城阳区',
|
||||
value: [120.369135, 36.266833],
|
||||
},
|
||||
{
|
||||
name: '即墨区',
|
||||
value: [120.517352, 36.490847],
|
||||
},
|
||||
{
|
||||
name: '莱西市',
|
||||
value: [120.426226, 36.86009],
|
||||
},
|
||||
{
|
||||
name: '胶州市',
|
||||
value: [120.010202, 36.235878],
|
||||
},
|
||||
{
|
||||
name: '平度市',
|
||||
value: [119.959012, 36.788828],
|
||||
},
|
||||
{
|
||||
name: '西海岸新区',
|
||||
value: [119.895518, 35.875138],
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.findAllInfo()
|
||||
},
|
||||
//方法集合
|
||||
methods: {
|
||||
findAllInfo() {
|
||||
getProvideDistrictFundStatement().then((res) => {
|
||||
let districtData = this.districtData
|
||||
let resulrtData = res.data.data
|
||||
for (let i = 0; i < resulrtData.length; i++) {
|
||||
for (let j = 0; j < districtData.length; j++) {
|
||||
if (resulrtData[i].districtName === districtData[j].name) {
|
||||
districtData[j].num = resulrtData[i].applyPrice + '万'
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log('上图数据', districtData)
|
||||
this.initMap(districtData)
|
||||
})
|
||||
},
|
||||
initMap(data) {
|
||||
this.loadedDataUrl = './static/qingdao.json'
|
||||
let _this = this
|
||||
axios.get(_this.loadedDataUrl, {}).then((geoJson) => {
|
||||
_this.myChart = echarts.init(_this.$refs.qdCityMap)
|
||||
echarts.registerMap('qingdao', geoJson.data)
|
||||
const imgBack = new Image()
|
||||
imgBack.src = './static/assets/map-back.png'
|
||||
const img = new Image()
|
||||
img.src = './static/assets/echarts-map-bak.png'
|
||||
const typeImg = new Image()
|
||||
typeImg.src = './static/assets/reservoir-type-bak.png'
|
||||
|
||||
_this.option = {
|
||||
visualMap: {
|
||||
show: false,
|
||||
max: 100,
|
||||
seriesIndex: 1,
|
||||
inRange: {
|
||||
color: ['#000000', 'yellow', 'pink'],
|
||||
},
|
||||
},
|
||||
geo: [
|
||||
{
|
||||
map: 'qingdao',
|
||||
roam: false, // 是否允许缩放
|
||||
aspectScale: 0.8,
|
||||
zoom: 1.1, // 默认显示级别
|
||||
top: 100,
|
||||
z: 6,
|
||||
label: {
|
||||
show: true, //是否显示市
|
||||
textStyle: {
|
||||
color: '#ffffff', //文字颜色
|
||||
fontSize: 16, //文字大小
|
||||
fontFamily: '微软雅黑',
|
||||
backgroundColor: 'rgba(0,0,0,0)', //透明度0清空文字背景
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
borderColor: '#25e8ff',
|
||||
borderWidth: 2,
|
||||
|
||||
areaColor: {
|
||||
image: img,
|
||||
repeat: 'repeat',
|
||||
},
|
||||
|
||||
},
|
||||
emphasis: {
|
||||
//disabled: false,
|
||||
//areaColor: '#3066ba',
|
||||
focus: 'none',
|
||||
itemStyle: {
|
||||
// color: '#3066ba',//鼠标滑过区域颜色
|
||||
color: '#1ef6f5',//鼠标滑过区域颜色
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
color: "#ff934a",
|
||||
fontWeight:'bold'
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
map: 'qingdao',
|
||||
aspectScale: 0.8,
|
||||
roam: false, // 是否允许缩放
|
||||
zoom: 1.1, // 默认显示级别
|
||||
top: 105,
|
||||
z: 4,
|
||||
itemStyle: {
|
||||
areaColor: '#1864a5',
|
||||
borderColor: 'transparent',
|
||||
},
|
||||
silent: true,
|
||||
tooltip: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
map: 'qingdao',
|
||||
aspectScale: 0.8,
|
||||
roam: false, // 是否允许缩放
|
||||
zoom: 1.1, // 默认显示级别
|
||||
top: 110,
|
||||
z: 3,
|
||||
itemStyle: {
|
||||
areaColor: '#1864a5',
|
||||
borderColor: 'transparent',
|
||||
borderWidth: 2,
|
||||
},
|
||||
silent: true,
|
||||
tooltip: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
map: 'qingdao',
|
||||
aspectScale: 0.8,
|
||||
roam: false, // 是否允许缩放
|
||||
zoom: 1.1, // 默认显示级别
|
||||
top: 115,
|
||||
z: 2,
|
||||
itemStyle: {
|
||||
areaColor: '#1864a5',
|
||||
//borderColor: "#0f3866",
|
||||
borderColor: 'transparent',
|
||||
borderWidth: 1,
|
||||
shadowColor: '#808080', // 外部阴影
|
||||
shadowBlur: '10',
|
||||
},
|
||||
silent: true,
|
||||
tooltip: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
],
|
||||
series: [
|
||||
|
||||
{
|
||||
type: 'scatter',
|
||||
coordinateSystem: 'geo',
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
formatter: function (params) {
|
||||
var name = params.data.num
|
||||
var text = `{fline|${name}}`
|
||||
return text
|
||||
},
|
||||
color: '#fff',
|
||||
rich: {
|
||||
fline: {
|
||||
padding: [0, 25],
|
||||
color: '#dcc52f',
|
||||
textShadowColor: '#030615',
|
||||
textShadowBlur: '0',
|
||||
textShadowOffsetX: 1,
|
||||
textShadowOffsetY: 1,
|
||||
fontSize: 14,
|
||||
fontWeight: 400,
|
||||
},
|
||||
tline: {
|
||||
padding: [0, 27],
|
||||
color: '#afd31d',
|
||||
fontSize: 12,
|
||||
},
|
||||
},
|
||||
},
|
||||
emphasis: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
color: '#e3e00a',
|
||||
},
|
||||
symbol: 'image://static/assets/reservoir-type-bak.png',
|
||||
symbolSize: [84, 28],
|
||||
symbolOffset: [0, -30],
|
||||
z: 999,
|
||||
data: data, //企业名称
|
||||
},
|
||||
],
|
||||
}
|
||||
_this.myChart.setOption(_this.option)
|
||||
_this.myChart.on('click', (params) => {
|
||||
// console.log("点的是什么", params);
|
||||
// //进入对应区的三维地图
|
||||
// //跟右下角菜单切换触发调用方法一样,但是要传递区划参数,区划name
|
||||
// const index = _this.districtData.findIndex((item) => {
|
||||
// return item.name === params.name ;
|
||||
// });
|
||||
// //console.log('rrrrrrrr5555',index);
|
||||
// let districtObject = {
|
||||
// name:params.name,
|
||||
// longitude:_this.districtData[index].value[0],
|
||||
// latitude:_this.districtData[index].value[1],
|
||||
// };
|
||||
// _this.$emit('jumpIntoMap',districtObject);
|
||||
})
|
||||
})
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
beforeCreate() {}, //生命周期 - 创建之前
|
||||
beforeMount() {}, //生命周期 - 挂载之前
|
||||
beforeUpdate() {}, //生命周期 - 更新之前
|
||||
updated() {}, //生命周期 - 更新之后
|
||||
beforeDestroy() {}, //生命周期 - 销毁之前
|
||||
destroyed() {}, //生命周期 - 销毁完成
|
||||
activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
|
||||
};
|
||||
beforeCreate() {}, //生命周期 - 创建之前
|
||||
beforeMount() {}, //生命周期 - 挂载之前
|
||||
beforeUpdate() {}, //生命周期 - 更新之前
|
||||
updated() {}, //生命周期 - 更新之后
|
||||
beforeUnmount() {}, //生命周期 - 销毁之前
|
||||
unmounted() {}, //生命周期 - 销毁完成
|
||||
activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
|
||||
}
|
||||
</script>
|
||||
<style lang='less' scoped>
|
||||
//@import url(); 引入公共css类
|
||||
<style lang="less" scoped>
|
||||
//@import url(); 引入公共css类
|
||||
|
||||
.river-course-view {
|
||||
position: relative;
|
||||
width:100%;
|
||||
height: 100%;
|
||||
background: url("~@/assets/common/homePage/big-bak.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
.city-map-content-echarts {
|
||||
width: 10rem;
|
||||
height: 7.9rem;
|
||||
top: 10px;
|
||||
left: 500px;
|
||||
bottom: 2rem;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
}
|
||||
.map-menu {
|
||||
position: absolute;
|
||||
right: 486px;
|
||||
bottom: 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items:flex-end;
|
||||
pointer-events: none;
|
||||
z-index:99999;
|
||||
.map-tab {
|
||||
// 1、菜单切换功能
|
||||
.river-course-view {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url('~@/assets/common/homePage/big-bak.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
.city-map-content-echarts {
|
||||
width: 10rem;
|
||||
height: 7.8rem;
|
||||
top: 20px;
|
||||
left: 500px;
|
||||
bottom: 2rem;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
}
|
||||
.map-menu {
|
||||
position: absolute;
|
||||
right: 486px;
|
||||
bottom: 10px;
|
||||
display: flex;
|
||||
pointer-events: auto;
|
||||
.tab-item {
|
||||
flex: 1;
|
||||
cursor: pointer;
|
||||
min-width: 1.4rem;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
border: 1px solid #2ab1e9;
|
||||
border-left: 0;
|
||||
font-size: 16px;
|
||||
padding: 0px 20px;
|
||||
background-color: #0d284f;
|
||||
color: #35cffc;
|
||||
&.active {
|
||||
color: #fefefe;
|
||||
background: linear-gradient(to bottom, rgba(0, 0, 0, 0), #1eafda);
|
||||
}
|
||||
&:first-child {
|
||||
border-left: 1px solid #2ab1e9;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.reservoirType-list{
|
||||
position: absolute;
|
||||
right: 486px;
|
||||
width: 122px;
|
||||
height: 100px;
|
||||
top: 164px;
|
||||
padding: 10px 0 0 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: rgba(13,40,79,0.5);
|
||||
border:1px solid #0d284f;
|
||||
padding-top:22px;
|
||||
.type-legend{
|
||||
margin-bottom:20px;
|
||||
margin-left: 10px;
|
||||
display:flex;
|
||||
flex-direction:row;
|
||||
.legend-color{
|
||||
width:12px;
|
||||
height:12px;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
line-height: 12px;
|
||||
}
|
||||
.color-normal{
|
||||
background-color:#00ebac ;
|
||||
}
|
||||
.color-warning{
|
||||
background-color:#ff3537 ;
|
||||
}
|
||||
.legend-text{
|
||||
margin-left: 10px;
|
||||
span{
|
||||
color:#ffffff;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
pointer-events: none;
|
||||
z-index: 99999;
|
||||
.map-tab {
|
||||
// 1、菜单切换功能
|
||||
display: flex;
|
||||
pointer-events: auto;
|
||||
.tab-item {
|
||||
flex: 1;
|
||||
cursor: pointer;
|
||||
min-width: 1.4rem;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
border: 1px solid #2ab1e9;
|
||||
border-left: 0;
|
||||
font-size: 16px;
|
||||
padding: 0px 20px;
|
||||
background-color: #0d284f;
|
||||
color: #35cffc;
|
||||
&.active {
|
||||
color: #fefefe;
|
||||
background: linear-gradient(to bottom, rgba(0, 0, 0, 0), #1eafda);
|
||||
}
|
||||
&:first-child {
|
||||
border-left: 1px solid #2ab1e9;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.topic-animation1 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url("~@/assets/common/homePage/animation1.png");
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation1 {
|
||||
animation: topup1 5s linear 1s infinite;
|
||||
}
|
||||
.topic-animation2 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url("~@/assets/common/homePage/animation2.png");
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation2 {
|
||||
animation: topup1 5s linear 2s infinite;
|
||||
}
|
||||
.topic-animation3 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url("~@/assets/common/homePage/animation3.png");
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation3 {
|
||||
animation: topup1 5s linear 3s infinite;
|
||||
}
|
||||
.topic-animation4 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url("~@/assets/common/homePage/animation4.png");
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation4 {
|
||||
animation: topup1 5s linear infinite;
|
||||
}
|
||||
.topic-animation5 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url("~@/assets/common/homePage/animation5.png");
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation5 {
|
||||
animation: topup1 5s linear 4s infinite;
|
||||
}
|
||||
.topic-animation6 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url("~@/assets/common/homePage/animation6.png");
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation6 {
|
||||
animation: topup1 5s linear infinite;
|
||||
}
|
||||
@keyframes topup1 {
|
||||
from {
|
||||
top: 0%;
|
||||
.reservoirType-list {
|
||||
position: absolute;
|
||||
right: 486px;
|
||||
width: 122px;
|
||||
height: 100px;
|
||||
top: 164px;
|
||||
padding: 10px 0 0 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: rgba(13, 40, 79, 0.5);
|
||||
border: 1px solid #0d284f;
|
||||
padding-top: 22px;
|
||||
.type-legend {
|
||||
margin-bottom: 20px;
|
||||
margin-left: 10px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
.legend-color {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
line-height: 12px;
|
||||
}
|
||||
.color-normal {
|
||||
background-color: #00ebac;
|
||||
}
|
||||
.color-warning {
|
||||
background-color: #ff3537;
|
||||
}
|
||||
.legend-text {
|
||||
margin-left: 10px;
|
||||
span {
|
||||
color: #ffffff;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
to {
|
||||
top: -100%;
|
||||
.topic-animation1 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url('~@/assets/common/homePage/animation1.png');
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation1 {
|
||||
animation: topup1 5s linear 1s infinite;
|
||||
}
|
||||
.topic-animation2 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url('~@/assets/common/homePage/animation2.png');
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation2 {
|
||||
animation: topup1 5s linear 2s infinite;
|
||||
}
|
||||
.topic-animation3 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url('~@/assets/common/homePage/animation3.png');
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation3 {
|
||||
animation: topup1 5s linear 3s infinite;
|
||||
}
|
||||
.topic-animation4 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url('~@/assets/common/homePage/animation4.png');
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation4 {
|
||||
animation: topup1 5s linear infinite;
|
||||
}
|
||||
.topic-animation5 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url('~@/assets/common/homePage/animation5.png');
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation5 {
|
||||
animation: topup1 5s linear 4s infinite;
|
||||
}
|
||||
.topic-animation6 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
|
||||
margin: 0px auto;
|
||||
background-image: url('~@/assets/common/homePage/animation6.png');
|
||||
background-size: cover;
|
||||
}
|
||||
.display-animation6 {
|
||||
animation: topup1 5s linear infinite;
|
||||
}
|
||||
@keyframes topup1 {
|
||||
from {
|
||||
top: 0%;
|
||||
}
|
||||
to {
|
||||
top: -100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 442 B |
|
@ -1,112 +1,103 @@
|
|||
<!-- -->
|
||||
<template>
|
||||
|
||||
|
||||
<div class="capability-cloud">
|
||||
|
||||
<div class="capability-cloud">
|
||||
<div class="header">
|
||||
<span class="title" @click="goHome">城市云脑通用能力服务平台</span>
|
||||
</div>
|
||||
<div class="header1">
|
||||
<div style=" color:#bed1df; font-size: 32px">累计节省财政资金</div>
|
||||
<div class="area-right">
|
||||
<!-- <div class="mianJi">累计节省财政资金</div> -->
|
||||
<template v-for="(item, index) in saveMonmy">
|
||||
<p v-if="item == '.'" :key="index">
|
||||
{{ item }}
|
||||
</p>
|
||||
<span v-else >{{ item }}</span>
|
||||
</template>
|
||||
<div class="mianJi">万元</div>
|
||||
</div>
|
||||
<div style=" color: #bed1df; font-size: 16px">注:资源参考价格由部门提供或参考市场价格设定</div>
|
||||
|
||||
<div style="color: #bed1df; font-size: 32px">累计节省财政资金</div>
|
||||
<div class="area-right">
|
||||
<!-- <div class="mianJi">累计节省财政资金</div> -->
|
||||
<template v-for="(item, index) in saveMonmy">
|
||||
<p v-if="item == '.'" :key="index">
|
||||
{{ item }}
|
||||
</p>
|
||||
<span v-else>{{ item }}</span>
|
||||
</template>
|
||||
<div class="mianJi">万元</div>
|
||||
</div>
|
||||
<div style="color: #bed1df; font-size: 16px">
|
||||
注:资源参考价格由部门提供或参考市场价格设定
|
||||
</div>
|
||||
</div>
|
||||
<!--左侧-->
|
||||
<div class="reservoir-left">
|
||||
<!-- 左侧内容 -->
|
||||
<reservoir-left />
|
||||
<reservoir-left />
|
||||
</div>
|
||||
<!--右侧-->
|
||||
<!--右侧-->
|
||||
<div class="reservoir-right">
|
||||
<reservoir-right />
|
||||
</div>
|
||||
<!--中间地图-->
|
||||
<div class="reservoir-map">
|
||||
<reservoir-thumbnail
|
||||
@changeThumbnailMap="changeThumbnailMap"
|
||||
@jumpIntoMap="jumpIntoMap"
|
||||
@changeThumbnailMap="changeThumbnailMap"
|
||||
@jumpIntoMap="jumpIntoMap"
|
||||
/>
|
||||
</div>
|
||||
<!--下方-->
|
||||
<div class="bottom">
|
||||
<reservoir-bottom />
|
||||
|
||||
</div>
|
||||
<!--下方-->
|
||||
<div class="bottom">
|
||||
<reservoir-bottom />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getApplyPriceCount
|
||||
} from '@/api/assertReport'
|
||||
import ReservoirThumbnail from "./components/ReservoirThumbnail.vue";
|
||||
import ReservoirLeft from "./components/ReservoirLeft";
|
||||
import ReservoirRight from "./components/ReservoirRight";
|
||||
import ReservoirBottom from "./components/ReservoirBottom";
|
||||
import { NumbersConvertedToArrays } from "@/utils/arrayMethod.js";
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用
|
||||
components: {
|
||||
ReservoirThumbnail,
|
||||
ReservoirLeft,
|
||||
ReservoirRight,
|
||||
ReservoirBottom
|
||||
import { getApplyPriceCount } from '@/api/assertReport'
|
||||
import ReservoirThumbnail from './components/ReservoirThumbnail.vue'
|
||||
import ReservoirLeft from './components/ReservoirLeft'
|
||||
import ReservoirRight from './components/ReservoirRight'
|
||||
import ReservoirBottom from './components/ReservoirBottom'
|
||||
import { NumbersConvertedToArrays } from '@/utils/arrayMethod.js'
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用
|
||||
components: {
|
||||
ReservoirThumbnail,
|
||||
ReservoirLeft,
|
||||
ReservoirRight,
|
||||
ReservoirBottom,
|
||||
},
|
||||
data() {
|
||||
//这里存放数据
|
||||
return {
|
||||
saveMonmy: [],
|
||||
model: 'common',
|
||||
dialogTitle: '周边视频',
|
||||
videoAnalysisDialogVisible: false, //视频分析弹窗显示标志位
|
||||
riverCourseHistoryDialogVisible: false, //河道历史弹窗
|
||||
riverDetailInfo: {}, //河道具体信息用于历史弹窗显示数据
|
||||
dialogType: 'add',
|
||||
dialogData: {},
|
||||
dangerReportDialogVisible: false,
|
||||
positionInfo: null,
|
||||
reservoirDialogVisible: false, //新增修改积水点弹窗显示标志位
|
||||
districtOptions: [], //区划数组
|
||||
isThumbnail: true, //是否为地图缩略图
|
||||
tabindex: 0, //3d地图选中的tab。
|
||||
listType: '', //水库列表的类型,普通列表 “”,预警列表 warnig
|
||||
basicInfo: {}, //水库详情信息
|
||||
type: '',
|
||||
callSource: 'indexPage',
|
||||
}
|
||||
},
|
||||
//监听属性 类似于data概念
|
||||
computed: {},
|
||||
//监控data中的数据变化
|
||||
watch: {},
|
||||
//方法集合
|
||||
methods: {
|
||||
getSaveMoney() {
|
||||
getApplyPriceCount().then((res) => {
|
||||
this.saveMonmy = NumbersConvertedToArrays(res.data.data)
|
||||
})
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
data() {
|
||||
//这里存放数据
|
||||
return {
|
||||
saveMonmy:[],
|
||||
model: "common",
|
||||
dialogTitle: "周边视频",
|
||||
videoAnalysisDialogVisible: false, //视频分析弹窗显示标志位
|
||||
riverCourseHistoryDialogVisible: false, //河道历史弹窗
|
||||
riverDetailInfo: {}, //河道具体信息用于历史弹窗显示数据
|
||||
dialogType: "add",
|
||||
dialogData: {},
|
||||
dangerReportDialogVisible: false,
|
||||
positionInfo: null,
|
||||
reservoirDialogVisible: false, //新增修改积水点弹窗显示标志位
|
||||
districtOptions: [], //区划数组
|
||||
isThumbnail:true, //是否为地图缩略图
|
||||
tabindex:0, //3d地图选中的tab。
|
||||
listType:"",//水库列表的类型,普通列表 “”,预警列表 warnig
|
||||
basicInfo: {}, //水库详情信息
|
||||
type: '',
|
||||
callSource:"indexPage",
|
||||
};
|
||||
},
|
||||
//监听属性 类似于data概念
|
||||
computed: {},
|
||||
//监控data中的数据变化
|
||||
watch: {},
|
||||
//方法集合
|
||||
methods: {
|
||||
getSaveMoney(){
|
||||
getApplyPriceCount().then((res) => {
|
||||
|
||||
this.saveMonmy=NumbersConvertedToArrays(res.data.data)
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.getSaveMoney()
|
||||
},
|
||||
|
||||
};
|
||||
mounted() {
|
||||
this.getSaveMoney()
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="less">
|
||||
@font-face {
|
||||
|
@ -135,156 +126,153 @@ export default {
|
|||
}
|
||||
}
|
||||
</style>
|
||||
<style lang='less' scoped>
|
||||
// 此处去掉scoped为修改date-picker背景色,所以业务样式都应放在reservoir层级中,避免影响
|
||||
//@import url(); 引入公共css类
|
||||
.module-header-container {
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
top: 0px;
|
||||
width: 100%;
|
||||
pointer-events: none;
|
||||
}
|
||||
.capability-cloud {
|
||||
<style lang="less" scoped>
|
||||
// 此处去掉scoped为修改date-picker背景色,所以业务样式都应放在reservoir层级中,避免影响
|
||||
//@import url(); 引入公共css类
|
||||
.module-header-container {
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
top: 0px;
|
||||
width: 100%;
|
||||
pointer-events: none;
|
||||
}
|
||||
.capability-cloud {
|
||||
height: 10.8rem;
|
||||
background: url('~@/assets/capabilityCloud/bg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
overflow: hidden;
|
||||
|
||||
|
||||
& > .header {
|
||||
height: 1.04rem;
|
||||
text-align: center;
|
||||
background: url('~@/assets/capabilityCloud/header.png') no-repeat;
|
||||
font-size: 0.46rem;
|
||||
}
|
||||
.bottom{
|
||||
.bottom {
|
||||
bottom: 12px;
|
||||
position: absolute;
|
||||
left: 545px;
|
||||
width: 732px;
|
||||
align-items: center;
|
||||
z-index: 1004;
|
||||
text-align: center;
|
||||
|
||||
height: 1.8rem;
|
||||
position: absolute;
|
||||
left: 545px;
|
||||
width: 732px;
|
||||
align-items: center;
|
||||
z-index: 1004;
|
||||
text-align: center;
|
||||
|
||||
height: 1.8rem;
|
||||
}
|
||||
.header1 {
|
||||
top: 78px;
|
||||
position: absolute;
|
||||
left: 795px;
|
||||
align-items: center;
|
||||
z-index: 1004;
|
||||
text-align: center;
|
||||
.area-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-items: flex-end;
|
||||
padding-right: 20px;
|
||||
color: #bed1df;
|
||||
margin-left: 100px;
|
||||
span {
|
||||
width: 36px;
|
||||
// height: 45px;
|
||||
// line-height: 45px;
|
||||
color: #fed93f;
|
||||
font-weight: bold;
|
||||
background: url("~@/assets/capabilityCloud/num_bg.png")
|
||||
100% 100% no-repeat;
|
||||
background-size: 100%;
|
||||
text-align: center;
|
||||
font-size: 34px;
|
||||
margin-right: 3px;
|
||||
left: 795px;
|
||||
align-items: center;
|
||||
z-index: 1004;
|
||||
text-align: center;
|
||||
.area-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-items: flex-end;
|
||||
padding-right: 20px;
|
||||
color: #bed1df;
|
||||
margin-left: 100px;
|
||||
span {
|
||||
width: 36px;
|
||||
// height: 45px;
|
||||
// line-height: 45px;
|
||||
color: #fed93f;
|
||||
font-weight: bold;
|
||||
background: url('~@/assets/capabilityCloud/num_bg.png') 100% 100%
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
text-align: center;
|
||||
font-size: 34px;
|
||||
margin-right: 3px;
|
||||
|
||||
font-family: DinPro-Bold;
|
||||
}
|
||||
.mianJi {
|
||||
margin-top: 6px;;
|
||||
margin-right: 3px;
|
||||
font-size: 22px;
|
||||
float:right;
|
||||
}
|
||||
p {
|
||||
height: 44px;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-items: center;
|
||||
font-size: 34px;
|
||||
}
|
||||
font-family: DinPro-Bold;
|
||||
}
|
||||
.mianJi {
|
||||
margin-top: 6px;
|
||||
margin-right: 3px;
|
||||
font-size: 22px;
|
||||
float: right;
|
||||
}
|
||||
p {
|
||||
height: 44px;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-items: center;
|
||||
font-size: 34px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//position: relative;
|
||||
.reservoir-left {
|
||||
position: absolute;
|
||||
left: 0.1rem;
|
||||
z-index: 1000;
|
||||
top: 0.8rem;
|
||||
height: calc(100% - 0.8rem);
|
||||
}
|
||||
.reservoir-right {
|
||||
position: absolute;
|
||||
z-index: 1001;
|
||||
right: 0.1rem;
|
||||
top: 0.8rem;
|
||||
height: calc(100% - 0.8rem);
|
||||
}
|
||||
.reservoir-map {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
// height: 100%;
|
||||
// bottom:2rem;
|
||||
}
|
||||
}
|
||||
// 日期时间组件
|
||||
.phone-date-picker {
|
||||
color: #fff;
|
||||
//border: 1px solid #e4e7ed;
|
||||
border: 1px solid #008fbb;
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||
//background: #000;
|
||||
background: #123d68;
|
||||
//background:rgba(0, 0, 0, 0);
|
||||
line-height: 30px;
|
||||
margin: 5px 0;
|
||||
.el-date-table td.disabled div {
|
||||
background: #305156 !important;
|
||||
}
|
||||
.el-picker-panel__footer {
|
||||
//background-color: rgba(0, 0, 0, 0.8);
|
||||
background: #123d68;
|
||||
color: #fff;
|
||||
.el-picker-panel__link-btn:first-of-type {
|
||||
display: none;
|
||||
|
||||
//position: relative;
|
||||
.reservoir-left {
|
||||
position: absolute;
|
||||
left: 0.1rem;
|
||||
z-index: 1000;
|
||||
top: 0.8rem;
|
||||
height: calc(100% - 0.8rem);
|
||||
}
|
||||
.reservoir-right {
|
||||
position: absolute;
|
||||
z-index: 1001;
|
||||
right: 0.1rem;
|
||||
top: 0.8rem;
|
||||
height: calc(100% - 0.8rem);
|
||||
}
|
||||
.reservoir-map {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
// height: 100%;
|
||||
// bottom:2rem;
|
||||
}
|
||||
}
|
||||
.el-date-table td.in-range div {
|
||||
background: #009ab3;
|
||||
}
|
||||
.el-input__inner {
|
||||
//background-color: rgba(0, 0, 0, 0.8);
|
||||
background: #123d68;
|
||||
// 日期时间组件
|
||||
.phone-date-picker {
|
||||
color: #fff;
|
||||
}
|
||||
.el-date-picker__header > button,
|
||||
span {
|
||||
color: #fff;
|
||||
}
|
||||
.el-picker-panel__content > .el-date-table > tbody > tr > th {
|
||||
color: #fff;
|
||||
}
|
||||
.el-button.is-plain:hover,
|
||||
.el-button.is-plain:focus {
|
||||
background: #009ab3;
|
||||
}
|
||||
.el-button--default {
|
||||
border-radius: 0;
|
||||
background: #009ab3;
|
||||
//border: 1px solid #dcdfe6;
|
||||
//border: 1px solid #e4e7ed;
|
||||
border: 1px solid #008fbb;
|
||||
border-color: #009ab3;
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||
//background: #000;
|
||||
background: #123d68;
|
||||
//background:rgba(0, 0, 0, 0);
|
||||
line-height: 30px;
|
||||
margin: 5px 0;
|
||||
.el-date-table td.disabled div {
|
||||
background: #305156 !important;
|
||||
}
|
||||
.el-picker-panel__footer {
|
||||
//background-color: rgba(0, 0, 0, 0.8);
|
||||
background: #123d68;
|
||||
color: #fff;
|
||||
.el-picker-panel__link-btn:first-of-type {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.el-date-table td.in-range div {
|
||||
background: #009ab3;
|
||||
}
|
||||
.el-input__inner {
|
||||
//background-color: rgba(0, 0, 0, 0.8);
|
||||
background: #123d68;
|
||||
color: #fff;
|
||||
}
|
||||
.el-date-picker__header > button,
|
||||
span {
|
||||
color: #fff;
|
||||
}
|
||||
.el-picker-panel__content > .el-date-table > tbody > tr > th {
|
||||
color: #fff;
|
||||
}
|
||||
.el-button.is-plain:hover,
|
||||
.el-button.is-plain:focus {
|
||||
background: #009ab3;
|
||||
}
|
||||
.el-button--default {
|
||||
border-radius: 0;
|
||||
background: #009ab3;
|
||||
//border: 1px solid #dcdfe6;
|
||||
border: 1px solid #008fbb;
|
||||
border-color: #009ab3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-19 10:15:33
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-06 16:21:24
|
||||
* @LastEditTime: 2022-11-29 17:39:20
|
||||
* @Description: 能力云图-组件服务
|
||||
-->
|
||||
<template>
|
||||
|
@ -102,7 +102,7 @@
|
|||
<template #title>{{ item.name }}</template>
|
||||
<span>{{ item.name }}</span>
|
||||
</a-tooltip>
|
||||
<span>{{ item.count || 0 }}</span>
|
||||
<span>{{ item.count || item.score || 0 }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -125,7 +125,7 @@
|
|||
let xinhaianIsShow = whoShow.itShowXiHaiAn //判断是否是西海岸版本
|
||||
let snum = ref([
|
||||
{ title: '上架总量', num: '0000' },
|
||||
{ title: '总调用次数(API)', num: '0' },
|
||||
{ title: '总调用次数(API)', num: '1008' },
|
||||
{ title: '健康度(API)', num: '100%' },
|
||||
])
|
||||
let dataclick = ref('total')
|
||||
|
@ -164,12 +164,20 @@
|
|||
})
|
||||
callTheTrend(callTheTrendData.value)
|
||||
} else {
|
||||
callTheTrendData.value.snum = ['0', '0', '0', '0', '0', '0', '0']
|
||||
callTheTrendData.value.snum = [
|
||||
'3',
|
||||
'17',
|
||||
'10',
|
||||
'5',
|
||||
'15',
|
||||
'15',
|
||||
'19',
|
||||
]
|
||||
callTheTrend(callTheTrendData.value)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
callTheTrendData.value.snum = ['0', '0', '0', '0', '0', '0', '0']
|
||||
callTheTrendData.value.snum = ['3', '17', '10', '5', '15', '15', '19']
|
||||
callTheTrend(callTheTrendData.value)
|
||||
}
|
||||
} else {
|
||||
|
@ -214,37 +222,37 @@
|
|||
})
|
||||
} else {
|
||||
callTheTrendData.value.snum = [
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'0',
|
||||
'3',
|
||||
'17',
|
||||
'10',
|
||||
'5',
|
||||
'15',
|
||||
'15',
|
||||
'19',
|
||||
'3',
|
||||
'17',
|
||||
'10',
|
||||
'5',
|
||||
'15',
|
||||
'15',
|
||||
'19',
|
||||
'10',
|
||||
'8',
|
||||
'16',
|
||||
'3',
|
||||
'17',
|
||||
'10',
|
||||
'5',
|
||||
'15',
|
||||
'15',
|
||||
'19',
|
||||
'3',
|
||||
'17',
|
||||
'10',
|
||||
'5',
|
||||
'15',
|
||||
'15',
|
||||
'19',
|
||||
]
|
||||
callTheTrend(callTheTrendData.value)
|
||||
}
|
||||
|
@ -259,7 +267,7 @@
|
|||
option = {
|
||||
tooltip: {
|
||||
backgroundColor: 'rgba(17,61,116,0.8)',
|
||||
borderWidth: 0,
|
||||
// borderWidth: 0,
|
||||
trigger: 'axis',
|
||||
formatter: function (val) {
|
||||
console.log(val)
|
||||
|
@ -301,11 +309,13 @@
|
|||
name: '个',
|
||||
type: 'value',
|
||||
axisTick: {
|
||||
show: false,
|
||||
show: true,
|
||||
},
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#57617B',
|
||||
color: '#336EBF',
|
||||
width: '1',
|
||||
},
|
||||
},
|
||||
axisLabel: {
|
||||
|
@ -316,6 +326,9 @@
|
|||
},
|
||||
splitLine: {
|
||||
show: false,
|
||||
// lineStyle: {
|
||||
// color: ['#57617B'],
|
||||
// },
|
||||
},
|
||||
},
|
||||
],
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-19 10:15:33
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-06-27 12:52:18
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-11-28 16:23:25
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<template>
|
||||
|
@ -50,10 +50,10 @@
|
|||
name: '总申请次数',
|
||||
num: '',
|
||||
},
|
||||
{
|
||||
name: '满足率',
|
||||
num: '',
|
||||
},
|
||||
// {
|
||||
// name: '满足率',
|
||||
// num: '',
|
||||
// },
|
||||
])
|
||||
// 右侧数据
|
||||
const assignRankings = ref([
|
||||
|
|
|
@ -257,9 +257,18 @@
|
|||
</b>
|
||||
{{ item.name }} :
|
||||
</div>
|
||||
<div v-if="item.type == 'input' && item.name === '参考价格'">
|
||||
<a-input
|
||||
:maxLength="1000"
|
||||
v-model:value="item.note1"
|
||||
:placeholder="'请输入' + placeHolderWords(item.name)+',单位为元'"
|
||||
@change="changeIiem(item.name, item.note1)"
|
||||
/>
|
||||
<span style="color:red"> (仅用于测算为部门节省资金)</span>
|
||||
</div>
|
||||
<a-input
|
||||
:maxLength="1000"
|
||||
v-if="item.type == 'input' && item.name.indexOf('名称') == -1"
|
||||
v-else-if="item.type == 'input' && item.name.indexOf('名称') == -1"
|
||||
v-model:value="item.note1"
|
||||
:placeholder="'请输入' + placeHolderWords(item.name)"
|
||||
@change="changeIiem(item.name, item.note1)"
|
||||
|
|
|
@ -22,7 +22,11 @@
|
|||
</div>
|
||||
<div class="bottom" v-show="selectFlag2">
|
||||
<span class="light"></span>
|
||||
<div v-for="val in dictList" :key="val" @click="changeAreaFunction(val)">
|
||||
<div
|
||||
v-for="val in dictList"
|
||||
:key="val"
|
||||
@click="changeAreaFunction(val)"
|
||||
>
|
||||
{{ val }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -30,9 +34,18 @@
|
|||
</div>
|
||||
|
||||
<div class="algorithm-class">
|
||||
<div v-for="(item, index) in dataList" :key="`algorithm-${index}`" class="algorithm-card">
|
||||
<a-image :src="algorithmCardPhoto(item)" :width="525" :height="275" :fallback="imgSrc" :preview="false">
|
||||
</a-image>
|
||||
<div
|
||||
v-for="(item, index) in dataList"
|
||||
:key="`algorithm-${index}`"
|
||||
class="algorithm-card"
|
||||
>
|
||||
<a-image
|
||||
:src="algorithmCardPhoto(item)"
|
||||
:width="525"
|
||||
:height="275"
|
||||
:fallback="imgSrc"
|
||||
:preview="false"
|
||||
></a-image>
|
||||
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.name }}</template>
|
||||
|
@ -46,308 +59,324 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { getCategoryTreePage } from '@/api/personalCenter'
|
||||
import { getGisByArea } from '@/api/home'
|
||||
import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue'
|
||||
|
||||
|
||||
const deptType = ref(null)
|
||||
const typeName = ref('全市')
|
||||
const typeName2 = ref('全部')
|
||||
const dictList = ref([])
|
||||
const dataList = ref([])
|
||||
const selectFlag2 = ref(false)
|
||||
const selectFlag = ref(false)
|
||||
getCategoryTreePage({
|
||||
page: 1,
|
||||
limit: 99,
|
||||
dictTypeId: '1513712507692818433',
|
||||
}).then((res) => {
|
||||
dictList.value = ['全部']
|
||||
res.data.data.list.map((val) => {
|
||||
// if (val.dictLabel !== '其他') {
|
||||
dictList.value.push(val.dictLabel)
|
||||
// }
|
||||
})
|
||||
})
|
||||
const params = {
|
||||
pageNum: 1,
|
||||
type: '智能算法',
|
||||
area: typeName2.value == '全部' ? '' : typeName2.value,
|
||||
pageSize: 9 // 固定9
|
||||
}
|
||||
|
||||
// 切换领域
|
||||
const changeAreaFunction = (val) => {
|
||||
params.pageNum = 1;
|
||||
typeName2.value = val
|
||||
params.area = typeName2.value == '全部' ? '' : typeName2.value;
|
||||
selectFlag2.value = false
|
||||
pageWithAttrsFunction()
|
||||
}
|
||||
let algorithmclassDom = null
|
||||
const imgSrc = ref(require('@/assets/capacitySquare/algorithm-photo.jpg'))
|
||||
const dataLength = ref(true)
|
||||
const isNoMore = ref(false)
|
||||
let url = ref('')
|
||||
const pageWithAttrsFunction = () => {
|
||||
getGisByArea(params).then((res) => {
|
||||
dataList.value = res.data.data.list
|
||||
if (res.data.data.list.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
pageWithAttrsFunction()
|
||||
|
||||
//图片显示
|
||||
const algorithmCardPhoto = (item) => {
|
||||
let _arr = []
|
||||
if(item.pic && typeof item.pic == 'string') {
|
||||
_arr = JSON.parse(item.pic)
|
||||
import { getCategoryTreePage } from '@/api/personalCenter'
|
||||
import { getGisByArea } from '@/api/home'
|
||||
import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
const router = useRouter()
|
||||
const area = router.currentRoute.value.query.area
|
||||
const deptType = ref(null)
|
||||
const typeName = ref('全市')
|
||||
const typeName2 = ref('全部')
|
||||
if (area) {
|
||||
typeName2.value = area
|
||||
}
|
||||
let _img = _arr[0] && _arr[0].img || imgSrc.value;
|
||||
console.log('_img------------>', _img);
|
||||
return _img
|
||||
}
|
||||
//跳转详情页
|
||||
const detailFunction = (id) => {
|
||||
window.open(window.SITE_CONFIG.previewUrl + `#/details?id=${id}`)
|
||||
}
|
||||
const algorithmFunction = (e) => {
|
||||
var scrollTop = e.currentTarget.scrollTop
|
||||
var windowHeight = e.currentTarget.clientHeight
|
||||
var scrollHeight = e.currentTarget.scrollHeight
|
||||
console.log(scrollTop, windowHeight, scrollHeight, '123')
|
||||
if (
|
||||
scrollTop + windowHeight <= scrollHeight + 1 &&
|
||||
scrollTop + windowHeight >= scrollHeight - 1
|
||||
) {
|
||||
// 当前滚动条已经触底
|
||||
isNoMore.value = true
|
||||
params.pageNum++
|
||||
const dictList = ref([])
|
||||
const dataList = ref([])
|
||||
const selectFlag2 = ref(false)
|
||||
const selectFlag = ref(false)
|
||||
getCategoryTreePage({
|
||||
page: 1,
|
||||
limit: 99,
|
||||
dictTypeId: '1513712507692818433',
|
||||
}).then((res) => {
|
||||
dictList.value = ['全部']
|
||||
res.data.data.list.map((val) => {
|
||||
// if (val.dictLabel !== '其他') {
|
||||
dictList.value.push(val.dictLabel)
|
||||
// }
|
||||
})
|
||||
})
|
||||
const params = {
|
||||
pageNum: 1,
|
||||
type: '智能算法',
|
||||
area: typeName2.value == '全部' ? '' : typeName2.value,
|
||||
pageSize: 9, // 固定9
|
||||
}
|
||||
|
||||
// 切换领域
|
||||
const changeAreaFunction = (val) => {
|
||||
params.pageNum = 1
|
||||
typeName2.value = val
|
||||
params.area = typeName2.value == '全部' ? '' : typeName2.value
|
||||
selectFlag2.value = false
|
||||
pageWithAttrsFunction()
|
||||
}
|
||||
let algorithmclassDom = null
|
||||
const imgSrc = ref(require('@/assets/capacitySquare/algorithm-photo.jpg'))
|
||||
const dataLength = ref(true)
|
||||
const isNoMore = ref(false)
|
||||
let url = ref('')
|
||||
const pageWithAttrsFunction = () => {
|
||||
getGisByArea(params).then((res) => {
|
||||
dataList.value.push(...res.data.data.list)
|
||||
dataList.value = res.data.data.list
|
||||
if (res.data.data.list.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
isNoMore.value = false
|
||||
}
|
||||
}
|
||||
pageWithAttrsFunction()
|
||||
|
||||
// 切换区市
|
||||
const changeDeptType = (str) => {
|
||||
if (str) {
|
||||
if (algorithmclassDom) {
|
||||
algorithmclassDom.scrollTop = 0;
|
||||
//图片显示
|
||||
const algorithmCardPhoto = (item) => {
|
||||
let _arr = []
|
||||
if (item.pic && typeof item.pic == 'string') {
|
||||
_arr = JSON.parse(item.pic)
|
||||
}
|
||||
switch (str) {
|
||||
case '全市':
|
||||
deptType.value = null
|
||||
typeName.value = '全 市'
|
||||
break
|
||||
case '市级':
|
||||
deptType.value = 2
|
||||
typeName.value = '市 级'
|
||||
break
|
||||
case '区级':
|
||||
deptType.value = 3
|
||||
typeName.value = '区 级'
|
||||
break
|
||||
case '企业':
|
||||
deptType.value = 4
|
||||
typeName.value = '企 业'
|
||||
break
|
||||
let _img = (_arr[0] && _arr[0].img) || imgSrc.value
|
||||
console.log('_img------------>', _img)
|
||||
return _img
|
||||
}
|
||||
//跳转详情页
|
||||
const detailFunction = (id) => {
|
||||
window.open(window.SITE_CONFIG.previewUrl + `#/details?id=${id}`)
|
||||
}
|
||||
const algorithmFunction = (e) => {
|
||||
var scrollTop = e.currentTarget.scrollTop
|
||||
var windowHeight = e.currentTarget.clientHeight
|
||||
var scrollHeight = e.currentTarget.scrollHeight
|
||||
console.log(scrollTop, windowHeight, scrollHeight, '123')
|
||||
if (
|
||||
scrollTop + windowHeight <= scrollHeight + 1 &&
|
||||
scrollTop + windowHeight >= scrollHeight - 1
|
||||
) {
|
||||
// 当前滚动条已经触底
|
||||
isNoMore.value = true
|
||||
params.pageNum++
|
||||
getGisByArea(params).then((res) => {
|
||||
dataList.value.push(...res.data.data.list)
|
||||
if (res.data.data.list.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
isNoMore.value = false
|
||||
}
|
||||
params.pageNum = 1;
|
||||
if(deptType.value !== null && deptType.value !== undefined) {
|
||||
params.deptType = deptType.value;
|
||||
}else {
|
||||
if(Object.keys(params).includes('deptType')) {
|
||||
delete params.deptType
|
||||
}
|
||||
|
||||
// 切换区市
|
||||
const changeDeptType = (str) => {
|
||||
if (str) {
|
||||
if (algorithmclassDom) {
|
||||
algorithmclassDom.scrollTop = 0
|
||||
}
|
||||
switch (str) {
|
||||
case '全市':
|
||||
deptType.value = null
|
||||
typeName.value = '全 市'
|
||||
break
|
||||
case '市级':
|
||||
deptType.value = 2
|
||||
typeName.value = '市 级'
|
||||
break
|
||||
case '区级':
|
||||
deptType.value = 3
|
||||
typeName.value = '区 级'
|
||||
break
|
||||
case '企业':
|
||||
deptType.value = 4
|
||||
typeName.value = '企 业'
|
||||
break
|
||||
}
|
||||
params.pageNum = 1
|
||||
if (deptType.value !== null && deptType.value !== undefined) {
|
||||
params.deptType = deptType.value
|
||||
} else {
|
||||
if (Object.keys(params).includes('deptType')) {
|
||||
delete params.deptType
|
||||
}
|
||||
}
|
||||
}
|
||||
selectFlag.value = false
|
||||
getData(str)
|
||||
}
|
||||
selectFlag.value = false
|
||||
getData(str)
|
||||
}
|
||||
|
||||
const getData = (str) => {
|
||||
getGisByArea(params).then((res) => {
|
||||
const resData = res.data.data || {}
|
||||
if (resData.list.length > 0 && resData.list.length < 9 && algorithmclassDom) {
|
||||
algorithmclassDom.removeEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
dataList.value = resData.list || []
|
||||
nextTick(() => {
|
||||
algorithmclassDom = document.querySelector('.algorithm-box')
|
||||
if (str && algorithmclassDom) {
|
||||
const getData = (str) => {
|
||||
getGisByArea(params).then((res) => {
|
||||
const resData = res.data.data || {}
|
||||
if (
|
||||
resData.list.length > 0 &&
|
||||
resData.list.length < 9 &&
|
||||
algorithmclassDom
|
||||
) {
|
||||
algorithmclassDom.removeEventListener('scroll', algorithmFunction, true)
|
||||
algorithmclassDom.addEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
dataList.value = resData.list || []
|
||||
nextTick(() => {
|
||||
algorithmclassDom = document.querySelector('.algorithm-box')
|
||||
if (str && algorithmclassDom) {
|
||||
algorithmclassDom.removeEventListener(
|
||||
'scroll',
|
||||
algorithmFunction,
|
||||
true
|
||||
)
|
||||
algorithmclassDom.addEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
algorithmclassDom = document.querySelector('.algorithm-class')
|
||||
if (dataLength.value) {
|
||||
//监听滚动事件
|
||||
algorithmclassDom.addEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
algorithmclassDom.removeEventListener('scroll', algorithmFunction, true)
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
algorithmclassDom = document.querySelector('.algorithm-class')
|
||||
if (dataLength.value) {
|
||||
//监听滚动事件
|
||||
algorithmclassDom.addEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
algorithmclassDom.removeEventListener('scroll', algorithmFunction, true)
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.algorithm {
|
||||
.select {
|
||||
margin: 0.1rem 0 0.1rem 0.2rem;
|
||||
color: #fff;
|
||||
font-size: 0.2rem;
|
||||
font-family: webfont;
|
||||
position: relative;
|
||||
|
||||
.top {
|
||||
cursor: pointer;
|
||||
width: 3.61rem;
|
||||
height: 0.85rem;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
padding-top: 0.1rem;
|
||||
background: url('~@/assets/capacitySquare/select-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
.algorithm {
|
||||
.select {
|
||||
margin: 0.1rem 0 0.1rem 0.2rem;
|
||||
color: #fff;
|
||||
font-size: 0.2rem;
|
||||
font-family: webfont;
|
||||
position: relative;
|
||||
|
||||
.light {
|
||||
width: 0.56rem;
|
||||
height: 3px;
|
||||
position: absolute;
|
||||
top: 0.4rem;
|
||||
left: 1.52rem;
|
||||
background: url('~@/assets/capacitySquare/select-light1.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 0.5rem;
|
||||
left: 0.9rem;
|
||||
z-index: 1000;
|
||||
background: rgba(57, 134, 239, 0.68);
|
||||
border: 1px solid #aed5ff;
|
||||
|
||||
.light {
|
||||
display: inline-block;
|
||||
width: 2.39rem;
|
||||
height: 5px;
|
||||
position: absolute;
|
||||
top: -0.08rem;
|
||||
left: -0.3rem;
|
||||
background: url('~@/assets/capacitySquare/select-light2.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
&>div {
|
||||
width: 1.8rem;
|
||||
height: 0.4rem;
|
||||
line-height: 0.4rem;
|
||||
.top {
|
||||
cursor: pointer;
|
||||
width: 3.61rem;
|
||||
height: 0.85rem;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
border-top: 1px solid #aed5ff;
|
||||
}
|
||||
padding-top: 0.1rem;
|
||||
background: url('~@/assets/capacitySquare/select-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
position: relative;
|
||||
|
||||
&>div:nth-of-type(1) {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.algorithm-class {
|
||||
// margin-top: 0.6rem;
|
||||
margin-bottom: 0.18rem;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 33%);
|
||||
height: 8.8rem;
|
||||
overflow: auto;
|
||||
margin-left: 1.15rem;
|
||||
margin-right: 0.15rem;
|
||||
|
||||
.algorithm-card {
|
||||
height: 2.75rem;
|
||||
width: 5.25rem;
|
||||
background: url('~@/assets/capacitySquare/algorithm-bg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
margin-bottom: 0.4rem;
|
||||
margin-right: 0.65rem;
|
||||
position: relative;
|
||||
|
||||
:deep(.ant-image) {
|
||||
img {
|
||||
margin-top: 0.15rem;
|
||||
height: 2.45rem;
|
||||
width: 5.05rem;
|
||||
margin-left: 0.1rem;
|
||||
.light {
|
||||
width: 0.56rem;
|
||||
height: 3px;
|
||||
position: absolute;
|
||||
top: 0.4rem;
|
||||
left: 1.52rem;
|
||||
background: url('~@/assets/capacitySquare/select-light1.png')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.algorithm-card-photo {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: url('~@/assets/capacitySquare/algorithm-photo.jpg') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.algorithm-card-title {
|
||||
.bottom {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
height: 0.6rem;
|
||||
margin-left: 0.08rem;
|
||||
width: 97%;
|
||||
color: #ffffff;
|
||||
font-size: 0.22rem;
|
||||
font-family: alibaba;
|
||||
bottom: 0.15rem;
|
||||
padding-left: 0.22rem;
|
||||
background: url('~@/assets/capacitySquare/algorithm-title-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
top: 0.5rem;
|
||||
left: 0.9rem;
|
||||
z-index: 1000;
|
||||
background: rgba(57, 134, 239, 0.68);
|
||||
border: 1px solid #aed5ff;
|
||||
|
||||
span {
|
||||
line-height: 0.24rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
.light {
|
||||
display: inline-block;
|
||||
width: 2.39rem;
|
||||
height: 5px;
|
||||
position: absolute;
|
||||
top: -0.08rem;
|
||||
left: -0.3rem;
|
||||
background: url('~@/assets/capacitySquare/select-light2.png')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
font-size: 0.14rem;
|
||||
& > div {
|
||||
width: 1.8rem;
|
||||
height: 0.4rem;
|
||||
line-height: 0.4rem;
|
||||
text-align: center;
|
||||
border-top: 1px solid #aed5ff;
|
||||
}
|
||||
|
||||
& > div:nth-of-type(1) {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.algorithm-class::-webkit-scrollbar-track-piece {
|
||||
background: #a5bcdb;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
.algorithm-class {
|
||||
// margin-top: 0.6rem;
|
||||
margin-bottom: 0.18rem;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 33%);
|
||||
height: 8.8rem;
|
||||
overflow: auto;
|
||||
margin-left: 1.15rem;
|
||||
margin-right: 0.15rem;
|
||||
|
||||
.algorithm-class::-webkit-scrollbar-thumb {
|
||||
height: 3.2rem;
|
||||
background: linear-gradient(to bottom, #47d7f5, #3dc6e3);
|
||||
}
|
||||
.algorithm-card {
|
||||
height: 2.75rem;
|
||||
width: 5.25rem;
|
||||
background: url('~@/assets/capacitySquare/algorithm-bg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
margin-bottom: 0.4rem;
|
||||
margin-right: 0.65rem;
|
||||
position: relative;
|
||||
|
||||
.algorithm-class::-webkit-scrollbar {
|
||||
height: 8.8rem;
|
||||
width: 0.08rem;
|
||||
border-radius: 0.08rem;
|
||||
:deep(.ant-image) {
|
||||
img {
|
||||
margin-top: 0.15rem;
|
||||
height: 2.45rem;
|
||||
width: 5.05rem;
|
||||
margin-left: 0.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.algorithm-card-photo {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: url('~@/assets/capacitySquare/algorithm-photo.jpg')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.algorithm-card-title {
|
||||
position: absolute;
|
||||
height: 0.6rem;
|
||||
margin-left: 0.08rem;
|
||||
width: 97%;
|
||||
color: #ffffff;
|
||||
font-size: 0.22rem;
|
||||
font-family: alibaba;
|
||||
bottom: 0.15rem;
|
||||
padding-left: 0.22rem;
|
||||
background: url('~@/assets/capacitySquare/algorithm-title-bg.png')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
|
||||
span {
|
||||
line-height: 0.24rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
font-size: 0.14rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.algorithm-class::-webkit-scrollbar-track-piece {
|
||||
background: #a5bcdb;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
|
||||
.algorithm-class::-webkit-scrollbar-thumb {
|
||||
height: 3.2rem;
|
||||
background: linear-gradient(to bottom, #47d7f5, #3dc6e3);
|
||||
}
|
||||
|
||||
.algorithm-class::-webkit-scrollbar {
|
||||
height: 8.8rem;
|
||||
width: 0.08rem;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-08-09 09:31:25
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-24 10:44:50
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-11-29 14:41:49
|
||||
* @Description: 应用资源
|
||||
-->
|
||||
<template>
|
||||
|
@ -57,12 +57,17 @@
|
|||
import { selectAppList } from '@/api/home'
|
||||
import { useRouter } from 'vue-router'
|
||||
const router = useRouter()
|
||||
const selectArea = router.currentRoute.value.query.area
|
||||
const pageNum = ref(1)
|
||||
const flag = ref(true)
|
||||
const type = ref(null)
|
||||
const area = ref(null)
|
||||
const typeName = ref('全市')
|
||||
const typeName2 = ref('全部')
|
||||
if (selectArea && selectArea !== '全部') {
|
||||
typeName2.value = selectArea
|
||||
area.value = selectArea
|
||||
}
|
||||
const dictList = ref([])
|
||||
const data = reactive({ list: [] })
|
||||
const selectFlag = ref(false)
|
||||
|
@ -121,8 +126,8 @@
|
|||
type: type.value,
|
||||
area: area.value,
|
||||
}).then((res) => {
|
||||
console.log('res---应用广场--------->', res);
|
||||
|
||||
console.log('res---应用广场--------->', res)
|
||||
|
||||
if (res.data.data.total.length < 9) {
|
||||
dom.removeEventListener('scroll', viewMonitor, true)
|
||||
}
|
||||
|
|
|
@ -60,9 +60,15 @@
|
|||
import { getCategoryTreePage } from '@/api/personalCenter'
|
||||
import { getGisByArea } from '@/api/home'
|
||||
import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
const router = useRouter()
|
||||
const area = router.currentRoute.value.query.area
|
||||
const deptType = ref(null)
|
||||
const typeName = ref('全市')
|
||||
const typeName2 = ref('全部')
|
||||
if (area) {
|
||||
typeName2.value = area
|
||||
}
|
||||
const dictList = ref([])
|
||||
const dataList = ref([])
|
||||
const selectFlag2 = ref(false)
|
||||
|
@ -337,4 +343,4 @@
|
|||
border-radius: 0.08rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
|
@ -82,7 +82,8 @@
|
|||
<a-form-item
|
||||
style="margin-bottom: 10px"
|
||||
label="需求类型"
|
||||
name="请选择需求类型"
|
||||
name="detailsType"
|
||||
:rules="[{ required: true, message: '请选择需求类型' }]"
|
||||
>
|
||||
<a-select
|
||||
disabled="true"
|
||||
|
@ -99,7 +100,7 @@
|
|||
</a-select>
|
||||
</a-form-item>
|
||||
|
||||
<a-tooltip placement="top" mouseEnterDelay="1">
|
||||
<!-- <a-tooltip placement="top" mouseEnterDelay="1">
|
||||
<template #title>
|
||||
<span>{{ formName.detailsField }}</span>
|
||||
</template>
|
||||
|
@ -115,7 +116,7 @@
|
|||
v-model:value="formName.detailsField"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-tooltip>
|
||||
</a-tooltip> -->
|
||||
|
||||
<a-form-item
|
||||
style="margin-bottom: 10px"
|
||||
|
|
|
@ -4,7 +4,11 @@
|
|||
<div class="main">
|
||||
<div class="left">
|
||||
<a-layout-sider>
|
||||
<a-menu v-model:selectedKeys="selectedKeys" mode="inline" @click="handleClick">
|
||||
<a-menu
|
||||
v-model:selectedKeys="selectedKeys"
|
||||
mode="inline"
|
||||
@click="handleClick"
|
||||
>
|
||||
<a-menu-item v-for="item in menuList" :key="item.key">
|
||||
<img :src="item.img" alt="" style="margin-right: 10px" />
|
||||
<span>{{ item.title }}</span>
|
||||
|
@ -14,31 +18,45 @@
|
|||
</div>
|
||||
<div class="right">
|
||||
<!-- <div class="title">数据需求</div> -->
|
||||
<a-list class="demo-loadmore-list" :loading="initLoading" item-layout="horizontal" :data-source="list"
|
||||
:key="showKey">
|
||||
<a-list
|
||||
class="demo-loadmore-list"
|
||||
:loading="initLoading"
|
||||
item-layout="horizontal"
|
||||
:data-source="list"
|
||||
:key="showKey"
|
||||
>
|
||||
<template #renderItem="{ item }">
|
||||
<a-list-item>
|
||||
<a-skeleton avatar :title="false" :loading="!!item.loading" active>
|
||||
<a-tooltip placement="topLeft" arrow-point-at-center mouseEnterDelay="1"
|
||||
overlayClassName="demandCenter-tooltip-card">
|
||||
<template #title>
|
||||
<div class="tooltip-desc">{{ item.demandDetails || '--' }}</div>
|
||||
</template>
|
||||
<a-list-item-meta :description="'描述:' + (item.demandDetails || '--')">
|
||||
<template #title>
|
||||
<span @click="showDetail(item)" style="cursor: pointer" class="name">
|
||||
{{ item.demandSubject }}
|
||||
</span>
|
||||
<span class="time">{{ item.createDate }}</span>
|
||||
</template>
|
||||
</a-list-item-meta>
|
||||
<div class="toptitle">
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>{{ item.demandSubject }}</template>
|
||||
<span
|
||||
@click="showDetail(item)"
|
||||
style="cursor: pointer"
|
||||
class="name"
|
||||
>
|
||||
{{ item.demandSubject }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
</a-skeleton>
|
||||
|
||||
<span class="time">{{ item.createDate }}</span>
|
||||
</div>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>描述: {{ item.demandDetails }}</template>
|
||||
<div class="bottomdesc">
|
||||
描述: {{ item.demandDetails || '--' }}
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</a-list-item>
|
||||
</template>
|
||||
</a-list>
|
||||
<a-pagination v-model:current="pageNum" v-model:page-size="pageSize" :total="total" @change="pageChange"
|
||||
:key="showKey">
|
||||
<a-pagination
|
||||
v-model:current="pageNum"
|
||||
v-model:page-size="pageSize"
|
||||
:total="total"
|
||||
@change="pageChange"
|
||||
:key="showKey"
|
||||
>
|
||||
<template #buildOptionText="props">
|
||||
<span>{{ props.value }}条/页</span>
|
||||
</template>
|
||||
|
@ -69,7 +87,16 @@ const pageSize = ref(8)
|
|||
const total = ref()
|
||||
const showKey = ref(0)
|
||||
const whoShow1 = ref(whoShow)
|
||||
|
||||
const selectedKeys = ref(['0'])
|
||||
|
||||
const menuList = [
|
||||
{
|
||||
key: '0',
|
||||
title: '全部需求',
|
||||
num: '0',
|
||||
img: require('@/assets/home/menuall.png'),
|
||||
},
|
||||
{
|
||||
key: '1',
|
||||
title: '基础设施',
|
||||
|
@ -98,7 +125,7 @@ const menuList = [
|
|||
key: '5',
|
||||
title: '知识库',
|
||||
num: '0',
|
||||
img: require('@/assets/home/menuyyzy.png'),
|
||||
img: require('@/assets/home/menuzsk.png'),
|
||||
},
|
||||
]
|
||||
const detailsType = ref('')
|
||||
|
@ -113,6 +140,8 @@ const handleClick = (item) => {
|
|||
detailsType.value = '应用资源'
|
||||
} else if (item.key === '5') {
|
||||
detailsType.value = '知识库'
|
||||
} else {
|
||||
detailsType.value = ''
|
||||
}
|
||||
pageNum.value = 1
|
||||
getApplyList()
|
||||
|
@ -138,8 +167,6 @@ const getApplyList = () => {
|
|||
}
|
||||
|
||||
const showDetail = (item) => {
|
||||
// console.log('demandDetails', item)
|
||||
// store.commit('home/demandDetailsData', item)
|
||||
router.push({
|
||||
path: '/demandDetails',
|
||||
query: {
|
||||
|
@ -232,6 +259,45 @@ onMounted(() => {
|
|||
background-color: #ffffff;
|
||||
box-shadow: 10px 8px 10px 3px #9dc6ea;
|
||||
padding: 20px;
|
||||
.toptitle {
|
||||
margin-bottom: 10px;
|
||||
& > span:first-child {
|
||||
display: -webkit-box;
|
||||
/*设置为弹性盒子*/
|
||||
-webkit-line-clamp: 1;
|
||||
/*最多显示2行*/
|
||||
overflow: hidden;
|
||||
/*超出隐藏*/
|
||||
text-overflow: ellipsis;
|
||||
/*超出显示为省略号*/
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
width: 600px;
|
||||
font-size: 14px;
|
||||
color: #1492ff;
|
||||
font-size: 18px;
|
||||
}
|
||||
& > span:first-child:hover {
|
||||
color: #0b5392;
|
||||
}
|
||||
& > span:last-child {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
.bottomdesc {
|
||||
display: -webkit-box;
|
||||
/*设置为弹性盒子*/
|
||||
-webkit-line-clamp: 1;
|
||||
/*最多显示2行*/
|
||||
overflow: hidden;
|
||||
/*超出隐藏*/
|
||||
text-overflow: ellipsis;
|
||||
/*超出显示为省略号*/
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
width: 800px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 22px;
|
||||
|
@ -242,40 +308,42 @@ onMounted(() => {
|
|||
.ant-list {
|
||||
height: 730px;
|
||||
overflow-y: scroll;
|
||||
|
||||
:deep(.ant-list-item-meta-title) {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.name {
|
||||
width: 800px;
|
||||
font-size: 18px;
|
||||
color: #1492ff;
|
||||
display: -webkit-box;
|
||||
/*设置为弹性盒子*/
|
||||
-webkit-line-clamp: 1;
|
||||
/*最多显示2行*/
|
||||
overflow: hidden;
|
||||
/*超出隐藏*/
|
||||
text-overflow: ellipsis;
|
||||
/*超出显示为省略号*/
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
.ant-list-item {
|
||||
display: list-item;
|
||||
}
|
||||
// :deep(.ant-list-item-meta-title) {
|
||||
// // display: flex;
|
||||
// justify-content: space-between;
|
||||
|
||||
:deep(.ant-list-item-meta-description) {
|
||||
display: -webkit-box;
|
||||
/*设置为弹性盒子*/
|
||||
-webkit-line-clamp: 2;
|
||||
/*最多显示2行*/
|
||||
overflow: hidden;
|
||||
/*超出隐藏*/
|
||||
text-overflow: ellipsis;
|
||||
/*超出显示为省略号*/
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
// .name {
|
||||
// width: 800px;
|
||||
// font-size: 18px;
|
||||
// color: #1492ff;
|
||||
// display: -webkit-box;
|
||||
// /*设置为弹性盒子*/
|
||||
// -webkit-line-clamp: 1;
|
||||
// /*最多显示2行*/
|
||||
// overflow: hidden;
|
||||
// /*超出隐藏*/
|
||||
// text-overflow: ellipsis;
|
||||
// /*超出显示为省略号*/
|
||||
// -webkit-box-orient: vertical;
|
||||
// word-break: break-all;
|
||||
// }
|
||||
// }
|
||||
|
||||
// :deep(.ant-list-item-meta-description) {
|
||||
// display: -webkit-box;
|
||||
// /*设置为弹性盒子*/
|
||||
// -webkit-line-clamp: 2;
|
||||
// /*最多显示2行*/
|
||||
// overflow: hidden;
|
||||
// /*超出隐藏*/
|
||||
// text-overflow: ellipsis;
|
||||
// /*超出显示为省略号*/
|
||||
// -webkit-box-orient: vertical;
|
||||
// word-break: break-all;
|
||||
// }
|
||||
}
|
||||
|
||||
// 隐藏滚动条
|
||||
|
|
|
@ -8,8 +8,7 @@
|
|||
></DetalsTitle>
|
||||
</div>
|
||||
<!-- 青岛市局 -->
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div style="width: 100%; display: flex; justify-content: center">
|
||||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||||
<div class="content-left" v-if="item.titleType === '调用接口'">
|
||||
<div class="left">
|
||||
|
@ -97,12 +96,14 @@
|
|||
<a-tooltip>
|
||||
<template #title>
|
||||
{{
|
||||
approveStatus === '通过'
|
||||
approveStatus === '通过' || role
|
||||
? item.people.value
|
||||
: '请申请后查看'
|
||||
}}
|
||||
</template>
|
||||
<span :class="{ 'blur-word': approveStatus !== '通过' }">
|
||||
<span
|
||||
:class="{ 'blur-word': approveStatus !== '通过' && !role }"
|
||||
>
|
||||
{{ item.people.value }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
|
@ -112,12 +113,14 @@
|
|||
<a-tooltip>
|
||||
<template #title>
|
||||
{{
|
||||
approveStatus === '通过'
|
||||
approveStatus === '通过' || role
|
||||
? item.phone.value
|
||||
: '请申请后查看'
|
||||
}}
|
||||
</template>
|
||||
<span :class="{ 'blur-word': approveStatus !== '通过' }">
|
||||
<span
|
||||
:class="{ 'blur-word': approveStatus !== '通过' && !role }"
|
||||
>
|
||||
{{ item.phone.value }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
|
@ -169,7 +172,15 @@
|
|||
import { ref, defineProps, watch } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex'
|
||||
const router = useRouter()
|
||||
const store = useStore()
|
||||
const role = ref(false)
|
||||
store.getters['user/roleList'].map((val) => {
|
||||
if (val === '运维管理员') {
|
||||
role.value = true
|
||||
}
|
||||
})
|
||||
|
||||
const approveStatus = ref('通过')
|
||||
const whoShow1 = ref(whoShow)
|
||||
|
|
|
@ -8,8 +8,7 @@
|
|||
></DetalsTitle>
|
||||
</div>
|
||||
<!-- 青岛市局 -->
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div style="width: 100%; display: flex; justify-content: center">
|
||||
<div class="content">
|
||||
<div
|
||||
v-for="(item, index) in dataFrom.content"
|
||||
|
@ -24,6 +23,7 @@
|
|||
<a-tooltip
|
||||
v-if="
|
||||
approveStatus !== '通过' &&
|
||||
!role &&
|
||||
(carditem.attrType === '联系人' ||
|
||||
carditem.attrType === '联系人电话')
|
||||
"
|
||||
|
@ -55,7 +55,15 @@
|
|||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||||
import { ref, defineProps, watch } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex'
|
||||
const router = useRouter()
|
||||
const store = useStore()
|
||||
const role = ref(false)
|
||||
store.getters['user/roleList'].map((val) => {
|
||||
if (val === '运维管理员') {
|
||||
role.value = true
|
||||
}
|
||||
})
|
||||
const approveStatus = ref('通过')
|
||||
const whoShow1 = ref(whoShow)
|
||||
let dataFrom = ref({
|
||||
|
|
|
@ -7,8 +7,7 @@
|
|||
:type="dataFrom.englishTitle"
|
||||
></DetalsTitle>
|
||||
</div>
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div style="width: 100%; display: flex; justify-content: center">
|
||||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||||
<div class="content-left">
|
||||
<div class="left">
|
||||
|
@ -52,12 +51,14 @@
|
|||
<a-tooltip>
|
||||
<template #title>
|
||||
{{
|
||||
approveStatus === '通过'
|
||||
approveStatus === '通过' || role
|
||||
? item.people.value
|
||||
: '请申请后查看'
|
||||
}}
|
||||
</template>
|
||||
<span :class="{ 'blur-word': approveStatus !== '通过' }">
|
||||
<span
|
||||
:class="{ 'blur-word': approveStatus !== '通过' && !role }"
|
||||
>
|
||||
{{ item.people.value }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
|
@ -67,12 +68,14 @@
|
|||
<a-tooltip>
|
||||
<template #title>
|
||||
{{
|
||||
approveStatus === '通过'
|
||||
approveStatus === '通过' || role
|
||||
? item.phone.value
|
||||
: '请申请后查看'
|
||||
}}
|
||||
</template>
|
||||
<span :class="{ 'blur-word': approveStatus !== '通过' }">
|
||||
<span
|
||||
:class="{ 'blur-word': approveStatus !== '通过' && !role }"
|
||||
>
|
||||
{{ item.phone.value }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
|
@ -124,7 +127,15 @@
|
|||
import { ref, defineProps, watch } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex'
|
||||
const router = useRouter()
|
||||
const store = useStore()
|
||||
const role = ref(false)
|
||||
store.getters['user/roleList'].map((val) => {
|
||||
if (val === '运维管理员') {
|
||||
role.value = true
|
||||
}
|
||||
})
|
||||
const approveStatus = ref('通过')
|
||||
const whoShow1 = ref(whoShow)
|
||||
let dataFrom = ref({
|
||||
|
|
|
@ -7,8 +7,7 @@
|
|||
:type="dataFrom.englishTitle"
|
||||
></DetalsTitle>
|
||||
</div>
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div style="width: 100%; display: flex; justify-content: center">
|
||||
<div class="content">
|
||||
<div class="content-card">
|
||||
<div class="left">
|
||||
|
@ -40,6 +39,7 @@
|
|||
<template #title>
|
||||
{{
|
||||
approveStatus !== '通过' &&
|
||||
!role &&
|
||||
(carditem.attrType === '部门联系人' ||
|
||||
carditem.attrType === '联系人电话')
|
||||
? '请申请后查看'
|
||||
|
@ -50,6 +50,7 @@
|
|||
:class="{
|
||||
'blur-word':
|
||||
approveStatus !== '通过' &&
|
||||
!role &&
|
||||
(carditem.attrType === '部门联系人' ||
|
||||
carditem.attrType === '联系人电话'),
|
||||
}"
|
||||
|
@ -80,7 +81,15 @@
|
|||
import { pinyin } from 'pinyin-pro'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex'
|
||||
const router = useRouter()
|
||||
const store = useStore()
|
||||
const role = ref(false)
|
||||
store.getters['user/roleList'].map((val) => {
|
||||
if (val === '运维管理员') {
|
||||
role.value = true
|
||||
}
|
||||
})
|
||||
const approveStatus = ref('通过')
|
||||
const whoShow1 = ref(whoShow)
|
||||
let flag = ref(true)
|
||||
|
|
|
@ -7,8 +7,7 @@
|
|||
:type="dataFrom.englishTitle"
|
||||
></DetalsTitle>
|
||||
</div>
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div style="width: 100%; display: flex; justify-content: center">
|
||||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||||
<div class="content-left">
|
||||
<div class="left">
|
||||
|
@ -63,12 +62,14 @@
|
|||
<a-tooltip>
|
||||
<template #title>
|
||||
{{
|
||||
approveStatus === '通过'
|
||||
approveStatus === '通过' || role
|
||||
? item.people.value
|
||||
: '请申请后查看'
|
||||
}}
|
||||
</template>
|
||||
<span :class="{ 'blur-word': approveStatus !== '通过' }">
|
||||
<span
|
||||
:class="{ 'blur-word': approveStatus !== '通过' && !role }"
|
||||
>
|
||||
{{ item.people.value }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
|
@ -78,12 +79,14 @@
|
|||
<a-tooltip>
|
||||
<template #title>
|
||||
{{
|
||||
approveStatus === '通过'
|
||||
approveStatus === '通过' || role
|
||||
? item.phone.value
|
||||
: '请申请后查看'
|
||||
}}
|
||||
</template>
|
||||
<span :class="{ 'blur-word': approveStatus !== '通过' }">
|
||||
<span
|
||||
:class="{ 'blur-word': approveStatus !== '通过' && !role }"
|
||||
>
|
||||
{{ item.phone.value }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
|
@ -135,7 +138,15 @@
|
|||
import { pinyin } from 'pinyin-pro'
|
||||
import { ref, defineProps, watch } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex'
|
||||
const router = useRouter()
|
||||
const store = useStore()
|
||||
const role = ref(false)
|
||||
store.getters['user/roleList'].map((val) => {
|
||||
if (val === '运维管理员') {
|
||||
role.value = true
|
||||
}
|
||||
})
|
||||
const approveStatus = ref('通过')
|
||||
const whoShow1 = ref(whoShow)
|
||||
let dataFrom = ref({
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<detailsPageconetentTree />
|
||||
</div>
|
||||
<div class="details-pageconetent-left" v-else>
|
||||
<detailsPageInfrastructureTree v-show="flag != '6'" />
|
||||
<detailsPageInfrastructureTree v-if="flag != '6'" />
|
||||
</div>
|
||||
<div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'">
|
||||
<div class="resultListSearchInput-father">
|
||||
|
@ -127,7 +127,7 @@
|
|||
</template>
|
||||
</div>
|
||||
<searchResultList
|
||||
v-show="resourceList.data && resourceList.data.length > 0"
|
||||
v-if="resourceList.data && resourceList.data.length > 0"
|
||||
:resourceList="resourceList"
|
||||
:key="listKey2"
|
||||
:resourceTotal="resourceTotal"
|
||||
|
@ -276,12 +276,14 @@
|
|||
:resourceTotal="resourceTotal"
|
||||
></KnowledgeBase>
|
||||
</div>
|
||||
<div class="talk-monitor" @click="openMonitor">
|
||||
<!--客户反馈:能力集市-问答机器人属于互联网链接,先注释掉,不要删除。写一下注释,方便后面要放开的时候一下子找到。-->
|
||||
<!-- <div class="talk-monitor" @click="openMonitor">
|
||||
<a-tooltip>
|
||||
<template #title>问答机器人</template>
|
||||
<i></i>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
-->
|
||||
<div @click="showAbilitySquare" class="abilitySquare">
|
||||
<p></p>
|
||||
<p>能力广场</p>
|
||||
|
@ -833,7 +835,7 @@
|
|||
let select =
|
||||
router.currentRoute.value.query.select ||
|
||||
DETAIL_PAGE_CONTENT_DEFAULT_TAB
|
||||
console.log('select------------>', select)
|
||||
let orderField =router.currentRoute.value.query.orderField
|
||||
// 例如:组件服务是大类型,selectSubType是组件服务的智能算法或图层服务等...
|
||||
let selectSubType = router.currentRoute.value.query.type || ''
|
||||
let queryName = ref('')
|
||||
|
@ -926,7 +928,6 @@
|
|||
) {
|
||||
;[title[0], title[2]] = [title[2], title[0]]
|
||||
}
|
||||
debugger
|
||||
titleName.value = title
|
||||
}
|
||||
// 查询
|
||||
|
@ -1323,6 +1324,8 @@
|
|||
globalData.data = []
|
||||
}
|
||||
select = router.currentRoute.value.query.select
|
||||
|
||||
|
||||
if (
|
||||
(select == '应用资源' &&
|
||||
(paramsGetResources.orderField == '' ||
|
||||
|
@ -1619,19 +1622,23 @@
|
|||
}
|
||||
// 青岛-西海岸处理
|
||||
const getXiHaiAn = (res) => {
|
||||
;((res.data && res.data.data && res.data.data.list) || []).forEach(
|
||||
(val) => {
|
||||
val.id = val.serviceId // id
|
||||
val.name = val.serviceName // 名字
|
||||
val.sjlCount = val.requestQuantity // 数据量
|
||||
val.applyCount = val.requestCount // 申请量
|
||||
val.deptName = val.departmentName // 部门
|
||||
val.createTime = val.createTime.split('.')[0]
|
||||
val.createDate = val.createTime // 发布时间
|
||||
}
|
||||
)
|
||||
resourceList.data = res.data.data.list || []
|
||||
resourceTotal.value = res.data.data.total || ''
|
||||
const data = (res.data && res.data.data && res.data.data.list) || []
|
||||
const total = (res.data && res.data.data && res.data.data.total) || 0
|
||||
data.forEach((val) => {
|
||||
val.id = val.serviceId // id
|
||||
val.name = val.serviceName // 名字
|
||||
val.sjlCount = val.requestQuantity // 数据量
|
||||
val.applyCount = val.requestCount // 申请量
|
||||
val.deptName = val.departmentName // 部门
|
||||
val.createTime = val.createTime.split('.')[0]
|
||||
val.createDate = val.createTime // 发布时间
|
||||
})
|
||||
|
||||
console.log('接口数据', data)
|
||||
resourceList.data = data || []
|
||||
console.log('接口数据2', resourceList.data)
|
||||
resourceTotal.value = total
|
||||
console.log()
|
||||
}
|
||||
let shoppingCartList = ref([])
|
||||
// 获取申购车列表
|
||||
|
@ -1779,6 +1786,10 @@
|
|||
onMounted(() => {
|
||||
// 从本地读取查询条件,赋值
|
||||
//西海岸基础设施放在最前面
|
||||
orderField= router.currentRoute.value.query.orderField //根据什么排序
|
||||
if(orderField){
|
||||
paramsGetResources.orderField=orderField
|
||||
}
|
||||
setTitle()
|
||||
handleSetSearchData()
|
||||
listKey2.value++
|
||||
|
@ -1864,7 +1875,7 @@
|
|||
query: newQuery,
|
||||
})
|
||||
.then(() => {
|
||||
tagFlag.value = false
|
||||
// tagFlag.value = false
|
||||
chongzhi(true)
|
||||
getNewList()
|
||||
})
|
||||
|
@ -2454,7 +2465,7 @@
|
|||
padding-top: 0.05rem;
|
||||
position: fixed;
|
||||
z-index: 10;
|
||||
bottom: 1.56rem;
|
||||
// bottom: 1.56rem;
|
||||
right: 0.1rem;
|
||||
cursor: pointer;
|
||||
background: #e3edfc;
|
||||
|
|
|
@ -812,7 +812,7 @@
|
|||
console.log('res=====>', res.data.data)
|
||||
if (res.data.code == 0) {
|
||||
if (res.data.data.length == 0) {
|
||||
message.warning('该关键词,暂无应用资源!')
|
||||
// message.warning('该关键词,暂无应用资源!')
|
||||
} else {
|
||||
// 过滤本单位的应用系统
|
||||
res.data.data.map((val) => {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
海康H5Player
|
||||
-->
|
||||
<template>
|
||||
<div :id="videoId" style="width: 800px; height: 600px; z-index: 9999"></div>
|
||||
<div :id="videoId" ref="video333" style="width: 800px; height: 600px"></div>
|
||||
</template>
|
||||
<script>
|
||||
// const IS_MOVE_DEVICE = document.body.clientWidth < 992 // 是否移动设备
|
||||
|
@ -41,6 +41,7 @@
|
|||
mseSupport: MSE_IS_SUPPORT,
|
||||
// tabActive: MSE_IS_SUPPORT ? 'mse' : 'decoder',
|
||||
tabActive: 'decoder',
|
||||
videoDom: {},
|
||||
urls: {
|
||||
realplay: 'ws://10.19.147.22:559/EUrl/q2jQie4',
|
||||
talk: 'wss://10.41.163.126:6014/proxy/10.41.163.126:559/EUrl/6gFx47S',
|
||||
|
@ -70,18 +71,13 @@
|
|||
},
|
||||
created() {},
|
||||
mounted() {
|
||||
this.init()
|
||||
// this.init()
|
||||
mybus.emit('closeLoading', true)
|
||||
this.createPlayer()
|
||||
this.arrangeWindow()
|
||||
// this.arrangeWindow()
|
||||
if (this.unStopable) {
|
||||
this.videoPlay(this.videoUrl, 0)
|
||||
} else {
|
||||
this.realplay(this.videoUrl, 0)
|
||||
}
|
||||
//videoUrl this.realplay(this.videoUrl,0);//循环传过来的数组进行播放,index根据选中的个数
|
||||
|
||||
//this.realplay('wss://10.134.135.44:6014/proxy/10.10.20.14:559/openUrl/y3mFfcA',0);
|
||||
},
|
||||
watch: {
|
||||
videoUrl: {
|
||||
|
@ -120,15 +116,18 @@
|
|||
//szId: 'player'+this.index,
|
||||
szId: this.videoId,
|
||||
szBasePath: '/util/', //引入静态资源地址,我这里静态资源在public/js文件存放,所以设置为js
|
||||
iMaxSplit: 4,
|
||||
iWidth: '800px',
|
||||
iCurrentSplit: 4,
|
||||
openDebug: true,
|
||||
oStyle: {
|
||||
borderSelect: '#FFCC00',
|
||||
},
|
||||
// iMaxSplit: 4,
|
||||
// iWidth: '800px',
|
||||
// iCurrentSplit: 4,
|
||||
// openDebug: true,
|
||||
// oStyle: {
|
||||
// borderSelect: '#FFCC00',
|
||||
// },
|
||||
})
|
||||
let that = this
|
||||
that.videoDom = that.$refs.video333.querySelector('video') || {}
|
||||
// that.videoDom.autoplay = false
|
||||
|
||||
// 事件回调绑定
|
||||
this.player.JS_SetWindowControlCallback({
|
||||
windowEventSelect: function (iWndIndex) {
|
||||
|
@ -138,8 +137,8 @@
|
|||
pluginErrorHandler: function (iWndIndex, iErrorCode, oError) {
|
||||
//插件错误回调
|
||||
console.log('pluginError callback: ', iWndIndex, iErrorCode, oError)
|
||||
message.error('取流异常,请稍后尝试')
|
||||
mybus.emit('closeLoading', false)
|
||||
// message.error('取流异常,请稍后尝试')
|
||||
// mybus.emit('closeLoading', false)
|
||||
},
|
||||
windowEventOver: function (iWndIndex) {
|
||||
//鼠标移过回调
|
||||
|
@ -159,15 +158,19 @@
|
|||
},
|
||||
firstFrameDisplay: function (iWndIndex, iWidth, iHeight) {
|
||||
//首帧显示回调
|
||||
console.log(
|
||||
'firstFrame loaded callback: ',
|
||||
iWndIndex,
|
||||
iWidth,
|
||||
iHeight
|
||||
)
|
||||
// 如果是录像播放,首帧绘制完成后停止
|
||||
if (!that.realTime) {
|
||||
that.pausePlay(iWndIndex)
|
||||
// console.log(
|
||||
// 'firstFrame loaded callback: ',
|
||||
// iWndIndex,
|
||||
// iWidth,
|
||||
// iHeight
|
||||
// )
|
||||
// // 如果是录像播放,首帧绘制完成后停止
|
||||
// if (!that.realTime) {
|
||||
// that.pausePlay(iWndIndex)
|
||||
if (!that.unStopable) {
|
||||
setTimeout(() => {
|
||||
that.videoDom.pause()
|
||||
}, 0)
|
||||
}
|
||||
mybus.emit('closeLoading', false)
|
||||
},
|
||||
|
@ -191,67 +194,23 @@
|
|||
// 初始化结束
|
||||
// 视频预览
|
||||
realplay(playURL, index1) {
|
||||
let that = this
|
||||
this.realTime = false
|
||||
mybus.emit('closeLoading', true)
|
||||
setTimeout(() => {
|
||||
mybus.emit('closeLoading', false)
|
||||
}, 3000)
|
||||
this.player.JS_Stop(0)
|
||||
this.mode = 0 //解码方式:0普通模式 1高级模式
|
||||
const { player, mode, urls } = this
|
||||
// playURL = this.realplay
|
||||
console.log('视频播放地址', playURL)
|
||||
// const startTime = {
|
||||
// startTime: ,
|
||||
// }
|
||||
// const endTime = {
|
||||
// endTime: ,
|
||||
// }
|
||||
player
|
||||
.JS_Play(
|
||||
playURL,
|
||||
{ playURL, mode },
|
||||
index1,
|
||||
'2022-11-22T10:00:00Z',
|
||||
'2022-11-22T11:00:00Z'
|
||||
)
|
||||
.then(
|
||||
() => {
|
||||
console.log('realplay success')
|
||||
},
|
||||
(e) => {
|
||||
console.error(e)
|
||||
// message.error('错误代码:' + e)
|
||||
}
|
||||
)
|
||||
},
|
||||
// 实时播放
|
||||
videoPlay(playURL, index1) {
|
||||
let that = this
|
||||
this.realTime = true
|
||||
mybus.emit('closeLoading', true)
|
||||
setTimeout(() => {
|
||||
mybus.emit('closeLoading', false)
|
||||
}, 3000)
|
||||
if (!that.unStopable) {
|
||||
message.warning('预览将在约6s后停止')
|
||||
setTimeout(() => {
|
||||
that.stopAllPlay()
|
||||
}, 6000)
|
||||
}
|
||||
this.mode = 0 //解码方式:0普通模式 1高级模式
|
||||
const { player, mode, urls } = this
|
||||
// playURL = this.realplay
|
||||
console.log('视频播放地址', playURL)
|
||||
// const startTime = {
|
||||
// startTime: ,
|
||||
// }
|
||||
// const endTime = {
|
||||
// endTime: ,
|
||||
// }
|
||||
player.JS_Play(playURL, { playURL, mode }, index1).then(
|
||||
() => {
|
||||
console.log('realplay success')
|
||||
// 预览时6s停止播放
|
||||
mybus.emit('closeLoading', false)
|
||||
if (!that.unStopable) {
|
||||
setTimeout(() => {
|
||||
that.videoDom.pause()
|
||||
}, 0)
|
||||
}
|
||||
},
|
||||
(e) => {
|
||||
console.error(e)
|
||||
|
@ -272,20 +231,6 @@
|
|||
}
|
||||
)
|
||||
},
|
||||
// 暂停单个视频
|
||||
pausePlay(index) {
|
||||
let that = this
|
||||
this.player.JS_Pause(index).then(
|
||||
() => {
|
||||
console.log('暂停成功')
|
||||
},
|
||||
(e) => {
|
||||
console.error(e)
|
||||
// 暂停失败切换为实时播放
|
||||
that.videoPlay(that.videoUrl, 0)
|
||||
}
|
||||
)
|
||||
},
|
||||
},
|
||||
beforeUnmount() {
|
||||
console.log('关闭所有视频')
|
||||
|
|
|
@ -69,11 +69,11 @@
|
|||
class="left"
|
||||
style="display: flex; align-items: center"
|
||||
v-else-if="
|
||||
(item.type === '组件服务' &&
|
||||
item.infoList &&
|
||||
item.infoList.filter((val) => val.attrType == '图层缩略图')[0]) ||
|
||||
item.infoList.filter((val) => val.attrType == '组件图片')[0] ||
|
||||
item.infoList.filter((val) => val.attrType == '算法效果图片')[0]
|
||||
item.type === '组件服务' &&
|
||||
item.infoList &&
|
||||
(item.infoList.filter((val) => val.attrType == '图层缩略图')[0] ||
|
||||
item.infoList.filter((val) => val.attrType == '组件图片')[0] ||
|
||||
item.infoList.filter((val) => val.attrType == '算法效果图片')[0])
|
||||
"
|
||||
>
|
||||
<a-image
|
||||
|
@ -304,6 +304,7 @@
|
|||
<div class="dec">
|
||||
<div
|
||||
v-if="
|
||||
item.infoList &&
|
||||
item.infoList.filter((val) => val.attrType == '组件类型')[0]
|
||||
"
|
||||
>
|
||||
|
@ -743,6 +744,7 @@
|
|||
* isFromFather: 是否来自父组件传值
|
||||
*/
|
||||
const changeCondition = (item, isFromFather = false) => {
|
||||
|
||||
console.log('item, isFromFather------------>', item, isFromFather)
|
||||
let newType = item.orderType == 'DESC' ? 'ASC' : 'DESC'
|
||||
if (isFromFather) {
|
||||
|
|
|
@ -140,7 +140,7 @@
|
|||
mybus.on('getDeptList', () => {
|
||||
init()
|
||||
})
|
||||
|
||||
init()
|
||||
const onSelect = async (item, val, child) => {
|
||||
console.log('item--------onSelect---->', item)
|
||||
console.log('val------onSelect------>', val)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: Light
|
||||
* @Date: 2022-11-18 11:53:43
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-11-28 16:45:50
|
||||
* @LastEditTime: 2022-11-30 11:55:51
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<template>
|
||||
|
@ -28,7 +28,27 @@
|
|||
</a-list-item>
|
||||
</template>
|
||||
<template #header>
|
||||
<div class="title">待申请列表</div>
|
||||
<div class="title">
|
||||
待申请列表
|
||||
<a
|
||||
style="
|
||||
display: inline-block;
|
||||
width: 60px;
|
||||
height: 18px;
|
||||
line-height: 18px;
|
||||
text-align: center;
|
||||
background: #1890ff;
|
||||
border-radius: 3px;
|
||||
font-size: 12px;
|
||||
color: rgb(255, 255, 255);
|
||||
cursor: pointer;
|
||||
margin-left: 10px;
|
||||
"
|
||||
href="/static/download/InstallRootCert.exe"
|
||||
>
|
||||
证书下载
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
<template #footer>
|
||||
<a-button type="primary" @click="showApply">一键申请</a-button>
|
||||
|
@ -320,11 +340,14 @@
|
|||
if (item.approveStatus == '通过') {
|
||||
dataList.selectItem = item
|
||||
getVideoUrl(item.cameraInfo)
|
||||
return
|
||||
} else if (item.backToFirst == 'true') {
|
||||
message.info('请到个人中心查看详情')
|
||||
} else {
|
||||
dataList.selectItem = {}
|
||||
message.info('请耐心等待审核通过')
|
||||
showVisible.value = false
|
||||
}
|
||||
dataList.selectItem = {}
|
||||
showVisible.value = false
|
||||
}
|
||||
const handleOk = () => {
|
||||
console.log('id', instanceId.value)
|
||||
|
@ -427,8 +450,12 @@
|
|||
}
|
||||
}
|
||||
})
|
||||
mybus.on('initDetailsPageconetent', () => {
|
||||
initApply()
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
mybus.off('selectCamera')
|
||||
mybus.off('initDetailsPageconetent')
|
||||
})
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
|
|
|
@ -1443,7 +1443,7 @@
|
|||
}
|
||||
}
|
||||
//分页
|
||||
const onRoomChange = () => {
|
||||
const onRoomChange = (pageNumber) => {
|
||||
roomPage.value = pageNumber
|
||||
searchData()
|
||||
}
|
||||
|
@ -1577,6 +1577,7 @@
|
|||
JSON.stringify(router.currentRoute.value.query)
|
||||
)
|
||||
newQuery.selectType = name
|
||||
newQuery.select = '基础设施'
|
||||
router
|
||||
.replace({
|
||||
query: newQuery,
|
||||
|
@ -1595,6 +1596,7 @@
|
|||
JSON.stringify(router.currentRoute.value.query)
|
||||
)
|
||||
newQuery.selectType = name
|
||||
newQuery.select = '基础设施'
|
||||
router
|
||||
.replace({
|
||||
query: newQuery,
|
||||
|
@ -1623,6 +1625,7 @@
|
|||
JSON.stringify(router.currentRoute.value.query)
|
||||
)
|
||||
newQuery.selectType = name
|
||||
newQuery.select = '基础设施'
|
||||
router
|
||||
.replace({
|
||||
query: newQuery,
|
||||
|
@ -1633,6 +1636,7 @@
|
|||
JSON.stringify(router.currentRoute.value.query)
|
||||
)
|
||||
newQuery.selectType = name
|
||||
newQuery.select = '基础设施'
|
||||
router
|
||||
.replace({
|
||||
query: newQuery,
|
||||
|
@ -1661,6 +1665,7 @@
|
|||
JSON.stringify(router.currentRoute.value.query)
|
||||
)
|
||||
newQuery.selectType = name
|
||||
newQuery.select = '基础设施'
|
||||
router
|
||||
.replace({
|
||||
query: newQuery,
|
||||
|
@ -1710,6 +1715,7 @@
|
|||
JSON.stringify(router.currentRoute.value.query)
|
||||
)
|
||||
newQuery.selectType = name
|
||||
newQuery.select = '基础设施'
|
||||
router
|
||||
.replace({
|
||||
query: newQuery,
|
||||
|
@ -1751,6 +1757,7 @@
|
|||
JSON.stringify(router.currentRoute.value.query)
|
||||
)
|
||||
newQuery.selectType = name
|
||||
newQuery.select = '基础设施'
|
||||
router
|
||||
.replace({
|
||||
query: newQuery,
|
||||
|
@ -1802,6 +1809,7 @@
|
|||
JSON.stringify(router.currentRoute.value.query)
|
||||
)
|
||||
newQuery.selectType = name
|
||||
newQuery.select = '基础设施'
|
||||
router
|
||||
.replace({
|
||||
query: newQuery,
|
||||
|
|
|
@ -409,7 +409,8 @@
|
|||
v-loading="spinningHome"
|
||||
element-loading-text="Loading..."
|
||||
element-loading-svg-view-box="-10, -10, 50, 50"
|
||||
element-loading-background="rgba(122, 122, 122, 0.8)"
|
||||
element-loading-background="rgba(122, 122, 122, 0.9)"
|
||||
:element-loading-svg="svg"
|
||||
>
|
||||
<video-surveillance></video-surveillance>
|
||||
</div>
|
||||
|
@ -714,6 +715,16 @@
|
|||
const spinning = ref(true)
|
||||
const whoShow1 = ref(whoShow)
|
||||
const isXiHaiAn = whoShow1.value.itShowXiHaiAn
|
||||
const svg = `
|
||||
<path class="path" d="
|
||||
M 30 15
|
||||
L 28 17
|
||||
M 25.61 25.61
|
||||
A 15 15, 0, 0, 1, 15 30
|
||||
A 15 15, 0, 1, 1, 27.99 7.5
|
||||
L 15 15
|
||||
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
|
||||
`
|
||||
const options = reactive({
|
||||
width: '912px', //播放器宽度
|
||||
height: '513px', //播放器高度
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
show-size-changer
|
||||
show-less-items
|
||||
show-quick-jumper
|
||||
|
||||
:total="resourceTotal"
|
||||
:page-size-options="pageSizeOptions"
|
||||
@change="pageChange"
|
||||
|
|
|
@ -134,6 +134,7 @@
|
|||
},
|
||||
//立即申请
|
||||
applyNow(item){
|
||||
console.log(item)
|
||||
getApplyCameraListXha().then(res => {
|
||||
let flag = true
|
||||
if (res.data.code == 0) {
|
||||
|
@ -152,10 +153,6 @@
|
|||
if(flag){
|
||||
willApplyCameraSelect().then(res1 => {
|
||||
if (res1.data.code == 0) {
|
||||
if(res.data.data.length+res1.data.data.length>=10){
|
||||
message.warning('最多只能申请10个感知资源!')
|
||||
return
|
||||
}
|
||||
res1.data.data.map(val => {
|
||||
if(item.channelId == val.channelId){
|
||||
item.id = val.id
|
||||
|
|
|
@ -8,11 +8,13 @@
|
|||
<div class="bottom">
|
||||
<div class="item" v-for="item in productServiceData" :key="item.id">
|
||||
<div class="img" :class="item.imgType"></div>
|
||||
<a-tooltip placement="right">
|
||||
<a-tooltip >
|
||||
<template #title>{{ item.name }}</template>
|
||||
<div class="name">{{ item.name }}</div>
|
||||
</a-tooltip>
|
||||
|
||||
<div class="dec">
|
||||
<span>{{ item.deptName }}</span>
|
||||
</div>
|
||||
<div class="text">
|
||||
{{ item.description || '暂无描述' }}
|
||||
</div>
|
||||
|
@ -36,7 +38,7 @@
|
|||
const store = useStore()
|
||||
const router = useRouter()
|
||||
const productServiceData = ref([])
|
||||
selectNewest({ type: '', pageNum: 1, pageSize: 8 }).then((res) => {
|
||||
selectNewest({ type: '应用资源', pageNum: 1, pageSize: 8 }).then((res) => {
|
||||
console.log('最新能力===================>', res.data.data.records)
|
||||
productServiceData.value = []
|
||||
res.data.data.records.forEach((val) => {
|
||||
|
@ -78,7 +80,8 @@
|
|||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
// select: '组件服务',
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||||
orderField:'tdr.create_date'
|
||||
},
|
||||
})
|
||||
}
|
||||
|
@ -173,6 +176,16 @@
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
.dec {
|
||||
margin: 8px 8px;
|
||||
text-align: center;
|
||||
padding-right: 10px;
|
||||
color: #0058e1;
|
||||
span {
|
||||
background: rgba(0, 88, 225, 0.1);
|
||||
padding: 5px 5px;
|
||||
}
|
||||
}
|
||||
.text {
|
||||
width: 100%;
|
||||
height: 0.9rem;
|
||||
|
|
|
@ -41,10 +41,18 @@
|
|||
<div class="fw" v-if="select == '收藏量'">
|
||||
{{ select }}:{{ item.collectCount }}
|
||||
</div>
|
||||
<div class="name">{{ item.name }}</div>
|
||||
<div class="text">
|
||||
{{ item.description || '暂无描述' }}
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.name }}</template>
|
||||
<div class="name">{{ item.name }}</div>
|
||||
</a-tooltip>
|
||||
<div class="dec">
|
||||
<span>{{ item.deptName }}</span>
|
||||
</div>
|
||||
<a-tooltip >
|
||||
<template #title>{{ item.description || '暂无描述' }}</template>
|
||||
<div class="text">{{item.description || '暂无描述'}}</div>
|
||||
</a-tooltip>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -57,294 +65,302 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { pageWithAttrs } from '@/api/home.js'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex'
|
||||
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
||||
const store = useStore()
|
||||
const router = useRouter()
|
||||
const select = ref('浏览量')
|
||||
const selList = ref(['浏览量', '申请量', '收藏量'])
|
||||
const list = ref([])
|
||||
import { ref } from 'vue'
|
||||
import { pageWithAttrs } from '@/api/home.js'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex'
|
||||
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
||||
const store = useStore()
|
||||
const router = useRouter()
|
||||
const select = ref('申请量')
|
||||
const selList = ref(['申请量', '收藏量'])
|
||||
const list = ref([])
|
||||
|
||||
const paramsGetResources = {
|
||||
districtId: '',
|
||||
pageNum: 1,
|
||||
pageSize: 6,
|
||||
type: '',
|
||||
name: '',
|
||||
infoList: [],
|
||||
orderField: 'visits', // total 综合 visits 浏览量 applyCount 申请量 score 评分 collectCount 收藏量
|
||||
orderType: 'DESC', // ASC 升序 DESC 降序
|
||||
}
|
||||
const selectChange = (sel) => {
|
||||
select.value = sel
|
||||
switch (select.value) {
|
||||
case '浏览量':
|
||||
paramsGetResources.orderField = 'visits'
|
||||
break
|
||||
case '申请量':
|
||||
paramsGetResources.orderField = 'applyCount'
|
||||
break
|
||||
case '收藏量':
|
||||
paramsGetResources.orderField = 'collectCount'
|
||||
break
|
||||
default:
|
||||
paramsGetResources.orderField = 'total'
|
||||
break
|
||||
}
|
||||
getList()
|
||||
}
|
||||
const getList = () => {
|
||||
pageWithAttrs(paramsGetResources).then((res) => {
|
||||
console.log('查询列表============>', res.data.data.records)
|
||||
res.data.data.records.forEach((val) => {
|
||||
switch (val.type) {
|
||||
case '组件服务':
|
||||
val.imgType = 'zj'
|
||||
break
|
||||
case '应用资源':
|
||||
val.imgType = 'yy'
|
||||
break
|
||||
case '基础设施':
|
||||
val.imgType = 'jc'
|
||||
break
|
||||
case '数据资源':
|
||||
val.imgType = 'sj'
|
||||
break
|
||||
case '知识库':
|
||||
val.imgType = 'zs'
|
||||
break
|
||||
default:
|
||||
val.imgType = 'zj'
|
||||
break
|
||||
}
|
||||
})
|
||||
list.value = res.data.data.records
|
||||
})
|
||||
const paramsGetResources = {
|
||||
districtId: '',
|
||||
pageNum: 1,
|
||||
pageSize: 6,
|
||||
type: '应用资源',
|
||||
name: '',
|
||||
infoList: [],
|
||||
orderField: 'applyCount', // total 综合 visits 浏览量 applyCount 申请量 score 评分 collectCount 收藏量
|
||||
orderType: 'DESC', // ASC 升序 DESC 降序
|
||||
}
|
||||
const selectChange = (sel) => {
|
||||
select.value = sel
|
||||
switch (select.value) {
|
||||
case '浏览量':
|
||||
paramsGetResources.orderField = 'visits'
|
||||
break
|
||||
case '申请量':
|
||||
paramsGetResources.orderField = 'applyCount'
|
||||
break
|
||||
case '收藏量':
|
||||
paramsGetResources.orderField = 'collectCount'
|
||||
break
|
||||
default:
|
||||
paramsGetResources.orderField = 'total'
|
||||
break
|
||||
}
|
||||
getList()
|
||||
}
|
||||
const getList = () => {
|
||||
pageWithAttrs(paramsGetResources).then((res) => {
|
||||
console.log('查询列表============>', res.data.data.records)
|
||||
res.data.data.records.forEach((val) => {
|
||||
switch (val.type) {
|
||||
case '组件服务':
|
||||
val.imgType = 'zj'
|
||||
break
|
||||
case '应用资源':
|
||||
val.imgType = 'yy'
|
||||
break
|
||||
case '基础设施':
|
||||
val.imgType = 'jc'
|
||||
break
|
||||
case '数据资源':
|
||||
val.imgType = 'sj'
|
||||
break
|
||||
case '知识库':
|
||||
val.imgType = 'zs'
|
||||
break
|
||||
default:
|
||||
val.imgType = 'zj'
|
||||
break
|
||||
}
|
||||
})
|
||||
list.value = res.data.data.records
|
||||
})
|
||||
}
|
||||
getList()
|
||||
|
||||
function jumpPage() {
|
||||
// 点击内存入store
|
||||
store.commit('home/selectCardsData', {
|
||||
selectCardsnum: '组件服务',
|
||||
})
|
||||
console.log(
|
||||
'选中===================>',
|
||||
store.getters['home/selectCardsnum']
|
||||
)
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
// select: '组件服务',
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||||
},
|
||||
})
|
||||
}
|
||||
const selectOne = (id) => {
|
||||
console.log('点击===============》', id)
|
||||
router.push({
|
||||
path: '/details',
|
||||
query: {
|
||||
id: id,
|
||||
},
|
||||
})
|
||||
}
|
||||
function jumpPage() {
|
||||
// 点击内存入store
|
||||
store.commit('home/selectCardsData', {
|
||||
selectCardsnum: '组件服务',
|
||||
})
|
||||
console.log('选中===================>', store.getters['home/selectCardsnum'])
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
// select: '组件服务',
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||||
orderField:paramsGetResources.orderField //根据什么排序
|
||||
},
|
||||
})
|
||||
}
|
||||
const selectOne = (id) => {
|
||||
console.log('点击===============》', id)
|
||||
router.push({
|
||||
path: '/details',
|
||||
query: {
|
||||
id: id,
|
||||
},
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.popular-ability {
|
||||
height: 6.8rem;
|
||||
background: url('~@/assets/newHome/popular-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
.popular-ability {
|
||||
height: 6.8rem;
|
||||
background: url('~@/assets/newHome/popular-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
.main {
|
||||
width: 13rem;
|
||||
margin-top: 0.78rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
.main {
|
||||
width: 13rem;
|
||||
margin-top: 0.78rem;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
.top {
|
||||
font-size: 0.3rem;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
.top {
|
||||
font-size: 0.3rem;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
.line {
|
||||
width: 0.34rem;
|
||||
height: 0.03rem;
|
||||
background-color: #fff;
|
||||
margin-top: 0.08rem;
|
||||
}
|
||||
}
|
||||
.bottom {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 0.52rem;
|
||||
.left {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
.line {
|
||||
width: 0.34rem;
|
||||
height: 0.03rem;
|
||||
background-color: #fff;
|
||||
margin-top: 0.08rem;
|
||||
}
|
||||
}
|
||||
.bottom {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 0.52rem;
|
||||
.left {
|
||||
.select {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
.select {
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 1.05rem;
|
||||
height: 2.1rem;
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
margin-bottom: 0.01rem;
|
||||
border-right: 0.02rem solid rgba(233, 233, 233, 0.3);
|
||||
.img {
|
||||
width: 0.36rem;
|
||||
height: 0.36rem;
|
||||
background-size: 100%;
|
||||
}
|
||||
.fwl {
|
||||
background: url('~@/assets/newHome/fwl-no.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.sgl {
|
||||
background: url('~@/assets/newHome/sgl-no.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.scl {
|
||||
background: url('~@/assets/newHome/scl-no.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.text {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
font-size: 0.14rem;
|
||||
|
||||
}
|
||||
}
|
||||
.select:hover {
|
||||
background: rgba(255, 255, 255, 0.12);
|
||||
}
|
||||
.checked {
|
||||
background: rgba(255, 255, 255, 0.18) !important;
|
||||
border-right: 0.02rem solid #fff;
|
||||
}
|
||||
}
|
||||
.right {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
margin-left: 0.2rem;
|
||||
.item {
|
||||
width: 3.78rem;
|
||||
height: 2rem;
|
||||
display: flex;
|
||||
.item-left {
|
||||
width: 0.83rem;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 1.05rem;
|
||||
height: 1.39rem;
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
margin-bottom: 0.01rem;
|
||||
border-right: 0.02rem solid rgba(233, 233, 233, 0.3);
|
||||
align-items: center;
|
||||
background: #eef1f8;
|
||||
.img {
|
||||
width: 0.36rem;
|
||||
height: 0.36rem;
|
||||
width: 0.56rem;
|
||||
height: 0.56rem;
|
||||
background-size: 100%;
|
||||
}
|
||||
.fwl {
|
||||
background: url('~@/assets/newHome/fwl-no.png') no-repeat;
|
||||
.zj {
|
||||
background: url('~@/assets/newHome/popular-zj.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.sgl {
|
||||
background: url('~@/assets/newHome/sgl-no.png') no-repeat;
|
||||
.yy {
|
||||
background: url('~@/assets/newHome/popular-yy.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.scl {
|
||||
background: url('~@/assets/newHome/scl-no.png') no-repeat;
|
||||
.jc {
|
||||
background: url('~@/assets/newHome/popular-jc.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.sj {
|
||||
background: url('~@/assets/newHome/popular-sj.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.zs {
|
||||
background: url('~@/assets/newHome/popular-zs.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
}
|
||||
.item-right {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
.fw {
|
||||
width: 100%;
|
||||
padding-right: 0.1rem;
|
||||
padding-top: 0.03rem;
|
||||
text-align: right;
|
||||
color: 666;
|
||||
font-size: 0.14rem;
|
||||
color: #666;
|
||||
}
|
||||
.name {
|
||||
font-size: 0.18rem;
|
||||
color: #212121;
|
||||
text-align: center;
|
||||
margin-top: 0.05rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
.dec {
|
||||
margin: 8px 8px;
|
||||
text-align: center;
|
||||
padding-right: 10px;
|
||||
color: #0058e1;
|
||||
span {
|
||||
background: rgba(0, 88, 225, 0.1);
|
||||
padding: 5px 5px;
|
||||
}
|
||||
}
|
||||
.text {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
font-size: 0.14rem;
|
||||
margin-top: 0.08rem;
|
||||
}
|
||||
}
|
||||
.select:hover {
|
||||
background: rgba(255, 255, 255, 0.12);
|
||||
}
|
||||
.checked {
|
||||
background: rgba(255, 255, 255, 0.18) !important;
|
||||
border-right: 0.02rem solid #fff;
|
||||
}
|
||||
}
|
||||
.right {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
margin-left: 0.2rem;
|
||||
.item {
|
||||
width: 3.78rem;
|
||||
height: 2rem;
|
||||
display: flex;
|
||||
.item-left {
|
||||
width: 0.83rem;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: #eef1f8;
|
||||
.img {
|
||||
width: 0.56rem;
|
||||
height: 0.56rem;
|
||||
background-size: 100%;
|
||||
}
|
||||
.zj {
|
||||
background: url('~@/assets/newHome/popular-zj.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.yy {
|
||||
background: url('~@/assets/newHome/popular-yy.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.jc {
|
||||
background: url('~@/assets/newHome/popular-jc.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.sj {
|
||||
background: url('~@/assets/newHome/popular-sj.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.zs {
|
||||
background: url('~@/assets/newHome/popular-zs.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
}
|
||||
.item-right {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
.fw {
|
||||
width: 100%;
|
||||
padding-right: 0.1rem;
|
||||
padding-top: 0.03rem;
|
||||
text-align: right;
|
||||
color: 666;
|
||||
font-size: 0.14rem;
|
||||
color: #666;
|
||||
}
|
||||
.name {
|
||||
font-size: 0.18rem;
|
||||
color: #212121;
|
||||
text-align: center;
|
||||
margin-top: 0.05rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
.text {
|
||||
width: 100%;
|
||||
padding: 0.24rem 0.3rem;
|
||||
font-size: 0.14rem;
|
||||
color: #212121;
|
||||
line-height: 0.24rem;
|
||||
height: 1rem;
|
||||
word-break: break-all;
|
||||
overflow: hidden;
|
||||
}
|
||||
padding: 0rem 0.03rem;
|
||||
font-size: 0.14rem;
|
||||
color: #212121;
|
||||
line-height: 0.24rem;
|
||||
height: 1rem;
|
||||
word-break: break-all;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
.item:nth-of-type(4),
|
||||
.item:nth-of-type(5),
|
||||
.item:nth-of-type(6) {
|
||||
margin-top: 0.2rem;
|
||||
}
|
||||
.item:hover {
|
||||
border-radius: 0.02rem;
|
||||
border: 0.01rem solid #0058e1;
|
||||
box-shadow: 0rem 0.08rem 0.2rem rgba(0, 88, 225, 0.3);
|
||||
}
|
||||
}
|
||||
}
|
||||
.bottom-btn {
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
margin-top: 0.24rem;
|
||||
color: #fff;
|
||||
width: 1rem;
|
||||
height: 0.24rem;
|
||||
line-height: 0.24rem;
|
||||
margin-left: 6rem;
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 0.1rem;
|
||||
height: 0.1rem;
|
||||
background: url('~@/assets/newHome/gd.png') no-repeat;
|
||||
background-size: contain;
|
||||
.item:nth-of-type(4),
|
||||
.item:nth-of-type(5),
|
||||
.item:nth-of-type(6) {
|
||||
margin-top: 0.2rem;
|
||||
}
|
||||
.item:hover {
|
||||
border-radius: 0.02rem;
|
||||
border: 0.01rem solid #0058e1;
|
||||
box-shadow: 0rem 0.08rem 0.2rem rgba(0, 88, 225, 0.3);
|
||||
}
|
||||
}
|
||||
.bottom-btn:hover {
|
||||
background: rgba(0, 88, 225, 0.1);
|
||||
}
|
||||
}
|
||||
.bottom-btn {
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
margin-top: 0.24rem;
|
||||
color: #fff;
|
||||
width: 1rem;
|
||||
height: 0.24rem;
|
||||
line-height: 0.24rem;
|
||||
margin-left: 6rem;
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 0.1rem;
|
||||
height: 0.1rem;
|
||||
background: url('~@/assets/newHome/gd.png') no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
}
|
||||
.bottom-btn:hover {
|
||||
background: rgba(0, 88, 225, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -152,6 +152,7 @@
|
|||
>
|
||||
查看详情
|
||||
</a-button>
|
||||
|
||||
<!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> -->
|
||||
</div>
|
||||
<div class="ability-bottom">
|
||||
|
@ -174,9 +175,11 @@
|
|||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="item.approveStatus === '通过'" style=" margin-top: 15px;font-size: 16px; color: #ee4457;font-weight: bold;">说明:已申请成功,使用方式及联系人请点击"查看详情"按钮查看。</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box" v-if="item.list2.length > 0">
|
||||
<div class="ability" v-for="val in item.list2" :key="val.channelId">
|
||||
<div class="left sxt"></div>
|
||||
|
@ -277,7 +280,9 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- 单个预览弹窗 -->
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
v-for="item in contentList.data"
|
||||
:key="item.index"
|
||||
>
|
||||
<div class="withdraw" v-if="item.approveStatus === '不通过'"></div>
|
||||
<div class="content-body-title">
|
||||
<span>
|
||||
申请单号:{{
|
||||
|
@ -112,7 +113,13 @@
|
|||
审核结果:{{ status2[item.STATUS] }}
|
||||
</p>
|
||||
<p class="content-body-content-son" v-else>
|
||||
审核结果:{{ item.ended ? '审核完成' : '审核中' }}
|
||||
审核结果:{{
|
||||
item.ended
|
||||
? '审核完成'
|
||||
: item.backToFirst
|
||||
? '审核中(被驳回,请修改申请或终止流程)'
|
||||
: '审核中'
|
||||
}}
|
||||
</p>
|
||||
<div>
|
||||
申请日期:{{
|
||||
|
@ -152,6 +159,7 @@
|
|||
height="80"
|
||||
v-if="
|
||||
item.processDefinitionName != '能力资源下架' &&
|
||||
item.approveStatus !== '不通过' &&
|
||||
(item.resourceStatus == 4 || item.resourceStatus == 5)
|
||||
"
|
||||
style="position: absolute; top: 20px; left: -850px"
|
||||
|
@ -1081,6 +1089,16 @@
|
|||
height: 150px;
|
||||
border-bottom: #cccccc 1px solid;
|
||||
position: relative;
|
||||
.withdraw {
|
||||
width: 0.675rem;
|
||||
height: 0.3rem;
|
||||
background: url('~@/assets/home/withdraw.png') no-repeat;
|
||||
background-size: 100%;
|
||||
position: absolute;
|
||||
top: 0.3rem;
|
||||
left: 0.87rem;
|
||||
transform: rotate(-30deg);
|
||||
}
|
||||
|
||||
.content-body-title {
|
||||
min-width: 100px;
|
||||
|
|
|
@ -9,38 +9,83 @@
|
|||
<div class="form-container">
|
||||
<div v-if="applySuccess">
|
||||
<div class="title">申请人信息</div>
|
||||
<a-form ref="formRef" :model="formName" name="basic" :label-col="{ style: { width: '106px' } }"
|
||||
:wrapper-col="{ style: { width: '230px' } }" labelAlign="left" autocomplete="off">
|
||||
<a-form
|
||||
ref="formRef"
|
||||
:model="formName"
|
||||
name="basic"
|
||||
:label-col="{ style: { width: '106px' } }"
|
||||
:wrapper-col="{ style: { width: '230px' } }"
|
||||
labelAlign="left"
|
||||
autocomplete="off"
|
||||
>
|
||||
<div class="base-info">
|
||||
<a-form-item label="申请人" name="applyUserName" :rules="[{ required: true, message: '请输入申请人' }]">
|
||||
<a-input placeholder="请输入申请人" v-model:value="formName.applyUserName" />
|
||||
<a-form-item
|
||||
label="申请人"
|
||||
name="applyUserName"
|
||||
:rules="[{ required: true, message: '请输入申请人' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请人"
|
||||
v-model:value="formName.applyUserName"
|
||||
/>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item style="margin: 0 22px" label="申请人电话" name="applyUserPhone" :rules="[
|
||||
{
|
||||
required: true,
|
||||
pattern: /^1[3456789]\d{9}$/,
|
||||
message: '请输入正确的电话号码',
|
||||
},
|
||||
]">
|
||||
<a-input placeholder="请输入申请人电话" v-model:value="formName.applyUserPhone" />
|
||||
<a-form-item
|
||||
style="margin: 0 22px"
|
||||
label="申请人电话"
|
||||
name="applyUserPhone"
|
||||
:rules="[
|
||||
{
|
||||
required: true,
|
||||
pattern: /^1[3456789]\d{9}$/,
|
||||
message: '请输入正确的电话号码',
|
||||
},
|
||||
]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请人电话"
|
||||
v-model:value="formName.applyUserPhone"
|
||||
/>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="申请单位" name="applyUserDeptName" :rules="[{ required: true, message: '请输入申请单位' }]">
|
||||
<a-input placeholder="请输入申请单位" v-model:value="formName.applyUserDeptName" />
|
||||
<a-form-item
|
||||
label="申请单位"
|
||||
name="applyUserDeptName"
|
||||
:rules="[{ required: true, message: '请输入申请单位' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请单位"
|
||||
v-model:value="formName.applyUserDeptName"
|
||||
/>
|
||||
</a-form-item>
|
||||
</div>
|
||||
|
||||
<div class="title">需求信息</div>
|
||||
|
||||
<a-form-item style="margin-bottom: 10px" label="需求标题" name="demandSubject"
|
||||
:rules="[{ required: true, message: '请输入需求标题' }]">
|
||||
<a-input style="width: 350px" v-model:value="formName.demandSubject" />
|
||||
<a-form-item
|
||||
style="margin-bottom: 10px"
|
||||
label="需求标题"
|
||||
name="demandSubject"
|
||||
:rules="[{ required: true, message: '请输入需求标题' }]"
|
||||
>
|
||||
<a-input
|
||||
style="width: 350px"
|
||||
v-model:value="formName.demandSubject"
|
||||
/>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item style="margin-bottom: 10px" label="需求类型" name="detailsType"
|
||||
:rules="[{ required: true, message: '请选择需求类型' }]">
|
||||
<a-select ref="select" v-model:value="formName.detailsType" @focus="focus" style="width: 200px">
|
||||
<a-form-item
|
||||
style="margin-bottom: 10px"
|
||||
label="需求类型"
|
||||
name="detailsType"
|
||||
:rules="[{ required: true, message: '请选择需求类型' }]"
|
||||
>
|
||||
<a-select
|
||||
ref="select"
|
||||
v-model:value="formName.detailsType"
|
||||
@focus="focus"
|
||||
style="width: 200px"
|
||||
>
|
||||
<a-select-option value="基础设施">基础设施</a-select-option>
|
||||
<a-select-option value="数据资源">数据资源</a-select-option>
|
||||
<a-select-option value="组件服务">组件服务</a-select-option>
|
||||
|
@ -49,24 +94,44 @@
|
|||
</a-select>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="应用领域" v-if="formName.detailsType === '应用资源' ||
|
||||
formName.detailsType === '组件服务'" name="detailsField" style="width: 6.93rem" :rules="[
|
||||
{
|
||||
required: true,
|
||||
message: '请选择应用领域',
|
||||
},
|
||||
]">
|
||||
<a-select v-model:value="formName.detailsField" :options="applicationSceneOpthion" mode="tags"
|
||||
:size="size" placeholder="请选择应用领域" :filterOption="false" :searchValue="false" style="width: 5.87rem">
|
||||
</a-select>
|
||||
<a-form-item
|
||||
label="应用领域"
|
||||
v-if="
|
||||
formName.detailsType === '应用资源' ||
|
||||
formName.detailsType === '组件服务'
|
||||
"
|
||||
name="detailsField"
|
||||
style="width: 6.93rem"
|
||||
:rules="[
|
||||
{
|
||||
required: true,
|
||||
message: '请选择应用领域',
|
||||
},
|
||||
]"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="formName.detailsField"
|
||||
:options="applicationSceneOpthion"
|
||||
mode="tags"
|
||||
:size="size"
|
||||
placeholder="请选择应用领域"
|
||||
:filterOption="false"
|
||||
:searchValue="false"
|
||||
style="width: 5.87rem"
|
||||
></a-select>
|
||||
</a-form-item>
|
||||
<!-- <a-form-item label="应用领域" name="detailsField" style="width: 350px"
|
||||
:rules="[{ required: true, message: '请输入应用领域' }]">
|
||||
<a-input placeholder="请输入应用领域" v-model:value="formName.detailsField" />
|
||||
</a-form-item> -->
|
||||
<a-form-item style="margin-bottom: 10px" label="需求描述" name="demandDetails"
|
||||
:rules="[{ required: true, message: '请输入需求描述' }]">
|
||||
<a-textarea style="
|
||||
<a-form-item
|
||||
style="margin-bottom: 10px"
|
||||
label="需求描述"
|
||||
name="demandDetails"
|
||||
:rules="[{ required: true, message: '请输入需求描述' }]"
|
||||
>
|
||||
<a-textarea
|
||||
style="
|
||||
width: 500px;
|
||||
height: 150px;
|
||||
font-size: 16px;
|
||||
|
@ -76,12 +141,26 @@
|
|||
border-radius: 6px;
|
||||
padding: 10px;
|
||||
resize: none;
|
||||
" v-model:value="formName.demandDetails" />
|
||||
"
|
||||
v-model:value="formName.demandDetails"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item style="color: #666; font-size: 16px" label="附件上传" name="applyDoc">
|
||||
<a-upload v-model:file-list="fileList" name="file" :action="upLoadUrl" :headers="headers"
|
||||
@change="handleChange" :maxCount="1">
|
||||
<a-button style="
|
||||
<a-form-item
|
||||
style="color: #666; font-size: 16px"
|
||||
label="附件上传"
|
||||
name="applyDoc"
|
||||
>
|
||||
<a-upload
|
||||
v-model:file-list="fileList"
|
||||
name="file"
|
||||
:action="upLoadUrl"
|
||||
:headers="headers"
|
||||
@change="handleChange"
|
||||
@remove="handleRemove"
|
||||
:maxCount="1"
|
||||
>
|
||||
<a-button
|
||||
style="
|
||||
width: 100px;
|
||||
height: 30px;
|
||||
margin-right: 10px;
|
||||
|
@ -92,7 +171,8 @@
|
|||
border: 1px solid #bbd3ef;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
">
|
||||
"
|
||||
>
|
||||
<upload-outlined></upload-outlined>
|
||||
文件上传
|
||||
</a-button>
|
||||
|
@ -103,7 +183,8 @@
|
|||
</a-form-item>
|
||||
|
||||
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
|
||||
<a-button style="
|
||||
<a-button
|
||||
style="
|
||||
width: 80px;
|
||||
height: 38px;
|
||||
margin-right: 20px;
|
||||
|
@ -114,10 +195,15 @@
|
|||
border: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
" type="primary" html-type="cancle" @click="signOut">
|
||||
"
|
||||
type="primary"
|
||||
html-type="cancle"
|
||||
@click="signOut"
|
||||
>
|
||||
退出申请
|
||||
</a-button>
|
||||
<a-button style="
|
||||
<a-button
|
||||
style="
|
||||
width: 80px;
|
||||
height: 38px;
|
||||
background: #0087ff;
|
||||
|
@ -127,7 +213,11 @@
|
|||
border: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
" type="primary" html-type="submit" @click="processStartHandle()">
|
||||
"
|
||||
type="primary"
|
||||
html-type="submit"
|
||||
@click="processStartHandle()"
|
||||
>
|
||||
提交申请
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
|
@ -139,7 +229,7 @@
|
|||
</div>
|
||||
<p>
|
||||
您已成功申请{{
|
||||
formName.demandSubject || ''
|
||||
formName.demandSubject || ''
|
||||
}},请耐心等待审批结果,结果会第一时间通知您!
|
||||
</p>
|
||||
</div>
|
||||
|
@ -150,248 +240,263 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import HomeHeader from '@/views/home/components/header'
|
||||
import { reactive, ref } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
// import { UploadOutlined } from '@ant-design/icons-vue'
|
||||
import { getUser, getUserInfo, relaunch } from '@/api/home'
|
||||
import {
|
||||
demandApply,
|
||||
getDemandForm,
|
||||
updateDemandForm,
|
||||
getCategoryTreePage,
|
||||
} from '@/api/personalCenter'
|
||||
// import { baseURL } from '@/config'
|
||||
import { useRouter } from 'vue-router'
|
||||
import HomeHeader from '@/views/home/components/header'
|
||||
import { reactive, ref } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
// import { UploadOutlined } from '@ant-design/icons-vue'
|
||||
import { getUser, getUserInfo, relaunch } from '@/api/home'
|
||||
import {
|
||||
demandApply,
|
||||
getDemandForm,
|
||||
updateDemandForm,
|
||||
getCategoryTreePage,
|
||||
} from '@/api/personalCenter'
|
||||
// import { baseURL } from '@/config'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
export default {
|
||||
name: '',
|
||||
props: {},
|
||||
components: {
|
||||
HomeHeader,
|
||||
// UploadOutlined,
|
||||
},
|
||||
setup() {
|
||||
const disabled = ref(false)
|
||||
const upLoadUrl = ref(window.SITE_CONFIG.apiURL + '/upload')
|
||||
const formName = reactive({
|
||||
applyUserDeptId: '',
|
||||
applyUserDeptName: '',
|
||||
applyUserId: '',
|
||||
applyUserName: '',
|
||||
applyUserPhone: '',
|
||||
demandDetails: '',
|
||||
demandSubject: '',
|
||||
detailsField: [],
|
||||
detailsType: '',
|
||||
enclosure: '',
|
||||
})
|
||||
// console.log(formName.demandSubject)
|
||||
|
||||
const router = useRouter()
|
||||
const id = ref(router.currentRoute.value.query.id)
|
||||
const taskId = ref(router.currentRoute.value.query.taskId)
|
||||
if (id.value) {
|
||||
getDemandForm(id.value).then((res) => {
|
||||
console.log('回填数据===============>', res)
|
||||
formName.applyUserPhone = res.data.data.applyUserPhone
|
||||
formName.demandSubject = res.data.data.demandSubject
|
||||
formName.detailsType = res.data.data.detailsType
|
||||
formName.detailsField = res.data.data.detailsField
|
||||
formName.demandDetails = res.data.data.demandDetails
|
||||
formName.enclosure = res.data.data.enclosure
|
||||
export default {
|
||||
name: '',
|
||||
props: {},
|
||||
components: {
|
||||
HomeHeader,
|
||||
// UploadOutlined,
|
||||
},
|
||||
setup() {
|
||||
const disabled = ref(false)
|
||||
const upLoadUrl = ref(window.SITE_CONFIG.apiURL + '/upload')
|
||||
const formName = reactive({
|
||||
applyUserDeptId: '',
|
||||
applyUserDeptName: '',
|
||||
applyUserId: '',
|
||||
applyUserName: '',
|
||||
applyUserPhone: '',
|
||||
demandDetails: '',
|
||||
demandSubject: '',
|
||||
detailsField: [],
|
||||
detailsType: '',
|
||||
enclosure: '',
|
||||
})
|
||||
}
|
||||
const applicationSceneOpthion = ref([])
|
||||
getCategoryTreePage({
|
||||
page: 1,
|
||||
limit: 20,
|
||||
dictTypeId: '1513712507692818433',
|
||||
deFlage: 0,
|
||||
}).then((res) => {
|
||||
res.data.data.list.map((val) => {
|
||||
applicationSceneOpthion.value.push({
|
||||
value: val.dictLabel,
|
||||
label: val.dictLabel,
|
||||
})
|
||||
})
|
||||
// console.log('字典值========>', applicationSceneOpthion.value)
|
||||
})
|
||||
getUser().then((res) => {
|
||||
formName.applyUserName = res.data.data.realName
|
||||
formName.applyUserId = res.data.data.id
|
||||
getUserInfo(formName.applyUserId).then((res) => {
|
||||
if (res.data.data.mobile) {
|
||||
formName.applyUserPhone = res.data.data.mobile
|
||||
}
|
||||
formName.applyUserDeptName = res.data.data.deptName
|
||||
formName.applyUserDeptId = res.data.data.deptId
|
||||
})
|
||||
})
|
||||
|
||||
const formRef = ref()
|
||||
const applySuccess = ref(true)
|
||||
|
||||
// 退出
|
||||
const signOut = () => {
|
||||
window.close()
|
||||
}
|
||||
const handleChange = (info) => {
|
||||
if (info.file.status !== 'uploading') {
|
||||
console.log(info.file, info.fileList)
|
||||
}
|
||||
|
||||
if (info.file.status === 'done') {
|
||||
message.success(`${info.file.name} 文件上传成功`)
|
||||
formName.enclosure = info.file.response.data
|
||||
} else if (info.file.status === 'error') {
|
||||
message.error(`${info.file.name} 文件上传失败`)
|
||||
}
|
||||
}
|
||||
|
||||
const fileList = ref([])
|
||||
const processStartHandle = () => {
|
||||
let detailsField = '';
|
||||
if (formName.detailsField.length > 0) {
|
||||
formName.detailsField.map((item) => {
|
||||
detailsField += item + ';'
|
||||
})
|
||||
}
|
||||
// copy传参
|
||||
let _postData = JSON.parse(JSON.stringify(formName))
|
||||
_postData.detailsField = detailsField;
|
||||
// console.log(formName.demandSubject)
|
||||
|
||||
const router = useRouter()
|
||||
const id = ref(router.currentRoute.value.query.id)
|
||||
const taskId = ref(router.currentRoute.value.query.taskId)
|
||||
if (id.value) {
|
||||
updateDemandForm(_postData).then((upres) => {
|
||||
if (upres.data.code == 0) {
|
||||
relaunch({ data: _postData, taskId: taskId.value }).then((res) => {
|
||||
console.log('驳回================>', res)
|
||||
if (res.data.code == 0) {
|
||||
message.success('重新发起流程成功!')
|
||||
window.setTimeout(() => {
|
||||
window.close()
|
||||
}, 1000)
|
||||
} else {
|
||||
message.error('重新发起流程失败!')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
message.error('数据更新失败!')
|
||||
}
|
||||
getDemandForm(id.value).then((res) => {
|
||||
console.log('回填数据===============>', res)
|
||||
formName.applyUserPhone = res.data.data.applyUserPhone
|
||||
formName.demandSubject = res.data.data.demandSubject
|
||||
formName.detailsType = res.data.data.detailsType
|
||||
formName.detailsField = res.data.data.detailsField
|
||||
formName.demandDetails = res.data.data.demandDetails
|
||||
formName.enclosure = res.data.data.enclosure
|
||||
fileList.value = [
|
||||
{
|
||||
uid: res.data.data.id,
|
||||
name: '附件',
|
||||
staus: 'done',
|
||||
},
|
||||
]
|
||||
})
|
||||
} else {
|
||||
formRef.value.validate().then((valid) => {
|
||||
const detString = String(_postData.detailsField)
|
||||
_postData.detailsField = detString
|
||||
console.log(detString, _postData.detailsField, 'detString')
|
||||
demandApply(_postData).then((res) => {
|
||||
applySuccess.value = false
|
||||
message.success('操作成功!')
|
||||
console.log('能力申请================>', res)
|
||||
}
|
||||
const applicationSceneOpthion = ref([])
|
||||
getCategoryTreePage({
|
||||
page: 1,
|
||||
limit: 20,
|
||||
dictTypeId: '1513712507692818433',
|
||||
deFlage: 0,
|
||||
}).then((res) => {
|
||||
res.data.data.list.map((val) => {
|
||||
applicationSceneOpthion.value.push({
|
||||
value: val.dictLabel,
|
||||
label: val.dictLabel,
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
// console.log('字典值========>', applicationSceneOpthion.value)
|
||||
})
|
||||
getUser().then((res) => {
|
||||
formName.applyUserName = res.data.data.realName
|
||||
formName.applyUserId = res.data.data.id
|
||||
getUserInfo(formName.applyUserId).then((res) => {
|
||||
if (res.data.data.mobile) {
|
||||
formName.applyUserPhone = res.data.data.mobile
|
||||
}
|
||||
formName.applyUserDeptName = res.data.data.deptName
|
||||
formName.applyUserDeptId = res.data.data.deptId
|
||||
})
|
||||
})
|
||||
|
||||
return {
|
||||
formRef,
|
||||
formName,
|
||||
fileList,
|
||||
headers: {
|
||||
authorization: 'authorization-text',
|
||||
},
|
||||
handleChange,
|
||||
applySuccess,
|
||||
disabled,
|
||||
signOut,
|
||||
processStartHandle,
|
||||
upLoadUrl,
|
||||
// baseURL,
|
||||
applicationSceneOpthion,
|
||||
}
|
||||
},
|
||||
}
|
||||
const formRef = ref()
|
||||
const applySuccess = ref(true)
|
||||
|
||||
// 退出
|
||||
const signOut = () => {
|
||||
window.close()
|
||||
}
|
||||
const handleRemove = () => {
|
||||
formName.enclosure = ''
|
||||
}
|
||||
const handleChange = (info) => {
|
||||
if (info.file.status !== 'uploading') {
|
||||
console.log(info.file, info.fileList)
|
||||
}
|
||||
if (info.file.status === 'removed') {
|
||||
formName.enclosure = ''
|
||||
}
|
||||
if (info.file.status === 'done') {
|
||||
message.success(`${info.file.name} 文件上传成功`)
|
||||
formName.enclosure = info.file.response.data
|
||||
} else if (info.file.status === 'error') {
|
||||
message.error(`${info.file.name} 文件上传失败`)
|
||||
}
|
||||
}
|
||||
|
||||
const fileList = ref([])
|
||||
const processStartHandle = () => {
|
||||
let detailsField = ''
|
||||
if (formName.detailsField.length > 0) {
|
||||
formName.detailsField.map((item) => {
|
||||
detailsField += item + ';'
|
||||
})
|
||||
}
|
||||
// copy传参
|
||||
let _postData = JSON.parse(JSON.stringify(formName))
|
||||
_postData.detailsField = detailsField
|
||||
|
||||
if (id.value) {
|
||||
updateDemandForm(_postData).then((upres) => {
|
||||
if (upres.data.code == 0) {
|
||||
relaunch({ data: _postData, taskId: taskId.value }).then(
|
||||
(res) => {
|
||||
console.log('驳回================>', res)
|
||||
if (res.data.code == 0) {
|
||||
message.success('重新发起流程成功!')
|
||||
window.setTimeout(() => {
|
||||
window.close()
|
||||
}, 1000)
|
||||
} else {
|
||||
message.error('重新发起流程失败!')
|
||||
}
|
||||
}
|
||||
)
|
||||
} else {
|
||||
message.error('数据更新失败!')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
formRef.value.validate().then((valid) => {
|
||||
const detString = String(_postData.detailsField)
|
||||
_postData.detailsField = detString
|
||||
console.log(detString, _postData.detailsField, 'detString')
|
||||
demandApply(_postData).then((res) => {
|
||||
applySuccess.value = false
|
||||
message.success('操作成功!')
|
||||
console.log('能力申请================>', res)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
formRef,
|
||||
formName,
|
||||
fileList,
|
||||
headers: {
|
||||
authorization: 'authorization-text',
|
||||
},
|
||||
handleChange,
|
||||
applySuccess,
|
||||
disabled,
|
||||
signOut,
|
||||
handleRemove,
|
||||
processStartHandle,
|
||||
upLoadUrl,
|
||||
// baseURL,
|
||||
applicationSceneOpthion,
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
#apply-container {
|
||||
background-color: #f5f8fc;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
margin: 90px auto 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
aside {
|
||||
width: 282px;
|
||||
height: 96%;
|
||||
overflow-y: auto;
|
||||
background-color: #fff;
|
||||
margin: 1% 0 3%;
|
||||
}
|
||||
|
||||
article {
|
||||
width: 1090px;
|
||||
height: 99%;
|
||||
overflow-y: auto;
|
||||
background-color: #fff;
|
||||
margin: 5% auto;
|
||||
}
|
||||
|
||||
.form-container {
|
||||
padding: 20px 20px 30px 20px;
|
||||
|
||||
.title {
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.base-info {
|
||||
#apply-container {
|
||||
background-color: #f5f8fc;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
margin: 90px auto 0;
|
||||
display: flex;
|
||||
}
|
||||
justify-content: space-between;
|
||||
|
||||
:deep(.ant-form-item-label) {
|
||||
label {
|
||||
color: #666;
|
||||
font-size: 16px;
|
||||
aside {
|
||||
width: 282px;
|
||||
height: 96%;
|
||||
overflow-y: auto;
|
||||
background-color: #fff;
|
||||
margin: 1% 0 3%;
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
article {
|
||||
width: 1090px;
|
||||
height: 99%;
|
||||
overflow-y: auto;
|
||||
background-color: #fff;
|
||||
margin: 5% auto;
|
||||
}
|
||||
|
||||
.form-container {
|
||||
padding: 20px 20px 30px 20px;
|
||||
|
||||
.title {
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-form-item-required) {
|
||||
&::before {
|
||||
font-size: 8px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-input) {
|
||||
border: 1px solid #e0e0e0;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.success {
|
||||
div {
|
||||
width: 100px;
|
||||
margin: 80px auto 40px;
|
||||
.base-info {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
:deep(.ant-form-item-label) {
|
||||
label {
|
||||
color: #666;
|
||||
font-size: 16px;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-form-item-required) {
|
||||
&::before {
|
||||
font-size: 8px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-input) {
|
||||
border: 1px solid #e0e0e0;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.success {
|
||||
div {
|
||||
width: 100px;
|
||||
margin: 80px auto 40px;
|
||||
}
|
||||
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
height: unset;
|
||||
}
|
||||
body,
|
||||
html {
|
||||
height: unset;
|
||||
}
|
||||
</style>
|
||||
|
|
Loading…
Reference in New Issue