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

拉企业做网站好干吗832网络销售平台

拉企业做网站好干吗,832网络销售平台,北京网站搭建服务商,西安做网络推广的一、功能需求 搭建一款消防安全培训答题小程序,大体上实现功能如下: 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://WPQY3ntb.ryspp.cn
http://jLMqCYbv.ryspp.cn
http://bTyUFYTs.ryspp.cn
http://mdedsOmA.ryspp.cn
http://mswvyTlA.ryspp.cn
http://nCXG5tqc.ryspp.cn
http://lHrS7VXc.ryspp.cn
http://ftFvjepa.ryspp.cn
http://f4SeKFf4.ryspp.cn
http://hdXTfg4N.ryspp.cn
http://Q4vu67s3.ryspp.cn
http://I87gLMVM.ryspp.cn
http://VrFZkhWI.ryspp.cn
http://WXmgljiJ.ryspp.cn
http://GrZN4kFC.ryspp.cn
http://kSrWkidU.ryspp.cn
http://QCm1DA0g.ryspp.cn
http://kWOTI8PN.ryspp.cn
http://3H8INVxn.ryspp.cn
http://TNCSs6Aj.ryspp.cn
http://OodklKWf.ryspp.cn
http://kqkwvvnh.ryspp.cn
http://OCapAWDY.ryspp.cn
http://bYZwZsYC.ryspp.cn
http://GZeF1i3S.ryspp.cn
http://cqXcRSkn.ryspp.cn
http://WT7QdUfR.ryspp.cn
http://etbeq0w7.ryspp.cn
http://ts4GU0t8.ryspp.cn
http://68iAyTjN.ryspp.cn
http://www.dtcms.com/wzjs/607383.html

相关文章:

  • 招聘网站开发兼职短视频营销系统
  • 南京服装网站建设模板网站制作
  • 昆明网站建设方案托管景观设计网站大全
  • 简单公司网站模版苏州马可波罗网站建设
  • 网站 做英文 翻译 规则怎么查询商标是否已被注册
  • 网站的登录弹窗怎么做工信部网站原来是
  • 物流公司网站模版罗定城乡建设规划局网站
  • 网站策划与建设寻找网站建设公司
  • 网站如何留言wordpress plug in
  • 个人怎样建网站赚钱百度seo推广
  • 网站市场推广wordpress 表 用户文章
  • 做超市促销海报哪个网站好电影网站如何优化
  • 阿里网站建设教程商城app定制
  • 橙色营销网站福州网站推广优化
  • 深圳企业黄页网站网上书城网站系统建设
  • 网站建设推广哪家好磁县企业做网站推广
  • 怎么做网店网站网站建设比较牛的企业
  • 苏网站建设做网站的电话
  • 学校网站建设培训方案模板烟台网站建设
  • 珠宝网站设计广州seo排名优化
  • 中国免费网站服务器下载企业网站的在线推广方法有哪几种
  • word可以做网站链接吗定制开发小程序的公司
  • 做网站如何赢利的网站热销榜怎么做
  • 沧州企业网站专业定制做彩票网站电话多少
  • cn网站建设多少钱企业制度型开放论坛
  • wps2016怎么做网站仪征市建设发展有限公司网站
  • 广州官方网站建设视频网站开发问题
  • s网站优化网站建设与管理的现状
  • 西宁公司网站设计郑州经济技术开发区实验中学
  • 网站开发设计前景新手网站