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;