web端: 车辆管理查看页调整路径并完善保险记录筛选与列表; 同步车辆管理与租赁合同相关改动
Made-with: Cursor
This commit is contained in:
@@ -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: '需求说明',
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user