import React,{Component,Fragment} from 'react'
import PropTypes from 'prop-types'
import {Page,Validator,Notification,FormItem,DatePickerItem,TextAreaItem,CheckboxItem,Checkbox,
    InputItem,Input,Bind,SelectItem,Button,Label,Image,Table,ConfirmButton} from '@/components/Common-Library'
import Api from '@/service/api'
import mDbaurl from '../model'
import CodeTableFactory from '@/components/CodeTable'
import "./index.less"
import { inject, observer } from 'mobx-react'
import { action, observable,runInAction } from 'mobx'
import { Col, Row, Card } from 'antd'

const CodeTable = CodeTableFactory.getInstance()


@inject('UserContext')
@inject('i18n')
@observer
export default class DbaurlScreen extends Page
{
    
    @observable
    formBlur=false

    @observable
    isDisabled=false

    @observable
    extra = { inifrm: 'dbaurl', sptinr: '', bas_usrnam: [], bas_rolnam:[] }

    constructor(props)
    {
        super(props)
        this.model = new mDbaurl()    
        this.bind = Bind.bind(this)
    }
	
    async componentWillMount() {
      const rtnmsg = await Api.post(this.extra.inifrm + '/init', { })
      if (rtnmsg.retcod == SUCCESS) {
        Object.assign(this.model,rtnmsg.data)
        this.extra.bas_usrnam = rtnmsg.codetable.bas_usrnam;
        this.extra.bas_rolnam = rtnmsg.codetable.bas_rolnam;
      }
      else {
        Notification.error({ message: '服务端请求失败!' })
      }	
      
      //快照模式下，不必开启校验，否则，静默校验，和记录变动
      !this.loadDisplay() && this.model.openMonitor() //开启校验	
    }

    componentWillUnmount()
    {
        this.model.stopMonitor&&this.model.stopMonitor()//关闭校验
    }

    //按钮事件
    onSav= ()=>{
        this.formBlur=true  //已触发表单提交处理
        this.isDisabled=true

        Validator.validate(this.model,this.model.descriptor,async(errors,values)=>{
                if(errors){
                  this.isDisabled=false
                  return 
                }
                const rtnmsg = await Api.post('dbaurl/urlp_sav',{data:this.model})
                if(rtnmsg.retcod == SUCCESS)
                {
                    Notification.success({message:'数据提交成功!'})
                    this.props.history.push('dblurl')
                }
                else
                {
                  Notification.error({message:'服务端请求失败!'})
                  this.isDisabled=false
                }
                //余下逻辑处理
                    
        })
    }
   
    onRtn = ()=>{
      this.props.history.goBack();
    }

    //交易内实现
    renderPage(){
    	const bind = this.bind
      const {i18n} = this.props
      return (
        <Card title="用户与角色关系" size="small" className="transTitle">
          <div style={{position:'relative'}}>
            <Row>
              <Col span={12}>
                <Row className="row">
                  <Col span={5} offset={2}>
                    <Label itext="用户ID" trn="dbiurl" />
                  </Col>
                  <Col span={14}>
                    <SelectItem InputProps={bind("bas_usrnam")} code={this.extra.bas_usrnam} />
                  </Col>
                </Row>
              </Col>
              <Col span={12}>
                <Row className="row">
                  <Col span={5} offset={2}>
                    <Label itext="角色名称" trn="dbiurl" />
                  </Col>
                  <Col span={14}>
                    <SelectItem InputProps={bind("bas_rolnam")} code={this.extra.bas_rolnam} />
                  </Col>
                </Row>
              </Col>
            </Row>

            <Row type="flex" justify="center">
              <Col>
                <div className="button0">
                  <div className='button2'>
                    {/* 退出按钮 */}
                    <Button type="primary" onClick={this.onRtn}>
                      <Label i18nId="MTABUT_BT000020" />      
                    </Button>
                  </div>
                  <div className='button2'>
                    <ConfirmButton
                      type="primary"
                      onOK={this.onSav}
                      icon="save"
                      message="确定提交？"
                      disabled={this.isDisabled}
                    >
                      <Label i18nId="MTABUT_BT000473" />
                    </ConfirmButton>
                  </div>
                </div>
              </Col>
            </Row>
          </div>
        </Card>
      )      
	}
}
