小程序随机生成文字卡片文案海报,带分享保存

news2024/9/27 15:34:34

概述

文字随机生成、更换头像、生成卡片、保存卡片、分享卡片

详细

文字随机生成、更换头像、生成卡片、保存卡片、分享卡片

1624858381772.gif

数据是在data.js中

1624859066187095498.png

随机文案获取:

1624859218434010154.png

demo直接在微信开发者工具可以运行

index.xml 代码

<view class="index">
<view class="center">
<!-- 卡片  -->
<view class="card">
<view class="additional">
<picker range-key="name" mode="selector" bindchange="bindPickerChange" value="{{index}}" range="{{imgList}}">
<view>
<image class="card-avantar ps" src="{{avatar}}" />
</view>
</picker>
<view class="points ps" bindtap="changeName">{{name}}</view>
</view>
<view class="general">
<textarea bindinput="inputFn" maxlength="1000" placeholder="请输入内容" class="text" value="{{value}}" />
<view class="time">{{time}}</view>
</view>
</view>
<!-- 按钮 -->
<view class="buttonWrap">
<view class="btn" bindtap="copy">复制文字</view>
<view class="btn" bindtap="randeNext">随机生成</view>
<view class="btn" bindtap="openAD">生成卡片</view>
</view>
<!-- 说明 -->
<view class="tips">
<view class="title">使用说明</view>
<view class="tip">1、点击头像可切换图片</view>
<view class="tip">2、点击昵称处可自定义昵称,长度不得超过6个字符</view>
</view>
</view>
</view>

index.js 代码

const app = getApp()
const {
allData
} = require('../data.js');
const {
jin
} = require('../jin.js');
const jinArr = jin.split(',');
let arrays = [];
const a = require("../../utils/util.js");
const s = ['晴', '雨', '多云', '雷雨', '阵雨', '小雨', '阴'];
for (let id = 0; id < 81; id++) {
arrays.push(id)
}
 
function resetArr(arr) {
let newArr = [];
for (var i = arr.length + 1; i > 0;) {
i--
var rdm = Math.floor(Math.random() * arr.length)
if (!newArr.includes(arr[rdm])) {
newArr.push(arr[rdm])
} else {
if (newArr.length == arr.length) {
break;
}
i++
}
}
return newArr;
}
 
Page({
data: {
value: "",
datas: [],
time: '',
name: '一号',
avatar: "/img/1.jpg",
pickValue: 0,
imgList: [{
id: "/img/1.jpg",
name: "熊猫-男"
}, {
id: "/img/2.jpg",
name: "熊猫-女"
}, {
id: "/img/3.jpg",
name: "卡通狗头"
}],
openWrap: false,
openName: 'modal',
nicheng: '',
jinci: ''
},
 
onLoad: function () {
const that = this;
const name = wx.getStorageSync('name');
const avatar = wx.getStorageSync('avatar');
if (name && avatar) {
this.setData({
avatar,
name
});
}
this.randomNumber();
this.bindRandomText();
 
},
onReady: function () {
 
},
onShow: function () {
 
},
randomDateType: function () {
const e = new Date();
const t = "星期" + "天一二三四五六 ".charAt(e.getDay());
return a.formatDate2(e) + " " + t + " ";
},
randomNumber: function () {
let n = 1 , m = allData.length
let aNumber = parseInt((n - m) * Math.random() + m);
this.setData({
value: allData[aNumber].text
});
},
randomText: function () {
var e = a.randomNum(0, s.length - 1);
return s[e];
},
bindRandomText: function (e) {
this.setData({
time: this.randomDateType()
});
},
randeNext: function () {
let n = 1 , m = allData.length
let aNumber = parseInt((n - m) * Math.random() + m);
this.setData({
value: allData[aNumber].text
});
},
copy: function () {
const {
value,
time
} = this.data;
wx.setClipboardData({
data: `${time} ${value}`,
success(res) {
wx.showToast({
title: "复制成功!"
});
}
})
},
openAD: function () {
const {
name
} = this.data;
if (name === '设置昵称') {
return wx.showToast({
title: "请设置昵称",
icon: "none"
});
}
 
this.createCard();
},
createCard: function () {
const {
value,
name,
avatar,
time
} = this.data;
var isOk = true;
 
if (name === '设置昵称') {
return wx.showToast({
title: "请设置昵称",
icon: "none"
});
}
 
wx.showLoading({
title: "内容检测中..."
});
 
for (let i = 0; i < jinArr.length; i++) {
if (value.includes(jinArr[i])) {
isOk = false;
console.log(jinArr[i]);
this.setData({
jinci: jinArr[i]
});
break;
};
}
 
if (isOk) {
app.globalData.result = {
value,
name,
avatar,
time
}
wx.setStorageSync('avatar', avatar);
this.setData({
jinci: ''
}, () => {
wx.navigateTo({
url: '/pages/result/index'
});
})
} else {
wx.showModal({
title: "检测到有违禁词",
content: `当前检测到违禁词 ${this.data.jinci},请更新后再提交`
})
}
 
wx.hideLoading();
},
inputFn: function (e) {
const {
value
} = e.detail;
this.setData({
value
});
},
changeName: function () {
this.setData({
openWrap: true,
openName: "modal open"
});
},
close: function () {
this.setData({
openName: "modal",
openWrap: false
});
},
nichengInput: function (e) {
const {
value
} = e.detail;
this.setData({
nicheng: value
});
},
cName: function () {
const {
nicheng
} = this.data;
var isOk = true;
 
if (!nicheng.trim()) {
return wx.showToast({
title: '昵称不能为空!',
icon: "none"
});
}
 
wx.showLoading({
title: "昵称检测中..."
});
for (let i = 0; i < jinArr.length; i++) {
if (nicheng.includes(jinArr[i])) {
isOk = false;
console.log(jinArr[i]);
this.setData({
jinci: jinArr[i]
});
break;
};
}
if (isOk) {
wx.showToast({
title: "设置成功!"
});
this.setData({
jinci: '',
openName: "modal",
openWrap: false,
name: nicheng
});
wx.setStorageSync('name', nicheng);
} else {
wx.showModal({
title: "检测到有违禁词",
content: `当前检测到违禁词 ${this.data.jinci},请更新后再提交`
})
}
wx.hideLoading()
},
bindPickerChange: function (e) {
const {
value
} = e.detail;
const {
imgList
} = this.data;
this.setData({
pickValue: value,
avatar: imgList[value].id
});
wx.setStorageSync('avatar', imgList[value].id);
},
onShareAppMessage: function (e) {
return {
title: "做舔狗呢,最重要的是开心",
path: "/pages/index/index",
imageUrl: '/img/1.jpg'
};
},
})

index.css 代码

page{
background: #eeeeee;
}
.center{
padding: 30rpx;
box-sizing: border-box;
}
.card-avantar{
width: 160rpx;
height: 160rpx;
border-radius: 80rpx;
}
.card{
display: flex;
flex-flow: column;
align-items: center;
background: #ffffff;
padding: 30rpx;
border-radius: 20rpx;
}
.points{
text-align: center;
}
.general{
width: 100%;
font-size: 34rpx;
}
.text{
width: 100%;
height: 340rpx;
padding: 40rpx 0;
}
.time{
text-align: right;
}
.buttonWrap{
display: flex;
}
.btn{
width: 33.3%;
text-align: center;
background-color: rgb(255, 185, 127);
margin:50rpx 20rpx;
color: #ffffff;
font-size: 30rpx;
padding: 10rpx;
border-radius: 10rpx;
}
.tips{
font-size: 32rpx;
line-height: 60rpx;
}

项目结构图:

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

02-HTML常用标签

02-HTML常用标签 2.1 标签的构成 标签由<、>、/、英文单词或字母组成。并且把标签中<>包括起来的英文单词或字母称为标签名常见标签由两部分组成&#xff0c;我们称之为&#xff1a;双标签。前部分叫开始标签&#xff0c;后部分叫结束标签&#xff0c;两部分之间…

C++ - AVL 树 介绍 和 实现 (上篇)

前言 之前我介绍了 二叉搜索树&#xff0c;可看一下博客&#xff1a;C - 搜索二叉树_chihiro1122的博客-CSDN博客 二叉搜索树的效率可以达到 O(log n) 。这个复杂度的算法的效率是非常恐怖的&#xff0c;2 的 30 次方大概是 10亿左右。也就是说 如果用暴力查找 需要找 10 亿次&…

HTTPS加密过程详解

目录 一、HTTPS是什么 1.1 运营商劫持 1.2 加密是什么 二、HTTPS的工作过程 2.1 对称加密 2.2 非对称加密 2.3 引入证书 一、HTTPS是什么 HTTPS 也是一个应用层协议。是在 HTTP 协议的基础上引入了一个加密层。 HTTP 协议内容都是按照文本的方式明文传输的。这就导致在传输过程…

Linux——vi编辑器

目录 一、基本简介 二、命令模式下的常用按键 1、光标跳转按键 2、复制、粘贴、删除 三、编辑模式 四、末行模式 1、查找关键字并替换 2、保存退出 3、其他操作 五、模式切换 一、基本简介 1、最早可追随到1991年&#xff0c;全称为“Vi IMproved” 2、模式 ——命…

【使用Cpolar将Tomcat网页传输到公共互联网上】

文章目录 1.前言2.本地Tomcat网页搭建2.1 Tomcat安装2.2 配置环境变量2.3 环境配置2.4 Tomcat运行测试2.5 Cpolar安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 Tomcat作为一个轻量级的服务器&#xff0c;不仅名字很有趣&#…

护网行动,最全攻略来啦!!!

随着网络技术的不断发展&#xff0c;网络领域被发现的安全威胁越来越多。 病毒入侵、数据窃取、网络攻击等安全事件时常发生&#xff0c;网络已然成为各国无声较量的重要战略空间。 为应对网络安全威胁&#xff0c;严守网络安全底线&#xff0c;公安部自2016年开始组织多家机构…

基于微信小程序的高校宿舍信息管理系统设计与实现(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

Centos/Ubuntu安装redis

一、Centos安装redis 首先查看gcc是否安装 gcc -v 出现版本号就说明可以直接安装redis&#xff0c;没有的话需要安装gcc这是 下载路径&#xff1a; 【免费】gccCentos.rar资源-CSDN文库 rpm -ivh *.rpm --nodeps --force #安装 服务器有网的话可以直接下载redis包 wget https…

SpringBoot的学习要点

黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;_哔哩哔哩_bilibili博客阅读:Microservices中文文档&#xff1a;Spring Boot 中文文档 spring官网&#xff1a;https://start.spring.io/thymeleaf官方文档…

监控的分类

监控可以分成 4 个类别&#xff0c;具体如下&#xff1a; 业务监控 业务监控指标是管理层所关注的&#xff0c;一般与企业营收挂钩&#xff0c;或者跟客户主流程相关。这类指标类似 BI&#xff08;Business Intelligence System&#xff0c;即数据分析系统&#xff09; 数据…

【Html】用CSS定义咖啡 - 咖啡配料展示

显示效果 代码 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>CodePen - For The Love Of Coffee</title><link rel"stylesheet" href"./style.css">&l…

使用ZoeDepth生成深度估计图

目前单目深度估计分为两个派系&#xff0c;metric depth estimation(度量深度估计&#xff0c;也称绝对深度估计)和relative depth estimation(相对深度估计)。 ZoeDepth是 第一个结合相对和绝对深度的多模态单目深度估计网络。本博文仅记录使用ZoeDepth生成深度估计图的过程&a…

Unity丨调色板丨颜色调色

文章目录 功能介绍功能展示技术细节小结 功能介绍 本文制作一个简单的调色板。拖动滑动条完成颜色变更。 功能展示 技术细节 需要把相应的三个滑动条和image拖拽赋值。 using UnityEngine; using UnityEngine.UI;public class ColorPicker : MonoBehaviour {public Slider …

高云FPGA系列教程(8):ARM串口数据接收(中断和轮询方式)

文章目录 [toc]1. GW1NSR-4C串口外设简介2. FPGA配置3. 常用函数4. 轮询方式接收数据5. 中断方式接收数据 本文是高云FPGA系列教程的第8篇文章。 本篇文章介绍片上ARM Cortex-M3硬核处理器串口外设的使用&#xff0c;演示轮询方式和中断方式接收串口数据&#xff0c;并进行回环…

【Java 基础篇】Executors工厂类详解

在多线程编程中&#xff0c;线程池是一项重要的工具&#xff0c;它可以有效地管理和控制线程的生命周期&#xff0c;提高程序的性能和可维护性。Java提供了java.util.concurrent包来支持线程池的创建和管理&#xff0c;而Executors工厂类是其中的一部分&#xff0c;它提供了一些…

MySQL数据库笔记

文章目录 一、初识MySQL1.1、什么是数据库1.2、数据库分类1.3、MySQL简介 二、操作数据库2.1、操作数据库&#xff08;了解&#xff09;2.2、数据库的列类型2.3、数据库的字段属性&#xff08;重点&#xff09;2.4、创建数据库表&#xff08;重点&#xff09;2.5、数据表的类型…

【PHPCUSTOM】打包PHP程序为EXE

目录 一、下载PHPCUSTOM 二、PHP网站打包 1、打开PHPCUSTOM 2、配置参数 3、生成exe文件 网上很多PHP程序打包成EXE的文章&#xff0c;但是都不能用&#xff0c;最后找到了PHPCUSTOM&#xff0c;使用PHPCUSTOM可以把PHP程序打包成exe。我们都知道PHP是服务端语言&#xff…

CCG超级标记

1. 定义 组合范畴语法&#xff08;Combinatory Categorial Grammar&#xff0c;CCG&#xff09;是一种用于自然语言语法分析的语言学理论和计算模型。它是一种形式文法&#xff0c;旨在描述句子的结构和语法规则&#xff08;通过简练的描述形式表现出句子中各成分的句法语义关…

用VS Code运行C语言(安装VS Code,mingw的下载和安装)

下载并安装VS code。 安装扩展包&#xff1a; 此时&#xff0c;写完代码右键之后并没有运行代码的选项&#xff0c;如图&#xff1a; 接下来安装编译器mingw。 下载链接&#xff1a; https://sourceforge.net/projects/mingw-w64/ 得到压缩包&#xff1a; 解压&#xff1a; …

车载通信架构 —— SOME/IP 协议概述

车载通信架构 —— SOME/IP 协议概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 对学习而言,学习之后的思考、思考之后的行动、行动之后的改变更重要,如果不盯住内层的改变量,那么在表层投…