uniapp 开发一个密码管理app

密码管理app

介绍

最近发现自己的账号密码真的是太多了,各种网站,系统,公司内网的,很多站点在登陆的时候都要重新设置密码或者通过短信或者邮箱重新设置密码,真的很麻烦

所以准备开发一个app用来记录这些站好和密码

uniapp

经过初步筛选,准备使用uniapp,比较简单,

开发步骤

  1. 注册dcloud账号
  2. 下载开发工具hbuilderx
  3. 创建项目
  4. 云打包
  5. 安装到手机

这就完事了,是不是很简单

下面分享下核心代码

路由
{
	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
		{
			"path" : "pages/tab/home/home",
			"style" : 
			{
				"navigationBarTitleText" : "密码管理",
				"enablePullDownRefresh" : false
			}
		},
		{
			"path" : "pages/tab/my/my",
			"style" : 
			{
				"navigationBarTitleText" : "我的",
				"enablePullDownRefresh" : false
			}
		},
		{
			"path" : "pages/tab/home/add",
			"style" : 
			{
				"navigationBarTitleText" : "添加内容",
				"enablePullDownRefresh" : false
			}
		},
		{
			"path" : "pages/tab/home/show",
			"style" : 
			{
				"navigationBarTitleText" : "查看内容",
				"enablePullDownRefresh" : false
			}
		}
	
	],
	"tabBar": {
		"color": "#CCC",
		"selectedColor": "#3cc51f",
		"borderStyle": "black",
		"backgroundColor": "#ffffff",
		"list": [{
			"pagePath": "pages/tab/home/home",
			"iconPath": "static/image/shouye.png",
			"selectedIconPath": "static/image/shouye_1.png",
			"text": "管理"
		}, {
			"pagePath": "pages/tab/my/my",
			"iconPath": "static/image/wode.png",
			"selectedIconPath": "static/image/wode_1.png",
			"text": "我的"
		}]
	},
	"globalStyle": {
		"navigationBarTextStyle": "#FFFFFF",
		"navigationBarTitleText": "密码管理",
		"navigationBarBackgroundColor": "#32CD32",
		"backgroundColor": "#32CD32"
	},
	"uniIdRouter": {}
}

主页
<template>
	<view class="content">
		<view class="allNum">
			总数量{{list.length}}
		</view>
		<view class="list">
			<view class="list-item"  v-for="(item,index) in list">
				<view class="item-text" @click="show(item)">
					{{item.name}}
				</view>
				<view class="time">
					时间:{{item.time}}
				</view>
				<view class="deleteBtn" @click="deleteById(index)">
					删除
				</view>
			</view>
		</view>
	</view>
	<view class="bottom">
		<view class="addBtn" @click="add">+</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				list: []
			}
		},
		onLoad() {
			this.read()
		},
		onShow() {
			this.read()
		},
		methods: {
			read() {
				var _that = this
				uni.getStorage({
					key:"datajson",
					success(res) {
						var _list = res.data
						_list.sort((e1,e2)=>e2.id - e1.id)
						_that.list = _list
					},fail(err) {
					}
				})

		},
		add() {
			uni.navigateTo({
				url: 'add'
			})
		},
		show(item) {
			var param = ''
			param += '?name=' + item.name
			param += '&id=' + item.id
			param += '&account=' + item.account
			param += '&password=' + item.password
			param += '&remark=' + item.remark
			uni.navigateTo({
				url: 'show' + param
			})
		},
		deleteById(index){
			this.list.splice(index,1)
			var _that = this
			uni.setStorage({
				key: 'datajson',
				data: _that.list
			})
		}

	}
	}
</script>

<style>
	.content {
		height: 100%;
		background-color: #ccc;
	}

	.list-item {
		width: 100%;
		background-color: #fff;
		box-shadow: 5px 5px 5px #c3c3c3;
		margin: 0.5rem 0rem;
		padding: 0.5rem 1rem;
		position: relative;
	}

	.item-text {
		padding: 1rem 0rem;
	}

	.time {
		font-size: 15px;
		color: #ccc;
	}

	.allNum {
		background-color: coral;
		font-size: 26px;
		width: auto;
		padding: 15px;
		text-align: center;
		margin: 5px;
	}

	.bottom {
		position: fixed;
		bottom: 0px;
		left: 0px;
		height: 50px;
		width: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.addBtn {
		color: #fff;
		font-size: 40px;
		width: 50px;
		height: 50px;
		background-color: green;
		border-radius: 50%;
		text-align: center;
	}
	.deleteBtn{
		position: absolute;
		top: 30%;
		right: 15%;
		color: red;
		font-size: 18px;
		background-color: #c3c3c3;
		padding: 3% 5%;
		
	}
</style>

代码仓库

pass-mgr: 密码管理app (gitee.com)

app 预览

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/389381.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用TinyXML-2解析XML文件

一、XML介绍 当我们想要在不同的程序、系统或平台之间共享信息时&#xff0c;就需要一种统一的方式来组织和表示数据。XML&#xff08;EXtensible Markup Language&#xff0c;即可扩展标记语言&#xff09;是一种用于描述数据的标记语言&#xff0c;它让数据以一种结构化的方…

《区块链公链数据分析简易速速上手小册》第1章:区块链基础(2024 最新版)

文章目录 1.1 区块链技术概览&#xff1a;深入探究与实用案例1.1.1 区块链的核心概念1.1.2 重点案例&#xff1a;供应链管理1.1.3 拓展案例 1&#xff1a;数字身份验证1.1.4 拓展案例 2&#xff1a;智能合约在房地产交易中的应用 1.2 主流公链介绍1.2.1 公链的核心概念1.2.2 重…

深入理解lambda表达式

深入理解ASP.NET Core中的中间件和Lambda表达式 var builder WebApplication.CreateBuilder(args); var app builder.Build(); app.Use(async (context, next) > { // Add code before request. await next(context);// Add code after request.}); 这段C#代码是用于设…

杨中科 .netcore 依赖注入

1.概念 概念 生活中的“控制反转”:自己发电和用电网的电。 依赖注入(Dependency Injection&#xff0c;Dl)是控制反转:(Inversion of Control&#xff0c;l0c)思想的实现方式。 依赖注入简化模块的组装过程&#xff0c;降低模块之间的耦合度 自己发电的代码 var connSetti…

Peter算法小课堂—哈希与哈希表

额……字符串我们是第一次学&#xff0c;给大家铺一些基础的不能再基础的基础&#xff0c; 字符串比较大小 字符串大小的比较&#xff0c;不是以字符串的长度直接决定&#xff0c;而是从最左边第一个字符开始比较&#xff0c;大者为大&#xff0c;小者为小&#xff0c;若相等…

HTTP缓存技术

大家好我是苏麟 , 今天说说HTTP缓存技术 . 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP缓存技术 HTTP 缓存有哪些实现方式? 对于一些具有重复性的 HTTP 请求&#xff0c;比如每次请求得到的数据都一样的&#xff0c;我们可以把这对「请求-响…

OpenHarmony—UIAbility组件生命周期

概述 当用户打开、切换和返回到对应应用时&#xff0c;应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调&#xff0c;通过这些回调可以知道当前UIAbility实例的某个状态发生改变&#xff0c;会经过UIAbility实例的创建和销毁&#xff0c;…

OS设备管理

设备管理 操作系统作为系统资源的管理者&#xff0c;其提供的功能有&#xff1a;处理机管理、存储器管理、文件管理、设备管理。其中前三个管理都是在计算机的主机内部管理其相对应的硬件。 I/O设备 I/O即输入/输出。I/O设备即可以将数据输入到计算机&#xff0c;或者可以接收…

【华为数通HCIP | 网络工程师】H12-831刷题日记 题目+解析(2)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

2007-2021年上市公司内控信息披露指数/上市公司内部控制信息披露指数数据

2007-2021年上市公司内控信息披露指数/上市公司内部控制信息披露指数数据 1、时间&#xff1a;2007-2021年 2、范围&#xff1a;上市公司 3、指标&#xff1a;证券代码、证券简称、辖区、证监会行业、申万行业、内部环境、风险评估、控制活动、信息与沟通、内部监督、内部控…

软考28-上午题-哈希表和堆

一、哈希表 将关键字作为自变量&#xff0c;使用哈希函数H(key)&#xff0c;得到该记录的存储地址。 这一映射过程&#xff0c;称为哈希造表、散列&#xff1b;所得的存储位置 哈希地址、散列地址。 1-1、冲突的定义 两个关键字K1和K2&#xff0c;K1 ! K2&#xff0c;&…

行测线上考试答案查找?推荐你使用这七个公众号和工具 #学习方法#经验分享

合理利用学习辅助工具和资料&#xff0c;可以帮助大学生更好地组织学习内容、掌握知识点和提升学术水平。 1.快解题 这是一个网站 是一款服务于职业考证的考试搜题软件,拥有几千万不同考试医学考试题库和执业医师试题库,通过章节练习,模拟试题,历年真题等练习来让不同的用户…

BLDC驱动刹车电路、能量泄放电路

不同STM32的性能; APM2.8飞控整合资料&#xff1a; APM2.8飞控说明书 GitBook BLDC的制动首先要考虑MOS的泄放电阻的选择&#xff0c;参考前面博客。 刹车电阻制动&#xff1a; 如图所示就是一种通过功率电阻耗散电机制动过程中产生电能的电路。因为功率电阻在这个电路中起…

开什么店最稳定轻松?适合一个人开的实体店推荐

在创业的道路上&#xff0c;很多人都希望找到一种稳定轻松的开店方式。 作为一名资深的鲜奶吧创业者&#xff0c;我将分享我的经验和见解&#xff0c;希望能给那些想开实体店的朋友们一些启示&#xff01;&#xff01; 我开鲜奶吧已经有 5 年时间了&#xff0c;目前经营的是鲜…

Leetcode-103. 二叉树的锯齿形层序遍历

这个年和树过不去啦啦啦&#xff01; 题目&#xff1a; 给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 示例 1&…

C#入门及进阶|数组和集合(六):集合概述

1.集合概述 数组是一组具有相同名称和类型的变量集合&#xff0c;但是数组初始化后就不便于再改变其大小&#xff0c;不能实现在程序中动态添加和删除数组元素&#xff0c;使数组的使用具有很多局限性。集合能解决数组存在的这个问题&#xff0c;下面我们来学习介绍集合…

TCP_IP(6)

网络层 在复杂的网络环境中确定一个合适的路径. IP协议 与TCP协议并列,都是网络体系中最核心的协议. 基本概念 主机:配有IP地址,但是不进行路由控制的设备; 路由器:即配有IP地址,又能进行路由控制; 节点:主机和路由器的统称; 协议头格式 4位版本号(version):指定IP协议的版…

红队笔记Day2 -->上线不出网机器

今天就来讲一下在企业攻防中如何上线不出网的机器&#xff01;&#xff01; 1.基本网络拓扑 基本的网络拓扑就是这样 以下是对应得的P信息&#xff0c;其中的52网段充当一个内网的网段&#xff0c;而111充当公网网段 先ping一下&#xff0c;确保外网ping不通内网&#xff0c;内…

threejs之使用shader实现雷达扫描

varying vec2 vUv; uniform vec3 uColor; uniform float uTime;mat2 rotate2d(float _angle){return mat2(cos(_angle),-sin(_angle),sin(_angle),cos(_angle)); }void main(){vec2 newUv rotate2d(uTime*6.18)*(vUv-0.5);float angle atan(newUv.x,newUv.y);// 根据uv坐标获…

C语言学习day15:数组定义的格式

数组的写法格式有很多种 int arr1[6] { 1,2,3,4,5,6 }; int arr[] { 1,2,3,4,5,6 }; int arr[10] { 1,2,3,4,5 }; int arr[10]; arr[0] 1; 这些都有差别 代码&#xff1a; int main() {//int arr1[6] { 1,2,3,4,5,6 };//int arr[] { 1,2,3,4,5,6 };//int arr[10]…