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}
);
}
});
//主体
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 (
);
}
})
);
export default NewList;