This commit is contained in:
guoyue 2022-07-14 17:41:09 +08:00
commit e5d772ab21
16 changed files with 1515 additions and 241 deletions

View File

@ -646,4 +646,7 @@ export default {
// ::v-deep .el-table .cell { // ::v-deep .el-table .cell {
// width: 200px; // width: 200px;
// } // }
::v-deep .el-upload-list__item-name {
width: 400px;
}
</style> </style>

View File

@ -729,4 +729,7 @@ export default {
.el-tooltip__popper { .el-tooltip__popper {
max-width: 50%; max-width: 50%;
} }
::v-deep .el-upload-list__item-name {
width: 400px;
}
</style> </style>

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-03-29 16:45:25 * @Date: 2022-03-29 16:45:25
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-14 09:34:08 * @LastEditTime: 2022-07-14 10:58:46
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<!DOCTYPE html> <!DOCTYPE html>
@ -49,7 +49,7 @@
window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797'; window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796/'; window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796/';
window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/'; window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/';
window.SITE_CONFIG['apiURL'] = 'http://15.2.21.239:8888/renren-admin'; window.SITE_CONFIG['apiURL'] = 'http://15.2.21.238:8888/renren-admin';
window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address'; window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
// 穿透版本 // 穿透版本
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797'; // window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';

View File

@ -197,6 +197,13 @@ export function getMyComment(params) {
params, params,
}) })
} }
export function demandComment(params) {
return request({
url: '/demandComment/'+ params,
method: 'get',
params,
})
}
// //
export function getCategoryTree(params) { export function getCategoryTree(params) {
return request({ return request({

View File

@ -2,14 +2,14 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2021-10-13 09:30:54 * @Date: 2021-10-13 09:30:54
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2021-10-13 15:04:58 * @LastEditTime: 2022-07-14 16:28:27
* @Description: 点位-位置匹配 * @Description: 点位-位置匹配
*/ */
const DIVISION = { const DIVISION = {
qingdao: [ qingdao: [
{ {
districtName: '城阳区', districtName: '城阳区',
name: '城阳区', name: '城阳区(约1.5万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 36.31, lat: 36.31,
@ -18,7 +18,7 @@ const DIVISION = {
}, },
{ {
districtName: '李沧区', districtName: '李沧区',
name: '李沧区', name: '李沧区(约0.6万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 36.17, lat: 36.17,
@ -27,7 +27,7 @@ const DIVISION = {
}, },
{ {
districtName: '市北区', districtName: '市北区',
name: '市北区', name: '市北区(约0.7万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 36.1, lat: 36.1,
@ -36,7 +36,7 @@ const DIVISION = {
}, },
{ {
districtName: '市南区', districtName: '市南区',
name: '市南区', name: '市南区(约0.4万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 36.06, lat: 36.06,
@ -45,7 +45,7 @@ const DIVISION = {
}, },
{ {
districtName: '崂山区', districtName: '崂山区',
name: '崂山区', name: '崂山区(约2.0万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 36.11, lat: 36.11,
@ -54,7 +54,7 @@ const DIVISION = {
}, },
{ {
districtName: '即墨区', districtName: '即墨区',
name: '即墨区', name: '即墨区(约1.4万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 36.39, lat: 36.39,
@ -63,7 +63,7 @@ const DIVISION = {
}, },
{ {
districtName: '胶州市', districtName: '胶州市',
name: '胶州市', name: '胶州市(约1.5万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 36.27, lat: 36.27,
@ -72,7 +72,7 @@ const DIVISION = {
}, },
{ {
districtName: '平度市', districtName: '平度市',
name: '平度市', name: '平度市(约1.6万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 36.78, lat: 36.78,
@ -81,7 +81,7 @@ const DIVISION = {
}, },
{ {
districtName: '莱西市', districtName: '莱西市',
name: '莱西市', name: '莱西市(约1.0万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 36.89, lat: 36.89,
@ -90,7 +90,7 @@ const DIVISION = {
}, },
{ {
districtName: '西海岸新区', districtName: '西海岸新区',
name: '西海岸新区', name: '西海岸新区(约4.1万)',
districtCOde: '', districtCOde: '',
latLng: { latLng: {
lat: 35.99, lat: 35.99,

View File

@ -35,7 +35,7 @@
> >
<a-tooltip <a-tooltip
placement="topLeft" placement="topLeft"
:title="item.demandSubject || '--'" :title="item.demandDetails || '--'"
arrow-point-at-center arrow-point-at-center
mouseEnterDelay="1" mouseEnterDelay="1"
> >

View File

@ -10,10 +10,17 @@
}} }}
</div> </div>
<div class="condition" :key="showKey"> <div class="condition" :key="showKey">
<ul v-if="selectCardsname === '融合服务'"> <ul v-if="selectCardsname === '融合服务'">
<li v-for="(item, i) in orderList" :key="item.value" @click="changeOrder(i, item.value, item.orderType)"> <li
v-for="(item, i) in orderList"
:key="item.value"
@click="changeOrder(i, item.value, item.orderType)"
>
{{ item.name }} {{ item.name }}
<span class="arrow" :class="item.orderType == 'ASC' ? 'down' : ''"></span> <span
class="arrow"
:class="item.orderType == 'ASC' ? 'down' : ''"
></span>
</li> </li>
</ul> </ul>
<ul v-else> <ul v-else>
@ -21,7 +28,12 @@
v-for="item in selList" v-for="item in selList"
:key="item.value" :key="item.value"
@click="changeCondition(item.value)" @click="changeCondition(item.value)"
v-show="item.show" v-show="
item.show &&
!(item.name === '申请量' && selectCardsname == '应用资源') &&
item.name !== '评分' &&
selectCardsname !== '数据资源'
"
> >
{{ item.name }} {{ item.name }}
<span <span
@ -30,7 +42,6 @@
></span> ></span>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div <div
@ -67,7 +78,9 @@
? 'ywzj' ? 'ywzj'
: '' : ''
" "
v-if="selectCardsname !== '基础设施' && selectCardsname !== '融合服务'" v-if="
selectCardsname !== '基础设施' && selectCardsname !== '融合服务'
"
></div> ></div>
<div class="left jcss" v-else-if="selectCardsname === '基础设施'"></div> <div class="left jcss" v-else-if="selectCardsname === '基础设施'"></div>
<div class="left rhfw" v-else-if="selectCardsname === '融合服务'"></div> <div class="left rhfw" v-else-if="selectCardsname === '融合服务'"></div>
@ -84,7 +97,7 @@
p-id="3062" p-id="3062"
width="40" width="40"
height="40" height="40"
v-if="item.applyState == '通过'" v-if="item.applyState == '通过' && item.type !== '应用资源'"
style="margin-left: 10px" style="margin-left: 10px"
> >
<path <path
@ -125,7 +138,9 @@
<div class="dec"> <div class="dec">
<div <div
v-if=" v-if="
selectCardsname !== '基础设施' && selectCardsname !== '数据资源' && selectCardsname !== '融合服务' selectCardsname !== '基础设施' &&
selectCardsname !== '数据资源' &&
selectCardsname !== '融合服务'
" "
> >
<span>{{ item.shareType || '--' }}</span> <span>{{ item.shareType || '--' }}</span>
@ -142,13 +157,28 @@
</div> </div>
<div class="bottom" v-if="selectCardsname !== '基础设施'"> <div class="bottom" v-if="selectCardsname !== '基础设施'">
<div> <div>
<div v-if="selectCardsname !== '数据资源' && selectCardsname !== '融合服务'"> <div
v-if="
selectCardsname !== '数据资源' &&
selectCardsname !== '融合服务'
"
>
浏览量{{ item.visits || 0 }} 浏览量{{ item.visits || 0 }}
</div> </div>
<div v-if="selectCardsname !== '应用资源' && selectCardsname !== '融合服务'"> <div
v-if="
selectCardsname !== '应用资源' &&
selectCardsname !== '融合服务'
"
>
申请量{{ item.applyCount || 0 }} 申请量{{ item.applyCount || 0 }}
</div> </div>
<div v-if="selectCardsname === '数据资源' && selectCardsname !== '融合服务'"> <div
v-if="
selectCardsname === '数据资源' &&
selectCardsname !== '融合服务'
"
>
数据量{{ item.sjlCount || 0 }} 数据量{{ item.sjlCount || 0 }}
</div> </div>
<div v-if="selectCardsname !== '数据资源'"> <div v-if="selectCardsname !== '数据资源'">
@ -208,8 +238,11 @@
> >
查看详情 查看详情
</a-button> </a-button>
<a-button style="margin-left: 10px" v-show="selectCardsname === '融合服务'" <a-button
@click="handleAKeyApplication(item)"> style="margin-left: 10px"
v-show="selectCardsname === '融合服务'"
@click="handleAKeyApplication(item)"
>
一键申请 一键申请
</a-button> </a-button>
<!-- <a-button <!-- <a-button
@ -367,23 +400,23 @@
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
const whoShow1 = whoShow const whoShow1 = whoShow
const showKey = ref(0) const showKey = ref(0)
let shoppingKey = ref(1) let shoppingKey = ref(1)
// //
const orderList = ref([ const orderList = ref([
{ {
value: 'collectCount', value: 'collectCount',
name: '收藏量', name: '收藏量',
orderType: 'DESC' orderType: 'DESC',
}, },
{ {
value: 'create_date', value: 'create_date',
name: '发布时间', name: '发布时间',
orderType: 'DESC' orderType: 'DESC',
}, },
{ {
value: 'update_date', value: 'update_date',
name: '更新时间', name: '更新时间',
orderType: 'DESC' orderType: 'DESC',
}, },
]) ])
// id // id
@ -461,16 +494,14 @@
} else { } else {
window.open('http://10.134.135.24:30090/#/home') window.open('http://10.134.135.24:30090/#/home')
} }
} } else if (props.selectCardsname === '融合服务') {
else if (props.selectCardsname === '融合服务') {
router.push({ router.push({
path: '/integrationServicesDetails', path: '/integrationServicesDetails',
query: { query: {
id: item.id, id: item.id,
}, },
}) })
} } else {
else {
if (type === 'apply') { if (type === 'apply') {
console.log('一键申请===================>', item) console.log('一键申请===================>', item)
localStorage.setItem( localStorage.setItem(
@ -577,72 +608,67 @@
} }
// -- // --
const changeOrder = (i, val, type) => { const changeOrder = (i, val, type) => {
let newType = type === 'DESC' ? 'ASC' : 'DESC' let newType = type === 'DESC' ? 'ASC' : 'DESC'
orderList.value[i].orderType = newType orderList.value[i].orderType = newType
mybus.emit('changeCondition', { mybus.emit('changeCondition', {
orderField: val, orderField: val,
orderType: newType, orderType: newType,
}) })
} }
// -- // --
const handleAKeyApplication = (item) => { const handleAKeyApplication = (item) => {
let _applyList = []; let _applyList = []
(item.fuseResourceList || []).map(v => { ;(item.fuseResourceList || []).map((v) => {
let resource = v.resource || {} let resource = v.resource || {}
let obj = { let obj = {
arr: [ arr: [
{ {
delFlag: resource.delFlag, delFlag: resource.delFlag,
description: resource.description, description: resource.description,
resourceId: resource.id, resourceId: resource.id,
resourceName: resource.name, resourceName: resource.name,
time: resource.createDate, time: resource.createDate,
type: resource.type, type: resource.type,
}, },
], ],
deptId: resource.deptId, deptId: resource.deptId,
deptName: resource.deptName, deptName: resource.deptName,
} }
_applyList.push(obj) _applyList.push(obj)
}) })
localStorage.setItem( localStorage.setItem('applyList', JSON.stringify(_applyList))
'applyList', router.push({
JSON.stringify(_applyList) path: '/apply',
) })
router.push({ }
path: '/apply',
})
}
mybus.on('chongzhi', (typeObj) => { mybus.on('chongzhi', (typeObj) => {
console.log('typeObj------------>', typeObj); console.log('typeObj------------>', typeObj)
if(!typeObj) { if (!typeObj) {
selData.value = 'total'; selData.value = 'total'
} }
if(typeObj && typeObj.type === '融合服务') { if (typeObj && typeObj.type === '融合服务') {
orderList.value = [ orderList.value = [
{ {
value: 'collectCount', value: 'collectCount',
name: '收藏量', name: '收藏量',
orderType: 'DESC' orderType: 'DESC',
}, },
{ {
value: 'create_date', value: 'create_date',
name: '发布时间', name: '发布时间',
orderType: 'DESC' orderType: 'DESC',
}, },
{ {
value: 'update_date', value: 'update_date',
name: '更新时间', name: '更新时间',
orderType: 'DESC' orderType: 'DESC',
}, },
] ]
} }
}) })
let videoUrl = ref('') let videoUrl = ref('')
const options = reactive({ const options = reactive({

View File

@ -1,98 +1,120 @@
<template> <template>
<div class="list-box"> <div class="list-box">
<div class="list-item" v-for="(item, i) in newDataList" :key="i" @click.stop="showChildren(item)"> <div
<a-tooltip placement="top" :title="item.title" arrow-point-at-center> class="list-item"
<div :class="[newClickData.title === item.title ? 'select' : '', level === 1 ? 'parent' : '', judgeLeaf(item) ? 'leaf' : '']" v-for="(item, i) in newDataList"
class="list-text"> :key="i"
{{ item.title }} @click.stop="showChildren(item)"
<DownOutlined v-show="!item.show && !judgeLeaf(item)" /> >
<UpOutlined v-show="item.show && !judgeLeaf(item)" /> <a-tooltip placement="top" :title="item.title" arrow-point-at-center>
</div> <div
</a-tooltip> :class="[
<div style="margin-left:10px" v-if="!judgeLeaf(item) && item.show"> newClickData.title === item.title ? 'select' : '',
<abilityDocTree :dataList="item.children" @tree-click="handleTreeItem" :clickData="newClickData" level === 1 ? 'parent' : '',
:level="newLevel + 1"> judgeLeaf(item) ? 'leaf' : '',
</abilityDocTree> ]"
</div> class="list-text"
>
{{ item.title }}
<DownOutlined v-show="!item.show && !judgeLeaf(item)" />
<UpOutlined v-show="item.show && !judgeLeaf(item)" />
</div> </div>
</a-tooltip>
<div style="margin-left: 10px" v-if="!judgeLeaf(item) && item.show">
<abilityDocTree
:dataList="item.children"
@tree-click="handleTreeItem"
:clickData="newClickData"
:level="newLevel + 1"
></abilityDocTree>
</div>
</div> </div>
</div>
</template> </template>
<script setup> <script setup>
import { defineComponent, onMounted, ref, watch, defineProps, nextTick } from 'vue'; import {
import { getDevelopDocTree } from '@/api/home' defineComponent,
import { message } from 'ant-design-vue' onMounted,
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue' ref,
watch,
defineProps,
nextTick,
} from 'vue'
import { getDevelopDocTree } from '@/api/home'
import { message } from 'ant-design-vue'
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
const props = defineProps({ const props = defineProps({
dataList: { dataList: {
type: Array, type: Array,
default: () => [] default: () => [],
}, },
level: { level: {
type: Number, type: Number,
default: 1 default: 1,
}, },
clickData: { clickData: {
type: Object, type: Object,
default: () => { title: '' } default: () => {
title: ''
},
}, },
}) })
// //
const newDataList = ref(props.dataList) const newDataList = ref(props.dataList)
// //
const newLevel = ref(props.level) const newLevel = ref(props.level)
const newClickData = ref(props.clickData) const newClickData = ref(props.clickData)
// //
const judgeLeaf = (item) => { const judgeLeaf = (item) => {
if (item.children && item.children.length > 0) { if (item.children && item.children.length > 0) {
return false return false
} else { } else {
return true return true
} }
} }
const showChildren = (item) => { const showChildren = (item) => {
if (!(item.children && item.children.length > 0)) { if (!(item.children && item.children.length > 0)) {
if (newClickData.value.title !== '') { if (newClickData.value.title !== '') {
handleTreeItem(item) handleTreeItem(item)
} else { } else {
handleTreeItem({ title: '' }) handleTreeItem({ title: '' })
} }
} }
if (item.children && item.children.length > 0) { if (item.children && item.children.length > 0) {
item.show = !item.show; item.show = !item.show
} }
} }
watch( watch(
() => props.dataList, () => props.dataList,
(val) => { (val) => {
if (val) { if (val) {
newDataList.value = val newDataList.value = val
} }
} }
) )
watch( watch(
() => props.clickData, () => props.clickData,
(val) => { (val) => {
if (val) { if (val) {
newClickData.value = val newClickData.value = val
} }
} }
) )
const emit = defineEmits(['treeClick'])
const handleTreeItem = (item) => {
emit('tree-click', item);
}
const emit = defineEmits(['treeClick'])
const handleTreeItem = (item) => {
emit('tree-click', item)
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.list-text { .list-text {
font-size: 16px; font-size: 16px;
color: #333; color: #333;
padding: 10px 0; padding: 10px 0;
@ -106,32 +128,32 @@ const handleTreeItem = (item) => {
text-overflow: ellipsis; text-overflow: ellipsis;
&:hover { &:hover {
color: #0058e1; color: #0058e1;
cursor: pointer; cursor: pointer;
} }
} }
.parent { .parent {
margin-bottom: 10px; margin-bottom: 10px;
background: rgba(0, 135, 225, 0.1); background: rgba(0, 135, 225, 0.1);
color: #333; color: #333;
&:hover { &:hover {
color: #fff; color: #fff;
background: #0058e1; background: #0058e1;
cursor: pointer; cursor: pointer;
} }
} }
.leaf { .leaf {
font-size: 14px; font-size: 14px;
color: #555; color: #555;
cursor: pointer; cursor: pointer;
} }
.select { .select {
color: #0058e1; color: #0058e1;
font-weight: 600; font-weight: 600;
cursor: pointer; cursor: pointer;
} }
</style> </style>

View File

@ -12,7 +12,7 @@
<abilityDocTree :dataList="treeArray" @treeClick="treeClick" :clickData="clickData"></abilityDocTree> <abilityDocTree :dataList="treeArray" @treeClick="treeClick" :clickData="clickData"></abilityDocTree>
</div> </div>
<div class="right"> <div class="right">
<div class="new-menu-box" style="height:100%" v-if="titleData.name === '新手指引'"> <div class="new-menu-box" style="height: 100%" v-if="titleData.name === '新手指引'">
<!-- 新手指引 --> <!-- 新手指引 -->
<a-empty description="新手指引" /> <a-empty description="新手指引" />
</div> </div>
@ -22,7 +22,6 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
@ -37,53 +36,58 @@ import flatten from '@turf/flatten'
const titleList = ref([ const titleList = ref([
{ {
name: '新手指引', name: '新手指引',
className: 'newGuide' className: 'newGuide',
}, },
{ {
name: '技术文档', name: '技术文档',
className: 'doc' className: 'doc',
} },
]) ])
const titleData = ref(titleList.value[0]) const titleData = ref(titleList.value[0])
const clickData = ref({}) const clickData = ref({})
const treeArray = ref([]) const treeArray = ref([])
const treeArrayCopy = ref([]) const treeArrayCopy = ref([])
let typeList = ['组件服务', '应用资源', '基础设施', '数据资源', '知识库']; let typeList = ['组件服务', '应用资源', '基础设施', '数据资源', '知识库']
const treeClick = (item) => { const treeClick = (item) => {
clickData.value = item; clickData.value = item
console.log('clickData------------>', item); console.log('clickData------------>', item)
titleData.value = titleList.value[1] titleData.value = titleList.value[1]
} }
const getTreeData = () => { const getTreeData = () => {
getDevelopDocTree({}).then((res) => { getDevelopDocTree({})
console.log('res------文档树------>', res); .then((res) => {
if (res.data.code !== 0) { console.log('res------文档树------>', res)
return message.error(res.data.msg) if (res.data.code !== 0) {
} return message.error(res.data.msg)
treeArray.value = res.data.data || []; }
treeArrayCopy.value = JSON.parse(JSON.stringify(treeArray.value)) treeArray.value = res.data.data || []
}).catch((err) => { treeArrayCopy.value = JSON.parse(JSON.stringify(treeArray.value))
message.error(err) })
}); .catch((err) => {
message.error(err)
})
} }
const changeName = (item) => { const changeName = (item) => {
titleData.value = item; titleData.value = item
if (item.name == '新手指引') { if (item.name == '新手指引') {
clickData.value = {} clickData.value = {}
} }
if (item.name == '技术文档') { if (item.name == '技术文档') {
if (!clickData.value.title) { if (!clickData.value.title) {
clickData.value = {} clickData.value = {}
treeArray.value = []; treeArray.value = []
treeArrayCopy.value.map((val, i) => { treeArrayCopy.value.map((val, i) => {
let obj = Object.assign({}, val, { let obj = Object.assign({}, val, {
title: val.title, title: val.title,
show: (i === 0 && val.children && val.children.length > 0) || typeList.includes(val.title) ? true : false, show:
children: [] (i === 0 && val.children && val.children.length > 0) ||
typeList.includes(val.title)
? true
: false,
children: [],
}) })
formData(val.children, obj) formData(val.children, obj)
treeArray.value.push(obj) treeArray.value.push(obj)
@ -93,13 +97,16 @@ const changeName = (item) => {
} }
} }
const formData = (children = [], dataItem) => { const formData = (children = [], dataItem) => {
children.map((item, index) => { children.map((item, index) => {
let _obj = Object.assign({}, item, { let _obj = Object.assign({}, item, {
title: item.title, title: item.title,
show: (index === 0 && item.children && item.children.length > 0) || typeList.includes(item.title) ? true : false, show:
children: [] (index === 0 && item.children && item.children.length > 0) ||
typeList.includes(item.title)
? true
: false,
children: [],
}) })
if (item.children && item.children.length > 0) { if (item.children && item.children.length > 0) {
formData(item.children, _obj) formData(item.children, _obj)
@ -119,8 +126,6 @@ const getFirstData = (firstObj = {}) => {
onMounted(() => { onMounted(() => {
getTreeData() getTreeData()
}) })
</script> </script>
<style scoped lang="less"> <style scoped lang="less">

View File

@ -1,6 +1,20 @@
<template> <template>
<div class="form-container"> <div class="form-container">
<AbilityApplication :refObj="refObj"></AbilityApplication> <AbilityApplication
:refObj="refObj"
v-if="showType === '能力申请'"
></AbilityApplication>
<PutOnTheShelf
:refObj="refObj"
v-else-if="showType === '能力上架'"
></PutOnTheShelf>
<OffTheShelf
:refObj="refObj"
v-else-if="showType === '能力下架'"
></OffTheShelf>
<Demand :refObj="refObj" v-else-if="showType === '能力需求'"></Demand>
<Comment :refObj="refObj" v-else-if="showType === '需求评论'"></Comment>
<OtherApplications :refObj="refObj" v-else></OtherApplications>
<!-- <div class="title">流程图</div> <!-- <div class="title">流程图</div>
<div> <div>
<img :src="getResourceURL()" alt="" /> <img :src="getResourceURL()" alt="" />
@ -16,6 +30,11 @@
</template> </template>
<script setup> <script setup>
import AbilityApplication from './AbilityApplication.vue' import AbilityApplication from './AbilityApplication.vue'
import PutOnTheShelf from './PutOnTheShelf .vue'
import OffTheShelf from './OffTheShelf.vue'
import Demand from './Demand.vue'
import Comment from './Comment.vue'
import OtherApplications from '@/views/personalCenter/components/OtherApplications '
import { onMounted, reactive, defineProps, ref } from 'vue' import { onMounted, reactive, defineProps, ref } from 'vue'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
// import { baseURL } from '@/config' // import { baseURL } from '@/config'
@ -34,23 +53,18 @@
processInstanceId: { type: String, default: null }, processInstanceId: { type: String, default: null },
resourceId: { type: String, default: null }, resourceId: { type: String, default: null },
refObj: { type: Object, default: null }, refObj: { type: Object, default: null },
showType: { type: String, default: null },
}) })
const refObj = ref({}) const refObj = ref({})
const showType = ref('')
// eslint-disable-next-line vue/no-setup-props-destructure // eslint-disable-next-line vue/no-setup-props-destructure
refObj.value = props.refObj refObj.value = props.refObj
// eslint-disable-next-line vue/no-setup-props-destructure
showType.value = props.showType
// //
const dataSource = reactive({ data: [] }) const dataSource = reactive({ data: [] })
// console.log(props.refObj, '---------------------------------------') // console.log(props.refObj, '---------------------------------------')
if (props.refObj.resourceApplication) {
dataSource.data = []
for (const key in props.refObj.resourceApplication) {
if (props.refObj.resourceApplication[key].length > 0) {
props.refObj.resourceApplication[key].map((item) => {
dataSource.data.push([item.instanceId, item.taskHandleDetailInfo])
})
}
}
}
const downloadFile = (path, name) => { const downloadFile = (path, name) => {
const xhr = new XMLHttpRequest() const xhr = new XMLHttpRequest()
xhr.open('get', path) xhr.open('get', path)
@ -194,20 +208,31 @@
const getLiuZhuanInfo = () => { const getLiuZhuanInfo = () => {
const params = qs.stringify({ const params = qs.stringify({
page: 1,
limit: 4,
processInstanceId: props.processInstanceId, processInstanceId: props.processInstanceId,
}) })
getTaskHandleDetailInfo(params).then((res) => { getTaskHandleDetailInfo(params).then((res) => {
let arr = []
res.data.data.forEach((item) => { res.data.data.forEach((item) => {
dataSource.data.push(item) arr.push(item)
}) })
dataSource.data.push([props.processInstanceId, arr])
}) })
} }
onMounted(() => { onMounted(() => {
// getInfo() // getInfo()
// getLiuZhuanInfo() if (props.refObj.resourceApplication) {
dataSource.data = []
for (const key in props.refObj.resourceApplication) {
if (props.refObj.resourceApplication[key].length > 0) {
props.refObj.resourceApplication[key].map((item) => {
dataSource.data.push([item.instanceId, item.taskHandleDetailInfo])
})
}
}
} else {
getLiuZhuanInfo()
}
}) })
const getResourceURL = () => { const getResourceURL = () => {

View File

@ -0,0 +1,207 @@
<!--
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-14 16:33:00
* @Description:我的申请 能力申请 查看详情
-->
<template>
<div class="top">
<div class="title">基本信息</div>
<div class="main">
<div>
<p class="item">
<span>申请单号{{ props.refObj.applyNumber || '--' }}</span>
</p>
<p class="item">
<span>评论内容{{ props.refObj.dto.comment }}</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: 2.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;
}
.result:hover {
color: #0058e1;
cursor: pointer;
}
}
}
}
}
}
}
}
</style>

View File

@ -0,0 +1,216 @@
<!--
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-14 16:29:01
* @Description:我的申请 能力申请 查看详情
-->
<template>
<div class="top">
<div class="title">基本信息</div>
<div class="main">
<div>
<p class="item">
<span>申请单号{{ props.refObj.applyNumber || '--' }}</span>
</p>
<p class="item">
<span>需求标题{{ props.refObj.dto.demandSubject }}</span>
</p>
<p class="item">
<span>需求类型{{ props.refObj.dto.detailsType }}</span>
</p>
<p class="item">
<span>需求描述{{ props.refObj.dto.demandDetails }}</span>
</p>
<p class="item">
<span>需求领域{{ props.refObj.dto.detailsField }}</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: 2.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;
}
.result:hover {
color: #0058e1;
cursor: pointer;
}
}
}
}
}
}
}
}
</style>

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="on-the-right-side-of-the-list"> <div class="on-the-right-side-of-the-list">
<div class="title">我的申请</div> <div class="title" style="margin-bottom: 0.2rem">我的申请</div>
<!-- <div class="sousuokuang"> <!-- <div class="sousuokuang">
<a-input-search <a-input-search
v-model:value="name" v-model:value="name"
@ -18,7 +18,7 @@
重置 重置
</a-button> </a-button>
</div> --> </div> -->
<div class="tab"> <div class="tab" style="margin-bottom: 0.1rem">
<span>类型</span> <span>类型</span>
<div <div
:class="typeIndex == index ? 'tabclass' : ' '" :class="typeIndex == index ? 'tabclass' : ' '"
@ -29,8 +29,8 @@
{{ item }} {{ item }}
</div> </div>
</div> </div>
<!-- <div class="tab"> <div class="tab">
<span>筛选</span> <span>申请状态</span>
<div <div
:class="tabIndex == index ? 'tabclass' : ' '" :class="tabIndex == index ? 'tabclass' : ' '"
@click="tabqiehuan(item, index)" @click="tabqiehuan(item, index)"
@ -47,7 +47,7 @@
{{ item }} {{ item }}
</template> </template>
</div> </div>
</div> --> </div>
<div v-if="contentList.data.length > 0"> <div v-if="contentList.data.length > 0">
<div class="content"> <div class="content">
<div <div
@ -85,7 +85,7 @@
<p class="content-body-content-son"> <p class="content-body-content-son">
审核结果{{ 审核结果{{
// item.ended ? '' : item.backToFirst ? '' : '' // item.ended ? '' : item.backToFirst ? '' : ''
item.approveStatus item.approveStatus || item.resourceStatusTip || '--'
}} }}
</p> </p>
</div> </div>
@ -94,7 +94,7 @@
当前节点{{ item.currentTaskList[0].taskName }} 当前节点{{ item.currentTaskList[0].taskName }}
</p> </p>
</div> --> </div> -->
<div> <!-- <div>
<p <p
class="content-body-content-son" class="content-body-content-son"
v-if="item.name === '申请摄像头列表'" v-if="item.name === '申请摄像头列表'"
@ -146,7 +146,7 @@
</a-button> </a-button>
</p> </p>
</template> </template>
</div> </div> -->
<!-- <div class="content-body-title"></div> <!-- <div class="content-body-title"></div>
<div class="content-body-content"> <div class="content-body-content">
<p class="content-body-content-son"></p> <p class="content-body-content-son"></p>
@ -155,11 +155,11 @@
<!-- <div class="content-body-bottom" v-if="item.currentTaskList"> <!-- <div class="content-body-bottom" v-if="item.currentTaskList">
<div>申请日期{{ item.currentTaskList[0].createTime }}</div> <div>申请日期{{ item.currentTaskList[0].createTime }}</div>
<div>审批人{{ item.currentTaskList[0].assigneeName }}</div> <div>审批人{{ item.currentTaskList[0].assigneeName }}</div>
</div>
<div class="content-body-bottom" v-else>
<div>申请日期{{ item.startTime }}</div>
<div></div>
</div> --> </div> -->
<div class="content-body-bottom">
<div>申请日期{{ item.createDate || item.startTime }}</div>
<div></div>
</div>
<div class="button-box"> <div class="button-box">
<div class="button" @click="showDetail(item)">查看详情</div> <div class="button" @click="showDetail(item)">查看详情</div>
<!-- <div class="button" @click="showAdd(item)" v-if="item.backToFirst"> <!-- <div class="button" @click="showAdd(item)" v-if="item.backToFirst">
@ -273,6 +273,7 @@
:processInstanceId="processInstanceId" :processInstanceId="processInstanceId"
:resourceId="resourceId" :resourceId="resourceId"
:refObj="refObj" :refObj="refObj"
:showType="showType"
></apply-details> ></apply-details>
</a-modal> </a-modal>
<a-modal <a-modal
@ -305,13 +306,16 @@
</template> </template>
<script setup> <script setup>
import qs from 'qs' // import qs from 'qs'
import { onMounted, reactive, ref } from 'vue' import { onMounted, reactive, ref } from 'vue'
import { import {
getMyProcessInstancePage, getMyProcessInstancePage,
getTaskHandleDetailInfo, // getTaskHandleDetailInfo,
getTabilityapplication, getTabilityapplication,
getByApplyFlag, getByApplyFlag,
nengliziyuanshangjiaapply,
getDemandForm,
demandComment,
// getProcDefBizRoute, // getProcDefBizRoute,
} from '@/api/personalCenter' } from '@/api/personalCenter'
import { import {
@ -319,6 +323,7 @@
relaunch, relaunch,
selectOne, selectOne,
getApplyCameraList, getApplyCameraList,
selectOneDel,
} from '@/api/home' } from '@/api/home'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
@ -369,12 +374,18 @@
} }
// //
const changeType = (item, index) => { const changeType = (item, index) => {
num.value = []
showType.value = ''
console.log(item, index) console.log(item, index)
tabIndex.value = 0
ended.value = ''
page.value = 1
typeIndex.value = index typeIndex.value = index
getApplyList() getApplyList()
} }
let name = ref('') let name = ref('')
const detailsVisible = ref(false) const detailsVisible = ref(false)
const detailsVisible2 = ref(false)
const businessKey = ref('') const businessKey = ref('')
const processInstanceId = ref('') const processInstanceId = ref('')
const processDefinitionName = ref('') const processDefinitionName = ref('')
@ -388,14 +399,29 @@
const showDetail = (item) => { const showDetail = (item) => {
console.log('showDetail', item) console.log('showDetail', item)
// getProcDefBizRoute(item.processDefinitionId) // getProcDefBizRoute(item.processDefinitionId)
getByApplyFlag(item.applyFlag).then((res) => { if (typeIndex.value == 0 && item.applyFlag) {
refObj.value = res.data.data getByApplyFlag(item.applyFlag).then((res) => {
if (res.data.code == 0) {
refObj.value = res.data.data
detailsVisible.value = true
processDefinitionName.value = item.processDefinitionName
businessKey.value = item.businessKey
processInstanceId.value = item.instanceId
resourceId.value = item.resourceId
} else {
message.error('数据请求失败!')
}
})
} else if (typeIndex.value !== 1) {
refObj.value = item
detailsVisible.value = true detailsVisible.value = true
processDefinitionName.value = item.processDefinitionName processDefinitionName.value = item.processDefinitionName
businessKey.value = item.businessKey businessKey.value = item.businessKey
processInstanceId.value = item.instanceId processInstanceId.value = item.processInstanceId
resourceId.value = item.resourceId resourceId.value = item.resourceId
}) } else {
message.error('数据请求失败!')
}
} }
const showVideoList = (item) => { const showVideoList = (item) => {
console.log('显示列表', item) console.log('显示列表', item)
@ -472,13 +498,13 @@
finished: 0, finished: 0,
unfinished: 0, unfinished: 0,
}) })
const initNum = (name) => { const initNum = () => {
num.value = [] num.value = []
getMyProcessInstancePage({ getMyProcessInstancePage({
page: 1, page: 1,
limit: 4, limit: 4,
ended: 'false', ended: 'false',
name: name, processDefinitionKey: processDefinitionKey.value,
}).then((res) => { }).then((res) => {
if (res.data.code == 0) { if (res.data.code == 0) {
num.value.unfinished = res.data.data.total num.value.unfinished = res.data.data.total
@ -486,7 +512,28 @@
page: 1, page: 1,
limit: 4, limit: 4,
ended: 'true', ended: 'true',
name: name, processDefinitionKey: processDefinitionKey.value,
}).then((res) => {
if (res.data.code == 0) {
num.value.finished = res.data.data.total
}
})
}
})
}
const initNum2 = () => {
num.value = []
getTabilityapplication({
page: 1,
limit: 4,
ended: 'false',
}).then((res) => {
if (res.data.code == 0) {
num.value.unfinished = res.data.data.total
getTabilityapplication({
page: 1,
limit: 4,
ended: 'true',
}).then((res) => { }).then((res) => {
if (res.data.code == 0) { if (res.data.code == 0) {
num.value.finished = res.data.data.total num.value.finished = res.data.data.total
@ -497,8 +544,10 @@
} }
// initNum() // initNum()
const total = ref('') const total = ref('')
const showType = ref('')
const page = ref('1') const page = ref('1')
const ended = ref('') const ended = ref('')
const processDefinitionKey = ref('')
// //
const onSearch = (name) => { const onSearch = (name) => {
console.log(name.value) console.log(name.value)
@ -509,63 +558,121 @@
getApplyList(name.value) getApplyList(name.value)
} }
const getApplyList = () => { const getApplyList = () => {
contentList.data = []
total.value = 0
const params = { const params = {
page: page.value, page: page.value,
limit: 4, limit: 4,
// ended: ended.value, ended: ended.value,
// name: name.value, // name: name.value,
} }
if (typeIndex.value == 0) { if (typeIndex.value == 0) {
getTabilityapplication(params).then((res) => { getTabilityapplication(params).then((res) => {
contentList.data = []
console.log('获取我的申请===============>', res.data.data) console.log('获取我的申请===============>', res.data.data)
contentList.data = res.data.data.list contentList.data = res.data.data.list
total.value = res.data.data.total total.value = res.data.data.total
showType.value = '能力申请'
initNum2()
}) })
} else if (typeIndex.value !== 1) { } else if (typeIndex.value !== 1) {
switch (typeIndex.value) { switch (typeIndex.value) {
case 2: case 2:
params.processDefinitionKey = 'resourcemountapply' params.processDefinitionKey = 'resourcemountapply'
processDefinitionKey.value = 'resourcemountapply'
break break
case 3: case 3:
params.processDefinitionKey = 'resourcundercarriageapply' params.processDefinitionKey = 'resourcundercarriageapply'
processDefinitionKey.value = 'resourcundercarriageapply'
break break
case 4: case 4:
params.processDefinitionKey = 'abilitydemandapply' params.processDefinitionKey = 'abilitydemandapply'
processDefinitionKey.value = 'abilitydemandapply'
break break
case 5: case 5:
params.processDefinitionKey = 'comment_review' params.processDefinitionKey = 'comment_review'
processDefinitionKey.value = 'comment_review'
break break
} }
getMyProcessInstancePage(params).then((res) => { getMyProcessInstancePage(params).then((res) => {
contentList.data = []
// initNum(name.value) // initNum(name.value)
console.log(res.data.data.list) console.log(res.data.data.list)
contentList.data = res.data.data.list contentList.data = res.data.data.list
total.value = res.data.data.total total.value = res.data.data.total
if (contentList.data && contentList.data.length > 0) { initNum()
contentList.data.map((item) => { switch (typeIndex.value) {
const param = { case 2:
page: 1, contentList.data.map((val) => {
limit: 4, nengliziyuanshangjiaapply(val.businessKey).then((res1) => {
processInstanceId: item.processInstanceId, console.log('上架===========>', res1.data.data)
} val.title = res1.data.data.resourceDTO.name
getTaskHandleDetailInfo(qs.stringify(param)).then((res) => { val.dto = res1.data.data.resourceDTO
console.log('申请结果', res.data.data, res.data.data[0].comment) showType.value = '能力上架'
const result = res.data.data })
if (result && result.length > 2) {
item.comment =
result[0].comment.length > result[1].comment.length
? result[0].comment
: result[1].comment
} else {
item.comment = result[0].comment
}
}) })
return item break
}) case 3:
contentList.data.map((val) => {
selectOneDel(val.businessKey).then((res1) => {
console.log('下架===========>', res1.data.data)
val.title = res1.data.data.name
val.dto = res1.data.data
showType.value = '能力下架'
})
})
// params.processDefinitionKey = 'resourcundercarriageapply'
break
case 4:
contentList.data.map((val) => {
getDemandForm(val.businessKey).then((res1) => {
console.log('需求===========>', res1.data.data)
val.title = res1.data.data.demandSubject
val.resourceStatusTip = res1.data.data.flagTip
val.dto = res1.data.data
showType.value = '能力需求'
})
})
// params.processDefinitionKey = 'abilitydemandapply'
break
case 5:
contentList.data.map((val) => {
demandComment(val.businessKey).then((res1) => {
console.log('评论===========>', res1.data.data)
val.title = res1.data.data.comment
val.resourceStatusTip = res1.data.data.delFlagTip
val.dto = res1.data.data
showType.value = '需求评论'
})
})
// params.processDefinitionKey = 'comment_review'
break
} }
// if (contentList.data && contentList.data.length > 0) {
// contentList.data.map((item) => {
// const param = {
// page: 1,
// limit: 4,
// processInstanceId: item.processInstanceId,
// }
// getTaskHandleDetailInfo(qs.stringify(param)).then((res) => {
// console.log('', res.data.data, res.data.data[0].comment)
// const result = res.data.data
// if (result && result.length > 2) {
// item.comment =
// result[0].comment.length > result[1].comment.length
// ? result[0].comment
// : result[1].comment
// } else {
// item.comment = result[0].comment
// }
// })
// return item
// })
// }
}) })
} else {
contentList.data = []
num.value = []
showType.value = ''
} }
} }
const handleCurrentChange = (val) => { const handleCurrentChange = (val) => {

View File

@ -0,0 +1,210 @@
<!--
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-14 16:24:54
* @Description:我的申请 能力申请 查看详情
-->
<template>
<div class="top">
<div class="title">基本信息</div>
<div class="main">
<div>
<p class="item">
<span>申请单号{{ props.refObj.applyNumber || '--' }}</span>
</p>
<p class="item">
<span>下架原因{{ props.refObj.dto.undercarriageReason }}</span>
</p>
<p class="item">
<span>下架发起人{{ props.refObj.dto.undercarriageUserName }}</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: 2.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;
}
.result:hover {
color: #0058e1;
cursor: pointer;
}
}
}
}
}
}
}
}
</style>

View File

@ -0,0 +1,229 @@
<!--
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-14 14:50:30
* @Description:我的申请 能力申请 查看详情
-->
<template>
<div class="top">
<!-- <div class="title">基本信息</div>
<div class="main">
<div>
<p class="item">
<span>申请标题{{ title }}</span>
<span>申请单号{{ applyNumber || '--' }}</span>
<span>应用系统{{ applicationSystem }}</span>
</p>
<p class="item">
<span>申请人信息{{ user }}</span>
<span>电话{{ phone }}</span>
<span>单位{{ unit }}</span>
</p>
<p>
<span>应用场景{{}}</span>
</p>
<p>
<span>应用背景{{ applicationBackground }}</span>
</p>
<p>
<span>期望效果{{ effectWish }}</span>
</p>
<p v-if="props.refObj.enclosure">
<span>
申请单附件
<span class="enclosure">
{{ enclosureName || '--' }}
<span class="btn">预览</span>
</span>
</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: 2.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;
}
.result:hover {
color: #0058e1;
cursor: pointer;
}
}
}
}
}
}
}
}
</style>

View File

@ -0,0 +1,214 @@
<!--
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-14 16:25:57
* @Description:我的申请 能力申请 查看详情
-->
<template>
<div class="top">
<div class="title">基本信息</div>
<div class="main">
<div>
<p class="item">
<span>申请单号{{ props.refObj.applyNumber || '--' }}</span>
<span>能力名称{{ props.refObj.dto.name }}</span>
<span>能力类型{{ props.refObj.dto.type }}</span>
</p>
<p class="item">
<span>共享条件{{ props.refObj.dto.shareCondition }}</span>
<span>能力描述{{ props.refObj.dto.description }}</span>
<span>归属部门{{ props.refObj.dto.deptName }}</span>
</p>
<p v-for="item in props.refObj.dto.infoList" :key="item.attrType">
<span>{{ item.attrType + '' + item.attrValue }}</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: 2.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;
}
.result:hover {
color: #0058e1;
cursor: pointer;
}
}
}
}
}
}
}
}
</style>