forked from nsjcy/frontEnd/nsjcy

xuxj
2020-04-08 4a76c06e7f754e232338ce7e075c08924cffe209
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
import React from 'react';
import { Input, Button, DatePicker, Divider, message, Popconfirm, Select, Badge, Spin, Breadcrumb } from 'antd';
import Questionnair from '../page/Questionnair'
import Fetch from '../fetch'
import HeadView from '../view/HeadView';
 
export default class QuestionDetail extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      loading: false,
      data: [],
      initData: null,
      btnLoading: false
 
    };
  }
 
  componentDidMount() {
 
    document.title = '问卷详情';
    const { id } = this.props.match.params;
 
    this.setState({
      loading: true
    });
    Fetch.questionFindById(id).then(res => {
      console.log('res', res);
      this.setState({
        loading: false,
        initData: res
      })
    })
  }
 
  submitQuestionTemp = (questionDtos, extraData) => {
    console.log('extraData',extraData)
    const { initData } = this.state;
    console.log('questionDtos', questionDtos);
    if (!extraData.questionnairTitle) {
      return message.error('请填写问卷标题');
    }
    questionDtos = questionDtos.map(({ type, title, required, remarkText, options, scores, warnFlag }) => ({
      type, title, required, remarkText, options, scores, warnFlag
    }));
    this.setState({
      btnLoading: true
    })
    Fetch.saveQuestionTemp({
      ...initData,
      title: extraData.questionnairTitle,
      content: extraData.questionnairDescription,
      businessType: extraData.questionnairBusinessType,
      questionDtos
    }).then(res => {
      console.log('res', res);
      this.setState({
        btnLoading: false
      })
      if (res.code == 0) {
        message.success('问卷提交成功');
      }
    })
  }
 
  getData = () => {
 
  }
 
  render() {
 
    const { data, loading, resetKey, initData, btnLoading } = this.state;
    console.log('initData',initData)
    return (
      <div className="app-page">
        <HeadView history={this.props.history} />
        {/* <div style={{
          margin: 10
        }}>
          <Breadcrumb>
            <Breadcrumb.Item>
              <a onClick={() => {
                this.props.history.goBack();
              }}>问卷管理</a>
            </Breadcrumb.Item>
 
            <Breadcrumb.Item>
              问卷详情
            </Breadcrumb.Item>
          </Breadcrumb>
        </div> */}
        {
          loading ?
            <div style={{ height: 200, width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
              <Spin spinning={loading} />
            </div> :
            <React.Fragment>
              {/* <Questionnair submitQuestionTemp={this.submitQuestionTemp} btnLoading={btnLoading} /> */}
              {
                initData &&
                <div style={{ background: '#fff', marginTop: 10 }}>
                  <div style={{ width: 700, margin: '0 auto', padding: '20px 0 0 0 ' }}>
                    <h3>
                      问卷标题:{initData.title || '暂无'}
                    </h3>
                    <h4 style={{ marginBottom: 0 }}>
                      问卷描述:{initData.content || '暂无'}
                    </h4>
                    <h4 style={{ marginBottom: 0 }}>
                      业务类型:{typeStatus(initData.businessType) || '暂无'}
                    </h4>
                  </div>
                </div>
              }
 
              {initData && initData.questionDtos.map((item, index) => (
                <Questionnair.Editor editor={item} acitveAnswer={true} key={item.questionId} index={index} />
              ))}
            </React.Fragment>
        }
 
      </div>
    );
  }
 
}
function typeStatus(type) {
  switch (type) {
    case 1:
      return "企业体检";
    case 2:
      return "培训活动";
    case 3:
      return "未检调查";
    case 4:
      return "刑执监督";
  }
}