formatted
This commit is contained in:
292
html/ie.html
292
html/ie.html
File diff suppressed because one or more lines are too long
85
index.html
85
index.html
@ -1,30 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<!doctype html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
||||
<meta content="webkit" name="renderer">
|
||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
|
||||
<link href="/favicon.ico" rel="icon">
|
||||
<!-- <script type="text/javascript">-->
|
||||
<!-- window._AMapSecurityConfig = {-->
|
||||
<!-- securityJsCode: '7d1b758db4876389af608259c4c99832',-->
|
||||
<!-- }-->
|
||||
<!-- </script>-->
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible" />
|
||||
<meta content="webkit" name="renderer" />
|
||||
<meta
|
||||
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
|
||||
name="viewport"
|
||||
/>
|
||||
<link href="/favicon.ico" rel="icon" />
|
||||
<!-- <script type="text/javascript">-->
|
||||
<!-- window._AMapSecurityConfig = {-->
|
||||
<!-- securityJsCode: '7d1b758db4876389af608259c4c99832',-->
|
||||
<!-- }-->
|
||||
<!-- </script>-->
|
||||
<script type="text/javascript">
|
||||
window._AMapSecurityConfig = {
|
||||
securityJsCode: '2b65e7751cb17e4605f4c4cdccf885f6',
|
||||
securityJsCode: "2b65e7751cb17e4605f4c4cdccf885f6",
|
||||
// securityJsCode: '7d1b758db4876389af608259c4c99832',
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<!-- <script src='//webapi.amap.com/maps?v=1.4.15&key=bfc7224388e835679ffe74cfbd28c8d6' type="text/javascript"></script>-->
|
||||
<!-- <script src="https://webapi.amap.com/maps?v=1.4.11&key=bfc7224388e835679ffe74cfbd28c8d6&plugin=AMap.DistrictSearch"-->
|
||||
<!-- type="text/javascript"></script>-->
|
||||
<!-- <script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>-->
|
||||
<!-- <script src='//webapi.amap.com/maps?v=1.4.15&key=bfc7224388e835679ffe74cfbd28c8d6' type="text/javascript"></script>-->
|
||||
<!-- <script src="https://webapi.amap.com/maps?v=1.4.11&key=bfc7224388e835679ffe74cfbd28c8d6&plugin=AMap.DistrictSearch"-->
|
||||
<!-- type="text/javascript"></script>-->
|
||||
<!-- <script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>-->
|
||||
<title>咸海生态治理国际科技产业合作信息化平台</title>
|
||||
<!--[if lt IE 11]>
|
||||
<script>window.location.href = '/html/ie.html';</script><![endif]-->
|
||||
<script>
|
||||
window.location.href = "/html/ie.html";
|
||||
</script><!
|
||||
[endif]-->
|
||||
<style>
|
||||
html,
|
||||
body,
|
||||
@ -60,7 +65,7 @@
|
||||
margin: -75px 0 0 -75px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #FFF;
|
||||
border-top-color: #fff;
|
||||
-webkit-animation: spin 2s linear infinite;
|
||||
-ms-animation: spin 2s linear infinite;
|
||||
-moz-animation: spin 2s linear infinite;
|
||||
@ -78,7 +83,7 @@
|
||||
bottom: 5px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #FFF;
|
||||
border-top-color: #fff;
|
||||
-webkit-animation: spin 3s linear infinite;
|
||||
-moz-animation: spin 3s linear infinite;
|
||||
-o-animation: spin 3s linear infinite;
|
||||
@ -95,7 +100,7 @@
|
||||
bottom: 15px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #FFF;
|
||||
border-top-color: #fff;
|
||||
-moz-animation: spin 1.5s linear infinite;
|
||||
-o-animation: spin 1.5s linear infinite;
|
||||
-ms-animation: spin 1.5s linear infinite;
|
||||
@ -103,7 +108,6 @@
|
||||
animation: spin 1.5s linear infinite;
|
||||
}
|
||||
|
||||
|
||||
@-webkit-keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
@ -132,13 +136,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#loader-wrapper .loader-section {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 51%;
|
||||
height: 100%;
|
||||
background: #7171C6;
|
||||
background: #7171c6;
|
||||
z-index: 1000;
|
||||
-webkit-transform: translateX(0);
|
||||
-ms-transform: translateX(0);
|
||||
@ -153,21 +156,20 @@
|
||||
right: 0;
|
||||
}
|
||||
|
||||
|
||||
.loaded #loader-wrapper .loader-section.section-left {
|
||||
-webkit-transform: translateX(-100%);
|
||||
-ms-transform: translateX(-100%);
|
||||
transform: translateX(-100%);
|
||||
-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);
|
||||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
}
|
||||
|
||||
.loaded #loader-wrapper .loader-section.section-right {
|
||||
-webkit-transform: translateX(100%);
|
||||
-ms-transform: translateX(100%);
|
||||
transform: translateX(100%);
|
||||
-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);
|
||||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
}
|
||||
|
||||
.loaded #loader {
|
||||
@ -194,8 +196,8 @@
|
||||
}
|
||||
|
||||
#loader-wrapper .load_title {
|
||||
font-family: 'Open Sans';
|
||||
color: #FFF;
|
||||
font-family: "Open Sans";
|
||||
color: #fff;
|
||||
font-size: 19px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
@ -210,22 +212,21 @@
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
font-size: 13px;
|
||||
color: #FFF;
|
||||
color: #fff;
|
||||
opacity: 0.5;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app">
|
||||
<body>
|
||||
<div id="app">
|
||||
<div id="loader-wrapper">
|
||||
<div id="loader"></div>
|
||||
<div class="loader-section section-left"></div>
|
||||
<div class="loader-section section-right"></div>
|
||||
<!--<div class="load_title">正在加载系统资源,请耐心等待</div>-->
|
||||
<!--<div class="load_title">正在加载系统资源,请耐心等待</div>-->
|
||||
</div>
|
||||
</div>
|
||||
<script src="/src/main.js" type="module"></script>
|
||||
</body>
|
||||
|
||||
</div>
|
||||
<script src="/src/main.js" type="module"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -30,7 +30,7 @@ watch(
|
||||
(newVal) => {
|
||||
locale.value = newVal;
|
||||
},
|
||||
{ immediate: true }
|
||||
{ immediate: true },
|
||||
);
|
||||
|
||||
onMounted(() => {
|
||||
|
@ -32,7 +32,7 @@ export const getTechnologyDemandUpdateStatus = (params) =>
|
||||
});
|
||||
|
||||
export const updateDemandProcess = (
|
||||
data // 修改企业技术需求
|
||||
data, // 修改企业技术需求
|
||||
) =>
|
||||
request({
|
||||
url: "/app/broker/enterprise/updateDemandProcess",
|
||||
|
@ -23,7 +23,7 @@ export const activityInfo = (id) => {
|
||||
url: "/app/expert/getActivityInfo",
|
||||
method: "GET",
|
||||
params: {
|
||||
id
|
||||
id,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
@ -46,7 +46,6 @@ export const deleteLabPatentByIds = (ids) => {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* 实验室未绑定专家列表
|
||||
* @param params
|
||||
@ -72,7 +71,6 @@ export const bindExpert = (expertId) => {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* 实验室未绑定专家列表
|
||||
* @param params
|
||||
|
@ -1,12 +1,14 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
export const listNews = (params) => request({
|
||||
export const listNews = (params) =>
|
||||
request({
|
||||
url: "/app/news/list",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
params,
|
||||
});
|
||||
|
||||
export const getNewsInfo = (id) => request({
|
||||
export const getNewsInfo = (id) =>
|
||||
request({
|
||||
url: `/app/news/${id}`,
|
||||
method: "GET",
|
||||
})
|
||||
});
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
30148
src/assets/geo_ru.json
30148
src/assets/geo_ru.json
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
@import './variables.module.scss';
|
||||
@import "./variables.module.scss";
|
||||
|
||||
@mixin colorBtn($color) {
|
||||
background: $color;
|
||||
@ -14,31 +14,31 @@
|
||||
}
|
||||
|
||||
.blue-btn {
|
||||
@include colorBtn($blue)
|
||||
@include colorBtn($blue);
|
||||
}
|
||||
|
||||
.light-blue-btn {
|
||||
@include colorBtn($light-blue)
|
||||
@include colorBtn($light-blue);
|
||||
}
|
||||
|
||||
.red-btn {
|
||||
@include colorBtn($red)
|
||||
@include colorBtn($red);
|
||||
}
|
||||
|
||||
.pink-btn {
|
||||
@include colorBtn($pink)
|
||||
@include colorBtn($pink);
|
||||
}
|
||||
|
||||
.green-btn {
|
||||
@include colorBtn($green)
|
||||
@include colorBtn($green);
|
||||
}
|
||||
|
||||
.tiffany-btn {
|
||||
@include colorBtn($tiffany)
|
||||
@include colorBtn($tiffany);
|
||||
}
|
||||
|
||||
.yellow-btn {
|
||||
@include colorBtn($yellow)
|
||||
@include colorBtn($yellow);
|
||||
}
|
||||
|
||||
.pan-btn {
|
||||
@ -64,7 +64,7 @@
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: '';
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
|
@ -69,7 +69,7 @@
|
||||
// dropdown
|
||||
.el-dropdown-menu {
|
||||
a {
|
||||
display: block
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
@ -91,6 +91,6 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
.el-dropdown .el-dropdown-link{
|
||||
.el-dropdown .el-dropdown-link {
|
||||
color: var(--el-color-primary) !important;
|
||||
}
|
@ -23,11 +23,11 @@ $base-sub-menu-hover:#001528;
|
||||
sideBarWidth: 200px;
|
||||
logoTitleColor: #ffffff;
|
||||
logoLightTitleColor: #001529;
|
||||
primaryColor: #409EFF;
|
||||
successColor: #67C23A;
|
||||
dangerColor: #F56C6C;
|
||||
primaryColor: #409eff;
|
||||
successColor: #67c23a;
|
||||
dangerColor: #f56c6c;
|
||||
infoColor: #909399;
|
||||
warningColor: #E6A23C;
|
||||
warningColor: #e6a23c;
|
||||
}
|
||||
|
||||
/* fade */
|
||||
@ -44,7 +44,7 @@ $base-sub-menu-hover:#001528;
|
||||
/* fade-transform */
|
||||
.fade-transform-leave-active,
|
||||
.fade-transform-enter-active {
|
||||
transition: all .5s;
|
||||
transition: all 0.5s;
|
||||
}
|
||||
|
||||
.fade-transform-enter {
|
||||
@ -60,7 +60,7 @@ $base-sub-menu-hover:#001528;
|
||||
/* breadcrumb transition */
|
||||
.breadcrumb-enter-active,
|
||||
.breadcrumb-leave-active {
|
||||
transition: all .5s;
|
||||
transition: all 0.5s;
|
||||
}
|
||||
|
||||
.breadcrumb-enter,
|
||||
@ -70,7 +70,7 @@ $base-sub-menu-hover:#001528;
|
||||
}
|
||||
|
||||
.breadcrumb-move {
|
||||
transition: all .5s;
|
||||
transition: all 0.5s;
|
||||
}
|
||||
|
||||
.breadcrumb-leave-active {
|
||||
@ -142,10 +142,10 @@ $base-sub-menu-hover:#001528;
|
||||
}
|
||||
|
||||
.el-menu--collapse
|
||||
> div
|
||||
> .el-submenu
|
||||
> .el-submenu__title
|
||||
.el-submenu__icon-arrow {
|
||||
> div
|
||||
> .el-submenu
|
||||
> .el-submenu__title
|
||||
.el-submenu__icon-arrow {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@ -155,7 +155,7 @@ $base-sub-menu-hover:#001528;
|
||||
|
||||
#app .main-container {
|
||||
min-height: 100%;
|
||||
transition: margin-left .28s;
|
||||
transition: margin-left 0.28s;
|
||||
margin-left: 200px;
|
||||
position: relative;
|
||||
}
|
||||
@ -165,7 +165,7 @@ $base-sub-menu-hover:#001528;
|
||||
}
|
||||
|
||||
#app .sidebar-container {
|
||||
-webkit-transition: width .28s;
|
||||
-webkit-transition: width 0.28s;
|
||||
transition: width 0.28s;
|
||||
width: 200px !important;
|
||||
background-color: #304156;
|
||||
@ -182,7 +182,10 @@ $base-sub-menu-hover:#001528;
|
||||
}
|
||||
|
||||
#app .sidebar-container .horizontal-collapse-transition {
|
||||
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
|
||||
transition:
|
||||
0s width ease-in-out,
|
||||
0s padding-left ease-in-out,
|
||||
0s padding-right ease-in-out;
|
||||
}
|
||||
|
||||
#app .sidebar-container .scrollbar-wrapper {
|
||||
@ -221,7 +224,8 @@ $base-sub-menu-hover:#001528;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
#app .sidebar-container .el-menu-item, #app .sidebar-container .menu-title {
|
||||
#app .sidebar-container .el-menu-item,
|
||||
#app .sidebar-container .menu-title {
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
white-space: nowrap !important;
|
||||
@ -250,12 +254,22 @@ $base-sub-menu-hover:#001528;
|
||||
background-color: rgba(0, 0, 0, 0.06) !important;
|
||||
}
|
||||
|
||||
#app .sidebar-container .theme-dark .nest-menu .el-sub-menu > .el-sub-menu__title,
|
||||
#app
|
||||
.sidebar-container
|
||||
.theme-dark
|
||||
.nest-menu
|
||||
.el-sub-menu
|
||||
> .el-sub-menu__title,
|
||||
#app .sidebar-container .theme-dark .el-sub-menu .el-menu-item {
|
||||
background-color: #1f2d3d !important;
|
||||
}
|
||||
|
||||
#app .sidebar-container .theme-dark .nest-menu .el-sub-menu > .el-sub-menu__title:hover,
|
||||
#app
|
||||
.sidebar-container
|
||||
.theme-dark
|
||||
.nest-menu
|
||||
.el-sub-menu
|
||||
> .el-sub-menu__title:hover,
|
||||
#app .sidebar-container .theme-dark .el-sub-menu .el-menu-item:hover {
|
||||
background-color: #001528 !important;
|
||||
}
|
||||
@ -293,11 +307,21 @@ $base-sub-menu-hover:#001528;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#app .hideSidebar .el-menu--collapse .el-sub-menu > .el-sub-menu__title .svg-icon {
|
||||
#app
|
||||
.hideSidebar
|
||||
.el-menu--collapse
|
||||
.el-sub-menu
|
||||
> .el-sub-menu__title
|
||||
.svg-icon {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#app .hideSidebar .el-menu--collapse .el-sub-menu > .el-sub-menu__title .svg-icon {
|
||||
#app
|
||||
.hideSidebar
|
||||
.el-menu--collapse
|
||||
.el-sub-menu
|
||||
> .el-sub-menu__title
|
||||
.svg-icon {
|
||||
flex: unset !important;
|
||||
}
|
||||
|
||||
@ -330,7 +354,7 @@ $base-sub-menu-hover:#001528;
|
||||
}
|
||||
|
||||
#app .mobile .sidebar-container {
|
||||
transition: transform .28s;
|
||||
transition: transform 0.28s;
|
||||
width: 200px !important;
|
||||
}
|
||||
|
||||
@ -396,11 +420,11 @@ $base-sub-menu-hover:#001528;
|
||||
sideBarWidth: 200px;
|
||||
logoTitleColor: #ffffff;
|
||||
logoLightTitleColor: #001529;
|
||||
primaryColor: #409EFF;
|
||||
successColor: #67C23A;
|
||||
dangerColor: #F56C6C;
|
||||
primaryColor: #409eff;
|
||||
successColor: #67c23a;
|
||||
dangerColor: #f56c6c;
|
||||
infoColor: #909399;
|
||||
warningColor: #E6A23C;
|
||||
warningColor: #e6a23c;
|
||||
}
|
||||
|
||||
.blue-btn {
|
||||
@ -411,80 +435,87 @@ $base-sub-menu-hover:#001528;
|
||||
color: #324157;
|
||||
}
|
||||
|
||||
.blue-btn:hover:before, .blue-btn:hover:after {
|
||||
.blue-btn:hover:before,
|
||||
.blue-btn:hover:after {
|
||||
background: #324157;
|
||||
}
|
||||
|
||||
.light-blue-btn {
|
||||
background: #3A71A8;
|
||||
background: #3a71a8;
|
||||
}
|
||||
|
||||
.light-blue-btn:hover {
|
||||
color: #3A71A8;
|
||||
color: #3a71a8;
|
||||
}
|
||||
|
||||
.light-blue-btn:hover:before, .light-blue-btn:hover:after {
|
||||
background: #3A71A8;
|
||||
.light-blue-btn:hover:before,
|
||||
.light-blue-btn:hover:after {
|
||||
background: #3a71a8;
|
||||
}
|
||||
|
||||
.red-btn {
|
||||
background: #C03639;
|
||||
background: #c03639;
|
||||
}
|
||||
|
||||
.red-btn:hover {
|
||||
color: #C03639;
|
||||
color: #c03639;
|
||||
}
|
||||
|
||||
.red-btn:hover:before, .red-btn:hover:after {
|
||||
background: #C03639;
|
||||
.red-btn:hover:before,
|
||||
.red-btn:hover:after {
|
||||
background: #c03639;
|
||||
}
|
||||
|
||||
.pink-btn {
|
||||
background: #E65D6E;
|
||||
background: #e65d6e;
|
||||
}
|
||||
|
||||
.pink-btn:hover {
|
||||
color: #E65D6E;
|
||||
color: #e65d6e;
|
||||
}
|
||||
|
||||
.pink-btn:hover:before, .pink-btn:hover:after {
|
||||
background: #E65D6E;
|
||||
.pink-btn:hover:before,
|
||||
.pink-btn:hover:after {
|
||||
background: #e65d6e;
|
||||
}
|
||||
|
||||
.green-btn {
|
||||
background: #30B08F;
|
||||
background: #30b08f;
|
||||
}
|
||||
|
||||
.green-btn:hover {
|
||||
color: #30B08F;
|
||||
color: #30b08f;
|
||||
}
|
||||
|
||||
.green-btn:hover:before, .green-btn:hover:after {
|
||||
background: #30B08F;
|
||||
.green-btn:hover:before,
|
||||
.green-btn:hover:after {
|
||||
background: #30b08f;
|
||||
}
|
||||
|
||||
.tiffany-btn {
|
||||
background: #4AB7BD;
|
||||
background: #4ab7bd;
|
||||
}
|
||||
|
||||
.tiffany-btn:hover {
|
||||
color: #4AB7BD;
|
||||
color: #4ab7bd;
|
||||
}
|
||||
|
||||
.tiffany-btn:hover:before, .tiffany-btn:hover:after {
|
||||
background: #4AB7BD;
|
||||
.tiffany-btn:hover:before,
|
||||
.tiffany-btn:hover:after {
|
||||
background: #4ab7bd;
|
||||
}
|
||||
|
||||
.yellow-btn {
|
||||
background: #FEC171;
|
||||
background: #fec171;
|
||||
}
|
||||
|
||||
.yellow-btn:hover {
|
||||
color: #FEC171;
|
||||
color: #fec171;
|
||||
}
|
||||
|
||||
.yellow-btn:hover:before, .yellow-btn:hover:after {
|
||||
background: #FEC171;
|
||||
.yellow-btn:hover:before,
|
||||
.yellow-btn:hover:after {
|
||||
background: #fec171;
|
||||
}
|
||||
|
||||
.pan-btn {
|
||||
@ -503,13 +534,15 @@ $base-sub-menu-hover:#001528;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.pan-btn:hover:before, .pan-btn:hover:after {
|
||||
.pan-btn:hover:before,
|
||||
.pan-btn:hover:after {
|
||||
width: 100%;
|
||||
transition: 600ms ease all;
|
||||
}
|
||||
|
||||
.pan-btn:before, .pan-btn:after {
|
||||
content: '';
|
||||
.pan-btn:before,
|
||||
.pan-btn:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
@ -611,7 +644,18 @@ $base-sub-menu-hover:#001528;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
|
||||
.h1,
|
||||
.h2,
|
||||
.h3,
|
||||
.h4,
|
||||
.h5,
|
||||
.h6,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
@ -629,7 +673,8 @@ $base-sub-menu-hover:#001528;
|
||||
padding: 10px 20px 0;
|
||||
}
|
||||
|
||||
.el-table .el-table__header-wrapper th, .el-table .el-table__fixed-header-wrapper th {
|
||||
.el-table .el-table__header-wrapper th,
|
||||
.el-table .el-table__fixed-header-wrapper th {
|
||||
word-break: break-word;
|
||||
background-color: #f8f8f9 !important;
|
||||
color: #515a6e;
|
||||
@ -662,7 +707,7 @@ $base-sub-menu-hover:#001528;
|
||||
.tree-border {
|
||||
margin-top: 5px;
|
||||
border: 1px solid #e5e6e7;
|
||||
background: #FFFFFF none;
|
||||
background: #ffffff none;
|
||||
border-radius: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
@ -691,11 +736,12 @@ $base-sub-menu-hover:#001528;
|
||||
/** 表格更多操作下拉样式 */
|
||||
.el-table .el-dropdown-link {
|
||||
cursor: pointer;
|
||||
color: #409EFF;
|
||||
color: #409eff;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.el-table .el-dropdown, .el-icon-arrow-down {
|
||||
.el-table .el-dropdown,
|
||||
.el-icon-arrow-down {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@ -746,22 +792,22 @@ $base-sub-menu-hover:#001528;
|
||||
/* button color */
|
||||
.el-button--cyan.is-active,
|
||||
.el-button--cyan:active {
|
||||
background: #20B2AA;
|
||||
border-color: #20B2AA;
|
||||
color: #FFFFFF;
|
||||
background: #20b2aa;
|
||||
border-color: #20b2aa;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.el-button--cyan:focus,
|
||||
.el-button--cyan:hover {
|
||||
background: #48D1CC;
|
||||
border-color: #48D1CC;
|
||||
color: #FFFFFF;
|
||||
background: #48d1cc;
|
||||
border-color: #48d1cc;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.el-button--cyan {
|
||||
background-color: #20B2AA;
|
||||
border-color: #20B2AA;
|
||||
color: #FFFFFF;
|
||||
background-color: #20b2aa;
|
||||
border-color: #20b2aa;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* text color */
|
||||
@ -816,7 +862,7 @@ $base-sub-menu-hover:#001528;
|
||||
|
||||
/* 拖拽列样式 */
|
||||
.sortable-ghost {
|
||||
opacity: .8;
|
||||
opacity: 0.8;
|
||||
color: #fff !important;
|
||||
background: #42b983 !important;
|
||||
}
|
||||
@ -832,7 +878,14 @@ body {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
|
||||
font-family:
|
||||
Helvetica Neue,
|
||||
Helvetica,
|
||||
PingFang SC,
|
||||
Hiragino Sans GB,
|
||||
Microsoft YaHei,
|
||||
Arial,
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
label {
|
||||
@ -924,7 +977,8 @@ aside {
|
||||
display: block;
|
||||
line-height: 32px;
|
||||
font-size: 16px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
|
||||
Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
||||
color: #2c3e50;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
@ -964,7 +1018,13 @@ aside a:hover {
|
||||
text-align: right;
|
||||
padding-right: 20px;
|
||||
transition: 600ms ease position;
|
||||
background: linear-gradient(90deg, #20b6f9 0%, #20b6f9 0%, #2178f1 100%, #2178f1 100%);
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
#20b6f9 0%,
|
||||
#20b6f9 0%,
|
||||
#2178f1 100%,
|
||||
#2178f1 100%
|
||||
);
|
||||
}
|
||||
|
||||
.sub-navbar .subtitle {
|
||||
|
867
src/assets/styles/index.min.css
vendored
867
src/assets/styles/index.min.css
vendored
File diff suppressed because one or more lines are too long
@ -1,10 +1,10 @@
|
||||
@import './variables.module.scss';
|
||||
@import './mixin.scss';
|
||||
@import './transition.scss';
|
||||
@import './element-ui.scss';
|
||||
@import './sidebar.scss';
|
||||
@import './btn.scss';
|
||||
@import './ruoyi.scss';
|
||||
@import "./variables.module.scss";
|
||||
@import "./mixin.scss";
|
||||
@import "./transition.scss";
|
||||
@import "./element-ui.scss";
|
||||
@import "./sidebar.scss";
|
||||
@import "./btn.scss";
|
||||
@import "./ruoyi.scss";
|
||||
|
||||
body {
|
||||
height: 100%;
|
||||
@ -12,7 +12,14 @@ body {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
|
||||
font-family:
|
||||
Helvetica Neue,
|
||||
Helvetica,
|
||||
PingFang SC,
|
||||
Hiragino Sans GB,
|
||||
Microsoft YaHei,
|
||||
Arial,
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
label {
|
||||
@ -106,7 +113,8 @@ aside {
|
||||
display: block;
|
||||
line-height: 32px;
|
||||
font-size: 16px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
|
||||
Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
||||
color: #2c3e50;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
@ -136,7 +144,7 @@ aside {
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.sub-navbar {
|
||||
@ -147,7 +155,13 @@ aside {
|
||||
text-align: right;
|
||||
padding-right: 20px;
|
||||
transition: 600ms ease position;
|
||||
background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(32, 182, 249, 1) 0%,
|
||||
rgba(32, 182, 249, 1) 0%,
|
||||
rgba(33, 120, 241, 1) 100%,
|
||||
rgba(33, 120, 241, 1) 100%
|
||||
);
|
||||
|
||||
.subtitle {
|
||||
font-size: 20px;
|
||||
@ -192,8 +206,6 @@ aside {
|
||||
z-index: 1000 !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 自定义全局样式
|
||||
.conter1000 {
|
||||
width: 1000px;
|
||||
@ -204,10 +216,10 @@ aside {
|
||||
margin: 0 auto;
|
||||
}
|
||||
// 1行文本省略号
|
||||
.ellipsis{
|
||||
overflow:hidden;
|
||||
white-space:nowrap;
|
||||
text-overflow:ellipsis;
|
||||
.ellipsis {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
// 2行文本省略号
|
||||
.text_hidden {
|
||||
@ -223,19 +235,19 @@ aside {
|
||||
border-radius: 0 !important;
|
||||
background-color: #0054ff !important;
|
||||
}
|
||||
.x16{
|
||||
.x16 {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
.x_fff{
|
||||
.x_fff {
|
||||
color: #fff !important;
|
||||
}
|
||||
.x_blue{
|
||||
.x_blue {
|
||||
color: #0054ff !important;
|
||||
}
|
||||
.x_border_blue{
|
||||
.x_border_blue {
|
||||
border: 1px solid #0054ff !important;
|
||||
}
|
||||
.x_bg_blue{
|
||||
.x_bg_blue {
|
||||
background-color: #0054ff !important;
|
||||
}
|
||||
|
||||
|
@ -44,21 +44,15 @@
|
||||
border-bottom: $color-border-style;
|
||||
border-left: $transparent-border-style;
|
||||
border-right: $transparent-border-style;
|
||||
}
|
||||
|
||||
@else if $direction==right {
|
||||
} @else if $direction==right {
|
||||
border-left: $color-border-style;
|
||||
border-top: $transparent-border-style;
|
||||
border-bottom: $transparent-border-style;
|
||||
}
|
||||
|
||||
@else if $direction==down {
|
||||
} @else if $direction==down {
|
||||
border-top: $color-border-style;
|
||||
border-left: $transparent-border-style;
|
||||
border-right: $transparent-border-style;
|
||||
}
|
||||
|
||||
@else if $direction==left {
|
||||
} @else if $direction==left {
|
||||
border-right: $color-border-style;
|
||||
border-top: $transparent-border-style;
|
||||
border-bottom: $transparent-border-style;
|
||||
|
@ -1,9 +1,9 @@
|
||||
/**
|
||||
/**
|
||||
* 通用css样式布局处理
|
||||
* Copyright (c) 2019 ruoyi
|
||||
*/
|
||||
|
||||
/** 基础通用 **/
|
||||
/** 基础通用 **/
|
||||
.pt5 {
|
||||
padding-top: 5px;
|
||||
}
|
||||
@ -53,7 +53,18 @@
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
|
||||
.h1,
|
||||
.h2,
|
||||
.h3,
|
||||
.h4,
|
||||
.h5,
|
||||
.h6,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
@ -72,7 +83,8 @@
|
||||
}
|
||||
|
||||
.el-table {
|
||||
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
|
||||
.el-table__header-wrapper,
|
||||
.el-table__fixed-header-wrapper {
|
||||
th {
|
||||
word-break: break-word;
|
||||
background-color: #f8f8f9 !important;
|
||||
@ -90,11 +102,11 @@
|
||||
|
||||
/** 表单布局 **/
|
||||
.form-header {
|
||||
font-size:15px;
|
||||
color:#6379bb;
|
||||
border-bottom:1px solid #ddd;
|
||||
margin:8px 10px 25px 10px;
|
||||
padding-bottom:5px
|
||||
font-size: 15px;
|
||||
color: #6379bb;
|
||||
border-bottom: 1px solid #ddd;
|
||||
margin: 8px 10px 25px 10px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
/** 表格布局 **/
|
||||
@ -110,8 +122,8 @@
|
||||
.tree-border {
|
||||
margin-top: 5px;
|
||||
border: 1px solid #e5e6e7;
|
||||
background: #FFFFFF none;
|
||||
border-radius:4px;
|
||||
background: #ffffff none;
|
||||
border-radius: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@ -120,7 +132,7 @@
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
@media ( max-width : 768px) {
|
||||
@media (max-width: 768px) {
|
||||
.pagination-container .el-pagination > .el-pagination__jump {
|
||||
display: none !important;
|
||||
}
|
||||
@ -138,11 +150,12 @@
|
||||
/** 表格更多操作下拉样式 */
|
||||
.el-table .el-dropdown-link {
|
||||
cursor: pointer;
|
||||
color: #409EFF;
|
||||
color: #409eff;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.el-table .el-dropdown, .el-icon-arrow-down {
|
||||
.el-table .el-dropdown,
|
||||
.el-icon-arrow-down {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@ -193,22 +206,22 @@
|
||||
/* button color */
|
||||
.el-button--cyan.is-active,
|
||||
.el-button--cyan:active {
|
||||
background: #20B2AA;
|
||||
border-color: #20B2AA;
|
||||
color: #FFFFFF;
|
||||
background: #20b2aa;
|
||||
border-color: #20b2aa;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.el-button--cyan:focus,
|
||||
.el-button--cyan:hover {
|
||||
background: #48D1CC;
|
||||
border-color: #48D1CC;
|
||||
color: #FFFFFF;
|
||||
background: #48d1cc;
|
||||
border-color: #48d1cc;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.el-button--cyan {
|
||||
background-color: #20B2AA;
|
||||
border-color: #20B2AA;
|
||||
color: #FFFFFF;
|
||||
background-color: #20b2aa;
|
||||
border-color: #20b2aa;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* text color */
|
||||
@ -262,10 +275,10 @@
|
||||
}
|
||||
|
||||
/* 拖拽列样式 */
|
||||
.sortable-ghost{
|
||||
opacity: .8;
|
||||
color: #fff!important;
|
||||
background: #42b983!important;
|
||||
.sortable-ghost {
|
||||
opacity: 0.8;
|
||||
color: #fff !important;
|
||||
background: #42b983 !important;
|
||||
}
|
||||
|
||||
/* 表格右侧工具栏样式 */
|
||||
|
@ -1,18 +1,17 @@
|
||||
#app {
|
||||
|
||||
.main-container {
|
||||
min-height: 100%;
|
||||
transition: margin-left .28s;
|
||||
transition: margin-left 0.28s;
|
||||
margin-left: $base-sidebar-width;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sidebarHide {
|
||||
margin-left: 0!important;
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
|
||||
.sidebar-container {
|
||||
-webkit-transition: width .28s;
|
||||
-webkit-transition: width 0.28s;
|
||||
transition: width 0.28s;
|
||||
width: $base-sidebar-width !important;
|
||||
background-color: $base-menu-background;
|
||||
@ -24,12 +23,15 @@
|
||||
left: 0;
|
||||
z-index: 1001;
|
||||
overflow: hidden;
|
||||
-webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
|
||||
box-shadow: 2px 0 6px rgba(0,21,41,.35);
|
||||
-webkit-box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
|
||||
box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
|
||||
|
||||
// reset element-ui css
|
||||
.horizontal-collapse-transition {
|
||||
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
|
||||
transition:
|
||||
0s width ease-in-out,
|
||||
0s padding-left ease-in-out,
|
||||
0s padding-right ease-in-out;
|
||||
}
|
||||
|
||||
.scrollbar-wrapper {
|
||||
@ -70,7 +72,8 @@
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.el-menu-item, .menu-title {
|
||||
.el-menu-item,
|
||||
.menu-title {
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
white-space: nowrap !important;
|
||||
@ -92,7 +95,7 @@
|
||||
color: $base-menu-color-active !important;
|
||||
}
|
||||
|
||||
& .nest-menu .el-sub-menu>.el-sub-menu__title,
|
||||
& .nest-menu .el-sub-menu > .el-sub-menu__title,
|
||||
& .el-sub-menu .el-menu-item {
|
||||
min-width: $base-sidebar-width !important;
|
||||
|
||||
@ -101,7 +104,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
& .theme-dark .nest-menu .el-sub-menu>.el-sub-menu__title,
|
||||
& .theme-dark .nest-menu .el-sub-menu > .el-sub-menu__title,
|
||||
& .theme-dark .el-sub-menu .el-menu-item {
|
||||
background-color: $base-sub-menu-background !important;
|
||||
|
||||
@ -136,27 +139,26 @@
|
||||
.el-sub-menu {
|
||||
overflow: hidden;
|
||||
|
||||
&>.el-sub-menu__title {
|
||||
& > .el-sub-menu__title {
|
||||
padding: 0 !important;
|
||||
|
||||
.svg-icon {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.el-menu--collapse {
|
||||
.el-sub-menu {
|
||||
&>.el-sub-menu__title {
|
||||
&>span {
|
||||
& > .el-sub-menu__title {
|
||||
& > span {
|
||||
height: 0;
|
||||
width: 0;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
display: inline-block;
|
||||
}
|
||||
&>i {
|
||||
& > i {
|
||||
height: 0;
|
||||
width: 0;
|
||||
overflow: hidden;
|
||||
@ -179,7 +181,7 @@
|
||||
}
|
||||
|
||||
.sidebar-container {
|
||||
transition: transform .28s;
|
||||
transition: transform 0.28s;
|
||||
width: $base-sidebar-width !important;
|
||||
}
|
||||
|
||||
@ -193,7 +195,6 @@
|
||||
}
|
||||
|
||||
.withoutAnimation {
|
||||
|
||||
.main-container,
|
||||
.sidebar-container {
|
||||
transition: none;
|
||||
@ -203,13 +204,13 @@
|
||||
|
||||
// when menu collapsed
|
||||
.el-menu--vertical {
|
||||
&>.el-menu {
|
||||
& > .el-menu {
|
||||
.svg-icon {
|
||||
margin-right: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.nest-menu .el-sub-menu>.el-sub-menu__title,
|
||||
.nest-menu .el-sub-menu > .el-sub-menu__title,
|
||||
.el-menu-item {
|
||||
&:hover {
|
||||
// you can use $sub-menuHover
|
||||
@ -218,7 +219,7 @@
|
||||
}
|
||||
|
||||
// the scroll bar appears when the sub-menu is too long
|
||||
>.el-menu--popup {
|
||||
> .el-menu--popup {
|
||||
max-height: 100vh;
|
||||
overflow-y: auto;
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
/* fade-transform */
|
||||
.fade-transform-leave-active,
|
||||
.fade-transform-enter-active {
|
||||
transition: all .5s;
|
||||
transition: all 0.5s;
|
||||
}
|
||||
|
||||
.fade-transform-enter {
|
||||
@ -30,7 +30,7 @@
|
||||
/* breadcrumb transition */
|
||||
.breadcrumb-enter-active,
|
||||
.breadcrumb-leave-active {
|
||||
transition: all .5s;
|
||||
transition: all 0.5s;
|
||||
}
|
||||
|
||||
.breadcrumb-enter,
|
||||
@ -40,7 +40,7 @@
|
||||
}
|
||||
|
||||
.breadcrumb-move {
|
||||
transition: all .5s;
|
||||
transition: all 0.5s;
|
||||
}
|
||||
|
||||
.breadcrumb-leave-active {
|
||||
|
@ -1,12 +1,12 @@
|
||||
// base color
|
||||
$blue: #324157;
|
||||
$light-blue: #3A71A8;
|
||||
$red: #C03639;
|
||||
$pink: #E65D6E;
|
||||
$green: #30B08F;
|
||||
$tiffany: #4AB7BD;
|
||||
$yellow: #FEC171;
|
||||
$panGreen: #30B08F;
|
||||
$light-blue: #3a71a8;
|
||||
$red: #c03639;
|
||||
$pink: #e65d6e;
|
||||
$green: #30b08f;
|
||||
$tiffany: #4ab7bd;
|
||||
$yellow: #fec171;
|
||||
$panGreen: #30b08f;
|
||||
|
||||
// 默认菜单主题风格
|
||||
$base-menu-color: #bfcbd9;
|
||||
@ -36,10 +36,10 @@ $base-sub-menu-background:#000c17;
|
||||
$base-sub-menu-hover:#001528;
|
||||
*/
|
||||
|
||||
$--color-primary: #409EFF;
|
||||
$--color-success: #67C23A;
|
||||
$--color-warning: #E6A23C;
|
||||
$--color-danger: #F56C6C;
|
||||
$--color-primary: #409eff;
|
||||
$--color-success: #67c23a;
|
||||
$--color-warning: #e6a23c;
|
||||
$--color-danger: #f56c6c;
|
||||
$--color-info: #909399;
|
||||
|
||||
$base-sidebar-width: 200px;
|
||||
|
File diff suppressed because one or more lines are too long
132463
src/assets/world.json
132463
src/assets/world.json
File diff suppressed because it is too large
Load Diff
@ -41,7 +41,7 @@ function getBreadcrumb() {
|
||||
}
|
||||
|
||||
levelList.value = matched.filter(
|
||||
(item) => item.meta && item.meta.title && item.meta.breadcrumb !== false
|
||||
(item) => item.meta && item.meta.title && item.meta.breadcrumb !== false,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -100,7 +100,7 @@ const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload");
|
||||
const headers = ref({});
|
||||
const fileList = ref([]);
|
||||
const showTip = computed(
|
||||
() => props.isShowTip && (props.fileType || props.fileSize)
|
||||
() => props.isShowTip && (props.fileType || props.fileSize),
|
||||
);
|
||||
|
||||
watch(
|
||||
@ -123,7 +123,7 @@ watch(
|
||||
return [];
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
{ deep: true, immediate: true },
|
||||
);
|
||||
|
||||
// 上传前校检格式和大小
|
||||
@ -144,7 +144,7 @@ function handleBeforeUpload(file) {
|
||||
// `文件格式不正确, 请上传${props.fileType.join("/")}格式文件!`
|
||||
t("admin.validation.fileFormatIsIncorrectPleaseUploadFormatFile", {
|
||||
format: props.fileType.join("/"),
|
||||
})
|
||||
}),
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ function filterIcons() {
|
||||
iconList.value = icons;
|
||||
if (iconName.value) {
|
||||
iconList.value = icons.filter(
|
||||
(item) => item.indexOf(iconName.value) !== -1
|
||||
(item) => item.indexOf(iconName.value) !== -1,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -59,11 +59,11 @@ const realSrcList = computed(() => {
|
||||
});
|
||||
|
||||
const realWidth = computed(() =>
|
||||
typeof props.width == "string" ? props.width : `${props.width}px`
|
||||
typeof props.width == "string" ? props.width : `${props.width}px`,
|
||||
);
|
||||
|
||||
const realHeight = computed(() =>
|
||||
typeof props.height == "string" ? props.height : `${props.height}px`
|
||||
typeof props.height == "string" ? props.height : `${props.height}px`,
|
||||
);
|
||||
</script>
|
||||
|
||||
|
@ -98,7 +98,7 @@ const uploadImgUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload");
|
||||
const headers = ref({ "client-token": "Bearer " + getToken() });
|
||||
const fileList = ref([]);
|
||||
const showTip = computed(
|
||||
() => props.isShowTip && (props.fileType || props.fileSize)
|
||||
() => props.isShowTip && (props.fileType || props.fileSize),
|
||||
);
|
||||
|
||||
watch(
|
||||
@ -126,7 +126,7 @@ watch(
|
||||
return [];
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
{ deep: true, immediate: true },
|
||||
);
|
||||
|
||||
// 删除图片
|
||||
@ -169,7 +169,7 @@ function handleBeforeUpload(file) {
|
||||
}
|
||||
if (!isImg) {
|
||||
proxy.$modal.msgError(
|
||||
`文件格式不正确, 请上传${props.fileType.join("/")}图片格式文件!`
|
||||
`文件格式不正确, 请上传${props.fileType.join("/")}图片格式文件!`,
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
@ -212,7 +212,7 @@ export default {
|
||||
});
|
||||
if (!isTypeOk) {
|
||||
ElMessage.error(
|
||||
`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`
|
||||
`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`,
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ export default {
|
||||
const { t } = useI18n();
|
||||
i18nChangeLanguage("en");
|
||||
const placeholder = computed(() =>
|
||||
t("admin.validation.pleaseEnterContent")
|
||||
t("admin.validation.pleaseEnterContent"),
|
||||
);
|
||||
// 编辑器实例,必须用 shallowRef
|
||||
const editorRef = shallowRef();
|
||||
@ -87,7 +87,7 @@ export default {
|
||||
(val) => {
|
||||
valueHtml.value = val ?? "";
|
||||
},
|
||||
{ immediate: true }
|
||||
{ immediate: true },
|
||||
);
|
||||
const { height } = toRefs(props);
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<div class="webHead">
|
||||
<div class="site-title">
|
||||
<img class="site-logo" :src="sitelogo"/>
|
||||
<span>{{ t('common.siteTitle') }}</span>
|
||||
<img class="site-logo" :src="sitelogo" />
|
||||
<span>{{ t("common.siteTitle") }}</span>
|
||||
</div>
|
||||
<el-row style="height: 80px">
|
||||
<el-col :span="20">
|
||||
@ -41,7 +41,7 @@
|
||||
"
|
||||
@click="
|
||||
handlePath(
|
||||
`/solution/${item.id}?name=${item[solutionNameField]}`
|
||||
`/solution/${item.id}?name=${item[solutionNameField]}`,
|
||||
)
|
||||
"
|
||||
>
|
||||
@ -139,7 +139,7 @@
|
||||
"
|
||||
class="user-avatar"
|
||||
/>
|
||||
<i class="el-icon-caret-bottom"/>
|
||||
<i class="el-icon-caret-bottom" />
|
||||
</div>
|
||||
<!-- </template> -->
|
||||
<!-- </el-popover> -->
|
||||
@ -195,16 +195,16 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {computed, reactive, ref, watch} from "vue";
|
||||
import {useRoute, useRouter} from "vue-router";
|
||||
import { computed, reactive, ref, watch } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
|
||||
import useUserStore from "@/store/modules/user";
|
||||
import {getCategory} from "@/api/website/solution";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import { getCategory } from "@/api/website/solution";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import useSettingsStore from "@/store/modules/settings";
|
||||
import defaultAvatar from "@/assets/logo/avatar.png";
|
||||
import modal from "@/plugins/modal";
|
||||
import sitelogo from "@/assets/logo/咸海logo.png"
|
||||
import sitelogo from "@/assets/logo/咸海logo.png";
|
||||
|
||||
const userStore = useUserStore();
|
||||
let state = reactive({});
|
||||
@ -214,14 +214,14 @@ const router = useRouter();
|
||||
const baseUrl = ref(import.meta.env.VITE_APP_BASE_API);
|
||||
const categoryList = ref([]);
|
||||
// 当前的语言
|
||||
const {locale, t} = useI18n();
|
||||
const { locale, t } = useI18n();
|
||||
|
||||
const solutionNameField = computed(() => {
|
||||
return locale.value === "zh" ? "name" : `${locale.value}Name`;
|
||||
});
|
||||
const settingsStore = useSettingsStore();
|
||||
const loadCategoryList = async () => {
|
||||
const {data} = await getCategory();
|
||||
const { data } = await getCategory();
|
||||
categoryList.value = data;
|
||||
};
|
||||
loadCategoryList();
|
||||
@ -229,7 +229,7 @@ watch(
|
||||
() => route.path,
|
||||
(newVal, oldVal) => {
|
||||
pagePath.value = newVal;
|
||||
}
|
||||
},
|
||||
);
|
||||
pagePath.value = route.path;
|
||||
|
||||
@ -253,7 +253,7 @@ function handlePage() {
|
||||
// routeData = router.resolve({ path: "/identity/index" });
|
||||
// }
|
||||
// window.open(routeData.href, "_blank");
|
||||
const routeData = router.resolve({path: "/identity/index"});
|
||||
const routeData = router.resolve({ path: "/identity/index" });
|
||||
window.open(routeData.href, "_blank");
|
||||
}
|
||||
|
||||
@ -279,8 +279,7 @@ function logout() {
|
||||
location.href = "/";
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
.catch(() => {});
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -361,7 +360,9 @@ dt {
|
||||
display: inline-block;
|
||||
padding: 25px 0;
|
||||
font-size: 16px;
|
||||
font-family: Source Han Sans CN, sans-serif;
|
||||
font-family:
|
||||
Source Han Sans CN,
|
||||
sans-serif;
|
||||
font-weight: 400;
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
|
@ -5,7 +5,9 @@
|
||||
<el-col :span="8" v-for="item in state.list" :key="item.id">
|
||||
<div class="tit">{{ item[titleField] }}</div>
|
||||
<p v-for="subItem in item.children" :key="subItem.id">
|
||||
<a :href="`${subItem.link}`" target="_black">{{ subItem[titleField] }}</a>
|
||||
<a :href="`${subItem.link}`" target="_black">{{
|
||||
subItem[titleField]
|
||||
}}</a>
|
||||
</p>
|
||||
</el-col>
|
||||
<!-- <el-col :span="4">
|
||||
@ -37,7 +39,7 @@
|
||||
</el-row>
|
||||
<div class="icp-beian">
|
||||
<el-link type="primary" href="https://beian.miit.gov.cn/"
|
||||
>{{ t('footer.recordNumber')}}
|
||||
>{{ t("footer.recordNumber") }}
|
||||
</el-link>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4,9 +4,9 @@ import webContact_zh from "@/i18n/message/webContact/zh";
|
||||
import webContact_ru from "@/i18n/message/webContact/ru";
|
||||
import activity_ru from "@/i18n/message/activity/ru";
|
||||
import activity_zh from "@/i18n/message/activity/zh";
|
||||
import {admin_ru, admin_zh} from "@/i18n/message/admin";
|
||||
import {routes_ru, routes_zh} from "@/i18n/message/routes";
|
||||
import {tagsView_ru, tagsView_zh} from "@/i18n/message/tagsView";
|
||||
import { admin_ru, admin_zh } from "@/i18n/message/admin";
|
||||
import { routes_ru, routes_zh } from "@/i18n/message/routes";
|
||||
import { tagsView_ru, tagsView_zh } from "@/i18n/message/tagsView";
|
||||
import common_zh from "@/i18n/message/common/zh";
|
||||
import common_ru from "@/i18n/message/common/ru";
|
||||
import dict_zh from "@/i18n/message/dict/zh";
|
||||
@ -39,7 +39,7 @@ const messages = {
|
||||
switchSystem: "切换系统",
|
||||
layoutSettings: "布局设置",
|
||||
changeAvatar: "更换头像",
|
||||
news: "新闻政策"
|
||||
news: "新闻政策",
|
||||
},
|
||||
footer: {
|
||||
copyRight: "中科云 版权所有",
|
||||
@ -164,7 +164,7 @@ const messages = {
|
||||
switchSystem: "Переключить систему",
|
||||
layoutSettings: "Настройки макета",
|
||||
changeAvatar: "Сменить аватар",
|
||||
news: "Пресс-политика"
|
||||
news: "Пресс-политика",
|
||||
},
|
||||
footer: {
|
||||
copyRight: "Чжункейун Авторское право",
|
||||
|
@ -2,6 +2,7 @@ const table = {
|
||||
enterTime: "Время входа",
|
||||
researchIndustry: "Область исследований",
|
||||
relatedExperts: "Связанные эксперты",
|
||||
relatedLabs: "Аффилированные лаборатории",
|
||||
// Связанный
|
||||
relation: "Связанный",
|
||||
publishTime: "Время публикации",
|
||||
|
@ -2,6 +2,7 @@ const table = {
|
||||
enterTime: "入驻时间",
|
||||
researchIndustry: "研究领域",
|
||||
relatedExperts: "关联专家",
|
||||
relatedLabs: "关联实验室",
|
||||
// 关联
|
||||
relation: "关联",
|
||||
publishTime: "发布时间",
|
||||
|
@ -1,5 +1,5 @@
|
||||
export const common = {
|
||||
siteTitle:"咸海生态治理国际科技产业合作信息化平台",
|
||||
siteTitle: "咸海生态治理国际科技产业合作信息化平台",
|
||||
home: "首页",
|
||||
search: "搜索",
|
||||
viewDetails: "查看详情",
|
||||
|
@ -25,6 +25,6 @@ const home = {
|
||||
// 政策解读
|
||||
policyAnalyzing: "анализ политики",
|
||||
// 通知公告
|
||||
announcement: "объявление"
|
||||
announcement: "объявление",
|
||||
};
|
||||
export default home;
|
||||
|
@ -21,7 +21,7 @@ const home = {
|
||||
// 政策解读
|
||||
policyAnalyzing: "政策解读",
|
||||
// 通知公告
|
||||
announcement: "通知公告"
|
||||
announcement: "通知公告",
|
||||
};
|
||||
|
||||
export default home;
|
||||
|
@ -31,7 +31,7 @@ const tips = {
|
||||
// 下载文件出现错误,请联系管理员!
|
||||
downloadFileError:
|
||||
"Ошибка загрузки файла, пожалуйста, свяжитесь с администратором!",
|
||||
importTip:"Инструкция по импорту",
|
||||
importTip: "Инструкция по импорту",
|
||||
keywordsImportTip:
|
||||
"Ключевые слова/Приложения клиентов, разделенные символом | (искусственный интеллект|квантовые вычисления)",
|
||||
industryImportTip:
|
||||
|
@ -26,7 +26,7 @@ const tips = {
|
||||
backendInterfaceConnectionException: "后端接口连接异常",
|
||||
// 下载文件出现错误,请联系管理员!
|
||||
downloadFileError: "下载文件出现错误,请联系管理员!",
|
||||
importTip:"导入说明",
|
||||
importTip: "导入说明",
|
||||
keywordsImportTip: "关键词/应用客户 多个用{'|'}隔开 (人工智能{'|'}量子计算)",
|
||||
industryImportTip: "所属领域 (>拼接上下级 多个用{'|'}隔开) ",
|
||||
industryImportExample:
|
||||
|
@ -120,7 +120,8 @@ const webSearch = {
|
||||
// 后台暂未提供
|
||||
noDataFromBackground: "Нет данных из фона",
|
||||
// 中科云平台
|
||||
zhongkeyunPlatform: "Информационная платформа международного сотрудничества в сфере науки и технологий, управления экологией Аральского моря",
|
||||
zhongkeyunPlatform:
|
||||
"Информационная платформа международного сотрудничества в сфере науки и технологий, управления экологией Аральского моря",
|
||||
};
|
||||
|
||||
export default webSearch;
|
||||
|
@ -1,3 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
@ -23,7 +23,7 @@ export default {
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
scrolling: "auto",
|
||||
})
|
||||
}),
|
||||
);
|
||||
},
|
||||
};
|
||||
|
@ -116,7 +116,12 @@ const sideTheme = computed(() => settingsStore.sideTheme);
|
||||
font-weight: 600;
|
||||
line-height: 50px;
|
||||
font-size: 14px;
|
||||
font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
|
||||
font-family:
|
||||
Avenir,
|
||||
Helvetica Neue,
|
||||
Arial,
|
||||
Helvetica,
|
||||
sans-serif;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
hasTitle(
|
||||
onlyOneChild.meta.i18nStr
|
||||
? t(onlyOneChild.meta.i18nStr)
|
||||
: onlyOneChild.meta.title
|
||||
: onlyOneChild.meta.title,
|
||||
)
|
||||
"
|
||||
>{{
|
||||
|
@ -58,7 +58,7 @@ function moveToTarget(currentTag) {
|
||||
} else {
|
||||
const tagListDom = document.getElementsByClassName("tags-view-item");
|
||||
const currentIndex = visitedViews.value.findIndex(
|
||||
(item) => item === currentTag
|
||||
(item) => item === currentTag,
|
||||
);
|
||||
let prevTag = null;
|
||||
let nextTag = null;
|
||||
|
@ -285,7 +285,9 @@ function handleScroll() {
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-bottom: 1px solid #d8dce5;
|
||||
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 3px 0 rgba(0, 0, 0, 0.04);
|
||||
box-shadow:
|
||||
0 1px 3px 0 rgba(0, 0, 0, 0.12),
|
||||
0 0 3px 0 rgba(0, 0, 0, 0.04);
|
||||
|
||||
.tags-view-wrapper {
|
||||
.tags-view-item {
|
||||
|
@ -1,15 +1,15 @@
|
||||
import router from "./router";
|
||||
import {ElMessage} from "element-plus";
|
||||
import { ElMessage } from "element-plus";
|
||||
import NProgress from "nprogress";
|
||||
import "nprogress/nprogress.css";
|
||||
import {getToken} from "@/utils/auth";
|
||||
import {isHttp} from "@/utils/validate";
|
||||
import {isRelogin} from "@/utils/request";
|
||||
import { getToken } from "@/utils/auth";
|
||||
import { isHttp } from "@/utils/validate";
|
||||
import { isRelogin } from "@/utils/request";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
import useSettingsStore from "@/store/modules/settings";
|
||||
import usePermissionStore from "@/store/modules/permission";
|
||||
|
||||
NProgress.configure({showSpinner: false});
|
||||
NProgress.configure({ showSpinner: false });
|
||||
|
||||
const whiteList = [
|
||||
"/login",
|
||||
@ -40,7 +40,7 @@ router.beforeEach((to, from, next) => {
|
||||
to.meta.title && useSettingsStore().setTitle(to.meta.title);
|
||||
/* has token*/
|
||||
if (to.path === "/login") {
|
||||
next({path: "/"});
|
||||
next({ path: "/" });
|
||||
NProgress.done();
|
||||
} else {
|
||||
if (useUserStore().roles.length === 0) {
|
||||
@ -61,7 +61,7 @@ router.beforeEach((to, from, next) => {
|
||||
router.addRoute(route); // 动态添加可访问路由表
|
||||
}
|
||||
});
|
||||
next({...to, replace: true}); // hack方法 确保addRoutes已完成
|
||||
next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
@ -70,7 +70,7 @@ router.beforeEach((to, from, next) => {
|
||||
.logOut()
|
||||
.then(() => {
|
||||
// ElMessage.error(err);
|
||||
next({path: "/"});
|
||||
next({ path: "/" });
|
||||
});
|
||||
});
|
||||
} else {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {createRouter, createWebHistory} from "vue-router";
|
||||
import { createRouter, createWebHistory } from "vue-router";
|
||||
/* Layout */
|
||||
import Layout from "@/layout";
|
||||
import basicInfo from "../views/admin/enterprise/account/basicInfo.vue";
|
||||
@ -25,7 +25,7 @@ import i18n from "@/i18n";
|
||||
activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
|
||||
}
|
||||
*/
|
||||
const {t} = i18n.global;
|
||||
const { t } = i18n.global;
|
||||
// 公共路由
|
||||
export const constantRoutes = [
|
||||
{
|
||||
@ -200,14 +200,14 @@ export const constantRoutes = [
|
||||
},
|
||||
{
|
||||
path: "news",
|
||||
name: 'news-list',
|
||||
name: "news-list",
|
||||
component: () => import("../views/website/home/index.vue"),
|
||||
},
|
||||
{
|
||||
path: "news/detail/:id",
|
||||
name: 'news',
|
||||
component: () => import("@/views/website/news/detail.vue")
|
||||
}
|
||||
name: "news",
|
||||
component: () => import("@/views/website/news/detail.vue"),
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@ -251,37 +251,37 @@ export const constantRoutes = [
|
||||
path: "index",
|
||||
component: () => import("@/views/identity/index"),
|
||||
name: "index",
|
||||
meta: {title: "身份选择"},
|
||||
meta: { title: "身份选择" },
|
||||
},
|
||||
{
|
||||
path: "enterprise",
|
||||
component: () => import("@/views/identity/enterprise"),
|
||||
name: "enterprise",
|
||||
meta: {title: "企业入驻"},
|
||||
meta: { title: "企业入驻" },
|
||||
},
|
||||
{
|
||||
path: "expert",
|
||||
component: () => import("@/views/identity/expert"),
|
||||
name: "expert",
|
||||
meta: {title: "专家入驻"},
|
||||
meta: { title: "专家入驻" },
|
||||
},
|
||||
{
|
||||
path: "research",
|
||||
component: () => import("@/views/identity/research"),
|
||||
name: "research",
|
||||
meta: {title: "研究机构入驻"},
|
||||
meta: { title: "研究机构入驻" },
|
||||
},
|
||||
{
|
||||
path: "laboratory",
|
||||
component: () => import("@/views/identity/laboratory"),
|
||||
name: "laboratory",
|
||||
meta: {title: "实验室入驻"},
|
||||
meta: { title: "实验室入驻" },
|
||||
},
|
||||
{
|
||||
path: "agent",
|
||||
component: () => import("@/views/identity/agent"),
|
||||
name: "agent",
|
||||
meta: {title: "科技经纪人入驻"},
|
||||
meta: { title: "科技经纪人入驻" },
|
||||
},
|
||||
],
|
||||
}, //TODO:
|
||||
@ -309,7 +309,7 @@ export const constantRoutes = [
|
||||
path: "profile",
|
||||
component: () => import("@/views/system/user/profile/index"),
|
||||
name: "Profile",
|
||||
meta: {title: "个人中心", icon: "user"},
|
||||
meta: { title: "个人中心", icon: "user" },
|
||||
},
|
||||
],
|
||||
},
|
||||
@ -1351,7 +1351,7 @@ const router = createRouter({
|
||||
if (savedPosition) {
|
||||
return savedPosition;
|
||||
} else {
|
||||
return {top: 0};
|
||||
return { top: 0 };
|
||||
}
|
||||
},
|
||||
});
|
||||
|
@ -13,7 +13,7 @@ const useTagsViewStore = defineStore("tags-view", {
|
||||
this.visitedViews.push(
|
||||
Object.assign({}, view, {
|
||||
title: view.meta.title || "no-name",
|
||||
})
|
||||
}),
|
||||
);
|
||||
},
|
||||
addCachedView(view) {
|
||||
|
@ -19,7 +19,7 @@ export const getCity = async (provinceCode, cityCode, areaCode) => {
|
||||
}),
|
||||
]);
|
||||
const provinceStr = resps[0].data.find(
|
||||
(el) => el.provinceCode == provinceCode
|
||||
(el) => el.provinceCode == provinceCode,
|
||||
).provinceName;
|
||||
// console.log(provinceStr);
|
||||
const cityStr = resps[1].data.find((el) => el.cityCode == cityCode).cityName;
|
||||
|
@ -124,7 +124,7 @@ export function param(json) {
|
||||
Object.keys(json).map((key) => {
|
||||
if (json[key] === undefined) return "";
|
||||
return encodeURIComponent(key) + "=" + encodeURIComponent(json[key]);
|
||||
})
|
||||
}),
|
||||
).join("&");
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ export function checkPermi(value) {
|
||||
return true;
|
||||
} else {
|
||||
console.error(
|
||||
`need roles! Like checkPermi="['system:user:add','system:user:edit']"`
|
||||
`need roles! Like checkPermi="['system:user:add','system:user:edit']"`,
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ service.interceptors.request.use(
|
||||
(error) => {
|
||||
console.log(error);
|
||||
Promise.reject(error);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
// 响应拦截器
|
||||
@ -115,7 +115,7 @@ service.interceptors.response.use(
|
||||
confirmButtonText: t("tips.reLogin"),
|
||||
cancelButtonText: t("common.cancel"),
|
||||
type: "warning",
|
||||
}
|
||||
},
|
||||
)
|
||||
.then(() => {
|
||||
isRelogin.show = false;
|
||||
@ -161,7 +161,7 @@ service.interceptors.response.use(
|
||||
duration: 5 * 1000,
|
||||
});
|
||||
return Promise.reject(error);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
// 通用下载方法
|
||||
|
@ -4,13 +4,13 @@ export function handleThemeStyle(theme) {
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
document.documentElement.style.setProperty(
|
||||
`--el-color-primary-light-${i}`,
|
||||
`${getLightColor(theme, i / 10)}`
|
||||
`${getLightColor(theme, i / 10)}`,
|
||||
);
|
||||
}
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
document.documentElement.style.setProperty(
|
||||
`--el-color-primary-dark-${i}`,
|
||||
`${getDarkColor(theme, i / 10)}`
|
||||
`${getDarkColor(theme, i / 10)}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", {
|
||||
type: t("admin.form.order"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -51,7 +51,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.company"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -63,7 +63,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", {
|
||||
type: t("admin.form.companyTaxNumber"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -74,7 +74,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", {
|
||||
type: t("admin.form.email"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -170,7 +170,7 @@ const submit = () => {
|
||||
ElMessage.success(
|
||||
t("admin.common.success", {
|
||||
action: t("identity.entrance.apply"),
|
||||
})
|
||||
}),
|
||||
);
|
||||
getList();
|
||||
});
|
||||
|
@ -35,7 +35,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", {
|
||||
type: t("admin.common.company"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -109,7 +109,7 @@ function handleDelete(id) {
|
||||
action: t("admin.common.delete"),
|
||||
number: id,
|
||||
type: t("admin.common.company"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(() => {
|
||||
return deleteBrokerEnterprise(id);
|
||||
@ -222,13 +222,13 @@ getList();
|
||||
})
|
||||
}}
|
||||
</el-button>
|
||||
<!-- <el-button link type="text">-->
|
||||
<!-- {{-->
|
||||
<!-- t("admin.table.managementOf", {-->
|
||||
<!-- type: t("admin.common.achievement"),-->
|
||||
<!-- })-->
|
||||
<!-- }}-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button link type="text">-->
|
||||
<!-- {{-->
|
||||
<!-- t("admin.table.managementOf", {-->
|
||||
<!-- type: t("admin.common.achievement"),-->
|
||||
<!-- })-->
|
||||
<!-- }}-->
|
||||
<!-- </el-button>-->
|
||||
<el-button link type="text" @click="handleDelete(row.id)">
|
||||
{{ t("admin.common.delete") }}
|
||||
</el-button>
|
||||
|
@ -86,7 +86,7 @@
|
||||
:autosize="{ minRows: 6, maxRows: 6 }"
|
||||
:placeholder="
|
||||
t(
|
||||
'webSearch.pleaseEnterTheContentOfTheTechnicalRequirementsAndTheDetailedTechnicalIndicators'
|
||||
'webSearch.pleaseEnterTheContentOfTheTechnicalRequirementsAndTheDetailedTechnicalIndicators',
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
@ -279,7 +279,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.name", { type: t("admin.common.demand") }),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -291,7 +291,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.demandDescription"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "change",
|
||||
},
|
||||
@ -303,7 +303,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.demandContact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -315,7 +315,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.contactPhone"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -351,7 +351,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"请选择截止时间"*/
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", { type: t("admin.table.deadline") })
|
||||
t("admin.form.pleaseSelect", { type: t("admin.table.deadline") }),
|
||||
),
|
||||
trigger: ["change", "blur"],
|
||||
},
|
||||
@ -363,7 +363,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.contactPhone"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
|
@ -1,11 +1,11 @@
|
||||
<script setup>
|
||||
import {reactive, ref, toRefs} from "vue";
|
||||
import { reactive, ref, toRefs } from "vue";
|
||||
import dayjs from "dayjs";
|
||||
import {useRoute, useRouter} from "vue-router";
|
||||
import {technologyDemandList} from "@/api/admin/agent/service/technology-demand";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { technologyDemandList } from "@/api/admin/agent/service/technology-demand";
|
||||
import { useI18n } from "vue-i18n";
|
||||
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const dataList = ref([]);
|
||||
@ -21,7 +21,7 @@ const data = reactive({
|
||||
enterpriseId: null,
|
||||
},
|
||||
});
|
||||
const {queryParams} = toRefs(data);
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
@ -50,8 +50,8 @@ const handleDetail = (id) => {
|
||||
router.push({
|
||||
path: "/admin/service/technology-demand-release",
|
||||
query: {
|
||||
id
|
||||
}
|
||||
id,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -54,7 +54,7 @@ const getUpdateStatus = async (demandId) => {
|
||||
});
|
||||
updateStatusList.value = resp.data.sort((a, b) => a.sort - b.sort);
|
||||
const reverseIndex = updateStatusList.value.findLastIndex(
|
||||
(item) => item.status === "1"
|
||||
(item) => item.status === "1",
|
||||
);
|
||||
active.value = reverseIndex === -1 ? 0 : reverseIndex;
|
||||
};
|
||||
|
@ -45,7 +45,7 @@
|
||||
:autosize="{ minRows: 6, maxRows: 8 }"
|
||||
:placeholder="
|
||||
t(
|
||||
'webSearch.pleaseEnterTheContentOfTheTechnicalRequirementsAndTheDetailedTechnicalIndicators'
|
||||
'webSearch.pleaseEnterTheContentOfTheTechnicalRequirementsAndTheDetailedTechnicalIndicators',
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
|
@ -35,7 +35,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.company"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
|
@ -73,7 +73,7 @@
|
||||
t(
|
||||
`dict.${
|
||||
orderTypeDict.find((item) => item.value === row.orderType).i18n
|
||||
}`
|
||||
}`,
|
||||
)
|
||||
}}
|
||||
</template>
|
||||
@ -309,7 +309,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.company"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -321,7 +321,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.companyTaxNumber"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -340,7 +340,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.email"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -360,7 +360,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.address"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -372,7 +372,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.contact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -384,7 +384,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.contactPhone"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -493,7 +493,7 @@ const handleDelete = (id) => {
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.form.order"),
|
||||
number: orderIds,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await deleteCasDealLog(id);
|
||||
|
@ -198,7 +198,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.demand"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -210,7 +210,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.demandDescription"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -222,7 +222,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.demandContact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -234,7 +234,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.contactPhone"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -251,7 +251,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"手机号不能为空"*/
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.mobile") })
|
||||
t("admin.validation.required", { type: t("admin.form.mobile") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
|
@ -72,7 +72,7 @@
|
||||
:autosize="{ minRows: 6, maxRows: 8 }"
|
||||
:placeholder="
|
||||
t(
|
||||
'webSearch.pleaseEnterTheContentOfTheTechnicalRequirementsAndTheDetailedTechnicalIndicators'
|
||||
'webSearch.pleaseEnterTheContentOfTheTechnicalRequirementsAndTheDetailedTechnicalIndicators',
|
||||
)
|
||||
"
|
||||
></el-input>
|
||||
@ -236,29 +236,30 @@
|
||||
</template>
|
||||
<script setup>
|
||||
// import { expert } from "@/api/identity/index";
|
||||
import {insertTechnologyDemand} from "@/api/admin/enterprise";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import {useRoute, useRouter} from "vue-router";
|
||||
import { insertTechnologyDemand } from "@/api/admin/enterprise";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import FieldOptions from "@/views/components/FieldOptions";
|
||||
import InputBoxAdd from "@/views/components/InputBoxAdd";
|
||||
import {
|
||||
computed,
|
||||
getCurrentInstance, onActivated,
|
||||
getCurrentInstance,
|
||||
onActivated,
|
||||
onMounted,
|
||||
reactive,
|
||||
ref,
|
||||
toRefs,
|
||||
} from "vue";
|
||||
import {ElMessage} from "element-plus";
|
||||
import {updateCount} from "@/api/admin/count";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { updateCount } from "@/api/admin/count";
|
||||
import {
|
||||
getTechnologyDemand,
|
||||
updateTechnologyDemand,
|
||||
} from "@/api/admin/enterprise/demand";
|
||||
import tab from "@/plugins/tab";
|
||||
import {countryOptions} from "@/utils/parameter";
|
||||
import { countryOptions } from "@/utils/parameter";
|
||||
|
||||
const {t, locale} = useI18n();
|
||||
const { t, locale } = useI18n();
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const data = reactive({
|
||||
@ -280,7 +281,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.demand"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -292,7 +293,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.demandDescription"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "change",
|
||||
},
|
||||
@ -304,7 +305,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.demandContact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -316,7 +317,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.demandContact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -332,7 +333,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webContact.demandContact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -341,7 +342,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", {type: t("webContact.demandType")})
|
||||
t("admin.form.pleaseSelect", { type: t("webContact.demandType") }),
|
||||
),
|
||||
trigger: "change",
|
||||
},
|
||||
@ -350,7 +351,9 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {type: t("webContact.demandBudget")})
|
||||
t("admin.validation.required", {
|
||||
type: t("webContact.demandBudget"),
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -359,7 +362,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", {type: t("admin.table.deadline")})
|
||||
t("admin.form.pleaseSelect", { type: t("admin.table.deadline") }),
|
||||
),
|
||||
trigger: ["change", "blur"],
|
||||
},
|
||||
@ -370,7 +373,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.demandSubmitterPhone"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -378,12 +381,11 @@ const data = reactive({
|
||||
},
|
||||
});
|
||||
|
||||
const {queryParams, form, rules} = toRefs(data);
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
const {proxy} = getCurrentInstance();
|
||||
const { proxy } = getCurrentInstance();
|
||||
const labelWidth = 160;
|
||||
|
||||
|
||||
const formRef = ref(null);
|
||||
const fieldFormRef = ref(null);
|
||||
const directionsFormRef = ref(null);
|
||||
@ -417,7 +419,7 @@ const submitForm = async (status) => {
|
||||
|
||||
// 返回技术需求列表
|
||||
const backToList = () => {
|
||||
tab.closeOpenPage({path: "/demand/technology"});
|
||||
tab.closeOpenPage({ path: "/demand/technology" });
|
||||
};
|
||||
|
||||
onActivated(() => {
|
||||
@ -430,7 +432,7 @@ onActivated(() => {
|
||||
}),
|
||||
});
|
||||
tab.updatePage(obj);
|
||||
getTechnologyDemand({id: route.query.id}).then((resp) => {
|
||||
getTechnologyDemand({ id: route.query.id }).then((resp) => {
|
||||
form.value = resp.data;
|
||||
if (!form.value.wants) {
|
||||
form.value.wants = resp.data.want?.split(",") ?? [];
|
||||
@ -445,7 +447,6 @@ onActivated(() => {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
:deep(.cooperation-mode) {
|
||||
|
@ -129,7 +129,7 @@ watch(
|
||||
},
|
||||
});
|
||||
},
|
||||
{ immediate: true }
|
||||
{ immediate: true },
|
||||
);
|
||||
const data = reactive({
|
||||
queryParams: {
|
||||
|
@ -173,7 +173,7 @@ function handleDelete(id) {
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.form.order"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return demandDelete(postIds);
|
||||
@ -197,7 +197,7 @@ const complete = (id) => {
|
||||
action: t("common.finish"),
|
||||
type: t("admin.common.item"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await updateDemand({ id, status: 4 });
|
||||
|
@ -151,14 +151,14 @@ import {
|
||||
technologyDemandList,
|
||||
updateTechnologyDemand,
|
||||
} from "@/api/admin/enterprise/demand";
|
||||
import {ElMessage} from "element-plus";
|
||||
import { ElMessage } from "element-plus";
|
||||
import modal from "@/plugins/modal";
|
||||
import {useRouter} from "vue-router";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import {getCurrentInstance, reactive, ref, toRefs} from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
|
||||
|
||||
const {t} = useI18n();
|
||||
const {proxy} = getCurrentInstance();
|
||||
const { t } = useI18n();
|
||||
const { proxy } = getCurrentInstance();
|
||||
const router = useRouter();
|
||||
|
||||
const dataList = ref([]); // 企业技术需求列表
|
||||
@ -173,7 +173,7 @@ const data = reactive({
|
||||
},
|
||||
});
|
||||
|
||||
const {queryParams, form, rules} = toRefs(data);
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
@ -198,7 +198,7 @@ function handleDelete(id) {
|
||||
action: t("admin.common.delete"),
|
||||
number: id,
|
||||
type: t("admin.common.demand"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(() => {
|
||||
console.log("delete");
|
||||
@ -214,8 +214,8 @@ function handleDelete(id) {
|
||||
}
|
||||
|
||||
const handleDetail = (id) => {
|
||||
router.push(`/demand/releaseTechnology?id=${id}`)
|
||||
}
|
||||
router.push(`/demand/releaseTechnology?id=${id}`);
|
||||
};
|
||||
|
||||
function handleShelf(row) {
|
||||
let text =
|
||||
@ -227,18 +227,17 @@ function handleShelf(row) {
|
||||
action: text,
|
||||
number: row.id,
|
||||
type: t("admin.common.demand"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
let status = row.shelf_status == 1 ? 2 : 1;
|
||||
return achievementShelf({id: row.id, status});
|
||||
return achievementShelf({ id: row.id, status });
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
ElMessage.success(t("admin.common.success", {action: text}));
|
||||
ElMessage.success(t("admin.common.success", { action: text }));
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
function handleResults(row) {
|
||||
@ -258,19 +257,18 @@ const complete = (id) => {
|
||||
action: t("common.finish"),
|
||||
type: t("admin.common.item"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await updateTechnologyDemand({id, status: 4});
|
||||
await updateTechnologyDemand({ id, status: 4 });
|
||||
getList();
|
||||
ElMessage.success(
|
||||
t("admin.common.success", {
|
||||
action: t("common.finish"),
|
||||
})
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
.catch(() => {});
|
||||
};
|
||||
const cancelPub = (id) => {
|
||||
modal
|
||||
@ -280,17 +278,16 @@ const cancelPub = (id) => {
|
||||
action: t("admin.table.cancelPublish"),
|
||||
number: id,
|
||||
type: t("admin.common.item"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await updateTechnologyDemand({id, status: 3});
|
||||
await updateTechnologyDemand({ id, status: 3 });
|
||||
getList();
|
||||
ElMessage.success(
|
||||
t("admin.common.success", {action: t("admin.table.cancelPublish")})
|
||||
t("admin.common.success", { action: t("admin.table.cancelPublish") }),
|
||||
);
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
.catch(() => {});
|
||||
};
|
||||
getList();
|
||||
</script>
|
||||
|
@ -30,7 +30,7 @@
|
||||
</el-radio-group>
|
||||
|
||||
<el-table v-loading="loading" :data="dataList" style="margin-top: 20px">
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id"/>
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
|
||||
<el-table-column
|
||||
:label="t('admin.form.name', { type: t('admin.form.product') })"
|
||||
prop="title"
|
||||
@ -136,13 +136,13 @@ import {
|
||||
getEnterpriseProduct,
|
||||
updateEnterpriseProduct,
|
||||
} from "@/api/admin/enterprise/product";
|
||||
import {ElMessage} from "element-plus";
|
||||
import { ElMessage } from "element-plus";
|
||||
import modal from "@/plugins/modal";
|
||||
import {onActivated, reactive, ref, toRefs} from "vue";
|
||||
import {useRouter} from "vue-router";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import { onActivated, reactive, ref, toRefs } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useI18n } from "vue-i18n";
|
||||
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
const router = useRouter();
|
||||
const dataList = ref([]);
|
||||
const loading = ref(true);
|
||||
@ -157,7 +157,7 @@ const data = reactive({
|
||||
},
|
||||
});
|
||||
|
||||
const {queryParams} = toRefs(data);
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
@ -176,7 +176,7 @@ const handleDelete = (id) => {
|
||||
action: t("admin.common.delete"),
|
||||
number: id,
|
||||
type: t("admin.form.product"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await deleteEnterpriseProduct(id);
|
||||
@ -203,10 +203,10 @@ const releaseCancel = (id) => {
|
||||
action: t("admin.table.cancelPublish"),
|
||||
number: id,
|
||||
type: t("admin.form.product"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await updateEnterpriseProduct({id, status: 3});
|
||||
await updateEnterpriseProduct({ id, status: 3 });
|
||||
ElMessage.success(t("tips.cancelReleaseSuccess"));
|
||||
getList();
|
||||
})
|
||||
@ -225,32 +225,31 @@ const handleShelf = (row) => {
|
||||
action: text,
|
||||
number: row.id,
|
||||
type: t("admin.form.product"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
let status = row.shelfStatus == 1 ? 2 : 1;
|
||||
return updateEnterpriseProduct({id: row.id, shelfStatus: status});
|
||||
return updateEnterpriseProduct({ id: row.id, shelfStatus: status });
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
ElMessage.success(t("admin.common.success", {action: text}));
|
||||
ElMessage.success(t("admin.common.success", { action: text }));
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
.catch(() => {});
|
||||
};
|
||||
const handleResults = (row) => {
|
||||
router.push({path: "./results", query: {keyword: row.title}});
|
||||
router.push({ path: "./results", query: { keyword: row.title } });
|
||||
};
|
||||
const handleDetails = (id) => {
|
||||
router.push({
|
||||
path: "/extension/release",
|
||||
query: {
|
||||
id
|
||||
}
|
||||
})
|
||||
}
|
||||
id,
|
||||
},
|
||||
});
|
||||
};
|
||||
const checkEnterpriseInfo = (id) => {
|
||||
router.push({path: "./business"});
|
||||
router.push({ path: "./business" });
|
||||
};
|
||||
|
||||
onActivated(() => {
|
||||
|
@ -49,7 +49,7 @@
|
||||
|
||||
<!-- 表格数据 -->
|
||||
<el-table v-loading="loading" :data="dataList">
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id"/>
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
|
||||
<el-table-column
|
||||
:label="t('admin.form.name', { type: t('admin.common.activity') })"
|
||||
prop="title"
|
||||
@ -94,22 +94,28 @@
|
||||
</el-table-column>
|
||||
<el-table-column :label="t('common.status')" align="center" prop="status">
|
||||
<template #default="{ row }">
|
||||
<el-tag type="success" v-if="row.status == 1">{{
|
||||
t("common.show")
|
||||
}}
|
||||
<el-tag type="success" v-if="row.status == 1"
|
||||
>{{ t("common.show") }}
|
||||
</el-tag>
|
||||
<el-tag type="danger" v-else-if="row.status == 2">{{
|
||||
t("common.hide")
|
||||
}}
|
||||
<el-tag type="danger" v-else-if="row.status == 2"
|
||||
>{{ t("common.hide") }}
|
||||
</el-tag>
|
||||
<el-tag type="info" v-else>{{ t("common.unknown") }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="false" :label="t('admin.common.operation')" align="center" prop="status">
|
||||
<el-table-column
|
||||
v-if="false"
|
||||
:label="t('admin.common.operation')"
|
||||
align="center"
|
||||
prop="status"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-button type="text" icon="view" @click="handleDetail(row.id)" size="small">{{
|
||||
t("common.viewDetails")
|
||||
}}
|
||||
<el-button
|
||||
type="text"
|
||||
icon="view"
|
||||
@click="handleDetail(row.id)"
|
||||
size="small"
|
||||
>{{ t("common.viewDetails") }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -123,13 +129,18 @@
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<el-dialog title="活动详情" v-model="showDialog" width="55%" destroy-on-close>
|
||||
<el-dialog
|
||||
title="活动详情"
|
||||
v-model="showDialog"
|
||||
width="55%"
|
||||
destroy-on-close
|
||||
>
|
||||
<el-form ref="formRef" :model="form" label-width="120px">
|
||||
<el-form-item label="活动名称:" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入活动名称"/>
|
||||
<el-input v-model="form.title" placeholder="请输入活动名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人:" prop="contact">
|
||||
<el-input v-model="form.contact" placeholder="请输入联系人"/>
|
||||
<el-input v-model="form.contact" placeholder="请输入联系人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码:" prop="contactMobile">
|
||||
<el-input
|
||||
@ -166,14 +177,8 @@
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 国家-->
|
||||
<el-form-item
|
||||
label="国家"
|
||||
prop="country"
|
||||
>
|
||||
<el-select
|
||||
v-model="form.country"
|
||||
placeholder="请选择国家"
|
||||
>
|
||||
<el-form-item label="国家" prop="country">
|
||||
<el-select v-model="form.country" placeholder="请选择国家">
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option.value"
|
||||
@ -243,9 +248,9 @@
|
||||
</el-row>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="详细地址:" prop="address">
|
||||
<el-input v-model="form.address" placeholder="请输入详细地址"/>
|
||||
<el-input v-model="form.address" placeholder="请输入详细地址" />
|
||||
</el-form-item>
|
||||
<field-options v-model="form" ref="fieldOptionsRef"/>
|
||||
<field-options v-model="form" ref="fieldOptionsRef" />
|
||||
|
||||
<!-- <el-form-item label="活动分类:" required>
|
||||
<el-row type="flex" justify="space-between">
|
||||
@ -318,7 +323,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="宣传图:" prop="image">
|
||||
<ImageUpload v-model="form.image" :isShowTip="false" :limit="1"/>
|
||||
<ImageUpload v-model="form.image" :isShowTip="false" :limit="1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="活动简介:" prop="description">
|
||||
<el-input
|
||||
@ -352,19 +357,19 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {activityInfo, activitysList} from "@/api/admin/expert";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import {reactive, ref, toRefs} from "vue";
|
||||
import {parseTime} from "@/utils/ruoyi";
|
||||
import FieldOptions from "@/views/components/FieldOptions"
|
||||
import { activityInfo, activitysList } from "@/api/admin/expert";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { reactive, ref, toRefs } from "vue";
|
||||
import { parseTime } from "@/utils/ruoyi";
|
||||
import FieldOptions from "@/views/components/FieldOptions";
|
||||
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
const dataList = ref([]);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const total = ref(0);
|
||||
const queryRef = ref();
|
||||
const showDialog = ref(false)
|
||||
const showDialog = ref(false);
|
||||
const data = reactive({
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -373,10 +378,10 @@ const data = reactive({
|
||||
title: undefined,
|
||||
status: undefined,
|
||||
},
|
||||
form: {}
|
||||
form: {},
|
||||
});
|
||||
|
||||
const {queryParams, form} = toRefs(data);
|
||||
const { queryParams, form } = toRefs(data);
|
||||
|
||||
/** 查询数据列表 */
|
||||
const getList = async () => {
|
||||
@ -402,11 +407,11 @@ function resetQuery() {
|
||||
}
|
||||
|
||||
const handleDetail = (id) => {
|
||||
activityInfo(id).then(resp => {
|
||||
form.value = resp.data
|
||||
showDialog.value = true
|
||||
})
|
||||
}
|
||||
activityInfo(id).then((resp) => {
|
||||
form.value = resp.data;
|
||||
showDialog.value = true;
|
||||
});
|
||||
};
|
||||
|
||||
getList();
|
||||
</script>
|
||||
|
@ -323,7 +323,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.achievement"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -334,7 +334,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", {
|
||||
type: t("admin.form.maturity"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "change",
|
||||
},
|
||||
@ -343,7 +343,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", { type: t("admin.form.country") })
|
||||
t("admin.form.placeholder", { type: t("admin.form.country") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -355,7 +355,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", {
|
||||
type: t("admin.form.leadership"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "change",
|
||||
},
|
||||
@ -368,7 +368,7 @@ const data = reactive({
|
||||
type: t("admin.form.introduction", {
|
||||
type: t("admin.common.achievement"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -385,7 +385,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", { type: t("webSearch.unit") })
|
||||
t("admin.form.placeholder", { type: t("webSearch.unit") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
|
@ -220,7 +220,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.common.company") })
|
||||
t("admin.validation.required", { type: t("admin.common.company") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -232,7 +232,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.table.relatedPaper"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
@ -245,7 +245,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.table.relatedPatent"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
@ -327,7 +327,7 @@ function handleDelete(id) {
|
||||
type: t("admin.common.item"),
|
||||
number: id,
|
||||
action: t("admin.common.delete"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteExpertCooperateEnterpriseByIds(id);
|
||||
|
@ -189,7 +189,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("webSearch.demandType") })
|
||||
t("admin.validation.required", { type: t("webSearch.demandType") }),
|
||||
),
|
||||
},
|
||||
],
|
||||
@ -202,7 +202,7 @@ const data = reactive({
|
||||
type: t("webSearch.name", {
|
||||
type: t("admin.common.demand"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -215,7 +215,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.demandDescription"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
},
|
||||
],
|
||||
@ -226,7 +226,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.demandContact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -235,7 +235,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
/*"联系人手机号不能为空"*/ message: computed(() =>
|
||||
t("admin.form.contactPhone")
|
||||
t("admin.form.contactPhone"),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -254,7 +254,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.demandContact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -264,7 +264,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"需求联系人手机号不能为空"*/
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.mobile") })
|
||||
t("admin.validation.required", { type: t("admin.form.mobile") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
|
@ -79,7 +79,7 @@
|
||||
>
|
||||
{{ t("admin.common.delete") }}
|
||||
</el-button>
|
||||
<!-- TODO:-->
|
||||
<!-- TODO:-->
|
||||
<el-button
|
||||
v-if="queryParams.type == 1 && false"
|
||||
icon="Close"
|
||||
@ -174,7 +174,7 @@ function handleDelete(id) {
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.form.order"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return demandDelete(postIds);
|
||||
@ -199,7 +199,7 @@ const complete = (id) => {
|
||||
action: t("common.finish"),
|
||||
type: t("admin.common.item"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await updateDemand({ id, status: 4 });
|
||||
|
@ -212,7 +212,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.company"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -224,7 +224,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.cooperationContent"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -262,7 +262,7 @@ function handleDelete(id) {
|
||||
type: t("admin.common.item"),
|
||||
number: id,
|
||||
action: t("admin.common.delete"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await deleteExpertWantEnterpriseByIds({ ids: [id] });
|
||||
|
@ -30,14 +30,14 @@
|
||||
</el-radio-group>
|
||||
|
||||
<el-table v-loading="loading" :data="dataList" style="margin-top: 20px">
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id"/>
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
|
||||
<el-table-column
|
||||
:label="t('admin.form.name', { type: t('admin.common.achievement') })"
|
||||
prop="title"
|
||||
/>
|
||||
<el-table-column :label="t('admin.form.keywords')" prop="keyword"/>
|
||||
<el-table-column :label="t('admin.form.keywords')" prop="keyword" />
|
||||
<!-- <el-zh-column label="浏览量" prop="visitCount" /> -->
|
||||
<el-table-column :label="t('admin.form.industry')" prop="industryStr"/>
|
||||
<el-table-column :label="t('admin.form.industry')" prop="industryStr" />
|
||||
<el-table-column
|
||||
:label="t('admin.table.publishTime')"
|
||||
prop="createTime"
|
||||
@ -70,18 +70,18 @@
|
||||
@click="handleDetails(row.id)"
|
||||
>{{ t("common.details") }}
|
||||
</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- v-if="queryParams.status == 1"-->
|
||||
<!-- :icon="row.shelfStatus == 1 ? `Download` : `Upload`"-->
|
||||
<!-- size="small"-->
|
||||
<!-- type="text"-->
|
||||
<!-- @click="handleShelf(row)"-->
|
||||
<!-- >{{-->
|
||||
<!-- row.shelfStatus == 1-->
|
||||
<!-- ? t("admin.table.putOn")-->
|
||||
<!-- : t("admin.table.putOff")-->
|
||||
<!-- }}-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- v-if="queryParams.status == 1"-->
|
||||
<!-- :icon="row.shelfStatus == 1 ? `Download` : `Upload`"-->
|
||||
<!-- size="small"-->
|
||||
<!-- type="text"-->
|
||||
<!-- @click="handleShelf(row)"-->
|
||||
<!-- >{{-->
|
||||
<!-- row.shelfStatus == 1-->
|
||||
<!-- ? t("admin.table.putOn")-->
|
||||
<!-- : t("admin.table.putOff")-->
|
||||
<!-- }}-->
|
||||
<!-- </el-button>-->
|
||||
<el-button
|
||||
v-if="queryParams.status != 0"
|
||||
icon="Delete"
|
||||
@ -127,18 +127,18 @@ import {
|
||||
expertAchievementList,
|
||||
updateExpertAchievement,
|
||||
} from "@/api/admin/expert/achievement";
|
||||
import {ElMessage} from "element-plus";
|
||||
import { ElMessage } from "element-plus";
|
||||
import modal from "@/plugins/modal"; // import { update } from "lodash-unified";
|
||||
import {useRouter} from "vue-router";
|
||||
import {onActivated, reactive} from "vue";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import { useRouter } from "vue-router";
|
||||
import { onActivated, reactive } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const router = useRouter();
|
||||
const dataList = ref([]);
|
||||
const loading = ref(true);
|
||||
const total = ref(0);
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
const data = reactive({
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -147,7 +147,7 @@ const data = reactive({
|
||||
},
|
||||
});
|
||||
|
||||
const {queryParams} = toRefs(data);
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
@ -177,10 +177,10 @@ const handleDelete = (id) => {
|
||||
number: id,
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.common.achievement"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await deleteAchievementByIds({ids: [id]});
|
||||
await deleteAchievementByIds({ ids: [id] });
|
||||
getList();
|
||||
ElMessage.success(t("admin.common.deleteSuccess"));
|
||||
});
|
||||
@ -197,16 +197,16 @@ function handleShelf(row) {
|
||||
number: row.id,
|
||||
action: text,
|
||||
type: t("admin.common.achievement"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
const shelfStatus = row.shelfStatus == 1 ? 2 : 1;
|
||||
await updateExpertAchievement({id: row.id, shelfStatus});
|
||||
await updateExpertAchievement({ id: row.id, shelfStatus });
|
||||
getList();
|
||||
ElMessage.success(
|
||||
t("admin.common.success", {
|
||||
action: text,
|
||||
})
|
||||
}),
|
||||
);
|
||||
});
|
||||
}
|
||||
@ -220,10 +220,10 @@ const handleCancelPublish = (id) => {
|
||||
number: id,
|
||||
action: t("admin.table.cancelPublish"),
|
||||
type: t("admin.common.achievement"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await updateExpertAchievement({id, status: "3"});
|
||||
await updateExpertAchievement({ id, status: "3" });
|
||||
ElMessage.success(t("tips.cancelReleaseSuccess"));
|
||||
getList();
|
||||
});
|
||||
@ -231,15 +231,14 @@ const handleCancelPublish = (id) => {
|
||||
// handleQuery();
|
||||
};
|
||||
|
||||
|
||||
const handleDetails = (id) => {
|
||||
router.push({
|
||||
path: `/technology/release`,
|
||||
query: {
|
||||
id
|
||||
}
|
||||
})
|
||||
}
|
||||
id,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
function handleResults(row) {
|
||||
router.push({
|
||||
|
@ -202,7 +202,7 @@ function handleDelete(row) {
|
||||
type: t("admin.common.item"),
|
||||
number: row.id,
|
||||
action: t("admin.common.delete"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return delRole(roleIds);
|
||||
|
@ -234,7 +234,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"论文题目不能为空"*/
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.paperTitle") })
|
||||
t("admin.validation.required", { type: t("admin.form.paperTitle") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -246,7 +246,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.publication"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -256,7 +256,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"作者不能为空"*/
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.author") })
|
||||
t("admin.validation.required", { type: t("admin.form.author") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -268,7 +268,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.publishDate"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
@ -280,7 +280,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.summary"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -321,7 +321,7 @@ function handleDelete(id) {
|
||||
type: t("admin.common.item"),
|
||||
number: id,
|
||||
action: t("admin.common.delete"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await deleteCasPaper(id);
|
||||
|
@ -361,7 +361,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.applicant"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -373,7 +373,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.applicantAddress"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -385,7 +385,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.publicationNumber"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -397,7 +397,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.publicationDate"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -407,7 +407,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"发明人不能为空"*/
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.inventor") })
|
||||
t("admin.validation.required", { type: t("admin.form.inventor") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -421,7 +421,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.patent"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -433,7 +433,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.applicationNumber"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -445,7 +445,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.applicationDate"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -457,7 +457,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.patentType"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "change",
|
||||
},
|
||||
@ -469,7 +469,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.ipc"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -481,7 +481,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.pleaseSelect", {
|
||||
type: t("webSearch.patentStatus"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "change",
|
||||
},
|
||||
@ -491,7 +491,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"摘要不能为空"*/
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.summary") })
|
||||
t("admin.validation.required", { type: t("admin.form.summary") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -503,7 +503,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.sovereignItem"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -550,7 +550,7 @@ function handleDelete(id) {
|
||||
type: t("admin.common.patent"),
|
||||
action: t("admin.common.delete"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteCasPatentByIds(id);
|
||||
|
@ -353,7 +353,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.researchProject"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -365,7 +365,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.funding"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -377,7 +377,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.fundingSource"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -388,7 +388,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", {
|
||||
type: t("admin.table.startDate"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
@ -399,7 +399,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", {
|
||||
type: t("admin.table.endDate"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
@ -408,7 +408,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.projectType") })
|
||||
t("admin.validation.required", { type: t("admin.form.projectType") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -419,7 +419,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.topicLeader"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -430,7 +430,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.projectIntroduction"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -474,7 +474,7 @@ function handleShelf(row) {
|
||||
type: t("admin.common.researchProject"),
|
||||
action: text,
|
||||
number: row.id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(() => {
|
||||
const shelfStatus = row.shelfStatus == 1 ? 2 : 1;
|
||||
@ -485,7 +485,7 @@ function handleShelf(row) {
|
||||
ElMessage.success(
|
||||
t("admin.common.success", {
|
||||
action: text,
|
||||
})
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((err) => {
|
||||
@ -501,7 +501,7 @@ function handleDelete(id) {
|
||||
type: t("admin.common.researchProject"),
|
||||
action: t("admin.common.delete"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await deleteTechnologyProjectByIds({ ids: [id] });
|
||||
|
@ -163,7 +163,7 @@
|
||||
>{{ t("tips.downloadTemplate") }}
|
||||
</el-link>
|
||||
<br />
|
||||
<span>{{ t('tips.importTip') }}</span>
|
||||
<span>{{ t("tips.importTip") }}</span>
|
||||
<ol style="text-align: left">
|
||||
<li>{{ t("tips.keywordsImportTip") }}</li>
|
||||
<li>
|
||||
@ -282,7 +282,7 @@ function handleDelete(id) {
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.common.achievement"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteAchievements(id);
|
||||
@ -334,7 +334,7 @@ const handleFileSuccess = (response, file, fileList) => {
|
||||
response.msg +
|
||||
"</div>",
|
||||
t("tips.importResult"),
|
||||
{ dangerouslyUseHTMLString: true }
|
||||
{ dangerouslyUseHTMLString: true },
|
||||
);
|
||||
getList();
|
||||
};
|
||||
|
@ -105,13 +105,13 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="notBindExpertList">
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id"/>
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
:label="t('admin.form.name', { type: t('admin.common.expert') })"
|
||||
prop="name"
|
||||
/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile"/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile" />
|
||||
<el-table-column
|
||||
:label="t('admin.table.researchIndustry')"
|
||||
prop="industryStr"
|
||||
@ -150,13 +150,13 @@
|
||||
|
||||
<!-- 表格数据 -->
|
||||
<el-table v-loading="loading" :data="dataList">
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id"/>
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
:label="t('admin.form.name', { type: t('admin.common.expert') })"
|
||||
prop="name"
|
||||
/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile"/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile" />
|
||||
<el-table-column
|
||||
:label="t('admin.table.researchIndustry')"
|
||||
prop="industryStr"
|
||||
@ -266,9 +266,9 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {ElMessage, ElMessageBox} from "element-plus";
|
||||
import {useRouter} from "vue-router";
|
||||
import {reactive, ref, toRefs} from "vue";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { useRouter } from "vue-router";
|
||||
import { reactive, ref, toRefs } from "vue";
|
||||
import InputBoxAdd from "@/views/components/InputBoxAdd/index.vue";
|
||||
import {
|
||||
bindExpert,
|
||||
@ -277,12 +277,12 @@ import {
|
||||
selectNotBindLaboratory,
|
||||
} from "@/api/admin/laboratory/expert";
|
||||
import Pagination from "@/components/Pagination/index.vue";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import dayjs from "dayjs";
|
||||
import modal from "@/plugins/modal";
|
||||
|
||||
const router = useRouter();
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
const dataList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
@ -302,7 +302,7 @@ const data = reactive({
|
||||
rules: {},
|
||||
});
|
||||
|
||||
const {queryParams, form, rules} = toRefs(data);
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
const queryRef = ref();
|
||||
|
||||
@ -333,7 +333,7 @@ function resetQuery() {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
name: undefined,
|
||||
}
|
||||
};
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
@ -345,7 +345,7 @@ function handleDeleteBind(id) {
|
||||
action: t("admin.table.cancelRelation"),
|
||||
type: t("admin.common.expert"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteBindExpert(id);
|
||||
@ -355,7 +355,7 @@ function handleDeleteBind(id) {
|
||||
ElMessage.success(
|
||||
t("admin.common.success", {
|
||||
action: t("admin.table.cancelRelation"),
|
||||
})
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((err) => {
|
||||
@ -432,7 +432,7 @@ const submitBind = (id) => {
|
||||
action: t("admin.table.relation"),
|
||||
type: t("admin.common.expert"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return bindExpert(id);
|
||||
@ -443,7 +443,7 @@ const submitBind = (id) => {
|
||||
/*"关联成功"*/
|
||||
t("admin.common.success", {
|
||||
action: t("admin.table.relation"),
|
||||
})
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((err) => {
|
||||
|
@ -234,7 +234,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.name", { type: t("admin.common.equipment") }),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -245,7 +245,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.name", { type: t("admin.form.model") }),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -256,7 +256,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.achievementParameter"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -268,7 +268,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", {
|
||||
type: t("admin.form.buyDate"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
@ -309,7 +309,7 @@ function handleDelete(row) {
|
||||
number: row.deviceId,
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.common.equipment"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteEquipment([row.deviceId]);
|
||||
|
@ -207,7 +207,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.paperTitle") })
|
||||
t("admin.validation.required", { type: t("admin.form.paperTitle") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -217,7 +217,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"刊物不能为空"*/
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.publication") })
|
||||
t("admin.validation.required", { type: t("admin.form.publication") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -229,7 +229,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.author"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -241,7 +241,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", {
|
||||
type: t("admin.table.publishDate"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
@ -287,7 +287,7 @@ function handleDelete(id) {
|
||||
number: id,
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.common.paper"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deletePaper(id);
|
||||
|
@ -97,7 +97,7 @@ getList();
|
||||
t(
|
||||
`dict.${
|
||||
seeLogTypeDict.find((item) => item.value === row.type)?.i18n
|
||||
}`
|
||||
}`,
|
||||
)
|
||||
}}</span>
|
||||
</template>
|
||||
|
@ -333,7 +333,7 @@ function handleDelete(id) {
|
||||
number: id,
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.common.patent"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteLabPatentByIds(id);
|
||||
|
@ -8,14 +8,18 @@
|
||||
@submit.prevent
|
||||
>
|
||||
<el-form-item
|
||||
:label="t('admin.form.name', { type: t('admin.common.researchProject') })"
|
||||
:label="
|
||||
t('admin.form.name', { type: t('admin.common.researchProject') })
|
||||
"
|
||||
prop="name"
|
||||
>
|
||||
<el-input
|
||||
v-model="queryParams.name"
|
||||
clearable
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.common.researchProject') })
|
||||
t('admin.form.placeholder', {
|
||||
type: t('admin.common.researchProject'),
|
||||
})
|
||||
"
|
||||
size="small"
|
||||
style="width: 240px"
|
||||
@ -184,7 +188,7 @@ function handleDelete(id) {
|
||||
number: id,
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.common.researchProject"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteTechnologyProject(id);
|
||||
|
@ -164,7 +164,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.demand"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -176,7 +176,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.demandDescription"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -188,7 +188,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.demandContact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -200,7 +200,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.contactPhone"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -219,7 +219,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.mobile"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
|
@ -181,7 +181,7 @@ function handleDelete(id) {
|
||||
type: t("admin.common.patent"),
|
||||
action: t("admin.common.delete"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteLabPatentByIds(id);
|
||||
|
@ -91,7 +91,7 @@ getList();
|
||||
t(
|
||||
`dict.${
|
||||
seeLogTypeDict.find((item) => item.value === row.type)?.i18n
|
||||
}`
|
||||
}`,
|
||||
)
|
||||
}}</span>
|
||||
</template>
|
||||
|
@ -153,7 +153,7 @@
|
||||
</div>
|
||||
<div class="el-upload__tip text-center">
|
||||
<br />
|
||||
<span>{{ t('tips.importTip') }}</span>
|
||||
<span>{{ t("tips.importTip") }}</span>
|
||||
<ol style="text-align: left">
|
||||
<li>{{ t("tips.keywordsImportTip") }}</li>
|
||||
<li>
|
||||
@ -267,7 +267,7 @@ function handleDelete(id) {
|
||||
action: t("admin.common.delete"),
|
||||
type: t("admin.common.achievement"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteAchievements(id);
|
||||
@ -316,7 +316,7 @@ const handleFileSuccess = (response, file, fileList) => {
|
||||
response.msg +
|
||||
"</div>",
|
||||
t("tips.importResult"),
|
||||
{ dangerouslyUseHTMLString: true }
|
||||
{ dangerouslyUseHTMLString: true },
|
||||
);
|
||||
getList();
|
||||
};
|
||||
|
@ -38,7 +38,12 @@
|
||||
</el-form>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button icon="plus" size="small" type="primary" @click="handleAddBind">
|
||||
<el-button
|
||||
icon="plus"
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="handleAddBind"
|
||||
>
|
||||
{{ t("admin.table.relatedExperts") }}
|
||||
</el-button>
|
||||
</el-col>
|
||||
@ -97,13 +102,13 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="notBindExpertList">
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id"/>
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
:label="t('admin.form.name', { type: t('admin.common.expert') })"
|
||||
prop="name"
|
||||
/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile"/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile" />
|
||||
<el-table-column
|
||||
:label="t('admin.table.researchIndustry')"
|
||||
prop="industryStr"
|
||||
@ -142,13 +147,13 @@
|
||||
|
||||
<!-- 表格数据 -->
|
||||
<el-table v-loading="loading" :data="dataList">
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id"/>
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
:label="t('admin.form.name', { type: t('admin.common.expert') })"
|
||||
prop="name"
|
||||
/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile"/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile" />
|
||||
<el-table-column
|
||||
:label="t('admin.table.researchIndustry')"
|
||||
prop="industryStr"
|
||||
@ -253,18 +258,22 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {ElMessage} from "element-plus";
|
||||
import { ElMessage } from "element-plus";
|
||||
import modal from "@/plugins/modal";
|
||||
import {useRouter} from "vue-router";
|
||||
import {reactive, ref, toRefs} from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { reactive, ref, toRefs } from "vue";
|
||||
import InputBoxAdd from "@/views/components/InputBoxAdd/index.vue";
|
||||
import {deleteBindExpert, expertList, selectNotBindResearch, bindExpert} from "@/api/admin/research/expert";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import {
|
||||
deleteBindExpert,
|
||||
expertList,
|
||||
selectNotBindResearch,
|
||||
bindExpert,
|
||||
} from "@/api/admin/research/expert";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import dayjs from "dayjs";
|
||||
import Pagination from "@/components/Pagination/index.vue";
|
||||
|
||||
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
const router = useRouter();
|
||||
|
||||
const dataList = ref([]);
|
||||
@ -297,7 +306,7 @@ const data = reactive({
|
||||
rules: {},
|
||||
});
|
||||
|
||||
const {queryParams, form, rules} = toRefs(data);
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
const queryRef = ref();
|
||||
|
||||
@ -335,7 +344,7 @@ function handleDeleteBind(id) {
|
||||
type: t("admin.common.expert"),
|
||||
number: id,
|
||||
action: t("admin.table.cancelRelation"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteBindExpert(id);
|
||||
@ -444,7 +453,7 @@ const submitBind = (id) => {
|
||||
action: t("admin.table.relation"),
|
||||
type: t("admin.common.expert"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return bindExpert(id);
|
||||
@ -455,7 +464,7 @@ const submitBind = (id) => {
|
||||
/*"关联成功"*/
|
||||
t("admin.common.success", {
|
||||
action: t("admin.table.relation"),
|
||||
})
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((err) => {
|
||||
|
@ -44,9 +44,9 @@
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="handleAddBind"
|
||||
> {{ t('admin.table.relation') }}
|
||||
</el-button
|
||||
>
|
||||
{{ t("admin.table.relation") }}
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar
|
||||
v-model:showSearch="showSearch"
|
||||
@ -103,7 +103,7 @@
|
||||
<el-button size="small" type="text" @click="handleCancelBind(row)"
|
||||
>{{ t("admin.table.unbind") }}
|
||||
<template #icon>
|
||||
<svg-icon icon-class="broken_link"/>
|
||||
<svg-icon icon-class="broken_link" />
|
||||
</template>
|
||||
</el-button>
|
||||
</template>
|
||||
@ -195,11 +195,10 @@
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 关联未被关联的专家 -->
|
||||
<el-dialog
|
||||
v-model="showExpertDialog"
|
||||
:title="t('admin.table.relatedExperts')"
|
||||
:title="t('admin.table.relatedLabs')"
|
||||
@close="resetQuery"
|
||||
>
|
||||
<el-form
|
||||
@ -245,13 +244,13 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="notBindExpertList">
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id"/>
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
|
||||
<el-table-column
|
||||
:show-overflow-tooltip="true"
|
||||
:label="t('admin.form.name', { type: t('admin.common.expert') })"
|
||||
prop="name"
|
||||
/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile"/>
|
||||
<el-table-column :label="t('webContact.phone')" prop="mobile" />
|
||||
<el-table-column
|
||||
:label="t('admin.table.researchIndustry')"
|
||||
prop="industryStr"
|
||||
@ -291,9 +290,9 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {computed, reactive, ref, toRefs} from "vue";
|
||||
import {useRouter} from "vue-router";
|
||||
import {ElMessage} from "element-plus";
|
||||
import { computed, reactive, ref, toRefs } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { ElMessage } from "element-plus";
|
||||
import modal from "@/plugins/modal";
|
||||
import {
|
||||
deleteEquipment,
|
||||
@ -306,12 +305,17 @@ import {
|
||||
} from "@/api/admin/research/laboratory";
|
||||
import SvgIcon from "@/components/SvgIcon/index.vue";
|
||||
|
||||
import {useI18n} from "vue-i18n";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import dayjs from "dayjs";
|
||||
import {bindExpert, bindLaboratory, selectLabNotBindResearch, selectNotBindResearch} from "@/api/admin/research/expert";
|
||||
import {
|
||||
bindExpert,
|
||||
bindLaboratory,
|
||||
selectLabNotBindResearch,
|
||||
selectNotBindResearch,
|
||||
} from "@/api/admin/research/expert";
|
||||
import Pagination from "@/components/Pagination/index.vue";
|
||||
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
const router = useRouter();
|
||||
|
||||
const dataList = ref([]);
|
||||
@ -351,7 +355,7 @@ const data = reactive({
|
||||
type: t("admin.form.name", {
|
||||
type: t("admin.common.equipment"),
|
||||
}),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -363,7 +367,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", {
|
||||
type: t("admin.form.model"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -375,7 +379,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", {
|
||||
type: t("admin.form.achievementParameter"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -387,7 +391,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", {
|
||||
type: t("admin.form.purchaseTime"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
@ -395,7 +399,7 @@ const data = reactive({
|
||||
},
|
||||
});
|
||||
|
||||
const {queryParams, form, rules} = toRefs(data);
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询数据列表 */
|
||||
function getList() {
|
||||
@ -427,7 +431,7 @@ function handleDelete(row) {
|
||||
type: t("admin.common.item"),
|
||||
number: row.deviceId,
|
||||
action: t("admin.common.delete"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteEquipment([row.deviceId]);
|
||||
@ -436,8 +440,7 @@ function handleDelete(row) {
|
||||
getList();
|
||||
ElMessage.success(t("admin.common.deleteSuccess"));
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/** 重置新增的表单以及其他数据 */
|
||||
@ -508,7 +511,6 @@ function cancel() {
|
||||
reset();
|
||||
}
|
||||
|
||||
|
||||
const notBindExpertQueryRef = ref();
|
||||
|
||||
const getNotBindExpertList = () => {
|
||||
@ -546,7 +548,7 @@ const submitBind = (id) => {
|
||||
action: t("admin.table.relation"),
|
||||
type: t("admin.common.expert"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return bindLaboratory(id);
|
||||
@ -557,7 +559,7 @@ const submitBind = (id) => {
|
||||
/*"关联成功"*/
|
||||
t("admin.common.success", {
|
||||
action: t("admin.table.relation"),
|
||||
})
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((err) => {
|
||||
|
@ -208,7 +208,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.paperTitle") })
|
||||
t("admin.validation.required", { type: t("admin.form.paperTitle") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -220,7 +220,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.publication"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -230,7 +230,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"作者不能为空"*/
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.author") })
|
||||
t("admin.validation.required", { type: t("admin.form.author") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -242,7 +242,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.table.publishDate"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
@ -288,7 +288,7 @@ function handleDelete(id) {
|
||||
type: t("admin.common.paper"),
|
||||
number: id,
|
||||
action: t("admin.common.delete"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deletePaper(id);
|
||||
|
@ -163,7 +163,7 @@ function handleDelete(id) {
|
||||
type: t("admin.common.patent"),
|
||||
action: t("admin.common.delete"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteResearchPatentByIds(id);
|
||||
|
@ -8,14 +8,18 @@
|
||||
@submit.prevent
|
||||
>
|
||||
<el-form-item
|
||||
:label="t('admin.form.name', { type: t('admin.common.researchProject') })"
|
||||
:label="
|
||||
t('admin.form.name', { type: t('admin.common.researchProject') })
|
||||
"
|
||||
prop="title"
|
||||
>
|
||||
<el-input
|
||||
v-model="queryParams.title"
|
||||
clearable
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.common.researchProject') })
|
||||
t('admin.form.placeholder', {
|
||||
type: t('admin.common.researchProject'),
|
||||
})
|
||||
"
|
||||
size="small"
|
||||
style="width: 240px"
|
||||
@ -194,7 +198,7 @@ function handleDelete(id) {
|
||||
action: t("admin.common.delete"),
|
||||
number: id,
|
||||
type: t("admin.common.researchProject"),
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteTechnologyProject(id);
|
||||
|
@ -165,7 +165,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.name", { type: t("admin.common.demand") }),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -177,7 +177,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("webSearch.demandDescription"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -189,7 +189,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.demandContact"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -201,7 +201,7 @@ const data = reactive({
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", {
|
||||
type: t("admin.form.mobile"),
|
||||
})
|
||||
}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -218,7 +218,7 @@ const data = reactive({
|
||||
required: true,
|
||||
/*"手机号不能为空"*/
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.mobile") })
|
||||
t("admin.validation.required", { type: t("admin.form.mobile") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
|
@ -180,7 +180,7 @@ function handleDelete(id) {
|
||||
type: t("admin.common.patent"),
|
||||
action: t("admin.common.delete"),
|
||||
number: id,
|
||||
})
|
||||
}),
|
||||
)
|
||||
.then(function () {
|
||||
return deleteLabPatentByIds(id);
|
||||
|
@ -30,7 +30,10 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item :label="t('admin.form.email')" prop="email">
|
||||
<el-input :placeholder="t('input.inputEmail')" v-model="modelValue.email"></el-input>
|
||||
<el-input
|
||||
:placeholder="t('input.inputEmail')"
|
||||
v-model="modelValue.email"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -57,7 +60,7 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item :label="t('admin.form.workLocation')" prop="wordAddress">
|
||||
<el-input v-model="modelValue.wordAddress"/>
|
||||
<el-input v-model="modelValue.wordAddress" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -74,7 +77,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<field-options ref="researchsFormRef" v-model="modelValue"/>
|
||||
<field-options ref="researchsFormRef" v-model="modelValue" />
|
||||
|
||||
<InputBoxAdd
|
||||
ref="keywordsFormRef"
|
||||
@ -155,10 +158,10 @@
|
||||
<script setup>
|
||||
import InputBoxAdd from "../InputBoxAdd";
|
||||
import FieldOptions from "../FieldOptions";
|
||||
import {computed, reactive, ref} from "vue";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import { computed, reactive, ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
const formRef = ref();
|
||||
const researchsFormRef = ref();
|
||||
const keywordsFormRef = ref();
|
||||
@ -210,7 +213,7 @@ const rules = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", {type: t("admin.form.mobile")})
|
||||
t("admin.form.placeholder", { type: t("admin.form.mobile") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -224,10 +227,11 @@ const rules = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", {type: t("admin.form.email")})
|
||||
t("admin.form.placeholder", { type: t("admin.form.email") }),
|
||||
),
|
||||
trigger: "blur",
|
||||
},],
|
||||
},
|
||||
],
|
||||
idCard: [
|
||||
{
|
||||
required: true,
|
||||
@ -254,7 +258,7 @@ const rules = reactive({
|
||||
required: true,
|
||||
trigger: "change",
|
||||
message: computed(() => t("admin.validation.pleaseUpload")),
|
||||
}
|
||||
},
|
||||
],
|
||||
"idImage.0": [
|
||||
{
|
||||
|
@ -201,7 +201,7 @@ watch(
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
watch(
|
||||
@ -212,7 +212,7 @@ watch(
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
}
|
||||
},
|
||||
);
|
||||
getProvinceList();
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user