Land Token-based SCSS modules, menu/biz mocks, reusable shell components, and home plus list/detail/form/comps template pages aligned with the Vant Weapp UI demo. Co-authored-by: Cursor <cursoragent@cursor.com>
263 lines
6.7 KiB
JavaScript
263 lines
6.7 KiB
JavaScript
const listData = [
|
|
{
|
|
id: 1,
|
|
title: '脐带血采集协议-王女士',
|
|
code: 'XY20260810001',
|
|
typeLabel: '采集协议',
|
|
icon: 'orders-o',
|
|
owner: '李四',
|
|
time: '08-10 09:20',
|
|
amount: '12,800',
|
|
progress: '',
|
|
desc: '分期缴费 · 待财务确认首期款项',
|
|
status: '待处理',
|
|
tagType: 'warning',
|
|
hint: '需尽快确认',
|
|
customer: '王女士',
|
|
dept: '样本运营部',
|
|
createdAt: '2026-08-08 14:20',
|
|
stepActive: 1,
|
|
steps: ['建档', '缴费确认', '样本采集', '入库'],
|
|
payments: [
|
|
{
|
|
id: 'p1',
|
|
name: '第 1 期(首期)',
|
|
sub: '应缴 08-10 · 微信转账',
|
|
amount: '6,400',
|
|
status: '待确认',
|
|
tagType: 'warning'
|
|
},
|
|
{
|
|
id: 'p2',
|
|
name: '第 2 期',
|
|
sub: '应缴 09-10 · 未到期',
|
|
amount: '6,400',
|
|
status: '待缴费',
|
|
tagType: 'primary'
|
|
}
|
|
],
|
|
attachments: [
|
|
{ name: '协议扫描件.pdf', size: '2.4 MB', time: '08-08 14:18' },
|
|
{ name: '身份证明.jpg', size: '860 KB', time: '08-08 14:19' }
|
|
],
|
|
logs: [
|
|
{
|
|
title: '提交审批',
|
|
desc: '提交采集协议,等待财务确认首期',
|
|
time: '08-08 14:22',
|
|
tone: 'done',
|
|
actor: '李四',
|
|
icon: 'edit',
|
|
badge: '已完成'
|
|
},
|
|
{
|
|
title: '流转至财务',
|
|
desc: '系统自动分配至财务确认岗',
|
|
time: '08-08 14:23',
|
|
tone: 'done',
|
|
actor: '系统',
|
|
icon: 'cluster-o',
|
|
badge: '已完成'
|
|
},
|
|
{
|
|
title: '待确认缴费',
|
|
desc: '首期 ¥6,400 等待财务核对附件',
|
|
time: '08-10 09:20',
|
|
tone: 'warn',
|
|
actor: '财务岗',
|
|
icon: 'balance-list-o',
|
|
badge: '进行中'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 2,
|
|
title: '样本接收单-批次 A12',
|
|
code: 'YS20260809018',
|
|
typeLabel: '样本接收',
|
|
icon: 'logistics',
|
|
owner: '王五',
|
|
time: '08-09 16:40',
|
|
amount: '',
|
|
progress: '在途',
|
|
desc: '冷链在途 · 预计今日 18:00 前到达库房',
|
|
status: '进行中',
|
|
tagType: 'primary',
|
|
hint: '跟踪物流',
|
|
customer: '批次 A12',
|
|
dept: '仓储物流部',
|
|
createdAt: '2026-08-09 09:10',
|
|
stepActive: 2,
|
|
steps: ['发运', '在途', '到库签收', '入库'],
|
|
payments: [],
|
|
attachments: [{ name: '冷链温度记录.pdf', size: '1.1 MB', time: '08-09 11:28' }],
|
|
logs: [
|
|
{
|
|
title: '创建接收单',
|
|
desc: '创建样本接收单并绑定批次 A12',
|
|
time: '08-09 09:10',
|
|
tone: 'done',
|
|
actor: '王五',
|
|
icon: 'orders-o',
|
|
badge: '已完成'
|
|
},
|
|
{
|
|
title: '冷链发出',
|
|
desc: '承运方已取件,全程温控开启',
|
|
time: '08-09 11:30',
|
|
tone: 'done',
|
|
actor: '承运方',
|
|
icon: 'logistics',
|
|
badge: '已完成'
|
|
},
|
|
{
|
|
title: '运输中',
|
|
desc: '当前位置:城东中转站',
|
|
time: '08-09 16:40',
|
|
tone: 'warn',
|
|
actor: '物流跟踪',
|
|
icon: 'location-o',
|
|
badge: '进行中'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 3,
|
|
title: '质检工单-QC-8821',
|
|
code: 'ZJ20260808007',
|
|
typeLabel: '质检工单',
|
|
icon: 'certificate',
|
|
owner: '赵六',
|
|
time: '08-08 11:05',
|
|
amount: '',
|
|
progress: '阻塞',
|
|
desc: '检测结论待录入,阻塞下游入库流程',
|
|
status: '异常',
|
|
tagType: 'danger',
|
|
hint: '优先处理',
|
|
customer: '样本 S-8821',
|
|
dept: '质检中心',
|
|
createdAt: '2026-08-07 16:40',
|
|
stepActive: 1,
|
|
steps: ['取样', '检测', '结论录入', '关闭'],
|
|
payments: [],
|
|
attachments: [{ name: '初检原始数据.xlsx', size: '428 KB', time: '08-08 10:48' }],
|
|
logs: [
|
|
{
|
|
title: '工单创建',
|
|
desc: '系统根据接收单自动生成质检工单',
|
|
time: '08-07 16:40',
|
|
tone: 'done',
|
|
actor: '系统',
|
|
icon: 'add-o',
|
|
badge: '已完成'
|
|
},
|
|
{
|
|
title: '检测完成',
|
|
desc: '完成实验操作,待录入结论',
|
|
time: '08-08 10:50',
|
|
tone: 'done',
|
|
actor: '赵六',
|
|
icon: 'certificate',
|
|
badge: '已完成'
|
|
},
|
|
{
|
|
title: '异常挂起',
|
|
desc: '结论超时未录入,已阻塞入库',
|
|
time: '08-08 11:05',
|
|
tone: 'danger',
|
|
actor: '质控规则',
|
|
icon: 'warning-o',
|
|
badge: '异常'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 4,
|
|
title: '出库申请-库位 B-03',
|
|
code: 'CK20260807002',
|
|
typeLabel: '库位出库',
|
|
icon: 'send-gift-o',
|
|
owner: '张三',
|
|
time: '08-07 14:22',
|
|
amount: '',
|
|
progress: '完结',
|
|
desc: '复核已完成,可归档关闭',
|
|
status: '已完成',
|
|
tagType: 'success',
|
|
hint: '已完结',
|
|
customer: '库位 B-03',
|
|
dept: '仓储物流部',
|
|
createdAt: '2026-08-06 10:00',
|
|
stepActive: 3,
|
|
steps: ['申请', '复核', '出库', '归档'],
|
|
payments: [],
|
|
attachments: [{ name: '出库单签收.pdf', size: '980 KB', time: '08-07 14:18' }],
|
|
logs: [
|
|
{
|
|
title: '提交申请',
|
|
desc: '发起出库申请,指定库位 B-03',
|
|
time: '08-06 10:00',
|
|
tone: 'done',
|
|
actor: '张三',
|
|
icon: 'edit',
|
|
badge: '已完成'
|
|
},
|
|
{
|
|
title: '复核通过',
|
|
desc: '库管复核通过,允许出库',
|
|
time: '08-07 11:10',
|
|
tone: 'done',
|
|
actor: '库管',
|
|
icon: 'passed',
|
|
badge: '已完成'
|
|
},
|
|
{
|
|
title: '出库完成',
|
|
desc: '实物已交接,单据归档',
|
|
time: '08-07 14:22',
|
|
tone: 'done',
|
|
actor: '张三',
|
|
icon: 'checked',
|
|
badge: '已完成'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
|
|
export function getList() {
|
|
return listData.slice()
|
|
}
|
|
|
|
export function getById(id) {
|
|
const n = Number(id)
|
|
return listData.find((r) => r.id === n) || listData[0]
|
|
}
|
|
|
|
function rowsByTab(idx) {
|
|
if (idx === 1) return listData.filter((r) => r.status === '进行中')
|
|
if (idx === 2) return listData.filter((r) => r.status === '待处理')
|
|
if (idx === 3) return listData.filter((r) => r.status === '已完成')
|
|
return listData
|
|
}
|
|
|
|
export function tabCount(idx) {
|
|
return rowsByTab(idx).length
|
|
}
|
|
|
|
export function filterByTab(tabIndex, keyword) {
|
|
const kw = (keyword || '').trim()
|
|
let rows = rowsByTab(tabIndex)
|
|
if (!kw) return rows
|
|
return rows.filter(
|
|
(r) => r.title.includes(kw) || r.code.includes(kw) || r.owner.includes(kw)
|
|
)
|
|
}
|
|
|
|
export const LIST_TABS = [
|
|
{ key: 'all', label: '全部' },
|
|
{ key: 'doing', label: '进行中' },
|
|
{ key: 'pending', label: '待处理' },
|
|
{ key: 'done', label: '已完成' }
|
|
]
|