C300-OpenAPI
  1. 使用指南
C300-OpenAPI
  • 使用指南
    • 快速开始(API & 事件订阅)
    • API 参考
    • 事件订阅参考
    • Webwidget使用说明
    • 制造域 MFR
      • 基础数据
        • BOM
          • API
            • 创建 BOM
            • 删除 BOM
            • 更新 BOM
            • 查询 BOM
          • 事件
            • BOM 创建
            • BOM 删除
            • BOM 更新
            • BOM 审核通过
            • BOM 审核驳回
        • 标准工序
          • API
            • 更新标准工序
            • 查询工序
            • 分批查询工序
            • 创建标准工序
            • 删除标准工序
          • 事件
            • 标准工序创建
            • 标准工序删除
            • 标准工序更新
        • 工艺路线
          • API
            • 删除工艺路线
            • 创建工艺路线
            • 更新工艺路线
            • 上传工艺路线图纸信息
            • 查询工艺路线
          • 事件
            • 工艺路线创建
            • 工艺路线删除
            • 工艺路线更新
        • 生产小组
          • API
            • 查询小组关联人员
            • 查询小组
            • 创建生产小组
            • 分批查询小组
            • 更新生产小组
            • 分批查询小组关联人员
          • 事件
        • 工作中心
          • API
            • 分批查询工作中心资源
            • 查询工作中心资源
            • 创建工作中心
            • 删除工作中心
            • 更新工作中心
            • 查询工作中心
            • 分批查询工作中心
          • 事件
        • 生产流程
          • API
          • 事件
            • 生产流程创建
            • 生产流程删除
            • 生产流程更新
      • 生产单
        • API
          • 更新生产单
          • 创建生产单
          • 批量删除生产单
          • 查询计划用料
          • 分批查询计划用料
          • 查询生产单工序
          • 修改计划用料
          • 完成生产单
          • 作废生产单
          • 查询生产单
          • 分批查询生产单
          • 创建序列号
        • 事件
          • 生产单创建
          • 生产单删除
          • 生产单更新
          • 生产单作废
          • 生产单完成
          • 生产单审核通过
          • 生产单审核驳回
          • 生产单重审
          • 生产计划用料更新
          • 生产计划用料添加
          • 生产计划用料删除
          • 生产单计划排程
          • 生产单派发
          • 生产单工序派发
          • 生产单加入计划
          • 生产单挂起
          • 生产单反挂起
      • 生产任务单
        • API
          • 查询生产任务单
          • 分批查询生产任务单
          • 查询生产任务单负责人
        • 事件
          • 生产任务流转
      • 生产领料单
        • API
          • 创建申请领料单
        • 事件
      • 生产备料出库任务
        • API
          • 更新生产备料出库任务
          • 查询生产备料出库任务
        • 事件
          • 生产备料出库任务创建
          • 生产备料出库任务删除
          • 生产备料出库任务更新
          • 生产备料出库任务审核通过
          • 生产备料出库任务审核驳回
          • 生产备料出库任务完成
      • 生产领料出库任务
        • API
          • 更新生产领料出库任务
        • 事件
      • 生产补料出库任务
        • API
          • 更新生产补料出库任务
        • 事件
      • 生产还料入库任务
        • API
          • 更新生产还料入库任务
          • 查询生产还料入库任务
        • 事件
          • 生产还料入库任务创建
          • 生产还料入库任务删除
          • 生产还料入库任务更新
          • 生产还料入库任务审核通过
          • 生产还料入库任务审核驳回
          • 生产还料入库任务完成
      • 生产入库任务
        • API
          • 查询生产入库任务
          • 更新生产入库任务
        • 事件
          • 生产入库任务创建
          • 生产入库任务删除
          • 生产入库任务更新
          • 生产入库任务完成
      • 生产报废入库任务
        • API
          • 更新生产报废入库任务
          • 完成生产报废入库任务
          • 查询报废入库
          • 分批查询报废入库
        • 事件
          • 生产报废入库任务创建
          • 生产报废入库任务删除
          • 生产报废入库任务更新
          • 生产报废入库任务完成
      • 生产报工记录
        • API
          • 删除生产报工记录
          • 创建生产报工记录
          • 查询报工记录
          • 分批查询报工记录
        • 事件
          • 生产报工记录创建
          • 生产报工记录删除
          • 生产报工记录更新
      • 委外管理
        • 委外采购单
          • API
            • 创建委外采购单
            • 更新委外采购单审核状态
            • 更新委外采购单
            • 查询委外采购单行
            • 分批查询委外采购单行
          • 事件
            • 委外采购单创建
            • 委外采购单删除
            • 委外采购单更新
            • 委外采购单审核通过
            • 委外采购单审核驳回
            • 委外采购单完成
            • 委外采购单作废
        • 委外收料单
          • API
            • 创建委外收料单
            • 创建并自动完成委外收料单
          • 事件
            • 委外收料单创建
            • 委外收料单删除
            • 委外收料单更新
            • 委外收料单审核通过
            • 委外收料单审核驳回
            • 委外收料单完成
            • 委外收料单作废
        • 委外备料出库任务
          • API
            • 更新委外备料出库任务
            • 确认委外备料出库任务
          • 事件
            • 委外备料出库任务创建
            • 委外备料出库任务删除
            • 委外备料出库任务更新
            • 委外备料出库任务完成
            • 委外备料出库任务作废
        • 委外入库任务
          • API
            • 更新委外入库任务
          • 事件
            • 生产委外入库任务创建
            • 生产委外入库任务删除
            • 生产委外入库任务更新
            • 生产委外入库任务完成
            • 生产委外入库任务作废
            • 库存委外入库任务创建
            • 库存委外入库任务删除
            • 库存委外入库任务更新
            • 库存委外入库任务完成
            • 库存委外入库任务作废
    • 认证 API
      • 创建 Token
      • 刷新 Token
    • 供应链域 SC
      • 基础数据
        • 客户
          • API
            • 创建客户
            • 删除客户
            • 更新客户
            • 查询客户列表
            • 启用客户
            • 禁用客户
            • 查询客户分类列表
            • 查询企业地址
          • 事件
            • 客户创建
            • 客户删除
            • 客户更新
            • 客户禁用
            • 客户启用
            • 客户审核通过
            • 客户审核驳回
        • 客户分类
          • API
            • 创建客户分类
            • 删除客户分类
            • 更新客户分类
            • 查询客户分类列表
          • 事件
            • 客户分类创建
            • 客户分类删除
            • 客户分类更新
        • 供应商
          • API
            • 禁用供应商
            • 启用供应商
            • 创建供应商
            • 删除供应商
            • 查询供应商
            • 更新供应商
            • 分批查询供应商
          • 事件
            • 供应商创建
            • 供应商删除
            • 供应商更新
            • 供应商禁用
            • 供应商启用
            • 供应商审核通过
            • 供应商审核驳回
        • 供应商分类
          • API
            • 创建供应商分类
            • 删除供应商分类
            • 更新供应商分类
            • 查询供应商分类
            • 分批查询供应商分类
          • 事件
            • 供应商分类创建
            • 供应商分类删除
            • 供应商分类更新
        • 销售价目表
          • API
          • 事件
            • 销售价目表创建
            • 销售价目表删除
            • 销售价目表更新
            • 销售价目表审核通过
            • 销售价目表审核驳回
        • 采购价目表
          • API
          • 事件
            • 采购价目表创建
            • 采购价目表删除
            • 采购价目表更新
            • 采购价目表审核通过
            • 采购价目表审核驳回
        • 企业地址
          • API
            • 创建企业地址
            • 删除企业地址
            • 更新企业地址
            • 查询企业地址
          • 事件
      • 销售管理
        • 销售订单
          • API
            • 创建销售订单
            • 删除销售订单
            • 更新销售订单
            • 作废销售订单
            • 查询销售订单
            • 更新销售订单审核状态
            • 完成销售订单
            • 查询订单
          • 事件
            • 销售订单创建
            • 销售订单删除
            • 销售订单更新
            • 销售订单审核通过
            • 销售订单审核驳回
            • 销售订单完成
            • 销售订单作废
            • 销售订单加入计划
        • 发货单
          • API
            • 创建发货单
            • 删除发货单
            • 更新发货单
            • 作废发货单
            • 查询发货列表
          • 事件
            • 发货单创建
            • 发货单删除
            • 发货单更新
            • 发货单审核通过
            • 发货单审核驳回
            • 发货单完成
            • 发货单作废
        • 退货单
          • API
            • 创建退货单
            • 作废并删除退货单
          • 事件
            • 退货单创建
            • 退货单删除
            • 退货单更新
            • 退货单审核通过
            • 退货单审核驳回
            • 退货单完成
            • 退货单作废
        • 销售出库任务
          • API
            • 确认销售发货出库任务
          • 事件
            • 销售出库任务创建
            • 销售出库任务删除
            • 销售出库任务更新
            • 销售出库任务完成
            • 销售出库任务作废
        • 销售退货入库任务
          • API
            • 更新销售退货入库任务
          • 事件
            • 销售退货入库任务创建
            • 销售退货入库任务删除
            • 销售退货入库任务更新
            • 销售退货入库任务完成
            • 销售退货入库任务作废
      • 采购管理
        • 采购申请单
          • API
            • 查询采购申请列表
            • 新建采购申请
            • 编辑采购申请
            • 删除采购申请
          • 事件
            • 采购申请单作废
            • 采购申请单创建
            • 采购申请单更新
            • 采购申请单删除
            • 采购申请单审核驳回
            • 采购申请单审核通过
            • 采购申请单完成
        • 采购订单
          • API
            • 创建采购订单
            • 删除采购订单
            • 更新采购订单
            • 查询采购订单
            • 作废采购订单
            • 审核采购订单
            • 获取采购单分享链接
            • 完成采购订单
          • 事件
            • 采购订单创建
            • 采购订单删除
            • 采购订单更新
            • 采购订单作废
            • 采购订单审核通过
            • 采购订单审核驳回
            • 采购订单完成
        • 采购收料单
          • API
            • 创建采购收料单
            • 删除采购收料单
            • 修改采购收料单
            • 查询采购收料单
            • 作废采购收料单
          • 事件
            • 采购收料单创建
            • 采购收料单删除
            • 采购收料单更新
            • 采购收料单作废
            • 采购收料单审核通过
            • 采购收料单审核驳回
            • 采购收料单完成
        • 采购退料单
          • API
            • 作废采购退料出库任务
            • 删除采购退料出库任务
          • 事件
            • 采购退料单删除
            • 采购退料单创建
            • 采购退料单更新
            • 采购退料单审核驳回
            • 采购退料单审核通过
            • 采购退料单完成
            • 采购退料单作废
        • 采购入库任务
          • API
            • 更新采购入库任务
            • 撤销采购入库任务
          • 事件
            • 采购入库任务创建
            • 采购入库任务删除
            • 采购入库任务更新
            • 采购入库任务完成
            • 采购入库任务作废
            • 采购检验完入库任务创建
            • 采购检验完入库任务更新
            • 采购检验完入库任务完成
            • 采购检验完入库任务作废
        • 采购退料出库任务
          • API
            • 创建采购退料出库任务
            • 创建并自动完成采购退料出库任务
          • 事件
    • 3Chat域
      • 智能体(Agent)
        • API
          • 发送消息
        • 事件
      • 渠道(Channel)
        • API
          • 发送消息
        • 事件
      • 流程(Flow)
        • API
          • Coze
      • 会话(Dialog)
        • API
          • 查询
        • 事件
          • 创建会话
      • 访客(Visitor)
        • API
          • 查询
          • 更新访客信息
        • 事件
          • 创建访客
          • 更新访客
      • 对话(Conversation)
        • API
          • 主动转人工服务
          • 查询
        • 事件
          • 创建对话
          • 更新对话
          • 再次加入对话
          • 转人工
    • 基础域DM
      • 文件管理
        • API
          • 上传文件
        • 事件
      • 低代码平台CPS
        • API
          • 查询表单详情
          • 查询表单列表
          • 保存或更新表单
          • 删除表单
      • 开发平台
        • API
          • 更新事件日志状态
    • 用户与租户域 USER
      • 员工
        • API
          • 创建员工
          • 更新员工
        • 事件
          • 员工创建
          • 员工删除
          • 员工更新
          • 员工启用
          • 员工禁用
          • 部门创建
          • 部门删除
          • 部门更新
      • 部门
        • API
          • 创建部门
          • 更新部门
        • 事件
    • 厂内物流域 LOG
      • 库存任务
        • 查询还料入库任务
        • 查询备料任务
        • 确认生产入库任务
        • 确认备料出库任务
        • 确认领料出库任务
        • 确认补料出库任务
        • 创建领料申请
        • 确认还料入库任务
        • 确认生成报废任务
        • 确认库存申请入库任务
        • 确认库存申请出库任务
        • 确认移库任务
        • 确认销售发货出库任务
        • 确认销售退货入库任务
        • 完成报废入库
        • 确认生产委外入库
        • 查询生产入库任务
      • 基础数据
        • 物料
          • API
            • 删除物料单位
            • 分页物料查询
            • 创建物料
            • 创建物料单位
            • 更新物料单位
            • 更新物料
            • 批量创建物料
            • 删除物料
            • 启用物料
            • 禁用物料
            • 更新物料审核状态
            • 上传物料图纸
            • 分页查询查询物料列表
          • 事件
            • 物料创建
            • 物料删除
            • 物料更新
            • 物料审核通过
            • 物料审核驳回
            • 物料重审
            • 物料启用
            • 物料禁用
        • 物料分类
          • API
            • 删除物料分类
            • 创建物料分类
            • 更新物料分类
            • 查询物料分类
            • 分批查询物料分类
          • 事件
            • 物料分类创建
            • 物料分类删除
            • 物料分类更新
        • 单位
          • API
            • 查询单位
            • 分批查询单位
          • 事件
            • 单位创建
            • 单位删除
            • 单位更新
        • 规格
          • API
            • 删除规格
            • 创建规格
            • 更新规格
            • 查询规格
            • 分批查询规格
          • 事件
        • 仓库
          • API
            • 创建仓库
            • 删除仓库
            • 更新仓库
            • 查询仓库
            • 分批查询仓库
          • 事件
            • 仓库创建
            • 仓库删除
            • 仓库更新
            • 仓库启用
            • 仓库禁用
        • 库位
          • API
            • 创建库位
            • 查询库位
            • 分批查询库位
          • 事件
            • 库位创建
            • 库位删除
            • 库位更新
            • 默认库位设置
      • 库存申请单
        • API
          • 删除入库申请
          • 创建出库申请单
          • 创建移库申请单
          • 作废出库申请
          • 创建入库申请单
          • 作废入库申请
          • 删除出库申请
          • 创建并自动完成出库申请单
          • 创建并自动完成移库申请单
          • 查询出库申请单
          • 创建并自动完成入库申请单
          • 查询入库申请单
        • 事件
          • 申请出库单创建
          • 申请出库单删除
          • 申请出库单更新
          • 申请出库单审核通过
          • 申请出库单审核驳回
          • 申请出库单完成
          • 申请出库单作废
          • 申请入库单创建
          • 申请入库单删除
          • 申请入库单更新
          • 申请入库单审核通过
          • 申请入库单审核驳回
          • 申请入库单完成
          • 申请入库单作废
          • 申请移库单创建
          • 申请移库单删除
          • 申请移库单更新
          • 申请移库单审核通过
          • 申请移库单审核驳回
          • 申请移库单完成
          • 申请移库单作废
      • 申请出库任务
        • API
          • 更新申请出库任务
          • 查询出库申请列表
        • 事件
          • 申请出库任务创建
          • 申请出库任务删除
          • 申请出库任务更新
          • 申请出库任务完成
          • 申请出库任务作废
      • 申请入库任务
        • API
          • 更新申请入库任务
          • 查询入库申请列表
        • 事件
          • 申请入库任务创建
          • 申请入库任务删除
          • 申请入库任务更新
          • 申请入库任务完成
          • 申请入库任务作废
      • 直接移库任务
        • API
          • 移库出入库记录
          • 更新移库任务
        • 事件
          • 申请移库任务创建
          • 申请移库任务删除
          • 申请移库任务更新
          • 申请移库任务完成
          • 申请移库任务作废
      • 物料库存
        • API
          • 查询物料可用库存明细记录
          • 【删除】查询物料库存数量
          • 查询物料库存明细信息
          • 查询物料可用库存明细记录
          • 查询物料库存明细信息
        • 事件
      • 组装拆卸单
        • API
          • 查询组装拆卸单
        • 事件
          • 组装单创建
          • 组装单删除
          • 组装单更新
          • 组装单审核通过
          • 组装单审核驳回
          • 组装单完成
          • 组装单作废
          • 拆卸单创建
          • 拆卸单删除
          • 拆卸单更新
          • 拆卸单审核通过
          • 拆卸单审核驳回
          • 拆卸单完成
          • 拆卸单作废
      • 出入库记录
        • 事件
          • 出入库记录创建
          • 出入库记录撤销
    • 质量域QLTY
      • 生产检验任务
        • 事件
          • 生产检验任务创建
          • 生产检验任务删除
          • 生产检验任务更新
      • 生产检验报工记录
        • API
          • 创建生产检验报工记录
          • 删除生产检验报工记录
          • 作废生产检验报工记录
          • 查询检验记录
          • 分批查询检验记录
          • 查询检验记录行
          • 分批查询检验记录行
        • 事件
          • 生产检验报工记录创建
          • 生产检验报工记录删除
          • 生产检验报工记录更新
      • 生产检验待处理不合格品单
        • 事件
          • 生产检验待处理不合格品单创建
          • 生产检验待处理不合格品单作废
      • 生产检验不合格品处理单
        • 事件
          • 生产检验不合格品处理单创建
          • 生产检验不合格品处理单删除
          • 生产检验不合格品处理单更新
          • 生产检验不合格品处理单审核通过
          • 生产检验不合格品处理单审核驳回
          • 生产检验不合格品处理单完成
          • 生产检验不合格品处理单作废
      • 收料待报检任务
        • 事件
          • 收料待报检任务创建
          • 收料待报检任务更新
          • 收料待报检任务作废
      • 收料检验单
        • API
          • 创建收料检验单
          • 作废收料检验单
          • 删除收料检验单
          • 更新收料检验单审核状态
        • 事件
      • 收料检验报工记录
        • 事件
          • 收料检验报工记录创建
          • 收料检验报工记录删除
      • 收料检待处理不合格品单
        • 事件
          • 收料检待处理不合格品单创建
          • 收料检待处理不合格品单作废
      • 收料检验不合格品处理单
        • 事件
          • 收料检验不合格品处理单创建
          • 收料检验不合格品处理单删除
          • 收料检验不合格品处理单更新
          • 收料检验不合格品处理单审核通过
          • 收料检验不合格品处理单审核驳回
          • 收料检验不合格品处理单完成
          • 收料检验不合格品处理单作废
      • 收料放行单
        • 事件
          • 收料放行单创建
          • 收料放行单删除
          • 收料放行单更新
          • 收料放行单审核通过
          • 收料放行单审核驳回
          • 收料放行单完成
          • 收料放行单作废
      • 收料检验库存申请单
        • 事件
          • 收料检验库存申请单创建
          • 收料检验库存申请单删除
          • 收料检验库存申请单更新
          • 收料检验库存申请单审核通过
          • 收料检验库存申请单审核驳回
          • 收料检验库存申请单完成
          • 收料检验库存申请单作废
      • 库存检验单
        • 事件
          • 库存检验单创建
          • 库存检验单删除
          • 库存检验单更新
          • 库存检验单审核通过
          • 库存检验单审核驳回
          • 库存检验单完成
          • 库存检验单作废
      • 库存检验不合格品处理单
        • 事件
          • 库存检验不合格品处理单创建
          • 库存检验不合格品处理单删除
          • 库存检验不合格品处理单更新
          • 库存检验不合格品处理单审核通过
          • 库存检验不合格品处理单审核驳回
          • 库存检验不合格品处理单完成
          • 库存检验不合格品处理单作废
    • 计划域PLN
      • 生产单计划
        • 事件
          • 生产单计划确认
      • 车间计划
        • 事件
          • 车间计划派发
          • 当前排产编辑
        • API
          • 计划派发
    • 设备域EQUIP
      • 基础数据
        • 设备
          • API
            • 创建设备
            • 更新设备
            • 删除设备
            • 查询设备
          • 事件
            • 设备创建
            • 设备删除
            • 设备更新
            • 设备分类创建
            • 设备分类删除
            • 设备分类更新
      • IOT对接
        • 对接设备数据
  • 客户案例
    • 集成案例
      • MES与畅捷通T+无缝集成,破解业财数据割离难题
      • 电子组装行业——金蝶云星空ERP与新核云MES集成案
  1. 使用指南

Webwidget使用说明

1. Web Widget概述#

1.1 前提条件#

💡
文档面向对象:前端开发、全栈
在开始之前,请确保你的开发环境满足以下要求:
Node.js:版本 ≥ 18.12.1
项目模板链接为:https://gitee.com/newcore2014/newcore-widget-template

1.2 应用场景示例——在列表页无缝创建生产单#

📌
想象一下,您正在系统核心页面(如生产单列表)中进行操作。此时,一个紧急的新建任务需求出现,您是否必须中断当前工作,去复杂的导航中寻找创建入口?
新核云Web Widget提供了完美的解决方案。通过 Top Bar 插件,您可以在任何页面的顶部导航栏嵌入一个轻量化的功能入口。例如,您可以将“快速建单”功能封装为一个 Widget,当用户点击时,一个创建面板会直接在当前页面弹出,用户完成操作后,面板关闭,用户仍停留在原页面,实现真正的 “无感操作” 和 “流程无缝融合”。
它能做什么:
维持上下文:用户无需离开当前页面,即可完成额外操作。
极致聚焦:为单一功能提供最简化的操作界面,排除所有无关信息干扰。
提升效率:将多步骤、跨页面的操作缩短为“点击-输入-提交”三步。
开发者价值:
您无需从零开始构建权限认证和页面布局。只需使用我们的 Widget 模板,开发一个简单的表单组件,并通过几行配置将其挂载到 Top Bar,即可为您的用户提供流畅的体验。
image.png
Web Widget 前端插件效果图

1.3 快速开始(Quickstart)#

以下是快速实现一个简单 Web Widget 的构建步骤:
1
克隆项目模板
git clone https://gitee.com/newcore2014/newcore-widget-template.git
2
安装依赖并启动开发环境
# 安装依赖
pnpm install

# 启动开发服务器(含热更新)
pnpm run dev
pnpm run dev命令启用了热模块替换(HMR),您对代码的修改将立即生效而无需手动刷新页面,极大提升开发体验。
3
配置应用清单
项目模板中的原始 manifest.json 文件可以在快速开始中不经修改直接使用
若需要修改配置,打开/src/manifest.json文件进行编辑(参考3.1 manifest.json配置指南)
修改 name 为你的应用名(如 "Hello World Widget")
修改 author.name 为你自己的名字或团队名。
检查 location.topBar 的尺寸是否合适。
4
修改代码(实时生效)
打开 /src/app/locations/TopBarPlugin.tsx 目录中的文件进行编辑。
修改组件代码(例如 TopBarPlugin.tsx):
<span style=
 {{
   padding: '4px',
   backgroundColor: 'green',
   color: '#fff',
   borderRadius: '8px'
 }}>
   {t('app.hello xhy')}
</span>
若需要直接修改快速创建生产单的组件代码(QuickOrderPage.tsx),请参考 3.2 Location 组件开发。
5
构建生产版本
pnpm run build
产物生成在/dist目录
上传至新核云插件平台(参考4.2 上传应用) 并开启应用状态(如已开启请忽略)
不建议修改打包产物的配置文件!

2. 核心架构与概念#

2.1 项目结构详解#

项目目录树
以下是项目模板的典型结构:
newcore-widget-template/
├── doc/                   # 文档目录
│   └── i18n.md            # 国际化文档
├── rollup/                # Rollup插件目录
│   ├── modifiers/         # 修改器
│   │   ├── manifest.ts        # 清单插件
│   │   └── translations.ts    # 翻译插件
│   ├── static-copy-plugin.ts      # 静态资源复制插件
│   └── translations-loader-plugin.ts # 翻译加载插件
├── spec/                  # 测试目录
│   ├── app.test.jsx       # 应用测试
│   └── i18n.test.js       # 国际化测试
├── src/                   # 源代码目录
│   ├── app/               # 应用代码
│   │   ├── contexts/      # React上下文
│   │   │   └── ClientProvider.tsx  # 客户端Provider
│   │   ├── hooks/         # 自定义Hook
│   │   │   ├── useClient.ts  # 客户端Hook
│   │   │   └──useI18n.tsx    # 国际化Hook
│   │   ├── locations/     # 位置组件
│   │   │   └── TopBarPlugin.tsx    # 顶部栏插件
│   │   ├── App.tsx        # 主应用组件
│   │   ├── index.css      # 全局样式
│   │   └── index.tsx      # 应用入口
│   ├── assets/            # 静态资源
│   │   ├── logo-small.png
│   │   ├── logo.png
│   │   ├── logo.svg
│   │   └── robot_logo_default.png
│   ├── translations/      # 国际化文件
│   │   ├── en-US.json
│   │   └── zh-CN.json
│   ├── i18n.ts           # 国际化配置
│   ├── index.html        # HTML模板
│   ├── manifest.json     # 应用清单
│   └── vite-env.d.ts     # Vite类型定义 
├── .env.development      # 开发环境变量配置
├── .env.production       # 生产环境变量配置
├── .eslintrc             # ESLint 代码检查配置
├── .gitignore            # Git 忽略规则配置
├── .prettierignore       # Prettier 忽略规则配置
├── .prettierrc           # Prettier 代码格式化配置
├── LICENSE               # Apache 2.0 许可证文件
├── README.md             # 项目说明文档
├── custom.d.ts           # 自定义 TypeScript 类型声明
├── package.json          # 项目依赖和脚本配置
├── pnpm-lock.yaml        # pnpm 依赖锁文件
├── react-app-env.d.ts    # React 应用环境类型声明
├── tsconfig.json         # TypeScript 编译配置
├── types.d.ts            # 全局类型定义文件
└── vite.config.ts        # Vite 配置文件

2.2 理解 SDK (@newcore/client)#

@newcore/clientSDK 是 Webwidget 应用与新核云平台的核心连接桥梁,它封装了平台交互的关键能力,使开发者能够专注于业务逻辑而非底层集成。

核心交互功能#

功能模块作用描述使用场景示例
上下文获取获取应用运行环境信息根据用户权限显示不同内容
数据操作安全的平台数据读写获取工单数据、提交表单
事件系统跨组件/应用通信通知其他组件数据更新
用户认证自动处理用户身份验证获取当前用户信息
生命周期管理与应用状态深度集成资源清理、状态保存

SDK 架构设计#

image.png

典型工作流#

image.png

3. 详细配置与开发指南#

3.1 manifest.json 配置指南#

{
  "name": "应用名称",
  "author": {
    "name": "作者名称"
  },
  "location": {
    "topBar": {
      "flexible": true,
      "size": {
        "width": "220px",
        "height": "100px"
      }
    }
    "navBar": {
      "flexible": true,
      "size": {
        "width": "__px", 
        "height": "__px"
      }
    }
    "sideBar": {
      "flexible": true,
      "size": {
        "width": "__px",
        "height": "__px"
      }
    }
  },
  "version": "应用版本",
  "frameworkVersion": "框架版本要求"
}
字段类型必填说明
namestring是应用名称
authorobject是应用作者信息
author.namestring是作者名称
locationobject是应用显示位置配置
location.topBarobject否顶部栏位置配置
location.navBarobject否导航栏位置配置
location.sideBarobject否侧边栏位置配置
flexibleboolean是是否占据父容器
sizeobject是容器尺寸配置
size.widthstring是容器宽度(如"220px")
size.heightstring是容器高度(如"100px")
versionstring是应用版本号
frameworkVersionstring是所需框架最低版本

3.2 Location组件开发#

代码示例

3.2.1 组件代码逻辑#

i. 核心功能架构#

const XINHE_CONFIG = {
  appkey: 'cbd489e2-c888-4477-95a4-4b0d4b2ff935',
  appsecret: 'Zu.1I1&+q7q7<0uC',
  tokenUrl: 'https://c2.xinheyun.com/api/open/v2/token',
  refreshUrl: 'https://c2.xinheyun.com/api/open/v2/token'
};

// Token管理类(封装认证逻辑)
class TokenManager {
  // Token获取、刷新和清理实现
  static async getAccessToken(): Promise<string> { /* ... */ }
}

// 生产单快速创建组件
const QuickOrderPage: React.FC = () => {
  // 国际化支持
  const { t } = useI18n();
  
  // 全局参数获取
  const { globalParams } = useGlobalParams();
  
  // Ant Design消息组件
  const { message } = App.useApp();
  
  // 表单控制
  const [form] = Form.useForm<QuickOrderForm>();
  
  // 状态管理
  const [materials, setMaterials] = useState<Material[]>([]);
  const [loading, setLoading] = useState(false);
  const [submitting, setSubmitting] = useState(false);
  
  // 搜索与分页状态
  const [searchKeyword, setSearchKeyword] = useState<string>('');
  const [currentPage, setCurrentPage] = useState<number>(0);
  const [hasMore, setHasMore] = useState<boolean>(true);
  
  // API交互方法
  const fetchMaterials = async () => { /* ... */ };
  const handleSubmit = async (values: QuickOrderForm) => { /* ... */ };
  
  // UI渲染
  return ( /* ... */ );
};
实际开发中应使用环境变量
💡
架构分层设计:
认证层:TokenManager类封装OAuth2.0认证流程
业务层:fetchMaterials和handleSubmit实现核心业务逻辑
UI层:Ant Design组件构建用户界面
状态层:React Hooks管理组件状态

ii. 核心功能实现#

// 物料获取逻辑
const fetchMaterials = async (page: number = 0, keyword: string = '', append: boolean = false) => {
  setLoading(true);
  try {
    // 获取access_token
    const accessToken = await TokenManager.getAccessToken();
    
    // API调用(带认证头)
    const response = await request.post('https://c2.xinheyun.com/api/open/v3/items/page/query', {
      body: { /* 查询参数 */ }
    }, {
      headers: { 'Authorization': `Bearer ${accessToken}` }
    });
    
    // 数据处理与状态更新
    setMaterials(/* ... */);
  } catch (error) {
    // 错误处理与降级方案
    if (error.response?.status === 401) {
      TokenManager.clearTokens(); // 认证失败清理token
    }
    // 使用模拟数据降级
    setMaterials(/* 模拟数据 */);
  } finally {
    setLoading(false);
  }
};

// 生产单提交
const handleSubmit = async (values: QuickOrderForm) => {
  setSubmitting(true);
  try {
    const accessToken = await TokenManager.getAccessToken();
    
    // 构造生产单数据
    const productionOrder = {
      code: `WO${Date.now()}`,
      itemCode: /* 物料编码 */,
      planQty: values.plannedQuantity,
      endTime: new Date(values.plannedEndDate).getTime(),
      // ...其他字段
    };
    
    // 提交到新核云API
    const resp = await request.post('https://c2.xinheyun.com/api/open/v4/workOrder/create', {
      body: productionOrder
    }, {
      headers: { 'Authorization': `Bearer ${accessToken}` }
    });
    
    // 成功反馈
    message.success(t('app.quickOrder.submitSuccess'));
    form.resetFields();
  } catch (error) {
    // 错误处理
    message.error(t('app.quickOrder.submitError'));
  } finally {
    setSubmitting(false);
  }
};
📗
关键业务逻辑:
1.
认证流程:通过TokenManager处理OAuth2.0令牌获取与刷新
2.
API交互:使用标准化的request库发起API请求
3.
错误处理:
401错误自动清除令牌
提供模拟数据降级方案
用户友好的错误提示
4.
数据转换:将表单数据转换为新核云API所需格式

iii. UI交互实现#

// 表单渲染
<Form form={form} onFinish={handleSubmit}>
  {/* 物料选择(带搜索和分页) */}
  <Form.Item name="materialId">
    <Select
      showSearch
      onSearch={handleSearch}
      options={materials.map(m => ({
        value: m.id,
        label: `${m.name} (${m.code}) - ${m.unit}`
      }))}
      dropdownRender={(menu) => (
        <div onScroll={handleScroll}> {/* 无限滚动容器 */}
          {menu}
          {loading && <div>加载中...</div>}
        </div>
      )}
    />
  </Form.Item>
  
  {/* 数量输入 */}
  <Form.Item name="plannedQuantity">
    <InputNumber min={1} precision={0} />
  </Form.Item>
  
  {/* 日期选择 */}
  <Form.Item name="plannedEndDate">
    <DatePicker disabledDate={current => current < moment().startOf('day')} />
  </Form.Item>
  
  {/* 操作按钮 */}
  <Button type="primary" htmlType="submit" loading={submitting}>
    {t('app.quickOrder.submit')}
  </Button>
</Form>
📦
交互优化点:
搜索防抖:debouncedSearch减少API请求频率
无限滚动:handleScroll实现分页加载
表单验证:内置必填项和数值范围验证
日期限制:禁用过去日期选择
多语言支持:所有UI文本通过t()函数实现国际化
示例中的硬编码密钥仅用于演示,实际生产环境必须使用环境变量存储敏感信息

3.2.2 环境变量与安全配置#

安全配置最佳实践#

# .env.production - 生产环境配置
VITE_XHY_APP_KEY=your_actual_app_key
VITE_XHY_APP_SECRET=your_actual_app_secret
VITE_XHY_API_BASE=https://api.xinheyun.com
VITE_XHY_TOKEN_PATH=/api/open/v2/token

代码中安全使用环境变量#

// 从环境变量获取敏感信息
const XINHE_CONFIG = {
  appkey: import.meta.env.VITE_XHY_APP_KEY,
  appsecret: import.meta.env.VITE_XHY_APP_SECRET,
  tokenUrl: `${import.meta.env.VITE_XHY_API_BASE}${import.meta.env.VITE_XHY_TOKEN_PATH}`
};

// API调用示例
const fetchMaterials = async () => {
  const response = await request.post(
    `${import.meta.env.VITE_XHY_API_BASE}/api/open/v3/items/page/query`,
    { /* ... */ }
  );
};

安全配置要点#

🔒
敏感信息保护:
1.
禁止硬编码:API密钥、访问令牌等敏感信息严禁直接写入源代码
2.
环境变量隔离:
开发/生产环境使用不同变量文件(.env.development/.env.production)
通过import.meta.env访问变量
3.
访问控制:
4.
最小权限原则:API密钥仅授予必要权限
5.
定期轮换:生产环境密钥至少每90天更换一次

安全审计清单#

检查项安全要求检查方法
密钥存储使用环境变量代码扫描
版本控制排除.env文件检查.gitignore
API权限最小必要权限开放平台审计
错误处理不泄露敏感信息测试错误响应
传输安全全程HTTPS网络抓包检查
令牌管理定期刷新机制TokenManager测试
生产环境强制要求:所有接入新核云API的Web Widget必须通过安全评审,未使用环境变量管理密钥的应用将不予上架

3.3 SDK 使用详解#

1
安装SDK(必需)
pnpm add @newcore/client
2
SDK导入
在应用入口文件(如index.tsx)中添加导入语句:
import { XHYClient } from '@newcore/client';
3
SDK初始化
在应用启动时执行异步初始化:
async function initializeApp() {
  try {
    const client = await XHYClient.init();
    // 初始化成功后可以使用client对象
  } catch (error) {
    console.error('初始化失败:', error);
  }
}
4
核心功能使用
获取上下文信息:

3.4 样式与UI开发#

3.4.1 核心原则#

📍
样式隔离:使用CSS Modules避免全局污染
响应式设计:确保在不同位置(topBar/SideBar)自适应
平台一致性:遵循新核云设计规范
主题适配:支持亮色/暗色双模式

3.4.2 样式实现方式#

// 推荐使用CSS Modules(示例:TopBarWidget.module.css)
.widgetContainer {
  padding: 12px;
  border-radius: 8px;
  background-color: var(--xhy-bg-primary); /* 使用设计系统变量 */
}

.flexLayout {
  display: flex;
  gap: 8px;
  align-items: center;
}

// 暗色模式适配
@media (prefers-color-scheme: dark) {
  .widgetContainer {
    border: 1px solid var(--xhy-border-dark);
  }
}

3.4.3 伪代码示例#

响应式布局技巧#

使用设计系统组件(补充)#

动画交互最佳实践#

// React动画组件
import { motion } from 'framer-motion';

function AnimatedCard() {
  return (
    <motion.div
      initial={{ scale: 0.9 }}
      animate={{ scale: 1 }}
      transition={{ duration: 0.2 }}
      whileHover={{ boxShadow: '0 4px 12px rgba(0,0,0,0.1)' }}
    >
      <CardContent />
    </motion.div>
  );
}

3.5 国际化 (i18n)#

3.5.1 实现原理#

Webwidget 应用的国际化基于 JSON 文件翻译机制,通过/src/lib/i18n.ts模块提供的t函数实现多语言支持。系统会自动检测用户的语言偏好并加载对应的翻译文件。

3.5.2 核心流程#

image.png

3.5.3 语言文件配置#

🖥
文件位置:/src/translations/目录
文件命名规范:
简体中文:zh-CN.json
英文(美国):en-US.json
其他语言:[语言代码]-[国家代码].json
示例语言文件:
// zh-CN.json
{
  "app": {
    "title": "员工管理系统",
    "welcome": "欢迎回来, {name}",
    "buttons": {
      "submit": "提交",
      "cancel": "取消"
    }
  },
  "errors": {
    "required": "{field} 是必填项"
  }
}


// en-US.json
{
  "app": {
    "title": "Employee Management",
    "welcome": "Welcome back, {name}",
    "buttons": {
      "submit": "Submit",
      "cancel": "Cancel"
    }
  },
  "errors": {
    "required": "{field} is required"
  }
}

3.5.4 在代码中使用翻译#

import { t } from '@/lib/i18n';

// 在组件中使用
function WelcomeBanner() {
  const { user } = useUser(); // 假设从上下文中获取用户信息

  return (
    <div className="welcome-container">
      <h1>{t('app.title')}</h1>
      
      {/* 带参数的翻译 */}
      <p>{t('app.welcome', { name: user.firstName })}</p>
      
      {/* 嵌套属性访问 */}
      <div className="action-buttons">
        <button>{t('app.buttons.submit')}</button>
        <button>{t('app.buttons.cancel')}</button>
      </div>
    </div>
  );
}

3.5.5 高级用法#

复数形式处理:#

// 在语言文件中
{
  "notifications": {
    "count": "您有 {count} 条通知 | 您有 {count} 条通知"
  }
}

// 在组件中
const notificationCount = 3;
const text = t('notifications.count', { count: notificationCount });
// 根据数量自动选择单复数形式

格式化日期/数字:#

// 语言文件中定义格式
{
  "formats": {
    "date": "YYYY年MM月DD日",
    "currency": "¥{amount}"
  }
}

// 在组件中使用
const today = new Date();
const formattedDate = t('formats.date', { value: today });

const price = 99.9;
const formattedPrice = t('formats.currency', { amount: price.toFixed(2) });

4. 上传与发布#

4.1 构建与部署流程#

1
执行构建命令
pnpm run build
2
验证内容
manifest.json格式正确性
入口文件存在性
资源文件哈希值匹配
3
压缩构建产物
模板项目中构建好应用产物 /dist 并压缩 .zip 文件app.zip
4
备份当前版本压缩包
备份压缩包以便后续回滚
5
部署应用
登录新核云开放平台 https://c2.xinheyun.com/ 并上传应用(参考4.2详细步骤)
6
部署后验证
基础功能检查表
测试项预期结果检查方法
应用加载速度≤N 秒完成浏览器网络面板
SDK初始化无错误日志控制台监控
多语言支持正确显示当前语言切换系统语言
主题适配跟随系统主题变化切换亮/暗模式
7
回滚机制(如遇到问题)
将之前备份的压缩包重新上传进行回滚。

4.2 部署应用详细步骤#

1
登录新核云系统进入应用管理页面
网址:https://c2.xinheyun.com, 导航入口:开放平台->应用
屏幕截图 2025-09-15 154125.png
2
新建应用
在应用页面点击右上角“新建” 按钮进入新建页面
屏幕截图 2025-09-15 154134.png
输入应用信息后点击右下角“保存”按钮
屏幕截图 2025-09-15 154139.png
3
上传应用
在模板项目中构建好应用产物/dist并压缩 .zip 文件,在应用详情页面,点击右上角“上传”,在上传应用页面将.zip上传到系统中
屏幕截图 2025-09-15 154246.png
或者可以在应用列表页点击“更多”选择上传应用文件
屏幕截图 2025-09-15 154259.png
屏幕截图 2025-09-15 154321.png
4
部署验证
即 4.1 构建与部署——步骤六

5. 获取帮助#

访问 新核云社区——开放平台 提问
修改于 2025-09-26 08:56:20
上一页
事件订阅参考
下一页
制造域 MFR
Built with