Files
zkxw/mobile-h5/utils/biz-mock.js
zlwuandCursor 8793fa07cc feat(mobile-h5): add styles, mocks, components, and demo pages
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>
2026-08-10 14:03:36 +08:00

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: '已完成' }
]