hi-ucs/front/src/views/home/algorithmCompare.vue

918 lines
21 KiB
Vue
Raw Normal View History

2022-06-23 12:43:02 +08:00
<template>
2022-06-30 10:12:28 +08:00
<div class="bg">
<home-header></home-header>
<div class="box-container">
<a-spin
size="large"
v-if="loadingPage"
class="loading-box"
:spinning="loadingPage"
/>
<div class="nav-box">
<a-breadcrumb>
<a-breadcrumb-item>能力集市</a-breadcrumb-item>
<a-breadcrumb-item>算法对比</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="content">
<a-anchor
:affix="false"
class="left"
:getContainer="getId"
@click="handleClickTab"
>
<a-anchor-link
class="left-item"
:href="`#${data}`"
:title="data"
v-for="(data, i) in leftNav"
:key="i"
:data-title="data"
/>
</a-anchor>
<div class="right">
<div class="top no-border-right">
<div class="td-name">
<!-- selectedRowKeys -->
{{ `共选取${selectedRowKeys.length}个算法` }}
2022-06-23 13:19:52 +08:00
</div>
2022-06-30 10:12:28 +08:00
<div class="td" v-for="(item, k) in detailArray" :key="k">
<span v-if="item">{{ item.name || '--' }}</span>
<span
v-if="item"
@click="deleteList(k)"
class="icon-delete"
></span>
<span
class="add-img"
@click="addList"
v-if="!item && k === detailArray.filter((v) => v).length"
></span>
</div>
</div>
<div class="bottom bottomRef" id="bottomRef" ref="bottomRef">
<div class="bottom-item" v-for="(data, i) in tableData" :key="i">
<div
class="title"
:id="data.title"
:title="data.title"
:ref="data.title"
2022-07-22 16:46:03 +08:00
v-if="
!(
data.title == '算法优势' ||
data.title == '应用场景' ||
data.title == '应用案例' ||
data.title == '常见问题' ||
data.title == '计费标准信息'
)
"
2022-06-30 10:12:28 +08:00
>
{{ data.title }}
</div>
<!-- 算法优势 -->
2022-07-22 16:46:03 +08:00
<!-- <div class="group-data" v-if="data.groupName"> -->
<!-- <compare-group-view :dataList="data.groupList"></compare-group-view> -->
<!-- <div v-if="data.groupList.length > 0">
2022-06-30 10:12:28 +08:00
<div
class="group-box"
v-for="(data, i) in data.groupList"
:key="i"
>
<div
class="flex-row-start row-tr"
v-for="(item, j) in Object.keys(data)"
:key="j"
:class="
j == Object.keys(data).length - 1 ? 'border-bottom' : ''
"
>
<div class="td-name" :style="{ height: getHeight(item) }">
<span class="td-text td-name-text">{{ item }}</span>
</div>
<div class="flex-row-start">
<div
class="td"
:style="{ height: getHeight(item) }"
v-for="(d, k) in data[item]"
:key="k"
>
<a-tooltip placement="top" :title="d">
<span class="td-text">{{ d }}</span>
</a-tooltip>
2022-06-23 12:43:02 +08:00
</div>
2022-06-30 10:12:28 +08:00
</div>
2022-06-23 12:43:02 +08:00
</div>
2022-06-30 10:12:28 +08:00
</div>
</div>
<div v-if="data.groupList.length == 0" class="no-data">
暂无数据
2022-07-22 16:46:03 +08:00
</div> -->
<!-- </div> -->
2022-06-30 10:12:28 +08:00
<div
class="flex-row-start row-tr"
v-for="(rowData, j) in data.list"
:key="j"
:class="j == data.list.length - 1 ? 'border-bottom' : ''"
>
<div
class="td-name"
:style="{ height: getHeight(rowData.name) }"
>
<span class="td-text td-name-text">
{{ rowData.name }}
</span>
</div>
<div class="flex-row-start">
<div
class="td"
v-for="(item, k) in rowData.infoList"
:key="k"
:style="{ height: getHeight(rowData.name) }"
>
<video
v-if="showVideo(rowData.name) && item"
width="240"
height="180"
controls
>
<source :src="item" type="video/mp4" />
您的浏览器不支持 HTML5 video 标签
</video>
<a-tooltip v-else placement="top" :title="item">
<span class="td-text">{{ item }}</span>
</a-tooltip>
</div>
</div>
</div>
2022-06-23 12:43:02 +08:00
</div>
2022-06-30 10:12:28 +08:00
</div>
2022-06-23 12:43:02 +08:00
</div>
2022-06-30 10:12:28 +08:00
</div>
2022-06-23 12:43:02 +08:00
</div>
2022-06-30 10:12:28 +08:00
<a-modal
class="modal-box"
title="请选择"
:visible="showAddModal"
:onOk="handleOk"
:onCancel="handleCancel"
>
<a-table
:columns="columns"
:data-source="dataList"
style="height: 610px; overflow-y: scroll"
:row-selection="rowSelection"
rowKey="id"
></a-table>
</a-modal>
<!-- <HomeFooter></HomeFooter> -->
</div>
2022-06-23 12:43:02 +08:00
</template>
<script setup>
2022-06-30 10:12:28 +08:00
import HomeFooter from '@/views/newHome/components/Footer'
import HomeHeader from '@/views/home/components/header'
import CompareGroupView from '@/views/home/components/CompareGroupView'
import { pageWithAttrs } from '@/api/abilityStatistics'
import {
defineComponent,
ref,
onMounted,
getCurrentInstance,
computed,
unref,
reactive,
nextTick,
onCreated,
} from 'vue'
import { selectOne } from '@/api/home'
import { message, Tooltip, Table, Spin } from 'ant-design-vue'
import { useRouter } from 'vue-router'
const router = useRouter()
let queryId = router.currentRoute.value.query.id
const ctx = getCurrentInstance()
// 最大4列
const pagination = ref([])
// 表格列名
const columns = ref([
2022-06-23 12:43:02 +08:00
{
2022-06-30 10:12:28 +08:00
title: '算法名称',
dataIndex: 'name',
2022-06-23 12:43:02 +08:00
},
{
2022-06-30 10:12:28 +08:00
title: '算法类型',
dataIndex: 'type',
2022-06-23 12:43:02 +08:00
},
2022-06-30 10:12:28 +08:00
])
// 详情列表
const detailArray = ref(['', '', '', ''])
const titleInfoObj = {
基本信息: [
{
text: '算法名称',
key: 'name',
},
{
text: '算法类别',
},
{
text: '部署位置',
},
{
text: '应用领域',
key: '应用领域',
},
{
text: '共享条件',
key: 'shareCondition',
},
2022-08-02 17:30:39 +08:00
// {
// text: '共享类型',
// key: 'shareType',
// },
2022-06-30 10:12:28 +08:00
{
text: '算法描述',
key: 'description',
},
{
text: '算法介绍视频',
key: '算法介绍视频',
},
],
2022-07-22 16:46:03 +08:00
// 算法优势: [
// {
// text: '算法优势名称',
// key: 'name',
// },
// {
// text: '算法优势描述',
// key: 'desc',
// },
// ],
// 应用场景: [
// {
// text: '场景名称',
// key: '场景名称',
// },
// {
// text: '场景描述',
// key: '场景描述',
// },
// ],
// 应用案例: [
// {
// text: '关联应用',
// },
// {
// text: '算法需求背景',
// },
// {
// text: '算法应用期望达成效果',
// },
// ],
// 计费标准信息: [
// {
// text: '是否收费',
// },
// {
// text: '计费方式',
// },
// {
// text: '计费描述',
// },
// // {
// // text: '计费标准信息', key: ''
// // },
// ],
2022-06-30 10:12:28 +08:00
使用方式: [
{
text: '服务接口',
},
{
text: '接口请求方式',
key: 'apiMethodType',
},
{
text: '技术文档',
key: '',
},
{
text: '是否支持试用',
key: '',
},
{
text: '试用地址',
},
2022-06-23 12:43:02 +08:00
],
2022-06-30 10:12:28 +08:00
服务商: [
{
2022-07-01 18:23:43 +08:00
text: '服务商',
2022-06-30 10:12:28 +08:00
},
{
text: '服务商联系人',
},
{
text: '服务商联系电话',
},
2022-06-23 12:43:02 +08:00
],
2022-07-22 16:46:03 +08:00
// 常见问题: [
// {
// text: '常见问题',
// },
// {
// text: '回答',
// },
// ],
2022-06-30 10:12:28 +08:00
}
// 左侧导航
const leftNav = ref([])
Object.keys(titleInfoObj).map((v) => leftNav.value.push(v))
// 可能会有多组的数据
const arrayStr = ['算法优势', '应用场景', '计费标准信息', '常见问题']
let textObj = {
算法优势: {
name: '算法优势名称',
desc: '算法优势描述',
2022-06-23 19:58:44 +08:00
},
2022-06-30 10:12:28 +08:00
应用场景: {
name: '场景名称',
desc: '场景描述',
2022-06-23 19:58:44 +08:00
},
2022-06-30 10:12:28 +08:00
计费标准信息: {
type: '计费方式',
price: '价格',
desc: '计费描述信息',
是否收费: '是否收费',
2022-06-23 19:58:44 +08:00
},
2022-06-30 10:12:28 +08:00
常见问题: {
question: '常见问题',
answer: '回答',
2022-06-23 19:58:44 +08:00
},
2022-06-30 10:12:28 +08:00
}
const showAddModal = ref(false)
const dataList = ref([])
const selectedRowKeys = ref([])
let tableData = ref([])
const loadingPage = ref(false)
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
const getId = () => {
2022-06-28 10:32:28 +08:00
return window.document.getElementById('bottomRef')
2022-06-30 10:12:28 +08:00
}
2022-06-28 10:32:28 +08:00
2022-06-30 10:12:28 +08:00
const handleClickTab = (e, link) => {
2022-06-28 10:32:28 +08:00
// 阻止点击的默认事件修改路由
2022-06-30 10:12:28 +08:00
e.preventDefault()
2022-06-28 10:32:28 +08:00
if (link.href) {
2022-06-30 10:12:28 +08:00
let ele = document.getElementById(link.href)
ele && ele.scrollIntoView({ block: 'start', behavior: 'smooth' })
2022-06-28 10:32:28 +08:00
}
2022-06-30 10:12:28 +08:00
}
2022-06-28 10:32:28 +08:00
2022-06-30 10:12:28 +08:00
// 初始化
onMounted(() => {
2022-06-27 13:52:16 +08:00
selectedRowKeys.value.push(queryId)
nextTick(() => {
2022-06-30 10:12:28 +08:00
getList().then((res) => {
initData()
})
2022-06-23 12:43:02 +08:00
})
2022-06-30 10:12:28 +08:00
})
2022-06-27 13:52:16 +08:00
2022-06-30 10:12:28 +08:00
const initData = () => {
loadingPage.value = true
2022-06-27 13:52:16 +08:00
// queryId
2022-06-23 19:58:44 +08:00
// 获取详情
2022-06-30 10:12:28 +08:00
Promise.all(selectedRowKeys.value.map((id) => getDetail(id)))
.then((data) => {
2022-06-25 14:00:45 +08:00
detailArray.value = []
for (let index = 0; index < 4; index++) {
2022-06-30 10:12:28 +08:00
if (data[index] == undefined) {
detailArray.value.push('')
} else {
detailArray.value.push(formatterData(data[index]))
}
2022-06-25 14:00:45 +08:00
}
2022-06-27 13:52:16 +08:00
2022-06-23 19:58:44 +08:00
nextTick(() => {
2022-06-30 10:12:28 +08:00
// 处理数据
getNewData()
2022-06-23 19:58:44 +08:00
})
2022-06-27 13:52:16 +08:00
2022-06-23 19:58:44 +08:00
loadingPage.value = false
2022-06-30 10:12:28 +08:00
})
.catch((err) => {
2022-06-23 19:58:44 +08:00
loadingPage.value = false
message.error(err || '获取算法详情失败,请重试!')
2022-06-30 10:12:28 +08:00
})
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
// 处理数组
const getNewData = () => {
2022-06-23 19:58:44 +08:00
tableData.value = []
Object.keys(titleInfoObj).map((titleKey, i) => {
2022-06-30 10:12:28 +08:00
// 标题
let _newObj = {
title: titleKey,
}
if (arrayStr.includes(titleKey)) {
_newObj.groupName = titleKey
_newObj.groupList = []
} else {
_newObj.list = []
}
let list = []
2022-08-02 17:30:39 +08:00
titleInfoObj[titleKey].map((trName, index) => {
2022-06-30 10:12:28 +08:00
let obj = {
name: trName.text,
2022-06-23 12:43:02 +08:00
}
2022-06-23 19:58:44 +08:00
if (!arrayStr.includes(titleKey)) {
2022-06-30 10:12:28 +08:00
obj.infoList = getInfoList(trName)
list.push(obj)
} else {
2022-07-01 18:23:43 +08:00
console.log(titleKey, trName)
2022-06-30 10:12:28 +08:00
_newObj.groupList = getGroupList(titleKey, trName)
2022-06-23 19:58:44 +08:00
}
2022-06-30 10:12:28 +08:00
})
if (!arrayStr.includes(titleKey)) {
_newObj.list = list
}
tableData.value.push(_newObj)
2022-06-23 12:43:02 +08:00
})
2022-08-02 17:30:39 +08:00
tableData.value[1].list[4].infoList.map((item, index) => {
if (!item && tableData.value[0].list[0].infoList[index]) {
tableData.value[1].list[3].infoList[index] = '否'
} else if (item && tableData.value[0].list[0].infoList[index]) {
tableData.value[1].list[3].infoList[index] = '是'
}
})
2022-07-01 18:23:43 +08:00
2022-08-02 17:30:39 +08:00
console.log('11111111111111', tableData.value[1].list[4])
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
// 基本信息等
const getInfoList = (rowItem) => {
2022-06-23 12:43:02 +08:00
let arr = []
2022-06-30 10:12:28 +08:00
detailArray.value.map((item) => {
let val = undefined
val = item[rowItem.key || rowItem.text]
arr.push(val)
2022-06-23 12:43:02 +08:00
})
2022-06-30 10:12:28 +08:00
return arr
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
// 算法优势分组信息数组getGroupList
const getGroupList = (titleKey, trName) => {
2022-06-23 19:58:44 +08:00
let arr = []
2022-06-30 10:12:28 +08:00
detailArray.value.map((item) => {
2022-07-01 18:23:43 +08:00
if (item) {
if (arrayStr.includes(titleKey)) {
let groupItemObj = {}
let _list = item[titleKey] || []
let textInfo = textObj[titleKey]
_list.map((v) => {
// console.log(v)
Object.keys(v).map((d) => {
console.log(textInfo[d])
if (textInfo[d]) {
if (!groupItemObj[textInfo[d]]) {
groupItemObj[textInfo[d]] = ''
}
groupItemObj[textInfo[d]] += v[d] + ';'
}
})
2022-06-30 10:12:28 +08:00
})
2022-07-01 18:23:43 +08:00
arr.push(groupItemObj)
}
2022-06-30 10:12:28 +08:00
}
2022-06-23 19:58:44 +08:00
})
let _arr = translateArray(arr)
2022-06-30 10:12:28 +08:00
return _arr
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
// 数组转化
const translateArray = (list) => {
2022-06-23 19:58:44 +08:00
let arr = []
2022-06-30 10:12:28 +08:00
if (list.every((v) => JSON.stringify(v) == '{}')) {
arr = []
2022-06-23 19:58:44 +08:00
} else {
2022-06-30 10:12:28 +08:00
let itemObj = list.find((v) => JSON.stringify(v) !== '{}')
let obj = {}
Object.keys(itemObj).map((v) => {
let arr2 = []
list.map((item) => {
arr2.push(item[v] || '')
2022-06-23 19:58:44 +08:00
})
2022-06-30 10:12:28 +08:00
obj[v] = arr2
})
arr.push(obj)
2022-06-23 19:58:44 +08:00
}
2022-06-30 10:12:28 +08:00
return arr
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
// 获取算法列表
const getList = () => {
2022-06-23 12:43:02 +08:00
const data = {
2022-06-30 10:12:28 +08:00
deptIds: [],
districtId: '',
infoList: [{ attrType: '组件类型', attrValue: '智能算法' }],
name: '',
orderField: 'total',
orderType: 'DESC',
pageNum: 1,
pageSize: 15,
// type: '组件服务',
type: '',
2022-06-23 12:43:02 +08:00
}
return new Promise((resolve, reject) => {
2022-06-30 10:12:28 +08:00
pageWithAttrs(data)
.then((res) => {
dataList.value = res.data.data.records || []
nextTick(() => {
// 默认前两个
// selectedRowKeys.value.push(dataList.value[0].id)
// selectedRowKeys.value.push(dataList.value[1].id)
})
resolve(res)
})
.catch((err) => {
reject(err)
2022-06-23 12:43:02 +08:00
})
})
2022-06-30 10:12:28 +08:00
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
// 删除算法
const deleteList = (i) => {
2022-06-23 19:58:44 +08:00
selectedRowKeys.value.splice(i, 1)
2022-06-25 14:00:45 +08:00
detailArray.value.splice(i, 1)
2022-06-23 12:43:02 +08:00
nextTick(() => {
2022-06-30 10:12:28 +08:00
for (let index = 0; index < 4; index++) {
if (detailArray.value[index] == undefined) {
detailArray.value.splice(index, 1, '')
2022-06-25 14:00:45 +08:00
}
2022-06-30 10:12:28 +08:00
}
getNewData()
2022-06-23 12:43:02 +08:00
})
2022-06-30 10:12:28 +08:00
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
const addList = () => {
2022-06-23 12:43:02 +08:00
showAddModal.value = true
2022-06-30 10:12:28 +08:00
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
const handleOk = () => {
if (selectedRowKeys.value.length > 4) {
message.error('最多选择四个算法!')
return false
2022-06-23 12:43:02 +08:00
}
2022-06-23 19:58:44 +08:00
initData()
2022-06-23 12:43:02 +08:00
showAddModal.value = false
2022-06-30 10:12:28 +08:00
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
const handleCancel = () => {
2022-06-23 12:43:02 +08:00
showAddModal.value = false
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
const rowSelection = computed(() => {
2022-06-23 12:43:02 +08:00
return {
2022-06-30 10:12:28 +08:00
selectedRowKeys: unref(selectedRowKeys),
onChange: (changableRowKeys) => {
if (changableRowKeys.length > 4) {
message.error('最多选择四个算法!')
} else {
selectedRowKeys.value = changableRowKeys
}
if (selectedRowKeys.value.length > 4) {
selectedRowKeys.value = selectedRowKeys.value.splice(4)
}
},
hideDefaultSelections: true,
}
})
2022-06-25 14:00:45 +08:00
2022-06-30 10:12:28 +08:00
// 动态获取高度
const getHeight = (name) => {
2022-06-25 14:00:45 +08:00
if (name.indexOf('描述') != -1) {
2022-06-30 10:12:28 +08:00
return '120px'
2022-06-25 14:00:45 +08:00
}
if (name.indexOf('视频') != -1) {
2022-06-30 10:12:28 +08:00
return '230px'
2022-06-25 14:00:45 +08:00
}
2022-06-30 10:12:28 +08:00
}
2022-06-25 14:00:45 +08:00
2022-06-30 10:12:28 +08:00
// 是否视频播放
const showVideo = (name) => {
2022-06-25 14:00:45 +08:00
if (name.indexOf('视频') !== -1) {
2022-06-30 10:12:28 +08:00
return true
2022-06-25 14:00:45 +08:00
}
2022-06-30 10:12:28 +08:00
return false
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
// 获取详情
const getDetail = (id) => {
2022-06-23 12:43:02 +08:00
return new Promise((resolve, reject) => {
2022-06-30 10:12:28 +08:00
selectOne(id)
.then((res) => {
resolve(res.data && res.data.data)
})
.catch((err) => {
reject(err)
2022-06-23 12:43:02 +08:00
})
})
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
// 判断是否json字符串
const isJson = (str) => {
2022-06-23 12:43:02 +08:00
if (typeof str == 'string') {
2022-06-30 10:12:28 +08:00
try {
let obj = JSON.parse(str)
return true
} catch (e) {
return false
}
2022-06-23 12:43:02 +08:00
}
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
// infoList数组处理
const formatterData = (obj) => {
2022-06-23 12:43:02 +08:00
let _newObj = {}
2022-06-30 10:12:28 +08:00
obj.infoList.map((v) => {
_newObj[v.attrType] = isJson(v.attrValue)
? JSON.parse(v.attrValue)
: v.attrValue
2022-06-23 12:43:02 +08:00
})
let _obj = Object.assign({}, obj, _newObj)
return _obj
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
</script>
<style lang="less" scoped>
2022-06-30 10:12:28 +08:00
.bg {
2022-06-23 13:19:52 +08:00
background: #fff;
2022-06-28 10:32:28 +08:00
height: 100vh;
width: 100%;
2022-06-30 10:12:28 +08:00
}
2022-06-23 13:19:52 +08:00
2022-06-30 10:12:28 +08:00
// @font-face {
// font-family: 'num-typeface';
// src: url('~@/assets/newHome/font/num-typeface.otf');
// }
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.border {
2022-06-23 13:19:52 +08:00
border: 1px solid #dddee1;
2022-06-23 12:43:02 +08:00
border-bottom: none;
border-right: none;
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.border-bottom {
2022-06-23 13:19:52 +08:00
border-bottom: 1px solid #dddee1;
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.no-border-right {
2022-06-23 13:19:52 +08:00
border: 1px solid #dddee1;
2022-06-23 12:43:02 +08:00
border-right: none;
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.flex-row-start {
2022-06-23 12:43:02 +08:00
display: flex;
justify-content: flex-start;
align-items: center;
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.box-container {
2022-06-23 12:43:02 +08:00
width: 1592px;
margin: 0 auto;
padding-top: 60px;
2022-06-28 10:32:28 +08:00
height: 100vh;
box-sizing: border-box;
2022-06-23 12:43:02 +08:00
.content {
2022-06-30 10:12:28 +08:00
display: flex;
justify-content: flex-start;
align-items: flex-start;
padding-top: 10px;
height: calc(100% - 60px);
width: 100%;
2022-06-23 12:43:02 +08:00
}
.nav-box {
2022-06-30 10:12:28 +08:00
height: 50px;
width: 100%;
font-size: 14px;
display: flex;
align-items: center;
background: rgba(244, 245, 248, 0.8);
padding-left: 10px;
2022-06-23 12:43:02 +08:00
}
.left {
2022-06-30 10:12:28 +08:00
width: 200px;
height: 600px;
background: rgba(244, 245, 248, 0.8);
.left-item {
margin: 0 14px;
height: 60px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
color: #212121;
border-bottom: 1px solid #dddee1;
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
&:hover {
cursor: pointer;
2022-06-23 12:43:02 +08:00
}
2022-06-30 10:12:28 +08:00
}
.active {
background: #0058e1;
color: #fff !important;
margin: 0;
}
2022-06-23 12:43:02 +08:00
}
.right {
2022-06-30 10:12:28 +08:00
width: 1370px;
margin-left: 32px;
height: 100%;
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.top {
width: 100%;
height: 100px;
margin-bottom: 20px;
display: flex;
align-items: center;
justify-content: flex-start;
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.td-name {
height: 100px;
display: flex;
align-items: center;
justify-content: center;
2022-06-23 12:43:02 +08:00
}
2022-06-30 10:12:28 +08:00
.td {
height: 100px;
line-height: 100px;
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.icon-delete {
position: absolute;
right: 10px;
top: 10px;
height: 12px;
width: 12px;
background: url('~@/assets/newHome/delete-on.png');
background-size: 100% 100%;
cursor: pointer;
2022-06-23 12:43:02 +08:00
}
2022-06-30 10:12:28 +08:00
}
.bottom {
width: 100%;
overflow-y: auto;
height: calc(100% - 130px);
padding-bottom: 10px;
box-sizing: border-box;
}
2022-06-23 12:43:02 +08:00
}
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.title {
2022-06-23 12:43:02 +08:00
font-size: 14px;
padding: 20px 0 10px 10px;
color: #212121;
font-weight: bold;
2022-06-23 13:19:52 +08:00
background: rgba(244, 245, 248, 0.8);
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.td-name {
2022-06-23 13:19:52 +08:00
border-right: 1px solid #dddee1;
2022-06-23 19:58:44 +08:00
height: 60px;
line-height: 60px;
2022-06-23 12:43:02 +08:00
text-align: center;
width: 200px;
font-size: 14px;
2022-06-25 14:00:45 +08:00
display: flex;
align-items: center;
justify-content: center;
2022-06-30 10:12:28 +08:00
}
2022-06-25 14:00:45 +08:00
2022-06-30 10:12:28 +08:00
.td {
2022-06-23 13:19:52 +08:00
border-right: 1px solid #dddee1;
2022-06-23 19:58:44 +08:00
height: 60px;
2022-06-23 12:43:02 +08:00
text-align: center;
2022-06-25 14:00:45 +08:00
display: flex;
align-items: center;
justify-content: center;
2022-06-23 12:43:02 +08:00
width: 290px;
font-size: 14px;
box-sizing: border-box;
table-layout: fixed;
2022-06-30 10:12:28 +08:00
}
2022-06-25 14:00:45 +08:00
2022-06-30 10:12:28 +08:00
.td-text {
2022-06-25 14:00:45 +08:00
width: 290px;
font-size: 14px;
2022-06-23 12:43:02 +08:00
overflow: hidden;
2022-06-25 14:00:45 +08:00
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
2022-07-19 09:42:41 +08:00
word-break: break-all;
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.td-name-text {
2022-06-25 14:00:45 +08:00
width: 200px;
2022-06-30 10:12:28 +08:00
}
2022-06-25 14:00:45 +08:00
2022-06-30 10:12:28 +08:00
.row-tr {
2022-06-23 13:19:52 +08:00
border: 1px solid #dddee1;
2022-06-23 12:43:02 +08:00
border-right: none;
border-bottom: none;
2022-06-23 13:19:52 +08:00
background: #fff;
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.border-bottom {
2022-06-23 13:19:52 +08:00
border-bottom: 1px solid #dddee1;
2022-06-30 10:12:28 +08:00
}
2022-06-23 12:43:02 +08:00
2022-06-30 10:12:28 +08:00
.modal-box {
2022-06-23 19:58:44 +08:00
height: 650px;
2022-06-23 12:43:02 +08:00
width: 800px;
2022-06-30 10:12:28 +08:00
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
.add-img {
2022-06-23 19:58:44 +08:00
height: 60px;
width: 60px;
background: url('~@/assets/newHome/add-on.png');
background-size: 100% 100%;
cursor: pointer;
2022-06-30 10:12:28 +08:00
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
.no-data {
2022-06-23 19:58:44 +08:00
height: 100px;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #dddee1;
2022-06-30 10:12:28 +08:00
}
2022-06-23 19:58:44 +08:00
2022-06-30 10:12:28 +08:00
.loading-box {
2022-06-23 19:58:44 +08:00
width: 1592px;
height: 500px;
position: absolute;
display: flex;
align-items: center;
justify-content: center;
2022-06-30 10:12:28 +08:00
}
2022-06-25 14:00:45 +08:00
2022-06-30 10:12:28 +08:00
.video-box {
2022-06-25 14:00:45 +08:00
height: 140px;
width: 240px;
2022-06-30 10:12:28 +08:00
}
2022-06-28 10:32:28 +08:00
2022-06-30 10:12:28 +08:00
.ant-anchor-wrapper {
2022-06-28 10:32:28 +08:00
width: 200px;
height: 600px;
background: rgba(244, 245, 248, 0.8);
padding-left: 0;
position: static;
2022-06-30 10:12:28 +08:00
}
2022-06-28 10:32:28 +08:00
2022-06-30 10:12:28 +08:00
.ant-anchor-ink::before {
2022-06-28 10:32:28 +08:00
content: ' ';
width: 0 !important;
2022-06-30 10:12:28 +08:00
}
2022-06-28 10:32:28 +08:00
2022-06-30 10:12:28 +08:00
/deep/ .ant-anchor {
2022-06-28 10:32:28 +08:00
position: static;
padding-left: 0;
2022-06-30 10:12:28 +08:00
}
2022-06-28 10:32:28 +08:00
2022-06-30 10:12:28 +08:00
.ant-anchor-link {
2022-06-28 10:32:28 +08:00
padding: 0;
margin: 0 14px;
height: 60px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
color: #212121;
border-bottom: 1px solid #dddee1;
2022-06-30 10:12:28 +08:00
}
:deep(.ant-checkbox-indeterminate) {
display: none;
}
</style>