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 {
// width: 200px;
// }
::v-deep .el-upload-list__item-name {
width: 400px;
}
</style>

View File

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

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian
* @Date: 2022-03-29 16:45:25
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-14 09:34:08
* @LastEditTime: 2022-07-14 10:58:46
* @Description: 告诉大家这是什么
-->
<!DOCTYPE html>
@ -49,7 +49,7 @@
window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
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['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['backUrl'] = 'http://124.222.94.39:9797';

View File

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

View File

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

View File

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

View File

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

View File

@ -1,24 +1,45 @@
<template>
<div class="list-box">
<div class="list-item" v-for="(item, i) in newDataList" :key="i" @click.stop="showChildren(item)">
<div
class="list-item"
v-for="(item, i) in newDataList"
:key="i"
@click.stop="showChildren(item)"
>
<a-tooltip placement="top" :title="item.title" arrow-point-at-center>
<div :class="[newClickData.title === item.title ? 'select' : '', level === 1 ? 'parent' : '', judgeLeaf(item) ? 'leaf' : '']"
class="list-text">
<div
:class="[
newClickData.title === item.title ? 'select' : '',
level === 1 ? 'parent' : '',
judgeLeaf(item) ? 'leaf' : '',
]"
class="list-text"
>
{{ item.title }}
<DownOutlined v-show="!item.show && !judgeLeaf(item)" />
<UpOutlined v-show="item.show && !judgeLeaf(item)" />
</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>
<abilityDocTree
:dataList="item.children"
@tree-click="handleTreeItem"
:clickData="newClickData"
:level="newLevel + 1"
></abilityDocTree>
</div>
</div>
</div>
</template>
<script setup>
import { defineComponent, onMounted, ref, watch, defineProps, nextTick } from 'vue';
import {
defineComponent,
onMounted,
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'
@ -26,15 +47,17 @@ import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
const props = defineProps({
dataList: {
type: Array,
default: () => []
default: () => [],
},
level: {
type: Number,
default: 1
default: 1,
},
clickData: {
type: Object,
default: () => { title: '' }
default: () => {
title: ''
},
},
})
@ -63,7 +86,7 @@ const showChildren = (item) => {
}
}
if (item.children && item.children.length > 0) {
item.show = !item.show;
item.show = !item.show
}
}
@ -87,9 +110,8 @@ watch(
const emit = defineEmits(['treeClick'])
const handleTreeItem = (item) => {
emit('tree-click', item);
emit('tree-click', item)
}
</script>
<style lang="less" scoped>
.list-text {

View File

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

View File

@ -1,6 +1,20 @@
<template>
<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>
<img :src="getResourceURL()" alt="" />
@ -16,6 +30,11 @@
</template>
<script setup>
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 Cookies from 'js-cookie'
// import { baseURL } from '@/config'
@ -34,23 +53,18 @@
processInstanceId: { type: String, default: null },
resourceId: { type: String, default: null },
refObj: { type: Object, default: null },
showType: { type: String, default: null },
})
const refObj = ref({})
const showType = ref('')
// eslint-disable-next-line vue/no-setup-props-destructure
refObj.value = props.refObj
// eslint-disable-next-line vue/no-setup-props-destructure
showType.value = props.showType
//
const dataSource = reactive({ data: [] })
// 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 xhr = new XMLHttpRequest()
xhr.open('get', path)
@ -194,20 +208,31 @@
const getLiuZhuanInfo = () => {
const params = qs.stringify({
page: 1,
limit: 4,
processInstanceId: props.processInstanceId,
})
getTaskHandleDetailInfo(params).then((res) => {
let arr = []
res.data.data.forEach((item) => {
dataSource.data.push(item)
arr.push(item)
})
dataSource.data.push([props.processInstanceId, arr])
})
}
onMounted(() => {
// 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 = () => {

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