// 【重要】必须使用 const Component 作为组件变量名
// 调拨管理 - 车辆资产管理后台模块
// 设计变量参考 Arco Design Token: https://arco.design/react/docs/token
var ARCO_TOKEN = {
	primary: '#165DFF',
	primaryHover: '#4080FF',
	primaryActive: '#0E42D2',
	danger: '#F53F3F',
	success: '#00B42A',
	warning: '#FF7D00',
	link: '#165DFF',
	neutral1: '#FFFFFF',
	neutral2: '#F7F8FA',
	neutral3: '#F2F3F5',
	neutral4: '#E5E6EB',
	neutral5: '#C9CDD4',
	neutral6: '#86909C',
	neutral7: '#4E5969',
	neutral8: '#1D2129',
	border: '#E5E6EB',
	borderSecondary: '#C9CDD4',
	fill: '#F2F3F5',
	fillSecondary: '#F7F8FA',
	shadowLight: '0 1px 2px rgba(0,0,0,0.05)',
	shadowMedium: '0 2px 8px rgba(0,0,0,0.08)',
	radiusSmall: '2px',
	radiusMedium: '4px',
	radiusLarge: '8px',
	spacing4: '4px',
	spacing8: '8px',
	spacing12: '12px',
	spacing16: '16px',
	spacing24: '24px',
	fontSize14: '14px',
	fontSize16: '16px',
	fontFamily: '"PingFang SC", "苹方-简", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif'
};

var APPROVAL_STATUS = [
	{ value: 'pending_submit', label: '待提交' },
	{ value: 'pending_approval', label: '待审批' },
	{ value: 'approving', label: '审批中' },
	{ value: 'completed', label: '审批完成' },
	{ value: 'rejected', label: '审批驳回' },
	{ value: 'withdrawn', label: '撤回' }
];

var TRANSFER_METHODS = [
	{ value: 'third_party', label: '第三方运输' },
	{ value: 'driver', label: '司机驾驶' }
];

var provinceList = [
	{ code: 'gd', name: '广东省' },
	{ code: 'zj', name: '浙江省' },
	{ code: 'bj', name: '北京市' }
];
var cityMap = {
	gd: [{ code: 'gz', name: '广州市' }, { code: 'sz', name: '深圳市' }],
	zj: [{ code: 'hz', name: '杭州市' }, { code: 'nb', name: '宁波市' }],
	bj: [{ code: 'bj', name: '北京市' }]
};

// 运维部用户（操作人、创建人来源）
var mockOpsUsers = [
	{ id: 'u1', name: '张明', dept: '运维部' },
	{ id: 'u2', name: '王芳', dept: '运维部' },
	{ id: 'u3', name: '李华', dept: '运维部' },
	{ id: 'u4', name: '赵强', dept: '运维部' },
	{ id: 'u5', name: '陈静', dept: '运维部' }
];

// 库存车辆（含车辆类型、品牌、型号、停车场、氢量单位等，用于反写）
var mockStockVehicles = [
	{ id: 'v1', plateNo: '粤A12345', status: '库存', vehicleType: '轿车', brand: '比亚迪', model: '秦', departParking: '天河智慧停车场', h2Unit: '%' },
	{ id: 'v2', plateNo: '粤A67890', status: '库存', vehicleType: '轿车', brand: '特斯拉', model: 'Model 3', departParking: '南山科技园停车场', h2Unit: 'MPa' },
	{ id: 'v3', plateNo: '浙A11111', status: '库存', vehicleType: 'SUV', brand: '小鹏', model: 'P7', departParking: '西湖景区停车场', h2Unit: 'KG' },
	{ id: 'v4', plateNo: '浙B22222', status: '库存', vehicleType: '轿车', brand: '蔚来', model: 'ET5', departParking: '宁波江北停车场', h2Unit: '%' },
	{ id: 'v5', plateNo: '京A88888', status: '库存', vehicleType: 'MPV', brand: '理想', model: 'L9', departParking: '朝阳区停车场', h2Unit: 'MPa' },
	{ id: 'v6', plateNo: '粤B11111', status: '库存', vehicleType: '轿车', brand: '比亚迪', model: '汉', departParking: '福田停车场', h2Unit: 'KG' }
];

// 审批节点（查看时步骤条）
var mockApprovalSteps = [
	{ key: 'node1', name: '区域负责人审批' },
	{ key: 'node2', name: '运营负责人审批' },
	{ key: 'node3', name: '财务确认' }
];

const Component = function () {
	// 视图：list | add | edit | view
	var _sv = React.useState('list');
	var currentView = _sv[0];
	var setCurrentView = _sv[1];

	// Tab：in_progress | history
	var _tab = React.useState('in_progress');
	var listTab = _tab[0];
	var setListTab = _tab[1];

	// 筛选
	var _fd = React.useState('');
	var filterDateStart = _fd[0];
	var setFilterDateStart = _fd[1];
	var _fe = React.useState('');
	var filterDateEnd = _fe[0];
	var setFilterDateEnd = _fe[1];
	var _fo = React.useState('');
	var filterOperator = _fo[0];
	var setFilterOperator = _fo[1];
	var _frdStart = React.useState('');
	var filterReceiveDateStart = _frdStart[0];
	var setFilterReceiveDateStart = _frdStart[1];
	var _frdEnd = React.useState('');
	var filterReceiveDateEnd = _frdEnd[0];
	var setFilterReceiveDateEnd = _frdEnd[1];
	var _frc = React.useState('');
	var filterReceiver = _frc[0];
	var setFilterReceiver = _frc[1];
	var _fpl = React.useState('');
	var filterPlateNo = _fpl[0];
	var setFilterPlateNo = _fpl[1];
	var _fdp = React.useState('');
	var filterDepartProvince = _fdp[0];
	var setFilterDepartProvince = _fdp[1];
	var _fdc = React.useState('');
	var filterDepartCity = _fdc[0];
	var setFilterDepartCity = _fdc[1];
	var _ftp = React.useState('');
	var filterTransferProvince = _ftp[0];
	var setFilterTransferProvince = _ftp[1];
	var _ftc = React.useState('');
	var filterTransferCity = _ftc[0];
	var setFilterTransferCity = _ftc[1];
	var _fm = React.useState('');
	var filterMethod = _fm[0];
	var setFilterMethod = _fm[1];
	var _fas = React.useState('');
	var filterApprovalStatus = _fas[0];
	var setFilterApprovalStatus = _fas[1];

	// 已应用的筛选条件（仅点击查询后更新，列表按此筛选）
	var _applied = React.useState({});
	var appliedFilters = _applied[0];
	var setAppliedFilters = _applied[1];

	// 筛选下拉展开
	var _ao = React.useState(false);
	var filterOperatorOpen = _ao[0];
	var setFilterOperatorOpen = _ao[1];
	var _arc = React.useState(false);
	var filterReceiverOpen = _arc[0];
	var setFilterReceiverOpen = _arc[1];
	var _ap = React.useState(false);
	var filterPlateOpen = _ap[0];
	var setFilterPlateOpen = _ap[1];
	var _cd = React.useState(false);
	var filterCascaderDepartOpen = _cd[0];
	var setFilterCascaderDepartOpen = _cd[1];
	var _ct = React.useState(false);
	var filterCascaderTransferOpen = _ct[0];
	var setFilterCascaderTransferOpen = _ct[1];
	var _drOpen = React.useState(false);
	var filterDateRangeOpen = _drOpen[0];
	var setFilterDateRangeOpen = _drOpen[1];
	var _drRecOpen = React.useState(false);
	var filterReceiveDateRangeOpen = _drRecOpen[0];
	var setFilterReceiveDateRangeOpen = _drRecOpen[1];
	function getInitialViewMonth(valueStr) {
		if (valueStr && /^\d{4}-\d{2}-\d{2}$/.test(valueStr)) return valueStr.substring(0, 7);
		var d = new Date();
		return d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0');
	}
	var _drViewL = React.useState('');
	var filterDateRangeViewLeft = _drViewL[0];
	var setFilterDateRangeViewLeft = _drViewL[1];
	var _drViewR = React.useState('');
	var filterDateRangeViewRight = _drViewR[0];
	var setFilterDateRangeViewRight = _drViewR[1];
	var _drRecViewL = React.useState('');
	var filterReceiveDateRangeViewLeft = _drRecViewL[0];
	var setFilterReceiveDateRangeViewLeft = _drRecViewL[1];
	var _drRecViewR = React.useState('');
	var filterReceiveDateRangeViewRight = _drRecViewR[0];
	var setFilterReceiveDateRangeViewRight = _drRecViewR[1];

	// 分页
	var _cp = React.useState(1);
	var currentPage = _cp[0];
	var setCurrentPage = _cp[1];
	var _ps = React.useState(20);
	var pageSize = _ps[0];
	var setPageSize = _ps[1];

	// 调拨记录列表：每条主记录含 lines（按车牌号展开，每车牌一行），hasReceiveRecord 表示是否已补充接收
	// 进行中 10 条（20 行），默认每页 20 条，第一页同时展示「接收记录」「编辑」「撤回」供开发参考
	var _mockList = React.useState((function () {
		var regions = [
			{ p: 'gd', c: 'gz', label: '广东省-广州市' },
			{ p: 'gd', c: 'sz', label: '广东省-深圳市' },
			{ p: 'zj', c: 'hz', label: '浙江省-杭州市' },
			{ p: 'zj', c: 'nb', label: '浙江省-宁波市' },
			{ p: 'bj', c: 'bj', label: '北京市-北京市' }
		];
		var users = [{ id: 'u1', name: '张明' }, { id: 'u2', name: '王芳' }, { id: 'u3', name: '李华' }, { id: 'u4', name: '赵强' }, { id: 'u5', name: '陈静' }];
		var vehicles = [
			{ plateNo: '粤A12345', vehicleType: '轿车', brand: '比亚迪', model: '秦', departParking: '天河智慧停车场', h2Unit: '%' },
			{ plateNo: '粤A67890', vehicleType: '轿车', brand: '特斯拉', model: 'Model 3', departParking: '南山科技园停车场', h2Unit: 'MPa' },
			{ plateNo: '浙A11111', vehicleType: 'SUV', brand: '小鹏', model: 'P7', departParking: '西湖景区停车场', h2Unit: 'KG' },
			{ plateNo: '浙B22222', vehicleType: '轿车', brand: '蔚来', model: 'ET5', departParking: '宁波江北停车场', h2Unit: '%' },
			{ plateNo: '京A88888', vehicleType: 'MPV', brand: '理想', model: 'L9', departParking: '朝阳区停车场', h2Unit: 'MPa' },
			{ plateNo: '粤B11111', vehicleType: '轿车', brand: '比亚迪', model: '汉', departParking: '福田停车场', h2Unit: 'KG' }
		];
		var reasons = ['区域调配需求', '司机驾驶调拨', '维修后回调', '新车投放', '租赁到期回调'];
		var carriers = [{ name: '顺丰物流', contact: '400-111-2222' }, { name: '德邦物流', contact: '95353' }];
		var list = [];
		var tid = 1;
		function makeTransfer(inProgress, hasReceive, count) {
			for (var c = 0; c < count; c++) {
				var status = inProgress ? ['pending_submit', 'pending_approval', 'approving', 'rejected', 'withdrawn'][tid % 5] : 'completed';
				var hasRec = inProgress ? false : hasReceive;
				var dep = regions[tid % regions.length];
				var trans = regions[(tid + 1) % regions.length];
				var u = users[tid % users.length];
				var d = '2025-' + String((tid % 12) + 1).padStart(2, '0') + '-' + String((tid % 20) + 1).padStart(2, '0');
				var createTime = d + ' ' + String(9 + (tid % 8)).padStart(2, '0') + ':' + (tid % 2 ? '15' : '30');
				var lineCount = 2;
				var lines = [];
				for (var L = 0; L < lineCount; L++) {
					var v = vehicles[(tid + L) % vehicles.length];
					lines.push({
						plateNo: v.plateNo,
						vehicleType: v.vehicleType,
						brand: v.brand,
						model: v.model,
						departParking: v.departParking,
						departMileage: 1000 + tid * 100 + L * 50,
						departH2: (60 + tid + L) + (v.h2Unit === 'KG' ? '' : v.h2Unit),
						departH2Unit: v.h2Unit,
						departElec: 80 + tid + L,
						receiveMileage: hasRec ? 1100 + tid * 100 + L * 50 : null,
						receiveH2: hasRec ? (65 + tid + L) + v.h2Unit : null,
						receiveElec: hasRec ? 85 + tid + L : null,
						receiveParking: hasRec ? '抵达停车场' + tid : null,
						receiverName: hasRec ? users[(tid + 1) % users.length].name : null
					});
				}
				list.push({
					id: 't' + tid,
					transferDate: d,
					departProvince: dep.p,
					departCity: dep.c,
					departLabel: dep.label,
					operatorId: u.id,
					operatorName: u.name,
					transferProvince: trans.p,
					transferCity: trans.c,
					transferLabel: trans.label,
					transferMethod: tid % 2 ? 'third_party' : 'driver',
					transferReason: reasons[tid % reasons.length],
					carrierName: carriers[tid % 2].name,
					carrierContact: carriers[tid % 2].contact,
					approvalStatus: status,
					hasReceiveRecord: hasRec,
					receiveDate: hasRec ? '2025-' + String((tid % 12) + 1).padStart(2, '0') + '-' + String((tid % 15) + 10).padStart(2, '0') : '',
					receiverId: hasRec ? users[(tid + 1) % users.length].id : '',
					receiverName: hasRec ? users[(tid + 1) % users.length].name : '',
					createTime: createTime,
					lines: lines
				});
				tid++;
			}
		}
		makeTransfer(false, false, 2);   // 进行中：审批完成但未补充接收（2 条，排在最前）
		makeTransfer(true, false, 18);   // 进行中：待提交/待审批/审批中/驳回/撤回（共 20 条进行中）
		makeTransfer(false, true, 20);  // 历史记录：审批完成且已补充接收（20 条）
		return list;
	}()));
	var mockTransferList = _mockList[0];
	var setMockTransferList = _mockList[1];

	// 新增/编辑表单（编辑、查看、接收仍用 formData）
	var defaultForm = {
		transferDate: '',
		receiveDate: '',
		operatorId: '',
		operatorName: '',
		selectedVehicleIds: [],
		transferMethod: '',
		transferReason: '',
		departProvince: '',
		departCity: '',
		transferProvince: '',
		transferCity: '',
		carrierName: '',
		carrierContact: ''
	};
	var _form = React.useState(defaultForm);
	var formData = _form[0];
	var setFormData = _form[1];

	// 新增页专用：上方 7 项 + 下方可编辑行表
	var defaultAddForm = {
		transferDate: '',
		departProvince: '',
		departCity: '',
		transferProvince: '',
		transferCity: '',
		transferMethod: '',
		transferReason: '',
		carrierName: '',
		carrierContact: ''
	};
	var _addForm = React.useState(defaultAddForm);
	var addFormData = _addForm[0];
	var setAddFormData = _addForm[1];
	var addFormLineIdRef = React.useRef(0);
	function createEmptyAddLine() {
		addFormLineIdRef.current = (addFormLineIdRef.current || 0) + 1;
		return {
			rowId: 'addRow-' + addFormLineIdRef.current,
			vehicleId: '',
			plateNo: '',
			vehicleType: '',
			brand: '',
			model: '',
			departParking: '',
			departMileage: '',
			departH2: '',
			departH2Unit: '',
			departElec: ''
		};
	}
	var _addLines = React.useState(function () { return [{ rowId: 'addRow-1', vehicleId: '', plateNo: '', vehicleType: '', brand: '', model: '', departParking: '', departMileage: '', departH2: '', departH2Unit: '', departElec: '' }]; });
	var addFormLines = _addLines[0];
	var setAddFormLines = _addLines[1];
	var _plateOpen = React.useState(null);
	var plateSelectOpenRowId = _plateOpen[0];
	var setPlateSelectOpenRowId = _plateOpen[1];
	var _plateKw = React.useState('');
	var plateSearchKeyword = _plateKw[0];
	var setPlateSearchKeyword = _plateKw[1];
	var _addDepartCascader = React.useState(false);
	var addDepartCascaderOpen = _addDepartCascader[0];
	var setAddDepartCascaderOpen = _addDepartCascader[1];
	var _addAcceptCascader = React.useState(false);
	var addAcceptCascaderOpen = _addAcceptCascader[0];
	var setAddAcceptCascaderOpen = _addAcceptCascader[1];

	// 编辑页专用：行表 + 车牌选择展开态（与新增页结构一致）
	var editFormLineIdRef = React.useRef(0);
	function createEmptyEditLine() {
		editFormLineIdRef.current = editFormLineIdRef.current + 1;
		return {
			rowId: 'editRow-' + editFormLineIdRef.current,
			vehicleId: '',
			plateNo: '',
			vehicleType: '',
			brand: '',
			model: '',
			departParking: '',
			departMileage: '',
			departH2: '',
			departH2Unit: '',
			departElec: '',
			receiveMileage: '',
			receiveH2: '',
			receiveElec: ''
		};
	}
	function buildEditFormLinesFromRecord(transfer) {
		if (!transfer || !transfer.lines || !transfer.lines.length) return [createEmptyEditLine()];
		editFormLineIdRef.current = Math.max(editFormLineIdRef.current || 0, transfer.lines.length);
		return transfer.lines.map(function (line, idx) {
			var v = mockStockVehicles.find(function (x) { return x.plateNo === line.plateNo; });
			return {
				rowId: 'editRow-' + (idx + 1),
				vehicleId: v ? v.id : (line.vehicleId || ''),
				plateNo: line.plateNo || '',
				vehicleType: line.vehicleType || (v && v.vehicleType) || '',
				brand: line.brand || (v && v.brand) || '',
				model: line.model || (v && v.model) || '',
				departParking: line.departParking || (v && v.departParking) || '',
				departMileage: line.departMileage != null && line.departMileage !== '' ? line.departMileage : '',
				departH2: line.departH2 != null && line.departH2 !== '' ? line.departH2 : '',
				departH2Unit: (line.departH2Unit || (v && v.h2Unit) || ''),
				departElec: line.departElec != null && line.departElec !== '' ? line.departElec : '',
				receiveMileage: line.receiveMileage != null && line.receiveMileage !== '' ? line.receiveMileage : '',
				receiveH2: line.receiveH2 != null && line.receiveH2 !== '' ? line.receiveH2 : '',
				receiveElec: line.receiveElec != null && line.receiveElec !== '' ? line.receiveElec : ''
			};
		});
	}
	var _editFormLines = React.useState([]);
	var editFormLines = _editFormLines[0];
	var setEditFormLines = _editFormLines[1];
	var _editPlateOpen = React.useState(null);
	var editPlateSelectOpenRowId = _editPlateOpen[0];
	var setEditPlateSelectOpenRowId = _editPlateOpen[1];
	var _editPlateKw = React.useState('');
	var editPlateSearchKeyword = _editPlateKw[0];
	var setEditPlateSearchKeyword = _editPlateKw[1];

	function updateEditLine(rowId, updates) {
		setEditFormLines(function (prev) {
			return prev.map(function (l) {
				if (l.rowId !== rowId) return l;
				var next = {};
				for (var k in l) next[k] = l[k];
				for (var k in updates) next[k] = updates[k];
				return next;
			});
		});
	}
	function getEditPagePlateOptions(rowId) {
		var usedElsewhere = function (v) {
			return editFormLines.some(function (l) { return l.rowId !== rowId && l.vehicleId === v.id; });
		};
		var list = mockStockVehicles.filter(function (v) { return !usedElsewhere(v); });
		var kw = (editPlateSearchKeyword || '').trim();
		if (kw) list = list.filter(function (v) { return (v.plateNo || '').indexOf(kw) >= 0; });
		return list;
	}

	// 编辑/查看 当前记录
	var _edit = React.useState(null);
	var editRecord = _edit[0];
	var setEditRecord = _edit[1];
	var _view = React.useState(null);
	var viewRecord = _view[0];
	var setViewRecord = _view[1];

	// 新增页级联/穿梭框等 UI 状态
	var _formDp = React.useState(false);
	var formDepartCascaderOpen = _formDp[0];
	var setFormDepartCascaderOpen = _formDp[1];
	var _formTp = React.useState(false);
	var formTransferCascaderOpen = _formTp[0];
	var setFormTransferCascaderOpen = _formTp[1];
	var _formOp = React.useState(false);
	var formOperatorOpen = _formOp[0];
	var setFormOperatorOpen = _formOp[1];
	// 穿梭框：左侧/右侧选中的 id 列表（用于多选后点击添加/移除）
	var _leftSel = React.useState([]);
	var leftSelectedIds = _leftSel[0];
	var setLeftSelectedIds = _leftSel[1];
	var _rightSel = React.useState([]);
	var rightSelectedIds = _rightSel[0];
	var setRightSelectedIds = _rightSel[1];

	var _toast = React.useState('');
	var toastMessage = _toast[0];
	var setToastMessage = _toast[1];
	var _reqModal = React.useState(false);
	var showRequirementModal = _reqModal[0];
	var setShowRequirementModal = _reqModal[1];
	var _withdrawConfirm = React.useState(null);
	var withdrawConfirmRecord = _withdrawConfirm[0];
	var setWithdrawConfirmRecord = _withdrawConfirm[1];
	var _selectedRows = React.useState([]);
	var selectedRowIds = _selectedRows[0];
	var setSelectedRowIds = _selectedRows[1];
	var _receiveForm = React.useState({ receiveDate: '', receiverName: '张明', lines: [] });
	var receiveFormData = _receiveForm[0];
	var setReceiveFormData = _receiveForm[1];

	function getStatusLabel(value) {
		var s = APPROVAL_STATUS.find(function (x) { return x.value === value; });
		return s ? s.label : value;
	}
	function getMethodLabel(value) {
		var m = TRANSFER_METHODS.find(function (x) { return x.value === value; });
		return m ? m.label : value;
	}
	// 氢量只显示一次单位：若值已带 %/MPa/KG 则不追加单位
	function formatH2(val, unit) {
		if (val == null || val === '') return '-';
		var s = String(val);
		if (s.match(/%|MPa|KG$/)) return s;
		return s + (unit || '');
	}

	// 将主记录按 lines 展开为行（每车牌一行），并进行中/历史记录 tab 筛选
	function getFlattenedRows() {
		var rows = [];
		mockTransferList.forEach(function (t) {
			var inProgress = ['pending_submit', 'pending_approval', 'approving', 'rejected', 'withdrawn'].indexOf(t.approvalStatus) >= 0 || (t.approvalStatus === 'completed' && !t.hasReceiveRecord);
			var inHistory = t.approvalStatus === 'completed' && t.hasReceiveRecord;
			if (listTab === 'in_progress' && !inProgress) return;
			if (listTab === 'history' && !inHistory) return;
			(t.lines || []).forEach(function (line) {
				rows.push({ transfer: t, line: line, rowId: t.id + '-' + (line.plateNo || '') });
			});
		});
		return rows;
	}

	function getFilteredList() {
		var list = getFlattenedRows();
		var a = appliedFilters;
		list = list.filter(function (row) {
			var t = row.transfer;
			var line = row.line;
			if (a.filterDateStart && t.transferDate < a.filterDateStart) return false;
			if (a.filterDateEnd && t.transferDate > a.filterDateEnd) return false;
			if (a.filterOperator && (!t.operatorName || t.operatorName.indexOf(a.filterOperator) < 0)) return false;
			if (a.filterReceiveDateStart && t.receiveDate && t.receiveDate < a.filterReceiveDateStart) return false;
			if (a.filterReceiveDateEnd && t.receiveDate && t.receiveDate > a.filterReceiveDateEnd) return false;
			if (a.filterReceiver && (!t.receiverName || t.receiverName.indexOf(a.filterReceiver) < 0)) return false;
			if (a.filterPlateNo && (!line.plateNo || line.plateNo.indexOf(a.filterPlateNo) < 0)) return false;
			if (a.filterDepartProvince && t.departProvince !== a.filterDepartProvince) return false;
			if (a.filterDepartCity && t.departCity !== a.filterDepartCity) return false;
			if (a.filterTransferProvince && t.transferProvince !== a.filterTransferProvince) return false;
			if (a.filterTransferCity && t.transferCity !== a.filterTransferCity) return false;
			if (a.filterMethod && t.transferMethod !== a.filterMethod) return false;
			if (a.filterApprovalStatus && t.approvalStatus !== a.filterApprovalStatus) return false;
			return true;
		});
		return list;
	}

	var filteredList = getFilteredList();
	var totalItems = filteredList.length;
	var totalPages = Math.ceil(totalItems / pageSize) || 1;
	var validPage = currentPage > totalPages && totalPages > 0 ? 1 : (currentPage < 1 ? 1 : currentPage);
	if (validPage !== currentPage && totalPages > 0) {
		setCurrentPage(1);
		validPage = 1;
	}
	var startIndex = (validPage - 1) * pageSize;
	var endIndex = startIndex + pageSize;
	var paginatedList = filteredList.slice(startIndex, endIndex);

	function handleFormChange(field, value) {
		var next = {};
		for (var k in formData) { next[k] = formData[k]; }
		next[field] = value;
		setFormData(next);
	}

	function handleAddFormChange(field, value) {
		var next = {};
		for (var k in addFormData) { next[k] = addFormData[k]; }
		next[field] = value;
		setAddFormData(next);
	}

	function validateAddForm(submitForApproval) {
		if (!addFormData.transferDate) {
			setToastMessage('请选择调拨日期');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!addFormData.departProvince || !addFormData.departCity) {
			setToastMessage('请选择出发区域');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!addFormData.transferProvince || !addFormData.transferCity) {
			setToastMessage('请选择接收区域');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!addFormData.transferMethod) {
			setToastMessage('请选择调拨方式');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!addFormData.transferReason || !addFormData.transferReason.trim()) {
			setToastMessage('请填写调拨原因');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!addFormData.carrierName || !addFormData.carrierName.trim()) {
			setToastMessage('请填写运输方名称');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!addFormData.carrierContact || !addFormData.carrierContact.trim()) {
			setToastMessage('请填写运输方联系方式');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		var validLines = addFormLines.filter(function (row) { return row.vehicleId && row.plateNo; });
		if (validLines.length === 0) {
			setToastMessage('请至少添加一行并选择车牌号');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		for (var i = 0; i < addFormLines.length; i++) {
			var row = addFormLines[i];
			if (!row.plateNo) continue;
			var rowNum = i + 1;
			if (row.departMileage === '' || row.departMileage === undefined || row.departMileage === null) {
				setToastMessage('请填写第' + rowNum + '行出发里程（KM）');
				setTimeout(function () { setToastMessage(''); }, 2000);
				return false;
			}
			if (row.departH2 === '' || row.departH2 === undefined || row.departH2 === null) {
				setToastMessage('请填写第' + rowNum + '行出发氢量');
				setTimeout(function () { setToastMessage(''); }, 2000);
				return false;
			}
			if (row.departElec === '' || row.departElec === undefined || row.departElec === null) {
				setToastMessage('请填写第' + rowNum + '行出发电量');
				setTimeout(function () { setToastMessage(''); }, 2000);
				return false;
			}
		}
		return true;
	}

	function buildAddRecord(approvalStatus) {
		var dp = provinceList.find(function (x) { return x.code === addFormData.departProvince; });
		var dc = (cityMap[addFormData.departProvince] || []).find(function (x) { return x.code === addFormData.departCity; });
		var tp = provinceList.find(function (x) { return x.code === addFormData.transferProvince; });
		var tc = (cityMap[addFormData.transferProvince] || []).find(function (x) { return x.code === addFormData.transferCity; });
		var newId = 't' + (mockTransferList.length + 1);
		var now = new Date();
		var createTimeStr = 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');
		var validLines = addFormLines.filter(function (row) { return row.vehicleId && row.plateNo; });
		var lines = validLines.map(function (row) {
			return {
				plateNo: row.plateNo,
				vehicleType: row.vehicleType || '-',
				brand: row.brand || '-',
				model: row.model || '-',
				departParking: row.departParking || '-',
				departMileage: row.departMileage != null && row.departMileage !== '' ? Number(row.departMileage) : null,
				departH2: row.departH2 != null && row.departH2 !== '' ? row.departH2 : '',
				departH2Unit: row.departH2Unit || '',
				departElec: row.departElec != null && row.departElec !== '' ? Number(row.departElec) : null,
				receiveMileage: null,
				receiveH2: null,
				receiveElec: null,
				receiveParking: null,
				receiverName: null
			};
		});
		return {
			id: newId,
			transferDate: addFormData.transferDate,
			operatorId: 'u1',
			operatorName: '张明',
			departProvince: addFormData.departProvince,
			departCity: addFormData.departCity,
			departLabel: (dp ? dp.name : '') + '-' + (dc ? dc.name : ''),
			transferProvince: addFormData.transferProvince,
			transferCity: addFormData.transferCity,
			transferLabel: (tp ? tp.name : '') + '-' + (tc ? tc.name : ''),
			transferMethod: addFormData.transferMethod,
			transferReason: addFormData.transferReason || '',
			carrierName: addFormData.carrierName || '',
			carrierContact: addFormData.carrierContact || '',
			approvalStatus: approvalStatus,
			hasReceiveRecord: false,
			receiveDate: '',
			receiverId: '',
			receiverName: '',
			createTime: createTimeStr,
			lines: lines
		};
	}

	function handleAddSave() {
		if (!validateAddForm(false)) return;
		var newRecord = buildAddRecord('pending_submit');
		setMockTransferList(mockTransferList.concat([newRecord]));
		setToastMessage('保存成功');
		setTimeout(function () { setToastMessage(''); }, 2000);
		setCurrentView('list');
		setAddFormData(defaultAddForm);
		setAddFormLines([createEmptyAddLine()]);
		setPlateSelectOpenRowId(null);
	}

	function handleAddSubmit() {
		if (!validateAddForm(true)) return;
		var newRecord = buildAddRecord('pending_approval');
		setMockTransferList(mockTransferList.concat([newRecord]));
		setToastMessage('已提交审核');
		setTimeout(function () { setToastMessage(''); }, 2000);
		setCurrentView('list');
		setAddFormData(defaultAddForm);
		setAddFormLines([createEmptyAddLine()]);
		setPlateSelectOpenRowId(null);
	}

	function handleAddCancel() {
		setCurrentView('list');
		setAddFormData(defaultAddForm);
		setAddFormLines([createEmptyAddLine()]);
		setPlateSelectOpenRowId(null);
	}

	function updateAddLine(rowId, updates) {
		setAddFormLines(function (prev) {
			return prev.map(function (l) {
				if (l.rowId !== rowId) return l;
				var next = {};
				for (var k in l) next[k] = l[k];
				for (var k in updates) next[k] = updates[k];
				return next;
			});
		});
	}

	function getAddPagePlateOptions(rowId) {
		var usedElsewhere = function (v) {
			return addFormLines.some(function (l) { return l.rowId !== rowId && l.vehicleId === v.id; });
		};
		var list = mockStockVehicles.filter(function (v) { return !usedElsewhere(v); });
		var kw = (plateSearchKeyword || '').trim();
		if (kw) list = list.filter(function (v) { return (v.plateNo || '').indexOf(kw) >= 0; });
		return list;
	}

	function renderAddPage() {
		var grid = styles.formGrid;
		return React.createElement('div', {},
			React.createElement('div', { style: Object.assign({}, styles.card, { marginBottom: t.spacing16 }) },
				React.createElement('div', { style: grid },
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '调拨日期', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('input', { style: styles.input, type: 'date', value: addFormData.transferDate, onChange: function (e) { handleAddFormChange('transferDate', e.target.value); } })
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '出发区域', React.createElement('span', { style: styles.formLabelReq }, '*')),
						renderCascader(addFormData.departProvince, addFormData.departCity, function (v) { setAddFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.departProvince = v; n.departCity = ''; return n; }); }, function (v) { setAddFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.departCity = v; return n; }); }, addDepartCascaderOpen, setAddDepartCascaderOpen)
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '接收区域', React.createElement('span', { style: styles.formLabelReq }, '*')),
						renderCascader(addFormData.transferProvince, addFormData.transferCity, function (v) { setAddFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.transferProvince = v; n.transferCity = ''; return n; }); }, function (v) { setAddFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.transferCity = v; return n; }); }, addAcceptCascaderOpen, setAddAcceptCascaderOpen)
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '调拨方式', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('div', { style: styles.btnGroup },
							React.createElement('button', { type: 'button', style: Object.assign({}, styles.btnGroupItem, addFormData.transferMethod === 'third_party' ? styles.btnGroupItemActive : {}), onClick: function () { handleAddFormChange('transferMethod', 'third_party'); } }, '第三方运输'),
							React.createElement('button', { type: 'button', style: Object.assign({}, styles.btnGroupItem, styles.btnGroupItemLast, addFormData.transferMethod === 'driver' ? styles.btnGroupItemActive : {}), onClick: function () { handleAddFormChange('transferMethod', 'driver'); } }, '司机驾驶')
						)
					),
					React.createElement('div', { style: Object.assign({}, styles.formRow, styles.formGridFull) },
						React.createElement('label', { style: styles.formLabel }, '调拨原因', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('textarea', { style: styles.textarea, value: addFormData.transferReason, onChange: function (e) { handleAddFormChange('transferReason', e.target.value); }, placeholder: '请输入调拨原因' })
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '运输方名称', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('input', { style: styles.input, value: addFormData.carrierName, onChange: function (e) { handleAddFormChange('carrierName', e.target.value); }, placeholder: '请输入运输方名称或司机姓名' })
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '运输方联系方式', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('input', { style: styles.input, value: addFormData.carrierContact, onChange: function (e) { handleAddFormChange('carrierContact', e.target.value); }, placeholder: '请输入运输方联系方式' })
					)
				)
			),
			React.createElement('div', { style: styles.card },
				React.createElement('div', { style: styles.tableWrapAddPage },
					React.createElement('table', { style: styles.table },
						React.createElement('thead', {},
							React.createElement('tr', {},
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '车牌号', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '车辆类型'),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '品牌'),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '型号'),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发停车场'),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发里程（KM）', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发氢量', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发电量', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '操作')
							)
						),
						React.createElement('tbody', {},
							addFormLines.map(function (row, rowIndex) {
								var isPlateOpen = plateSelectOpenRowId === row.rowId;
								var plateOptions = getAddPagePlateOptions(row.rowId);
								var isEvenRow = rowIndex % 2 === 1;
								return React.createElement('tr', { key: row.rowId, style: isEvenRow ? styles.trStripe : styles.trOdd },
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('div', { style: styles.autocompleteWrap },
											React.createElement('input', {
												style: Object.assign({}, styles.input, { minWidth: '120px' }),
												placeholder: '请选择',
												value: isPlateOpen ? plateSearchKeyword : (row.plateNo || ''),
												onChange: function (e) { setPlateSearchKeyword(e.target.value); setPlateSelectOpenRowId(row.rowId); },
												onFocus: function () { setPlateSelectOpenRowId(row.rowId); setPlateSearchKeyword(row.plateNo || ''); },
												onBlur: function () { setTimeout(function () { setPlateSelectOpenRowId(null); }, 200); }
											}),
											isPlateOpen && React.createElement(React.Fragment, {},
												React.createElement('div', { style: { position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, zIndex: 1049 }, onClick: function () { setPlateSelectOpenRowId(null); } }),
												React.createElement('div', { style: Object.assign({}, styles.autocompletePanel, styles.autocompletePanelOverflow), onClick: function (e) { e.stopPropagation(); } },
													plateOptions.length === 0
														? React.createElement('div', { style: { padding: '8px 12px', fontSize: t.fontSize14, color: t.neutral6 } }, '无匹配的库存车辆')
														: plateOptions.map(function (v) {
															return React.createElement('div', {
																key: v.id,
																style: styles.autocompleteOption,
																onMouseDown: function (e) { e.preventDefault(); },
																onClick: function () {
																	updateAddLine(row.rowId, { vehicleId: v.id, plateNo: v.plateNo, vehicleType: v.vehicleType || '', brand: v.brand || '', model: v.model || '', departParking: v.departParking || '', departH2Unit: v.h2Unit || '' });
																	setPlateSelectOpenRowId(null);
																	setPlateSearchKeyword('');
																}
															}, v.plateNo);
														})
												)
											)
										)
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) }, row.vehicleType || '-'),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) }, row.brand || '-'),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) }, row.model || '-'),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) }, row.departParking || '-'),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), type: 'number', value: row.departMileage, onChange: function (e) { updateAddLine(row.rowId, { departMileage: e.target.value }); }, placeholder: '' })
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('span', { style: { display: 'inline-flex', alignItems: 'center' } },
											React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), value: row.departH2, onChange: function (e) { updateAddLine(row.rowId, { departH2: e.target.value }); }, placeholder: '' }),
											row.departH2Unit ? React.createElement('span', { style: { marginLeft: '4px', color: t.neutral6, fontSize: t.fontSize14 } }, row.departH2Unit) : null
										)
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('span', { style: { display: 'inline-flex', alignItems: 'center' } },
											React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), value: row.departElec, onChange: function (e) { updateAddLine(row.rowId, { departElec: e.target.value }); }, placeholder: '' }),
											React.createElement('span', { style: { marginLeft: '4px', color: t.neutral6, fontSize: t.fontSize14 } }, 'kWh')
										)
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('a', { href: '#', style: styles.actionLink, onClick: function (e) {
											e.preventDefault();
											if (addFormLines.length <= 1) { setToastMessage('至少保留一行'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
											setAddFormLines(addFormLines.filter(function (l) { return l.rowId !== row.rowId; }));
										} }, '删除')
									)
								);
							})
						)
					)
				),
				React.createElement('div', { style: { marginTop: t.spacing12 } },
					React.createElement('button', { type: 'button', style: Object.assign({}, styles.btn, styles.btnDefault), onClick: function () { setAddFormLines(addFormLines.concat([createEmptyAddLine()])); } }, '新增一行')
				),
				React.createElement('div', { style: styles.modalFooter },
					React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), onClick: handleAddCancel }, '取消'),
					React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), onClick: handleAddSave }, '保存'),
					React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnPrimary), onClick: handleAddSubmit }, '提交审核')
				)
			)
		);
	}

	function renderEditPage() {
		var grid = styles.formGrid;
		return React.createElement('div', {},
			React.createElement('div', { style: Object.assign({}, styles.card, { marginBottom: t.spacing16 }) },
				React.createElement('div', { style: grid },
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '调拨日期', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('input', { style: styles.input, type: 'date', value: formData.transferDate, onChange: function (e) { handleFormChange('transferDate', e.target.value); } })
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '出发区域', React.createElement('span', { style: styles.formLabelReq }, '*')),
						renderCascader(formData.departProvince, formData.departCity, function (v) { setFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.departProvince = v; n.departCity = ''; return n; }); }, function (v) { setFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.departCity = v; return n; }); }, formDepartCascaderOpen, setFormDepartCascaderOpen)
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '接收区域', React.createElement('span', { style: styles.formLabelReq }, '*')),
						renderCascader(formData.transferProvince, formData.transferCity, function (v) { setFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.transferProvince = v; n.transferCity = ''; return n; }); }, function (v) { setFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.transferCity = v; return n; }); }, formTransferCascaderOpen, setFormTransferCascaderOpen)
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '调拨方式', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('div', { style: styles.btnGroup },
							React.createElement('button', { type: 'button', style: Object.assign({}, styles.btnGroupItem, formData.transferMethod === 'third_party' ? styles.btnGroupItemActive : {}), onClick: function () { handleFormChange('transferMethod', 'third_party'); } }, '第三方运输'),
							React.createElement('button', { type: 'button', style: Object.assign({}, styles.btnGroupItem, styles.btnGroupItemLast, formData.transferMethod === 'driver' ? styles.btnGroupItemActive : {}), onClick: function () { handleFormChange('transferMethod', 'driver'); } }, '司机驾驶')
						)
					),
					React.createElement('div', { style: Object.assign({}, styles.formRow, styles.formGridFull) },
						React.createElement('label', { style: styles.formLabel }, '调拨原因', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('textarea', { style: styles.textarea, value: formData.transferReason, onChange: function (e) { handleFormChange('transferReason', e.target.value); }, placeholder: '请输入调拨原因' })
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '运输方名称', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('input', { style: styles.input, value: formData.carrierName, onChange: function (e) { handleFormChange('carrierName', e.target.value); }, placeholder: '请输入运输方名称或司机姓名' })
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '运输方联系方式', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('input', { style: styles.input, value: formData.carrierContact, onChange: function (e) { handleFormChange('carrierContact', e.target.value); }, placeholder: '请输入运输方联系方式' })
					),
					React.createElement('div', { style: styles.formRow },
						React.createElement('label', { style: styles.formLabel }, '接收日期', React.createElement('span', { style: styles.formLabelReq }, '*')),
						React.createElement('input', { style: styles.input, type: 'date', value: formData.receiveDate, onChange: function (e) { handleFormChange('receiveDate', e.target.value); } })
					)
				)
			),
			React.createElement('div', { style: styles.card },
				React.createElement('div', { style: styles.tableWrapAddPage },
					React.createElement('table', { style: styles.table },
						React.createElement('thead', {},
							React.createElement('tr', {},
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '车牌号', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '车辆类型'),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '品牌'),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '型号'),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发停车场'),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发里程（KM）', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收里程(KM)'),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发氢量', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收氢量', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发电量', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收电量', React.createElement('span', { style: styles.formLabelReq }, '*')),
								React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '操作')
							)
						),
						React.createElement('tbody', {},
							editFormLines.map(function (row, rowIndex) {
								var isPlateOpen = editPlateSelectOpenRowId === row.rowId;
								var plateOptions = getEditPagePlateOptions(row.rowId);
								var isEvenRow = rowIndex % 2 === 1;
								return React.createElement('tr', { key: row.rowId, style: isEvenRow ? styles.trStripe : styles.trOdd },
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('div', { style: styles.autocompleteWrap },
											React.createElement('input', {
												style: Object.assign({}, styles.input, { minWidth: '120px' }),
												placeholder: '请选择',
												value: isPlateOpen ? editPlateSearchKeyword : (row.plateNo || ''),
												onChange: function (e) { setEditPlateSearchKeyword(e.target.value); setEditPlateSelectOpenRowId(row.rowId); },
												onFocus: function () { setEditPlateSelectOpenRowId(row.rowId); setEditPlateSearchKeyword(row.plateNo || ''); },
												onBlur: function () { setTimeout(function () { setEditPlateSelectOpenRowId(null); }, 200); }
											}),
											isPlateOpen && React.createElement(React.Fragment, {},
												React.createElement('div', { style: { position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, zIndex: 1049 }, onClick: function () { setEditPlateSelectOpenRowId(null); } }),
												React.createElement('div', { style: Object.assign({}, styles.autocompletePanel, styles.autocompletePanelOverflow), onClick: function (e) { e.stopPropagation(); } },
													plateOptions.length === 0
														? React.createElement('div', { style: { padding: '8px 12px', fontSize: t.fontSize14, color: t.neutral6 } }, '无匹配的库存车辆')
														: plateOptions.map(function (v) {
															return React.createElement('div', {
																key: v.id,
																style: styles.autocompleteOption,
																onMouseDown: function (e) { e.preventDefault(); },
																onClick: function () {
																	updateEditLine(row.rowId, { vehicleId: v.id, plateNo: v.plateNo, vehicleType: v.vehicleType || '', brand: v.brand || '', model: v.model || '', departParking: v.departParking || '', departH2Unit: v.h2Unit || '' });
																	setEditPlateSelectOpenRowId(null);
																	setEditPlateSearchKeyword('');
																}
															}, v.plateNo);
														})
												)
											)
										)
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) }, row.vehicleType || '-'),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) }, row.brand || '-'),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) }, row.model || '-'),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) }, row.departParking || '-'),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), type: 'number', value: row.departMileage, onChange: function (e) { updateEditLine(row.rowId, { departMileage: e.target.value }); }, placeholder: '' })
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), type: 'number', value: row.receiveMileage, onChange: function (e) { updateEditLine(row.rowId, { receiveMileage: e.target.value }); }, placeholder: '' })
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('span', { style: { display: 'inline-flex', alignItems: 'center' } },
											React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), value: row.departH2, onChange: function (e) { updateEditLine(row.rowId, { departH2: e.target.value }); }, placeholder: '' }),
											row.departH2Unit ? React.createElement('span', { style: { marginLeft: '4px', color: t.neutral6, fontSize: t.fontSize14 } }, row.departH2Unit) : null
										)
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('span', { style: { display: 'inline-flex', alignItems: 'center' } },
											React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), value: row.receiveH2, onChange: function (e) { updateEditLine(row.rowId, { receiveH2: e.target.value }); }, placeholder: '' }),
											row.departH2Unit ? React.createElement('span', { style: { marginLeft: '4px', color: t.neutral6, fontSize: t.fontSize14 } }, row.departH2Unit) : null
										)
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('span', { style: { display: 'inline-flex', alignItems: 'center' } },
											React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), value: row.departElec, onChange: function (e) { updateEditLine(row.rowId, { departElec: e.target.value }); }, placeholder: '' }),
											React.createElement('span', { style: { marginLeft: '4px', color: t.neutral6, fontSize: t.fontSize14 } }, 'kWh')
										)
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), type: 'number', value: row.receiveElec, onChange: function (e) { updateEditLine(row.rowId, { receiveElec: e.target.value }); }, placeholder: '' })
									),
									React.createElement('td', { style: Object.assign({}, styles.td, styles.tdNowrap) },
										React.createElement('a', { href: '#', style: styles.actionLink, onClick: function (e) {
											e.preventDefault();
											if (editFormLines.length <= 1) { setToastMessage('至少保留一行'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
											setEditFormLines(editFormLines.filter(function (l) { return l.rowId !== row.rowId; }));
										} }, '删除')
									)
								);
							})
						)
					)
				),
				React.createElement('div', { style: { marginTop: t.spacing12 } },
					React.createElement('button', { type: 'button', style: Object.assign({}, styles.btn, styles.btnDefault), onClick: function () { setEditFormLines(editFormLines.concat([createEmptyEditLine()])); } }, '新增一行')
				),
				React.createElement('div', { style: styles.modalFooter },
					React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), onClick: function () { setCurrentView('list'); setEditRecord(null); setFormData(defaultForm); setEditFormLines([]); setEditPlateSelectOpenRowId(null); setEditPlateSearchKeyword(''); } }, '取消'),
					React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), onClick: handleEditSave }, '保存'),
					React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnPrimary), onClick: function () { handleEditSave(); } }, '提交')
				)
			)
		);
	}

	// 查看页：与接收记录页布局、字段一致，全部只读禁用（调拨信息 + 接收日期 + 明细表）
	function renderViewPage(record) {
		if (!record) return null;
		var lines = record.lines || [];
		return React.createElement('div', { style: styles.card },
			React.createElement('div', { style: styles.modalTitle }, '查看调拨'),
			renderFormContent(true, true),
			React.createElement('div', { style: styles.formRow },
				React.createElement('label', { style: styles.formLabel }, '接收日期'),
				React.createElement('span', { style: { fontSize: t.fontSize14, color: t.neutral8 } }, record.receiveDate || '-')
			),
			React.createElement('div', { style: Object.assign({}, styles.formRow, { marginTop: t.spacing24 }) },
				React.createElement('div', { style: styles.tableWrap },
					React.createElement('table', { style: styles.table },
						React.createElement('thead', {},
							React.createElement('tr', {},
								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('th', { style: styles.th }, '出发停车场'),
								React.createElement('th', { style: styles.th }, '出发里程(KM)'),
								React.createElement('th', { style: styles.th }, '接收里程(KM)'),
								React.createElement('th', { style: styles.th }, '出发氢量'),
								React.createElement('th', { style: styles.th }, '接收氢量'),
								React.createElement('th', { style: styles.th }, '出发电量'),
								React.createElement('th', { style: styles.th }, '接收电量(kWh)')
							)
						),
						React.createElement('tbody', {},
							lines.map(function (line, idx) {
								var isEvenRow = idx % 2 === 1;
								return React.createElement('tr', { key: idx, style: isEvenRow ? styles.trStripe : styles.trOdd },
									React.createElement('td', { style: styles.td }, line.plateNo || '-'),
									React.createElement('td', { style: styles.td }, line.vehicleType || '-'),
									React.createElement('td', { style: styles.td }, line.brand || '-'),
									React.createElement('td', { style: styles.td }, line.model || '-'),
									React.createElement('td', { style: styles.td }, line.departParking || '-'),
									React.createElement('td', { style: styles.td }, line.departMileage != null ? line.departMileage : '-'),
									React.createElement('td', { style: styles.td }, line.receiveMileage != null ? line.receiveMileage : '-'),
									React.createElement('td', { style: styles.td }, formatH2(line.departH2, line.departH2Unit)),
									React.createElement('td', { style: styles.td }, formatH2(line.receiveH2, line.departH2Unit)),
									React.createElement('td', { style: styles.td }, line.departElec != null ? line.departElec + ' kWh' : '-'),
									React.createElement('td', { style: styles.td }, line.receiveElec != null ? line.receiveElec + ' kWh' : '-')
								);
							})
						)
					)
				)
			),
			React.createElement('div', { style: styles.modalFooter },
				React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), onClick: function () { setViewRecord(null); setCurrentView('list'); } }, '返回')
			)
		);
	}

	function validateEditForm() {
		if (!formData.transferDate) {
			setToastMessage('请选择调拨日期');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!formData.departProvince || !formData.departCity) {
			setToastMessage('请选择出发区域');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!formData.transferProvince || !formData.transferCity) {
			setToastMessage('请选择接收区域');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!formData.transferMethod) {
			setToastMessage('请选择调拨方式');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!formData.transferReason || !formData.transferReason.trim()) {
			setToastMessage('请填写调拨原因');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!formData.carrierName || !formData.carrierName.trim()) {
			setToastMessage('请填写运输方名称');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!formData.carrierContact || !formData.carrierContact.trim()) {
			setToastMessage('请填写运输方联系方式');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		if (!formData.receiveDate) {
			setToastMessage('请选择接收日期');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		var validLines = editFormLines.filter(function (row) { return row.plateNo; });
		if (validLines.length === 0) {
			setToastMessage('请至少保留一行并选择车牌号');
			setTimeout(function () { setToastMessage(''); }, 2000);
			return false;
		}
		for (var i = 0; i < editFormLines.length; i++) {
			var row = editFormLines[i];
			if (!row.plateNo) continue;
			var rowNum = i + 1;
			if (row.departMileage === '' || row.departMileage === undefined || row.departMileage === null) {
				setToastMessage('请填写第' + rowNum + '行出发里程（KM）');
				setTimeout(function () { setToastMessage(''); }, 2000);
				return false;
			}
			if (row.departH2 === '' || row.departH2 === undefined || row.departH2 === null) {
				setToastMessage('请填写第' + rowNum + '行出发氢量');
				setTimeout(function () { setToastMessage(''); }, 2000);
				return false;
			}
			if (row.departElec === '' || row.departElec === undefined || row.departElec === null) {
				setToastMessage('请填写第' + rowNum + '行出发电量');
				setTimeout(function () { setToastMessage(''); }, 2000);
				return false;
			}
			if (row.receiveH2 === '' || row.receiveH2 === undefined || row.receiveH2 === null) {
				setToastMessage('请填写第' + rowNum + '行接收氢量');
				setTimeout(function () { setToastMessage(''); }, 2000);
				return false;
			}
			if (row.receiveElec === '' || row.receiveElec === undefined || row.receiveElec === null) {
				setToastMessage('请填写第' + rowNum + '行接收电量');
				setTimeout(function () { setToastMessage(''); }, 2000);
				return false;
			}
		}
		return true;
	}

	function handleEditSave() {
		if (!editRecord) return;
		if (!validateEditForm()) return;
		var dp = provinceList.find(function (x) { return x.code === formData.departProvince; });
		var dc = (cityMap[formData.departProvince] || []).find(function (x) { return x.code === formData.departCity; });
		var tp = provinceList.find(function (x) { return x.code === formData.transferProvince; });
		var tc = (cityMap[formData.transferProvince] || []).find(function (x) { return x.code === formData.transferCity; });
		var validRows = editFormLines.filter(function (row) { return row.plateNo; });
		var lines = validRows.map(function (row) {
			var existing = (editRecord.lines || []).find(function (l) { return l.plateNo === row.plateNo; });
			return {
				plateNo: row.plateNo,
				vehicleType: row.vehicleType || '-',
				brand: row.brand || '-',
				model: row.model || '-',
				departParking: row.departParking || '-',
				departMileage: row.departMileage != null && row.departMileage !== '' ? Number(row.departMileage) : null,
				departH2: row.departH2 != null && row.departH2 !== '' ? row.departH2 : '',
				departH2Unit: row.departH2Unit || '',
				departElec: row.departElec != null && row.departElec !== '' ? Number(row.departElec) : null,
				receiveMileage: row.receiveMileage !== '' && row.receiveMileage !== undefined ? Number(row.receiveMileage) : (existing && existing.receiveMileage),
				receiveH2: row.receiveH2 != null && row.receiveH2 !== '' ? row.receiveH2 : (existing && existing.receiveH2),
				receiveElec: row.receiveElec !== '' && row.receiveElec !== undefined ? Number(row.receiveElec) : (existing && existing.receiveElec),
				receiveParking: existing && existing.receiveParking,
				receiverName: existing && existing.receiverName
			};
		});
		var updated = {
			id: editRecord.id,
			transferDate: formData.transferDate,
			operatorId: editRecord.operatorId,
			operatorName: editRecord.operatorName,
			departProvince: formData.departProvince,
			departCity: formData.departCity,
			departLabel: (dp ? dp.name : '') + '-' + (dc ? dc.name : ''),
			transferProvince: formData.transferProvince,
			transferCity: formData.transferCity,
			transferLabel: (tp ? tp.name : '') + '-' + (tc ? tc.name : ''),
			transferMethod: formData.transferMethod,
			transferReason: formData.transferReason || '',
			carrierName: formData.carrierName || '',
			carrierContact: formData.carrierContact || '',
			approvalStatus: editRecord.approvalStatus,
			hasReceiveRecord: editRecord.hasReceiveRecord,
			receiveDate: formData.receiveDate,
			receiverId: editRecord.receiverId,
			receiverName: editRecord.receiverName,
			createTime: editRecord.createTime,
			lines: lines
		};
		setMockTransferList(mockTransferList.map(function (r) { return r.id === editRecord.id ? updated : r; }));
		setToastMessage('保存成功');
		setTimeout(function () { setToastMessage(''); }, 2000);
		setEditRecord(null);
		setCurrentView('list');
		setFormData(defaultForm);
		setEditFormLines([]);
		setEditPlateSelectOpenRowId(null);
		setEditPlateSearchKeyword('');
	}

	function handleWithdraw(transfer) {
		if (!transfer) return;
		setMockTransferList(mockTransferList.map(function (r) {
			if (r.id === transfer.id) {
				var next = {};
				for (var k in r) next[k] = r[k];
				next.approvalStatus = 'withdrawn';
				return next;
			}
			return r;
		}));
		setWithdrawConfirmRecord(null);
		setToastMessage('撤回成功');
		setTimeout(function () { setToastMessage(''); }, 2000);
	}

	function setFormDataFromTransfer(transfer) {
		if (!transfer || !transfer.lines) return;
		var plateNos = transfer.lines.map(function (l) { return l.plateNo; });
		var selectedIds = mockStockVehicles.filter(function (v) { return plateNos.indexOf(v.plateNo) >= 0; }).map(function (v) { return v.id; });
		setFormData({
			transferDate: transfer.transferDate,
			operatorId: transfer.operatorId,
			operatorName: transfer.operatorName,
			selectedVehicleIds: selectedIds,
			transferMethod: transfer.transferMethod,
			transferReason: transfer.transferReason || '',
			departProvince: transfer.departProvince || '',
			departCity: transfer.departCity || '',
			transferProvince: transfer.transferProvince || '',
			transferCity: transfer.transferCity || '',
			carrierName: transfer.carrierName || '',
			carrierContact: transfer.carrierContact || ''
		});
	}

	function openEdit(transfer) {
		if (!transfer || !transfer.lines) return;
		setEditRecord(transfer);
		setFormData({
			transferDate: transfer.transferDate,
			receiveDate: transfer.receiveDate || '',
			operatorId: transfer.operatorId,
			operatorName: transfer.operatorName,
			selectedVehicleIds: [],
			transferMethod: transfer.transferMethod,
			transferReason: transfer.transferReason || '',
			departProvince: transfer.departProvince || '',
			departCity: transfer.departCity || '',
			transferProvince: transfer.transferProvince || '',
			transferCity: transfer.transferCity || '',
			carrierName: transfer.carrierName || '',
			carrierContact: transfer.carrierContact || ''
		});
		setEditFormLines(buildEditFormLinesFromRecord(transfer));
		setEditPlateSelectOpenRowId(null);
		setEditPlateSearchKeyword('');
		setCurrentView('edit');
	}

	var t = ARCO_TOKEN;
	var styles = {
		page: { padding: t.spacing24, fontFamily: t.fontFamily, backgroundColor: t.fill, minHeight: '100vh' },
		breadcrumb: { marginBottom: t.spacing16, fontSize: t.fontSize14, color: t.neutral6, display: 'flex', alignItems: 'center', justifyContent: 'space-between' },
		breadcrumbLeft: { display: 'flex', alignItems: 'center' },
		breadcrumbLink: { color: t.link, textDecoration: 'none', marginRight: t.spacing8 },
		breadcrumbCurrent: { color: t.neutral8 },
		breadcrumbRight: { display: 'flex', alignItems: 'center' },
		requirementLink: { color: t.link, textDecoration: 'none', fontSize: t.fontSize14, cursor: 'pointer' },
		modalCloseBtn: { position: 'absolute', right: t.spacing16, top: t.spacing16, width: '24px', height: '24px', display: 'flex', alignItems: 'center', justifyContent: 'center', cursor: 'pointer', borderRadius: t.radiusMedium, backgroundColor: 'transparent', border: 'none', color: t.neutral6, fontSize: '18px', lineHeight: '1', padding: 0 },
		requirementSection: { marginBottom: t.spacing16 },
		requirementSectionTitle: { fontSize: t.fontSize16, fontWeight: 600, color: t.neutral8, marginBottom: t.spacing8 },
		requirementItem: { marginBottom: t.spacing8, paddingLeft: t.spacing16, fontSize: t.fontSize14, color: t.neutral7 },
		requirementSubItem: { marginBottom: t.spacing4, paddingLeft: t.spacing24, fontSize: t.fontSize14, color: t.neutral7 },
		card: { backgroundColor: t.neutral1, borderRadius: t.radiusLarge, boxShadow: t.shadowLight, marginBottom: t.spacing16, padding: t.spacing24 + ' 20px' },
		searchPanel: { paddingBottom: t.spacing24, marginBottom: t.spacing24, borderBottom: '1px solid ' + t.neutral4 },
		searchPanelInner: { display: 'flex', alignItems: 'flex-start', gap: t.spacing16 },
		searchGridWrap: { flex: 1, minWidth: 0 },
		searchGrid: { display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: t.spacing16 + ' ' + t.spacing24 },
		searchField: { display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '20px', minWidth: 0 },
		searchFieldControl: { flex: 1, minWidth: 0, overflow: 'hidden' },
		searchFieldLabel: { fontSize: t.fontSize14, color: t.neutral8, whiteSpace: 'nowrap', flexShrink: 0 },
		searchDivider: { width: '1px', backgroundColor: t.neutral4, alignSelf: 'stretch', flexShrink: 0 },
		searchActions: { display: 'flex', flexDirection: 'column', gap: t.spacing8, justifyContent: 'center', flexShrink: 0 },
		filterGrid: { display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: t.spacing16 },
		filterItem: { display: 'flex', alignItems: 'center', gap: t.spacing8, flexWrap: 'wrap' },
		filterItemFull: { gridColumn: '1 / -1', display: 'flex', justifyContent: 'flex-end', gap: t.spacing8 },
		label: { marginRight: t.spacing8, fontSize: t.fontSize14, color: t.neutral8, whiteSpace: 'nowrap' },
		filterLabel: { marginRight: t.spacing8, fontSize: t.fontSize14, color: t.neutral8, whiteSpace: 'nowrap', minWidth: '80px', textAlign: 'right' },
		input: { padding: '0 10px', height: '32px', width: '100%', minWidth: '140px', borderRadius: '2px', border: '1px solid ' + t.border, fontSize: t.fontSize14, fontFamily: t.fontFamily, boxSizing: 'border-box', outline: 'none', transition: 'border-color 0.2s, box-shadow 0.2s', textAlign: 'left' },
		select: { padding: '0 32px 0 12px', height: '32px', minWidth: '120px', borderRadius: '2px', border: '1px solid ' + t.border, fontSize: t.fontSize14, fontFamily: t.fontFamily, color: t.neutral8, backgroundColor: t.neutral1, cursor: 'pointer', outline: 'none', appearance: 'none', WebkitAppearance: 'none', backgroundImage: 'url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' viewBox=\'0 0 48 48\'%3E%3Cpath fill=\'%2386909C\' d=\'M24 32l-12-12h24z\'/%3E%3C/svg%3E")', backgroundRepeat: 'no-repeat', backgroundPosition: 'right 20px center', transition: 'border-color 0.2s, box-shadow 0.2s', textAlign: 'left' },
		btn: { padding: t.spacing8 + ' ' + t.spacing16, borderRadius: t.radiusMedium, cursor: 'pointer', fontSize: t.fontSize14, display: 'inline-flex', alignItems: 'center', justifyContent: 'center', gap: '6px' },
		btnFixed: { height: '32px', padding: '0 16px' },
		btnPrimary: { backgroundColor: t.primary, color: t.neutral1, border: 'none' },
		btnDefault: { backgroundColor: t.neutral1, color: t.neutral8, border: '1px solid ' + t.border },
		btnOutline: { backgroundColor: t.neutral1, color: t.primary, border: '1px solid ' + t.primary },
		toolbar: { display: 'flex', justifyContent: 'flex-end', marginBottom: t.spacing16 },
		tabs: { display: 'flex', borderBottom: '1px solid ' + t.border, marginBottom: t.spacing16 },
		tab: { padding: '10px 16px', cursor: 'pointer', fontSize: t.fontSize14, color: t.neutral7 },
		tabActive: { color: t.primary, borderBottom: '2px solid ' + t.primary, marginBottom: '-1px' },
		tableWrap: { overflowX: 'auto', border: '1px solid ' + t.neutral4, borderRadius: t.radiusMedium },
		tableWrapAddPage: { overflow: 'visible', border: '1px solid ' + t.neutral4, borderRadius: t.radiusMedium },
		table: { width: '100%', borderCollapse: 'collapse', fontSize: t.fontSize14 },
		th: { textAlign: 'left', padding: '0 16px', height: '40px', boxSizing: 'border-box', backgroundColor: t.fillSecondary, borderBottom: '1px solid ' + t.neutral4, fontWeight: 600, color: t.neutral8, verticalAlign: 'middle' },
		thNowrap: { whiteSpace: 'nowrap' },
		thStickyRight: { position: 'sticky', right: 0, backgroundColor: t.fillSecondary, boxShadow: '-2px 0 4px rgba(0,0,0,0.06)', zIndex: 1 },
		tdStickyRight: { position: 'sticky', right: 0, backgroundColor: t.neutral1, boxShadow: '-2px 0 4px rgba(0,0,0,0.06)', zIndex: 1 },
		tdStickyRightStripe: { position: 'sticky', right: 0, backgroundColor: t.fillSecondary, boxShadow: '-2px 0 4px rgba(0,0,0,0.06)', zIndex: 1 },
		td: { padding: '0 16px', height: '42px', boxSizing: 'border-box', borderBottom: '1px solid ' + t.neutral4, color: t.neutral8, verticalAlign: 'middle' },
		tdNowrap: { whiteSpace: 'nowrap' },
		trStripe: { backgroundColor: t.fillSecondary },
		trOdd: { backgroundColor: t.neutral1 },
		actionLink: { color: t.link, cursor: 'pointer', marginRight: t.spacing12, fontSize: t.fontSize14 },
		pagination: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', padding: '16px', borderTop: '1px solid ' + t.neutral4 },
		paginationLeft: { display: 'flex', alignItems: 'center', gap: '8px', fontSize: t.fontSize14, color: t.neutral7 },
		paginationRight: { display: 'flex', alignItems: 'center', gap: '8px' },
		paginationSelect: { padding: '4px 8px', height: '28px', borderRadius: '2px', border: '1px solid ' + t.border, fontSize: t.fontSize14, fontFamily: t.fontFamily },
		paginationBtn: { minWidth: '28px', height: '28px', padding: '0 8px', borderRadius: '2px', border: '1px solid ' + t.border, backgroundColor: t.neutral1, cursor: 'pointer', fontSize: t.fontSize14 },
		paginationBtnActive: { backgroundColor: t.primary, color: t.neutral1, borderColor: t.primary },
		paginationBtnDisabled: { opacity: 0.5, cursor: 'not-allowed' },
		cascaderWrap: { position: 'relative', width: '100%', minWidth: 0 },
		cascaderInput: { display: 'flex', alignItems: 'center', justifyContent: 'flex-start', width: '100%', height: '32px', padding: '0 32px 0 12px', borderRadius: '2px', border: '1px solid ' + t.border, cursor: 'pointer', fontSize: t.fontSize14, fontFamily: t.fontFamily, color: t.neutral8, backgroundColor: t.neutral1, outline: 'none', transition: 'border-color 0.2s, box-shadow 0.2s', boxSizing: 'border-box', textAlign: 'left', backgroundImage: 'url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' viewBox=\'0 0 48 48\'%3E%3Cpath fill=\'%2386909C\' d=\'M24 32l-12-12h24z\'/%3E%3C/svg%3E")', backgroundRepeat: 'no-repeat', backgroundPosition: 'right 20px center' },
		cascaderPanel: { position: 'absolute', left: 0, top: '100%', marginTop: '4px', backgroundColor: t.neutral1, border: '1px solid ' + t.border, borderRadius: '2px', boxShadow: '0 4px 10px rgba(0,0,0,0.08)', zIndex: 1050, display: 'flex', minWidth: '240px', maxHeight: '256px' },
		cascaderColumn: { minWidth: '100px', maxHeight: '256px', overflowY: 'auto', borderRight: '1px solid ' + t.neutral4 },
		cascaderColumnLast: { borderRight: 'none' },
		cascaderOption: { padding: '8px 12px', fontSize: t.fontSize14, fontFamily: t.fontFamily, color: t.neutral8, cursor: 'pointer', transition: 'background-color 0.1s' },
		cascaderOptionHover: { backgroundColor: t.neutral2 },
		autocompleteWrap: { position: 'relative', minWidth: '140px' },
		autocompleteWrapFull: { width: '100%', minWidth: 0, maxWidth: '100%' },
		autocompleteTrigger: { padding: '0 32px 0 12px', height: '32px', minWidth: '140px', borderRadius: '2px', border: '1px solid ' + t.border, fontSize: t.fontSize14, fontFamily: t.fontFamily, color: t.neutral8, backgroundColor: t.neutral1, boxSizing: 'border-box', outline: 'none', transition: 'border-color 0.2s, box-shadow 0.2s', textAlign: 'left', backgroundImage: 'url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' viewBox=\'0 0 48 48\'%3E%3Cpath fill=\'%2386909C\' d=\'M24 32l-12-12h24z\'/%3E%3C/svg%3E")', backgroundRepeat: 'no-repeat', backgroundPosition: 'right 20px center' },
		autocompleteTriggerFull: { width: '100%', minWidth: 0, maxWidth: '100%' },
		autocompletePanel: { position: 'absolute', left: 0, top: '100%', marginTop: '4px', backgroundColor: t.neutral1, border: '1px solid ' + t.border, borderRadius: '2px', boxShadow: '0 4px 10px rgba(0,0,0,0.08)', zIndex: 100, minWidth: '100%', maxHeight: '256px', overflowY: 'auto', padding: '4px 0' },
		autocompletePanelOverflow: { zIndex: 1050 },
		autocompleteOption: { padding: '8px 12px', fontSize: t.fontSize14, fontFamily: t.fontFamily, color: t.neutral8, cursor: 'pointer', transition: 'background-color 0.1s' },
		dateRangeWrap: { position: 'relative', width: '100%' },
		dateRangeTrigger: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', width: '100%', height: '32px', padding: '0 10px 0 12px', borderRadius: '2px', border: '1px solid ' + t.border, fontSize: t.fontSize14, fontFamily: t.fontFamily, color: t.neutral8, backgroundColor: t.neutral1, cursor: 'pointer', outline: 'none', transition: 'border-color 0.2s, box-shadow 0.2s', boxSizing: 'border-box', textAlign: 'left' },
		dateRangeTriggerFocus: { borderColor: t.primary, boxShadow: '0 0 0 2px rgba(22,93,255,0.2)' },
		dateRangeDropdown: { position: 'absolute', left: 0, top: '100%', marginTop: '4px', backgroundColor: t.neutral1, border: '1px solid ' + t.border, borderRadius: '4px', boxShadow: '0 4px 10px rgba(0,0,0,0.12)', zIndex: 1050, padding: '12px 16px', minWidth: '480px' },
		dateRangeCalendars: { display: 'flex', gap: '24px' },
		dateRangeCalendar: { minWidth: '200px' },
		dateRangeCalendarHeader: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '12px' },
		dateRangeCalendarNav: { display: 'flex', alignItems: 'center', gap: '4px' },
		dateRangeCalendarNavBtn: { width: '28px', height: '28px', display: 'flex', alignItems: 'center', justifyContent: 'center', border: 'none', borderRadius: '2px', backgroundColor: 'transparent', color: t.neutral7, cursor: 'pointer', fontSize: '14px' },
		dateRangeCalendarTitle: { fontSize: t.fontSize14, fontWeight: 600, color: t.neutral8 },
		dateRangeCalendarWeekdays: { display: 'grid', gridTemplateColumns: 'repeat(7, 1fr)', gap: '2px', marginBottom: '4px', fontSize: '12px', color: t.neutral6 },
		dateRangeCalendarGrid: { display: 'grid', gridTemplateColumns: 'repeat(7, 1fr)', gap: '2px' },
		dateRangeDay: { width: '28px', height: '28px', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: '13px', color: t.neutral8, cursor: 'pointer', borderRadius: '2px' },
		dateRangeDayOther: { color: t.neutral5 },
		dateRangeDaySelected: { backgroundColor: t.primary, color: t.neutral1 },
		dateRangeDayInRange: { backgroundColor: 'rgba(22,93,255,0.15)', color: t.primary },
		dateRangeDayToday: { position: 'relative', fontWeight: 600 },
		formRow: { marginBottom: t.spacing16 },
		formLabel: { display: 'block', marginBottom: '6px', fontSize: t.fontSize14, color: t.neutral8 },
		formLabelReq: { color: t.danger, marginLeft: '2px' },
		formGrid: { display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: t.spacing24, maxWidth: '100%' },
		formGridFull: { gridColumn: '1 / -1' },
		textarea: { width: '100%', minHeight: '80px', padding: '8px 10px', borderRadius: '2px', border: '1px solid ' + t.border, fontSize: t.fontSize14, fontFamily: t.fontFamily, resize: 'vertical', boxSizing: 'border-box' },
		radioGroup: { display: 'flex', gap: t.spacing16, alignItems: 'center' },
		radioItem: { display: 'flex', alignItems: 'center', cursor: 'pointer' },
		btnGroup: { display: 'inline-flex', border: '1px solid ' + t.border, borderRadius: t.radiusMedium, overflow: 'hidden' },
		btnGroupItem: { padding: '0 16px', height: '32px', border: 'none', borderRight: '1px solid ' + t.border, cursor: 'pointer', fontSize: t.fontSize14, backgroundColor: t.neutral1, color: t.neutral7 },
		btnGroupItemLast: { borderRight: 'none' },
		btnGroupItemActive: { backgroundColor: t.primary, color: t.neutral1 },
		transferBox: { display: 'flex', alignItems: 'stretch', gap: t.spacing12, minHeight: '240px', border: '1px solid ' + t.border, borderRadius: t.radiusMedium, padding: t.spacing12 },
		transferColumn: { flex: 1, border: '1px solid ' + t.neutral4, borderRadius: t.radiusSmall, overflow: 'hidden', display: 'flex', flexDirection: 'column' },
		transferColumnHead: { padding: '8px 12px', backgroundColor: t.fillSecondary, fontSize: t.fontSize14, fontWeight: 600 },
		transferColumnList: { flex: 1, overflowY: 'auto', padding: '4px' },
		transferItem: { padding: '8px 12px', fontSize: t.fontSize14, cursor: 'pointer', borderRadius: t.radiusSmall },
		transferItemSelected: { backgroundColor: t.primary, color: t.neutral1 },
		transferBtns: { display: 'flex', flexDirection: 'column', justifyContent: 'center', gap: t.spacing8 },
		stepBar: { display: 'flex', alignItems: 'center', marginBottom: t.spacing24, padding: t.spacing16, backgroundColor: t.fillSecondary, borderRadius: t.radiusMedium },
		stepItem: { display: 'flex', alignItems: 'center', flex: 1 },
		stepDot: { width: '24px', height: '24px', borderRadius: '50%', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: '12px', marginRight: '8px' },
		stepDotDone: { backgroundColor: t.success, color: t.neutral1 },
		stepDotCurrent: { backgroundColor: t.primary, color: t.neutral1 },
		stepDotPending: { backgroundColor: t.neutral4, color: t.neutral6 },
		modalMask: { position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, backgroundColor: 'rgba(0,0,0,0.45)', zIndex: 1000, display: 'flex', alignItems: 'center', justifyContent: 'center' },
		modalBox: { backgroundColor: t.neutral1, borderRadius: t.radiusLarge, maxWidth: '90%', maxHeight: '90%', overflow: 'auto', padding: t.spacing24, minWidth: '600px', position: 'relative' },
		modalTitle: { fontSize: t.fontSize16, fontWeight: 600, marginBottom: t.spacing16 },
		modalFooter: { marginTop: t.spacing24, display: 'flex', justifyContent: 'flex-end', gap: t.spacing8 },
		toast: { position: 'fixed', top: t.spacing24, left: '50%', transform: 'translateX(-50%)', backgroundColor: 'rgba(0,0,0,0.75)', color: t.neutral1, padding: '10px 20px', borderRadius: t.radiusMedium, zIndex: 2000, fontSize: t.fontSize14 }
	};

	// 列表运输方名称、运输方联系方式列样式（支持长文本换行）
	var carrierInfoTdStyle = Object.assign({}, styles.td, { whiteSpace: 'normal', verticalAlign: 'middle', minWidth: '100px', wordBreak: 'break-word', overflowWrap: 'break-word' });

	// 穿梭框：左侧可选车辆 = 库存中未在 formData.selectedVehicleIds 的
	var leftVehicles = mockStockVehicles.filter(function (v) { return formData.selectedVehicleIds.indexOf(v.id) < 0; });
	var rightVehicles = mockStockVehicles.filter(function (v) { return formData.selectedVehicleIds.indexOf(v.id) >= 0; });

	function renderFilterSelect(options, value, onChange, open, setOpen, placeholder, filterFn, fullWidth) {
		var list = filterFn ? options.filter(filterFn) : options;
		var wrapStyle = fullWidth ? Object.assign({}, styles.autocompleteWrap, styles.autocompleteWrapFull) : styles.autocompleteWrap;
		var triggerBase = fullWidth ? Object.assign({}, styles.autocompleteTrigger, styles.autocompleteTriggerFull) : styles.autocompleteTrigger;
		var triggerStyle = Object.assign({}, triggerBase, open ? { borderColor: t.primary, boxShadow: '0 0 0 2px rgba(22,93,255,0.2)' } : {});
		return React.createElement('div', { style: wrapStyle },
			React.createElement('input', {
				style: triggerStyle,
				className: 'arco-select-trigger',
				placeholder: placeholder,
				value: value,
				onChange: function (e) { onChange(e.target.value); },
				onFocus: function () { setOpen(true); },
				onBlur: function () { setTimeout(function () { setOpen(false); }, 200); }
			}),
			open && list.length > 0 && React.createElement(React.Fragment, {},
				React.createElement('div', { style: { position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, zIndex: 99 }, onClick: function () { setOpen(false); } }),
				React.createElement('div', { style: styles.autocompletePanel, onClick: function (e) { e.stopPropagation(); } },
					list.map(function (opt) {
						var label = typeof opt === 'string' ? opt : (opt.label || opt.name || opt.plateNo);
						var val = typeof opt === 'string' ? opt : (opt.value || opt.id || opt.plateNo);
						return React.createElement('div', {
							key: val,
							style: styles.autocompleteOption,
							className: 'arco-select-option',
							onMouseDown: function (e) { e.preventDefault(); },
							onMouseEnter: function (e) { e.currentTarget.style.backgroundColor = t.neutral2; },
							onMouseLeave: function (e) { e.currentTarget.style.backgroundColor = 'transparent'; },
							onClick: function () { onChange(typeof opt === 'string' ? opt : (opt.name || opt.plateNo || val)); setOpen(false); }
						}, label);
					})
				)
			)
		);
	}

	function getCalendarWeeks(year, month) {
		var d = new Date(year, month - 1, 1);
		var firstDay = d.getDay();
		var daysInMonth = new Date(year, month, 0).getDate();
		var weeks = [];
		var week = [];
		for (var i = 0; i < firstDay; i++) {
			var prev = new Date(year, month - 1, -firstDay + i + 1);
			week.push({ date: prev.getDate(), yyyymmdd: prev.getFullYear() + '-' + String(prev.getMonth() + 1).padStart(2, '0') + '-' + String(prev.getDate()).padStart(2, '0'), isCurrentMonth: false });
		}
		for (var j = 1; j <= daysInMonth; j++) {
			week.push({ date: j, yyyymmdd: year + '-' + String(month).padStart(2, '0') + '-' + String(j).padStart(2, '0'), isCurrentMonth: true });
			if (week.length === 7) { weeks.push(week); week = []; }
		}
		if (week.length) {
			var nextMonth = month === 12 ? 1 : month + 1;
			var nextYear = month === 12 ? year + 1 : year;
			for (var k = week.length; k < 7; k++) {
				var dayNum = k - week.length + 1;
				week.push({ date: dayNum, yyyymmdd: nextYear + '-' + String(nextMonth).padStart(2, '0') + '-' + String(dayNum).padStart(2, '0'), isCurrentMonth: false });
			}
			weeks.push(week);
		}
		return weeks;
	}
	function renderDateRangePicker(startValue, endValue, setStart, setEnd, open, setOpen, viewLeft, viewRight, setViewLeft, setViewRight) {
		var displayText = (startValue && endValue) ? (startValue + ' - ' + endValue) : (startValue ? (startValue + ' - 结束日期') : '开始日期 - 结束日期');
		var triggerStyle = Object.assign({}, styles.dateRangeTrigger, open ? styles.dateRangeTriggerFocus : {});
		var today = new Date();
		var todayStr = today.getFullYear() + '-' + String(today.getMonth() + 1).padStart(2, '0') + '-' + String(today.getDate()).padStart(2, '0');
		var leftYM = viewLeft || getInitialViewMonth(startValue);
		var rightYM = viewRight || (function () {
			var p = leftYM.split('-');
			var y = parseInt(p[0], 10);
			var m = parseInt(p[1], 10);
			if (m === 12) return (y + 1) + '-01';
			return y + '-' + String(m + 1).padStart(2, '0');
		}());
		var leftParts = leftYM.split('-');
		var rightParts = rightYM.split('-');
		var leftWeeks = getCalendarWeeks(parseInt(leftParts[0], 10), parseInt(leftParts[1], 10));
		var rightWeeks = getCalendarWeeks(parseInt(rightParts[0], 10), parseInt(rightParts[1], 10));
		function goPrevMonth(isLeftCalendar) {
			var ym = isLeftCalendar ? leftYM : rightYM;
			var p = ym.split('-');
			var y = parseInt(p[0], 10);
			var m = parseInt(p[1], 10);
			if (m === 1) { y--; m = 12; } else m--;
			var next = y + '-' + String(m).padStart(2, '0');
			if (isLeftCalendar) { setViewLeft(next); setViewRight(m === 12 ? (y + 1) + '-01' : y + '-' + String(m + 1).padStart(2, '0')); }
			else { setViewRight(next); setViewLeft(m === 1 ? (y - 1) + '-12' : y + '-' + String(m - 1).padStart(2, '0')); }
		}
		function goNextMonth(isLeftCalendar) {
			var ym = isLeftCalendar ? leftYM : rightYM;
			var p = ym.split('-');
			var y = parseInt(p[0], 10);
			var m = parseInt(p[1], 10);
			if (m === 12) { y++; m = 1; } else m++;
			var next = y + '-' + String(m).padStart(2, '0');
			if (isLeftCalendar) { setViewLeft(next); setViewRight(m === 12 ? (y + 1) + '-01' : y + '-' + String(m + 1).padStart(2, '0')); }
			else { setViewRight(next); setViewLeft(m === 1 ? (y - 1) + '-12' : y + '-' + String(m - 1).padStart(2, '0')); }
		}
		function onSelectDate(yyyymmdd) {
			if (!startValue || (startValue && endValue)) {
				setStart(yyyymmdd);
				setEnd('');
			} else {
				if (yyyymmdd < startValue) { setEnd(startValue); setStart(yyyymmdd); }
				else setEnd(yyyymmdd);
			}
		}
		function renderOneCalendar(weeks, isLeft) {
			return React.createElement('div', { style: styles.dateRangeCalendar },
				React.createElement('div', { style: styles.dateRangeCalendarHeader },
					React.createElement('div', { style: styles.dateRangeCalendarNav },
						React.createElement('button', { type: 'button', style: styles.dateRangeCalendarNavBtn, onClick: function () { goPrevMonth(isLeft); } }, '\u00AB'),
						React.createElement('button', { type: 'button', style: styles.dateRangeCalendarNavBtn, onClick: function () { goPrevMonth(isLeft); } }, '\u2039')
					),
					React.createElement('span', { style: styles.dateRangeCalendarTitle }, (isLeft ? leftYM : rightYM).replace('-', '\u5E74') + '\u6708'),
					React.createElement('div', { style: styles.dateRangeCalendarNav },
						React.createElement('button', { type: 'button', style: styles.dateRangeCalendarNavBtn, onClick: function () { goNextMonth(isLeft); } }, '\u203A'),
						React.createElement('button', { type: 'button', style: styles.dateRangeCalendarNavBtn, onClick: function () { goNextMonth(isLeft); } }, '\u00BB')
					)
				),
				React.createElement('div', { style: styles.dateRangeCalendarWeekdays }, ['日', '一', '二', '三', '四', '五', '六'].map(function (w) { return React.createElement('div', { key: w }, w); })),
				React.createElement('div', { style: styles.dateRangeCalendarGrid },
					weeks.map(function (week, wi) {
						return week.map(function (day, di) {
							var isSelected = day.yyyymmdd === startValue || day.yyyymmdd === endValue;
							var isInRange = startValue && endValue && day.yyyymmdd >= startValue && day.yyyymmdd <= endValue;
							var isToday = day.yyyymmdd === todayStr;
							var dayStyle = Object.assign({}, styles.dateRangeDay, !day.isCurrentMonth ? styles.dateRangeDayOther : {}, isSelected ? styles.dateRangeDaySelected : {}, isInRange && !isSelected ? styles.dateRangeDayInRange : {}, isToday ? styles.dateRangeDayToday : {});
							return React.createElement('div', {
								key: wi + '-' + di,
								style: dayStyle,
								onClick: function () { onSelectDate(day.yyyymmdd); }
							}, day.date);
						});
					})
				)
			);
		}
		return React.createElement('div', { style: styles.dateRangeWrap },
			React.createElement('div', {
				style: triggerStyle,
				onClick: function () {
					if (!open) {
						setViewLeft(getInitialViewMonth(startValue));
						var l = getInitialViewMonth(startValue);
						var p = l.split('-');
						var y = parseInt(p[0], 10);
						var m = parseInt(p[1], 10);
						setViewRight(m === 12 ? (y + 1) + '-01' : y + '-' + String(m + 1).padStart(2, '0'));
					}
					setOpen(!open);
				}
			}, React.createElement('span', { style: { color: (startValue || endValue) ? t.neutral8 : t.neutral6 } }, displayText), React.createElement('span', { style: { width: '16px', height: '16px', flexShrink: 0, marginLeft: '8px', display: 'inline-flex', alignItems: 'center', justifyContent: 'center', color: t.neutral6 } }, React.createElement('svg', { width: 16, height: 16, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: 2 }, React.createElement('rect', { x: 3, y: 4, width: 18, height: 18, rx: 2 }), React.createElement('line', { x1: 16, y1: 2, x2: 16, y2: 6 }), React.createElement('line', { x1: 8, y1: 2, x2: 8, y2: 6 }), React.createElement('line', { x1: 3, y1: 10, x2: 21, y2: 10 })))),
			open && React.createElement(React.Fragment, {},
				React.createElement('div', { style: { position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, zIndex: 1049 }, onClick: function () { setOpen(false); } }),
				React.createElement('div', { style: styles.dateRangeDropdown, onClick: function (e) { e.stopPropagation(); } },
					React.createElement('div', { style: styles.dateRangeCalendars },
						renderOneCalendar(leftWeeks, true),
						renderOneCalendar(rightWeeks, false)
					)
				)
			)
		);
	}

	function renderCascader(provinceCode, cityCode, setProvince, setCity, open, setOpen) {
		var p = provinceList.find(function (x) { return x.code === provinceCode; });
		var c = (cityMap[provinceCode] || []).find(function (x) { return x.code === cityCode; });
		var display = (p ? p.name : '') + (p && c ? ' - ' : '') + (c ? c.name : '');
		var cascaderTriggerStyle = Object.assign({}, styles.cascaderInput, open ? { borderColor: t.primary, boxShadow: '0 0 0 2px rgba(22,93,255,0.2)' } : {});
		return React.createElement('div', { style: styles.cascaderWrap },
			React.createElement('div', {
				style: cascaderTriggerStyle,
				className: 'arco-select-trigger',
				onClick: function () { setOpen(!open); }
			}, React.createElement('span', { style: { color: (provinceCode && cityCode) ? t.neutral8 : t.neutral6, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' } }, display || '请选择省-市')),
			open && React.createElement(React.Fragment, {},
				React.createElement('div', { style: { position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, zIndex: 1049 }, onClick: function () { setOpen(false); } }),
				React.createElement('div', { style: styles.cascaderPanel, onClick: function (e) { e.stopPropagation(); } },
					React.createElement('div', { style: styles.cascaderColumn },
						provinceList.map(function (pr) {
							return React.createElement('div', {
								key: pr.code,
								style: styles.cascaderOption,
								className: 'arco-select-option',
								onMouseEnter: function (e) { e.currentTarget.style.backgroundColor = t.neutral2; },
								onMouseLeave: function (e) { e.currentTarget.style.backgroundColor = 'transparent'; },
								onClick: function () { setProvince(pr.code); setCity(''); }
							}, pr.name);
						})
					),
					React.createElement('div', { style: Object.assign({}, styles.cascaderColumn, styles.cascaderColumnLast) },
						(cityMap[provinceCode] || []).map(function (ci) {
							return React.createElement('div', {
								key: ci.code,
								style: styles.cascaderOption,
								className: 'arco-select-option',
								onMouseEnter: function (e) { e.currentTarget.style.backgroundColor = t.neutral2; },
								onMouseLeave: function (e) { e.currentTarget.style.backgroundColor = 'transparent'; },
								onClick: function () { setCity(ci.code); setOpen(false); }
							}, ci.name);
						})
					)
				)
			)
		);
	}

	function renderFormContent(readonly, isView) {
		var disabled = readonly === true;
		var grid = styles.formGrid;
		return React.createElement('div', { style: grid },
			React.createElement('div', { style: styles.formRow },
				React.createElement('label', { style: styles.formLabel }, '调拨日期', !disabled && React.createElement('span', { style: styles.formLabelReq }, '*')),
				disabled ? React.createElement('span', {}, formData.transferDate) : React.createElement('input', { style: styles.input, type: 'date', value: formData.transferDate, onChange: function (e) { handleFormChange('transferDate', e.target.value); } })
			),
			React.createElement('div', { style: styles.formRow },
				React.createElement('label', { style: styles.formLabel }, '操作人', !disabled && React.createElement('span', { style: styles.formLabelReq }, '*')),
				disabled ? React.createElement('span', {}, formData.operatorName) : renderFilterSelect(mockOpsUsers, formData.operatorName, function (v) { handleFormChange('operatorName', v); var u = mockOpsUsers.find(function (x) { return x.name === v; }); if (u) handleFormChange('operatorId', u.id); }, formOperatorOpen, setFormOperatorOpen, '支持模糊搜索', function (u) { return !formData.operatorName || (u.name && u.name.indexOf(formData.operatorName) >= 0); })
			),
			React.createElement('div', { style: Object.assign({}, styles.formRow, styles.formGridFull) },
				React.createElement('label', { style: styles.formLabel }, '车牌号', !disabled && React.createElement('span', { style: styles.formLabelReq }, '*')),
				disabled ? React.createElement('span', {}, (formData.selectedVehicleIds && mockStockVehicles.filter(function (v) { return formData.selectedVehicleIds.indexOf(v.id) >= 0; }).map(function (v) { return v.plateNo; }).join('、')) || '-') : React.createElement('div', { style: styles.transferBox },
					React.createElement('div', { style: styles.transferColumn },
						React.createElement('div', { style: styles.transferColumnHead }, '库存车辆'),
						React.createElement('div', { style: styles.transferColumnList },
							leftVehicles.map(function (v) {
								var selected = leftSelectedIds.indexOf(v.id) >= 0;
								return React.createElement('div', {
									key: v.id,
									style: Object.assign({}, styles.transferItem, selected ? styles.transferItemSelected : {}),
									onClick: function () {
										if (selected) setLeftSelectedIds(leftSelectedIds.filter(function (id) { return id !== v.id; }));
										else setLeftSelectedIds(leftSelectedIds.concat([v.id]));
									}
								}, v.plateNo);
							})
						)
					),
					React.createElement('div', { style: styles.transferBtns },
						React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), title: '添加', onClick: function () {
							handleFormChange('selectedVehicleIds', (formData.selectedVehicleIds || []).concat(leftSelectedIds));
							setLeftSelectedIds([]);
						} }, '→'),
						React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), title: '移除', onClick: function () {
							handleFormChange('selectedVehicleIds', (formData.selectedVehicleIds || []).filter(function (id) { return rightSelectedIds.indexOf(id) < 0; }));
							setRightSelectedIds([]);
						} }, '←')
					),
					React.createElement('div', { style: styles.transferColumn },
						React.createElement('div', { style: styles.transferColumnHead }, '已选车辆'),
						React.createElement('div', { style: styles.transferColumnList },
							rightVehicles.map(function (v) {
								var selected = rightSelectedIds.indexOf(v.id) >= 0;
								return React.createElement('div', {
									key: v.id,
									style: Object.assign({}, styles.transferItem, selected ? styles.transferItemSelected : {}),
									onClick: function () {
										if (selected) setRightSelectedIds(rightSelectedIds.filter(function (id) { return id !== v.id; }));
										else setRightSelectedIds(rightSelectedIds.concat([v.id]));
									}
								}, v.plateNo);
							})
						)
					)
				)
			),
			React.createElement('div', { style: styles.formRow },
				React.createElement('label', { style: styles.formLabel }, '调拨方式', !disabled && React.createElement('span', { style: styles.formLabelReq }, '*')),
				disabled ? React.createElement('span', {}, getMethodLabel(formData.transferMethod)) : React.createElement('div', { style: styles.radioGroup },
					TRANSFER_METHODS.map(function (m) {
						return React.createElement('label', { key: m.value, style: styles.radioItem },
							React.createElement('input', { type: 'radio', name: 'transferMethod', value: m.value, checked: formData.transferMethod === m.value, onChange: function () { handleFormChange('transferMethod', m.value); } }),
							React.createElement('span', { style: { marginLeft: '6px' } }, m.label)
						);
					})
				)
			),
			React.createElement('div', { style: Object.assign({}, styles.formRow, styles.formGridFull) },
				React.createElement('label', { style: styles.formLabel }, '调拨原因', !disabled && React.createElement('span', { style: styles.formLabelReq }, '*')),
				disabled ? React.createElement('span', {}, formData.transferReason || '-') : React.createElement('textarea', { style: styles.textarea, value: formData.transferReason, onChange: function (e) { handleFormChange('transferReason', e.target.value); }, placeholder: '请输入' })
			),
			React.createElement('div', { style: styles.formRow },
				React.createElement('label', { style: styles.formLabel }, '出发区域', !disabled && React.createElement('span', { style: styles.formLabelReq }, '*')),
				disabled ? React.createElement('span', {}, (function () {
					var r = viewRecord || editRecord;
					if (r && r.departLabel) return r.departLabel;
					if (formData.departProvince && formData.departCity) {
						var p = provinceList.find(function (x) { return x.code === formData.departProvince; });
						var c = (cityMap[formData.departProvince] || []).find(function (x) { return x.code === formData.departCity; });
						return (p ? p.name : '') + '-' + (c ? c.name : '');
					}
					return '-';
				}()) ) : renderCascader(formData.departProvince, formData.departCity, function (v) { setFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.departProvince = v; n.departCity = ''; return n; }); }, function (v) { setFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.departCity = v; return n; }); }, formDepartCascaderOpen, setFormDepartCascaderOpen)
			),
			React.createElement('div', { style: styles.formRow },
				React.createElement('label', { style: styles.formLabel }, '接收区域', !disabled && React.createElement('span', { style: styles.formLabelReq }, '*')),
				disabled ? React.createElement('span', {}, (function () {
					var r = viewRecord || editRecord;
					if (r && r.transferLabel) return r.transferLabel;
					if (formData.transferProvince && formData.transferCity) {
						var p = provinceList.find(function (x) { return x.code === formData.transferProvince; });
						var c = (cityMap[formData.transferProvince] || []).find(function (x) { return x.code === formData.transferCity; });
						return (p ? p.name : '') + '-' + (c ? c.name : '');
					}
					return '-';
				}()) ) : renderCascader(formData.transferProvince, formData.transferCity, function (v) { setFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.transferProvince = v; n.transferCity = ''; return n; }); }, function (v) { setFormData(function (prev) { var n = {}; for (var k in prev) n[k] = prev[k]; n.transferCity = v; return n; }); }, formTransferCascaderOpen, setFormTransferCascaderOpen)
			),
			React.createElement('div', { style: styles.formRow },
				React.createElement('label', { style: styles.formLabel }, '运输方名称', !disabled && React.createElement('span', { style: styles.formLabelReq }, '*')),
				disabled ? React.createElement('span', {}, (viewRecord || editRecord || formData).carrierName || '-') : React.createElement('input', { style: styles.input, value: formData.carrierName, onChange: function (e) { handleFormChange('carrierName', e.target.value); }, placeholder: '请输入' })
			),
			React.createElement('div', { style: styles.formRow },
				React.createElement('label', { style: styles.formLabel }, '运输方联系方式', !disabled && React.createElement('span', { style: styles.formLabelReq }, '*')),
				disabled ? React.createElement('span', {}, (viewRecord || editRecord || formData).carrierContact || '-') : React.createElement('input', { style: styles.input, value: formData.carrierContact, onChange: function (e) { handleFormChange('carrierContact', e.target.value); }, placeholder: '请输入' })
			)
		);
	}

	return (
		React.createElement('div', { style: styles.page },
			React.createElement('style', {
				dangerouslySetInnerHTML: {
					__html: '.arco-select-trigger:hover{border-color:#C9CDD4 !important;}'
						+ 'select:hover{border-color:#C9CDD4 !important;}'
						+ 'select:focus{border-color:#165DFF !important;box-shadow:0 0 0 2px rgba(22,93,255,0.2) !important;}'
						+ '.arco-select-option:hover{background-color:#F7F8FA !important;}'
				}
			}),
			React.createElement('div', { style: styles.breadcrumb },
				React.createElement('div', { style: styles.breadcrumbLeft },
					React.createElement('a', { href: '#', style: styles.breadcrumbLink, onClick: function (e) { e.preventDefault(); } }, '运维管理'),
					React.createElement('span', { style: { marginRight: '8px' } }, '/'),
					React.createElement('a', { href: '#', style: styles.breadcrumbLink, onClick: function (e) { e.preventDefault(); } }, '车辆业务'),
					React.createElement('span', { style: { marginRight: '8px' } }, '/'),
					React.createElement('span', { style: styles.breadcrumbCurrent }, '调拨管理')
				),
				React.createElement('div', { style: styles.breadcrumbRight },
					React.createElement('a', { href: '#', style: styles.requirementLink, onClick: function (e) { e.preventDefault(); setShowRequirementModal(true); } }, '查看需求说明')
				)
			),

			currentView === 'list' && React.createElement(React.Fragment, {},
				React.createElement('div', { style: styles.card },
					React.createElement('div', { style: styles.searchPanel },
						React.createElement('div', { style: styles.searchPanelInner },
							React.createElement('div', { style: styles.searchGridWrap },
								React.createElement('div', { style: styles.searchGrid },
									React.createElement('div', { style: styles.searchField },
										React.createElement('span', { style: styles.searchFieldLabel }, '调拨日期'),
										React.createElement('div', { style: styles.searchFieldControl }, renderDateRangePicker(filterDateStart, filterDateEnd, setFilterDateStart, setFilterDateEnd, filterDateRangeOpen, setFilterDateRangeOpen, filterDateRangeViewLeft, filterDateRangeViewRight, setFilterDateRangeViewLeft, setFilterDateRangeViewRight))
									),
									React.createElement('div', { style: styles.searchField },
										React.createElement('span', { style: styles.searchFieldLabel }, '调拨人'),
										React.createElement('div', { style: styles.searchFieldControl }, renderFilterSelect(mockOpsUsers.map(function (u) { return u.name; }), filterOperator, setFilterOperator, filterOperatorOpen, setFilterOperatorOpen, '模糊搜索', function (n) { return !filterOperator || n.indexOf(filterOperator) >= 0; }, true))
									),
									React.createElement('div', { style: styles.searchField },
										React.createElement('span', { style: styles.searchFieldLabel }, '接收日期'),
										React.createElement('div', { style: styles.searchFieldControl }, renderDateRangePicker(filterReceiveDateStart, filterReceiveDateEnd, setFilterReceiveDateStart, setFilterReceiveDateEnd, filterReceiveDateRangeOpen, setFilterReceiveDateRangeOpen, filterReceiveDateRangeViewLeft, filterReceiveDateRangeViewRight, setFilterReceiveDateRangeViewLeft, setFilterReceiveDateRangeViewRight))
									),
									React.createElement('div', { style: styles.searchField },
										React.createElement('span', { style: styles.searchFieldLabel }, '接收人'),
										React.createElement('div', { style: styles.searchFieldControl }, renderFilterSelect(mockOpsUsers.map(function (u) { return u.name; }), filterReceiver, setFilterReceiver, filterReceiverOpen, setFilterReceiverOpen, '模糊搜索', function (n) { return !filterReceiver || n.indexOf(filterReceiver) >= 0; }, true))
									),
									React.createElement('div', { style: styles.searchField },
										React.createElement('span', { style: styles.searchFieldLabel }, '车牌号'),
										React.createElement('div', { style: styles.searchFieldControl }, renderFilterSelect(mockStockVehicles.map(function (v) { return v.plateNo; }), filterPlateNo, setFilterPlateNo, filterPlateOpen, setFilterPlateOpen, '模糊搜索', function (p) { return !filterPlateNo || p.indexOf(filterPlateNo) >= 0; }, true))
									),
									React.createElement('div', { style: styles.searchField },
										React.createElement('span', { style: styles.searchFieldLabel }, '出发区域'),
										React.createElement('div', { style: styles.searchFieldControl }, renderCascader(filterDepartProvince, filterDepartCity, setFilterDepartProvince, setFilterDepartCity, filterCascaderDepartOpen, setFilterCascaderDepartOpen))
									),
									React.createElement('div', { style: styles.searchField },
										React.createElement('span', { style: styles.searchFieldLabel }, '调拨区域'),
										React.createElement('div', { style: styles.searchFieldControl }, renderCascader(filterTransferProvince, filterTransferCity, setFilterTransferProvince, setFilterTransferCity, filterCascaderTransferOpen, setFilterCascaderTransferOpen))
									),
									React.createElement('div', { style: styles.searchField },
										React.createElement('span', { style: styles.searchFieldLabel }, '调拨方式'),
										React.createElement('div', { style: styles.searchFieldControl },
											React.createElement('select', {
												style: Object.assign({}, styles.select, { width: '100%', minWidth: 0 }),
												value: filterMethod,
												onChange: function (e) { setFilterMethod(e.target.value); }
											}, React.createElement('option', { value: '' }, '全部'), TRANSFER_METHODS.map(function (m) { return React.createElement('option', { key: m.value, value: m.value }, m.label); }))
										)
									),
									React.createElement('div', { style: styles.searchField },
										React.createElement('span', { style: styles.searchFieldLabel }, '审批状态'),
										React.createElement('div', { style: styles.searchFieldControl },
											React.createElement('select', {
												style: Object.assign({}, styles.select, { width: '100%', minWidth: 0 }),
												value: filterApprovalStatus,
												onChange: function (e) { setFilterApprovalStatus(e.target.value); }
											}, React.createElement('option', { value: '' }, '全部'), APPROVAL_STATUS.map(function (s) { return React.createElement('option', { key: s.value, value: s.value }, s.label); }))
										)
									)
								)
							),
							React.createElement('div', { style: styles.searchDivider }),
							React.createElement('div', { style: styles.searchActions },
								React.createElement('button', {
									style: Object.assign({}, styles.btn, styles.btnPrimary, styles.btnFixed),
									onClick: function () {
										setAppliedFilters({
											filterDateStart: filterDateStart,
											filterDateEnd: filterDateEnd,
											filterOperator: filterOperator,
											filterReceiveDateStart: filterReceiveDateStart,
											filterReceiveDateEnd: filterReceiveDateEnd,
											filterReceiver: filterReceiver,
											filterPlateNo: filterPlateNo,
											filterDepartProvince: filterDepartProvince,
											filterDepartCity: filterDepartCity,
											filterTransferProvince: filterTransferProvince,
											filterTransferCity: filterTransferCity,
											filterMethod: filterMethod,
											filterApprovalStatus: filterApprovalStatus
										});
										setCurrentPage(1);
										setToastMessage('查询成功');
										setTimeout(function () { setToastMessage(''); }, 1500);
									}
								}, '查询'),
								React.createElement('button', {
									style: Object.assign({}, styles.btn, styles.btnDefault, styles.btnFixed),
									onClick: function () {
										setFilterDateStart(''); setFilterDateEnd(''); setFilterReceiveDateStart(''); setFilterReceiveDateEnd(''); setFilterOperator(''); setFilterReceiver(''); setFilterPlateNo('');
										setFilterDepartProvince(''); setFilterDepartCity(''); setFilterTransferProvince(''); setFilterTransferCity('');
										setFilterMethod(''); setFilterApprovalStatus('');
										setAppliedFilters({});
										setCurrentPage(1);
									}
								}, '重置')
							)
						)
					),
					React.createElement('div', { style: styles.tabs },
						React.createElement('div', { style: Object.assign({}, styles.tab, listTab === 'in_progress' ? styles.tabActive : {}), onClick: function () { setListTab('in_progress'); setCurrentPage(1); setSelectedRowIds([]); } }, '进行中'),
						React.createElement('div', { style: Object.assign({}, styles.tab, listTab === 'history' ? styles.tabActive : {}), onClick: function () { setListTab('history'); setCurrentPage(1); setSelectedRowIds([]); } }, '历史记录')
					),
					React.createElement('div', { style: styles.toolbar },
						listTab === 'in_progress' && React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnPrimary, styles.btnFixed), onClick: function () { setAddFormData(defaultAddForm); setAddFormLines([createEmptyAddLine()]); setCurrentView('add'); } }, '新增'),
						React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault, styles.btnFixed), onClick: function () { setToastMessage(selectedRowIds.length ? '导出' + selectedRowIds.length + '条' : '请先勾选要导出的数据'); setTimeout(function () { setToastMessage(''); }, 2000); } }, '导出')
					),
					React.createElement('div', { style: styles.tableWrap },
						React.createElement('table', { style: styles.table },
							React.createElement('thead', {},
								React.createElement('tr', {},
									listTab === 'in_progress' ? React.createElement(React.Fragment, {},
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap, { width: '32px' }) }, React.createElement('input', { type: 'checkbox', checked: paginatedList.length > 0 && selectedRowIds.length === paginatedList.length, onChange: function (e) { setSelectedRowIds(e.target.checked ? paginatedList.map(function (r) { return r.rowId; }) : []); } })),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '调拨日期'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发区域'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '调拨人'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收区域'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '调拨方式'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '调拨原因'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '车牌号'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '车辆类型'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '品牌'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '型号'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '运输方名称'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '运输方联系方式'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发里程(KM)'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发氢量'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发电量'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发停车场'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '创建日期'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap, styles.thStickyRight) }, '操作')
									) : React.createElement(React.Fragment, {},
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap, { width: '32px' }) }, React.createElement('input', { type: 'checkbox', checked: paginatedList.length > 0 && selectedRowIds.length === paginatedList.length, onChange: function (e) { setSelectedRowIds(e.target.checked ? paginatedList.map(function (r) { return r.rowId; }) : []); } })),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '调拨日期'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发区域'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '调拨人'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收日期'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收区域'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '调拨方式'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '调拨原因'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收人'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '车牌号'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '车辆类型'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '品牌'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '型号'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '运输方名称'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '运输方联系方式'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发里程(KM)'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收里程(KM)'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发氢量'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收氢量'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发电量'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收电量'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '出发停车场'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '接收停车场'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap) }, '创建日期'),
										React.createElement('th', { style: Object.assign({}, styles.th, styles.thNowrap, styles.thStickyRight) }, '操作')
									)
								)
							),
							React.createElement('tbody', {},
								paginatedList.length === 0
									? React.createElement('tr', {}, React.createElement('td', { colSpan: listTab === 'in_progress' ? 19 : 25, style: Object.assign({}, styles.td, { textAlign: 'center', color: t.neutral6 }) }, '暂无数据'))
									: paginatedList.map(function (row, rowIndex) {
										var tr = row.transfer;
										var line = row.line;
										var canReceive = tr.approvalStatus === 'completed' && !tr.hasReceiveRecord;
										var canEdit = ['pending_submit', 'rejected', 'withdrawn'].indexOf(tr.approvalStatus) >= 0;
										var canWithdraw = tr.approvalStatus === 'approving';
										var checked = selectedRowIds.indexOf(row.rowId) >= 0;
										var isEvenRow = rowIndex % 2 === 1;
										var tdOneLine = Object.assign({}, styles.td, styles.tdNowrap);
										return React.createElement('tr', { key: row.rowId, style: isEvenRow ? styles.trStripe : styles.trOdd },
											React.createElement('td', { style: tdOneLine }, React.createElement('input', { type: 'checkbox', checked: checked, onChange: function (e) { setSelectedRowIds(e.target.checked ? selectedRowIds.concat([row.rowId]) : selectedRowIds.filter(function (id) { return id !== row.rowId; })); } })),
											listTab === 'in_progress' ? React.createElement(React.Fragment, {},
												React.createElement('td', { style: tdOneLine }, tr.transferDate),
												React.createElement('td', { style: tdOneLine }, tr.departLabel || '-'),
												React.createElement('td', { style: tdOneLine }, tr.operatorName),
												React.createElement('td', { style: tdOneLine }, tr.transferLabel || '-'),
												React.createElement('td', { style: tdOneLine }, getMethodLabel(tr.transferMethod)),
												React.createElement('td', { style: tdOneLine }, tr.transferReason || '-'),
												React.createElement('td', { style: tdOneLine }, line.plateNo || '-'),
												React.createElement('td', { style: tdOneLine }, line.vehicleType || '-'),
												React.createElement('td', { style: tdOneLine }, line.brand || '-'),
												React.createElement('td', { style: tdOneLine }, line.model || '-'),
												React.createElement('td', { style: carrierInfoTdStyle }, tr.carrierName || '-'),
												React.createElement('td', { style: carrierInfoTdStyle }, tr.carrierContact || '-'),
												React.createElement('td', { style: tdOneLine }, line.departMileage != null ? line.departMileage : '-'),
												React.createElement('td', { style: tdOneLine }, formatH2(line.departH2, line.departH2Unit)),
												React.createElement('td', { style: tdOneLine }, line.departElec != null ? line.departElec + ' kWh' : '-'),
												React.createElement('td', { style: tdOneLine }, line.departParking || '-'),
												React.createElement('td', { style: tdOneLine }, tr.createTime),
												React.createElement('td', { style: Object.assign({}, tdOneLine, isEvenRow ? styles.tdStickyRightStripe : styles.tdStickyRight) },
													canReceive && React.createElement('a', { style: styles.actionLink, onClick: function (e) {
						e.preventDefault();
						setViewRecord(tr);
						setFormDataFromTransfer(tr);
						setReceiveFormData({
							receiveDate: '',
							receiverName: '张明',
							lines: (tr.lines || []).map(function (l) {
								return {
									plateNo: l.plateNo,
									vehicleType: l.vehicleType,
									brand: l.brand,
									model: l.model,
									departParking: l.departParking,
									departMileage: l.departMileage,
									departH2: l.departH2,
									departH2Unit: l.departH2Unit,
									departElec: l.departElec,
									receiveMileage: l.receiveMileage != null ? l.receiveMileage : '',
									receiveH2: l.receiveH2 != null ? l.receiveH2 : '',
									receiveElec: l.receiveElec != null ? l.receiveElec : ''
								};
							})
						});
						setCurrentView('receive');
					} }, '接收记录'),
													canEdit && React.createElement('a', { style: styles.actionLink, onClick: function (e) { e.preventDefault(); openEdit(tr); } }, '编辑'),
													canWithdraw && React.createElement('a', { style: styles.actionLink, onClick: function (e) { e.preventDefault(); setWithdrawConfirmRecord(tr); } }, '撤回')
												)
											) : React.createElement(React.Fragment, {},
												React.createElement('td', { style: tdOneLine }, tr.transferDate),
												React.createElement('td', { style: tdOneLine }, tr.departLabel || '-'),
												React.createElement('td', { style: tdOneLine }, tr.operatorName),
												React.createElement('td', { style: tdOneLine }, tr.receiveDate || '-'),
												React.createElement('td', { style: tdOneLine }, tr.transferLabel || '-'),
												React.createElement('td', { style: tdOneLine }, getMethodLabel(tr.transferMethod)),
												React.createElement('td', { style: tdOneLine }, tr.transferReason || '-'),
												React.createElement('td', { style: tdOneLine }, tr.receiverName || '-'),
												React.createElement('td', { style: tdOneLine }, line.plateNo || '-'),
												React.createElement('td', { style: tdOneLine }, line.vehicleType || '-'),
												React.createElement('td', { style: tdOneLine }, line.brand || '-'),
												React.createElement('td', { style: tdOneLine }, line.model || '-'),
												React.createElement('td', { style: carrierInfoTdStyle }, tr.carrierName || '-'),
												React.createElement('td', { style: carrierInfoTdStyle }, tr.carrierContact || '-'),
												React.createElement('td', { style: tdOneLine }, line.departMileage != null ? line.departMileage : '-'),
												React.createElement('td', { style: tdOneLine }, line.receiveMileage != null ? line.receiveMileage : '-'),
												React.createElement('td', { style: tdOneLine }, formatH2(line.departH2, line.departH2Unit)),
												React.createElement('td', { style: tdOneLine }, formatH2(line.receiveH2, line.departH2Unit)),
												React.createElement('td', { style: tdOneLine }, line.departElec != null ? line.departElec + ' kWh' : '-'),
												React.createElement('td', { style: tdOneLine }, line.receiveElec != null ? line.receiveElec + ' kWh' : '-'),
												React.createElement('td', { style: tdOneLine }, line.departParking || '-'),
												React.createElement('td', { style: tdOneLine }, line.receiveParking || '-'),
												React.createElement('td', { style: tdOneLine }, tr.createTime),
												React.createElement('td', { style: Object.assign({}, tdOneLine, isEvenRow ? styles.tdStickyRightStripe : styles.tdStickyRight) }, React.createElement('a', { style: styles.actionLink, onClick: function (e) { e.preventDefault(); setViewRecord(tr); setFormDataFromTransfer(tr); setCurrentView('view'); } }, '查看'))
											)
										);
									})
							)
						)
					),
					totalItems > 0 && React.createElement('div', { style: styles.pagination },
						React.createElement('div', { style: styles.paginationLeft },
							React.createElement('span', {}, '共 ' + totalItems + ' 条'),
							React.createElement('span', { style: { marginLeft: '16px' } }, '每页'),
							React.createElement('select', { style: styles.paginationSelect, value: pageSize, onChange: function (e) { setPageSize(Number(e.target.value)); setCurrentPage(1); } },
								React.createElement('option', { value: 10 }, '10'),
								React.createElement('option', { value: 20 }, '20'),
								React.createElement('option', { value: 50 }, '50'),
								React.createElement('option', { value: 100 }, '100')
							),
							React.createElement('span', {}, '条')
						),
						React.createElement('div', { style: styles.paginationRight },
							React.createElement('button', { style: Object.assign({}, styles.paginationBtn, currentPage <= 1 ? styles.paginationBtnDisabled : {}), disabled: currentPage <= 1, onClick: function () { if (currentPage > 1) setCurrentPage(currentPage - 1); } }, '上一页'),
							React.createElement('span', { style: { margin: '0 8px' } }, currentPage + ' / ' + totalPages),
							React.createElement('button', { style: Object.assign({}, styles.paginationBtn, currentPage >= totalPages ? styles.paginationBtnDisabled : {}), disabled: currentPage >= totalPages, onClick: function () { if (currentPage < totalPages) setCurrentPage(currentPage + 1); } }, '下一页')
						)
					)
				)
			),

			currentView === 'add' && React.createElement(React.Fragment, {},
				React.createElement('div', { style: { marginBottom: t.spacing16, fontSize: t.fontSize16, fontWeight: 600, color: t.neutral8 } }, '新增调拨'),
				renderAddPage()
			),
			currentView === 'edit' && React.createElement(React.Fragment, {},
				React.createElement('div', { style: { marginBottom: t.spacing16, fontSize: t.fontSize16, fontWeight: 600, color: t.neutral8 } }, '编辑调拨'),
				renderEditPage()
			),

			withdrawConfirmRecord && React.createElement('div', { style: styles.modalMask, onClick: function () { setWithdrawConfirmRecord(null); } },
				React.createElement('div', { style: Object.assign({}, styles.modalBox, { minWidth: '360px' }), onClick: function (e) { e.stopPropagation(); } },
					React.createElement('div', { style: styles.modalTitle }, '确认撤回'),
					React.createElement('p', { style: { margin: '0 0 16px', fontSize: t.fontSize14 } }, '是否确认撤回该调拨记录？'),
					React.createElement('div', { style: styles.modalFooter },
						React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), onClick: function () { setWithdrawConfirmRecord(null); } }, '取消'),
						React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnPrimary), onClick: function () { handleWithdraw(withdrawConfirmRecord); } }, '确认')
					)
				)
			),

			currentView === 'view' && viewRecord && renderViewPage(viewRecord),

			currentView === 'receive' && viewRecord && React.createElement('div', { style: styles.card },
				React.createElement('div', { style: styles.modalTitle }, '接收记录'),
				renderFormContent(true, true),
				React.createElement('div', { style: styles.formRow },
					React.createElement('label', { style: styles.formLabel }, '接收日期', React.createElement('span', { style: styles.formLabelReq }, '*')),
					React.createElement('input', { style: styles.input, type: 'date', value: receiveFormData.receiveDate, onChange: function (e) { setReceiveFormData(Object.assign({}, receiveFormData, { receiveDate: e.target.value })); } })
				),
				React.createElement('div', { style: Object.assign({}, styles.formRow, { marginTop: t.spacing24 }) },
					React.createElement('div', { style: styles.tableWrap },
						React.createElement('table', { style: styles.table },
							React.createElement('thead', {},
								React.createElement('tr', {},
									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('th', { style: styles.th }, '出发停车场'),
									React.createElement('th', { style: styles.th }, '出发里程(KM)'),
									React.createElement('th', { style: styles.th }, '接收里程(KM)', React.createElement('span', { style: styles.formLabelReq }, '*')),
									React.createElement('th', { style: styles.th }, '出发氢量'),
									React.createElement('th', { style: styles.th }, '接收氢量', React.createElement('span', { style: styles.formLabelReq }, '*')),
									React.createElement('th', { style: styles.th }, '出发电量'),
									React.createElement('th', { style: styles.th }, '接收电量', React.createElement('span', { style: styles.formLabelReq }, '*'))
								)
							),
							React.createElement('tbody', {},
								(receiveFormData.lines || []).map(function (line, idx) {
									var isEvenRow = idx % 2 === 1;
									return React.createElement('tr', { key: idx, style: isEvenRow ? styles.trStripe : styles.trOdd },
										React.createElement('td', { style: styles.td }, line.plateNo),
										React.createElement('td', { style: styles.td }, line.vehicleType),
										React.createElement('td', { style: styles.td }, line.brand),
										React.createElement('td', { style: styles.td }, line.model),
										React.createElement('td', { style: styles.td }, line.departParking),
										React.createElement('td', { style: styles.td }, line.departMileage != null ? line.departMileage : '-'),
										React.createElement('td', { style: styles.td }, React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), type: 'number', value: line.receiveMileage, onChange: function (e) { var next = receiveFormData.lines.slice(); next[idx] = Object.assign({}, next[idx], { receiveMileage: e.target.value }); setReceiveFormData(Object.assign({}, receiveFormData, { lines: next })); } })),
										React.createElement('td', { style: styles.td }, formatH2(line.departH2, line.departH2Unit)),
										React.createElement('td', { style: styles.td }, React.createElement(React.Fragment, {}, React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), value: line.receiveH2, onChange: function (e) { var next = receiveFormData.lines.slice(); next[idx] = Object.assign({}, next[idx], { receiveH2: e.target.value }); setReceiveFormData(Object.assign({}, receiveFormData, { lines: next })); } }), React.createElement('span', { style: { marginLeft: '4px' } }, (line.departH2Unit && !String(line.receiveH2 || '').match(/%|MPa|KG$/)) ? line.departH2Unit : ''))),
										React.createElement('td', { style: styles.td }, (line.departElec != null ? line.departElec : '-') + ' kWh'),
										React.createElement('td', { style: styles.td }, React.createElement('input', { style: Object.assign({}, styles.input, { width: '80px' }), type: 'number', value: line.receiveElec, onChange: function (e) { var next = receiveFormData.lines.slice(); next[idx] = Object.assign({}, next[idx], { receiveElec: e.target.value }); setReceiveFormData(Object.assign({}, receiveFormData, { lines: next })); } }))
									);
								})
							)
						)
					)
				),
				React.createElement('div', { style: styles.modalFooter },
					React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), onClick: function () { setViewRecord(null); setCurrentView('list'); } }, '取消'),
					React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnDefault), onClick: function () {
						if (!receiveFormData.receiveDate) { setToastMessage('请选择接收日期'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
						var recLines = receiveFormData.lines || [];
						for (var ri = 0; ri < recLines.length; ri++) {
							var fl = recLines[ri];
							var rn = ri + 1;
							if (fl.receiveMileage === '' || fl.receiveMileage === undefined || fl.receiveMileage === null) { setToastMessage('请填写第' + rn + '行接收里程（KM）'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
							if (fl.receiveH2 === '' || fl.receiveH2 === undefined || fl.receiveH2 === null) { setToastMessage('请填写第' + rn + '行接收氢量'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
							if (fl.receiveElec === '' || fl.receiveElec === undefined || fl.receiveElec === null) { setToastMessage('请填写第' + rn + '行接收电量'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
						}
						var updatedLines = (viewRecord.lines || []).map(function (l, i) {
							var formLine = (receiveFormData.lines || [])[i] || {};
							var next = {};
							for (var k in l) next[k] = l[k];
							next.receiveMileage = formLine.receiveMileage !== '' && formLine.receiveMileage !== undefined ? Number(formLine.receiveMileage) : null;
							next.receiveH2 = formLine.receiveH2 !== '' && formLine.receiveH2 !== undefined ? formLine.receiveH2 : null;
							next.receiveElec = formLine.receiveElec !== '' && formLine.receiveElec !== undefined ? Number(formLine.receiveElec) : null;
							next.receiveParking = '抵达停车场';
							next.receiverName = receiveFormData.receiverName;
							return next;
						});
						var updated = {};
						for (var k in viewRecord) updated[k] = viewRecord[k];
						updated.hasReceiveRecord = true;
						updated.receiveDate = receiveFormData.receiveDate;
						updated.receiverId = 'u1';
						updated.receiverName = receiveFormData.receiverName;
						updated.lines = updatedLines;
						setMockTransferList(mockTransferList.map(function (r) { return r.id === viewRecord.id ? updated : r; }));
						setViewRecord(updated);
						setToastMessage('保存成功');
						setTimeout(function () { setToastMessage(''); }, 2000);
					} }, '保存'),
					React.createElement('button', { style: Object.assign({}, styles.btn, styles.btnPrimary), onClick: function () {
						if (!receiveFormData.receiveDate) { setToastMessage('请选择接收日期'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
						var recLines2 = receiveFormData.lines || [];
						for (var ri2 = 0; ri2 < recLines2.length; ri2++) {
							var fl2 = recLines2[ri2];
							var rn2 = ri2 + 1;
							if (fl2.receiveMileage === '' || fl2.receiveMileage === undefined || fl2.receiveMileage === null) { setToastMessage('请填写第' + rn2 + '行接收里程（KM）'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
							if (fl2.receiveH2 === '' || fl2.receiveH2 === undefined || fl2.receiveH2 === null) { setToastMessage('请填写第' + rn2 + '行接收氢量'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
							if (fl2.receiveElec === '' || fl2.receiveElec === undefined || fl2.receiveElec === null) { setToastMessage('请填写第' + rn2 + '行接收电量'); setTimeout(function () { setToastMessage(''); }, 2000); return; }
						}
						var updatedLines = (viewRecord.lines || []).map(function (l, i) {
							var formLine = (receiveFormData.lines || [])[i] || {};
							var next = {};
							for (var k in l) next[k] = l[k];
							next.receiveMileage = formLine.receiveMileage !== '' && formLine.receiveMileage !== undefined ? Number(formLine.receiveMileage) : null;
							next.receiveH2 = formLine.receiveH2 !== '' && formLine.receiveH2 !== undefined ? formLine.receiveH2 : null;
							next.receiveElec = formLine.receiveElec !== '' && formLine.receiveElec !== undefined ? Number(formLine.receiveElec) : null;
							next.receiveParking = '抵达停车场';
							next.receiverName = receiveFormData.receiverName;
							return next;
						});
						var updated = {};
						for (var k in viewRecord) updated[k] = viewRecord[k];
						updated.hasReceiveRecord = true;
						updated.receiveDate = receiveFormData.receiveDate;
						updated.receiverId = 'u1';
						updated.receiverName = receiveFormData.receiverName;
						updated.lines = updatedLines;
						setMockTransferList(mockTransferList.map(function (r) { return r.id === viewRecord.id ? updated : r; }));
						setToastMessage('保存成功');
						setTimeout(function () { setToastMessage(''); }, 2000);
						setViewRecord(null);
						setCurrentView('list');
					} }, '提交')
				)
			),

			showRequirementModal && React.createElement('div', {
				style: styles.modalMask,
				onClick: function () { setShowRequirementModal(false); }
			}, React.createElement('div', {
				style: Object.assign({}, styles.modalBox, { minWidth: '640px', maxWidth: '800px' }),
				onClick: function (e) { e.stopPropagation(); }
			},
				React.createElement('button', {
					style: styles.modalCloseBtn,
					onClick: function () { setShowRequirementModal(false); },
					title: '关闭'
				}, '×'),
				React.createElement('div', { style: { paddingRight: '32px', paddingBottom: t.spacing24, lineHeight: '1.65', maxHeight: '85vh', overflowY: 'auto', fontSize: t.fontSize14, color: t.neutral7 } },
					React.createElement('div', { style: Object.assign({}, styles.requirementSection, { marginTop: 0 }) },
						React.createElement('div', { style: styles.requirementSectionTitle }, '面包屑'),
						React.createElement('div', { style: styles.requirementItem }, '运维管理-车辆业务-调拨管理')
					),
					React.createElement('div', { style: styles.requirementSection },
						React.createElement('div', { style: styles.requirementSectionTitle }, '筛选'),
						React.createElement('div', { style: styles.requirementItem }, '1.调拨日期：日期选择器，支持选择开始-结束时间'),
						React.createElement('div', { style: styles.requirementItem }, '2.调拨人：选择器，支持从输入框输入内容模糊搜索'),
						React.createElement('div', { style: styles.requirementItem }, '3.接收日期：日期选择器，支持选择开始-结束时间'),
						React.createElement('div', { style: styles.requirementItem }, '4.接收人：选择器，支持从输入框输入内容模糊搜索'),
						React.createElement('div', { style: styles.requirementItem }, '5.车牌号：选择器，支持从输入框输入内容模糊搜索'),
						React.createElement('div', { style: styles.requirementItem }, '6.出发区域：级联选择，支持省市二级级联'),
						React.createElement('div', { style: styles.requirementItem }, '7.调拨区域：级联选择，支持省市二级级联'),
						React.createElement('div', { style: styles.requirementItem }, '8.调拨方式：选择器，状态分为：第三方运输、司机驾驶'),
						React.createElement('div', { style: styles.requirementItem }, '9.审批状态：选择器，状态分为：待提交、待审批、审批中、审批完成、审批驳回、撤回'),
						React.createElement('div', { style: Object.assign({}, styles.requirementItem, { marginTop: t.spacing8, marginBottom: t.spacing4 }) }, '审批状态说明（该说明只做需求说明，AI无需分析）：'),
						React.createElement('div', { style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24 }) },
							React.createElement('div', { style: { marginBottom: '2px' } }, 'a.待提交：新增完成后选择保存，但未提交审核；'),
							React.createElement('div', { style: { marginBottom: '2px' } }, 'b.待审批：已提交审核，但未通过第一个流程节点审核；'),
							React.createElement('div', { style: { marginBottom: '2px' } }, 'c.审批中：已提交审核，至少完成1个以上节点审核，但未完成最终节点审核；'),
							React.createElement('div', { style: { marginBottom: '2px' } }, 'd.审批完成：已提交审核，并完成最终节点审核；'),
							React.createElement('div', { style: { marginBottom: '2px' } }, 'e.审批驳回：已提交审核，但任意节点审核未通过，审批驳回的记录支持修改后重新提交审核；'),
							React.createElement('div', {}, 'f.撤回：已提交审核，但完成最终审核前主动撤回，撤回的记录支持修改后重新提交审核；')
						)
					),
					React.createElement('div', { style: styles.requirementSection },
						React.createElement('div', { style: styles.requirementSectionTitle }, '列表'),
						React.createElement('div', { style: styles.requirementItem }, '列表由两个tab页组成，分别为：进行中、历史记录；'),
						React.createElement('div', { style: Object.assign({}, styles.requirementItem, { marginTop: t.spacing12, marginBottom: t.spacing4 }) }, 'a.进行中tab：显示审批状态为待提交、待审批、审批完成、审核驳回、撤回的记录以及未补充接收记录的数据：'),
						React.createElement('div', { style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24, marginBottom: t.spacing8 }) }, '列表上方右侧为新增、导出（支持多选）按钮，下方为分页功能，支持选择单页显示多少条数据记录，显示字段按以下顺序'),
						[ '1.调拨日期：新建调拨记录时填写的调拨日期，格式为YYYY-MM-DD', '2.出发区域：显示该车辆出发时区域', '3.调拨人：新建调拨记录的操作人', '4.接收区域：新建调拨记录时填写的接收区域', '5.调拨方式：新建调拨记录时选择的状态', '6.调拨原因：新建调拨记录时输入的调拨原因', '7.运输方名称：新建调拨记录时输入的运输方名称', '8.运输方联系方式：新建调拨记录时输入的运输方联系方式', '9.车牌号：新建调拨记录时填写的车牌号，每个车牌号形成一条单独记录；', '10.车辆类型：根据车牌号自动反写车辆类型', '11.品牌：根据车牌号自动反写品牌', '12.型号：根据车牌号自动反写型号', '13.运输方信息：新建调拨记录时手动输入的运输方名称及联系方式，在列表中显示为两行，上方为运输方名称，下方为联系方式', '14.出发里程（KM）:新建调拨记录时填写的出发里程', '15.出发氢量：新建调拨记录时填写的出发氢量，单位根据车辆型号对应氢气计量单位自动匹配，分为%、MPa、KG，分别给出一些样例', '16.出发电量：新建调拨记录时填写的出发电量，单位为kWh', '17.出发停车场：新建调拨记录时该车辆出发时的停车场', '18.创建日期：显示该记录创建日期', '19.操作：接收记录、编辑、撤回；操作记录说明如下' ].map(function (txt, i) { return React.createElement('div', { key: i, style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24, marginBottom: '2px' }) }, txt); }),
						React.createElement('div', { style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24 }) },
							React.createElement('div', { style: { marginBottom: '2px' } }, 'a.接收记录：点击后与新增页样式和字段相同，但只有接收日期、抵达里程（KM）、抵达氢量、抵达电量、接收停车场等字段可以操作，仅审核状态为审核完成时显示该功能'),
							React.createElement('div', { style: { marginBottom: '2px' } }, 'b.编辑：审核状态为待提交、审批驳回、撤回的数据可进行编辑，其他审核状态不显示编辑，点击编辑后页面与新增页样式相同所有字段可编辑；'),
							React.createElement('div', {}, 'c.撤回：点击弹出框进行二次确认，点击弹出框确认按钮toast提示撤回成功，点击弹出框取消按钮，关闭弹出框；仅在审批状态为审批中可撤回，如审批状态为已完成则不显示撤回；')
						),
						React.createElement('div', { style: Object.assign({}, styles.requirementItem, { marginTop: t.spacing16, marginBottom: t.spacing4 }) }, 'b.历史记录tab：'),
						React.createElement('div', { style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24, marginBottom: t.spacing8 }) }, '显示审批状态为审核完成以及完成补充接收记录的数据：列表上方右侧为导出（支持多选）按钮，下方为分页功能，支持选择单页显示多少条数据记录'),
						[ '1.调拨日期：新建调拨记录时填写的调拨日期，格式为YYYY-MM-DD', '2.出发区域：显示该车辆出发时区域', '3.调拨人：新建调拨记录的操作人', '4.接收日期：补充接收记录时填写的接收日期，格式为YYYY-MM-DD', '5.接收区域：新建调拨记录时填写的接收区域', '6.调拨方式：新建调拨记录时选择的状态', '7.调拨原因：新建调拨记录时输入的调拨原因', '8.运输方名称：新建调拨记录时输入的运输方名称', '9.运输方联系方式：新建调拨记录时输入的运输方联系方式', '10.接收人：补充接收记录时的操作人', '11.车牌号：新建调拨记录时填写的车牌号，每个车牌号形成一条单独记录；', '12.车辆类型：根据车牌号自动反写车辆类型', '13.品牌：根据车牌号自动反写品牌', '14.型号：根据车牌号自动反写型号', '15.运输方信息：新建调拨记录时手动输入的运输方名称及联系方式，在列表中显示为两行，上方为运输方名称，下方为联系方式', '16.出发里程（KM）:新建调拨记录时填写的出发里程', '17.接收里程（KM）：补充接收记录时填写的抵达里程', '18.出发氢量：新建调拨记录时填写的出发氢量，单位根据车辆型号对应氢气计量单位自动匹配，分为%、MPa、KG，分别给出一些样例', '19.接收氢量：补充接收记录时填写的抵达氢量，单位根据车辆型号对应氢气计量单位自动匹配，分为%、MPa、KG，分别给出一些样例', '20.出发电量：新建调拨记录时填写的出发电量，单位为kWh', '21.接收电量：补充接收记录时填写的抵达电量，单位为kWh', '22.出发停车场：新建调拨记录时该车辆出发时的停车场', '23.接收停车场：补充接收记录时该车辆抵达场', '24.创建日期：显示该记录创建日期', '25.操作：查看；操作记录说明如下' ].map(function (txt, i) { return React.createElement('div', { key: i, style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24, marginBottom: '2px' }) }, txt); }),
						React.createElement('div', { style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24 }) }, 'a.查看：与接收记录页所有字段和布局相同，但所有字段控件均为禁用状态；')
					),
					React.createElement('div', { style: styles.requirementSection },
						React.createElement('div', { style: styles.requirementSectionTitle }, '新增'),
						React.createElement('div', { style: styles.requirementItem }, '点击新增按钮以打开新页面的方式进行操作。'),
						React.createElement('div', { style: styles.requirementItem }, '页面分为上下两部分组成，上方以3列布局，显示以下字段：'),
						[ '1.调拨日期：必填项，日期选择器，格式为YYYY-MM-DD', '2.出发区域：必填项，级联选择器，显示格式为：省-市', '3.接受区域：必填项，级联选择器，显示格式为：省-市', '4.调拨方式：必填项，按钮式选择器，选项分别为第三方运输、司机驾驶', '5.调拨原因：必填项，文本域', '6.运输方名称：必填项，输入框，输入框提示信息为请输入运输方名称或司机姓名', '7.运输方联系方式：必填项，输入框，输入框提示信息为请输入运输方联系方式' ].map(function (txt, i) { return React.createElement('div', { key: i, style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24 }) }, txt); }),
						React.createElement('div', { style: Object.assign({}, styles.requirementItem, { marginTop: t.spacing8 }) }, '页面下方以可编辑列表方式显示以下字段，默认显示一行数据，列表下方为新增一行按钮，点击新增一行数据'),
						[ '1.车牌号：选择器，输入框支持模糊搜索，只能选择状态为库存的车辆', '2.车辆类型：直接显示内容，根据车牌号自动反写车辆类型', '3.品牌：直接显示内容，根据车牌号自动反写品牌', '4.型号：直接显示内容，根据车牌号自动反写型号', '5.出发停车场：直接显示内容，根据车牌号当前停车场自动反写', '6.出发里程（KM）：输入框', '7.出发氢量：输入框，后缀为单位，单位根据该车辆型号参数内氢系统仪表盘单位字段自动反写单位，如未设置则不显示后缀单位', '8.出发电量：输入框，后缀为单位，单位为kWh', '9.操作：删除，点击后删除该行数据' ].map(function (txt, i) { return React.createElement('div', { key: i, style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24 }) }, txt); }),
						React.createElement('div', { style: Object.assign({}, styles.requirementItem, { marginTop: t.spacing8 }) }, '页面最下方为提交审核、保存、取消按钮'),
						React.createElement('div', { style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24 }) }, '点击提交审核提交并转入调拨审核流程；点击保存，保存数据但不提交审核；点击取消，跳转回调拨列表页')
					),
					React.createElement('div', { style: styles.requirementSection },
						React.createElement('div', { style: styles.requirementSectionTitle }, '接收记录'),
						React.createElement('div', { style: styles.requirementItem }, '上方显示新增页所有字段和布局，但所有组件为禁用状态，除此外新增一个可编辑字段'),
						React.createElement('div', { style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24 }) }, '1.接收日期：必填项，日期选择器，格式为YYYY-MM-DD'),
						React.createElement('div', { style: Object.assign({}, styles.requirementItem, { marginTop: t.spacing8 }) }, '页面下方以可编辑列表方式显示以下字段'),
						[ '2.车牌号：文字方式显示新增时记录的车牌号', '3.车辆类型：文字方式显示新增时记录的车牌号对应车辆类型', '4.品牌：文字方式显示新增时记录的车牌号对应品牌', '5.型号：文字方式显示新增时记录的车牌号对应型号', '6.出发停车场：文字方式显示新增时记录的车牌号对应停车场', '7.出发里程（KM）：文字方式显示新增时记录的出发里程', '8.接收里程（KM）：输入框', '9.出发氢量：文字显示新增时记录的车牌号对应出发氢量，并显示单位', '10.接收氢量：输入框，后缀为单位，单位根据车辆型号对应氢气计量单位自动匹配，分为%、MPa、KG', '11.出发电量：文字显示新增时记录的车牌号对应出发电量，单位为kWh', '12.接收电量：输入框，后缀为单位，单位为kWh' ].map(function (txt, i) { return React.createElement('div', { key: i, style: Object.assign({}, styles.requirementSubItem, { paddingLeft: t.spacing24 }) }, txt); })
					),
					React.createElement('div', { style: styles.requirementSection },
						React.createElement('div', { style: styles.requirementSectionTitle }, '导出'),
						React.createElement('div', { style: styles.requirementItem }, '支持选择器选择对应数据进行导出')
					)
				)
			)),

			toastMessage && React.createElement('div', { style: styles.toast }, toastMessage)
		)
	);
};

if (typeof window !== 'undefined') {
	window.Component = Component;
	function mount() {
		var rootEl = document.getElementById('root');
		if (rootEl && window.ReactDOM && window.React) {
			var root = ReactDOM.createRoot(rootEl);
			root.render(React.createElement(Component));
		}
	}
	if (document.readyState === 'loading') {
		document.addEventListener('DOMContentLoaded', mount);
	} else {
		setTimeout(mount, 0);
	}
}
