200 lines
4.5 KiB
JavaScript
200 lines
4.5 KiB
JavaScript
/** 登记未用完物料 · Demo 模拟数据 */
|
|
const DEMO_UNUSED_LINES = [
|
|
{
|
|
id: 1,
|
|
fromBatch: true,
|
|
stockInNo: 'RK202506001',
|
|
stockInDate: '2025-06-01',
|
|
expireDate: '2026-12-31',
|
|
materialCode: 'QC-M-001',
|
|
materialName: '胎牛血清 FBS',
|
|
specModel: '500ml/瓶',
|
|
unit: '瓶',
|
|
catalogNo: 'SH30071.03',
|
|
batchNo: 'A241205',
|
|
manufacturer: 'HyClone',
|
|
unitPrice: 1280,
|
|
unusedQty: 2,
|
|
holder: '张三',
|
|
remark: ''
|
|
},
|
|
{
|
|
id: 2,
|
|
fromBatch: true,
|
|
stockInNo: 'RK202506008',
|
|
stockInDate: '2025-06-03',
|
|
expireDate: '2026-08-15',
|
|
materialCode: 'QC-M-012',
|
|
materialName: 'DMEM 高糖培养基',
|
|
specModel: '500ml',
|
|
unit: '瓶',
|
|
catalogNo: 'C11995500BT',
|
|
batchNo: 'B250301',
|
|
manufacturer: 'Gibco',
|
|
unitPrice: 86.5,
|
|
unusedQty: 5,
|
|
holder: '李四',
|
|
remark: '4℃ 存放'
|
|
},
|
|
{
|
|
id: 3,
|
|
fromBatch: true,
|
|
stockInNo: 'RK202506015',
|
|
stockInDate: '2025-06-05',
|
|
expireDate: '2027-01-20',
|
|
materialCode: 'QC-M-028',
|
|
materialName: '青霉素-链霉素双抗',
|
|
specModel: '100ml',
|
|
unit: '瓶',
|
|
catalogNo: '15140122',
|
|
batchNo: 'PS24088',
|
|
manufacturer: 'Thermo',
|
|
unitPrice: 245,
|
|
unusedQty: 1,
|
|
holder: '王五',
|
|
remark: ''
|
|
},
|
|
{
|
|
id: 4,
|
|
fromBatch: true,
|
|
stockInNo: 'RK202506022',
|
|
stockInDate: '2025-06-08',
|
|
expireDate: '2026-05-30',
|
|
materialCode: 'QC-M-045',
|
|
materialName: '0.25% 胰酶-EDTA',
|
|
specModel: '100ml',
|
|
unit: '瓶',
|
|
catalogNo: '25200072',
|
|
batchNo: 'T241102',
|
|
manufacturer: 'Gibco',
|
|
unitPrice: 168,
|
|
unusedQty: 3,
|
|
holder: '赵六',
|
|
remark: ''
|
|
},
|
|
{
|
|
id: 5,
|
|
fromBatch: true,
|
|
stockInNo: 'RK202506031',
|
|
stockInDate: '2025-06-10',
|
|
expireDate: '2026-11-01',
|
|
materialCode: 'QC-M-067',
|
|
materialName: 'PBS 缓冲液',
|
|
specModel: '500ml',
|
|
unit: '瓶',
|
|
catalogNo: '10010023',
|
|
batchNo: 'P250115',
|
|
manufacturer: 'HyClone',
|
|
unitPrice: 32,
|
|
unusedQty: 8,
|
|
holder: '张三',
|
|
remark: ''
|
|
},
|
|
{
|
|
id: 6,
|
|
fromBatch: false,
|
|
stockInNo: '',
|
|
stockInDate: '',
|
|
expireDate: '',
|
|
materialCode: '',
|
|
materialName: '细胞冻存液 DMSO 配方',
|
|
specModel: '50ml',
|
|
unit: '瓶',
|
|
catalogNo: '',
|
|
batchNo: '手工-001',
|
|
manufacturer: '自配',
|
|
unitPrice: 0,
|
|
unusedQty: 2,
|
|
holder: '李四',
|
|
remark: '非系统批次'
|
|
},
|
|
{
|
|
id: 7,
|
|
fromBatch: true,
|
|
stockInNo: 'RK202506044',
|
|
stockInDate: '2025-06-12',
|
|
expireDate: '2026-09-20',
|
|
materialCode: 'QC-M-089',
|
|
materialName: '细胞计数板',
|
|
specModel: '一次性',
|
|
unit: '盒',
|
|
catalogNo: 'C-Chip DHC-N01',
|
|
batchNo: 'CC250601',
|
|
manufacturer: 'NanoEntek',
|
|
unitPrice: 420,
|
|
unusedQty: 1,
|
|
holder: '王五',
|
|
remark: ''
|
|
},
|
|
{
|
|
id: 8,
|
|
fromBatch: true,
|
|
stockInNo: 'RK202506051',
|
|
stockInDate: '2025-06-14',
|
|
expireDate: '2026-06-14',
|
|
materialCode: 'QC-M-102',
|
|
materialName: '无血清培养添加物',
|
|
specModel: '10ml',
|
|
unit: '支',
|
|
catalogNo: 'A1349801',
|
|
batchNo: 'S241208',
|
|
manufacturer: 'Gibco',
|
|
unitPrice: 890,
|
|
unusedQty: 4,
|
|
holder: '赵六',
|
|
remark: ''
|
|
},
|
|
{
|
|
id: 9,
|
|
fromBatch: true,
|
|
stockInNo: 'RK202506058',
|
|
stockInDate: '2025-06-15',
|
|
expireDate: '2027-03-10',
|
|
materialCode: 'QC-M-115',
|
|
materialName: '支原体检测试剂盒',
|
|
specModel: '20T',
|
|
unit: '盒',
|
|
catalogNo: 'MP00250',
|
|
batchNo: 'M250401',
|
|
manufacturer: 'Lonza',
|
|
unitPrice: 3200,
|
|
unusedQty: 1,
|
|
holder: '张三',
|
|
remark: '留样'
|
|
},
|
|
{
|
|
id: 10,
|
|
fromBatch: true,
|
|
stockInNo: 'RK202506063',
|
|
stockInDate: '2025-06-16',
|
|
expireDate: '2026-04-01',
|
|
materialCode: 'QC-M-128',
|
|
materialName: 'DAPI 染色液',
|
|
specModel: '1mg',
|
|
unit: '支',
|
|
catalogNo: 'D9542',
|
|
batchNo: 'D241015',
|
|
manufacturer: 'Sigma',
|
|
unitPrice: 156,
|
|
unusedQty: 2,
|
|
holder: '李四',
|
|
remark: ''
|
|
}
|
|
]
|
|
|
|
function formatMoney(v) {
|
|
if (v == null || v === '' || Number.isNaN(Number(v))) return '—'
|
|
return Number(v).toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 })
|
|
}
|
|
|
|
function calcAmount(unitPrice, qty) {
|
|
return (Number(unitPrice) || 0) * (Number(qty) || 0)
|
|
}
|
|
|
|
function materialSummary(row) {
|
|
const parts = [row.materialName]
|
|
if (row.batchNo) parts.push(`批号 ${row.batchNo}`)
|
|
if (row.stockInNo) parts.push(row.stockInNo)
|
|
return parts.join(' · ')
|
|
}
|