精华内容
下载资源
问答
  • 最近有个APP需要内嵌一个问卷调查系统的功能,目前的想法是通过web访问问卷星的 链接,但是APP客户端却没有办法知道用户是否填写了调查问卷。现在想让APP客户端在用户填写了调查问卷后能将已完成调查问卷的信息反馈...
  • uni-app实现问卷调查试卷

    千次阅读 2019-10-25 09:44:20
    uni-app实现问卷调查试卷 先向后台请求试卷内容,请求方法如下: data() { return { sjlist:[], das:[], tmidlist:[] } }, onLoad() { this.getdata(); }, methods: { // 请求页面数据 get...

    uni-app实现问卷调查试卷

    先向后台请求试卷内容,请求方法如下:

    data() {
    			return {
    				sjlist:[],
    				das:[],
    				tmidlist:[]
    			}
    },
    onLoad() {
    			this.getdata();
    },
    methods: {
               // 请求页面数据
    			getdata(){
    				var access_token=uni.getStorageSync("access_token");
    				var userid=uni.getStorageSync("userId");
    				var category=uni.getStorageSync("category");
    				var type=''
    				if(category==1){
    					type="风险评估问卷(个人)"
    				}else{
    					type="风险评估问卷(机构)"
    				}
    				uni.request({
    					url: getApp().globalData.baseUrl+'/admin/syssjgl/sjmx',
    				    data: { 
    						type:type
    					},
    				    header: {
    						isToken: false,
    						'TENANT-ID': "1566441363",
    						'Authorization':'Bearer'+access_token
    				    },
    				    success: (res) => {
    						console.log(res.data.data)
    						this.sjmc=res.data.data[0].sjmc
    						for(var i=0;i<res.data.data.length;i++){
    							this.sjlist.push(res.data.data[i])
    						}
    				    }
    				});
    			}
    }
    

    数据可以是后台请求返回的,若不是就自己写吧,结果类似。

    返回的数据如下(有三四层嵌套):
    是一个三层嵌套的数组。最外层数组sjlist,里面有大标题就有几个对象;
    每个对象里有sjid属性,tms选项数组,里面有几题就有几个对象;
    tms数组里每个对象里有tmid属性,das选项数组,里面有几个选项就有几个对象;
    das数组里每个对象有dasid,以及具体信息。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    之后在界面上用三层v-for循环嵌套
    第一层v-for循环显示大标题,
    第二次v-for循环显示题目,
    第三次v-for循环显示答案选项,第三层要结合radio-group实现单选。
    代码如下:

    <view v-for="(sjitem, jsi) of sjlist" :key="jsi">
    				<view class="title1">{{sjitem.ssfl}}</view>
    				<view v-for="(tmitem, tmi) of sjitem.tms" :key="tmi" class="title2">
    					<view>{{tmitem.tmxh+tmitem.tmmc}}</view>
    					<radio-group @change="radioChange($event,tmitem)">
    						<label v-for="(item, i) of tmitem.das" :key="i">
    							<view class="title2">
    								<radio :value="item.id.toString()" :checked="item.checked" />
    								<text>{{item.xxxh+item.xxmc}}</text>
    							</view>
    						</label>
    					</radio-group>
    				</view>
    			</view>
    

    效果就出来了,如下图所示:

    如何拿到试卷选项的答案呢

    首先界面radio选项的时候,value值我已经绑定了das的id,所以value就是id,记得加上.toString(),不然会报错。然后radio-group加上@change="radioChange($event,tmitem)"事件,并传入这个题目对象的所有选项答案
    在这里插入图片描述
    获取方法如下:

    // 选择项结果
    			radioChange($event,tmitem){
    				for(var j=0;j<this.das.length;j++){
    					this.tmidlist.push(this.das[j].tmid);
    				}
    				for(var i=0;i<tmitem.das.length;i++){
    					if($event.detail.value==tmitem.das[i].id){if(this.tmidlist.indexOf(tmitem.tmId)==-1){
    							this.das.push(tmitem.das[i])
    						}else{
    							for(var n=0;n<this.das.length;n++){
    								if(tmitem.tmId==this.das[n].tmid){
    									this.das.splice(n,1);
    									this.das.push(tmitem.das[i])
    								}
    							}
    						}
    					}
    				}
    			},
    
    展开全文
  • 2020 年国家网络安全宣传周组委会 App 违法违规收集使用个人信息专项治理工作组 2020 年 9 月 目 录 一基本信息 1~2 页 二安全意识调查 3~6 页 三网友建议及寄语 7~11 页 App 安全意识公众调查问卷报告 App安全意识...
  • 目 目 录 1~2 页一基本信息3~6 1~2 页 一基本信息 3~6 页 二安全意识调查 7~11 页 三网友建议及寄语 App 安全意识公众调查问卷报告 App 安全意识调查活动由 2020 年国家网络安全宣传周组委会和 App 违法违规收集使用...
  • 上周根据我们走廊奔跑队的“问吧APP”项目对本校范围内的学生发放了上百份调查问卷,并对此作出了统计和整理。针对我们项目所提出的问题涉及到的用户信息有性别、年龄、学历、职业、平时上网途径以及对我们这个团队...

         上周根据我们走廊奔跑队的“问吧APP”项目对本校范围内的学生发放了上百份调查问卷,并对此作出了统计和整理。针对我们项目所提出的问题涉及到的用户信息有性别、年龄、学历、职业、平时上网途径以及对我们这个团队开发的应用中功能的看法与建议。

         由于本次调查的人群范围有限,只局限在本校内的大学生群体,所以据不完全统计:愿意接受调查并反馈信息的群体中女生居多,年龄都在20岁左右。调查显示,大多数用户平时都是通过手机,电脑,平板等设备上网了解信息的,且使用移动设备上网的人较多。另外,被调查的人群中有九成用户是使用的安卓系统手机,所以我们小组一致决定,先在安卓平台上打造我们的项目APP,并做出详细的系统分析需求报告。调查还发现,当代大学生遇到问题的解决办法都包含了通过网络寻求答案,希望有一个很好的网络平台能够帮助自己解决学习、工作、生活、感情等各方面的问题。这些广大的用户群体为我们开发此“问吧APP”给大家提供便捷的一站式解决问题的网络交流平台奠定了基础。

         这次在本校大学生群体中发放调查问卷,也有许多心得体会和收获。刚开始很多人以为这是没有意义的广告,对此表示无所谓的态度,不愿意接受调查。所以在对部分被调查人员的思想上做了许多工作,竭力解释,从而得到信任。也间接的提高了我的语言交际能力。学会了怎样将自己想要做的东西用最简洁明了的方式告诉其他不知道的人。对于这次调查问卷的反馈信息,我们小组也觉得很满意,虽然数据量不大,但也颇具有代表性,经过一番辛苦的调查也确定了我们APP以后要面对的用户人群。为我们以后的工作增添了一份信心。

     That's all,thank you for reading my blogs.

    转载于:https://www.cnblogs.com/xiaoqixiang/p/5260470.html

    展开全文
  • 关于拍照搜题 APP 对学习生活的影响调查问卷自定义查 询 时间2016 年 2 月 12 调查背景 参考资料 调查方法问卷调查 开始时间2016-2-11 结束时间2016-2-12 样本总数92 份 本报告分析内容 自定义查询 本报告样本筛选...
  • 大数据时代会计继续教育的变革与创新——基于APP问卷调查与分析.pdf
  • 调查问卷

    千次阅读 2017-10-27 13:23:30
    在线调查问卷在我们的生活中应用的非常广泛,能够非常方便快捷的获取到我们需要的信息,统计分析出相关核心的数据,方便我们的决策。在微信发展迅速的时代,覆盖面非常的大,那么基于微信公众号去推送我们的在线问卷...
     
    

    在线调查问卷在我们的生活中应用的非常广泛,能够非常方便快捷的获取到我们需要的信息,统计分析出相关核心的数据,方便我们的决策。在微信发展迅速的时代,覆盖面非常的大,那么基于微信公众号去推送我们的在线问卷调查,这个就是一个相当方便、有价值的系统。那么,今天我就来大概讲一讲利用我们起步公司研发的WeX5平台快速开发出一款在线调查问卷的系统,我们主要分以下几个步骤讲解,如有纰漏,还望及时指出,谢谢微笑

    一、效果图展示

    效果图展示主要分为后台的数据管理及前端的调查问卷:

    后台管理系统效果图如下所示:

    问卷调查发布页面:


    问卷调查统计页面:


    问卷调查汇总页面:


    问卷调查详情页面:


    微信公众号中的前端效果图:



    二、在线调查后台管理

    在线调查后台管理系统主要用于对调查问卷的发布及统计信息进行管理,方便管理人员对所有发布信息的管控,以及对调查的问卷进行汇总统计,总结出有利于生产的有价值的数据。我们在项目选型之前,考虑了java框架的后台以及BeX5的平台,分析评估后一致觉得BeX5平台在开发效率和后期维护、性能稳定方面都有非常大的优势,所以我们使用该平台作为我们后台管理系统的主选开发平台。在项目开发过程中也确实体现了该平台强大的优势:上手快、开发效率高、维护成本低、性能稳定。详细的后台管理系统的界面见上面的后台效果图。

    废话不多说了,看看后台的开发界面吧,感受一下BeX5开发平台带给我们的快感奋斗奋斗


    是不是很壮观的页面啊,包括了源码、设计、JS、CSS,还有一系列的封装好的组件可供使用。其中设计页面,可实现拖拽布局、js页面实现前端逻辑处理、css实现样式。好了,贴些代码感受一下js的强大吧:

    [javascript]  view plain  copy
    1. define(function(require) {  
    2.     var $ = require("jquery");  
    3.     var justep = require("$UI/system/lib/justep");  
    4.     var biz = require("$UI/system/lib/biz");  
    5.   
    6.     var Model = function() {  
    7.         this.callParent();  
    8.     };  
    9.   
    10.     var mainData = "";  
    11.     Model.prototype.modelLoad = function(event) {  
    12.         mainData = this.comp("mainData");  
    13.         var type = this.getContext().getRequestParameter("type");  
    14.         if (type == "new") {  
    15.             mainData.newData();  
    16.         } else if (type == "edit") {  
    17.             var data = this.getContext().getRequestParameter("data");  
    18.             if (data) {  
    19.                 var filter = "RM_VS_Paper='" + data + "'";  
    20.                 mainData.setFilter("____dataFilter_", filter);  
    21.                 mainData.refreshData();  
    22.             }  
    23.             if (mainData.getValue("fPState") == "已完成"  
    24.                     || mainData.getValue("fPState") == "已终止") {  
    25.                 this.comp("trgFinish").set({  
    26.                     "disabled" : "true"  
    27.                 });  
    28.                 this.comp("trgAbort").set({  
    29.                     "disabled" : "true"  
    30.                 });  
    31.                 this.comp("saveBtn").set({  
    32.                     "disabled" : "true"  
    33.                 });  
    34.                 this.comp("surveyBtn").set({  
    35.                     "disabled" : "true"  
    36.                 });  
    37.   
    38.                 this.comp("button6").set({  
    39.                     "disabled" : "true"  
    40.                 });  
    41.                 this.comp("button4").set({  
    42.                     "disabled" : "true"  
    43.                 });  
    44.                 this.comp("button5").set({  
    45.                     "disabled" : "true"  
    46.                 });  
    47.                 this.comp("button9").set({  
    48.                     "disabled" : "true"  
    49.                 });  
    50.                 this.comp("button7").set({  
    51.                     "disabled" : "true"  
    52.                 });  
    53.                 this.comp("button8").set({  
    54.                     "disabled" : "true"  
    55.                 });  
    56.   
    57.                 this.comp("addBtn").set({  
    58.                     "disabled" : "true"  
    59.                 });  
    60.                 this.comp("button11").set({  
    61.                     "disabled" : "true"  
    62.                 });  
    63.             }  
    64.   
    65.         }  
    66.   
    67.         var uploader = this.comp("attachmentSimple1").uploader;  
    68.         var data = this.comp("dQuestion");  
    69.         uploader.on('onFileSelected'function(event) {  
    70.             var fileName = event.file.name;  
    71.             fileName.lastIndexOf(".")  
    72.             var fileType = fileName.substr(fileName.lastIndexOf(".") + 1,  
    73.                     fileName.length).toLowerCase();  
    74.             // alert(fileType);  
    75.             if (fileType != "jpg" && fileType != "png") {  
    76.                 alert("请选择jpg或者png格式文件!");  
    77.                 event.cancel = true;  
    78.                 return;  
    79.             }  
    80.             // 只能上传一张,再次上传则替换  
    81.             var img = data.val("fQuestionPic");// 要在这里取值  
    82.             if (img !== null && img != "" && img !== "[]"  
    83.                     && typeof (img) !== "undefined") {  
    84.                 data.setValue("fQuestionPic""");  
    85.             }  
    86.         });  
    87.   
    88.     };  
    89.   
    90.     // 新增  
    91.     Model.prototype.newBtnClick = function(event) {  
    92.         var url = "$UI/riskMonitor/survey/process/surveySend/detailActivity.w?process=/riskMonitor/survey/process/surveySend/surveySendProcess&activity=surveySendActivity&type=new&data="  
    93.                 + mainData.getCurrentRowID();  
    94.         justep.Portal.openWindow(url, {  
    95.             title : "问卷调查发布"  
    96.         });  
    97.     };  
    98.   
    99.     // 完成调查  
    100.     Model.prototype.trgFinishDOMActivate = function(event) {  
    101.         var messageDialog2 = this.comp("messageDialog2");  
    102.         messageDialog2.show();  
    103.         messageDialog2.on("onOk"function(event) {  
    104.             var paperID = mainData.getCurrentRowID();  
    105.             mainData.setValue("fPState""已完成");  
    106.             mainData.setValue("fFinishTime"new Date());  
    107.             mainData.saveData();  
    108.             mainData.filters.setFilter("paperFilter""RM_VS_Paper='" + paperID  
    109.                     + "'");  
    110.             mainData.refreshData();  
    111.             this.callBackFun();  
    112.         }, this);  
    113.     };  
    114.   
    115.     // 撤销问卷  
    116.     Model.prototype.trgAbortDOMActivate = function(event) {  
    117.         var messageDialog3 = this.comp("messageDialog3");  
    118.         messageDialog3.show();  
    119.         messageDialog3.on("onOk"function(event) {  
    120.             var paperID = mainData.getCurrentRowID();  
    121.             mainData.setValue("fPState""已终止");  
    122.             mainData.saveData();  
    123.             mainData.filters.setFilter("paperFilter""RM_VS_Paper='" + paperID  
    124.                     + "'");  
    125.             mainData.refreshData();  
    126.             this.callBackFun();  
    127.         }, this);  
    128.     };  
    129.     // 回调函数?????????????????????????  
    130.     Model.prototype.callBackFun = function(event) {  
    131.         this.comp("trgFinish").set({  
    132.             "disabled" : "true"  
    133.         });  
    134.         this.comp("trgAbort").set({  
    135.             "disabled" : "true"  
    136.         });  
    137.         this.comp("saveBtn").set({  
    138.             "disabled" : "true"  
    139.         });  
    140.         this.comp("deleteBtn").set({  
    141.             "disabled" : "true"  
    142.         });  
    143.         this.comp("surveyBtn").set({  
    144.             "disabled" : "true"  
    145.         });  
    146.   
    147.         this.comp("button6").set({  
    148.             "disabled" : "true"  
    149.         });  
    150.         this.comp("button4").set({  
    151.             "disabled" : "true"  
    152.         });  
    153.         this.comp("button5").set({  
    154.             "disabled" : "true"  
    155.         });  
    156.         this.comp("button9").set({  
    157.             "disabled" : "true"  
    158.         });  
    159.         this.comp("button7").set({  
    160.             "disabled" : "true"  
    161.         });  
    162.         this.comp("button8").set({  
    163.             "disabled" : "true"  
    164.         });  
    165.   
    166.         /* 
    167.          * var caller = null; var callerName = 
    168.          * justep.Request.URLParams.callerName; if(callerName && (callerName != 
    169.          * '')) { var frames = window.parent.frames; for(var i=0; i<frames.length; 
    170.          * i++) { if(frames[i].name == callerName) { caller = frames[i]; break; } } } 
    171.          * if(caller) { if(caller.dataChangeCallBackFun) { //var data = 
    172.          * justep.xbl('dPaper'); var id = mainData.getCurrentRowID(); 
    173.          * caller.dataChangeCallBackFun(id); } } 
    174.          */  
    175.     };  
    176.   
    177.     // 调查发布  
    178.     Model.prototype.button1Click = function(event) {  
    179.         var mainData = this.comp('mainData');  
    180.         var paperID = mainData.getCurrentRowID();  
    181.         if (mainData.getCount() == 0) {  
    182.             alert("请选择要发布的问卷信息!");  
    183.             return;  
    184.         }  
    185.         var fPState = mainData.getValue("fPState");  
    186.         if (fPState == "编制中") {  
    187.             var messageDialog1 = this.comp("messageDialog1");  
    188.             messageDialog1.show();  
    189.             messageDialog1.on("onOk"function(event) {  
    190.                 mainData.setValue("fPState""已发布");  
    191.                 mainData.setValue("fSendTime"new Date());  
    192.                 mainData.saveData();  
    193.                 mainData.filters.setFilter("paperFilter""RM_VS_Paper='"  
    194.                         + paperID + "'");  
    195.                 mainData.refreshData();  
    196.             }, this);  
    197.         } else if (fPState == "已发布") {  
    198.             alert("本次调查已发布,不能再进行发布!");  
    199.         } else if (fPState == "已终止") {  
    200.             alert("本次在线调查已终止,不能再进行问卷发布!");  
    201.         } else {  
    202.             alert("本次在线调查已完成,不能再进行问卷发布!");  
    203.         }  
    204.     };  
    205.   
    206.     // 问卷调查预览  
    207.     Model.prototype.trgPreviewDOMActivate = function(event) {  
    208.         var process = this.getContext().getCurrentProcess();// justep.Context.getCurrentProcess();  
    209.         var activity = this.getContext().getCurrentActivity();// justep.Context.getCurrentActivity();  
    210.         var mainData = this.comp("mainData");  
    211.         var paperid = mainData.getCurrentRowID();  
    212.         // var url =  
    213.         // "/riskMonitor/survey/process/surveyPaper/surveyPaper.j?process=" +  
    214.         // process + "&activity=" + activity + "&paperID=" + paperid;  
    215.         var url = "$UI/riskMonitor/survey/process/surveyPaper/surveyPaper.j?process="  
    216.                 + process + "&activity=" + activity + "&paperID=" + paperid;  
    217.         justep.Portal.openWindow(url, {  
    218.             title : "调查问卷预览"  
    219.         });  
    220.     };  
    221.   
    222.     Model.prototype.addBtnClick = function(event) {  
    223.         // 添加调查员  
    224.         this.comp("windowDialog").open();  
    225.     };  
    226.   
    227.     return Model;  
    228. });  

    三、前端开发

    前面我们讲解了后台管理系统的开发,那么还有一个最重要的前端展示,我们选择了WeX5平台,WeX5平台封装了相当多的H5组件,方便我们开发人员的拖拽,只要熟悉h5、js、css就可以完全胜任前端的开发了。

    前端UI:完全恪守html5+css3+js,干净纯洁
    设备api:采用业界主流Phonegap/Cordova
    后端:标准协议,支持所有主流技术和平台
    (java、node、php、.net等)

    向导、模板:简单定义,即可轻松制作向导和模板
    主题、样式:海量bootstrap资源引入和定制
    UI组件:纯H5+CSS3,轻松引入第三方UI组件
    插件:轻松对接即时通讯、推送、支付等各类插件
    后端:轻松调用后端组件和api,并实现可视化

    各种应用打包:无任何限制和费用,打包多种应用
    (Android apk,ios ipa、微信和其他轻应用)
    各种打包模式:快捷打包、远程服务打包、原生环境打包,
    给你所有的打包方式和方便性

    我们可以使用WeX5平台开发出安卓、苹果手机App,也可以开发出基于微信的项目,非常的方便。


    前端开发页面类似于BeX5的开发页面,可以对问答题、单选题、多选题、判断题进行控制显示,涵盖了大多数的调查问卷格式,可以应用于多个行业。

    看下在线调查的前端js代码:

    [javascript]  view plain  copy
    1. define(function(require) {  
    2.     var $ = require("jquery");  
    3.     var justep = require("$UI/system/lib/justep");  
    4.     var Baas = justep.Baas;  
    5.   
    6.     var Model = function() {  
    7.         this.callParent();  
    8.         this._userID = "";  
    9.         this._userNickName = "";  
    10.         this._userAdrress = "";  
    11.         this._longtitude = "";  
    12.         this._latitude = "";  
    13.     };  
    14.   
    15.     // 获取页面索引  
    16.     Model.prototype.MyGetIndex = function(event) {  
    17.         return this.comp("data1").getRowIndex(this.comp("data1").getCurrentRow()) + 1;  
    18.     };  
    19.   
    20.     Model.prototype.modelParamsReceive = function(event) {  
    21.         var paperID = this.getContext().getRequestParameter("paperID");  
    22.         var data1 = this.comp("data1");  
    23.         var surveyData = this.comp("surveyData");  
    24.         surveyData.setFilter("surveyFilter0""fPaperID = '" + paperID + "' and fPerID = '" + this.getContext().getRequestParameter("openID") + "'");  
    25.         surveyData.refreshData();  
    26.         if (surveyData.getCount() > 0 && surveyData.getFirstRow().val("fSState") == "已完成") {  
    27.             this.setPropReadonly();  
    28.         }  
    29.         ;  
    30.         Baas.sendRequest({  
    31.             "url" : "/riskMonitor/riskMonitor",  
    32.             "action" : "queryQuestion",  
    33.             "async" : false,  
    34.             "params" : {  
    35.                 paperID : paperID,  
    36.                 openID : this.getContext().getRequestParameter("openID")  
    37.             },  
    38.             "success" : function(data) {  
    39.                 data1.loadData(data);  
    40.                 data1.refreshData();  
    41.             },  
    42.             "error" : function(msg) {  
    43.                 justep.Util.hint("获取调查问题失败", {  
    44.                     "type" : "danger"  
    45.                 });  
    46.             }  
    47.         });  
    48.     };  
    49.   
    50.     // 转换动态图片URL  
    51.     Model.prototype.transURL = function(picture, rowID) {  
    52.         if (!picture)  
    53.             return null;  
    54.         var src = null;  
    55.         if (picture !== null && picture !== "" && picture !== "[]") {  
    56.             var imageJson = eval("(" + picture + ")");  
    57.             var realFileName = imageJson[0].realFileName;  
    58.             var storeFileName = imageJson[0].storeFileName;  
    59.             var operateType = "browse";  
    60.             var url = '/baas/justep/attachment/simpleFileStore?realFileName=' + realFileName + '&storeFileName=' + storeFileName + '&ownerID=' + rowID + '&operateType=' + operateType;  
    61.             src = require.toUrl(url);  
    62.         }  
    63.         return src;  
    64.     };  
    65.   
    66.     Model.prototype.setPropReadonly = function(event) {  
    67.         this.comp("button1").set({  
    68.             disabled : true  
    69.         });  
    70.         this.comp("textarea1").set({  
    71.             disabled : true  
    72.         });  
    73.         this.comp("checkboxGroup1").set({  
    74.             disabled : true  
    75.         });  
    76.         this.comp("radioGroup1").set({  
    77.             disabled : true  
    78.         });  
    79.     };  
    80.   
    81.     Model.prototype.getWeixinUser = function(event) {  
    82.         // 获取url上的code参数 - 微信授权code,用于获取微信用户信息  
    83.         var weixinCode = this.getContext().getRequestParameter("code");  
    84.         var self = this;  
    85.         if (weixinCode !== "") {  
    86.             justep.Baas.sendRequest({  
    87.                 "url" : "/riskMonitor/weixin",  
    88.                 "action" : "userinfo",  
    89.                 "async" : false,  
    90.                 "params" : {  
    91.                     code : weixinCode  
    92.                 },  
    93.                 "success" : function(weixinUser) {  
    94.                     self._userID = weixinUser.openid;  
    95.                     self._userNickName = weixinUser.nickname;  
    96.                 },  
    97.                 "error" : function(msg) {  
    98.                     justep.Util.hint("获取用户信息失败", {  
    99.                         "type" : "danger"  
    100.                     });  
    101.                 }  
    102.             });  
    103.         }  
    104.     };  
    105.   
    106.     // 提交问卷  
    107.     Model.prototype.button1Click = function(event) {  
    108.         // 需将参与调查的人员信息插入到survey表中。回答的内容插入到details表中  
    109.         // 提交调查问卷  
    110.         var surveyData = this.comp("surveyData");  
    111.         var detailData = this.comp("detailData");  
    112.         var data1 = this.comp("data1");  
    113.         var self = this;  
    114.         // 插入回答此问卷人的信息  
    115.         var surveyID = justep.UUID.createUUID();  
    116.         var openID = this.getContext().getRequestParameter("openID");  
    117.         var nickName = this.getContext().getRequestParameter("nickName");  
    118.         var surveyType = this.getContext().getRequestParameter("surveyType");  
    119.   
    120.         // 如果openID为空,默认是临时用户  
    121.         if (openID === "") {  
    122.             openID = "temp_" + justep.UUID.createUUID();  
    123.         }  
    124.         if (nickName === "") {  
    125.             nickName = "temp";  
    126.         }  
    127.   
    128.         var surveyRows = surveyData.newData({  
    129.             index : 0,  
    130.             defaultValues : [ {  
    131.                 "fID" : surveyID,  
    132.                 "fPaperID" : this.getContext().getRequestParameter("paperID"),  
    133.                 "fPerID" : openID,  
    134.                 "fPerName" : nickName,  
    135.                 "fSState" : "已完成",  
    136.                 "fFinishTime" : justep.Date.toString(new Date(), justep.Date.STANDART_FORMAT),  
    137.                 "fAddress" : this._userAddress,  
    138.                 "flongitude" : this._longtitude,  
    139.                 "fLatitude" : this._latitude  
    140.             } ]  
    141.         });  
    142.         var detailRows = null;  
    143.         var success = function(resultData) {  
    144.             var tempdefaultValues = [];  
    145.             // 开始插入答卷人答卷答案  
    146.             data1.each(function(param) {  
    147.                 var tempAnswerJson = {  
    148.                     "fID" : justep.UUID.createUUID(),  
    149.                     "fSurveyID" : surveyID,  
    150.                     "fQuestionID" : param.row.val("fID"),  
    151.                     "fAnswer" : param.row.val("fAnswer")  
    152.                 };  
    153.                 tempdefaultValues.push(tempAnswerJson);  
    154.             });  
    155.   
    156.             detailData.newData({  
    157.                 index : 0,  
    158.                 defaultValues : tempdefaultValues,  
    159.             });  
    160.             detailRows = detailData.saveData({  
    161.                 "onSuccess" : function(resultData) {  
    162.                     // justep.Util.hint("交卷成功!");  
    163.                     if (surveyType == "qrcode") {  
    164.                         justep.Util.hint("提交成功!");  
    165.                         if (self.wxApi) {  
    166.                             self.wxApi.exec().done(function(wx) {  
    167.                                 wx.closeWindow();  
    168.                             });  
    169.                         }  
    170.                     } else {  
    171.                         justep.Shell.showPage(require.toUrl("./paper.w?_userID=" + self.getContext().getRequestParameter("openID") + "&_userNickName="  
    172.                                 + self.getContext().getRequestParameter("nickName")));  
    173.                     }  
    174.                 },  
    175.                 "onError" : function(msg) {  
    176.                     detailData.deleteData(detailRows);  
    177.                     justep.Baas.showError(msg);  
    178.                 }  
    179.             });  
    180.   
    181.         };  
    182.         var error = function(msg) {  
    183.             // 保存失败后清除数据  
    184.             surveyData.deleteData(surveyRows);  
    185.             justep.Baas.showError(msg);  
    186.         };  
    187.   
    188.         surveyData.saveData({  
    189.             "onSuccess" : success,  
    190.             "onError" : error  
    191.         });  
    192.         // }, this);  
    193.     };  
    194.   
    195.     Model.prototype.data1IndexChanged = function(event) {  
    196.         var rowID = event.source.getCurrentRowID();  
    197.         var itemsData = this.comp("itemsData");  
    198.         itemsData.setFilter("itemFilter0""fQuestionID = '" + rowID + "'");  
    199.         itemsData.refreshData();  
    200.     };  
    201.   
    202.     // 设置微信标题  
    203.     Model.prototype.modelModelConstruct = function(event) {  
    204.         document.title = this.getContext().getRequestParameter("paperName");  
    205.     };  
    206.   
    207.     Model.prototype.modelLoad = function(event) {  
    208.         if (justep.Browser.isWeChat) {  
    209.             this.wxApi = new navigator.WxApi("wxcc420846eb481632");  
    210.         }  
    211.         // var self = this;  
    212.         // // 获取url上的code参数 - 微信授权code,用于获取微信用户信息  
    213.         // var weixinCode = this.getContext().getRequestParameter("openID");  
    214.         // // 判断运行环境是否在X5移动客户端中,如果在移动客户端中,则当deviceready后取手机设备uuid作为用户唯一标识  
    215.         // if (weixinCode !== "") {  
    216.         // if (justep.Browser.isWeChat) {  
    217.         // self.wxApi = new navigator.WxApi("wxcc420846eb481632");  
    218.         // }  
    219.         // }  
    220.     };  
    221.   
    222.     return Model;  
    223. });  

    四、WeX5平台介绍

    wex5平台是北京起步公司开发的面向移动应用的开源平台

    • 定位开发面向消费者和公众的开放应用系统
    展开全文
  • 手机端调查问卷页面模板手机端调查问卷页面模板手机端调查问卷页面模板手机端调查问卷页面模板手机端调查问卷页面模板
  • <p>Hello,第一场发帖求大佬们多多指教,最近在做一个学校project,想了解APP开发者对于ios,andriod的使用体验ÿ...大家有什么推荐的开发者平台或社区可以发调查问卷的吗 谢谢!</p>
  • --网络安全宣传周组委会-App安全意识公众调查问卷报告-2020.9-20页精品报告2020.pdf
  • 刷问卷星调查问卷It is a truth universally acknowledged thatasearch enginein possession of a good fortune must be in want of more data. If you want to earn some extra money (in the form of Google Play ...
    刷问卷星调查问卷

    刷问卷星调查问卷

    It is a truth universally acknowledged that a search engine in possession of a good fortune must be in want of more data. If you want to earn some extra money (in the form of Google Play Credit or PayPal money), Google will give you some in exchange for answering a few occasional survey questions.

    公认的事实是,拥有好运的搜索引擎必须缺少更多数据。 如果您想赚一些额外的钱(以Google Play积分或PayPal钱的形式),则Google会为您提供一些回报,以回答一些偶然的调查问题。

    The Google Opinion Rewards app (for Android and iOS) periodically gives you surveys consisting of a few simple questions. Most are based around your shopping habits and come from market researchers. If you’d like to know how your data will be used, you can read Google’s FAQ on the subject uses here.

    Google Opinion Rewards应用程序(适用于AndroidiOS )会定期为您提供一些简单问题的调查问卷。 大多数都基于您的购物习惯,并且来自市场研究人员。 如果您想知道如何使用您的数据,可以在此处阅读有关主题使用情况的Google常见问题解答

    The rewards you get won’t pay your bills or anything, but each survey rewards anywhere from ten cents to a dollar or so for a few seconds of your time. It seems small, but it can add up fast—and when it does, and you can get free movie rentals or buy a couple games on the Play Store (if you’re on Android) or PayPal money (on the iPhone and iPad). Remember, Google Play credit even works on in-app purchases, so you can buy Pokéballs or comic books. All for passing a few seconds of time when you’re bored waiting in line at the grocery store.

    您获得的奖励不会支付您的账单或任何费用,但是每次调查都会在几秒钟的时间内奖励10美分到1美元左右。 它看起来很小,但可以快速累加,而且每次添加时,您都可以免费租借电影或在Play商店(如果您使用的是Android)或PayPal money(在iPhone和iPad上)购买情侣游戏。 请记住,Google Play点数甚至可以在应用程序内购买中使用,因此您可以购买Pokéballs漫画书 。 当您无聊地在杂货店排队等候时,所有这些花费了几秒钟的时间。

    To get started, download the Google Opinion Rewards app for Android or iOS. The first time you launch it, the app will ask you a series of demographic questions. Once you’re finished with those, you can wait for new surveys to show up. You’ll usually see them when you get a notification like the one below.

    首先,请下载适用于AndroidiOS的Google意见奖励应用。 首次启动时,该应用程序将询问您一系列的人口统计问题。 完成这些操作后,您可以等待新的调查显示。 当您收到类似以下的通知时,通常会看到它们。

    When you get the notification, tap on it. Most surveys begin with an explanation of how this specific data is used. Tap “OK, got it.”

    收到通知后,点击它。 大多数调查都是从解释如何使用此特定数据开始的。 点击“确定,知道了。”

    Next, you’ll see a set of questions. These differ from one survey to another, and in some cases you may get some questions that are used to verify your honesty. For example, if you’ve recently visited a store, Google may ask you which of five stores you’ve been to. If you answer dishonestly, the survey will be cut short and you’ll receive a lower reward than if you answered correctly.

    接下来,您将看到一系列问题。 这些调查因一项调查而异,在某些情况下,您可能会遇到一些问题,这些问题可用来证明您的诚实。 例如,如果您最近访问过一家商店,则Google可能会询问您去过五家商店中的哪一家。 如果您不诚实地回答,那么调查将被缩短,与正确回答相比,您将获得较低的奖励。

    Once you’ve finished answering all your questions, you’ll see how much credit you receive as a reward. Longer surveys tend to get more money, and honest answers (at least as far as Google is able to confirm them) get higher rewards than choosing answers randomly.

    回答完所有问题后,您将看到获得的积分奖励。 较长的调查往往会获得更多的钱,诚实的答案(至少在Google能够确认的范围内)比随机选择答案会获得更高的回报。

    If you want to make extra certain that you don’t miss a survey, you can enable a notification sound. Normally, survey notifications are silent, but the sound (or vibration, if you keep your phone on silent) can give you a nudge so you don’t miss it. The surveys do expire, so the notifications can help make sure you don’t miss something.

    如果您想确定自己不会错过任何一项调查,则可以启用通知声音。 通常,调查通知是无声的,但是声音(或振动,如果您保持手机处于无声状态)可以使您轻拍,所以您不会错过它。 调查确实会过期,因此通知可以帮助确保您不会错过任何东西。

    To turn notifications on, open the app and tap the menu icon in the top right. Then, tap Settings.

    要打开通知,请打开应用程序,然后点击右上角的菜单图标。 然后,点击设置。

    On the settings page, enable the “Notification sounds” toggle.

    在设置页面上,启用“通知声音”切换。

    Once everything is set up, all you have to do is wait for surveys to hit your phone. According to the product manager at Google for the app, the best way to get more surveys is to answer honestly and respond to surveys quickly. You’ll also get more surveys the more you get out of your house. Some stores will give you a survey every time you visit (usually a day or so later). Of course, you don’t need to upend your routine just for a quarter from Google, but if you stay at home all the time, you probably won’t see many surveys.

    一切设置完成后,您要做的就是等待调查结果打入您的手机。 根据该应用程序的Google产品经理的说法,获得更多调查问卷的最佳方法是诚实回答并Swift答复调查问卷。 您离开屋子越多,获得的调查也越多。 有些商店会在您每次访问时(通常是一天左右)向您提供调查。 当然,您不必只花四分之一的时间就可以从谷歌那里改掉自己的习惯,但是如果您一直呆在家里,那么您可能不会看到很多调查。

    It should also go without saying that if you want to keep your data as private as possible, this app isn’t for you. Google will use this data to customize ads for you, on top of third-party marketing companies using it for analyzing your shopping habits. As long as you’re comfortable with that, enjoy your free money.

    同样,不用说,如果您想让数据尽可能私密,则此应用不适合您。 Google将使用这些数据为您定制广告,并使用第三方营销公司来分析您的购物习惯。 只要您对此感到满意,就可以享受免费的钱。

    翻译自: https://www.howtogeek.com/298576/how-to-get-free-money-from-google-by-answering-quick-surveys/

    刷问卷星调查问卷

    展开全文
  • 用户调查问卷

    千次阅读 2015-08-18 21:35:52
    APP评测的方法,可根据APP的类别有大致划分: ...百度医疗的调查问卷,也是第一次设计调查问卷的尝试。 用户问卷调查的设计,需注意的几点: 1.针对的目的用户:老用户/新用户,用户规模,是否有地域/职业/年
  • 由于本人是新手,希望大家把大致流程给我讲讲,还包括问卷的录入和统计如何实现
  • Android实现调查问卷

    2019-03-16 13:22:55
    安卓实现调查问卷的形式,有单选多选,星级题,还有提交和重选功能
  • 大学生移动互联网应用状况调查问卷报告
  • 【范例7-3 文本编辑框制作简单的调查问卷】 01 02 03 04 05 调查问卷...
  • Android:设计一个简单的调查问卷

    千次阅读 热门讨论 2018-11-04 11:57:35
    今天写了一个demo,里面用到了常用的布局,以及常用的几种控件,这里调查问卷名字为大学生日常消费调查问卷,是参考网上的常用调查问卷,选择了几个问题,为了省事,这里我只选择了6个问题,最终效果:用户填写完调查...
  • 本问卷系调研软件专业学生就业情况专业调查问卷,格式准确,设计合理,是您社会实践的好帮手。
  • 生活中常常会收到各种各样的调查问卷,其中包括了参与调查者的电话、地址、年龄等内容。本节就来制作一个简单的调查问卷,练习各种文本框的使用。
  • 调查问卷之心得体会

    2019-10-09 05:36:06
    以前在各种社会实践活动中,我总是发调查问卷给别人填,而自己却从未动手亲自的制作一份调查问卷,关于这一点,我感到异常惭愧。很感谢老师给了我这次自己动手的机会,让我从中学到了很多。以下是关于这次调查问卷的...
  • 答题小程序之调查问卷模板开发

    万次阅读 热门讨论 2018-09-10 08:52:27
    这次我和大家分享一下如何用小程序做一个问卷调查小程序,可以是行业问卷,或者是测试题的。该问卷调查主要介绍题目多且题型多,题目数在15道以上,题型包含单选,非必做、必做题,填空题。当然可以从这些衍生更多的...
  • 一、问卷调查App运营有什么用? 1、App立项时,或产品有重大功能迭代前,用来做决策辅助。 例如说,老板想做支付,觉得现有支付还有安全系数低的空白点,那么其他决策参与人提出了异议,此时就有必要做市场需求调查...
  • 安卓之问卷调查

    2015-01-23 14:25:49
    安卓APP问卷调查,解析字符串,添加控件,大家可以参考下
  • index.html <!DOCTYPE html> <html> <head>...meta charset="utf-8" />...调查问卷app</title> <script src="js/jquery.js" type="text/javascript" charset="utf-8"...
  • excel调查问卷的录入

    2021-03-18 14:50:05
    excel调查问卷的录入 初学python由于工作需要,自己写了一份excel调查问卷的录入小代码,评分的内容以已经在excel文件中创建,进输入评分即可 import xlwings as xw from openpyxl import load_workbook path='C:/...
  • 问卷调查 for Andriod客户端

    千次阅读 2017-09-16 21:16:33
    for Html5、微信调查、微信调研、微信问卷调研、问卷调查 APP、移动调研解决方案、问卷调查软件、离线问卷面访、移动调研、统计调研、在线问卷调查、在线调研系统、问卷调研、移动问卷调研、调查问卷、车展问卷调...
  • 调查问卷的心得体会

    2016-03-11 21:44:00
    在我们小组定了课题并且有了一系列的想法后,我们按照老师的指导设计了许多问题来做调查问卷。许多份问卷的结果显示,大家虽然和我们小组的想法没有大的差异,然后还是让我们意识到不足之处和可以改进的地方。我想这...
  • 基于Vue的问卷调查app页面的开发

    千次阅读 2019-10-15 14:59:52
    话不多说,先上效果图 设计要点: 1.一个题目独占一页,通过按钮实现切换 2.当题目处在第一题时,上一题按钮消失,处在最后一题时,下一题按钮消失,只有在最后一个题才有提交按钮 3.将按钮等设计成组件,以便以后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,751
精华内容 1,900
关键字:

app调查问卷