2022/1/21-2022/2/5
2022/1/21
通过列表的find方法获取指定用户的上班列表
业务逻辑说来不过增删改查,add,remove,list等,get,post,delete都是可以照着模仿的。
像 : @click =" show = true " show=true就是一个表达式, 相当于 @click=“f(n)” f(n)就是
show=true。 举个例子,设置添加按钮,触发时弹出弹窗,弹窗的显示就是靠show=true.
v-自定义指令,比如v-only-admin,虽然是一个属性,但是它是一个方法,当方法里面有设置
样式 style.display="none"的时候,这个指令就有了权限。
2022/1/22
user.info 获取用户信息
const getShangbanDate = async()=>{
const res = await user.info();
result(res)
.success((data) => {
console.log(data);
})
};
2022/1/24
时间格式转化为时间戳 Date.parse(new Date())
时间戳转换为时间格式 假设时间戳为a,那么就new Date(a)
const getShangbanData = async () =>{
const res = await user.info();
result(res)
.success(({ data }) => {
account.value = data.account;
});
if(!getSign()||(new Date(flagTime.value).getDate()!=new Date().getDate())){
//这里有个bug,第二天了就应该重新新增一条并且显示新增的那条才对
const res1 = await usersign.add(account.value);
result(res1)
.success(({ data }) => {
allTime.value = data;
shangbanDate.value= Date.parse(allTime.value.shangbanDate);
flagTime.value = shangbanDate.value;
shangbanDate.value = formatTimestamp(shangbanDate.value);
setSign(shangbanDate.value);
});
}
else{
message.error("已经签到,切勿重复签到!");
}
};
const getXiabanData = async () =>{
const res = await user.info();
result(res)
.success(({ data }) => {
account.value = data.account;
});
console.log(account.value);
const res1 = await usersign.update(account.value);
result(res1)
.success(({ data }) => {
allTime.value = data;
xiabanDate.value= Date.parse(allTime.value.xiabanDate) ;
xiabanDate.value = formatTimestamp(xiabanDate.value);
});
};
2022/1/25
做进一步的优化,让上下班签到的接口一致
const getXiabanData = async () =>{
const res = await user.info();
result(res)
.success(({ data }) => {
account.value = data.account;
});
console.log(account.value);
const res1 = await usersign.add(account.value,"xiaban");
result(res1)
.success(({ data }) => {
allTime.value = data;
xiabanDate.value= Date.parse(allTime.value.xiabanDate) ;
xiabanDate.value = formatTimestamp(xiabanDate.value);
});
};
if(!getSign()||(new Date(flagSTime.value).getDate()!=new Date().getDate())||
!getxiaSign()||(new Date(flagXTime.value).getDate()!=new Date().getDate()))
space-between 内部div的内部会换行是因为出现了块,所以需要设置“迟到”样式为display:inline-block,否则就会换行。
例子:
<a-button
@click=“getSignData(‘1’)”
type=“primary”
>
上班签到
</div>
<div>
{{formatTimestamp(shangbanDate)}}
<h6 style="display:inline-block">迟到</h6>
</div>
</space-between>
2022/1/26
const getSignData = async (flag) =>{
sign.value = Number(getSign());
xiasign.value = Number(getxiaSign());
console.log(new Date(xiasign.value).getDate()!=new Date().getDate());
if(
new Date(sign.value).getDate()!=new Date().getDate()||
new Date(xiasign.value).getDate()!=new Date().getDate()){
console.log(1);
//这里有个bug,第二天了就应该重新新增一条并且显示新增的那条才对
const res = await user.info();
result(res)
.success(({ data }) => {
account.value = data.account;
});
const res1 = await usersign.add(account.value,flag);
result(res1)
.success(({ data }) => {
allTime.value = data;
if(flag=="xiaban"){
xiabanDate.value= Date.parse(allTime.value.xiabanDate) ;
setxiaSign(xiabanDate.value);
}
else{
shangbanDate.value= Date.parse(allTime.value.shangbanDate);
setSign(shangbanDate.value);
}
});
}
else if(new Date(sign.value).getDate()==new Date().getDate()){
//如果不是第二天,就是更新当天的签到情况
}
else{
message.error("已经签到,切勿重复签到!");
}
};
前端写判断条件是为了减少向后端发起请求,后端是负责业务。
建议localstorage存储的数据应该存储在vuex里,这样数据才会响应式变化。
关于之前通过store.state获取userinfo,一直获取不到,是因为是userInfo,而不是userinfo,
i没有大写。下次遇到这种情况就先打印store.state看一下有值吗。然后再取里面的值。
bug:findUser更新的时间应该是最新一条,更新错了,希望能倒序找。
.find(query)
.sort({
_id: -1,
})
.skip((page - 1) * size)
.limit(size)
.exec();
query是对象。 比如({user})。而不是(user).
通过这种方法得到的是数组。
举个例子:const findUser = await UserSign.find({user,}).sort({_id:-1,}).limit(1).exec();
console.log(new Date(Date.parse(findUser[0].shangbanDate)).getDate());
如果是findUser.shangbanDate是获取不到值的。
先保留:
const getSignData = async (flag) =>{
sign.value = Number(getSign());
xiasign.value = Number(getxiaSign());
//这里有个bug,第二天了就应该重新新增一条并且显示新增的那条才对
//页面需要刷新页面才会及时更新数据
//每点击一次后台就会添加数据,而不是更新数据
account.value = store.state.userInfo.account;
const res1 = await usersign.add(account.value,flag);
result(res1)
.success(({ data }) => {
allTime.value = data;
if(flag==“xiaban”){
xiabanDate.value= Date.parse(allTime.value.xiabanDate) ;
setxiaSign(xiabanDate.value);
}
else{
shangbanDate.value= Date.parse(allTime.value.shangbanDate);
setSign(shangbanDate.value);
}
shangbanDate.value = localStorage.getItem("_ss");
xiabanDate.value=localStorage.getItem("_xx");
console.log(shangbanDate.value);
});
};
想让页面一开始就有显示值的方法是在return处就进行赋值。
想实现这个功能,其实是不用存到localstorage里的。
2022/1/27
删除了迟到的样式:
迟到
应该是只有对象才能被解构
关于axios.get 方法。发现它的传参写法跟post的传参写法是一样的,但是因为存的方式不同,
所以获取的方式不同。
在router中.post的参数通过ctx.request.body获取,而get的参数通过ctx.params获取。
因为curPage是局部变量,所以setPage里面用了getList函数,这样getList函数就可以获取setPage的curpage的值,这也正是利用了闭包原理。
遇到了一个onMounted函数的bug问题,首先写在onMounted函数里的函数就相当于一个自动执行的函数,发生于刷新页面之时。onMounted是一个钩子函数,是一定会执行的。
函数有两种执行方式,一种通过钩子函数,某个时间自动触发执行。一种是事件触发,通过
按钮执行。
上下班签到:
上班八点后签到就算迟到,
下班后六点后签到就算上班一天辛苦了,八点签到就算加班一天。
用户算是完成签到页面了,现在要完成用户的个人资料编辑。
页面显示用户信息,然后用户可以进行个人信息修改。
(个人设置一是可以修改密码,二是可以修改个人信息。)
bug:商品的编辑功能:有一个curEditGood的,其中有的写成了curEditgood,大小写不同,需要改成一致。
发现了ref声明和reactive声明还有一个区别,就是对象。
如果是ref的话,就是变量.value.属性。
如果是reactive的话,就是变量.属性。
2022/1/28
猜测:ctx.params约是前端网页route.params, (const route = useRoute();)也就是get,
get也就是router.push
r
e
c
o
r
d
.
i
d
:
r
o
u
t
e
r
.
p
u
s
h
(
‘
/
g
o
o
d
s
/
{record._id} : router.push(`/goods/
record.id:router.push(‘/goods/{record._id}`)
2022/1/29
用户个人信息包括,用户姓名,用户电话,用户地址(选择器),所在部门,入职时间。(入职时间和离职时间不可以修改)
用户登录成功的时候自动生成用户的入职时间。
用户可以申请离职,管理员可以查看申请离职的用户并删除记录。批准即等于删除。
2022/2/5
选择器 select 一个schema 两个表 关联 界面显示用到子表名字 取值用关联的那个 父,子共值。(就是那个good.classify)
但并不是所有的选择器都是这样的,只是说 有这种情况,有这种对应方案。
相关文章
- Java SE数据库管理系统学习06
menu public class Menu {UserService userServicenew UserService();DeptService deptServicenew DeptService();Scanner scnew Scanner(System.in);/*** 用户登录*/public void loginMenu() {System.out.println("-----欢迎进入库存管理系统!-----");S…...
2023/5/24 7:47:44 - Java 读取文本文件
文章目录FileFileReaderInputStreamReaderBufferedReader(解决方法在这里)解决中文乱码FileInputStream我想用Java 读取文本文件(txt)中的字符,但是对Java的文件操作不怎么熟悉,于是开始翻官方文档,解决了如何从文件中…...
2023/5/27 13:04:27 - 网络游戏多开遭遇IP限制问题的两种解决方法
随着网络的快速普及也使得依托于网络的游戏行业发展的越来越快,特别是当下火爆的手游、端游市场吸引着越来越多的玩家用户进行游戏的游玩,而为了更好的获取更多的游戏装备和游戏收益,如今许多游戏玩家或者游戏工作室采用模拟器、虚拟机等方法…...
2023/5/28 15:39:49 - 爬虫笔记
在python中打开网页 import webbrowser as web web.open_new_tab(http://www.baidu.com) 获取网页状态码 #coding:utf-8 import urllib url http://www.baidu.com html urllib.urlopen(url) print html.getcode() 输出: 200 HTTP状态码表示HTTP协议所返回的…...
2023/5/31 13:10:13 - 4412 SPI驱动
1.Linux主机驱动和外设驱动分离思想(I2C驱动里有) SPI驱动总线架构:SPI核心层(x),SPI控制器驱动层(x),SPI设备驱动层(√)。前面两个设备驱动搞明白…...
2023/5/29 9:12:39 - 关于程序实现修改开机Logo
做车机的朋友可能知道,一个项目可能会遇到这种需求:根据客户的车品牌设置开机Logo,比如说大众的车就选择大众的开机Logo图片,凯迪拉克的车就选择凯迪拉克的开机Logo图片,十分方便灵活可以适用所有车品牌,车…...
2023/5/24 7:46:41 - JAVA基础篇—模拟服务器与客户端通信
第一种: 客户端class Client package 服务器发送到客户端;import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket;public class Client {public static void main(String[] args) {try {Socket so…...
2023/6/2 19:00:48 - 雷军:两年后4G手机肯定要淘汰 小米减税将超10亿
��ԭ���⣺����������4G�ֻ��϶�Ҫ�&a…...
2023/5/20 7:52:35 - 飞机大战作业C++实现
飞机大战源代码 大家都喜欢玩游戏,但是如何用C完成一款比较完整的游戏呢?请按照如下说明完成空战游戏的开发。 .敌机数量>1, 飞机发射的子弹数量>1,所以用二维数组记录游戏画面中对应的元素,0表示输出空格,1表示输出飞机&…...
2023/6/3 13:10:13 - Qt中xml文件的读写接口类
转自 http://www.oschina.net/code/snippet_195885_9703 [文件] xprojectreader.h ~ 557B 下载(65) view source print?01#ifndef XPROJECTREADER_H 02#define XPROJECTREADER_H 03 04#include <vector> 05#include <QtXml/QtXml> 06#include "global.h…...
2023/6/2 3:46:00 - session实现购物车操作
1.新建一个entity实体包,里面存放Book的信息 Book.java里的内容: package com.itheima.entity;import java.io.Serializable;public class Book implements Serializable{private String id;private String name;private double price;private String au…...
2023/5/26 16:06:02 - JAVA爬虫挖取CSDN博客文章
开门见山,看看这个教程的主要任务,就去csdn博客,挖取技术文章,我以《第一行代码–安卓》的作者为例,将他在csdn发表的额博客信息都挖取出来。因为郭神是我在大学期间比较崇拜的对象之一。他的csdn首页如下:http://blog…...
2023/4/26 23:05:58 - Android文件操作工具类,拿去用吧!
五一放假了,作为一个外地狗,就别想回家了,还是在学校搞点东西吧!花了一天的时间,写了一个比较完善的文件管理工具类,希望小伙伴们能用上,有关于文件的常见操作,,一个我们…...
2023/5/24 8:01:05 - XML编程(CRUD)
XML解析技术概述 XML解析方式分为两种:dom和sax dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式。sax: (Simple API for XML) 不是官方标准,但它是 XML 社区事实上的标准,几乎所…...
2023/5/28 6:05:01 - String限定类型的HashMap以及一个String工具类
String限定类型的HashMap以及一个String工具类 1.StringHashMap // import import test.alibabaSourceCode.StringUtils;import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import j…...
2023/5/24 9:44:43 - JAVA实现RSA加密解密 非对称算法
首先RSA是一个非对称的加密算法,所以在使用该算法加密解密之前,必须先行生成密钥对,包括公钥和私钥 JDK中提供了生成密钥对的类KeyPairGenerator,实例如下: public static Map<String, Object> genKeyPair() th…...
2023/6/2 15:37:07 - Android之RegexUtil 工具类(密码判断,过滤数字,特殊字符判断及过滤,校验密码等)
分享常用的工具类: public class RegexUtil {/*** 判断密码强度* 最少八个字符,至少一个大写字母,一个小写字母和一个数字* return boolean*/public static boolean passwordStrong(String passwordStr) {boolean flag true;String pattern…...
2023/5/15 18:44:44 - Spark学习17之使用IDEA对Spark 1.5.2进行本地编译和调试(成功)
1.需要安装: jdk1.7 scala2.10.4 maven 3.3..9 idea 15.04 2.下载spark1.5.2源码 https://github.com/apache/spark 进release 3.编译安装: mvn clean package -DskipTests 查看详细错误: mvn clean package -DskipTests -X 遇到…...
2023/6/9 8:39:03 - 05-数据库_JDBC
目录 一,JDBC简介 1,简介 2,发展历史 二,JDBC标准流程 1,使用步骤* 2,配置lib 3,代码实现 三,增删改查 1,JDBC中常用的类型和方法 2,代码演示 四&…...
2023/6/9 12:35:45 - 《Effective Objective-C 2.0》读书:实战笔记一
《Effective Objective-C 2.0》读书/实战笔记 一 第1章:熟悉Objective-C ���� 第1条:了解 Objective-C 语言的起源 Objective-C 为C语言添加了面向对象的特性,是其超级。Objective-C 说那个动…...
2023/6/9 12:35:30
最新文章
- RTP介绍
一、简介 Real-time Transport Protocol(实时传输协议) 具体参考rfc3350介绍 可负载H264、H265、G711A、AAC、PS、私有流等各种数据。 二、格式 RTP 固定头部格式如下 version (V): 2bits RTP协议版本号 目前协议版本为2 padding (P): 1bit 填充位 设置成1ÿ…...
2023/6/9 13:33:50 - Tomcat的部署及优化(贼详细)
目录 一、Tomcat服务器简介 1、Tomcat服务器 2、Tomcat三大核心组件 3、 Java Servlet 4、JSP全称Java Server Pages 5、 Tomcat 功能组件结构 6、 Container 结构分析 7、Tomcat 请求过程 二:Tomcat部署与安装 1.关闭防火墙,上传所需软件包 2.安…...
2023/6/9 13:33:30 - linux运维故障案例 网站迁移实战
实战训练课程大纲: 01:实战网站替换图片演练 02:网站迁移实战演练 03:数据库迁移实战演练 04:数据备份到存储实战 05:集群和负载均衡讲解 06:手动负载均衡实战演练 07:3台web使用一个数据…...
2023/6/9 13:33:14 - 无人机航拍高度与地面采样距离
无人机航拍高度与地面采样距离 1.无人机航拍高度与地面采样距离的关系 为搞清无人机航拍高度与地面采样距离的关系,首先需要了解像素与像元之间的细小差别(个人理解)。像素偏重于图片描述,也就是常说的一张图片像素是多少。像元…...
2023/6/9 13:32:53 - Linux远程管理工具(PuTTY和SecureCRT)
通过《Linux远程管理协议》一节可以知道,Linux远程管理服务器多基于 SSH 协议。本节给大家介绍 2 种常见的基于 SSH 协议的远程管理工具,分别是 PuTTY 和 SecureCRT。 在使用远程管理工具之前,应先设置宿主机 Windows 与虚拟机 Linux 能够连…...
2023/6/9 13:32:40 - Docker网络教程(三)overlay 网络教程
使用 overlay 网络联网 本系列的教程处理有关于 swarm 服务有关的网络。对于独立容器的网络,参考 独立容器联网教程。 如果想了解更多 Docker 网络的理论知识,参考概述。 本文包括四个不同的教程。你可以在Linux、Windows或Mac上运行它们中的每一个&am…...
2023/6/9 13:32:20 - 计算机网络笔记:动态主机配置协议(DHCP)
协议配置: 为了把协议软件做成通用和便于移植的,协议软件的编写者不会把所有的细节都固定在源代码中,相反,他们把协议软件参数化,这就使得在很多台计算机上有可能使用同一个经过编译的二进制代码。一台计算机和另一台…...
2023/6/9 13:31:37 - 脑洞大开:“Excel+中文编程”衍生新型软件,WPS用户:自家孩子
中国人脑洞有多大? 有时候,你不得不承认,中国人的脑洞有时候真是让人意想不到: 你只知道Excel表格,你也知道中文编程,但是你有没有想过,用Excel和中文编程嫁接起来的话,会衍生出一…...
2023/6/9 13:31:20 - 基于Tensorflow+SDD+Python人脸口罩识别系统(深度学习)含全部工程源码及模型+视频演示+图片数据集
目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境Anaconda 环境搭建 模块实现1. 数据预处理2. 模型构建及算法实现3. 模型生成 系统测试1. 训练准确率2. 运行结果 工程源代码下载其它资料下载 前言 在当今全球范围内,新冠疫情对我们的生活方式带来了…...
2023/6/9 13:31:06 - 【C++初学者需要掌握的知识点】
安装和配置C开发环境 安装和配置C开发环境的方法因操作系统和IDE而异,一般包括以下步骤: 下载和安装C编译器下载和安装集成开发环境(IDE),如CodeBlocks、Visual Studio等设置编译器和IDE的环境变量创建和配置项目&am…...
2023/6/9 13:30:54 - 冰蓝科技spire.pdf写入到pdf文件时,中文无法显示的原因
之前在一台电脑上使用冰蓝科技的sprire.pdf插件往pdf文件中写文字,功能已经实现出来了,但是后面这台电脑重新装了系统后,发现之前写入文字的功能又无法显示了,只能显示字母和数字。 经过几天的摸索后,发现原因竟然是电…...
2023/6/9 13:30:39 - Mysql中的Buffer pool
Buffer Pool在数据库里的地位 1、回顾一下Buffer Pool是个什么东西? 数据库中的Buffer Pool是个什么东西?其实他是一个非常关键的组件,数据库中的数据实际上最终都是要存放在磁盘文件上的,如下图所示。 但是我们在对数据库执行增…...
2023/6/9 13:30:17 - Golang context 实现原理与源码解读
0 context入门介绍 context是Golang应用开发常用的并发控制技术,主要在异步场景中用于实现并发协调以及对 goroutine 的生命周期控制,它与WaitGroup最大的不同点是context对于派生goroutine有更强的控制力,它可以控制多级的goroutine。 con…...
2023/6/9 13:30:02 - 易基因:全基因组DNA甲基化和小RNA分析揭示甘蓝型油菜种子的基因组不对称性 | 植物发育
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 多倍体是被子植物基因组进化中的一种持续现象,有助于现存开花植物的多样性。甘蓝型油菜(Brassica napus)是世界上最重要的被子植物油料作物品种之一&a…...
2023/6/9 13:29:49 - redis的pipeline(附有redisTemplate使用的代码示例)
文章目录 一、介绍二、API1、String2、Hash3、List1)pop删除并返回元素 4、Set1)添加元素2)删除元素3)pop移除并返回几个随机的元素 5、ZSet 三、示例1、List的批量right pop 一、介绍 由于redis是一个高性能的单线程的key-value…...
2023/6/9 13:29:33 - minigpt4 部署踩坑记录
1,最近看网上minigpt4很火,下载下来试一下,把碰到问题记录一下。 2 访问 GitHub - Vision-CAIR/MiniGPT-4: MiniGPT-4: Enhancing Vision-language Understanding with Advanced Large Language Models 下载代码到 centos服务上。 3…...
2023/6/9 13:29:19 - OpenStack部署(五)
OpenStack部署 11. 启动一个实例11.1 获取凭证11.2 创建虚拟网络11.3 创建主机规格11.4 生产环境的规格推荐11.5 生成一个键值对11.6 增加安全组规则11.7 创建块设备存储11.8 创建实例 12. 资源整理12.1 用到的端口12.2 openstack各组件常用命令1. openstack命令2. nova的常用命…...
2023/6/9 13:28:58 - 图像识别的相关资源和学习途径,让你轻松上手
图像识别是一门利用计算机和数学方法来分析和理解图像内容的学科,它在人工智能、机器学习、计算机视觉等领域都有着广泛的应用。图像识别的任务包括识别图像中的物体、人脸、文字、场景等,以及根据图像内容进行分类、检索、分割、生成等操作。图像识别的…...
2023/6/9 13:28:36 - 各种好用免费的身份验证API 大全推荐
运营商二要素:传入姓名、手机号码,校验此两项是否一致。运营商三要素 : 输入姓名、身份证号码、手机号码,验证此三种信息是否一致,返回验证结果、手机归属地、运营商名称。运营商三要素详细版:输入姓名、身…...
2023/6/9 13:28:25 - 【C/C++】内联函数
1. 内联函数简介 内联函数(Inline functions)是一种C编程语言的特性,用于在编译时将函数的代码插入到调用该函数的地方,而不是通过函数调用的方式执行。这样可以减少函数调用的开销,并提高代码的执行效率。 2. 具体用…...
2023/6/9 13:28:06