|
@@ -0,0 +1,865 @@
|
|
|
+import React from "react";
|
|
|
+import $ from "jquery/src/ajax";
|
|
|
+import "react-quill/dist/quill.bubble.css";
|
|
|
+import moment from "moment";
|
|
|
+import "./techDemand.less";
|
|
|
+import {
|
|
|
+ Form,
|
|
|
+ Icon,
|
|
|
+ Button,
|
|
|
+ Input,
|
|
|
+ Select,
|
|
|
+ Table,
|
|
|
+ message,
|
|
|
+ DatePicker,
|
|
|
+ Modal,
|
|
|
+ Upload,
|
|
|
+ Popconfirm,
|
|
|
+ Cascader,
|
|
|
+ InputNumber,
|
|
|
+ Radio,
|
|
|
+ TimePicker,
|
|
|
+ Tabs,
|
|
|
+ Tag
|
|
|
+} from "antd";
|
|
|
+import { areaSelect, getProvince } from "../../NewDicProvinceList"; //省市区
|
|
|
+import {
|
|
|
+ getGameState,
|
|
|
+ splitUrl,
|
|
|
+ getprovince,
|
|
|
+ getStatuslist,
|
|
|
+ getLvl,
|
|
|
+ beforeUploadFile,
|
|
|
+ getPicPath
|
|
|
+} from "@/tools.js";
|
|
|
+import Editors from "@/richTextEditor";
|
|
|
+import SpinContainer from "../../SpinContainer"; //富文本编辑器
|
|
|
+
|
|
|
+// 上传文件
|
|
|
+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;
|
|
|
+ console.log(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" }}>
|
|
|
+ <Upload
|
|
|
+ beforeUpload={beforeUploadFile}
|
|
|
+ // action={globalConfig.context + "/api/admin/militaryEnterprises/uploadPicture"}
|
|
|
+ action={globalConfig.context + "/api/admin/eventPlanning/uploadFile"}
|
|
|
+ data={{ sign: "enterprises_pucture" }}
|
|
|
+ listType="picture-card"
|
|
|
+ fileList={fileList}
|
|
|
+ onPreview={this.handlePreview}
|
|
|
+ onChange={this.handleChange}
|
|
|
+ >
|
|
|
+ {fileList && fileList.length >= 1 ? null : uploadButton}
|
|
|
+ </Upload>
|
|
|
+ <Modal
|
|
|
+ maskClosable={false}
|
|
|
+ visible={previewVisible}
|
|
|
+ footer={null}
|
|
|
+ onCancel={e => {
|
|
|
+ this.setState({ previewVisible: false });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <img alt="" style={{ width: "100%" }} src={previewImage} />
|
|
|
+ </Modal>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+});
|
|
|
+//主体
|
|
|
+const planningNews = 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/eventPlanning/list",
|
|
|
+ data: {
|
|
|
+ pageNo: pageNo || this.state.pagination.current || 1,
|
|
|
+ pageSize: this.state.pagination.pageSize,
|
|
|
+ title: this.state.titleSearch
|
|
|
+ },
|
|
|
+ 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 + 1,
|
|
|
+ id: thisdata.id,
|
|
|
+ title: thisdata.title,
|
|
|
+ publisher: thisdata.publisher,
|
|
|
+ type: thisdata.type,
|
|
|
+ pictureUrl: thisdata.pictureUrl,
|
|
|
+ sort: thisdata.sort,
|
|
|
+ releaseStatus: thisdata.releaseStatus,
|
|
|
+ releaseTimeConvert: thisdata.releaseTimes,
|
|
|
+ status: thisdata.status,
|
|
|
+ content: thisdata.content
|
|
|
+ });
|
|
|
+ }
|
|
|
+ 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,
|
|
|
+ editorState: null,
|
|
|
+ activeKey: "1",
|
|
|
+ timesArr: [],
|
|
|
+ ProvinceCity: [],
|
|
|
+ ProvinceCityC: [],
|
|
|
+ totalData: {
|
|
|
+ mark: false
|
|
|
+ },
|
|
|
+ imgWidth: "width: 200px",
|
|
|
+ logoUrl: [],
|
|
|
+ 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: "type",
|
|
|
+ key: "type",
|
|
|
+ render: text => {
|
|
|
+ if (text == 0) {
|
|
|
+ return "公司新闻";
|
|
|
+ } else if (text == 1) {
|
|
|
+ return "行业新闻";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "新闻标题",
|
|
|
+ dataIndex: "title",
|
|
|
+ key: "title",
|
|
|
+ render: text => {
|
|
|
+ return text.length >= 8 ? text.substring(0, 8) + "..." : text;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "排序",
|
|
|
+ dataIndex: "sort",
|
|
|
+ key: "sort"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "是否首页",
|
|
|
+ dataIndex: "status",
|
|
|
+ key: "status",
|
|
|
+ render: s => {
|
|
|
+ return s ? (
|
|
|
+ <Tag color="#87d068">是</Tag>
|
|
|
+ ) : (
|
|
|
+ <Tag color="#f50">否</Tag>
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "新闻缩率图",
|
|
|
+ dataIndex: "pictureUrl",
|
|
|
+ key: "pictureUrl",
|
|
|
+ render: url => {
|
|
|
+ let path = getPicPath(globalConfig.avatarUploadHost, url);
|
|
|
+ return (
|
|
|
+ <div style={{ textAlign: "center" }}>
|
|
|
+ <img src={path} style={{ width: "100px", height: 50 }} />
|
|
|
+ <Button
|
|
|
+ className="buttonimg"
|
|
|
+ style={{ marginLeft: 10 }}
|
|
|
+ onClick={e => {
|
|
|
+ e.stopPropagation();
|
|
|
+ this.maximg(path);
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 查看大图
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "发布状态",
|
|
|
+ dataIndex: "releaseStatus",
|
|
|
+ key: "releaseStatus",
|
|
|
+ render: text => {
|
|
|
+ return text ? "是" : "否";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // title: "置顶",
|
|
|
+ // dataIndex: "topNumber",
|
|
|
+ // key: "topNumber",
|
|
|
+ // render: text => {
|
|
|
+ // return text ? "否" : "是";
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ title: "操作",
|
|
|
+ dataIndex: "operate",
|
|
|
+ key: "operate",
|
|
|
+ render: (text, record, index) => {
|
|
|
+ return (
|
|
|
+ <div>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{ marginLeft: "10px" }}
|
|
|
+ onClick={() => {
|
|
|
+ this.setState({
|
|
|
+ flag: true
|
|
|
+ });
|
|
|
+ this.edit(record);
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 编辑
|
|
|
+ </Button>
|
|
|
+ <Popconfirm
|
|
|
+ title="您确定删除该新闻吗?"
|
|
|
+ onConfirm={() => this.confirm(record.id)}
|
|
|
+ onCancel={this.cancel}
|
|
|
+ okText="是"
|
|
|
+ cancelText="否"
|
|
|
+ >
|
|
|
+ <Button
|
|
|
+ type="danger"
|
|
|
+ style={{ marginLeft: "10px" }}
|
|
|
+ onClick={e => {
|
|
|
+ e.stopPropagation();
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 删除
|
|
|
+ </Button>
|
|
|
+ </Popconfirm>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{ marginLeft: "10px" }}
|
|
|
+ onClick={e => {
|
|
|
+ e.stopPropagation();
|
|
|
+ if (record.releaseStatus) {
|
|
|
+ this.toTop(record, 0);
|
|
|
+ } else {
|
|
|
+ this.toTop(record, 1);
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {record.releaseStatus ? "撤销发布" : "发布"}
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "发布时间",
|
|
|
+ dataIndex: "releaseTimeConvert",
|
|
|
+ key: "releaseTimeConvert"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ //数据列表
|
|
|
+ dataSource: []
|
|
|
+ };
|
|
|
+ },
|
|
|
+ // 新增新闻按钮
|
|
|
+ add() {
|
|
|
+ this.setState({
|
|
|
+ editvisible: true,
|
|
|
+ flag: false
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 推荐置顶
|
|
|
+ toTop(record, num) {
|
|
|
+ $.ajax({
|
|
|
+ method: "post",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context + "/api/admin/eventPlanning/update",
|
|
|
+ data: {
|
|
|
+ id: record.id,
|
|
|
+ releaseStatus: num
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+ if (data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ } else {
|
|
|
+ this.loadData();
|
|
|
+ }
|
|
|
+ }.bind(this)
|
|
|
+ }).always(
|
|
|
+ function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this)
|
|
|
+ );
|
|
|
+ },
|
|
|
+ //编辑按钮操作
|
|
|
+ tableRowClick(record) {
|
|
|
+ this.setState({
|
|
|
+ editvisible: true
|
|
|
+ });
|
|
|
+ this.edit(record);
|
|
|
+ },
|
|
|
+ edit(record, index) {
|
|
|
+ this.setState({
|
|
|
+ editvisible: true,
|
|
|
+ loading: true
|
|
|
+ });
|
|
|
+ $.ajax({
|
|
|
+ method: "get",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context + "/api/admin/eventPlanning/selectNews",
|
|
|
+ data: {
|
|
|
+ id: record.id
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+ if (data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ } else {
|
|
|
+ let thisdata = data.data;
|
|
|
+ this.setState({
|
|
|
+ id: thisdata.id,
|
|
|
+ title: thisdata.title,
|
|
|
+ publisher: thisdata.publisher,
|
|
|
+ type: thisdata.type,
|
|
|
+ pictureUrl: thisdata.pictureUrl
|
|
|
+ ? splitUrl(
|
|
|
+ thisdata.pictureUrl,
|
|
|
+ ",",
|
|
|
+ globalConfig.avatarUploadHost
|
|
|
+ )
|
|
|
+ : [],
|
|
|
+ sort: thisdata.sort,
|
|
|
+ editorcontext: thisdata.content,
|
|
|
+ releaseStatus: thisdata.releaseTimes,
|
|
|
+ time: thisdata.releaseTimes
|
|
|
+ ? thisdata.releaseTimes
|
|
|
+ : thisdata.createTimes
|
|
|
+ });
|
|
|
+ window.setTimeout(() => {
|
|
|
+ console.log(this.state);
|
|
|
+ }, 100);
|
|
|
+ }
|
|
|
+ }.bind(this)
|
|
|
+ }).always(
|
|
|
+ function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this)
|
|
|
+ );
|
|
|
+ },
|
|
|
+ getOrgCodeUrl(e) {
|
|
|
+ this.setState({ pictureUrl: e });
|
|
|
+ },
|
|
|
+ // 新增新闻
|
|
|
+ addNew(flag) {
|
|
|
+ if (this.state.flag) {
|
|
|
+ $.ajax({
|
|
|
+ method: "post",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context + "/api/admin/eventPlanning/update",
|
|
|
+ data: {
|
|
|
+ id: this.state.id,
|
|
|
+ title: this.state.title,
|
|
|
+ publisher: this.state.publisher,
|
|
|
+ type: this.state.type,
|
|
|
+ pictureUrl: this.state.pictureUrl
|
|
|
+ ? this.state.pictureUrl[0].response.data
|
|
|
+ : undefined,
|
|
|
+ sort: this.state.sort,
|
|
|
+ content: this.state.editorcontext,
|
|
|
+ status: this.state.status,
|
|
|
+ releaseTimes: this.state.time,
|
|
|
+ releaseStatus: flag ? flag : undefined
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+ if (data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ } else {
|
|
|
+ this.loadData();
|
|
|
+ this.handleCancelEdit();
|
|
|
+ }
|
|
|
+ }.bind(this)
|
|
|
+ }).always(
|
|
|
+ function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this)
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ $.ajax({
|
|
|
+ method: "post",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context + "/api/admin/eventPlanning/add",
|
|
|
+ data: {
|
|
|
+ title: this.state.title,
|
|
|
+ publisher: this.state.publisher,
|
|
|
+ type: this.state.type,
|
|
|
+ pictureUrl: this.state.pictureUrl[0].response.data,
|
|
|
+ sort: this.state.sort,
|
|
|
+ content: this.state.editorcontext,
|
|
|
+ releaseStatus: flag ? flag : undefined,
|
|
|
+ status: 0,
|
|
|
+ releaseTimes: this.state.time
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+ if (data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ } else {
|
|
|
+ this.loadData();
|
|
|
+ this.handleCancelEdit();
|
|
|
+ }
|
|
|
+ }.bind(this)
|
|
|
+ }).always(
|
|
|
+ function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //表单内容改变时候触发
|
|
|
+ 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
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 关闭模态框
|
|
|
+ handleCancelEdit() {
|
|
|
+ this.setState({
|
|
|
+ editvisible: false
|
|
|
+ });
|
|
|
+ this.addReset();
|
|
|
+ },
|
|
|
+ //点击大图
|
|
|
+ maximg(url) {
|
|
|
+ this.setState({
|
|
|
+ imgeditvisible: true,
|
|
|
+ maximg: url
|
|
|
+ });
|
|
|
+ },
|
|
|
+ componentWillMount() {
|
|
|
+ this.loadData();
|
|
|
+ },
|
|
|
+ //确认要删除吗
|
|
|
+ confirm(id) {
|
|
|
+ $.ajax({
|
|
|
+ method: "post",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context + "/api/admin/news/deleteNews",
|
|
|
+ data: {
|
|
|
+ id
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+ if (data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ } else {
|
|
|
+ this.loadData();
|
|
|
+ }
|
|
|
+ }.bind(this)
|
|
|
+ }).always(
|
|
|
+ function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this)
|
|
|
+ );
|
|
|
+ },
|
|
|
+ imghandleCancel() {
|
|
|
+ this.setState({
|
|
|
+ imgeditvisible: false
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //取消删除
|
|
|
+ cancel() {
|
|
|
+ console.log("我取消删除了");
|
|
|
+ },
|
|
|
+ async submitContent() {
|
|
|
+ // 在编辑器获得焦点时按下ctrl+s会执行此方法
|
|
|
+ // 编辑器内容提交到服务端之前,可直接调用editorState.toHTML()来获取HTML格式的内容
|
|
|
+ const htmlContent = this.state.editorState.toHTML();
|
|
|
+ const result = await saveEditorContent(htmlContent);
|
|
|
+ },
|
|
|
+ //新增框的清零
|
|
|
+ addReset() {
|
|
|
+ this.setState({
|
|
|
+ pictureUrl: [],
|
|
|
+ title: undefined,
|
|
|
+ publisher: undefined,
|
|
|
+ type: undefined,
|
|
|
+ sort: undefined,
|
|
|
+ editorcontext: "",
|
|
|
+ time: undefined
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //搜索部分的清零
|
|
|
+ reset() {
|
|
|
+ this.state.titleSearch = undefined;
|
|
|
+ this.loadData();
|
|
|
+ },
|
|
|
+
|
|
|
+ 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; //日期输入框
|
|
|
+ const { editorState } = this.state;
|
|
|
+ return (
|
|
|
+ <div className="user-content">
|
|
|
+ <div className="content-title">
|
|
|
+ <span>活动策划</span>
|
|
|
+ <div className="user-search">
|
|
|
+ <Input
|
|
|
+ placeholder="请输入"
|
|
|
+ style={{
|
|
|
+ width: "150px",
|
|
|
+ marginRight: "10px",
|
|
|
+ marginBottom: "10px"
|
|
|
+ }}
|
|
|
+ value={this.state.titleSearch}
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({ titleSearch: e.target.value });
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ onClick={e => {
|
|
|
+ this.loadData();
|
|
|
+ }}
|
|
|
+ style={{ marginRight: "10px" }}
|
|
|
+ >
|
|
|
+ 搜索
|
|
|
+ </Button>
|
|
|
+ <Button onClick={this.reset} style={{ marginRight: "10px" }}>
|
|
|
+ 重置
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ onClick={this.add}
|
|
|
+ style={{ marginLeft: "100px" }}
|
|
|
+ >
|
|
|
+ 新增新闻
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ {/* 新闻表单 */}
|
|
|
+ <div className="patent-table">
|
|
|
+ <SpinContainer spinning={this.state.loading}>
|
|
|
+ <Table
|
|
|
+ columns={this.state.columns}
|
|
|
+ dataSource={this.state.dataSource}
|
|
|
+ pagination={this.state.pagination}
|
|
|
+ onRowClick={this.tableRowClick}
|
|
|
+ bordered
|
|
|
+ size="small"
|
|
|
+ ellipsis="true"
|
|
|
+ />
|
|
|
+ </SpinContainer>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ {/* 模块框 */}
|
|
|
+ <div className="patent-desc">
|
|
|
+ <Modal
|
|
|
+ className="customeDetails"
|
|
|
+ title={this.state.flag ? "新闻详情" : "新增新闻"}
|
|
|
+ width="1000px"
|
|
|
+ onCancel={this.handleCancelEdit}
|
|
|
+ visible={this.state.editvisible}
|
|
|
+ footer=""
|
|
|
+ >
|
|
|
+ <Form
|
|
|
+ layout="horizontal"
|
|
|
+ onSubmit={this.edithandleSubmit}
|
|
|
+ id="demand-form"
|
|
|
+ >
|
|
|
+ <SpinContainer spinning={this.state.loading}>
|
|
|
+ <div className="clearfix">
|
|
|
+ <FormItem
|
|
|
+ className="half-item"
|
|
|
+ labelCol={{ span: 8 }}
|
|
|
+ wrapperCol={{ span: 12 }}
|
|
|
+ label="新闻标题"
|
|
|
+ >
|
|
|
+ <Input
|
|
|
+ placeholder="请输入新闻标题"
|
|
|
+ value={this.state.title}
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({
|
|
|
+ title: e.target.value
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ style={{ width: "240px" }}
|
|
|
+ />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem
|
|
|
+ className="half-item"
|
|
|
+ labelCol={{ span: 8 }}
|
|
|
+ wrapperCol={{ span: 12 }}
|
|
|
+ label="新闻类别"
|
|
|
+ >
|
|
|
+ <Select
|
|
|
+ style={{ width: 120 }}
|
|
|
+ placeholder="请选择新闻类型"
|
|
|
+ value={
|
|
|
+ this.state.type == 1
|
|
|
+ ? "行业新闻"
|
|
|
+ : this.state.type == 0
|
|
|
+ ? "公司新闻"
|
|
|
+ : []
|
|
|
+ }
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({
|
|
|
+ type: e
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <Option value="0">公司新闻</Option>
|
|
|
+ <Option value="1">行业新闻</Option>
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem
|
|
|
+ className="half-item"
|
|
|
+ labelCol={{ span: 8 }}
|
|
|
+ wrapperCol={{ span: 12 }}
|
|
|
+ label="新闻发布人"
|
|
|
+ >
|
|
|
+ <Input
|
|
|
+ placeholder="请输入新闻发布人"
|
|
|
+ value={this.state.publisher}
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({
|
|
|
+ publisher: e.target.value
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ style={{ width: "240px" }}
|
|
|
+ />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem
|
|
|
+ className="half-item"
|
|
|
+ labelCol={{ span: 8 }}
|
|
|
+ wrapperCol={{ span: 12 }}
|
|
|
+ label="发布时间"
|
|
|
+ >
|
|
|
+ <DatePicker
|
|
|
+ placeholder="请输入发布时间"
|
|
|
+ format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ showTime
|
|
|
+ value={this.state.time ? moment(this.state.time) : null}
|
|
|
+ onChange={(e, f) => {
|
|
|
+ this.setState({ time: f });
|
|
|
+ console.log(e, f);
|
|
|
+ }}
|
|
|
+ style={{ width: "240px" }}
|
|
|
+ />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem
|
|
|
+ className="half-item"
|
|
|
+ labelCol={{ span: 8 }}
|
|
|
+ wrapperCol={{ span: 12 }}
|
|
|
+ label="排序"
|
|
|
+ >
|
|
|
+ <Input
|
|
|
+ placeholder="请输入排序"
|
|
|
+ value={this.state.sort}
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({
|
|
|
+ sort: e.target.value
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ style={{ width: "240px" }}
|
|
|
+ />
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ <div className="clearfix">
|
|
|
+ <FormItem
|
|
|
+ labelCol={{ span: 4 }}
|
|
|
+ wrapperCol={{ span: 18 }}
|
|
|
+ onCancel={this.handleCancel}
|
|
|
+ label="新闻大图"
|
|
|
+ >
|
|
|
+ <PicturesWall
|
|
|
+ fileList={this.getOrgCodeUrl}
|
|
|
+ pictureUrl={this.state.pictureUrl}
|
|
|
+ />
|
|
|
+ <p>建议尺寸:345X200 图片建议:要清晰。</p>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ <div className="clearfix">
|
|
|
+ <FormItem
|
|
|
+ labelCol={{ span: 4 }}
|
|
|
+ wrapperCol={{ span: 18 }}
|
|
|
+ label="企业简介"
|
|
|
+ >
|
|
|
+ <Editors
|
|
|
+ textContent={this.state.editorcontext}
|
|
|
+ uploadUrl={"/api/admin/news/uploadFile"}
|
|
|
+ globalConfig={globalConfig.uploadPath}
|
|
|
+ placeholder="业务项目客户基本条件"
|
|
|
+ handleRichText={value => {
|
|
|
+ this.setState({ editorcontext: value });
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ <div className="clearfix">
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ size="large"
|
|
|
+ onClick={e => {
|
|
|
+ this.addNew(0);
|
|
|
+ }}
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ marginRight: "80px",
|
|
|
+ marginTop: "20px"
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 保存
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ size="large"
|
|
|
+ onClick={e => {
|
|
|
+ this.addNew(1);
|
|
|
+ }}
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ marginRight: "20px",
|
|
|
+ marginTop: "20px"
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 保存并发布
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ </SpinContainer>
|
|
|
+ </Form>
|
|
|
+ </Modal>
|
|
|
+ <Modal
|
|
|
+ visible={this.state.imgeditvisible}
|
|
|
+ onCancel={this.imghandleCancel}
|
|
|
+ onOk={this.imgOk}
|
|
|
+ >
|
|
|
+ <img style={{ width: "100%" }} src={this.state.maximg} />
|
|
|
+ </Modal>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+ })
|
|
|
+);
|
|
|
+
|
|
|
+export default planningNews;
|