Showing
3 changed files
with
31 additions
and
11 deletions
@@ -14,6 +14,24 @@ const _fillQuestionContents = data => { | @@ -14,6 +14,24 @@ const _fillQuestionContents = data => { | ||
14 | return data; | 14 | return data; |
15 | }; | 15 | }; |
16 | 16 | ||
17 | +const _handelSubQuestion = (qs, jid) => { | ||
18 | + if (qs) { | ||
19 | + qs = _.concat([], qs); | ||
20 | + | ||
21 | + _.forEach(qs, value => { | ||
22 | + Object.assign(value, { | ||
23 | + subQs: true, | ||
24 | + jid: jid | ||
25 | + }); | ||
26 | + _fillQuestionContents(value); | ||
27 | + }); | ||
28 | + | ||
29 | + } | ||
30 | + | ||
31 | + return qs; | ||
32 | + | ||
33 | +}; | ||
34 | + | ||
17 | module.exports = class extends global.yoho.BaseModel { | 35 | module.exports = class extends global.yoho.BaseModel { |
18 | constructor(ctx) { | 36 | constructor(ctx) { |
19 | super(ctx); | 37 | super(ctx); |
@@ -62,15 +80,17 @@ module.exports = class extends global.yoho.BaseModel { | @@ -62,15 +80,17 @@ module.exports = class extends global.yoho.BaseModel { | ||
62 | let data = _.get(result, '[1].data', {}); | 80 | let data = _.get(result, '[1].data', {}); |
63 | 81 | ||
64 | if (data.questions) { | 82 | if (data.questions) { |
65 | - _.forEach(data.questions, value => { | 83 | + _.forEach(data.questions, (value, key) => { |
66 | if (!_.isEmpty(value.questionContents)) { | 84 | if (!_.isEmpty(value.questionContents)) { |
67 | - _.forEach(value.questionContents, subval => { | ||
68 | - _fillQuestionContents(subval.jumpQuestion); | ||
69 | - | ||
70 | - if (subval.jumpQuestion) { | ||
71 | - value.hasSub = true; | ||
72 | - _.set(subval, 'jumpQuestion.subQs', true); | 85 | + _.forEach(value.questionContents, (subval, subkey) => { |
86 | + if (!subval.jumpQuestion) { | ||
87 | + return; | ||
73 | } | 88 | } |
89 | + | ||
90 | + value.hasSub = true; | ||
91 | + subval.jid = `${key}-${subkey}`; | ||
92 | + subval.jumpQuestion = _handelSubQuestion(subval.jumpQuestion, | ||
93 | + subval.jid); | ||
74 | }); | 94 | }); |
75 | } | 95 | } |
76 | 96 |
1 | -<dl class="{{#if subQs}}sub-qs-item sub-qs{{questionIndex}} hide{{^}}qs-item{{/if}}" data-index="{{questionIndex}}" data-type="{{questionType}}"> | 1 | +<dl class="{{#if subQs}}sub-qs-item sub-{{jid}} hide{{^}}qs-item{{/if}}" data-index="{{questionIndex}}" data-type="{{questionType}}"> |
2 | <dt>{{questionTitle}}</dt> | 2 | <dt>{{questionTitle}}</dt> |
3 | {{#isEqualOr questionType 1}} | 3 | {{#isEqualOr questionType 1}} |
4 | {{# questionContents}} | 4 | {{# questionContents}} |
5 | - <dd class="radio-option" data-index="{{@index}}"{{# jumpQuestion}} data-jid="{{questionIndex}}"{{/ jumpQuestion}}> | 5 | + <dd class="radio-option" data-index="{{@index}}"{{#if jid}} data-jid="{{jid}}"{{/if}}> |
6 | <span class="iconfont"></span> | 6 | <span class="iconfont"></span> |
7 | <div class="option-box">{{{option}}}</div> | 7 | <div class="option-box">{{{option}}}</div> |
8 | {{#if addon}} | 8 | {{#if addon}} |
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | 14 | ||
15 | {{#isEqualOr questionType 2}} | 15 | {{#isEqualOr questionType 2}} |
16 | {{# questionContents}} | 16 | {{# questionContents}} |
17 | - <dd class="check-option" data-index="{{@index}}"{{# jumpQuestion}} data-jid="{{questionIndex}}"{{/ jumpQuestion}}> | 17 | + <dd class="check-option" data-index="{{@index}}"{{#if jid}} data-jid="{{jid}}"{{/if}}> |
18 | <span class="iconfont"></span> | 18 | <span class="iconfont"></span> |
19 | <div class="option-box">{{{option}}}</div> | 19 | <div class="option-box">{{{option}}}</div> |
20 | {{#if addon}} | 20 | {{#if addon}} |
@@ -96,7 +96,7 @@ let question = { | @@ -96,7 +96,7 @@ let question = { | ||
96 | 96 | ||
97 | for (i = 0; i < ids.length; i++) { | 97 | for (i = 0; i < ids.length; i++) { |
98 | if (ids[i]) { | 98 | if (ids[i]) { |
99 | - $wrap.find('.sub-qs' + ids[i]).removeClass('hide'); | 99 | + $wrap.find('.sub-' + ids[i]).removeClass('hide'); |
100 | } | 100 | } |
101 | } | 101 | } |
102 | $wrap.slideDown(); | 102 | $wrap.slideDown(); |
-
Please register or login to post a comment