web端: 车辆管理查看页调整路径并完善保险记录筛选与列表; 同步车辆管理与租赁合同相关改动
Made-with: Cursor
This commit is contained in:
@@ -314,9 +314,9 @@ const Component = function() {
|
|||||||
updater: '王专员',
|
updater: '王专员',
|
||||||
updateTime: '2025-01-25 11:00',
|
updateTime: '2025-01-25 11:00',
|
||||||
remark: '-',
|
remark: '-',
|
||||||
legalStampedContractUploaded: false
|
legalStampedContractUploaded: true
|
||||||
},
|
},
|
||||||
// 7. 审批通过 + 合同进行中(试用合同,可转正式)
|
// 7. 审批通过 + 合同进行中(试用合同,可转正式);法务未上传盖章件时「更多」显示上传盖章合同(演示仅此合同编码为未上传)
|
||||||
{
|
{
|
||||||
id: '7',
|
id: '7',
|
||||||
contractCode: 'HT-ZL-2025-007',
|
contractCode: 'HT-ZL-2025-007',
|
||||||
@@ -397,7 +397,7 @@ const Component = function() {
|
|||||||
updater: '王专员',
|
updater: '王专员',
|
||||||
updateTime: '2024-12-20 16:00',
|
updateTime: '2024-12-20 16:00',
|
||||||
remark: '已到期可续签',
|
remark: '已到期可续签',
|
||||||
legalStampedContractUploaded: false
|
legalStampedContractUploaded: true
|
||||||
},
|
},
|
||||||
// 10. 审批通过 + 已结束(操作列终止合同并完成审核)
|
// 10. 审批通过 + 已结束(操作列终止合同并完成审核)
|
||||||
{
|
{
|
||||||
@@ -733,7 +733,7 @@ const Component = function() {
|
|||||||
Dropdown,
|
Dropdown,
|
||||||
{
|
{
|
||||||
menu: { items: menuItems },
|
menu: { items: menuItems },
|
||||||
trigger: ['hover']
|
trigger: ['click']
|
||||||
},
|
},
|
||||||
React.createElement(Button, { type: 'link', size: 'small' }, '更多')
|
React.createElement(Button, { type: 'link', size: 'small' }, '更多')
|
||||||
)
|
)
|
||||||
@@ -1172,7 +1172,7 @@ const Component = function() {
|
|||||||
}, 200);
|
}, 200);
|
||||||
},
|
},
|
||||||
accept: '.pdf,.doc,.docx,image/*'
|
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, {
|
React.createElement(Modal, {
|
||||||
title: '需求说明',
|
title: '需求说明',
|
||||||
|
|||||||
@@ -124,6 +124,8 @@ const Component = function () {
|
|||||||
var moveRecordFilterApplied = useState({ moveStartRange: null, destination: undefined, moveType: undefined });
|
var moveRecordFilterApplied = useState({ moveStartRange: null, destination: undefined, moveType: undefined });
|
||||||
var transferRecordFilterDraft = useState({ transferDateRange: null, transferPerson: undefined, receivePerson: undefined });
|
var transferRecordFilterDraft = useState({ transferDateRange: null, transferPerson: undefined, receivePerson: undefined });
|
||||||
var transferRecordFilterApplied = 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 = [
|
var rearDeviceTypeOptions = [
|
||||||
{ value: 'GPS', label: 'GPS' },
|
{ value: 'GPS', label: 'GPS' },
|
||||||
@@ -475,6 +477,25 @@ const Component = function () {
|
|||||||
return true;
|
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 filterLabelStyle = { marginBottom: 6, fontSize: 14, color: 'rgba(0,0,0,0.65)' };
|
||||||
var filterItemStyle = { marginBottom: 12 };
|
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: 'repair', label: '维修记录', children: React.createElement('div', { style: { padding: 24, color: '#999' } }, '暂无数据') },
|
||||||
{ key: 'maintain', 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
Reference in New Issue
Block a user