Commit eaaa460a authored by liangjingpeng's avatar liangjingpeng

前台页面-交易市场-数据集详情

parent 4f8bd4f9
......@@ -125,6 +125,30 @@ export const PCFontRoute: AppRouteRecordRaw = {
title: '',
},
},
{
path: '/aaaFont/tradingMarket/details/dataSet',
name: 'tradingMarketsDetail',
component: () => import('@/views/AAAFont/tradingMarket/details/dataSet.vue'),
meta: {
title: '',
},
},
{
path: '/aaaFont/tradingMarket/details/file',
name: 'tradingMarketsDetail1',
component: () => import('@/views/AAAFont/tradingMarket/details/file.vue'),
meta: {
title: '',
},
},
{
path: '/aaaFont/tradingMarket/details/api',
name: 'tradingMarketsDetail2',
component: () => import('@/views/AAAFont/tradingMarket/details/api.vue'),
meta: {
title: '',
},
},
],
};
// export const fontRoute: AppRouteRecordRaw = {
......
<script setup lang="ts">
</script>
<template>
api
</template>
<style scoped lang="less">
</style>
import { BasicColumn, FormSchema } from '@/components/Table';
import { DescItem } from '@/components/Description';
export const searchEditFormSchema: FormSchema[] = [
{
field: 'name',
label: ' ',
component: 'Input',
colProps: { span: 4 },
componentProps: {
placeholder: '搜索名称',
},
},
];
export const basicSchema: DescItem[] = [
{
field: 'name',
label: '资源名称',
},
{
field: 'description',
label: '描述',
},
{
field: 'tags',
label: '业务标签',
},
{
field: 'owner',
label: '权属机构',
},
{
field: 'sensitiveStatus',
label: '敏感状态',
},
{
field: 'version',
label: '版本',
},
{
field: 'source',
label: '来源',
},
];
export const informationColumns: BasicColumn[] = [
{
title: '字段',
dataIndex: 'field',
width: 120,
},
{
title: '中文名',
dataIndex: 'name',
width: 150,
},
{
title: '字段描述',
dataIndex: 'remark',
width: 150,
},
{
title: '字段类型',
dataIndex: 'type',
width: 120,
},
{
title: '安全分级',
dataIndex: 'security',
width: 120,
},
{
title: '敏感状态',
dataIndex: 'status',
width: 150,
},
{
title: '敏感类型',
dataIndex: 'sensitiveType',
width: 100,
},
{
title: '数据标准',
dataIndex: 'standard',
width: 100,
},
];
export const basicData = {
name: 'wyx_contact',
description: '联系人信息',
tags: '测试',
owner: '数据平台治理部',
sensitiveStatus: '敏感',
version: 'V1.0',
source: '元数据',
};
export const informationTableList: any[] = [
{
field: 'name',
name: '姓名',
remark: '姓名',
type: 'string',
status: '敏感',
security: 'G2',
sensitiveType: '姓名(简体中...',
standard: '-',
},
{
field: 'phone_number',
name: '手机号',
remark: '手机号',
type: 'string',
status: '敏感',
security: 'G3',
sensitiveType: '手机号(中国...',
standard: '-',
},
{
field: 'student_id',
name: '学号',
remark: '学号',
type: 'string',
status: '敏感',
security: 'G3',
sensitiveType: '账户编号',
standard: '-',
},
{
field: 'major',
name: '专业',
remark: '专业',
type: 'string',
status: '敏感',
security: 'G10',
sensitiveType: '专业',
standard: '-',
},
{
field: 'origin_city',
name: '生源地',
remark: '生源地',
type: 'string',
status: '不敏感',
security: '未分级',
sensitiveType: '-',
standard: '-',
},
{
field: 'ethnic',
name: '民族',
remark: '民族',
type: 'string',
status: '敏感',
security: 'G2',
sensitiveType: '民族',
standard: '-',
},
{
field: 'building_num',
name: '楼号',
remark: '楼号',
type: 'int',
status: '不敏感',
security: '未分级',
sensitiveType: '-',
standard: '-',
},
{
field: 'room_num',
name: '寝室号',
remark: '寝室号',
type: 'int',
status: '不敏感',
security: '安全分级_03',
sensitiveType: '敏感类型_01',
standard: '-',
},
];
<template>
<PageWrapper class="content-padding" contentBackground @back="goBack">
<template #headerContent>
<div class="modal_top">
<Icon
icon="ep:arrow-left-bold"
:size="20"
style="margin-right: 5px"
:color="'#a3a7b1'"
@click="goBack"
/>
<div>
<Icon
icon="material-symbols-light:dataset-linked-outline-sharp"
:size="40"
:color="'#64c6e9'"
/>
</div>
<div class="ml-3">
<div class="title">数据集</div>
<div class="path">党建工作总结</div>
</div>
<div class="buttonGroup"> </div>
</div>
</template>
<div class="desc-wrap">
<step-header title="基本信息" />
<Description
size="middle"
:bordered="false"
:column="2"
:data="basicData"
:schema="basicSchema"
:labelStyle="{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
/>
<step-header class="mt-5" title="列信息" />
<BasicTable @register="registerTable" />
</div>
</PageWrapper>
</template>
<script lang="ts" setup>
import { onMounted, ref } from 'vue';
import { PageWrapper } from '@/components/Page';
import { Tabs } from 'ant-design-vue';
import { useMessage } from '@/hooks/web/useMessage';
import { router } from '@/router';
import Icon from '@/components/Icon/Icon.vue';
import { Description } from '@/components/Description';
import { basicSchema, searchEditFormSchema, informationColumns } from './data';
import { basicData, informationTableList } from './dataFileData';
import { BasicTable, useTable } from '@/components/Table';
import BasicTitle from "@/components/Basic/src/BasicTitle.vue";
import StepHeader from "@/components/stepHeader.vue";
defineOptions({ name: 'AccountDetail' });
const { createMessage, createConfirm } = useMessage();
const ATabs = Tabs;
const ATabPane = Tabs.TabPane;
const [registerTable] = useTable({
api: async () => {
const response = {
pageNu: '1',
pageSize: '10',
pages: '1',
total: informationTableList.length,
code: '',
message: '',
data: informationTableList,
};
return { ...response };
},
columns: informationColumns,
formConfig: {
labelWidth: 10,
schemas: searchEditFormSchema,
autoSubmitOnEnter: true,
showActionButtonGroup: false,
},
showTableSetting: false,
showIndexColumn: false,
bordered: true,
handleSearchInfoFn(info) {
return info;
},
});
function goBack() {
router.back();
}
onMounted(() => {});
</script>
<style lang="scss" scoped>
.content-padding {
width: 1440px;
margin: 0 auto;
background-color: white;
}
.modal_top {
padding: 0 0 20px 0;
display: flex;
align-items: center;
.title {
font-size: 16px;
font-weight: 500;
}
.path {
font-size: 14px;
color: gray;
}
.buttonGroup {
margin-left: auto;
display: flex;
gap: 5px;
align-items: center;
}
}
</style>
<script setup lang="ts">
</script>
<template>
文件
</template>
<style scoped lang="less">
</style>
......@@ -11,6 +11,66 @@
</el-carousel>
</div>
<div class="type">
<div class="type1">
<div class="w-1/7 type-left">
<div>
<Icon icon="ant-design:share-alt-outlined" class="icon" />
</div>
<div class="type-des"> 产品类型 </div>
</div>
<div class="w-6/7 type-right">
<div class="right-tab">
<div
v-for="(tab, index) in tabList"
:key="tab"
:class="{ active: tabSelect === index }"
@click="handleClickTab(tab, index)"
>
<div class="tab">
{{ tab.name }}
</div>
</div>
</div>
<!-- <div v-if="tabChildren" class="right-tab">-->
<!-- <div-->
<!-- v-show="tabChildren"-->
<!-- v-for="(tab, index) in tabChildren"-->
<!-- :key="tab"-->
<!-- :class="{ active: tabChildrenSelect === index }"-->
<!-- @click="tabChildrenSelect = index"-->
<!-- >-->
<!-- <div class="tab">-->
<!-- {{ tab.name }}-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
<div class="type1">
<div class="w-1/7 type-left">
<div>
<Icon icon="ant-design:line-chart-outlined" class="icon" />
</div>
<div class="type-des"> 场景类型 </div>
</div>
<div class="w-6/7 type-right">
<div class="right-tab">
<div
v-for="(tab, index) in tabMoneyList"
:key="tab"
:class="{ active: tab1Select === index }"
@click="tab1Select = index"
>
<div class="tab2">
{{ tab.name }}
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane">
<el-tabs v-model="activeName2" @tab-click="handleClick">
<div class="custom-table">
......@@ -18,34 +78,34 @@
<template #label>
<span class="mb-4 tab-label">数据集</span>
</template>
<el-row class="mt-5" :gutter="20">
<el-col class="mb-4" :span="6" v-for="card in cardsData" :key="card.title">
<el-card>
<el-row class="mt-5 w-365" :gutter="20">
<el-col @click="handleDetail(0)" class="mb-4" :span="6" v-for="card in cardsData" :key="card.title">
<el-card class="card-box">
<template #header>
<div>
<div style="display: flex; justify-content: space-between">
<div style="display: flex; align-items: center">
<img :src="cardLogo" />
<Icon icon="ant-design:exception-outlined" :color="'#9d00ae'" :size="26" />
<span class="ml-4" style="font-size: 20px; font-weight: 550"
>{{card.title}}</span
>
>{{card.title}}</span>
</div>
<el-tag type="danger">{{card.tag}}</el-tag>
</div>
</template>
<div class="card-row">
<div class="card-left">
<p>申请人</p>
<p>数据来源</p>
<p>应用场景</p>
<p>算法规则简要说明</p>
</div>
<div class="card-right">
<p>{{card.applicant}}</p>
<p>{{card.dataSource}}</p>
<p>{{card.applicationScenarios}}</p>
<p>
{{card.illustrate}}</p
>
<!-- <p>{{card.applicant}}</p>-->
<!-- <p>{{card.dataSource}}</p>-->
<!-- <p>{{card.applicationScenarios}}</p>-->
<p>{{card.illustrate}}</p>
</div>
</div>
<div class="card_bottom">
<span style="color: #ec7520;font-size: 24px">面议</span>
<el-button
style="padding: 0; border: none; box-shadow: none"
round>
<Icon icon="icon-park-outline:eyes" />&nbsp;&nbsp;{{card.look}}
</el-button>
</div>
</el-card>
</el-col>
......@@ -56,31 +116,77 @@
<template #label>
<span class="mb-4 tab-label">文件</span>
</template>
<el-table
class="mt-5"
:fits="true"
:row-style="{ height: '60px' }"
:header-cell-style="{ background: '#E4ECFA', color: '#3F3F3F', height: '60px' }"
:data="tableData"
style="width: 1440px; font-size: 18px"
>
<el-table-column prop="address" width="500" label="文件产权名称">
<template #header="scope">
<span class="table-span-label">{{ scope.column.label }}</span>
</template>
<template #default="scope">
<span class="table-span">{{ scope.row.address }}</span>
<el-row class="mt-5 w-365" :gutter="20">
<el-col @click="handleDetail(1)" class="mb-4" :span="6" v-for="card in cardsData1" :key="card.title">
<el-card class="card-box">
<template #header>
<div style="display: flex; justify-content: space-between">
<div style="display: flex; align-items: center">
<Icon icon="ant-design:exception-outlined" :color="'#9d00ae'" :size="26" />
<span class="ml-4" style="font-size: 20px; font-weight: 550"
>{{card.title}}</span>
</div>
<el-tag type="danger">{{card.tag}}</el-tag>
</div>
</template>
</el-table-column>
<el-table-column prop="name" width="350" label="申请人"> </el-table-column>
<el-table-column prop="applicationDate" label="申请日期"> </el-table-column>
<el-table-column prop="upDate" label="更新日期"> </el-table-column>
</el-table>
<div class="card-row">
<div class="card-right">
<!-- <p>{{card.applicant}}</p>-->
<!-- <p>{{card.dataSource}}</p>-->
<!-- <p>{{card.applicationScenarios}}</p>-->
<p>{{card.illustrate}}</p>
</div>
</div>
<div class="card_bottom">
<span style="color: #ec7520;font-size: 24px">面议</span>
<el-button
style="padding: 0; border: none; box-shadow: none"
round>
<Icon icon="icon-park-outline:eyes" />&nbsp;&nbsp;{{card.look}}
</el-button>
</div>
</el-card>
</el-col>
</el-row>
</el-tab-pane>
<el-tab-pane name="third">
<template #label>
<span class="mb-4 tab-label">API</span>
</template>
<el-row class="mt-5 w-365" :gutter="20">
<el-col @click="handleDetail(2)" class="mb-4" :span="6" v-for="card in cardsData2" :key="card.title">
<el-card class="card-box">
<template #header>
<div style="display: flex; justify-content: space-between">
<div style="display: flex; align-items: center">
<Icon icon="ant-design:exception-outlined" :color="'#9d00ae'" :size="26" />
<span class="ml-4" style="font-size: 20px; font-weight: 550"
>{{card.title}}</span>
</div>
<el-tag type="danger">{{card.tag}}</el-tag>
</div>
</template>
<div class="card-row">
<div class="card-right">
<!-- <p>{{card.applicant}}</p>-->
<!-- <p>{{card.dataSource}}</p>-->
<!-- <p>{{card.applicationScenarios}}</p>-->
<p>{{card.illustrate}}</p>
</div>
</div>
<div class="card_bottom">
<span style="color: #ec7520;font-size: 24px">面议</span>
<el-button
style="padding: 0; border: none; box-shadow: none"
round>
<Icon icon="icon-park-outline:eyes" />&nbsp;&nbsp;{{card.look}}
</el-button>
</div>
</el-card>
</el-col>
</el-row>
<el-table
class="mt-5"
:fits="true"
......@@ -106,6 +212,39 @@
<template #label>
<span class="mb-4 tab-label">登记服务</span>
</template>
<el-row class="mt-5 w-365" :gutter="20">
<el-col @click="handleDetail(2)" class="mb-4" :span="6" v-for="card in cardsData3" :key="card.title">
<el-card class="card-box">
<template #header>
<div style="display: flex; justify-content: space-between">
<div style="display: flex; align-items: center">
<Icon icon="ant-design:exception-outlined" :color="'#9d00ae'" :size="26" />
<span class="ml-4" style="font-size: 20px; font-weight: 550"
>{{card.title}}</span>
</div>
<el-tag type="danger">{{card.tag}}</el-tag>
</div>
</template>
<div class="card-row">
<div class="card-right">
<!-- <p>{{card.applicant}}</p>-->
<!-- <p>{{card.dataSource}}</p>-->
<!-- <p>{{card.applicationScenarios}}</p>-->
<p>{{card.illustrate}}</p>
</div>
</div>
<div class="card_bottom">
<span style="color: #ec7520;font-size: 24px">面议</span>
<el-button
style="padding: 0; border: none; box-shadow: none"
round>
<Icon icon="icon-park-outline:eyes" />&nbsp;&nbsp;{{card.look}}
</el-button>
</div>
</el-card>
</el-col>
</el-row>
<el-table
class="mt-5"
:fits="true"
......@@ -166,6 +305,128 @@
industryImg,
dynamicImg,
items,
tab: {},
tabChildren: undefined,
tabChildrenSelect: 0,
tab1Select: 0,
tabSelect: 0,
tabList: [
{
name: '全部',
},
{
name: '数据集',
children: [
{
name: '全部',
},
{
name: '数字营销',
},
{
name: '风险管控',
},
{
name: '智能投顾',
},
{
name: '行业咨询',
},
{
name: '信用评估',
},
],
},
{
name: '文件',
children: [
{
name: '全部',
},
{
name: '数字营销',
},
{
name: '风险管控',
},
{
name: '智能投顾',
},
{
name: '行业咨询',
},
{
name: '信用评估',
},
],
},
{
name: 'API',
children: [
{
name: '全部',
},
{
name: '数字营销',
},
{
name: '智能选址',
},
{
name: '采购选品',
},
{
name: '供应链管理',
},
{
name: '市场咨询',
},
],
},
{
name: '登记服务',
children: [
{
name: '全部',
},
{
name: '产业咨询',
},
{
name: '工业互联网',
},
{
name: '供应链管理',
},
{
name: '生产线管理',
},
],
},
],
tabMoneyList: [
{
name: '全部',
},
{
name: '金融科技',
},
{
name: '电商消费',
},
{
name: '城市治理',
},
{
name: '医疗卫生',
},
{
name: '工业制造',
},
{
name: '交通物流',
},
],
tableData: [
{
applicationDate: '2016-05-02',
......@@ -198,51 +459,219 @@
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '撰写季度党建工作总结报告'
illustrate: '撰写季度党建工作总结报告',
look: '11',
tag: '办公室',
},
{
title: '产品',
applicant: '天津融创软通科技股份有限公司',
dataSource: '关系型与非关系型数据库分析数据',
title: '党建工作总结',
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: 'Apriori算法对数据集进行多次扫描,第一次扫描得到频繁1-项集L1,第k(k>1)次.........'
illustrate: '撰写季度党建工作总结报告',
look: '11',
state: '已发布',
tag: '办公室',
},
{
title: '产品',
applicant: '天津融创软通科技股份有限公司',
dataSource: '关系型与非关系型数据库分析数据',
title: '党建工作总结',
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: 'Apriori算法对数据集进行多次扫描,第一次扫描得到频繁1-项集L1,第k(k>1)次.........'
illustrate: '撰写季度党建工作总结报告',
look: '11',
state: '已发布',
tag: '办公室',
},
{
title: '产品',
applicant: '天津融创软通科技股份有限公司',
dataSource: '关系型与非关系型数据库分析数据',
title: '党建工作总结',
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: 'Apriori算法对数据集进行多次扫描,第一次扫描得到频繁1-项集L1,第k(k>1)次.........'
illustrate: '撰写季度党建工作总结报告',
look: '11',
state: '已发布',
tag: '办公室',
},
{
title: '产品',
applicant: '天津融创软通科技股份有限公司',
dataSource: '关系型与非关系型数据库分析数据',
title: '党建工作总结',
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '撰写季度党建工作总结报告',
look: '11',
state: '已发布',
tag: '办公室',
},
],
cardsData1: [
{
title: '党史知识竞赛',
applicant: '宣传中心',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '撰写季度党建工作总结报告',
look: '123',
tag: '宣传中心',
},
{
title: '党史知识竞赛',
applicant: '宣传中心',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '撰写季度党建工作总结报告',
look: '123',
tag: '宣传中心',
},
{
title: '党史知识竞赛',
applicant: '宣传中心',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '撰写季度党建工作总结报告',
look: '123',
tag: '宣传中心',
},
{
title: '党史知识竞赛',
applicant: '宣传中心',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: 'Apriori算法对数据集进行多次扫描,第一次扫描得到频繁1-项集L1,第k(k>1)次.........'
illustrate: '撰写季度党建工作总结报告',
look: '123',
tag: '宣传中心',
},
],
cardsData2: [
{
title: '产品',
applicant: '天津融创软通科技股份有限公司',
dataSource: '关系型与非关系型数据库分析数据',
title: 'API日志记录',
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '详细记录 API 调用的日志',
look: '11',
tag: '运维',
},
{
title: 'API日志记录',
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '详细记录 API 调用的日志',
look: '11',
tag: '运维',
},
{
title: 'API日志记录',
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: 'Apriori算法对数据集进行多次扫描,第一次扫描得到频繁1-项集L1,第k(k>1)次.........'
illustrate: '详细记录 API 调用的日志',
look: '11',
tag: '运维',
},
]
{
title: 'API日志记录',
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '详细记录 API 调用的日志',
look: '11',
tag: '运维',
},
{
title: 'API日志记录',
applicant: '办公室',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '详细记录 API 调用的日志',
look: '11',
tag: '运维',
},
],
cardsData3: [
{
title: '登记服务记录',
applicant: '劳动中心',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '详细记录 API 调用的日志',
look: '43',
tag: '运维',
},
{
title: '登记服务记录',
applicant: '劳动中心',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '详细记录 API 调用的日志',
look: '53',
tag: '运维',
},
{
title: '登记服务记录',
applicant: '劳动中心',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '详细记录 API 调用的日志',
look: '12',
tag: '运维',
},
{
title: '登记服务记录',
applicant: '劳动中心',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '详细记录 API 调用的日志',
look: '141',
tag: '运维',
},
{
title: '登记服务记录',
applicant: '劳动中心',
dataSource: '关系型与非关系型数据库',
applicationScenarios: '销售宣传',
illustrate: '详细记录 API 调用的日志',
look: '121',
tag: '运维',
},
],
};
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
},
handleClickTab(tab, index) {
this.tabSelect = index;
this.tab = tab;
this.tabChildren = tab.children;
this.tabChildrenSelect = 0;
},
handleDetail(i){
if (i === 0){
this.$router.push({
path: '/aaaFont/tradingMarket/details/dataSet',
query: '',
})
} else if (i === 1){
this.$router.push({
path: '/aaaFont/tradingMarket/details/file',
query: '',
})
} else if (i === 2){
this.$router.push({
path: '/aaaFont/tradingMarket/details/api',
query: '',
})
}
}
},
};
</script>
......@@ -288,6 +717,63 @@
height: 100%;
}
.type {
width: 1440px;
padding: 40px;
display: flex;
flex-direction: column;
gap: 40px;
.type1 {
display: flex;
}
.type-left {
border-right: 2px solid #f0f0f0;
padding: 5px 0;
margin-right: 80px;
display: flex;
.icon {
font-size: 20px !important;
color: #4171fc;
}
.type-des {
width: 100px;
}
}
::-webkit-scrollbar {
height: 6px;
}
.type-right {
display: flex;
flex-direction: column;
gap: 40px;
overflow-x: hidden;
.right-tab {
display: flex;
gap: 30px;
}
}
.type-right:hover {
overflow: auto;
}
.tab {
width: 140px;
cursor: pointer;
padding: 8px 20px;
}
.tab2 {
width: 130px;
cursor: pointer;
padding: 8px 10px;
}
.active {
font-weight: bolder;
background-color: #eff1f6;
color: #668ef8;
}
}
.tab-pane {
position: relative;
margin-top: 80px;
......@@ -305,6 +791,9 @@
color: #3a5cde;
}
.card-box:hover{
box-shadow: 3px 2px 15px rgba(0, 0, 0, 0.2);
}
.card-row {
display: flex;
justify-content: space-around;
......@@ -317,13 +806,8 @@
height: 20px;
}
.card-left {
width: 28%;
color: #707070;
}
.card-right {
width: 68%;
width: 90%;
color: #3f3f3f;
}
}
......@@ -339,10 +823,6 @@
align-items: center;
font-weight: 500;
.button {
color: #1962e2;
border: #1962e2 2px solid;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment