web端: 车辆管理查看页调整路径并完善保险记录筛选与列表; 同步车辆管理与租赁合同相关改动

Made-with: Cursor
This commit is contained in:
王冕
2026-03-26 19:33:21 +08:00
parent e1ac94bacf
commit 2cb451cc93
3 changed files with 135 additions and 55 deletions

View File

@@ -314,9 +314,9 @@ const Component = function() {
updater: '王专员',
updateTime: '2025-01-25 11:00',
remark: '-',
legalStampedContractUploaded: false
legalStampedContractUploaded: true
},
// 7. 审批通过 + 合同进行中(试用合同,可转正式)
// 7. 审批通过 + 合同进行中(试用合同,可转正式);法务未上传盖章件时「更多」显示上传盖章合同(演示仅此合同编码为未上传)
{
id: '7',
contractCode: 'HT-ZL-2025-007',
@@ -397,7 +397,7 @@ const Component = function() {
updater: '王专员',
updateTime: '2024-12-20 16:00',
remark: '已到期可续签',
legalStampedContractUploaded: false
legalStampedContractUploaded: true
},
// 10. 审批通过 + 已结束(操作列终止合同并完成审核)
{
@@ -733,7 +733,7 @@ const Component = function() {
Dropdown,
{
menu: { items: menuItems },
trigger: ['hover']
trigger: ['click']
},
React.createElement(Button, { type: 'link', size: 'small' }, '更多')
)
@@ -1172,7 +1172,7 @@ const Component = function() {
}, 200);
},
accept: '.pdf,.doc,.docx,image/*'
}, React.createElement('p', { style: { margin: 0, padding: '20px 0' } }, '点击或拖拽文件到此区域上传支持多文件'))
}, React.createElement('p', { style: { margin: 0, padding: '20px 0' } }, '点击或拖拽文件到此区域上传支持一次选择多个附件,可分批添加'))
)),
React.createElement(Modal, {
title: '需求说明',

View File

@@ -124,6 +124,8 @@ const Component = function () {
var moveRecordFilterApplied = useState({ moveStartRange: null, destination: undefined, moveType: undefined });
var transferRecordFilterDraft = useState({ transferDateRange: null, transferPerson: undefined, receivePerson: undefined });
var transferRecordFilterApplied = useState({ transferDateRange: null, transferPerson: undefined, receivePerson: undefined });
var insuranceFilterDraft = useState({ company: undefined, payTimeRange: null });
var insuranceFilterApplied = useState({ company: undefined, payTimeRange: null });
var rearDeviceTypeOptions = [
{ value: 'GPS', label: 'GPS' },
@@ -475,6 +477,25 @@ const Component = function () {
return true;
});
var insuranceMockData = [
{ key: 'ins1', company: '中国人民财产保险股份有限公司', insuranceType: '交强险', policyNo: 'PDZA202533048200000123', startDate: '2025-01-01', endDate: '2025-12-31', payTime: '2025-01-05', premium: '950.00', insuredName: '浙江羚牛氢能科技有限公司' },
{ key: 'ins2', company: '中国人民财产保险股份有限公司', insuranceType: '商业险', policyNo: 'PDAA202533048200000456', startDate: '2025-01-01', endDate: '2025-12-31', payTime: '2025-01-05', premium: '12800.50', insuredName: '浙江羚牛氢能科技有限公司' },
{ key: 'ins3', company: '中国平安财产保险股份有限公司', insuranceType: '承运人责任险', policyNo: 'PAIC-HY-2025-8899', startDate: '2025-03-15', endDate: '2026-03-14', payTime: '2025-03-10', premium: '5600.00', insuredName: '浙江羚牛氢能科技有限公司' },
{ key: 'ins4', company: '中国太平洋财产保险股份有限公司', insuranceType: '交强险', policyNo: 'CPIC-JQ-2024-7788', startDate: '2024-06-01', endDate: '2025-05-31', payTime: '2024-05-28', premium: '880.00', insuredName: '上海迅杰物流有限公司' },
{ key: 'ins5', company: '中国人寿财产保险股份有限公司', insuranceType: '商业险', policyNo: 'GPIC-SY-2025-1122', startDate: '2025-07-01', endDate: '2026-06-30', payTime: '2025-06-25', premium: '9850.00', insuredName: '浙江羚牛氢能科技有限公司' },
{ key: 'ins6', company: '阳光财产保险股份有限公司', insuranceType: '交强险', policyNo: 'YGCI-JQ-2025-3301', startDate: '2025-09-01', endDate: '2026-08-31', payTime: '2025-08-28', premium: '950.00', insuredName: '浙江羚牛氢能科技有限公司' }
];
var insuranceCompanyOptions = leaseUniqOptions(insuranceMockData, 'company');
var insuranceDraft = insuranceFilterDraft[0];
var setInsuranceDraft = insuranceFilterDraft[1];
var insuranceApplied = insuranceFilterApplied[0];
var setInsuranceApplied = insuranceFilterApplied[1];
var insuranceFiltered = insuranceMockData.filter(function (row) {
if (insuranceApplied.company && row.company !== insuranceApplied.company) return false;
if (!matchAccidentDateRange(row.payTime, insuranceApplied.payTimeRange)) return false;
return true;
});
var filterLabelStyle = { marginBottom: 6, fontSize: 14, color: 'rgba(0,0,0,0.65)' };
var filterItemStyle = { marginBottom: 12 };
@@ -845,7 +866,69 @@ const Component = function () {
})
)
},
{ key: 'insurance', label: '保险记录', children: React.createElement('div', { style: { padding: 24, color: '#999' } }, '暂无数据') },
{
key: 'insurance',
label: '保险记录',
children: React.createElement('div', { style: { padding: '0 4px' } },
React.createElement(Card, { size: 'small', style: { marginBottom: 16 } },
React.createElement('div', { style: { display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '16px 24px', maxWidth: 900, alignItems: 'start' } },
React.createElement('div', { style: filterItemStyle },
React.createElement('div', { style: filterLabelStyle }, '保险公司'),
React.createElement(Select, {
placeholder: '请选择保险公司',
style: { width: '100%' },
value: insuranceDraft.company,
onChange: function (v) { setInsuranceDraft(function (p) { return Object.assign({}, p, { company: v }); }); },
allowClear: true,
showSearch: true,
options: insuranceCompanyOptions,
filterOption: filterOption
})
),
React.createElement('div', { style: filterItemStyle },
React.createElement('div', { style: filterLabelStyle }, '保险缴费时间'),
React.createElement(RangePicker, {
style: { width: '100%' },
value: insuranceDraft.payTimeRange,
onChange: function (v) { setInsuranceDraft(function (p) { return Object.assign({}, p, { payTimeRange: v }); }); },
placeholder: ['开始时间', '结束时间']
})
)
),
React.createElement('div', { style: { display: 'flex', justifyContent: 'flex-end', gap: 8 } },
React.createElement(Button, { onClick: function () {
var empty = { company: undefined, payTimeRange: null };
setInsuranceDraft(empty);
setInsuranceApplied(empty);
} }, '重置'),
React.createElement(Button, { type: 'primary', onClick: function () { setInsuranceApplied(Object.assign({}, insuranceDraft)); } }, '查询')
)
),
React.createElement(Table, {
size: 'small',
rowKey: 'key',
bordered: true,
dataSource: insuranceFiltered,
columns: [
{ title: '保险公司', dataIndex: 'company', key: 'company', width: 220, ellipsis: true },
{ title: '险种', dataIndex: 'insuranceType', key: 'insuranceType', width: 120 },
{ title: '保单号', dataIndex: 'policyNo', key: 'policyNo', width: 200, ellipsis: true },
{ title: '保险起期', dataIndex: 'startDate', key: 'startDate', width: 110, render: function (tv) { return fmtDateYMD(tv); } },
{ title: '保险止期', dataIndex: 'endDate', key: 'endDate', width: 110, render: function (tv) { return fmtDateYMD(tv); } },
{ title: '缴费时间', dataIndex: 'payTime', key: 'payTime', width: 110, render: function (tv) { return fmtDateYMD(tv); } },
{ title: '保费(元)', dataIndex: 'premium', key: 'premium', width: 110, align: 'right' },
{ title: '被保险人', dataIndex: 'insuredName', key: 'insuredName', width: 200, ellipsis: true }
],
scroll: { x: 1400 },
pagination: {
pageSize: 10,
showSizeChanger: true,
showQuickJumper: true,
showTotal: function (t) { return '共 ' + t + ' 条'; }
}
})
)
},
{ key: 'repair', label: '维修记录', children: React.createElement('div', { style: { padding: 24, color: '#999' } }, '暂无数据') },
{ key: 'maintain', label: '保养记录', children: React.createElement('div', { style: { padding: 24, color: '#999' } }, '暂无数据') },
{

File diff suppressed because one or more lines are too long