From 3193df5faaacb0fe903ce993b16319276528524f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 06 七月 2020 23:14:17 +0800 Subject: [PATCH] 2020-07-06 --- src/components/tabview/index.jsx | 2 src/tabviews/zshare/actionList/tabbutton/index.jsx | 46 +++++- src/views/pay/index.scss | 33 ++++ src/templates/zshare/formconfig.jsx | 31 ++++ src/templates/sharecomponent/actioncomponent/actionform/index.jsx | 125 +++++++++++++++++ src/templates/comtableconfig/index.jsx | 3 src/router/index.js | 2 src/views/pay/index.jsx | 45 ++++++ src/locales/zh-CN/model.js | 3 src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx | 4 src/templates/sharecomponent/columncomponent/index.jsx | 4 src/templates/sharecomponent/actioncomponent/index.jsx | 72 +++++++++ src/locales/en-US/model.js | 3 src/tabviews/zshare/actionList/newpagebutton/index.jsx | 19 ++ src/tabviews/commontable/index.jsx | 18 ++ 15 files changed, 373 insertions(+), 37 deletions(-) diff --git a/src/components/tabview/index.jsx b/src/components/tabview/index.jsx index d0f9961..fcfca9d 100644 --- a/src/components/tabview/index.jsx +++ b/src/components/tabview/index.jsx @@ -104,7 +104,7 @@ } else if (view.type === 'CommonTable' || view.type === 'ManageTable') { return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>) } else if (view.type === 'TreePage') { - return (<TreePage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) + return (<TreePage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>) } else if (view.type === 'VerupTable') { return (<VerupTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) } else if (view.type === 'ScriptTable') { diff --git a/src/locales/en-US/model.js b/src/locales/en-US/model.js index 7a23c9e..243c9c7 100644 --- a/src/locales/en-US/model.js +++ b/src/locales/en-US/model.js @@ -37,6 +37,7 @@ 'model.switch.close': 'Close', 'model.menu.level1': 'Level 1 menu', 'model.menu.level2': 'Level 2 menu', + 'model.menu.level3': 'Level 3 menu', 'model.menu.all': 'All', 'model.menu.selected': 'Selected', 'model.menu.itemUnit': 'Item', @@ -196,7 +197,7 @@ 'header.form.display': '鏄剧ず鏂瑰紡', 'header.form.dropdown': '涓嬫媺鑿滃崟', 'header.form.button': '鎸夐挳', - 'header.form.style': '椋庢牸', + 'model.form.style': '椋庢牸', 'model.form.color': 'Color', 'header.form.order': '鎺掑垪', 'header.form.horizontal': '妯悜', diff --git a/src/locales/zh-CN/model.js b/src/locales/zh-CN/model.js index 9e435a2..ea483c2 100644 --- a/src/locales/zh-CN/model.js +++ b/src/locales/zh-CN/model.js @@ -37,6 +37,7 @@ 'model.switch.close': '鍏�', 'model.menu.level1': '涓�绾ц彍鍗�', 'model.menu.level2': '浜岀骇鑿滃崟', + 'model.menu.level3': '涓夌骇鑿滃崟', 'model.menu.all': '鍏ㄩ儴', 'model.menu.selected': '宸查�夋嫨', 'model.menu.itemUnit': '椤�', @@ -196,7 +197,7 @@ 'header.form.display': '鏄剧ず鏂瑰紡', 'header.form.dropdown': '涓嬫媺鑿滃崟', 'header.form.button': '鎸夐挳', - 'header.form.style': '椋庢牸', + 'model.form.style': '椋庢牸', 'model.form.color': '棰滆壊', 'header.form.order': '鎺掑垪', 'header.form.horizontal': '妯悜', diff --git a/src/router/index.js b/src/router/index.js index 4e042d3..94d482b 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -5,6 +5,7 @@ import asyncComponent from '@/utils/asyncComponent' import asyncLoadComponent from '@/utils/asyncLoadComponent' +const Pay = asyncLoadComponent(() => import('@/views/pay')) const Main = asyncLoadComponent(() => import('@/views/main')) const Login = asyncLoadComponent(() => import('@/views/login')) const NotFound = asyncComponent(() => import('@/views/404')) @@ -14,6 +15,7 @@ const routers = [ {path: '/login', name: 'login', component: Login, auth: false}, + {path: '/pay/:param', name: 'pay', component: Pay, auth: false}, {path: '/print/:param', name: 'print', component: PrintT, auth: false}, {path: '/ssologin/:param', name: 'ssologin', auth: true}, {path: '/main', name: 'main', component: Main, auth: true}, diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx index c5f75a0..52f6d59 100644 --- a/src/tabviews/commontable/index.jsx +++ b/src/tabviews/commontable/index.jsx @@ -44,6 +44,7 @@ state = { dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, ContainerId: Utils.getuuid(), // 鑿滃崟澶栧眰html Id + BID: null, // 椤甸潰璺宠浆鏃舵惡甯D loadingview: true, // 椤甸潰鍔犺浇涓� viewlost: false, // 椤甸潰涓㈠け锛�1銆佹湭鑾峰彇鍒伴厤缃�-椤甸潰涓㈠け锛�2銆侀〉闈㈡湭鍚敤 lostmsg: '', // 椤甸潰涓㈠け鏃剁殑鎻愮ず淇℃伅 @@ -381,6 +382,7 @@ } this.setState({ + BID: param && param.BID ? param.BID : '', loadingview: false, chartId: chartId, config: config, @@ -537,6 +539,10 @@ arr_field: _option.field } + if (this.state.BID) { + param.BID = this.state.BID + } + if (this.props.dataManager) { // 鏁版嵁鏉冮檺 param.LText = param.LText.replace(/\$@/ig, '/*') param.LText = param.LText.replace(/@\$/ig, '*/') @@ -610,7 +616,7 @@ * @description 涓昏〃鏁版嵁鍔犺浇 */ async loadmaindata () { - const { setting, BIDs, search } = this.state + const { setting, BIDs, search, BID } = this.state let param = '' let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0)) @@ -635,6 +641,8 @@ } else { param = this.getDefaultParam() } + + param.BID = BID let result = await Api.genericInterface(param) if (result.status) { @@ -889,8 +897,8 @@ * @description 椤甸潰鍒锋柊锛岄噸鏂拌幏鍙栭厤缃� */ reloadview = () => { - this.setState({ loadingview: true, viewlost: false, lostmsg: '', config: {}, userConfig: null, searchlist: null, - actions: null, columns: null, arr_field: '', setting: null, data: null, total: 0, loading: false, pageIndex: 1, + this.setState({ loadingview: true, viewlost: false, lostmsg: '', + data: null, total: 0, loading: false, pageIndex: 1, pageSize: 10, orderBy: '', search: '', BIDs: {}, pickup: false }, () => { this.loadconfig() @@ -1106,7 +1114,7 @@ } render() { - const { setting, searchlist, pageSize, actions, columns, loadingview, viewlost, pickup, config, triggerBtn, userConfig, tabActive, chartId, search, selectedData } = this.state + const { BID, setting, searchlist, pageSize, actions, columns, loadingview, viewlost, pickup, config, triggerBtn, userConfig, tabActive, chartId, search, selectedData } = this.state return ( <div className="commontable pick-control" id={this.state.ContainerId}> @@ -1134,6 +1142,7 @@ {config.charts.length > 1 && item.title ? <p className="chart-table chart-title">{item.title}</p> : null} <div style={{minHeight: '25px'}}> <MainAction + BID={BID} setting={setting} actions={actions} dict={this.state.dict} @@ -1187,6 +1196,7 @@ return ( <Col span={item.width} key={item.uuid}> <CardComponent + BID={BID} plot={item} config={config} tableId="mainTable" diff --git a/src/tabviews/zshare/actionList/newpagebutton/index.jsx b/src/tabviews/zshare/actionList/newpagebutton/index.jsx index ccf1319..be6e13b 100644 --- a/src/tabviews/zshare/actionList/newpagebutton/index.jsx +++ b/src/tabviews/zshare/actionList/newpagebutton/index.jsx @@ -81,10 +81,25 @@ let msg = '&uid=' + sessionStorage.getItem('UserID') + '&sid=' + sessionStorage.getItem('SessionUid') + '&lid=' + sessionStorage.getItem('LoginUID') + '&un=' + sessionStorage.getItem('User_Name') let src = '#/print/' + window.btoa('ID=' + Id + msg + cloudmsg) window.open(src) + } else if (btn.pageTemplate === 'custom' && btn.url === 'pay') { + if (data.length !== 1) { + // 鏀粯鏃讹紝闇�瑕侀�夋嫨鍗曡鏁版嵁 + notification.warning({ + top: 92, + message: this.state.dict['main.action.confirm.selectSingleLine'], + duration: 5 + }) + return + } + let url = '#/pay/' + window.btoa(`ID=${Id}&LoginUID=${sessionStorage.getItem('LoginUID')}`) + + window.open(url) } else if (btn.pageTemplate === 'custom') { let url = btn.url - if (btn.Ot === 'requiredSgl') { - url = url + '?ID=' + Id + if (btn.Ot === 'requiredSgl' && btn.joint !== 'false') { + url = url + `?ID=${Id}&appkey=${window.GLOB.appkey}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}` + } else if (btn.joint !== 'false') { + url = url + `?appkey=${window.GLOB.appkey}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}` } window.open(url) diff --git a/src/tabviews/zshare/actionList/tabbutton/index.jsx b/src/tabviews/zshare/actionList/tabbutton/index.jsx index dab08e7..acfd936 100644 --- a/src/tabviews/zshare/actionList/tabbutton/index.jsx +++ b/src/tabviews/zshare/actionList/tabbutton/index.jsx @@ -74,17 +74,41 @@ primaryId = data[0][setting.primaryKey] || '' } - let newtab = { - MenuNo: '', - MenuID: btn.uuid, - MenuName: btn.label, - type: btn.tabTemplate, - selected: true, - param: { - parentId: this.props.MenuID, - btn: btn, - data: data[0] || null, - primaryId: primaryId + let newtab = {} + + if (btn.tabTemplate === 'FormTab') { + newtab = { + MenuNo: '', + MenuID: btn.uuid, + MenuName: btn.label, + type: btn.tabTemplate, + selected: true, + param: { + parentId: this.props.MenuID, + btn: btn, + data: data[0] || null, + primaryId: primaryId + } + } + } else if (btn.tabTemplate === 'ThdMenu') { + let _type = 'CommonTable' + if (btn.linkThdMenu && btn.linkThdMenu.PageParam) { + try { + _type = JSON.parse(btn.linkThdMenu.PageParam).Template + } catch { + _type = 'CommonTable' + } + } + + newtab = { + MenuNo: btn.linkThdMenu.MenuNo, + MenuID: btn.linkThdMenu.MenuID, + MenuName: btn.linkThdMenu.MenuName, + type: _type, + selected: true, + param: { + BID: primaryId + } } } diff --git a/src/templates/comtableconfig/index.jsx b/src/templates/comtableconfig/index.jsx index 456d14f..2a759b4 100644 --- a/src/templates/comtableconfig/index.jsx +++ b/src/templates/comtableconfig/index.jsx @@ -74,7 +74,6 @@ */ UNSAFE_componentWillMount () { const { menu, optionLibs } = this.props - let _LongParam = menu.LongParam let _config = '' @@ -1434,7 +1433,7 @@ {config.charts.length > 1 && item.title ? <p className="chart-title">{item.title}</p> : null} <ActionComponent type="main" - menu={{ MenuID: this.props.menu.MenuID, MenuName: this.props.menu.MenuName, MenuNo: this.props.menu.MenuNo }} + menu={{ MenuID: this.props.menu.MenuID, MenuName: this.props.menu.MenuName, MenuNo: this.props.menu.MenuNo, fstMenuList: this.props.menu.fstMenuList }} config={config} tabs={this.state.tabviews} menuformRef={this.menuformRef} diff --git a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx index 8a9df3f..17f211e 100644 --- a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx @@ -1,7 +1,10 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Input, Select, Icon, Radio, notification, Tooltip, InputNumber } from 'antd' +import { Form, Row, Col, Input, Select, Icon, Radio, notification, Tooltip, InputNumber, Cascader } from 'antd' import { btnIcons, btnClasses, formRule } from '@/utils/option.js' + +import Api from '@/api' +import options from '@/store/options.js' import Utils from '@/utils/utils.js' import './index.scss' @@ -68,6 +71,7 @@ UNSAFE_componentWillMount () { const { card } = this.props + let _menulist = this.props.formlist.filter(form => form.key === 'linkmenu')[0] || '' let _opentype = card.OpenType // 鎵撳紑鏂瑰紡 let _tabType = card.tabType || 'SubTable' // 鎸夐挳涓哄脊绐楋紙鏍囩锛夋椂锛屾爣绛剧殑绫诲瀷 let _options = null // 閫夐」鍒楄〃 @@ -84,10 +88,13 @@ if (_opentype === 'innerpage') { // 鏂伴〉闈紝鍙�夋ā鏉�(鑷畾涔夋椂锛屽彲濉叆澶栭儴閾炬帴) _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position'] if (card.pageTemplate === 'custom') { - _options.push('url') + _options.push('url', 'joint') } } else if (_opentype === 'blank' || _opentype === 'tab') { // 鏂版爣绛炬垨褰撳墠椤甸潰鏇挎崲 _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabTemplate'] + if (card.tabTemplate === 'ThdMenu') { + _options.push('linkmenu') + } } else if (_opentype === 'popview') { // 妯℃�佹鏍囩椤� _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabType', 'linkTab', 'popClose'] } else if (_opentype === 'excelOut') { // 瀵煎叆瀵煎嚭 @@ -123,6 +130,7 @@ } this.setState({ openType: _opentype, + menulist: _menulist.options || [], interType: card.intertype || 'inner', position: card.position || 'toolbar', funcType: card.funcType, @@ -192,10 +200,13 @@ if (value === 'innerpage') { _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position'] if (card.pageTemplate === 'custom') { - _options.push('url') + _options.push('url', 'joint') } } else if (value === 'blank' || value === 'tab') { _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabTemplate'] + if (card.tabTemplate === 'ThdMenu') { + _options.push('linkmenu') + } } else if (value === 'popview') { _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabType', 'linkTab', 'popClose'] } else if (value === 'excelOut') { @@ -390,6 +401,21 @@ _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'url', 'icon', 'class', 'position'] } else { _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position'] + } + + this.setState({ + openType: value, + formlist: this.state.formlist.map(item => { + item.hidden = !_options.includes(item.key) + + return item + }) + }) + } else if (key === 'tabTemplate') { + let _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabTemplate'] + + if (value === 'ThdMenu') { + _options.push('linkmenu') } this.setState({ @@ -627,13 +653,87 @@ </Form.Item> </Col> ) + } else if (item.type === 'cascader') { // 澶氶�� + fields.push( + <Col span={12} key={index}> + <Form.Item label={item.label}> + {getFieldDecorator(item.key, { + initialValue: item.initVal || [], + rules: [ + { + required: !!item.required, + message: this.props.dict['form.required.select'] + item.label + '!' + } + ] + })( + <Cascader + options={this.state.menulist} + loadData={this.loadData} + placeholder="" + /> + )} + </Form.Item> + </Col> + ) } }) return fields } + loadData = selectedOptions => { + const { MenuID } = this.props + const targetOption = selectedOptions[selectedOptions.length - 1] + targetOption.loading = true + + let _param = { + func: 'sPC_Get_FunMenu', + ParentID: targetOption.value, + systemType: options.sysType, + debug: 'Y' + } + + Api.getSystemConfig(_param).then(result => { + if (result.status) { + targetOption.loading = false + targetOption.children = result.data.map(item => { + let submenu = { + value: item.ParentID, + label: item.MenuNameP, + children: item.FunMenu.map(cell => { + return { + value: cell.MenuID, + label: cell.MenuName, + MenuID: cell.MenuID, + MenuName: cell.MenuName, + MenuNo: cell.MenuNo, + Ot: cell.Ot, + PageParam: cell.PageParam, + LinkUrl: cell.LinkUrl, + disabled: cell.MenuID === MenuID + } + }) + } + + return submenu + }) + + this.setState({ + menulist: [...this.state.menulist] + }) + } else { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + targetOption.loading = false + } + }) + } + handleConfirm = () => { const { setting } = this.props + const { menulist } = this.state // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { @@ -673,6 +773,25 @@ } } + // 鍏宠仈涓夌骇鑿滃崟 + if (values.OpenType === 'tab' && values.linkmenu && values.linkmenu.length > 0) { + let linkThdMenu = '' + menulist.forEach(menu => { + if (menu.value === values.linkmenu[0]) { + menu.children.forEach(item => { + if (item.value === values.linkmenu[1]) { + item.children.forEach(cell => { + if (cell.value === values.linkmenu[2]) { + linkThdMenu = cell + } + }) + } + }) + } + }) + values.linkThdMenu = linkThdMenu + } + if (values.innerFunc === '' && values.sql === '') { notification.warning({ top: 92, diff --git a/src/templates/sharecomponent/actioncomponent/index.jsx b/src/templates/sharecomponent/actioncomponent/index.jsx index 69892b4..a628cd5 100644 --- a/src/templates/sharecomponent/actioncomponent/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/index.jsx @@ -5,6 +5,7 @@ import moment from 'moment' import Api from '@/api' +import options from '@/store/options.js' import Utils from '@/utils/utils.js' import DevUtils from '@/utils/devutils.js' import zhCN from '@/locales/zh-CN/model.js' @@ -86,20 +87,81 @@ } /** - * @description 鎼滅储鏉′欢缂栬緫锛岃幏鍙栨悳绱㈡潯浠惰〃鍗曚俊鎭� + * @description 鎸夐挳缂栬緫锛岃幏鍙栨寜閽〃鍗曚俊鎭� */ handleAction = (card) => { + const { menu } = this.props let ableField = this.props.usefulFields.join(', ') let functip = <div> <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p> <p>{this.state.dict['model.tooltip.func.outface']}</p> </div> - this.setState({ - visible: true, - card: card, - formlist: getActionForm(card, functip, this.props.config, this.props.usefulFields, this.props.type) + let menulist = menu.fstMenuList.map(item => { + return { + value: item.MenuID, + label: item.text, + isLeaf: false + } }) + + if (card.linkmenu && card.linkmenu.length > 0) { + let _param = { + func: 'sPC_Get_FunMenu', + ParentID: card.linkmenu[0], + systemType: options.sysType, + debug: 'Y' + } + + Api.getSystemConfig(_param).then(result => { + if (result.status) { + menulist = menulist.map(item => { + if (item.value === card.linkmenu[0]) { + item.children = result.data.map(item => { + let submenu = { + value: item.ParentID, + label: item.MenuNameP, + children: item.FunMenu.map(cell => { + return { + value: cell.MenuID, + label: cell.MenuName, + MenuID: cell.MenuID, + MenuName: cell.MenuName, + MenuNo: cell.MenuNo, + Ot: cell.Ot, + PageParam: cell.PageParam, + LinkUrl: cell.LinkUrl, + disabled: cell.MenuID === menu.MenuID + } + }) + } + + return submenu + }) + } + return item + }) + } else { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } + + this.setState({ + visible: true, + card: card, + formlist: getActionForm(card, functip, this.props.config, this.props.usefulFields, this.props.type, menulist) + }) + }) + } else { + this.setState({ + visible: true, + card: card, + formlist: getActionForm(card, functip, this.props.config, this.props.usefulFields, this.props.type, menulist) + }) + } } /** diff --git a/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx b/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx index 7da9b0a..33eaeb7 100644 --- a/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx +++ b/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx @@ -48,7 +48,7 @@ { type: 'select', key: 'style', - label: this.props.dict['header.form.style'], + label: this.props.dict['model.form.style'], initVal: this.props.card.style, required: true, options: [{ @@ -56,7 +56,7 @@ text: this.props.dict['header.form.button'] }, { MenuID: 'text', - text: this.props.dict['model.form.text'] + text: this.props.dict['model.form.href'] }] }, { diff --git a/src/templates/sharecomponent/columncomponent/index.jsx b/src/templates/sharecomponent/columncomponent/index.jsx index 47ac705..559f5fc 100644 --- a/src/templates/sharecomponent/columncomponent/index.jsx +++ b/src/templates/sharecomponent/columncomponent/index.jsx @@ -193,8 +193,8 @@ */ editModalCancel = () => { const { card } = this.state - - if (card.focus) { + + if (card && card.focus) { let _columnlist = fromJS(this.state.columnlist).toJS() _columnlist = _columnlist.filter(item => item.uuid !== card.uuid) diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx index 38b3f14..b886073 100644 --- a/src/templates/zshare/formconfig.jsx +++ b/src/templates/zshare/formconfig.jsx @@ -921,7 +921,7 @@ * @param {*} permFuncField 瀛樺偍杩囩▼鍙敤鐨勫紑濮嬪瓧娈� * @param {*} type 鎸夐挳绫诲瀷锛岀敤浜庡尯鍒嗗彲閫夌殑鎵撳紑鏂瑰紡 */ -export function getActionForm (card, functip, config, permFuncField, type) { +export function getActionForm (card, functip, config, permFuncField, type, menulist = []) { let opentypes = [ { value: 'pop', @@ -1169,13 +1169,24 @@ { type: 'select', key: 'tabTemplate', - label: '鏍囩妯℃澘', + label: '鏍囩绫诲瀷', initVal: card.tabTemplate || 'FormTab', required: true, options: [{ value: 'FormTab', - text: '甯︽爣绛捐〃鍗�' + text: '琛ㄥ崟鏍囩椤�' + }, { + value: 'ThdMenu', + text: Formdict['model.menu.level3'] }] + }, + { + type: 'cascader', + key: 'linkmenu', + label: Formdict['model.form.linkmenu'], + initVal: card.linkmenu || [], + required: true, + options: menulist }, { type: 'select', @@ -1275,6 +1286,20 @@ options: [] }, { + type: 'radio', + key: 'joint', + label: Formdict['model.form.paramJoint'], + initVal: card.joint || 'true', + required: false, + options: [{ + value: 'true', + text: Formdict['model.true'] + }, { + value: 'false', + text: Formdict['model.false'] + }] + }, + { type: 'text', key: 'sheet', label: Formdict['model.form.tablename'], diff --git a/src/views/pay/index.jsx b/src/views/pay/index.jsx new file mode 100644 index 0000000..50b306f --- /dev/null +++ b/src/views/pay/index.jsx @@ -0,0 +1,45 @@ +import React, {Component} from 'react' + +// import Api from '@/api' +import './index.scss' + +class Pay extends Component { + state = { + orderId: '' + } + + UNSAFE_componentWillMount () { + let _param = window.atob(this.props.match.params.param) + let _params = {} + _param.split('&').forEach(cell => { + let _cell = cell.split('=') + _params[_cell[0]] = _cell[1] + }) + + if (!sessionStorage.getItem('LoginUID') && _params.LoginUID) { + sessionStorage.setItem('LoginUID', _params.LoginUID) + } + + this.setState({ + orderId: _params.ID + }) + } + + render () { + return ( + <div className="mk-pay-container"> + <div className="mk-pay-box"> + <div className="pay-tip">璇锋偍灏藉揩鏀粯锛屼互渚胯鍗曞揩閫熷鐞嗭紒</div> + <div className="mk-pay-content"> + <div>鏀粯鏂瑰紡:</div> + </div> + <div className="mk-pay-msg"> + <div>搴斾粯閲戦:</div> + </div> + </div> + </div> + ) + } +} + +export default Pay \ No newline at end of file diff --git a/src/views/pay/index.scss b/src/views/pay/index.scss new file mode 100644 index 0000000..ac98e59 --- /dev/null +++ b/src/views/pay/index.scss @@ -0,0 +1,33 @@ +.mk-pay-container { + width: 100vw; + height: 100vh; + overflow-x: hidden; + // background: #F1F2F7; + + .mk-pay-box { + margin: 0 auto; + width: 80vw; + height: calc(100vh - 40px); + margin-top: 20px; + background: #ffffff; + padding: 15px 20px; + // box-shadow: 0px 0px 3px #bcbcbc; + + .pay-tip { + color: #1890ff; + font-size: 15px; + margin-bottom: 20px; + } + + .mk-pay-content { + display: inline-block; + width: 80%; + height: calc(100% - 40px); + } + .mk-pay-msg { + display: inline-block; + width: 20%; + height: calc(100% - 40px); + } + } +} \ No newline at end of file -- Gitblit v1.8.0