From 55a0132be900c88bbd14fb70430a9213724a68b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=86=95?= Date: Sat, 28 Feb 2026 18:31:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9B=B4=E6=96=B0=EF=BC=9A?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8F=90=E8=BD=A6=E6=94=B6=E6=AC=BE-?= =?UTF-8?q?=E6=94=B6=E8=B4=B9=E6=98=8E=E7=BB=86-=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=A7=9F=E8=B5=81=E5=90=88=E5=90=8C=EF=BC=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=90=88=E5=90=8C=E4=BF=AE=E6=94=B9=E7=82=B9zip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- web端/财务管理/提车收款-收费明细-业务提交.jsx | 461 ++++++++++++++++++ .../车辆租赁合同/2026-02-27租赁合同修改点.zip | Bin 58166 -> 0 bytes web端/车辆租赁合同/新增租赁合同.jsx | 77 +-- 3 files changed, 508 insertions(+), 30 deletions(-) create mode 100644 web端/财务管理/提车收款-收费明细-业务提交.jsx delete mode 100644 web端/车辆租赁合同/2026-02-27租赁合同修改点.zip diff --git a/web端/财务管理/提车收款-收费明细-业务提交.jsx b/web端/财务管理/提车收款-收费明细-业务提交.jsx new file mode 100644 index 0000000..a393423 --- /dev/null +++ b/web端/财务管理/提车收款-收费明细-业务提交.jsx @@ -0,0 +1,461 @@ +// 【重要】必须使用 const Component 作为组件变量名 +// 提车应收款 - 收费明细(租赁费用管理-提车应收款,第一步由业务填写) + +const Component = function() { + var useState = React.useState; + var useCallback = React.useCallback; + var useMemo = React.useMemo; + + // 模拟:项目信息(只读) + var mockProject = useMemo(function() { + return { + contractCode: 'HT-ZL-2025-001', + contractType: '正式合同', + projectName: '北京朝阳区租赁项目', + customerName: '某某科技有限公司', + paymentMethod: '预付', + paymentCycle: '1个月', + department: '运营部', + responsible: '张三' + }; + }, []); + + // 模拟:车辆列表(含服务费项),用于初始化可编辑账单行 + var mockVehicleList = useMemo(function() { + return [ + { brand: '奔驰', model: 'E300L', plateNo: '京A12345', monthlyRent: '8000.00', deposit: '2000.00', serviceItems: [{ name: '保养服务', fee: '300.00', remark: '' }, { name: '保险', fee: '200.00', remark: '' }] }, + { brand: '宝马', model: '530Li', plateNo: '京B67890', monthlyRent: '7000.00', deposit: '1500.00', serviceItems: [{ name: '保养服务', fee: '250.00', remark: '' }] } + ]; + }, []); + + // 模拟:氢费配置(租赁合同:客户承担+预付款时才有氢费预付款应收) + var mockHydrogen = useMemo(function() { + return { + bearer: '客户', // 客户承担 | 其他 + paymentMethod: '预付', // 预付 | 后付 + prepaymentAmount: '3580.00' // 氢气预付款金额 + }; + }, []); + + // 模拟:开票信息(只读) + var mockInvoice = useMemo(function() { + return { + customerName: '某某科技有限公司', + taxId: '91330400MA2XXXXX1', + address: '浙江省嘉兴市南湖区科技大道1号', + phone: '0571-88888888', + account: '6222021234567890123', + bank: '中国工商银行嘉兴分行', + mailingAddress: '浙江省嘉兴市南湖区科技大道1号' + }; + }, []); + + // 可编辑提车应收款行:应收车辆租金、车辆租金备注、应收保证金(只读)、服务费项(应收费用/备注可编辑)、减免金额、减免金额备注 + var vehicleRowsState = useState([]); + var vehicleRows = vehicleRowsState[0]; + var setVehicleRows = vehicleRowsState[1]; + // 服务费弹窗:当前打开的行索引,null 表示关闭 + var serviceModalRowState = useState(null); + var serviceModalRow = serviceModalRowState[0]; + var setServiceModalRow = serviceModalRowState[1]; + // 查看需求说明弹窗 + var requirementVisibleState = useState(false); + var requirementVisible = requirementVisibleState[0]; + var setRequirementVisible = requirementVisibleState[1]; + // 取消二次确认弹窗 + var cancelConfirmVisibleState = useState(false); + var cancelConfirmVisible = cancelConfirmVisibleState[0]; + var setCancelConfirmVisible = cancelConfirmVisibleState[1]; + + // 需求说明文案(#提车应收款-收款明细) + var requirementContent = '「车辆管理系统」中的「租赁费用管理」模块下「提车应收款」中「收费明细」模块,第一步由业务填写;\n\n#提车应收款-收款明细\n\n整个页面从上至下为项目信息、车辆首付款、氢费预付款、开票信息4个卡片模块组成;\n\n1.项目信息:\n1.1.上方为表单,显示合同编码、合同类型、项目名称、客户名称、付款方式、付款周期、业务部门、业务负责人;\n1.1.1.合同编码:显示租赁合同编号;\n1.1.2.合同类型:显示租赁合同类型,类型有正式合同/试用合同;\n1.1.3.项目名称:显示租赁合同项目名称;\n1.1.4.客户名称:显示租赁合同客户名称;\n1.1.5.付款方式:显示租赁合同付款方式,类型有预付/后付;\n1.1.6.付款周期:显示付款周期,类型有1个月-12个月;\n1.1.7.业务部门:显示租赁合同对应业务部门;\n1.1.8.业务负责人:显示租赁合同对应业务负责人;\n\n2.提车应收款:\n2.1.上方为提车应收款应收总额;\n2.1.1.提车应收款总额:显示总金额,格式为xx.xx元,计算方式为:所有应付车辆租金+所有应付保证金+所有应付服务费-所有减免金额;\n2.2.车辆账单:品牌/型号/车牌号/应收车辆租金/车辆租金备注/应收保证金/服务费项目/应收服务费/减免金额/减免金额备注\n2.2.1.品牌:显示租赁合同中对应品牌;\n2.2.2.型号:显示租赁合同中对应型号;\n2.2.3.车牌号:显示租赁合同中对应车牌号,如无则显示为-;\n2.2.4.应收车辆租金:必填项,默认显示1个月车辆租金,按照合同车辆月租金反写,可修改;\n2.2.5.车辆租金备注:选填项,输入框,可自行备注车辆租金情况;\n2.2.6.应收保证金:必填项,默认显示应收车辆保证金,按照租赁合同保证金反写,不可修改;\n2.2.7.服务费项目:点击管理,弹出卡片,卡片中为列表,列表显示租赁合同所有已填写服务项目,不支持新增服务项目,列表字段为:服务项目、应付费用、服务费用备注;\n 2.2.8.1.服务项目:显示所有租赁合同中已添加的服务项目名称;\n 2.2.8.2.应收费用:必填项,默认拉取所有租赁合同中已添加的服务项目对应费用金额,可修改;\n 2.2.8.3.服务费用备注:选填项,输入框,可自行输入;\n2.1.8.应收服务费:根据服务费项目所有服务项目应付费用计算总和得出,不可修改;\n2.1.9.减免金额:选填项,默认为0,可修改,2位小数;\n2.1.10.减免金额备注:选填项,输入框,可自行备注减免情况;\n\n3.氢费预付款:\n3.1.上方为氢费预付款应收总额/氢费预付款应收金额/减免金额/减免金额备注;\n3.1.1.氢费应收总额:显示总金额,格式为xx.xx元,计算方式为:氢费预付款实付总额-减免金额;\n3.1.2.氢费预付款应收金额:必填项,输入框,支持两位小数,格式为xx.xx元,默认为与租赁合同氢气预付款金额相同;当租赁合同氢费设置为客户承担、预付款时才有,与氢气预付款金额相同,其他费用模式下,氢气预付款为0;\n3.1.2.减免金额:必填项,输入框,支持两位小数,格式为xx.xx元,默认为0.00元;\n3.1.3.减免金额备注:选填项,输入框,可自行输入;\n\n4.开票信息:\n4.1.开票金额:显示总金额,格式为xx.xx元,计算方式为:提车应收款总额+氢费应收总额;\n4.2.之后为表单,显示客户名称、纳税人识别号、地址、电话、账户、开户行、邮寄地址、开票时间、发票附件、备注:\n4.2.1.客户名称:显示租赁合同客户名称;\n4.2.2.纳税人识别号:显示租赁合同对应客户纳税人识别号;\n4.2.3.地址:显示租赁合同对应客户地址;\n4.2.4.电话:显示租赁合同对应客户电话;\n4.2.5.账户:显示租赁合同对应客户账户;\n4.2.6.开户行:显示租赁合同对应客户开户行;\n4.2.7.邮寄地址:显示租赁合同对应客户邮寄地址;\n4.2.8.开票金额:显示总金额,格式为xx.xx元,计算方式为:提车应收款总额+氢费应收总额;\n4.2.9.开票时间:显示为待开票;\n4.2.10.发票附件:显示为待上传;\n4.2.11.备注:显示为无;\n\n5.页面底部为提交、取消;\n5.1.提交审核:点击提交审核,该条记录移至审核中心,同时提车应收款列表中该条记录审核状态标记为:待审核;\n5.2.取消:点击取消,进行二次确认气泡提示,提示为:取消将会丢失所有已添加数据,是否确认取消,点击是则返回提车应收款列表页;点击否则关闭二次确认继续操作;\n\n6.审批流程:\n6.1.标准情况(车辆租金、服务费金额≥租赁合同配置的单月租金*付款周期或氢费金额=租赁合同配置的氢费预付款金额):业务->财务主管(吕红/宋欣怡);\n6.2.非标情况(车辆租金、服务费金额<租赁合同配置的单月租金*付款周期或氢费金额<租赁合同配置的氢费预付款金额);业务->财务主管(吕红/宋欣怡)->更上级领导(待定,可能是董事长),流程请待确认完成之后,再进行设置;'; + + // 氢费预付款表单:应收金额(必填,默认=合同氢气预付款金额)、减免金额、减免金额备注;应收总额=应收金额-减免金额(只读) + var hydrogenFormState = useState(function() { + var isCustomerPrepay = (mockHydrogen.bearer === '客户' && mockHydrogen.paymentMethod === '预付'); + var paid = isCustomerPrepay ? (mockHydrogen.prepaymentAmount || '0.00') : '0.00'; + return { paidTotal: paid, discount: '0.00', discountRemark: '' }; + }); + var hydrogenForm = hydrogenFormState[0]; + var setHydrogenForm = hydrogenFormState[1]; + // 氢费应收总额 = 应收金额 - 减免金额(只读显示) + var hydrogenPayableTotal = useMemo(function() { + var paid = parseFloat(hydrogenForm.paidTotal) || 0; + var discount = parseFloat(hydrogenForm.discount) || 0; + var v = paid - discount; + return (v >= 0 ? v : 0).toFixed(2); + }, [hydrogenForm.paidTotal, hydrogenForm.discount]); + + function formatTwoDecimals(val) { + var n = parseFloat(String(val).replace(/[^\d.-]/g, '')); + if (isNaN(n)) return '0.00'; + return n.toFixed(2); + } + + React.useEffect(function() { + var rows = mockVehicleList.map(function(v) { + var serviceItems = (v.serviceItems || []).map(function(s) { + return { name: s.name, fee: s.fee || '', remark: s.remark || '' }; + }); + return { + brand: v.brand, + model: v.model, + plateNo: v.plateNo || '-', + payableRent: v.monthlyRent || '', + rentRemark: '', + deposit: v.deposit || '', + depositRemark: '', + serviceItems: serviceItems, + discount: '0', + discountRemark: '' + }; + }); + setVehicleRows(rows); + }, [mockVehicleList]); + + // 单行应收服务费 = 该行服务费项应收费用之和 + function getRowServiceTotal(row) { + var total = 0; + var list = row.serviceItems || []; + for (var i = 0; i < list.length; i++) { + var n = parseFloat(list[i].fee); + if (!isNaN(n)) total += n; + } + return total.toFixed(2); + } + // 提车应收款总额 = 所有应收车辆租金 + 所有应收保证金 + 所有应收服务费 - 所有减免金额 + var totalPayable = useMemo(function() { + var rentSum = 0, depositSum = 0, serviceSum = 0, discountSum = 0; + for (var i = 0; i < vehicleRows.length; i++) { + var r = vehicleRows[i]; + rentSum += parseFloat(r.payableRent) || 0; + depositSum += parseFloat(r.deposit) || 0; + serviceSum += parseFloat(getRowServiceTotal(r)) || 0; + discountSum += parseFloat(r.discount) || 0; + } + return (rentSum + depositSum + serviceSum - discountSum).toFixed(2); + }, [vehicleRows]); + + var handleVehicleChange = useCallback(function(rowIndex, field, value) { + setVehicleRows(function(prev) { + var next = prev.slice(); + var row = next[rowIndex] ? Object.assign({}, next[rowIndex]) : next[rowIndex]; + row[field] = value; + next[rowIndex] = row; + return next; + }); + }, []); + var handleServiceItemChange = useCallback(function(rowIndex, itemIndex, field, value) { + setVehicleRows(function(prev) { + var next = prev.slice(); + var row = next[rowIndex] ? Object.assign({}, next[rowIndex]) : next[rowIndex]; + var items = (row.serviceItems || []).slice(); + var item = items[itemIndex] ? Object.assign({}, items[itemIndex]) : items[itemIndex]; + item[field] = value; + items[itemIndex] = item; + row.serviceItems = items; + next[rowIndex] = row; + return next; + }); + }, []); + + var handleSubmit = useCallback(function() { + var err = []; + for (var i = 0; i < vehicleRows.length; i++) { + var r = vehicleRows[i]; + if (!r.payableRent || String(r.payableRent).trim() === '') err.push('第' + (i + 1) + '行应收车辆租金'); + if (!r.deposit || String(r.deposit).trim() === '') err.push('第' + (i + 1) + '行应收保证金'); + var items = r.serviceItems || []; + for (var j = 0; j < items.length; j++) { + if (!items[j].fee || String(items[j].fee).trim() === '') err.push('第' + (i + 1) + '行服务费项「' + (items[j].name || '') + '」应收费用'); + } + } + if (!hydrogenForm.paidTotal || String(hydrogenForm.paidTotal).trim() === '') err.push('氢费预付款应收金额'); + if (!hydrogenForm.discount || String(hydrogenForm.discount).trim() === '') err.push('氢费减免金额'); + if (err.length > 0) { + alert('请填写必填项:' + err.join('、')); + return; + } + alert('提交成功,该条记录已移至审核中心,审核状态为待审核'); + }, [vehicleRows, hydrogenForm]); + var handleCancelClick = useCallback(function() { + setCancelConfirmVisible(true); + }, []); + var handleCancelConfirm = useCallback(function(confirmed) { + setCancelConfirmVisible(false); + if (confirmed) { + alert('已返回提车应收款列表'); + } + }, []); + + var styles = useMemo(function() { + return { + page: { padding: '16px 24px', background: '#f5f5f5', minHeight: '100vh', fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif' }, + breadcrumb: { marginBottom: 16, fontSize: 14, color: '#666' }, + card: { background: '#fff', borderRadius: 8, padding: 24, marginBottom: 16, boxShadow: '0 1px 2px rgba(0,0,0,0.03)' }, + cardTitle: { fontSize: 16, fontWeight: 600, marginBottom: 16, paddingBottom: 12, borderBottom: '1px solid #f0f0f0' }, + detailRow: { display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '24px', marginBottom: 12, fontSize: 14 }, + formCol: { display: 'flex', flexDirection: 'column', gap: 4 }, + formLabel: { color: '#666', fontSize: 14 }, + formValue: { color: '#333', fontSize: 14 }, + requiredMark: { color: '#ff4d4f', marginRight: 4 }, + table: { width: '100%', borderCollapse: 'collapse', fontSize: 14 }, + th: { textAlign: 'left', padding: '12px 16px', backgroundColor: '#fafafa', borderBottom: '1px solid #f0f0f0', fontWeight: 600, color: '#333', whiteSpace: 'nowrap' }, + td: { padding: '12px 16px', borderBottom: '1px solid #f0f0f0', color: '#333' }, + formInput: { padding: '8px 12px', border: '1px solid #d9d9d9', borderRadius: 4, fontSize: 14, width: '100%', maxWidth: 140 }, + linkBtn: { color: '#1890ff', cursor: 'pointer', background: 'none', border: 'none', padding: 0, fontSize: 14 }, + totalLine: { marginBottom: 16, fontSize: 14 }, + totalAmount: { color: '#1890ff', fontWeight: 600, fontSize: 16 }, + footer: { marginTop: 24, display: 'flex', justifyContent: 'center', gap: 12 }, + primaryBtn: { padding: '8px 24px', backgroundColor: '#1890ff', color: '#fff', border: 'none', borderRadius: 4, cursor: 'pointer', fontSize: 14 }, + defaultBtn: { padding: '8px 24px', backgroundColor: '#fff', color: '#666', border: '1px solid #d9d9d9', borderRadius: 4, cursor: 'pointer', fontSize: 14 }, + modalOverlay: { position: 'fixed', top: 0, left: 0, right: 0, bottom: 0, backgroundColor: 'rgba(0,0,0,0.45)', display: 'flex', alignItems: 'center', justifyContent: 'center', zIndex: 1000 }, + modalCard: { backgroundColor: '#fff', borderRadius: 8, padding: 24, maxWidth: '90%', maxHeight: '80vh', overflow: 'auto' }, + modalHeader: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: 16 }, + modalTitle: { fontSize: 16, fontWeight: 600 }, + modalClose: { padding: '4px 12px', backgroundColor: '#f5f5f5', border: 'none', borderRadius: 4, cursor: 'pointer' }, + modalBody: { maxHeight: '60vh', overflowY: 'auto', whiteSpace: 'pre-wrap', fontSize: 14, lineHeight: 1.6, color: '#333' }, + pageHeader: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: 16, flexWrap: 'wrap', gap: 8 }, + requirementLink: { color: '#1890ff', cursor: 'pointer', fontSize: 14, textDecoration: 'none', background: 'none', border: 'none', padding: 0 } + }; + }, []); + + // 项目信息卡片(3列) + var projectCard = React.createElement('div', { style: styles.card }, + React.createElement('div', { style: styles.cardTitle }, '项目信息'), + React.createElement('div', { style: styles.detailRow }, + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '合同编码'), React.createElement('div', { style: styles.formValue }, mockProject.contractCode)), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '合同类型'), React.createElement('div', { style: styles.formValue }, mockProject.contractType)), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '项目名称'), React.createElement('div', { style: styles.formValue }, mockProject.projectName)) + ), + React.createElement('div', { style: styles.detailRow }, + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '客户名称'), React.createElement('div', { style: styles.formValue }, mockProject.customerName)), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '付款方式'), React.createElement('div', { style: styles.formValue }, mockProject.paymentMethod)), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '付款周期'), React.createElement('div', { style: styles.formValue }, mockProject.paymentCycle)) + ), + React.createElement('div', { style: styles.detailRow }, + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '业务部门'), React.createElement('div', { style: styles.formValue }, mockProject.department)), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '业务负责人'), React.createElement('div', { style: styles.formValue }, mockProject.responsible)), + React.createElement('div', { style: styles.formCol }, null) + ) + ); + + // 提车应收款表头 + var vehicleTableHeader = React.createElement('thead', null, + React.createElement('tr', null, + React.createElement('th', { style: styles.th }, '品牌'), + React.createElement('th', { style: styles.th }, '型号'), + React.createElement('th', { style: styles.th }, '车牌号'), + React.createElement('th', { style: styles.th }, React.createElement('span', { style: styles.requiredMark }, '*'), '应收车辆租金'), + React.createElement('th', { style: styles.th }, '车辆租金备注'), + React.createElement('th', { style: styles.th }, React.createElement('span', { style: styles.requiredMark }, '*'), '应收保证金'), + React.createElement('th', { style: styles.th }, '服务费项目'), + React.createElement('th', { style: styles.th }, '应收服务费'), + React.createElement('th', { style: styles.th }, '减免金额'), + React.createElement('th', { style: styles.th }, '减免金额备注') + ) + ); + + var vehicleTableBody = React.createElement('tbody', null, + vehicleRows.map(function(row, rowIndex) { + var serviceTotal = getRowServiceTotal(row); + return React.createElement('tr', { key: rowIndex }, + React.createElement('td', { style: styles.td }, row.brand), + React.createElement('td', { style: styles.td }, row.model), + React.createElement('td', { style: styles.td }, row.plateNo), + React.createElement('td', { style: styles.td }, + React.createElement('input', { type: 'text', style: styles.formInput, value: row.payableRent, onChange: function(e) { handleVehicleChange(rowIndex, 'payableRent', e.target.value); } }) + ), + React.createElement('td', { style: styles.td }, + React.createElement('input', { type: 'text', style: Object.assign({}, styles.formInput, { maxWidth: 120 }), value: row.rentRemark, onChange: function(e) { handleVehicleChange(rowIndex, 'rentRemark', e.target.value); }, placeholder: '选填' }) + ), + React.createElement('td', { style: styles.td }, row.deposit), + React.createElement('td', { style: styles.td }, + React.createElement('button', { type: 'button', style: styles.linkBtn, onClick: function() { setServiceModalRow(rowIndex); } }, '管理') + ), + React.createElement('td', { style: styles.td }, serviceTotal), + React.createElement('td', { style: styles.td }, + React.createElement('input', { type: 'text', style: styles.formInput, value: row.discount, onChange: function(e) { handleVehicleChange(rowIndex, 'discount', e.target.value); }, placeholder: '0' }) + ), + React.createElement('td', { style: styles.td }, + React.createElement('input', { type: 'text', style: Object.assign({}, styles.formInput, { maxWidth: 120 }), value: row.discountRemark, onChange: function(e) { handleVehicleChange(rowIndex, 'discountRemark', e.target.value); }, placeholder: '选填' }) + ) + ); + }) + ); + + var vehicleBillCard = React.createElement('div', { style: styles.card }, + React.createElement('div', { style: styles.cardTitle }, '提车应收款'), + React.createElement('div', { style: styles.totalLine }, + React.createElement('span', { style: { marginRight: 8 } }, '提车应收款总额:'), + React.createElement('span', { style: styles.totalAmount }, totalPayable + ' 元') + ), + React.createElement('table', { style: styles.table }, vehicleTableHeader, vehicleTableBody) + ); + + // 氢费预付款卡片:第一行应收总额(只读,=应收金额-减免);第二行应收金额/减免金额/减免金额备注 + var hydrogenCard = React.createElement('div', { style: styles.card }, + React.createElement('div', { style: styles.cardTitle }, '氢费预付款'), + React.createElement('div', { style: styles.totalLine }, + React.createElement('span', { style: { marginRight: 8 } }, '氢费应收总额:'), + React.createElement('span', { style: styles.totalAmount }, hydrogenPayableTotal + ' 元') + ), + React.createElement('div', { style: styles.detailRow }, + React.createElement('div', { style: styles.formCol }, + React.createElement('div', { style: styles.formLabel }, React.createElement('span', { style: styles.requiredMark }, '*'), '氢费预付款应收金额'), + React.createElement('div', { style: { display: 'flex', alignItems: 'center', gap: 8 } }, + React.createElement('input', { + type: 'text', + style: styles.formInput, + value: hydrogenForm.paidTotal, + onChange: function(e) { setHydrogenForm(function(prev) { return Object.assign({}, prev, { paidTotal: e.target.value }); }); }, + onBlur: function(e) { setHydrogenForm(function(prev) { return Object.assign({}, prev, { paidTotal: formatTwoDecimals(prev.paidTotal) }); }); }, + placeholder: '0.00' + }), + React.createElement('span', { style: { fontSize: 14, color: '#333' } }, '元') + ) + ), + React.createElement('div', { style: styles.formCol }, + React.createElement('div', { style: styles.formLabel }, React.createElement('span', { style: styles.requiredMark }, '*'), '减免金额'), + React.createElement('div', { style: { display: 'flex', alignItems: 'center', gap: 8 } }, + React.createElement('input', { + type: 'text', + style: styles.formInput, + value: hydrogenForm.discount, + onChange: function(e) { setHydrogenForm(function(prev) { return Object.assign({}, prev, { discount: e.target.value }); }); }, + onBlur: function(e) { setHydrogenForm(function(prev) { return Object.assign({}, prev, { discount: formatTwoDecimals(prev.discount) }); }); }, + placeholder: '0.00' + }), + React.createElement('span', { style: { fontSize: 14, color: '#333' } }, '元') + ) + ), + React.createElement('div', { style: styles.formCol }, + React.createElement('div', { style: styles.formLabel }, '减免金额备注'), + React.createElement('input', { + type: 'text', + style: styles.formInput, + value: hydrogenForm.discountRemark, + onChange: function(e) { setHydrogenForm(function(prev) { return Object.assign({}, prev, { discountRemark: e.target.value }); }); }, + placeholder: '选填' + }) + ) + ) + ); + + // 开票金额 = 提车应收款总额 + 氢费应收总额 + var invoiceAmount = useMemo(function() { + var a = parseFloat(totalPayable) || 0; + var b = parseFloat(hydrogenPayableTotal) || 0; + return (a + b).toFixed(2); + }, [totalPayable, hydrogenPayableTotal]); + + // 开票信息卡片:第1行开票金额;第2行起客户名称等表单;最后一行开票时间/发票附件/备注 + var invoiceCard = React.createElement('div', { style: styles.card }, + React.createElement('div', { style: styles.cardTitle }, '开票信息'), + React.createElement('div', { style: styles.totalLine }, + React.createElement('span', { style: { marginRight: 8 } }, '开票金额:'), + React.createElement('span', { style: styles.totalAmount }, invoiceAmount + ' 元') + ), + React.createElement('div', { style: styles.detailRow }, + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '客户名称'), React.createElement('div', { style: styles.formValue }, mockInvoice.customerName)), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '纳税人识别号'), React.createElement('div', { style: styles.formValue }, mockInvoice.taxId)), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '地址'), React.createElement('div', { style: styles.formValue }, mockInvoice.address)) + ), + React.createElement('div', { style: styles.detailRow }, + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '电话'), React.createElement('div', { style: styles.formValue }, mockInvoice.phone)), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '账户'), React.createElement('div', { style: styles.formValue }, mockInvoice.account)), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '开户行'), React.createElement('div', { style: styles.formValue }, mockInvoice.bank)) + ), + React.createElement('div', { style: styles.detailRow }, + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '邮寄地址'), React.createElement('div', { style: styles.formValue }, mockInvoice.mailingAddress)), + React.createElement('div', { style: styles.formCol }, null), + React.createElement('div', { style: styles.formCol }, null) + ), + React.createElement('div', { style: styles.detailRow }, + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '开票时间'), React.createElement('div', { style: styles.formValue }, '待开票')), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '发票附件'), React.createElement('div', { style: styles.formValue }, '待上传')), + React.createElement('div', { style: styles.formCol }, React.createElement('div', { style: styles.formLabel }, '备注'), React.createElement('div', { style: styles.formValue }, '无')) + ) + ); + + // 服务费项目弹窗 + var serviceModal = null; + if (serviceModalRow !== null && vehicleRows[serviceModalRow]) { + var r = vehicleRows[serviceModalRow]; + var serviceList = r.serviceItems || []; + serviceModal = React.createElement('div', { style: styles.modalOverlay, onClick: function() { setServiceModalRow(null); } }, + React.createElement('div', { style: styles.modalCard, onClick: function(e) { e.stopPropagation(); } }, + React.createElement('div', { style: styles.modalHeader }, + React.createElement('span', { style: styles.modalTitle }, '服务费项目'), + React.createElement('button', { type: 'button', style: styles.modalClose, onClick: function() { setServiceModalRow(null); } }, '关闭') + ), + React.createElement('table', { style: styles.table }, + React.createElement('thead', null, + React.createElement('tr', null, + React.createElement('th', { style: styles.th }, '服务项目'), + React.createElement('th', { style: styles.th }, React.createElement('span', { style: styles.requiredMark }, '*'), '应收费用'), + React.createElement('th', { style: styles.th }, '服务费用备注') + ) + ), + React.createElement('tbody', null, + serviceList.map(function(item, itemIndex) { + return React.createElement('tr', { key: itemIndex }, + React.createElement('td', { style: styles.td }, item.name), + React.createElement('td', { style: styles.td }, + React.createElement('input', { type: 'text', style: styles.formInput, value: item.fee, onChange: function(e) { handleServiceItemChange(serviceModalRow, itemIndex, 'fee', e.target.value); } }) + ), + React.createElement('td', { style: styles.td }, + React.createElement('input', { type: 'text', style: Object.assign({}, styles.formInput, { maxWidth: 200 }), value: item.remark, onChange: function(e) { handleServiceItemChange(serviceModalRow, itemIndex, 'remark', e.target.value); }, placeholder: '选填' }) + ) + ); + }) + ) + ) + ) + ); + } + + var footer = React.createElement('div', { style: styles.footer }, + React.createElement('button', { type: 'button', style: styles.primaryBtn, onClick: handleSubmit }, '提交审核'), + React.createElement('button', { type: 'button', style: styles.defaultBtn, onClick: handleCancelClick }, '取消') + ); + + var requirementModal = requirementVisible ? React.createElement('div', { style: styles.modalOverlay, onClick: function() { setRequirementVisible(false); } }, + React.createElement('div', { style: styles.modalCard, onClick: function(e) { e.stopPropagation(); } }, + React.createElement('div', { style: styles.modalHeader }, + React.createElement('span', { style: styles.modalTitle }, '需求说明'), + React.createElement('button', { type: 'button', style: styles.modalClose, onClick: function() { setRequirementVisible(false); } }, '关闭') + ), + React.createElement('div', { style: styles.modalBody }, requirementContent) + ) + ) : null; + + var cancelConfirmModal = cancelConfirmVisible ? React.createElement('div', { style: styles.modalOverlay, onClick: function() { setCancelConfirmVisible(false); } }, + React.createElement('div', { style: styles.modalCard, onClick: function(e) { e.stopPropagation(); } }, + React.createElement('div', { style: styles.modalHeader }, + React.createElement('span', { style: styles.modalTitle }, '提示'), + null + ), + React.createElement('div', { style: { marginBottom: 20, fontSize: 14, color: '#333' } }, '取消将会丢失所有已添加数据,是否确认取消?'), + React.createElement('div', { style: { display: 'flex', justifyContent: 'flex-end', gap: 12 } }, + React.createElement('button', { type: 'button', style: styles.defaultBtn, onClick: function() { handleCancelConfirm(false); } }, '否'), + React.createElement('button', { type: 'button', style: styles.primaryBtn, onClick: function() { handleCancelConfirm(true); } }, '是') + ) + ) + ) : null; + + return React.createElement('div', { style: styles.page }, + React.createElement('div', { style: styles.pageHeader }, + React.createElement('div', { style: styles.breadcrumb }, '租赁费用管理 > 提车应收款 > 收费明细'), + React.createElement('button', { type: 'button', style: styles.requirementLink, onClick: function() { setRequirementVisible(true); } }, '查看需求说明') + ), + projectCard, + vehicleBillCard, + hydrogenCard, + invoiceCard, + footer, + serviceModal, + requirementModal, + cancelConfirmModal + ); +}; diff --git a/web端/车辆租赁合同/2026-02-27租赁合同修改点.zip b/web端/车辆租赁合同/2026-02-27租赁合同修改点.zip deleted file mode 100644 index 5fe66bbd936ed8110fc40f95f76e6e4766b563c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58166 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

|O~=>`D&o@zv&rgRCSV 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�OioLp?EwZ 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 0) { - var firstId = errs.customer || errs.businessDept || errs.businessOwner ? 'card-customer' : (errs.projectName || errs.contractType || errs.effectiveDate || errs.paymentMethod || errs.endDate || errs.paymentPeriod || errs.signingCompany || errs.deliveryRegion || errs.contractOriginal) ? 'card-contract' : errs.authorizedList ? 'card-authorized' : (errs.rentalOrders || errs.hydrogenBearer || errs.hydrogenPaymentMethod || errs.hydrogenPrepay || errs.returnHydrogenPrice) ? 'card-rental' : errs.feeTemplate ? 'card-fee' : 'card-billing'; + var firstId = errs.customer || errs.businessDept || errs.businessOwner ? 'card-customer' : (errs.projectName || errs.contractType || errs.effectiveDate || errs.paymentMethod || errs.endDate || errs.paymentPeriod || errs.signingCompany || errs.deliveryRegion || errs.deliveryLocation || errs.contractOriginal) ? 'card-contract' : errs.authorizedList ? 'card-authorized' : (errs.rentalOrders || errs.hydrogenBearer || errs.hydrogenPaymentMethod || errs.hydrogenPrepay || errs.returnHydrogenPrice) ? 'card-rental' : errs.feeTemplate ? 'card-fee' : 'card-billing'; setCc1(false); setCc2(false); setCc3(false); setCc4(false); setCc5(false); setCc6(false); setTimeout(function() { var el = document.getElementById(firstId); if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' }); }, 100); return false; @@ -290,7 +296,17 @@ const Component = function() { newRow[field] = value; if (field === 'plateNo') { var v = vehicleList.find(function(x) { return x.plateNo === value; }); - newRow.vin = v ? v.vin : ''; + if (v) { + newRow.vin = v.vin || ''; + if (v.brand || v.model) { + if (!cur.brand && !cur.model) { + newRow.brand = v.brand || ''; + newRow.model = v.model || ''; + } + } + } else { + newRow.vin = ''; + } } if (field === 'brand') newRow.model = ''; next[index] = newRow; @@ -459,7 +475,6 @@ const Component = function() { var contractFormRow1 = React.createElement('div', { style: styles.formRow }, React.createElement(FormItem, { label: '项目名称', required: true, error: formErrors.projectName }, React.createElement(Input, { placeholder: '请输入项目名称', value: projectName, onChange: function(e) { setProjectName(e.target.value); }, status: formErrors.projectName ? 'error' : undefined, style: { width: '100%' } })), - React.createElement(FormItem, { label: '合同编码' }, React.createElement(Input, { value: contractCode, disabled: true, style: { width: '100%' } })), React.createElement(FormItem, { label: '合同类型', required: true, error: formErrors.contractType }, React.createElement(Select, { placeholder: '请选择合同类型', style: { width: '100%' }, value: contractType || undefined, onChange: function(v) { setContractType(v || ''); }, status: formErrors.contractType ? 'error' : undefined }, React.createElement(Option, { value: '正式合同' }, '正式合同'), React.createElement(Option, { value: '试用合同' }, '试用合同'))), React.createElement(FormItem, { label: '生效日期', required: true, error: formErrors.effectiveDate }, React.createElement(DatePicker, { style: { width: '100%' }, format: 'YYYY-MM-DD', placeholder: '请选择生效日期', value: effectiveDate && window.moment ? window.moment(effectiveDate, 'YYYY-MM-DD') : null, onChange: function(d, dateStr) { setEffectiveDate(dateStr || ''); }, status: formErrors.effectiveDate ? 'error' : undefined })), React.createElement(FormItem, { label: '付款方式', required: true, error: formErrors.paymentMethod }, React.createElement(Select, { placeholder: '请选择付款方式', style: { width: '100%' }, value: paymentMethod || undefined, onChange: function(v) { setPaymentMethod(v || ''); }, status: formErrors.paymentMethod ? 'error' : undefined }, React.createElement(Option, { value: '预付' }, '预付'), React.createElement(Option, { value: '后付' }, '后付'))), @@ -468,32 +483,34 @@ const Component = function() { React.createElement(FormItem, { label: '付款周期', required: true, error: formErrors.paymentPeriod }, React.createElement(Select, { placeholder: '请选择', style: { width: '100%' }, value: paymentPeriod || undefined, onChange: function(v) { setPaymentPeriod(v || ''); }, status: formErrors.paymentPeriod ? 'error' : undefined }, [1,2,3,4,5,6,7,8,9,10,11,12].map(function(n) { return React.createElement(Option, { key: n, value: String(n) }, n + '个月'); }))), React.createElement(FormItem, { label: '签约公司', required: true, error: formErrors.signingCompany }, React.createElement(Select, { placeholder: '请选择', style: { width: '100%' }, value: signingCompany || undefined, onChange: function(v) { setSigningCompany(v || ''); }, status: formErrors.signingCompany ? 'error' : undefined }, orgList.map(function(o, i) { return React.createElement(Option, { key: i, value: o }, o); }))), React.createElement('div', { style: styles.formCol }, - React.createElement(FormItem, { label: '交车区域', required: true, error: formErrors.deliveryRegion }, React.createElement('div', { id: 'delivery-region-wrap', style: { position: 'relative' } }, React.createElement(Input, { style: Object.assign({}, formErrors.deliveryRegion ? { borderColor: '#ff4d4f' } : {}, { cursor: 'pointer', caretColor: 'transparent', width: '100%' }), placeholder: '请选择省-市', value: deliveryRegionDisplay, readOnly: true, onClick: function() { setDeliveryRegionOpen(!deliveryRegionOpen); } }), deliveryRegionOpen ? React.createElement('div', { style: styles.regionCascader, onMouseDown: function() { deliveryRegionClickInsideRef.current = true; } }, React.createElement('div', { style: styles.regionCascaderCol }, regionList.map(function(r, i) { var isActive = r.province === deliveryProvince; return React.createElement('div', { key: i, style: Object.assign({}, styles.regionCascaderItem, isActive ? { backgroundColor: '#e6f7ff', color: '#1890ff' } : {}), onMouseEnter: function(e) { if (!isActive) e.currentTarget.style.backgroundColor = '#f5f5f5'; }, onMouseLeave: function(e) { if (!isActive) e.currentTarget.style.backgroundColor = 'transparent'; }, onMouseDown: function(e) { e.preventDefault(); setDeliveryProvince(r.province); setDeliveryCity(''); } }, r.province); })), React.createElement('div', { style: styles.regionCascaderColLast }, deliveryProvince ? (regionList.find(function(x) { return x.province === deliveryProvince; }) || { cities: [] }).cities.map(function(c, i) { var isActive = c === deliveryCity; return React.createElement('div', { key: i, style: Object.assign({}, styles.regionCascaderItem, isActive ? { backgroundColor: '#e6f7ff', color: '#1890ff' } : {}), onMouseEnter: function(e) { if (!isActive) e.currentTarget.style.backgroundColor = '#f5f5f5'; }, onMouseLeave: function(e) { if (!isActive) e.currentTarget.style.backgroundColor = 'transparent'; }, onMouseDown: function(e) { e.preventDefault(); selectDeliveryRegion(deliveryProvince, c); } }, c); }) : React.createElement('div', { style: { padding: 16, color: '#999', fontSize: 13 } }, '请先选择省'))) : null)), - React.createElement(FormItem, { label: '合同原件', required: true, error: formErrors.contractOriginal }, - contractOriginal - ? React.createElement('div', { style: { display: 'flex', alignItems: 'center', gap: 12, flexWrap: 'wrap' } }, - React.createElement('div', { style: { display: 'flex', alignItems: 'center', gap: 8, flexWrap: 'wrap' } }, - React.createElement('a', { href: '#', style: { color: '#1890ff' }, onClick: function(e) { e.preventDefault(); openContractOriginal(); } }, contractOriginal.name), - contractOriginal.size || contractOriginal.uploadTime ? React.createElement('span', { style: { color: '#999', fontSize: 12 } }, (contractOriginal.size ? contractOriginal.size : '') + (contractOriginal.size && contractOriginal.uploadTime ? ' · ' : '') + (contractOriginal.uploadTime || '')) : null - ), - React.createElement(Button, { type: 'button', size: 'small', danger: true, onClick: function() { setContractOriginal(null); } }, '删除') - ) - : React.createElement('div', { style: { display: 'flex', alignItems: 'center', gap: 8 } }, - React.createElement('input', { ref: contractOriginalRef, type: 'file', style: { display: 'none' }, onChange: function(e) { - var f = e.target.files && e.target.files[0]; - if (f) { - var sizeDisplay = f.size >= 1024 * 1024 ? (f.size / 1024 / 1024).toFixed(1) + ' MB' : (f.size / 1024).toFixed(1) + ' KB'; - var now = window.moment ? window.moment() : new Date(); - var uploadTimeStr = window.moment ? now.format('YYYY-MM-DD HH:mm') : now.getFullYear() + '-' + String(now.getMonth() + 1).padStart(2, '0') + '-' + String(now.getDate()).padStart(2, '0') + ' ' + String(now.getHours()).padStart(2, '0') + ':' + String(now.getMinutes()).padStart(2, '0'); - setContractOriginal({ name: f.name, file: f, size: sizeDisplay, uploadTime: uploadTimeStr }); - } - e.target.value = ''; - } }), - React.createElement(Button, { type: 'default', style: { padding: '8px 16px', border: '1px solid #d9d9d9', borderRadius: 4, backgroundColor: '#fff', color: '#333', cursor: 'pointer', fontSize: 14 }, onClick: function() { if (contractOriginalRef.current) contractOriginalRef.current.click(); } }, '上传附件') - ) - ) + React.createElement(FormItem, { label: '交车区域', required: true, error: formErrors.deliveryRegion }, React.createElement('div', { id: 'delivery-region-wrap', style: { position: 'relative' } }, React.createElement(Input, { style: Object.assign({}, formErrors.deliveryRegion ? { borderColor: '#ff4d4f' } : {}, { cursor: 'pointer', caretColor: 'transparent', width: '100%' }), placeholder: '请选择省-市', value: deliveryRegionDisplay, readOnly: true, onClick: function() { setDeliveryRegionOpen(!deliveryRegionOpen); } }), deliveryRegionOpen ? React.createElement('div', { style: styles.regionCascader, onMouseDown: function() { deliveryRegionClickInsideRef.current = true; } }, React.createElement('div', { style: styles.regionCascaderCol }, regionList.map(function(r, i) { var isActive = r.province === deliveryProvince; return React.createElement('div', { key: i, style: Object.assign({}, styles.regionCascaderItem, isActive ? { backgroundColor: '#e6f7ff', color: '#1890ff' } : {}), onMouseEnter: function(e) { if (!isActive) e.currentTarget.style.backgroundColor = '#f5f5f5'; }, onMouseLeave: function(e) { if (!isActive) e.currentTarget.style.backgroundColor = 'transparent'; }, onMouseDown: function(e) { e.preventDefault(); setDeliveryProvince(r.province); setDeliveryCity(''); } }, r.province); })), React.createElement('div', { style: styles.regionCascaderColLast }, deliveryProvince ? (regionList.find(function(x) { return x.province === deliveryProvince; }) || { cities: [] }).cities.map(function(c, i) { var isActive = c === deliveryCity; return React.createElement('div', { key: i, style: Object.assign({}, styles.regionCascaderItem, isActive ? { backgroundColor: '#e6f7ff', color: '#1890ff' } : {}), onMouseEnter: function(e) { if (!isActive) e.currentTarget.style.backgroundColor = '#f5f5f5'; }, onMouseLeave: function(e) { if (!isActive) e.currentTarget.style.backgroundColor = 'transparent'; }, onMouseDown: function(e) { e.preventDefault(); selectDeliveryRegion(deliveryProvince, c); } }, c); }) : React.createElement('div', { style: { padding: 16, color: '#999', fontSize: 13 } }, '请先选择省'))) : null)) ), - React.createElement(FormItem, { label: '交车地点' }, React.createElement(Input, { placeholder: '请输入交车地点', value: deliveryLocation, onChange: function(e) { setDeliveryLocation(e.target.value); }, style: { width: '100%' } })) + React.createElement(FormItem, { label: '交车地点', required: true, error: formErrors.deliveryLocation }, React.createElement(Input, { placeholder: '请输入交车地点', value: deliveryLocation, onChange: function(e) { setDeliveryLocation(e.target.value); }, status: formErrors.deliveryLocation ? 'error' : undefined, style: { width: '100%' } })) + ); + var contractFormRow1Part2 = React.createElement('div', { style: styles.formRow }, + React.createElement(FormItem, { label: '合同原件', required: true, error: formErrors.contractOriginal }, + contractOriginal + ? React.createElement('div', { style: { display: 'flex', alignItems: 'center', gap: 12, flexWrap: 'wrap' } }, + React.createElement('div', { style: { display: 'flex', alignItems: 'center', gap: 8, flexWrap: 'wrap' } }, + React.createElement('a', { href: '#', style: { color: '#1890ff' }, onClick: function(e) { e.preventDefault(); openContractOriginal(); } }, contractOriginal.name), + contractOriginal.size || contractOriginal.uploadTime ? React.createElement('span', { style: { color: '#999', fontSize: 12 } }, (contractOriginal.size ? contractOriginal.size : '') + (contractOriginal.size && contractOriginal.uploadTime ? ' · ' : '') + (contractOriginal.uploadTime || '')) : null + ), + React.createElement(Button, { type: 'button', size: 'small', danger: true, onClick: function() { setContractOriginal(null); } }, '删除') + ) + : React.createElement('div', { style: { display: 'flex', alignItems: 'center', gap: 8 } }, + React.createElement('input', { ref: contractOriginalRef, type: 'file', style: { display: 'none' }, onChange: function(e) { + var f = e.target.files && e.target.files[0]; + if (f) { + var sizeDisplay = f.size >= 1024 * 1024 ? (f.size / 1024 / 1024).toFixed(1) + ' MB' : (f.size / 1024).toFixed(1) + ' KB'; + var now = window.moment ? window.moment() : new Date(); + var uploadTimeStr = window.moment ? now.format('YYYY-MM-DD HH:mm') : now.getFullYear() + '-' + String(now.getMonth() + 1).padStart(2, '0') + '-' + String(now.getDate()).padStart(2, '0') + ' ' + String(now.getHours()).padStart(2, '0') + ':' + String(now.getMinutes()).padStart(2, '0'); + setContractOriginal({ name: f.name, file: f, size: sizeDisplay, uploadTime: uploadTimeStr }); + } + e.target.value = ''; + } }), + React.createElement(Button, { type: 'default', style: { padding: '8px 16px', border: '1px solid #d9d9d9', borderRadius: 4, backgroundColor: '#fff', color: '#333', cursor: 'pointer', fontSize: 14 }, onClick: function() { if (contractOriginalRef.current) contractOriginalRef.current.click(); } }, '上传附件') + ) + ) ); var contractFormRow2 = React.createElement('div', { style: styles.formRow }, React.createElement(FormItem, { label: '备注', fullWidth: true }, React.createElement(Input.TextArea, { placeholder: '请输入备注信息', value: remarks, onChange: function(e) { setRemarks(e.target.value); }, style: styles.textarea, rows: 4 }))); @@ -642,7 +659,7 @@ const Component = function() { React.createElement('button', { style: styles.anchorItem, onClick: function() { scrollToCard('card-billing'); } }, '账单计算方式') ), React.createElement('div', { id: 'card-customer' }, React.createElement(CardBlock, { id: 'card-customer', title: '客户基本信息', collapsed: cc1, setCollapsed: setCc1 }, customerFields)), - React.createElement('div', { id: 'card-contract', style: { marginTop: 16 } }, React.createElement(CardBlock, { title: '合同基本信息', collapsed: cc2, setCollapsed: setCc2 }, React.createElement('div', null, contractFormRow1, contractFormRow2))), + React.createElement('div', { id: 'card-contract', style: { marginTop: 16 } }, React.createElement(CardBlock, { title: '合同基本信息', collapsed: cc2, setCollapsed: setCc2 }, React.createElement('div', null, contractFormRow1, contractFormRow1Part2, contractFormRow2))), React.createElement('div', { id: 'card-authorized', style: { marginTop: 16 } }, React.createElement(CardBlock, { title: '被授权人信息', collapsed: cc3, setCollapsed: setCc3 }, authorizedContent)), React.createElement('div', { id: 'card-rental', style: { marginTop: 16 } }, React.createElement(CardBlock, { title: '租赁订单信息', collapsed: cc4, setCollapsed: setCc4 }, rentalContent)), React.createElement('div', { id: 'card-fee', style: { marginTop: 16 } }, React.createElement(CardBlock, { title: '其他费用信息', collapsed: cc5, setCollapsed: setCc5 }, feeContent)),