This commit is contained in:
2023-07-03 17:31:57 +08:00
parent eb19778bd0
commit 4789db178f
16 changed files with 546 additions and 521 deletions

View File

@ -2,218 +2,224 @@
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="renderer" content="webkit"> <meta content="webkit" name="renderer">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link rel="icon" href="/favicon.ico"> <link href="/favicon.ico" rel="icon">
<script type="text/javascript" src='//webapi.amap.com/maps?v=1.4.11&key=35a871e5905ecfd749bd998448b9cd03'></script> <script type="text/javascript">
<script type="text/javascript" window._AMapSecurityConfig = {
src="https://webapi.amap.com/maps?v=1.4.11&key=35a871e5905ecfd749bd998448b9cd03&plugin=AMap.DistrictSearch"></script> securityJsCode: '7d1b758db4876389af608259c4c99832',
<script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script> }
<title>中科云</title> </script>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> <script src='//webapi.amap.com/maps?v=1.4.15&key=bfc7224388e835679ffe74cfbd28c8d6' type="text/javascript"></script>
<style> <script src="https://webapi.amap.com/maps?v=1.4.11&key=bfc7224388e835679ffe74cfbd28c8d6&plugin=AMap.DistrictSearch"
html, type="text/javascript"></script>
body, <script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
#app { <title>中科云</title>
height: 100%; <!--[if lt IE 11]>
margin: 0px; <script>window.location.href = '/html/ie.html';</script><![endif]-->
padding: 0px; <style>
} html,
body,
#app {
height: 100%;
margin: 0px;
padding: 0px;
}
.chromeframe { .chromeframe {
margin: 0.2em 0; margin: 0.2em 0;
background: #ccc; background: #ccc;
color: #000; color: #000;
padding: 0.2em 0; padding: 0.2em 0;
} }
#loader-wrapper { #loader-wrapper {
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
z-index: 999999; z-index: 999999;
} }
#loader { #loader {
display: block; display: block;
position: relative; position: relative;
left: 50%; left: 50%;
top: 50%; top: 50%;
width: 150px; width: 150px;
height: 150px; height: 150px;
margin: -75px 0 0 -75px; margin: -75px 0 0 -75px;
border-radius: 50%; border-radius: 50%;
border: 3px solid transparent; border: 3px solid transparent;
border-top-color: #FFF; border-top-color: #FFF;
-webkit-animation: spin 2s linear infinite; -webkit-animation: spin 2s linear infinite;
-ms-animation: spin 2s linear infinite; -ms-animation: spin 2s linear infinite;
-moz-animation: spin 2s linear infinite; -moz-animation: spin 2s linear infinite;
-o-animation: spin 2s linear infinite; -o-animation: spin 2s linear infinite;
animation: spin 2s linear infinite; animation: spin 2s linear infinite;
z-index: 1001; z-index: 1001;
} }
#loader:before { #loader:before {
content: ""; content: "";
position: absolute; position: absolute;
top: 5px; top: 5px;
left: 5px; left: 5px;
right: 5px; right: 5px;
bottom: 5px; bottom: 5px;
border-radius: 50%; border-radius: 50%;
border: 3px solid transparent; border: 3px solid transparent;
border-top-color: #FFF; border-top-color: #FFF;
-webkit-animation: spin 3s linear infinite; -webkit-animation: spin 3s linear infinite;
-moz-animation: spin 3s linear infinite; -moz-animation: spin 3s linear infinite;
-o-animation: spin 3s linear infinite; -o-animation: spin 3s linear infinite;
-ms-animation: spin 3s linear infinite; -ms-animation: spin 3s linear infinite;
animation: spin 3s linear infinite; animation: spin 3s linear infinite;
} }
#loader:after { #loader:after {
content: ""; content: "";
position: absolute; position: absolute;
top: 15px; top: 15px;
left: 15px; left: 15px;
right: 15px; right: 15px;
bottom: 15px; bottom: 15px;
border-radius: 50%; border-radius: 50%;
border: 3px solid transparent; border: 3px solid transparent;
border-top-color: #FFF; border-top-color: #FFF;
-moz-animation: spin 1.5s linear infinite; -moz-animation: spin 1.5s linear infinite;
-o-animation: spin 1.5s linear infinite; -o-animation: spin 1.5s linear infinite;
-ms-animation: spin 1.5s linear infinite; -ms-animation: spin 1.5s linear infinite;
-webkit-animation: spin 1.5s linear infinite; -webkit-animation: spin 1.5s linear infinite;
animation: spin 1.5s linear infinite; animation: spin 1.5s linear infinite;
} }
@-webkit-keyframes spin { @-webkit-keyframes spin {
0% { 0% {
-webkit-transform: rotate(0deg); -webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg); -ms-transform: rotate(0deg);
transform: rotate(0deg); transform: rotate(0deg);
} }
100% { 100% {
-webkit-transform: rotate(360deg); -webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg); -ms-transform: rotate(360deg);
transform: rotate(360deg); transform: rotate(360deg);
} }
} }
@keyframes spin { @keyframes spin {
0% { 0% {
-webkit-transform: rotate(0deg); -webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg); -ms-transform: rotate(0deg);
transform: rotate(0deg); transform: rotate(0deg);
} }
100% { 100% {
-webkit-transform: rotate(360deg); -webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg); -ms-transform: rotate(360deg);
transform: rotate(360deg); transform: rotate(360deg);
} }
} }
#loader-wrapper .loader-section { #loader-wrapper .loader-section {
position: fixed; position: fixed;
top: 0; top: 0;
width: 51%; width: 51%;
height: 100%; height: 100%;
background: #7171C6; background: #7171C6;
z-index: 1000; z-index: 1000;
-webkit-transform: translateX(0); -webkit-transform: translateX(0);
-ms-transform: translateX(0); -ms-transform: translateX(0);
transform: translateX(0); transform: translateX(0);
} }
#loader-wrapper .loader-section.section-left { #loader-wrapper .loader-section.section-left {
left: 0; left: 0;
} }
#loader-wrapper .loader-section.section-right { #loader-wrapper .loader-section.section-right {
right: 0; right: 0;
} }
.loaded #loader-wrapper .loader-section.section-left { .loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%); -webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%); -ms-transform: translateX(-100%);
transform: translateX(-100%); transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
} }
.loaded #loader-wrapper .loader-section.section-right { .loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%); -webkit-transform: translateX(100%);
-ms-transform: translateX(100%); -ms-transform: translateX(100%);
transform: translateX(100%); transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
} }
.loaded #loader { .loaded #loader {
opacity: 0; opacity: 0;
-webkit-transition: all 0.3s ease-out; -webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out; transition: all 0.3s ease-out;
} }
.loaded #loader-wrapper { .loaded #loader-wrapper {
visibility: hidden; visibility: hidden;
-webkit-transform: translateY(-100%); -webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%); -ms-transform: translateY(-100%);
transform: translateY(-100%); transform: translateY(-100%);
-webkit-transition: all 0.3s 1s ease-out; -webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out; transition: all 0.3s 1s ease-out;
} }
.no-js #loader-wrapper { .no-js #loader-wrapper {
display: none; display: none;
} }
.no-js h1 { .no-js h1 {
color: #222222; color: #222222;
} }
#loader-wrapper .load_title { #loader-wrapper .load_title {
font-family: 'Open Sans'; font-family: 'Open Sans';
color: #FFF; color: #FFF;
font-size: 19px; font-size: 19px;
width: 100%; width: 100%;
text-align: center; text-align: center;
z-index: 9999999999999; z-index: 9999999999999;
position: absolute; position: absolute;
top: 60%; top: 60%;
opacity: 1; opacity: 1;
line-height: 30px; line-height: 30px;
} }
#loader-wrapper .load_title span { #loader-wrapper .load_title span {
font-weight: normal; font-weight: normal;
font-style: italic; font-style: italic;
font-size: 13px; font-size: 13px;
color: #FFF; color: #FFF;
opacity: 0.5; opacity: 0.5;
} }
</style> </style>
</head> </head>
<body> <body>
<div id="app"> <div id="app">
<div id="loader-wrapper"> <div id="loader-wrapper">
<div id="loader"></div> <div id="loader"></div>
<div class="loader-section section-left"></div> <div class="loader-section section-left"></div>
<div class="loader-section section-right"></div> <div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div> <div class="load_title">正在加载系统资源,请耐心等待</div>
</div> </div>
</div> </div>
<script type="module" src="/src/main.js"></script> <script src="/src/main.js" type="module"></script>
</body> </body>
</html> </html>

View File

@ -188,8 +188,8 @@ function listToString(list, separator) {
separator = separator || ","; separator = separator || ",";
for (let i in list) { for (let i in list) {
if (undefined !== list[i].url && list[i].url.indexOf("blob:") !== 0) { if (undefined !== list[i].url && list[i].url.indexOf("blob:") !== 0) {
strs += list[i].url.replace(baseUrl, "") + separator; // strs += list[i].url.replace(baseUrl, "") + separator;
// strs += list[i].url + separator; strs += list[i].url + separator;
} }
} }
return strs != "" ? strs.substr(0, strs.length - 1) : ""; return strs != "" ? strs.substr(0, strs.length - 1) : "";

View File

@ -212,8 +212,8 @@ function handlePage() {
function handlePath(path) { function handlePath(path) {
pagePath.value = path; pagePath.value = path;
// router.push(path); router.push(path);
window.open(path, "_blank"); // window.open(path, "_blank");
} }
function logout() { function logout() {
ElMessageBox.confirm("确定注销并退出系统吗?", "提示", { ElMessageBox.confirm("确定注销并退出系统吗?", "提示", {

View File

@ -3,26 +3,26 @@
* @type {[{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string}]} * @type {[{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string}]}
*/ */
export const serviceDemandStatusDict = [ export const serviceDemandStatusDict = [
{ {
value: "0", value: "0",
label: "待受理", label: "待受理",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "1", value: "1",
label: "已受理", label: "已受理",
elTagType: "success", elTagType: "success",
}, },
{ {
value: "2", value: "2",
label: "已驳回", label: "已驳回",
elTagType: "danger", elTagType: "danger",
}, },
{ {
value: "4", value: "4",
label: "已结束", label: "已结束",
elTagType: "warning", elTagType: "warning",
}, },
]; ];
/** /**
@ -30,97 +30,112 @@ export const serviceDemandStatusDict = [
* @type {[{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string}]} * @type {[{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string}]}
*/ */
export const technologyDemandStatusDict = [ export const technologyDemandStatusDict = [
{ {
value: "0", value: "0",
label: "待受理", label: "待受理",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "1", value: "1",
label: "已发布", label: "已发布",
elTagType: "success", elTagType: "success",
}, },
{ {
value: "2", value: "2",
label: "已驳回", label: "已驳回",
elTagType: "danger", elTagType: "danger",
}, },
{ {
value: "3", value: "3",
label: "草稿箱", label: "草稿箱",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "4", value: "4",
label: "已结束", label: "已结束",
elTagType: "warning", elTagType: "warning",
}, },
]; ];
// 1->专利|2->成果|3->服务需求|4->专家|5->科研项目|6->论文 // 1->专利|2->成果|3->服务需求|4->专家|5->科研项目|6->论文
export const seeLogTypeDict = [ export const seeLogTypeDict = [
{ {
value: "1", value: "1",
label: "专利", label: "专利",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "2", value: "2",
label: "成果", label: "成果",
elTagType: "success", elTagType: "success",
}, },
{ {
value: "3", value: "3",
label: "服务需求", label: "服务需求",
elTagType: "danger", elTagType: "danger",
}, },
{ {
value: "4", value: "4",
label: "专家", label: "专家",
elTagType: "warning", elTagType: "warning",
}, },
{ {
value: "5", value: "5",
label: "科研项目", label: "科研项目",
elTagType: "warning", elTagType: "warning",
}, },
{ {
value: "6", value: "6",
label: "论文", label: "论文",
elTagType: "warning", elTagType: "warning",
}, },
]; ];
// 订单类型(1创新币充值2活动报名) // 订单类型(1创新币充值2活动报名)
export const orderTypeDict = [ export const orderTypeDict = [
{ {
value: "1", value: "1",
label: "创新币充值", label: "创新币充值",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "2", value: "2",
label: "活动报名", label: "活动报名",
elTagType: "success", elTagType: "success",
}, },
]; ];
// 发票申请状态(0->未申请1->已申请2->已处理) // 发票申请状态(0->未申请1->已申请2->已处理)
export const invoiceStatusDict = [ export const invoiceStatusDict = [
{ {
value: "0", value: "0",
label: "未申请", label: "未申请",
elTagType: "warning", elTagType: "warning",
}, },
{ {
value: "1", value: "1",
label: "已申请", label: "已申请",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "2", value: "2",
label: "已处理", label: "已处理",
elTagType: "success", elTagType: "success",
}, },
]; ];
// 课题角色1承担单位2参与单位
export const subjectRoleDict = [
{
value: "1",
label: "承担单位",
elTagType: "primary",
}
,
{
value: "2",
label: "参与单位",
elTagType: "success",
}
];

View File

@ -9,7 +9,7 @@ export function addViewHistory(type, itemId, itemName) {
} }
const enterpriseId = enterprise.id; const enterpriseId = enterprise.id;
const enterpriseName = enterprise.name; const enterpriseName = enterprise.name;
const nickname = enterprise.userName; const nickname = enterprise.username;
const phone = enterprise.phone; const phone = enterprise.phone;
addViewRecord({ addViewRecord({
type: type, type: type,

View File

@ -1,5 +1,5 @@
<script setup> <script setup>
import { reactive, ref, toRefs } from "vue"; import {reactive, ref, toRefs} from "vue";
const data = reactive({ const data = reactive({
queryParams: { queryParams: {
@ -7,7 +7,7 @@ const data = reactive({
pageSize: 10, pageSize: 10,
}, },
}); });
const { queryParams } = toRefs(data); const {queryParams} = toRefs(data);
const tableData = ref([]); const tableData = ref([]);
const queryRef = ref(null); const queryRef = ref(null);
@ -15,10 +15,11 @@ const queryRef = ref(null);
* 删除指定行 * 删除指定行
* @param row * @param row
*/ */
const deleteRecord = (row) => {}; const deleteRecord = (row) => {
};
// 重置查询条件 resetQuery // 重置查询条件 resetQuery
export const resetQuery = () => { const resetQuery = () => {
queryRef.value.resetFields(); queryRef.value.resetFields();
handleQuery(); handleQuery();
}; };
@ -33,12 +34,12 @@ const handleQuery = () => {
<!-- 时间段查询--> <!-- 时间段查询-->
<el-form-item label="时间段"> <el-form-item label="时间段">
<el-date-picker <el-date-picker
v-model="queryParams.timeRange" v-model="queryParams.timeRange"
end-placeholder="结束日期" end-placeholder="结束日期"
range-separator="" range-separator=""
start-placeholder="开始日期" start-placeholder="开始日期"
type="datetimerange" type="datetimerange"
value-format="YYYY-MM-dd" value-format="YYYY-MM-dd"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -49,8 +50,8 @@ const handleQuery = () => {
<!-- el-radio-group 状态切换, 已审批和待审批 --> <!-- el-radio-group 状态切换, 已审批和待审批 -->
<el-radio-group v-model="queryParams.status" size="small" style="width: 100%"> <el-radio-group v-model="queryParams.status" size="small" style="width: 100%">
<el-radio label="已审批" value="1" /> <el-radio label="已审批" value="1"/>
<el-radio label="待审批" value="2" /> <el-radio label="待审批" value="2"/>
</el-radio-group> </el-radio-group>
<!-- 用h2 展示提现金额,加粗字体--> <!-- 用h2 展示提现金额,加粗字体-->
<h2 style="font-weight: bold">提现金额 : {{ 312312 }}¥</h2> <h2 style="font-weight: bold">提现金额 : {{ 312312 }}¥</h2>
@ -58,22 +59,22 @@ const handleQuery = () => {
<!--提现记录表格 element-plus --> <!--提现记录表格 element-plus -->
<el-table :data="tableData" class="withdraw-table"> <el-table :data="tableData" class="withdraw-table">
<el-table-column <el-table-column
label="提现金额" label="提现金额"
prop="amount" prop="amount"
width="150" width="150"
></el-table-column> ></el-table-column>
<el-table-column label="提现类型" prop="type" width="150"></el-table-column> <el-table-column label="提现类型" prop="type" width="150"></el-table-column>
<el-table-column <el-table-column
label="提现状态" label="提现状态"
prop="status" prop="status"
width="150" width="150"
></el-table-column> ></el-table-column>
<el-table-column label="提现时间" prop="time" width="150"></el-table-column> <el-table-column label="提现时间" prop="time" width="150"></el-table-column>
<el-table-column label="操作" prop="action" width="150"> <el-table-column label="操作" prop="action" width="150">
<template #default="{ row }"> <template #default="{ row }">
<!--删除--> <!--删除-->
<el-button size="small" type="text" @click="deleteRecord(row)" <el-button size="small" type="text" @click="deleteRecord(row)"
>删除 >删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -107,7 +107,7 @@ import {
updateTechnologyDemand, updateTechnologyDemand,
} from "@/api/admin/enterprise/demand"; } from "@/api/admin/enterprise/demand";
import { onMounted, reactive, ref, toRefs } from "vue"; import { onMounted, reactive, ref, toRefs } from "vue";
import { updateCount } from "../../../../api/admin/count"; import { updateCount } from "@/api/admin/count";
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();

View File

@ -31,9 +31,9 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <!-- <el-col :span="1.5">-->
<el-button icon="plus" size="small" type="primary">新增</el-button> <!-- <el-button icon="plus" size="small" type="primary">新增</el-button>-->
</el-col> <!-- </el-col>-->
<right-toolbar <right-toolbar
v-model:showSearch="showSearch" v-model:showSearch="showSearch"
@queryTable="getList" @queryTable="getList"

View File

@ -71,7 +71,7 @@
icon="view" icon="view"
size="small" size="small"
type="text" type="text"
@click="handleBrowseUnitInfo(row.id)" @click="handleBrowseUnitInfo(row)"
>浏览单位信息 >浏览单位信息
</el-button> </el-button>
</template> </template>

View File

@ -1,25 +1,32 @@
<script setup> <script setup>
import Pagination from "@/components/Pagination/index.vue"; import Pagination from "@/components/Pagination/index.vue";
import { customerBrowseList } from "@/api/admin/research/footprint";
import { reactive, ref, toRefs } from "vue"; import { reactive, ref, toRefs } from "vue";
import { seeLogTypeDict } from "@/constant/dict"; import { seeLogTypeDict } from "@/constant/dict";
import { useRoute, useRouter } from "vue-router";
import { seeLogList } from "@/api/admin/laboratory/paper";
const route = useRoute();
const router = useRouter();
const data = reactive({ const data = reactive({
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
browseTimeRange: [], id: null,
}, },
}); });
const { queryParams } = toRefs(data); const { queryParams } = toRefs(data);
if (route.query.id) {
queryParams.value.id = route.query.id;
} else {
router.push({ path: "/admin/research/paper" });
}
const queryRef = ref(); const queryRef = ref();
const tableData = ref([]); const tableData = ref([]);
const loading = ref(false); const loading = ref(false);
const total = ref(0); const total = ref(0);
const getList = async () => { const getList = async () => {
loading.value = true; loading.value = true;
const resp = await customerBrowseList(queryParams.value); const resp = await seeLogList(queryParams.value);
tableData.value = resp.rows; tableData.value = resp.rows;
total.value = resp.total; total.value = resp.total;
loading.value = false; loading.value = false;
@ -53,27 +60,15 @@ getList();
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="queryRef" class="mb8" inline> <el-form ref="queryRef" class="mb8" :model="queryParams" inline>
<!-- 企业名称--> <!-- 企业名称-->
<el-form-item label="企业名称" prop="enterpriseName"> <el-form-item label="企业名称" prop="name">
<el-input <el-input
v-model="queryParams.enterpriseName" v-model="queryParams.name"
placeholder="请输入企业名称" placeholder="请输入企业名称"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<!-- 浏览时间范围-->
<el-form-item label="浏览时间" prop="browseTime">
<el-date-picker
v-model="queryParams.browseTimeRange"
end-placeholder="结束日期"
range-separator="至"
start-placeholder="开始日期"
type="datetimerange"
unlink-panels
value-format="YYYY-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">查询</el-button> <el-button type="primary" @click="handleQuery">查询</el-button>
<el-button @click="resetQuery">重置</el-button> <el-button @click="resetQuery">重置</el-button>
@ -82,7 +77,6 @@ getList();
<!-- 客户浏览数据列表--> <!-- 客户浏览数据列表-->
<el-table :data="tableData"> <el-table :data="tableData">
<!--多选--> <!--多选-->
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="企业名称" prop="enterpriseName"></el-table-column> <el-table-column label="企业名称" prop="enterpriseName"></el-table-column>
<el-table-column label="浏览类别" prop="type"> <el-table-column label="浏览类别" prop="type">
<template #default="{ row }"> <template #default="{ row }">
@ -94,17 +88,8 @@ getList();
<el-table-column label="名称" prop="typeName"></el-table-column> <el-table-column label="名称" prop="typeName"></el-table-column>
<el-table-column label="联系人" prop="nickname"></el-table-column> <el-table-column label="联系人" prop="nickname"></el-table-column>
<el-table-column label="手机" prop="phone"></el-table-column> <el-table-column label="手机" prop="phone"></el-table-column>
<el-table-column label="浏览时长" prop="browseTime"></el-table-column>
<el-table-column label="浏览次数" prop="seeCount"></el-table-column> <el-table-column label="浏览次数" prop="seeCount"></el-table-column>
<el-table-column label="浏览时间" prop="updateTime"></el-table-column> <el-table-column label="浏览时间" prop="updateTime"></el-table-column>
<!-- 操作-->
<el-table-column label="操作" width="200">
<template #default="{ row }">
<el-button size="small" type="text" @click="handleDelete(row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<pagination <pagination

View File

@ -1,32 +1,32 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form <el-form
v-show="showSearch" v-show="showSearch"
ref="queryRef" ref="queryRef"
:inline="true" :inline="true"
:model="queryParams" :model="queryParams"
@submit.prevent @submit.prevent
> >
<el-form-item label="专利名称" prop="title"> <el-form-item label="专利名称" prop="patentName">
<el-input <el-input
v-model="queryParams.title" v-model="queryParams.patentName"
clearable clearable
placeholder="请输入专利名称" placeholder="请输入专利名称"
size="small" size="small"
style="width: 240px" style="width: 240px"
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
icon="Search" icon="Search"
size="small" size="small"
type="primary" type="primary"
@click="handleQuery" @click="handleQuery"
>搜索 >搜索
</el-button> </el-button>
<el-button icon="Refresh" size="small" @click="resetQuery" <el-button icon="Refresh" size="small" @click="resetQuery"
>重置 >重置
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -52,35 +52,35 @@
<!-- </router-link>--> <!-- </router-link>-->
<!-- </el-col>--> <!-- </el-col>-->
<right-toolbar <right-toolbar
v-model:showSearch="showSearch" v-model:showSearch="showSearch"
@queryTable="getList" @queryTable="getList"
></right-toolbar> ></right-toolbar>
</el-row> </el-row>
<!-- 表格数据 --> <!-- 表格数据 -->
<el-table v-loading="loading" :data="dataList"> <el-table v-loading="loading" :data="dataList">
<el-table-column label="数据编号" prop="id" /> <el-table-column label="数据编号" prop="id"/>
<el-table-column <el-table-column
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
label="专利名称" label="专利名称"
prop="title" prop="title"
/> />
<el-table-column <el-table-column
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
label="申请号" label="申请号"
prop="applyCode" prop="applyCode"
/> />
<el-table-column label="发明人" prop="inventor" /> <el-table-column label="发明人" prop="inventor"/>
<el-table-column label="申请(专利权)人" prop="applyName" /> <el-table-column label="申请(专利权)人" prop="applyName"/>
<el-table-column align="center" label="申请日期" prop="applyAt"> <el-table-column align="center" label="申请日期" prop="applyAt">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span> <span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="center" align="center"
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
label="操作" label="操作"
> >
<template #default="{ row }"> <template #default="{ row }">
<!-- <el-button--> <!-- <el-button-->
@ -92,22 +92,22 @@
<!-- </el-button--> <!-- </el-button-->
<!-- >--> <!-- >-->
<el-button <el-button
icon="Delete" icon="Delete"
size="small" size="small"
type="text" type="text"
@click="handleDelete(row.id)" @click="handleDelete(row.id)"
>删除 >删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total > 0" v-show="total > 0"
v-model:limit="queryParams.pageSize" v-model:limit="queryParams.pageSize"
v-model:page="queryParams.pageNum" v-model:page="queryParams.pageNum"
:total="total" :total="total"
@pagination="getList" @pagination="getList"
/> />
<!-- &lt;!&ndash; 添加或修改数据配置对话框 &ndash;&gt;--> <!-- &lt;!&ndash; 添加或修改数据配置对话框 &ndash;&gt;-->
@ -229,13 +229,13 @@ import {
labPatentList, labPatentList,
} from "@/api/admin/laboratory/patent"; } from "@/api/admin/laboratory/patent";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus"; import {ElMessage, ElMessageBox} from "element-plus";
import { useRouter } from "vue-router"; import {useRouter} from "vue-router";
import { getCurrentInstance, reactive, ref, toRefs } from "vue"; import {getCurrentInstance, reactive, ref, toRefs} from "vue";
const router = useRouter(); const router = useRouter();
const { proxy } = getCurrentInstance(); const {proxy} = getCurrentInstance();
const dataList = ref([]); const dataList = ref([]);
const open = ref(false); const open = ref(false);
@ -248,7 +248,7 @@ const data = reactive({
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
inventor: undefined, patentName: undefined
}, },
// form: {}, // form: {},
// rules: { // rules: {
@ -280,7 +280,7 @@ const data = reactive({
// }, // },
}); });
const { queryParams } = toRefs(data); const {queryParams} = toRefs(data);
const queryRef = ref(); const queryRef = ref();
// const patentRef = ref(); // const patentRef = ref();
@ -290,14 +290,14 @@ const queryRef = ref();
const getList = async () => { const getList = async () => {
loading.value = true; loading.value = true;
labPatentList(queryParams.value) labPatentList(queryParams.value)
.then((resp) => { .then((resp) => {
dataList.value = resp.rows; dataList.value = resp.rows;
total.value = resp.total; total.value = resp.total;
loading.value = false; loading.value = false;
}) })
.catch(() => { .catch(() => {
loading.value = false; loading.value = false;
}); });
}; };
/** 搜索按钮操作 */ /** 搜索按钮操作 */
@ -315,16 +315,16 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的专利项?') ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
.then(function () { .then(function () {
return deleteLabPatentByIds(id); return deleteLabPatentByIds(id);
}) })
.then(() => { .then(() => {
getList(); getList();
ElMessage.success("删除成功"); ElMessage.success("删除成功");
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
}); });
} }
/** 重置新增的表单以及其他数据 */ /** 重置新增的表单以及其他数据 */

View File

@ -7,9 +7,9 @@
:model="queryParams" :model="queryParams"
@submit.prevent @submit.prevent
> >
<el-form-item label="成果名称" prop="title"> <el-form-item label="成果名称" prop="name">
<el-input <el-input
v-model="queryParams.title" v-model="queryParams.name"
clearable clearable
placeholder="请输入专利名称" placeholder="请输入专利名称"
size="small" size="small"
@ -46,9 +46,13 @@
prop="title" prop="title"
/> />
<el-table-column :show-overflow-tooltip="true" label="类型" prop="kind" /> <el-table-column :show-overflow-tooltip="true" label="类型" prop="kind" />
<el-table-column label="所属专家" prop="inventor" /> <!-- <el-table-column label="所属专家" prop="inventor" />-->
<el-table-column label="课题角色" prop="applyName" /> <el-table-column label="课题角色" >
<el-table-column label="课题负责人" prop="applyName" /> <template #default="{ row }">
{{ subjectRoleDict.find(item => item.value === row.role)?.label}}
</template>
</el-table-column>
<el-table-column label="课题负责人" prop="director" />
<el-table-column align="center" label="发布时间" prop="applyAt"> <el-table-column align="center" label="发布时间" prop="applyAt">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span> <span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span>
@ -60,13 +64,13 @@
label="操作" label="操作"
> >
<template #default="{ row }"> <template #default="{ row }">
<el-button <!-- <el-button-->
icon="download" <!-- icon="download"-->
size="small" <!-- size="small"-->
type="text" <!-- type="text"-->
@click="handleTakeOff(row.id)" <!-- @click="handleTakeOff(row.id)"-->
>下架 <!-- >下架-->
</el-button> <!-- </el-button>-->
<el-button <el-button
icon="Delete" icon="Delete"
size="small" size="small"
@ -97,6 +101,7 @@ import {
deleteTechnologyProject, deleteTechnologyProject,
technologyProjectList, technologyProjectList,
} from "@/api/admin/laboratory/research-project"; } from "@/api/admin/laboratory/research-project";
import {subjectRoleDict} from "../../../../../constant/dict";
const router = useRouter(); const router = useRouter();

View File

@ -53,27 +53,14 @@ getList();
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="queryRef" class="mb8" inline> <el-form ref="queryRef" class="mb8" :model="queryParams" inline>
<!-- 企业名称--> <!-- 企业名称-->
<el-form-item label="企业名称" prop="enterpriseName"> <el-form-item label="企业名称" prop="name">
<el-input <el-input
v-model="queryParams.enterpriseName" v-model="queryParams.name"
placeholder="请输入企业名称" placeholder="请输入企业名称"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<!-- 浏览时间范围-->
<el-form-item label="浏览时间" prop="browseTime">
<el-date-picker
v-model="queryParams.browseTimeRange"
end-placeholder="结束日期"
range-separator="至"
start-placeholder="开始日期"
type="datetimerange"
unlink-panels
value-format="YYYY-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">查询</el-button> <el-button type="primary" @click="handleQuery">查询</el-button>
<el-button @click="resetQuery">重置</el-button> <el-button @click="resetQuery">重置</el-button>
@ -82,7 +69,7 @@ getList();
<!-- 客户浏览数据列表--> <!-- 客户浏览数据列表-->
<el-table :data="tableData"> <el-table :data="tableData">
<!--多选--> <!--多选-->
<el-table-column type="selection" width="55"></el-table-column> <!-- <el-table-column type="selection" width="55"></el-table-column>-->
<el-table-column label="企业名称" prop="enterpriseName"></el-table-column> <el-table-column label="企业名称" prop="enterpriseName"></el-table-column>
<el-table-column label="浏览类别" prop="type"> <el-table-column label="浏览类别" prop="type">
<template #default="{ row }"> <template #default="{ row }">
@ -94,17 +81,8 @@ getList();
<el-table-column label="名称" prop="typeName"></el-table-column> <el-table-column label="名称" prop="typeName"></el-table-column>
<el-table-column label="联系人" prop="nickname"></el-table-column> <el-table-column label="联系人" prop="nickname"></el-table-column>
<el-table-column label="手机" prop="phone"></el-table-column> <el-table-column label="手机" prop="phone"></el-table-column>
<el-table-column label="浏览时长" prop="browseTime"></el-table-column>
<el-table-column label="浏览次数" prop="seeCount"></el-table-column> <el-table-column label="浏览次数" prop="seeCount"></el-table-column>
<el-table-column label="浏览时间" prop="updateTime"></el-table-column> <el-table-column label="浏览时间" prop="updateTime"></el-table-column>
<!-- 操作-->
<el-table-column label="操作" width="200">
<template #default="{ row }">
<el-button size="small" type="text" @click="handleDelete(row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<pagination <pagination

View File

@ -39,16 +39,20 @@
<!-- 表格数据 --> <!-- 表格数据 -->
<el-table v-loading="loading" :data="dataList"> <el-table v-loading="loading" :data="dataList">
<el-table-column label="数据编号" prop="id" /> <el-table-column align="center" label="数据编号" prop="id" />
<el-table-column <el-table-column align="center"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
label="科研项目名称" label="科研项目名称"
prop="title" prop="title"
/> />
<el-table-column :show-overflow-tooltip="true" label="类型" prop="kind" /> <el-table-column align="center" :show-overflow-tooltip="true" label="类型" prop="kind" />
<el-table-column label="所属专家" prop="inventor" /> <!-- <el-table-column label="所属专家" prop="inventor" />-->
<el-table-column label="课题角色" prop="applyName" /> <el-table-column align="center" label="课题角色" >
<el-table-column label="课题负责人" prop="applyName" /> <template #default="{ row }">
<span>{{ subjectRoleDict.find(item => item.value === row.role)?.label }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="课题负责人" prop="director" />
<el-table-column align="center" label="发布时间" prop="applyAt"> <el-table-column align="center" label="发布时间" prop="applyAt">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span> <span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span>
@ -60,13 +64,13 @@
label="操作" label="操作"
> >
<template #default="{ row }"> <template #default="{ row }">
<el-button <!-- <el-button-->
icon="download" <!-- icon="download"-->
size="small" <!-- size="small"-->
type="text" <!-- type="text"-->
@click="handleTakeOff(row.id)" <!-- @click="handleTakeOff(row.id)"-->
>下架 <!-- >下架-->
</el-button> <!-- </el-button>-->
<el-button <el-button
icon="Delete" icon="Delete"
size="small" size="small"
@ -97,6 +101,7 @@ import {
deleteTechnologyProject, deleteTechnologyProject,
technologyProjectList, technologyProjectList,
} from "@/api/admin/research/research-project"; } from "@/api/admin/research/research-project";
import {subjectRoleDict} from "@/constant/dict";
const router = useRouter(); const router = useRouter();

View File

@ -1,28 +1,28 @@
<template> <template>
<div class="small" v-loading="loading"> <div v-loading="loading" class="small">
<div class="_title"> <div class="_title">
<div <div
v-if="!state.banner" v-if="!state.banner"
style="height: 394px; background-color: #108de9" style="height: 394px; background-color: #108de9"
></div> ></div>
<div v-else style="height: 394px"> <div v-else style="height: 394px">
<img <img
:src="state.banner" :src="state.banner"
style="width: 100%; height: 100%" alt="banner"
alt="banner" style="width: 100%; height: 100%"
/> />
</div> </div>
<div <div
v-if="state.caseList.length" v-if="state.caseList.length"
class="_li" :class="isFixed ? '_fixed' : ''"
:class="isFixed ? '_fixed' : ''" class="_li"
> >
<ul class="conter1000"> <ul class="conter1000">
<li <li
:class="activeId == item.id ? '_active' : ''" v-for="(item, index) in state.caseList"
v-for="(item, index) in state.caseList" :key="item.id"
:key="item.id" :class="activeId == item.id ? '_active' : ''"
@click="setScrollTop(item.id, index)" @click="setScrollTop(item.id, index)"
> >
{{ item.title }} {{ item.title }}
</li> </li>
@ -30,24 +30,24 @@
</div> </div>
<h2 v-else style="text-align: center; line-height: 100px">暂无数据</h2> <h2 v-else style="text-align: center; line-height: 100px">暂无数据</h2>
</div> </div>
<div class="box" v-show="!isShowMore"> <div v-show="!isShowMore" class="box">
<div <div
class="_item" v-for="(item, index) in state.caseList"
:ref="setItemRef" :key="index"
v-for="(item, index) in state.caseList" :ref="setItemRef"
:key="index" :data-id="item.id"
:data-id="item.id" class="_item"
> >
<h3 class="_tit text-center" style="font-size: 24px; color: #333333"> <h3 class="_tit text-center" style="font-size: 24px; color: #333333">
{{ item.title }} {{ item.title }}
</h3> </h3>
<div class="_info conter1000"> <div class="_info conter1000">
<div class="_r" v-if="isOddEvenNumber(index)"> <div v-if="isOddEvenNumber(index)" class="_r">
<img :src="item.image" alt srcset /> <img :src="item.image" alt srcset/>
</div> </div>
<div <div
class="_l" :class="isOddEvenNumber(index) ? '_paddingl' : '_paddingr'"
:class="isOddEvenNumber(index) ? '_paddingl' : '_paddingr'" class="_l"
> >
<h3 :class="isOddEvenNumber(index) ? 'text-right' : ''"> <h3 :class="isOddEvenNumber(index) ? 'text-right' : ''">
{{ item.title }} {{ item.title }}
@ -55,21 +55,21 @@
<!-- <p>{{ item.description }}</p> --> <!-- <p>{{ item.description }}</p> -->
<p>{{ item.description }}</p> <p>{{ item.description }}</p>
</div> </div>
<div class="_r" v-if="!isOddEvenNumber(index)"> <div v-if="!isOddEvenNumber(index)" class="_r">
<img :src="item.image" alt srcset /> <img :src="item.image" alt srcset/>
</div> </div>
</div> </div>
<div class="_list conter1400"> <div class="_list conter1400">
<ul> <ul>
<li <li
v-for="child in item.children.slice(0, 2)" v-for="child in item.children.slice(0, 2)"
:key="child.id" :key="child.id"
@click="handlePath(child.id)" @click="handlePath(child.id)"
> >
<el-image <el-image
style="width: 100%; height: 135px" :src="child.image"
:src="child.image" fit="cover"
fit="cover" style="width: 100%; height: 135px"
></el-image> ></el-image>
<div class="_head text_hidden">{{ child.title }}</div> <div class="_head text_hidden">{{ child.title }}</div>
<div class="_detail text_hidden">{{ child.description }}</div> <div class="_detail text_hidden">{{ child.description }}</div>
@ -77,34 +77,35 @@
</ul> </ul>
<div class="_liBtn text-right"> <div class="_liBtn text-right">
<el-button class="x_btns" @click="handleShowMore(item)" <el-button class="x_btns" @click="handleShowMore(item)"
>查看更多</el-button >查看更多
</el-button
> >
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<seeMore <seeMore
v-if="isShowMore" v-if="isShowMore"
:data="moreData" v-model:isShowMore="isShowMore"
v-model:isShowMore="isShowMore" v-model:oneLevelTitle="oneLevelTitle"
v-model:oneLevelTitle="oneLevelTitle" :data="moreData"
></seeMore> ></seeMore>
<webFooter></webFooter> <webFooter></webFooter>
</div> </div>
</template> </template>
<script setup> <script setup>
import { nextTick, onMounted, reactive } from "vue"; import {nextTick, onMounted, reactive} from "vue";
import seeMore from "./components/seeMore.vue"; import seeMore from "./components/seeMore.vue";
import webFooter from "@/components/webFooter/index.vue"; import webFooter from "@/components/webFooter/index.vue";
import { banner } from "@/api/website/home/index"; import {banner} from "@/api/website/home/index";
import { useRoute, useRouter } from "vue-router"; import {useRoute, useRouter} from "vue-router";
import { getCase } from "@/api/website/solution"; import {getCase} from "@/api/website/solution";
// import { getCategory } from "../../../api/website/solution"; // import { getCategory } from "../../../api/website/solution";
const router = useRouter(); const router = useRouter();
function handlePath(id) { function handlePath(id) {
let routeData = router.resolve({ path: `/solution/detail/${id}/` }); let routeData = router.resolve({path: `/solution/detail/${id}/`});
window.open(routeData.href, "_blank"); window.open(routeData.href, "_blank");
} }
@ -137,6 +138,8 @@ const route = useRoute();
watch(route, () => { watch(route, () => {
initData(); initData();
}); });
onMounted(() => { onMounted(() => {
initData(); initData();
}); });
@ -148,20 +151,20 @@ async function initData() {
let mode = route.params.mode; let mode = route.params.mode;
// let key = keyDict[name]; // let key = keyDict[name];
getCase({ mode }).then((res) => { mode && getCase({mode}).then((res) => {
state.caseList = res.data; state.caseList = res.data;
initScroll(); initScroll();
// loading.value = false; // loading.value = false;
}); });
loading.value = true; loading.value = true;
banner({ locals: `解决方案>${name}` }) banner({locals: `解决方案>${name}`})
.then((resp) => { .then((resp) => {
state.banner = resp.data[0].images; state.banner = resp.data[0].images;
loading.value = false; loading.value = false;
}) })
.catch(() => { .catch(() => {
loading.value = false; loading.value = false;
}); });
} }
function initScroll() { function initScroll() {
@ -183,20 +186,22 @@ function initScroll() {
}); });
}); });
} }
function getScroll() { function getScroll() {
return { return {
left: left:
window.pageXOffset || window.pageXOffset ||
document.documentElement.scrollLeft || document.documentElement.scrollLeft ||
document.body.scrollLeft || document.body.scrollLeft ||
0, 0,
top: top:
window.pageYOffset || window.pageYOffset ||
document.documentElement.scrollTop || document.documentElement.scrollTop ||
document.body.scrollTop || document.body.scrollTop ||
0, 0,
}; };
} }
function setScrollTop(id, index) { function setScrollTop(id, index) {
// if (isShowMore.value) return false; // if (isShowMore.value) return false;
isShowMore.value = false; isShowMore.value = false;
@ -207,9 +212,11 @@ function setScrollTop(id, index) {
}); });
activeId.value = id; activeId.value = id;
} }
function isOddEvenNumber(num) { function isOddEvenNumber(num) {
return num % 2 == 0 ? false : true; return num % 2 == 0 ? false : true;
} }
function handleShowMore(item) { function handleShowMore(item) {
console.log(item); console.log(item);
moreData.value = item.children; moreData.value = item.children;
@ -223,18 +230,22 @@ function handleShowMore(item) {
<style lang="scss" scoped> <style lang="scss" scoped>
.small { .small {
background-color: #fff; background-color: #fff;
._title { ._title {
position: relative; position: relative;
._li { ._li {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
height: 48px; height: 48px;
background: rgba(0, 0, 0, 0.2); background: rgba(0, 0, 0, 0.2);
> ul { > ul {
display: flex; display: flex;
height: 48px; height: 48px;
line-height: 48px; line-height: 48px;
li { li {
flex: 1; flex: 1;
text-align: center; text-align: center;
@ -243,11 +254,13 @@ function handleShowMore(item) {
display: inline-block; display: inline-block;
cursor: pointer; cursor: pointer;
} }
._active { ._active {
background: #000000; background: #000000;
} }
} }
} }
._fixed { ._fixed {
position: fixed; position: fixed;
top: 80px; top: 80px;
@ -255,28 +268,36 @@ function handleShowMore(item) {
background-color: #ccc; background-color: #ccc;
} }
} }
.box { .box {
margin-bottom: 30px; margin-bottom: 30px;
._item { ._item {
._tit { ._tit {
margin: 0; margin: 0;
padding: 100px 0 60px; padding: 100px 0 60px;
} }
._info { ._info {
display: flex; display: flex;
._paddingr { ._paddingr {
padding-right: 63px; padding-right: 63px;
} }
._paddingl { ._paddingl {
padding-left: 63px; padding-left: 63px;
} }
._l { ._l {
flex: 1; flex: 1;
h3 { h3 {
font-size: 18px; font-size: 18px;
font-weight: 500; font-weight: 500;
color: #333333; color: #333333;
} }
p { p {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
@ -284,9 +305,11 @@ function handleShowMore(item) {
line-height: 24px; line-height: 24px;
} }
} }
._r { ._r {
width: 420px; width: 420px;
background: #f2f6ff; background: #f2f6ff;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -294,19 +317,24 @@ function handleShowMore(item) {
} }
} }
} }
._list { ._list {
margin-top: 86px; margin-top: 86px;
> ul { > ul {
display: flex; display: flex;
justify-content: center; justify-content: center;
li { li {
cursor: pointer; cursor: pointer;
width: calc(100% / 6); width: calc(100% / 6);
padding: 0 11px; padding: 0 11px;
&:hover ._head, &:hover ._head,
&:hover ._detail { &:hover ._detail {
opacity: 0.6; opacity: 0.6;
} }
._head { ._head {
margin: 5px 0; margin: 5px 0;
font-size: 17px; font-size: 17px;
@ -315,6 +343,7 @@ function handleShowMore(item) {
color: #333333; color: #333333;
line-height: 19px; line-height: 19px;
} }
._detail { ._detail {
font-size: 15px; font-size: 15px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
@ -324,6 +353,7 @@ function handleShowMore(item) {
} }
} }
} }
._liBtn { ._liBtn {
margin-top: 36px; margin-top: 36px;
display: flex; display: flex;

View File

@ -31,9 +31,9 @@ export default defineConfig(({ mode, command }) => {
proxy: { proxy: {
// https://cn.vitejs.dev/config/#server-proxy // https://cn.vitejs.dev/config/#server-proxy
"/dev-api": { "/dev-api": {
// target: 'http://101.34.131.16:1618', target: "http://101.34.131.16:1618",
// target: "http://101.34.131.16:1618", // target: "http://101.34.131.16:1618",
target: "http://192.168.0.201:1618", // target: "http://192.168.0.201:1618",
// target: 'http://172.18.3.127:1618', // target: 'http://172.18.3.127:1618',
changeOrigin: true, changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, ""), rewrite: (p) => p.replace(/^\/dev-api/, ""),