Browse Source

rich editor

albertshaw 7 years ago
parent
commit
027d554e63

+ 8 - 0
js/component/manageCenter/set/content.jsx

@@ -45,6 +45,14 @@ class Content extends Component {
                     });
                 });
                 break;
+            case 'site':
+                require.ensure([], () => {
+                    const Site = require('./site').default;
+                    this.setState({
+                        component: <Site />,
+                    });
+                });
+                break;
         };
         window.location.hash = key;
     }

+ 3 - 0
js/component/manageCenter/set/leftTab.jsx

@@ -38,6 +38,9 @@ const LeftTab = React.createClass({
                 <Menu.Item key="role">
                     角色控制
                 </Menu.Item>
+                <Menu.Item key="site">
+                    站点设置
+                </Menu.Item>
             </Menu>
         );
     }

+ 24 - 0
js/component/manageCenter/set/site.jsx

@@ -0,0 +1,24 @@
+import React from 'react';
+import theme from 'react-quill/dist/quill.snow.css'
+import ReactQuill from 'react-quill'
+
+class Site extends React.Component {
+  constructor(props) {
+    super(props)
+    this.state = { text: '' }
+    this.handleChange = this.handleChange.bind(this)
+  }
+
+  handleChange(value) {
+    this.setState({ text: value })
+  }
+
+  render() {
+    return (
+      <ReactQuill value={this.state.text}
+                  onChange={this.handleChange} />
+    )
+  }
+}
+
+export default Site;

+ 2 - 1
package.json

@@ -53,6 +53,7 @@
     "jspdf": "^1.3.3",
     "prop-types": "^15.5.10",
     "react": "^15.4.1",
-    "react-dom": "^15.4.1"
+    "react-dom": "^15.4.1",
+    "react-quill": "^1.0.0"
   }
 }

+ 50 - 40
webpack/module.config.js

@@ -3,55 +3,65 @@ const ExtractTextPlugin = require("extract-text-webpack-plugin");
 module.exports = function (theme) {
   return {
     rules: [{
-        test: /\.jsx?$/,
-        exclude: /node_modules/,
-        use: {
-          loader: 'babel-loader',
-          options: {
-            "presets": ["es2015", "react"],
-            "plugins": [
-              ["antd", {
-                "style": true
-              }]
-            ]
-          }
+      test: /\.jsx?$/,
+      exclude: /node_modules/,
+      use: {
+        loader: 'babel-loader',
+        options: {
+          "presets": ["es2015", "react"],
+          "plugins": [
+            ["antd", {
+              "style": true
+            }]
+          ]
         }
-      },
-      {
-        test: /\.less$/,
-        use: ExtractTextPlugin.extract({
-          fallback: 'style-loader',
-          use: [{
-            loader: 'css-loader',
-            options: {
-              importLoaders: 1
-            }
-          }, {
-            loader: 'less-loader',
-            options: {
-              modifyVars: theme
-            }
-          }]
-        })
-      }, {
-        test: /\.(png|jpg)$/,
+      }
+    }, {
+      test: /\.css$/,
+      use: ExtractTextPlugin.extract({
+        fallback: 'style-loader',
         use: [{
-          loader: 'url-loader',
+          loader: 'css-loader',
           options: {
-            limit: 10240,
-            name: '[path][name].[ext]'
+            importLoaders: 1
           }
         }]
-      }, {
-        test: /\.(woff|svg|eot|ttf)$/,
+      })
+    }, {
+      test: /\.less$/,
+      use: ExtractTextPlugin.extract({
+        fallback: 'style-loader',
         use: [{
-          loader: 'url-loader',
+          loader: 'css-loader',
+          options: {
+            importLoaders: 1
+          }
+        }, {
+          loader: 'less-loader',
           options: {
-            limit: 1,
-            name: '[path][name].[ext]'
+            modifyVars: theme
           }
         }]
-      }
+      })
+    }, {
+      test: /\.(png|jpg)$/,
+      use: [{
+        loader: 'url-loader',
+        options: {
+          limit: 10240,
+          name: '[path][name].[ext]'
+        }
+      }]
+    }, {
+      test: /\.(woff|svg|eot|ttf)$/,
+      use: [{
+        loader: 'url-loader',
+        options: {
+          limit: 1,
+          name: '[path][name].[ext]'
+        }
+      }]
+    }
     ]
   };
 }