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;