diff --git a/ry-vue3/src/views/admin/Department.vue b/ry-vue3/src/views/admin/Department.vue
index 7282ac5..ed14c56 100644
--- a/ry-vue3/src/views/admin/Department.vue
+++ b/ry-vue3/src/views/admin/Department.vue
@@ -166,4 +166,86 @@ onMounted(load)
.admin-department { padding: 16px; }
.breadcrumb { font-size: 13px; color: #8c8c8c; margin-bottom: 12px; }
.pager { display: flex; justify-content: flex-end; margin-top: 12px; }
+
+ /* ========================================
+ 移动端适配 (≤768px)
+ - 卡片 padding 收窄
+ - 工具栏横向滚动 (6 个按钮铺不下, 用 overflow-x)
+ - filter-form: 保持 label 左 + input 右横向布局
+ - 表格字号收紧
+ ======================================== */
+ @media (max-width: 768px) {
+ /* 卡片 padding */
+ .page-card { padding: 12px !important; border-radius: 4px !important; }
+ .breadcrumb { font-size: 12px !important; margin-bottom: 8px !important; }
+
+ /* 工具栏: 横向滚动 (按钮多时不换行) */
+ .toolbar {
+ flex-wrap: nowrap !important;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ padding-bottom: 6px;
+ margin-bottom: 8px !important;
+ scrollbar-width: thin;
+ }
+ .toolbar::-webkit-scrollbar { height: 4px; }
+ .toolbar::-webkit-scrollbar-thumb { background: var(--brand-slate-200); border-radius: 2px; }
+ .toolbar :deep(.action-btn),
+ .toolbar :deep(.el-button) {
+ flex-shrink: 0;
+ font-size: 12px !important;
+ padding: 0 10px !important;
+ height: 30px !important;
+ }
+
+ /* filter-form: label 与输入框横向 (label 左, input 右) */
+ .filter-form {
+ display: flex !important;
+ flex-direction: column !important;
+ align-items: stretch !important;
+ gap: 10px !important;
+ }
+ .filter-form :deep(.el-form-item) {
+ display: flex !important;
+ align-items: center !important;
+ margin-right: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .filter-form :deep(.el-form-item__label) {
+ float: none !important;
+ width: auto !important;
+ min-width: 80px !important;
+ text-align: right !important;
+ padding: 0 8px 0 0 !important;
+ font-size: 13px !important;
+ color: var(--el-text-color-regular) !important;
+ line-height: 32px !important;
+ height: 32px !important;
+ }
+ .filter-form :deep(.el-form-item__content) {
+ margin-left: 0 !important;
+ line-height: 32px !important;
+ flex: 1 !important;
+ min-width: 0 !important;
+ }
+
+ /* 强制所有控件全宽, 覆盖 inline 260px / 140px / 120px */
+ .filter-form :deep(.el-select),
+ .filter-form :deep(.el-input),
+ .filter-form :deep(.el-date-editor),
+ .filter-form :deep(.el-button),
+ .filter-form :deep(.el-cascader) {
+ width: 100% !important;
+ min-width: 0 !important;
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+ display: block !important;
+ }
+ .filter-form :deep(.el-button + .el-button) {
+ margin-top: 8px !important;
+ }
+
+ /* 表格字号收紧 */
+ :deep(.el-table) { font-size: 12px !important; }
+ }
\ No newline at end of file
diff --git a/ry-vue3/src/views/admin/LaborProtocol.vue b/ry-vue3/src/views/admin/LaborProtocol.vue
index 8def1a8..a6ec1f0 100644
--- a/ry-vue3/src/views/admin/LaborProtocol.vue
+++ b/ry-vue3/src/views/admin/LaborProtocol.vue
@@ -139,4 +139,86 @@ onMounted(load)
/* 表格空状态 (默认标记 = N) */
.dash-cell { color: #c0c4cc; }
+
+ /* ========================================
+ 移动端适配 (≤768px)
+ - 卡片 padding 收窄
+ - 工具栏横向滚动 (6 个按钮铺不下, 用 overflow-x)
+ - filter-form: 保持 label 左 + input 右横向布局
+ - 表格字号收紧
+ ======================================== */
+ @media (max-width: 768px) {
+ /* 卡片 padding */
+ .page-card { padding: 12px !important; border-radius: 4px !important; }
+ .breadcrumb { font-size: 12px !important; margin-bottom: 8px !important; }
+
+ /* 工具栏: 横向滚动 (按钮多时不换行) */
+ .toolbar {
+ flex-wrap: nowrap !important;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ padding-bottom: 6px;
+ margin-bottom: 8px !important;
+ scrollbar-width: thin;
+ }
+ .toolbar::-webkit-scrollbar { height: 4px; }
+ .toolbar::-webkit-scrollbar-thumb { background: var(--brand-slate-200); border-radius: 2px; }
+ .toolbar :deep(.action-btn),
+ .toolbar :deep(.el-button) {
+ flex-shrink: 0;
+ font-size: 12px !important;
+ padding: 0 10px !important;
+ height: 30px !important;
+ }
+
+ /* filter-form: label 与输入框横向 (label 左, input 右) */
+ .filter-form {
+ display: flex !important;
+ flex-direction: column !important;
+ align-items: stretch !important;
+ gap: 10px !important;
+ }
+ .filter-form :deep(.el-form-item) {
+ display: flex !important;
+ align-items: center !important;
+ margin-right: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .filter-form :deep(.el-form-item__label) {
+ float: none !important;
+ width: auto !important;
+ min-width: 80px !important;
+ text-align: right !important;
+ padding: 0 8px 0 0 !important;
+ font-size: 13px !important;
+ color: var(--el-text-color-regular) !important;
+ line-height: 32px !important;
+ height: 32px !important;
+ }
+ .filter-form :deep(.el-form-item__content) {
+ margin-left: 0 !important;
+ line-height: 32px !important;
+ flex: 1 !important;
+ min-width: 0 !important;
+ }
+
+ /* 强制所有控件全宽, 覆盖 inline 260px / 140px / 120px */
+ .filter-form :deep(.el-select),
+ .filter-form :deep(.el-input),
+ .filter-form :deep(.el-date-editor),
+ .filter-form :deep(.el-button),
+ .filter-form :deep(.el-cascader) {
+ width: 100% !important;
+ min-width: 0 !important;
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+ display: block !important;
+ }
+ .filter-form :deep(.el-button + .el-button) {
+ margin-top: 8px !important;
+ }
+
+ /* 表格字号收紧 */
+ :deep(.el-table) { font-size: 12px !important; }
+ }
\ No newline at end of file
diff --git a/ry-vue3/src/views/admin/ProjectCategory.vue b/ry-vue3/src/views/admin/ProjectCategory.vue
index 66d2275..3b47410 100644
--- a/ry-vue3/src/views/admin/ProjectCategory.vue
+++ b/ry-vue3/src/views/admin/ProjectCategory.vue
@@ -183,4 +183,86 @@ onMounted(load)
.admin-project-category { padding: 16px; }
.breadcrumb { font-size: 13px; color: #8c8c8c; margin-bottom: 12px; }
.pager { display: flex; justify-content: flex-end; margin-top: 12px; }
+
+ /* ========================================
+ 移动端适配 (≤768px)
+ - 卡片 padding 收窄
+ - 工具栏横向滚动 (6 个按钮铺不下, 用 overflow-x)
+ - filter-form: 保持 label 左 + input 右横向布局
+ - 表格字号收紧
+ ======================================== */
+ @media (max-width: 768px) {
+ /* 卡片 padding */
+ .page-card { padding: 12px !important; border-radius: 4px !important; }
+ .breadcrumb { font-size: 12px !important; margin-bottom: 8px !important; }
+
+ /* 工具栏: 横向滚动 (按钮多时不换行) */
+ .toolbar {
+ flex-wrap: nowrap !important;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ padding-bottom: 6px;
+ margin-bottom: 8px !important;
+ scrollbar-width: thin;
+ }
+ .toolbar::-webkit-scrollbar { height: 4px; }
+ .toolbar::-webkit-scrollbar-thumb { background: var(--brand-slate-200); border-radius: 2px; }
+ .toolbar :deep(.action-btn),
+ .toolbar :deep(.el-button) {
+ flex-shrink: 0;
+ font-size: 12px !important;
+ padding: 0 10px !important;
+ height: 30px !important;
+ }
+
+ /* filter-form: label 与输入框横向 (label 左, input 右) */
+ .filter-form {
+ display: flex !important;
+ flex-direction: column !important;
+ align-items: stretch !important;
+ gap: 10px !important;
+ }
+ .filter-form :deep(.el-form-item) {
+ display: flex !important;
+ align-items: center !important;
+ margin-right: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .filter-form :deep(.el-form-item__label) {
+ float: none !important;
+ width: auto !important;
+ min-width: 80px !important;
+ text-align: right !important;
+ padding: 0 8px 0 0 !important;
+ font-size: 13px !important;
+ color: var(--el-text-color-regular) !important;
+ line-height: 32px !important;
+ height: 32px !important;
+ }
+ .filter-form :deep(.el-form-item__content) {
+ margin-left: 0 !important;
+ line-height: 32px !important;
+ flex: 1 !important;
+ min-width: 0 !important;
+ }
+
+ /* 强制所有控件全宽, 覆盖 inline 260px / 140px / 120px */
+ .filter-form :deep(.el-select),
+ .filter-form :deep(.el-input),
+ .filter-form :deep(.el-date-editor),
+ .filter-form :deep(.el-button),
+ .filter-form :deep(.el-cascader) {
+ width: 100% !important;
+ min-width: 0 !important;
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+ display: block !important;
+ }
+ .filter-form :deep(.el-button + .el-button) {
+ margin-top: 8px !important;
+ }
+
+ /* 表格字号收紧 */
+ :deep(.el-table) { font-size: 12px !important; }
+ }
\ No newline at end of file
diff --git a/ry-vue3/src/views/admin/Title.vue b/ry-vue3/src/views/admin/Title.vue
index 300c8db..8bb33c1 100644
--- a/ry-vue3/src/views/admin/Title.vue
+++ b/ry-vue3/src/views/admin/Title.vue
@@ -166,4 +166,86 @@ onMounted(load)
.admin-title { padding: 16px; }
.breadcrumb { font-size: 13px; color: #8c8c8c; margin-bottom: 12px; }
.pager { display: flex; justify-content: flex-end; margin-top: 12px; }
+
+ /* ========================================
+ 移动端适配 (≤768px)
+ - 卡片 padding 收窄
+ - 工具栏横向滚动 (6 个按钮铺不下, 用 overflow-x)
+ - filter-form: 保持 label 左 + input 右横向布局
+ - 表格字号收紧
+ ======================================== */
+ @media (max-width: 768px) {
+ /* 卡片 padding */
+ .page-card { padding: 12px !important; border-radius: 4px !important; }
+ .breadcrumb { font-size: 12px !important; margin-bottom: 8px !important; }
+
+ /* 工具栏: 横向滚动 (按钮多时不换行) */
+ .toolbar {
+ flex-wrap: nowrap !important;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ padding-bottom: 6px;
+ margin-bottom: 8px !important;
+ scrollbar-width: thin;
+ }
+ .toolbar::-webkit-scrollbar { height: 4px; }
+ .toolbar::-webkit-scrollbar-thumb { background: var(--brand-slate-200); border-radius: 2px; }
+ .toolbar :deep(.action-btn),
+ .toolbar :deep(.el-button) {
+ flex-shrink: 0;
+ font-size: 12px !important;
+ padding: 0 10px !important;
+ height: 30px !important;
+ }
+
+ /* filter-form: label 与输入框横向 (label 左, input 右) */
+ .filter-form {
+ display: flex !important;
+ flex-direction: column !important;
+ align-items: stretch !important;
+ gap: 10px !important;
+ }
+ .filter-form :deep(.el-form-item) {
+ display: flex !important;
+ align-items: center !important;
+ margin-right: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .filter-form :deep(.el-form-item__label) {
+ float: none !important;
+ width: auto !important;
+ min-width: 80px !important;
+ text-align: right !important;
+ padding: 0 8px 0 0 !important;
+ font-size: 13px !important;
+ color: var(--el-text-color-regular) !important;
+ line-height: 32px !important;
+ height: 32px !important;
+ }
+ .filter-form :deep(.el-form-item__content) {
+ margin-left: 0 !important;
+ line-height: 32px !important;
+ flex: 1 !important;
+ min-width: 0 !important;
+ }
+
+ /* 强制所有控件全宽, 覆盖 inline 260px / 140px / 120px */
+ .filter-form :deep(.el-select),
+ .filter-form :deep(.el-input),
+ .filter-form :deep(.el-date-editor),
+ .filter-form :deep(.el-button),
+ .filter-form :deep(.el-cascader) {
+ width: 100% !important;
+ min-width: 0 !important;
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+ display: block !important;
+ }
+ .filter-form :deep(.el-button + .el-button) {
+ margin-top: 8px !important;
+ }
+
+ /* 表格字号收紧 */
+ :deep(.el-table) { font-size: 12px !important; }
+ }
\ No newline at end of file
diff --git a/ry-vue3/src/views/admin/Users.vue b/ry-vue3/src/views/admin/Users.vue
index c0205da..37903d1 100644
--- a/ry-vue3/src/views/admin/Users.vue
+++ b/ry-vue3/src/views/admin/Users.vue
@@ -30,7 +30,9 @@
-