diff --git a/miniprogram/pages/db/api/db.js b/miniprogram/pages/db/api/db.js
new file mode 100644
index 000000000..62fb39ef4
--- /dev/null
+++ b/miniprogram/pages/db/api/db.js
@@ -0,0 +1,41 @@
+/**
+ * 地磅业务 API(对齐 mobile-h5)
+ */
+import db from '@/utils/dbRequest'
+
+export const dashboardApi = {
+ getInboundByCargo: () => db.get('/dashboard/inbound/by-cargo'),
+ getInboundByPartnerCargo: () => db.get('/dashboard/inbound/by-partner-cargo'),
+ getOutboundByCargo: () => db.get('/dashboard/outbound/by-cargo'),
+ getOutboundByPartnerCargo: () => db.get('/dashboard/outbound/by-partner-cargo')
+}
+
+export const planApi = {
+ list: (params) => db.get('/plans', params),
+ get: (id) => db.get(`/plans/${id}`),
+ getRelated: (id) => db.get(`/plans/${id}/related`),
+ create: (payload) => db.post('/plans', payload),
+ update: (id, payload) => db.patch(`/plans/${id}`, payload),
+ delete: (id) => db.del(`/plans/${id}`)
+}
+
+export const inventoryApi = {
+ list: (params) => db.get('/inventory', params),
+ get: (id) => db.get(`/inventory/${id}`),
+ getRelated: (id) => db.get(`/inventory/${id}/related`),
+ create: (payload) => db.post('/inventory', payload),
+ update: (id, payload) => db.patch(`/inventory/${id}`, payload),
+ delete: (id) => db.del(`/inventory/${id}`),
+ createLinkForPlan: (purchasePlanId, remarks) =>
+ db.post('/inventory/create-link-for-plan', { purchasePlanId, remarks })
+}
+
+export const weighingApi = {
+ list: (params) => db.get('/weighing', params),
+ get: (id) => db.get(`/weighing/${id}`),
+ getRelated: (id) => db.get(`/weighing/${id}/related`),
+ create: (payload) => db.post('/weighing', payload),
+ update: (id, payload) => db.patch(`/weighing/${id}`, payload),
+ void: (id) => db.post(`/weighing/${id}/void`),
+ delete: (id) => db.del(`/weighing/${id}`)
+}
diff --git a/miniprogram/pages/db/dashboard/index.vue b/miniprogram/pages/db/dashboard/index.vue
index 987277e1a..e3df5257d 100644
--- a/miniprogram/pages/db/dashboard/index.vue
+++ b/miniprogram/pages/db/dashboard/index.vue
@@ -1,134 +1,152 @@
+
+
+
+
+
+
+
+
+ 今日入库
+
+ {{ inboundCount }}车
+
+
+
+ 今日出库
+
+ {{ outboundCount }}车
+
+
+
+
+
+ {{ block.title }}
+ 暂无数据
+
+ {{ row.label }}
+
+
+
+
+ 计划 {{ fmt(row.planned) }} · 实绩 {{ fmt(row.actual) }}
+
+
+
+
+
-
-
-
-
-
-
- {{ stats.todayWeighing }}
- 今日过磅
-
-
- {{ stats.needSecond }}
- 待二次过磅
-
-
- {{ Number(stats.todayInbound).toFixed(0) }}
- 今日入库
-
-
- {{ Number(stats.todayOutbound).toFixed(0) }}
- 今日出库
-
-
-
-
-
-
-
- 地磅单管理
- 现场
-
- 查看过磅记录,办理二次过磅
-
-
-
- 地磅计划
- 计划
-
- 查看入/出库计划执行进度
-
-
-
- 出入库单
- 单据
-
- 查看出入库及关联过磅
-
-
-
-
-
- 货品计划 vs 实绩(节选)
-
-
- {{ dash(c.label) }}
-
- 计划 {{ formatWeight(c.planned, '') }} / 实绩 {{ formatWeight(c.actual, '') }}
-
-
-
-
-
- 加载中…
-
-
+
diff --git a/miniprogram/pages/db/inventory/detail.vue b/miniprogram/pages/db/inventory/detail.vue
index c3be16ec9..a72664b07 100644
--- a/miniprogram/pages/db/inventory/detail.vue
+++ b/miniprogram/pages/db/inventory/detail.vue
@@ -1,121 +1,228 @@
-
-
-
-
-
-
-
-
- {{ dash(detail.batchNo || detail.id) }}
- {{ dash(detail.product) }} · {{ dash(detail.businessType) }}
+
+
-
- 基本信息
-
- 日期{{ dash(detail?.date) }}
- 往来单位{{ dash(detail?.partnerCompany) }}
- 规格{{ dash(detail?.specification) }}
- 计划号{{ dash(detail?.planNo) }}
- 备注{{ dash(detail?.remarks) }}
-
-
-
-
- 过磅数据
-
- 毛重{{ formatWeight(detail?.grossWeight) }}
- 皮重{{ formatWeight(detail?.tareWeight) }}
- 净重{{ formatWeight(detail?.netWeight) }}
-
-
-
-
- 现场反馈
-
- {{ dash(detail.siteFeedbackRemark) }}
-
-
-
-
-
-
-
- 关联地磅单
- {{ related.weighing ? '查看' : '无' }}
-
-
-
-
- 关联计划
- {{ related.plan ? '查看' : '无' }}
+
+
+ 日期 *
+ {{ form.date || '--' }}
+ (form.date = e.detail.value)">
+
+ {{ form.date || '选择日期' }}
+ ›
+
+
+
+
+ 往来单位 *
+ {{ form.partnerCompany || '--' }}
+
+ {{ form.partnerCompany || '请选择往来单位' }}
+ ›
+
+
+ 业务类型 *
+
+
+
+
+ 产品 *
+ {{ productDisplay || '--' }}
+
+ {{ productDisplay || '请选择产品' }}
+ ›
+
+
+
+
+ 数量(吨) *
+ {{ form.quantity ?? '--' }}
+
+
+
+
+ 车牌号 *
+ {{ form.vehicleNo || '--' }}
+
+ {{ form.vehicleNo || '请选择车牌号' }}
+ ›
+
+
+
+
+ 计划号
+ {{ form.planNo || '--' }}
+
+
+
+
+ 备注
+ {{ form.remarks || '--' }}
+
+
+
+
+ 保存
+ 取消
+
+
+ (showCustomer = v)" @select="onCustomer" />
+ (showProduct = v)" @select="onProduct" />
+ (showVehicle = v)" @select="onVehicle" />
+
+
+
+
diff --git a/miniprogram/pages/db/inventory/list.vue b/miniprogram/pages/db/inventory/list.vue
index b21f26316..803f31bec 100644
--- a/miniprogram/pages/db/inventory/list.vue
+++ b/miniprogram/pages/db/inventory/list.vue
@@ -1,141 +1,246 @@
-
-
-
-
-
-
-
-
- {{ t.label }}
-
-
-
-
-
-
-
-
-
-
- {{ dash(row.batchNo || row.id) }}
-
- {{ dash(row.vehicleNo) }} · {{ dash(row.product) }} · {{ dash(row.businessType) }}
-
-
-
- {{ inventoryStatusLabel(row.status).text }}
-
-
-
- 数量
- {{ formatWeight(row.quantity) }}
-
-
- 往来单位
- {{ dash(row.partnerCompany) }}
-
-
- 日期
- {{ dash(row.date) }}
-
-
-
- 加载中…
-
-
-
+
diff --git a/miniprogram/pages/db/plans/detail.vue b/miniprogram/pages/db/plans/detail.vue
index 44f9ac153..fe6ad17bc 100644
--- a/miniprogram/pages/db/plans/detail.vue
+++ b/miniprogram/pages/db/plans/detail.vue
@@ -1,139 +1,214 @@
+
+
+
+
+
+
+ 计划号
+ {{ form.planNo || '系统自动生成' }}
+
+
+
+ 业务类型 *
+
+
+
+
+ 往来单位
+ {{ form.customerName || '--' }}
+
+ {{ form.customerName || '请选择往来单位' }}
+ ›
+
+
+
+
+ 产品 *
+ {{ productDisplay || '--' }}
+
+ {{ productDisplay || '请选择产品' }}
+ ›
+
+
+
+
+ 计划开始时间
+ {{ form.startDate || '--' }}
+ (form.startDate = e.detail.value)">
+
+ {{ form.startDate || '选择日期' }}
+ ›
+
+
+
+
+
+ 计划结束时间
+ {{ form.endDate || '--' }}
+ (form.endDate = e.detail.value)">
+
+ {{ form.endDate || '选择日期' }}
+ ›
+
+
+
+
+
+ 计划量(吨) *
+ {{ form.plannedQuantity ?? '--' }}
+
+
+
+
+ 备注
+ {{ form.remarks || '--' }}
+
+
+
+
+
+ 保存
+ 取消
+
+
+ (showCustomer = v)" @select="onCustomer" />
+ (showProduct = v)" @select="onProduct" />
+
+
+
-
-
-
-
-
-
-
- {{ dash(detail.planNo) }}
- {{ dash(detail.product) }}
-
-
- {{ planStatusLabel(detail.executionStatus).text }}
-
-
-
- {{ dash(detail.businessType) }}
-
- {{ formatWeight(detail.executedQuantity) }} / {{ formatWeight(detail.plannedQuantity) }}
-
-
-
-
-
- 基本信息
-
- 计划日期{{ dash(detail?.planDate) }}
- 起止{{ dash(detail?.startDate) }} ~ {{ dash(detail?.endDate) }}
- 规格{{ dash(detail?.specification) }}
- 车牌{{ dash(detail?.vehicleNo) }}
- 客户{{ dash(detail?.customerName) }}
- 备注{{ dash(detail?.remarks) }}
-
-
-
-
- 关联出入库({{ related.inventories?.length || 0 }})
-
-
-
- {{ dash(inv.batchNo || inv.id) }}
- {{ dash(inv.vehicleNo) }} · {{ dash(inv.status) }}
-
-
-
-
-
- 关联地磅单({{ related.weighings?.length || 0 }})
-
-
-
- {{ dash(w.vehicleNo) }}
- 净重 {{ formatWeight(w.netWeight) }}
-
-
-
-
-
-
- {{ acting ? '…' : '生成出入库关联单' }}
-
-
-
-
+
diff --git a/miniprogram/pages/db/plans/list.vue b/miniprogram/pages/db/plans/list.vue
index 2d2d74869..d55dbf9a0 100644
--- a/miniprogram/pages/db/plans/list.vue
+++ b/miniprogram/pages/db/plans/list.vue
@@ -1,119 +1,277 @@
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+ 暂无数据
+
+
+ {{ item.planNo || '未填计划号' }}
+
+ {{ item.businessType }}
+
+
+
+ 往来单位
+ {{ item.customerName || '未填' }}
+
+
+ 产品
+ {{ item.product || '未填' }}
+
+
+ 计划量
+ {{ item.plannedQuantity ?? '--' }} 吨
+
+
+ 状态
+
+ {{ execStatus(item) }}
+
+
+
+
+ 加载中...
+
+
+ (relatedOpen = v)">
+
+
+ 加载中...
+ 暂无关联数据
+
+
+ {{ row.type === 'inventory' ? '出入库单' : '地磅单' }}
+
+
+ 业务
+ {{ row.businessType || '--' }}
+
+
+ 产品
+ {{ row.product || row.cargoName || '--' }}
+
+
+ 车牌
+ {{ row.vehicleNo || '--' }}
+
+
+
+
+
+
+
-
-
-
-
-
-
-
- {{ t.label }}
-
-
-
-
-
-
-
-
-
-
- {{ dash(row.planNo) }}
- {{ dash(row.product) }} · {{ dash(row.businessType) }}
-
-
- {{ planStatusLabel(row.executionStatus).text }}
-
-
-
- 计划量
- {{ formatWeight(row.plannedQuantity) }}
-
-
- 已执行
- {{ formatWeight(row.executedQuantity) }}
-
-
- 客户
- {{ dash(row.customerName) }}
-
-
-
- 加载中…
-
-
-
+
diff --git a/miniprogram/pages/db/utils/dbDate.js b/miniprogram/pages/db/utils/dbDate.js
new file mode 100644
index 000000000..f2627e6d9
--- /dev/null
+++ b/miniprogram/pages/db/utils/dbDate.js
@@ -0,0 +1,33 @@
+/** 地磅页日期工具(避免引入 dayjs) */
+export function formatYmd(d = new Date()) {
+ const x = d instanceof Date ? d : new Date(d)
+ if (Number.isNaN(x.getTime())) return ''
+ const y = x.getFullYear()
+ const m = String(x.getMonth() + 1).padStart(2, '0')
+ const day = String(x.getDate()).padStart(2, '0')
+ return `${y}-${m}-${day}`
+}
+
+export function addDays(base, n) {
+ const d = new Date(base)
+ d.setDate(d.getDate() + n)
+ return d
+}
+
+/** 本周周一~周日 YYYY-MM-DD */
+export function weekRange(base = new Date()) {
+ const today = new Date(base)
+ const day = today.getDay() || 7
+ const monday = addDays(today, 1 - day)
+ const sunday = addDays(monday, 6)
+ return { from: formatYmd(monday), to: formatYmd(sunday) }
+}
+
+export function nowYmdHms() {
+ const d = new Date()
+ const ymd = formatYmd(d)
+ const hh = String(d.getHours()).padStart(2, '0')
+ const mm = String(d.getMinutes()).padStart(2, '0')
+ const ss = String(d.getSeconds()).padStart(2, '0')
+ return `${ymd} ${hh}:${mm}:${ss}`
+}
diff --git a/miniprogram/pages/db/weighing/detail.vue b/miniprogram/pages/db/weighing/detail.vue
index 16bda2f85..e7b81375d 100644
--- a/miniprogram/pages/db/weighing/detail.vue
+++ b/miniprogram/pages/db/weighing/detail.vue
@@ -1,157 +1,335 @@
-
-
-
-
-
-
-
-
- {{ dash(detail.vehicleNo) }}
- {{ dash(detail.cargoName) }} · {{ dash(detail.businessType) }}
+
+
-
- 过磅数据
-
- 毛重{{ formatWeight(detail?.grossWeight) }}
- 毛重时间{{ dash(detail?.grossWeightTime) }}
- 皮重{{ formatWeight(detail?.tareWeight) }}
- 皮重时间{{ dash(detail?.tareWeightTime) }}
- 扣重{{ formatWeight(detail?.deduction) }}
- 净重{{ formatWeight(detail?.netWeight) }}
-
-
-
-
- 业务信息
-
- 计划号{{ dash(detail?.planNo) }}
- 规格{{ dash(detail?.specification) }}
- 供货单位{{ dash(detail?.supplier) }}
- 收货单位{{ dash(detail?.consignee) }}
- 过磅点{{ dash(detail?.weighingPoint) }}
- 备注{{ dash(detail?.remarks) }}
-
-
-
-
-
- 皮重(kg)
-
-
-
- 取消
-
- {{ acting ? '…' : '确认保存' }}
+
+
+ 车牌号 *
+ {{ form.vehicleNo || '--' }}
+
+ {{ form.vehicleNo || '请选择车牌号' }}
+ ›
+
+
+ 货物名称 *
+ {{ cargoDisplay || '--' }}
+
+ {{ cargoDisplay || '请选择货物名称' }}
+ ›
+
+
+
+
+ 业务类型 *
+
+
+
+
+ 供货单位 *
+ {{ form.supplier || '--' }}
+
+ {{ form.supplier || '请选择供货单位' }}
+ ›
+
+
+
+
+ 收货单位 *
+ {{ form.consignee || '--' }}
+
+ {{ form.consignee || '请选择收货单位' }}
+ ›
+
+
+
+
+ 毛重(kg)
+ {{ form.grossWeight ?? '--' }}
+
+
+
+
+ 毛重时间
+ {{ form.grossWeightTime || '--' }}
+
+ {{ form.grossWeightTime || '点此填当前时间' }}
+
+
+
+
+ 皮重(kg)
+ {{ form.tareWeight ?? '--' }}
+
+
+
+
+ 皮重时间
+ {{ form.tareWeightTime || '--' }}
+
+ {{ form.tareWeightTime || '点此填当前时间' }}
+
+
+
+
+ 扣杂(kg)
+ {{ form.deduction || 0 }}
+
+
+
+
+ 净重(kg)
+
+
+ {{ canShowNet ? netWeight : '--' }}
+
+
+ 净重必须大于0
+
+
+
+ 计划号
+ {{ form.planNo || '--' }}
+
+
+
+
+ 备注
+ {{ form.remarks || '--' }}
+
+
-
- 二次过磅
- 作废
+
+ 保存
+ 取消
+
+ (showCargo = v)" @select="onProduct" />
+ (pickSupplier = v)" @select="onSupplier" />
+ (pickConsignee = v)" @select="onConsignee" />
+ (showVehicle = v)" @select="onVehicle" />
+
+
+
+
diff --git a/miniprogram/pages/db/weighing/list.vue b/miniprogram/pages/db/weighing/list.vue
index d8a0ceabb..db34435f0 100644
--- a/miniprogram/pages/db/weighing/list.vue
+++ b/miniprogram/pages/db/weighing/list.vue
@@ -1,168 +1,256 @@
-
-
-
-
-
-
-
- {{ stats.today }}
- 今日过磅
-
-
- {{ stats.needSecond }}
- 待二次过磅
-
-
- {{ list.length }}
- 当前列表
-
-
-
-
-
-
- {{ t.label }}
-
-
-
-
-
-
-
-
-
-
- {{ dash(row.batchNo || row.id) }}
- {{ dash(row.vehicleNo) }} · {{ dash(row.cargoName) }}
-
-
- {{ weighingPhase(row).text }}
-
-
-
- 净重
- {{ formatWeight(row.netWeight) }}
-
-
- 过磅时间
- {{ dash(row.grossWeightTime) }}
-
-
-
-
- 加载中…
-
-
-
+