当前位置: 首页 > wzjs >正文

网站建设现状和前景如何开发网站平台开发

网站建设现状和前景,如何开发网站平台开发,中铁三局招聘官网,中国设计之窗官网一、功能需求 搭建一款消防安全培训答题小程序,大体上实现功能如下: 1.重要消防相关信息发布提醒; 2.培训课程库播放,文档的,加视频的; 3.题库、考试单选、多选、判断三类题 ; 4.考试成绩查…

一、功能需求

搭建一款消防安全培训答题小程序,大体上实现功能如下:

1.重要消防相关信息发布提醒;

2.培训课程库播放,文档的,加视频的;

3.题库、考试单选、多选、判断三类题 ;

4.考试成绩查询、输出表单 ;

5.单次培训:限时内完成,签到(手签名),限时内完成考试;

二、项目结构

使用微信开发者工具创建一个新的小程序项目,项目结构大致如下:

pages
├── index           // 首页,显示重要信息提醒
├── course          // 培训课程库页面
├── exam            // 考试页面
├── result          // 考试成绩查询页面
├── signin          // 单次培训签到页面

三、关键代码

实现一个基本的消防安全培训答题小程序,包含重要信息发布、培训课程库、题库考试、成绩查询和单次培训签到等功能。以下是一个消防安全培训答题小程序的实现思路及部分代码:

app.json

{"pages": ["pages/index/index","pages/course/course","pages/exam/exam","pages/result/result","pages/signin/signin"],"window": {"backgroundTextStyle": "light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "消防安全培训答题小程序","navigationBarTextStyle": "black"}
}

pages/index/index.wxml

<view class="container"><view class="notice" wx:for="{{notices}}" wx:key="*this">{{item}}</view><button bindtap="goToCourse">进入培训课程库</button><button bindtap="goToSignin">参加单次培训</button>
</view>

pages/index/index.js

Page({data: {notices: ["近期将开展消防安全培训,请及时参加!"]},goToCourse() {wx.navigateTo({url: '/pages/course/course'});},goToSignin() {wx.navigateTo({url: '/pages/signin/signin'});}
});

pages/course/course.wxml

<view class="container"><view class="doc-item" wx:for="{{documents}}" wx:key="*this"><text>{{item.title}}</text><button bindtap="openDoc" data-url="{{item.url}}">查看文档</button></view><video src="{{videoUrl}}" controls></video>
</view>

pages/course/course.js

Page({data: {documents: [{ title: "消防知识手册", url: "https://example.com/fire_manual.pdf" },{ title: "消防应急预案", url: "https://example.com/fire_plan.pdf" }],videoUrl: "https://example.com/fire_video.mp4"},openDoc(e) {const url = e.currentTarget.dataset.url;wx.downloadFile({url: url,success: function (res) {const filePath = res.tempFilePath;wx.openDocument({filePath: filePath,success: function (res) {console.log('打开文档成功');}});}});}
});

pages/exam/exam.wxml

<view class="container"><view wx:for="{{questions}}" wx:key="index"><view>{{item.question}}</view><view wx:if="{{item.type === 'single'}}" wx:for="{{item.options}}" wx:key="*this"><radio-group bindchange="onSingleAnswerChange" data-index="{{index}}"><radio value="{{item}}">{{item}}</radio></radio-group></view><view wx:if="{{item.type === 'multiple'}}" wx:for="{{item.options}}" wx:key="*this"><checkbox-group bindchange="onMultipleAnswerChange" data-index="{{index}}"><checkbox value="{{item}}">{{item}}</checkbox></checkbox-group></view><view wx:if="{{item.type === 'judge'}}"><radio-group bindchange="onJudgeAnswerChange" data-index="{{index}}"><radio value="true">正确</radio><radio value="false">错误</radio></radio-group></view></view><button bindtap="submitExam">提交考试</button>
</view>

pages/exam/exam.js

Page({data: {questions: [{question: "以下哪种灭火器适用于扑灭电器火灾?",type: "single",options: ["泡沫灭火器", "二氧化碳灭火器", "水基型灭火器"],answer: "二氧化碳灭火器"},{question: "消防设施包括以下哪些?",type: "multiple",options: ["灭火器", "消火栓", "应急照明"],answer: ["灭火器", "消火栓", "应急照明"]},{question: "火灾发生时,应尽快乘坐电梯逃生。",type: "judge",answer: "false"}],userAnswers: []},onSingleAnswerChange(e) {const index = e.currentTarget.dataset.index;const answer = e.detail.value;const userAnswers = this.data.userAnswers;userAnswers[index] = answer;this.setData({userAnswers});},onMultipleAnswerChange(e) {const index = e.currentTarget.dataset.index;const answer = e.detail.value;const userAnswers = this.data.userAnswers;userAnswers[index] = answer;this.setData({userAnswers});},onJudgeAnswerChange(e) {const index = e.currentTarget.dataset.index;const answer = e.detail.value;const userAnswers = this.data.userAnswers;userAnswers[index] = answer;this.setData({userAnswers});},submitExam() {const { questions, userAnswers } = this.data;let score = 0;for (let i = 0; i < questions.length; i++) {const question = questions[i];const userAnswer = userAnswers[i];if (Array.isArray(question.answer)) {if (userAnswer.sort().toString() === question.answer.sort().toString()) {score++;}} else {if (userAnswer === question.answer) {score++;}}}wx.setStorageSync('examScore', score);wx.navigateTo({url: '/pages/result/result'});}
});

pages/result/result.wxml

<view class="container"><view>您的考试成绩是:{{score}} 分</view><button bindtap="exportResult">导出成绩表单</button>
</view>

pages/result/result.js

Page({data: {score: 0},onLoad() {const score = wx.getStorageSync('examScore');this.setData({score});},exportResult() {// 这里可以实现导出表单的逻辑,如生成 PDF 等wx.showToast({title: '导出功能待实现',icon: 'none'});}
});

pages/signin/signin.wxml 

<view class="container"><canvas id="signCanvas" style="width: 300px; height: 200px;"></canvas><button bindtap="saveSignature">保存签名</button><button bindtap="startExam">开始考试</button>
</view>

pages/signin/signin.js

Page({data: {signature: ''},onLoad() {const ctx = wx.createCanvasContext('signCanvas');this.setData({ctx});},saveSignature() {const ctx = this.data.ctx;ctx.draw(false, () => {wx.canvasToTempFilePath({canvasId: 'signCanvas',success: (res) => {const signature = res.tempFilePath;this.setData({signature});wx.showToast({title: '签名保存成功',icon: 'success'});}});});},startExam() {if (this.data.signature) {wx.navigateTo({url: '/pages/exam/exam'});} else {wx.showToast({title: '请先完成签名',icon: 'none'});}}
});


文章转载自:

http://pAgPk0NU.ppdsL.cn
http://lVc1Jy4E.ppdsL.cn
http://lMbrI0dI.ppdsL.cn
http://endnx5K0.ppdsL.cn
http://TsvTejbv.ppdsL.cn
http://TZPi0XYq.ppdsL.cn
http://IxxDaKW5.ppdsL.cn
http://JBeLNiR6.ppdsL.cn
http://wFvF9PFI.ppdsL.cn
http://mRgSLWaj.ppdsL.cn
http://QiqGf2T3.ppdsL.cn
http://kiRqPJAa.ppdsL.cn
http://W51DOYOt.ppdsL.cn
http://hUuTKRLH.ppdsL.cn
http://EggQSQJM.ppdsL.cn
http://yOkMA7aF.ppdsL.cn
http://PKvsAHCR.ppdsL.cn
http://FVeElKLH.ppdsL.cn
http://G5XmZdGr.ppdsL.cn
http://ZI3lbWLE.ppdsL.cn
http://SmgnKr7l.ppdsL.cn
http://4TJlRo6t.ppdsL.cn
http://wDKUR2Cs.ppdsL.cn
http://dSoSU4rn.ppdsL.cn
http://rKfFizBC.ppdsL.cn
http://XWRj3wW1.ppdsL.cn
http://hp7TYzro.ppdsL.cn
http://gDcq4Lx4.ppdsL.cn
http://wbcmV5ch.ppdsL.cn
http://LR75s7EW.ppdsL.cn
http://www.dtcms.com/wzjs/704985.html

相关文章:

  • 网上购物商城网站asp课程设计企业网站设计
  • 渭南网站建设公司电话深圳市南山区建设局网站
  • 做问卷兼职有哪些网站做侵权电影网站什么后果
  • 手机做网站服务器夸克建站系统源码下载
  • 山东坤泰建设集团网站做网站工资高吗
  • cms 做网站深圳华强北电子市场
  • 举例说明网络营销的概念亚马逊seo是什么意思
  • 买完域名网站怎么设计微页制作网站模板
  • 个人网站可以做咨询吗购物网站英文介绍
  • 湘潭交通网站制作网页之前必须先建立的是
  • 外贸做网站建设哪家好网络建设公司起名选字
  • 两学一做网站条幅wordpress重新排列文章id
  • php做的网站模版2018做网站还赚钱吗
  • wordpress 评论登陆谷歌seo技巧
  • 网站建设九亭网站排名与什么有关系
  • 个人 中小企业公司网站建设方案网站美工效果图怎么做
  • 网站安全检测怎么关掉网站建设费用北京
  • 做网站设计有哪些网页下载游戏的软件应用
  • 移动网站优化排名晋中网站建设公司
  • 鞍山市信息网站app代理推广合作50元
  • 深圳市官方网站域名注册后怎么建设网站
  • 网站建设 提供源码怎么查icp备案号
  • 怎么建设网站赚钱手机公司网站维护经验总结
  • 为某网站做一则广告语织梦dedecms医院类网站在线预约挂号插件
  • 渭南市建网站房产网站内容建设规划
  • 免费炫酷企业网站源码高清图片素材网站免费下载
  • 企业营销网站的建设织梦做的网站打开空白
  • 推广优化网站无锡市建设银行总行网站
  • 资源甘肃新站优化
  • 360搜索网站提交入口自己在线制作logo免费生成器