UNPKG

joywok-material-components

Version:

<h1 align="center"> Joywok Material Components </h1>

584 lines (537 loc) 23.2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _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; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactDom = require('react-dom'); var _reactDom2 = _interopRequireDefault(_reactDom); var _redux = require('redux'); var _reactRedux = require('react-redux'); var _dva = require('dva'); var _request = require('./../utils/request'); var _request2 = _interopRequireDefault(_request); var _aloneTip = require('./../tips/aloneTip'); var _aloneTip2 = _interopRequireDefault(_aloneTip); var _Reply = require('./../shareAs/Reply'); var _Reply2 = _interopRequireDefault(_Reply); var _Emoji = require('./../shareAs/Emoji'); var _Emoji2 = _interopRequireDefault(_Emoji); var _Dialog = require('@material-ui/core/Dialog'); var _Dialog2 = _interopRequireDefault(_Dialog); var _DialogTitle = require('@material-ui/core/DialogTitle'); var _DialogTitle2 = _interopRequireDefault(_DialogTitle); var _Slide = require('@material-ui/core/Slide'); var _Slide2 = _interopRequireDefault(_Slide); var _joywokMaterialComponents = require('joywok-material-components'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _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; } function _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; } /** 组件说明:文件信息流分享 files:[], 要分享的文件list selfinfo : {} 转发者信息 */ require('./style/Index.css'); // const Transition = React.forwardRef(function Transition(props, ref) { // return <Slide direction="up" ref={ref} {...props} />; // }); var ShareAs = function (_Component) { _inherits(ShareAs, _Component); function ShareAs(props) { _classCallCheck(this, ShareAs); var _this = _possibleConstructorReturn(this, (ShareAs.__proto__ || Object.getPrototypeOf(ShareAs)).call(this, props)); _this.myref = _react2.default.createRef(); _this.reply = _react2.default.createRef(); _this.state = { selfinfo: props.selfinfo, owner: "zhangsan", val: "", open: true, spaces: spaces, spacesValue: "无分类", shareFlag: 0, downloadFlag: 0, categoryFlag: false, shareObjList: [], shareObj: [{ id: 'public', name: '公开' }], files: props.files ? props.files : [] }; return _this; } _createClass(ShareAs, [{ key: 'componentDidMount', value: function componentDidMount() {} }, { key: 'handleClose', value: function handleClose() { var self = this; self.setState({ open: false }); self.props.onClose && self.props.onClose(); } }, { key: 'onFocus', value: function onFocus() {} }, { key: 'submitComment', value: function submitComment() {} }, { key: 'onBlur', value: function onBlur() {} }, { key: 'onSubmit', value: function onSubmit() { var self = this; var body = {}; var publicFlag = false; _.map(self.state.shareObj, function (item) { if (item.id === "public") { publicFlag = true; } }); body.append = self.state.files; body.content = self.state.val; if (publicFlag) { body.share_scope = 'public'; } else { body.share_scope = 'custom'; } body.allow_download = self.state.downloadFlag; body.space = self.state.spacesValue; body.allow_share = self.state.shareFlag; console.log(body); (0, _request2.default)(basurl + '/api/as/sharefile', { method: "POST", body: JSON.stringify(body) }).then(function (resp) { if (resp.data.data && resp.data.data.errcode) { self.setState({ loading: false }); } else { self.setState({ open: false }); } }); } }, { key: 'onChangeReply', value: function onChangeReply(value) { var self = this; console.log(value); self.setState({ val: value }); } }, { key: 'openEmoji', value: function openEmoji() { var self = this; self.myref.current.open($('#fileEmoji')); } }, { key: 'emojiChange', value: function emojiChange(obj, index) { var self = this; console.log(obj, index); self.setState({ val: self.state.val + obj.text }); setTimeout(function () { self.props.onChange && self.props.onChange(self.state); self.reply.current.setValue(self.state.val); }); } }, { key: 'onCloseEmoji', value: function onCloseEmoji() { var self = this; self.setState({ emojiFlag: false }); } }, { key: 'changeForceFollow', value: function changeForceFollow(e, key) { console.log(e, key); var self = this; var obj = {}; obj[key + 'Flag'] = e.target.checked == 1 ? 1 : 0; self.setState(obj); } }, { key: 'selectSpace', value: function selectSpace(item) { var self = this; self.setState({ spacesValue: item, categoryFlag: false }); } }, { key: 'showCategory', value: function showCategory() { var self = this; self.setState({ categoryFlag: !!!self.state.categoryFlag }); } }, { key: 'closeCategory', value: function closeCategory() { var self = this; console.log(111); self.setState({ categoryFlag: false }); } }, { key: 'openShareObj', value: function openShareObj() { var self = this; self.setState({ shareObjFlag: true }); setTimeout(function () { $('#shareObjInput').focus(); }, 200); } }, { key: 'selectObj', value: function selectObj(item) { var self = this; var arr = self.state.shareObj; arr.push(item); console.log(item, arr); self.setState({ shareObj: arr, shareObjFlag: false, shareObjValue: '' }); } }, { key: 'shareObjBlur', value: function shareObjBlur(v) { console.log(v); var self = this; if (v.target.value == "") { self.setState({ shareObjFlag: false }); } } }, { key: 'delShareObj', value: function delShareObj(item) { var self = this; var arr = []; _.map(self.state.shareObj, function (i) { if (i.id != item.id) { arr.push(i); } }); self.setState({ shareObj: arr }); } }, { key: 'getObj', value: function getObj(str) { var self = this; // self.setState({ // shareObjListFlag: true, // shareObjFlag: true, // shareObjValue: str // }) // return; (0, _request2.default)(basurl + '/suggestion/index?s=' + str, { method: "GET" }).then(function (resp) { if (resp.data.data && resp.data.data.errcode) { self.setState({ loading: false }); } else { self.setState({ shareObjList: resp.data.data, shareObjListFlag: true, shareObjFlag: true, shareObjValue: str }); } }); } }, { key: 'shareObjOnChange', value: function shareObjOnChange(v) { var self = this; self.getObj(v.target.value); } }, { key: 'shareObjFocus', value: function shareObjFocus(v) { var self = this; self.setState({ shareObjFlag: true, shareObjListFlag: true }); } }, { key: 'render', value: function render() { var _React$createElement; var self = this; // if(!self.state.selfinfo){ // return <div>请传入正确的参数</div> // } var style = {}; var length = self.state.files.length; style = { width: 210 * length + 'px' }; var offset = void 0; if (self.state.categoryFlag) { var el = $('.category'); if (el && el.offset()) { offset = el.offset(); } } var offsetShareObj = void 0; if (self.state.shareObjFlag) { console.log(1111); var _el = $('.share-obj-input'); if (_el && _el.offset()) { offsetShareObj = _el.offset(); if (offsetShareObj.top > 210) { offsetShareObj.top = offsetShareObj.top - 210; } else { offsetShareObj.top = 10; } offsetShareObj.left = offsetShareObj.left - 50; } } var submitFlag = true; if (self.state.val == "") { submitFlag = false; } else if (self.state.files.length == 0) { submitFlag = false; } return _react2.default.createElement( _Dialog2.default, { open: self.state.open, onClose: self.handleClose.bind(self) // TransitionComponent={Transition} , keepMounted: true, disableBackdropClick: true, disableEscapeKeyDown: true, PaperProps: { tabIndex: 0 }, className: 'jw-dialog' }, _react2.default.createElement( _DialogTitle2.default, { className: 'shareAs-title' }, '\u5206\u4EAB\u5230\u4FE1\u606F\u6D41' ), _react2.default.createElement( 'div', { className: 'shareAs-txt' }, _react2.default.createElement(_Reply2.default, { ref: self.reply, placeholder: "分享你的想法给大家", callback: { onFocus: self.onFocus.bind(self, self.props.article_id), onBlur: self.onBlur.bind(self), onChange: self.onChangeReply.bind(self) } }) ), _react2.default.createElement( 'div', { className: 'share-files' }, _react2.default.createElement( 'div', { className: 'files-form' }, '\u6B64\u6587\u4EF6\u6700\u5F00\u59CB\u7531 ', _react2.default.createElement( 'span', null, self.state.owner ), ' \u53D1\u5E03' ), self.state.files.length == 1 ? _react2.default.createElement( 'div', { className: 'file-single' }, _react2.default.createElement('img', { src: 'http://bpic.588ku.com/element_origin_min_pic/16/10/29/2ac8e99273bc079e40a8dc079ca11b1f.jpg' }) ) : _react2.default.createElement( 'div', { className: 'file-multi' }, _react2.default.createElement( 'div', { className: 'file-multi-c', style: style }, _.map(self.state.files, function (item) { return _react2.default.createElement( 'div', { className: 'file-multi-item' }, _react2.default.createElement('img', { src: item.url }) ); }) ) ) ), _react2.default.createElement( 'div', { className: 'funcs' }, _react2.default.createElement( 'div', { className: 'emoji-c' }, _react2.default.createElement('i', { 'class': 'icon icon-shareAs-emoji', id: 'fileEmoji', onClick: self.openEmoji.bind(self) }), _react2.default.createElement(_Emoji2.default, (_React$createElement = { ref: self.myref, onClose: self.onCloseEmoji.bind(self), el: $('#fileEmoji') }, _defineProperty(_React$createElement, 'onClose', self.onCloseEmoji.bind(self)), _defineProperty(_React$createElement, 'open', false), _defineProperty(_React$createElement, 'onChange', self.emojiChange.bind(self)), _React$createElement)) ), _react2.default.createElement( 'div', { className: 'category' }, _react2.default.createElement('i', { 'class': 'icon icon-shareAs-category', onClick: self.showCategory.bind(self) }), _react2.default.createElement( 'span', null, self.state.spacesValue == "无分类" ? "" : self.state.spacesValue ), _react2.default.createElement( 'div', { className: self.state.categoryFlag ? "category-c" : "category-c hide" }, _react2.default.createElement( 'div', { className: 'category-bg', onClick: self.closeCategory.bind(self) }, '\xA0' ), _react2.default.createElement( 'div', { className: self.state.categoryFlag ? "category-list" : "category-list hide", style: offset }, _.map(self.state.spaces, function (item) { var className = item == self.state.spacesValue ? "selected" : ""; return _react2.default.createElement( 'div', { className: "category-item " + className, onClick: self.selectSpace.bind(self, item) }, _react2.default.createElement('span', { className: 'jw-fd-i' }), _react2.default.createElement( 'span', null, item ) ); }) ) ) ) ), _react2.default.createElement( 'div', { className: 'share-obj' }, _react2.default.createElement( 'div', { className: 'share-obj-c' }, _.map(self.state.shareObj, function (item) { return _react2.default.createElement( 'div', { className: 'obj-item' }, item.name, ' ', _react2.default.createElement('i', { onClick: self.delShareObj.bind(self, item), className: 'ico-shareAs-del' }) ); }), self.state.shareObjFlag ? _react2.default.createElement(_joywokMaterialComponents.TextField, { className: 'share-obj-input', onChange: self.shareObjOnChange.bind(self), value: self.state.shareObjValue, onBlur: self.shareObjBlur.bind(self), id: 'shareObjInput' }) : _react2.default.createElement( 'div', { className: 'share-obj-add', onClick: self.openShareObj.bind(self) }, '+\u6DFB\u52A0' ), _react2.default.createElement( 'div', { className: self.state.shareObjListFlag ? "share-list" : "share-list hide", style: offsetShareObj }, self.state.shareObjValue == "" ? _react2.default.createElement('div', { className: 'offen-use' }) : _react2.default.createElement( 'div', { className: 'share-list-c' }, _.map(self.state.shareObjList, function (item) { var flag = true; _.map(self.state.shareObj, function (i) { if (item.id == i.id) { flag = false; } }); if (flag) { return _react2.default.createElement( 'div', { className: 'share-list-item', onClick: self.selectObj.bind(self, item) }, item.name ); } }) ) ) ) ), _react2.default.createElement( 'div', { className: 'dialog-footer' }, _react2.default.createElement( 'div', { className: 'jw-m-common-checkbox-item' }, _react2.default.createElement(_joywokMaterialComponents.Checkbox, { className: 'jw-m-common-checkbox', colorSystem: 'blue', value: 'force_follow', checked: this.state.shareFlag == 1 ? true : false, onChange: function onChange(e) { return self.changeForceFollow(e, 'share'); } }), _react2.default.createElement( 'font', null, '\u7981\u6B62\u6D4F\u89C8\u8005\u5206\u4EAB' ) ), _react2.default.createElement( 'div', { className: 'jw-m-common-checkbox-item' }, _react2.default.createElement(_joywokMaterialComponents.Checkbox, { className: 'jw-m-common-checkbox', colorSystem: 'blue', value: 'force_follow', checked: this.state.downloadFlag == 1 ? true : false, onChange: function onChange(e) { return self.changeForceFollow(e, 'download'); } }), _react2.default.createElement( 'font', null, '\u7981\u6B62\u6D4F\u89C8\u8005\u4E0B\u8F7D' ) ), submitFlag ? _react2.default.createElement( _joywokMaterialComponents.Button, { className: 'sure', style: { "background": "#3297fc" }, onClick: self.onSubmit.bind(self) }, '\u53D1\u5E03' ) : _react2.default.createElement( _joywokMaterialComponents.Button, { className: 'sure', style: { "background": "#EEEEEE" }, disabled: 'disabled' }, '\u53D1\u5E03' ), _react2.default.createElement( _joywokMaterialComponents.Button, { onClick: self.handleClose.bind(self) }, '\u53D6\u6D88' ) ) ); } }]); return ShareAs; }(_react.Component); exports.default = ShareAs;