|
@@ -0,0 +1,2012 @@
|
|
|
+// 引入iOS主题样式
|
|
|
+@use '../../../../../shared/styles/ios-theme' as ios;
|
|
|
+@use '../../../../../shared/styles/variables';
|
|
|
+
|
|
|
+// 参考HR考勤页面的设计风格,使用iOS主题变量
|
|
|
+$primary-color: ios.$ios-primary;
|
|
|
+$primary-light: #3b82f6;
|
|
|
+$secondary-color: #0d9488;
|
|
|
+$success-color: ios.$ios-success;
|
|
|
+$warning-color: ios.$ios-warning;
|
|
|
+$error-color: ios.$ios-error;
|
|
|
+$info-color: ios.$ios-info;
|
|
|
+$text-primary: ios.$ios-text-primary;
|
|
|
+$text-secondary: ios.$ios-text-secondary;
|
|
|
+$text-tertiary: ios.$ios-text-tertiary;
|
|
|
+$bg-primary: ios.$ios-background;
|
|
|
+$bg-secondary: ios.$ios-background-secondary;
|
|
|
+$bg-tertiary: ios.$ios-background-tertiary;
|
|
|
+$border-color: ios.$ios-border;
|
|
|
+$shadow-sm: ios.$ios-shadow-sm;
|
|
|
+$shadow-md: ios.$ios-shadow-md;
|
|
|
+$shadow-lg: ios.$ios-shadow-lg;
|
|
|
+$border-radius: ios.$ios-radius-md;
|
|
|
+$transition: all 0.2s ease;
|
|
|
+
|
|
|
+// 主容器样式
|
|
|
+.after-sales-container {
|
|
|
+ padding: 24px;
|
|
|
+ min-height: 100vh;
|
|
|
+ background-color: $bg-secondary;
|
|
|
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
|
+}
|
|
|
+
|
|
|
+// 页面标题
|
|
|
+.page-header {
|
|
|
+ margin-bottom: 24px;
|
|
|
+ padding-bottom: 16px;
|
|
|
+ border-bottom: 2px solid $border-color;
|
|
|
+
|
|
|
+ h1 {
|
|
|
+ font-size: 28px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: $text-primary;
|
|
|
+ margin: 0 0 8px 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .page-description {
|
|
|
+ font-size: 16px;
|
|
|
+ color: $text-secondary;
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 统计数据看板
|
|
|
+.stats-dashboard {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
|
+ gap: 16px;
|
|
|
+ margin-bottom: 24px;
|
|
|
+
|
|
|
+ .stat-card {
|
|
|
+ background-color: $bg-primary;
|
|
|
+ border-radius: $border-radius;
|
|
|
+ padding: 20px;
|
|
|
+ box-shadow: $shadow-sm;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 16px;
|
|
|
+ transition: $transition;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ box-shadow: $shadow-md;
|
|
|
+ transform: translateY(-2px);
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-icon {
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+ border-radius: 50%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ color: white;
|
|
|
+
|
|
|
+ &.total {
|
|
|
+ background-color: $primary-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.pending {
|
|
|
+ background-color: $warning-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.overdue {
|
|
|
+ background-color: $error-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.review {
|
|
|
+ background-color: $secondary-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.priority {
|
|
|
+ background-color: $info-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 24px;
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-content {
|
|
|
+ flex: 1;
|
|
|
+
|
|
|
+ .stat-value {
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: $text-primary;
|
|
|
+ margin-bottom: 4px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-label {
|
|
|
+ font-size: 14px;
|
|
|
+ color: $text-secondary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 搜索和筛选栏
|
|
|
+.filter-bar {
|
|
|
+ background-color: $bg-primary;
|
|
|
+ border-radius: $border-radius;
|
|
|
+ padding: 20px;
|
|
|
+ margin-bottom: 24px;
|
|
|
+ box-shadow: $shadow-sm;
|
|
|
+
|
|
|
+ .search-section {
|
|
|
+ margin-bottom: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ .search-field {
|
|
|
+ width: 100%;
|
|
|
+ max-width: 400px;
|
|
|
+
|
|
|
+ .mat-mdc-form-field {
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+
|
|
|
+ .mat-mdc-text-field-wrapper {
|
|
|
+ background: white;
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-form-field-infix {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ padding: ios.$ios-spacing-sm;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.mat-focused .mat-mdc-text-field-wrapper {
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ box-shadow: 0 0 0 2px rgba(0, 122, 255, 0.1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .filter-section {
|
|
|
+ display: flex;
|
|
|
+ gap: ios.$ios-spacing-md;
|
|
|
+ flex-wrap: wrap;
|
|
|
+
|
|
|
+ .filter-field {
|
|
|
+ min-width: 150px;
|
|
|
+
|
|
|
+ .mat-mdc-form-field {
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+
|
|
|
+ .mat-mdc-text-field-wrapper {
|
|
|
+ background: white;
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-form-field-infix {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ padding: ios.$ios-spacing-sm;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 选择框样式
|
|
|
+ .mat-mdc-select-value {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ padding: ios.$ios-spacing-sm 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-select-arrow {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ transition: transform 0.3s ease;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.mat-focused {
|
|
|
+ .mat-mdc-text-field-wrapper {
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ box-shadow: 0 0 0 2px rgba(0, 122, 255, 0.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-select-arrow {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 项目列表
|
|
|
+.projects-list {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 16px;
|
|
|
+
|
|
|
+ .project-card {
|
|
|
+ background-color: $bg-primary;
|
|
|
+ border-radius: $border-radius;
|
|
|
+ padding: 24px;
|
|
|
+ box-shadow: $shadow-sm;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: $transition;
|
|
|
+ border: 2px solid transparent;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ box-shadow: $shadow-md;
|
|
|
+ transform: translateY(-2px);
|
|
|
+ border-color: $primary-light;
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-header {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: flex-start;
|
|
|
+ margin-bottom: 16px;
|
|
|
+
|
|
|
+ .project-info {
|
|
|
+ flex: 1;
|
|
|
+
|
|
|
+ .project-name {
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: $text-primary;
|
|
|
+ margin: 0 0 8px 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-meta {
|
|
|
+ display: flex;
|
|
|
+ gap: 16px;
|
|
|
+ flex-wrap: wrap;
|
|
|
+
|
|
|
+ span {
|
|
|
+ font-size: 14px;
|
|
|
+ color: $text-secondary;
|
|
|
+
|
|
|
+ &.project-code {
|
|
|
+ font-weight: 500;
|
|
|
+ color: $primary-color;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .priority-badge {
|
|
|
+ padding: 4px 12px;
|
|
|
+ border-radius: 20px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+
|
|
|
+ &.priority-high {
|
|
|
+ background-color: rgba($error-color, 0.1);
|
|
|
+ color: $error-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.priority-medium {
|
|
|
+ background-color: rgba($warning-color, 0.1);
|
|
|
+ color: $warning-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.priority-low {
|
|
|
+ background-color: rgba($success-color, 0.1);
|
|
|
+ color: $success-color;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-content {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
|
+ gap: 20px;
|
|
|
+ margin-bottom: 16px;
|
|
|
+
|
|
|
+ .status-section {
|
|
|
+ .status-item {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 8px;
|
|
|
+
|
|
|
+ .status-label {
|
|
|
+ font-size: 14px;
|
|
|
+ color: $text-secondary;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
+
|
|
|
+ .status-value {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+
|
|
|
+ .status-badge {
|
|
|
+ padding: 4px 8px;
|
|
|
+ border-radius: 4px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+
|
|
|
+ &.status-pending {
|
|
|
+ background-color: rgba($warning-color, 0.1);
|
|
|
+ color: $warning-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-partial {
|
|
|
+ background-color: rgba($info-color, 0.1);
|
|
|
+ color: $info-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-completed {
|
|
|
+ background-color: rgba($success-color, 0.1);
|
|
|
+ color: $success-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-overdue {
|
|
|
+ background-color: rgba($error-color, 0.1);
|
|
|
+ color: $error-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.review-pending {
|
|
|
+ background-color: rgba($warning-color, 0.1);
|
|
|
+ color: $warning-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.review-positive {
|
|
|
+ background-color: rgba($success-color, 0.1);
|
|
|
+ color: $success-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.review-negative {
|
|
|
+ background-color: rgba($error-color, 0.1);
|
|
|
+ color: $error-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.review-none {
|
|
|
+ background-color: rgba($text-tertiary, 0.1);
|
|
|
+ color: $text-tertiary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-score {
|
|
|
+ display: flex;
|
|
|
+ gap: 2px;
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 16px;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ color: $text-tertiary;
|
|
|
+
|
|
|
+ &.filled {
|
|
|
+ color: $warning-color;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .suggestion-count {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+ color: $text-primary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .payment-progress {
|
|
|
+ margin-top: 8px;
|
|
|
+
|
|
|
+ .progress-info {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 4px;
|
|
|
+ font-size: 12px;
|
|
|
+ color: $text-secondary;
|
|
|
+
|
|
|
+ .progress-percent {
|
|
|
+ font-weight: 600;
|
|
|
+ color: $text-primary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .progress-bar {
|
|
|
+ width: 100%;
|
|
|
+ height: 6px;
|
|
|
+ background-color: $bg-tertiary;
|
|
|
+ border-radius: 3px;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ .progress-fill {
|
|
|
+ height: 100%;
|
|
|
+ background-color: $success-color;
|
|
|
+ transition: width 0.3s ease;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-footer {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ padding-top: 16px;
|
|
|
+ border-top: 1px solid $border-color;
|
|
|
+
|
|
|
+ .last-contact {
|
|
|
+ font-size: 14px;
|
|
|
+ color: $text-secondary;
|
|
|
+ }
|
|
|
+
|
|
|
+ .action-hint {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 4px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: $primary-color;
|
|
|
+ font-weight: 500;
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 16px;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .empty-state {
|
|
|
+ text-align: center;
|
|
|
+ padding: 60px 20px;
|
|
|
+ background-color: $bg-primary;
|
|
|
+ border-radius: $border-radius;
|
|
|
+ box-shadow: $shadow-sm;
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 64px;
|
|
|
+ width: 64px;
|
|
|
+ height: 64px;
|
|
|
+ color: $text-tertiary;
|
|
|
+ margin-bottom: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
+ h3 {
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: $text-primary;
|
|
|
+ margin: 0 0 8px 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ p {
|
|
|
+ font-size: 14px;
|
|
|
+ color: $text-secondary;
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 详情视图
|
|
|
+.detail-view {
|
|
|
+ .detail-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 16px;
|
|
|
+ margin-bottom: 24px;
|
|
|
+ padding-bottom: 16px;
|
|
|
+ border-bottom: 2px solid $border-color;
|
|
|
+
|
|
|
+ .back-button {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ padding: 8px 16px;
|
|
|
+ background: transparent;
|
|
|
+ border: 1px solid $border-color;
|
|
|
+ border-radius: $border-radius;
|
|
|
+ color: $text-secondary;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: $transition;
|
|
|
+ font-size: 14px;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: $primary-color;
|
|
|
+ background-color: $bg-tertiary;
|
|
|
+ border-color: $primary-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 18px;
|
|
|
+ width: 18px;
|
|
|
+ height: 18px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-info {
|
|
|
+ flex: 1;
|
|
|
+
|
|
|
+ h1 {
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: $text-primary;
|
|
|
+ margin: 0 0 8px 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-code,
|
|
|
+ .customer-name {
|
|
|
+ display: inline-block;
|
|
|
+ margin-right: 16px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: $text-secondary;
|
|
|
+
|
|
|
+ &.project-code {
|
|
|
+ font-weight: 500;
|
|
|
+ color: $primary-color;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 详情页面标签
|
|
|
+ .detail-tabs {
|
|
|
+ display: flex;
|
|
|
+ gap: 8px;
|
|
|
+ margin-bottom: 24px;
|
|
|
+ border-bottom: 1px solid $border-color;
|
|
|
+
|
|
|
+ .tab-button {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ padding: 12px 20px;
|
|
|
+ background: transparent;
|
|
|
+ border: none;
|
|
|
+ border-bottom: 2px solid transparent;
|
|
|
+ color: $text-secondary;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: $transition;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: $primary-color;
|
|
|
+ background-color: $bg-tertiary;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.active {
|
|
|
+ color: $primary-color;
|
|
|
+ border-bottom-color: $primary-color;
|
|
|
+ background-color: $bg-tertiary;
|
|
|
+ }
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 18px;
|
|
|
+ width: 18px;
|
|
|
+ height: 18px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 模块通用样式
|
|
|
+ .module-header {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 20px;
|
|
|
+
|
|
|
+ h3 {
|
|
|
+ margin: 0;
|
|
|
+ color: $text-primary;
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-button,
|
|
|
+ .add-review-button {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ padding: 8px 16px;
|
|
|
+ background-color: $primary-color;
|
|
|
+ color: white;
|
|
|
+ border: none;
|
|
|
+ border-radius: $border-radius;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: $transition;
|
|
|
+ font-size: 14px;
|
|
|
+
|
|
|
+ &:hover:not(:disabled) {
|
|
|
+ background-color: $primary-light;
|
|
|
+ transform: translateY(-1px);
|
|
|
+ }
|
|
|
+
|
|
|
+ &:disabled {
|
|
|
+ opacity: 0.6;
|
|
|
+ cursor: not-allowed;
|
|
|
+ }
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 16px;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 尾款管理模块
|
|
|
+ .payment-management {
|
|
|
+ .payment-summary {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
|
+ gap: 16px;
|
|
|
+ margin-bottom: 24px;
|
|
|
+
|
|
|
+ .summary-item {
|
|
|
+ padding: 16px;
|
|
|
+ background-color: $bg-primary;
|
|
|
+ border: 1px solid $border-color;
|
|
|
+ border-radius: $border-radius;
|
|
|
+
|
|
|
+ .label {
|
|
|
+ display: block;
|
|
|
+ color: $text-secondary;
|
|
|
+ font-size: 12px;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .amount {
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: $text-primary;
|
|
|
+
|
|
|
+ &.paid {
|
|
|
+ color: $success-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.pending {
|
|
|
+ color: $warning-color;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .payment-records {
|
|
|
+ h4 {
|
|
|
+ margin: 0 0 16px 0;
|
|
|
+ color: $text-primary;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+
|
|
|
+ .payment-record {
|
|
|
+ background-color: $bg-primary;
|
|
|
+ border: 1px solid $border-color;
|
|
|
+ border-radius: $border-radius;
|
|
|
+ padding: 16px;
|
|
|
+ margin-bottom: 16px;
|
|
|
+
|
|
|
+ .record-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 16px;
|
|
|
+ margin-bottom: 12px;
|
|
|
+
|
|
|
+ .amount {
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: $text-primary;
|
|
|
+ }
|
|
|
+
|
|
|
+ .status {
|
|
|
+ padding: 4px 8px;
|
|
|
+ border-radius: $border-radius;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+
|
|
|
+ &.status-pending {
|
|
|
+ background-color: rgba($warning-color, 0.1);
|
|
|
+ color: $warning-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-verified {
|
|
|
+ background-color: rgba($success-color, 0.1);
|
|
|
+ color: $success-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-rejected {
|
|
|
+ background-color: rgba($error-color, 0.1);
|
|
|
+ color: $error-color;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .date {
|
|
|
+ color: $text-secondary;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .record-details {
|
|
|
+ margin-bottom: 12px;
|
|
|
+
|
|
|
+ p {
|
|
|
+ margin: 4px 0;
|
|
|
+ color: $text-primary;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .voucher-preview {
|
|
|
+ margin-top: 8px;
|
|
|
+
|
|
|
+ .voucher-image {
|
|
|
+ max-width: 200px;
|
|
|
+ max-height: 150px;
|
|
|
+ border-radius: $border-radius;
|
|
|
+ border: 1px solid $border-color;
|
|
|
+ margin-left: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .voucher-link {
|
|
|
+ display: inline-flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 4px;
|
|
|
+ color: $primary-color;
|
|
|
+ text-decoration: none;
|
|
|
+ margin-left: 8px;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ text-decoration: underline;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .status-history {
|
|
|
+ margin-top: ios.$ios-spacing-md;
|
|
|
+ background: ios.$ios-background-tertiary;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ h5 {
|
|
|
+ margin: 0 0 ios.$ios-spacing-sm 0;
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-size: ios.$ios-font-size-headline;
|
|
|
+ font-weight: ios.$ios-font-weight-semibold;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: ios.$ios-spacing-xs;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '📋';
|
|
|
+ font-size: ios.$ios-font-size-body;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .history-item {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: auto auto auto 1fr;
|
|
|
+ gap: ios.$ios-spacing-sm;
|
|
|
+ padding: ios.$ios-spacing-xs 0;
|
|
|
+ font-size: ios.$ios-font-size-caption-1;
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ border-bottom: 1px solid ios.$ios-border;
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .history-date {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 客户评价处理模块
|
|
|
+ .review-management {
|
|
|
+ .add-review-form {
|
|
|
+ background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
|
|
|
+ border: 1px solid rgba(0, 122, 255, 0.1);
|
|
|
+ border-radius: 20px;
|
|
|
+ margin-bottom: 24px;
|
|
|
+ box-shadow:
|
|
|
+ 0 8px 32px rgba(0, 0, 0, 0.08),
|
|
|
+ 0 2px 8px rgba(0, 0, 0, 0.04);
|
|
|
+ transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
|
|
+ position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ height: 4px;
|
|
|
+ background: linear-gradient(90deg, #007aff, #5ac8fa, #34c759);
|
|
|
+ border-radius: 20px 20px 0 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-2px);
|
|
|
+ box-shadow:
|
|
|
+ 0 12px 40px rgba(0, 0, 0, 0.12),
|
|
|
+ 0 4px 16px rgba(0, 0, 0, 0.08);
|
|
|
+ }
|
|
|
+
|
|
|
+ .form-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 20px 24px 16px;
|
|
|
+ border-bottom: 1px solid rgba(0, 122, 255, 0.1);
|
|
|
+ margin-bottom: 20px;
|
|
|
+
|
|
|
+ .header-content {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 12px;
|
|
|
+
|
|
|
+ .header-icon {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ font-size: 24px;
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
+ h4 {
|
|
|
+ margin: 0;
|
|
|
+ color: #1d1d1f;
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 700;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .close-button {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ background: rgba(0, 122, 255, 0.1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-form {
|
|
|
+ padding: 0 24px 24px;
|
|
|
+
|
|
|
+ .form-grid {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 20px;
|
|
|
+
|
|
|
+ .form-row {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: 1fr 1fr;
|
|
|
+ gap: 16px;
|
|
|
+
|
|
|
+ @media (max-width: 768px) {
|
|
|
+ grid-template-columns: 1fr;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 评价等级选项样式
|
|
|
+ .rating-option {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 12px;
|
|
|
+
|
|
|
+ .stars {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 2px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .star-icon {
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 1;
|
|
|
+ display: inline-block;
|
|
|
+ user-select: none;
|
|
|
+
|
|
|
+ &.filled {
|
|
|
+ color: #FFD700;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:not(.filled) {
|
|
|
+ color: #E0E0E0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 表单字段样式 - 采用人事板块的ios-select样式
|
|
|
+ .mat-mdc-form-field {
|
|
|
+ width: 100%;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ margin-bottom: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ &.ios-select {
|
|
|
+ .mat-mdc-form-field-outline {
|
|
|
+ border-radius: 12px;
|
|
|
+ border-color: rgba(0, 122, 255, 0.3);
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-form-field-outline-thick {
|
|
|
+ border-color: #007AFF;
|
|
|
+ border-width: 2px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-select-trigger {
|
|
|
+ padding: 12px 16px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #333;
|
|
|
+ min-height: 24px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-select-arrow {
|
|
|
+ color: #007AFF;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ transition: transform 0.3s ease;
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-select-value {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ min-height: 24px;
|
|
|
+ color: #333;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.mat-focused {
|
|
|
+ .mat-mdc-select-arrow {
|
|
|
+ color: #007AFF;
|
|
|
+ transform: rotate(180deg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-text-field-wrapper {
|
|
|
+ background: white;
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-form-field-infix {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ padding: ios.$ios-spacing-sm;
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-form-field-subscript-wrapper {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-form-field-error {
|
|
|
+ color: ios.$ios-error;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ font-size: ios.$ios-font-size-caption-1;
|
|
|
+ margin-top: ios.$ios-spacing-xs;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 输入框样式
|
|
|
+ .mat-mdc-input-element {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.mat-focused .mat-mdc-input-element {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .form-actions {
|
|
|
+ display: flex;
|
|
|
+ gap: ios.$ios-spacing-sm;
|
|
|
+ justify-content: flex-end;
|
|
|
+ margin-top: ios.$ios-spacing-md;
|
|
|
+ padding-top: ios.$ios-spacing-md;
|
|
|
+ border-top: 1px solid ios.$ios-border;
|
|
|
+
|
|
|
+ .mat-mdc-button {
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ padding: ios.$ios-spacing-sm ios.$ios-spacing-lg;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+
|
|
|
+ &.mat-primary {
|
|
|
+ background: ios.$ios-primary;
|
|
|
+ color: white;
|
|
|
+ border: none;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: #0056CC;
|
|
|
+ box-shadow: ios.$ios-shadow-sm;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:disabled {
|
|
|
+ background: ios.$ios-text-tertiary;
|
|
|
+ color: white;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &.mat-stroked-button {
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ box-shadow: ios.$ios-shadow-sm;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: translateY(1px);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-records {
|
|
|
+ h4 {
|
|
|
+ margin: 0 0 ios.$ios-spacing-md 0;
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-size: ios.$ios-font-size-body;
|
|
|
+ font-weight: ios.$ios-font-weight-semibold;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: ios.$ios-spacing-xs;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ width: 4px;
|
|
|
+ height: 20px;
|
|
|
+ background: ios.$ios-primary;
|
|
|
+ border-radius: 2px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-record {
|
|
|
+ background: ios.$ios-card-background;
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+ border-radius: ios.$ios-radius-lg;
|
|
|
+ padding: ios.$ios-spacing-lg;
|
|
|
+ margin-bottom: ios.$ios-spacing-md;
|
|
|
+ box-shadow: ios.$ios-shadow-sm;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-1px);
|
|
|
+ box-shadow: ios.$ios-shadow-md;
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: ios.$ios-spacing-md;
|
|
|
+ margin-bottom: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ .review-type,
|
|
|
+ .review-channel {
|
|
|
+ padding: ios.$ios-spacing-xs ios.$ios-spacing-sm;
|
|
|
+ background-color: rgba(ios.$ios-primary, 0.1);
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ font-size: ios.$ios-font-size-caption-1;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-date {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ font-size: ios.$ios-font-size-subhead;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-score {
|
|
|
+ display: flex;
|
|
|
+ gap: 2px;
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 16px;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ color: ios.$ios-border;
|
|
|
+
|
|
|
+ &.filled {
|
|
|
+ color: ios.$ios-warning;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-content {
|
|
|
+ background: ios.$ios-background-secondary;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ p {
|
|
|
+ margin: ios.$ios-spacing-xs 0;
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-size: ios.$ios-font-size-subhead;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ line-height: 1.5;
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-remark,
|
|
|
+ .review-operator {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ font-size: ios.$ios-font-size-caption-1;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .follow-up-reminder {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ margin-top: 12px;
|
|
|
+ padding: 8px;
|
|
|
+ background-color: rgba($warning-color, 0.1);
|
|
|
+ border-radius: $border-radius;
|
|
|
+ color: $warning-color;
|
|
|
+ font-size: 12px;
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 16px;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 客户建议收集与处理模块
|
|
|
+ .suggestion-management {
|
|
|
+ h3 {
|
|
|
+ margin: 0 0 ios.$ios-spacing-lg 0;
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-size: ios.$ios-font-size-title-3;
|
|
|
+ font-weight: ios.$ios-font-weight-semibold;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ width: 4px;
|
|
|
+ height: 24px;
|
|
|
+ background: ios.$ios-primary;
|
|
|
+ border-radius: 2px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .suggestion-records {
|
|
|
+ .suggestion-record {
|
|
|
+ background: ios.$ios-card-background;
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+ border-radius: ios.$ios-radius-lg;
|
|
|
+ padding: ios.$ios-spacing-lg;
|
|
|
+ margin-bottom: ios.$ios-spacing-md;
|
|
|
+ box-shadow: ios.$ios-shadow-md;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-2px);
|
|
|
+ box-shadow: ios.$ios-shadow-lg;
|
|
|
+ }
|
|
|
+
|
|
|
+ .suggestion-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: ios.$ios-spacing-md;
|
|
|
+ margin-bottom: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ .suggestion-category {
|
|
|
+ padding: ios.$ios-spacing-xs ios.$ios-spacing-sm;
|
|
|
+ background-color: rgba(ios.$ios-primary, 0.1);
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ font-size: ios.$ios-font-size-caption-1;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ }
|
|
|
+
|
|
|
+ .suggestion-status {
|
|
|
+ padding: ios.$ios-spacing-xs ios.$ios-spacing-sm;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ font-size: ios.$ios-font-size-caption-1;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+
|
|
|
+ &.status-pending {
|
|
|
+ background-color: rgba(ios.$ios-warning, 0.1);
|
|
|
+ color: ios.$ios-warning;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-processing {
|
|
|
+ background-color: rgba(ios.$ios-primary, 0.1);
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-completed {
|
|
|
+ background-color: rgba(ios.$ios-success, 0.1);
|
|
|
+ color: ios.$ios-success;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-rejected {
|
|
|
+ background-color: rgba(ios.$ios-error, 0.1);
|
|
|
+ color: ios.$ios-error;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .suggestion-priority {
|
|
|
+ padding: ios.$ios-spacing-xs ios.$ios-spacing-sm;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ font-size: ios.$ios-font-size-caption-1;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+
|
|
|
+ &.priority-high {
|
|
|
+ background-color: rgba(ios.$ios-error, 0.1);
|
|
|
+ color: ios.$ios-error;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.priority-medium {
|
|
|
+ background-color: rgba(ios.$ios-warning, 0.1);
|
|
|
+ color: ios.$ios-warning;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.priority-low {
|
|
|
+ background-color: rgba(ios.$ios-success, 0.1);
|
|
|
+ color: ios.$ios-success;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .suggestion-date {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ font-size: ios.$ios-font-size-subhead;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .suggestion-content {
|
|
|
+ background: ios.$ios-background-secondary;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+ margin-bottom: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ p {
|
|
|
+ margin: ios.$ios-spacing-xs 0;
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-size: ios.$ios-font-size-subhead;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ line-height: 1.5;
|
|
|
+ }
|
|
|
+
|
|
|
+ .suggestion-response {
|
|
|
+ margin-top: ios.$ios-spacing-sm;
|
|
|
+ padding: ios.$ios-spacing-sm;
|
|
|
+ background: ios.$ios-background-tertiary;
|
|
|
+ border-radius: ios.$ios-radius-sm;
|
|
|
+ border-left: 3px solid ios.$ios-primary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .suggestion-actions {
|
|
|
+ margin-bottom: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ .mat-mdc-button {
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ padding: ios.$ios-spacing-xs ios.$ios-spacing-md;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+ font-size: ios.$ios-font-size-caption-1;
|
|
|
+
|
|
|
+ &.mat-stroked-button {
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ box-shadow: ios.$ios-shadow-sm;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .update-form {
|
|
|
+ background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
|
|
|
+ border-radius: ios.$ios-radius-lg;
|
|
|
+ margin-top: ios.$ios-spacing-md;
|
|
|
+ margin-bottom: ios.$ios-spacing-sm;
|
|
|
+ border: 1px solid rgba(0, 122, 255, 0.1);
|
|
|
+ box-shadow:
|
|
|
+ 0 8px 32px rgba(0, 0, 0, 0.08),
|
|
|
+ 0 2px 8px rgba(0, 0, 0, 0.04);
|
|
|
+ transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
|
|
+ position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ height: 3px;
|
|
|
+ background: linear-gradient(90deg, #007aff, #5ac8fa);
|
|
|
+ border-radius: ios.$ios-radius-lg ios.$ios-radius-lg 0 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .update-form-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 16px 20px 12px;
|
|
|
+ border-bottom: 1px solid rgba(0, 122, 255, 0.1);
|
|
|
+ margin-bottom: 16px;
|
|
|
+
|
|
|
+ .header-content {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10px;
|
|
|
+
|
|
|
+ .header-icon {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ font-size: 20px;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ h5 {
|
|
|
+ margin: 0;
|
|
|
+ color: #1d1d1f;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 600;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .close-button {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ transition: all 0.2s ease;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ background: rgba(0, 122, 255, 0.1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .status-update-form {
|
|
|
+ padding: 0 20px 20px;
|
|
|
+
|
|
|
+ .form-grid {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 16px;
|
|
|
+
|
|
|
+ .form-row {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: 1fr 1fr;
|
|
|
+ gap: 16px;
|
|
|
+
|
|
|
+ @media (max-width: 768px) {
|
|
|
+ grid-template-columns: 1fr;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 状态选项样式
|
|
|
+ .status-option {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 12px;
|
|
|
+
|
|
|
+ .status-icon {
|
|
|
+ font-size: 18px;
|
|
|
+ width: 18px;
|
|
|
+ height: 18px;
|
|
|
+
|
|
|
+ &.pending {
|
|
|
+ color: ios.$ios-warning;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.processing {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.completed {
|
|
|
+ color: ios.$ios-success;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.rejected {
|
|
|
+ color: ios.$ios-error;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .status-info {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 2px;
|
|
|
+
|
|
|
+ .status-name {
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .status-desc {
|
|
|
+ font-size: 12px;
|
|
|
+ color: ios.$ios-text-tertiary;
|
|
|
+ opacity: 0.8;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 表单字段样式
|
|
|
+ .mat-mdc-form-field {
|
|
|
+ width: 100%;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+
|
|
|
+ &.status-field {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.assignee-field {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.full-width {
|
|
|
+ grid-column: 1 / -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Outline appearance 样式
|
|
|
+ &.mat-mdc-form-field-appearance-outline {
|
|
|
+ .mat-mdc-form-field-outline {
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ border-color: ios.$ios-border;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover .mat-mdc-form-field-outline {
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.mat-focused .mat-mdc-form-field-outline {
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ border-width: 2px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-form-field-infix {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ padding: 12px;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 选择框样式
|
|
|
+ .mat-mdc-select-value {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-select-arrow {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.mat-focused .mat-mdc-select-arrow {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ transform: rotate(180deg);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 输入框样式
|
|
|
+ .mat-mdc-input-element {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 标签样式
|
|
|
+ .mat-mdc-floating-label {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 提示文本样式
|
|
|
+ .mat-mdc-form-field-hint {
|
|
|
+ color: ios.$ios-text-tertiary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .form-actions {
|
|
|
+ display: flex;
|
|
|
+ gap: ios.$ios-spacing-sm;
|
|
|
+ justify-content: flex-end;
|
|
|
+ margin-top: ios.$ios-spacing-md;
|
|
|
+ padding-top: ios.$ios-spacing-md;
|
|
|
+ border-top: 1px solid ios.$ios-border;
|
|
|
+
|
|
|
+ .mat-mdc-button {
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ border-radius: ios.$ios-radius-md;
|
|
|
+ padding: ios.$ios-spacing-sm ios.$ios-spacing-lg;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+
|
|
|
+ &.mat-primary {
|
|
|
+ background: ios.$ios-primary;
|
|
|
+ color: white;
|
|
|
+ border: none;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: #0056CC;
|
|
|
+ box-shadow: ios.$ios-shadow-sm;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &.mat-stroked-button {
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: ios.$ios-primary;
|
|
|
+ border-color: ios.$ios-primary;
|
|
|
+ box-shadow: ios.$ios-shadow-sm;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: translateY(1px);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .status-history {
|
|
|
+ margin-top: ios.$ios-spacing-md;
|
|
|
+ background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
|
|
|
+ border-radius: ios.$ios-radius-lg;
|
|
|
+ padding: ios.$ios-spacing-lg;
|
|
|
+ border: 2px solid rgba(0, 122, 255, 0.1);
|
|
|
+ position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ height: 4px;
|
|
|
+ background: linear-gradient(90deg, #34c759, #30d158, #32d74b);
|
|
|
+ border-radius: ios.$ios-radius-lg ios.$ios-radius-lg 0 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ h5 {
|
|
|
+ margin: 0 0 ios.$ios-spacing-md 0;
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-size: ios.$ios-font-size-headline;
|
|
|
+ font-weight: ios.$ios-font-weight-bold;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '📋';
|
|
|
+ font-size: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .history-item {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: auto auto auto 1fr;
|
|
|
+ gap: ios.$ios-spacing-md;
|
|
|
+ padding: ios.$ios-spacing-sm 0;
|
|
|
+ font-size: ios.$ios-font-size-caption-1;
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ border-bottom: 1px solid rgba(0, 122, 255, 0.1);
|
|
|
+ transition: all 0.3s ease;
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: rgba(0, 122, 255, 0.05);
|
|
|
+ border-radius: ios.$ios-radius-sm;
|
|
|
+ padding-left: ios.$ios-spacing-sm;
|
|
|
+ padding-right: ios.$ios-spacing-sm;
|
|
|
+ }
|
|
|
+
|
|
|
+ .history-date {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-weight: ios.$ios-font-weight-semibold;
|
|
|
+ background: rgba(0, 122, 255, 0.1);
|
|
|
+ padding: 4px 8px;
|
|
|
+ border-radius: ios.$ios-radius-sm;
|
|
|
+ font-size: ios.$ios-font-size-caption-2;
|
|
|
+ }
|
|
|
+
|
|
|
+ .history-status {
|
|
|
+ padding: 4px 8px;
|
|
|
+ border-radius: ios.$ios-radius-sm;
|
|
|
+ font-size: ios.$ios-font-size-caption-2;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+
|
|
|
+ &.status-pending {
|
|
|
+ background: rgba(255, 149, 0, 0.1);
|
|
|
+ color: #ff9500;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-processing {
|
|
|
+ background: rgba(0, 122, 255, 0.1);
|
|
|
+ color: #007aff;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-completed {
|
|
|
+ background: rgba(52, 199, 89, 0.1);
|
|
|
+ color: #34c759;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.status-rejected {
|
|
|
+ background: rgba(255, 59, 48, 0.1);
|
|
|
+ color: #ff3b30;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .history-operator {
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ font-weight: ios.$ios-font-weight-medium;
|
|
|
+ }
|
|
|
+
|
|
|
+ .history-remark {
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ font-style: italic;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 空状态
|
|
|
+ .empty-state {
|
|
|
+ text-align: center;
|
|
|
+ padding: ios.$ios-spacing-xl ios.$ios-spacing-lg;
|
|
|
+ color: ios.$ios-text-secondary;
|
|
|
+ background: ios.$ios-background-secondary;
|
|
|
+ border-radius: ios.$ios-radius-lg;
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 48px;
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+ margin-bottom: ios.$ios-spacing-md;
|
|
|
+ opacity: 0.5;
|
|
|
+ }
|
|
|
+
|
|
|
+ p {
|
|
|
+ margin: 0;
|
|
|
+ font-size: ios.$ios-font-size-subhead;
|
|
|
+ font-family: ios.$ios-font-family;
|
|
|
+ color: ios.$ios-text-primary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .detail-content {
|
|
|
+ background: ios.$ios-card-background;
|
|
|
+ border-radius: ios.$ios-radius-lg;
|
|
|
+ padding: ios.$ios-spacing-lg;
|
|
|
+ box-shadow: ios.$ios-shadow-sm;
|
|
|
+ border: 1px solid ios.$ios-border;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 人事板块下拉列表样式
|
|
|
+.ios-select {
|
|
|
+ .mat-mdc-form-field-outline {
|
|
|
+ border-radius: 12px !important;
|
|
|
+ border: 1px solid #e0e0e0 !important;
|
|
|
+ background-color: #f8f9fa !important;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ border-color: #007aff !important;
|
|
|
+ background-color: #ffffff !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-select-trigger {
|
|
|
+ border-radius: 12px;
|
|
|
+ padding: 12px 16px;
|
|
|
+ min-height: 48px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: rgba(0, 122, 255, 0.05);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-select-arrow {
|
|
|
+ color: #007aff;
|
|
|
+ font-size: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .mat-mdc-select-value {
|
|
|
+ color: #333;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.option-content {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 12px;
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ color: #007aff;
|
|
|
+ font-size: 18px;
|
|
|
+ width: 18px;
|
|
|
+ height: 18px;
|
|
|
+ }
|
|
|
+
|
|
|
+ span {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.filter-actions-group {
|
|
|
+ display: flex;
|
|
|
+ gap: 12px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+
|
|
|
+ .ios-select {
|
|
|
+ flex: 1;
|
|
|
+ min-width: 200px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 全局下拉面板样式 - 采用人事板块样式,增加透明度
|
|
|
+:host ::ng-deep .mat-mdc-select-panel {
|
|
|
+ background: rgba(255, 255, 255, 0.85) !important;
|
|
|
+ backdrop-filter: blur(20px) !important;
|
|
|
+ border-radius: 12px !important;
|
|
|
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15) !important;
|
|
|
+ border: 1px solid rgba(0, 122, 255, 0.2) !important;
|
|
|
+ max-height: 300px !important;
|
|
|
+ z-index: 9999 !important;
|
|
|
+ overflow: hidden !important;
|
|
|
+
|
|
|
+ .mat-mdc-option {
|
|
|
+ background: rgba(255, 255, 255, 0.3) !important;
|
|
|
+ color: #333 !important;
|
|
|
+ font-size: 16px !important;
|
|
|
+ font-family: ios.$ios-font-family !important;
|
|
|
+ padding: 14px 16px !important;
|
|
|
+ border-bottom: 1px solid rgba(0, 122, 255, 0.1) !important;
|
|
|
+ transition: all 0.3s ease !important;
|
|
|
+ min-height: 48px !important;
|
|
|
+ display: flex !important;
|
|
|
+ align-items: center !important;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: rgba(0, 122, 255, 0.15) !important;
|
|
|
+ color: #007AFF !important;
|
|
|
+ transform: translateX(2px) !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.mdc-list-item--selected,
|
|
|
+ &.mat-selected {
|
|
|
+ background: rgba(0, 122, 255, 0.2) !important;
|
|
|
+ color: #007AFF !important;
|
|
|
+ font-weight: 500 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ border-bottom: none !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 选项内容样式
|
|
|
+ .option-content {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10px;
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 18px;
|
|
|
+ width: 18px;
|
|
|
+ height: 18px;
|
|
|
+ color: inherit;
|
|
|
+ opacity: 0.8;
|
|
|
+ }
|
|
|
+
|
|
|
+ span {
|
|
|
+ flex: 1;
|
|
|
+ color: inherit;
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 1.4;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 响应式设计
|
|
|
+@media (max-width: 768px) {
|
|
|
+ .after-sales-container {
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+ }
|
|
|
+
|
|
|
+ .stats-dashboard {
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
|
|
+ gap: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ .stat-card {
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+ gap: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ .stat-icon {
|
|
|
+ width: 40px;
|
|
|
+ height: 40px;
|
|
|
+
|
|
|
+ mat-icon {
|
|
|
+ font-size: 20px;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-content .stat-value {
|
|
|
+ font-size: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .filter-bar {
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ .filter-section {
|
|
|
+ flex-direction: column;
|
|
|
+ gap: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ .filter-field {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-card {
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ .project-content {
|
|
|
+ grid-template-columns: 1fr;
|
|
|
+ gap: ios.$ios-spacing-md;
|
|
|
+ }
|
|
|
+
|
|
|
+ .project-footer {
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: flex-start;
|
|
|
+ gap: ios.$ios-spacing-xs;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .detail-view {
|
|
|
+ .suggestion-management {
|
|
|
+ .suggestion-record {
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ .suggestion-header {
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: flex-start;
|
|
|
+ gap: ios.$ios-spacing-xs;
|
|
|
+ }
|
|
|
+
|
|
|
+ .update-form {
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ .form-actions {
|
|
|
+ flex-direction: column;
|
|
|
+ gap: ios.$ios-spacing-xs;
|
|
|
+
|
|
|
+ .mat-mdc-button {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .status-history {
|
|
|
+ padding: ios.$ios-spacing-sm;
|
|
|
+
|
|
|
+ .history-item {
|
|
|
+ grid-template-columns: 1fr;
|
|
|
+ gap: ios.$ios-spacing-xs;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .review-management {
|
|
|
+ .review-record {
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ .review-header {
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: flex-start;
|
|
|
+ gap: ios.$ios-spacing-xs;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .add-review-form {
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ .form-actions {
|
|
|
+ flex-direction: column;
|
|
|
+ gap: ios.$ios-spacing-xs;
|
|
|
+
|
|
|
+ .mat-mdc-button {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .payment-management {
|
|
|
+ .payment-summary {
|
|
|
+ grid-template-columns: 1fr;
|
|
|
+ gap: ios.$ios-spacing-sm;
|
|
|
+ }
|
|
|
+
|
|
|
+ .payment-record {
|
|
|
+ padding: ios.$ios-spacing-md;
|
|
|
+
|
|
|
+ .record-header {
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: flex-start;
|
|
|
+ gap: ios.$ios-spacing-xs;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|