123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295 |
- import {Component} from 'react';
- import {Button,Modal,message,Table,Spin,Input, Row,Col,Card,Form} from 'antd';
- import './selectContent.less';
- import {getMsgType,getGameState} from '@/tools';
- class SelectContent extends Component {
- constructor(props) {
- super(props);
- this.state = {
- loading:false,
- RowData:[],
- recD:[],
- selectedRowKeys: [],
- selectedRows: [],
- loading: false,
- pagination: {
- defaultCurrent: 1,
- defaultPageSize: 5,
- showQuickJumper: true,
- pageSize: 5,
- onChange: function (page) {
- this.loadData(page);
- }.bind(this),
- showTotal: function (total) {
- return '共' + total + '条数据';
- }
- },
- columns: [
- {
- title: '名称',
- dataIndex: 'title',
- key: 'title',
- render: text => { return text&&text.length>16?text.substr(0,16)+'...':text}
- },
- {
- title: '简介',
- dataIndex: 'summary',
- key: 'summary',
- render: text => { return text&&text.length>16?text.substr(0,16)+'...':text}
- },
- {
- title: '类型',
- dataIndex: 'fromTable',
- key: 'fromTable',
- render:(text)=>{
- return getMsgType(text)
- }
- },
- {
- title: '关键字',
- dataIndex: 'keyword',
- key: 'keyword',
- render: text => { return text&&text.length>16?text.substr(0,16)+'...':text}
- },
- {
- title: '操作',
- dataIndex: 'caozuo',
- key: 'caozuo',
- render:(text,recard) => {
- return <div className="btnRight">
- <Button type="primary" style={{ background: "#3fcf9e", border: "none", color: "#fff" }} onClick={(e)=>{e.stopPropagation();this.subVal(recard)}}>选择</Button>
- </div>
- }
- }
- ],
- objColumns: [
- {
- title: '名称',
- dataIndex: 'name',
- key: 'name',
- render: text => { return text&&text.length>16?text.substr(0,16)+'...':text}
- },
- {
- title: '简介',
- dataIndex: 'summary',
- key: 'summary',
- render: text => { return text&&text.length>16?text.substr(0,16)+'...':text}
- },
- {
- title: '市场价(万元)',
- dataIndex: 'price',
- key: 'price'
- },
- {
- title: '最低折扣',
- dataIndex: 'offset',
- key: 'offset'
- },
- {
- title: '会员价(万元)',
- dataIndex: 'memberPrice',
- key: 'memberPrice'
- },
- {
- title: '活动价(万元)',
- dataIndex: 'activityPrice',
- key: 'activityPrice'
- },
- {
- title: '活动生效标识',
- dataIndex: 'activityFlag',
- key: 'activityFlag',
- render: (text) => {
- return getGameState(text);
- }
- },
- {
- title: '操作',
- dataIndex: 'caozuo',
- key: 'caozuo',
- render:(text,recard) => {
- return <div className="btnRight">
- <Button type="primary" style={{ background: "#3fcf9e", border: "none", color: "#fff" }} onClick={(e)=>{e.stopPropagation();this.subVal(recard)}}>选择</Button>
- </div>
- }
- }
- ],
- dataSource: [],
- }
- }
- loadData(pageNo) {
- this.state.data = [];
- this.setState({
- selectedRowKeys:[],
- page:pageNo,
- loading: true
- });
-
- $.ajax({
- method: "get",
- dataType: "json",
- crossDomain: false,
- url: globalConfig.context + this.props.data&&this.props.data.url?this.props.data.url:"/portal/globalSearch",
- data: this.props.data&&this.props.data.url?
- {
- pageNo: pageNo || 1,
- pageSize: 5,
- privateProject:this.props.data.privateProject,
- auditStatus:this.props.data.auditStatus,
- name:this.state.searchVal
- }
- :{
- pageNo: pageNo || 1,
- pageSize: 5,
- name:this.state.searchVal
- },
- 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,
- rowId: thisdata.rowId,
- id:thisdata.id,
- keyword: thisdata.keyword,
- summary:thisdata.summary,
- title:thisdata.title,
- fromTable:thisdata.fromTable,
- name:thisdata.name,
- price:thisdata.price,
- offset:thisdata.offset,
- memberPrice:thisdata.memberPrice,
- activityPrice:thisdata.activityPrice,
- activityFlag:thisdata.activityFlag
- });
- };
- };
- this.state.pagination.current = data.data.pageNo;
- this.state.pagination.total = data.data.totalCount;
- if(data.data&&data.data.list&&!data.data.list.length){
- this.state.pagination.current=0;
- this.state.pagination.total=0;
- };
- this.setState({
- dataSource: theArr,
- pagination: this.state.pagination
- });
- }.bind(this),
- }).always(function () {
- this.setState({
- loading: false
- });
- }.bind(this));
- }
- //点推送时
- subVal(recard){
- this.props.visFun(true,recard)
- }
- handOk(){
- this.setState({
- visible:false
- })
- this.props.visFun(false);
- }
- handleCancel(){
- this.setState({
- visible:false
- })
- this.props.visFun(false);
- }
- componentWillReceiveProps(nextProps){
- this.state.visible = nextProps.visible;
- }
- tableRowClick(record, index) {
- this.state.RowData = record;
- if(this.props.data&&this.props.data.url){
- this.setState({
- DetailVis: false
- });
- }else{
- this.setState({
- DetailVis: true
- });
- }
- }
- searchFun(){
- this.loadData()
- }
- okDetail(){
- this.setState({
- DetailVis: false
- });
- }
-
- render() {
- const formItemLayout = {
- labelCol: { span: 6 },
- wrapperCol: { span: 12 },
- };
- const FormItem = Form.Item
- let RowData=this.state.RowData||[];
- return ( <div>
- <Modal
- visible={this.state.visible}
- onOk={this.handOk.bind(this)}
- onCancel={this.handleCancel.bind(this)}
- width="800px"
- title={this.props.data&&this.props.data.url?'我的项目':"选择推送内容"}
- footer=""
- >
- <div className="sendBody">
- <div className="megSearch">
- <Input type="text"
- size="large"
- value={this.state.searchVal}
- onChange={(e)=>{this.setState({searchVal:e.target.value})}}/>
- <Button type="primary" size="large" onClick={this.searchFun.bind(this)}>搜索</Button>
- </div>
- <Spin spinning={this.state.loading}>
- <Table columns={this.props.data&&this.props.data.url?this.state.objColumns:this.state.columns}
- dataSource={this.state.dataSource}
- pagination={this.state.pagination}
- onRowClick={this.tableRowClick.bind(this)} />
- </Spin>
- </div>
- </Modal>
- <Modal
- visible={this.state.DetailVis}
- title="详情"
- onOk={this.okDetail.bind(this)}
- onCancel={this.okDetail.bind(this)}
- footer=''
- width="600px"
- >
- <div className="detailList">
- <div className="clearfix">
- <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="名称">
- <span>{RowData.title}</span>
- </FormItem>
- </div>
- <div className="clearfix">
- <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="简介">
- <p>{RowData.summary}</p>
- </FormItem>
- </div>
- <div className="clearfix">
- <FormItem className="half-item" {...formItemLayout} label="类型">
- <p>{getMsgType(RowData.fromTable)}</p>
- </FormItem>
- <FormItem className="half-item" {...formItemLayout} label="关键字">
- <p>{RowData.keyword}</p>
- </FormItem>
- </div>
- </div>
- </Modal>
- </div> );
- }
- }
-
- export default SelectContent;
|