分享一个基于微信小程序的反诈科普平台springboot(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社
💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流!
💕💕学习资料、程序开发、技术解答、文档报告
💕💕如需要源码,可以扫取文章下方二维码联系咨询

💕💕Java项目
💕💕微信小程序项目
💕💕Android项目
💕💕Python项目
💕💕PHP项目
💕💕ASP.NET项目
💕💕Node.js项目
💕💕选题推荐

项目实战|基于微信小程序的反诈科普平台springboot

1、选题背景

  近年来,随着互联网和移动技术的快速发展,诈骗手段也日益多样化和隐蔽化,给人们的财产安全和生活带来了严重威胁。传统的反诈宣传方式往往效果有限,难以及时传播最新的诈骗手法和防范知识。同时,大众对反诈知识的需求日益增长,但缺乏便捷、互动的学习渠道。在这样的背景下,开发一个基于微信小程序的反诈科普平台成为了迫切需要,它能够利用微信的广泛普及性,为用户提供随时随地可访问的反诈资源,并通过多样化的功能满足不同群体的需求。

2、研究目的和意义

  基于微信小程序的反诈科普平台的开发具有重要的社会意义和实用价值,它能够显著提升反诈宣传的覆盖面和效率,让反诈知识更广泛、更深入地传播到社会各个层面,从而有效降低诈骗案件的发生率。通过提供互动性强的学习和交流平台,它能够培养公众的批判性思维和风险识别能力,增强社会整体的防诈能力。平台的一键举报和在线咨询功能为潜在受害者提供了及时的帮助渠道,有助于减少诈骗造成的损失。通过收集和分析用户数据,平台可以为相关部门提供有价值的信息支持,助力制定更有针对性的反诈政策和措施,从而推动构建更加安全、诚信的社会环境。

  开发基于微信小程序的反诈科普平台的主要目的是构建一个全面、互动、易用的反诈骗知识传播渠道。通过整合反诈科普、在线测试、经验分享、实时举报等功能,平台旨在提高公众的反诈意识和能力。它致力于打造一个信息及时更新、内容丰富多样、互动性强的学习环境,使用户能够系统地学习反诈知识,参与交流讨论,并在遇到可疑情况时及时获取帮助。同时,平台还旨在为管理部门提供一个高效的信息管理和用户互动工具,以更好地开展反诈宣传工作,收集有价值的信息,从而有针对性地制定防诈策略。

3、系统研究内容

在这里插入图片描述
系统角色:管理员、用户
系统功能:
(1)管理员:用户管理、反诈科普管理、一键举报管理、经历上传管理、交流论坛管理、科普测试管理、测试结果管理、在线咨询管理。
(2)用户:查看反诈科普信息、参加科普测试、查看测试内容、发帖交流、上传经历信息、在线咨询、添加举报信息。

4、系统页面设计

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

如需要源码,可以扫取文章下方二维码联系咨询

5、参考文献

[1]唐建军,管芳芳,袁林虎,等.通信系统中的反诈技术应用[J].集成电路应用,2024,41(05):250-251.DOI:10.19339/j.issn.1674-2583.2024.05.114.
[2]张颖珍,陈雀斌,朱婷婷.司法行政系统扎实推进反诈教育活动[N].闽东日报,2024-03-28(004). DOI:10.28561/n.cnki.nmdrb.2024.000511.
[3]扎西卓玛,李家玲,贺路路.西藏辖区金融系统汇聚金融力量筑牢反诈安全防线[J].中国金融家,2023,(11):118.DOI:10.19294/j.cnki.cn11-4799/f.2023.11.041.
[4]王晨,罗琼,潘梁,等.基于可信AI和时空大数据的实时智能反诈系统研究与应用[J].电信工程技术与标准化,2022,35(12):34-39.DOI:10.13992/j.cnki.tetas.2022.12.003.
[5]李建校,吕明,严程,等.基于Android的警务宣传系统设计与实现[J].信息与电脑(理论版),2022,34(21):127-129.
[6]赵婉序,王海涛,蒋煜,等.数字经济时代大学生防范新型诈骗的对策研究[J].电信快报,2022,(09):42-46.
[7]赵东明,刘静,张淑英,等.基于区块链的电信运营商跨行业数据融合反诈识别系统[J].通信世界,2022,(14):40-43.DOI:10.13571/j.cnki.cww.2022.14.017.
[8]陈金秀.政务微博“国家反诈中心”反诈宣传的优化策略研究[D].南昌大学,2022. DOI:10.27232/d.cnki.gnchu.2022.002950.
[9]刘传江,吴采平,施本允.打击养老诈骗市场监管在行动[N].中国消费者报,2022-05-23(002). DOI:10.28867/n.cnki.nxfzb.2022.000994.
[10]林仲川.深圳市公安局电信网络诈骗犯罪防治研究[D].深圳大学,2022. DOI:10.27321/d.cnki.gszdu.2022.001168.
[11]李泽良.风险传播视角下电信网络诈骗防范知识学习意愿与行为的影响因素研究[D].华南理工大学,2022. DOI:10.27151/d.cnki.ghnlu.2022.004071.
[12]杜伟.互联网反诈系统建设项目范围管理研究[D].北京邮电大学,2022. DOI:10.26969/d.cnki.gbydu.2022.002275.
[13]张萍,何毅俊.电子支票系统的反欺诈取证研究[J].计算机时代,2021,(08):32-36+41.DOI:10.16644/j.cnki.cn33-1094/tp.2021.08.008.
[14]何玲,孟佳惠.工信部:强化大数据反诈发挥联动治理合力[J].中国信用,2020,(02):41.
[15]黄学峰.面向电信诈骗的反诈平台技术研究[D].北京邮电大学,2019.
[16]刘湘.学习反电信诈骗信息的行为意愿影响因素研究[D].深圳大学,2018.
[17]卢启云.房县农机局采取多种形式开展反邪教警示教育宣传活动[J].湖北农机化,2010,(01):48.
[18]王刚.崇尚科学 反对邪教[N].甘肃法制报,2009-08-10(A01).
[19]丁长兴.对反邪教宣传工作的思考[C]//中国反邪教协会.崇尚科学 关爱家庭 珍惜生命 反对邪教——中国反邪教协会第九次报告会暨学术讨论会论文集.四川省达州市科协;,2004:2.

6、核心代码

<template>
<view class="content">
	<view :style='{"minHeight":"100vh","width":"100%","padding":"0 0 240rpx","position":"relative","background":"url() fixed,#fff","height":"auto"}'>
		<form :style='{"width":"100%","padding":"60rpx 40rpx","background":"none","display":"block","height":"auto"}' class="app-update-pv">
			<view :style='{"padding":"12rpx 0","boxShadow":"inset 0px 0px 0px 0px #f9edd9","margin":"0 0 20rpx 0","borderColor":"#e9be70","alignItems":"baseline","display":"flex","minHeight":"120rpx","borderRadius":"0","borderWidth":"0px 0px 0px","background":"url(http://codegen.caihongy.cn/20221221/c8ff0c9649f9472e926677fcfdbbdd44.png) repeat-x left bottom,#d7eff8","width":"100%","borderStyle":"solid","height":"auto"}' class="">
				<view :style='{"width":"160rpx","padding":"0 20rpx 0 0","lineHeight":"80rpx","fontSize":"28rpx","color":"#333","textAlign":"right"}' class="title">举报编号</view>
				<view :style='{"padding":"0px 24rpx","margin":"0px","lineHeight":"80rpx","fontSize":"28rpx","color":"#666","flex":"1"}' class="right-input">
					{{ruleForm.jubaobianhao}}
				</view>
			</view>
			<view :style='{"padding":"12rpx 0","boxShadow":"inset 0px 0px 0px 0px #f9edd9","margin":"0 0 20rpx 0","borderColor":"#e9be70","alignItems":"baseline","display":"flex","minHeight":"120rpx","borderRadius":"0","borderWidth":"0px 0px 0px","background":"url(http://codegen.caihongy.cn/20221221/c8ff0c9649f9472e926677fcfdbbdd44.png) repeat-x left bottom,#d7eff8","width":"100%","borderStyle":"solid","height":"auto"}' class="">
				<view :style='{"width":"160rpx","padding":"0 20rpx 0 0","lineHeight":"80rpx","fontSize":"28rpx","color":"#333","textAlign":"right"}' class="title">举报标题</view>
				<input :style='{"border":"0","padding":"0px 24rpx","margin":"0px","color":"#666","borderRadius":"8rpx","flex":"1","background":"rgba(255, 255, 255, 0)","fontSize":"28rpx","height":"80rpx"}' :disabled="ro.jubaobiaoti" v-model="ruleForm.jubaobiaoti" placeholder="举报标题"></input>
			</view>
			<view :style='{"padding":"12rpx 0","boxShadow":"inset 0px 0px 0px 0px #f9edd9","margin":"0 0 20rpx 0","borderColor":"#e9be70","alignItems":"baseline","display":"flex","minHeight":"120rpx","borderRadius":"0","borderWidth":"0px 0px 0px","background":"url(http://codegen.caihongy.cn/20221221/c8ff0c9649f9472e926677fcfdbbdd44.png) repeat-x left bottom,#d7eff8","width":"100%","borderStyle":"solid","height":"auto"}' class=" select">
				<view :style='{"width":"160rpx","padding":"0 20rpx 0 0","lineHeight":"80rpx","fontSize":"28rpx","color":"#333","textAlign":"right"}' class="title">类别</view>
				<picker :style='{"width":"100%","flex":"1","height":"auto"}' @change="leibieChange" :value="leibieIndex"  :range="leibieOptions">
					<view :style='{"width":"100%","lineHeight":"80rpx","fontSize":"28rpx","color":"#666"}' class="uni-input">{{ruleForm.leibie?ruleForm.leibie:"请选择类别"}}</view>
				</picker>
			</view>
			<view :style='{"padding":"12rpx 0","boxShadow":"inset 0px 0px 0px 0px #f9edd9","margin":"0 0 20rpx 0","borderColor":"#e9be70","alignItems":"baseline","display":"flex","minHeight":"120rpx","borderRadius":"0","borderWidth":"0px 0px 0px","background":"url(http://codegen.caihongy.cn/20221221/c8ff0c9649f9472e926677fcfdbbdd44.png) repeat-x left bottom,#d7eff8","width":"100%","borderStyle":"solid","height":"auto"}' class="" @tap="fengmianTap">
				<view :style='{"width":"160rpx","padding":"0 20rpx 0 0","lineHeight":"80rpx","fontSize":"28rpx","color":"#333","textAlign":"right"}' class="title">封面</view>
				<image :style='{"width":"80rpx","borderRadius":"100%","objectFit":"cover","display":"block","height":"80rpx"}' class="avator" v-if="ruleForm.fengmian" :src="baseUrl+ruleForm.fengmian.split(',')[0]" mode="aspectFill"></image>
				<image :style='{"width":"80rpx","borderRadius":"100%","objectFit":"cover","display":"block","height":"80rpx"}' class="avator" v-else src="../../static/gen/upload.png" mode="aspectFill"></image>
			</view>
			<view :style='{"padding":"12rpx 0","boxShadow":"inset 0px 0px 0px 0px #f9edd9","margin":"0 0 20rpx 0","borderColor":"#e9be70","alignItems":"baseline","display":"flex","minHeight":"120rpx","borderRadius":"0","borderWidth":"0px 0px 0px","background":"url(http://codegen.caihongy.cn/20221221/c8ff0c9649f9472e926677fcfdbbdd44.png) repeat-x left bottom,#d7eff8","width":"100%","borderStyle":"solid","height":"auto"}' class=" select">
				<view :style='{"width":"160rpx","padding":"0 20rpx 0 0","lineHeight":"80rpx","fontSize":"28rpx","color":"#333","textAlign":"right"}' class="title">举报时间</view>
				<picker :style='{"width":"100%","flex":"1","height":"auto"}' mode="date" :value="ruleForm.jubaoshijian" @change="jubaoshijianChange">
					<view :style='{"width":"100%","lineHeight":"80rpx","fontSize":"28rpx","color":"#666"}' class="uni-input">{{ruleForm.jubaoshijian?ruleForm.jubaoshijian:"请选择举报时间"}}</view>
				</picker>
			</view>
			<view :style='{"padding":"12rpx 0","boxShadow":"inset 0px 0px 0px 0px #f9edd9","margin":"0 0 20rpx 0","borderColor":"#e9be70","alignItems":"baseline","display":"flex","minHeight":"120rpx","borderRadius":"0","borderWidth":"0px 0px 0px","background":"url(http://codegen.caihongy.cn/20221221/c8ff0c9649f9472e926677fcfdbbdd44.png) repeat-x left bottom,#d7eff8","width":"100%","borderStyle":"solid","height":"auto"}' class="">
				<view :style='{"width":"160rpx","padding":"0 20rpx 0 0","lineHeight":"80rpx","fontSize":"28rpx","color":"#333","textAlign":"right"}' class="title">用户账号</view>
				<input :style='{"border":"0","padding":"0px 24rpx","margin":"0px","color":"#666","borderRadius":"8rpx","flex":"1","background":"rgba(255, 255, 255, 0)","fontSize":"28rpx","height":"80rpx"}' :disabled="ro.yonghuzhanghao" v-model="ruleForm.yonghuzhanghao" placeholder="用户账号"></input>
			</view>
			<view :style='{"padding":"12rpx 0","boxShadow":"inset 0px 0px 0px 0px #f9edd9","margin":"0 0 20rpx 0","borderColor":"#e9be70","alignItems":"baseline","display":"flex","minHeight":"120rpx","borderRadius":"0","borderWidth":"0px 0px 0px","background":"url(http://codegen.caihongy.cn/20221221/c8ff0c9649f9472e926677fcfdbbdd44.png) repeat-x left bottom,#d7eff8","width":"100%","borderStyle":"solid","height":"auto"}' class="">
				<view :style='{"width":"160rpx","padding":"0 20rpx 0 0","lineHeight":"80rpx","fontSize":"28rpx","color":"#333","textAlign":"right"}' class="title">用户姓名</view>
				<input :style='{"border":"0","padding":"0px 24rpx","margin":"0px","color":"#666","borderRadius":"8rpx","flex":"1","background":"rgba(255, 255, 255, 0)","fontSize":"28rpx","height":"80rpx"}' :disabled="ro.yonghuxingming" v-model="ruleForm.yonghuxingming" placeholder="用户姓名"></input>
			</view>
			
			<!---->
 

			
			<view :style='{"padding":"12rpx 0","margin":"0 0 24rpx 0","borderColor":"#ccc","borderWidth":"0 0 0px 0","width":"100%","borderStyle":"solid","height":"auto"}' class="">
				<view :style='{"width":"100%","lineHeight":"80rpx","fontSize":"28rpx","color":"#111","fontWeight":"500"}' class="title">详情</view>
                <xia-editor ref="editor" :style='{"minHeight":"300rpx","padding":"24rpx 40rpx","boxShadow":"inset 0px 0px 0px 0px #f9edd9","borderColor":"#e9be70","borderRadius":"0","background":"url(http://codegen.caihongy.cn/20221221/c8ff0c9649f9472e926677fcfdbbdd44.png) repeat-x left bottom,#d7eff8","borderWidth":"0px 0px 0px","width":"100%","borderStyle":"solid","height":"auto"}' v-model="ruleForm.xiangqing" placeholder="详情" @editorChange="xiangqingChange"></xia-editor>
			</view>
			
			<view :style='{"width":"100%","margin":"40rpx 0 0 0","justifyContent":"center","display":"flex","height":"auto"}' class="btn" >
				<button :style='{"padding":"0 40rpx","boxShadow":"2rpx 4rpx 8rpx #ccc","margin":"0 40rpx 0 0","borderColor":"#ef6d0d","color":"#333","display":"inline","minWidth":"200rpx","borderRadius":"40rpx","background":"linear-gradient(180deg, rgba(253,246,139,1) 0%, rgba(254,233,97,1) 84%, rgba(255,220,52,1) 100%),#ffdc34","borderWidth":"0 0 8rpx","width":"auto","lineHeight":"72rpx","fontSize":"28rpx","borderStyle":"solid","height":"80rpx"}' @tap="onSubmitTap" class="bg-red">提交</button>
			</view>
		</form>

	</view>
</view>
</template>

<script>
	import wPicker from "@/components/w-picker/w-picker.vue";
    import xiaEditor from '@/components/xia-editor/xia-editor';
	export default {
		data() {
			return {
				cross:'',
				ruleForm: {
				jubaobianhao: this.getUUID(),
				jubaobiaoti: '',
				leibie: '',
				fengmian: '',
				jubaoshijian: '',
				xiangqing: '',
				yonghuzhanghao: '',
				yonghuxingming: '',
				shhf: '',
				},
				leibieOptions: [],
				leibieIndex: 0,
				// 登陆用户信息
				user: {},
                ro:{
                   jubaobianhao : false,
                   jubaobiaoti : false,
                   leibie : false,
                   fengmian : false,
                   jubaoshijian : false,
                   xiangqing : false,
                   yonghuzhanghao : false,
                   yonghuxingming : false,
                   sfsh : false,
                   shhf : false,
                },
			}
		},
		components: {
			wPicker,
            xiaEditor
		},
		computed: {
			baseUrl() {
				return this.$base.url;
			},



		},
		async onLoad(options) {
            this.ruleForm.jubaoshijian = this.$utils.getCurDate();
			let table = uni.getStorageSync("nowTable");
			// 获取用户信息
			let res = await this.$api.session(table);
			this.user = res.data;
			
			// ss读取
			this.ruleForm.yonghuzhanghao = this.user.yonghuzhanghao
			this.ro.yonghuzhanghao = true;
			this.ruleForm.yonghuxingming = this.user.yonghuxingming
			this.ro.yonghuxingming = true;


			// 下拉框
			res = await this.$api.option(`leibie`,`leibie`,{});
			this.leibieOptions = res.data;
            this.leibieOptions.unshift("请选择类别");

			// 如果有登陆,获取登陆后保存的userid
			this.ruleForm.userid = uni.getStorageSync("userid")
			if (options.refid) {
				// 如果上一级页面传递了refid,获取改refid数据信息
				this.ruleForm.refid = options.refid;
				this.ruleForm.nickname = uni.getStorageSync("nickname");
			}
			// 如果是更新操作
			if (options.id) {
				this.ruleForm.id = options.id;
				// 获取信息
				res = await this.$api.info(`yijianjubao`, this.ruleForm.id);
				this.ruleForm = res.data;
			}
			// 跨表
			this.cross = options.cross;
			if(options.cross){
				var obj = uni.getStorageSync('crossObj');
				for (var o in obj){
					if(o=='jubaobianhao'){
					this.ruleForm.jubaobianhao = obj[o];
					this.ro.jubaobianhao = true;
					continue;
					}
					if(o=='jubaobiaoti'){
					this.ruleForm.jubaobiaoti = obj[o];
					this.ro.jubaobiaoti = true;
					continue;
					}
					if(o=='leibie'){
					this.ruleForm.leibie = obj[o];
					this.ro.leibie = true;
					continue;
					}
					if(o=='fengmian'){
					this.ruleForm.fengmian = obj[o].split(",")[0];
					this.ro.fengmian = true;
					continue;
					}
					if(o=='jubaoshijian'){
					this.ruleForm.jubaoshijian = obj[o];
					this.ro.jubaoshijian = true;
					continue;
					}
					if(o=='xiangqing'){
					this.ruleForm.xiangqing = obj[o];
					this.ro.xiangqing = true;
					continue;
					}
					if(o=='yonghuzhanghao'){
					this.ruleForm.yonghuzhanghao = obj[o];
					this.ro.yonghuzhanghao = true;
					continue;
					}
					if(o=='yonghuxingming'){
					this.ruleForm.yonghuxingming = obj[o];
					this.ro.yonghuxingming = true;
					continue;
					}
				}
			}
			this.styleChange()
		},
		methods: {
            xiangqingChange(e) {
                this.ruleForm.xiangqing = e
            },
			styleChange() {
				this.$nextTick(()=>{
					// document.querySelectorAll('.app-update-pv . .uni-input-input').forEach(el=>{
					//   el.style.backgroundColor = this.addUpdateForm.input.content.backgroundColor
					// })
				})
			},

			// 多级联动参数

			jubaoshijianChange(e) {
				this.ruleForm.jubaoshijian = e.target.value;
				this.$forceUpdate();
			},


			// 下拉变化
			leibieChange(e) {
				this.leibieIndex = e.target.value
				this.ruleForm.leibie = this.leibieOptions[this.leibieIndex]
			},

			fengmianTap() {
				let _this = this;
				this.$api.upload(function(res) {
					_this.ruleForm.fengmian = 'upload/' + res.file;
					_this.$forceUpdate();
					_this.$nextTick(()=>{
						_this.styleChange()
					})
				});
			},

			getUUID () {
				return new Date().getTime();
			},
			async onSubmitTap() {
//跨表计算判断
				var obj;
				//更新跨表属性
			       var crossuserid;
			       var crossrefid;
			       var crossoptnum;
				if(this.cross){
					var statusColumnName = uni.getStorageSync('statusColumnName');
					var statusColumnValue = uni.getStorageSync('statusColumnValue');
					if(statusColumnName!='') {
                        if(!obj) {
						    obj = uni.getStorageSync('crossObj');
                        }
						if(!statusColumnName.startsWith("[")) {
							for (var o in obj){
								if(o==statusColumnName){
									obj[o] = statusColumnValue;
								}

							}
							var table = uni.getStorageSync('crossTable');
							await this.$api.update(`${table}`, obj);
						} else {
						       crossuserid=Number(uni.getStorageSync('userid'));
						       crossrefid=obj['id'];
						       crossoptnum=uni.getStorageSync('statusColumnName');
						       crossoptnum=crossoptnum.replace(/\[/,"").replace(/\]/,"");
						}
					}
				}
				if(crossrefid && crossuserid) {
					this.ruleForm.crossuserid=crossuserid;
					this.ruleForm.crossrefid=crossrefid;
					let params = {
						page: 1,
						limit:10,
						crossuserid:crossuserid,
						crossrefid:crossrefid,
					}
					let res = await this.$api.list(`yijianjubao`, params);
					if (res.data.total >= crossoptnum) {
						this.$utils.msg(uni.getStorageSync('tips'));
						return false;
					} else {
                //跨表计算
						if(this.ruleForm.id){
							await this.$api.update(`yijianjubao`, this.ruleForm);
						}else{
							await this.$api.add(`yijianjubao`, this.ruleForm);
						}
						this.$utils.msgBack('提交成功');
					}
				} else {
                //跨表计算
					if(this.ruleForm.id){
						await this.$api.update(`yijianjubao`, this.ruleForm);
					}else{
						await this.$api.add(`yijianjubao`, this.ruleForm);
					}
					this.$utils.msgBack('提交成功');
				}
			},
			optionsChange(e) {
				this.index = e.target.value
			},
			bindDateChange(e) {
				this.date = e.target.value
			},
			getDate(type) {
				const date = new Date();
				let year = date.getFullYear();
				let month = date.getMonth() + 1;
				let day = date.getDate();
				if (type === 'start') {
					year = year - 60;
				} else if (type === 'end') {
					year = year + 2;
				}
				month = month > 9 ? month : '0' + month;;
				day = day > 9 ? day : '0' + day;
				return `${year}-${month}-${day}`;
			},
			toggleTab(str) {
				this.$refs[str].show();
			}
		}
	}
</script>

<style lang="scss" scoped>
	.content {
		min-height: calc(100vh - 44px);
		box-sizing: border-box;
	}
</style>

💕💕作者:计算机源码社
💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流!
💕💕学习资料、程序开发、技术解答、文档报告
💕💕如需要源码,可以扫取文章下方二维码联系咨询

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值