556 lines
18 KiB
Vue
556 lines
18 KiB
Vue
<template>
|
||
<!-- 使用方式 -->
|
||
<div class="usage-mode" v-if="true">
|
||
<div class="tltle">
|
||
<DetalsTitle
|
||
:title="dataFrom.title"
|
||
:type="dataFrom.englishTitle"
|
||
></DetalsTitle>
|
||
</div>
|
||
<!-- 青岛市局 -->
|
||
<div style="width: 100%; display: flex; justify-content: center"
|
||
>
|
||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||
<div class="content-left" v-if="item.titleType === '调用接口'">
|
||
<div class="left">
|
||
<div class="content-left-title">
|
||
<span>{{ item.title }}:{{ item.titleType }}</span>
|
||
</div>
|
||
<div class="content-left-content">
|
||
<p>
|
||
<span>{{ item.link.name }}</span>
|
||
<a-tooltip>
|
||
<template #title>
|
||
{{
|
||
approveStatus === '通过'
|
||
? item.link.value
|
||
: '请申请后查看'
|
||
}}
|
||
</template>
|
||
<span :class="{ 'blur-word': approveStatus !== '通过' }">
|
||
{{ item.link.value }}
|
||
</span>
|
||
</a-tooltip>
|
||
</p>
|
||
<p>
|
||
<span>{{ item.postMethod.name }}</span>
|
||
<span>{{ item.postMethod.value }}</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="right">
|
||
<div @click="technical()">技术文档</div>
|
||
<!-- <div @click="technicalNew()">新手指引</div> -->
|
||
<!-- <div @click="SDKClick()">SDK安装包</div> -->
|
||
</div>
|
||
</div>
|
||
<div class="content-left" v-else-if="item.titleType === '平台对接'">
|
||
<div class="left">
|
||
<div class="content-left-title">
|
||
<span>{{ item.title }}:{{ item.titleType }}</span>
|
||
</div>
|
||
<div class="content-left-content">
|
||
<p>
|
||
<span>{{ item.linkPlatform.name }}</span>
|
||
<a-tooltip v-if="approveStatus == '通过'">
|
||
<template #title>{{ item.linkPlatform.value }}</template>
|
||
<span>{{ item.linkPlatform.value }}</span>
|
||
</a-tooltip>
|
||
<a-tooltip v-else>
|
||
<template #title>请申请后查看平台地址</template>
|
||
<span>****************</span>
|
||
</a-tooltip>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="right">
|
||
<div @click="technical()">技术文档</div>
|
||
<!-- <div @click="technicalNew()">新手指引</div> -->
|
||
<!-- <div @click="SDKClick()">SDK安装包</div> -->
|
||
</div>
|
||
</div>
|
||
<div class="content-left" v-else-if="item.titleType === 'SDK'">
|
||
<div class="left">
|
||
<div class="content-left-title">
|
||
<span>{{ item.title }}:{{ item.titleType }}</span>
|
||
</div>
|
||
</div>
|
||
<div class="right">
|
||
<div @click="technical()">技术文档</div>
|
||
<!-- <div @click="technicalNew()">新手指引</div> -->
|
||
<div @click="SDKClick()">SDK安装包</div>
|
||
</div>
|
||
</div>
|
||
<div class="content-right">
|
||
<div class="content-right-left">
|
||
<div class="content-right-title">{{ item.contact }}</div>
|
||
<div class="content-right-content">
|
||
<p>
|
||
<span>{{ item.facilitator.name }}</span>
|
||
<a-tooltip>
|
||
<template #title>{{ item.facilitator.value }}</template>
|
||
<span>{{ item.facilitator.value }}</span>
|
||
</a-tooltip>
|
||
</p>
|
||
<p>
|
||
<span>{{ item.people.name }}</span>
|
||
<a-tooltip>
|
||
<template #title>
|
||
{{
|
||
approveStatus === '通过'
|
||
? item.people.value
|
||
: '请申请后查看'
|
||
}}
|
||
</template>
|
||
<span :class="{ 'blur-word': approveStatus !== '通过' }">
|
||
{{ item.people.value }}
|
||
</span>
|
||
</a-tooltip>
|
||
</p>
|
||
<p>
|
||
<span>{{ item.phone.name }}</span>
|
||
<a-tooltip>
|
||
<template #title>
|
||
{{
|
||
approveStatus === '通过'
|
||
? item.phone.value
|
||
: '请申请后查看'
|
||
}}
|
||
</template>
|
||
<span :class="{ 'blur-word': approveStatus !== '通过' }">
|
||
{{ item.phone.value }}
|
||
</span>
|
||
</a-tooltip>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="content-right-right">
|
||
<div class="content-right-title">{{ item.contact2 }}</div>
|
||
<div class="content-right-content">
|
||
<p>
|
||
<span>{{ item.facilitator2.name }}</span>
|
||
<a-tooltip>
|
||
<template #title>{{ item.facilitator2.value }}</template>
|
||
<span>{{ item.facilitator2.value }}</span>
|
||
</a-tooltip>
|
||
</p>
|
||
<p>
|
||
<span>{{ item.people2.name }}</span>
|
||
<a-tooltip>
|
||
<template #title>{{ item.people2.value }}</template>
|
||
<span>{{ item.people2.value }}</span>
|
||
</a-tooltip>
|
||
</p>
|
||
<p>
|
||
<span>{{ item.phone2.name }}</span>
|
||
<a-tooltip>
|
||
<template #title>{{ item.phone2.value }}</template>
|
||
<span>{{ item.phone2.value }}</span>
|
||
</a-tooltip>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- <div v-show="approveStatus !== '通过'" class="contentOther">
|
||
<img src="~@/assets/detailsAll/uesBefore.png" />
|
||
<div class="contentOtherRight">
|
||
<p>请在申请能力后返回查看使用方式</p>
|
||
<div @click="toView()">进入能力申请</div>
|
||
</div>
|
||
</div> -->
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<script setup>
|
||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||
import { pinyin } from 'pinyin-pro'
|
||
import { ref, defineProps, watch } from 'vue'
|
||
import { message } from 'ant-design-vue'
|
||
import { useRouter } from 'vue-router'
|
||
const router = useRouter()
|
||
|
||
const approveStatus = ref('通过')
|
||
const whoShow1 = ref(whoShow)
|
||
let dataFrom = ref({
|
||
title: '使用方式',
|
||
englishTitle: 'USAGE',
|
||
SDK: '',
|
||
content: [
|
||
{
|
||
title: '使用方式',
|
||
titleType: '',
|
||
link: {
|
||
name: '服务接口:',
|
||
value: '',
|
||
},
|
||
linkPlatform: {
|
||
name: '平台地址:',
|
||
value: '',
|
||
},
|
||
postMethod: {
|
||
name: '请求方式:',
|
||
value: '',
|
||
},
|
||
linkValue: '',
|
||
contact: '归属部门',
|
||
facilitator: { name: '归属部门:', value: '' },
|
||
people: { name: '部门联系人:', value: '' },
|
||
phone: {
|
||
name: '联系人电话:',
|
||
value: '',
|
||
},
|
||
contact2: '服务商',
|
||
facilitator2: { name: '服务商:', value: '' },
|
||
people2: { name: '服务商联系人:', value: '' },
|
||
phone2: {
|
||
name: '联系人电话:',
|
||
value: '',
|
||
},
|
||
},
|
||
],
|
||
})
|
||
//数据初始化
|
||
const props = defineProps({
|
||
dataList: { type: Object, default: null },
|
||
})
|
||
const flag = ref(true)
|
||
//立即申请
|
||
function toView() {
|
||
// window.open(newpage.href, '_blank')
|
||
console.log('一键申请===================>', props.dataList)
|
||
localStorage.setItem(
|
||
'applyList',
|
||
JSON.stringify([
|
||
{
|
||
arr: [
|
||
{
|
||
delFlag: props.dataList.delFlag,
|
||
description: props.dataList.description,
|
||
resourceId: props.dataList.id,
|
||
resourceName: props.dataList.name,
|
||
time: props.dataList.createDate,
|
||
type: props.dataList.type,
|
||
componentType: '智能算法',
|
||
},
|
||
],
|
||
deptId: props.dataList.deptId,
|
||
deptName: props.dataList.deptName,
|
||
},
|
||
])
|
||
)
|
||
router.push({
|
||
path: '/apply',
|
||
})
|
||
}
|
||
if (props.dataList.infoList) {
|
||
let obj = true
|
||
if (!obj) {
|
||
flag.value = false
|
||
} else {
|
||
// eslint-disable-next-line vue/no-setup-props-destructure
|
||
dataFrom.value.content[0].link.value = props.dataList.apiUrl
|
||
dataFrom.value.content[0].facilitator.value = props.dataList.deptName
|
||
dataFrom.value.content[0].people.value = props.dataList.deptContacts
|
||
dataFrom.value.content[0].phone.value = props.dataList.deptPhone
|
||
dataFrom.value.content[0].postMethod.value = props.dataList.apiMethodType
|
||
// approveStatus.value = props.dataList.approveStatus
|
||
console.log('dataList', props.dataList)
|
||
props.dataList.infoList.map((item) => {
|
||
if (item.attrType === '组件地址') {
|
||
dataFrom.value.content[0].linkValue = item.attrValue || '--'
|
||
} else if (item.attrType === '服务商') {
|
||
dataFrom.value.content[0].facilitator2.value = item.attrValue || '--'
|
||
} else if (item.attrType === '服务商联系人') {
|
||
dataFrom.value.content[0].people2.value = item.attrValue || '--'
|
||
} else if (item.attrType === '服务商联系电话') {
|
||
dataFrom.value.content[0].phone2.value = item.attrValue || '--'
|
||
} else if (item.attrType === '服务接口') {
|
||
dataFrom.value.content[0].link.value = item.attrValue || '--'
|
||
} else if (item.attrType === '平台地址') {
|
||
dataFrom.value.content[0].linkPlatform.value = item.attrValue || '--'
|
||
} else if (item.attrType === 'SDK安装包') {
|
||
dataFrom.value.SDK = item.attrValue || '--'
|
||
} else if (item.attrType === '使用方式') {
|
||
dataFrom.value.content[0].titleType = item.attrValue || '--'
|
||
}
|
||
})
|
||
}
|
||
}
|
||
watch(
|
||
() => props.dataList,
|
||
(val) => {
|
||
if (val) {
|
||
let obj = true
|
||
if (!obj) {
|
||
flag.value = false
|
||
} else {
|
||
dataFrom.value.content[0].link.value = val.apiUrl
|
||
dataFrom.value.content[0].facilitator.value = val.deptName
|
||
dataFrom.value.content[0].people.value = val.deptContacts
|
||
dataFrom.value.content[0].phone.value = val.deptPhone
|
||
dataFrom.value.content[0].postMethod.value = val.apiMethodType
|
||
approveStatus.value = val.approveStatus
|
||
console.log('dataList', val)
|
||
val.infoList.map((item) => {
|
||
if (item.attrType === '组件地址') {
|
||
dataFrom.value.content[0].linkValue = item.attrValue || '--'
|
||
} else if (item.attrType === '服务商') {
|
||
dataFrom.value.content[0].facilitator2.value =
|
||
item.attrValue || '--'
|
||
} else if (item.attrType === '服务商联系人') {
|
||
dataFrom.value.content[0].people2.value = item.attrValue || '--'
|
||
} else if (item.attrType === '服务商联系电话') {
|
||
dataFrom.value.content[0].phone2.value = item.attrValue || '--'
|
||
} else if (item.attrType === '服务接口') {
|
||
dataFrom.value.content[0].link.value = item.attrValue || '--'
|
||
} else if (item.attrType === '平台地址') {
|
||
dataFrom.value.content[0].linkPlatform.value =
|
||
item.attrValue || '--'
|
||
} else if (item.attrType === 'SDK安装包') {
|
||
dataFrom.value.SDK = item.attrValue || '--'
|
||
} else if (item.attrType === '使用方式') {
|
||
dataFrom.value.content[0].titleType = item.attrValue || '--'
|
||
}
|
||
})
|
||
}
|
||
}
|
||
}
|
||
)
|
||
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]
|
||
if (obj) {
|
||
window.open(window.SITE_CONFIG.frontUrl + obj.attrValue)
|
||
} else {
|
||
message.config({
|
||
top: '100px', // 距离顶部的位置
|
||
})
|
||
message.error('暂未开放技术文档')
|
||
}
|
||
}
|
||
function technicalNew() {
|
||
// 拼接路径
|
||
// 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')
|
||
let obj = props.dataList.infoList.filter(
|
||
(item) => item.attrType === '使用手册'
|
||
)[0]
|
||
console.log('dataFrom.value.link', obj.attrValue)
|
||
if (obj) {
|
||
window.open(
|
||
window.SITE_CONFIG.previewUrl +
|
||
'hisense_office/onlinePreview?url=' +
|
||
btoa(encodeURI(obj.attrValue))
|
||
)
|
||
} else {
|
||
message.config({
|
||
top: '100px', // 距离顶部的位置
|
||
})
|
||
message.error('暂未开放使用手册')
|
||
}
|
||
}
|
||
function SDKClick() {
|
||
let obj = props.dataList.infoList.filter(
|
||
(item) => item.attrType === 'SDK安装包'
|
||
)[0]
|
||
if (obj) {
|
||
window.open(dataFrom.value.SDK)
|
||
} else {
|
||
message.config({
|
||
top: '100px', // 距离顶部的位置
|
||
})
|
||
message.error('暂未上传SDK安装包')
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="less" scoped>
|
||
.usage-mode {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
padding: 0.8rem 0;
|
||
.blur-word {
|
||
filter: blur(4px);
|
||
}
|
||
.content {
|
||
margin-top: 0.3rem;
|
||
display: flex;
|
||
|
||
.content-left {
|
||
height: 1.5rem;
|
||
width: 6.2rem;
|
||
background: url('~@/assets/detailsAll/business/business_usage_mode_bg.png')
|
||
no-repeat;
|
||
background-position: center;
|
||
background-size: 100% 100%;
|
||
border-radius: 0.1rem;
|
||
margin-right: 0.6rem;
|
||
box-shadow: 0rem 0.05rem 0.15rem rgba(82, 106, 255, 0.4);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 0 0.35rem;
|
||
|
||
.left {
|
||
.content-left-title {
|
||
font-size: 0.26rem;
|
||
line-height: 0.26rem;
|
||
color: #212956;
|
||
margin-bottom: 0.2rem;
|
||
|
||
span:first-child {
|
||
margin-right: 0.1rem;
|
||
}
|
||
}
|
||
|
||
.content-left-content {
|
||
width: 4.2rem;
|
||
font-size: 0.2rem;
|
||
color: rgba(33, 41, 86, 0.8);
|
||
line-height: 0.2rem;
|
||
|
||
p {
|
||
display: -webkit-box;
|
||
margin-bottom: 0.1rem;
|
||
|
||
span:last-of-type {
|
||
width: 298px;
|
||
display: -webkit-box;
|
||
overflow: hidden;
|
||
-webkit-line-clamp: 1;
|
||
-webkit-box-orient: vertical;
|
||
word-break: break-all;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.right {
|
||
div {
|
||
height: 0.4rem;
|
||
width: 1.3rem;
|
||
background: #ffffff;
|
||
border-radius: 0.2rem;
|
||
color: #526aff;
|
||
font-size: 0.2rem;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
cursor: pointer;
|
||
}
|
||
|
||
div:first-child {
|
||
margin-bottom: 0.2rem;
|
||
}
|
||
}
|
||
}
|
||
|
||
.content-right {
|
||
height: 1.5rem;
|
||
width: 6.2rem;
|
||
background: url('~@/assets/detailsAll/business/business_usage_mode_bg.png')
|
||
no-repeat;
|
||
background-position: center;
|
||
background-size: 100% 100%;
|
||
border-radius: 0.1rem;
|
||
box-shadow: 0rem 0.05rem 0.15rem rgba(82, 106, 255, 0.4);
|
||
display: flex;
|
||
justify-content: space-around;
|
||
align-items: center;
|
||
padding: 0 0.3rem;
|
||
|
||
.content-right-left {
|
||
border-right: 0.01rem solid #707fe0;
|
||
padding-right: 0.1rem;
|
||
margin-right: 0.2rem;
|
||
}
|
||
|
||
.content-right-title {
|
||
font-size: 0.26rem;
|
||
line-height: 0.26rem;
|
||
color: #212956;
|
||
margin-bottom: 0.15rem;
|
||
}
|
||
|
||
.content-right-content {
|
||
display: flex;
|
||
font-size: 0.16rem;
|
||
color: rgba(33, 41, 86, 0.8);
|
||
line-height: 0.2rem;
|
||
overflow: hidden;
|
||
-webkit-line-clamp: 1;
|
||
word-break: break-all;
|
||
-webkit-box-orient: vertical;
|
||
flex-direction: column;
|
||
|
||
p {
|
||
width: 2.3rem;
|
||
height: 0.2rem;
|
||
display: -webkit-box;
|
||
overflow: hidden;
|
||
margin-bottom: 0.08rem;
|
||
// white-space: nowrap;
|
||
-webkit-line-clamp: 1;
|
||
word-break: break-all;
|
||
-webkit-box-orient: vertical;
|
||
margin-right: 0.15rem;
|
||
|
||
span {
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.contentOther {
|
||
width: 80%;
|
||
height: 4rem;
|
||
border: 1px dashed #7b98fd;
|
||
margin-top: 0.3rem;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
img {
|
||
margin-right: 2rem;
|
||
}
|
||
.contentOtherRight {
|
||
p {
|
||
font-weight: bold;
|
||
font-size: 0.2rem;
|
||
}
|
||
div {
|
||
width: 1.3rem;
|
||
height: 0.4rem;
|
||
line-height: 0.4rem;
|
||
background: #0885ff;
|
||
color: #ffffff;
|
||
border-radius: 0.05rem;
|
||
font-size: 0.18rem;
|
||
text-align: center;
|
||
cursor: pointer;
|
||
transition: all 0.3s;
|
||
}
|
||
div:hover {
|
||
background: #359bff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style>
|