import React, {Component} from 'react'; import { Radio, Checkbox, } from 'antd'; import axios from 'axios'; import './css/TPMsettings.css'; import Bottomsubmit from "../../modals/Bottomsubmit"; const RadioGroup = Radio.Group; export default class Shixuninformation extends Component { constructor(props) { super(props) this.state = { vnc: false, hide_code: false, is_secret_repository: false, code_hidden: false, forbid_copy: false, test_set_permission: true, task_pass: true, websshshow: false, multi_webssh: false, opensshRadio: null, loading: false } } componentDidMount() { if (this.props.data&&this.props.data.shixun) { this.setState({ vnc: this.props.data && this.props.data.shixun.vnc, code_hidden: this.props.data && this.props.data.shixun.code_hidden, forbid_copy: this.props.data && this.props.data.shixun.forbid_copy, hide_code: this.props.data && this.props.data.shixun.hide_code, task_pass: this.props.data && this.props.data.shixun.task_pass, test_set_permission: this.props.data && this.props.data.shixun.test_set_permission, is_secret_repository: this.props.data && this.props.data.shixun.is_secret_repository, websshshow: this.props.data && this.props.data.shixun.webssh === 0 ? false : true, multi_webssh: this.props.data && this.props.data.shixun.multi_webssh, opensshRadio: this.props.data && this.props.data.shixun.webssh === 0 ? null : this.props.data && this.props.data.shixun.webssh, }) // if(this.props.data && this.props.data.shixun.status===0){ // this.setState({ // task_pass:true // }) // } } } componentDidUpdate(prevProps, prevState) { if (prevProps.data != this.props.data) { if (this.props.data) { this.setState({ vnc: this.props.data && this.props.data.shixun.vnc, code_hidden: this.props.data && this.props.data.shixun.code_hidden, forbid_copy: this.props.data && this.props.data.shixun.forbid_copy, hide_code: this.props.data && this.props.data.shixun.hide_code, task_pass: this.props.data && this.props.data.shixun.task_pass, test_set_permission: this.props.data && this.props.data.shixun.test_set_permission, is_secret_repository: this.props.data && this.props.data.shixun.is_secret_repository, websshshow: this.props.data && this.props.data.shixun.webssh === 0 ? false : true, multi_webssh: this.props.data && this.props.data.shixun.multi_webssh, opensshRadio: this.props.data && this.props.data.shixun.webssh === 0 ? null : this.props.data && this.props.data.shixun.webssh, }) // if(this.props.data && this.props.data.shixun.status===0){ // this.setState({ // task_pass:true // }) // } } } } onSubmits = () => { this.setState({ loading: true }) let id = this.props.match.params.shixunId; let url = `/shixuns/${id}/update_permission_setting.json`; axios.post(url, { shixun: { code_hidden: this.state.code_hidden, forbid_copy: this.state.forbid_copy, hide_code: this.state.hide_code, multi_webssh: this.state.multi_webssh, task_pass: this.state.task_pass, test_set_permission: this.state.test_set_permission, vnc: this.state.vnc, webssh: this.state.websshshow === false ? 0 : this.state.opensshRadio, }, is_secret_repository: this.state.is_secret_repository } ).then((response) => { if (response.data.status === -1) { } else { this.props.getdatas() this.props.showNotification("学习页面设置保存成功!") this.setState({ loading: false }) } }).catch((error) => { this.setState({ loading: false }) }) } Checkvnc = () => { console.log(this.state.vnc) if (this.state.vnc === false) { this.setState({ hide_code: false, is_secret_repository: false, code_hidden: false, forbid_copy: false, multi_webssh: false, websshshow: false, }) } this.setState({ vnc: !this.state.vnc }) } Checkhide_code = () => { if (this.state.hide_code === false) { this.setState({ is_secret_repository: false }) } this.setState({ hide_code: !this.state.hide_code }) } Checkis_secret_repository = () => { this.setState({ is_secret_repository: !this.state.is_secret_repository }) } Checkcode_hidden = () => { this.setState({ code_hidden: !this.state.code_hidden }) } Checkforbid_copy = () => { this.setState({ forbid_copy: !this.state.forbid_copy }) } Checktask_pass = () => { this.setState({ task_pass: !this.state.task_pass }) } Checktest_set_permission = () => { this.setState({ test_set_permission: !this.state.test_set_permission }) } Checkwebsshshow = () => { if (this.state.websshshow === false) { this.setState({ vnc: false, opensshRadio: 1 }) } else { this.setState({ multi_webssh: false, opensshRadio: null }) } this.setState({ websshshow: !this.state.websshshow }) } Checkmulti_webssh = () => { this.setState({ multi_webssh: !this.state.multi_webssh }) } opensshRadio = (e) => { if (e.target.value === 1) { this.setState({ multi_webssh: false }) } else { this.setState({ multi_webssh: true }) } this.setState({ opensshRadio: e.target.value }); } render() { console.log(this.props) return (