【uniapp】实战一人员交接班

server/2024/12/21 18:43:51/

前言

最近公司在搞一个功能,实现现场交接班的人知道需要作业前,需要提前检查、准备的工作,然后这个活安排到了我这,临时抱佛脚,赶制了一个粗略的成品。

项目成果展示

首页:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目结构解析

在这里插入图片描述

项目结构介绍:
1、pages/:存放应用的页面文件,包含页面的 Vue 文件、JS 文件、配置文件等。
2、static/:存放静态资源(如图片、字体等)的文件夹。
3、manifest.json:应用的全局配置文件,用于配置应用的基本信息和平台特定设置。比如打包时,需要生成的 appid、应用名称啥的就在这个文件配置
4、 src/:用于存放源代码,包括组件、工具类、API、状态管理等。
5、node_modules/:存放项目依赖的第三方模块。
6、package.json:定义项目依赖和配置的文件。

APP.VUE:在这文件添加的样式和界面布局 是设置为全局vue界面的样式
pages.json:给所有的page页面添加路由,可以理解为界面的目录;

我的项目没有加啥依赖包,所以部分文件结构没有。
以下是pages.json文件
在这里插入图片描述

开发思路

我刚开发这个项目的时候,完全是瞎搞,一开始就是从业务界面开始着手。但是现在看来,刚开始接触uniapp开发的小白的话,
1、弄清楚整个项目结构、每个文件的作用、项目是怎么去运行的等等基础的知识需要具备
2、脑海里大概有一个功能啊、界面啥的雏形;
3、界面开发:首页(index.vue)、子页,最后配置
你的界面路由(pages.json),再到(manifest.json)p配置项目基本信息

开发中的一些问题

1、我一直说先理解项目结构的原因就是,我在这踩坑了。我在给项目界面添加路由时,就是原本应该写在index.vue界面中的代码写在了 APP.VUE界面中,除了界面有些杂乱外,其中一个影响就是直接导致功能中的一些交换失效。排查了很久,只知道是哪个APP.VUE添加了新代码后导致的失效,但是具体原因不清楚,百度给的回答是:线程堵塞啥的,但是直接把路由那一块代码删掉,交互依然失效,后面尝试了一下是应该添加在index.vue。那么我为啥一开始不写在INDEX.VUE文件中呢,因为没看到这个文件,很离谱,只注意到了APP.VUE和index.html这俩文件,发现index.html修改了界面但是没生效,所以就加在了app.vue中。
2、就是注意uniapp的语法,一些地方用 :赋值,一些用=赋值,用错了就报错。

源代码

index.vue代码:

<template><div id="app"><!-- 使用按钮触发页面跳转 --><button @click="goToPage('pages/DataRecord/DataRecord')">交接信息录入</button><button @click="goToPage('pages/DataRecord/QueryRecordData')">交接信息查询</button><router-view></router-view></div>
</template><script>export default {data() {return {title: 'Hello'}},onLoad() {/* uni.showToast({title: '标题',duration: 2000}); */},methods: {goToPage(page) {uni.navigateTo({url:'/'+page,});}}}
</script><style>.content {display: flex;flex-direction: column;align-items: center;justify-content: center;}.title {background-color: lightblue;padding: 10px;border-radius: 5px;margin-bottom: 20px;text-align: center;}.logo {height: 200rpx;width: 200rpx;margin-top: 200rpx;margin-left: auto;margin-right: auto;margin-bottom: 50rpx;}.text-area {display: flex;justify-content: center;}.title {font-size: 36rpx;color: #8f8f94;}
</style>

交接信息录入界面:

<template><view class="container"><view class="form-group-no"><text class="label">*工号:</text><input type="text" v-model="employeeId" placeholder="请输入工号" class="input"@confirm="NoSerach($event)" @iconClick="xmIconClick" maxlength="9" /></view><!-- 日期 --><view class="form-group-no"><text class="label">*日期:</text><picker mode="date" :start="startDate" :end="endDate" @change="onDateChange"><view class="picker"><text>{{ selectedDate }}</text></view></picker></view><!-- 班次 --><view class="form-group-no"><text class="label">*班次:</text><picker mode="selector" :range="shifts" @change="onShiftChange"><view class="picker"><text>{{ selectedShift }}</text></view></picker></view> <view class="form-group"><text class="label">姓名:</text><input type="text" v-model="employeeName" readonly placeholder="自动带出" class="input"  disabled /></view><view class="form-group"><text class="label">角色:</text><input type="text" v-model="role" readonly placeholder="自动带出"  class="input" disabled /></view><view class="form-group"><text class="label">线体:</text><input type="text" v-model="lineCode" readonly placeholder="自动带出" class="input" disabled /></view><view class="form-group"><text class="label">机台:</text><input type="text" v-model="equipmentCode" readonly placeholder="自动带出" class="input" disabled /></view><view class="form-group"><text class="label">工序:</text><input type="text" v-model="specCode" readonly placeholder="自动带出" class="input" disabled /></view><checkbox-group @change="onCheckboxChange"><text class="label">*选择 问题类型(可多选):</text><view v-for="(item, index) in data" :key="index" class="checkbox-item"><!-- Checkbox列 --><checkbox :value="item" /> <!-- 问题类型列 --><text>{{ item.MainProblem +" : "}}</text><!-- 问题描述列 --><text>{{ item.SubProblem }}</text></view></checkbox-group><view class="form-group"><text class="label">备注:</text><input type="text" v-model="remark" placeholder="请输入备注信息" class="input" /></view><view class="form-group"><text class="label">交接人工号:</text><input type="text" v-model="operatorId" @confirm="verifyNo($event)" placeholder="请输入交接人工号" class="input" /></view><view class="form-group"><text class="label">交接人姓名:</text><input type="text" v-model="operatorName" readonly placeholder="自动带出" class="input" @confirm="verfiyNo" /></view><button @click="submitForm" class="submit-btn">确认提交</button></view>
</template><script>uni.showToast({title:'asdasdasd'});export default {name:'DataRecord',data() {return {checkstatus:null,data: [],//{MainProblem:'',SubProblem:''}employeeId: '', // 工号employeeName: '', // 姓名role: '', // 角色lineCode: '', // 产线equipmentCode: '', // 设备机台specCode: '',

http://www.ppmy.cn/server/152012.html

相关文章

Linux系统加固

Linux系统安全加固 文章目录 Linux系统安全加固密码策略文件、目录安全未授权suid、未授权sgid排查与加固禁止root登录ftp、禁止匿名访问ftp计划任务排查与加固、开机自启排查与加固限定root用户远程ssh登录日志加固 无用账号、用户组和空口令账户排查与加固 禁用或删除无用账号…

JAVA集合-LIST 及源码解析

目录 常见的 List 操作 1. 创建 List 2.访问元素 3. 修改元素 4. 删除元素 5. 遍历 List 6. 获取 List 的大小 7. 检查 List 是否包含某个元素 ArrayList vs LinkedList ArrayList 源码详解 一、属性解析 二、构造方法解析 三、核心方法解析 add(E e)&#xff1a…

小程序中使用 Vue2 + Vuex 实现数据存储与获取

在小程序开发中&#xff0c;数据的存储与获取是一个非常重要的环节。本文将介绍如何在小程序中使用 Vue2 和 Vuex 实现数据的存储与获取。我们将通过一个具体的例子来展示如何在 Vuex 中管理用户信息和机构信息&#xff0c;并在组件中使用这些数据。 项目结构 首先&#xff0…

鸿蒙学习笔记:用户登录界面

文章目录 1. 提出任务2. 完成任务2.1 创建鸿蒙项目2.2 准备图片资源2.3 编写首页代码2.4 启动应用 3. 实战小结 1. 提出任务 本次任务聚焦于运用 ArkUI 打造用户登录界面。需呈现特定元素&#xff1a;一张图片增添视觉感&#xff0c;两个分别用于账号与密码的文本输入框&#…

搭建一个简单的Web服务器(Apache2.4)

一、下载安装包 Apache服务器的官方下载地址&#xff1a;http://httpd.apache.org windows系统的安装软件下载地址&#xff1a;https://www.apachelounge.com/download/ 下载的是免安装的版本&#xff1a;httpd-2.4.62-240904-win64-VS17.zip 解压后将 Apache24 拷贝到 D 盘&…

c++ 找第一个只出现一次的字符

【题目描述】 给定一个只包含小写字母的字符串&#xff0c;请你找到第一个仅出现一次的字符。如果没有&#xff0c;输出no。 【输入】 一个字符串&#xff0c;长度小于100000。 【输出】 输出第一个仅出现一次的字符&#xff0c;若没有则输出no。 【输入样例】 abcabd【输出样…

Android 折叠屏问题解决 - 展开后布局未撑开

一、说明 正常情况下手机展开折叠时页面会销毁重建&#xff0c;但可以通过参数设置禁止销毁重建。 android:configChanges"orientation|screenSize|screenLayout|smallestScreenSize" 但设定完后发现 RecyclerView 中的 item 没有重新按照新的尺寸进行改变&#x…

ASR-LLM-TTS 实时语音对话助手:语音识别、大模型对话、声音生成

参考:https://blog.csdn.net/weixin_42357472/article/details/137020794 asr:funasr-SenseVoiceSmall 离线 llm:deepseek 在线api tts:edge-tts 在线api import pyaudio import wave import threading import numpy as np import time from queue import Queue import web…