|
@@ -2,43 +2,22 @@
|
|
|
<view class="page" :style="{'min-height':h+'px', 'padding-top':mt+'px'}">
|
|
|
<cus-header title='问卷填写'></cus-header>
|
|
|
<div class="top adffcacjc">
|
|
|
- <p>{{'企业员工培训需求调查问卷'}}</p>
|
|
|
- <p class="tip">共 <span>{{36}}</span> 题,请耐心选择!</p>
|
|
|
+ <p>{{title}}</p>
|
|
|
+ <p class="tip">共 <span>{{list.length}}</span> 题,请耐心选择!</p>
|
|
|
</div>
|
|
|
<div class="list" :style="{'height':(h-180-mt)+'px'}">
|
|
|
<div class="l_item" v-for="(item,index) in list" :key="index">
|
|
|
<div class="li_box" :class="{'active':item.warn}">
|
|
|
- <div class="lb_title adfac">
|
|
|
+ <div class="lb_title adf">
|
|
|
<span>*</span>
|
|
|
{{index+1}}. {{item.question}}
|
|
|
- <text v-if="item.type===2">【多选题】</text>
|
|
|
</div>
|
|
|
- <div class="lb_answers" v-if="[1,2].includes(item.type)">
|
|
|
- <template v-if="item.type===1">
|
|
|
- <u-radio-group v-model="item.answer" placement="column">
|
|
|
- <div class="la_item" v-for="(pre,idx) in item.answers" :key="idx">
|
|
|
- <u-radio :label="pre.name" :name="pre.name" activeColor="#833478" size="36rpx" iconSize="32rpx" labelSize="32rpx"></u-radio>
|
|
|
- </div>
|
|
|
- </u-radio-group>
|
|
|
- </template>
|
|
|
- <template v-else-if="item.type===2">
|
|
|
- <u-checkbox-group v-model="item.answer" placement="column">
|
|
|
- <div class="la_item" v-for="(pre,idx) in item.answers" :key="idx">
|
|
|
- <u-checkbox :label="pre.name" :name="pre.name" activeColor="#833478" size="36rpx" iconSize="32rpx" labelSize="32rpx"></u-checkbox>
|
|
|
- </div>
|
|
|
- </u-checkbox-group>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- <template v-if="item.type===3">
|
|
|
- <div class="la_inp adfac">
|
|
|
- <u--input placeholder="请输入" border="none" v-model="item.answer"></u--input>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <div class="la_warn adfac" v-if="item.type===2&&item.warn">
|
|
|
- <div class="lw adffcacjc">
|
|
|
- <u-icon name="close" color="#FFFFFF" size="23rpx"></u-icon>
|
|
|
- </div>
|
|
|
- <span>此题最少要选择{{item.limit}}项,您少选择了{{item.limit-(item.answer.length||0)}}项</span>
|
|
|
+ <div class="lb_answers">
|
|
|
+ <u-radio-group v-model="item.answer" placement="column">
|
|
|
+ <div class="la_item" v-for="(pre,idx) in item.userAnswer" :key="idx">
|
|
|
+ <u-radio :label="pre.questionOption" :name="pre.questionOption" activeColor="#833478" size="36rpx" iconSize="32rpx" labelSize="32rpx"></u-radio>
|
|
|
+ </div>
|
|
|
+ </u-radio-group>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -53,56 +32,48 @@
|
|
|
export default {
|
|
|
data(){
|
|
|
return {
|
|
|
- list:[
|
|
|
- {
|
|
|
- question:'您所在的部门是哪个?',
|
|
|
- answer:'',
|
|
|
- answers:[
|
|
|
- {name:'A 人力资源部'},
|
|
|
- {name:'B 财务部'},
|
|
|
- {name:'C 市场部'},
|
|
|
- {name:'D 技术部'},
|
|
|
- {name:'E 其他'},
|
|
|
- ],
|
|
|
- type:1, //1 单选;2 多选; 3 输入
|
|
|
- warn:false
|
|
|
- },
|
|
|
- {
|
|
|
- question:'您的工作年限是?',
|
|
|
- answer:'',
|
|
|
- answers:[
|
|
|
- {name:'A 1年以下'},
|
|
|
- {name:'B 1-3年'},
|
|
|
- {name:'C 3-5年'},
|
|
|
- {name:'D 5年以上'},
|
|
|
- ],
|
|
|
- type:2,
|
|
|
- limit:2,
|
|
|
- warn:false
|
|
|
- },
|
|
|
- {
|
|
|
- question:'您的收入是?',
|
|
|
- answer:'',
|
|
|
- type:3,
|
|
|
- warn:false
|
|
|
- }
|
|
|
- ]
|
|
|
+ title:'',
|
|
|
+ teamQuestionnaireId:'',
|
|
|
+ list:[]
|
|
|
}
|
|
|
},
|
|
|
+ onLoad(option) {
|
|
|
+ this.title = option.title;
|
|
|
+ this.teamQuestionnaireId = option.teamQuestionnaireId;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
methods:{
|
|
|
+ getList(){
|
|
|
+ this.$api.get('/core/team/member/answer/listByUser/'+this.teamQuestionnaireId).then(res=>{
|
|
|
+ if(res.data.code!==0) return this.$showToast(res.data.msg)
|
|
|
+ this.list = res.data.data;
|
|
|
+ this.list.forEach((l,i)=>{
|
|
|
+ this.$set(this.list[i],'warn',false);
|
|
|
+ this.$set(this.list[i],'answer','');
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
submitWj(){
|
|
|
this.list.forEach((l,i)=>{
|
|
|
- if(l.type===2){
|
|
|
- this.$set(this.list[i],'warn',l.answer.length<l.limit)
|
|
|
- }else{
|
|
|
- this.$set(this.list[i],'warn',!l.answer?true:false)
|
|
|
- }
|
|
|
+ this.$set(this.list[i],'warn',!l.answer?true:false)
|
|
|
})
|
|
|
- if(this.list.find(l=>l.warn)) return
|
|
|
- uni.navigateTo({
|
|
|
- url:'/pages/questionnaireResult'
|
|
|
+ let idx = this.list.findIndex(l=>l.warn);
|
|
|
+ if(idx>-1) return this.$showModal(`第${idx+1}项未选择答案,请选择。`)
|
|
|
+ let newList = JSON.parse(JSON.stringify(this.list));
|
|
|
+ newList.forEach(l=>{
|
|
|
+ l.isAnswer = '1';
|
|
|
+ let i = l.userAnswer.findIndex(a=>a.questionOption===l.answer)
|
|
|
+ if(i>-1) l.userAnswer[i].userAnswer = true;
|
|
|
+ delete l.answer
|
|
|
+ delete l.warn
|
|
|
})
|
|
|
- },
|
|
|
+ this.$api.post('/core/team/member/answer/submit',newList).then(res=>{
|
|
|
+ if(res.data.code!==0) return this.$showToast(res.data.msg)
|
|
|
+ uni.navigateTo({
|
|
|
+ url:'/pages/questionnaireResult'
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|