Browse Source

fix(admin): 修复页面逻辑

Go 5 years ago
parent
commit
ef59be408d

+ 7 - 89
front/project/admin/routes/course/dataDetail/page.js

@@ -6,10 +6,10 @@ import Page from '@src/containers/Page';
 import Block from '@src/components/Block';
 import Block from '@src/components/Block';
 import Radio from '@src/components/Radio';
 import Radio from '@src/components/Radio';
 import TreeSelect from '@src/components/TreeSelect';
 import TreeSelect from '@src/components/TreeSelect';
-import EditTableCell from '@src/components/EditTableCell';
+// import EditTableCell from '@src/components/EditTableCell';
 // import ActionLayout from '@src/layouts/ActionLayout';
 // import ActionLayout from '@src/layouts/ActionLayout';
 // import TableLayout from '@src/layouts/TableLayout';
 // import TableLayout from '@src/layouts/TableLayout';
-import { formatFormError, formatTreeData, getMap, formatDate } from '@src/services/Tools';
+import { formatFormError, formatTreeData, getMap } from '@src/services/Tools';
 import { asyncSMessage } from '@src/services/AsyncTools';
 import { asyncSMessage } from '@src/services/AsyncTools';
 import { SwitchSelect, DataType } from '../../../../Constant';
 import { SwitchSelect, DataType } from '../../../../Constant';
 // import { User } from '../../../stores/user';
 // import { User } from '../../../stores/user';
@@ -18,85 +18,8 @@ import { Course } from '../../../stores/course';
 import { System } from '../../../stores/system';
 import { System } from '../../../stores/system';
 
 
 export default class extends Page {
 export default class extends Page {
-  initState() {
-    return { history: false };
-  }
-
   init() {
   init() {
     this.exerciseMap = {};
     this.exerciseMap = {};
-    this.actionList = [{
-      key: 'addHistory',
-      type: 'primary',
-      name: '新增版本',
-    }];
-    this.itemList = [{
-      key: 'id',
-      type: 'hidden',
-    }, {
-      key: 'time',
-      type: 'date',
-      name: '更新时间',
-    }, {
-      key: 'position',
-      type: 'input',
-      name: '更新位置',
-    }, {
-      key: 'originContent',
-      type: 'input',
-      name: '原内容',
-    }, {
-      key: 'content',
-      type: 'input',
-      name: '更改为',
-    }, {
-      key: 'version',
-      type: 'input',
-      name: '更新至',
-    }];
-    this.columns = [{
-      title: '更新时间',
-      dataIndex: 'time',
-      render: (text) => {
-        return formatDate(text);
-      },
-    }, {
-      title: '版本名称',
-      dataIndex: 'version',
-      render: (text, record) => {
-        return <EditTableCell value={text} onChange={(v) => {
-          this.changeHistory('version', record.id, v);
-        }} />;
-      },
-    }, {
-      title: '位置',
-      dataIndex: 'position',
-    }, {
-      title: '原内容',
-      dataIndex: 'originContent',
-    }, {
-      title: '更正为',
-      dataIndex: 'content',
-    }, {
-      title: '更新至',
-      dataIndex: 'version',
-    }, {
-      title: '操作',
-      dataIndex: 'handler',
-      render: (text, record) => {
-        return <div className="table-button">
-          {(
-            <a onClick={() => {
-              this.changeHistory(record);
-            }}>编辑</a>
-          )}
-          {(
-            <a onClick={() => {
-              this.deleteHistory(record);
-            }}>删除</a>
-          )}
-        </div>;
-      },
-    }];
     Exercise.dataStruct().then((result) => {
     Exercise.dataStruct().then((result) => {
       const list = result.map(row => { row.title = `${row.titleZh}`; row.value = row.id; return row; });
       const list = result.map(row => { row.title = `${row.titleZh}`; row.value = row.id; return row; });
       const tree = formatTreeData(list, 'id', 'title', 'parentId');
       const tree = formatTreeData(list, 'id', 'title', 'parentId');
@@ -129,7 +52,8 @@ export default class extends Page {
 
 
   submit() {
   submit() {
     const { form } = this.props;
     const { form } = this.props;
-    form.validateFields((err) => {
+    form.validateFields((err, values) => {
+      console.log(values);
       if (!err) {
       if (!err) {
         const data = form.getFieldsValue();
         const data = form.getFieldsValue();
         data.parentStructId = this.exerciseMap[data.structId] ? this.exerciseMap[data.structId].parentId : 0;
         data.parentStructId = this.exerciseMap[data.structId] ? this.exerciseMap[data.structId].parentId : 0;
@@ -166,13 +90,7 @@ export default class extends Page {
               required: true, message: '请选择类型',
               required: true, message: '请选择类型',
             }],
             }],
           })(
           })(
-            <Radio select={DataType} onChange={(e) => {
-              if (e.target.value === 'electron') {
-                this.refreshHistory();
-              } else {
-                this.setState({ history: false });
-              }
-            }} />,
+            <Radio select={DataType} />,
           )}
           )}
         </Form.Item>
         </Form.Item>
         <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='适合新手'>
         <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='适合新手'>
@@ -269,7 +187,7 @@ export default class extends Page {
             <Input placeholder='请输入' />,
             <Input placeholder='请输入' />,
           )}
           )}
         </Form.Item>
         </Form.Item>
-        <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='试用页码'>
+        {/* <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='试用页码'>
           <Row>
           <Row>
             <Col span={3}>
             <Col span={3}>
               <Form.Item>
               <Form.Item>
@@ -287,7 +205,7 @@ export default class extends Page {
               </Form.Item>
               </Form.Item>
             </Col>
             </Col>
           </Row>
           </Row>
-        </Form.Item>
+        </Form.Item> */}
       </Form>
       </Form>
     </Block>;
     </Block>;
   }
   }

+ 18 - 8
front/project/admin/routes/course/experienceDetail/page.js

@@ -21,6 +21,10 @@ while (tmp <= maxScore) {
 }
 }
 
 
 export default class extends Page {
 export default class extends Page {
+  initState() {
+    return { showNickname: true };
+  }
+
   initData() {
   initData() {
     const { id } = this.params;
     const { id } = this.params;
     const { form } = this.props;
     const { form } = this.props;
@@ -33,7 +37,12 @@ export default class extends Page {
 
 
     handler
     handler
       .then(result => {
       .then(result => {
-        generateSearch('userId', {}, this, (search) => {
+        if (result.userId) {
+          this.setState({ showNickname: false });
+        }
+        generateSearch('userId', {
+          allowClear: true,
+        }, this, (search) => {
           return User.list(search);
           return User.list(search);
         }, (row) => {
         }, (row) => {
           return {
           return {
@@ -68,6 +77,7 @@ export default class extends Page {
 
 
   renderBase() {
   renderBase() {
     const { getFieldDecorator } = this.props.form;
     const { getFieldDecorator } = this.props.form;
+    const { showNickname } = this.state;
     return <Block>
     return <Block>
       <Form>
       <Form>
         {getFieldDecorator('id')(<input hidden />)}
         {getFieldDecorator('id')(<input hidden />)}
@@ -76,26 +86,26 @@ export default class extends Page {
             rules: [
             rules: [
               { required: true, message: '请输入名称' },
               { required: true, message: '请输入名称' },
             ],
             ],
-          })(
-            <Input placeholder='请输入名称' />,
-          )}
+          })(<Input placeholder='请输入名称' />)}
         </Form.Item>
         </Form.Item>
         <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='作者'>
         <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='作者'>
           {getFieldDecorator('userId', {
           {getFieldDecorator('userId', {
             rules: [
             rules: [
-              { required: true, message: '请选择作者' },
+              { required: !showNickname, message: '请选择作者' },
             ],
             ],
           })(
           })(
-            <Select {...this.state.userId} placeholder='请选择作者' />,
+            <Select {...this.state.userId} onChange={(value) => {
+              this.setState({ showNickname: !value });
+            }} placeholder='请选择作者' />,
           )}
           )}
         </Form.Item>
         </Form.Item>
         <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='昵称'>
         <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='昵称'>
           {getFieldDecorator('nickname', {
           {getFieldDecorator('nickname', {
             rules: [
             rules: [
-              { required: true, message: '请输入昵称' },
+              { required: showNickname, message: '请输入昵称' },
             ],
             ],
           })(
           })(
-            <Input placeholder='输入昵称' />,
+            <Input disabled={!showNickname} placeholder='输入昵称' />,
           )}
           )}
         </Form.Item>
         </Form.Item>
         <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='作者信息'>
         <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='作者信息'>

+ 2 - 1
front/project/admin/routes/course/package/page.js

@@ -5,7 +5,7 @@ import Block from '@src/components/Block';
 // import FilterLayout from '@src/layouts/FilterLayout';
 // import FilterLayout from '@src/layouts/FilterLayout';
 import ActionLayout from '@src/layouts/ActionLayout';
 import ActionLayout from '@src/layouts/ActionLayout';
 import TableLayout from '@src/layouts/TableLayout';
 import TableLayout from '@src/layouts/TableLayout';
-import { getMap, formatTreeData } from '@src/services/Tools';
+import { getMap, formatTreeData, flattenObject } from '@src/services/Tools';
 import { asyncSMessage, asyncForm } from '@src/services/AsyncTools';
 import { asyncSMessage, asyncForm } from '@src/services/AsyncTools';
 import { ServiceKey, ServiceParamMap, SwitchSelect } from '../../../../Constant';
 import { ServiceKey, ServiceParamMap, SwitchSelect } from '../../../../Constant';
 import { Course } from '../../../stores/course';
 import { Course } from '../../../stores/course';
@@ -147,6 +147,7 @@ export default class extends Page {
   }
   }
 
 
   editAction(row) {
   editAction(row) {
+    row = flattenObject(row);
     asyncForm('编辑', this.itemList, row, data => {
     asyncForm('编辑', this.itemList, row, data => {
       return Course.editPackage(data).then(() => {
       return Course.editPackage(data).then(() => {
         asyncSMessage('编辑成功!');
         asyncSMessage('编辑成功!');

+ 4 - 4
front/project/admin/routes/course/preview/page.js

@@ -25,21 +25,21 @@ export default class extends Page {
       type: 'primary',
       type: 'primary',
       name: '创建视频作业',
       name: '创建视频作业',
       render: (item) => {
       render: (item) => {
-        return <Link to='/subject/preview/detail?module=video'><Button type='primary'>{item.name}</Button></Link>;
+        return <Link to='/course/preview/detail?module=video'><Button type='primary'>{item.name}</Button></Link>;
       },
       },
     }, {
     }, {
       key: 'addOnline',
       key: 'addOnline',
       type: 'primary',
       type: 'primary',
       name: '创建小班作业',
       name: '创建小班作业',
       render: (item) => {
       render: (item) => {
-        return <Link to='/subject/preview/detail?module=online'><Button type='primary'>{item.name}</Button></Link>;
+        return <Link to='/course/preview/detail?module=online'><Button type='primary'>{item.name}</Button></Link>;
       },
       },
     }, {
     }, {
       key: 'addVs',
       key: 'addVs',
       type: 'primary',
       type: 'primary',
       name: '创建1vs1作业',
       name: '创建1vs1作业',
       render: (item) => {
       render: (item) => {
-        return <Link to='/subject/preview/detail?module=vs'><Button type='primary'>{item.name}</Button></Link>;
+        return <Link to='/course/preview/detail?module=vs'><Button type='primary'>{item.name}</Button></Link>;
       },
       },
     }];
     }];
 
 
@@ -89,7 +89,7 @@ export default class extends Page {
       render: (text, record) => {
       render: (text, record) => {
         return <div className="table-button">
         return <div className="table-button">
           {(
           {(
-            <Link to={`/subject/preview/detail/${record.id}`}>编辑</Link>
+            <Link to={`/course/preview/detail/${record.id}`}>编辑</Link>
           )}
           )}
         </div>;
         </div>;
       },
       },

+ 2 - 1
front/project/admin/routes/user/list/page.js

@@ -34,13 +34,14 @@ export default class extends Page {
       type: 'select',
       type: 'select',
       name: '国际码',
       name: '国际码',
       select: MobileArea,
       select: MobileArea,
+      required: true,
     }, {
     }, {
       key: 'mobile',
       key: 'mobile',
       type: 'input',
       type: 'input',
       name: '手机号',
       name: '手机号',
       placeholder: '请输入',
       placeholder: '请输入',
+      required: true,
       option: {
       option: {
-        rules: [{ required: true, message: '请输入手机号' }],
         normalize: (value) => {
         normalize: (value) => {
           if (this.mobile === value) return value;
           if (this.mobile === value) return value;
           if (this.timeout) {
           if (this.timeout) {