20251128修改前端界面

This commit is contained in:
wxlong
2025-11-28 12:58:45 +08:00
parent caf243f14e
commit d3e0678ef0
17 changed files with 3065 additions and 568 deletions

View File

@@ -1,20 +1,164 @@
<!DOCTYPE html>
<html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title></title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="天津市林草资源专项调查管理平台 - 专业的林业资源管理与调查系统">
<meta name="keywords" content="林草资源,林业管理,资源调查,天津林业">
<meta name="author" content="天津市林草资源专项调查管理平台">
<title>天津市林草资源专项调查管理平台</title>
<!-- 预加载字体 -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<!-- Favicon -->
<link rel="icon" type="image/png" href="/static/img/favicon.png">
<!-- 地图API -->
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=eT72K2voLkPnlDLUBzeRroxMW5vIrbH1"></script>
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.4&key=9355e88d3f4f88925d8b6a8ba53d19c6&plugin=AMap.MouseTool&plugin=AMap.Autocomplete&plugin=AMap.PolyEditor"></script>
<!--<link href="//unpkg.com/progressive-image/dist/index.css" rel="stylesheet" type="text/css">-->
<!-- 页面加载样式 -->
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
font-family: 'PingFang SC', 'Microsoft YaHei', 'SimHei', 'STHeiti', 'Helvetica Neue', Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background: #F1F8F4;
}
#app {
width: 100%;
height: 100%;
position: relative;
}
/* 加载动画 */
.loading-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #F1F8F4;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 9999;
transition: opacity 0.3s ease;
}
.loading-container.hidden {
opacity: 0;
pointer-events: none;
}
.loading-logo {
width: 80px;
height: 80px;
margin-bottom: 20px;
animation: pulse 2s ease-in-out infinite;
}
.loading-spinner {
width: 50px;
height: 50px;
border: 4px solid rgba(76, 175, 80, 0.2);
border-top-color: #4CAF50;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 20px;
}
.loading-text {
color: #2E7D32;
font-size: 16px;
font-weight: 500;
letter-spacing: 2px;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
@keyframes pulse {
0%, 100% { transform: scale(1); opacity: 1; }
50% { transform: scale(1.1); opacity: 0.8; }
}
/* 滚动条样式 */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: #E8F5E9;
border-radius: 4px;
}
::-webkit-scrollbar-thumb {
background: #81C784;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #66BB6A;
}
</style>
</head>
<body>
<!-- 加载动画 -->
<div id="loading" class="loading-container">
<div class="loading-spinner"></div>
<div class="loading-text">加载中...</div>
</div>
<div id="app"></div>
<!-- built files will be auto injected -->
<script type="text/javascript" src="/static/js/sockjs.min.js"></script>
<script>
const myname = 'Collection System v20250902beta';
// 平台名称配置
const myname = '天津市林草资源专项调查管理平台 v20251126beta';
document.getElementsByTagName('title')[0].innerText = myname;
// 页面加载完成后隐藏加载动画
window.addEventListener('load', function() {
setTimeout(function() {
const loading = document.getElementById('loading');
if (loading) {
loading.classList.add('hidden');
setTimeout(function() {
loading.style.display = 'none';
}, 300);
}
}, 500);
});
// 如果 Vue 应用已经加载,也隐藏加载动画
if (document.readyState === 'complete') {
setTimeout(function() {
const loading = document.getElementById('loading');
if (loading) {
loading.classList.add('hidden');
setTimeout(function() {
loading.style.display = 'none';
}, 300);
}
}, 500);
}
</script>
</body>
</html>

View File

@@ -16,6 +16,8 @@ export default {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
color: #2E7D32;
background: #F1F8F4;
min-height: 100vh;
}
</style>

View File

@@ -37,14 +37,14 @@
.el-button:focus,
.el-button:hover {
color: #9dbbe7;
border-color: rgb(193, 198, 204);
background-color: rgb(234, 236, 238)
color: #4CAF50;
border-color: #81C784;
background-color: #E8F5E9
}
.el-button:active {
color: #9dbbe7;
border-color: rgb(43, 59, 77);
color: #2E7D32;
border-color: #4CAF50;
outline: 0
}
@@ -59,14 +59,14 @@
.el-button.is-plain:focus,
.el-button.is-plain:hover {
background: #FFF;
border-color: #264672;
color: #264672
border-color: #4CAF50;
color: #2E7D32
}
.el-button.is-active,
.el-button.is-plain:active {
color: rgb(43, 59, 77);
border-color: rgb(43, 59, 77)
color: #1B5E20;
border-color: #4CAF50
}
.el-button.is-plain:active {
@@ -125,21 +125,21 @@
.el-button--primary {
color: #FFF;
background-color: #9dbbe7;
border-color: #9dbbe7
background-color: #4CAF50;
border-color: #4CAF50
}
.el-button--primary:focus,
.el-button--primary:hover {
background: rgb(89, 103, 120);
border-color: rgb(89, 103, 120);
background: #66BB6A;
border-color: #66BB6A;
color: #FFF
}
.el-button--primary.is-active,
.el-button--primary:active {
background: rgb(43, 59, 77);
border-color: rgb(43, 59, 77);
background: #388E3C;
border-color: #388E3C;
color: #FFF
}
@@ -157,21 +157,21 @@
}
.el-button--primary.is-plain {
color: #264672;
background: rgb(234, 236, 238);
border-color: rgb(172, 179, 187)
color: #2E7D32;
background: #E8F5E9;
border-color: #81C784
}
.el-button--primary.is-plain:focus,
.el-button--primary.is-plain:hover {
background: #264672;
border-color: #264672;
background: #4CAF50;
border-color: #4CAF50;
color: #FFF
}
.el-button--primary.is-plain:active {
background: rgb(43, 59, 77);
border-color: rgb(43, 59, 77);
background: #388E3C;
border-color: #388E3C;
color: #FFF;
outline: 0
}
@@ -480,7 +480,7 @@
}
.el-button--text {
color: #264672;
color: #2E7D32;
background: 0 0;
padding-left: 0;
padding-right: 0
@@ -488,13 +488,13 @@
.el-button--text:focus,
.el-button--text:hover {
color: rgb(89, 103, 120);
color: #4CAF50;
border-color: transparent;
background-color: transparent
}
.el-button--text:active {
color: rgb(43, 59, 77);
color: #1B5E20;
background-color: transparent
}

View File

@@ -246,6 +246,9 @@
top: 70px;
width: 100%;
height: calc(100% - 50px);
background: linear-gradient(160deg, #E8F5E9 0%, #F5FBF6 45%, #FFFFFF 100%);
box-shadow: inset 0 20px 40px rgba(76, 175, 80, 0.08);
border-top: 1px solid rgba(76, 175, 80, 0.15);
}
#tablecontainer {
@@ -380,9 +383,6 @@
#leftPanelScroll {
overflow: hidden;
height: calc(100% - 210px);
}
.left-content {
margin-left: 0px !important;
width: 355px !important;
}
@@ -448,6 +448,8 @@
#leftPanelScroll {
overflow: hidden;
height: calc(100% - 280px);
margin-left: 0px !important;
width: 355px !important;
}
.container .topbar-wrap .topbar-title {
@@ -459,11 +461,6 @@
top: 280px !important;
}
.left-content {
margin-left: 0px !important;
width: 355px !important;
}
#toLeft {
left: 355px !important;
}
@@ -554,32 +551,66 @@
}
#leftPanelScroll {
overflow: hidden;
overflow-y: scroll;
height: calc(100% - 70px);
padding: 20px 24px;
width: 420px;
box-shadow: 0 15px 35px rgba(76, 175, 80, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.6);
backdrop-filter: blur(4px);
&::-webkit-scrollbar {
/* 滚动条整体样式 */
width: 7px;
/* 高宽分别对应横竖滚动条的尺寸 */
height: 1px;
}
&::-webkit-scrollbar-thumb {
/* 滚动条里面小方块 */
background: linear-gradient(180deg, #81C784, #43A047);
border-radius: 10px;
}
&::-webkit-scrollbar-track {
/* 滚动条里面轨道 */
background: rgba(232, 245, 233, 0.9);
border-radius: 10px;
}
}
#leftPanel {
//opacity: 0.9;
width: 450px;
position: absolute;
top: 70px;
bottom: 0px;
left: 0px;
z-index: 98;
padding-left: 10px;
background-color: rgba(247, 248, 241, 0.9);
box-shadow: 0 2px 40px 0 rgba(157, 187, 231, 0.50);
border-radius: 0 0 4px 4px 4px 4px 0 0;
box-shadow: 1px 0 5px rgba(0, 0, 0, 0.5);
padding: 0 16px 16px 16px;
background: linear-gradient(180deg, rgba(232, 245, 233, 0.98) 0%, rgba(241, 248, 244, 0.98) 100%);
border-right: 1px solid rgba(76, 175, 80, 0.2);
box-shadow: 2px 0 16px rgba(46, 125, 50, 0.12);
backdrop-filter: blur(6px);
height: 100%;
}
.el-collapse-item__wrap {
background-color: #F7F8F1 !important;
background: rgba(241, 248, 244, 0.95) !important;
border: 1px solid rgba(129, 199, 132, 0.35) !important;
border-radius: 16px !important;
margin-bottom: 12px;
box-shadow: 0 6px 18px rgba(76, 175, 80, 0.12);
}
.el-collapse-item__header {
background-color: #F7F8F1 !important;
background: linear-gradient(90deg, rgba(224, 242, 229, 0.95), rgba(248, 253, 249, 0.95)) !important;
color: #1B5E20 !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
font-size: 15px !important;
font-weight: 600;
border-bottom: 1px solid rgba(129, 199, 132, 0.35);
border-radius: 16px 16px 0 0 !important;
padding: 14px 18px;
}
.el-breadcrumb__inner {
@@ -599,32 +630,6 @@
// }
.left-content {
overflow-y: scroll;
height: 100%;
background-color: #F7F8F1;
margin-left: 20px;
width: 435px;
&::-webkit-scrollbar {
/* 滚动条整体样式 */
width: 5px;
/* 高宽分别对应横竖滚动条的尺寸 */
height: 1px;
}
&::-webkit-scrollbar-thumb {
/* 滚动条里面小方块 */
box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.2);
background: #535353;
}
&::-webkit-scrollbar-track {
/* 滚动条里面轨道 */
box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.2);
background: #ededed;
}
}

View File

@@ -23,6 +23,7 @@ body {
height: 100%;
width: 100%;
overflow: hidden;
background: #F1F8F4;
}
a {
@@ -48,30 +49,32 @@ ul {
.el-form-item__label {
font-family: PingFangSC-Regular;
color: #264672 !important;
color: #2E7D32 !important;
}
.el-pager li {
background: rgb(247, 248, 241) !important;
background: #E8F5E9 !important;
color: #2E7D32 !important;
}
.el-pagination button {
background: rgb(247, 248, 241) !important;
background: #E8F5E9 !important;
color: #2E7D32 !important;
}
#searchList {
text-align: left;
width: 91%;
margin-left: 4%;
border: 1px solid #9DBBE7 !important;
border: 1px solid #81C784 !important;
border-radius: 4px;
color: rgb(38, 70, 114);
color: #2E7D32;
font-size: 14px !important;
font-family: PingFangSC-Regular;
}
.backcolor {
background: rgba(157, 187, 231, 0.3);
background: rgba(129, 199, 132, 0.3);
margin-left: 10px;
}
@@ -80,10 +83,12 @@ ul {
}
.dateBtn {
background-color: #264672 !important;
background-color: #4CAF50 !important;
font-family: PingFangSC-Regular;
color: #FFFFFF !important;
margin-bottom: 15px;
border: none !important;
box-shadow: 0 2px 4px rgba(46, 125, 50, 0.2);
}
.el-tabs__nav-scroll {
@@ -96,9 +101,9 @@ ul {
height: 70px;
line-height: 70px;
padding: 0px;
opacity: 0.9;
background: #F7F8F1;
box-shadow: 0 2px 40px 0 rgba(157, 187, 231, 0.50);
background: #E8F5E9;
box-shadow: 0 2px 8px 0 rgba(46, 125, 50, 0.15);
border-bottom: 1px solid rgba(76, 175, 80, 0.2);
}
.container .topbar-wrap .topbar-btn {
@@ -113,9 +118,10 @@ ul {
.container .topbar-wrap .topbar-logos {
float: left;
width: 400px;
width: 600px;
min-width: 500px;
line-height: 50px;
font-size: 17px;
font-size: 20px;
text-align: left;
}
@@ -150,6 +156,8 @@ ul {
line-height: 70px !important;
width: 140px;
text-align: center;
color: #2E7D32 !important;
transition: all 0.3s ease;
}
.el-menu--horizontal>.el-submenu .el-submenu__title {
@@ -160,12 +168,13 @@ ul {
.el-checkbox__inner {
border: 1px solid #9DBBE7 !important;
border: 1px solid #81C784 !important;
}
.el-checkbox__input.is-checked .el-checkbox__inner,
.el-checkbox__input.is-indeterminate .el-checkbox__inner {
background-color: #9DBBE7 !important;
background-color: #4CAF50 !important;
border-color: #4CAF50 !important;
color: #fff !important;
}
@@ -250,7 +259,7 @@ ul {
}
.container .content-container {
background: #fff;
background: #F1F8F4;
-ms-flex: 1;
flex: 1;
overflow-y: auto;
@@ -259,13 +268,14 @@ ul {
}
.container .content-container .content-wrapper {
background-color: #fff;
background-color: #F1F8F4;
box-sizing: border-box;
}
.el-menu--horizontal>.el-menu-item.is-active {
color: #fff !important;
border-bottom: 4px solid #409EFF !important;
color: #1B5E20 !important;
border-bottom: 4px solid #4CAF50 !important;
background: rgba(76, 175, 80, 0.1) !important;
}
.myInfoWindow {
@@ -322,7 +332,7 @@ input:-ms-input-placeholder {
width: 250px !important;
text-align: start;
height: 100%;
background-color: #fff;
background-color: #F1F8F4;
}
.el-aside.tac .el-submenu__title,
@@ -330,29 +340,30 @@ el-aside.tac.el-menu-item,
.el-aside.tac .el-submenu .el-menu-item {
height: 40px !important;
line-height: 40px !important;
background-color: white;
color: black;
background-color: #F1F8F4;
color: #2E7D32;
}
.el-aside.tac .el-menu-item-group__title {
color: black;
background-color: white;
color: #2E7D32;
background-color: #F1F8F4;
padding: 0px !important;
}
.el-aside.tac .el-submenu .el-menu-item:hover {
background-color: #E8E8E8;
color: black;
background-color: #C8E6C9;
color: #2E7D32;
}
.el-menu--horizontal>.el-menu-item:hover {
border-bottom: 4px solid #409EFF;
border-bottom-color: #409EFF !important;
border-bottom: 4px solid #66BB6A;
border-bottom-color: #66BB6A !important;
background: rgba(76, 175, 80, 0.15) !important;
color: #1B5E20 !important;
}
.el-aside.tac .el-menu-item.is-active {
background-color: #304156;
background-color: #4CAF50;
color: white;
}
@@ -362,18 +373,18 @@ el-aside.tac.el-menu-item,
}
#bread_container {
background-color: white !important;
color: black;
background-color: #F1F8F4 !important;
color: #2E7D32;
width: 100%;
height: 30px;
line-height: 30px;
text-align: center;
border-bottom: 1px solid #D3D3D3;
border-bottom: 1px solid #C8E6C9;
}
.el-breadcrumb {
font-size: 14px;
color: black;
color: #2E7D32;
line-height: 30px !important;
padding-left: 10px;
}
@@ -394,7 +405,7 @@ el-aside.tac.el-menu-item,
.dragdiv-header {
color: black;
color: #2E7D32;
font-size: 16px;
line-height: 40px;
text-align: center;
@@ -406,7 +417,7 @@ el-aside.tac.el-menu-item,
}
.esriPopup .titlePane {
background-color: #304156 !important;
background-color: #4CAF50 !important;
}
.esriPopup .contentPane {
@@ -421,10 +432,19 @@ el-aside.tac.el-menu-item,
.el-collapse-item__header {
font-size: 15px !important;
color: #1B5E20 !important;
background: linear-gradient(90deg, rgba(232, 245, 233, 0.95), rgba(248, 253, 249, 0.95)) !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
border-radius: 14px 14px 0 0 !important;
padding: 12px 18px !important;
}
.el-collapse-item__content {
padding-bottom: 10px !important;
padding: 12px 18px 16px 18px !important;
background: rgba(241, 248, 244, 0.9) !important;
border: 1px solid rgba(129, 199, 132, 0.2) !important;
border-top: none !important;
border-radius: 0 0 14px 14px !important;
}
.el-input__inner {
@@ -444,8 +464,8 @@ el-aside.tac.el-menu-item,
.el-button--primary:focus,
.el-button--primary:hover {
color: #FFF !important;
background-color: #304156 !important;
border-color: #304156 !important;
background-color: #66BB6A !important;
border-color: #66BB6A !important;
}
@@ -457,7 +477,7 @@ el-aside.tac.el-menu-item,
justify-content: center;
align-items: center;
width: 100%;
color: #000;
color: #2E7D32;
}
.v-table-body-cell {
@@ -467,12 +487,12 @@ el-aside.tac.el-menu-item,
}
.table-title {
color: #000;
color: #2E7D32;
}
.el-dialog__header {
padding: 8px !important;
background-color: #9dbbe7;
background-color: #4CAF50;
color: #fff !important;
border-radius: 5px 5px 0px 0px;
}
@@ -517,9 +537,10 @@ el-aside.tac.el-menu-item,
@media screen and (max-width: 1500px) {
.container .topbar-wrap .topbar-logos {
float: left;
width: 300px;
width: 500px;
min-width: 400px;
line-height: 50px;
font-size: 17px;
font-size: 18px;
text-align: left;
}
}
@@ -538,44 +559,44 @@ el-aside.tac.el-menu-item,
}
.el-menu--horizontal>.el-submenu.is-active .el-submenu__title {
color: #fff !important;
color: #1B5E20 !important;
}
.el-menu--horizontal .el-menu .el-menu-item.is-active,
.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title {
color: #fff !important;
color: #1B5E20 !important;
}
.el-step__head.is-process,
.el-step__title.is-process {
color: #1296db !important;
color: #4CAF50 !important;
}
.el-step__head.is-wait {
color: #304156 !important;
color: #81C784 !important;
}
.el-step__title.is-success {
color: #304156 !important;
color: #2E7D32 !important;
}
.el-step__head.is-success {
color: #304156 !important;
color: #4CAF50 !important;
}
.el-step__line {
background-color: #304156 !important;
background-color: #81C784 !important;
}
.el-step__line-inner {
border-color: #304156 !important;
border-color: #81C784 !important;
}
.el-step__title.is-wait {
color: #304156 !important;
border-color: #304156 !important;
color: #81C784 !important;
border-color: #81C784 !important;
}
.el-icon-check:before {

View File

@@ -36,8 +36,7 @@
</div>
</div>
<div id="leftPanelScroll">
<div class="left-content">
<el-tabs v-model="activeName">
<el-tabs v-model="activeName">
<el-tab-pane label="任务进度" name="first">
<el-select
v-model="task"
@@ -300,7 +299,6 @@
>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</transition>

View File

@@ -26,12 +26,11 @@
</div>
</div>
<div id="leftPanelScroll">
<div class="left-content">
<el-tabs v-model="activeName">
<el-tabs v-model="activeName">
<el-tab-pane label="数据查看" name="second">
<div>
<p id="mylabel">
任务
<p class="mylabel">
<span class="label-text">任务</span>
<el-select
v-model="task"
size="small"
@@ -50,8 +49,8 @@
></el-option>
</el-select>
</p>
<p id="mylabel">
<p class="mylabel">
<span class="label-text"></span>
<el-select
id="sTable"
v-model="table"
@@ -70,8 +69,8 @@
></el-option>
</el-select>
</p>
<p id="mylabel">
人员
<p class="mylabel">
<span class="label-text">人员</span>
<el-select
id="sUser"
v-model="userId"
@@ -100,10 +99,13 @@
>确定
</el-button
>
<!-- 显示要素信息属性照片和视频
<div v-if="Info && Object.keys(Info).length > 0" style="margin-top: 20px">
<featureInfo :data="Info" style="margin: 0 auto"/>
</div>-->
</div>
</el-tab-pane>
</el-tabs>
<el-divider></el-divider>
<div id="editionContainer">
<el-tabs v-model="activeName1">
<el-tab-pane label="版本回退" name="first1">
@@ -235,7 +237,6 @@
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</div>
</transition>
@@ -870,10 +871,8 @@ export default {
}
}
// 确保在子表模式下也获取并显示要素属性
if (that.ifsub && that.activeName1 === 'first1') {
that.getFeatureData()
}
// 获取并显示要素属性(无论哪个标签页都获取)
that.getFeatureData()
}
})
this.map.addInteraction(this.selectclick)
@@ -1160,19 +1159,28 @@ export default {
var jsondata = response.data.data
var imagedata = []
var videodata = []
for (var i = 0; i < jsondata.mediaFileURLs.length; i++) {
if (
jsondata.mediaFileURLs[i].substring(
jsondata.mediaFileURLs[i].length - 3
) === 'jpg'
) {
imagedata.push(jsondata.mediaFileURLs[i])
} else if (
jsondata.mediaFileURLs[i].substring(
jsondata.mediaFileURLs[i].length - 3
) === 'avi'
) {
videodata.push(jsondata.mediaFileURLs[i])
// 处理媒体文件URL
if (jsondata.mediaFileURLs && Array.isArray(jsondata.mediaFileURLs)) {
for (var i = 0; i < jsondata.mediaFileURLs.length; i++) {
var url = jsondata.mediaFileURLs[i]
if (!url) continue
// 获取文件扩展名(支持多种格式)
var urlLower = url.toLowerCase()
var ext = ''
var lastDot = urlLower.lastIndexOf('.')
if (lastDot > 0) {
ext = urlLower.substring(lastDot + 1)
}
// 图片格式jpg, jpeg, png, gif, bmp, webp
if (['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'].includes(ext)) {
imagedata.push(url)
}
// 视频格式avi, mp4, mov, wmv, flv, mkv, webm
else if (['avi', 'mp4', 'mov', 'wmv', 'flv', 'mkv', 'webm'].includes(ext)) {
videodata.push(url)
}
}
}
jsondata.imagedata = imagedata
@@ -1740,6 +1748,10 @@ export default {
if (this.pageLayer && this.activeName1 === 'second1') {
this.setCurrentStyle1(1)
}
// 在"数据查看"标签页中,当选择要素时获取要素数据
if (this.activeName === 'second' && this.currentFeatureId && this.task && this.table) {
this.getFeatureData()
}
}
},
vectorSource: {
@@ -1890,9 +1902,33 @@ export default {
}
.mylabel {
font-family: PingFangSC-Medium;
display: flex;
align-items: center;
flex-wrap: wrap;
margin: 0 0 8px 0;
padding: 4px 14px;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
font-size: 14px;
color: #264672;
font-weight: 600;
color: #1B5E20;
background: rgba(232, 245, 233, 0.85);
border: 1px solid rgba(129, 199, 132, 0.4);
border-radius: 12px;
letter-spacing: 0.5px;
line-height: 1.4;
}
.mylabel .label-text {
display: inline-block;
min-width: 60px;
flex-shrink: 0;
text-align: right;
}
.mylabel ::v-deep .el-select,
.mylabel ::v-deep .el-input {
flex: 1;
min-width: 220px;
}
.el-icon-circle-close {

File diff suppressed because it is too large Load Diff

View File

@@ -15,11 +15,13 @@
<a
href
style="
font-family: PingFangSC-Regular;
font-size: 18px;
font-family: 'Microsoft YaHei', 'SimHei', 'STHeiti', 'PingFang SC', 'Helvetica Neue', Arial, sans-serif;
font-size: 20px;
line-height: 70px;
color: #264672;
color: #2E7D32;
margin-left: 10px;
font-weight: 600;
letter-spacing: 1px;
"
>{{ myname }}</a
>
@@ -29,7 +31,9 @@
:default-active="$route.path"
class="el-menu"
mode="horizontal"
background-color="#F7F8F1"
background-color="#E8F5E9"
text-color="#2E7D32"
active-text-color="#1B5E20"
router
>
<template v-for="item in menu">
@@ -131,28 +135,34 @@ export default {
text-align: center;
font-family: PingFangSC-Regular;
font-size: 16px;
color: #264672;
color: #2E7D32;
letter-spacing: 0;
transition: all 0.3s ease;
border-bottom: 3px solid transparent;
}
.el-menu--horizontal > .el-menu-item.is-active {
color: #3a87f9 !important;
color: #1B5E20 !important;
font-family: PingFangSC-Semibold;
font-size: 16px;
letter-spacing: 0;
border-bottom: 3px solid #409eff !important;
border-bottom: 3px solid #4CAF50 !important;
background: rgba(76, 175, 80, 0.1) !important;
}
.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,
.el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
outline: 0;
background: #f7f8f1 !important;
background: rgba(76, 175, 80, 0.15) !important;
color: #1B5E20 !important;
}
.el-main {
padding: 0;
height: 100%;
background: #F1F8F4;
}
.content {
height: 100%;
background: #F1F8F4;
}
</style>

View File

@@ -24,8 +24,7 @@
></i>
</div>
<div id="leftPanelScroll">
<div class="left-content">
<el-tabs v-model="activeName">
<el-tabs v-model="activeName">
<el-tab-pane label="统计分析" name="second">
<div>
<el-select
@@ -104,7 +103,6 @@
</div>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</transition>

View File

@@ -39,8 +39,7 @@
</div>
</div>
<div id="leftPanelScroll">
<div class="left-content">
<el-collapse v-model="activeItem" accordion>
<el-collapse v-model="activeItem" accordion>
<el-collapse-item name="1">
<template slot="title">
<img
@@ -61,10 +60,10 @@
>
</el-breadcrumb>
</template>
<div style="margin: 15px 0px 15px 0px">
<div style="margin: 4px 0px 4px 0px">
<div class="taskChoser">
<span id="mylabel">
任务
<span class="mylabel">
<span class="label-text">任务</span>
<el-select
v-model="taskValue"
style="width: 80%; margin-bottom: 10px"
@@ -83,15 +82,11 @@
</span>
</div>
<div class="taskChoser">
<span id="mylabel">
<span class="mylabel">
<span class="label-text"></span>
<el-select
v-model="ctaskValue"
style="
width: 80%;
margin-bottom: 10px;
margin-left: 14px;
"
style="width: 80%; margin-bottom: 10px"
placeholder="请选择表"
clearable
@change="ctaskChange"
@@ -120,8 +115,8 @@
</p>
</div>
<div class="taskChoser">
<span id="mylabel">
字段
<span class="mylabel">
<span class="label-text">字段</span>
<el-select
v-model="FieldValue"
placeholder="请选择字段"
@@ -140,8 +135,8 @@
</span>
</div>
<div class="taskChoser">
<span id="mylabel">
内容
<span class="mylabel">
<span class="label-text">内容</span>
<el-input
:disabled="taskInput"
style="width: 80%; margin-bottom: 10px"
@@ -474,7 +469,7 @@
<el-breadcrumb-item>路线优化</el-breadcrumb-item>
</el-breadcrumb>
</template>
<div style="margin: 15px 0px 15px 0px; height: 100%">
<div style="margin: 4px 0px 4px 0px; height: 100%">
<div class="taskChoser">
<label>起点</label>
<el-select
@@ -968,7 +963,6 @@
</el-tabs>
</el-collapse-item>
</el-collapse>
</div>
</div>
</div>
</transition>
@@ -4989,7 +4983,7 @@ export default {
// }
.taskChoser {
margin: 15px 0px 5px 0px;
margin: 2px 0px 2px 0px;
}
.searchInput {
width: 220px !important;
@@ -5093,8 +5087,57 @@ export default {
line-height: 13px;
}
.mylabel {
font-family: PingFangSC-Medium;
display: flex;
align-items: center;
flex-wrap: wrap;
margin: 0 0 8px 0;
padding: 4px 14px;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
font-size: 14px;
color: #264672;
font-weight: 600;
color: #1B5E20;
border-radius: 12px;
letter-spacing: 0.5px;
line-height: 1.4;
}
.mylabel .label-text {
display: inline-block;
min-width: 60px;
flex-shrink: 0;
text-align: right;
}
.mylabel ::v-deep .el-select,
.mylabel ::v-deep .el-input {
flex: 1;
min-width: 220px;
}
#leftPanelScroll :deep(.el-collapse-item__content) {
padding: 0 !important;
}
#leftPanelScroll :deep(.el-collapse .el-collapse-item__content) {
padding: 0 !important;
}
#leftPanelScroll :deep(.el-collapse-item__wrap .el-collapse-item__content) {
padding: 0 !important;
}
</style>
<style lang="scss">
/* 全局样式:覆盖 ViewTask 页面中的 collapse content padding */
#leftPanelScroll .el-collapse-item__content {
padding: 0 !important;
}
#leftPanelScroll .el-collapse .el-collapse-item__wrap .el-collapse-item__content {
padding: 0 !important;
}
#leftPanelScroll .el-collapse-item__wrap .el-collapse-item__content {
padding: 0 !important;
}
</style>

View File

@@ -1,24 +1,23 @@
<template>
<div>
<div id="buttomContain">
<div class="search-container">
<div class="task-manage-page">
<div class="toolbar-container">
<div class="search-box">
<el-input
v-model="searchKeyword"
placeholder="请输入关键词进行搜索"
prefix-icon="el-icon-search"
clearable
size="small"
style="width: 450px; margin-right: 15px;"
@input="handleSearch"
></el-input>
</div>
<div class="button-container">
<el-button id="buttonStyle" size="small" @click="openBatchDownloadDialog">
批量数据下载
<div class="toolbar-actions">
<el-button class="forest-btn" size="medium" icon="el-icon-download" @click="openBatchDownloadDialog">
批量数据下载
</el-button>
<el-button class="forest-btn ghost" size="medium" icon="el-icon-copy-document" @click="ExchangeData()">
任务数据复制
</el-button>
<el-button id="buttonStyle" size="small" @click="ExchangeData()"
>任务数据复制</el-button
>
</div>
</div>
<el-table
@@ -1558,36 +1557,136 @@ export default {
};
</script>
<style lang="scss" scoped>
>>> .el-pagination button {
background-color: #fff !important;
.task-manage-page {
padding: 24px 28px 40px;
background: linear-gradient(135deg, #edf7ef 0%, #fdfefe 100%);
min-height: calc(100vh - 120px);
box-sizing: border-box;
border-radius: 20px;
box-shadow: 0 14px 32px rgba(76, 175, 80, 0.12);
border: 1px solid rgba(129, 199, 132, 0.25);
}
>>> .el-pager li {
background: #fff !important;
}
#buttomContain {
right: 25px;
position: absolute;
.toolbar-container {
display: flex;
align-items: center;
justify-content: space-between;
width: calc(100% - 50px);
align-items: center;
margin-bottom: 20px;
}
.search-container {
/* 搜索容器靠左 */
.search-box {
flex: 0 0 auto;
width: 450px;
}
.button-container {
/* 按钮容器靠右 */
:deep(.search-box .el-input) {
width: 100%;
}
.toolbar-actions {
display: flex;
gap: 16px;
flex: 0 0 auto;
}
.forest-btn {
background: linear-gradient(135deg, #4caf50 0%, #2e7d32 100%);
border: none;
color: #fff;
border-radius: 12px;
padding: 0 26px;
min-height: 38px;
font-weight: 600;
letter-spacing: 0.5px;
font-size: 15px;
box-shadow: 0 8px 18px rgba(76, 175, 80, 0.35);
}
.forest-btn.ghost {
background: rgba(255, 255, 255, 0.95);
color: #2e7d32;
border: 1px solid #66bb6a;
box-shadow: 0 5px 14px rgba(76, 175, 80, 0.2);
}
.forest-btn:hover {
filter: brightness(1.05);
}
#tableStyle {
top: 40px;
margin-bottom: 30px;
background: rgba(255, 255, 255, 0.92);
border-radius: 16px;
overflow: hidden;
border: 1px solid rgba(129, 199, 132, 0.3);
box-shadow: 0 14px 28px rgba(76, 175, 80, 0.12);
}
:deep(#tableStyle .el-table__header-wrapper th) {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
:deep(#tableStyle .el-table__body-wrapper td) {
color: #2e4b31;
border-bottom: 1px solid rgba(76, 175, 80, 0.08);
}
:deep(#tableStyle .el-table__body tr:hover > td) {
background: rgba(129, 199, 132, 0.15) !important;
color: #1b5e20;
}
:deep(#tableStyle .el-table__row--striped td) {
background: rgba(233, 247, 235, 0.65);
}
:deep(#tableStyle .el-table__row.current-row > td) {
background: rgba(76, 175, 80, 0.18) !important;
color: #1b5e20;
}
:deep(#tableStyle .el-table__body tr) {
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
:deep(#tableStyle .el-table__body tr:hover) {
transform: translateY(-1px);
box-shadow: inset 0 2px 0 rgba(76, 175, 80, 0.15);
}
:deep(#tableStyle .el-button--text) {
color: #2e7d32;
font-weight: 500;
padding: 6px 12px;
border-radius: 8px;
transition: all 0.3s ease;
}
:deep(#tableStyle .el-button--text:hover) {
color: #1b5e20;
background: rgba(129, 199, 132, 0.2);
transform: translateY(-1px);
}
>>> .el-pagination button {
background-color: #E8F5E9 !important;
color: #2E7D32 !important;
}
>>> .el-pager li {
background: #E8F5E9 !important;
color: #2E7D32 !important;
}
.text {
font-size: 17px;
text-align: left;
color: #2e7d32;
}
.clearfix:before,
@@ -1607,5 +1706,176 @@ export default {
right: 0;
left: 0;
z-index: 999;
border-radius: 16px;
border: 1px solid rgba(129, 199, 132, 0.3);
box-shadow: 0 12px 28px rgba(76, 175, 80, 0.15);
}
:deep(.box-card .el-card__header) {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3);
color: #1b5e20;
border-bottom: 1px solid rgba(129, 199, 132, 0.25);
border-radius: 16px 16px 0 0;
}
.taskDialog :deep(.el-dialog) {
border-radius: 18px;
border: 1px solid rgba(129, 199, 132, 0.35);
box-shadow: 0 12px 30px rgba(76, 175, 80, 0.18);
}
.taskDialog :deep(.el-dialog__header) {
background: linear-gradient(135deg, #4caf50, #2e7d32);
color: #fff;
border-radius: 18px 18px 0 0;
}
.taskDialog :deep(.el-form-item__label) {
color: #1b5e20;
font-weight: 600;
}
.taskDialog :deep(.el-button--primary) {
background-color: #4caf50 !important;
border-color: #4caf50 !important;
}
.taskDialog :deep(.el-button--primary:hover) {
background-color: #66bb6a !important;
border-color: #66bb6a !important;
}
</style>
<style>
/* 全局表格样式覆盖 - 确保主题样式生效 */
#tableStyle.el-table {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
border-radius: 16px !important;
overflow: hidden !important;
}
#tableStyle.el-table.el-table--border {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
}
#tableStyle.el-table.el-table--border::after,
#tableStyle.el-table.el-table--border::before {
background-color: rgba(129, 199, 132, 0.3) !important;
}
#tableStyle.el-table.el-table--border th {
border-right: 1px solid rgba(129, 199, 132, 0.25) !important;
}
#tableStyle.el-table.el-table--border th:last-child {
border-right: none !important;
}
#tableStyle.el-table.el-table--border td {
border-right: 1px solid rgba(76, 175, 80, 0.08) !important;
}
#tableStyle.el-table.el-table--border td:last-child {
border-right: none !important;
}
#tableStyle.el-table.el-table--striped .el-table__body tr.el-table__row--striped td {
background: rgba(233, 247, 235, 0.65) !important;
}
#tableStyle.el-table.el-table--striped .el-table__body tr.el-table__row--striped:hover td {
background: rgba(200, 230, 201, 0.5) !important;
}
/* 表头样式全局覆盖 */
#tableStyle.el-table .el-table__header-wrapper th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
padding: 12px 0 !important;
text-align: center !important;
}
#tableStyle.el-table .el-table__header-wrapper thead th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
}
#tableStyle.el-table .el-table__header th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
}
#tableStyle.el-table .el-table__header th .cell {
color: #1b5e20 !important;
font-weight: 600 !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
/* 覆盖自定义表头类名 sinCl */
#tableStyle.el-table .el-table__header th.sinCl {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
#tableStyle.el-table .el-table__header th.sinCl .cell {
color: #1b5e20 !important;
font-weight: 600 !important;
}
/* 滚动条全局样式 */
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar {
height: 8px !important;
}
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-track {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb {
background: linear-gradient(90deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
background: linear-gradient(90deg, #66bb6a, #4caf50) !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar {
width: 8px !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-track {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb {
background: linear-gradient(180deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
background: linear-gradient(180deg, #66bb6a, #4caf50) !important;
}
</style>

View File

@@ -2,10 +2,14 @@
<div id="TPcontainer">
<el-container style="height: 100%">
<el-aside class="MyAside">
<div class="aside-header">
<h2>任务中心</h2>
<p>Task Management Console</p>
</div>
<el-menu
background-color="#F7F8F1"
text-color="rgb(38,70,114)"
active-text-color="#3A87F9"
background-color="#E8F5E9"
text-color="#2E7D32"
active-text-color="#1B5E20"
:default-active="this.$route.path"
router
>
@@ -29,7 +33,7 @@
</el-aside>
<el-container>
<el-main class="tpcontent">
<router-view class="view" style="padding: 20px"></router-view>
<router-view class="view"></router-view>
</el-main>
</el-container>
</el-container>
@@ -46,33 +50,117 @@ export default {
<style scoped>
.MyAside {
width: 255px !important;
opacity: 0.9;
background-color: #f7f8f1;
color: #333;
opacity: 0.95;
background: linear-gradient(180deg, #e8f5e9 0%, #d0ebd4 100%);
color: #1b5e20;
text-align: left;
line-height: 200px;
line-height: normal;
z-index: 10;
bottom: 0;
position: absolute;
top: 0;
border-right: 1px solid rgba(76, 175, 80, 0.25);
box-shadow: 4px 0 18px rgba(52, 133, 78, 0.14);
padding: 24px 12px;
display: flex;
flex-direction: column;
}
.aside-header {
text-align: left;
padding: 0 12px 16px 12px;
border-bottom: 1px solid rgba(76, 175, 80, 0.2);
margin-bottom: 12px;
}
:deep(.MyAside .el-menu) {
background: transparent !important;
border-right: none !important;
flex: 1;
overflow-y: auto;
}
:deep(.MyAside .el-menu::-webkit-scrollbar) {
width: 6px;
}
:deep(.MyAside .el-menu::-webkit-scrollbar-thumb) {
background: rgba(76, 175, 80, 0.3);
border-radius: 3px;
}
:deep(.MyAside .el-menu::-webkit-scrollbar-track) {
background: rgba(232, 245, 233, 0.6);
}
.aside-header h2 {
font-size: 20px;
color: #1b5e20;
margin: 0;
font-weight: 700;
letter-spacing: 1px;
}
.aside-header p {
margin: 6px 0 0 0;
font-size: 12px;
color: #4f7e50;
letter-spacing: 0.5px;
}
.tpcontent {
position: absolute;
left: 255px;
right: 0px;
width: calc(100% - 255px);
padding: 0px;
background: #fff;
padding: 8px;
background: linear-gradient(135deg, #edf7ef 0%, #fdfefe 100%);
}
.tpcontent .view {
background: rgba(255, 255, 255, 0.96);
border-radius: 20px;
box-shadow: 0 12px 28px rgba(76, 175, 80, 0.12);
border: 1px solid rgba(129, 199, 132, 0.25);
min-height: calc(100vh - 120px);
padding: 24px;
box-sizing: border-box;
display: block;
}
.MyAside .usermp {
padding-left: 10px !important;
}
:deep(.MyAside .el-menu) {
background: transparent !important;
border-right: none !important;
}
:deep(.MyAside .el-menu-item),
:deep(.MyAside .el-submenu__title) {
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
font-weight: 600;
color: #2e7d32 !important;
letter-spacing: 0.5px;
padding: 14px 20px !important;
transition: background 0.3s ease, color 0.3s ease;
}
:deep(.MyAside .el-menu-item:hover),
:deep(.MyAside .el-submenu__title:hover) {
background: rgba(129, 199, 132, 0.25) !important;
color: #1b5e20 !important;
}
:deep(.MyAside .el-menu-item.is-active) {
background: linear-gradient(90deg, rgba(76, 175, 80, 0.2), rgba(129, 199, 132, 0.3)) !important;
color: #1b5e20 !important;
border-radius: 12px;
margin: 4px 12px;
}
:deep(.MyAside .el-icon-folder-opened),
:deep(.MyAside .el-icon-user-solid) {
color: #43a047;
}
@media screen and (min-width: 840px) and (max-width: 1401px) {
.tpcontent {
position: absolute;
left: 255px;
width: calc(100% - 255px);
padding: 24px;
}
}
@@ -84,6 +172,7 @@ export default {
position: absolute;
left: 160px;
width: calc(100% - 160px);
padding: 20px;
}
}
@media all and (max-width: 420px) {
@@ -94,6 +183,7 @@ export default {
position: absolute;
left: 120px;
width: calc(100% - 120px);
padding: 16px 12px;
}
}
</style>

View File

@@ -1,24 +1,24 @@
<template>
<div>
<div class="task-manage-page">
<!-- 添加搜索区域 -->
<div class="search-container">
<div class="search-box">
<el-input
v-model="searchKeyword"
placeholder="请输入关键词进行搜索"
prefix-icon="el-icon-search"
clearable
size="small"
style="width: 300px; margin-bottom: 20px;"
@input="handleSearch"
></el-input>
</div>
<!-- <h2 style="text-align: left">任务</h2>
<h5 style="text-align: left">管理任务人员</h5> -->
<el-table
id="tableStyle"
:data="filteredData"
max-height="720px"
style="width: 100%;"
max-height="720"
stripe
border
highlight-current-row
:header-cell-class-name="sinClo"
>
<el-table-column
@@ -85,8 +85,7 @@
>
<el-button
size="small"
type="primary"
plain
class="forest-btn-small"
:disabled="!scope.row.isAllocationOptional"
>上传shp数据</el-button
>
@@ -96,8 +95,7 @@
<el-table-column min-width="120" filterable label="任务人员">
<template slot-scope="scope">
<el-button
type="primary"
plain
class="forest-btn-small ghost"
size="small"
@click.native="selectWorkers(scope.row.id)"
:disabled="!scope.row.isAllocationOptional"
@@ -125,7 +123,7 @@
<el-table-column min-width="100" label="操作">
<template slot-scope="scope">
<el-button
type="primary"
class="forest-btn-small"
size="small"
@click.native="submitUploadShp(scope.row.id)"
:disabled="!scope.row.isAllocationOptional"
@@ -137,8 +135,7 @@
<el-table-column min-width="100" label="手动分配">
<template slot-scope="scope">
<el-button
type="primary"
style="margin-left: 10px !important"
class="forest-btn-small ghost"
size="small"
@click.native="manualAllocate(scope.row.id, false)"
:disabled="!scope.row.isAllocationOptional"
@@ -197,7 +194,7 @@
</el-table-column>
<el-table-column fixed="right" min-width="80">
<template slot="header">
<el-button @click="addWorker()" type="primary" class="allomapBtn"
<el-button @click="addWorker()" class="forest-btn-small"
>添加人员</el-button
>
</template>
@@ -211,7 +208,7 @@
</template>
</el-table-column>
</el-table>
<el-button type="primary" @click="UploadWorkers()" class="allomapBtn"
<el-button class="forest-btn-small" @click="UploadWorkers()"
>确认</el-button
>
</el-dialog>
@@ -612,21 +609,342 @@ export default {
};
</script>
<style lang="scss" scoped>
.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
background-color: rgb(89, 103, 120) !important;
border-color: #304156 !important;
.task-manage-page {
padding: 24px 28px 40px;
background: linear-gradient(135deg, #edf7ef 0%, #fdfefe 100%);
min-height: calc(100vh - 120px);
box-sizing: border-box;
border-radius: 20px;
box-shadow: 0 14px 32px rgba(76, 175, 80, 0.12);
border: 1px solid rgba(129, 199, 132, 0.25);
}
.search-box {
flex: 0 0 auto;
width: 450px;
margin-bottom: 20px;
}
:deep(.search-box .el-input) {
width: 100%;
}
.forest-btn-small {
background: linear-gradient(135deg, #4caf50 0%, #2e7d32 100%);
border: none;
color: #fff;
border-radius: 10px;
padding: 8px 20px;
font-weight: 600;
font-size: 14px;
box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3);
transition: all 0.3s ease;
}
.forest-btn-small.ghost {
background: rgba(255, 255, 255, 0.95);
color: #2e7d32;
border: 1px solid #66bb6a;
box-shadow: 0 3px 10px rgba(76, 175, 80, 0.2);
}
.forest-btn-small:hover:not(:disabled) {
filter: brightness(1.05);
transform: translateY(-1px);
}
.forest-btn-small:disabled {
opacity: 0.5;
cursor: not-allowed;
}
#tableStyle {
margin-bottom: 30px;
background: rgba(255, 255, 255, 0.92);
border-radius: 16px;
overflow: hidden;
border: 1px solid rgba(129, 199, 132, 0.3);
box-shadow: 0 14px 28px rgba(76, 175, 80, 0.12);
}
:deep(#tableStyle .el-table__header-wrapper th) {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
:deep(#tableStyle .el-table__body-wrapper td) {
color: #2e4b31;
border-bottom: 1px solid rgba(76, 175, 80, 0.08);
}
:deep(#tableStyle .el-table__body tr:hover > td) {
background: rgba(129, 199, 132, 0.15) !important;
color: #1b5e20;
}
:deep(#tableStyle .el-table__row--striped td) {
background: rgba(233, 247, 235, 0.65);
}
:deep(#tableStyle .el-table__row.current-row > td) {
background: rgba(76, 175, 80, 0.18) !important;
color: #1b5e20;
}
:deep(#tableStyle .el-table__body tr) {
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
:deep(#tableStyle .el-table__body tr:hover) {
transform: translateY(-1px);
box-shadow: inset 0 2px 0 rgba(76, 175, 80, 0.15);
}
:deep(#tableStyle .el-button--text) {
color: #2e7d32;
font-weight: 500;
padding: 6px 12px;
border-radius: 8px;
transition: all 0.3s ease;
}
:deep(#tableStyle .el-button--text:hover) {
color: #1b5e20;
background: rgba(129, 199, 132, 0.2);
transform: translateY(-1px);
}
:deep(#tableStyle .el-checkbox__input.is-checked .el-checkbox__inner) {
background-color: #4caf50 !important;
border-color: #4caf50 !important;
}
:deep(#tableStyle .el-checkbox__inner) {
border-color: rgba(129, 199, 132, 0.5) !important;
}
:deep(#tableStyle .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner) {
background-color: rgba(76, 175, 80, 0.5) !important;
border-color: rgba(76, 175, 80, 0.5) !important;
}
.el-dropdown-link {
cursor: pointer;
color: #409EFF;
color: #4caf50;
transition: color 0.3s ease;
}
.el-dropdown-link:hover {
color: #66b1ff;
color: #2e7d32;
}
.search-container {
text-align: left;
.taskDialog :deep(.el-dialog) {
border-radius: 18px;
border: 1px solid rgba(129, 199, 132, 0.35);
box-shadow: 0 12px 30px rgba(76, 175, 80, 0.18);
}
.taskDialog :deep(.el-dialog__header) {
background: linear-gradient(135deg, #4caf50, #2e7d32);
color: #fff;
border-radius: 18px 18px 0 0;
}
.taskDialog :deep(.el-form-item__label) {
color: #1b5e20;
font-weight: 600;
}
.taskDialog :deep(.el-button--primary) {
background-color: #4caf50 !important;
border-color: #4caf50 !important;
}
.taskDialog :deep(.el-button--primary:hover) {
background-color: #66bb6a !important;
border-color: #66bb6a !important;
}
:deep(.tb-edit .el-table__header-wrapper th) {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
}
:deep(.tb-edit .el-table__body-wrapper td) {
color: #2e4b31;
border-bottom: 1px solid rgba(76, 175, 80, 0.08);
}
:deep(.tb-edit .el-table__body tr:hover > td) {
background: rgba(129, 199, 132, 0.15) !important;
}
/* 滚动条样式 */
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper) {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar) {
height: 8px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-track) {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb) {
background: linear-gradient(90deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb:hover) {
background: linear-gradient(90deg, #66bb6a, #4caf50) !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper) {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar) {
width: 8px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-track) {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb) {
background: linear-gradient(180deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb:hover) {
background: linear-gradient(180deg, #66bb6a, #4caf50) !important;
}
/* 下拉选择框样式 */
:deep(#tableStyle .el-select .el-input__inner) {
border-color: rgba(129, 199, 132, 0.4) !important;
color: #1b5e20 !important;
}
:deep(#tableStyle .el-select .el-input__inner:focus) {
border-color: #4caf50 !important;
}
:deep(#tableStyle .el-select .el-input__suffix .el-input__suffix-inner .el-select__caret) {
color: #4caf50 !important;
}
:deep(.el-select-dropdown) {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
border-radius: 10px !important;
box-shadow: 0 8px 20px rgba(76, 175, 80, 0.15) !important;
}
:deep(.el-select-dropdown .el-select-dropdown__item) {
color: #2e4b31 !important;
}
:deep(.el-select-dropdown .el-select-dropdown__item:hover) {
background: rgba(129, 199, 132, 0.2) !important;
color: #1b5e20 !important;
}
:deep(.el-select-dropdown .el-select-dropdown__item.selected) {
background: rgba(76, 175, 80, 0.25) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
}
</style>
<style>
/* 全局表格样式覆盖 */
#tableStyle.el-table {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
border-radius: 16px !important;
overflow: hidden !important;
}
#tableStyle.el-table.el-table--border {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
}
#tableStyle.el-table.el-table--border::after,
#tableStyle.el-table.el-table--border::before {
background-color: rgba(129, 199, 132, 0.3) !important;
}
#tableStyle.el-table.el-table--border th {
border-right: 1px solid rgba(129, 199, 132, 0.25) !important;
}
#tableStyle.el-table.el-table--border th:last-child {
border-right: none !important;
}
#tableStyle.el-table.el-table--border td {
border-right: 1px solid rgba(76, 175, 80, 0.08) !important;
}
#tableStyle.el-table.el-table--border td:last-child {
border-right: none !important;
}
#tableStyle.el-table.el-table--striped .el-table__body tr.el-table__row--striped td {
background: rgba(233, 247, 235, 0.65) !important;
}
#tableStyle.el-table.el-table--striped .el-table__body tr.el-table__row--striped:hover td {
background: rgba(200, 230, 201, 0.5) !important;
}
/* 表头样式全局覆盖 */
#tableStyle.el-table .el-table__header-wrapper th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
#tableStyle.el-table .el-table__header-wrapper thead th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
}
#tableStyle.el-table .el-table__header th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
}
#tableStyle.el-table .el-table__header th .cell {
color: #1b5e20 !important;
font-weight: 600 !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
#tableStyle.el-table .el-table__header th.sinCl {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
}
#tableStyle.el-table .el-table__header th.sinCl .cell {
color: #1b5e20 !important;
font-weight: 600 !important;
}
</style>

View File

@@ -1,29 +1,29 @@
<template>
<div style="height: (screenHeight-300)+'px'">
<div id="buttomContain">
<div class="search-container">
<div class="task-manage-page">
<div class="toolbar-container">
<div class="search-box">
<el-input
style="width: 300px; margin-right: 15px;"
placeholder="请输入用户名搜索"
v-model="inputUsername"
prefix-icon="el-icon-search"
clearable
size="small"
@clear="cancelSearch()"
@keyup.enter.native="searchUser()"
>
<i
slot="suffix"
class="el-input__icon el-icon-search"
@click="searchUser()"
></i>
<i
slot="suffix"
class="el-input__icon el-icon-circle-close"
@click="cancelSearch()"
style="cursor: pointer;"
></i>
</el-input>
</div>
<div class="button-container">
<div class="toolbar-actions">
<el-button
id="buttonStyle"
size="small"
style="margin-top: 20px"
class="forest-btn-small"
size="medium"
icon="el-icon-plus"
@click="adduser1()"
>添加用户</el-button
>
@@ -33,7 +33,10 @@
<el-table
id="tableStyle"
:data="usersData"
style="width: 100%"
:max-height="600"
stripe
border
highlight-current-row
header-cell-class-name="sinCl"
>
<el-table-column
@@ -65,25 +68,28 @@
<el-button
type="text"
size="small"
class="action-btn"
@click.native="EditField(scope.$index)"
>确认</el-button
>
<el-button
type="text"
size="small"
class="action-btn"
@click.native="deleteField(scope.$index)"
>删除</el-button
>
<el-button
type="text"
size="small"
class="action-btn"
@click.native="resetPassword(scope.$index)"
>重置密码</el-button
>
</template>
</el-table-column>
</el-table>
<div style="margin-top: 50px">
<div class="pagination-container">
<el-pagination
layout="prev, pager, next"
:page-count="dataPageNum"
@@ -163,9 +169,11 @@
</el-form-item>
</el-form>
</div>
<el-button id="buttonStyle" size="small" @click="addUser()"
<div class="dialog-footer">
<el-button class="forest-btn-small" @click="addUser()"
>确认</el-button
>
</div>
</el-dialog>
</div>
</template>
@@ -506,42 +514,385 @@ export default {
};
</script>
<style scoped lang="scss">
.el-input__inner {
>>> &::placeholder {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #c0c4cc;
}
.task-manage-page {
padding: 24px 28px 40px;
background: linear-gradient(135deg, #edf7ef 0%, #fdfefe 100%);
min-height: calc(100vh - 120px);
box-sizing: border-box;
border-radius: 20px;
box-shadow: 0 14px 32px rgba(76, 175, 80, 0.12);
border: 1px solid rgba(129, 199, 132, 0.25);
}
#buttomContain {
top: 5px;
right: 25px;
position: absolute;
.toolbar-container {
display: flex;
align-items: center;
justify-content: space-between;
width: calc(100% - 50px);
align-items: center;
margin-bottom: 20px;
}
.search-container {
/* 搜索容器靠左 */
.search-box {
flex: 0 0 auto;
width: 450px;
}
.button-container {
/* 按钮容器靠右 */
:deep(.search-box .el-input) {
width: 100%;
}
.toolbar-actions {
display: flex;
gap: 16px;
flex: 0 0 auto;
}
.forest-btn-small {
background: linear-gradient(135deg, #4caf50 0%, #2e7d32 100%);
border: none;
color: #fff;
border-radius: 10px;
padding: 8px 20px;
font-weight: 600;
font-size: 14px;
box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3);
transition: all 0.3s ease;
}
.forest-btn-small:hover:not(:disabled) {
filter: brightness(1.05);
transform: translateY(-1px);
}
.forest-btn-small:disabled {
opacity: 0.5;
cursor: not-allowed;
}
#tableStyle {
top: 50px;
margin-bottom: 30px;
height: 600px;
}
>>> .el-pager li {
background: #fff !important;
background: rgba(255, 255, 255, 0.92);
border-radius: 16px;
overflow: hidden;
border: 1px solid rgba(129, 199, 132, 0.3);
box-shadow: 0 14px 28px rgba(76, 175, 80, 0.12);
}
>>> .el-pagination button {
background: #fff !important;
:deep(#tableStyle .el-table__header-wrapper th) {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
:deep(#tableStyle .el-table__body-wrapper td) {
color: #2e4b31;
border-bottom: 1px solid rgba(76, 175, 80, 0.08);
}
:deep(#tableStyle .el-table__body tr:hover > td) {
background: rgba(129, 199, 132, 0.15) !important;
color: #1b5e20;
}
:deep(#tableStyle .el-table__row--striped td) {
background: rgba(233, 247, 235, 0.65);
}
:deep(#tableStyle .el-table__row.current-row > td) {
background: rgba(76, 175, 80, 0.18) !important;
color: #1b5e20;
}
:deep(#tableStyle .el-table__body tr) {
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
:deep(#tableStyle .el-table__body tr:hover) {
transform: translateY(-1px);
box-shadow: inset 0 2px 0 rgba(76, 175, 80, 0.15);
}
:deep(#tableStyle .el-button--text) {
color: #2e7d32;
font-weight: 500;
padding: 6px 12px;
border-radius: 8px;
transition: all 0.3s ease;
}
:deep(#tableStyle .el-button--text:hover) {
color: #1b5e20;
background: rgba(129, 199, 132, 0.2);
transform: translateY(-1px);
}
.action-btn {
color: #2e7d32 !important;
font-weight: 500 !important;
padding: 6px 12px !important;
border-radius: 8px !important;
transition: all 0.3s ease !important;
}
.action-btn:hover {
color: #1b5e20 !important;
background: rgba(129, 199, 132, 0.2) !important;
transform: translateY(-1px) !important;
}
/* 下拉选择框样式 */
:deep(#tableStyle .el-select .el-input__inner) {
border-color: rgba(129, 199, 132, 0.4) !important;
color: #1b5e20 !important;
}
:deep(#tableStyle .el-select .el-input__inner:focus) {
border-color: #4caf50 !important;
}
:deep(#tableStyle .el-select .el-input__suffix .el-input__suffix-inner .el-select__caret) {
color: #4caf50 !important;
}
/* 滚动条样式 */
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper) {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar) {
height: 8px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-track) {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb) {
background: linear-gradient(90deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb:hover) {
background: linear-gradient(90deg, #66bb6a, #4caf50) !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper) {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar) {
width: 8px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-track) {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb) {
background: linear-gradient(180deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb:hover) {
background: linear-gradient(180deg, #66bb6a, #4caf50) !important;
}
.pagination-container {
margin-top: 30px;
display: flex;
justify-content: center;
}
:deep(.pagination-container .el-pagination) {
.el-pager li {
background: rgba(255, 255, 255, 0.9) !important;
color: #2e7d32 !important;
border: 1px solid rgba(129, 199, 132, 0.3) !important;
border-radius: 6px !important;
margin: 0 4px !important;
transition: all 0.3s ease !important;
}
.el-pager li:hover {
background: rgba(129, 199, 132, 0.2) !important;
color: #1b5e20 !important;
transform: translateY(-2px) !important;
}
.el-pager li.active {
background: linear-gradient(135deg, #4caf50, #2e7d32) !important;
color: #fff !important;
border-color: #4caf50 !important;
font-weight: 600 !important;
}
.btn-prev,
.btn-next {
background: rgba(255, 255, 255, 0.9) !important;
color: #2e7d32 !important;
border: 1px solid rgba(129, 199, 132, 0.3) !important;
border-radius: 6px !important;
transition: all 0.3s ease !important;
}
.btn-prev:hover,
.btn-next:hover {
background: rgba(129, 199, 132, 0.2) !important;
color: #1b5e20 !important;
transform: translateY(-2px) !important;
}
.btn-prev:disabled,
.btn-next:disabled {
opacity: 0.5 !important;
cursor: not-allowed !important;
}
}
.taskDialog :deep(.el-dialog) {
border-radius: 18px;
border: 1px solid rgba(129, 199, 132, 0.35);
box-shadow: 0 12px 30px rgba(76, 175, 80, 0.18);
}
.taskDialog :deep(.el-dialog__header) {
background: linear-gradient(135deg, #4caf50, #2e7d32);
color: #fff;
border-radius: 18px 18px 0 0;
}
.taskDialog :deep(.el-form-item__label) {
color: #1b5e20;
font-weight: 600;
}
.taskDialog :deep(.el-input__inner) {
border-color: rgba(129, 199, 132, 0.4) !important;
}
.taskDialog :deep(.el-input__inner:focus) {
border-color: #4caf50 !important;
}
.taskDialog :deep(.el-select .el-input__inner) {
border-color: rgba(129, 199, 132, 0.4) !important;
}
.taskDialog :deep(.el-select .el-input__inner:focus) {
border-color: #4caf50 !important;
}
.dialog-footer {
text-align: right;
margin-top: 20px;
}
:deep(.el-select-dropdown) {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
border-radius: 10px !important;
box-shadow: 0 8px 20px rgba(76, 175, 80, 0.15) !important;
}
:deep(.el-select-dropdown .el-select-dropdown__item) {
color: #2e4b31 !important;
}
:deep(.el-select-dropdown .el-select-dropdown__item:hover) {
background: rgba(129, 199, 132, 0.2) !important;
color: #1b5e20 !important;
}
:deep(.el-select-dropdown .el-select-dropdown__item.selected) {
background: rgba(76, 175, 80, 0.25) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
}
</style>
<style>
/* 全局表格样式覆盖 */
#tableStyle.el-table {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
border-radius: 16px !important;
overflow: hidden !important;
}
#tableStyle.el-table.el-table--border {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
}
#tableStyle.el-table.el-table--border::after,
#tableStyle.el-table.el-table--border::before {
background-color: rgba(129, 199, 132, 0.3) !important;
}
#tableStyle.el-table.el-table--border th {
border-right: 1px solid rgba(129, 199, 132, 0.25) !important;
}
#tableStyle.el-table.el-table--border th:last-child {
border-right: none !important;
}
#tableStyle.el-table.el-table--border td {
border-right: 1px solid rgba(76, 175, 80, 0.08) !important;
}
#tableStyle.el-table.el-table--border td:last-child {
border-right: none !important;
}
#tableStyle.el-table.el-table--striped .el-table__body tr.el-table__row--striped td {
background: rgba(233, 247, 235, 0.65) !important;
}
#tableStyle.el-table.el-table--striped .el-table__body tr.el-table__row--striped:hover td {
background: rgba(200, 230, 201, 0.5) !important;
}
/* 表头样式全局覆盖 */
#tableStyle.el-table .el-table__header-wrapper th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
#tableStyle.el-table .el-table__header-wrapper thead th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
}
#tableStyle.el-table .el-table__header th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
}
#tableStyle.el-table .el-table__header th .cell {
color: #1b5e20 !important;
font-weight: 600 !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
#tableStyle.el-table .el-table__header th.sinCl {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
}
#tableStyle.el-table .el-table__header th.sinCl .cell {
color: #1b5e20 !important;
font-weight: 600 !important;
}
</style>

View File

@@ -1,24 +1,24 @@
<template>
<div>
<div id="buttomContain">
<div class="search-container">
<div class="task-manage-page">
<div class="toolbar-container">
<div class="search-box">
<el-input
v-model="searchKeyword"
placeholder="请输入关键词进行搜索"
prefix-icon="el-icon-search"
clearable
size="small"
style="width: 450px; margin-right: 15px;"
@input="handleSearch"
></el-input>
</div>
<div class="search-container">
<el-button id="buttonStyle" size="small" @click="addRow()"
>添加任务</el-button
>
<el-button id="buttonStyle" size="small" @click="addXml()"
>导入xml文件</el-button
></div>
<div class="toolbar-actions">
<el-button class="forest-btn" size="medium" icon="el-icon-plus" @click="addRow()"
>添加任务</el-button
>
<el-button class="forest-btn ghost" size="medium" icon="el-icon-upload" @click="addXml()"
>导入xml文件</el-button
>
</div>
</div>
<el-table
id="tableStyle"
@@ -65,7 +65,8 @@
<template slot-scope="scope">
<el-switch
v-model="scope.row.isReviewerRestricted"
active-color="#9DBBE7"
active-color="#4CAF50"
inactive-color="#E0E0E0"
@change="
changeRestricted(scope.row.id, scope.row.isReviewerRestricted)
"
@@ -192,7 +193,9 @@
<el-input v-model="form.introduction"></el-input>
</el-form-item>
</el-form>
<el-button type="primary" size="small" @click="Upload()">确认</el-button>
<div class="dialog-footer">
<el-button class="forest-btn" size="medium" @click="Upload()">确认</el-button>
</div>
</el-dialog>
<el-dialog
v-dialogDrag
@@ -239,9 +242,11 @@
</el-form-item>
</el-form>
</div>
<el-button type="primary" size="small" @click="UploadXml()"
>确认</el-button
>
<div class="dialog-footer">
<el-button class="forest-btn" size="medium" @click="UploadXml()"
>确认</el-button
>
</div>
</el-dialog>
</div>
</template>
@@ -707,21 +712,461 @@ export default {
</script>
<style scoped>
#buttomContain {
right: 25px;
position: absolute;
display: flex;
align-items: center;
justify-content: space-between; /* 让搜索容器和按钮分别靠左和靠右 */
width: calc(100% - 50px); /* 设置容器宽度,减去左右边距 */
.task-manage-page {
padding: 24px 28px 40px;
background: linear-gradient(135deg, #edf7ef 0%, #fdfefe 100%);
min-height: calc(100vh - 120px);
box-sizing: border-box;
border-radius: 20px;
box-shadow: 0 14px 32px rgba(76, 175, 80, 0.12);
border: 1px solid rgba(129, 199, 132, 0.25);
}
.search-container {
/* 移除右边距,让搜索容器靠左 */
.toolbar-container {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.search-box {
flex: 0 0 auto;
width: 450px;
}
:deep(.search-box .el-input) {
width: 100%;
}
.toolbar-actions {
display: flex;
gap: 16px;
flex: 0 0 auto;
}
.forest-btn {
background: linear-gradient(135deg, #4caf50 0%, #2e7d32 100%);
border: none;
color: #fff;
border-radius: 12px;
padding: 0 26px;
min-height: 38px;
font-weight: 600;
letter-spacing: 0.5px;
font-size: 15px;
box-shadow: 0 8px 18px rgba(76, 175, 80, 0.35);
}
.forest-btn.ghost {
background: rgba(255, 255, 255, 0.95);
color: #2e7d32;
border: 1px solid #66bb6a;
box-shadow: 0 5px 14px rgba(76, 175, 80, 0.2);
}
.forest-btn:hover {
filter: brightness(1.05);
}
#tableStyle {
top: 40px;
margin-bottom: 30px;
background: rgba(255, 255, 255, 0.92);
border-radius: 16px;
overflow: hidden;
border: 1px solid rgba(129, 199, 132, 0.3);
box-shadow: 0 14px 28px rgba(76, 175, 80, 0.12);
}
:deep(#tableStyle .el-table__header-wrapper th) {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
:deep(#tableStyle .el-table__body-wrapper td) {
color: #2e4b31;
border-bottom: 1px solid rgba(76, 175, 80, 0.08);
}
:deep(#tableStyle .el-table__body tr:hover > td) {
background: rgba(129, 199, 132, 0.15) !important;
color: #1b5e20;
}
:deep(#tableStyle .el-table__row--striped td) {
background: rgba(233, 247, 235, 0.65);
}
:deep(#tableStyle .el-table__row.current-row > td) {
background: rgba(76, 175, 80, 0.18) !important;
color: #1b5e20;
}
:deep(#tableStyle .el-table__body tr) {
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
:deep(#tableStyle .el-table__body tr:hover) {
transform: translateY(-1px);
box-shadow: inset 0 2px 0 rgba(76, 175, 80, 0.15);
}
/* Element UI 表格默认类名主题化 */
:deep(#tableStyle .el-table) {
background: transparent !important;
border: none !important;
}
:deep(#tableStyle .el-table.el-table--fit) {
border: none !important;
}
:deep(#tableStyle .el-table.el-table--border) {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
border-radius: 16px !important;
overflow: hidden !important;
}
:deep(#tableStyle .el-table.el-table--border::after) {
background-color: rgba(129, 199, 132, 0.3) !important;
}
:deep(#tableStyle .el-table.el-table--border::before) {
background-color: rgba(129, 199, 132, 0.3) !important;
}
:deep(#tableStyle .el-table.el-table--border th) {
border-right: 1px solid rgba(129, 199, 132, 0.25) !important;
}
:deep(#tableStyle .el-table.el-table--border th:last-child) {
border-right: none !important;
}
:deep(#tableStyle .el-table.el-table--border td) {
border-right: 1px solid rgba(76, 175, 80, 0.08) !important;
}
:deep(#tableStyle .el-table.el-table--border td:last-child) {
border-right: none !important;
}
:deep(#tableStyle .el-table.el-table--striped .el-table__body tr.el-table__row--striped) {
background: rgba(233, 247, 235, 0.65) !important;
}
:deep(#tableStyle .el-table.el-table--striped .el-table__body tr.el-table__row--striped:hover) {
background: rgba(200, 230, 201, 0.5) !important;
}
:deep(#tableStyle .el-table.el-table--striped .el-table__body tr.el-table__row--striped td) {
background: rgba(233, 247, 235, 0.65) !important;
}
:deep(#tableStyle .el-table.el-table--striped .el-table__body tr.el-table__row--striped:hover td) {
background: rgba(200, 230, 201, 0.5) !important;
}
/* 滚动条样式 */
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper) {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar) {
height: 8px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-track) {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb) {
background: linear-gradient(90deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb:hover) {
background: linear-gradient(90deg, #66bb6a, #4caf50) !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper) {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar) {
width: 8px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-track) {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb) {
background: linear-gradient(180deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
:deep(#tableStyle .el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb:hover) {
background: linear-gradient(180deg, #66bb6a, #4caf50) !important;
}
/* 表格内按钮和开关样式 */
:deep(#tableStyle .el-button--text) {
color: #2e7d32;
font-weight: 500;
padding: 6px 12px;
border-radius: 8px;
transition: all 0.3s ease;
}
:deep(#tableStyle .el-button--text:hover) {
color: #1b5e20;
background: rgba(129, 199, 132, 0.2);
transform: translateY(-1px);
}
:deep(#tableStyle .el-switch.is-checked .el-switch__core) {
background-color: #4caf50 !important;
border-color: #4caf50 !important;
}
:deep(#tableStyle .el-switch__core) {
border-color: rgba(129, 199, 132, 0.5) !important;
background-color: #e0e0e0 !important;
transition: all 0.3s ease !important;
}
:deep(#tableStyle .el-switch.is-checked .el-switch__core::after) {
background-color: #ffffff !important;
}
:deep(#tableStyle .el-switch__core::after) {
background-color: #ffffff !important;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15) !important;
}
:deep(#tableStyle .el-switch:hover .el-switch__core) {
border-color: rgba(76, 175, 80, 0.8) !important;
}
:deep(#tableStyle .el-switch.is-checked:hover .el-switch__core) {
background-color: #66bb6a !important;
border-color: #66bb6a !important;
}
.taskDialog :deep(.el-dialog) {
border-radius: 18px;
border: 1px solid rgba(129, 199, 132, 0.35);
box-shadow: 0 12px 30px rgba(76, 175, 80, 0.18);
}
.taskDialog :deep(.el-dialog__header) {
background: linear-gradient(135deg, #4caf50, #2e7d32);
color: #fff;
border-radius: 18px 18px 0 0;
}
.taskDialog :deep(.el-form-item__label) {
color: #1b5e20;
font-weight: 600;
}
.dialog-footer {
text-align: right;
margin-top: 12px;
}
</style>
<style>
/* 全局表格样式覆盖 - 确保主题样式生效 */
#tableStyle.el-table {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
border-radius: 16px !important;
overflow: hidden !important;
}
#tableStyle.el-table.el-table--border {
border: 1px solid rgba(129, 199, 132, 0.3) !important;
}
#tableStyle.el-table.el-table--border::after,
#tableStyle.el-table.el-table--border::before {
background-color: rgba(129, 199, 132, 0.3) !important;
}
#tableStyle.el-table.el-table--border th {
border-right: 1px solid rgba(129, 199, 132, 0.25) !important;
}
#tableStyle.el-table.el-table--border th:last-child {
border-right: none !important;
}
#tableStyle.el-table.el-table--border td {
border-right: 1px solid rgba(76, 175, 80, 0.08) !important;
}
#tableStyle.el-table.el-table--border td:last-child {
border-right: none !important;
}
#tableStyle.el-table.el-table--striped .el-table__body tr.el-table__row--striped td {
background: rgba(233, 247, 235, 0.65) !important;
}
#tableStyle.el-table.el-table--striped .el-table__body tr.el-table__row--striped:hover td {
background: rgba(200, 230, 201, 0.5) !important;
}
/* 滚动条全局样式 */
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar {
height: 8px !important;
}
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-track {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb {
background: linear-gradient(90deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
#tableStyle.el-table.el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
background: linear-gradient(90deg, #66bb6a, #4caf50) !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper {
scrollbar-width: thin !important;
scrollbar-color: rgba(76, 175, 80, 0.4) rgba(232, 245, 233, 0.5) !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar {
width: 8px !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-track {
background: rgba(232, 245, 233, 0.5) !important;
border-radius: 4px !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb {
background: linear-gradient(180deg, #81c784, #66bb6a) !important;
border-radius: 4px !important;
}
#tableStyle.el-table.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
background: linear-gradient(180deg, #66bb6a, #4caf50) !important;
}
/* 表头样式全局覆盖 */
#tableStyle.el-table .el-table__header-wrapper th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
padding: 12px 0 !important;
text-align: center !important;
}
#tableStyle.el-table .el-table__header-wrapper thead th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
}
#tableStyle.el-table .el-table__header th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
}
#tableStyle.el-table .el-table__header th .cell {
color: #1b5e20 !important;
font-weight: 600 !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
/* 覆盖自定义表头类名 sinCl */
#tableStyle.el-table .el-table__header th.sinCl {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
font-size: 14px !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
#tableStyle.el-table .el-table__header th.sinCl .cell {
color: #1b5e20 !important;
font-weight: 600 !important;
}
/* 更通用的表头选择器 */
#tableStyle.el-table th,
#tableStyle.el-table thead th,
#tableStyle.el-table .el-table__header th,
#tableStyle.el-table .el-table__header-wrapper th {
background: linear-gradient(90deg, #e0f0e2, #f2fbf3) !important;
color: #1b5e20 !important;
font-weight: 600 !important;
border-bottom: 1px solid rgba(129, 199, 132, 0.35) !important;
}
#tableStyle.el-table th .cell,
#tableStyle.el-table thead th .cell,
#tableStyle.el-table .el-table__header th .cell {
color: #1b5e20 !important;
font-weight: 600 !important;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif !important;
}
/* Switch 组件全局样式 */
#tableStyle .el-switch {
display: inline-block;
}
#tableStyle .el-switch.is-checked .el-switch__core {
background-color: #4caf50 !important;
border-color: #4caf50 !important;
}
#tableStyle .el-switch__core {
border-color: rgba(129, 199, 132, 0.5) !important;
background-color: #e0e0e0 !important;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
#tableStyle .el-switch.is-checked .el-switch__core::after {
background-color: #ffffff !important;
}
#tableStyle .el-switch__core::after {
background-color: #ffffff !important;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15) !important;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
#tableStyle .el-switch:hover .el-switch__core {
border-color: rgba(76, 175, 80, 0.8) !important;
}
#tableStyle .el-switch.is-checked:hover .el-switch__core {
background-color: #66bb6a !important;
border-color: #66bb6a !important;
}
#tableStyle .el-switch.is-disabled .el-switch__core {
background-color: #f5f5f5 !important;
border-color: #e0e0e0 !important;
opacity: 0.6 !important;
}
#tableStyle .el-switch.is-disabled.is-checked .el-switch__core {
background-color: rgba(76, 175, 80, 0.4) !important;
border-color: rgba(76, 175, 80, 0.4) !important;
}
</style>

View File

@@ -206,20 +206,24 @@ body {
position: fixed;
height: 100%;
width: 100%;
/*background: url(../../assets/images/background.jpg) no-repeat;
background-size:100% 100%;
background-attachment:fixed;*/
background: linear-gradient(160deg, rgba(232, 245, 233, 0.95), rgba(248, 253, 249, 0.9));
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
padding: 80px 20px 40px;
overflow-y: auto;
.tips {
font-size: 14px;
color: #fff;
margin-bottom: 10px;
}
.title {
font-family: PingFangSC-Regular;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
font-size: 24px;
font-weight: 600;
color: #2c3e50;
background: linear-gradient(135deg, rgba(157, 187, 231, 0.15) 0%, rgba(157, 187, 231, 0.05) 100%);
font-weight: 650;
color: #1b5e20;
background: linear-gradient(135deg, rgba(129, 199, 132, 0.2) 0%, rgba(200, 230, 201, 0.2) 100%);
width: 100%;
height: 70px;
line-height: 70px;
@@ -227,7 +231,7 @@ body {
padding: 0;
text-align: center;
border-radius: 16px 16px 0 0;
border-bottom: 1px solid rgba(157, 187, 231, 0.2);
border-bottom: 1px solid rgba(129, 199, 132, 0.25);
}
.el-form-item {
margin-left: 30px;
@@ -277,12 +281,13 @@ body {
min-width: 0;
}
input {
background: transparent !important;
border: 0px !important;
padding: 14px 0px 14px 12px;
font-family: PingFangSC-Regular;
background: rgba(255, 255, 255, 0.85) !important;
border: 1px solid rgba(129, 199, 132, 0.4) !important;
padding: 14px 12px;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
font-size: 15px;
color: #2c3e50;
color: #1b5e20;
border-radius: 12px;
transition: all 0.3s ease;
height: 50px;
line-height: 50px;
@@ -291,8 +296,8 @@ body {
background: transparent !important;
border: none !important;
&::placeholder {
color: #889aa4;
font-family: PingFangSC-Regular;
color: #4e7d4f;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
font-size: 15px;
opacity: 0.7;
}
@@ -301,43 +306,31 @@ body {
}
}
.main-title {
position: absolute;
left: 0;
right: 0;
top: 45px;
margin: 0 auto;
margin: 0 0 32px 0;
font-family: "PingFang SC", "Microsoft YaHei", "SimHei", "STHeiti", "Helvetica Neue", Arial, sans-serif;
font-size: 48px;
font-size: 60px;
font-weight: 700;
color: #264672;
color: #1b5e20;
text-align: center;
width: 100%;
z-index: 1;
text-shadow: 0 2px 8px rgba(38, 70, 114, 0.2),
0 4px 16px rgba(38, 70, 114, 0.15),
0 8px 32px rgba(38, 70, 114, 0.1);
letter-spacing: 5px;
text-shadow: 0 8px 30px rgba(27, 94, 32, 0.2);
letter-spacing: 4px;
line-height: 1.4;
padding: 0 30px 25px 30px;
padding: 0 30px 120px 30px;
box-sizing: border-box;
animation: titleFadeIn 0.8s ease-out;
position: relative;
&::after {
content: '';
position: absolute;
left: 50%;
bottom: 0;
bottom: -6px;
transform: translateX(-50%);
width: 150px;
height: 4px;
background: linear-gradient(90deg,
transparent 0%,
rgba(91, 141, 239, 0.3) 20%,
#5b8def 50%,
rgba(91, 141, 239, 0.3) 80%,
transparent 100%);
background: linear-gradient(90deg, transparent 0%, rgba(129, 199, 132, 0.6) 20%, #4caf50 50%, rgba(129, 199, 132, 0.6) 80%, transparent 100%);
border-radius: 2px;
box-shadow: 0 2px 8px rgba(91, 141, 239, 0.4);
box-shadow: 0 2px 8px rgba(76, 175, 80, 0.35);
}
}
@keyframes titleFadeIn {
@@ -351,18 +344,15 @@ body {
}
}
.login-form {
position: absolute;
left: 0;
right: 0;
margin: 120px auto;
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
box-shadow: 0 8px 32px rgba(38, 70, 114, 0.15),
0 2px 8px rgba(0, 0, 0, 0.1),
inset 0 1px 0 rgba(255, 255, 255, 0.6);
border-radius: 20px;
border: 1px solid rgba(255, 255, 255, 0.3);
margin: 0 auto 40px;
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(18px);
-webkit-backdrop-filter: blur(18px);
box-shadow: 0 12px 36px rgba(76, 175, 80, 0.18),
0 4px 12px rgba(0, 0, 0, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.7);
border-radius: 24px;
border: 1px solid rgba(129, 199, 132, 0.35);
width: 420px;
min-height: 450px;
padding-bottom: 20px;
@@ -390,7 +380,7 @@ body {
width: 100%;
height: 46px;
margin: 0;
background: linear-gradient(135deg, #5b8def 0%, #4a7dd8 100%) !important;
background: linear-gradient(135deg, #4caf50 0%, #2e7d32 100%) !important;
border: none !important;
border-radius: 12px !important;
font-family: PingFangSC-Regular;
@@ -399,22 +389,22 @@ body {
color: #ffffff !important;
letter-spacing: 1px;
text-align: center;
box-shadow: 0 4px 14px rgba(91, 141, 239, 0.4),
0 2px 4px rgba(91, 141, 239, 0.2);
box-shadow: 0 4px 14px rgba(76, 175, 80, 0.35),
0 2px 4px rgba(76, 175, 80, 0.2);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
position: relative;
overflow: hidden;
&:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(91, 141, 239, 0.5),
0 4px 8px rgba(91, 141, 239, 0.3);
background: linear-gradient(135deg, #6b9dff 0%, #5a8de8 100%) !important;
box-shadow: 0 6px 20px rgba(76, 175, 80, 0.45),
0 4px 8px rgba(76, 175, 80, 0.25);
background: linear-gradient(135deg, #66bb6a 0%, #43a047 100%) !important;
}
&:active {
transform: translateY(0);
box-shadow: 0 3px 10px rgba(91, 141, 239, 0.35),
0 1px 3px rgba(91, 141, 239, 0.2);
box-shadow: 0 3px 10px rgba(76, 175, 80, 0.35),
0 1px 3px rgba(76, 175, 80, 0.18);
}
}
.register-button {
@@ -422,43 +412,43 @@ body {
height: 46px;
margin: 0;
background: rgba(255, 255, 255, 0.95) !important;
border: 1.5px solid #5b8def !important;
border: 1.5px solid #4caf50 !important;
border-radius: 12px !important;
font-family: PingFangSC-Regular;
font-size: 16px;
font-weight: 600;
color: #5b8def !important;
color: #2e7d32 !important;
letter-spacing: 1px;
text-align: center;
box-shadow: 0 2px 8px rgba(91, 141, 239, 0.2),
0 1px 3px rgba(91, 141, 239, 0.1);
box-shadow: 0 2px 8px rgba(76, 175, 80, 0.25),
0 1px 3px rgba(76, 175, 80, 0.12);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
&:hover {
transform: translateY(-2px);
background: rgba(91, 141, 239, 0.08) !important;
border-color: #6b9dff !important;
background: rgba(76, 175, 80, 0.08) !important;
border-color: #66bb6a !important;
border-width: 1.5px !important;
box-shadow: 0 4px 14px rgba(91, 141, 239, 0.3),
0 2px 6px rgba(91, 141, 239, 0.15);
color: #6b9dff !important;
box-shadow: 0 4px 14px rgba(76, 175, 80, 0.3),
0 2px 6px rgba(76, 175, 80, 0.15);
color: #2e7d32 !important;
}
&:active {
transform: translateY(0);
box-shadow: 0 2px 6px rgba(91, 141, 239, 0.25),
0 1px 2px rgba(91, 141, 239, 0.15);
box-shadow: 0 2px 6px rgba(76, 175, 80, 0.25),
0 1px 2px rgba(76, 175, 80, 0.15);
}
}
.login-text1 {
position: absolute;
left: 30px;
font-size: 13px;
color: #7a8ba3;
font-family: PingFangSC-Regular;
color: #4e7d4f;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
text-decoration: none;
transition: all 0.3s ease;
&:hover {
color: #264672;
color: #1b5e20;
text-decoration: underline;
}
}
@@ -466,29 +456,29 @@ body {
position: absolute;
right: 30px;
font-size: 13px;
color: #7a8ba3;
font-family: PingFangSC-Regular;
color: #4e7d4f;
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
text-decoration: none;
transition: all 0.3s ease;
&:hover {
color: #264672;
color: #1b5e20;
text-decoration: underline;
}
}
// Element UI 输入框图标样式
.el-input__prefix,
.el-input__suffix {
color: #7a8ba3;
color: #6f946f;
transition: all 0.3s ease;
}
.el-form-item:focus-within .el-input__prefix,
.el-form-item:focus-within .el-input__suffix {
color: #264672;
color: #1b5e20;
}
.el-input__suffix {
cursor: pointer;
&:hover {
color: #264672;
color: #1b5e20;
}
}
.extra-text {
@@ -501,19 +491,14 @@ body {
@media all and (max-width: 480px) {
.main-title {
font-size: 28px;
top: 40px;
letter-spacing: 2px;
padding: 0 20px;
padding: 0 20px 12px 20px;
line-height: 1.4;
&::before {
width: 80px;
height: 2px;
}
}
.login-form {
width: 90% !important;
max-width: 340px !important;
margin: 180px auto;
margin: 0 auto 40px;
border-radius: 16px;
}
.login-container .login-button,