import React, { Component, Fragment } from 'react'
import {
	Page, Validator, Notification, FormItem,
	InputItem, Input, Bind, SelectItem, Button, Label, DatePickerItem, Section, Table, TextArea, ConfirmButton, Steps
} from '@/components/Common-Library'
import Api from '@/service/api'
import mDitram from '../model'
import CodeTableFactory from '@/components/CodeTable'

import "./index.less"
import { inject, observer } from 'mobx-react'
import { action, observable, runInAction } from 'mobx'

import Ovwp from './Ovwp'
import Detp from './Detp'
import Amep from './Amep'
import Adcpame from './Adcpame'
import Dorpame from './Dorpame'
import Dogpame from './Dogpame'

import Fee from '@/views/Public/Fee'
import Gle from '@/views/Public/Gle'
import Papper from '@/views/Public/Papper'

import { Card } from 'antd'


const CodeTable = CodeTableFactory.getInstance()
const StepItem = Steps.Item

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

	@observable
	extra = { inifrm: 'ditram', sptinr: '',oldinr:'', bchlevelLst: [] }



	constructor(props) {
		super(props)
		this.state = {
			flag: true
		}
		this.model = new mDitram()
	}
	async componentWillMount() {
		let didinr = '';
		
		if (this.props.location.query) {
			if(this.props.location.query.from=="sptsel"){
				this.extra.sptinr=this.props.location.query.sptinr;
			  }else{
				didinr=this.props.location.query.didinr;
			  }
			}
			const rtnmsg = await Api.post(this.extra.inifrm + '/init', { params: { sptinr:this.extra.sptinr,didinr } })
		if (rtnmsg.retcod == SUCCESS) {
			Object.assign(this.model, rtnmsg.data)
			this.extra.bchlevelLst = rtnmsg.codetable.ownbch;
			this.extra.bopmod_szflg = rtnmsg.codetable.bopmod_szflg;
			this.extra.oldinr=this.model.inr;
			this.setState({ flag: false })
			this.model.ditamep_maxcur = 'CNY'
			this.model.ditamep_engcur = 'CNY'
		}
		else {
			Notification.error({ message: '服务端请求失败!' })
		}

		//快照模式下，不必开启校验，否则，静默校验，和记录变动
		!this.loadDisplay() && this.model.openMonitor() //开启校验	
	}

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


	//交易内实现
	renderPage() {
		return (
			<Card title="买方信用证修改请求" size="small" className="transTitle">
				<Steps>
					<StepItem title="修改">
						<Amep model={this.model} extra={this.extra}/>
					</StepItem>

					<StepItem title="明细">
						<Ovwp model={this.model} extra={this.extra}  />
					</StepItem>
					<StepItem title="附加">
						<Detp model={this.model} extra={this.extra} />
					</StepItem>
                    <StepItem title="附加条款修改">
						<Adcpame model={this.model} extra={this.extra} />
					</StepItem>
                    <StepItem title="货物服务描述修改">
						<Dogpame model={this.model} extra={this.extra} />
					</StepItem>
                    <StepItem title="单据要求修改">
						<Dorpame model={this.model} extra={this.extra} />
					</StepItem>

					<StepItem title="费用">
						<Fee model={this.model} extra={this.extra} />
					</StepItem>
					<StepItem title="会计分录">
						<Gle model={this.model} extra={this.extra} />
					</StepItem>

					<StepItem title="面函">
						<Papper model={this.model} extra={this.extra} />
					</StepItem>

				</Steps>
			</Card>
		)
		
	}
}
