diff --git a/.playwright-mcp/page-2026-04-17T07-02-11-484Z.yml b/.playwright-mcp/page-2026-04-17T07-02-11-484Z.yml new file mode 100644 index 0000000..89bc60b --- /dev/null +++ b/.playwright-mcp/page-2026-04-17T07-02-11-484Z.yml @@ -0,0 +1,3 @@ +- main [ref=e5]: + - iframe [ref=e7]: + \ No newline at end of file diff --git a/.playwright-mcp/page-2026-04-17T07-02-25-231Z.png b/.playwright-mcp/page-2026-04-17T07-02-25-231Z.png new file mode 100644 index 0000000..86a5725 Binary files /dev/null and b/.playwright-mcp/page-2026-04-17T07-02-25-231Z.png differ diff --git a/App.vue b/App.vue index ca3b3be..4ebdfce 100644 --- a/App.vue +++ b/App.vue @@ -62,15 +62,60 @@ /* #ifndef APP-NVUE */ @import '@/static/customicons.css'; /* #endif */ - // 设置整个项目的背景色 + + // ========== 浅藻绿 设计系统 ========== + $primary: #2BA471; + $primary-light: #48C68B; + $primary-dark: #1F8C5E; + $success: #2BA471; + $warning: #E37318; + $danger: #D54941; + $text-primary: #1A2E25; + $text-secondary: #3D5347; + $text-hint: #7C9488; + $bg-page: #F5FAF7; + $bg-card: #FFFFFF; + $border-color: #C4C6D0; + $radius-sm: 8rpx; + $radius-md: 12rpx; + $radius-lg: 16rpx; + $shadow-sm: 0 2rpx 8rpx rgba(25, 27, 35, 0.03); + $shadow-md: 0 8rpx 24rpx rgba(25, 27, 35, 0.06); + $shadow-lg: 0 12rpx 40rpx rgba(25, 27, 35, 0.08); + + // Precision Ethereal - Tonal Surface System page { - background-color: #f7f7f7; + background-color: $bg-page; + font-family: 'Inter', 'PingFang SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; + -webkit-font-smoothing: antialiased; } + .container { - color: #333; - padding: 0rpx 12rpx; - background-color: #fff; + color: $text-primary; + padding: 0rpx 20rpx; + background-color: transparent; + min-height: 100vh; } + + // ========== 卡片组件 ========== + .card { + background-color: $bg-card; + border-radius: $radius-lg; + padding: 28rpx 24rpx; + margin-bottom: 20rpx; + box-shadow: $shadow-sm; + } + + .card-title { + font-size: 30rpx; + font-weight: 600; + color: $text-primary; + margin-bottom: 16rpx; + padding-left: 16rpx; + border-left: 6rpx solid $primary; + } + + // ========== 表单美化 ========== .uni-forms-item { margin-bottom: 8rpx !important; } @@ -81,72 +126,152 @@ display: flex; align-items: center; } + + // 表单容器卡片样式 + .form-card { + background-color: $bg-card; + border-radius: $radius-lg; + padding: 20rpx 24rpx; + margin: 16rpx 0; + box-shadow: $shadow-sm; + } + + // ========== 按钮美化 ========== + .btn-primary { + background: linear-gradient(135deg, $primary, $primary-dark) !important; + color: #fff !important; + border: none !important; + border-radius: $radius-md !important; + font-weight: 500; + letter-spacing: 2rpx; + box-shadow: 0 4rpx 12rpx rgba(43, 164, 113, 0.2); + &:active { + opacity: 0.85; + transform: scale(0.98); + } + } + + .btn-danger { + background: linear-gradient(135deg, $danger, #DC2626) !important; + color: #fff !important; + border: none !important; + border-radius: $radius-md !important; + font-weight: 500; + box-shadow: 0 4rpx 12rpx rgba(239, 68, 68, 0.3); + } + + // ========== 对话框美化 ========== .dialogWrap { position: fixed; width: 100vw; height: 100vh; - background-color: rgba(0, 0, 0, .3); + background-color: rgba(28, 25, 23, 0.5); top: 0; left: 0; z-index: 110; } - + .dialogCont { - width: 92vw; + width: 88vw; position: absolute; top: 50%; margin: auto; - background-color: #ffffff; - left: 2vw; + background-color: $bg-card; + left: 6vw; transform: translateY(-50%); - padding: 10rpx; - border-radius: 20rpx; + padding: 32rpx; + border-radius: $radius-lg; + box-shadow: $shadow-lg; } - + .dialogTitle { - font-size: 28rpx; - padding-bottom: 12rpx; - border-bottom: 1upx solid #eeeeee; + font-size: 32rpx; + font-weight: 600; + color: $text-primary; + padding-bottom: 20rpx; display: flex; justify-content: space-between; + align-items: center; } + + // ========== 固定头部/底部 ========== .header_sticky { position: -webkit-sticky; position: sticky; - top: 90rpx; + top: 0; z-index: 10; - background-color: white; + background-color: $bg-card; display: flex; align-items: center; justify-content: space-between; + padding: 12rpx 8rpx; + border-radius: 0 0 $radius-md $radius-md; + box-shadow: $shadow-sm; } .header_fixed { position: fixed; width: 100%; top: env(safe-area-inset-top)px; z-index: 1; - background-color: white; + background-color: $bg-card; } + .footer_sticky { position: sticky; bottom: 0; left: 0; right: 0; - background-color: #fff; - padding: 12rpx; - box-shadow: 0 -2rpx 8rpx rgba(0, 0, 0, 0.1); + background-color: $bg-card; + padding: 16rpx 24rpx; + box-shadow: 0 -4rpx 16rpx rgba(28, 25, 23, 0.06); z-index: 10; + border-radius: $radius-lg $radius-lg 0 0; } - .footer_fixed{ + .footer_fixed { position: fixed; width: 100%; bottom: 0; - z-index: 1; - height: 60upx; - padding: 12upx; + z-index: 100; + padding: 16rpx 24rpx; left: 0; - background-color: white; + background-color: rgba(245, 250, 247, 0.88); + -webkit-backdrop-filter: blur(20px); + backdrop-filter: blur(20px); display: flex; - margin: auto; + align-items: center; + justify-content: center; + gap: 16rpx; + box-sizing: border-box; + padding-bottom: calc(16rpx + env(safe-area-inset-bottom)); + } + + // ========== 状态标签美化 ========== + .status-tag { + display: inline-flex; + align-items: center; + padding: 4rpx 16rpx; + border-radius: 20rpx; + font-size: 22rpx; + font-weight: 500; + } + + // ========== 空状态提示 ========== + .empty-hint { + text-align: center; + padding: 80rpx 0; + color: $text-hint; + font-size: 28rpx; + } + + // ========== 分割线 ========== + .divider { + height: 1rpx; + background-color: $border-color; + margin: 16rpx 0; + } + + // ========== 段落间距 ========== + .section-gap { + height: 20rpx; } diff --git a/pages.json b/pages.json index dc4ea0a..6b5180e 100644 --- a/pages.json +++ b/pages.json @@ -161,21 +161,27 @@ }, { "path" : "pages/hrm/probation_form", - "style" : + "style" : { "navigationBarTitleText" : "劳动合同续签" } + }, + { + "path" : "pages/hrm/empcontract_form", + "style" : + { + "navigationBarTitleText" : "合同变更" + } } ], "globalStyle": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "uni-app", - "navigationBarBackgroundColor": "#FFFFFF", - "backgroundColor": "#FFFFFF", - // "backgroundColor": "#F8F8F8", + "navigationBarTextStyle": "white", + "navigationBarTitleText": "", + "navigationBarBackgroundColor": "#2BA471", + "backgroundColor": "#F5FAF7", "app-plus": { - "background": "#efeff4" + "background": "#F5FAF7" } } // "tabBar": { diff --git a/pages/asm/assetlogin_form.vue b/pages/asm/assetlogin_form.vue index e72fede..d56474d 100644 --- a/pages/asm/assetlogin_form.vue +++ b/pages/asm/assetlogin_form.vue @@ -1,11 +1,16 @@ @@ -248,7 +247,15 @@ export default { } } - diff --git a/pages/auth/login.vue b/pages/auth/login.vue index eccef4a..c9cd503 100644 --- a/pages/auth/login.vue +++ b/pages/auth/login.vue @@ -1,47 +1,61 @@ @@ -370,8 +384,188 @@ } - \ No newline at end of file diff --git a/pages/em/repair_form.vue b/pages/em/repair_form.vue index 9ddcf63..1e3a994 100644 --- a/pages/em/repair_form.vue +++ b/pages/em/repair_form.vue @@ -1,9 +1,13 @@