123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- // components/questionnaire/questionnaire.js
- import $ from '../../utils/Tool';
- import {
- queryQuestion,
- submitAnswer,
- notShowQuestion
- } from "../../requests/api";
- Component({
- /**
- * 组件的属性列表
- */
- options: {
- styleIsolation: 'shared',
- },
- properties: {
- },
- lifetimes: {
- attached: function() {
- this.queryDate();
- // 在组件实例进入页面节点树时执行
- },
- detached: function() {
- // 在组件实例被从页面节点树移除时执行
- },
- },
- /**
- * 组件的初始数据
- */
- data: {
- startValue:0,
- checked:[],
- tipsshow:false,
- dialogRadio:'2',
- answer:false,
- questionDate:[],
- firstDate:{},
- otherDate:[],
- submitFlag:false,
- },
- /**
- * 组件的方法列表
- */
- methods: {
- preventTouchMove(){
- },
- emitClose(value){
- this.triggerEvent('surveyClose',value?{good:true}:{good:false})
- },
- queryDate(){
- let data={
- "criteria":{
- "type":0
- }
- }
- queryQuestion(data).then(res=>{
- const [firstDate,...otherDate]= res.content;
- otherDate.forEach(v=>{
- v.checked=[];
- v.remark=false;
- v.remarkTxt="";
- })
- this.setData({
- firstDate:firstDate||{},
- otherDate:otherDate||[],
- questionDate:res.content||[]
- })
- })
- },
- inputChange(e){
- let {index} = e.currentTarget.dataset;
- let mText = 'otherDate['+ index +'].remarkTxt';
- let {value} = e.detail;
- this.setData({
- [mText]:value
- })
- },
- closePage(){
- this.setData({
- tipsshow:true
- })
- },
- starChange(event){
- let that =this;
- if(event.detail!==5){
- this.setData({
- startValue: event.detail,
- answer:true
- });
- }else{
- this.setData({
- startValue: event.detail,
- submitFlag:true
- },()=>{
- that.submitFeed();
- });
- // this.emitClose(true);
- }
- },
- selectChange(event){
- let {index} = event.currentTarget.dataset;
- let mText = 'otherDate['+ index +'].checked';
- let remark = 'otherDate['+ index +'].remark';
- let flag = event.detail.includes("12");
- let that =this;
- this.setData({
- [mText]: event.detail,
- [remark]:flag
- },()=>{
- if(flag){
- wx.createSelectorQuery().in(that).select('#qus_listbox').boundingClientRect(function(rect){
- that.setData({
- textScroll:rect.height
- })
- }).exec()
- }
- let falg = that.data.otherDate.filter((item)=>{
- return !item.checked.length
- });
- !falg.length?that.setData({submitFlag:true}):that.setData({submitFlag:false});
- });
- },
- radioChange(event){
- this.setData({
- dialogRadio: event.detail,
- });
- },
- closeDialog(){
- this.setData({
- tipsshow:false
- })
- },
- async submitMsg(){
- if(this.data.dialogRadio==1){
- let {id} = $.store.get('userInfo');
- let tenantId = $.store.get('tenantId');
- let projectId = $.store.get('projectId');
- let data={
- "projectId":projectId,
- "tenantId":tenantId,
- "userId":id,
- "startTime":this.data.firstDate.startTime,
- "endTime":this.data.firstDate.endTime,
- "isDisplay": false,
- "seasonType":this.data.firstDate.seasonType
- }
- await notShowQuestion(data)
- }else{
- $.storage.set('nextRemind',true);
- }
- this.setData({
- tipsshow:false
- })
-
- this.data.dialogRadio==1?this.emitClose(true):this.emitClose();
- },
- submitFeed(){
- if(!this.data.submitFlag){
- return
- }
- let falgRemark=true;
- let {id,nickname,phone,userName}= $.store.get('userInfo');
- let startTime = this.data.firstDate.startTime;
- let endTime = this.data.firstDate.endTime;
- let projectId= $.store.get('projectId');
- let tenantId= $.store.get('tenantId');
- let dateTemplate={
- "projectId":projectId,//项目id
- "tenantId":tenantId,
- "seasonType":this.data.firstDate.seasonType||'Warm',//季节类型
- "userId":id,//用户id
- "nickName":nickname,//微信昵称
- "phone":phone,//手机号
- "userName":userName,//手机号
- "type":"0",//类型 0 小程序
- "startTime":startTime,//调查问卷开始时间
- "endTime":endTime,//调查问卷结束时间
- }
- let firstDate={...dateTemplate};
- let startIndex=5-this.data.startValue;
- firstDate.questionId=this.data.firstDate.questionId;
- firstDate.questionAnswerList=[{answerId: this.data.firstDate.questionAnswerList[startIndex].answerId}];
- let data=[firstDate];
- if(this.data.answer){
- this.data.otherDate.forEach(item=>{
- let otherdate={...dateTemplate};
- otherdate.questionId=item.questionId;
- otherdate.questionAnswerList=[];
- item.checked.forEach(v=>{
- let obj={};
- obj.answerId=v;
- if(item.remark&&v==12){
- item.remarkTxt?(obj.remark=item.remarkTxt):(falgRemark=false);
- }
- otherdate.questionAnswerList.push(obj);
- })
- data.push(otherdate);
- })
- }
- if(!falgRemark){
- wx.showToast({
- title:"其他选项不能为空",
- icon:"none",
- duration: 1000
- })
- return
- }
- submitAnswer(data).then(res=>{
- let that =this;
- this.setData({dialogRadio:1},()=>{
- that.submitMsg();
- })
- })
- }
- }
- })
|