| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370 | import React from 'react';import {	Icon,	Button,	AutoComplete,	Input,	Select,	Spin,	Table,	Switch,	message,	DatePicker,	Form,	Modal,	Tabs,	Tooltip} from 'antd';import $ from 'jquery/src/ajax';import moment from 'moment';import { cityArr, patentTypeList } from '@/dataDic.js';import {	beforeUploadFile,	splitUrl,	getPatentType,	getcityArr,	ShowModal,	getMessageReminderStart,	onReplace,} from "@/tools.js";import './customer.less';import ShowModalDiv from "@/showModal.jsx";import ImgList from "../../../../common/imgList";import { ChooseList } from "../../../order/orderNew/chooseList";import ReminderLog from "./reminderLog";const Option = AutoComplete.Option;const { TabPane } = Tabs;//图片组件const PicturesWall = React.createClass({	getInitialState() {		return {			previewVisible: false,			previewImage: '',			fileList: this.props.pictureUrl,		}	},	getDefaultProps() {		return {			changeClick: this.modifyChange		}	},	handleCancel() {		this.setState({ previewVisible: false })	},	handlePreview(file) {		this.setState({			previewImage: file.url || file.thumbUrl,			previewVisible: true,		});	},	handleChange(info) {		let fileList = info.fileList;		this.setState({ fileList });		this.props.fileList(fileList);	},	componentWillReceiveProps(nextProps) {		this.state.fileList = nextProps.pictureUrl;	},	render() {		const { previewVisible, previewImage, fileList } = this.state;		const uploadButton = (			<div>				<Icon type="plus" />				<div className="ant-upload-text">点击上传</div>			</div>		);		return (			<div style={{ display: "inline-block" }}>				<ImgList					domId={this.props.domId}					uploadConfig={{						action: globalConfig.context + "/api/admin/patentNew/uploadFile",						data: { 'sign': '' },						multiple: true,						listType: "picture-card",						beforeUpload: (infor) => { beforeUploadFile(infor) }					}}					onChange={(infor) => {						this.handleChange(infor)					}}					fileList={fileList}				/>			</div>		);	}});const PatentPayment = Form.create()(React.createClass({	departmentList() {		this.setState({			loading: true		});		$.ajax({			method: "get",			dataType: "json",			crossDomain: false,			url: globalConfig.context + "/api/admin/organization/selectSuperId",			data: {},			success: function (data) {				let thedata = data.data;				let theArr = [];				if (!thedata) {					if (data.error && data.error.length) {						message.warning(data.error[0].message);					};				} else {					thedata.map(function (item, index) {						theArr.push({							key: index,							name: item.name,							id: item.id,						})					})				}				this.setState({					departmentArr: theArr,				})			}.bind(this),		}).always(function () {			this.setState({				loading: false			});		}.bind(this));	},	loadData(pageNo) {		this.setState({			loading: true		}),			$.ajax({				method: "get",				dataType: "json",				crossDomain: false,				url: globalConfig.context + '/api/admin/patentNew/selectPatentNew',				data: {					pageNo: pageNo || 1,					pageSize: this.state.pagination.pageSize,					status: this.state.statusSearch,					name: this.state.nameSearch,					aname: this.state.anameSearch,					patentNo: this.state.patentNoSearch,					departmentId: this.state.departmentSearch,					startDate: this.state.timesArr[0],					endDate: this.state.timesArr[1],					type: this.state.typeSearch,					createStart: this.state.releaseDate[0],					createEnd: this.state.releaseDate[1],				},				success: function (data) {					ShowModal(this);					let theArr = [];					if (!data.data) {						if (data.error && data.error.length) {							message.warning(data.error[0].message);						};					} else {						for (let i = 0; i < data.data.list.length; i++) {							let thisdata = data.data.list[i];							theArr.push({								id: thisdata.id,								province: thisdata.province,								status: thisdata.status,								patentNo: thisdata.patentNo,								name: thisdata.name,								type: thisdata.type,								applyDates: thisdata.applyDates,								authorizationDates: thisdata.authorizationDates,								patentAmount: thisdata.patentAmount,								applicant: thisdata.applicant,								contactMobile: thisdata.contactMobile,								email: thisdata.email,								certificateUrl: thisdata.certificateUrl,								aname: thisdata.aname,								depName: thisdata.depName,								userName: thisdata.userName,								uid: thisdata.uid,								createTimes: thisdata.createTimes							});						};						this.state.pagination.current = data.data.pageNo;						this.state.pagination.total = data.data.totalCount;					};					if (!data.data.list.length) {						this.state.pagination.current = 0						this.state.pagination.total = 0					}					this.setState({						pageNo: pageNo,						dataSource: theArr,						pagination: this.state.pagination,					});				}.bind(this)			}).always(function () {				this.setState({					loading: false				});			}.bind(this));	},	getInitialState() {		return {			loading: false,			visible: false,			orgCodeUrl: [],			fileList: [],			departmentArr: [],			timesArr: [],			pagination: {				defaultCurrent: 1,				defaultPageSize: 10,				showQuickJumper: true,				pageSize: 10,				onChange: function (page) {					this.loadData(page);				}.bind(this),				showTotal: function (total) {					return '共' + total + '条数据';				}			},			releaseDate: [],			dataSource: [],			columns: [{				title: '专利号',				dataIndex: 'patentNo',				key: 'patentNo'			}, {				title: '专利名称',				dataIndex: 'name',				key: 'name'			}, {				title: '专利类型',				dataIndex: 'type',				key: 'type',				render: text => {					return getPatentType(text)				}			}, {				title: '申请日期',				dataIndex: 'applyDates',				key: 'applyDates'			}, {				title: '授权日期',				dataIndex: 'authorizationDates',				key: 'authorizationDates'			}, {				title: '费用',				dataIndex: 'patentAmount',				key: 'patentAmount'			}, {				title: '客户名称',				dataIndex: 'userName',				key: 'userName',				width: 100,				render: (text, record) => {					return (						<Tooltip title={record.uid ? onReplace(text) : onReplace(record.applicant)}>							<div style={{								maxWidth: '100px',								overflow: 'hidden',								textOverflow: "ellipsis",								whiteSpace: 'nowrap',							}}>{record.uid ? onReplace(text) : onReplace(record.applicant)}</div>						</Tooltip>					)				}			}, {				title: '录入人',				dataIndex: 'aname',				key: 'aname'			}, {				title: '录入日期',				dataIndex: 'createTimes',				key: 'createTimes'			}, {				title: '录入公司',				dataIndex: 'depName',				key: 'depName'			}, {				title: '联系电话',				dataIndex: 'contactMobile',				key: 'contactMobile'			}, {				title: '电子邮箱',				dataIndex: 'email',				key: 'email'			}, {				title: '状态',				dataIndex: 'status',				key: 'status',				//状态 0 未提醒 1 剩余90天 2剩余30天 3剩余20天 4剩余10天 5剩余3天 6剩余2天 7剩余1天				render: text => {					return (getMessageReminderStart(text, true))				}			}, {				title: '操作',				dataIndex: 'id',				key: 'id',				render: (text) => (					<Button						type={"primary"}						onClick={(e) => {							e.stopPropagation();							this.setState({								reminderLogVisible: true,								reminderLogId: text							})						}}					>						查看日志					</Button>				)			}			],			customerServiceList: []		}	},	componentWillMount() {		this.loadData()		this.departmentList()		let data = localStorage.getItem('newData');		if (data != '{}' && data) {			var newData = JSON.parse(data);			this.tableRowClick(newData);		};	},	new() {		this.reset();		this.setState({			visible: true		})	},	visitCancel() {		this.state.fileList = [];		this.setState({			visible: false		})	},	onSure() {		let theorgCodeUrl = [];		if (this.state.orgCodeUrl.length) {			let picArr = [];			this.state.orgCodeUrl.map(function (item) {				if (item.response && item.response.data && item.response.data.length) {					picArr.push(item.response.data);				}			});			theorgCodeUrl = picArr.join(",");		};		if (!this.state.patentNo) {			message.warning('专利号不能为空')			return		}		if (!this.state.patentName) {			message.warning('专利名称不能为空')			return		}		if (!this.state.appDate) {			message.warning('申请日期不能为空')			return		}		if (isNaN(parseInt(this.state.patentType))) {			message.warning('专利类型不能为空');			return		}		if (!this.state.authDate) {			message.warning('授权日期不能为空')			return		}		if (!this.state.customerUid) {			message.warning('客户名称不能为空')			return		}		let mobile = /^1[0-9]{10}$/, phone = /^([0-9]{3,4}-)?[0-9]{7,8}$/, phone1 = /^\d{3,4}-\d{3,4}-\d{3,4}$/;		if (this.state.contactPhone && !(mobile.test(this.state.contactPhone) || phone.test(this.state.contactPhone) || phone1.test(this.state.contactPhone))) {			message.warning('电话格式不正确');			return		}		let emailReg = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$"); //正则表达式		if (this.state.email === '') {			message.warning('电子邮箱不能为空');			return		}		if (!emailReg.test(this.state.email)) {			message.warning('电子邮箱格式不正确');			return		}		this.setState({			loading: true		})		$.ajax({			method: "POST",			dataType: "json",			crossDomain: false,			url: globalConfig.context + '/api/admin/patentNew/addPatentNew',			data: {				patentNo: this.state.patentNo,				name: this.state.patentName,				type: this.state.patentType,				applyDates: this.state.appDate,				authorizationDates: this.state.authDate,				// applicant:this.state.proposer,				province: this.state.province,				contactMobile: this.state.contactPhone,				email: this.state.email,				certificateUrl: theorgCodeUrl.length ? theorgCodeUrl : '',				uid: this.state.customerUid,			}		}).done(function (data) {			this.setState({				loading: false			});			if (!data.error.length) {				message.success('保存成功!');				this.onCal()				this.loadData()			} else {				message.warning(data.error[0].message);			}		}.bind(this));	},	tableRowClick(record, index) {		this.state.RowData = record		this.setState({			avisible: true,			patentNo: record.patentNo,			patentName: record.name,			province: record.province,			status: record.status,			patentType: record.type,			appDate: record.applyDates,			authDate: record.authorizationDates,			proposer: record.applicant,			contactPhone: record.contactMobile,			email: record.email,			certificateUrl: record.certificateUrl,			orgCodeUrl: record.certificateUrl ? splitUrl(record.certificateUrl, ',', globalConfig.avatarHost + '/upload') : [],			customerUid: record.uid,			customerName: record.userName		})		localStorage.setItem('newData', '{}');	},	xiugai(record) {		let theorgCodeUrl = [];		if (this.state.orgCodeUrl.length) {			let picArr = [];			this.state.orgCodeUrl.map(function (item) {				if (item.response && item.response.data && item.response.data.length) {					picArr.push(item.response.data);				}			});			theorgCodeUrl = picArr.join(",");		};		if (!this.state.patentNo) {			message.warning('专利号不能为空')			return		}		if (!this.state.patentName) {			message.warning('专利名称不能为空')			return		}		if (!this.state.appDate) {			message.warning('申请时间不能为空')			return		}		if (isNaN(parseInt(this.state.patentType))) {			message.warning('专利类型不能为空');			return		}		if (!this.state.authDate) {			message.warning('授权日期不能为空')			return		}		if (!this.state.customerUid) {			message.warning('客户名称不能为空')			return		}		let mobile = /^1[0-9]{10}$/, phone = /^([0-9]{3,4}-)?[0-9]{7,8}$/, phone1 = /^\d{3,4}-\d{3,4}-\d{3,4}$/;		if (this.state.contactPhone && !(mobile.test(this.state.contactPhone) || phone.test(this.state.contactPhone) || phone1.test(this.state.contactPhone))) {			message.warning('电话格式不正确');			return		}		let emailReg = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$"); //正则表达式		if (this.state.email === '') {			message.warning('电子邮箱不能为空');			return		}		if (!emailReg.test(this.state.email)) {			message.warning('电子邮箱格式不正确');			return		}		this.setState({			loading: true		})		$.ajax({			method: "POST",			dataType: "json",			crossDomain: false,			url: globalConfig.context + '/api/admin/patentNew/updatePatentNew',			data: {				id: record.id,				patentNo: this.state.patentNo,				name: this.state.patentName,				type: this.state.patentType,				applyDates: this.state.appDate,				authorizationDates: this.state.authDate,				// applicant:this.state.proposer,				province: this.state.province,				contactMobile: this.state.contactPhone,				email: this.state.email,				status: this.state.status,				certificateUrl: theorgCodeUrl.length ? theorgCodeUrl : '',				uid: this.state.customerUid,			},			success: function (data) {			}.bind(this),		}).done(function (data) {			this.setState({				loading: false			});			if (!data.error.length) {				message.success('修改成功!');				this.avisitCancel()				this.loadData(this.state.pageNo)			} else {				message.warning(data.error[0].message);			}		}.bind(this));	},	baocunxiugai() {		this.xiugai(this.state.RowData)	},	avisitCancel() {		this.setState({			avisible: false,			customerServiceList: []		})	},	reset() {		this.setState({			patentNo: '',			patentName: '',			patentType: undefined,			appDate: undefined,			authDate: undefined,			orgCodeUrl: [],			proposer: '',			province: undefined,			contactPhone: '',			email: '',			customerUid: undefined,			customerName: undefined,			customerServiceList: [],		})	},	searchReset() {		this.setState({			statusSearch: undefined,			nameSearch: undefined,			anameSearch: undefined,			patentNoSearch: undefined,			departmentSearch: undefined,			typeSearch: undefined,			timesArr: [],			releaseDate: []		}, () => {			this.loadData()		})	},	search() {		this.loadData()	},	onCal() {		this.setState({			visible: false		})	},	getOrgCodeUrl(e) {		this.setState({ orgCodeUrl: e });	},	changeList(arr) {		const newArr = [];		this.state.columns.forEach(item => {			arr.forEach(val => {				if (val === item.title) {					newArr.push(item);				}			});		});		this.setState({			changeList: newArr		});	},	//获取外联专员列表	getAdminList(value = '') {		if (value.length < 4) { return }		$.ajax({			method: "get",			dataType: "json",			crossDomain: false,			url: globalConfig.context + "/api/admin/customer/getUserByName",			data: {				name: value,			},			success: function (data) {				let theArr = [];				if (data.error && data.error.length) {					message.warning(data.error[0].message);				} else {					if (data.data) {						data.data.map(function (item, _) {							theArr.push({								value: item.id,								label: item.name,							});						});					}				}				this.setState({					customerServiceList: theArr,				});			}.bind(this),		}).always(			function () {			}.bind(this)		);	},	render() {		const theData = this.state.RowData || {};		const FormItem = Form.Item;		const formItemLayout = {			labelCol: { span: 8 },			wrapperCol: { span: 14 },		};		const { MonthPicker, RangePicker, WeekPicker } = DatePicker;		return (			<div className="user-content">				<ShowModalDiv ShowModal={this.state.showModal} />				<div className="content-title">					<span style={{ fontSize: "16px" }}>客户专利提醒</span>					<Tabs						defaultActiveKey="1"						className="test">						<TabPane tab="搜索" key="1">							<div className="user-search">								<Select									value={this.state.typeSearch}									placeholder="请选择专利类型"									onChange={e => {										this.setState({											typeSearch: e										});									}}									style={{ width: "140px" }}								>									<Option value={1}>实用新型</Option>									<Option value={2}>外观设计</Option>									<Option value={3}>发明</Option>								</Select>								<Input									value={this.state.nameSearch}									placeholder="请输入授权公司"									onChange={e => {										this.setState({											nameSearch: e.target.value										});									}}								/>								<Select									value={this.state.departmentSearch}									placeholder="请选择录入公司"									onChange={e => {										this.setState({											departmentSearch: e										});									}}									style={{ width: "140px" }}								>									{this.state.departmentArr.map(e => {										return <Option value={e.id}>{e.name}</Option>;									})}								</Select>								<Input									value={this.state.anameSearch}									placeholder="请输入录入人"									onChange={e => {										this.setState({											anameSearch: e.target.value										});									}}								/>								<Select									value={this.state.statusSearch}									placeholder="请选择状态"									onChange={e => {										this.setState({											statusSearch: e										});									}}									style={{ width: "140px" }}								>									<Option value={0}>正常</Option>									<Option value={1}>提醒中</Option>								</Select>								<Input									value={this.state.patentNoSearch}									placeholder="请输入专利号"									onChange={e => {										this.setState({											patentNoSearch: e.target.value										});									}}								/>								<Button									type="primary"									onClick={this.search}									style={{ marginLeft: "10px" }}								>									搜索								</Button>								<Button									type="primary"									onClick={this.searchReset}									style={{ marginLeft: "10px" }}								>									重置								</Button>								<span>									更多搜索									<Switch										onChange={mark => {											this.setState({ mark: mark });										}}									/>								</span>								{!this.props.isOnlyRead ? <Button									type="primary"									onClick={this.new}									style={{ marginRight: "10px", float: "right" }}								>									新建								</Button> : <div />}								{/*<Button onClick={this.reset}>导出</Button>*/}							</div>						</TabPane>						<TabPane tab="更改表格显示数据" key="2">							<div style={{ marginLeft: 10 }}>								<ChooseList									columns={this.state.columns}									changeFn={this.changeList}									changeList={this.state.changeList}									top={55}									margin={11}								/>							</div>						</TabPane>					</Tabs>					{this.state.mark ? (						<div className="user-search" style={{ paddingTop: "10px" }}>							<span style={{ fontSize: "14px" }}>请选择申请时间:</span>							<RangePicker								value={[									this.state.timesArr[0]										? moment(this.state.timesArr[0])										: null,									this.state.timesArr[1] ? moment(this.state.timesArr[1]) : null								]}								onChange={(e, f) => {									this.setState({										timesArr: f									});								}}								style={{ marginTop: "0", marginLeft: "10px" }}							/>							<span style={{ fontSize: "14px", marginLeft: "15px" }}>请选择录入日期:</span>							<RangePicker								style={{ marginTop: "0", marginLeft: "10px" }}								value={[									this.state.releaseDate[0]										? moment(this.state.releaseDate[0])										: null,									this.state.releaseDate[1]										? moment(this.state.releaseDate[1])										: null								]}								onChange={(data, dataString) => {									this.setState({ releaseDate: dataString });								}}							/>						</div>					) : (						""					)}					<div className="patent-table">						<Spin spinning={this.state.loading}>							<Table								columns={									this.state.changeList										? this.state.changeList										: this.state.columns								}								dataSource={this.state.dataSource}								pagination={this.state.pagination}								onRowClick={this.tableRowClick}								size="middle"								bordered							/>						</Spin>					</div>					{this.state.avisible ? <Modal						maskClosable={false}						visible={this.state.avisible}						onCancel={this.avisitCancel}						width="800px"						title={!this.props.isOnlyRead ? "修改详情" : "查看详情"}						footer=""						className="admin-desc-content"					>						<div className="clearfix">							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>专利号									</span>								}							>								{!this.props.isOnlyRead ?									<Input										placeholder="请输入专利号"										value={this.state.patentNo}										onChange={e => {											this.setState({ patentNo: e.target.value });										}}										style={{ width: "240px" }}									/> : <span>{this.state.patentNo}</span>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>专利名称									</span>								}							>								{!this.props.isOnlyRead ?									<Input										placeholder="请输入专利名称"										value={this.state.patentName}										onChange={e => {											this.setState({ patentName: e.target.value });										}}										style={{ width: "240px" }}									/> : <div>{this.state.patentName}</div>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label="专利类型"							>								{!this.props.isOnlyRead ?									<Select										placeholder="请选择专利类型"										style={{ width: "240px" }}										value={getPatentType(this.state.patentType)}										onChange={e => {											this.setState({ patentType: e });										}}									>										{patentTypeList.map(function (item) {											return (												<Select.Option key={item.value}>													{item.key}												</Select.Option>											);										})}									</Select> : <div>{getPatentType(this.state.patentType)}</div>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>申请日期									</span>								}							>								{									!this.props.isOnlyRead ?										<DatePicker											style={{ marginTop: "2px", width: "240px", height: "32px" }}											showTime											format="YYYY-MM-DD"											onOk={e => { }}											value={this.state.appDate ? moment(this.state.appDate) : null}											onChange={(data, dataString) => {												this.setState({ appDate: dataString });											}}										/> : <div>{this.state.appDate ? moment(this.state.appDate).format('YYYY-MM-DD') : ''}</div>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>授权日期									</span>								}							>								{									!this.props.isOnlyRead ?										<DatePicker											style={{ marginTop: "2px", width: "240px", height: "32px" }}											showTime											format="YYYY-MM-DD"											onOk={e => { }}											value={												this.state.authDate ? moment(this.state.authDate) : null											}											onChange={(data, dataString) => {												this.setState({ authDate: dataString });											}}										/> : <div>{this.state.authDate ? moment(this.state.authDate).format('YYYY-MM-DD') : ''}</div>}							</FormItem>							<FormItem className="half-item" {...formItemLayout} label="费用">								<span>{theData.patentAmount}</span>							</FormItem>							<div className="clearfix">								<FormItem									labelCol={{ span: 4 }}									wrapperCol={{ span: 18 }}									label="合同扫描件"								>									{!this.props.isOnlyRead ? <PicturesWall										domId={'patentPayment1'}										fileList={this.getOrgCodeUrl}										pictureUrl={this.state.orgCodeUrl}									/> :										<div style={{ paddingTop: '10px', paddingBottom: '10px' }}>											<ImgList domId={'patentPayment3'} fileList={this.state.orgCodeUrl} />										</div>									}									{!this.props.isOnlyRead ? <p>图片建议:要清晰。</p> : null}								</FormItem>							</div>							<div className="clearfix">								<FormItem									className="half-item"									{...formItemLayout}									label={										<span>											<strong style={{ color: "#f00" }}>*</strong>客户名称										</span>									}								>									{										!this.props.isOnlyRead ?											<Select												showSearch												value={													this.state.customerServiceList.length === 0 ?														(this.state.customerName || undefined) :														(															this.state.customerServiceList.filter(v => v.value === this.state.customerUid).length === 0 ?																this.state.customerName : this.state.customerUid														)												}												style={{ width: 150, marginLeft: '10px' }}												onSearch={this.getAdminList}												onSelect={(v) => {													this.setState({														customerUid: v													})												}}												filterOption={false}												placeholder="请输入客户名称"											>												{this.state.customerServiceList.map((v, k) => (													<Option title={v.label} key={k} value={v.value}>{v.label}</Option>												))}											</Select> : <div>{this.state.customerName}</div>									}								</FormItem>							</div>							{this.state.proposer ? <FormItem								className="half-item"								{...formItemLayout}								label="申请人"							>								<div>{this.state.proposer}</div>							</FormItem> : null}							<FormItem className="half-item" {...formItemLayout} label="省份">								{									!this.props.isOnlyRead ?										<Select											placeholder="请选择省份"											style={{ width: "240px" }}											value={this.state.province ? String(this.state.province) : ''}											onChange={e => {												this.setState({ province: e });											}}										>											{cityArr.map(function (item) {												return (													<Select.Option key={item.value}>{item.key}</Select.Option>												);											})}										</Select> : <div>{getcityArr(this.state.province)}</div>}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label="联系电话"							>								{									!this.props.isOnlyRead ?										<Input											placeholder="请输入联系手机"											value={this.state.contactPhone}											onChange={e => {												this.setState({ contactPhone: e.target.value });											}}											style={{ width: "240px" }}										/> : <div>{this.state.contactPhone}</div>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>电子邮箱									</span>								}							>								{									!this.props.isOnlyRead ?										<Input											placeholder="请输入电子邮箱"											value={this.state.email}											onChange={e => {												this.setState({ email: e.target.value });											}}											style={{ width: "240px" }}										/> : <div>{this.state.email}</div>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label="状态"							>								<span>									{/*状态 0 未提醒 1 剩余90天 2剩余30天 3剩余20天 4剩余10天 5剩余3天 6剩余2天 7剩余1天*/}									{										getMessageReminderStart(this.state.status, true)									}								</span>							</FormItem>						</div>						{!this.props.isOnlyRead ? <div style={{ overflow: "hidden" }}>							<Button style={{ float: "right" }} onClick={this.avisitCancel}>								取消							</Button>							<Button								type="primary"								style={{ float: "right", marginRight: "10px" }}								loading={this.state.loading}								onClick={this.baocunxiugai}							>								保存							</Button>						</div> : <div />}					</Modal> : <div />}					{this.state.visible ? <Modal						maskClosable={false}						visible={this.state.visible}						onOk={this.visitOk}						onCancel={this.visitCancel}						width="1000px"						title="专利资料"						footer=""						className="admin-desc-content"					>						<div className="clearfix">							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>专利号									</span>								}							>								{									<Input										placeholder="请输入专利号"										value={this.state.patentNo}										onChange={e => {											this.setState({ patentNo: e.target.value });										}}										style={{ width: "240px" }}									/>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>专利名称									</span>								}							>								{									<Input										placeholder="请输入专利名称"										value={this.state.patentName}										onChange={e => {											this.setState({ patentName: e.target.value });										}}										style={{ width: "240px" }}									/>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>申请日期									</span>								}							>								<DatePicker									style={{ marginTop: "2px", width: "240px", height: "32px" }}									showTime									format="YYYY-MM-DD"									onOk={e => { }}									value={this.state.appDate ? moment(this.state.appDate) : null}									onChange={(data, dataString) => {										this.setState({ appDate: dataString });									}}								/>							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>专利类型									</span>								}							>								{									<Select										placeholder="请选择专利类型"										style={{ width: "240px" }}										value={this.state.patentType}										onChange={e => {											this.setState({ patentType: e });										}}									>										{patentTypeList.map(function (item) {											return (												<Select.Option key={item.value}>													{item.key}												</Select.Option>											);										})}									</Select>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>授权日期									</span>								}							>								<DatePicker									style={{ marginTop: "2px", width: "240px", height: "32px" }}									showTime									format="YYYY-MM-DD"									onOk={e => { }}									value={										this.state.authDate ? moment(this.state.authDate) : null									}									onChange={(data, dataString) => {										this.setState({ authDate: dataString });									}}								/>							</FormItem>							<div className="clearfix">								<FormItem									labelCol={{ span: 4 }}									wrapperCol={{ span: 18 }}									label="合同扫描件"								>									<PicturesWall										domId={'patentPayment2'}										fileList={this.getOrgCodeUrl}										pictureUrl={this.state.orgCodeUrl}									/>									<p>图片建议:要清晰。</p>								</FormItem>							</div>							<div className="clearfix">								<FormItem									className="half-item"									{...formItemLayout}									label={										<span>											<strong style={{ color: "#f00" }}>*</strong>客户名称										</span>									}								>									<Select										showSearch										value={this.state.customerServiceList.filter(v => v.value === this.state.customerUid).length === 0 ?											this.state.customerName : this.state.customerUid}										style={{ width: 150, marginLeft: '10px' }}										onSearch={this.getAdminList}										onSelect={(v) => {											let arr = this.state.customerServiceList.filter(d => d.value === v)											this.setState({												customerUid: v,												customerName: arr[0].label											})										}}										filterOption={false}										placeholder="请输入客户名称"									>										{this.state.customerServiceList.map((v, k) => (											<Option key={k} value={v.value}>{v.label}</Option>										))}									</Select>								</FormItem>							</div>							<div>								<span style={{ marginLeft: "50px", fontSize: "20px" }}>									申请人资料								</span>							</div>							{/*<FormItem*/}							{/*  className="half-item"*/}							{/*  {...formItemLayout}*/}							{/*  label="申请人/公司"*/}							{/*>*/}							{/*  {*/}							{/*    <Input*/}							{/*      placeholder="请输入申请人/公司"*/}							{/*      value={this.state.proposer}*/}							{/*      onChange={e => {*/}							{/*        this.setState({ proposer: e.target.value });*/}							{/*      }}*/}							{/*      style={{ width: "240px" }}*/}							{/*    />*/}							{/*  }*/}							{/*</FormItem>*/}							<FormItem className="half-item" {...formItemLayout} label="省份">								<Select									placeholder="请选择省份"									style={{ width: "240px" }}									value={this.state.province}									onChange={e => {										this.setState({ province: e });									}}								>									{cityArr.map(function (item) {										return (											<Select.Option key={item.value}>{item.key}</Select.Option>										);									})}								</Select>							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label="联系手机"							>								{									<Input										placeholder="请输入联系手机"										value={this.state.contactPhone}										onChange={e => {											this.setState({ contactPhone: e.target.value });										}}										style={{ width: "240px" }}									/>								}							</FormItem>							<FormItem								className="half-item"								{...formItemLayout}								label={									<span>										<strong style={{ color: "#f00" }}>*</strong>电子邮箱									</span>								}							>								{									<Input										placeholder="请输入电子邮箱"										value={this.state.email}										onChange={e => {											this.setState({ email: e.target.value });										}}										style={{ width: "240px" }}									/>								}							</FormItem>						</div>						<div style={{ overflow: "hidden" }}>							<Button style={{ float: "right" }} onClick={this.onCal}>								取消							</Button>							<Button								type="primary"								style={{ float: "right", marginRight: "10px" }}								loading={this.state.loading}								onClick={this.onSure}							>								保存							</Button>						</div>					</Modal> : <div />}				</div>				{this.state.reminderLogVisible ? <ReminderLog					id={this.state.reminderLogId}					visible={this.state.reminderLogVisible}					cancel={() => {						this.setState({							reminderLogVisible: false,							reminderLogId: ''						})					}}				/> : null}			</div>		);	}}))export default PatentPayment;
 |