项目管理V1
项目概览与数据统计
销售总额
¥{{ formatNumber(filteredSummary.totalSales) }}
未收货款
¥{{ formatNumber(filteredSummary.totalSales - filteredSummary.totalPaid) }}
税后利润
¥{{ formatNumber(filteredSummary.totalProfit) }}
利润百分比
{{ filteredSummary.profitPercent }}%
我的利润
¥{{ formatNumber(filteredSummary.myProfit) }}
项目汇总 (共 {{ filteredDashboardProjects.length }} 个)
状态:
发票:
隐藏月份:
{{ hiddenMonths.includes(m) ? '✓' : '' }}
{{ m }}
| 项目名称 | 客户 | 状态 | 销售金额 | 客户已付 | 成本金额 | 税后利润 | 分成方式 | 我的利润 | 生成日期 | 完成日期 | 发票状态 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ p.name }} | {{ p.client }} | {{ p.status }} | ¥{{ formatNumber(p.sales_amount) }} | ¥{{ formatNumber(p.paid_amount) }} | ¥{{ formatNumber(p.cost_amount) }} | ¥{{ formatNumber(p.after_tax_profit) }} | {{ p.split_method || '-' }} | ¥{{ formatNumber(p.split_method === '不分成' ? (Number(p.after_tax_profit) - Number(p.client_rebate || 0)) : Number(p.my_split)) }} | {{ formatDate(p.created_date) }} | {{ formatDate(p.completion_date) }} | {{ p.invoice_status || '未开票' }} | |
| 暂无项目 | ||||||||||||
项目列表
管理所有项目
| 项目名称 | 客户 | 状态 | 销售金额 | 客户已付 | 成本金额 | 税后利润 | 分成方式 | 我的利润 | 生成日期 | 完成日期 | 发票状态 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ p.name }} | {{ p.client || '-' }} | {{ p.status }} | ¥{{ formatNumber(p.sales_amount) }} | ¥{{ formatNumber(p.paid_amount) }} | ¥{{ formatNumber(p.cost_amount) }} | ¥{{ formatNumber(p.after_tax_profit) }} | {{ p.split_method || '-' }} | ¥{{ formatNumber(p.split_method === '不分成' ? (Number(p.after_tax_profit) - Number(p.client_rebate || 0)) : Number(p.my_split)) }} | {{ formatDate(p.created_date) }} | {{ formatDate(p.completion_date) }} | {{ p.invoice_status || '未开票' }} | 📊流程 | |
📭 暂无项目 |
|||||||||||||
客户资料
| 客户名称 | 公司 | 联系人 | 电话 | 微信 | 地址 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ c.name }} | {{ c.company || '-' }} | {{ c.contact || '-' }} | {{ c.phone || '-' }} | {{ c.wechat || '-' }} | {{ c.address || '-' }} | {{ c.notes || '-' }} | |
| 暂无客户资料 | |||||||
发货管理
共 {{ filteredShipments.length }} 条
| 发货单号 | 项目名称 | 客户 | 发货日期 | 产品名 | 数量 | 物流公司 | 快递单号 | 收件人 | 状态 | 签收日期 | 快递运费 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ s.shipment_no }} | {{ s.project_name }} | {{ s.project_client || '-' }} | {{ formatDate(s.shipment_date) }} | {{ s.product_name || '-' }} | {{ s.quantity || '-' }} | {{ s.logistics_company || '-' }} | {{ s.tracking_no || '-' }} | {{ s.receiver || '-' }} | {{ s.status }} | {{ s.signed_time || '-' }} | {{ s.shipping_fee ? '¥' + s.shipping_fee : '-' }} | ||
| 暂无发货记录 | |||||||||||||
🚚 顺丰寄件
📤 寄件人
📋 粘贴识别
📥 收件人
📋 粘贴识别(支持粘贴姓名+电话+地址)
📦 物品信息
💰 费用预估
运费:¥{{ sfFreight }}
{{ sfFreightDetail }}
填写地址后点击「查询运费」预估费用
⚠️ 当前为沙箱测试环境,API参数正在完善。正式寄件需申请生产上线。
API响应:
{{ sfResult }}
🔍 物流查询
查询运单轨迹和签收状态
提示:默认用寄件人(Anson)尾号1444验证,如寄件人不是Anson则自动用收件人电话后4位
正在查询...
✅ 已签收
{{ sfRoutesResult.signedTime }}
📦 物流轨迹
{{ route.acceptTime || route.scanDate || '-' }}
{{ route.remark || route.scanCity || '-' }}
{{ route.opCode || '-' }}
原始响应:
{{ JSON.stringify(sfRoutesResult.raw, null, 2) }}
未查询到物流信息,请检查运单号是否正确
📦 截单转寄退回
拦截快递或转寄/退回
📍 转寄地址
正在提交...
✅ 操作成功
❌ 操作失败
{{ sfInterceptResult.message }}
{{ JSON.stringify(sfInterceptResult.raw, null, 2) }}
用户管理
| ID | 用户名 | 昵称 | 角色 | 状态 | 权限 | 创建日期 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ u.id }} | {{ u.username }} | {{ u.nickname || '-' }} | {{ u.role === 'admin' ? '管理员' : '普通用户' }} | {{ u.is_active ? '启用' : '禁用' }} |
管理员拥有所有权限
菜单: {{ u.permissions.menus.join(', ') }}
无菜单权限
项目: 全部 项目: {{ u.permissions.projects.length }}个(可编辑{{ u.permissions.projects.filter(p=>p.can_edit).length }}个) 无项目权限 |
{{ formatDate(u.created_at) }} | |
| 暂无用户 | |||||||
系统下载
📦 鼎沛文化 · 项目管理系统 V1
| 版本 | V1.4.3 |
| 前端 | Vue.js 3 + 纯CSS |
| 后端 | Node.js + Express |
| 数据库 | MySQL 8.0 |
| 更新日期 | 2026-05-12 |
📋 包含内容
前端
index.html
app.js
style.css
app.js
style.css
后端
server.js
package.json
package.json
数据库
dingpei_project.sql
(建表+数据)
(建表+数据)
🚀 部署步骤
1. 导入数据库:
mysql -u root -p 数据库名 < dingpei_project.sql2. 修改 server.js 中的数据库连接信息
3. 安装依赖:
npm install4. 启动服务:
node server.js📝 更新日志
V1.4.3 (2026-05-12)
- 移除快递100查询功能(菜单和页面模块)
- 新增机器人协作中心(多机器人任务沟通)
- 协作中心优化:5秒自动刷新、进入即加载、去滚动条
- 协作中心功能:新建任务、撤回消息、清空记录
- 新增顺丰寄件页面(下单、路由查询、截单转寄)
V1.4.2 (2026-05-10)
- 统计卡片新增“利润百分比”(税后利润/销售总额)
- 发货记录汇总行增加数量合计和快递单数
- 统一使用流程提醒(取代旧plan.html任务提醒)
- 新增流程详情提醒脚本(check-flow-reminders.js)
V1.4.1 (2026-05-09)
- 发货数据增加权限过滤(前端+后端)
- 修复项目列表表格列错位问题
- 修复“我的利润”计算显示问题
- 修复用户权限JSON格式解析问题
V1.4.0 (2026-05-07)
- 项目汇总增加状态/发票状态点击筛选功能
- 仪表盘增加未收货款总额统计
- 新增定时提醒:每天9:00扫描到期任务QQ推送
- 企业所得税计算规则优化(仅鼎沛文化计算)
- 签约公司新增“晟雅礼品”选项
- 发货管理增加备注字段
- 修复“不分成”项目利润显示问题
V1.3.0 (2026-05-06)
- 增加用户权限管理
- 项目详情页增加产品明细
- 增加客户资料管理
- 增加合同管理
V1.2.0 (2026-05-05)
- 增加发货管理功能
- 项目汇总表格优化
- 增加利润计算和分成方式
← 返回
{{ currentProject.project.name }}
{{ currentProject.project.client || '未设客户' }} · {{ currentProject.project.status }}项目汇总
{{ currentProject.project.sign_company || '鼎沛文化' }}
¥{{ formatNumber(currentProject.project.sales_amount) }}
¥{{ formatNumber(currentProject.project.paid_amount) }}
¥{{ formatNumber(currentProject.project.cost_amount) }}
¥{{ formatNumber(currentProject.project.client_rebate) }}
¥{{ formatNumber(currentProject.project.tax_point) }}
¥{{ formatNumber(currentProject.project.corporate_tax) }}
¥{{ formatNumber(currentProject.project.after_tax_profit) }}
{{ formatDate(currentProject.project.created_date) }}
{{ formatDate(currentProject.project.completion_date) }}
{{ currentProject.project.split_method }}
{{ currentProject.project.split_method === '不分成' ? '¥' + formatNumber(Number(currentProject.project.after_tax_profit) - Number(currentProject.project.client_rebate || 0)) : '¥' + formatNumber(currentProject.project.my_split) }}
{{ currentProject.project.split_method === '不分成' ? '-' : '¥' + formatNumber(currentProject.project.partner_split) }}
{{ currentProject.project.split_method === '不分成' ? '-' : (currentProject.project.is_split ? '✅ 是' : '❌ 否') }}
{{ currentProject.project.sales_invoice_status || '未开票' }}
已保护(不可删除)
跟进事项
- {{ f.content }}
暂无跟进事项
产品明细({{ currentProject.products.length }}项)
| 排序 | 产品 | 数量 | 销单价 | 前样品费 | 销打样费 | 销运费 | 销金额 | 成单价 | 前期费 | 工厂打样 | 成运费 | 成金额 | 利润 | 打样工期 | 大货工期 | 供应商 | 发票 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ pr.name }} | {{ pr.quantity }} | {{ formatNumber(pr.sales_unit_price) }} | {{ formatNumber(pr.pre_sample_fee) }} | {{ formatNumber(pr.sales_sample_fee) }} | {{ formatNumber(pr.sales_freight) }} | {{ formatNumber(pr.sales_amount) }} | {{ formatNumber(pr.cost_unit_price) }} | {{ formatNumber(pr.pre_cost_fee) }} | {{ formatNumber(pr.factory_sample) }} | {{ formatNumber(pr.cost_freight) }} | {{ formatNumber(pr.cost_amount) }} | {{ formatNumber(pr.profit) }} | {{ pr.sample_lead_time || '-' }} | {{ pr.bulk_lead_time || '-' }} | {{ pr.supplier || '-' }} | {{ pr.invoice_status || '-' }} | {{ pr.notes || '-' }} | ||
| 合计 | ¥{{ formatNumber(projectProductsTotal.sales) }} | ¥{{ formatNumber(projectProductsTotal.cost) }} | ¥{{ formatNumber(projectProductsTotal.profit) }} | ||||||||||||||||
| 暂无产品明细 | |||||||||||||||||||
合同管理({{ (currentProject.contracts || []).length }}份)
| 合同编号 | 合同名称 | 甲方 | 乙方 | 签署日期 | 金额 | 状态 | 合同文件 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ c.contract_no }} | {{ c.contract_name || '-' }} | {{ c.party_a || '-' }} | {{ c.party_b || '-' }} | {{ formatDate(c.sign_date) }} | ¥{{ formatNumber(c.amount) }} | {{ c.status }} | 查看 - | |
| 暂无合同记录 | ||||||||
发货记录({{ (currentProject.shipments || []).length }}次)
| 发货单号 | 发货日期 | 产品名 | 数量 | 物流公司 | 快递单号 | 收件人 | 状态 | 快递运费 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ s.shipment_no }} | {{ formatDate(s.shipment_date) }} | {{ s.product_name || '-' }} | {{ s.quantity || '-' }} | {{ s.logistics_company || '-' }} | {{ s.tracking_no || '-' }} | {{ s.receiver || '-' }} | {{ s.status }} | {{ s.shipping_fee ? '¥' + s.shipping_fee : '-' }} | ||
| 暂无发货记录 | ||||||||||
| 合计 | {{ currentProject.shipments.reduce((sum, s) => sum + (Number(s.quantity) || 0), 0) }} | 共 {{ currentProject.shipments.filter(s => s.tracking_no).length }} 张快递单 | ||||||||