Forráskód Böngészése

更换登录界面背景图

zhanghe 7 éve
szülő
commit
25e18f12de

BIN
src/assets/loginBG.jpg


+ 1 - 1
src/components/GlobalFooter/demo/basic.md

@@ -22,7 +22,7 @@ const links = [{
   blankTarget: true,
 }];
 
-const copyright = <div>Copyright <Icon type="copyright" /> 2017 蚂蚁金服体验技术部出品</div>;
+const copyright = <div>Copyright <Icon type="copyright" /> 2017 蚂蚁金服体验技术部</div>;
 
 ReactDOM.render(
   <div style={{ background: '#f5f5f5', overflow: 'hidden' }}>

+ 1 - 1
src/components/SiderMenu/SiderMenu.js

@@ -105,7 +105,7 @@ export default class SiderMenu extends PureComponent {
                   to={itemPath}
                   target={item.target}
                   replace={itemPath === this.props.location.pathname}
-                  onClick={this.props.isMobile && (() => { this.props.onCollapse(true); })}
+                  onClick={this.props.isMobile ? (() => { this.props.onCollapse(true); }) : null}
                 >
                   {icon}<span>{item.name}</span>
                 </Link>

+ 1 - 1
src/layouts/UserLayout.js

@@ -18,7 +18,7 @@ const links = [{
   href: '',
 }];
 
-const copyright = <div>Copyright <Icon type="copyright" /> 2017-2020 领教信息科技有限公司出品</div>;
+const copyright = <div>Copyright <Icon type="copyright" /> 2017-2020 领教信息科技有限公司</div>;
 
 class UserLayout extends React.PureComponent {
   getPageTitle() {

+ 2 - 2
src/layouts/UserLayout.less

@@ -5,7 +5,7 @@
 .outer {
   width: 100%;
   height: 100%;
-  background-image: url('http://scaffold.ant.design/angular-material-dashboard/login_bg.4e2f642c39de98d0e3c1.jpg');
+  background-image: url('../assets/loginBG.jpg');
 
   .inner {
     width: 100%;
@@ -61,7 +61,7 @@
       position: absolute;
       width: 100%;
       bottom: 0;
-      
+
       .copyright {
         color: @inverse-color;
       }

+ 6 - 0
src/routes/CmsUser/index.js

@@ -56,6 +56,12 @@ export default class CMSUser extends Component {
         dispatch({
           type: `cmsUser/${modalType}`,
           payload: data,
+          callback: () => {
+            dispatch(routerRedux.push({
+              pathname: '/cms/user',
+              search: queryString.stringify(filters),
+            }));
+          }
         });
       },
       onCancel () {

+ 12 - 8
src/routes/CmsUser/modal.js

@@ -10,14 +10,17 @@ export default class CMSUserModalForm extends Component {
 
     validateFields((errors) => {
       if (errors) return;
-      const data = { ...getFieldsValue() };
-
-      data.status ? data.status = Codes.CODE_NORMAL : data.status = Codes.CODE_DELETE;
 
-      if (modalType === 'update') {
+      const data = { ...getFieldsValue() };
+      if (!data.password) {
+        delete data.password;
+      }
+      if (modalType === 'create') {
+        data.status = Codes.CODE_NORMAL;
+      } else if (modalType === 'update') {
         data.id = item.id;
+        data.status = item.status;
       }
-
       onOk(data);
     });
   }
@@ -27,6 +30,7 @@ export default class CMSUserModalForm extends Component {
     const { getFieldDecorator } = form;
 
     const modalOpts = { ...modalProps, onOk: this.handleModalOk };
+
     const formItemLayout = {
       labelCol: { span: 6 },
       wrapperCol: { span: 15 },
@@ -66,9 +70,7 @@ export default class CMSUserModalForm extends Component {
             </Form.Item>
             :
             <Form.Item label="用户密码:" hasFeedback {...formItemLayout}>
-              {getFieldDecorator('password', {
-                initialValue: item.password,
-              })(<Input placeholder="修改密码时填写"/>)}
+              {getFieldDecorator('password')(<Input placeholder="修改密码时填写" />)}
             </Form.Item>
           }
           <Form.Item label="用户昵称:" hasFeedback {...formItemLayout}>
@@ -111,11 +113,13 @@ export default class CMSUserModalForm extends Component {
               initialValue: item.weChat,
             })(<Input />)}
           </Form.Item>
+          {/*
           <Form.Item label="账号状态:" {...formItemLayout}>
             {getFieldDecorator('status', {
               valuePropsName: 'checked',
           })(<Switch defaultChecked={item.status === Codes.CODE_NORMAL ? true : false} checkedChildren="使用中" unCheckedChildren="禁用中" />)}
           </Form.Item>
+          */}
         </Form>
       </Modal>
     );

+ 10 - 7
src/routes/CmsUser/table.js

@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
 import moment from 'moment';
 import classnames from 'classnames';
 import queryString from 'query-string';
-import { Avatar, Modal, Badge, Table, Popconfirm, Menu, Icon } from 'antd';
+import { Avatar, Modal, Badge, Table, Icon } from 'antd';
 import AnimTableBody from '../../components/Animation/AnimTableBody';
 import { Codes, statuses, domains } from '../../utils/config';
 import styles from './table.less';
@@ -11,6 +11,7 @@ import styles from './table.less';
 export default class CMSUserTableList extends Component {
 
   handleOperateItem = (record) => {
+    const { onDeleteItem, onRecoverItem } = this.props;
     Modal.confirm({
       title: `您确定要${record.status === Codes.CODE_NORMAL ? '禁用' : '解禁'}该账户?`,
       onOk () {
@@ -40,14 +41,16 @@ export default class CMSUserTableList extends Component {
       title: '头像',
       dataIndex: 'avatar',
       key: 'avatar',
-      render: (text, record) => (
-        <Avatar
+      render: (text, record) => {
+        return (
+          <Avatar
           src={text}
           style={{ backgroundColor: colorList[Math.floor(Math.random()*(colorList.length -1))], verticalAlign: 'middle' }}
-        >
-          {record.nickname}
-        </Avatar>
-      )
+          >
+            {record.nickName[0]}
+          </Avatar>
+        );
+      }
     },{
       title: '用户名称',
       dataIndex: 'name',

+ 68 - 25
src/routes/Order/Add/index.js

@@ -1,5 +1,5 @@
 import React, { Component } from 'react';
-import { Popover, Card, List, Form, Table, Button, Input, InputNumber, Select, Dropdown, Menu, Icon } from 'antd';
+import { Popover, Modal, Card, List, Form, Table, Button, Input, InputNumber, Radio, Dropdown, Menu, Icon } from 'antd';
 import { connect } from 'dva';
 import { routerRedux } from 'dva/router';
 
@@ -90,6 +90,12 @@ export default class CreateOrder extends Component {
     this.props.dispatch({ type: 'orderDetail/hideProductModal' });
   }
 
+  handleListItemDel = (record) => {
+    Modal.confirm({
+      title: '确定从清单中删除此商品?',
+    });
+  }
+
   render() {
     const { orderItem, terminal, mproduct, form } = this.props;
     const { terminalModalShow, productModalShow } = orderItem;
@@ -130,9 +136,33 @@ export default class CreateOrder extends Component {
         name: '小学一年级语文课程包',
         type: 'PACKAGE',
         coverUrl: 'https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png',
-        goods: [{
-
-        }]
+        goods: [],
+        children: [{
+          id: 'p1',
+          code: 'P-01',
+          name: '语文一年级上册',
+          type: 'COURSE',
+          coverUrl: 'https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png',
+          goods: [{
+            id: '1',
+            chargeUnit: '年',
+            cpPrice: 2000,
+            merchantPrice: 3000,
+            terminalPrice: 4000,
+          },{
+            id: '2',
+            chargeUnit: '半年',
+            cpPrice: 1000,
+            merchantPrice: 2000,
+            terminalPrice: 3000,
+          },{
+            id: '3',
+            chargeUnit: '季',
+            cpPrice: 500,
+            merchantPrice: 800,
+            terminalPrice: 1000,
+          }],
+        }],
       }],
     };
     const { userCode, userName, campusName, merchantName, merchantId, products } = currentItem;
@@ -150,13 +180,18 @@ export default class CreateOrder extends Component {
     };
 
     const columns = [{
-      title: '产品信息',
-      dataIndex: 'coverUrl',
+      title: '序号',
+      dataIndex: 'sort',
       key: 0,
+      render: (text, record, index) => index + 1,
+    },{
+      title: '图片',
+      dataIndex: 'coverUrl',
+      key: 1,
       render: (text, record) => (
         <Popover
           content={
-            <Card hoverable style={{ width: 350, height: 550 }} cover={<img alt="" src={text}/>}>
+            <Card hoverable style={{ width: 250, height: 400 }} cover={<img alt="" src={text}/>}>
               <Card.Meta
                 title={`${record.name}/${record.code}`}
                 description={`类型: ${productType[record.type]}`}
@@ -168,14 +203,27 @@ export default class CreateOrder extends Component {
         </Popover>
       ),
     },{
+      title: '编号',
+      dataIndex: 'code',
+      key: 2,
+    },{
+      title: '名称',
+      dataIndex: 'name',
+      key: 3,
+    },{
+      title: '类型',
+      dataIndex: 'type',
+      key: 4,
+      render: (text) => productType[text],
+    },{
       title: '价格类型',
       dataIndex: 'goods',
-      key: 1,
+      key: 5,
       render: (text, record) => (
         <Dropdown
           overlay={
             <Menu>
-              {record.goods.map(item => <Menu.Item key={item.id}>{`${item.terminalPrice}¥/${item.chargeUnit}`}</Menu.Item>)}
+              {record.goods.map(item => <Menu.Item key={item.id}>{`¥${item.terminalPrice} / ${item.chargeUnit}`}</Menu.Item>)}
             </Menu>
           }
         ><a>付费方式<Icon type="down" /></a>
@@ -184,7 +232,7 @@ export default class CreateOrder extends Component {
     },{
       title: '优惠价格',
       dataIndex: 'adjustPrice',
-      key: 2,
+      key: 6,
       render: (text, record) => (
         <InputNumber
           min={0}
@@ -196,11 +244,11 @@ export default class CreateOrder extends Component {
     },{
       title: '实际售价',
       dataIndex: 'finalPrice',
-      key: 3,
+      key: 7,
     },{
       title: '数量',
       dataIndex: 'quantity',
-      key: 4,
+      key: 8,
       render: (text, record) => (
         <InputNumber
           min={1}
@@ -210,9 +258,12 @@ export default class CreateOrder extends Component {
         />
       ),
     },{
-      title: '单位',
-      dataIndex: 'chargeUnit',
-      key: 5,
+      title: '操作',
+      dataIndex: 'operation',
+      key: 9,
+      render: (text, record) => (
+        <a onClick={() => this.handleListItemDel(record)}>删除</a>
+      )
     }];
 
     return (
@@ -240,8 +291,9 @@ export default class CreateOrder extends Component {
             <Form.Item label="添加商品" {...formItemLayout}>
               <Button onClick={this.handleProductSelectBtnClick} disabled={merchantId ? false : true} type="primary" size="small" icon="plus-circle-o">添加</Button>
               <Table
+                bordered
                 size="large"
-                className={styles.table}
+                scroll={{ x: 1200 }}
                 rowKey={record => record.id}
                 pagination={false}
                 columns={columns}
@@ -280,15 +332,6 @@ export default class CreateOrder extends Component {
           />
         </Card>
         <FooterToolbar>
-          <Dropdown.Button
-            overlay={
-              <Menu>
-                <Menu.Item>¥1000 / 年</Menu.Item>
-                <Menu.Item>¥2000 / 季</Menu.Item>
-              </Menu>
-            }
-          >
-          </Dropdown.Button>
           <Button>取消</Button>
           <Button type="primary">完成</Button>
         </FooterToolbar>

+ 46 - 34
src/routes/Order/Add/index.less

@@ -7,60 +7,72 @@
     .ant-table-thead > tr > th {
 
       &:nth-child(1) {
-        width: 15%;
+        width: 10%;
       }
 
       &:nth-child(2) {
-        width: 20%;
-      }
-
-      &:nth-child(3) {
-        width: 20%;
+        width: 10%;
       }
 
       &:nth-child(4) {
-        width: 20%;
+        width: 10%;
       }
 
       &:nth-child(5) {
-        width: 15%;
+        width: 10%;
       }
 
       &:nth-child(6) {
         width: 10%;
       }
-    }
 
-    .ant-table-thead {
-      & > tr {
-        transition: none;
-        display: block;
-
-        & > th {
-          display: inline-flex;
-          align-items: left;
-          justify-content: left;
-        }
+      &:nth-child(7) {
+        width: 10%;
       }
-    }
 
-    .ant-table-tbody {
-      & > tr {
-        transition: none;
-        display: block;
-        border-bottom: 1px solid #f5f5f5;
+      &:nth-child(8) {
+        width: 10%;
+      }
 
-        & > td {
-          border-bottom: none;
-          display: inline-flex;
-          align-items: left;
-          justify-content: left;
-        }
+      &:nth-child(9) {
+        width: 10%;
+      }
 
-        &.ant-table-expanded-row-level-1 > td {
-          height: auto;
-        }
+      &:nth-child(10) {
+        width: 10%;
       }
     }
+
+    // .ant-table-thead {
+    //   & > tr {
+    //     transition: none;
+    //     display: block;
+    //
+    //     & > th {
+    //       display: inline-flex;
+    //       align-items: left;
+    //       justify-content: left;
+    //     }
+    //   }
+    // }
+
+    // .ant-table-tbody {
+    //   & > tr {
+    //     transition: none;
+    //     display: block;
+    //     border-bottom: 1px solid #f5f5f5;
+    //
+    //     & > td {
+    //       border-bottom: none;
+    //       display: inline-flex;
+    //       align-items: left;
+    //       justify-content: left;
+    //     }
+    //
+    //     &.ant-table-expanded-row-level-1 > td {
+    //       height: auto;
+    //     }
+    //   }
+    // }
   }
 }

+ 6 - 4
src/routes/Resource/gallery/modal.js

@@ -19,7 +19,7 @@ export default class ModalForm extends PureComponent {
         format: suffix,
         size: file.size,
         code: name,
-        path: `${signature.dir}${fileName}`,
+        path: `${fileName}`,
         url: `${signature.host}/${signature.dir}${fileName}`,
       };
       message.success('图片上传成功!');
@@ -45,11 +45,13 @@ export default class ModalForm extends PureComponent {
       if (errors) return;
       const data = { ...getFieldsValue() };
       if (modalType === 'update') {
-        const { status } = item;
-        data.id = item.id;
+        const { id, status, type } = item;
+        data.id = id;
+        data.type = type;
         data.status = status;
       } else if (modalType === 'create') {
-        data.status = Codes.CODE_NORMAL;
+        data.status = Codes.CODE_NORMAL; // 创建图片,默认状态status="NORAML"
+        data.type = Codes.CODE_IMAGE;  // 创建图片,默认类型type=3
       }
       onOk(data);
     });

+ 2 - 1
src/routes/Resource/gallery/table.js

@@ -33,8 +33,9 @@ export default class TableList extends PureComponent {
       key: 'url',
       render: (text, record) => (
         <Popover
-          content={<img alt="" src={record.url} width={350} />}
+          content={<img alt="" src={record.url} width={250} />}
           title={record.name}
+          placement="top"
         >
           <img alt="" src={record.url} width={70} />
         </Popover>

+ 4 - 3
src/routes/Tag/Edit/index.js

@@ -67,12 +67,11 @@ export default class TagDetail extends PureComponent {
       if (operType === 'create') {
         data = { ...getFieldsValue(), status: Codes.CODE_NORMAL };
       } else if (operType === 'update') {
-        const { id, groupId, itemList, name, type, status } = currentItem;
+        const { id, groupId, itemList, name, status } = currentItem;
         data = {
           id,
           groupId,
           name,
-          type,
           status,
           itemList: (itemList || []).map(item => item.id),
           ...getFieldsValue(),
@@ -157,8 +156,9 @@ export default class TagDetail extends PureComponent {
                 {getFieldDecorator('name', {
                   rules: [{ required: true, type: 'string', message: "名称为必填项!" }],
                   initialValue: name,
-                })(<Input />)}
+                })(<Input placeholder="请输入" />)}
               </Form.Item>
+              {/* 标签类型已抽象为标签组
               <Form.Item label="标签类型:" hasFeedback {...formItemLayout}>
                 {getFieldDecorator('type', {
                   rules: [{ required: true, type: 'string', message: "编号为必填项!" }],
@@ -169,6 +169,7 @@ export default class TagDetail extends PureComponent {
                   </Radio.Group>
                 )}
               </Form.Item>
+              */}
               <Form.Item label="所属标签组" hasFeedback {...formItemLayout}>
                 {getFieldDecorator('groupId', {
                   rules: [{ required: true, type: 'string', message: "标签组为必选项!" }],

+ 1 - 1
src/routes/TagGroup/Edit/index.js

@@ -178,7 +178,7 @@ export default class GroupDetail extends PureComponent {
                   initialValue: name,
                 })(<Input placeholder="请输入" />)}
               </FormItem>
-              <FormItem label="渠道平台" hasFeedback {...formItemLayout}>
+              <FormItem label="渠道名称" hasFeedback {...formItemLayout}>
                 {getFieldDecorator('merchantId', {
                   rules: [{ required: true, type: 'string', message: "渠道为必选项!" }],
                   initialValue: merchantId,

+ 46 - 26
src/routes/Ware/Edit/index.js

@@ -6,7 +6,7 @@ import { connect } from 'dva';
 import { Spin, Popover, Badge, Table, Radio, Card, Form, Input, Icon, Button, Select } from 'antd';
 import PageHeaderLayout from '../../../layouts/PageHeaderLayout';
 import ResourceSelectSortModal from './modal';
-import { Codes, resourceType } from '../../../utils/config';
+import { Codes, resourceType, pageSize } from '../../../utils/config';
 
 const FormItem = Form.Item;
 const Option = Select.Option;
@@ -18,19 +18,19 @@ const { TextArea } = Input;
   resource: state.resource,
 }))
 export default class WareDetail extends PureComponent {
-  static propTypes = {
-    wareDetail: PropTypes.object,
-  };
+  state = { resType: [String(Codes.CODE_IMAGE)] }; // 资源类型[默认为图片资源]
 
   // 展示模态框 - 加载第一页数据
   handleModalShow = () => {
     const { dispatch } = this.props;
+    const { resType } = this.state;
     dispatch({ type: 'wareDetail/showModal' });
     dispatch({
       type: 'resource/query',
       payload: {
         pageNo: 1,
-        pageSize: 10,
+        pageSize,
+        type: resType[0],
       }
     });
   }
@@ -53,40 +53,51 @@ export default class WareDetail extends PureComponent {
   // 搜索
   handleModalSearch = (data) => {
     const { dispatch } = this.props;
+    const { resType } = this.state;
     const newData = { ...data };
     if (newData.keyword) {
       newData[newData.field] = newData.keyword;
-      delete newData.field;
-      delete newData.keyword;
-    } else {
-      delete newData.field;
-      delete newData.keyword;
     }
+    delete newData.field;
+    delete newData.keyword;
+
     dispatch({
       type: 'resource/query',
-      payload: { ...newData, pageNo: 1, pageSize: 10 },
+      payload: {
+        ...newData,
+        type: resType[0],
+        pageNo: 1,
+        pageSize,
+      },
     });
   }
 
   // 翻页 - 资源列表
   handleModalTableOnChange = (pagination, filterArgs, filters) => {
+    // 待选资源列表中资源类型过滤选项
+    const { type } = filterArgs;
+    if (Array.isArray(type) && type.length) {
+      this.setState({ resType: type.map(item => String(item)) });
+    } else {
+      this.setState({ resType: [String(Codes.CODE_IMAGE)] });
+      filterArgs.type = [String(Codes.CODE_IMAGE)];
+    }
+
+    // 整理要搜索的内容及过滤项
     const { dispatch } = this.props;
     const newFilters = { ...filters };
     if (newFilters.keyword) {
       newFilters[newFilters.field] = newFilters.keyword;
-      delete newFilters.field;
-      delete newFilters.keyword;
-    } else {
-      delete newFilters.field;
-      delete newFilters.keyword;
     }
+    delete newFilters.field;
+    delete newFilters.keyword;
+
     const getValue = obj => Object.keys(obj).map(key => obj[key]).join(',');
     const tableFilters = Object.keys(filterArgs).reduce((obj, key) => {
       const newObj = { ...obj };
       newObj[key] = getValue(filterArgs[key]);
       return newObj;
     }, {});
-
     const data = { ...newFilters, ...tableFilters, pageNo: pagination.current, pageSize: pagination.pageSize };
     Object.keys(data).map(key => data[key] ? null : delete data[key]);
     dispatch({ type: 'resource/query', payload: data });
@@ -108,11 +119,17 @@ export default class WareDetail extends PureComponent {
       }
     } = this.props;
     validateFields((errors) => {
-      if (errors) { return; }
-      const data = {
-        ...currentItem,
-        ...getFieldsValue(),
-      };
+      if (errors) return;
+
+      const { id, status, resourceList } = currentItem;
+      const data = {...getFieldsValue()}
+      data.resourceList = (resourceList || []).map(item => item.id);
+      if (operType === 'create') {
+        data.status = Codes.CODE_NORMAL;
+      } else if (operType === 'update') {
+        data.id = id;
+        data.status = status;
+      }
       dispatch({
         type: `wareDetail/${operType}`,
         payload: data,
@@ -123,9 +140,9 @@ export default class WareDetail extends PureComponent {
               search: queryString.stringify(filters),
             })
           );
+          resetFields();
         }
-      })
-      resetFields();
+      });
     });
   }
 
@@ -141,7 +158,9 @@ export default class WareDetail extends PureComponent {
   }
 
   render() {
-    const { dispatch, form: { getFieldDecorator }, wareDetail, resource } = this.props;
+    const { dispatch, wareDetail, resource, form } = this.props;
+    const { resType } = this.state;
+    const { getFieldDecorator } = form;
     const { itemLoading, currentItem, filters, modalVisible } = wareDetail;
     const { resourceList, name, code, digest } = currentItem;
     const { list, listLoading, pagination } = resource;
@@ -244,7 +263,7 @@ export default class WareDetail extends PureComponent {
                     emptyText: <span style={{ color: "#C6D0D6" }}>&nbsp;&nbsp;<Icon type="frown-o"/>
                       该课件下不包含任何内容,请选择图片或视频!</span>
                   }}
-                  dataSource={resourceList}
+                  dataSource={resourceList || []}
                   columns={subTableColumns}
                   rowKey={record => record.id}
                   bordered
@@ -268,6 +287,7 @@ export default class WareDetail extends PureComponent {
               fsTableDataSource={list}
               fsTableLoading={listLoading}
               fsTablePagination={pagination}
+              fsFilteredValue={resType}
               fsTableOnChange={this.handleModalTableOnChange}
             />
           </Card>

+ 21 - 5
src/routes/Ware/Edit/modal.js

@@ -13,7 +13,17 @@ export default class ResourceSelectSortModal extends PureComponent {
   };
 
   render() {
-    const { selTableData, modalVisible, rowKeyName, onCancel, onOk, onSearch, ...fsTableOpts } = this.props;
+    const {
+      selTableData,
+      modalVisible,
+      rowKeyName,
+      fsFilteredValue,
+      onCancel,
+      onOk,
+      onSearch,
+      ...fsTableOpts,
+    } = this.props;
+
 
     const modalProps = {
       title: '选择课件资源',
@@ -53,9 +63,11 @@ export default class ResourceSelectSortModal extends PureComponent {
         dataIndex: 'url',
         key: 'url',
         render: (text, record) => (
-          record.type !== Codes.CODE_IMAGE ? <Icon type="video-camera" style={{ fontSize: 40}} /> :
+          record.type !== Codes.CODE_IMAGE ?
+            <Icon type="video-camera" style={{ fontSize: 40}} />
+          :
             <Popover
-              content={<img alt="" src={record.url} width={350} />}
+              content={<img alt="" src={record.url} width={250} />}
               title={record.name}
             >
               <img alt="" src={record.url} width={70} />
@@ -85,10 +97,13 @@ export default class ResourceSelectSortModal extends PureComponent {
         dataIndex: 'url',
         key: 'url',
         render: (text, record) => (
-          record.type !== Codes.CODE_IMAGE ? <Icon type="video-camera" style={{ fontSize: 40}} /> :
+          record.type !== Codes.CODE_IMAGE ?
+            <Icon type="video-camera" style={{ fontSize: 40}} />
+          :
             <Popover
-              content={<img alt="" src={record.url} width={350} />}
+              content={<img alt="" src={record.url} width={250} />}
               title={record.name}
+              placement="top"
             >
               <img alt="" src={record.url} width={70} />
             </Popover>
@@ -108,6 +123,7 @@ export default class ResourceSelectSortModal extends PureComponent {
         render: (text, record) => (resourceType[record.type]),
         filters: Object.keys(resourceType).map(key => ({ text: resourceType[key], value: key })),
         filterMultiple: false,
+        filteredValue: fsFilteredValue,
       }],
       ...fsTableOpts,
     }

+ 1 - 1
src/utils/config.js

@@ -30,7 +30,7 @@ Codes.CODE_SEASON = '季';
 Codes.CODE_ITEM = '件';
 
 module.exports = {
-  apiHost: 'http://47.95.197.36:8500',
+  apiHost: 'http://tt-cms.api.ai160.com',
   // apiHost: '/api',
   // 每页返回数据量
   pageSize: 10,