diff --git a/packages/ui-default/components/subjective-question/index.jsx b/packages/ui-default/components/subjective-question/index.jsx index 023ef2f12..314f94376 100644 --- a/packages/ui-default/components/subjective-question/index.jsx +++ b/packages/ui-default/components/subjective-question/index.jsx @@ -1,12 +1,44 @@ import React from 'react'; +import { sortBy } from 'lodash'; +import request from 'vj/utils/request'; export default class MessagePadContainer extends React.PureComponent { + constructor(args) { + super(args); + this.state = {}; + this.onChange = this.onChange.bind(this); + this.onSubmit = this.onSubmit.bind(this); + } + + onChange(ev) { + this.setState({ [ev.target.name]: ev.target.value }); + } + + onSubmit(ev) { + ev.preventDefault(); + const entries = sortBy(Object.entries(this.state).map((i) => [+i[0], i[1]])); + const total = entries[entries.length - 1][0]; + const ans = new Array(total).fill(''); + entries.forEach((i) => ans[i[0]] = i[1]); // eslint-disable-line + request + .post(this.props.target, { + lang: '_', + code: ans.join('\n'), + }) + .then((res) => { + window.location.href = res.url; + }) + .catch((e) => { + Notification.error(e.message); + }); + } + Textbox(args, name) { return ( ); @@ -17,8 +49,8 @@ export default class MessagePadContainer extends React.PureComponent { <> {args.desc} {args.choices.map((i) => ( -