123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571 |
- import React,{Component} from "react";
- import {
- Modal,
- Form,
- Row,
- Col,
- Table,
- Spin,
- message,
- Button,
- Input,
- Select,
- DatePicker,
- Popconfirm,
- Tooltip
- } from "antd";
- import $ from "jquery/src/ajax";
- import moment from 'moment';
- import ReminderLog from "../../customer/NEW/crm/reminderLog";
- import {getPatentType} from "@/tools.js";
- import { patentTypeList} from '@/dataDic.js';
- const FormItem = Form.Item;
- const formItemLayout = {
- labelCol: { span: 10 },
- wrapperCol: { span: 14 },
- };
- class PatentDetails extends Component{
- constructor(props) {
- super(props);
- this.state={
- columns:[
- {
- title: "序号",
- dataIndex: "key",
- key: "key",
- width:'50px'
- },
- {
- title: "费用种类",
- dataIndex: "years",
- key: "years",
- width:'150px',
- render:(text)=>(
- <span>
- {getPatentType(this.props.detailsInfor.type)}
- 第
- {text}
- 年年费
- </span>
- )
- },
- {
- title: "金额",
- dataIndex: "patentAmount",
- key: "patentAmount",
- width:'100px'
- },
- {
- title: "缴费日",
- dataIndex: "endDate",
- key: "endDate",
- width:'100px',
- render:(text)=>(
- moment(text).format('YYYY-MM-DD')
- )
- },
- ],
- dataSource:[],
- loading:false,
- detailsInfor:{},
- }
- this.payLoadData = this.payLoadData.bind(this);
- this.onChange = this.onChange.bind(this);
- }
- componentDidMount() {
- this.payLoadData();
- const {detailsInfor, readOnly} = this.props;
- if (!readOnly) {
- this.setState({
- patentNo: detailsInfor.patentNo,
- tid: detailsInfor.tid,
- email:detailsInfor.email,
- name: detailsInfor.name,
- type: detailsInfor.type,
- holders: detailsInfor.holders,
- inventor: detailsInfor.inventor,
- applyDates: detailsInfor.applyDates,
- authorizationDates: detailsInfor.authorizationDates,
- annualFeeStatus: detailsInfor.annualFeeStatus,
- delayingAmount: detailsInfor.delayingAmount,
- recoveryAmount: detailsInfor.recoveryAmount,
- })
- }
- }
- payLoadData() {
- this.setState({
- loading: true,
- });
- const {detailsInfor} = this.props;
- $.ajax({
- method: "get",
- dataType: "json",
- crossDomain: false,
- url: globalConfig.context + "/api/admin/patentNew/patentPaymentDetails",
- data: {
- id:detailsInfor.id
- },
- success: function (data) {
- if(data.error.length === 0){
- for(let i =0;i<data.data.length;i++){
- data.data[i].key = i+1;
- }
- this.setState({
- dataSource: data.data,
- });
- }else{
- message.warning(data.error[0].message);
- }
- }.bind(this),
- }).always(
- function () {
- this.setState({
- loading: false,
- });
- }.bind(this)
- );
- }
- onChange(){
- if(!this.state.patentNo){
- message.warning('请输入专利号')
- return;
- }
- if(!this.state.name){
- message.warning('请输入专利名称')
- return;
- }
- if(isNaN(parseInt(this.state.type))){
- message.warning('请选择专利类型')
- return;
- }
- if(!this.state.applyDates){
- message.warning('请选择申请日期')
- return;
- }
- if(!isNaN(parseInt(this.state.delayingAmount)) && this.state.delayingAmount < 0){
- message.warning('滞纳金不能小于零')
- return;
- }
- if(!isNaN(parseInt(this.state.recoveryAmount)) && this.state.recoveryAmount < 0){
- message.warning('权利恢复费不能小于零')
- return;
- }
- this.setState({
- loading: true,
- });
- const {detailsInfor} = this.props;
- $.ajax({
- method: "POST",
- dataType: "json",
- crossDomain: false,
- url: globalConfig.context + "/api/admin/patentNew/updatePatentNew",
- data: {
- id:detailsInfor.id,
- patentNo: this.state.patentNo,
- name: this.state.name,
- type: this.state.type,
- applyDates: this.state.applyDates,
- tid: this.state.tid || undefined,
- email: this.state.email || undefined,
- holders: this.state.holders || undefined,
- inventor: this.state.inventor || undefined,
- authorizationDates: this.state.authorizationDates || undefined,
- annualFeeStatus: isNaN(parseInt(this.state.annualFeeStatus)) ? undefined : this.state.annualFeeStatus,
- delayingAmount: isNaN(parseInt(this.state.delayingAmount)) ? undefined : this.state.delayingAmount,
- recoveryAmount: isNaN(parseInt(this.state.recoveryAmount)) ? undefined : this.state.recoveryAmount,
- },
- success: function (data) {
- if(data.error.length === 0){
- message.success('修改成功');
- this.props.onRefresh();
- this.props.onCancel();
- }else{
- message.warning(data.error[0].message);
- }
- }.bind(this),
- }).always(
- function () {
- this.setState({
- loading: false,
- });
- }.bind(this)
- );
- }
- render() {
- const {detailsInfor,readOnly} = this.props;
- return (
- <Modal
- title='年费数据'
- className='payRecordComponent'
- width={800}
- maskClosable={false}
- footer={null}
- visible={this.props.visible}
- onCancel={this.props.onCancel}
- >
- <Button
- onClick={()=>{
- this.setState({
- visible:true,
- id:detailsInfor.id
- })
- }}
- style={{
- position: 'absolute',
- top: '9px',
- right: '49px',
- }}
- type='primary'>
- 查看专利日志
- </Button>
- <Form layout="horizontal">
- <Row gutter={40}>
- <Col span={8}>
- <FormItem
- required
- {...formItemLayout}
- label='专利号'
- >
- {
- readOnly ? detailsInfor.patentNo :
- <Input
- value={this.state.patentNo}
- onChange={(e)=>{
- this.setState({
- patentNo:e.target.value
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='专利名称'
- required
- >
- {
- readOnly ? detailsInfor.name :
- <Input
- value={this.state.name}
- onChange={(e)=>{
- this.setState({
- name:e.target.value
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='专利类型'
- required
- >
- {
- readOnly ?
- getPatentType(detailsInfor.type) :
- <Select
- placeholder="请选择专利类型"
- style={{paddingTop: '5px'}}
- value={getPatentType(this.state.type)}
- onChange={e => {
- this.setState({ type: e });
- }}
- >
- {patentTypeList.map(function(item) {
- return (
- <Select.Option key={item.value}>
- {item.key}
- </Select.Option>
- );
- })}
- </Select>
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='申请日期'
- required
- >
- {
- readOnly ? detailsInfor.applyDates:
- <DatePicker
- value={this.state.applyDates ? moment(this.state.applyDates) : ''}
- format='YYYY-MM-DD'
- onChange={(date)=>{
- this.setState({
- applyDates:date ? moment(date).format('YYYY-MM-DD') : '',
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='项目编号'
- >
- {
- readOnly ? detailsInfor.tid :
- <Input
- value={this.state.tid}
- onChange={(e)=>{
- this.setState({
- tid:e.target.value
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='授权日期'
- >
- {
- readOnly ? detailsInfor.authorizationDates:
- <DatePicker
- value={this.state.authorizationDates ? moment(this.state.authorizationDates) : ''}
- format='YYYY-MM-DD'
- onChange={(date)=>{
- this.setState({
- authorizationDates:date ? moment(date).format('YYYY-MM-DD') : '',
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='Email'
- >
- {
- readOnly ?
- <Tooltip placement="topLeft" title={detailsInfor.email}>
- <div style={{
- width:'100%',
- overflow: 'hidden',
- whiteSpace: 'nowrap',
- textOverflow: 'ellipsis',
- }}>
- {detailsInfor.email}
- </div>
- </Tooltip>:
- <Input
- value={this.state.email}
- onChange={(e)=>{
- this.setState({
- email:e.target.value
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='滞纳金'
- >
- {
- readOnly ? detailsInfor.delayingAmount :
- <Input
- style={{paddingTop: '5px'}}
- type='number'
- value={this.state.delayingAmount}
- onChange={(e)=>{
- this.setState({
- delayingAmount:e.target.value
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='权利恢复费'
- >
- {
- readOnly ? detailsInfor.recoveryAmount :
- <Input
- style={{paddingTop: '5px'}}
- type='number'
- value={this.state.recoveryAmount}
- onChange={(e)=>{
- this.setState({
- recoveryAmount:e.target.value
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='年费状态'
- >
- {
- readOnly ? (
- detailsInfor.annualFeeStatus === 0 ? '待缴费' :
- detailsInfor.annualFeeStatus === 1 ? '已缴费' : ''
- ) :
- <Select style={{paddingTop: '5px'}} value={this.state.annualFeeStatus} onSelect={(e)=>{this.setState({annualFeeStatus:e})}}>
- <Select.Option value={0}>待缴费</Select.Option>
- <Select.Option value={1}>已缴费</Select.Option>
- </Select>
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='权利人'
- >
- {
- readOnly ? <Tooltip title={detailsInfor.holders}>
- <div style={{
- maxWidth:'120px',
- overflow:'hidden',
- textOverflow: "ellipsis",
- whiteSpace:'nowrap',
- }}>{detailsInfor.holders}</div>
- </Tooltip> :
- <Input
- value={this.state.holders}
- onChange={(e)=>{
- this.setState({
- holders:e.target.value
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='发明人'
- >
- {
- readOnly ? <Tooltip title={detailsInfor.inventor}>
- <div style={{
- maxWidth:'120px',
- overflow:'hidden',
- textOverflow: "ellipsis",
- whiteSpace:'nowrap',
- }}>{detailsInfor.inventor}</div>
- </Tooltip> :
- <Input
- value={this.state.inventor}
- onChange={(e)=>{
- this.setState({
- inventor:e.target.value
- })
- }}
- />
- }
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='年费'
- >
- {detailsInfor.patentAmount}
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='费减状态'
- >
- {detailsInfor.tid ? (detailsInfor.costReduction === 1 ? '有费减' : detailsInfor.costReduction === 0 ? '无费减' : '') : '无'}
- </FormItem>
- </Col>
- <Col span={8}>
- <FormItem
- {...formItemLayout}
- label='通知'
- >
- <div style={{display:'flex',alignItems:'center'}}>
- {
- detailsInfor.salesmanRemind === 0 ? '未通知' :
- detailsInfor.salesmanRemind === 1 ? '已通知' : ''
- }
- </div>
- </FormItem>
- </Col>
- </Row>
- {!readOnly ?
- <div style={{
- margin:'30px',
- display:'flex',
- justifyContent:'center'
- }}>
- <Popconfirm placement="top" title="确定提交吗?" onConfirm={(e)=>{
- e.stopPropagation();
- this.onChange();
- }} okText="确定" cancelText="取消">
- <Button
- loading={this.state.loading}
- size='large'
- type="primary"
- onClick={(e)=>{
- e.stopPropagation();
- }}
- >
- 确定提交
- </Button>
- </Popconfirm>
- </div>
- : null}
- </Form>
- <Spin spinning={this.state.loading}>
- <Table
- scroll={{ y: 320 }}
- columns={this.state.columns}
- dataSource={this.state.dataSource}
- pagination={false}
- bordered
- size="small"
- />
- </Spin>
- {this.state.visible ? <ReminderLog
- id={this.state.id}
- visible={this.state.visible}
- cancel={()=>{
- this.setState({
- visible:false,
- id:undefined
- })
- }}
- /> : null}
- </Modal>
- )
- }
- }
- export default PatentDetails;
|