From 6dacd91ca59cb23adaa6e815f8754494da08a7e9 Mon Sep 17 00:00:00 2001 From: liuyunqin Date: Thu, 13 Aug 2026 17:51:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BD=93=E6=A3=80=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=AE=8C=E5=96=84=20=E2=80=94=20=E6=96=B0=E5=A2=9E=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E7=AB=AF=E6=93=8D=E4=BD=9C=E6=B5=81=E7=A8=8B=E8=AE=B2?= =?UTF-8?q?=E8=A7=A3=E9=A1=B5=EF=BC=8C=E7=AE=A1=E7=90=86=E7=AB=AF=E5=90=84?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=A1=B5=E6=96=B0=E5=A2=9E/=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 员工端:新增操作流程讲解页 process-guide.html 及详情页 process-guide-detail.html,首页辅助入口跳转 - 管理端体检配置页完善:医院基础、体检套餐、体检须知、操作说明、报告模板、标准基础、标准分类、标准医院等页面新增抽屉弹窗/表单/表格/筛选/体检类型等交互 --- employee-app/health-checkup/index.html | 4 +- .../health-checkup/process-guide-detail.html | 478 +++++++++++++++ .../health-checkup/process-guide.html | 339 +++++++++++ .../health-checkup/config-hospital-basic.html | 238 +++++++- .../health-checkup/config-hospital-combo.html | 207 ++++++- .../config-material-notice.html | 326 ++++++++-- .../health-checkup/config-material-video.html | 380 +++++++++++- .../config-report-template.html | 319 +++++++++- .../health-checkup/config-standard-basic.html | 557 ++++++++++++++++-- .../config-standard-category.html | 501 +++++++++++++++- .../config-standard-hospital.html | 96 ++- 11 files changed, 3303 insertions(+), 142 deletions(-) create mode 100644 employee-app/health-checkup/process-guide-detail.html create mode 100644 employee-app/health-checkup/process-guide.html diff --git a/employee-app/health-checkup/index.html b/employee-app/health-checkup/index.html index 80a6674..072d1f9 100644 --- a/employee-app/health-checkup/index.html +++ b/employee-app/health-checkup/index.html @@ -356,8 +356,8 @@
辅助入口
- -
+ +
diff --git a/employee-app/health-checkup/process-guide-detail.html b/employee-app/health-checkup/process-guide-detail.html new file mode 100644 index 0000000..af6cf43 --- /dev/null +++ b/employee-app/health-checkup/process-guide-detail.html @@ -0,0 +1,478 @@ + + + + + + 讲解详情 + + + +
+
+ 12:00 +
+ + +
+
+ + + +
+
+ + + + diff --git a/employee-app/health-checkup/process-guide.html b/employee-app/health-checkup/process-guide.html new file mode 100644 index 0000000..98b0ae0 --- /dev/null +++ b/employee-app/health-checkup/process-guide.html @@ -0,0 +1,339 @@ + + + + + + 操作流程讲解 + + + +
+
+ 12:00 +
+ + +
+
+ + + +
+
+ +
+
全部
+
视频讲解
+
图文讲解
+
+ + +
+ +
+
+ +
+
+
体检预约流程
+
选择医院、项目、日期,完成体检预约
+
+ 图文 +
+
+ +
+ + +
+
+ +
+
+
到院体检流程
+
前台登记、逐项检查、领取报告
+
+ 图文 +
+
+ +
+ + +
+
+ +
+
+
报告查询流程
+
查看报告列表与指标解读详情
+
+ 图文 +
+
+ +
+ + +
+
+
+ +
+
+
+
胃肠镜检查流程
+
检查前准备与检查过程讲解
+
+ 视频 + 时长 03:20 +
+
+ +
+ + +
+
+
+ +
+
+
+
体检注意事项
+
体检前饮食、作息等准备事项讲解
+
+ 视频 + 时长 02:10 +
+
+ +
+
+ +
+
+
+ +
+ + + + diff --git a/web-admin/health-checkup/config-hospital-basic.html b/web-admin/health-checkup/config-hospital-basic.html index 2d540d7..d979274 100644 --- a/web-admin/health-checkup/config-hospital-basic.html +++ b/web-admin/health-checkup/config-hospital-basic.html @@ -63,6 +63,7 @@ tbody tr:last-child td{border-bottom:none;} tbody tr:hover{background:#F8FBFF;} .tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);} + .hospital-img{width:72px;height:48px;border-radius:6px;object-fit:cover;display:block;box-shadow:var(--shadow-sm);} .tag-blue{background:var(--primary-light);color:var(--primary);} .tag-green{background:#F6FFED;color:var(--success);} .tag-orange{background:#FFF7E6;color:var(--warning);} @@ -72,6 +73,50 @@ .pagination span{font-size:var(--font-sm);color:var(--text-secondary);} .page-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;} .page-btn:hover,.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);} + /* 抽屉弹窗 */ + .drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0);z-index:999;pointer-events:none;transition:background .3s;} + .drawer-overlay.open{background:rgba(0,0,0,0.45);pointer-events:auto;} + .drawer{position:fixed;top:0;right:-400px;bottom:0;width:400px;background:#fff;box-shadow:-2px 0 8px rgba(0,0,0,0.15);z-index:1000;transition:right .3s;display:flex;flex-direction:column;} + .drawer.open{right:0;} + .drawer__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0;} + .drawer__title{font-size:var(--font-lg);font-weight:600;} + .drawer__close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px;} + .drawer__close:hover{background:#F5F5F5;} + .drawer__body{flex:1;overflow-y:auto;padding:24px;} + .drawer__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0;} + /* 表单 */ + .form-item{margin-bottom:20px;} + .form-label{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:4px;font-weight:500;} + .form-label .required{color:var(--danger);} + .form-input{width:100%;height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;} + .form-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,0.2);} + /* 体检类型复选 */ + .check-group{display:flex;gap:24px;flex-wrap:wrap;} + .check-item{display:flex;align-items:center;gap:8px;font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;user-select:none;} + .check-item input[type="checkbox"]{width:16px;height:16px;cursor:pointer;accent-color:var(--primary);} + /* 开关 */ + .switch-row{display:flex;align-items:center;gap:12px;} + .switch{width:40px;height:22px;border-radius:11px;background:#E8E8E8;cursor:pointer;position:relative;transition:.2s;flex-shrink:0;} + .switch.on{background:var(--primary);} + .switch::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:2px;left:2px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,0.2);} + .switch.on::after{left:20px;} + .switch-label{font-size:var(--font-sm);color:var(--text-primary);} + /* 可搜索下拉 */ + .search-select{position:relative;} + .search-select__input{width:100%;height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 32px 0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 12px center;} + .search-select__input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,0.2);} + .search-select__dropdown{position:absolute;top:44px;left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(0,0,0,0.1);max-height:220px;overflow-y:auto;z-index:10;display:none;} + .search-select__dropdown.show{display:block;} + .search-select__option{padding:10px 12px;font-size:var(--font-sm);cursor:pointer;transition:background .15s;color:var(--text-primary);} + .search-select__option:hover,.search-select__option.active{background:var(--primary-light);color:var(--primary);} + .search-select__empty{padding:10px 12px;font-size:var(--font-sm);color:var(--text-placeholder);text-align:center;} + /* 医院信息卡片 */ + .hospital-info{background:#F5F7FA;border-radius:var(--radius-sm);padding:12px;margin-bottom:16px;display:none;} + .hospital-info.show{display:block;} + .hospital-info__item{display:flex;justify-content:space-between;font-size:var(--font-sm);margin-bottom:8px;} + .hospital-info__item:last-child{margin-bottom:0;} + .hospital-info__label{color:var(--text-secondary);} + .hospital-info__value{color:var(--text-primary);font-weight:500;} @@ -110,7 +155,7 @@
+
+ + +
- +
@@ -163,11 +216,13 @@ - + - - + + + +
序号医院名称医院地址医院图片医院简介开启职业体检排序序号操作序号医院名称体检类型医院地址医院图片医院简介开启职业体检排序序号操作
1泾河医院西安市高陵区西安泾河开发区CQ西路20号已上传西安宝石花CQ医院(高陵)1编辑 删除
1泾河医院常规体检胃肠镜体检西安市高陵区西安泾河开发区CQ西路20号医院图片西安宝石花CQ医院(高陵)1编辑 删除
2庆阳医院常规体检甘肃省庆阳市西峰区岐黄大道18号医院图片庆阳市人民医院体检中心2编辑 删除
3长安胃肠镜医院胃肠镜体检西安市雁塔区科技路66号医院图片西安长安胃肠镜专科医院3编辑 删除
@@ -180,6 +235,53 @@ + +
+
+
+
新增医院
+ +
+
+
+
* 选择医院
+
+ + +
+
+
+
+
+ 地址: + +
+
+
+
* 体检类型
+
+ + +
+
+
+
排序序号
+ +
+
+
开启职业体检
+
+
+ 是否开启职业体检 +
+
+
+ +
+ diff --git a/web-admin/health-checkup/config-hospital-combo.html b/web-admin/health-checkup/config-hospital-combo.html index 379c613..4b4a829 100644 --- a/web-admin/health-checkup/config-hospital-combo.html +++ b/web-admin/health-checkup/config-hospital-combo.html @@ -72,6 +72,42 @@ .pagination span{font-size:var(--font-sm);color:var(--text-secondary);} .page-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;} .page-btn:hover,.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);} + /* 抽屉弹窗 */ + .drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0);z-index:999;pointer-events:none;transition:background .3s;} + .drawer-overlay.open{background:rgba(0,0,0,0.45);pointer-events:auto;} + .drawer{position:fixed;top:0;right:-400px;bottom:0;width:400px;background:#fff;box-shadow:-2px 0 8px rgba(0,0,0,0.15);z-index:1000;transition:right .3s;display:flex;flex-direction:column;} + .drawer.open{right:0;} + .drawer--wide{width:600px;right:-600px;} + .drawer--wide.open{right:0;} + .drawer__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0;} + .drawer__title{font-size:var(--font-lg);font-weight:600;} + .drawer__close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px;} + .drawer__close:hover{background:#F5F5F5;} + .drawer__body{flex:1;overflow-y:auto;padding:24px;} + .drawer__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0;} + /* 表单 */ + .form-item{margin-bottom:20px;} + .form-label{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:4px;font-weight:500;} + .form-label .required{color:var(--danger);} + .form-input{width:100%;height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;} + .form-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,0.2);} + .form-select{width:100%;height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;cursor:pointer;} + .form-select:focus{border-color:var(--primary);} + /* 穿梭框 */ + .transfer{display:flex;align-items:stretch;gap:12px;} + .transfer__panel{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;display:flex;flex-direction:column;} + .transfer__header{padding:10px 12px;font-size:var(--font-sm);font-weight:600;border-bottom:1px solid var(--border);background:#FAFAFA;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;} + .transfer__header .count{color:var(--text-secondary);font-weight:400;} + .transfer__search{padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;} + .transfer__list{flex:1;min-height:0;max-height:340px;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px;} + .transfer-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-sm);color:var(--text-primary);transition:background .15s;} + .transfer-item:hover{background:#F5F7FA;} + .transfer-item input[type="checkbox"]{cursor:pointer;accent-color:var(--primary);flex-shrink:0;} + .transfer-empty{padding:16px;text-align:center;color:var(--text-placeholder);font-size:var(--font-sm);} + .item-selected-item{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-primary);transition:background .15s;} + .item-selected-item:hover{background:#F5F7FA;} + .item-selected-remove{color:var(--text-secondary);font-weight:bold;cursor:pointer;padding:0 4px;line-height:1;} + .item-selected-remove:hover{color:var(--danger);} @@ -110,7 +146,7 @@ @@ -189,6 +225,63 @@ + +
+
+
+
新增组合
+ +
+
+
+
* 组合名称
+ +
+
+
* 适用医院
+ +
+
+ +
+ + +
+
+
+
配置组合项
+ +
+
+
适用医院:
+
+
+
全部体检项目
+ +
+
+
+
已选体检项目 0
+
+
+
+
+ +
+ diff --git a/web-admin/health-checkup/config-material-notice.html b/web-admin/health-checkup/config-material-notice.html index 8a5832b..affa7a6 100644 --- a/web-admin/health-checkup/config-material-notice.html +++ b/web-admin/health-checkup/config-material-notice.html @@ -41,37 +41,68 @@ .sidebar-subgroup.open>.sidebar-subgroup__body{display:block;} .sidebar-subgroup__body .sidebar-item{padding-left:36px;font-size:12px;} .main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);} - .filter-bar{background:#fff;border-radius:var(--radius-md);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:16px;flex-wrap:wrap;} - .filter-item{display:flex;align-items:center;gap:8px;} - .filter-item label{font-size:var(--font-sm);color:var(--text-secondary);white-space:nowrap;} - .filter-input{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;min-width:200px;} - .filter-input:focus{border-color:var(--primary);} - .filter-select{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;cursor:pointer;min-width:120px;} .btn{height:36px;padding:0 16px;border-radius:var(--radius-sm);font-size:var(--font-sm);cursor:pointer;border:none;transition:all .2s;display:inline-flex;align-items:center;gap:6px;} .btn-primary{background:var(--primary);color:#fff;}.btn-primary:hover{background:#40a9ff;} .btn-default{background:#fff;color:var(--text-primary);border:1px solid var(--border);}.btn-default:hover{color:var(--primary);border-color:var(--primary);} - .btn-danger{background:#fff;color:var(--danger);border:1px solid var(--danger);}.btn-danger:hover{background:#fff1f0;} - .table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;} - .table-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);} - .table-card__title{font-size:var(--font-base);font-weight:600;} - .table-card__actions{display:flex;gap:8px;align-items:center;} - .table-card__content{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;} - .table-card__content table{min-width:100%;white-space:nowrap;} - table{width:100%;border-collapse:collapse;} - thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap;} - tbody td{padding:14px 16px;font-size:var(--font-sm);color:var(--text-primary);border-bottom:1px solid var(--border);white-space:nowrap;} - tbody tr:last-child td{border-bottom:none;} - tbody tr:hover{background:#F8FBFF;} - .tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);} - .tag-blue{background:var(--primary-light);color:var(--primary);} - .tag-green{background:#F6FFED;color:var(--success);} - .tag-orange{background:#FFF7E6;color:var(--warning);} - .tag-red{background:#FFF1F0;color:var(--danger);} .link{color:var(--primary);cursor:pointer;font-size:var(--font-sm);}.link:hover{color:#40a9ff;} - .pagination{display:flex;align-items:center;justify-content:flex-end;padding:16px 24px;gap:8px;border-top:1px solid var(--border);} - .pagination span{font-size:var(--font-sm);color:var(--text-secondary);} - .page-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;} - .page-btn:hover,.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);} + /* TAB 切换 */ + .notice-tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:2px solid var(--border);background:#fff;border-radius:var(--radius-md) var(--radius-md) 0 0;box-shadow:var(--shadow-sm);} + .notice-tab{padding:14px 32px;font-size:var(--font-base);color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s;font-weight:500;} + .notice-tab:hover{color:var(--primary);} + .notice-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;} + /* 双栏布局 */ + .notice-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;} + .notice-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);} + .notice-card__title{font-size:var(--font-base);font-weight:600;} + .notice-card__actions{display:flex;gap:8px;} + .notice-layout{display:flex;gap:24px;padding:24px;} + .notice-editor{flex:1;min-width:0;} + .notice-preview{width:340px;flex-shrink:0;} + /* 编辑器 */ + .editor-section__label{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:8px;font-weight:500;} + .editor-title-input{width:100%;height:44px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 14px;font-size:var(--font-base);outline:none;margin-bottom:16px;font-weight:600;} + .editor-title-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,0.2);} + .editor-toolbar{display:flex;gap:4px;padding:8px 12px;border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:#FAFAFA;flex-wrap:wrap;} + .toolbar-btn{padding:4px 8px;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;} + .toolbar-btn:hover{background:#E8E8E8;color:var(--text-primary);} + .toolbar-divider{width:1px;background:var(--border);margin:2px 4px;} + .editor-body{width:100%;min-height:280px;border:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm);padding:14px;font-size:var(--font-sm);outline:none;line-height:1.8;color:var(--text-primary);} + .editor-body:focus{border-color:var(--primary);} + .editor-footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;} + .editor-footer__hint{font-size:var(--font-xs);color:#999;} + /* 预览区 */ + .preview-panel{background:#F8FBFF;border:1px solid #D6E8FF;border-radius:var(--radius-md);padding:16px;} + .preview-panel__label{font-size:var(--font-xs);color:var(--primary);margin-bottom:12px;font-weight:500;display:flex;align-items:center;gap:6px;} + .preview-panel__label svg{width:14px;height:14px;} + .preview-phone{border:1px solid var(--border);border-radius:12px;padding:20px;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,0.08);} + .preview-phone__title{font-size:var(--font-base);font-weight:600;margin-bottom:12px;} + .preview-phone__content{font-size:var(--font-sm);color:var(--text-secondary);line-height:1.8;min-height:160px;white-space:pre-wrap;} + .preview-phone__content p{margin-bottom:8px;} + .preview-phone__content strong{color:var(--text-primary);} + .preview-phone__btns{margin-top:16px;display:flex;gap:8px;} + .preview-phone__btn{flex:1;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;} + .preview-phone__btn--cancel{border:1px solid var(--border);color:#666;} + .preview-phone__btn--ok{background:var(--primary);color:#fff;} + /* 历史版本弹窗 */ + .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.45);z-index:999;display:none;align-items:center;justify-content:center;} + .modal-overlay.open{display:flex;} + .modal{background:#fff;border-radius:var(--radius-md);box-shadow:0 4px 16px rgba(0,0,0,0.15);width:560px;max-height:80vh;display:flex;flex-direction:column;} + .modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0;} + .modal__title{font-size:var(--font-lg);font-weight:600;} + .modal__close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px;} + .modal__close:hover{background:#F5F5F5;} + .modal__body{flex:1;overflow-y:auto;padding:24px;} + .version-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);} + .version-item:last-child{border-bottom:none;} + .version-tag{font-size:var(--font-xs);padding:2px 8px;border-radius:10px;} + .version-tag--current{background:#F6FFED;color:var(--success);} + .version-tag--history{background:var(--primary-light);color:var(--primary);} + .version-info{flex:1;} + .version-info__title{font-size:var(--font-sm);color:var(--text-primary);margin-bottom:2px;} + .version-info__meta{font-size:var(--font-xs);color:#999;} + /* TAB内容切换 */ + .tab-pane{display:none;} + .tab-pane.active{display:block;} @@ -110,7 +141,7 @@ @@ -181,6 +246,82 @@ + + + diff --git a/web-admin/health-checkup/config-standard-basic.html b/web-admin/health-checkup/config-standard-basic.html index 801932a..eef96e2 100644 --- a/web-admin/health-checkup/config-standard-basic.html +++ b/web-admin/health-checkup/config-standard-basic.html @@ -68,18 +68,90 @@ .tag-orange{background:#FFF7E6;color:var(--warning);} .tag-red{background:#FFF1F0;color:var(--danger);} .link{color:var(--primary);cursor:pointer;font-size:var(--font-sm);}.link:hover{color:#40a9ff;} - /* 更多下拉菜单 */ - .dropdown{position:relative;display:inline-block;} - .dropdown__trigger{color:var(--primary);cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;} - .dropdown__trigger:hover{color:#40a9ff;} - .dropdown__menu{display:none;position:absolute;right:0;top:100%;margin-top:4px;background:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);min-width:96px;z-index:10;padding:4px 0;} - .dropdown.open .dropdown__menu{display:block;} - .dropdown__item{display:block;width:100%;padding:8px 16px;font-size:var(--font-sm);color:var(--text-primary);background:none;border:none;cursor:pointer;text-align:left;white-space:nowrap;} - .dropdown__item:hover{background:var(--primary-light);color:var(--primary);} .pagination{display:flex;align-items:center;justify-content:flex-end;padding:16px 24px;gap:8px;border-top:1px solid var(--border);} .pagination span{font-size:var(--font-sm);color:var(--text-secondary);} .page-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;} .page-btn:hover,.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);} + /* 弹窗 */ + .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.45);z-index:999;display:none;align-items:center;justify-content:center;} + .modal-overlay.open{display:flex;} + .modal{background:#fff;border-radius:var(--radius-md);box-shadow:0 4px 16px rgba(0,0,0,0.15);width:560px;max-height:85vh;display:flex;flex-direction:column;} + .modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0;} + .modal__title{font-size:var(--font-lg);font-weight:600;} + .modal__close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px;} + .modal__close:hover{background:#F5F5F5;} + .modal__body{flex:1;overflow-y:auto;padding:24px;} + .modal__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0;} + /* 表单 */ + .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;} + .form-item{margin-bottom:16px;} + .form-label{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:6px;display:flex;align-items:center;gap:4px;font-weight:500;} + .form-label .required{color:var(--danger);} + .form-input{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;} + .form-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,0.2);} + .form-select{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;cursor:pointer;} + .form-select:focus{border-color:var(--primary);} + /* 开关 */ + .switch{width:40px;height:22px;border-radius:11px;background:#E8E8E8;cursor:pointer;position:relative;transition:.2s;flex-shrink:0;} + .switch.on{background:var(--primary);} + .switch::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:2px;left:2px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,0.2);} + .switch.on::after{left:20px;} + .switch-row{display:flex;align-items:center;gap:12px;height:36px;} + .switch-label{font-size:var(--font-sm);color:var(--text-secondary);} + /* 二级树状分类选择器 */ + .tree-select{position:relative;} + .tree-select__input{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 32px 0 12px;font-size:var(--font-sm);color:var(--text-primary);background:#fff;cursor:pointer;display:flex;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;} + .tree-select__input.placeholder{color:var(--text-placeholder);} + .tree-select__arrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:10px;height:6px;pointer-events:none;transition:transform .2s;} + .tree-select.open .tree-select__arrow{transform:translateY(-50%) rotate(180deg);} + .tree-select__dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:30;max-height:280px;overflow-y:auto;padding:4px 0;} + .tree-select.open .tree-select__dropdown{display:block;} + .tree-node{display:flex;align-items:center;gap:6px;padding:7px 12px;cursor:pointer;font-size:var(--font-sm);color:var(--text-primary);transition:background .15s;} + .tree-node:hover{background:var(--primary-light);} + .tree-node.selected{background:var(--primary-light);color:var(--primary);font-weight:500;} + .tree-node__arrow{width:12px;font-size:12px;color:var(--text-secondary);flex-shrink:0;transition:transform .2s;display:inline-flex;justify-content:center;line-height:1;} + .tree-node__arrow.open{transform:rotate(90deg);} + .tree-node__label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} + .tree-node--parent{font-weight:600;} + .tree-node--child{padding-left:36px;} + /* 抽屉弹窗 */ + .drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0);z-index:999;pointer-events:none;transition:background .3s;} + .drawer-overlay.open{background:rgba(0,0,0,0.45);pointer-events:auto;} + .drawer{position:fixed;top:0;right:-600px;bottom:0;width:600px;background:#fff;box-shadow:-2px 0 8px rgba(0,0,0,0.15);z-index:1000;transition:right .3s;display:flex;flex-direction:column;} + .drawer.open{right:0;} + .drawer__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0;} + .drawer__title{font-size:var(--font-lg);font-weight:600;} + .drawer__close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px;} + .drawer__close:hover{background:#F5F5F5;} + .drawer__body{flex:1;overflow-y:auto;padding:24px;} + .drawer__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0;} + /* 关联医院项目 */ + .link-cell-empty{color:var(--text-placeholder);} + .transfer{display:flex;align-items:stretch;gap:12px;} + .transfer__panel{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;display:flex;flex-direction:column;} + .transfer__header{padding:10px 12px;font-size:var(--font-sm);font-weight:600;border-bottom:1px solid var(--border);background:#FAFAFA;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;} + .transfer__header .count{color:var(--text-secondary);font-weight:400;} + .transfer__search{padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;} + .transfer__list{flex:1;min-height:0;max-height:320px;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px;} + .transfer-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-sm);color:var(--text-primary);transition:background .15s;} + .transfer-item:hover{background:#F5F7FA;} + .transfer-item input[type="checkbox"]{cursor:pointer;accent-color:var(--primary);flex-shrink:0;} + .transfer-item__code{color:var(--text-secondary);font-size:var(--font-xs);margin-left:auto;} + .transfer-empty{padding:16px;text-align:center;color:var(--text-placeholder);font-size:var(--font-sm);} + .item-selected-item{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-primary);transition:background .15s;} + .item-selected-item:hover{background:#F5F7FA;} + .item-selected-item__code{color:var(--text-secondary);font-size:var(--font-xs);} + .item-selected-remove{color:var(--text-secondary);font-weight:bold;cursor:pointer;padding:0 4px;line-height:1;} + .item-selected-remove:hover{color:var(--danger);} + .transfer__table-wrap{flex:1;min-height:0;max-height:320px;overflow:auto;} + .link-project-table{width:100%;border-collapse:collapse;} + .link-project-table thead th{background:#FAFAFA;padding:8px 10px;text-align:left;font-size:var(--font-xs);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;z-index:1;} + .link-project-table tbody td{padding:8px 10px;font-size:var(--font-sm);color:var(--text-primary);border-bottom:1px solid var(--border);white-space:nowrap;} + .link-project-table tbody tr:hover{background:#F8FBFF;} + .link-table-check{display:flex;align-items:center;gap:6px;} + .link-table-check input[type="checkbox"]{cursor:pointer;accent-color:var(--primary);flex-shrink:0;} + .project-info-bar{display:flex;flex-wrap:wrap;gap:8px 24px;padding:12px 16px;background:#F5F7FA;border-radius:var(--radius-sm);margin-bottom:16px;font-size:var(--font-sm);color:var(--text-secondary);} + .project-info-item b{color:var(--text-primary);font-weight:600;margin-left:4px;} @@ -118,7 +190,7 @@
- +
+
全部
+ +
+
@@ -168,7 +239,8 @@
- + +
@@ -180,13 +252,13 @@ - + - - - - + + + +
体检项目分类体检项目编码体检项目名称体检项目别名是否重点指标是否有参考值创建日期更新日期操作体检项目分类体检项目编码体检项目名称体检项目别名是否重点指标是否有参考值创建日期更新日期操作
一般检查XM001身高身高测量2025-12-012026-03-10关联医院项目
一般检查XM002体重体重测量2025-12-012026-03-10关联医院项目
实验室检查XM003血常规全血细胞计数2025-12-052026-02-20关联医院项目
一般检查/身高XM001身高身高测量2025-12-012026-03-10关联医院项目 编辑 删除
一般检查/体重XM002体重体重测量2025-12-012026-03-10关联医院项目 编辑 删除
实验室检查/血常规XM003血常规全血细胞计数2025-12-052026-02-20关联医院项目 编辑 删除
@@ -199,23 +271,130 @@ + + + + +
+
+
+
关联医院项目
+ +
+
+
+ 体检项目分类: + 体检项目名称: + 体检项目别名: +
+ + + + + +
医院名称项目名称项目编码操作
+
+ +
+ + + + diff --git a/web-admin/health-checkup/config-standard-category.html b/web-admin/health-checkup/config-standard-category.html index fd8363c..1392bad 100644 --- a/web-admin/health-checkup/config-standard-category.html +++ b/web-admin/health-checkup/config-standard-category.html @@ -86,6 +86,76 @@ .pagination span{font-size:var(--font-sm);color:var(--text-secondary);} .page-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;} .page-btn:hover,.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);} + /* 弹窗 */ + .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.45);z-index:999;display:none;align-items:center;justify-content:center;} + .modal-overlay.open{display:flex;} + .modal{background:#fff;border-radius:var(--radius-md);box-shadow:0 4px 16px rgba(0,0,0,0.15);width:480px;max-height:80vh;display:flex;flex-direction:column;} + .modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0;} + .modal__title{font-size:var(--font-lg);font-weight:600;} + .modal__close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px;} + .modal__close:hover{background:#F5F5F5;} + .modal__body{flex:1;overflow-y:auto;padding:24px;} + .modal__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0;} + /* 表单 */ + .form-item{margin-bottom:16px;} + .form-item:last-child{margin-bottom:0;} + .form-label{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:6px;display:flex;align-items:center;gap:4px;font-weight:500;} + .form-label .required{color:var(--danger);} + .form-input{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;} + .form-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,0.2);} + .form-select{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;cursor:pointer;} + .form-select:focus{border-color:var(--primary);} + .select-with-clear{position:relative;} + .select-with-clear .form-select{padding-right:48px;} + .select-clear{position:absolute;right:30px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:#f0f0f0;color:#8c8c8c;font-size:14px;line-height:17px;text-align:center;cursor:pointer;opacity:0;transition:opacity .15s;user-select:none;} + .select-with-clear:hover .select-clear{opacity:1;} + .select-clear:hover{background:var(--danger);color:#fff;} + .select-with-clear select:disabled + .select-clear{display:none;} + .select-with-clear select:disabled{background:#F5F5F5;color:var(--text-placeholder);cursor:not-allowed;} + /* 复选列表 */ + .check-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:320px;overflow-y:auto;} + .check-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-sm);color:var(--text-primary);transition:all .15s;} + .check-item:hover{border-color:var(--primary);background:var(--primary-light);} + .check-item input[type="checkbox"]{cursor:pointer;accent-color:var(--primary);} + /* 抽屉弹窗 */ + .drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0);z-index:999;pointer-events:none;transition:background .3s;} + .drawer-overlay.open{background:rgba(0,0,0,0.45);pointer-events:auto;} + .drawer{position:fixed;top:0;right:-400px;bottom:0;width:400px;background:#fff;box-shadow:-2px 0 8px rgba(0,0,0,0.15);z-index:1000;transition:right .3s;display:flex;flex-direction:column;} + .drawer.open{right:0;} + .drawer__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0;} + .drawer__title{font-size:var(--font-lg);font-weight:600;} + .drawer__close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px;} + .drawer__close:hover{background:#F5F5F5;} + .drawer__body{flex:1;overflow-y:auto;padding:24px;} + .drawer__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0;} + /* 科室树 */ + .dept-search{margin-bottom:16px;} + .dept-tree{display:flex;flex-direction:column;gap:2px;} + .dept-parent__head{display:flex;align-items:center;gap:8px;padding:8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;} + .dept-parent__head:hover{background:#F5F7FA;} + .dept-parent__head input[type="checkbox"]{cursor:pointer;accent-color:var(--primary);flex-shrink:0;} + .dept-arrow{width:12px;font-size:12px;color:var(--text-secondary);transition:transform .2s;display:inline-flex;justify-content:center;flex-shrink:0;} + .dept-arrow.open{transform:rotate(90deg);} + .dept-parent__name{flex:1;font-size:var(--font-sm);color:var(--text-primary);font-weight:600;} + .dept-child{display:flex;align-items:center;gap:8px;padding:7px 8px 7px 36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-sm);color:var(--text-primary);transition:background .15s;} + .dept-child:hover{background:#F5F7FA;} + .dept-child input[type="checkbox"]{cursor:pointer;accent-color:var(--primary);flex-shrink:0;} + .dept-child--flat{padding-left:8px;} + .dept-leaf__parent{margin-left:auto;font-size:var(--font-xs);color:var(--text-placeholder);} + .dept-empty{padding:24px;text-align:center;color:var(--text-placeholder);font-size:var(--font-sm);} + /* 宽抽屉 + 穿梭框 */ + .drawer--wide{width:600px;right:-600px;} + .drawer--wide.open{right:0;} + .transfer{display:flex;align-items:stretch;gap:12px;} + .transfer__panel{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;display:flex;flex-direction:column;} + .transfer__header{padding:10px 12px;font-size:var(--font-sm);font-weight:600;border-bottom:1px solid var(--border);background:#FAFAFA;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;} + .transfer__header .count{color:var(--text-secondary);font-weight:400;} + .transfer__search{padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;} + .transfer__list{flex:1;min-height:0;max-height:340px;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px;} + .dept-selected-item{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-primary);transition:background .15s;} + .dept-selected-item:hover{background:#F5F7FA;} + .dept-selected-remove{color:var(--text-secondary);font-weight:bold;cursor:pointer;padding:0 4px;line-height:1;} + .dept-selected-remove:hover{color:var(--danger);} @@ -124,7 +194,7 @@ + + + + +
+
+
+
关联科室
+ +
+
+
+
+
全部科室
+ +
+
+
+
已选科室 0
+
+
+
+
+ +
+ + +
+
+
+
关联疾病
+ +
+
+
+
+
全部疾病
+ +
+
+
+
已选疾病 0
+
+
+
+
+ +
+ diff --git a/web-admin/health-checkup/config-standard-hospital.html b/web-admin/health-checkup/config-standard-hospital.html index 97be410..7769036 100644 --- a/web-admin/health-checkup/config-standard-hospital.html +++ b/web-admin/health-checkup/config-standard-hospital.html @@ -72,6 +72,25 @@ .pagination span{font-size:var(--font-sm);color:var(--text-secondary);} .page-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;} .page-btn:hover,.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);} + /* 弹窗 */ + .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.45);z-index:999;display:none;align-items:center;justify-content:center;} + .modal-overlay.open{display:flex;} + .modal{background:#fff;border-radius:var(--radius-md);box-shadow:0 4px 16px rgba(0,0,0,0.15);width:480px;max-height:85vh;display:flex;flex-direction:column;} + .modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0;} + .modal__title{font-size:var(--font-lg);font-weight:600;} + .modal__close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px;} + .modal__close:hover{background:#F5F5F5;} + .modal__body{flex:1;overflow-y:auto;padding:24px;} + .modal__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0;} + /* 表单 */ + .form-item{margin-bottom:16px;} + .form-item:last-child{margin-bottom:0;} + .form-label{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:6px;display:flex;align-items:center;gap:4px;font-weight:500;} + .form-label .required{color:var(--danger);} + .form-input{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;} + .form-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,0.2);} + .form-select{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;cursor:pointer;} + .form-select:focus{border-color:var(--primary);} @@ -110,7 +129,7 @@ + +