5 文件已重命名
17个文件已修改
4个文件已添加
| | |
| | | params.data = param |
| | | } |
| | | |
| | | _url = window.btoa(_url) |
| | | _url = _url.replace(/&/ig, '%26') |
| | | // _url = window.btoa(_url) |
| | | params.url = '/trans/redirect?rd=' + _url + '&method=' + method |
| | | |
| | | return axios(params) |
| | |
| | | |
| | | let ratio = (width / height) / (clientWidth / clientHeight) |
| | | |
| | | if (ratio > 1) { |
| | | if (ratio > 1.5) { |
| | | let _height = Math.floor(height * (clientWidth / width)) |
| | | this.ImageDom.style.height = 'auto' |
| | | this.ImageDom.style.top = ((clientHeight - _height) / 2) + 'px' |
| | | } else if (ratio > 1 && ratio < 1.5) { |
| | | let _width = Math.floor(width / (height / clientHeight)) |
| | | this.ImageDom.style.width = _width + 'px' |
| | | this.ImageDom.style.left = '-' + ((_width - clientWidth) / 2) + 'px' |
| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { Form, Input } from 'antd' |
| | | import { Form } from 'antd' |
| | | |
| | | import zhCN from '@/locales/zh-CN/mob.js' |
| | | import enUS from '@/locales/en-US/mob.js' |
| | | import ColorSketch from '@/mob/colorsketch' |
| | | import FileUpload from '@/tabviews/zshare/fileupload' |
| | | import asyncComponent from '@/utils/asyncComponent' |
| | | import './index.scss' |
| | | |
| | | const ColorSketch = asyncComponent(() => import('@/mob/colorsketch')) |
| | | const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent')) |
| | | |
| | | class MobController extends Component { |
| | | static propTpyes = { |
| | |
| | | dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, |
| | | backgroundColor: '', |
| | | backgroundImage: '', |
| | | bgimages: [], |
| | | } |
| | | |
| | | UNSAFE_componentWillMount () { |
| | |
| | | |
| | | let bgImg = config.style.backgroundImage || '' |
| | | |
| | | if (bgImg && /^linear-gradient/.test(bgImg)) { |
| | | bgImg = bgImg.replace('linear-gradient(', '') |
| | | bgImg = bgImg.replace(')', '') |
| | | } else if (bgImg && /^url/.test(bgImg)) { |
| | | if (bgImg && /^url/.test(bgImg)) { |
| | | bgImg = bgImg.replace('url(', '') |
| | | bgImg = bgImg.replace(')', '') |
| | | } |
| | |
| | | this.props.updateConfig(config) |
| | | } |
| | | |
| | | /** |
| | | * @description 手动修改路径 |
| | | */ |
| | | changeImage = (e) => { |
| | | let val = e.target.value |
| | | imgChange = (val) => { |
| | | this.setState({ |
| | | backgroundImage: val |
| | | }) |
| | | |
| | | let config = fromJS(this.props.config).toJS() |
| | | val = val.replace(/^\s*|\s*$/ig, '') |
| | | |
| | | if (/^http|^\/\//.test(val)) { |
| | | val = `url(${val})` |
| | | } else if (/,/ig.test(val) && !/^(radial-gradient|linear-gradient)/ig.test(val)) { |
| | | val = `linear-gradient(${val})` |
| | | if (val) { |
| | | config.style.backgroundImage = `url(${val})` |
| | | } else { |
| | | delete config.style.backgroundImage |
| | | } |
| | | |
| | | config.style.backgroundImage = val |
| | | this.props.updateConfig(config) |
| | | } |
| | | |
| | | imgChange = (list) => { |
| | | if (list[0] && list[0].response) { |
| | | this.setState({ |
| | | bgimages: [], |
| | | backgroundImage: list[0].response |
| | | }) |
| | | |
| | | let config = fromJS(this.props.config).toJS() |
| | | config.style.backgroundImage = `url(${list[0].response})` |
| | | this.props.updateConfig(config) |
| | | } else { |
| | | this.setState({bgimages: list}) |
| | | } |
| | | } |
| | | |
| | | render () { |
| | | const { backgroundColor, backgroundImage, bgimages } = this.state |
| | | const { backgroundColor, backgroundImage } = this.state |
| | | const formItemLayout = { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | |
| | | <ColorSketch value={backgroundColor} onChange={this.changeBackgroundColor} /> |
| | | </Form.Item> |
| | | <Form.Item colon={false} label="图片"> |
| | | <FileUpload accept=".jpg,.png,.gif,.svg" value={bgimages} maxFile={2} fileType="text" onChange={this.imgChange}/> |
| | | <Input placeholder="" value={backgroundImage} autoComplete="off" onChange={this.changeImage}/> |
| | | <SourceComponent value={backgroundImage} type="" placement="right" onChange={this.imgChange}/> |
| | | </Form.Item> |
| | | </Form> |
| | | </div> |
| | |
| | | padding-top: 10px; |
| | | line-height: 35px; |
| | | } |
| | | .mk-source-wrap { |
| | | height: 32px; |
| | | .mk-source-item-info { |
| | | top: 5px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .margin-popover { |
| | |
| | | import { Form, Row, Col, Input, Select, Icon, Radio, Tooltip, InputNumber, notification } from 'antd' |
| | | |
| | | import { formRule } from '@/utils/option.js' |
| | | import FileUpload from '@/tabviews/zshare/fileupload' |
| | | import ColorSketch from '@/mob/colorsketch' |
| | | import asyncComponent from '@/utils/asyncComponent' |
| | | import './index.scss' |
| | | |
| | | const ColorSketch = asyncComponent(() => import('@/mob/colorsketch')) |
| | | const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent')) |
| | | |
| | | const cardTypeOptions = { |
| | | sequence: ['eleType', 'width'], |
| | | text: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix', 'link'], |
| | | number: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix'], |
| | | picture: ['eleType', 'datatype', 'width', 'lenWidRadio', 'link'], |
| | | video: ['eleType', 'datatype', 'width', 'aspectRatio', 'autoPlay'], |
| | | video: ['eleType', 'datatype', 'width', 'aspectRatio', 'autoPlay', 'loop'], |
| | | icon: ['eleType', 'icon', 'datatype', 'width'], |
| | | slider: ['eleType', 'datatype', 'width', 'color', 'maxValue'], |
| | | splitline: ['eleType', 'color', 'width', 'borderWidth'], |
| | |
| | | </Col> |
| | | ) |
| | | } else if (item.type === 'file') { |
| | | let filelist = [] |
| | | if (item.initVal) { |
| | | filelist = [{ |
| | | uid: `1`, |
| | | name: item.initVal.slice(item.initVal.lastIndexOf('/') + 1), |
| | | status: 'done', |
| | | url: item.initVal, |
| | | origin: true |
| | | }] |
| | | } |
| | | |
| | | fields.push( |
| | | <Col span={12} key={index}> |
| | | <Form.Item label={item.label}> |
| | | {getFieldDecorator(item.key, { |
| | | initialValue: filelist, |
| | | initialValue: item.initVal, |
| | | rules: [ |
| | | { |
| | | required: !!item.required, |
| | |
| | | } |
| | | ] |
| | | })( |
| | | <FileUpload accept=".jpg,.png,.gif,.pjp,.pjpeg,.jpeg,.jfif,.webp,.mp4,.webm,.ogg" maxFile={item.maxfile} fileType={'text'} /> |
| | | <SourceComponent type={this.state.eleType} /> |
| | | )} |
| | | </Form.Item> |
| | | </Col> |
| | |
| | | if (!err) { |
| | | values.uuid = this.props.card.uuid |
| | | values.marks = this.props.card.marks || null |
| | | |
| | | if (values.url) { |
| | | if (values.url.length > 0) { |
| | | if (values.url[0].origin && values.url[0].url) { |
| | | values.url = values.url[0].url |
| | | } else if (!values.url[0].origin && values.url[0].status === 'done' && values.url[0].response) { |
| | | values.url = values.url[0].response |
| | | } else { |
| | | values.url = '' |
| | | } |
| | | } else { |
| | | values.url = '' |
| | | } |
| | | } |
| | | |
| | | if (values.eleType === 'picture' && values.datatype === 'static' && !values.url) { |
| | | notification.warning({ |
| | |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | key: 'loop', |
| | | label: '循环播放', |
| | | initVal: card.loop || 'false', |
| | | required: false, |
| | | options: [ |
| | | { value: 'true', text: '是' }, |
| | | { value: 'false', text: '否' } |
| | | ] |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | key: 'link', |
| | | label: '链接', |
| | | initVal: card.link || '', |
New file |
| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { Popover, Button, Icon } from 'antd' |
| | | |
| | | import PopSource from './popsource' |
| | | import './index.scss' |
| | | |
| | | class CopyComponent extends Component { |
| | | static propTpyes = { |
| | | type: PropTypes.string, |
| | | placement: PropTypes.any, |
| | | onChange: PropTypes.func |
| | | } |
| | | |
| | | state = { |
| | | url: this.props.value |
| | | } |
| | | |
| | | UNSAFE_componentWillMount () { |
| | | |
| | | } |
| | | |
| | | shouldComponentUpdate (nextProps, nextState) { |
| | | return !is(fromJS(this.state), fromJS(nextState)) |
| | | } |
| | | |
| | | deleteUrl = () => { |
| | | this.setState({url: ''}) |
| | | this.props.onChange('') |
| | | } |
| | | |
| | | changePopover = (visible) => { |
| | | if (!visible && this.SourceWrap.state.url) { |
| | | this.setState({url: this.SourceWrap.state.url}) |
| | | this.props.onChange(this.SourceWrap.state.url) |
| | | } else if (visible && this.SourceWrap) { |
| | | this.SourceWrap.init() |
| | | } |
| | | } |
| | | |
| | | render () { |
| | | const { url } = this.state |
| | | const { type, placement } = this.props |
| | | let name = url ? url.slice(url.lastIndexOf('/') + 1) : '' |
| | | |
| | | return ( |
| | | <div className="mk-source-wrap"> |
| | | {!url ? <Popover overlayClassName="mk-source-manage" placement={placement || 'top'} content={<PopSource type={type} ref={dom => { this.SourceWrap = dom }} />} trigger="click" onVisibleChange={this.changePopover}> |
| | | <Button icon="upload">点击添加</Button> |
| | | </Popover> : null} |
| | | {url ? <div className="mk-source-item-info"> |
| | | <Icon type="paper-clip" /> |
| | | <a target="_blank" rel="noopener noreferrer" href={url}>{name}</a> |
| | | <Icon title="删除文件" type="delete" onClick={this.deleteUrl}/> |
| | | </div> : null} |
| | | </div> |
| | | ) |
| | | } |
| | | } |
| | | |
| | | export default CopyComponent |
New file |
| | |
| | | .mk-source-wrap { |
| | | .mk-source-item-info { |
| | | position: relative; |
| | | line-height: 1.3; |
| | | top: 3px; |
| | | .anticon-paper-clip { |
| | | position: absolute; |
| | | top: 3px; |
| | | color: rgba(0,0,0,.45); |
| | | font-size: 14px; |
| | | } |
| | | .anticon-delete { |
| | | position: absolute; |
| | | top: 3px; |
| | | right: 0px; |
| | | padding-right: 6px; |
| | | color: rgba(0,0,0,.45); |
| | | cursor: pointer; |
| | | display: none; |
| | | } |
| | | a { |
| | | display: inline-block; |
| | | width: 100%; |
| | | padding-left: 22px; |
| | | padding-right: 14px; |
| | | overflow: hidden; |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | } |
| | | } |
| | | .mk-source-item-info:hover { |
| | | background-color: #e6f7ff; |
| | | .anticon-delete { |
| | | display: inline-block; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .mk-source-manage { |
| | | z-index: 1170 !important; |
| | | } |
New file |
| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { Input, Form, Row, Col, Pagination } from 'antd' |
| | | |
| | | import asyncComponent from '@/utils/asyncComponent' |
| | | import './index.scss' |
| | | |
| | | const { TextArea } = Input |
| | | const { Search } = Input |
| | | const FileUpload = asyncComponent(() => import('@/tabviews/zshare/fileupload')) |
| | | const Video = asyncComponent(() => import('@/menu/picturecontroller/video')) |
| | | const Image = asyncComponent(() => import('@/components/Image')) |
| | | |
| | | class PopSource extends Component { |
| | | static propTpyes = { |
| | | btnlog: PropTypes.array, |
| | | handlelog: PropTypes.func |
| | | } |
| | | |
| | | state = { |
| | | url: '', |
| | | originlist: [], |
| | | list: [], |
| | | pagelist: [], |
| | | fileList: [], |
| | | searchKey: '', |
| | | pageSize: 12, |
| | | pageIndex: 1 |
| | | } |
| | | |
| | | UNSAFE_componentWillMount () { |
| | | this.init() |
| | | } |
| | | |
| | | shouldComponentUpdate (nextProps, nextState) { |
| | | return !is(fromJS(this.state), fromJS(nextState)) |
| | | } |
| | | |
| | | init = () => { |
| | | const { type } = this.props |
| | | |
| | | let originlist = [] |
| | | if (type === 'video') { |
| | | let videos = sessionStorage.getItem('app_videos') |
| | | try { |
| | | originlist = JSON.parse(videos) |
| | | } catch { |
| | | originlist = [] |
| | | } |
| | | } else { |
| | | let pictures = sessionStorage.getItem('app_pictures') |
| | | try { |
| | | originlist = JSON.parse(pictures) |
| | | } catch { |
| | | originlist = [] |
| | | } |
| | | } |
| | | |
| | | let list = originlist |
| | | let pagelist = list.filter((item, index) => index < this.state.pageSize) |
| | | |
| | | this.setState({originlist, list, url: '', searchKey: '', pageIndex: 1, fileList: [], pagelist}) |
| | | } |
| | | |
| | | changeSearch = () => { |
| | | const { originlist, pageSize, searchKey } = this.state |
| | | let list = originlist.filter(item => item.remark.indexOf(searchKey) > -1) |
| | | let pagelist = list.filter((item, index) => index < pageSize) |
| | | |
| | | this.setState({list, pagelist, pageIndex: 1}) |
| | | } |
| | | |
| | | changeValue = (e) => { |
| | | this.setState({url: e.target.value}) |
| | | } |
| | | |
| | | changeSize = (page) => { |
| | | const { list, pageSize } = this.state |
| | | let pagelist = list.filter((item, index) => index < pageSize * page && index >= pageSize * (page - 1)) |
| | | this.setState({pageIndex: page, pagelist}) |
| | | } |
| | | |
| | | changeFile = (vals) => { |
| | | this.setState({fileList: vals}) |
| | | |
| | | if (vals && vals[0] && vals[0].status === 'done' && vals[0].response) { |
| | | this.setState({url: vals[0].response}) |
| | | } |
| | | } |
| | | |
| | | selectItem = (item) => { |
| | | if (item.linkurl) { |
| | | this.setState({url: item.linkurl}) |
| | | } |
| | | } |
| | | |
| | | render () { |
| | | const { type } = this.props |
| | | const { list, url, pagelist, fileList, searchKey, pageIndex, pageSize } = this.state |
| | | |
| | | return ( |
| | | <div className="mk-source-pop-wrap"> |
| | | <Form.Item label="地址" labelCol={{xs: { span: 24 }, sm: { span: 3 }}} wrapperCol={{xs: { span: 24 }, sm: { span: 21 }}}> |
| | | <TextArea value={url} rows={2} onChange={this.changeValue}/> |
| | | </Form.Item> |
| | | <Form.Item label="上传" labelCol={{xs: { span: 24 }, sm: { span: 3 }}} wrapperCol={{xs: { span: 24 }, sm: { span: 21 }}}> |
| | | <FileUpload value={fileList} onChange={this.changeFile} accept={type === 'video' ? '.mp4,.webm,.ogg' : '.jpg,.png,.gif,.pjp,.pjpeg,.jpeg,.jfif,.webp'} maxFile={1} fileType={'text'} /> |
| | | </Form.Item> |
| | | {list.length ? <Form.Item label="系统" labelCol={{xs: { span: 24 }, sm: { span: 3 }}} wrapperCol={{xs: { span: 24 }, sm: { span: 21 }}}> |
| | | <Search value={searchKey} placeholder="" onChange={(e) => this.setState({searchKey: e.target.value})} onSearch={this.changeSearch}/> |
| | | <Row gutter={10}> |
| | | {pagelist.map(item => ( |
| | | <Col span={4} key={item.id}> |
| | | <div className="image-video-box" onClick={() => this.selectItem(item)}> |
| | | <div className="image-video-box-body"> |
| | | {type !== 'video' ? <Image url={item.linkurl} /> : null} |
| | | {type === 'video' ? <Video value={item.linkurl} /> : null} |
| | | </div> |
| | | </div> |
| | | </Col> |
| | | ))} |
| | | </Row> |
| | | {list.length > pageSize ? <Pagination size="small" current={pageIndex} pageSize={pageSize} onChange={this.changeSize} total={list.length} /> : null} |
| | | </Form.Item> : null} |
| | | </div> |
| | | ) |
| | | } |
| | | } |
| | | |
| | | export default PopSource |
New file |
| | |
| | | .mk-source-pop-wrap { |
| | | width: 500px; |
| | | padding: 15px 10px; |
| | | |
| | | .image-video-box { |
| | | position: relative; |
| | | padding-top: 75%; |
| | | cursor: pointer; |
| | | margin-bottom: 10px; |
| | | .image-video-box-body { |
| | | position: absolute; |
| | | top: 0px; |
| | | left: 0px; |
| | | right: 0px; |
| | | bottom: 0px; |
| | | .video-react-big-play-button { |
| | | display: none; |
| | | } |
| | | .video-react-control-bar { |
| | | display: none; |
| | | } |
| | | } |
| | | .image-video-box-body::after { |
| | | content: ''; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | } |
| | | } |
| | | .fileupload-form-container { |
| | | display: inline-block; |
| | | width: 50%; |
| | | } |
| | | .ant-input-search { |
| | | position: absolute; |
| | | width: 150px; |
| | | right: 0px; |
| | | top: -40px; |
| | | input.ant-input { |
| | | height: 25px; |
| | | border-color: #eeeeee; |
| | | } |
| | | } |
| | | .ant-pagination { |
| | | text-align: right; |
| | | } |
| | | } |
| | |
| | | const formItemLayout = { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 7 } |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 } |
| | | sm: { span: 18 } |
| | | } |
| | | } |
| | | return ( |
| | |
| | | import React, {Component} from 'react' |
| | | // import { fromJS } from 'immutable' |
| | | import { Modal, Button, Row, Col, Input, Icon, message, Tabs, Empty } from 'antd' |
| | | import { Modal, Button, Row, Col, Input, Icon, message, Tabs, Empty, Pagination } from 'antd' |
| | | |
| | | import Api from '@/api' |
| | | import Utils from '@/utils/utils.js' |
| | |
| | | const { Search } = Input |
| | | const { confirm } = Modal |
| | | const { TabPane } = Tabs |
| | | |
| | | const EditForm = asyncComponent(() => import('./editform')) |
| | | const Video = asyncComponent(() => import('./video')) |
| | | const Image = asyncComponent(() => import('@/components/Image')) |
| | | |
| | | class PasteController extends Component { |
| | |
| | | imageKey: '', |
| | | videoKey: '', |
| | | videos: [], |
| | | card: null |
| | | card: null, |
| | | pageSize: 12, |
| | | filpictures: [], |
| | | filvideos: [], |
| | | piclist: [], |
| | | vidlist: [], |
| | | picIndex: 1, |
| | | vidIndex: 1, |
| | | } |
| | | |
| | | trigger = () => { |
| | | let pictures = sessionStorage.getItem('app_pictures') |
| | | let videos = sessionStorage.getItem('app_videos') |
| | | |
| | | try { |
| | | pictures = JSON.parse(pictures) |
| | | videos = JSON.parse(videos) |
| | |
| | | videos = [] |
| | | } |
| | | |
| | | this.setState({visible: true, pictures, videos}) |
| | | let filpictures = pictures |
| | | let filvideos = videos |
| | | |
| | | let piclist = filpictures.filter((item, index) => index < this.state.pageSize) |
| | | let vidlist = filvideos.filter((item, index) => index < this.state.pageSize) |
| | | |
| | | this.setState({ |
| | | visible: true, |
| | | filpictures, |
| | | filvideos, |
| | | pictures, |
| | | picIndex: 1, |
| | | vidIndex: 1, |
| | | imageKey: '', |
| | | videoKey: '', |
| | | piclist, |
| | | vidlist, |
| | | videos |
| | | }) |
| | | } |
| | | |
| | | handleSource = (item) => { |
| | |
| | | if (result.status) { |
| | | if (card.typecharone === 'image') { |
| | | sessionStorage.setItem('app_pictures', JSON.stringify(result.data || [])) |
| | | this.setState({pictures: result.data || [], editvisible: false}) |
| | | this.resetPicture(result.data || []) |
| | | } else { |
| | | sessionStorage.setItem('app_videos', JSON.stringify(result.data || [])) |
| | | this.setState({videos: result.data || [], editvisible: false}) |
| | | this.resetVideo(result.data || []) |
| | | } |
| | | this.setState({editvisible: false}) |
| | | } |
| | | }) |
| | | }) |
| | |
| | | if (res.status) { |
| | | if (item.typecharone === 'image') { |
| | | sessionStorage.setItem('app_pictures', JSON.stringify(res.data || [])) |
| | | _this.setState({pictures: res.data || []}) |
| | | _this.resetPicture(res.data || []) |
| | | } else { |
| | | sessionStorage.setItem('app_videos', JSON.stringify(res.data || [])) |
| | | _this.setState({videos: res.data || []}) |
| | | _this.resetVideo(res.data || []) |
| | | } |
| | | } |
| | | resolve() |
| | |
| | | onCancel() {} |
| | | }) |
| | | } |
| | | |
| | | resetPicture = (data) => { |
| | | const { imageKey, pageSize } = this.state |
| | | |
| | | let filpictures = data.filter(item => !imageKey || item.remark.indexOf(imageKey) > -1) |
| | | let piclist = filpictures.filter((item, index) => index < pageSize) |
| | | |
| | | this.setState({picIndex: 1, filpictures, piclist, pictures: data}) |
| | | } |
| | | |
| | | resetVideo = (data) => { |
| | | const { videoKey, pageSize } = this.state |
| | | |
| | | let filvideos = data.filter(item => !videoKey || item.remark.indexOf(videoKey) > -1) |
| | | let vidlist = filvideos.filter((item, index) => index < pageSize) |
| | | |
| | | this.setState({vidIndex: 1, filvideos, vidlist, videos: data}) |
| | | } |
| | | |
| | | filterPicture = () => { |
| | | const { imageKey, pictures, pageSize } = this.state |
| | | |
| | | let filpictures = pictures.filter(item => !imageKey || item.remark.indexOf(imageKey) > -1) |
| | | let piclist = filpictures.filter((item, index) => index < pageSize) |
| | | |
| | | this.setState({picIndex: 1, filpictures, piclist}) |
| | | } |
| | | |
| | | filterVideo = () => { |
| | | const { videoKey, videos, pageSize } = this.state |
| | | |
| | | let filvideos = videos.filter(item => !videoKey || item.remark.indexOf(videoKey) > -1) |
| | | let vidlist = filvideos.filter((item, index) => index < pageSize) |
| | | |
| | | this.setState({vidIndex: 1, filvideos, vidlist}) |
| | | } |
| | | |
| | | changePicSize = (page) => { |
| | | const { filpictures, pageSize } = this.state |
| | | let piclist = filpictures.filter((item, index) => index < pageSize * page && index >= pageSize * (page - 1)) |
| | | |
| | | this.setState({picIndex: page, piclist}) |
| | | } |
| | | |
| | | changeVidSize = (page) => { |
| | | const { filvideos, pageSize } = this.state |
| | | let vidlist = filvideos.filter((item, index) => index < pageSize * page && index >= pageSize * (page - 1)) |
| | | |
| | | this.setState({vidIndex: page, vidlist}) |
| | | } |
| | | |
| | | render() { |
| | | const { visible, editvisible, card, imageKey, videoKey } = this.state |
| | | |
| | | const pictures = this.state.pictures.filter(item => !imageKey || item.remark.indexOf(imageKey) > -1) |
| | | const videos = this.state.videos.filter(item => !videoKey || item.remark.indexOf(videoKey) > -1) |
| | | const { visible, editvisible, card, filpictures, filvideos, piclist, vidlist, imageKey, videoKey, pageSize, picIndex, vidIndex } = this.state |
| | | |
| | | return ( |
| | | <div style={{display: 'inline-block'}}> |
| | |
| | | <TabPane tab="图片管理" key="picture"> |
| | | <Row style={{marginBottom: '15px'}}> |
| | | <Col span={8}> |
| | | <Search placeholder="" onSearch={value => this.setState({imageKey: value})} enterButton /> |
| | | <Search placeholder="" value={imageKey} onChange={(e) => this.setState({imageKey: e.target.value})} onSearch={this.filterPicture} enterButton /> |
| | | </Col> |
| | | <Col span={16}> |
| | | <Button className="picture-plus" type="link" icon="plus" onClick={() => this.handleSource({typecharone: 'image'})}> |
| | |
| | | </Button> |
| | | </Col> |
| | | </Row> |
| | | <Row gutter={16}> |
| | | {pictures.length && pictures.map(item => ( |
| | | <Row gutter={16} style={{height: '340px'}}> |
| | | {piclist.length && piclist.map(item => ( |
| | | <Col span={4} key={item.id}> |
| | | <div className="image-video-box"> |
| | | <div className="image-video-box-body"> |
| | |
| | | <p className="image-video-remark">{item.remark}</p> |
| | | </Col> |
| | | ))} |
| | | {!pictures.length ? <Empty description={null}/> : null} |
| | | {!piclist.length ? <Empty description={null}/> : null} |
| | | </Row> |
| | | {filpictures.length > pageSize ? <Pagination size="small" current={picIndex} pageSize={pageSize} onChange={this.changePicSize} total={filpictures.length} /> : null} |
| | | </TabPane> |
| | | <TabPane tab="视频管理" key="video"> |
| | | <Row style={{marginBottom: '15px'}}> |
| | | <Col span={8}> |
| | | <Search placeholder="" onSearch={value => this.setState({videoKey: value})} enterButton /> |
| | | <Search placeholder="" value={videoKey} onChange={e => this.setState({videoKey: e.target.value})} onSearch={this.filterVideo} enterButton /> |
| | | </Col> |
| | | <Col span={16}> |
| | | <Button className="picture-plus" type="link" icon="plus" onClick={() => this.handleSource({typecharone: 'video'})}> |
| | |
| | | </Button> |
| | | </Col> |
| | | </Row> |
| | | <Row gutter={16}> |
| | | {videos.length && videos.map(item => ( |
| | | <Row gutter={16} style={{height: '340px'}}> |
| | | {vidlist.length && vidlist.map(item => ( |
| | | <Col span={4} key={item.id}> |
| | | <div className="image-video-box"> |
| | | <div className="image-video-box-body"> |
| | | <Image url={item.linkurl} /> |
| | | <Video value={item.linkurl} /> |
| | | </div> |
| | | <div className="image-video-control"> |
| | | <Icon type="copy" onClick={() => this.copySource(item)}/> |
| | |
| | | <p className="image-video-remark">{item.remark}</p> |
| | | </Col> |
| | | ))} |
| | | {!videos.length ? <Empty description={null}/> : null} |
| | | {!vidlist.length ? <Empty description={null}/> : null} |
| | | </Row> |
| | | {filvideos.length > pageSize ? <Pagination size="small" current={vidIndex} pageSize={pageSize} onChange={this.changeVidSize} total={filvideos.length} /> : null} |
| | | </TabPane> |
| | | </Tabs> |
| | | </Modal> |
| | |
| | | top: 60px; |
| | | .ant-modal-body { |
| | | max-height: calc(100vh - 120px); |
| | | min-height: 450px; |
| | | min-height: 510px; |
| | | padding-top: 5px; |
| | | } |
| | | } |
| | | .ant-tabs-tabpane { |
| | | padding-left: 3px; |
| | | padding-right: 3px; |
| | | } |
| | | .picture-plus { |
| | | float: right; |
| | |
| | | .image-video-box { |
| | | position: relative; |
| | | padding-top: 75%; |
| | | box-shadow: 0 0 2px #bcbcbc; |
| | | .image-video-box-body { |
| | | position: absolute; |
| | | top: 0px; |
| | | left: 0px; |
| | | right: 0px; |
| | | bottom: 0px; |
| | | .video-react-big-play-button { |
| | | display: none; |
| | | } |
| | | .video-react-control-bar { |
| | | display: none; |
| | | } |
| | | } |
| | | .image-video-control { |
| | | position: absolute; |
| | |
| | | opacity: 0; |
| | | transition: all 0.3s; |
| | | i { |
| | | font-size: 18px; |
| | | font-size: 20px; |
| | | cursor: pointer; |
| | | } |
| | | .anticon-copy { |
| | | color: rgb(38, 194, 129); |
| | | margin-right: 10px; |
| | | margin-right: 15px; |
| | | } |
| | | .anticon-edit { |
| | | color: #1890ff; |
| | | margin-right: 10px; |
| | | margin-right: 15px; |
| | | } |
| | | .anticon-delete { |
| | | color: #ff4d4f; |
| | |
| | | word-break: break-all; |
| | | font-size: 13px; |
| | | margin-bottom: 0; |
| | | margin-top: 2px; |
| | | height: 35px; |
| | | } |
| | | .ant-pagination { |
| | | text-align: right; |
| | | } |
| | | } |
| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { Player } from 'video-react' |
| | | |
| | | import './index.scss' |
| | | |
| | | class Video extends Component { |
| | | static propTpyes = { |
| | | card: PropTypes.object, // 条码设置 |
| | | value: PropTypes.any, // 条码值 |
| | | value: PropTypes.string, // 视频地址 |
| | | } |
| | | |
| | | componentDidMount () { |
| | | this.player.seek(1) |
| | | } |
| | | |
| | | shouldComponentUpdate (nextProps, nextState) { |
| | | return !is(fromJS(this.props), fromJS(nextProps)) |
| | | shouldComponentUpdate () { |
| | | return false |
| | | } |
| | | |
| | | render() { |
| | | const { value, card } = this.props |
| | | |
| | | return ( |
| | | <div style={{overflow: 'hidden'}}> |
| | | <Player poster="" ref={player => { this.player = player }} autoPlay={card.autoPlay === 'true'} aspectRatio={card.aspectRatio || '16:9'}> |
| | | <source src={value} /> |
| | | </Player> |
| | | </div> |
| | | <Player ref={player => { this.player = player }} aspectRatio={'4:3'}> |
| | | <source src={this.props.value} /> |
| | | </Player> |
| | | ) |
| | | } |
| | | } |
| | |
| | | @charset "UTF-8"; |
| | | .video-react .video-react-control:before, .video-react .video-react-big-play-button:before { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .video-react .video-react-control:before, .video-react .video-react-big-play-button:before { |
| | | text-align: center; |
| | | } |
| | | |
| | | @font-face { |
| | | font-family: "video-react"; |
| | | src: url(data:application/vnd.ms-fontobject;base64,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?#iefix) format("eot"); |
| | | } |
| | | @font-face { |
| | | font-family: "video-react"; |
| | | src: url(data:application/font-woff;base64,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) format("woff"), url(data:application/x-font-ttf;base64,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) format("truetype"); |
| | | font-weight: normal; |
| | | font-style: normal; |
| | | } |
| | | .video-react-icon, .video-react .video-react-closed-caption, .video-react .video-react-bezel .video-react-bezel-icon, .video-react .video-react-volume-level, .video-react .video-react-mute-control, |
| | | .video-react .video-react-volume-menu-button, .video-react .video-react-play-control, .video-react .video-react-play-progress, .video-react .video-react-big-play-button { |
| | | /* use !important to prevent issues with browser extensions that change fonts */ |
| | | font-family: "video-react" !important; |
| | | speak: none; |
| | | font-style: normal; |
| | | font-weight: normal; |
| | | font-variant: normal; |
| | | text-transform: none; |
| | | line-height: 1; |
| | | /* Better Font Rendering =========== */ |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | | } |
| | | |
| | | .video-react-icon-play-arrow:before, .video-react .video-react-bezel .video-react-bezel-icon-play:before, .video-react .video-react-play-control:before, .video-react .video-react-big-play-button:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-play-circle-filled:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-play-circle-outline:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-pause:before, .video-react .video-react-bezel .video-react-bezel-icon-pause:before, .video-react .video-react-play-control.video-react-playing:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-pause-circle-filled:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-pause-circle-outline:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-stop:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-fast-rewind:before, .video-react .video-react-bezel .video-react-bezel-icon-fast-rewind:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-fast-forward:before, .video-react .video-react-bezel .video-react-bezel-icon-fast-forward:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-skip-previous:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-skip-next:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-replay-5:before, .video-react .video-react-bezel .video-react-bezel-icon-replay-5:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-replay-10:before, .video-react .video-react-bezel .video-react-bezel-icon-replay-10:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-replay-30:before, .video-react .video-react-bezel .video-react-bezel-icon-replay-30:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-forward-5:before, .video-react .video-react-bezel .video-react-bezel-icon-forward-5:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-forward-10:before, .video-react .video-react-bezel .video-react-bezel-icon-forward-10:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-forward-30:before, .video-react .video-react-bezel .video-react-bezel-icon-forward-30:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-volume-off:before, .video-react .video-react-bezel .video-react-bezel-icon-volume-off:before, .video-react .video-react-mute-control.video-react-vol-muted:before, |
| | | .video-react .video-react-volume-menu-button.video-react-vol-muted:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-volume-mute:before, .video-react .video-react-mute-control.video-react-vol-0:before, |
| | | .video-react .video-react-volume-menu-button.video-react-vol-0:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-volume-down:before, .video-react .video-react-bezel .video-react-bezel-icon-volume-down:before, .video-react .video-react-mute-control.video-react-vol-2:before, |
| | | .video-react .video-react-volume-menu-button.video-react-vol-2:before, .video-react .video-react-mute-control.video-react-vol-1:before, |
| | | .video-react .video-react-volume-menu-button.video-react-vol-1:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-volume-up:before, .video-react .video-react-bezel .video-react-bezel-icon-volume-up:before, .video-react .video-react-mute-control:before, |
| | | .video-react .video-react-volume-menu-button:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-fullscreen:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-fullscreen-exit:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-closed-caption:before, .video-react .video-react-closed-caption:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-hd:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-settings:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-share:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-info:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-info-outline:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-close:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-circle:before, .video-react .video-react-volume-level:before, .video-react .video-react-play-progress:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-circle-outline:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react-icon-circle-inner-circle:before { |
| | | content: ""; |
| | | } |
| | | |
| | | .video-react { |
| | | display: block; |
| | | vertical-align: top; |
| | | box-sizing: border-box; |
| | | color: #fff; |
| | | background-color: #000; |
| | |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | } |
| | | .video-react:-moz-full-screen { |
| | | position: absolute; |
| | | } |
| | | .video-react:-webkit-full-screen { |
| | | width: 100% !important; |
| | | height: 100% !important; |
| | | } |
| | | |
| | | .video-react *, |
| | | .video-react *:before, |
| | | .video-react *:after { |
| | |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | .video-react.video-react-fullscreen { |
| | | width: 100% !important; |
| | | height: 100% !important; |
| | | padding-top: 0 !important; |
| | | } |
| | | .video-react.video-react-fullscreen.video-react-user-inactive { |
| | | cursor: none; |
| | | } |
| | | |
| | | body.video-react-full-window { |
| | | padding: 0; |
| | | margin: 0; |
| | | height: 100%; |
| | | overflow-y: auto; |
| | | } |
| | | body.video-react-full-window .video-react-fullscreen { |
| | | position: fixed; |
| | | overflow: hidden; |
| | | z-index: 1000; |
| | | left: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | right: 0; |
| | | } |
| | | |
| | | .video-react button { |
| | | background: none; |
| | | border: none; |
| | | color: inherit; |
| | | display: inline-block; |
| | | cursor: pointer; |
| | | overflow: visible; |
| | | font-size: inherit; |
| | | line-height: inherit; |
| | | text-transform: none; |
| | | text-decoration: none; |
| | | transition: none; |
| | | -webkit-appearance: none; |
| | | -moz-appearance: none; |
| | | appearance: none; |
| | | } |
| | | |
| | | .video-react .video-react-loading-spinner { |
| | | display: none; |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 50%; |
| | | margin: -25px 0 0 -25px; |
| | | opacity: 0.85; |
| | | text-align: left; |
| | | border: 6px solid rgba(43, 51, 63, 0.7); |
| | | box-sizing: border-box; |
| | | background-clip: padding-box; |
| | | width: 50px; |
| | | height: 50px; |
| | | border-radius: 25px; |
| | | } |
| | | .video-react .video-react-loading-spinner:before, .video-react .video-react-loading-spinner:after { |
| | | content: ""; |
| | | position: absolute; |
| | | margin: -6px; |
| | | box-sizing: inherit; |
| | | width: inherit; |
| | | height: inherit; |
| | | border-radius: inherit; |
| | | opacity: 1; |
| | | border: inherit; |
| | | border-color: transparent; |
| | | border-top-color: white; |
| | | -webkit-animation: video-react-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, video-react-spinner-fade 1.1s linear infinite; |
| | | animation: video-react-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, video-react-spinner-fade 1.1s linear infinite; |
| | | } |
| | | |
| | | .video-react-seeking .video-react-loading-spinner, |
| | | .video-react-waiting .video-react-loading-spinner { |
| | | display: block; |
| | | } |
| | | |
| | | .video-react-seeking .video-react-loading-spinner:before, |
| | | .video-react-waiting .video-react-loading-spinner:before { |
| | | border-top-color: white; |
| | | } |
| | | |
| | | .video-react-seeking .video-react-loading-spinner:after, |
| | | .video-react-waiting .video-react-loading-spinner:after { |
| | | border-top-color: white; |
| | | -webkit-animation-delay: 0.44s; |
| | | animation-delay: 0.44s; |
| | | } |
| | | |
| | | @keyframes video-react-spinner-spin { |
| | | 100% { |
| | | transform: rotate(360deg); |
| | | } |
| | | } |
| | | @-webkit-keyframes video-react-spinner-spin { |
| | | 100% { |
| | | -webkit-transform: rotate(360deg); |
| | | } |
| | | } |
| | | @keyframes video-react-spinner-fade { |
| | | 0% { |
| | | border-top-color: #73859f; |
| | | } |
| | | 20% { |
| | | border-top-color: #73859f; |
| | | } |
| | | 35% { |
| | | border-top-color: white; |
| | | } |
| | | 60% { |
| | | border-top-color: #73859f; |
| | | } |
| | | 100% { |
| | | border-top-color: #73859f; |
| | | } |
| | | } |
| | | @-webkit-keyframes video-react-spinner-fade { |
| | | 0% { |
| | | border-top-color: #73859f; |
| | | } |
| | | 20% { |
| | | border-top-color: #73859f; |
| | | } |
| | | 35% { |
| | | border-top-color: white; |
| | | } |
| | | 60% { |
| | | border-top-color: #73859f; |
| | | } |
| | | 100% { |
| | | border-top-color: #73859f; |
| | | } |
| | | } |
| | | .video-react .video-react-big-play-button { |
| | | font-size: 26px; |
| | | line-height: 38px; |
| | | height: 40px; |
| | | width: 40px; |
| | | display: block; |
| | | position: absolute; |
| | | top: 10px; |
| | | left: 10px; |
| | | padding: 0; |
| | | cursor: pointer; |
| | | opacity: 1; |
| | | border: 0.06666em solid #fff; |
| | | background-color: #2B333F; |
| | | background-color: rgba(43, 51, 63, 0.7); |
| | | -webkit-border-radius: 40px; |
| | | -moz-border-radius: 40px; |
| | | border-radius: 40px; |
| | | -webkit-transition: all 0.4s; |
| | | -moz-transition: all 0.4s; |
| | | -o-transition: all 0.4s; |
| | | transition: all 0.4s; |
| | | } |
| | | .video-react .video-react-big-play-button.video-react-big-play-button-center { |
| | | top: 50%; |
| | | left: 50%; |
| | | margin-top: -20px; |
| | | margin-left: -20px; |
| | | } |
| | | .video-react .video-react-big-play-button.big-play-button-hide { |
| | | display: none; |
| | | } |
| | | .video-react:hover .video-react-big-play-button, |
| | | .video-react .video-react-big-play-button:focus { |
| | | outline: 0; |
| | | border-color: #fff; |
| | | background-color: #73859f; |
| | | background-color: rgba(115, 133, 159, 0.5); |
| | | -webkit-transition: all 0s; |
| | | -moz-transition: all 0s; |
| | | -o-transition: all 0s; |
| | | transition: all 0s; |
| | | } |
| | | |
| | | .video-react-menu-button { |
| | | cursor: pointer; |
| | | } |
| | | .video-react-menu-button.video-react-disabled { |
| | | cursor: default; |
| | | } |
| | | |
| | | .video-react-menu .video-react-menu-content { |
| | | display: block; |
| | | padding: 0; |
| | | margin: 0; |
| | | overflow: auto; |
| | | font-family: serif, Times, "Times New Roman"; |
| | | } |
| | | .video-react-menu li { |
| | | list-style: none; |
| | | margin: 0; |
| | | padding: 0.2em 0; |
| | | line-height: 1.4em; |
| | | font-size: 1.2em; |
| | | text-align: center; |
| | | } |
| | | .video-react-menu li:focus, .video-react-menu li:hover { |
| | | outline: 0; |
| | | background-color: #73859f; |
| | | background-color: rgba(115, 133, 159, 0.5); |
| | | } |
| | | .video-react-menu li.video-react-selected, .video-react-menu li.video-react-selected:focus, .video-react-menu li.video-react-selected:hover { |
| | | background-color: #fff; |
| | | color: #2B333F; |
| | | } |
| | | .video-react-menu li.vjs-menu-title { |
| | | text-align: center; |
| | | text-transform: uppercase; |
| | | font-size: 1em; |
| | | line-height: 2em; |
| | | padding: 0; |
| | | margin: 0 0 0.3em 0; |
| | | font-weight: bold; |
| | | cursor: default; |
| | | } |
| | | |
| | | .video-react-scrubbing .vjs-menu-button:hover .video-react-menu { |
| | | display: none; |
| | | } |
| | | |
| | | .video-react .video-react-menu-button-popup .video-react-menu { |
| | | display: none; |
| | | position: absolute; |
| | | bottom: 0; |
| | | width: 10em; |
| | | left: -3em; |
| | | height: 0em; |
| | | margin-bottom: 1.5em; |
| | | border-top-color: rgba(43, 51, 63, 0.7); |
| | | } |
| | | .video-react .video-react-menu-button-popup .video-react-menu .video-react-menu-content { |
| | | background-color: #2B333F; |
| | | background-color: rgba(43, 51, 63, 0.7); |
| | | position: absolute; |
| | | width: 100%; |
| | | bottom: 1.5em; |
| | | max-height: 15em; |
| | | } |
| | | |
| | | .video-react-menu-button-popup .video-react-menu.video-react-lock-showing { |
| | | display: block; |
| | | } |
| | | |
| | | .video-react .video-react-menu-button-inline { |
| | | -webkit-transition: all 0.4s; |
| | | -moz-transition: all 0.4s; |
| | | -o-transition: all 0.4s; |
| | | transition: all 0.4s; |
| | | overflow: hidden; |
| | | } |
| | | .video-react .video-react-menu-button-inline:before { |
| | | width: 2.222222222em; |
| | | } |
| | | .video-react .video-react-menu-button-inline:hover, .video-react .video-react-menu-button-inline:focus, .video-react .video-react-menu-button-inline.video-react-slider-active { |
| | | width: 12em; |
| | | } |
| | | .video-react .video-react-menu-button-inline:hover .video-react-menu, .video-react .video-react-menu-button-inline:focus .video-react-menu, .video-react .video-react-menu-button-inline.video-react-slider-active .video-react-menu { |
| | | display: block; |
| | | opacity: 1; |
| | | } |
| | | .video-react .video-react-menu-button-inline.video-react-slider-active { |
| | | -webkit-transition: none; |
| | | -moz-transition: none; |
| | | -o-transition: none; |
| | | transition: none; |
| | | } |
| | | .video-react .video-react-menu-button-inline .video-react-menu { |
| | | opacity: 0; |
| | | height: 100%; |
| | | width: auto; |
| | | position: absolute; |
| | | left: 4em; |
| | | top: 0; |
| | | padding: 0; |
| | | margin: 0; |
| | | -webkit-transition: all 0.4s; |
| | | -moz-transition: all 0.4s; |
| | | -o-transition: all 0.4s; |
| | | transition: all 0.4s; |
| | | } |
| | | .video-react .video-react-menu-button-inline .video-react-menu-content { |
| | | width: auto; |
| | | height: 100%; |
| | | margin: 0; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .video-react-no-flex .video-react-menu-button-inline .video-react-menu { |
| | | display: block; |
| | | opacity: 1; |
| | | position: relative; |
| | | width: auto; |
| | | } |
| | | .video-react-no-flex .video-react-menu-button-inline:hover, .video-react-no-flex .video-react-menu-button-inline:focus, .video-react-no-flex .video-react-menu-button-inline.video-react-slider-active { |
| | | width: auto; |
| | | } |
| | | |
| | | .video-react .video-react-poster { |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | background-repeat: no-repeat; |
| | | background-position: 50% 50%; |
| | | background-size: contain; |
| | | background-color: #000000; |
| | | cursor: pointer; |
| | | margin: 0; |
| | | padding: 0; |
| | | position: absolute; |
| | | top: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | left: 0; |
| | | height: 100%; |
| | | } |
| | | .video-react .video-react-poster img { |
| | | display: block; |
| | | vertical-align: middle; |
| | | margin: 0 auto; |
| | | max-height: 100%; |
| | | padding: 0; |
| | | width: 100%; |
| | | } |
| | | |
| | | .video-react .video-react-slider { |
| | | outline: 0; |
| | | position: relative; |
| | | cursor: pointer; |
| | | padding: 0; |
| | | margin: 0 0.45em 0 0.45em; |
| | | background-color: #73859f; |
| | | background-color: rgba(115, 133, 159, 0.5); |
| | | } |
| | | .video-react .video-react-slider:focus { |
| | | -webkit-box-shadow: 0 0 1em #fff; |
| | | -moz-box-shadow: 0 0 1em #fff; |
| | | box-shadow: 0 0 1em #fff; |
| | | } |
| | | |
| | | .video-react .video-react-control { |
| | | outline: none; |
| | | position: relative; |
| | | text-align: center; |
| | | margin: 0; |
| | | padding: 0; |
| | | height: 100%; |
| | | width: 4em; |
| | | -webkit-box-flex: none; |
| | | -moz-box-flex: none; |
| | | -webkit-flex: none; |
| | | -ms-flex: none; |
| | | flex: none; |
| | | } |
| | | .video-react .video-react-control:before { |
| | | font-size: 1.8em; |
| | | line-height: 1.67; |
| | | } |
| | | .video-react .video-react-control:focus:before, .video-react .video-react-control:hover:before, .video-react .video-react-control:focus { |
| | | text-shadow: 0em 0em 1em #fff, 0em 0em 0.5em #fff; |
| | | } |
| | | |
| | | .video-react .video-react-control-text { |
| | | border: 0; |
| | | clip: rect(0 0 0 0); |
| | | height: 1px; |
| | | margin: -1px; |
| | | overflow: hidden; |
| | | padding: 0; |
| | | position: absolute; |
| | | width: 1px; |
| | | } |
| | | |
| | | .video-react-no-flex .video-react-control { |
| | | display: table-cell; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .video-react .video-react-control-bar { |
| | | display: none; |
| | | width: 100%; |
| | | position: absolute; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | height: 3em; |
| | | background-color: #2B333F; |
| | | background-color: rgba(43, 51, 63, 0.7); |
| | | } |
| | | |
| | | .video-react-has-started .video-react-control-bar { |
| | | display: -webkit-box; |
| | | display: -webkit-flex; |
| | | display: -ms-flexbox; |
| | | display: flex; |
| | | visibility: visible; |
| | | opacity: 1; |
| | | -webkit-transition: visibility 0.1s, opacity 0.1s; |
| | | -moz-transition: visibility 0.1s, opacity 0.1s; |
| | | -o-transition: visibility 0.1s, opacity 0.1s; |
| | | transition: visibility 0.1s, opacity 0.1s; |
| | | } |
| | | |
| | | .video-react-has-started.video-react-user-inactive.video-react-playing .video-react-control-bar.video-react-control-bar-auto-hide { |
| | | visibility: visible; |
| | | opacity: 0; |
| | | -webkit-transition: visibility 1s, opacity 1s; |
| | | -moz-transition: visibility 1s, opacity 1s; |
| | | -o-transition: visibility 1s, opacity 1s; |
| | | transition: visibility 1s, opacity 1s; |
| | | } |
| | | |
| | | .video-react-controls-disabled .video-react-control-bar, |
| | | .video-react-using-native-controls .video-react-control-bar, |
| | | .video-react-error .video-react-control-bar { |
| | | display: none !important; |
| | | } |
| | | |
| | | .video-react-audio.video-react-has-started.video-react-user-inactive.video-react-playing .video-react-control-bar { |
| | | opacity: 1; |
| | | visibility: visible; |
| | | } |
| | | |
| | | .video-react-has-started.video-react-no-flex .video-react-control-bar { |
| | | display: table; |
| | | } |
| | | |
| | | .video-react .video-react-progress-control { |
| | | -webkit-box-flex: auto; |
| | | -moz-box-flex: auto; |
| | | -webkit-flex: auto; |
| | | -ms-flex: auto; |
| | | flex: auto; |
| | | display: -webkit-box; |
| | | display: -webkit-flex; |
| | | display: -ms-flexbox; |
| | | display: flex; |
| | | -webkit-box-align: center; |
| | | -webkit-align-items: center; |
| | | -ms-flex-align: center; |
| | | align-items: center; |
| | | min-width: 4em; |
| | | } |
| | | |
| | | .video-react-live .video-react-progress-control { |
| | | display: none; |
| | | } |
| | | |
| | | .video-react .video-react-progress-holder { |
| | | -webkit-box-flex: auto; |
| | | -moz-box-flex: auto; |
| | | -webkit-flex: auto; |
| | | -ms-flex: auto; |
| | | flex: auto; |
| | | -webkit-transition: all 0.2s; |
| | | -moz-transition: all 0.2s; |
| | | -o-transition: all 0.2s; |
| | | transition: all 0.2s; |
| | | height: 0.3em; |
| | | } |
| | | |
| | | .video-react .video-react-progress-control:hover .video-react-progress-holder { |
| | | font-size: 1.6666666667em; |
| | | } |
| | | |
| | | /* If we let the font size grow as much as everything else, the current time tooltip ends up |
| | | ginormous. If you'd like to enable the current time tooltip all the time, this should be disabled |
| | | to avoid a weird hitch when you roll off the hover. */ |
| | | .video-react .video-react-progress-control:hover .video-react-time-tooltip, |
| | | .video-react .video-react-progress-control:hover .video-react-mouse-display:after, |
| | | .video-react .video-react-progress-control:hover .video-react-play-progress:after { |
| | | visibility: visible; |
| | | font-size: 0.6em; |
| | | } |
| | | |
| | | .video-react .video-react-progress-holder .video-react-play-progress, |
| | | .video-react .video-react-progress-holder .video-react-load-progress, |
| | | .video-react .video-react-progress-holder .video-react-tooltip-progress-bar, |
| | | .video-react .video-react-progress-holder .video-react-load-progress div { |
| | | position: absolute; |
| | | display: block; |
| | | height: 0.3em; |
| | | margin: 0; |
| | | padding: 0; |
| | | width: 0; |
| | | left: 0; |
| | | top: 0; |
| | | } |
| | | |
| | | .video-react .video-react-play-progress { |
| | | background-color: #fff; |
| | | } |
| | | .video-react .video-react-play-progress:before { |
| | | position: absolute; |
| | | top: -0.3333333333em; |
| | | right: -0.5em; |
| | | font-size: 0.9em; |
| | | } |
| | | |
| | | .video-react .video-react-time-tooltip, |
| | | .video-react .video-react-mouse-display:after, |
| | | .video-react .video-react-play-progress:after { |
| | | visibility: hidden; |
| | | pointer-events: none; |
| | | position: absolute; |
| | | top: -3.4em; |
| | | right: -1.9em; |
| | | font-size: 0.9em; |
| | | color: #000; |
| | | content: attr(data-current-time); |
| | | padding: 6px 8px 8px 8px; |
| | | background-color: #fff; |
| | | background-color: rgba(255, 255, 255, 0.8); |
| | | -webkit-border-radius: 0.3em; |
| | | -moz-border-radius: 0.3em; |
| | | border-radius: 0.3em; |
| | | } |
| | | |
| | | .video-react .video-react-time-tooltip, |
| | | .video-react .video-react-play-progress:before, |
| | | .video-react .video-react-play-progress:after { |
| | | z-index: 1; |
| | | } |
| | | |
| | | .video-react .video-react-progress-control .video-react-keep-tooltips-inside:after { |
| | | display: none; |
| | | } |
| | | |
| | | .video-react .video-react-load-progress { |
| | | background: #bfc7d3; |
| | | background: rgba(115, 133, 159, 0.5); |
| | | } |
| | | |
| | | .video-react .video-react-load-progress div { |
| | | background: white; |
| | | background: rgba(115, 133, 159, 0.75); |
| | | } |
| | | |
| | | .video-react.video-react-no-flex .video-react-progress-control { |
| | | width: auto; |
| | | } |
| | | |
| | | .video-react .video-react-time-tooltip { |
| | | display: inline-block; |
| | | height: 2.4em; |
| | | position: relative; |
| | | float: right; |
| | | right: -1.9em; |
| | | } |
| | | |
| | | .video-react .video-react-tooltip-progress-bar { |
| | | visibility: hidden; |
| | | } |
| | | |
| | | .video-react .video-react-progress-control .video-react-mouse-display { |
| | | display: none; |
| | | position: absolute; |
| | | width: 1px; |
| | | height: 100%; |
| | | background-color: #000; |
| | | z-index: 1; |
| | | } |
| | | |
| | | .video-react-no-flex .video-react-progress-control .video-react-mouse-display { |
| | | z-index: 0; |
| | | } |
| | | |
| | | .video-react .video-react-progress-control:hover .video-react-mouse-display { |
| | | display: block; |
| | | } |
| | | |
| | | .video-react.video-react-user-inactive .video-react-progress-control .video-react-mouse-display, |
| | | .video-react.video-react-user-inactive .video-react-progress-control .video-react-mouse-display:after { |
| | | visibility: hidden; |
| | | opacity: 0; |
| | | -webkit-transition: visibility 1s, opacity 1s; |
| | | -moz-transition: visibility 1s, opacity 1s; |
| | | -o-transition: visibility 1s, opacity 1s; |
| | | transition: visibility 1s, opacity 1s; |
| | | } |
| | | |
| | | .video-react.video-react-user-inactive.video-react-no-flex .video-react-progress-control .video-react-mouse-display, |
| | | .video-react.video-react-user-inactive.video-react-no-flex .video-react-progress-control .video-react-mouse-display:after { |
| | | display: none; |
| | | } |
| | | |
| | | .video-react .video-react-mouse-display .video-react-time-tooltip, |
| | | .video-react .video-react-progress-control .video-react-mouse-display:after { |
| | | color: #fff; |
| | | background-color: #000; |
| | | background-color: rgba(0, 0, 0, 0.8); |
| | | } |
| | | |
| | | .video-react .video-react-play-control { |
| | | cursor: pointer; |
| | | -webkit-box-flex: none; |
| | | -moz-box-flex: none; |
| | | -webkit-flex: none; |
| | | -ms-flex: none; |
| | | flex: none; |
| | | } |
| | | .video-react .video-react-fullscreen-control { |
| | | cursor: pointer; |
| | | -webkit-box-flex: none; |
| | | -moz-box-flex: none; |
| | | -webkit-flex: none; |
| | | -ms-flex: none; |
| | | flex: none; |
| | | } |
| | | |
| | | .video-react.video-react-fullscreen { |
| | | position: fixed; |
| | | left: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | right: 0; |
| | | z-index: 9999; |
| | | } |
| | | |
| | | .video-react .video-react-time-control { |
| | | -webkit-box-flex: none; |
| | | -moz-box-flex: none; |
| | | -webkit-flex: none; |
| | | -ms-flex: none; |
| | | flex: none; |
| | | font-size: 1em; |
| | | line-height: 3em; |
| | | min-width: 2em; |
| | | width: auto; |
| | | padding-left: 1em; |
| | | padding-right: 1em; |
| | | } |
| | | .video-react .video-react-time-divider { |
| | | line-height: 3em; |
| | | min-width: initial; |
| | | padding: 0; |
| | | } |
| | | |
| | | .video-react .video-react-mute-control, |
| | | .video-react .video-react-volume-menu-button { |
| | | cursor: pointer; |
| | | -webkit-box-flex: none; |
| | | -moz-box-flex: none; |
| | | -webkit-flex: none; |
| | | -ms-flex: none; |
| | | flex: none; |
| | | } |
| | | .video-react .video-react-volume-control { |
| | | width: 5em; |
| | | -webkit-box-flex: none; |
| | | -moz-box-flex: none; |
| | | -webkit-flex: none; |
| | | -ms-flex: none; |
| | | flex: none; |
| | | display: -webkit-box; |
| | | display: -webkit-flex; |
| | | display: -ms-flexbox; |
| | | display: flex; |
| | | -webkit-box-align: center; |
| | | -webkit-align-items: center; |
| | | -ms-flex-align: center; |
| | | align-items: center; |
| | | } |
| | | .video-react .video-react-volume-bar { |
| | | margin: 1.35em 0.45em; |
| | | } |
| | | .video-react .video-react-volume-bar.video-react-slider-horizontal { |
| | | width: 5em; |
| | | height: 0.3em; |
| | | } |
| | | .video-react .video-react-volume-bar.video-react-slider-horizontal .video-react-volume-level { |
| | | width: 100%; |
| | | } |
| | | .video-react .video-react-volume-bar.video-react-slider-vertical { |
| | | width: 0.3em; |
| | | height: 5em; |
| | | margin: 1.35em auto; |
| | | } |
| | | .video-react .video-react-volume-bar.video-react-slider-vertical .video-react-volume-level { |
| | | height: 100%; |
| | | } |
| | | .video-react .video-react-volume-level { |
| | | position: absolute; |
| | | bottom: 0; |
| | | left: 0; |
| | | background-color: #fff; |
| | | } |
| | | .video-react .video-react-volume-level:before { |
| | | position: absolute; |
| | | font-size: 0.9em; |
| | | } |
| | | .video-react .video-react-slider-vertical .video-react-volume-level { |
| | | width: 0.3em; |
| | | } |
| | | .video-react .video-react-slider-vertical .video-react-volume-level:before { |
| | | top: -0.5em; |
| | | left: -0.3em; |
| | | } |
| | | .video-react .video-react-slider-horizontal .video-react-volume-level { |
| | | height: 0.3em; |
| | | } |
| | | .video-react .video-react-slider-horizontal .video-react-volume-level:before { |
| | | top: -0.3em; |
| | | right: -0.5em; |
| | | } |
| | | .video-react .video-react-menu-button-popup.video-react-volume-menu-button .video-react-menu { |
| | | display: block; |
| | | width: 0; |
| | | height: 0; |
| | | border-top-color: transparent; |
| | | } |
| | | .video-react .video-react-menu-button-popup.video-react-volume-menu-button-vertical .video-react-menu { |
| | | left: 0.5em; |
| | | height: 8em; |
| | | } |
| | | .video-react .video-react-menu-button-popup.video-react-volume-menu-button-horizontal .video-react-menu { |
| | | left: -2em; |
| | | } |
| | | .video-react .video-react-menu-button-popup.video-react-volume-menu-button .video-react-menu-content { |
| | | height: 0; |
| | | width: 0; |
| | | overflow-x: hidden; |
| | | overflow-y: hidden; |
| | | } |
| | | .video-react .video-react-volume-menu-button-vertical:hover .video-react-menu-content, |
| | | .video-react .video-react-volume-menu-button-vertical:focus .video-react-menu-content, |
| | | .video-react .video-react-volume-menu-button-vertical.video-react-slider-active .video-react-menu-content, |
| | | .video-react .video-react-volume-menu-button-vertical .video-react-lock-showing .video-react-menu-content { |
| | | height: 8em; |
| | | width: 2.9em; |
| | | } |
| | | .video-react .video-react-volume-menu-button-horizontal:hover .video-react-menu-content, |
| | | .video-react .video-react-volume-menu-button-horizontal:focus .video-react-menu-content, |
| | | .video-react .video-react-volume-menu-button-horizontal .video-react-slider-active .video-react-menu-content, |
| | | .video-react .video-react-volume-menu-button-horizontal .video-react-lock-showing .video-react-menu-content { |
| | | height: 2.9em; |
| | | width: 8em; |
| | | } |
| | | .video-react .video-react-volume-menu-button.video-react-menu-button-inline .video-react-menu-content { |
| | | background-color: transparent !important; |
| | | } |
| | | |
| | | .video-react .video-react-playback-rate .video-react-playback-rate-value { |
| | | line-height: 3em; |
| | | text-align: center; |
| | | } |
| | | .video-react .video-react-playback-rate .video-react-menu { |
| | | width: 4em; |
| | | left: 0em; |
| | | } |
| | | |
| | | .video-react .video-react-bezel { |
| | | position: absolute; |
| | | left: 50%; |
| | | top: 50%; |
| | | width: 52px; |
| | | height: 52px; |
| | | z-index: 17; |
| | | margin-left: -26px; |
| | | margin-top: -26px; |
| | | background: rgba(0, 0, 0, 0.5); |
| | | border-radius: 26px; |
| | | } |
| | | .video-react .video-react-bezel.video-react-bezel-animation { |
| | | -moz-animation: video-react-bezel-fadeout 0.5s linear 1 normal forwards; |
| | | -webkit-animation: video-react-bezel-fadeout 0.5s linear 1 normal forwards; |
| | | animation: video-react-bezel-fadeout 0.5s linear 1 normal forwards; |
| | | pointer-events: none; |
| | | } |
| | | .video-react .video-react-bezel.video-react-bezel-animation-alt { |
| | | -moz-animation: video-react-bezel-fadeout-alt 0.5s linear 1 normal forwards; |
| | | -webkit-animation: video-react-bezel-fadeout-alt 0.5s linear 1 normal forwards; |
| | | animation: video-react-bezel-fadeout-alt 0.5s linear 1 normal forwards; |
| | | pointer-events: none; |
| | | } |
| | | .video-react .video-react-bezel .video-react-bezel-icon { |
| | | width: 36px; |
| | | height: 36px; |
| | | margin: 8px; |
| | | font-size: 26px; |
| | | line-height: 36px; |
| | | text-align: center; |
| | | } |
| | | @keyframes video-react-bezel-fadeout { |
| | | 0% { |
| | | opacity: 1; |
| | | } |
| | | to { |
| | | opacity: 0; |
| | | transform: scale(2); |
| | | } |
| | | } |
| | | @keyframes video-react-bezel-fadeout-alt { |
| | | 0% { |
| | | opacity: 1; |
| | | } |
| | | to { |
| | | opacity: 0; |
| | | transform: scale(2); |
| | | } |
| | | } |
| | | .video-react .video-react-closed-caption { |
| | | cursor: pointer; |
| | | -webkit-box-flex: none; |
| | | -moz-box-flex: none; |
| | | -webkit-flex: none; |
| | | -ms-flex: none; |
| | | flex: none; |
| | | } |
| | | .video-react video::-webkit-media-text-track-container { |
| | | -webkit-transform: translateY(-30px); |
| | | transform: translateY(-30px); |
| | | } |
| | |
| | | const { confirm } = Modal |
| | | |
| | | const MenuForm = asyncComponent(() => import('./menuform')) |
| | | const SourceWrap = asyncComponent(() => import('@/menu/modelsource')) |
| | | const SourceWrap = asyncComponent(() => import('@/menu/modulesource')) |
| | | const MenuShell = asyncComponent(() => import('@/menu/menushell')) |
| | | const BgController = asyncComponent(() => import('@/menu/bgcontroller')) |
| | | const PasteController = asyncComponent(() => import('@/menu/pastecontroller')) |
| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { Collapse, Form, Input, Col, Icon, InputNumber, Select, Radio, Drawer, Button } from 'antd' |
| | | import { Collapse, Form, Col, Icon, InputNumber, Select, Radio, Drawer, Button } from 'antd' |
| | | |
| | | import MKEmitter from '@/utils/events.js' |
| | | import zhCN from '@/locales/zh-CN/mob.js' |
| | | import enUS from '@/locales/en-US/mob.js' |
| | | import ColorSketch from '@/mob/colorsketch' |
| | | import asyncComponent from '@/utils/asyncComponent' |
| | | import StyleInput from './styleInput' |
| | | import FileUpload from '@/tabviews/zshare/fileupload' |
| | | import './index.scss' |
| | | |
| | | const { Panel } = Collapse |
| | | const { Option } = Select |
| | | const ColorSketch = asyncComponent(() => import('@/mob/colorsketch')) |
| | | const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent')) |
| | | |
| | | class MobController extends Component { |
| | | static propTpyes = { |
| | |
| | | dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, |
| | | card: null, |
| | | comIds: [], |
| | | bgimages: [], |
| | | backgroundImage: '', |
| | | options: [], |
| | | borposition: 'outer' |
| | |
| | | |
| | | initStyle = (comIds, options, style = {}) => { |
| | | let backgroundImage = '' |
| | | if (style.backgroundImage) { |
| | | if (/^url/ig.test(style.backgroundImage)) { |
| | | backgroundImage = style.backgroundImage.replace(/^url\(/ig, '').replace(/\)$/ig, '') |
| | | } else if (/^linear-gradient/ig.test(style.backgroundImage)) { |
| | | backgroundImage = style.backgroundImage.replace(/^linear-gradient\(/ig, '').replace(/\)$/ig, '') |
| | | } |
| | | if (style.backgroundImage && /^url/ig.test(style.backgroundImage)) { |
| | | backgroundImage = style.backgroundImage.replace(/^url\(/ig, '').replace(/\)$/ig, '') |
| | | } |
| | | |
| | | this.setState({ |
| | |
| | | this.updateStyle({shadow: val}) |
| | | } |
| | | |
| | | imgChange = (list) => { |
| | | if (list[0] && list[0].response) { |
| | | this.setState({ |
| | | bgimages: [], |
| | | backgroundImage: list[0].response |
| | | }) |
| | | this.updateStyle({backgroundImage: `url(${list[0].response})`}) |
| | | imgChange = (val) => { |
| | | this.setState({ |
| | | backgroundImage: val |
| | | }) |
| | | if (val) { |
| | | this.updateStyle({backgroundImage: `url(${val})`}) |
| | | } else { |
| | | this.setState({bgimages: list}) |
| | | this.updateStyle({backgroundImage: ''}) |
| | | } |
| | | } |
| | | |
| | | changeBackgroundImageInput = (e) => { |
| | | let val = e.target.value |
| | | val = val.replace(/^\s*|\s*$/ig, '') |
| | | |
| | | if (/^http|^\/\//.test(val)) { |
| | | val = `url(${val})` |
| | | } else if (/,/ig.test(val) && !/^(radial-gradient|linear-gradient)/ig.test(val)) { |
| | | val = `linear-gradient(${val})` |
| | | } |
| | | |
| | | this.setState({backgroundImage: e.target.value}) |
| | | this.updateStyle({backgroundImage: val}) |
| | | } |
| | | |
| | | changeBorderStyle = (val) => { |
| | |
| | | } |
| | | |
| | | render () { |
| | | const { card, options, backgroundImage, bgimages, borposition } = this.state |
| | | const { card, options, backgroundImage, borposition } = this.state |
| | | const formItemLayout = { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | |
| | | label={<Icon title="背景图片" type="picture" />} |
| | | labelCol={{xs: { span: 24 }, sm: { span: 4 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 20 }} } |
| | | > |
| | | <FileUpload accept=".jpg,.png,.gif,.svg" value={bgimages} maxFile={2} fileType="text" onChange={this.imgChange}/> |
| | | <Input placeholder="" value={backgroundImage} autoComplete="off" onChange={this.changeBackgroundImageInput} /> |
| | | <SourceComponent value={backgroundImage} type="" placement="right" onChange={this.imgChange}/> |
| | | </Form.Item> |
| | | </Col> : null} |
| | | </Panel> : null} |
| | |
| | | .ant-input-number { |
| | | width: 100%; |
| | | } |
| | | .mk-source-wrap { |
| | | height: 32px; |
| | | .anticon-paper-clip { |
| | | color:rgba(255, 255, 255, 0.7); |
| | | } |
| | | .anticon-delete { |
| | | color:rgba(255, 255, 255, 0.7); |
| | | } |
| | | .mk-source-item-info:hover { |
| | | background-color: transparent; |
| | | } |
| | | } |
| | | .ant-form-item { |
| | | margin-bottom: 2px; |
| | | |
| | |
| | | param.ID = record.ID |
| | | } |
| | | |
| | | let _prevCustomScript = `${record.callbacksql || 'declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000)'} |
| | | Select @ErrorCode='',@retmsg='' |
| | | let _prevCustomScript = `${record.callbacksql} |
| | | ${errSql} |
| | | ` |
| | | let _backCustomScript = '' |
| | |
| | | ` |
| | | } |
| | | |
| | | if (retmsg) { |
| | | _callbacksql = _sql |
| | | } |
| | | |
| | | // 去除禁用的验证 |
| | | if (verify.contrasts) { |
| | | verify.contrasts = verify.contrasts.filter(item => item.status !== 'false') |
| | |
| | | select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @BillCode='', @ModularDetailCode='' |
| | | ` |
| | | |
| | | if (retmsg) { |
| | | _callbacksql = _sql |
| | | } |
| | | |
| | | if (_initCustomScript) { |
| | | _sql += _initCustomScript |
| | | } |
| | |
| | | |
| | | const MenuForm = asyncComponent(() => import('./menuform')) |
| | | const HomeForm = asyncComponent(() => import('./homeform')) |
| | | const PrintMenuForm = asyncComponent(() => import('./printmenuform')) |
| | | const Header = asyncComponent(() => import('@/menu/header')) |
| | | const SourceWrap = asyncComponent(() => import('@/menu/modelsource')) |
| | | const MenuShell = asyncComponent(() => import('@/menu/menushell')) |
| | | const PrintMenuForm = asyncComponent(() => import('./printmenuform')) |
| | | const SourceWrap = asyncComponent(() => import('@/menu/modulesource')) |
| | | const PopviewController = asyncComponent(() => import('@/menu/popview')) |
| | | const BgController = asyncComponent(() => import('@/menu/bgcontroller')) |
| | | const PasteController = asyncComponent(() => import('@/menu/pastecontroller')) |
| | | const PaddingController = asyncComponent(() => import('@/menu/padcontroller')) |
| | | const StyleController = asyncComponent(() => import('@/menu/stylecontroller')) |
| | | const PictureController = asyncComponent(() => import('@/menu/picturecontroller')) |
| | | const ModalController = asyncComponent(() => import('@/menu/modalconfig/controller')) |
| | | const StyleCombController = asyncComponent(() => import('@/menu/stylecombcontroller')) |
| | | const StyleCombControlButton = asyncComponent(() => import('@/menu/stylecombcontrolbutton')) |
| | | const ModalController = asyncComponent(() => import('@/menu/modalconfig/controller')) |
| | | const PopviewController = asyncComponent(() => import('@/menu/popview')) |
| | | const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent')) |
| | | |
| | | sessionStorage.setItem('isEditState', 'true') |