Commit 06bc2516 authored by chenjiahao's avatar chenjiahao

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/router/routes/index.ts
#	src/views/AAAFont/nationalPolicy/index.vue
parents b2d233a2 b145b4b6
...@@ -102,9 +102,9 @@ export const PCFontRoute: AppRouteRecordRaw = { ...@@ -102,9 +102,9 @@ export const PCFontRoute: AppRouteRecordRaw = {
}, },
}, },
{ {
path: '/aaaFont/nationalPolicy/detail', path: '/aaaFont/nationalPolicy/details',
name: 'nationalPolicyDetail', name: 'nationalPolicyDetail1',
component: () => import('@/views/AAAFont/nationalPolicy/detail.vue'), component: () => import('@/views/AAAFont/nationalPolicy/details/index.vue'),
meta: { meta: {
title: '', title: '',
}, },
......
<template>
<div class="mainContainer" id="main">
<!--sub容器包含了一个个子页面 例如info race-->
<div class="subContainer">
<!--大赛咨询子页面-->
<div class="information item-content-box" id="info">
<!--公共容器 info_right 包含了标题和字母栏-->
<div class="commonContainer" style="margin-top: 60px">
<!--对公共容器应用子页面专属css样式-->
<!-- <div class="common-item-title">大赛资讯</div>-->
<!-- <div class="letter">INFORMATION</div>-->
<div class="info_content_second">
<div class="content-item-h3">
中共中央 国务院关于构建更加完善的要素市场化配置体制机制的意见
</div>
<div style="display: flex; justify-content: center">
<span class="time">2020/04/09 19:00 </span>
<span class="source"> 来源: 新华社</span>
</div>
<Divider />
<div class="content-text-1">
完善要素市场化配置是建设统一开放、竞争有序市场体系的内在要求,是坚持和完善社会主义基本经济制度、加快完善社会主义市场经济体制的重要内容。为深化要素市场化配置改革,促进要素自主有序流动,提高要素配置效率,进一步激发全社会创造力和市场活力,推动经济发展质量变革、效率变革、动力变革,现就构建更加完善的要素市场化配置体制机制提出如下意见。
</div>
<div class="content-text-title-1"> 一、总体要求 </div>
<div class="content-text-1">
(一)指导思想。以习近平新时代中国特色社会主义思想为指导,全面贯彻党的十九大和十九届二中、三中、四中全会精神,坚持稳中求进工作总基调,坚持以供给侧结构性改革为主线,坚持新发展理念,坚持深化市场化改革、扩大高水平开放,破除阻碍要素自由流动的体制机制障碍,扩大要素市场化配置范围,健全要素市场体系,推进要素市场制度建设,实现要素价格市场决定、流动自主有序、配置高效公平,为建设高标准市场体系、推动高质量发展、建设现代化经济体系打下坚实制度基础。
</div>
<div class="content-text-1">
(二)基本原则。一是市场决定,有序流动。充分发挥市场配置资源的决定性作用,畅通要素流动渠道,保障不同市场主体平等获取生产要素,推动要素配置依据市场规则、市场价格、市场竞争实现效益最大化和效率最优化。二是健全制度,创新监管。更好发挥政府作用,健全要素市场运行机制,完善政府调节与监管,做到放活与管好有机结合,提升监管和服务能力,引导各类要素协同向先进生产力集聚。三是问题导向,分类施策。针对市场决定要素配置范围有限、要素流动存在体制机制障碍等问题,根据不同要素属性、市场化程度差异和经济社会发展需要,分类完善要素市场化配置体制机制。四是稳中求进,循序渐进。坚持安全可控,从实际出发,尊重客观规律,培育发展新型要素形态,逐步提高要素质量,因地制宜稳步推进要素市场化配置改革。
</div>
</div>
<!-- -->
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { router } from '@/router';
import { ref } from 'vue';
import { useGo } from '@/hooks/web/usePage';
import { useRouter, onBeforeRouteLeave } from 'vue-router';
import { Divider, Tooltip } from 'ant-design-vue';
const fileType = ref(''); // 文件下载后缀
const choseFile = ref({}); // 选择文件对象
const downloadType = ref(''); // 1是本地文件下载,2是oss文件下载
const activeName = ref('first'); // tab弹出框
const dialogVisible = ref(false); // 对话框是否显示
const dialogContent = ref({}); // 对话框内容
const info_notice = ref({}); // 通知公告对象
const info_ad = ref({}); // 通知公告对象
const fileList = ref([]); // 下载文件集合
const bannerPicture = ref({}); // banner图
const noticePicture1 = ref({}); // 通知公告图片
const noticePicture2 = ref({}); // 通知公告图片
const isShowDown = ref(true); // 是否显示下载按钮
const downloadEntity = ref({
// 下载实体
// 名称需要带文件类型,要不然默认为txt
fileUploadName: '项目推荐汇总表.xlsx',
fileAddress: '/profile/attachments/project-recommendation-summary.xlsx',
});
const go = useGo();
// document.querySelectorAll('.right-li').forEach((element) => {
// element.addEventListener('click', () => {
// console.log('click');
// });
// });
function handleClick() {
router.push('/aaaFont/nationalPolicy/details');
console.log('clickpush');
}
</script>
<style scoped lang="scss">
/* 报名参赛按钮 */
.text {
position: absolute;
top: 75%;
left: 13.5%;
width: 130px;
height: 44px;
border-radius: 8px;
background: #ffac27;
font-size: 20px;
line-height: 44px;
text-align: center;
cursor: pointer;
}
.text:hover {
background-color: #f59e12;
color: #fff;
}
.text:active {
background-color: #ffac27;
color: #fff;
}
/* 报名参赛内容 */
.text span {
width: 60px;
height: 26px;
color: #fff;
font-size: 20px;
font-weight: 700;
line-height: 23px;
text-align: center;
}
/* 小球 */
.ball {
position: sticky;
z-index: 3;
/* top: 0; */
top: -40px;
margin-left: 70px;
}
/* 小球背景图 */
.circle-img {
position: relative;
z-index: 10;
width: 96px;
height: 96px;
margin-top: 12vh;
border-radius: 50%;
cursor: pointer;
}
/* 小球的下拉菜单实现 */
.dropdown {
position: absolute;
z-index: 5;
width: 96px;
/* top: 185px; */
/* top: -48px; */
margin-top: -48px;
padding: 0;
list-style-type: none;
border-right: 2px solid #005dbd;
border-bottom: 2px solid #005dbd;
border-left: 2px solid #005dbd;
background-color: #fff;
}
/* 下拉列表元素 */
.dropdown-item {
display: flex;
flex-direction: column;
align-items: center;
padding: 10px 7px;
font-size: 15px;
cursor: pointer;
}
.dropdown-item img {
width: 32px;
height: 32px;
margin-left: 1px;
}
.dropdown-item span {
margin-top: 10px;
font-size: 14px;
}
.dropdown-item:hover {
background: #d9e7f5;
color: #005dbd;
font-weight: 600;
}
/* 公共容器 所有子页面共享的css样式 */
.commonContainer {
display: flex;
position: relative;
flex-direction: column;
/* justify-content: center; !* 垂直居中 *! */
align-items: center; /* 水平居中 */
height: auto;
text-align: center;
}
.reward_container {
width: 1170px;
}
/* 子页面标题样式 */
.common-item-title {
z-index: 3;
margin-left: 20px;
color: #292929;
font-size: 40px;
font-weight: 700;
line-height: 47px;
}
/* 子页面英文标题样式 */
.letter {
position: relative;
z-index: 0;
top: -18px;
height: 67px;
color: rgb(0 0 0 / 8%);
font-size: 57px;
font-weight: 400;
line-height: 67px;
text-align: left;
text-shadow: 0 0 4px #fff;
}
/* 英文标题特殊下划线 */
.letter::before {
content: '';
position: absolute; /* 脱离文档流 设置其位置 */
top: 52px;
width: 68px; /* 调整边框的长度 */
height: 3px;
margin-left: 43%;
/* left: 39%; !* 边框在下边框的位置 *! */
border-radius: 5px;
background-color: #005dbd;
}
/* 给不同的英文标题下划线设置不同的样式 伪元素实现 */
.track .letter::before {
width: 68px;
background-color: #f35457ff;
}
.race .letter::before {
width: 68px;
background-color: white;
}
.reward .letter::before {
width: 68px;
background-color: white;
}
.download .letter::before {
width: 68px;
margin-left: 45%;
}
.institutions .letter::before {
width: 68px;
margin-left: 46%;
}
.item-content-box {
display: flex;
flex-direction: column;
align-items: center;
}
/* info子页面 */
.information {
width: 100%;
background-image: url('../../../assets/images/home/home_information.png');
background-repeat: no-repeat;
background-size: 100% 665px;
}
.info_wrapper {
display: flex;
margin-top: 60px;
margin-bottom: 60px;
}
/* info内容容器 */
.info_content {
display: flex;
position: relative;
flex-direction: column; /* 上下布局 */
width: 570px;
height: 411px;
border-radius: 20px; /* 添加圆角边框 */
/* margin: 20px 20px 20px 0; */
background-color: #fff;
box-shadow: 0 0 10px rgb(0 0 0 / 10%);
}
.info_content_second {
display: flex;
position: relative;
flex-direction: column; /* 上下布局 */
width: 100vw;
height: auto;
background-color: #fff;
.content-item-h3 {
z-index: 3;
width: 100vw;
height: 43px;
margin: 60px 0 0;
color: #383737ff;
font-size: 40px;
font-weight: 580;
letter-spacing: 0; /* 去掉字母之间的间距 */
line-height: 43px;
text-align: center; /* 居中对齐内容 */
word-spacing: -5px; /* 减少单词之间的间距 */
}
.time,
.source {
display: inline-block;
width: 101.143px;
height: 17px;
margin: 30px 30px 30px 0;
padding: 0;
color: rgb(97 108 127);
font-family: PingFangTC-Regular, PingFangTC;
font-size: 12px;
-webkit-font-smoothing: antialiased;
font-weight: 400;
line-height: 17px;
text-rendering: optimizelegibility;
text-size-adjust: 100%;
}
}
/* 内容头部 */
.info_header {
display: flex;
justify-content: space-between;
padding: 7px 0;
border-bottom: 1px solid #ccc;
}
/* 头部 图标 */
.info_img {
position: relative;
top: 3px;
width: 32px;
height: 32px;
margin-right: 10px;
margin-left: 20px;
}
/* 头部 查看更多超链接 */
.more-link {
display: flex;
align-items: center;
margin-right: 20px;
}
.more-link:hover {
margin-right: 20px;
color: #005dbd;
font-size: 16px;
font-weight: 600;
}
/* 内容信息容器 */
.notice_container {
flex: 1; /* 占有容器全部空间 */
border-radius: 0 0 20px;
background-color: white;
}
/* 数据遍历容器 */
.notice {
display: flex;
position: relative;
height: 95px;
/* align-items: center; */
margin: 20px 0;
/* border-bottom: 2px dotted #ccc; */
/* padding-bottom: 10px; */
/* padding-right: 5px; */
padding: 5px 2%;
}
.notice:not(:last-child)::before {
content: '';
position: absolute;
right: auto;
/* top: 0; */
bottom: -7px;
left: 4%;
width: 92%;
height: 1px;
border-bottom: 2px dashed #e4e4e4;
}
.notice:last-child {
border-bottom: none; /* 最后一个notice去掉底部边框 */
}
/* 图片 */
.notice-image {
flex: 0 0 100px; /* 三属性合一 */
margin-right: 20px;
margin-left: 15px;
}
.notice-image img {
width: 120px;
height: 80px;
border-radius: 6px;
}
/* 数据容器 */
.notice-content {
display: flex;
flex: 1;
flex-direction: column;
}
/* 内容 */
.notice-text {
display: -webkit-box;
margin-bottom: 5px;
overflow: hidden;
color: #333;
font-size: 17px;
font-weight: 540;
line-height: 28px;
text-align: left;
text-overflow: inherit;
cursor: pointer;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
/* 日期 */
.notice-time {
position: absolute;
/* margin-top: 20px; */
bottom: 10px;
width: 179px;
height: 18px;
color: #969696;
font-size: 14px;
font-weight: 400;
line-height: 18px;
text-align: left;
}
/* 奖励计划相关的css样式 */
.reward {
width: 100%;
}
/* 奖励计划 上div */
.reward_top {
display: flex;
width: 1170px;
margin-bottom: 25px;
border-bottom: 1px solid gray;
}
.reward_top img {
width: 180px;
height: 45px;
margin-right: 10px; /* 图片右边距 */
margin-left: -6px;
}
/* 奖励计划 中div */
.reward_center {
display: flex;
align-items: center;
}
/* 左边 */
.left-container {
display: flex;
flex-direction: column;
width: 187px;
margin-left: 20px;
padding: 20px 0;
}
.left-container .reward_title {
display: flex;
align-items: center;
width: 100%;
height: 32px;
color: #fff;
font-size: 24px;
font-weight: 400;
line-height: 32px;
text-align: left;
}
.left-container .reward_title .reward_icon {
position: relative;
top: 4px;
width: 42px;
height: 24px;
margin-left: 10px;
float: right;
border-radius: 20px;
background: #e85252;
font-size: 14px;
}
.reward_icon span {
position: absolute;
top: 3px;
left: 13px;
width: 10px;
height: 18px;
color: #fff;
font-size: 14px;
font-weight: 400;
line-height: 16px;
text-align: center;
}
.subtitle {
position: relative;
width: 48px;
height: 32px;
color: rgb(255 255 255 / 75%);
font-size: 24px;
font-weight: 400;
line-height: 28px;
text-align: left;
}
.subtitle::before {
content: '';
display: block;
position: absolute;
top: 34px;
bottom: 0;
left: 0%; /* 边框在下边框的中间位置 */
width: 65%; /* 调整边框的长度 */
height: 2px;
border-radius: 2px;
background-color: #c03639;
}
/* 右边 */
.right-container {
display: flex;
align-items: center;
justify-content: space-between;
margin-left: 5px;
padding: 20px 0;
}
/* 奖项容器 */
.item {
display: flex;
flex-direction: column;
align-items: center;
width: 220px;
height: 130px;
margin-left: 20px;
border-radius: 10px;
background: #fff;
box-shadow: 0 0 10px 0 rgb(0 0 0 / 25%);
}
.right-container .item img {
width: 36px;
height: 36px;
}
.right-container .item .item_text {
width: 147px;
height: 37px;
margin-top: 15px;
color: #292929;
font-size: 28px;
font-weight: 700;
line-height: 33px;
text-align: center;
}
/* 金额 */
.right-container .item .amount {
width: 107px;
height: 32px;
margin-top: 10px;
color: #d32f2f;
font-size: 16px;
font-weight: 400;
line-height: 19px;
text-align: center;
}
/* 底部容器 */
.reward_bottom {
position: relative;
margin-top: 60px;
margin-bottom: 80px;
}
/* 特殊奖励图片 */
.reward_bottom img:first-child {
position: absolute;
top: -45px;
left: 0;
width: 180px;
height: 45px;
}
/* 左侧说明文字 */
.reward_bottom .image_text01 {
position: absolute;
top: 80px;
left: 60px;
width: 60%;
height: 180px;
color: #333;
font-size: 20px;
font-weight: 400;
line-height: 36px;
text-align: left;
}
/* 右侧说明文字 */
.reward_bottom .image_text02 {
position: absolute;
top: 20px;
right: 45px;
width: 310px;
height: 144px;
color: #fff;
font-size: 20px;
font-weight: 400;
line-height: 36px;
text-align: left;
text-shadow: 0 4px 4px 0 rgb(0 0 0 / 25%);
}
/* track容器 */
.track {
height: 702px;
background-image: url('../../../assets/images/home/home_track.png');
background-repeat: no-repeat;
background-size: 100% auto;
}
.track_region {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 1170px;
}
/* 长方形容器 */
.box {
position: relative;
width: 49%;
height: 244px;
margin-bottom: 20px;
padding: 10px;
border-radius: 10px;
background: #fff;
box-shadow: 0 1px 10px 0 rgb(0 0 0 / 20%);
}
/* 左上角正三角图片 */
.triangle {
position: absolute;
top: 0;
left: 0;
width: 74px;
height: 74px;
background-size: cover;
}
/* 右上角数字图片 */
.image {
position: absolute;
top: 0;
right: 3px;
width: 94px;
height: 94px;
/* background: url('path/to/your/image.jpg') no-repeat; */
background-size: cover;
/* filter: blur(5px); */
}
.track_title {
width: 100%;
height: 30px;
margin-top: 26px;
margin-left: 32px;
color: #333;
font-size: 24px;
font-weight: 700;
line-height: 30px;
text-align: left;
}
.track_content {
height: 35%;
margin-top: 25px;
margin-left: 30px;
color: #686a6c;
/* margin-right: 30px; */
font-size: 17px;
text-align: left;
}
/* 查看详情按钮 */
.detail {
bottom: 10px;
width: 148px;
height: 50px;
border: 1px solid #005dbd;
border-radius: 8px;
border-bottom-color: #005dbd;
/* margin-top: 40px; */
background: #fff;
color: #005dbd;
font-size: 17px;
font-weight: 500;
cursor: pointer;
}
.detail:hover {
/* 设置移动鼠标后的文本颜色 */
background: #005dbd;
color: #fff;
}
.detail:active {
background: #026edd;
color: #fff;
/* 设置点击后的文本颜色 */
}
/* download和institutions的父容器 */
.union {
width: 100%;
background-image: url('../../../assets/images/home/home_union.png');
background-repeat: no-repeat;
background-size: 100% auto;
}
/* 下载容器 */
.download {
}
.download_outer_container {
display: flex;
position: relative;
flex-direction: column;
width: 1170px;
/* align-items: center; */
overflow: hidden;
}
/* 水平滑动的盒子容器 */
.download_inner_container {
/* display: inline-block; */
display: flex;
align-items: center;
width: 800px;
/* overflow: hidden; */
/* margin: 0 auto; !* 居中 *! */
/* width: calc(4 * (240px + 40px)); !* 每个盒子的宽度加上 margin *! */
height: 200px;
/* padding: 0 0px 0 0px; */
}
/* 盒子 */
.download_box {
display: flex;
flex-direction: column;
align-items: center;
/* padding: 10px; */
width: 250px;
height: 124px;
margin-left: 10px;
border-radius: 10px;
background: #fff;
box-shadow: 0 0 10px 0 rgb(0 0 0 / 20%);
/* transition: transform 3s; */
cursor: pointer;
}
.download_box img {
width: 54px;
height: 54px;
}
.download_box p {
width: 246px;
height: 26px;
color: #333;
font-size: 20px;
font-weight: 700;
line-height: 23px;
text-align: center;
}
/* 滚动条+左右箭头容器 */
.scrollbar {
display: flex;
align-items: center;
width: 400px;
margin-top: 10px;
/* margin-left: 450px; */
}
/* 滚动条样式修改 */
::v-deep .swiper-scrollbar-drag {
height: 6px !important;
border-radius: 10px;
}
/* 学院容器 */
.institutions {
margin-top: 20px;
padding-bottom: 80px;
}
.institutions_outer_container {
display: flex;
position: relative;
flex-direction: column;
width: 1170px;
/* align-items: center; */
overflow: hidden;
}
.institutions_inner_container {
display: flex;
align-items: flex-start;
width: 800px;
}
/* 一行学校容器 */
.institutions_container {
display: flex;
margin-bottom: 50px;
}
/* 单个学校容器 */
.institutions_box {
display: flex;
position: relative; /* Enable relative positioning */
align-items: center;
justify-content: center;
width: 212px;
height: 107px;
margin: 10px;
border-radius: 10px;
background: #fff;
box-shadow: 0 0 10px 0 rgb(0 0 0 / 20%);
text-align: center;
}
.institutions_box img {
width: 65px;
height: 65px;
}
.institutions_box p {
position: absolute;
bottom: -50px;
width: 100%;
height: 22px;
color: #333;
font-size: 17px;
font-weight: 400;
line-height: 20px;
text-align: center;
}
// .info_header span {
// width: 48px;
// height: 32px;
// margin-left: 5px;
// color: #005dbd;
// font-size: 22px;
// font-weight: bold;
// line-height: 28px;
// text-align: left;
// }
/* element-UI对话框css样式设置 */
/* 对话框标题 */
::v-deep .el-dialog__title {
font-size: 26px;
font-weight: bold;
}
/* 对话框的header部分 */
::v-deep .el-dialog__header {
height: 60px;
background-color: #f9f9f9;
}
/* 对话框滚动条设置 */
.dialog-container {
max-height: 75vh; /* 调整为你希望的最大高度 */
padding: 10px 20px;
overflow-y: auto;
}
::v-deep .el-tabs__nav-scroll {
width: 50%;
margin: 0 auto;
}
/* 去掉tabs底部的下划线 */
::v-deep .el-tabs__nav-wrap::after {
position: static !important;
}
::v-deep .el-tabs__item {
height: 70px;
}
.title_bottom {
margin-top: 40px;
color: #a3a3a3;
font-size: 24px;
font-weight: 500;
letter-spacing: 4px;
}
.carouselImg {
width: 100%;
height: 100%;
}
.tab-pane {
display: flex;
position: relative;
width: 1440px;
margin-top: 15px;
}
//tabs 按钮
.back-button {
position: absolute;
top: 0;
right: 0;
margin-top: 3px;
color: #3a5cde;
font-size: 18px;
}
.card-row {
display: flex;
justify-content: space-around;
margin-top: 20px;
font-size: 15px;
text-align: left;
p {
height: 24px;
margin-top: 18px;
}
.card-left {
width: 28%;
color: #707070;
}
.card-right {
width: 68%;
color: #3f3f3f;
}
}
.tab-label {
font-size: 24px;
font-weight: 700;
}
.card_bottom {
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 500;
.button {
border: #1962e2 2px solid;
color: #1962e2;
}
}
.industry {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
margin-top: 100px;
background-color: #fff;
}
.industry-row {
display: flex;
justify-content: center;
width: 1440px;
}
.row-right {
width: 1100px;
height: 300px;
padding: 0 24px;
border-radius: 8px;
background-color: #fff;
}
.right-li {
display: flex;
justify-content: space-between;
margin: 30px 20px 20px 0;
transform: translateY(-80px);
font-size: 18px;
cursor: pointer; /* 添加鼠标指针样式 */
}
.right-li:hover {
transition: background-color 0.3s; /* 添加过渡效果 */
background-color: #eff6ff; /* 添加鼠标悬浮效果 */
}
.right-li:active {
background-color: #ddd; /* 添加点击效果 */
}
.li-left {
}
.li-middle {
width: 76%;
color: #3f3f3f;
}
.li-right {
color: #9c9c9c;
}
.content-text-1 {
display: block;
box-sizing: border-box;
width: calc(100vw - 16vw); /* 修改为视口宽度减去 16% 的宽度 */
min-height: 140px;
margin: 0 auto; /* 将段落居中 */
padding: 0 8vw 28px;
color: rgb(25 27 36);
font-family: PingFangSC-Regular, 'PingFang SC';
font-size: 16px;
-webkit-font-smoothing: antialiased;
font-weight: 400;
line-height: 28px;
text-align: left;
text-indent: 32px;
text-rendering: optimizelegibility;
text-size-adjust: 100%;
unicode-bidi: isolate;
}
.content-text-1::first-line {
text-align: left;
}
.content-text-title-1 {
display: block;
box-sizing: border-box;
width: calc(100vw - 60vw); /* 修改为视口宽度减去 8% 的宽度 */
height: 56px;
margin: 0;
margin-left: 8vw; /* 修改为 8% 的视口宽度 */
margin-block: 0;
margin-inline: 0;
padding: 0 0 28px;
color: rgb(25 27 36);
font-family: PingFangSC-Regular, 'PingFang SC';
font-size: 16px;
-webkit-font-smoothing: antialiased;
font-weight: 600;
line-height: 28px;
text-indent: 32px;
text-rendering: optimizelegibility;
text-size-adjust: 100%;
unicode-bidi: isolate;
}
</style>
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
<span>2024-12-17</span> <span>2024-12-17</span>
</div> </div>
</div> </div>
<div class="right-li"> <div class="right-li" @click="handleClick">
<div class="li-left"> <div class="li-left">
<el-tag type="danger" style="font-size: 14px">国家政策</el-tag> <el-tag type="danger" style="font-size: 14px">国家政策</el-tag>
</div> </div>
...@@ -109,8 +109,11 @@ ...@@ -109,8 +109,11 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { router } from '@/router';
import { ref } from 'vue'; import { ref } from 'vue';
import { useRouter, onBeforeRouteLeave } from 'vue-router';
const fileType = ref(''); // 文件下载后缀 const fileType = ref(''); // 文件下载后缀
const choseFile = ref({}); // 选择文件对象 const choseFile = ref({}); // 选择文件对象
const downloadType = ref(''); // 1是本地文件下载,2是oss文件下载 const downloadType = ref(''); // 1是本地文件下载,2是oss文件下载
...@@ -130,6 +133,7 @@ ...@@ -130,6 +133,7 @@
fileUploadName: '项目推荐汇总表.xlsx', fileUploadName: '项目推荐汇总表.xlsx',
fileAddress: '/profile/attachments/project-recommendation-summary.xlsx', fileAddress: '/profile/attachments/project-recommendation-summary.xlsx',
}); });
document.querySelectorAll('.right-li').forEach((element) => { document.querySelectorAll('.right-li').forEach((element) => {
element.addEventListener('click', () => { element.addEventListener('click', () => {
console.log('click'); console.log('click');
......
<template>
<!-- <div v-if="getShow">-->
<Form class="p-4 enter-x" :model="formData" :rules="getFormRules" ref="formRef">
<FormItem name="account" class="enter-x">
<Input
class="fix-auto-fill"
size="large"
v-model:value="formData.account"
placeholder="请输入用户名"
:placeholder="t('sys.login.userName')"
/>
</FormItem>
<FormItem name="mobile" class="enter-x">
<Input
size="large"
v-model:value="formData.mobile"
:placeholder="t('sys.login.mobile')"
class="fix-auto-fill"
/>
</FormItem>
<FormItem name="sms" class="enter-x">
<CountdownInput
size="large"
class="fix-auto-fill"
v-model:value="formData.sms"
:placeholder="t('sys.login.smsCode')"
/>
</FormItem>
<FormItem name="password" class="enter-x">
<InputPassword
size="large"
v-model:value="formData.password"
placeholder="请输入密码"
:placeholder="t('sys.login.password')"
/>
</FormItem>
<FormItem name="confirmPassword" class="enter-x">
<InputPassword
size="large"
visibilityToggle
v-model:value="formData.confirmPassword"
placeholder="请输入重复密码"
:placeholder="t('sys.login.confirmPassword')"
/>
</FormItem>
<FormItem class="enter-x" name="policy">
<!-- No logic, you need to deal with it yourself -->
<Checkbox v-model:checked="formData.policy" size="small">
{{ t('sys.login.policy') }}
</Checkbox>
</FormItem>
<Button
type="primary"
class="enter-x"
size="large"
block
@click="handleRegister"
:loading="loading"
>
{{ t('sys.login.registerButton') }}
</Button>
<!-- <Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">-->
<!-- {{ t('sys.login.backSignIn') }}-->
<!-- </Button>-->
</Form>
<!-- </div>-->
</template>
<script lang="ts" setup>
import { reactive, ref, unref, computed } from 'vue';
import { Form, Input, Button, Checkbox } from 'ant-design-vue';
import { StrengthMeter } from '@/components/StrengthMeter';
import { CountdownInput } from '@/components/CountDown';
import { useI18n } from '@/hooks/web/useI18n';
import { useLoginState, useFormRules, useFormValid, LoginStateEnum } from '../Login/useLogin';
const FormItem = Form.Item;
const InputPassword = Input.Password;
const { t } = useI18n();
const { handleBackLogin, getLoginState } = useLoginState();
const formRef = ref();
const loading = ref(false);
const formData = reactive({
account: '',
password: '',
confirmPassword: '',
mobile: '',
sms: '',
policy: false,
});
const { getFormRules } = useFormRules(formData);
const { validForm } = useFormValid(formRef);
const getShow = computed(() => unref(getLoginState) === LoginStateEnum.REGISTER);
async function handleRegister() {
const data = await validForm();
if (!data) return;
console.log(data);
}
</script>
<template> <template>
<div id="login"> <div id="register">
<el-container> <el-container>
<el-header class="header"> <el-header class="header">
<div @click="handleTitle" class="official-title"> 数据要素交易服务平台 </div> <div @click="handleTitle" class="official-title"> 数据要素交易服务平台 </div>
<div class="分割线"></div> <div class="分割线"></div>
<div class="title-right">注册</div> <div class="title-right">注册</div>
</el-header> </el-header>
<div class="login-box"> <div class="register-box">
<div class="login-win"> <div class="register-win">
<div class="login-title"> <div class="win-box">
<span class="login-title-text">用户登录</span> <div class="register-title">
<span class="register-title-text">欢迎注册</span>
</div>
<RegisterForm/>
</div> </div>
<LoginForm/>
</div> </div>
</div> </div>
</el-container> </el-container>
...@@ -20,11 +22,11 @@ ...@@ -20,11 +22,11 @@
<script> <script>
import Icon from '@/components/Icon/Icon.vue'; import Icon from '@/components/Icon/Icon.vue';
import LoginForm from '.././Login/LoginForm.vue'; import RegisterForm from "./RegisterForm.vue";
export default { export default {
name: 'register', name: 'register',
components: { LoginForm, Icon }, components: {RegisterForm, Icon },
data() { data() {
return {}; return {};
}, },
...@@ -42,7 +44,7 @@ export default { ...@@ -42,7 +44,7 @@ export default {
body { body {
margin: 0; margin: 0;
} }
#login { #register {
min-width: 1366px; min-width: 1366px;
width: auto; width: auto;
position: relative; position: relative;
...@@ -92,27 +94,31 @@ body { ...@@ -92,27 +94,31 @@ body {
background-color: #dce7fb; background-color: #dce7fb;
} }
.login-box { .register-box {
width: 100%; width: 100%;
aspect-ratio: 1920 / 863; /* 或者其他的宽高比 */ aspect-ratio: 1920 / 863; /* 或者其他的宽高比 */
position: relative; position: relative;
.login-win { .register-win {
width: 427px; width: 75%;
height: 479px; height: 75%;
background: #fdfdfd; background: #fdfdfd;
outline: 10px solid rgba(255, 255, 255, 0.25);
border-radius: 8px; border-radius: 8px;
position: absolute; position: absolute;
left: 60%; left: 50%;
top: 50%; top: 50%;
transform: translateY(-50%); transform: translate(-50%, -50%);
.win-box{
width: 30%;
margin: 0 auto;
.login-title { .register-title {
margin: 50px 0 30px 16px; margin: 50px 0 30px 16px;
.login-title-text{ .register-title-text{
width: 128px; width: 128px;
height: 48px; height: 48px;
color: #3f3f3f; color: #3f3f3f;
...@@ -121,5 +127,7 @@ body { ...@@ -121,5 +127,7 @@ body {
} }
} }
} }
}
} }
</style> </style>
...@@ -6,7 +6,22 @@ ...@@ -6,7 +6,22 @@
:title="getTitle" :title="getTitle"
@ok="handleSubmit" @ok="handleSubmit"
> >
<BasicForm @register="registerForm" /> <BasicForm @register="registerForm">
<template #import="{}">
<BasicUpload
:maxSize="20"
:maxNumber="1"
@change="handleChange"
@click="handleUpload"
:api="userImport"
:accept="['.xlsx, .xls']"
>
<template #uploadBtnName>
<span>导入文件</span>
</template>
</BasicUpload>
</template>
</BasicForm>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
...@@ -15,10 +30,11 @@ ...@@ -15,10 +30,11 @@
import { BasicForm, useForm } from '@/components/Form'; import { BasicForm, useForm } from '@/components/Form';
import { accountFormSchema } from './institution.data'; import { accountFormSchema } from './institution.data';
import { getDeptList } from '@/api/system/dept/dept'; import { getDeptList } from '@/api/system/dept/dept';
import { addUserApi, UserDetailApi, UserUpdataApi } from '@/api/system/user/user'; import { addUserApi, UserDetailApi, UserUpdataApi, userImport } from '@/api/system/user/user';
import { encryptTwo } from '../../../../src/utils/jsencrypt.js'; import { encryptTwo } from '../../../../src/utils/jsencrypt.js';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { TreeData } from '@/views/dataSharingAndExchange/catalogingManagement/institutionData'; import { TreeData } from '@/views/dataSharingAndExchange/catalogingManagement/institutionData';
import { BasicUpload } from '@/components/Upload';
defineOptions({ name: 'AccountModal' }); defineOptions({ name: 'AccountModal' });
...@@ -65,8 +81,14 @@ ...@@ -65,8 +81,14 @@
]); ]);
}); });
const getTitle = computed(() => (!unref(isUpdate) ? '新增账号' : '编辑账号')); const getTitle = computed(() => (!unref(isUpdate) ? '新增轮播图' : '编辑轮播图'));
function handleChange(list: string[]) {
console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', list);
createMessage.success(`文件上传成功`);
}
function handleUpload() {
isGetMeta.value = 'true';
}
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'; id = id || 'id';
parentId = parentId || 'parentId'; parentId = parentId || 'parentId';
......
...@@ -195,51 +195,11 @@ export const accountFormSchema: any[] = [ ...@@ -195,51 +195,11 @@ export const accountFormSchema: any[] = [
}, },
], ],
}, },
// { {
// field: 'visibleRange', field: 'import',
// label: '可见范围', label: '上传轮播图',
// component: 'Select', slot: 'import',
// componentProps: { },
// options: [
// { label: '所有人', value: '所有人' },
// { label: '用户1', value: '用户1' },
// { label: '用户2', value: '用户2' },
// ],
// },
// colProps: { lg: 24, md: 24 },
// rules: [
// {
// required: true,
// message: '请输入登录名',
// },
// ],
// },
// {
// field: 'resourceNum',
// label: '可见资源数',
// component: 'InputNumber',
// colProps: { lg: 24, md: 24 },
// rules: [
// {
// required: true,
// message: '请输入',
// },
// ],
// },
// {
// field: 'institutionId',
// label: '所属编目',
// component: 'TreeSelect',
// colProps: { lg: 24, md: 24 },
// componentProps: {
// fieldNames: {
// label: 'institutionName',
// value: 'businessId',
// },
// getPopupContainer: () => document.body,
// },
// required: true,
// },
]; ];
export const EditFormSchema: any[] = [ export const EditFormSchema: any[] = [
{ {
......
...@@ -7,7 +7,7 @@ export const enrollData: any[] = [ ...@@ -7,7 +7,7 @@ export const enrollData: any[] = [
dataBase: '腾讯云数据中心', dataBase: '腾讯云数据中心',
enrollDate: '2023-01-15', enrollDate: '2023-01-15',
enrollStatus: '已备案', enrollStatus: '已备案',
isObjection: '', isObjection: '',
enrollBook: ['src/assets/images/登记证书.jpg'], enrollBook: ['src/assets/images/登记证书.jpg'],
}, },
{ {
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
</template> </template>
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<TableAction <TableAction
v-if="record.isObjection === '是'"
:actions="[ :actions="[
{ {
label: '详情', label: '详情',
...@@ -32,6 +33,19 @@ ...@@ -32,6 +33,19 @@
}, },
]" ]"
/> />
<TableAction
v-else
:actions="[
{
label: '详情',
onClick: handleDetail.bind(null, record),
},
{
label: '审核',
onClick: handleAudit.bind(null, record),
},
]"
/>
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
......
...@@ -15,15 +15,15 @@ ...@@ -15,15 +15,15 @@
<div class="flex" style="margin-bottom: 20px"> <div class="flex" style="margin-bottom: 20px">
<div style="margin-top: 4px">异议内容:</div> <div style="margin-top: 4px">异议内容:</div>
<div <div
><span style="font-size: 18px; font-weight: bolder">浙江金华贸易有限公司</span ><span style="font-size: 18px; font-weight: bolder">xxx科技有限公司</span
><span>认为</span ><span>认为</span
><span style="font-size: 18px; font-weight: bolder">宏源技术科技有限公司</span ><span style="font-size: 18px; font-weight: bolder">xxx科技有限公司</span
><span>有抄袭行为</span></div ><span>有抄袭行为</span></div
> >
</div> </div>
<div class="flex"> <div class="flex">
<Descriptions class="w-1/2" :column="1"> <Descriptions class="w-1/2" :column="1">
<Descriptions.Item label="申请人">浙江金华贸易有限公司</Descriptions.Item> <Descriptions.Item label="申请人">xxx科技有限公司</Descriptions.Item>
<Descriptions.Item label="数据名称">租赁行业评价模型分析数据</Descriptions.Item> <Descriptions.Item label="数据名称">租赁行业评价模型分析数据</Descriptions.Item>
<Descriptions.Item label="数据来源">公开收集</Descriptions.Item> <Descriptions.Item label="数据来源">公开收集</Descriptions.Item>
<Descriptions.Item label="数据名称">人工智能预测模型</Descriptions.Item> <Descriptions.Item label="数据名称">人工智能预测模型</Descriptions.Item>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<Descriptions.Item label="发布时间">2023.10.12</Descriptions.Item> <Descriptions.Item label="发布时间">2023.10.12</Descriptions.Item>
</Descriptions> </Descriptions>
<Descriptions style="margin-left: 20px" class="w-1/2" :column="1"> <Descriptions style="margin-left: 20px" class="w-1/2" :column="1">
<Descriptions.Item label="申请人">宏源技术科技有限公司</Descriptions.Item> <Descriptions.Item label="申请人">xxx科技有限公司</Descriptions.Item>
<Descriptions.Item label="数据名称">租赁行业评价模型分析数据</Descriptions.Item> <Descriptions.Item label="数据名称">租赁行业评价模型分析数据</Descriptions.Item>
<Descriptions.Item label="数据来源">公开收集</Descriptions.Item> <Descriptions.Item label="数据来源">公开收集</Descriptions.Item>
<Descriptions.Item label="数据名称">大数据人工智能预测模型</Descriptions.Item> <Descriptions.Item label="数据名称">大数据人工智能预测模型</Descriptions.Item>
......
...@@ -4,21 +4,18 @@ ...@@ -4,21 +4,18 @@
dense dense
contentBackground contentBackground
contentFullHeight contentFullHeight
fixed-height
headerSticky headerSticky
@back="handleBack" @back="handleBack"
> >
<Row :gutter="[16, 30]"> <Row :gutter="[16, 30]">
<Col :span="12" v-for="info in myMessageDetailColumns" :key="info"> <Col :span="24" v-for="info in myMessageDetailColumns" :key="info">
<div class="col-item"> <div class="col-item">
<div class="item-label">{{ info.title }}</div>
<div class="item-des">{{ data[info.dataIndex] ? data[info.dataIndex] : '-' }}</div> <div class="item-des">{{ data[info.dataIndex] ? data[info.dataIndex] : '-' }}</div>
</div> </div>
</Col> </Col>
</Row> </Row>
<div style="margin: 40px 60px" class="flex"> <div class="flex">
<div v-if="title === '通知公告'" style="margin-left: 100px"> <div v-if="title === '通知公告'" style="padding: 0 20%">
<p class="des-p"> <p class="des-p">
为加强数据知识产权领域的服务质量,提升相关机构的市场竞争力,推动数据知识产权保护和创新应用,依据《数据知识产权专业服务机构管理办法》及相关政策要求,市场监督管理局于2023年开展了对数据知识产权专业服务机构的年度服务绩效评价工作。 为加强数据知识产权领域的服务质量,提升相关机构的市场竞争力,推动数据知识产权保护和创新应用,依据《数据知识产权专业服务机构管理办法》及相关政策要求,市场监督管理局于2023年开展了对数据知识产权专业服务机构的年度服务绩效评价工作。
本次评价工作通过对全国范围内的数据知识产权服务机构进行全面评审,结合其在知识产权申请、管理、保护、转化等方面的实际表现,重点考察了各机构的技术能力、服务质量、创新成果以及社会影响力等多维度指标。<br />经过严格审定,现将2023年度服务绩效评价结果通报如下: 本次评价工作通过对全国范围内的数据知识产权服务机构进行全面评审,结合其在知识产权申请、管理、保护、转化等方面的实际表现,重点考察了各机构的技术能力、服务质量、创新成果以及社会影响力等多维度指标。<br />经过严格审定,现将2023年度服务绩效评价结果通报如下:
...@@ -54,8 +51,15 @@ ...@@ -54,8 +51,15 @@
</p> </p>
<p class="des-p"> 特此通报。</p> <p class="des-p"> 特此通报。</p>
</div> </div>
<div v-else style="margin-left: 100px"> <div v-else class="flex-1">
<Upload style="width: 45%" v-model:file-list="fileList" /> <div class="flex" style="justify-content: center;margin-top: 30px">
<div style="line-height: 34px"
><span style="color: #389be1">天津宏宇科技有限公司</span><span style="color: #389be1"
>2024.03.10</span
>购买了你的商品</div
>
<a-button type="link"><span>&lt;&lt;去查看&gt;&gt;</span></a-button>
</div>
</div> </div>
</div> </div>
</PageWrapper> </PageWrapper>
...@@ -113,20 +117,24 @@ ...@@ -113,20 +117,24 @@
<style scoped> <style scoped>
.col-item { .col-item {
display: flex; display: flex;
justify-content: center;
gap: 10px; gap: 10px;
margin: 20px 60px; margin: 20px 60px;
.item-label { .item-label {
width: 130px; width: 120px;
} }
.item-img { .item-img {
width: 150px; width: 150px;
height: 100px; height: 100px;
} }
.item-des {
font-size: 17px;
font-weight: bolder;
}
} }
.des-p { .des-p {
margin-left: 100px; text-align: left;
width: 70%;
font-size: 16px; font-size: 16px;
text-indent: 2em; text-indent: 2em;
line-height: 40px; line-height: 40px;
......
export const myMessageData: any[] = [ export const myMessageData: any[] = [
{ {
messageTitle: '浙江省市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报', messageTitle: '市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报',
messageType: '通知公告', messageType: '通知公告',
publishTime: '2024-04-22', publishTime: '2024-04-22',
}, },
{ {
messageTitle: '浙江省市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报', messageTitle: '市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报',
messageType: '通知公告', messageType: '通知公告',
publishTime: '2024-04-22', publishTime: '2024-04-22',
}, },
{ {
messageTitle: '浙江省市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报', messageTitle: '市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报',
messageType: '通知公告', messageType: '通知公告',
publishTime: '2024-04-22', publishTime: '2024-04-22',
}, },
{ {
messageTitle: '浙江省市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报', messageTitle: '市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报',
messageType: '通知公告', messageType: '通知公告',
publishTime: '2024-04-22', publishTime: '2024-04-22',
}, },
{ {
messageTitle: '浙江省市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报', messageTitle: '市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报',
messageType: '通知公告', messageType: '通知公告',
publishTime: '2024-04-22', publishTime: '2024-04-22',
}, },
{ {
messageTitle: '浙江省市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报', messageTitle: '订单消息',
messageType: '待办', messageType: '待办',
publishTime: '2024-04-22', publishTime: '2024-04-22',
}, },
{ {
messageTitle: '浙江省市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报', messageTitle: '订单消息',
messageType: '待办', messageType: '待办',
publishTime: '2024-04-22', publishTime: '2024-04-22',
}, },
{ {
messageTitle: '浙江省市场监督管理局关于数据知识产权专业服务机构2023年度服务绩效评价结果的通报', messageTitle: '订单消息',
messageType: '待办', messageType: '待办',
publishTime: '2024-04-22', publishTime: '2024-04-22',
}, },
......
<template> <template>
<PageWrapper
:title="!isAudit ? '异议详情' : '异议审核'"
dense
contentBackground
contentFullHeight
fixed-height
headerSticky
@back="handleBack"
>
<Row :gutter="[16, 30]">
<Col :span="12" v-for="info in objectionColumns" :key="info">
<div class="col-item">
<div class="item-label">{{ info.title }}</div>
<div class="item-des">{{ data[info.dataIndex] ? data[info.dataIndex] : '-' }}</div>
</div>
</Col>
<Col :span="12">
<div class="col-item">
<div class="item-label">异议内容:</div>
<div class="item-des"> xxx科技有限公司认为xxx科技有限公司有抄袭行为</div>
</div>
</Col>
</Row>
<div style="display: flex">
<div v-if="isAudit" style="margin: 40px 60px" class="flex">
<div style="line-height: 35px">证明材料:</div>
<div style="margin-left: 100px">
<Upload style="width: 45%" v-model:file-list="fileList" />
</div>
</div>
<div v-if="isAudit" style="margin: 40px 0 0 440px" class="flex">
<div style="line-height: 35px">审核意见:</div>
<div style="margin-left: 100px">
<Textarea v-model:value="idea" style="width: 300px" placeholder="请输入审核意见" />
</div>
</div>
</div>
<div
v-if="isAudit"
style="justify-content: right; display: flex; gap: 10px; margin-right: 20px"
>
<a-button @click="handleCancel">驳回</a-button>
<a-button type="primary" @click="handleEdit">审核</a-button>
</div>
</PageWrapper>
</template> </template>
<script> <script lang="ts" setup>
export default { import PageWrapper from '@/components/Page/src/PageWrapper.vue';
name: "detail" import { useRoute, useRouter } from 'vue-router';
} import { useDescription } from '@/components/Description';
import { Col, Descriptions, Row, Input, Upload, Textarea } from 'ant-design-vue';
import { FileProtectOutlined, UploadOutlined } from '@ant-design/icons-vue';
import {
infoList,
model,
} from '@/views/mallResourceDevelopment/API/apiByApply/apiDetail/detailData';
import { ref, onMounted, reactive } from 'vue';
import moment from 'moment/moment';
import { TableImg } from '@/components/Table';
import { useMessage } from '@/hooks/web/useMessage';
import { objectionColumns } from '@/views/personalCenter/myObjection/objection.data';
import { formSchema1 } from '@/views/servicePlatform/enterpriseCertification/enterpriseColumns.data';
const { createMessage } = useMessage();
const route = useRoute();
const data = ref(route.query);
const router = useRouter();
const isAudit = ref(route.query.isAudit);
const idea = ref('');
const fileList = reactive([
{
uid: 1,
name: '证明材料附件1.word',
status: 'done',
},
{
uid: 2,
name: '证明材料附件2.pdf',
status: 'done',
},
]);
function handleBack() {
router.go(-1);
}
onMounted(() => {
console.log('date', data.value);
});
function handleCancel() {
router.go(-1);
createMessage.success('驳回成功!');
}
function handleEdit() {
router.go(-1);
createMessage.success('审核成功!');
}
</script> </script>
<style scoped> <style scoped>
.col-item {
display: flex;
gap: 10px;
margin: 20px 60px;
.item-label {
width: 150px;
}
.item-img {
width: 150px;
height: 100px;
}
}
</style> </style>
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
</template> </template>
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<TableAction <TableAction
v-if="record.objectionType === '我收到的'"
:actions="[ :actions="[
{ {
label: '详情', label: '详情',
...@@ -32,6 +33,15 @@ ...@@ -32,6 +33,15 @@
}, },
]" ]"
/> />
<TableAction
v-else
:actions="[
{
label: '详情',
onClick: handleDetail.bind(null, record),
},
]"
/>
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
...@@ -55,7 +65,8 @@ ...@@ -55,7 +65,8 @@
searchFormSchema, searchFormSchema,
} from '@/views/dataWarehousePlanning/physicalModel/model.data'; } from '@/views/dataWarehousePlanning/physicalModel/model.data';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import {objectionColumns} from "@/views/personalCenter/myObjection/objection.data"; import { objectionColumns } from '@/views/personalCenter/myObjection/objection.data';
import { objectionData } from '@/views/personalCenter/myObjection/objectionData';
// 初始化 // 初始化
const { createMessage, createConfirm } = useMessage(); const { createMessage, createConfirm } = useMessage();
...@@ -90,12 +101,12 @@ ...@@ -90,12 +101,12 @@
pageNu: '1', pageNu: '1',
pageSize: '10', pageSize: '10',
pages: '1', pages: '1',
total: enterprisesData.length, total: objectionData.length,
code: '', code: '',
message: '', message: '',
data: enterprisesData, data: objectionData,
}; };
return { ...response, data: enterprisesData }; return { ...response, data: objectionData };
}, },
rowKey: 'businessId', rowKey: 'businessId',
columns: objectionColumns, columns: objectionColumns,
...@@ -116,21 +127,21 @@ ...@@ -116,21 +127,21 @@
}, },
} as BasicTableProps); } as BasicTableProps);
function handleEdit() {
createConfirm({ function handleDetail(record) {
iconType: 'warning', push({
title: '审核', path: '/personalCenter/myObjection/detail',
content: '确认审核选中数据吗?', query: {
onOk() { ...record,
createMessage.success('审核成功!');
}, },
}); });
} }
function handleDetail(record) { function handleEdit(record) {
push({ push({
path: '/servicePlatform/enterpriseCertification/detail', path: '/personalCenter/myObjection/detail',
query: { query: {
...record, ...record,
isAudit: true,
}, },
}); });
} }
......
export const objectionData: any[] = [ export const objectionData: any[] = [
{ {
title: '大数据弹性分析数据', title: '大数据弹性分析数据',
applicant: '宏远科技有限公司', applicant: '天津宏飞园宜科技有限公司',
dataSource: '自行生产', dataSource: '自行生产',
applyScene: '大数据分析',
applyTime: '2024-11-30', applyTime: '2024-11-30',
updateTime: '2024-12-17', updateTime: '2024-12-17',
objectionType: '我收到的', objectionType: '我收到的',
}, },
{
title: '大数据弹性分析数据',
applicant: '天津宏飞园宜科技有限公司',
dataSource: '自行生产',
applyScene: '大数据分析',
applyTime: '2024-11-30',
updateTime: '2024-12-17',
objectionType: '我收到的',
},
{
title: '大数据弹性分析数据',
applicant: '天津宏飞园宜科技有限公司',
dataSource: '自行生产',
applyScene: '大数据分析',
applyTime: '2024-11-30',
updateTime: '2024-12-17',
objectionType: '我收到的',
},
{
title: '大数据弹性分析数据',
applicant: '天津宏飞园宜科技有限公司',
dataSource: '自行生产',
applyScene: '大数据分析',
applyTime: '2024-11-30',
updateTime: '2024-12-17',
objectionType: '我提交的',
},
{
title: '大数据弹性分析数据',
applicant: '天津宏飞园宜科技有限公司',
dataSource: '自行生产',
applyScene: '大数据分析',
applyTime: '2024-11-30',
updateTime: '2024-12-17',
objectionType: '我提交的',
},
{
title: '大数据弹性分析数据',
applicant: '天津宏飞园宜科技有限公司',
dataSource: '自行生产',
applyScene: '大数据分析',
applyTime: '2024-11-30',
updateTime: '2024-12-17',
objectionType: '我提交的',
},
{
title: '大数据弹性分析数据',
applicant: '天津宏飞园宜科技有限公司',
dataSource: '自行生产',
applyScene: '大数据分析',
applyTime: '2024-11-30',
updateTime: '2024-12-17',
objectionType: '我提交的',
},
]; ];
export const enterprisesData: any[] = [ export const enterprisesData: any[] = [
{ {
companyName: '宏远科技有限公司', companyName: 'xxx科技有限公司',
code: '123123', code: '123123',
leader: '张三', leader: '张三',
leaderNum: '12312312', leaderNum: '12312312',
...@@ -10,11 +10,11 @@ export const enterprisesData: any[] = [ ...@@ -10,11 +10,11 @@ export const enterprisesData: any[] = [
website: '2020-03-05', website: '2020-03-05',
registerNum: '1000', registerNum: '1000',
businessRange: '科学研究和技术服务业', businessRange: '科学研究和技术服务业',
registerAddress: '天津市西青区中北镇中北科技产业', registerAddress: '天津市西青区中北镇中北科技产业',
detailAddress: '天津市西青区中北镇中北科技产业园', detailAddress: '天津市西青区中北镇中北科技产业园',
}, },
{ {
companyName: '天科科技有限公司', companyName: 'xxx科技有限公司',
code: '87654321', code: '87654321',
leader: '李四', leader: '李四',
leaderNum: '98765432', leaderNum: '98765432',
...@@ -28,7 +28,7 @@ export const enterprisesData: any[] = [ ...@@ -28,7 +28,7 @@ export const enterprisesData: any[] = [
detailAddress: '北京市朝阳区建国路88号大厦', detailAddress: '北京市朝阳区建国路88号大厦',
}, },
{ {
companyName: '环球科技有限公司', companyName: 'xxx科技有限公司',
code: '23456789', code: '23456789',
leader: '王五', leader: '王五',
leaderNum: '23456789', leaderNum: '23456789',
...@@ -42,7 +42,7 @@ export const enterprisesData: any[] = [ ...@@ -42,7 +42,7 @@ export const enterprisesData: any[] = [
detailAddress: '上海市浦东新区世纪大道456号', detailAddress: '上海市浦东新区世纪大道456号',
}, },
{ {
companyName: '智创创新公司', companyName: 'xxx科技有限公司',
code: '34567890', code: '34567890',
leader: '赵六', leader: '赵六',
leaderNum: '34567890', leaderNum: '34567890',
...@@ -56,7 +56,7 @@ export const enterprisesData: any[] = [ ...@@ -56,7 +56,7 @@ export const enterprisesData: any[] = [
detailAddress: '深圳市南山区科技园路22号', detailAddress: '深圳市南山区科技园路22号',
}, },
{ {
companyName: '青腾企业集团', companyName: 'xxx科技有限公司',
code: '45678901', code: '45678901',
leader: '钱七', leader: '钱七',
leaderNum: '45678901', leaderNum: '45678901',
...@@ -70,7 +70,7 @@ export const enterprisesData: any[] = [ ...@@ -70,7 +70,7 @@ export const enterprisesData: any[] = [
detailAddress: '广州市天河区体育东路99号', detailAddress: '广州市天河区体育东路99号',
}, },
{ {
companyName: '恒星网络科技', companyName: 'xxx科技有限公司',
code: '56789012', code: '56789012',
leader: '孙八', leader: '孙八',
leaderNum: '56789012', leaderNum: '56789012',
...@@ -84,7 +84,7 @@ export const enterprisesData: any[] = [ ...@@ -84,7 +84,7 @@ export const enterprisesData: any[] = [
detailAddress: '重庆市渝中区解放碑路1号', detailAddress: '重庆市渝中区解放碑路1号',
}, },
{ {
companyName: '云际数据有限公司', companyName: 'xxx科技有限公司',
code: '67890123', code: '67890123',
leader: '周九', leader: '周九',
leaderNum: '67890123', leaderNum: '67890123',
...@@ -98,7 +98,7 @@ export const enterprisesData: any[] = [ ...@@ -98,7 +98,7 @@ export const enterprisesData: any[] = [
detailAddress: '杭州市西湖区文二路123号', detailAddress: '杭州市西湖区文二路123号',
}, },
{ {
companyName: '星火科技有限公司', companyName: 'xxx科技有限公司',
code: '78901234', code: '78901234',
leader: '吴十', leader: '吴十',
leaderNum: '78901234', leaderNum: '78901234',
...@@ -112,7 +112,7 @@ export const enterprisesData: any[] = [ ...@@ -112,7 +112,7 @@ export const enterprisesData: any[] = [
detailAddress: '武汉市江汉区青年路456号', detailAddress: '武汉市江汉区青年路456号',
}, },
{ {
companyName: '睿达智能公司', companyName: 'xxx科技有限公司',
code: '89012345', code: '89012345',
leader: '郑十一', leader: '郑十一',
leaderNum: '89012345', leaderNum: '89012345',
...@@ -126,7 +126,7 @@ export const enterprisesData: any[] = [ ...@@ -126,7 +126,7 @@ export const enterprisesData: any[] = [
detailAddress: '南京市鼓楼区中央路66号', detailAddress: '南京市鼓楼区中央路66号',
}, },
{ {
companyName: '天睿电子科技', companyName: 'xxx科技有限公司',
code: '90123456', code: '90123456',
leader: '冯十二', leader: '冯十二',
leaderNum: '90123456', leaderNum: '90123456',
...@@ -140,7 +140,7 @@ export const enterprisesData: any[] = [ ...@@ -140,7 +140,7 @@ export const enterprisesData: any[] = [
detailAddress: '苏州市高新区科技大道88号', detailAddress: '苏州市高新区科技大道88号',
}, },
{ {
companyName: '领航教育科技', companyName: 'xxx科技有限公司',
code: '12345678', code: '12345678',
leader: '刘十三', leader: '刘十三',
leaderNum: '12345678', leaderNum: '12345678',
...@@ -156,7 +156,7 @@ export const enterprisesData: any[] = [ ...@@ -156,7 +156,7 @@ export const enterprisesData: any[] = [
]; ];
export const mockData: Recordable = { export const mockData: Recordable = {
companyName: 'xxx', companyName: 'xxx科技有限公司',
code: '123123', code: '123123',
leader: '张三', leader: '张三',
leaderNum: '12312312', leaderNum: '12312312',
......
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