Commit 8cfc4c28 by qiuxia

新增pcysel

parent 3eb17e06
export default fieldSet = {
}
\ No newline at end of file
export {default as model} from './model'
export {default as descriptor} from './descriptor'
export {default} from './views'
\ No newline at end of file
import { action, observable } from 'mobx'
import _descriptor from '../descriptor'
import {modelWrapper} from '@/components/RunTime'
@modelWrapper
class Pcysel {
@observable
refno=""
@observable
idtypecod=""
@observable
idcode=""
@observable
ctycod=""
@observable
litmod_selflg=""
@observable
biztxtime=""
get descriptor()
{
return _descriptor
}
clear()
{
this.refno=""
this.idtypecod=""
this.idcode=""
this.ctycod=""
this.biztxtime=""
this.litmod_selflg=""
}
}
export default Pcysel
\ No newline at end of file
import React, { Component, Fragment } from 'react'
import {
Page, Validator, Notification, FormItem,
InputItem, Input, Bind, SelectItem, Button, Label, DatePickerItem, Section, ConfirmButton, Steps, CheckboxItem, TextAreaItem
} from '@/components/Common-Library'
import Api from '@/service/api'
import CodeTableFactory from '@/components/CodeTable'
import "./index.less"
import { inject, observer } from 'mobx-react'
import { action, observable } from 'mobx'
import { Row, Col, Tooltip, Modal, Spin, Table,Divider } from 'antd';
import { PtyPicker } from '@/components/Business-Library'
import { Link, withRouter } from 'react-router-dom'
import Ptspta1 from '@/views/Public/Ptspta1'
import Business from '@/views/Public/Business'
import moment from 'moment'
import mLitsel from '../model'
const { Pre, Next, StepWrapper } = Steps
const CodeTable = CodeTableFactory.getInstance()
const confirm = Modal.confirm
@withRouter
@inject('UserContext')
@inject('i18n')
@observer
export default class CurselScreen extends Page {
@observable
formBlur = false
constructor(props) {
super(props)
this.model = new mLitsel()
this.bind = Bind.bind(this)
this.model.litmod_selflg = props.flg
this.state={
selectedInr:""
}
}
componentDidMount() {
super.componentDidMount()
if (this.props.flg == "0") {
this.litmod_lidlstHeader.push(
{
title: <Label itext="操作" />,
width: 60,
key: "operation",
render: (val, row, index) => {
return (
<div>
<a onClick={()=>{this.link('fcyame',row.inr)}}>修改</a>
<Divider type="vertical" />
<a onClick={()=>{this.link('fcydel',row.inr)}}>删除</a>
</div>
)
}
}
)
}
else if (this.props.flg == "2") {
this.litmod_lidlstHeader.push(
{
title: <Label itext="操作" />,
width: 60,
key: "operation",
render: (val, row, index) => {
return (
<div>
<a onClick={()=>{this.link('lcyame',row.inr)}}>修改</a>
<Divider type="vertical" />
<a onClick={()=>{this.link('lcydel',row.inr)}}>删除</a>
</div>
)
}
})
}
}
onTabFocus(){
this.setState({selectedInr:""}) //切换页签时重置行选中样式
}
//交易跳转函数,若参数inr存在,则赋值给this.lidinr,此时为闭卷或者到单,不存在则为信用证其他
//调用后台查询是否符合跳转前提(前手交易是否复核),根据返回值决定是否带参跳转至pathname交易
async link(pathname, inr){
if(inr){
this.lidinr = inr
}
const rtnmsg = await Api.post('litsel/cfgfil_isnext', { data: this.model, params: { objinr:this.lidinr, objtyp:"lid"} })
if (rtnmsg.retcod == SUCCESS) {
this.props.history.push({ pathname, query: { lidinr:this.lidinr} });
}else{
Notification.error({ message: `${rtnmsg.retmsg}` })
}
}
async onSelcon(lidinr){
this.formBlur=true //已触发表单提交处理
this.setState({selectedInr:lidinr}) //获取选中行的inr,用于改变选中行样式
this.lidinr=lidinr;
this.model.inr=lidinr;
}
litmod_lidlstHeader = [
{
title: <Label itext="年月" />,
dataIndex: "yermon",
key: "yermon",
width: 100,
sorter: (r1, r2) => ColSorter(r1.yermon, r2.yermon),
},
{
title: <Label itext="币种" />,
dataIndex: "curcod",
key: "curcod",
width: 100,
sorter: (r1, r2) => ColSorter(r1.curcod, r2.curcod),
},
{
title: <Label itext="汇率" />,
dataIndex: "exchag",
key: "exchag",
width: 90,
sorter: (r1, r2) => ColSorter(r1.exchag, r2.exchag),
},
]
onSellst = async () => {
this.formBlur = true //已触发表单提交处理
const rtnmsg = await Api.post('litsel/litmod_sel', { data: this.model })
if (rtnmsg.retcod == SUCCESS) {
this.model.litmod_lidlst = rtnmsg.data['litmod_lidlst'];
}
else {
Notification.error({ message: '查询失败!' })
}
//余下逻辑处理
}
rowClass = (row, index)=>{
//表格选中行变色
if(this.props.flg == 5 && row.inr == this.state.selectedInr){
return "selectedStyle"
}
//单双行样式
if(index %2)
{
return "tableEvenStyle"
}
return "tableOddStyle"
}
//交易内实现
renderPage() {
const bind = this.bind
return (
<div style={{ position: 'relative' }}>
{/* 第一行 */}
<Row>
<Col span={24}>
<Row className="row">
<Col span={2} >
<Label itext="年月" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("yermon")}} maxLength={16} />
</Col>
<Col span={2} offset={1}>
<Label itext="币种" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("curcod")}} maxLength={16} />
</Col>
<Col span={2} offset={8}>
<Button type="primary" icon="search" size="small" onClick={this.onSellst} desp="查询" >
<Label itext="查询" />
</Button>
</Col>
</Row>
</Col>
</Row>
<Row style={{ marginTop: 30 }}>
<Col span={24} >
<Table
rowKey="inr" size="middle"
onRow={ row=>({onClick:()=>this.onSelcon(row.inr)}) }
columns={this.litmod_lidlstHeader}
dataSource={this.model.litmod_lidlst}
rowClassName={this.rowClass}
/>
</Col>
</Row>
</div >
)
}
}
import React, { Component, Fragment } from 'react'
import {
Page, Validator, Notification, FormItem,
InputItem, Input, Bind, SelectItem, Button, Label, DatePickerItem, Section, ConfirmButton, Steps, CheckboxItem, TextAreaItem
} from '@/components/Common-Library'
import Api from '@/service/api'
import CodeTableFactory from '@/components/CodeTable'
import "./index.less"
import { inject, observer } from 'mobx-react'
import { action, observable } from 'mobx'
import { Row, Col, Tooltip, Modal, Spin, Table,Divider } from 'antd';
import { PtyPicker } from '@/components/Business-Library'
import { Link, withRouter } from 'react-router-dom'
import Ptspta1 from '@/views/Public/Ptspta1'
import Business from '@/views/Public/Business'
import moment from 'moment'
import mLitsel from '../model'
const { Pre, Next, StepWrapper } = Steps
const CodeTable = CodeTableFactory.getInstance()
const confirm = Modal.confirm
@withRouter
@inject('UserContext')
@inject('i18n')
@observer
export default class JieshouhuiScreen extends Page {
@observable
formBlur = false
constructor(props) {
super(props)
this.model = new mLitsel()
this.bind = Bind.bind(this)
this.model.litmod_selflg = props.flg
this.state={
selectedInr:""
}
}
componentDidMount() {
super.componentDidMount()
if (this.props.flg == "0") {
this.litmod_lidlstHeader.push(
{
title: <Label itext="操作" />,
width: 60,
key: "operation",
render: (val, row, index) => {
return (
<div>
<a onClick={()=>{this.link('fcyame',row.inr)}}>修改</a>
<Divider type="vertical" />
<a onClick={()=>{this.link('fcydel',row.inr)}}>删除</a>
</div>
)
}
}
)
}
else if (this.props.flg == "2") {
this.litmod_lidlstHeader.push(
{
title: <Label itext="操作" />,
width: 60,
key: "operation",
render: (val, row, index) => {
return (
<div>
<a onClick={()=>{this.link('lcyame',row.inr)}}>修改</a>
<Divider type="vertical" />
<a onClick={()=>{this.link('lcydel',row.inr)}}>删除</a>
</div>
)
}
})
}
}
onTabFocus(){
this.setState({selectedInr:""}) //切换页签时重置行选中样式
}
//交易跳转函数,若参数inr存在,则赋值给this.lidinr,此时为闭卷或者到单,不存在则为信用证其他
//调用后台查询是否符合跳转前提(前手交易是否复核),根据返回值决定是否带参跳转至pathname交易
async link(pathname, inr){
if(inr){
this.lidinr = inr
}
const rtnmsg = await Api.post('litsel/cfgfil_isnext', { data: this.model, params: { objinr:this.lidinr, objtyp:"lid"} })
if (rtnmsg.retcod == SUCCESS) {
this.props.history.push({ pathname, query: { lidinr:this.lidinr} });
}else{
Notification.error({ message: `${rtnmsg.retmsg}` })
}
}
async onSelcon(lidinr){
this.formBlur=true //已触发表单提交处理
this.setState({selectedInr:lidinr}) //获取选中行的inr,用于改变选中行样式
this.lidinr=lidinr;
this.model.inr=lidinr;
}
litmod_lidlstHeader = [
{
title: <Label itext="业务参考号" />,
dataIndex: "refno",
key: "refno",
width: 100,
sorter: (r1, r2) => ColSorter(r1.refno, r2.refno),
},
{
title: <Label itext="银行自身流水号" />,
dataIndex: "baksrinum",
key: "baksrinum",
width: 100,
sorter: (r1, r2) => ColSorter(r1.baksrinum, r2.baksrinum),
},
{
title: <Label itext="业务类型" />,
dataIndex: "biztypecod",
key: "biztypecod",
width: 90,
sorter: (r1, r2) => ColSorter(r1.biztypecod, r2.biztypecod),
},
{
title: <Label itext="证件号码" />,
dataIndex: "idcode",
key: "idcode",
width: 100,
sorter: (r1, r2) => ColSorter(r1.idcode, r2.idcode),
},
{
title: <Label itext="国家地区代码" />,
dataIndex: "ctycod",
key: "ctycod",
width: 100,
sorter: (r1, r2) => ColSorter(r1.ctycod, r2.ctycod),
},
{
title: <Label itext="补充证件号码" />,
dataIndex: "addidcode",
key: "addidcode",
width: 100,
sorter: (r1, r2) => ColSorter(r1.addidcode, r2.addidcode),
},
]
onSellst = async () => {
this.formBlur = true //已触发表单提交处理
const rtnmsg = await Api.post('litsel/litmod_sel', { data: this.model })
if (rtnmsg.retcod == SUCCESS) {
this.model.litmod_lidlst = rtnmsg.data['litmod_lidlst'];
}
else {
Notification.error({ message: '查询失败!' })
}
//余下逻辑处理
}
rowClass = (row, index)=>{
//表格选中行变色
if(this.props.flg == 5 && row.inr == this.state.selectedInr){
return "selectedStyle"
}
//单双行样式
if(index %2)
{
return "tableEvenStyle"
}
return "tableOddStyle"
}
//交易内实现
renderPage() {
const bind = this.bind
return (
<div style={{ position: 'relative' }}>
{/* 第一行 */}
<Row>
<Col span={24}>
<Row className="row">
<Col span={2} >
<Label itext="业务参考号" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("refno")}} maxLength={16} />
</Col>
<Col span={2} offset={1}>
<Label itext="证件类型" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("idtypecod")}} maxLength={16} />
</Col>
<Col span={2} offset={1}>
<Label itext="证件号码" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("idcode")}} maxLength={16} />
</Col>
</Row>
</Col>
</Row>
<Row>
<Col span={24}>
<Row className="row">
<Col span={2}>
<Label itext="国家 地区" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("ctycod")}} maxLength={16} />
</Col>
<Col span={2} offset={1}>
<Label itext="业务办理日期" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("biztxtime")}} maxLength={16} />
</Col>
<Col span={2} offset={8}>
<Button type="primary" icon="search" size="small" onClick={this.onSellst} desp="查询" >
<Label itext="查询" />
</Button>
</Col>
</Row>
</Col>
</Row>
<Row style={{ marginTop: 30 }}>
<Col span={24} >
<Table
rowKey="inr" size="middle"
onRow={ row=>({onClick:()=>this.onSelcon(row.inr)}) }
columns={this.litmod_lidlstHeader}
dataSource={this.model.litmod_lidlst}
rowClassName={this.rowClass}
/>
</Col>
</Row>
</div >
)
}
}
import React, { Component, Fragment } from 'react'
import {
Page, Validator, Notification, FormItem,
InputItem, Input, Bind, SelectItem, Button, Label, DatePickerItem, Section, ConfirmButton, Steps, CheckboxItem, TextAreaItem
} from '@/components/Common-Library'
import Api from '@/service/api'
import CodeTableFactory from '@/components/CodeTable'
import "./index.less"
import { inject, observer } from 'mobx-react'
import { action, observable } from 'mobx'
import { Row, Col, Tooltip, Modal, Spin, Table,Divider } from 'antd';
import { PtyPicker } from '@/components/Business-Library'
import { Link, withRouter } from 'react-router-dom'
import Ptspta1 from '@/views/Public/Ptspta1'
import Business from '@/views/Public/Business'
import moment from 'moment'
import mLitsel from '../model'
const { Pre, Next, StepWrapper } = Steps
const CodeTable = CodeTableFactory.getInstance()
const confirm = Modal.confirm
@withRouter
@inject('UserContext')
@inject('i18n')
@observer
export default class SgnselScreen extends Page {
@observable
formBlur = false
constructor(props) {
super(props)
this.model = new mLitsel()
this.bind = Bind.bind(this)
this.model.litmod_selflg = props.flg
this.state={
selectedInr:""
}
}
componentDidMount() {
super.componentDidMount()
if (this.props.flg == "0") {
this.litmod_lidlstHeader.push(
{
title: <Label itext="操作" />,
width: 60,
key: "operation",
render: (val, row, index) => {
return (
<div>
<a onClick={()=>{this.link('fcyame',row.inr)}}>修改</a>
<Divider type="vertical" />
<a onClick={()=>{this.link('fcydel',row.inr)}}>删除</a>
</div>
)
}
}
)
}
else if (this.props.flg == "2") {
this.litmod_lidlstHeader.push(
{
title: <Label itext="操作" />,
width: 60,
key: "operation",
render: (val, row, index) => {
return (
<div>
<a onClick={()=>{this.link('lcyame',row.inr)}}>修改</a>
<Divider type="vertical" />
<a onClick={()=>{this.link('lcydel',row.inr)}}>删除</a>
</div>
)
}
})
}
}
onTabFocus(){
this.setState({selectedInr:""}) //切换页签时重置行选中样式
}
//交易跳转函数,若参数inr存在,则赋值给this.lidinr,此时为闭卷或者到单,不存在则为信用证其他
//调用后台查询是否符合跳转前提(前手交易是否复核),根据返回值决定是否带参跳转至pathname交易
async link(pathname, inr){
if(inr){
this.lidinr = inr
}
const rtnmsg = await Api.post('litsel/cfgfil_isnext', { data: this.model, params: { objinr:this.lidinr, objtyp:"lid"} })
if (rtnmsg.retcod == SUCCESS) {
this.props.history.push({ pathname, query: { lidinr:this.lidinr} });
}else{
Notification.error({ message: `${rtnmsg.retmsg}` })
}
}
async onSelcon(lidinr){
this.formBlur=true //已触发表单提交处理
this.setState({selectedInr:lidinr}) //获取选中行的inr,用于改变选中行样式
this.lidinr=lidinr;
this.model.inr=lidinr;
}
litmod_lidlstHeader = [
{
title: <Label itext="业务类型" />,
dataIndex: "biztypecod",
key: "biztypecod",
width: 90,
sorter: (r1, r2) => ColSorter(r1.biztypecod, r2.biztypecod),
},
{
title: <Label itext="证件号码" />,
dataIndex: "idcode",
key: "idcode",
width: 100,
sorter: (r1, r2) => ColSorter(r1.idcode, r2.idcode),
},
{
title: <Label itext="国家地区代码" />,
dataIndex: "ctycod",
key: "ctycod",
width: 100,
sorter: (r1, r2) => ColSorter(r1.ctycod, r2.ctycod),
},
{
title: <Label itext="姓名" />,
dataIndex: "personnam",
key: "personnam",
width: 100,
sorter: (r1, r2) => ColSorter(r1.personnam, r2.personnam),
},
{
title: <Label itext="企业办理渠道代码" />,
dataIndex: "biztxchnlcod",
key: "biztxchnlcod",
width: 100,
sorter: (r1, r2) => ColSorter(r1.biztxchnlcod, r2.biztxchnlcod),
},
]
onSellst = async () => {
this.formBlur = true //已触发表单提交处理
const rtnmsg = await Api.post('litsel/litmod_sel', { data: this.model })
if (rtnmsg.retcod == SUCCESS) {
this.model.litmod_lidlst = rtnmsg.data['litmod_lidlst'];
}
else {
Notification.error({ message: '查询失败!' })
}
//余下逻辑处理
}
rowClass = (row, index)=>{
//表格选中行变色
if(this.props.flg == 5 && row.inr == this.state.selectedInr){
return "selectedStyle"
}
//单双行样式
if(index %2)
{
return "tableEvenStyle"
}
return "tableOddStyle"
}
//交易内实现
renderPage() {
const bind = this.bind
return (
<div style={{ position: 'relative' }}>
{/* 第一行 */}
<Row>
<Col span={24}>
<Row className="row">
<Col span={2}>
<Label itext="证件类型" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("idtypecod")}} maxLength={16} />
</Col>
<Col span={2} offset={1}>
<Label itext="证件号码" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("idcode")}} maxLength={16} />
</Col>
</Row>
</Col>
</Row>
<Row>
<Col span={24}>
<Row className="row">
<Col span={2}>
<Label itext="国家 地区" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("ctycod")}} maxLength={16} />
</Col>
<Col span={2} offset={1}>
<Label itext="姓名" trn="pcysel" />
</Col>
<Col span={4} >
<InputItem InputProps={{...bind("personnam")}} maxLength={16} />
</Col>
<Col span={2} offset={8}>
<Button type="primary" icon="search" size="small" onClick={this.onSellst} desp="查询" >
<Label itext="查询" />
</Button>
</Col>
</Row>
</Col>
</Row>
<Row style={{ marginTop: 30 }}>
<Col span={24} >
<Table
rowKey="inr" size="middle"
onRow={ row=>({onClick:()=>this.onSelcon(row.inr)}) }
columns={this.litmod_lidlstHeader}
dataSource={this.model.litmod_lidlst}
rowClassName={this.rowClass}
/>
</Col>
</Row>
</div >
)
}
}
import React,{Component,Fragment} from 'react'
import {Page,Validator,Notification,FormItem,DatePickerItem,TextAreaItem,CheckboxItem,Checkbox,
InputItem,Input,Bind,SelectItem,Button,Label,Image,Table, Steps} from '@/components/Common-Library'
import Api from '@/service/api'
import mPcysel from '../model'
import CodeTableFactory from '@/components/CodeTable'
import "./index.less"
import { inject, observer } from 'mobx-react'
import { action, observable} from 'mobx'
import Jieshouhui from './Jieshouhui'
import Cursel from './Cursel'
import Sgnsel from './Sgnsel'
import { Card } from 'antd'
import DateFormat from '@/utils/DateUtil'
const CodeTable = CodeTableFactory.getInstance()
const StepItem = Steps.Item
@inject('UserContext')
@inject('i18n')
@observer
export default class PcyselScreen extends Page
{
@observable
formBlur = false
@observable
extra = { inifrm: 'pcysel', sptinr: '', bchlevelLst: [] }
constructor(props) {
super(props)
this.state = {
flag: true
}
this.model = new mPcysel()
}
async componentWillMount()
{
/*
*添加初始化代码
*/
const rtnmsg = await Api.post('pcysel/init',{data:this.model})
if(rtnmsg.retcod == SUCCESS)
{
const {data} = rtnmsg
Object.assign(this.model,data)
}
//快照模式下,不必开启校验,否则,静默校验,和记录变动
!this.loadDisplay() && this.model.openMonitor && this.model.openMonitor() //开启校验
}
componentWillUnmount()
{
this.model.stopMonitor&&this.model.stopMonitor()//关闭校验
}
//交易内实现
renderPage(){
return (
<Card title="结售汇" size="small" className="transTitle">
<Steps>
<StepItem title="fcysel">
<Jieshouhui model={this.model} extra={this.extra} flg="0" />
</StepItem>
<StepItem title="fytsel">
<Jieshouhui model={this.model} extra={this.extra} flg="1"/>
</StepItem>
<StepItem title="lcysel">
<Jieshouhui model={this.model} extra={this.extra} flg="2"/>
</StepItem>
<StepItem title="lytsel">
<Jieshouhui model={this.model} extra={this.extra} flg="3"/>
</StepItem>
<StepItem title="cuhsel">
<Cursel model={this.model} extra={this.extra} flg="4"/>
</StepItem>
<StepItem title="sgnsel">
<Sgnsel model={this.model} extra={this.extra} flg="5"/>
</StepItem>
</Steps>
<Button style={{ position:'absolute',right:'3em',top:'4em' }} type="primary" size="small" onClick={()=>{this.props.history.push('fcyadd')}}>
<Label itext="购汇申请" />
</Button>
<Button style={{ position:'absolute',right:'10em',top:'4em' }} type="primary" size="small" onClick={()=>{this.props.history.push('lcyadd')}}>
<Label itext="结汇申请" />
</Button>
</Card>
)
}
}
......@@ -192,6 +192,8 @@ const Brtcan =MLoader(()=>import('./Brtcan'))
const Brtfre =MLoader(()=>import('./Brtfre'))
const Brtfee =MLoader(()=>import('./Brtfee'))
const Pcysel =MLoader(()=>import('./Pcysel'))
export default class Bus extends Component{
......@@ -406,6 +408,8 @@ export default class Bus extends Component{
<Route exact path={`${moduleBasePath}brtcan${!isDisplay?'':'/:trninr'}`} render={(props)=><Brtcan {...props} {...params}/>} />
<Route exact path={`${moduleBasePath}brtfre${!isDisplay?'':'/:trninr'}`} render={(props)=><Brtfre {...props} {...params}/>} />
<Route exact path={`${moduleBasePath}brtfee${!isDisplay?'':'/:trninr'}`} render={(props)=><Brtfee {...props} {...params}/>} />
<Route exact path={`${moduleBasePath}pcysel${!isDisplay?'':'/:trninr'}`} render={(props)=><Pcysel {...props} {...params}/>} />
</React.Fragment>
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment