import React from 'react'; import $ from 'jquery/src/ajax'; import 'react-quill/dist/quill.bubble.css'; import moment from 'moment'; import {Form,Icon,Button,Input,Select,Spin,Table,message,DatePicker,Modal,Upload,Popconfirm,Cascader,InputNumber,Radio,TimePicker,Tabs} from 'antd'; import {areaSelect, getProvince} from '@/NewDicProvinceList';//省市区 import { getGameState, splitUrl, getprovince,getBuyAuditType , getStatuslist, getLvl,beforeUploadFile,getSecretType} from '@/tools.js'; import Editors from '@/richTextEditors'; 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 = (
点击上传
); return (
{fileList.length >= 18 ? null : uploadButton} example
); } }); //主体 const NewList = Form.create()( React.createClass({ loadData(pageNo) { this.state.data = []; this.setState({ loading: true, page: pageNo }); $.ajax({ method: 'get', dataType: 'json', crossDomain: false, url: globalConfig.context + '/api/admin/news/list', data: { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, type: this.state.typeSearch, title: this.state.titleSearch, releaseStatus: this.state.releaseStatusSearch, startCreateTime: this.state.startCreateTimeSearch, endCreateTime: this.state.endCreateTimeSearch, }, success: function(data) { let theArr = []; if (!data.data || !data.data.list) { 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({ key: i, id: thisdata.id, title: thisdata.title, type: thisdata.type, author: thisdata.author, releaseStatus: thisdata.releaseStatus, topNumber: thisdata.topNumber, sortNumber: thisdata.sortNumber, hotspot: thisdata.hotspot, releaseDate:thisdata.releaseDate, userName:thisdata.userName, }); } this.state.pagination.current = data.data.pageNo; this.state.pagination.total = data.data.totalCount; } this.setState({ dataSource: theArr, pagination: this.state.pagination }); }.bind(this) }).always( function() { this.setState({ loading: false }); }.bind(this) ); }, getInitialState() { return { loading: false, flag: true, timesArr:[], totalData:{ mark: false, content:"

", }, classList: [], titleImg: [], pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function(page) { this.loadData(page); this.setState({ selectedRowKeys: [] }); }.bind(this), showTotal: function(total) { return '共' + total + '条数据'; } }, columns: [ { title: '序号', dataIndex: 'key', key: 'key' }, { title: '标题', dataIndex: 'title', key: 'title' }, { title: '类型', dataIndex: 'type', key: 'type', render:(text,record)=>{ if (text !== undefined) { let value = ''; this.state.classList.map((obj)=>{ if (obj.showNumber === text) { value = obj.typeName; } }) return value; } } }, { title: '发布状态', dataIndex: 'releaseStatus', key: 'releaseStatus', render:text=>{ return text?'已发布':'未发布'; } }, { title: '发布时间', dataIndex: 'releaseDate', key: 'releaseDate' }, { title: '排序', dataIndex: 'sortNumber', key: 'sortNumber' }, { title: '置顶', dataIndex: 'topNumber', key: 'topNumber', render:text=>{ return text?'否':'是'; } }, { title: '操作', dataIndex: 'a', key: 'a', render:(text,record,index)=>{ return
{} {{ this.delete(record.id) }}> }
} }, ], dataSource: [] }; }, classList(pageNo) { $.ajax({ method: 'get', dataType: 'json', crossDomain: false, url: globalConfig.context + '/api/admin/news/ListNewsType', data: { pageNo: 1, pageSize: 99, }, success: function(data) { let theArr = []; if (!data.data || !data.data.list) { 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({ key: i, id: thisdata.id, typeName: thisdata.typeName, showNumber: thisdata.showNumber, }); } this.state.pagination.current = data.data.pageNo; this.state.pagination.total = data.data.totalCount; } this.setState({ classList: theArr, }); }.bind(this) }).always( function() { this.setState({ loading: false }); }.bind(this) ); }, componentWillMount() { this.loadData() this.classList() }, detailes(record) { this.setState({ loading:true }); $.ajax({ method: 'get', dataType: 'json', crossDomain: false, url: globalConfig.context + '/api/admin/news/detail', data: { id: record.id, }, success: function(data) { let theArr = []; let thisdata = data.data; if (!data.data || !data.data.list) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } this.setState({ titleImg: thisdata.titleImg ? splitUrl(thisdata.titleImg, ',', globalConfig.avatarHost + '/upload') : [], }) Object.assign(this.state.totalData,{ content:thisdata.content, createTimes:thisdata.createTimes, editTimes:thisdata.editTimes, releaseDates:thisdata.releaseDates, },this.state.RowData) }.bind(this) }).always( function() { this.setState({ loading: false }); }.bind(this) ); }, stopPropagation(e){ e.stopPropagation(); e.nativeEvent.stopImmediatePropagation(); }, //项目列表整行点击 tableRowClick(record, index) { this.state.RowData = record; this.setState({ editvisible: true, }); this.detailes(record); }, edithandleCancel(e) { this.setState({ editvisible: false },()=>{ this.addReset() }); this.loadData() }, search() { this.loadData(); }, add(){ this.setState({ editvisible: true, flag: false, }); }, addNew(){ let theorgCodeUrl = []; if (this.state.titleImg.length) { let picArr = []; this.state.titleImg.map(function (item) { if ( item.response && item.response.data && item.response.data.length ){ picArr.push(item.response.data); } }); theorgCodeUrl = picArr.join(","); }; this.setState({ loading:true }); if (!this.state.flag) { this.change("auditStatus",2) } if(theorgCodeUrl.length){ this.change("titleImg",theorgCodeUrl) }else{ this.change("titleImg",[]) } $.ajax({ method: 'post', dataType: 'json', crossDomain: false, url: (this.state.flag?'/api/admin/news/update':'/api/admin/news/apply'), data: this.state.totalData, }).done(function(data) { this.setState({ loading: false }); if(!data.error.length) { message.success('保存成功!'); this.cancelAdd() } else { message.warning(data.error[0].message); } }.bind(this)); }, saveNew(){ this.change("releaseStatus",0,()=>{ this.addNew() }) }, issueNew(){ this.change("releaseStatus",1,()=>{ this.addNew() }) }, delete(id){ this.setState({ loading:true }); $.ajax({ method: 'post', dataType: 'json', crossDomain: false, url: "/api/admin/news/deleteById", data: { id: id, }, }).done(function(data) { this.setState({ loading: false }); if(!data.error.length) { message.success('删除成功!'); this.loadData() } else { message.warning(data.error[0].message); } }.bind(this)); }, cancelAdd(){ this.setState({ editvisible: false, },()=>{ this.setState({ flag:true }) this.addReset() }); this.loadData() }, //新增框的清零 addReset(){ this.setState({ titleImg:[], totalData:{ content:"

", }, }) }, //搜索部分的清零 reset() { this.setState({ releaseStatusSearch: undefined, typeSearch: undefined, startCreateTimeSearch: undefined, endCreateTimeSearch: undefined, titleSearch: undefined, }) this.loadData(); }, getOrgCodeUrl(e) { this.setState({ titleImg: e }); }, change(key, e, f){ if(f === undefined ){ this.state.totalData[key] = e this.setState({ totalData:this.state.totalData }) }else if(typeof(f) === "function"){ this.state.totalData[key] = e this.setState({ totalData:this.state.totalData },f) } }, render() { const FormItem = Form.Item; const rowSelection = { selectedRowKeys: this.state.selectedRowKeys, onChange: (selectedRowKeys, selectedRows) => { this.setState({ selectedRows: selectedRows.slice(-1), selectedRowKeys: selectedRowKeys.slice(-1) }); } }; let data = this.state.totalData; const { TextArea } = Input;//文本域 const { TabPane } = Tabs;//标签页 const { MonthPicker, RangePicker, WeekPicker } = DatePicker;//日期输入框 return (
新闻列表管理
{ this.setState({ nameSearch: e.target.value }); }} />
{ this.change('title',e.target.value) }} style={{width:'240px'}} /> { this.change('sortNumber',e.target.value) }} style={{width:'240px'}} /> { this.change('topNumber',e.target.value) }} value={data.topNumber}>

图片建议:要清晰。

{ this.change('content',value) }} visible={data.visible} />
{!data.releaseStatus?: }
); } }) ); export default NewList;