跳至正文

星评质控评价表(仅填扣分项)

    星评质控评价系统(仅填扣分项) /* 基础样式 */ :root { --primary-color: #165DFF; --primary-hover: #0E42D2; --bg-color: #f9f9f9; --border-color: #e0e0e0; --text-color: #333; --hover-bg: #f0f0f0; --error-color: #e74c3c; --info-bg: #f5f7fa; --success-color: #28a745; --warning-color: #ffc107; --card-highlight: #f0f9ff; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', 'Microsoft YaHei', sans-serif; } body { background-color: var(--bg-color); color: var(--text-color); line-height: 1.6; padding: 20px; background-image: linear-gradient(135deg, #f5f7fa 0%, #e4ecff 100%); min-height: 100vh; } .cf7-ultra-container { max-width: 1000px; margin: 0 auto; padding: 20px; } .cf7-header { text-align: center; margin-bottom: 30px; padding: 25px; background: white; border-radius: 10px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); } .cf7-header h1 { font-size: 2.2rem; color: var(--primary-color); margin-bottom: 10px; display: flex; align-items: center; justify-content: center; gap: 15px; } .cf7-header p { font-size: 1.1rem; color: #666; max-width: 700px; margin: 0 auto; } .cf7-section-card { background-color: #ffffff; border-radius: 8px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); margin-bottom: 25px; padding: 25px; transition: all 0.3s ease; border-left: 4px solid var(--primary-color); } .cf7-section-card:hover { box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); } .cf7-info-card { background-color: var(--info-bg); border-radius: 8px; margin-bottom: 25px; padding: 25px; border-left: 4px solid #8c9eff; } .cf7-info-title { color: #555; font-size: 18px; font-weight: 600; margin-bottom: 15px; display: flex; align-items: center; gap: 10px; } .cf7-info-title i { color: var(--primary-color); } .cf7-info-content { color: #666; line-height: 1.6; } .cf7-info-content ul { margin: 15px 0 15px 20px; } .cf7-info-content li { margin-bottom: 8px; } .cf7-section-title { color: var(--text-color); font-size: 20px; font-weight: 600; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid #eee; display: flex; align-items: center; } .cf7-section-title::before { content: ''; display: inline-block; width: 6px; height: 20px; background-color: var(--primary-color); margin-right: 10px; border-radius: 3px; } .cf7-form-row { display: flex; flex-wrap: wrap; margin: 0 -15px; } .cf7-form-col { flex: 1; padding: 0 15px; margin-bottom: 20px; min-width: 280px; } .cf7-form-col-sm { flex: 1; padding: 0 10px; margin-bottom: 15px; min-width: 120px; } @media (max-width: 768px) { .cf7-form-col, .cf7-form-col-sm { flex-basis: 100%; } } .cf7-input-wrapper { position: relative; margin-bottom: 20px; } .cf7-label { display: block; margin-bottom: 8px; font-weight: 500; color: #555; display: flex; align-items: center; gap: 8px; } .cf7-label i { color: var(--primary-color); font-size: 16px; } .required { color: var(--error-color); margin-left: 3px; font-size: 14px; } .cf7-input, .cf7-select, .cf7-textarea { width: 100%; padding: 12px 15px; border: 1px solid var(--border-color); border-radius: 5px; background-color: #fff; transition: all 0.3s ease; font-size: 15px; color: var(--text-color); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .cf7-input:focus, .cf7-select:focus, .cf7-textarea:focus { outline: none; border-color: var(--primary-color); background-color: #fff; box-shadow: 0 0 0 3px rgba(22, 93, 255, 0.15); } .cf7-input::placeholder, .cf7-textarea::placeholder { color: #999; } .cf7-radio-group { margin-bottom: 20px; } .cf7-radio { display: flex; flex-wrap: wrap; gap: 10px; } .cf7-radio-item { display: flex; align-items: center; margin-right: 15px; margin-bottom: 10px; } .cf7-radio-item input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; } .cf7-radio-item label { display: inline-block; padding: 10px 20px; border-radius: 6px; background-color: var(--bg-color); color: #666; cursor: pointer; transition: all 0.2s ease; font-size: 15px; min-width: 100px; text-align: center; } .cf7-radio-item input[type="radio"]:checked + label { background-color: var(--primary-color); color: #fff; box-shadow: 0 2px 5px rgba(22, 93, 255, 0.3); } .cf7-radio-item label:hover { background-color: var(--hover-bg); } .cf7-checkbox-group { margin-bottom: 20px; } .cf7-checkbox { display: flex; flex-wrap: wrap; gap: 10px; } .cf7-checkbox-item { display: flex; align-items: center; margin-bottom: 15px; width: 100%; } .cf7-checkbox-item input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; } .cf7-checkbox-item label { position: relative; padding-left: 35px; cursor: pointer; line-height: 22px; color: #666; font-size: 15px; display: inline-block; } .cf7-checkbox-item label:before { content: ''; position: absolute; left: 0; top: 0; width: 22px; height: 22px; border: 2px solid var(--border-color); border-radius: 4px; background-color: #fff; transition: all 0.2s ease; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .cf7-checkbox-item input[type="checkbox"]:checked + label:before { background-color: var(--primary-color); border-color: var(--primary-color); } .cf7-checkbox-item input[type="checkbox"]:checked + label:after { content: ''; position: absolute; left: 7px; top: 3px; width: 6px; height: 12px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); } .cf7-checkbox-item label:hover:before { border-color: var(--primary-color); } .cf7-submit-wrapper { text-align: center; margin-top: 30px; margin-bottom: 20px; } .cf7-submit { background-color: var(--primary-color); color: #fff; border: none; border-radius: 8px; padding: 16px 50px; font-size: 17px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 12px rgba(22, 93, 255, 0.25); position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 10px; } .cf7-submit:hover { background-color: var(--primary-hover); transform: translateY(-2px); box-shadow: 0 6px 15px rgba(22, 93, 255, 0.3); } .cf7-submit:active { transform: translateY(0); } .cf7-submit::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); animation: shine 2s infinite; } @keyframes shine { 100% { left: 100%; } } .cf7-footer { text-align: center; margin-top: 30px; color: #777; font-size: 14px; } .stats-summary { display: flex; justify-content: space-around; margin: 25px 0; flex-wrap: wrap; gap: 15px; } .stat-card { background: white; border-radius: 10px; padding: 20px; box-shadow: 0 3px 10px rgba(0,0,0,0.05); text-align: center; min-width: 180px; flex: 1; transition: all 0.3s ease; } .stat-card.highlight { background: var(--card-highlight); border: 2px solid var(--primary-color); box-shadow: 0 6px 15px rgba(22, 93, 255, 0.15); } .stat-card:hover { transform: translateY(-3px); box-shadow: 0 6px 15px rgba(0,0,0,0.1); } .stat-card .value { font-size: 1.8rem; font-weight: bold; color: var(--primary-color); margin: 10px 0; } .stat-card .sub-value { font-size: 1rem; margin: 5px 0; color: #666; } .stat-card .label { color: #666; font-size: 0.9rem; } .progress-container { margin-top: 10px; } .progress-bar { height: 8px; background: #e0e0e0; border-radius: 4px; overflow: hidden; } .progress-fill { height: 100%; background: var(--primary-color); border-radius: 4px; transition: width 0.5s ease; } .calculation-result { font-size: 1.1rem; font-weight: 600; color: var(--primary-color); margin-top: 10px; padding: 8px 0; border-top: 1px dashed #ddd; } .calculation-value { color: #ff6b35; font-weight: 700; } .wpcf7-table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 18px; } .wpcf7-table th, .wpcf7-table td { border: 1px solid #ddd; padding: 12px; text-align: center; } .wpcf7-table th { background-color: #f5f5f5; font-weight: bold; } .wpcf7-table tr:nth-child(even) { background-color: #f9f9f9; } input[readonly] { background-color: #f0f0f0; font-weight: bold; color: #333; border: 1px solid #ddd; padding: 8px; } .result-container { margin: 20px 0; padding: 15px; background-color: #f9f9f9; border: 1px solid #eee; border-radius: 4px; } .result-container label { font-weight: bold; margin-right: 10px; } .star-display { font-size: 24px; letter-spacing: 3px; color: #ffcc00; text-shadow: 0 0 2px rgba(0,0,0,0.3); background: transparent !important; border: none !important; font-weight: bold; } input[type="number"] { width: 80px; padding: 8px; text-align: center; } input[type="text"] { width: 100%; padding: 8px; } input[type="submit"] { background: #0073aa; color: white; border: none; padding: 12px 24px; font-size: 16px; border-radius: 4px; cursor: pointer; transition: background 0.3s; } input[type="submit"]:hover { background: #005177; } .add-deduction { background: #f0f0f0; border: 1px solid #ddd; padding: 8px 12px; cursor: pointer; border-radius: 4px; transition: all 0.3s; font-size: 14px; } .add-deduction:hover { background: #e0e0e0; border-color: #ccc; } .deduction-control { min-height: 40px; display: flex; align-items: center; justify-content: center; } .deduction-input-group { display: flex; justify-content: center; } .basis-input-group { display: flex; justify-content: center; } .wpcf7-table tr:hover { background-color: #f5f5f5; } .negative-sign { margin-right: 0px; display: inline-block; vertical-align: middle; line-height: 38px; } /* 单选按钮(评分)样式 */ .cf7-rating-group { margin-bottom: 20px; } .cf7-rating-label { display: block; margin-bottom: 12px; font-weight: 500; color: #555; } .cf7-radio input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; } .cf7-radio span.wpcf7-list-item { display: inline-block; margin-right: 10px; margin-bottom: 10px; } .cf7-radio input[type="radio"] + span.wpcf7-list-item-label { display: inline-block; padding: 10px 18px; border-radius: 6px; background-color: var(--bg-color); color: #666; cursor: pointer; transition: all 0.2s ease; font-size: 18px; line-height: 1.4; min-width: 120px; text-align: center; } .cf7-radio input[type="radio"]:checked + span.wpcf7-list-item-label { background-color: var(--primary-color) !important; color: #fff !important; box-shadow: 0 2px 5px rgba(22, 93, 255, 0.3); } .cf7-radio input[type="radio"] + span.wpcf7-list-item-label:hover { background-color: var(--hover-bg); transform: translateY(-1px); } /* 添加自定义提醒样式 */ .custom-alert { position: fixed; top: 400px; left: 50%; transform: translateX(-50%); padding: 15px 30px; border-radius: 8px; font-size: 25px; font-weight: 500; text-align: center; box-shadow: 0 4px 12px rgba(0,0,0,0.15); z-index: 10000; animation: fadeIn 0.3s ease-out, fadeOut 0.5s ease-in 4.5s forwards; display: flex; align-items: center; gap: 10px; } @keyframes fadeIn { from { opacity: 0; transform: translate(-50%, -20px); } to { opacity: 1; transform: translate(-50%, 0); } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; visibility: hidden; } } .custom-alert.success { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; } .custom-alert.error { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; } /* 必填字段错误样式 */ .field-error { position: relative; } .field-error::after { content: "必填字段"; position: absolute; top: 100%; left: 0; color: #e74c3c; font-size: 12px; margin-top: 4px; } .field-error .cf7-input, .field-error .cf7-select { border-color: #e74c3c !important; box-shadow: 0 0 0 2px rgba(231, 76, 60, 0.15) !important; } /* 单选框错误样式 */ .field-error .cf7-radio-item label { background-color: rgba(231, 76, 60, 0.1); border: 1px solid #e74c3c; } .alert-icon { font-size: 18px; }

    星评质控评价表

    请根据实际情况填写以下自评表,如实反映社区养老服务设施的运营情况。

    填报说明
    • 请选择对应的网点名称并填写主管密钥进行评估
    • 点击"添加扣分"按钮对不符合标准的项目进行扣分并填写扣分依据
    • 系统将自动计算总分和星级评定结果
    • 所有带 * 的字段为必填项

    基本信息

    [password* manager-key id:manager-key class:cf7-input placeholder "请输入主管密钥"]

    自评标准及扣分情况

    标准 标准分值 自评扣分 扣分依据
    a1-运营资质:运营主体具备《营业执照》、《民办非企业单位登记证书》等依法取得的独立法人资格。 1
    a2-统计设备:配备可统计服务人次的电子统计设备,且与市/区级养老服务平台对接。 1
    a3-场地标识:(1)采用武汉市统一的名称标识,服务设施出入口标识、楼层索引图等符合老年人生理特点,色彩明亮、位置明显、图文清晰; (2)在醒目位置张贴/放置各项规章制度、服务流程、服务项目、服务承诺、服务质量标准、服务收费标准、投诉渠道、安全管理等管理制度,易于老年人咨询、获取。 1
    a4-安全管理:(1)配置视频监控、防火器具、紧急疏散通道等消防设施设备,定期检查且记录保存完好; (2)采用辨识度高、色彩丰富、照明充足、环境安静、无障碍、无尖角等适老化设计,主要出入口、大门、走廊、楼层通道、电梯、生活用房、文化休闲区、康复与医疗用房等均符合无障碍设计要求; (3)建立风险管理制度,包括但不限于老年人意外伤害、突发疾病、火灾应急预案等; (4)安全专(兼)职人员,每年接受在岗教育培训,熟悉安全管理相关法律法规及技术规范,能熟练使用消防器具、处理突发安全事件,按要求配备《日常消防检查手册》,具备近1年内完整的应急演练、安全检查、安全培训等记录。 1
    a5-制度建设:(1)结合中心运营、老年人需求、服务项目提供情况制定管理制度,配备《管理制度手册》,包括但不限于行政管理制度、员工管理制度、服务管理制度、财务管理制度、档案管理制度、清洁卫生管理制度等; (2)具备《工作标准手册》,每项服务项目有清晰的工作流程与质量标准,建立投诉处理与调解制度,接受服务对象的投诉与监督; (3)具备近1年内完整的台账资料,包括但不限于与老年人签订的服务协议、老年人基本档案资料、员工档案信息、设备使用记录、投诉处理记录等。 1
    a6-建筑面积 1 分:建筑面积达 120 平方米不足 300 平方米; 2 分:建筑面积达 300 平方米不足 600 平方米; 3 分:建筑面积达 600 平方米不足 800 平方米; 4 分:建筑面积达 800 平方米不足 1000 平方米; 5 分:建筑面积达 1000 平方米及以上 5
    a7-文体娱乐:设置娱乐区、文化活动区、室外活动场所等满足老年人的文体娱乐需求,具备提供阅览、观影、绘画、书法、上网、棋牌、健身、排练、手工制作、兴趣活动开展等服务功能设施,每具备3种服务功能得1分 2
    a8-日间照料1:设施具备接待、休息、心理疏导、就餐区或备餐、浴室、理发、洗衣等至少5项日间照料服务功能 1
    a9-日间照料2:配置照料床位(达6平方米)或躺椅,每3张日间照料床位或每5张躺椅得1分 2
    a10-日间照料3:休息区功能齐全,配备空调、被子等取暖制冷设施得1分,配备电视机、饮水机等设施得1分 2
    a11-保健康复:配备血压测量仪、体温计、体检仪、适老健身器材、物理康复器材、紧急护理包等,每配备一种类别保健康复设施设备得1分。 5
    a12-信息设施:具备提供网络服务功能的设施,服务内容包括但不限于:信息公示、咨询、服务预约、服务查询、缴费、投诉建议、服务评价等,月均使用人数达 100人 3
    a13-电子设备:依托互联网技术为服务对象提供生命体征监控、位置查询、信息预警、紧急呼叫、联络紧急联系人等服务,社区养老服务设施每储备1个设备得0.5分,最高2分 2
    a14-电子设备:每 5 名老年人配备 1 种电子设备得 1 分,15 名老年人配备 3 种不同电子设备得满分3 分; 3
    a15-全职工作人员人数 2
    a16-全职工作人员持有证书,包括社会工作师证、保健调理师证、养老护理员证、心理咨询师证、中医康复理疗师证、医师证、护士证等,每1位工作人员持证得1分 2
    a17-服务人员着统一工作服,挂工作牌 1
    a18-建立健全的志愿者管理制度,包括但不限于志愿者招募、培训、活动开展、激励机制等且执行良好 0.5
    a19-有不少于20人的志愿者服务团队 0.5
    a20-志愿者活动达4次且服务人次不少于100人次,志愿服务记录完整 1
    a21-社会影响:服务成效或服务优秀案例获国家级媒体报道或奖项1次得2分,省级媒体报道或奖项1次得1分,市级媒体报道或奖项1次得0.5分,同类报道或奖项以最高级别报道媒体为准 2
    a22-品牌效应:社区养老服务设施在运营管理、服务提供等方面有重大创新(如公开发表成果或市级以上政府部门专项调研等),每1项得0.5分 1
    a23-I类支持服务:每开展I类支持服务中的一项服务得1分,每项服务年服务人次达 1000人次视为可得分。(I类支持服务主要指老年人可自主开展,社区养老服务设施提供设备或人员支持的各项服务。)开展的各项支持类服务等 I 类支持服务中的一项服 务得 1 分,满分 3 分;每项服务的服务人次达 1000 人次/年得 1 分,满分 2 分;1.文娱活动:阅览.绘画.书法.上网.棋牌.健身.游戏.(观影)手工制作2.日间照料:设施内照料 (网点测血压)3.其他到店服务:兴趣培养(各种培训班)委托代办 5
    a24-II类照料服务:每开展II类照料服务中的一项服务得2分,每项服务年服务人数达20人,年服务达200人次视为可得分。(II类照料服务主要指帮助老年人解决日常照料问题的服务。)开展的各项照料服 务等 II 类支持服务中的 1 项服务得 2 分,满分 6 分;每项服务的服务人数达 20 人/年且达 200 人次/年,得 1 分,满分 4 分; 1.生活照料服务:助洁.助浴.理发.衣物洗洗涤 2.助餐服务:就餐服务.个人配餐.上门送餐.上门做饭 3.医疗保健服务:用药指导.血压测量与监测.健康义诊.助医服务.老年保健养生咨询.老年安全防护教 4.心理精神支持服务:情绪疏导(须有相关资质)心理支持.危机干预.社会交往 5.其他适用于老年人需求开展的各项照料服务:生活技能培训.医疗护理服务.陪同服务.养老服务对象评估 10
    a25-III类专业服务:每开展III类专业服务中的一项服务得3分,满分9分(其中开展家庭养老护理床位得5分);每项服务2分(年服务人数达10人,年服务人次达100人次可得分)满分10分(III类专业服务是具备服务资质的专业人士为老年人提供集中照料、远程照护、上门护理等服务。)集中照料.远程照护.上门护理 1.通过集中照料开展的服务:日间托护服务.短期托管服务.24小时护理服务床位(嵌入式+综合体) 2.通过远程照护开展的服务:家庭养老照护床位服务(签入嵌入式+综合体)开设至少5张床位) 3.其他适用于老年人需求开展的各项专业类服务:上门康复理疗服务.能力训练服务 设施每提供集中照料、远程照护、上门护理等 III 类专业 服务中 1 项服务得 3 分,满分 9 分; 开展家庭养老床位的,需提供服务协议,得 5 分; 3.每项服务的服务人数达 10 人/年且达 100 人次/年,得 2 分,满分 10 分 20
    a26-服务人数3分:年服务人次达 1 万人次; 6 分:年服务人次达 2 万人次,或年服务人次达 1 万 人次且上门服务人数达 50 人; 9 分:年服务人次达 4 万人次,或年服务人次达2 万 人次且上门服务人数达 100 人; 12 分:年服务人次达 6 万人次且上门服务人数达 150 人; 15 分:年服务人次达8 万人次且上门服务人数达200 人。 上门服务人数查看协议 15
    a27-满意度评分 10
    合计
    document.addEventListener('DOMContentLoaded', function() { // 存储原始表单HTML const originalFormHTML = document.querySelector('.wpcf7-form').innerHTML; // 为所有"添加扣分"按钮添加点击事件 let addButtons = document.querySelectorAll('.add-deduction'); addButtons.forEach(button => { button.addEventListener('click', function() { const targetId = this.dataset.target; // 显示扣分输入框 document.getElementById(`${targetId}-input-group`).style.display = 'block'; // 显示扣分依据输入框 document.getElementById(`${targetId}-basis-group`).style.display = 'block'; // 隐藏按钮 this.style.display = 'none'; }); }); // 声明变量但不初始化 let deductionInputs; let totalSelfInput; let starRatingInput; let bonusAmountInput; // 初始化函数 function initForm() { // 获取所有扣分输入框 deductionInputs = document.querySelectorAll('.deduction-input'); totalSelfInput = document.getElementById('total-self'); starRatingInput = document.getElementById('star-rating'); bonusAmountInput = document.getElementById('bonus-amount'); // 初始化总分 updateTotalScore(); // 为每个扣分输入框添加事件监听 deductionInputs.forEach(input => { input.addEventListener('input', function() { // 验证输入值不超过最大值 const max = parseFloat(this.getAttribute('max')); const value = parseFloat(this.value) || 0; if (value > max) { this.value = max; } updateTotalScore(); calculateStarRating(); }); }); // 初始计算星级 calculateStarRating(); } // 初始化表单 initForm(); // 更新总分函数(100分减去总扣分) function updateTotalScore() { let totalDeduction = 0; deductionInputs.forEach(input => { const value = parseFloat(input.value) || 0; totalDeduction += value; }); // 计算实际得分(100 - 总扣分) const actualScore = 100 - totalDeduction; totalSelfInput.value = actualScore.toFixed(2); } // 计算星级评定函数 function calculateStarRating() { const totalSelf = parseFloat(totalSelfInput.value) || 0; let rating = "无等级"; let bonus = "0万"; let stars = ""; if (totalSelf >= 91) { rating = "★★★★★"; stars = "★★★★★"; bonus = "20万"; } else if (totalSelf >= 81) { rating = "★★★★"; stars = "★★★★"; bonus = "15万"; } else if (totalSelf >= 71) { rating = "★★★"; stars = "★★★"; bonus = "11万"; } else if (totalSelf >= 61) { rating = "★★"; stars = "★★"; bonus = "8万"; } else if (totalSelf >= 51) { rating = "★"; stars = "★"; bonus = "5万"; } else { rating = "无等级"; stars = "无"; bonus = "0万"; } starRatingInput.value = `${stars} (${totalSelf.toFixed(2)}分)`; bonusAmountInput.value = bonus; } // 表单提交前处理 document.addEventListener('wpcf7beforesubmit', function(event) { // 验证必填字段 if (!validateRequiredFields()) { event.preventDefault(); showAlert('请填写所有必填字段', 'error'); return; } // 创建表单副本 const formClone = document.querySelector('.wpcf7-form').cloneNode(true); // 移除未添加扣分的项目 const addButtons = formClone.querySelectorAll('.add-deduction'); addButtons.forEach(button => { const targetId = button.dataset.target; const deductionGroup = formClone.querySelector(`#${targetId}-input-group`); const basisGroup = formClone.querySelector(`#${targetId}-basis-group`); // 如果按钮可见(说明未添加扣分) if (button.style.display !== 'none') { // 移除整个表格行 const row = button.closest('tr'); if (row) row.parentNode.removeChild(row); } // 如果已添加扣分但扣分值为0且依据为空 else if (deductionGroup && basisGroup) { const scoreInput = deductionGroup.querySelector('.deduction-input'); const basisInput = basisGroup.querySelector('input[type="text"]'); if (scoreInput && basisInput) { const scoreValue = parseFloat(scoreInput.value) || 0; const basisValue = basisInput.value.trim(); if (scoreValue === 0 && basisValue === '') { const row = button.closest('tr'); if (row) row.parentNode.removeChild(row); } } } }); // 替换原始表单 document.querySelector('.wpcf7-form').innerHTML = formClone.innerHTML; }, false); // 验证必填字段函数 function validateRequiredFields() { let isValid = true; const requiredFields = document.querySelectorAll('[required]'); // 重置所有错误状态 document.querySelectorAll('.field-error').forEach(el => { el.classList.remove('field-error'); }); requiredFields.forEach(field => { // 检查字段是否填写 if (field.type === 'radio') { // 处理单选框组 const groupName = field.name; const radioGroup = document.querySelectorAll(`[name="${groupName}"]`); let isChecked = false; radioGroup.forEach(radio => { if (radio.checked) isChecked = true; }); if (!isChecked) { isValid = false; const wrapper = radioGroup[0].closest('.cf7-input-wrapper'); if (wrapper) wrapper.classList.add('field-error'); // 跳转到第一个错误字段 if (isValid === false) { wrapper.scrollIntoView({ behavior: 'smooth', block: 'center' }); } } } else if (!field.value.trim()) { isValid = false; const wrapper = field.closest('.cf7-input-wrapper'); if (wrapper) wrapper.classList.add('field-error'); // 跳转到第一个错误字段 if (isValid === false) { wrapper.scrollIntoView({ behavior: 'smooth', block: 'center' }); } } }); return isValid; } // 表单提交成功处理 document.addEventListener('wpcf7mailsent', function(event) { showAlert('提交成功!您的评估已成功发送。', 'success'); // 恢复原始表单 document.querySelector('.wpcf7-form').innerHTML = originalFormHTML; // 重新初始化表单 reinitializeForm(); }, false); // 表单提交失败处理 document.addEventListener('wpcf7mailfailed', function(event) { showAlert('提交失败:邮件发送过程中出现问题,请稍后重试。', 'error'); // 恢复原始表单 document.querySelector('.wpcf7-form').innerHTML = originalFormHTML; // 重新初始化表单 reinitializeForm(); }, false); // 表单验证失败处理 document.addEventListener('wpcf7invalid', function(event) { showAlert('表单验证失败:请检查所有必填字段并修正错误。', 'error'); // 恢复原始表单 document.querySelector('.wpcf7-form').innerHTML = originalFormHTML; // 重新初始化表单 reinitializeForm(); }, false); // 显示提醒消息函数 function showAlert(message, type) { // 移除现有的提醒 const existingAlert = document.querySelector('.custom-alert'); if (existingAlert) existingAlert.remove(); // 创建提醒元素 const alertDiv = document.createElement('div'); alertDiv.className = `custom-alert ${type}`; // 添加图标 const icon = document.createElement('i'); icon.className = `fas ${type === 'success' ? 'fa-check-circle alert-icon' : 'fa-exclamation-circle alert-icon'}`; alertDiv.appendChild(icon); // 添加消息文本 const text = document.createTextNode(message); alertDiv.appendChild(text); // 添加到页面 document.body.appendChild(alertDiv); // 5秒后自动移除 setTimeout(() => { if (alertDiv.parentNode) { alertDiv.parentNode.removeChild(alertDiv); } }, 5000); } // 重新初始化表单 function reinitializeForm() { // 重新绑定按钮事件 addButtons = document.querySelectorAll('.add-deduction'); addButtons.forEach(button => { button.addEventListener('click', function() { const targetId = this.dataset.target; document.getElementById(`${targetId}-input-group`).style.display = 'block'; document.getElementById(`${targetId}-basis-group`).style.display = 'block'; this.style.display = 'none'; }); }); // 重新初始化表单元素和事件 initForm(); } });

    [kaya_qrcode title_align=”alignnone” dynamic_content=”0″ ecclevel=”L” border=”4″ color=”#000000″ bgcolor=”#FFFFFF” align=”alignnone” css_shadow=”0″ no_css=”0″ new_window=”0″ content_url=”0″ download_button=”0″ download_align=”alignnone”]