305 lines
9.0 KiB
Vue
305 lines
9.0 KiB
Vue
<!--使用方式-->
|
||
<template>
|
||
<div class="application-deployment-and-security" v-if="true">
|
||
<div class="title">
|
||
<DetalsTitle
|
||
:title="dataFrom.title"
|
||
:type="dataFrom.englishTitle"
|
||
></DetalsTitle>
|
||
</div>
|
||
<div class="content">
|
||
<div class="content-card">
|
||
<div class="left">
|
||
<p>{{ dataFrom.linkName }}</p>
|
||
<a-tooltip>
|
||
<template #title>{{ dataFrom.link }}</template>
|
||
<p>{{ dataFrom.link }}</p>
|
||
</a-tooltip>
|
||
</div>
|
||
<div class="right">
|
||
<div @click="technical()">技术文档</div>
|
||
<div @click="technicaltow()">新手指引</div>
|
||
</div>
|
||
</div>
|
||
<div class="content-card">
|
||
<div v-for="(item, index) in dataFrom.content" :key="index">
|
||
<div class="card-title">
|
||
{{ item.childrenTitle }}
|
||
</div>
|
||
<div class="card-content">
|
||
<div v-for="carditem in item.childrenContent" :key="carditem">
|
||
<div>
|
||
<span>{{ carditem.attrType }}:</span>
|
||
<a-tooltip>
|
||
<template #title>{{ carditem.attrValue }}</template>
|
||
<span>{{ carditem.attrValue }}</span>
|
||
</a-tooltip>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<script setup>
|
||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||
import { ref, defineProps, watch } from 'vue'
|
||
import { pinyin } from 'pinyin-pro'
|
||
let flag = ref(true)
|
||
let dataFrom = ref({
|
||
title: '使用方式',
|
||
englishTitle: 'USAGE',
|
||
linkName: '组件地址',
|
||
link: '',
|
||
content: [
|
||
{
|
||
childrenTitle: '归属部门',
|
||
childrenContent: [
|
||
{
|
||
attrType: '归属部门名称',
|
||
attrValue: '------',
|
||
},
|
||
{
|
||
attrType: '部门联系人',
|
||
attrValue: '------',
|
||
},
|
||
{
|
||
attrType: '联系人电话',
|
||
attrValue: '------',
|
||
},
|
||
],
|
||
},
|
||
{
|
||
childrenTitle: '服务商信息',
|
||
childrenContent: [
|
||
{
|
||
attrType: '服务商名称',
|
||
attrValue: '------',
|
||
},
|
||
{
|
||
attrType: '服务商联系人',
|
||
attrValue: '------',
|
||
},
|
||
{
|
||
attrType: '联系人电话',
|
||
attrValue: '------',
|
||
},
|
||
],
|
||
},
|
||
],
|
||
})
|
||
console.log(dataFrom.value)
|
||
//数据初始化
|
||
const props = defineProps({
|
||
dataList: { type: Object, default: null },
|
||
})
|
||
if (props.dataList.infoList) {
|
||
let obj = props.dataList.infoList.filter(
|
||
(item) => item.attrType === '组件地址'
|
||
)[0]
|
||
dataFrom.value.content[0].childrenContent[1].attrValue =
|
||
props.dataList.deptContacts || '--'
|
||
dataFrom.value.content[0].childrenContent[2].attrValue =
|
||
props.dataList.deptPhone || '--'
|
||
dataFrom.value.content[0].childrenContent[0].attrValue =
|
||
props.dataList.deptName || '--'
|
||
props.dataList.infoList.map((item) => {
|
||
if (item.attrType == '组件地址') {
|
||
dataFrom.value.link = item.attrValue || '暂无数据'
|
||
} else if (item.attrType == '服务商联系人') {
|
||
dataFrom.value.content[1].childrenContent[1].attrValue =
|
||
item.attrValue || '--'
|
||
} else if (item.attrType == '服务商联系电话') {
|
||
dataFrom.value.content[1].childrenContent[2].attrValue =
|
||
item.attrValue || '--'
|
||
} else if (item.attrType == '服务商' || item.attrType == '服务商名') {
|
||
dataFrom.value.content[1].childrenContent[0].attrValue =
|
||
item.attrValue || '--'
|
||
}
|
||
})
|
||
if (dataFrom.value.link === '') {
|
||
dataFrom.value.link = '暂无数据'
|
||
}
|
||
}
|
||
console.log('obj', dataFrom.value)
|
||
//技术文档
|
||
function technical() {
|
||
// 拼接路径
|
||
// const type = pinyin(props.dataList.type, {
|
||
// pattern: 'initial',
|
||
// }).replace(/\s*/g, '')
|
||
// // 打开文档
|
||
// const id = props.dataList.id
|
||
// window.open(window.SITE_CONFIG.frontUrl + type + '/' + id + '.md', '_blank')
|
||
// console.log('dataFrom.value.link', dataFrom.value.link)
|
||
let obj = props.dataList.infoList.filter(
|
||
(item) => item.attrType === '技术文档'
|
||
)[0]
|
||
console.log('dataFrom.value.link', obj.attrValue)
|
||
window.open(
|
||
window.SITE_CONFIG.frontUrl +
|
||
'hisense_office/onlinePreview?url=' +
|
||
btoa(encodeURI(obj.attrValue))
|
||
)
|
||
}
|
||
function technicaltow() {
|
||
let obj = props.dataList.infoList.filter(
|
||
(item) => item.attrType === '使用手册'
|
||
)[0]
|
||
console.log('dataFrom.value.link', obj.attrValue)
|
||
window.open(
|
||
window.SITE_CONFIG.previewUrl +
|
||
'hisense_office/onlinePreview?url=' +
|
||
btoa(encodeURI(obj.attrValue))
|
||
)
|
||
}
|
||
watch(
|
||
() => props.dataList,
|
||
(val) => {
|
||
if (val) {
|
||
let obj = val.infoList.filter((item) => item.attrType === '组件地址')[0]
|
||
dataFrom.value.content[0].childrenContent[1].attrValue =
|
||
props.dataList.deptContacts || '--'
|
||
dataFrom.value.content[0].childrenContent[2].attrValue =
|
||
props.dataList.deptPhone || '--'
|
||
dataFrom.value.content[0].childrenContent[0].attrValue =
|
||
props.dataList.deptName || '--'
|
||
props.dataList.infoList.map((item) => {
|
||
if (item.attrType == '组件地址') {
|
||
dataFrom.value.link = item.attrValue || '暂无数据'
|
||
} else if (item.attrType == '服务商联系人') {
|
||
dataFrom.value.content[1].childrenContent[1].attrValue =
|
||
item.attrValue || '--'
|
||
} else if (item.attrType == '服务商联系电话') {
|
||
dataFrom.value.content[1].childrenContent[2].attrValue =
|
||
item.attrValue || '--'
|
||
} else if (item.attrType == '服务商' || item.attrType == '服务商名') {
|
||
dataFrom.value.content[1].childrenContent[0].attrValue =
|
||
item.attrValue || '--'
|
||
}
|
||
})
|
||
if (dataFrom.value.link === '') {
|
||
dataFrom.value.link = '暂无数据'
|
||
}
|
||
}
|
||
}
|
||
)
|
||
</script>
|
||
|
||
<style lang="less" scoped>
|
||
.application-deployment-and-security {
|
||
padding: 0.8rem 0;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
.title {
|
||
margin-bottom: 0.3rem;
|
||
}
|
||
.content {
|
||
display: flex;
|
||
width: 14rem;
|
||
justify-content: space-between;
|
||
.content-card {
|
||
height: 1.8rem;
|
||
width: 6.6rem;
|
||
border-radius: 0.2rem;
|
||
background: linear-gradient(
|
||
to right,
|
||
rgba(113, 132, 252, 0.4),
|
||
rgba(148, 163, 252, 0.4)
|
||
);
|
||
padding: 0 0.3rem;
|
||
display: flex;
|
||
align-items: center;
|
||
& > div {
|
||
width: 3.1rem;
|
||
padding-left: 0.3rem;
|
||
}
|
||
& > div:first-child {
|
||
padding-left: 0;
|
||
border-right: 0.01rem solid #b0b9f1;
|
||
}
|
||
.card-title {
|
||
font-size: 0.26rem;
|
||
color: #212956;
|
||
margin-bottom: 0.2rem;
|
||
line-height: 0.26rem;
|
||
}
|
||
.card-content {
|
||
white-space: nowrap;
|
||
div {
|
||
display: block;
|
||
margin-right: 0.2rem;
|
||
color: rgba(33, 41, 86, 0.8);
|
||
font-size: 0.2rem;
|
||
max-width: 2.8rem;
|
||
div {
|
||
max-width: 2.8rem;
|
||
display: flex;
|
||
// overflow: hidden;
|
||
// text-overflow: ellipsis;
|
||
// display: -webkit-box;
|
||
// -webkit-box-orient: vertical;
|
||
// -webkit-line-clamp: 1;
|
||
& > span:last-child {
|
||
display: inline-block;
|
||
width: 1.49rem;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
word-break: break-all;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.content-card:first-child {
|
||
position: relative;
|
||
.left {
|
||
border: 0;
|
||
p:first-child {
|
||
font-size: 0.26rem;
|
||
color: #212956;
|
||
margin-bottom: 0.2rem;
|
||
line-height: 0.26rem;
|
||
}
|
||
p:last-child {
|
||
font-size: 0.2rem;
|
||
color: #212956;
|
||
line-height: 0.26rem;
|
||
max-width: 4.5rem;
|
||
display: -webkit-box;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-line-clamp: 2;
|
||
overflow: hidden;
|
||
word-break: break-all;
|
||
}
|
||
}
|
||
.right {
|
||
position: absolute;
|
||
right: 0.6rem;
|
||
top: 50%;
|
||
width: 1.28rem;
|
||
margin-top: -0.45rem;
|
||
cursor: pointer;
|
||
& > div {
|
||
width: 1.28rem;
|
||
height: 0.4rem;
|
||
background: #ffffff;
|
||
border-radius: 0.2rem;
|
||
font-size: 0.2rem;
|
||
color: #526aff;
|
||
text-align: center;
|
||
line-height: 0.4rem;
|
||
}
|
||
& > div:first-child {
|
||
margin-bottom: 0.2rem;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style>
|