Merge branch 'hi-ucs-dev' into release

This commit is contained in:
wuhongjian 2022-11-14 10:00:26 +08:00
commit adeaa3d2d7
32 changed files with 982 additions and 245 deletions

View File

@ -1,3 +1,10 @@
<!--
* @Author: hisense.wuhongjian
* @Date: 2022-06-14 09:30:22
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-11-11 11:06:48
* @Description: 告诉大家这是什么
-->
<template>
<transition name="el-fade-in-linear">
<router-view />

View File

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

View File

@ -73,7 +73,7 @@ export default {
// 西 v2 v3
children.total = returnLocationStr() == 'qingdao' ? Number(this.numObject.abilityprocess_v3) : Number(this.numObject.abilityprocess_v2)
daibanNum = Number(daibanNum) + Number(children.total)
} if (children.id == '1559376285703081986') { //
} if (children.id == '1559376285703081986') { //
children.total = Number(this.numObject.meetingroom_book)
daibanNum = Number(daibanNum) + Number(children.total)
} if (children.id == '1545292602084827138') { //
@ -88,7 +88,7 @@ export default {
} if (children.id == '1545313754106699777') { //
children.total = Number(this.numObject.comment_review)
daibanNum = Number(daibanNum) + Number(children.total)
} if (children.id == '1554294862931562498') { //
} if (children.id == '1554294862931562498') { //
children.total = 0
daibanNum = Number(daibanNum) + Number(children.total)
}

View File

@ -251,6 +251,7 @@ import qs from 'qs'
import { pinyin } from 'pinyin-pro'
import RelateApplication from './bsabilityai-relate-application.vue'
import putOnTheShelf from '@/views/modules/putOnTheShelf'
import Cookies from 'js-cookie'
export default {
mixins: [mixinViewModule],
data () {
@ -341,6 +342,15 @@ export default {
}
})
},
exportHandle () {
window.open(window.SITE_CONFIG.apiURL + '/resource/export?token=' + Cookies.get('ucsToken') + '&' + qs.stringify({
name: this.dataForm.name,
type: '组件服务',
orderField: 'pin_top',
orderType: 'DESC',
delFlag: 0
}))
},
noToppingCapacity (item) {
this.$http.put('/resource/cancel_pin_top/' + item.id).then(res => {
if (res.data.code == 0) {
@ -365,6 +375,7 @@ export default {
pageNum: 1,
pageSize: 10,
orderType: 'DESC',
orderField: 'pin_top',
infoList: [],
delFlag: 0,
type: '组件服务',
@ -519,6 +530,7 @@ export default {
pageNum: 1,
pageSize: 10,
orderType: 'DESC',
orderField: 'pin_top',
infoList: [],
delFlag: 0,
type: '组件服务',

View File

@ -227,6 +227,7 @@ import dictionaries from '@/utils/dictionaries'
import RelateApplication from './bsabilityai-relate-application.vue'
import qs from 'qs'
import { type } from 'os'
import Cookies from 'js-cookie'
import putOnTheShelf from '@/views/modules/putOnTheShelf'
export default {
@ -359,6 +360,15 @@ export default {
'_blank'
)
},
exportHandle () {
window.open(window.SITE_CONFIG.apiURL + '/resource/export?token=' + Cookies.get('ucsToken') + '&' + qs.stringify({
name: this.dataForm.name,
type: '应用资源',
orderField: 'pin_top',
orderType: 'DESC',
delFlag: 0
}))
},
findValue (list, type) {
const found = list.find((item) => item.attrType === type)
if (found) {

View File

@ -74,7 +74,8 @@
<!-- <span v-if="this.departmentId === 2 || this.departmentId === 4">资源名称</span> -->
<el-input v-model="resourceName" placeholder="请输入资源名称" clearable></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" style="display: flex;justify-content: end;margin-right: 40px;">
<!--操作按钮查询-->
<el-form-item>
<el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>

View File

@ -4,7 +4,7 @@
<el-input
v-model="roomNameA"
style="width: 160px"
placeholder="请输入会议室名称"
placeholder="请输入会客厅名称"
></el-input>
<el-select
v-model="value"
@ -39,7 +39,7 @@
>
</el-table-column>
<el-table-column
label="申请会议室"
label="申请会客厅"
prop="roomName"
header-align="center"
align="center"

View File

@ -2,7 +2,7 @@
<el-card shadow="never" class="roomBox">
<div>
<div slot="header" class="roomHeadSpan">
<span>议室管理</span>
<span>客厅管理</span>
<el-button
style="float: right; padding: 5px 5px"
type="primary"
@ -13,7 +13,7 @@
</div>
<el-table border style="width: 100%" :data="tableData">
<el-table-column
label="会议室名称"
label="会客厅名称"
prop="name"
header-align="center"
align="center"
@ -70,10 +70,10 @@
@close="outDialog"
:title="
flge === 'add'
? '会议室新增'
? '会客厅新增'
: flge === 'look'
? '会议室详情'
: '会议室修改'
? '会客厅详情'
: '会客厅修改'
"
:visible.sync="dialogFormVisible"
>
@ -88,7 +88,7 @@
<el-row>
<el-col :span="12">
<el-form-item
label="会议室名称"
label="会客厅名称"
prop="name"
:label-width="formLabelWidth"
>
@ -106,7 +106,7 @@
</el-col>
<el-col :span="12">
<el-form-item
label="会议室面积(m²)"
label="会客厅面积(m²)"
prop="area"
:label-width="formLabelWidth"
>
@ -143,7 +143,7 @@
</el-col>
<el-col>
<el-form-item
label="会议室图片"
label="会客厅图片"
prop="pic"
:label-width="formLabelWidth"
>
@ -241,11 +241,11 @@ export default {
fileList: [],
rules: {
name: [
{ required: true, message: '请输入会议室名称', trigger: 'blur' },
{ required: true, message: '请输入会客厅名称', trigger: 'blur' },
{ min: 1, trigger: 'blur' }
],
area: [
{ required: true, message: '请输入会议室面积', trigger: 'blur' }
{ required: true, message: '请输入会客厅面积', trigger: 'blur' }
// { min: 1, message: '', type: 'number', trigger: 'blur' }
],
description: [
@ -381,7 +381,7 @@ export default {
},
//
taskDelete (row) {
this.$confirm('此操作将永久删除该会议室, 是否继续?', '提示', {
this.$confirm('此操作将永久删除该会客厅, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'

View File

@ -11,12 +11,12 @@
<el-form-item>
<ren-select v-model="dataForm.gender" dict-type="gender" :placeholder="$t('user.gender')"></ren-select>
</el-form-item>
<el-form-item>
<!-- <el-form-item>
<el-select v-model="dataForm.postId" :placeholder="$t('user.postIdList')" clearable>
<el-option :label="data.postName" v-for="data in postList" :key="data.id" :value="data.id">{{ data.postName
}}</el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item>
<ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :query="true" ref="renDeptTree">
</ren-dept-tree>

View File

@ -115,7 +115,7 @@ export default {
this.getCaptcha()
return this.$message.error(res.msg)
}
Cookies.set('ucsToken', res.data.token)
Cookies.set('ucsToken', res.data.token, { expires: 'session' })
this.$router.replace({ path: '/home' })
}).catch(() => {})
})

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-11-09 17:06:33
* @LastEditTime: 2022-11-14 10:00:17
* @Description: 系统静态参数配置
*/
var _global = {}

View File

@ -454,7 +454,7 @@ export function getDevelopDocTree(params) {
})
}
//
//
export function getRoomSearch(params) {
return request({
url: '/bookMeeting/list',

View File

@ -7,6 +7,34 @@ export function getMyProcessInstancePage(params) {
params,
})
}
export function getResourceBusinessList(params) {
return request({
url: 'resource/getResourceBusinessList',
method: 'post',
params,
})
}
export function getVideoBusinessList(params) {
return request({
url: 'resource/getVideoBusinessList',
method: 'post',
params,
})
}
export function yaweiApproveStatus(params) {
return request({
url: 'resource/ZywMessage/yaweiApproveStatus',
method: 'get',
params,
})
}
export function yaweiApproveDetails(params) {
return request({
url: 'resource/ZywMessage/yaweiApproveDetails',
method: 'get',
params,
})
}
export function getTabilityapplication(params) {
return request({
url: '/processForm/tabilityapplication/my_page',

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

View File

@ -8,6 +8,7 @@
<template>
<div class="box">
<div class="header">能力上架申请</div>
<div class="top">
<div
v-for="(nav, index) in navList"

View File

@ -1386,7 +1386,6 @@
background: url(~@/assets/home/sf_del.png) no-repeat;
margin-right: 0.05rem;
}
div {
cursor: pointer;
}

View File

@ -763,7 +763,7 @@
next()
},
setup() {
//6
//6
const flag = ref('')
let componentTypeArray = ['组件类型', '应用领域']
const handleAdd = (value) => {
@ -1169,28 +1169,43 @@
str = searchValue.value.substring(0, 2)
r = re.test(str)
}
if (
(searchValue.value.length > 1 && r) ||
paramsGetResources.type === '基础设施'
) {
if (searchValue.value.length > 1 && r) {
flag = false
} else {
flag = true
}
getCountByFuzzyQuery(searchValue.value || '', flag).then((res) => {
console.log('全局搜索==========》', res.data.data)
const arr = []
const sortArr = [
'应用资源',
'组件服务',
'基础设施',
'数据资源',
'知识库',
]
globalData.data = res.data.data
let mapFlag = true
res.data.data.map((val) => {
if (mapFlag && val.count != 0) {
if (val.count != 0) {
mapFlag = false
if (Cardsname.value === val.type) {
getAppResources2()
} else {
changeCards(val.type)
}
arr.push(val.type)
}
})
arr.sort((a, b) => {
return sortArr.indexOf(a) - sortArr.indexOf(b)
})
console.log('arr', arr, Cardsname.value)
// if (Cardsname.value === arr[0]) {
// getAppResources2()
// } else {
// changeCards(arr[0])
// }
if (arr[0]) {
changeCards(arr[0])
} else {
changeCards('应用资源')
}
if (!mapFlag) {
return
}
@ -1287,10 +1302,7 @@
str = searchValue.value.substring(0, 2)
r = re.test(str)
}
if (
(searchValue.value.length > 1 && r) ||
paramsGetResources.type === '基础设施'
) {
if (searchValue.value.length > 1 && r) {
paramsGetResources.nonChinese = false
paramsGetResources.name = searchValue.value
paramsGetResources.type = Cardsname.value
@ -1772,6 +1784,7 @@
Cardsname.value = name
newQuery.select = Cardsname.value
newQuery.type = ''
newQuery.zwy = ''
router
.replace({
query: newQuery,

View File

@ -35,7 +35,7 @@
@click="roomResults"
:class="roomYuyue ? 'roomBackground' : 'nullBackground'"
>
议室预约
客厅预约
</div>
<div
class="leftBottom"
@ -46,7 +46,7 @@
</div>
</div>
<div class="roomSearch">
<span>议室搜索</span>
<span>客厅搜索</span>
<div class="searchInput">
<a-input-search
v-model:value="roomInput"
@ -65,7 +65,7 @@
</div>
<div v-if="roomYuyue">
<div class="roomTableList">
<span>议室列表</span>
<span>客厅列表</span>
<div class="roomTime">
<span>可用时间查询</span>
<a-space direction="vertical" class="roomSpace">
@ -251,7 +251,7 @@
</a-modal>
<a-modal
v-model:visible="appointmentRoom"
title="会议室预约"
title="会客厅预约"
width="10rem"
@ok="handleOk"
:body-style="bodystyle"
@ -289,7 +289,7 @@
>
<div class="imgJinggao"></div>
<span style="color: #da2a13; font-size: 0.12rem">
当日会议室可用时段{{ roomDateList[0] }}
当日会客厅可用时段{{ roomDateList[0] }}
</span>
</div>
</a-col>
@ -922,7 +922,7 @@
showSizeChanger: true,
pageSizeOptions: ['10', '30', '50', '100', '1000'], //
})
//=======
//=======
const paginationRoom = ref({
total: 0,
current: 1,
@ -1024,6 +1024,7 @@
}
//
let formPage = router.currentRoute.value.query.formPage || ''
let zwy = router.currentRoute.value.query.zwy || ''
// --
let facilitiesType = router.currentRoute.value.query.facilitiesType || ''
onMounted(() => {
@ -1053,11 +1054,16 @@
roomYuyue.value = false
roomResult.value = true
onSearch()
} else {
//
if (zwy) {
tabClick(0, '政务云资源')
} else {
tabClick(0, '城市云脑会客厅')
}
}
}
}
mybus.off('getListByParentId')
mybus.on('getListByParentId', (parentId) => {
@ -1217,7 +1223,7 @@
}
init()
//
//
const result = () => {
roomYuyue.value = false
roomResult.value = true
@ -1348,7 +1354,7 @@
return seconds
}
}
// ----
// ----
//
const disabledTimeHours = () => {
if (formState.endTime) {
@ -1457,7 +1463,7 @@
const handleChange = (i) => {
let query = {
date: i, //riqi
roomId: dateId.value, //
roomId: dateId.value, //
}
getDate(query).then(({ data: res }) => {
roomDateList.value = res.data
@ -1466,7 +1472,7 @@
const columnsRomm = [
{
title: '会议室名称',
title: '会客厅名称',
dataIndex: 'roomName',
align: 'center',
},
@ -1530,13 +1536,13 @@
console.log('error', err)
})
}
//
//
const searchData = () => {
let query = {
bookDate: roomCerateDate.value, //
startTime: roomCreateTime.value, //
endTime: roomEndTime.value, //
name: roomInput.value, //
name: roomInput.value, //
page: roomPage.value, //
limit: roomLimit.value, //
}

View File

@ -187,8 +187,8 @@ let typeObj = {
7: '需求后台',
8: '评论前台',
9: '评论后台',
10: '会议室前台',
11: '会议室后台',
10: '会客厅前台',
11: '会客厅后台',
12: '其他'
}
@ -214,7 +214,7 @@ let pageObj = {
0: 'myAgent-CommentModeration',
1: 'hasToDoTasks-CommentModeration',
},
'会议室后台': {
'会客厅后台': {
0: 'activiti-RoomExamineAdmin',
1: 'activiti-RoomExamineAdmin',
},
@ -227,10 +227,10 @@ const tabTypeObj = {
'下架前台': '能力下架',
'需求前台': '需求评论',
'评论前台': '需求评论',
'会议室前台': '会议室前台'
'会客厅前台': '会客厅前台'
}
//
//
const goPage = (item) => {
if (item.jumpUrl && item.type !== 12) {
let typeText = typeObj[item.type];
@ -259,7 +259,7 @@ const goPage = (item) => {
// let _page = pageObj[typeText][_applyState]
// window.open(window.SITE_CONFIG.backUrl + `/#/${_page}`)
// } else if (typeText.indexOf('') !== -1) {
// if (typeText == '') {
// if (typeText == '') {
// router.push({
// path: '/DetailsPageconetent',
// query: {

View File

@ -53,6 +53,9 @@
let dataList = ref([])
const getList = () => {
selectRecommend().then((res) => {
if (res.data.data.records.length > 9) {
res.data.data.records.length = 9
}
dataList.value = res.data.data.records
dataList.value.map((item, index) => {
// debugger
@ -95,7 +98,7 @@
router.push({
path: '/DetailsPageconetent',
query: {
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
},
})
}

View File

@ -1,57 +1,5 @@
<template>
<div class="work-dynamics">
<!-- <div class="title">
<div>工作动态</div>
<div class="title-son"></div>
</div>
<div class="content" v-if="dataList && dataList.length > 0">
<div v-for="(item, index) in dataList" :key="item">
<div class="content-one" v-if="index % 2 == 0">
<div class="one">
<a-image
style="text-align: center"
alt="暂无图片"
:src="item.imageUrl"
:fallback="imgSrc"
/>
</div>
<div class="content-miaoshui">
<div class="content-miaoshui-title">{{ item.title }}</div>
<div class="content-miaoshui-content">
{{ item.content }}
</div>
<div class="shijain">
<div>{{ item.createDate }}发布</div>
<div class="shijain-content-bootom" @click="selectOne(item.id)">
查看详情
</div>
</div>
</div>
</div>
<div class="content-one" v-else>
<div class="content-miaoshui">
<div class="content-miaoshui-title">{{ item.title }}</div>
<div class="content-miaoshui-content">
{{ item.content }}
</div>
</div>
<div class="one">
<a-image alt="暂无图片" :src="item.imageUrl" :fallback="imgSrc" />
<div class="shijain">
<div>{{ item.createDate }}发布</div>
<div class="shijain-content-bootom" @click="selectOne(item.id)">
查看详情
</div>
</div>
</div>
</div>
</div>
</div>
<a-empty v-else></a-empty>
<div class="bottom" @click="jumpPage()">
查看更多
<span class="gengduo"></span>
</div> -->
<div class="fixedmount">
<div @click="applyResource()">
<p></p>
@ -65,14 +13,9 @@
<p></p>
<p>能力上架</p>
<!-- <a-button type="primary" >Open Modal</a-button> -->
<a-modal
v-model:visible="visible"
@ok="handleOk"
class="shangjia-class"
@cancel="handlecancel"
>
<a-modal v-model:visible="visible" class="shangjia-class">
<div class="ant-modal-title" id="vcDialogTitle1">
<div class="showBg"></div>
<!-- <div class="showBg"></div> -->
能力上架申请
</div>
<div class="ability-to-type">
@ -92,62 +35,31 @@
</div>
</div>
</div>
<div
class="component-type"
class="ability-to-type"
v-if="abilityToTypeFunctionData == '组件服务'"
>
<div class="title">组件类型选择</div>
<div class="component-type-content">
<!-- <a-checkbox-group
v-model:value="value1"
name="checkboxgroup"
:options="componentType"
/> -->
<a-radio-group v-model:value="componentTypeValue">
<a-radio
@click="componentTypeValueFunction(item)"
v-for="item in componentType"
:key="item"
:value="item"
>
{{ item }}
</a-radio>
</a-radio-group>
</div>
</div>
</a-modal>
</div>
<!-- <div @click="showAbilitySquare">
<p></p>
<p>能力广场</p>
<a-modal
v-model:visible="visibleAbilitySquare"
@ok="handleOkAbilitySquare"
class="shangjia-class"
@cancel="handlecancelAbilitySquare"
>
<div class="ant-modal-title" id="vcDialogTitle1">
<div class="showBg"></div>
能力广场目录
</div>
<div class="ability-to-type">
<div class="ability-to-type-content">
<div
v-for="item in abilitySquare"
v-for="item in componentType"
:key="item"
@click="abilitySquareFunction(item)"
@click="componentTypeValueFunction(item)"
:class="
abilitySquareFunctionData == item
? 'ability-to-type-down'
: ''
componentTypeValue == item ? 'ability-to-type-down' : ''
"
>
{{ item }}
</div>
</div>
</div>
<template v-slot:footer>
<a-button class="shenqing" @click="handleOk">申请</a-button>
<a-button class="quxiao" @click="handlecancel">取消</a-button>
</template>
</a-modal>
</div> -->
</div>
</div>
</div>
</template>
@ -176,6 +88,7 @@
function abilityToTypeFunction(item) {
abilityToTypeFunctionData.value = item
}
let abilityToType = ref(['组件服务', '应用资源'])
let abilitySquare = ref(['智能算法', '图层服务', '应用资源'])
let componentType = ref([
@ -197,6 +110,7 @@
}
let componentTypeValueOld = ref('')
function componentTypeValueFunction(item) {
componentTypeValue.value = item
if (componentTypeValueOld.value != item) {
componentTypeValue.value = item
componentTypeValueOld.value = item
@ -321,6 +235,7 @@
path: '/DetailsPageconetent',
query: {
select: '基础设施',
zwy: true,
},
})
}
@ -334,7 +249,32 @@
margin-top: -1.44rem;
font-size: 0.14rem;
font-weight: 500;
.ant-modal-footer {
border: 0;
text-align: center;
margin-top: 24px;
padding-bottom: 24px;
.shenqing {
background: #0058e1;
color: #ffffff;
width: 90px;
height: 32px;
border-radius: 2px;
border: 1px #0058e1 solid;
}
.quxiao {
width: 90px;
height: 32px;
background: #ffffff;
color: #0058e1;
border-radius: 2px;
border: 1px #0058e1 solid;
}
}
.ant-modal-body {
padding: 0px !important;
}
.ant-radio-inner {
height: 0.16rem;
width: 0.16rem;
@ -346,17 +286,21 @@
background-position: center;
}
.ant-modal-content {
border-radius: 0.1rem;
border-radius: 2px;
border: 1px #e6e9ed solid;
width: 690px;
box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.5);
.ability-to-type,
.component-type {
display: flex;
margin-top: 0.2rem;
margin-top: 24px;
margin-left: 24px;
.title {
white-space: nowrap;
margin-right: 0.2rem;
display: flex;
align-items: center;
height: 0.26rem;
font-size: 16px;
}
.component-type-content {
width: 100%;
@ -365,7 +309,7 @@
background: unset;
.ant-radio-group {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-columns: auto auto auto auto;
grid-gap: 0.15rem;
}
}
@ -374,20 +318,26 @@
.ability-to-type {
.ability-to-type-content {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-columns: auto auto auto auto;
height: unset;
border: unset;
background: unset;
margin-left: 20px;
div {
margin-right: 0.15rem;
&:hover {
background: #0058e1;
cursor: pointer;
font-size: 0.14rem;
width: 0.9rem;
height: 0.26rem;
border-radius: 0.13rem;
color: #333333;
background: #f5f5f5;
border: 0.01rem #cccccc solid;
color: #ffffff;
}
margin-right: 16px;
cursor: pointer;
font-size: 16px;
width: 90px;
height: 32px;
border-radius: 2px;
color: #0058e1;
background: #ffffff;
border: 1px #0058e1 solid;
display: flex;
justify-content: center;
align-items: center;
@ -395,7 +345,7 @@
}
.ability-to-type-down {
background: #0087ff;
background: #0058e1;
color: #fff;
}
}
@ -405,15 +355,25 @@
.ant-modal-title {
display: flex;
align-items: center;
display: flex;
align-items: center;
margin: 0px 24px;
padding-top: 24px;
padding-bottom: 22px;
color: #212121;
font-weight: bold;
font-size: 20px;
border-bottom: 2px solid #ebeced;
}
.ant-modal-footer {
border: 0;
text-align: center;
padding-bottom: 0.2rem;
margin-top: 50px;
button {
margin-right: 0.2rem;
border-radius: 0.08rem;
margin-right: 12px;
border-radius: 2px;
}
}

View File

@ -18,12 +18,31 @@
></OffTheShelf>
<Demand :refObj="refObj" v-else-if="showType === '能力需求'"></Demand>
<Comment :refObj="refObj" v-else-if="showType === '需求评论'"></Comment>
<dataResourceApplication
:refObj="refObj"
v-else-if="showType === '数据资源申请'"
></dataResourceApplication>
<cloudResources
:refObj="refObj"
v-else-if="showType === '云资源'"
></cloudResources>
<OtherApplications :refObj="refObj" v-else></OtherApplications>
<div>
<div v-if="showType !== '云资源'">
<div class="title">审批详情</div>
<template v-for="item in dataSource.data" :key="item">
<div class="oddNumbers">子单号:{{ item[0] }}</div>
<a-table :dataSource="item[1]" :columns="columns">
<a-table
:dataSource="item[1]"
:columns="dataSourceColumns"
v-if="showType === '数据资源申请'"
>
<template #bodyCell="{ column, text }">
<template v-if="column.dataIndex === 'name'">
<a>{{ text }}</a>
</template>
</template>
</a-table>
<a-table :dataSource="item[1]" :columns="columns" v-else>
<template #bodyCell="{ column, text }">
<template v-if="column.dataIndex === 'name'">
<a>{{ text }}</a>
@ -40,6 +59,8 @@
import OffTheShelf from './OffTheShelf.vue'
import Demand from './Demand.vue'
import Comment from './Comment.vue'
import dataResourceApplication from './dataResourceApplication.vue'
import cloudResources from './cloudResources.vue'
import DeviceApplyDetail from './DeviceApplyDetail.vue'
import OtherApplications from '@/views/personalCenter/components/OtherApplications '
import { onMounted, reactive, defineProps, ref } from 'vue'
@ -159,6 +180,32 @@
width: '180px',
},
]
const dataSourceColumns = [
{
title: '操作',
dataIndex: 'cz',
key: 'cz',
width: '180px',
},
{
title: '处理用户',
dataIndex: 'czyh',
key: 'czyh',
width: '180px',
},
{
title: '处理时间',
dataIndex: 'clsj',
key: 'clsj',
width: '180px',
},
{
title: '备注',
dataIndex: 'remark',
key: 'remark',
width: '180px',
},
]
const getInfo = () => {
console.log(props.processInstanceId, '============================')
if (props.processDefinitionName == '能力申请') {

View File

@ -12,7 +12,10 @@
{{ item }}
</div>
</div>
<div class="tab">
<div
class="tab"
v-show="typeIndex != 5 && typeIndex != 6 && typeIndex != 7"
>
<span>申请状态</span>
<div
:class="tabIndex == index ? 'tabclass' : ' '"
@ -31,6 +34,24 @@
</template>
</div>
</div>
<a-form
:model="formState"
name="basic"
:label-col="{ span: 8 }"
:wrapper-col="{ span: 16 }"
autocomplete="off"
@submit="onSubmit"
v-if="typeIndex == 6 || typeIndex == 7"
style="display: flex; margin-top: 10px; margin-left: -35px"
>
<a-form-item label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
<a-button type="primary" html-type="submit">搜索</a-button>
</a-form-item>
</a-form>
<div v-if="contentList.data.length > 0">
<div class="content">
<div
@ -39,32 +60,71 @@
:key="item.index"
>
<div class="content-body-title">
<span>申请单号{{ item.applyNumber || '--' }}</span>
<span>
申请单号{{
item.applyNumber || item.GUID || item.BSNUM || '--'
}}
</span>
<div></div>
</div>
<a-tooltip>
<template #title>
{{ item.cameraList ? item.system : (item.title|| item.name) }}
{{
item.cameraList
? item.system
: item.title || item.name || item.title || item.BUSINESS_NAME
}}
</template>
<div class="content-body-title">
<span>
名称{{
item.cameraList ? item.system : (item.title || item.name)
item.cameraList
? item.system
: item.title ||
item.name ||
item.title ||
item.BUSINESS_NAME
}}
</span>
<div></div>
</div>
</a-tooltip>
<div class="content-body-content">
<p class="content-body-content-son" v-if="typeName !== '设备申请'">
审核结果{{ item.ended ? '审核完成' : '审核中' }}
</p>
<p class="content-body-content-son" v-else>
<p class="content-body-content-son" v-if="typeName == '设备申请'">
审核结果{{ item.state === 0 ? '审核中' : '审核完成' }}
</p>
<p
class="content-body-content-son"
v-else-if="typeName == '数据资源申请'"
>
审核结果{{ item.bmyijian === 0 ? '审核中' : '审核完成' }}
</p>
<p
class="content-body-content-son"
v-else-if="typeName == '云资源申请'"
>
审核结果{{ status[item.STATUS] }}
</p>
<p
class="content-body-content-son"
v-else-if="typeName == '云视频申请'"
>
审核结果{{ status2[item.STATUS] }}
</p>
<p class="content-body-content-son" v-else>
审核结果{{ item.ended ? '审核完成' : '审核中' }}
</p>
<div>
申请日期{{
item.createDate ||
item.startTime ||
item.tbsj ||
(item.CREATE_TIME &&
moment(item.CREATE_TIME.time + 480 * 60 * 1000).format(
'YYYY-MM-DD HH:mm:ss'
))
}}
</div>
<div class="content-body-bottom">
<div>申请日期{{ item.createDate || item.startTime }}</div>
<!-- 西海岸--增加过期时间显示 -->
<div v-if="isXiHaiAn">过期时间{{ item.expireDate || '' }}</div>
</div>
@ -219,6 +279,10 @@
demandComment,
deviceApplylist,
getDeviceDetail,
yaweiApproveStatus,
yaweiApproveDetails,
getResourceBusinessList,
getVideoBusinessList,
} from '@/api/personalCenter'
import {
updateRes,
@ -228,6 +292,7 @@
selectOneDel,
} from '@/api/home'
import { useRouter } from 'vue-router'
import { getUserInfo } from '@/api/user'
import { message } from 'ant-design-vue'
import ApplyDetails from '@/views/personalCenter/components/ApplyDetails'
import mybus from '@/myplugins/mybus'
@ -237,14 +302,22 @@
tabTypeName: { type: String, default: '' },
})
const router = useRouter()
const userName = ref('')
getUserInfo().then((res) => {
userName.value = res.data.data.username
})
let typeList = ref([
'能力申请',
'能力上架',
'能力下架',
'能力需求',
'需求评论',
'数据资源申请',
'云资源申请',
'云视频申请',
// '',
])
const formState = ref({ name: '' })
// 西-
let isXiHaiAn = whoShow.itShowXiHaiAn
const itShowXiHaiAn = ref(isXiHaiAn)
@ -253,13 +326,14 @@
typeList.value.push('设备申请')
}
const typeStrObj = {
'能力上架': 'resourcemountapply',
'能力下架': 'resourcundercarriageapply',
'能力需求': 'abilitydemandapply',
'需求评论': 'comment_review',
能力上架: 'resourcemountapply',
能力下架: 'resourcundercarriageapply',
能力需求: 'abilitydemandapply',
需求评论: 'comment_review',
}
let tabList = ref(['全部', '审核中', '审核完成'])
const contentList = reactive({ data: [] })
const contentList2 = reactive({ data: [] }) // 使
let tabIndex = ref(0)
let typeIndex = ref(0)
let typeName = ref(typeList.value[0])
@ -302,6 +376,8 @@
//
const changeType = (item, index) => {
contentList.data = []
formState.value.name = ''
console.log('item, index-----选择类型------->', item, index)
numFlag.value = true
num.value = []
@ -310,7 +386,7 @@
ended.value = ''
page.value = 1
typeIndex.value = index
typeName.value = item;
typeName.value = item
getApplyList()
}
@ -336,6 +412,45 @@
}
}
const applytype = {
'01': '新增',
'02': '变更',
'03': '停用',
'04': '核减',
}
const sourcetype = {
'01': '云主机',
'02': '云数据库',
'03': '对象存储',
'04': '堡垒机',
'05': '备份服务',
'06': '防火墙',
'07': '网闸',
'08': '负载均衡',
'09': '公网ip',
10: '托管服务',
11: '大数据服务',
}
const status = {
'00': '草稿',
'01': '提交',
'03': '一级部门提交',
'04': '驳回',
'05': '审核通过',
'06': '交付',
'07': '作废',
99: '终止办结',
}
const status2 = {
'00': '草稿',
'01': '提交',
'02': '大数据局审核通过',
'04': '大数据局驳回',
'03': '提交给视频所属部门',
'08': '视频所属部门审核中',
'05': '视频所属部门已审核',
'06': '交付',
}
const cilckRowData = ref({})
const showDetail = (item) => {
cilckRowData.value = item
@ -361,6 +476,59 @@
message.error('数据请求失败!')
}
})
} else if (typeName.value == '数据资源申请') {
yaweiApproveDetails({ applyGuid: item.GUID })
.then((res) => {
console.log('详情===========>', res.data.data)
res.data.data.map((val) => {
val.clsj = moment(val.clsj).format('YYYY-MM-DD HH:mm:ss')
})
refObj.value.description = '数据资源'
refObj.value.sqbm = item.sqbm //
refObj.value.title = item.title //
refObj.value.ywlxr = item.ywlxr //
refObj.value.ywlxrdh = item.ywlxrdh //
refObj.value.jslxr = item.jslxr //
refObj.value.jslxrdh = item.jslxrdh //
refObj.value.miaoshu = item.miaoshu //
refObj.value.zt = item.zt //
refObj.value.resourceApplication = {
dataSource: [
{
instanceId: item.GUID,
taskHandleDetailInfo: res.data.data,
},
],
} //
detailsVisible.value = true
})
.catch((err) => {})
} else if (
typeName.value == '云资源申请' ||
typeName.value == '云视频申请'
) {
refObj.value.description = '政务云'
if (typeName.value == '云资源申请') {
refObj.value.STATUS = status[item.STATUS] //
} else {
refObj.value.STATUS = status2[item.STATUS] //
}
refObj.value.CREATE_TIME = moment(
item.CREATE_TIME.time + 480 * 60 * 1000
).format('YYYY-MM-DD HH:mm:ss')
//
refObj.value.BUSINESS_NAME = item.BUSINESS_NAME //
refObj.value.BSNUM = item.BSNUM // id
refObj.value.APPLYTYPE = applytype[item.APPLYTYPE] //
refObj.value.SOURCE_TYPE = sourcetype[item.SOURCE_TYPE] //
refObj.value.REGION_CODE = item.REGION_CODE //
refObj.value.REGION_NAME = item.REGION_NAME //
refObj.value.ORG_NAME = item.ORG_NAME //
refObj.value.ORG_CODE = item.ORG_CODE //
refObj.value.AGENT_NAME = item.AGENT_NAME //
refObj.value.AGENT_CODE = item.AGENT_CODE //
refObj.value.CREATOR_NAME = item.CREATOR_NAME //
detailsVisible.value = true
} else if (typeName.value == '设备申请') {
getDeviceDetailInfo(item.deviceId)
.then((res) => {
@ -541,6 +709,34 @@
showType.value = '能力申请'
initNum2()
})
} else if (typeName.value == '数据资源申请') {
yaweiApproveStatus({ page: page.value, size: 4, title: '' }).then(
(res) => {
console.log('数据资源申请===============>', res.data.data)
contentList.data = res.data.data.data
num.value = []
total.value = res.data.data.cos
showType.value = '数据资源申请'
}
)
} else if (typeName.value == '云资源申请') {
getResourceBusinessList({ userAccount: userName.value }).then((res) => {
console.log('数据资源申请===============>', res.data.data)
contentList.data = res.data.data
contentList2.data = res.data.data
num.value = []
total.value = 0
showType.value = '云资源'
})
} else if (typeName.value == '云视频申请') {
getVideoBusinessList({ userAccount: userName.value }).then((res) => {
console.log('数据资源申请===============>', res.data.data)
contentList.data = res.data.data
contentList2.data = res.data.data
num.value = []
total.value = 0
showType.value = '云资源'
})
} else if (typeName.value == '能力评价') {
contentList.data = []
num.value = []
@ -624,6 +820,11 @@
showType.value = ''
}
}
const onSubmit = () => {
contentList.data = contentList2.data.filter(
(val) => val.BUSINESS_NAME.indexOf(formState.value.name) > -1
)
}
const handleCurrentChange = (val) => {
page.value = val
getApplyList()
@ -775,7 +976,6 @@
flex-direction: column;
font-size: 16px;
justify-content: left;
.title {
font-size: 20px;
color: #000000;
@ -837,7 +1037,8 @@
.content {
padding-right: 10px;
height: 510px;
height: 610px;
overflow-y: scroll;
.content-body {
padding-bottom: 20px;

View File

@ -0,0 +1,229 @@
<!--
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: Light
* @LastEditTime: 2022-11-11 18:48:42
* @Description:我的申请 能力申请 查看详情
-->
<template>
<div class="top">
<div class="title">基本信息</div>
<div class="main" v-if="props.refObj">
<div>
<p class="item">
<span>状态{{ props.refObj.STATUS || '--' }}</span>
<span>操作时间{{ props.refObj.CREATE_TIME || '--' }}</span>
</p>
<p class="item">
<span>业务名称{{ props.refObj.BUSINESS_NAME || '--' }}</span>
<span>业务id{{ props.refObj.BSNUM || '--' }}</span>
</p>
<p class="item">
<span>申请类型{{ props.refObj.APPLYTYPE || '--' }}</span>
<span>资源类型{{ props.refObj.SOURCE_TYPE || '--' }}</span>
</p>
<p class="item">
<span>区划编码{{ props.refObj.REGION_CODE || '--' }}</span>
<span>区划名称{{ props.refObj.REGION_NAME || '--' }}</span>
</p>
<p class="item">
<span>部门名称{{ props.refObj.ORG_NAME || '--' }}</span>
<span>部门名称编码{{ props.refObj.ORG_CODE || '--' }}</span>
</p>
<p class="item">
<span>处室名称{{ props.refObj.AGENT_NAME || '--' }}</span>
<span>处室编码{{ props.refObj.AGENT_CODE || '--' }}</span>
</p>
<p class="item">
<span>申请人{{ props.refObj.CREATOR_NAME || '--' }}</span>
</p>
</div>
</div>
</div>
</template>
<script setup>
import { ref, defineProps } from 'vue'
const props = defineProps({
refObj: { type: Object, default: null },
})
console.log(props.refObj, '=====================================')
// if (props.refObj.resourceApplication) {
// showArr.value = []
// for (const key in props.refObj.resourceApplication) {
// if (props.refObj.resourceApplication[key].length > 0) {
// let obj = { name: '', instanceId: '', list: [], list2: [] }
// obj.name = key
// props.refObj.resourceApplication[key].map((item) => {
// obj.instanceId = item.instanceId
// if (item.resources.length > 0) {
// item.resources.map((val) => {
// obj.list.push(val)
// })
// } else {
// item.camera.map((val) => {
// obj.list2.push(val)
// })
// }
// })
// showArr.value.push(obj)
// }
// }
// }
</script>
<style lang="less" scoped>
.title {
font-size: 0.18rem;
color: #000;
font-weight: bold;
margin-bottom: 0.2rem;
padding-left: 0.1rem;
border-left: 0.06rem #0058e1 solid;
}
.top {
margin-bottom: 0.1rem;
.main {
background: #eee;
padding: 0.2rem 0.2rem 0.1rem;
p {
display: flex;
justify-content: space-between;
& > span {
width: 100%;
}
.enclosure {
width: 95%;
padding: 0.05rem 0.1rem;
background: #ddd;
display: flex;
justify-content: space-between;
margin-top: 0.05rem;
}
.btn:hover {
color: #0058e1;
cursor: pointer;
}
}
.item {
span {
width: 4.5rem;
}
}
}
}
.bottom {
.main {
.item {
border-top: 1px #eee solid;
.deptName {
color: #0058e1;
font-size: 0.16rem;
margin-top: 0.1rem;
display: flex;
align-items: center;
.img {
width: 0.05rem;
height: 0.05rem;
border-radius: 0.05rem;
background: #0058e1;
margin-right: 0.1rem;
}
}
.oddNumbers {
margin: 0.1rem 0 0 0.15rem;
}
.box {
margin-left: 0.1rem;
.ability {
height: 1.3rem;
display: flex;
border-bottom: 1px #eee solid;
padding: 0.1rem 0;
.left {
display: inline-block;
width: 1.1rem;
height: 1.1rem;
margin-left: 0.1rem;
background: url('~@/assets/home/sxt_square.png') no-repeat;
background-size: 100%;
}
.sxt {
background: url('~@/assets/home/sxt_square.png') no-repeat;
background-size: 100%;
}
.yyzy {
background: url('~@/assets/home/yyzy_square.png') no-repeat;
background-size: 100%;
}
.znsf {
background: url('~@/assets/home/znsf_square.png') no-repeat;
background-size: 100%;
}
.tcfw {
background: url('~@/assets/home/tcfw_square.png') no-repeat;
background-size: 100%;
}
.kfzj {
background: url('~@/assets/home/kfzj_square.png') no-repeat;
background-size: 100%;
}
.ywzj {
background: url('~@/assets/home/ywzj_square.png') no-repeat;
background-size: 100%;
}
.btn {
cursor: pointer;
color: #0087ff;
align-self: flex-end;
padding: 5px 10px;
border: 1px #0087ff solid;
border-radius: 0.2rem;
}
.right {
flex: 1;
margin-left: 0.15rem;
.ability-top {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.name {
.type {
background: #0087ff;
color: #fff;
padding: 2px 10px;
border-radius: 10px;
margin-left: 0.1rem;
}
}
}
.ability-bottom {
margin-top: 0.15rem;
// display: flex;
// justify-content: space-between;
.dec {
width: 7rem;
height: 0.44rem;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
word-break: break-all;
}
.result:hover {
color: #0058e1;
cursor: pointer;
}
}
}
}
}
}
}
}
</style>

View File

@ -0,0 +1,220 @@
<!--
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: Light
* @LastEditTime: 2022-11-11 14:38:06
* @Description:我的申请 能力申请 查看详情
-->
<template>
<div class="top">
<div class="title">基本信息</div>
<div class="main" v-if="props.refObj">
<div>
<p class="item">
<span>申请部门{{ props.refObj.sqbm || '--' }}</span>
<span>需求标题{{ props.refObj.title }}</span>
</p>
<p class="item">
<span>业务联系人{{ props.refObj.ywlxr }}</span>
<span>业务联系人电话{{ props.refObj.ywlxrdh }}</span>
</p>
<p class="item">
<span>技术联系人{{ props.refObj.jslxr }}</span>
<span>技术联系人电话{{ props.refObj.jslxrdh }}</span>
</p>
<p>
<span>共享数据必要性法分析{{ props.refObj.miaoshu }}</span>
</p>
<p class="item">
<span>办结结果{{ props.refObj.zt }}</span>
</p>
</div>
</div>
</div>
</template>
<script setup>
import { ref, defineProps } from 'vue'
const props = defineProps({
refObj: { type: Object, default: null },
})
console.log(props.refObj, '=====================================')
// if (props.refObj.resourceApplication) {
// showArr.value = []
// for (const key in props.refObj.resourceApplication) {
// if (props.refObj.resourceApplication[key].length > 0) {
// let obj = { name: '', instanceId: '', list: [], list2: [] }
// obj.name = key
// props.refObj.resourceApplication[key].map((item) => {
// obj.instanceId = item.instanceId
// if (item.resources.length > 0) {
// item.resources.map((val) => {
// obj.list.push(val)
// })
// } else {
// item.camera.map((val) => {
// obj.list2.push(val)
// })
// }
// })
// showArr.value.push(obj)
// }
// }
// }
</script>
<style lang="less" scoped>
.title {
font-size: 0.18rem;
color: #000;
font-weight: bold;
margin-bottom: 0.2rem;
padding-left: 0.1rem;
border-left: 0.06rem #0058e1 solid;
}
.top {
margin-bottom: 0.1rem;
.main {
background: #eee;
padding: 0.2rem 0.2rem 0.1rem;
p {
display: flex;
justify-content: space-between;
& > span {
width: 100%;
}
.enclosure {
width: 95%;
padding: 0.05rem 0.1rem;
background: #ddd;
display: flex;
justify-content: space-between;
margin-top: 0.05rem;
}
.btn:hover {
color: #0058e1;
cursor: pointer;
}
}
.item {
span {
width: 4.5rem;
}
}
}
}
.bottom {
.main {
.item {
border-top: 1px #eee solid;
.deptName {
color: #0058e1;
font-size: 0.16rem;
margin-top: 0.1rem;
display: flex;
align-items: center;
.img {
width: 0.05rem;
height: 0.05rem;
border-radius: 0.05rem;
background: #0058e1;
margin-right: 0.1rem;
}
}
.oddNumbers {
margin: 0.1rem 0 0 0.15rem;
}
.box {
margin-left: 0.1rem;
.ability {
height: 1.3rem;
display: flex;
border-bottom: 1px #eee solid;
padding: 0.1rem 0;
.left {
display: inline-block;
width: 1.1rem;
height: 1.1rem;
margin-left: 0.1rem;
background: url('~@/assets/home/sxt_square.png') no-repeat;
background-size: 100%;
}
.sxt {
background: url('~@/assets/home/sxt_square.png') no-repeat;
background-size: 100%;
}
.yyzy {
background: url('~@/assets/home/yyzy_square.png') no-repeat;
background-size: 100%;
}
.znsf {
background: url('~@/assets/home/znsf_square.png') no-repeat;
background-size: 100%;
}
.tcfw {
background: url('~@/assets/home/tcfw_square.png') no-repeat;
background-size: 100%;
}
.kfzj {
background: url('~@/assets/home/kfzj_square.png') no-repeat;
background-size: 100%;
}
.ywzj {
background: url('~@/assets/home/ywzj_square.png') no-repeat;
background-size: 100%;
}
.btn {
cursor: pointer;
color: #0087ff;
align-self: flex-end;
padding: 5px 10px;
border: 1px #0087ff solid;
border-radius: 0.2rem;
}
.right {
flex: 1;
margin-left: 0.15rem;
.ability-top {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.name {
.type {
background: #0087ff;
color: #fff;
padding: 2px 10px;
border-radius: 10px;
margin-left: 0.1rem;
}
}
}
.ability-bottom {
margin-top: 0.15rem;
// display: flex;
// justify-content: space-between;
.dec {
width: 7rem;
height: 0.44rem;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
word-break: break-all;
}
.result:hover {
color: #0058e1;
cursor: pointer;
}
}
}
}
}
}
}
}
</style>