当前位置: 首页 > article >正文

UniApp 生产批次管理模块技术文档

UniApp 生产批次管理模块技术文档

1. 运行卡入站页面 (RunCardIn)

1.1 页面结构

<template><!-- 页面容器 --><view class="runCardIn" :style="{ paddingTop: padding }"><!-- 页头组件 --><pageHeader :title="$t('MENU:MES:WAP:TRACKIN')"></pageHeader><!-- 搜索输入框 --><view class="search"><input v-model="runCardId" type="search" :placeholder="$t('PMSG012005')"@confirm="getLotDataByLotId"/></view><!-- 主体内容 --><view class="main" v-if="isShowItem"><!-- 信息展示区 --><van-cell class='jc_between' :title="$t('PLBL003REPAIRORDER')" :value="lotDataInfo.woId" /><!-- 动态操作区 --><van-cell v-if="lotDataInfo.stepName == 'R'":title="$t('维修工序')" :value="serviceProcName"/><!-- 条件显示区块 --><view class="hide-box" v-if="selectedOpCat === 'D'"><van-cell title="去投电极" is-link @click="toFeedingElePage"/></view></view></view>
</template>

1.2 核心功能实现

1.2.1 页面初始化
onLoad(option) {// 获取状态栏高度const statusBarHeight = uni.getStorageSync("statusBarHeight");this.padding = `${statusBarHeight + 28}px`;// 接收参数初始化this.operatorEmpNo = option.operatorEmpNothis.runCardId = option.lotId// 自动查询数据if(this.runCardId) {this.getLotDataByLotId()}
}
1.2.2 数据获取方法
// 根据批次ID获取数据
getLotDataByLotId() {uni.showLoading({ title: "loading..." });this.$http.get(`${API}/query?lotId=${this.runCardId}`).then((res) => {this.lotDataInfo = res.datathis.handleProcessData(res.data)}).catch(err => this.handleError(err))
}// 处理工艺数据
handleProcessData(data) {if (data.stepName === 'R') {this.getRepairProcedure("R")} else {this.getstation(data.processName)}
}

1.3 关键技术点

1.3.1 多语言实现
<!-- 使用$t方法进行国际化 -->
<van-cell :title="$t('LBL101BATCHNO')" />
1.3.2 条件渲染
<!-- 根据工序类型显示不同内容 -->
<view v-if="selectedIsEqp==='Y'"><van-cell :title="$t('设备编号')" :value="deviceCode" required />
</view>
1.3.3 表单验证
beforeRunCardOutSubmitCheck() {// 设备校验if(this.selectedIsEqp==='Y' && !this.deviceCode) {this.$toast("设备编码不能为空")return}// 工序校验if (!this.selectedOpId) {this.$toast("请先选择工序")return}// 提交前确认this.$refs.removeDialog.open()
}

2. 投料界面 (MaterialFeeding)

2.1 页面结构

<template><view class="receMaterial"><!-- 弹窗组件 --><van-dialog :show="showGetMateDialog"@close="showGetMateDialog = false"><view class="content"><van-cell :title="$t('料号')" :label="mateInfo.mtrlPartNo" /><van-cell :title="$t('数量:')"><input v-model="qty" type="digit" placeholder="请输入投料数量"/></van-cell></view></van-dialog></view>
</template>

2.2 核心功能实现

2.2.1 条码扫描处理
checkBarcode() {if (!this.mateBarcode) returnthis.$http.get(`${API}/scan?barcode=${this.mateBarcode}`).then(res => {this.mateInfo = res.datathis.showDialog()})
}
2.2.2 数据提交
post() {// 数量验证if (this.qty <= 0 || this.qty > this.mateInfo.mtrlQty) {this.$toast("数量无效")return}// 构造请求参数const params = {woId: this.woId,qty: this.qty,mtrlBarcode: this.mateInfo.mtrlBarcode}this.$http.post(`${API}/post`, params).then(() => this.handleSuccess())
}

2.3 关键技术点

2.3.1 折叠面板
<u-collapse @change="handleCollapseChange"><u-collapse-item v-for="item in lotMaterial" :title="item.materialNo"><text>{{ `(${item.scanNum}/${item.totalNum})` }}</text></u-collapse-item>
</u-collapse>
2.3.2 状态管理
// 更新物料状态
updateMaterialStatus() {this.lotMaterial.forEach(item => {item.status = item.scanNum >= item.totalNum ? '完成' : '进行中'})
}

3. 通用技术方案

3.1 样式穿透方案

/* Less语法 */
/deep/ .custom-dialog {width: 800px !important;
}/* CSS原生语法 */
::v-deep .van-cell__title {font-weight: bold;
}

3.2 页面适配方案

// 获取状态栏高度
const statusBarHeight = uni.getSystemInfoSync().statusBarHeight
this.padding = `${statusBarHeight + 28}px`// 响应式布局
@media (max-width: 768px) {.container {flex-direction: column;}
}

3.3 数据缓存策略

// 缓存工艺数据
cacheProcessData(data) {uni.setStorageSync('processData', JSON.stringify(data))
}// 读取缓存
getCachedData() {return JSON.parse(uni.getStorageSync('processData') || '{}')
}

4. 组件库使用规范

4.1 Vant组件使用

组件用途关键属性
<van-cell>信息展示单元title, value, is-link
<van-dialog>模态弹窗:show, @confirm, @cancel
<van-collapse>可折叠内容区v-model, accordion
<van-button>按钮组件type, size, @click

4.2 UniApp API使用

// 页面跳转
uni.navigateTo({url: `/pages/detail?id=${id}`
})// 显示加载状态
uni.showLoading({title: '加载中...',mask: true
})// 获取系统信息
const systemInfo = uni.getSystemInfoSync()

5. 最佳实践建议

5.1 性能优化

  1. 数据分页加载:对长列表实现滚动加载
  2. 图片懒加载:使用<image>的lazy-load属性
  3. 组件按需加载:配置Vant的按需引入

5.2 安全规范

  1. 对用户输入进行XSS过滤
  2. 敏感数据加密存储
  3. 接口请求添加权限验证

5.3 异常处理

// 统一错误处理
this.$http.post(url, data).catch(error => {console.error('[API Error]', error)this.$toast(error.message || '请求失败')})

附录:技术栈说明

技术项版本用途
UniApp3.0+跨端开发框架
Vant Weapp1.10+移动端组件库
Vue.js2.6+前端框架
Axios0.21+HTTP客户端
Less3.12+CSS预处理器
ESLint7.32+代码质量检查

相关文章:

UniApp 生产批次管理模块技术文档

UniApp 生产批次管理模块技术文档 1. 运行卡入站页面 (RunCardIn) 1.1 页面结构 <template><!-- 页面容器 --><view class"runCardIn" :style"{ paddingTop: padding }"><!-- 页头组件 --><pageHeader :title"$t(MENU:…...

项目日记 -Qt音乐播放器 -设置任务栏图标与托盘图标

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【Qt音乐播放器】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 代码仓库&#xff1a;MusicPlayer v1.0版视频展示&#xff1a;Qt -音乐播放器(仿网易云)V1.0 前言 本文的目标&#xff1a; 一是设置任务栏的图标&#xff0c; 二…...

国产 BIM 软件万翼斗拱的技术突破与现实差距 —— 在创新与迭代中寻找破局之路

万翼斗拱在国产BIM领域迈出重要一步&#xff0c;凭借二三维一体化、参数化建模及AI辅助设计等功能形成差异化竞争力&#xff0c;在住宅设计场景中展现效率优势&#xff0c;但与国际主流软件相比&#xff0c;在功能完整性、性能稳定性和生态成熟度上仍有显著差距&#xff0c;需通…...

记录算法笔记(2025.5.29)最小栈

设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int get…...

Android SurfaceFlinger核心工作机制

SurfaceFlinger 核心工作机制解析 1. 启动入口与初始化流程 (1) 进程启动入口 二进制文件&#xff1a;/system/bin/surfaceflinger 源码路径&#xff1a;frameworks/native/services/surfaceflinger/main_surfaceflinger.cppint main(int, char**) {// 1. 初始化进程配置sig…...

Golang|etcd服务注册与发现 策略模式

etcd 是一个开源的 分布式键值存储系统&#xff08;Key-Value Store&#xff09;&#xff0c;主要用于配置共享和服务发现。 ETCD是一个键值&#xff08;KV&#xff09;数据库&#xff0c;类似于Redis&#xff0c;支持分布式集群。ETCD也可以看作是一个分布式文件系统&#xff…...

深度解析UniApp盲盒系统开发:从源码架构到多端部署全流程

​一、正版盲盒系统的技术选型与源码设计​ ​跨平台开发框架的核心配置​ ​UniApp多端适配方案​ 环境搭建&#xff1a;全局安装vue/cli与npm install -g dcloudio/uni-cli&#xff0c;通过uni -V验证版本&#xff08;需≥3.0&#xff09;。多端编译命令&#xff1a; # 编译微…...

STM32的OLED显示程序亲测可用:适用于多种场景的稳定显示解决方案

STM32的OLED显示程序亲测可用&#xff1a;适用于多种场景的稳定显示解决方案 【下载地址】STM32的OLED显示程序亲测可用 这是一套专为STM32设计的OLED显示程序&#xff0c;经过实际测试&#xff0c;运行稳定可靠。支持多种OLED屏幕尺寸和类型&#xff0c;提供丰富的显示效果&am…...

【AI News | 20250529】每日AI进展

AI Repos 1、WebAgent 阿里巴巴通义实验室近日发布了WebDancer&#xff0c;一款旨在实现自主信息搜索的原生智能体搜索推理模型。WebDancer采用ReAct框架&#xff0c;通过分阶段训练范式&#xff0c;包括浏览数据构建、轨迹采样、监督微调和强化学习&#xff0c;赋予智能体自主…...

Day12 - 计算机网络 - HTTP

HTTP常用状态码及含义&#xff1f; 301和302区别&#xff1f; 301&#xff1a;永久性移动&#xff0c;请求的资源已被永久移动到新位置。服务器返回此响应时&#xff0c;会返回新的资源地址。302&#xff1a;临时性性移动&#xff0c;服务器从另外的地址响应资源&#xff0c;但…...

Linux驱动学习笔记(十)

热插拔 1.热插拔&#xff1a;就是带电插拔&#xff0c;即允许用户在不关闭系统&#xff0c;不切断电源的情况下拆卸或安装硬盘&#xff0c;板卡等设备。热插拔是内核和用户空间之间&#xff0c;通过调用用户空间程序实现交互来实现的&#xff0c;当内核发生了某种热拔插事件时…...

如何优化Elasticsearch的搜索性能?

优化 Elasticsearch 的搜索性能需要从索引设计、查询优化、硬件配置和集群调优等多方面入手。以下是系统化的优化策略和实操建议: 一、索引设计优化 1. 合理设置分片数 分片大小:单个分片建议 10-50GB(超过50GB会影响查询性能)。分片数量: 总分片数 ≤ 节点数 1000(避免…...

TI dsp FSI (快速串行接口)

简介 快速串行接口&#xff08;FSI - Fast Serial Interface &#xff09;模块是一种串行通信外设&#xff0c;能够在隔离设备之间实现可靠的高速通信。在两个没有共同电源和接地连接的电子电路必须交换信息的情况下&#xff0c;电气隔离设备被使用。 虽然隔离设备促进了信号通…...

责任链模式:构建灵活可扩展的请求处理体系(Java 实现详解)

一、责任链模式核心概念解析 &#xff08;一&#xff09;模式定义与本质 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;其核心思想是将多个处理者对象连成一条链&#xff0c;并沿着这条链传递请求&#xff0c;直到有某…...

nlp中的频率就是权重吗

&#x1f522; 一、“频率”是什么&#xff1f; 在 NLP 中&#xff0c;**词频&#xff08;frequency&#xff09;**通常指的是&#xff1a; 某个单词或 token 在语料库中出现的次数&#xff08;或比例&#xff09; 举例&#xff1a; "The cat sat on the mat. The cat i…...

融智学“新五常”框架:五维方式的重构与协同

融智学“新五常”框架&#xff1a;五维方式的重构与协同 一、理论基底&#xff1a;从传统老五常到当代新五常的范式跃迁 邹晓辉教授提出的新五常&#xff08;生活方式DBA、学习方式DBA、工作方式DBA、旅行方式DBA、娱乐方式DBA&#xff09;&#xff0c;本质是将融智学的核心原…...

wechat-003-学习笔记

1.路由跳转页面&#xff1a;携带的参数会出现在onlaod中的options中。 注意&#xff1a;原生小程序对路由传参的长度也有限制&#xff0c;过长会被截掉。 2.wx.setNavigationBarTitle(Object object) 动态设置当前页面的标题 3.在根目录中的app.json文件中配置 后台播放音乐的能…...

【大模型微调】魔搭社区GPU进行LLaMA-Factory微调大模型自我认知

文章概要&#xff1a; 本文是一篇详细的技术教程&#xff0c;介绍如何使用魔搭社区&#xff08;ModelScope&#xff09;的GPU资源来进行LLaMA-Factory的模型微调。文章分为11个主要步骤&#xff0c;从环境准备到最终的模型测试&#xff0c;系统地介绍了整个微调流程。主要内容包…...

基于MATLAB编程针对NCV检测数据去漂移任务的完整解决方案

以下为针对NCV检测数据去漂移任务的完整解决方案&#xff0c;基于MATLAB编程实现&#xff0c;结构清晰&#xff0c;内容详实&#xff0c;满足技术深度。 NCV信号尾部漂移处理与分析 1. 任务背景与目标 神经传导速度&#xff08;NCV&#xff09;检测信号易受环境干扰与设备漂移…...

【数据结构】哈希表的实现

文章目录 1. 哈希的介绍1.1 直接定址法1.2 哈希冲突1.3 负载因子1.4 哈希函数1.4.1 除法散列法/除留余数法1.4.2 乘法散列法1.4.3 全域散列法 1.5 处理哈希冲突1.5.1 开放地址法1.5.1.1 线性探测1.5.1.2 二次探测1.5.1.3 双重探测1.5.1.4 三种探测方法对比 1.6.3 链地址法 2. 哈…...

永磁同步电机控制算法--基于电磁转矩反馈补偿的新型IP调节器

一、基本原理 先给出IP速度控制器还是PI速度控制器的传递函数&#xff1a; PI调节器 IP调节器 从IP速度控制器还是PI速度控制器的传递函数可以看出&#xff0c;系统的抗负载转矩扰动能力相同,因此虽然采用IP速度控制器改善了转速环的超调问题&#xff0c;但仍然需要通过其他途…...

RabbitMQ 应用 - SpringBoot

以下介绍的是基于 SpringBoot 的 RabbitMQ 开发介绍 Spring Spring AMQP RabbitMQ RabbitMQ tutorial - "Hello World!" | RabbitMQ 工程搭建步骤: 1.引入依赖 2.编写 yml 配置,配置基本信息 3.编写生产者代码 4.编写消费者代码 定义监听类,使用 RabbitListener…...

基于递归思想的系统架构图自动化生成实践

文章目录 一、核心思想解析二、关键技术实现1. 动态布局算法2. 样式规范集成3. MCP服务封装三、典型应用场景四、最佳实践建议五、扩展方向一、核心思想解析 本系统通过递归算法实现了Markdown层级结构到PPTX架构图的自动转换,其核心设计思想包含两个维度: 数据结构递归:将…...

OpenGL Chan视频学习-9 Index Buffers inOpenGL

bilibili视频链接&#xff1a; 【最好的OpenGL教程之一】https://www.bilibili.com/video/BV1MJ411u7Bc?p5&vd_source44b77bde056381262ee55e448b9b1973 函数网站&#xff1a; docs.gl 说明&#xff1a; 1.之后就不再单独整理网站具体函数了&#xff0c;网站直接翻译会…...

《基于AIGC的智能化多栈开发新模式》研究报告重磅发布! ——AI重塑软件工程,多栈开发引领未来

在人工智能技术迅猛发展的浪潮下&#xff0c;软件开发领域正经历一场前所未有的范式革命。在此背景下&#xff0c;由贝壳找房&#xff08;北京&#xff09;科技有限公司、中国信息通信研究院云计算与大数据研究所联合编写&#xff0c;阿里、腾讯、北京大学、南京大学、同济大学…...

热门大型语言模型(LLM)应用开发框架

我们来深入探索这些强大的大型语言模型&#xff08;LLM&#xff09;应用开发框架&#xff0c;并且我会尝试用文本形式描述一些核心的流程图&#xff0c;帮助您更好地理解它们的工作机制。由于我无法直接生成图片&#xff0c;我会用文字清晰地描述流程图的各个步骤和连接。 Lang…...

Nginx安全防护与HTTPS部署实战

目录 前言一. 核心安全配置1. 隐藏版本号2. 限制危险请求方法3. 请求限制&#xff08;CC攻击防御&#xff09;&#xff08;1&#xff09;使用nginx的limit_req模块限制请求速率&#xff08;2&#xff09;压力测试验证 4. 防盗链 二. 高级防护1. 动态黑名单&#xff08;1&#x…...

JAVA重症监护系统源码 ICU重症监护系统源码 智慧医院重症监护系统源码

智慧医院重症监护系统源码 ICU重症监护系统源码 开发语言&#xff1a;JavaVUE ICU护理记录&#xff1a;实现病人数据的自动采集&#xff0c;实时记录监护过程数据。支持主流厂家的监护仪、呼吸机等床旁数字化设备的数据采集。对接检验检查系统&#xff0c;实现自动化录入。喜…...

静态资源js,css免费CDN服务比较

静态资源js,css免费CDN服务比较 分析的 CDN 服务列表&#xff1a; BootCDN (https://cdn.bootcdn.net/ajax/libs)jsDelivr (主域名) (https://cdn.jsdelivr.net/npm)jsDelivr (Gcore 镜像) (https://gcore.jsdelivr.net/npm)UNPKG (https://unpkg.com)ESM (https://esm.sh)By…...

组合型回溯+剪枝

本篇基于b站灵茶山艾府。 77. 组合 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]示例 2&#…...