组件演示
[{"title":"基本使用","id":"components-card-demo-basic","tags":[],"filepath":"site/components/card/demo/basic.md","directory":"components/card/demo","filename":"basic","meta":{"title":"基本使用","description":"\n","order":"0","filepath":"site/components/card/demo/basic.md","filename":"basic","directory":"components/card/demo","id":"components-card-demo-basic","template":"demos","html":"<script>(function(){'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _uxcore = require('uxcore');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n;\n\nvar Demo = function (_React$Component) {\n  _inherits(Demo, _React$Component);\n\n  function Demo(props) {\n    _classCallCheck(this, Demo);\n\n    var _this = _possibleConstructorReturn(this, (Demo.__proto__ || Object.getPrototypeOf(Demo)).call(this, props));\n\n    _this.state = {};\n    return _this;\n  }\n\n  _createClass(Demo, [{\n    key: 'render',\n    value: function render() {\n      var cardProps = {\n        title: 'Title Title Title Title Title',\n        tip: '这是一个提示',\n        icon: React.createElement(_uxcore.Icon, { usei: true, name: 'shangchuan' }),\n        extra: React.createElement(\n          'a',\n          null,\n          '\\u81EA\\u5B9A\\u4E49\\u64CD\\u4F5C'\n        ),\n        className: 'card-demo',\n        showCollapseIcon: true,\n        contentPaddingSize: 'none'\n      };\n      return React.createElement(\n        _uxcore.Card,\n        {\n          title: 'Card title',\n          extra: React.createElement(\n            'a',\n            { href: '#' },\n            'More'\n          ),\n          className: 'card-demo'\n        },\n        React.createElement(\n          'p',\n          null,\n          'Card content'\n        ),\n        React.createElement(\n          'p',\n          null,\n          'Card content'\n        ),\n        React.createElement(\n          'p',\n          null,\n          'Card content'\n        )\n      );\n    }\n  }]);\n\n  return Demo;\n}(React.Component);\n\nReactDOM.render(React.createElement(Demo, null), document.getElementById('components-card-demo-basic'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> classnames <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'classnames'</span>;;\n<span class=\"hljs-keyword\">import</span> { Card, Icon } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class</span> <span class=\"hljs-title\">Demo</span> <span class=\"hljs-keyword\">extends</span> <span class=\"hljs-title\">React</span>.<span class=\"hljs-title\">Component</span> </span>{\n\n  constructor(props) {\n    <span class=\"hljs-keyword\">super</span>(props);\n    <span class=\"hljs-keyword\">this</span>.state = {\n    };\n  }\n\n  render() {\n    <span class=\"hljs-keyword\">const</span> cardProps = {\n      title: <span class=\"hljs-string\">'Title Title Title Title Title'</span>,\n      tip: <span class=\"hljs-string\">'这是一个提示'</span>,\n      icon: <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Icon</span> <span class=\"hljs-attribute\">usei</span> <span class=\"hljs-attribute\">name</span>=<span class=\"hljs-value\">\"shangchuan\"</span> /></span>,\n      extra: (\n        <span class=\"hljs-tag\"><<span class=\"hljs-title\">a</span>></span>\n        自定义操作\n        <span class=\"hljs-tag\"></<span class=\"hljs-title\">a</span>></span>\n      )</span>,\n      className: <span class=\"hljs-string\">'card-demo'</span>,\n      showCollapseIcon: <span class=\"hljs-literal\">true</span>,\n      contentPaddingSize: <span class=\"hljs-string\">'none'</span>,\n    };\n    <span class=\"hljs-keyword\">return</span> (\n      <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Card</span>\n        <span class=\"hljs-attribute\">title</span>=<span class=\"hljs-value\">\"Card title\"</span>\n        <span class=\"hljs-attribute\">extra</span>=<span class=\"hljs-value\">{<a</span> <span class=\"hljs-attribute\">href</span>=<span class=\"hljs-value\">\"#\"</span>></span>More<span class=\"hljs-tag\"></<span class=\"hljs-title\">a</span>></span>}\n        className=\"card-demo\"\n      >\n        <span class=\"hljs-tag\"><<span class=\"hljs-title\">p</span>></span>Card content<span class=\"hljs-tag\"></<span class=\"hljs-title\">p</span>></span>\n        <span class=\"hljs-tag\"><<span class=\"hljs-title\">p</span>></span>Card content<span class=\"hljs-tag\"></<span class=\"hljs-title\">p</span>></span>\n        <span class=\"hljs-tag\"><<span class=\"hljs-title\">p</span>></span>Card content<span class=\"hljs-tag\"></<span class=\"hljs-title\">p</span>></span>\n      <span class=\"hljs-tag\"></<span class=\"hljs-title\">Card</span>></span>\n    )</span>;\n  }\n}\n\nReactDOM.render(\n  <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Demo</span> /></span>\n, document.getElementById('components-card-demo-basic'));\n</span></code></pre></div><style type=\"text/css\">.code-box-demo {\n  background: rgba(31, 56, 88, 0.3);\n}\n\n.card-demo {\n  width: 300px;\n}\n</style><div class=\"highlight\"><pre><code class=\"css\"><span class=\"hljs-class\">.code-box-demo</span> <span class=\"hljs-rules\">{\n  <span class=\"hljs-rule\"><span class=\"hljs-attribute\">background</span>:<span class=\"hljs-value\"> <span class=\"hljs-function\">rgba</span>(<span class=\"hljs-number\">31</span>, <span class=\"hljs-number\">56</span>, <span class=\"hljs-number\">88</span>, <span class=\"hljs-number\">0.3</span>)</span></span>;\n}</span>\n\n<span class=\"hljs-class\">.card-demo</span> <span class=\"hljs-rules\">{\n  <span class=\"hljs-rule\"><span class=\"hljs-attribute\">width</span>:<span class=\"hljs-value\"> <span class=\"hljs-number\">300px</span></span></span>;\n}</span>\n</code></pre></div>"},"status":"public","toc":""},{"title":"高级使用","id":"components-card-demo-advanced","tags":[],"filepath":"site/components/card/demo/advanced.md","directory":"components/card/demo","filename":"advanced","meta":{"title":"高级使用","description":"\n","order":"1","filepath":"site/components/card/demo/advanced.md","filename":"advanced","directory":"components/card/demo","id":"components-card-demo-advanced","template":"demos","html":"<script>(function(){'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _uxcore = require('uxcore');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n;\nvar SwitchFormField = _uxcore.Form.SwitchFormField,\n    FormRow = _uxcore.Form.FormRow;\n\nvar Demo = function (_React$Component) {\n  _inherits(Demo, _React$Component);\n\n  function Demo(props) {\n    _classCallCheck(this, Demo);\n\n    var _this = _possibleConstructorReturn(this, (Demo.__proto__ || Object.getPrototypeOf(Demo)).call(this, props));\n\n    _this.state = {\n      value: {\n        showCollapseIcon: false,\n        showIcon: false,\n        hasContentPadding: true,\n        showTip: false\n      }\n    };\n    return _this;\n  }\n\n  _createClass(Demo, [{\n    key: 'render',\n    value: function render() {\n      var _this2 = this;\n\n      var _state$value = this.state.value,\n          showCollapseIcon = _state$value.showCollapseIcon,\n          showIcon = _state$value.showIcon,\n          hasContentPadding = _state$value.hasContentPadding,\n          showTip = _state$value.showTip;\n\n      var cardProps = {\n        title: 'Title Title Title Title Title',\n        tip: showTip ? '这是一个提示' : '',\n        icon: showIcon ? React.createElement(_uxcore.Icon, { usei: true, name: 'shangchuan' }) : null,\n        extra: React.createElement(\n          'a',\n          null,\n          '\\u81EA\\u5B9A\\u4E49\\u64CD\\u4F5C'\n        ),\n        className: 'card-demo',\n        showCollapseIcon: showCollapseIcon,\n        contentPaddingSize: hasContentPadding ? 'middle' : 'none'\n      };\n      return React.createElement(\n        'div',\n        null,\n        React.createElement(\n          _uxcore.Form,\n          { className: 'card-demo-form', jsxvalues: this.state.value, jsxonChange: function jsxonChange(value) {\n              _this2.setState({ value: value });\n            } },\n          React.createElement(\n            FormRow,\n            null,\n            React.createElement(SwitchFormField, { jsxname: 'showCollapseIcon', jsxlabel: '\\u5F00\\u542F\\u6298\\u53E0\\u5C55\\u5F00' }),\n            React.createElement(SwitchFormField, { jsxname: 'showIcon', jsxlabel: '\\u663E\\u793A\\u56FE\\u6807' })\n          ),\n          React.createElement(\n            FormRow,\n            null,\n            React.createElement(SwitchFormField, { jsxname: 'hasContentPadding', jsxlabel: '\\u5305\\u542B\\u5185\\u5BB9\\u8FB9\\u8DDD' }),\n            React.createElement(SwitchFormField, { jsxname: 'showTip', jsxlabel: '\\u663E\\u793A\\u63D0\\u793A\\u4FE1\\u606F' })\n          )\n        ),\n        React.createElement(\n          _uxcore.Card,\n          cardProps,\n          React.createElement(\n            'p',\n            null,\n            'Card content'\n          ),\n          React.createElement(\n            'p',\n            null,\n            'Card content'\n          ),\n          React.createElement(\n            'p',\n            null,\n            'Card content'\n          )\n        )\n      );\n    }\n  }]);\n\n  return Demo;\n}(React.Component);\n\nReactDOM.render(React.createElement(Demo, null), document.getElementById('components-card-demo-advanced'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> classnames <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'classnames'</span>;;\n<span class=\"hljs-keyword\">import</span> { Card, Icon, Form } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n\n<span class=\"hljs-keyword\">const</span> { SwitchFormField, FormRow } = Form;\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class</span> <span class=\"hljs-title\">Demo</span> <span class=\"hljs-keyword\">extends</span> <span class=\"hljs-title\">React</span>.<span class=\"hljs-title\">Component</span> </span>{\n\n  constructor(props) {\n    <span class=\"hljs-keyword\">super</span>(props);\n    <span class=\"hljs-keyword\">this</span>.state = {\n      value: {\n        showCollapseIcon: <span class=\"hljs-literal\">false</span>,\n        showIcon: <span class=\"hljs-literal\">false</span>,\n        hasContentPadding: <span class=\"hljs-literal\">true</span>,\n        showTip: <span class=\"hljs-literal\">false</span>,\n      }\n    };\n  }\n\n  render() {\n    <span class=\"hljs-keyword\">const</span> { showCollapseIcon, showIcon, hasContentPadding, showTip } = <span class=\"hljs-keyword\">this</span>.state.value;\n    <span class=\"hljs-keyword\">const</span> cardProps = {\n      title: <span class=\"hljs-string\">'Title Title Title Title Title'</span>,\n      tip: showTip ? <span class=\"hljs-string\">'这是一个提示'</span> : <span class=\"hljs-string\">''</span>,\n      icon: showIcon ? <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Icon</span> <span class=\"hljs-attribute\">usei</span> <span class=\"hljs-attribute\">name</span>=<span class=\"hljs-value\">\"shangchuan\"</span> /></span> : null,\n      extra: (\n        <span class=\"hljs-tag\"><<span class=\"hljs-title\">a</span>></span>\n        自定义操作\n        <span class=\"hljs-tag\"></<span class=\"hljs-title\">a</span>></span>\n      )</span>,\n      className: <span class=\"hljs-string\">'card-demo'</span>,\n      showCollapseIcon,\n      contentPaddingSize: hasContentPadding ? <span class=\"hljs-string\">'middle'</span> : <span class=\"hljs-string\">'none'</span>,\n    };\n    <span class=\"hljs-keyword\">return</span> (\n      <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">div</span>></span>\n        <span class=\"hljs-tag\"><<span class=\"hljs-title\">Form</span> <span class=\"hljs-attribute\">className</span>=<span class=\"hljs-value\">\"card-demo-form\"</span> <span class=\"hljs-attribute\">jsxvalues</span>=<span class=\"hljs-value\">{this.state.value}</span> <span class=\"hljs-attribute\">jsxonChange</span>=<span class=\"hljs-value\">{(value)</span> =></span> { this.setState({ value }) }}>\n          <span class=\"hljs-tag\"><<span class=\"hljs-title\">FormRow</span>></span>\n            <span class=\"hljs-tag\"><<span class=\"hljs-title\">SwitchFormField</span> <span class=\"hljs-attribute\">jsxname</span>=<span class=\"hljs-value\">\"showCollapseIcon\"</span> <span class=\"hljs-attribute\">jsxlabel</span>=<span class=\"hljs-value\">\"开启折叠展开\"</span> /></span>\n            <span class=\"hljs-tag\"><<span class=\"hljs-title\">SwitchFormField</span> <span class=\"hljs-attribute\">jsxname</span>=<span class=\"hljs-value\">\"showIcon\"</span> <span class=\"hljs-attribute\">jsxlabel</span>=<span class=\"hljs-value\">\"显示图标\"</span> /></span>\n          <span class=\"hljs-tag\"></<span class=\"hljs-title\">FormRow</span>></span>\n          <span class=\"hljs-tag\"><<span class=\"hljs-title\">FormRow</span>></span>\n            <span class=\"hljs-tag\"><<span class=\"hljs-title\">SwitchFormField</span> <span class=\"hljs-attribute\">jsxname</span>=<span class=\"hljs-value\">\"hasContentPadding\"</span> <span class=\"hljs-attribute\">jsxlabel</span>=<span class=\"hljs-value\">\"包含内容边距\"</span> /></span>\n            <span class=\"hljs-tag\"><<span class=\"hljs-title\">SwitchFormField</span> <span class=\"hljs-attribute\">jsxname</span>=<span class=\"hljs-value\">\"showTip\"</span> <span class=\"hljs-attribute\">jsxlabel</span>=<span class=\"hljs-value\">\"显示提示信息\"</span> /></span>\n          <span class=\"hljs-tag\"></<span class=\"hljs-title\">FormRow</span>></span>\n        <span class=\"hljs-tag\"></<span class=\"hljs-title\">Form</span>></span>\n        <span class=\"hljs-tag\"><<span class=\"hljs-title\">Card</span>\n          {<span class=\"hljs-attribute\">...cardProps</span>}\n        ></span>\n          <span class=\"hljs-tag\"><<span class=\"hljs-title\">p</span>></span>Card content<span class=\"hljs-tag\"></<span class=\"hljs-title\">p</span>></span>\n          <span class=\"hljs-tag\"><<span class=\"hljs-title\">p</span>></span>Card content<span class=\"hljs-tag\"></<span class=\"hljs-title\">p</span>></span>\n          <span class=\"hljs-tag\"><<span class=\"hljs-title\">p</span>></span>Card content<span class=\"hljs-tag\"></<span class=\"hljs-title\">p</span>></span>\n        <span class=\"hljs-tag\"></<span class=\"hljs-title\">Card</span>></span>\n      <span class=\"hljs-tag\"></<span class=\"hljs-title\">div</span>></span>\n    )</span>;\n  }\n}\n\nReactDOM.render(\n  <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Demo</span> /></span>\n, document.getElementById('components-card-demo-advanced'));\n</span></code></pre></div><style type=\"text/css\">.code-box-demo {\n  background: rgba(31, 56, 88, 0.3);\n}\n\n.card-demo {\n  width: 300px;\n}\n\n.card-demo-form {\n  width: 500px;\n}\n</style><div class=\"highlight\"><pre><code class=\"css\"><span class=\"hljs-class\">.code-box-demo</span> <span class=\"hljs-rules\">{\n  <span class=\"hljs-rule\"><span class=\"hljs-attribute\">background</span>:<span class=\"hljs-value\"> <span class=\"hljs-function\">rgba</span>(<span class=\"hljs-number\">31</span>, <span class=\"hljs-number\">56</span>, <span class=\"hljs-number\">88</span>, <span class=\"hljs-number\">0.3</span>)</span></span>;\n}</span>\n\n<span class=\"hljs-class\">.card-demo</span> <span class=\"hljs-rules\">{\n  <span class=\"hljs-rule\"><span class=\"hljs-attribute\">width</span>:<span class=\"hljs-value\"> <span class=\"hljs-number\">300px</span></span></span>;\n}</span>\n\n<span class=\"hljs-class\">.card-demo-form</span> <span class=\"hljs-rules\">{\n  <span class=\"hljs-rule\"><span class=\"hljs-attribute\">width</span>:<span class=\"hljs-value\"> <span class=\"hljs-number\">500px</span></span></span>;\n}</span>\n</code></pre></div>"},"status":"public","toc":""}]
import classnames from 'classnames';;
import { Card, Icon } from 'uxcore';
class Demo extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
    };
  }
  render() {
    const cardProps = {
      title: 'Title Title Title Title Title',
      tip: '这是一个提示',
      icon: <Icon usei name="shangchuan" />,
      extra: (
        <a>
        自定义操作
        </a>
      ),
      className: 'card-demo',
      showCollapseIcon: true,
      contentPaddingSize: 'none',
    };
    return (
      <Card
        title="Card title"
        extra={<a href="#">More</a>}
        className="card-demo"
      >
        <p>Card content</p>
        <p>Card content</p>
        <p>Card content</p>
      </Card>
    );
  }
}
ReactDOM.render(
  <Demo />
, document.getElementById('components-card-demo-basic'));
.code-box-demo {
  background: rgba(31, 56, 88, 0.3);
}
.card-demo {
  width: 300px;
}
import classnames from 'classnames';;
import { Card, Icon, Form } from 'uxcore';
const { SwitchFormField, FormRow } = Form;
class Demo extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: {
        showCollapseIcon: false,
        showIcon: false,
        hasContentPadding: true,
        showTip: false,
      }
    };
  }
  render() {
    const { showCollapseIcon, showIcon, hasContentPadding, showTip } = this.state.value;
    const cardProps = {
      title: 'Title Title Title Title Title',
      tip: showTip ? '这是一个提示' : '',
      icon: showIcon ? <Icon usei name="shangchuan" /> : null,
      extra: (
        <a>
        自定义操作
        </a>
      ),
      className: 'card-demo',
      showCollapseIcon,
      contentPaddingSize: hasContentPadding ? 'middle' : 'none',
    };
    return (
      <div>
        <Form className="card-demo-form" jsxvalues={this.state.value} jsxonChange={(value) => { this.setState({ value }) }}>
          <FormRow>
            <SwitchFormField jsxname="showCollapseIcon" jsxlabel="开启折叠展开" />
            <SwitchFormField jsxname="showIcon" jsxlabel="显示图标" />
          </FormRow>
          <FormRow>
            <SwitchFormField jsxname="hasContentPadding" jsxlabel="包含内容边距" />
            <SwitchFormField jsxname="showTip" jsxlabel="显示提示信息" />
          </FormRow>
        </Form>
        <Card
          {...cardProps}
        >
          <p>Card content</p>
          <p>Card content</p>
          <p>Card content</p>
        </Card>
      </div>
    );
  }
}
ReactDOM.render(
  <Demo />
, document.getElementById('components-card-demo-advanced'));
.code-box-demo {
  background: rgba(31, 56, 88, 0.3);
}
.card-demo {
  width: 300px;
}
.card-demo-form {
  width: 500px;
}
Props
| Name | Type | Required | Default | Comments | 
|---|---|---|---|---|
| prefixCls | String | No | - | 类名前缀 | 
| className | String | No | - | 额外类名 | 
| icon | React Element | No | - | 头部图标 | 
| title | React Element | No | - | 头部标题 | 
| tip | React Element | No | - | 头部提示 | 
| extra | React Element | No | - | 头部右侧额外区域,通用用于放置动作 | 
| children | React Element | No | - | 卡片内容 | 
| showCollapseIcon | Bool | No | false | 显示折叠按钮 | 
| onCollapseChange | func(collapse) | No | noop | 折叠状态发生改变时的回调,参数为是否被折叠 | 
| contentPaddingSize | string | No | 'middle' | 内容区间距,枚举值:middle/none | 
| contentHeight | number | No | - | 内容区域高度 | 
