From a0a285c90987eb9b1591f90333f3aeb15659ded2 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 17 一月 2020 19:04:57 +0800 Subject: [PATCH] 2020-01-17 --- src/tabviews/tableshare/mutilform/index.jsx | 37 ++++-- src/components/header/index.jsx | 2 src/components/sidemenu/editsecmenu/index.jsx | 55 +++++----- src/components/sidemenu/editthdmenu/index.jsx | 38 ++++--- src/store/options.js | 3 src/templates/modalconfig/modalform/index.jsx | 21 +-- src/templates/modalconfig/index.jsx | 13 ++ src/api/index.js | 35 ++++-- src/components/sidemenu/menuelement/card.jsx | 8 src/tabviews/subtable/index.jsx | 2 src/components/sidemenu/index.jsx | 18 ++- src/locales/zh-CN/comtable.js | 1 src/tabviews/commontable/index.jsx | 15 ++ src/templates/tableshare/transferform/index.jsx | 2 public/options.js | 2 src/locales/en-US/comtable.js | 11 ++ src/components/sidemenu/menuelement/index.jsx | 12 +- src/utils/utils.js | 20 --- src/views/login/index.jsx | 3 19 files changed, 177 insertions(+), 121 deletions(-) diff --git a/public/options.js b/public/options.js index ae3dfc9..10cbf68 100644 --- a/public/options.js +++ b/public/options.js @@ -12,5 +12,5 @@ bgColor: '', lineColor: '', website: '', - style: '' // 榛樿涓洪粦鑹诧紝鍙�変负white + style: '' } \ No newline at end of file diff --git a/src/api/index.js b/src/api/index.js index b89eb20..5984450 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,8 +1,8 @@ import axios from 'axios' import qs from 'qs' import {notification } from 'antd' -// import md5 from 'md5' -// import Utils from '@/utils/utils.js' +import md5 from 'md5' +import Utils from '@/utils/utils.js' import options from '@/store/options.js' axios.defaults.crossDomain = true @@ -26,10 +26,10 @@ }) const setCurrentUrl = () => { - if (!!(window.history && window.history.pushState)) { - window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') - window.location.reload() - } + // if (!!(window.history && window.history.pushState)) { + // window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') + // window.location.reload() + // } } let GlobMap = new Map() @@ -93,14 +93,22 @@ /** * @description 鐧诲綍绯荤粺, 鑾峰彇鐢ㄦ埛淇℃伅 */ - getusermsg (username, password) { + getusermsg (username, password, isCloud = false) { + let param = { + // func: 'webapi_login', + UserName: username, + Password: password, + Type: 'X' + } + param.Password = Utils.formatOptions(param.Password) + + if (isCloud && options.cloudLoginApi) { + param.rduri = options.cloudLoginApi + } + return axios({ - url: 'webapi/getjsonresult', - data: { - DBT: 'proc', - DBS: 'webapi_login', - DBP: JSON.stringify({ 'UserName': username, 'Password': password }) - } + url: '/webapi/dologon', + data: param }) } @@ -169,6 +177,7 @@ delete _param.timestamp delete _param.secretkey _param = JSON.stringify(_param) + _param = md5(_param) if (GlobMap.has(_param)) { return Promise.resolve(GlobMap.get(_param)) diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx index 298bdb9..3071e27 100644 --- a/src/components/header/index.jsx +++ b/src/components/header/index.jsx @@ -249,7 +249,7 @@ loginLoading: true }) this.loginRef.handleConfirm().then(param => { - Api.getusermsg(param.username, param.password).then(res => { + Api.getusermsg(param.username, param.password, true).then(res => { if (res.status) { sessionStorage.setItem('CloudUserID', res.UserID) sessionStorage.setItem('CloudSessionUid', Utils.getuuid()) diff --git a/src/components/sidemenu/editsecmenu/index.jsx b/src/components/sidemenu/editsecmenu/index.jsx index 12d8c85..a16955f 100644 --- a/src/components/sidemenu/editsecmenu/index.jsx +++ b/src/components/sidemenu/editsecmenu/index.jsx @@ -15,39 +15,39 @@ import './index.scss' const { confirm } = Modal -let previewList = null class EditMenu extends Component { static propTpyes = { - menulist: PropTypes.any, // 浜岀骇鑿滃崟鍒楄〃 + menulist: PropTypes.any, // 浜岀骇鑿滃崟鍒楄〃 supMenuList: PropTypes.array, // 涓�绾ц彍鍗曞垪琛� - supMenu: PropTypes.object, // 浜岀骇鑿滃崟鎵�瀵瑰簲鐨勪竴绾ц彍鍗� - reload: PropTypes.func, // 鍒锋柊浜岀骇鑿滃崟鏁版嵁 - exitEdit: PropTypes.func // 閫�鍑虹紪杈� + supMenu: PropTypes.object, // 浜岀骇鑿滃崟鎵�瀵瑰簲鐨勪竴绾ц彍鍗� + reload: PropTypes.func, // 鍒锋柊浜岀骇鑿滃崟鏁版嵁 + exitEdit: PropTypes.func // 閫�鍑虹紪杈� } state = { - show: true, - type: '', // 缂栬緫绫诲瀷锛宎dd or edit - title: '', // 妯℃�佹鏍囬 - visible: null, // 妯℃�佹鏄惁鍙 - formlist: null, // 琛ㄥ崟淇℃伅 - editMenu: null, // 缂栬緫鑿滃崟 - thawmenulist: null, // 宸插喕缁撶殑浜岀骇鑿滃崟 - thawMvisible: false, // 瑙i櫎鍐荤粨妯℃�佹 - confirmLoading: false, // 鎻愪氦涓�傘�傘�� dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS, + menulist: null, // 鑿滃崟鍒楄〃 + type: '', // 缂栬緫绫诲瀷锛宎dd or edit + title: '', // 妯℃�佹鏍囬 + visible: null, // 妯℃�佹鏄惁鍙 + formlist: null, // 琛ㄥ崟淇℃伅 + editMenu: null, // 缂栬緫鑿滃崟 + thawmenulist: null, // 宸插喕缁撶殑浜岀骇鑿滃崟 + thawMvisible: false, // 瑙i櫎鍐荤粨妯℃�佹 + confirmLoading: false // 鎻愪氦涓�傘�傘�� } handlePreviewList = (List) => { - // 鑿滃崟椤哄簭鏀瑰彉鏃讹紝淇濆瓨涓棿鐘舵�� - previewList = List + this.setState({ + menulist: List + }) } handleMenu = (menu) => { // 鑿滃崟缂栬緫锛氫慨鏀广�佸垹闄わ紝濡傝彍鍗曢『搴忓凡鏀瑰彉锛屾彁绀轰繚瀛樿彍鍗曢『搴� const _this = this - if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) { + if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) { notification.warning({ top: 92, message: this.state.dict['header.menu.presave'], @@ -187,11 +187,11 @@ } }) } else if (type === 'confirm') { // 纭畾鏃跺叆椤哄簭鏀瑰彉锛屽垯鎻愮ず淇濆瓨锛屽惁鍒欓��鍑虹紪杈� - if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) { + if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) { let _this = this let param = { func: 'sPC_Menu_SortUpt', - LText: previewList.map((item, index) => { + LText: this.state.menulist.map((item, index) => { return 'select \'' + item.MenuID + '\' as Menuid,' + (index + 1) * 10 + ' as sort' }) } @@ -362,15 +362,16 @@ } UNSAFE_componentWillMount () { - previewList = null + this.setState({ + menulist: this.props.menulist + }) } UNSAFE_componentWillReceiveProps (nextProps) { if (!is(fromJS(this.props.menulist), fromJS(nextProps.menulist))) { - this.setState({show: false}) - setTimeout(() => { - this.setState({show: true}) - }, 10) + this.setState({ + menulist: nextProps.menulist + }) } } @@ -397,13 +398,13 @@ </div> </div> </div> - {this.state.show && <DndProvider backend={HTML5Backend}> + <DndProvider backend={HTML5Backend}> <DragElement - list={this.props.menulist} + list={this.state.menulist} handlePreviewList={this.handlePreviewList} handleMenu={this.handleMenu} /> - </DndProvider>} + </DndProvider> <div className="menu-add" onClick={() => {this.handleSubBtn('add')}}> <Icon type="plus" /> </div> diff --git a/src/components/sidemenu/editthdmenu/index.jsx b/src/components/sidemenu/editthdmenu/index.jsx index 2af730f..b747b99 100644 --- a/src/components/sidemenu/editthdmenu/index.jsx +++ b/src/components/sidemenu/editthdmenu/index.jsx @@ -30,8 +30,6 @@ CommonTable: nortable } -let previewList = null // 鍒濆鑿滃崟鍒楄〃 - class EditMenu extends Component { static propTpyes = { reload: PropTypes.func, // 鑿滃崟淇敼鍚庡埛鏂� @@ -43,7 +41,6 @@ state = { dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS, - show: true, // 鎺у埗鑿滃崟鍒锋柊 thawmenulist: null, // 宸插喕缁撶殑浜岀骇鑿滃崟 type: '', // 鎿嶄綔绫诲瀷锛屾柊寤烘垨缂栬緫鑿滃崟 tabview: '', // 閫夋嫨妯℃澘绐楀彛锛坱emplate锛夈�佸熀纭�琛ㄦ牸閰嶇疆锛圕ommonTable锛夈�佽〃鍗曪紙Modal锛夈�佸瓙琛紙SubTable锛� @@ -59,6 +56,7 @@ preview: null, // 鍥剧墖棰勮url pretemplate: null, // 棰勮妯℃澘 btnParam: null, // 缂栬緫鎸夐挳鐨勯厤缃俊鎭� + menulist: null, // 缂栬緫涓殑鑿滃崟 sysTemplates: sysTemps // 绯荤粺妯℃澘 } @@ -66,7 +64,9 @@ * @description 鑿滃崟椤哄簭鏀瑰彉鏃讹紝淇濆瓨涓棿鐘舵�� */ handlePreviewList = (List) => { - previewList = List + this.setState({ + menulist: List + }) } /** @@ -77,7 +77,8 @@ */ handleMenu = (menu) => { const _this = this - if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) { + + if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) { notification.warning({ top: 92, message: this.state.dict['header.menu.presave'], @@ -168,7 +169,7 @@ handleSubBtn = (type) => { // 鎿嶄綔鎸夐挳锛氭坊鍔犮�佽В闄ゅ喕缁撱�佺‘璁ゅ強鍏抽棴 if (type === 'add') { // 鐐瑰嚮娣诲姞鏃讹紝灞曞紑妯℃澘 - if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) { + if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) { notification.warning({ top: 92, message: this.state.dict['header.menu.presave'], @@ -179,7 +180,7 @@ this.setState({tabview: 'template', type: 'add'}) document.getElementById('root').style.overflowY = 'hidden' } else if (type === 'thaw') { - if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) { + if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) { notification.warning({ top: 92, message: this.state.dict['header.menu.presave'], @@ -213,11 +214,11 @@ } }) } else if (type === 'confirm') { - if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) { + if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) { let _this = this let param = { func: 'sPC_Menu_SortUpt', - LText: previewList.map((item, index) => { + LText: this.state.menulist.map((item, index) => { return 'select \'' + item.MenuID + '\' as Menuid,' + (index + 1) * 10 + ' as sort' }) } @@ -500,17 +501,18 @@ } UNSAFE_componentWillMount () { - previewList = null this.getUsedTemplate() + + this.setState({ + menulist: this.props.menulist + }) } UNSAFE_componentWillReceiveProps (nextProps) { if (!is(fromJS(this.props.menulist), fromJS(nextProps.menulist))) { - previewList = null - this.setState({show: false}) - setTimeout(() => { - this.setState({show: true}) - }, 10) + this.setState({ + menulist: nextProps.menulist + }) } } @@ -543,13 +545,13 @@ <Icon type={this.props.supMenu.PageParam.Icon} /> <span>{this.props.supMenu.text}</span> </div> - {this.state.show && <DndProvider backend={HTML5Backend}> + <DndProvider backend={HTML5Backend}> <DragElement - list={this.props.menulist} + list={this.state.menulist} handlePreviewList={this.handlePreviewList} handleMenu={this.handleMenu} /> - </DndProvider>} + </DndProvider> <div className="menu-add" onClick={() => {this.handleSubBtn('add')}}> <Icon type="plus" /> </div> diff --git a/src/components/sidemenu/index.jsx b/src/components/sidemenu/index.jsx index 1bdb8b8..c1080e3 100644 --- a/src/components/sidemenu/index.jsx +++ b/src/components/sidemenu/index.jsx @@ -73,29 +73,35 @@ } let parentID = submenuId ? submenuId : result.data[0].ParentID // 灞曞紑浜岀骇鑿滃崟ID - let menulist = result.data.map((item, i) => { + let menulist = result.data.map(item => { let _smenu = {} - _smenu.id = i + _smenu.id = item.ParentID _smenu.MenuID = item.ParentID _smenu.text = item.MenuNameP + try { _smenu.PageParam = JSON.parse(item.PageParamP) } catch (e) { _smenu.PageParam = {Icon: 'folder'} } if (item.FunMenu) { - _smenu.children = item.FunMenu.map((child, n) => { + _smenu.children = item.FunMenu.map(child => { let _tmenu = {} - let _msg = window.btoa('mm=' + menu.MenuID + '&sm=' + _smenu.MenuID + '&tm=' + child.MenuID + '&ud=' + msg) // 寰呭畬鍠� - _tmenu.src = '#/main/' + _msg + + // 鎵撳紑鏂伴〉闈㈤摼鎺� + _tmenu.src = '#/main/' + window.btoa('mm=' + menu.MenuID + '&sm=' + _smenu.MenuID + '&tm=' + child.MenuID + '&ud=' + msg) + if (child.LinkUrl === 'CommonTable') { _tmenu.type = 'CommonTable' } else if (child.LinkUrl === 'DataManage') { _tmenu.type = 'DataManage' + _tmenu.forbidden = true // } else if (child.LinkUrl === 'bda/rdt?pageno=rolemenus&MenuNo=RoleMenuM') { // _tmenu.type = 'RoleManage' + // _tmenu.forbidden = true } else if (child.LinkUrl.split('?')[0] === 'Main/Index' || child.LinkUrl.split('?')[0] === 'bda/rdt') { _tmenu.type = 'iframe' + _tmenu.forbidden = true } if (_tmenu.type !== 'iframe') { @@ -109,7 +115,7 @@ _tmenu.LinkUrl = child.LinkUrl } - _tmenu.id = n + _tmenu.id = child.MenuID _tmenu.MenuID = child.MenuID _tmenu.MenuNo = child.MenuNo _tmenu.MenuName = child.MenuName diff --git a/src/components/sidemenu/menuelement/card.jsx b/src/components/sidemenu/menuelement/card.jsx index 7a675b9..d50f41e 100644 --- a/src/components/sidemenu/menuelement/card.jsx +++ b/src/components/sidemenu/menuelement/card.jsx @@ -4,7 +4,7 @@ import ItemTypes from './itemtypes' import './index.scss' -const Card = ({ id, icon, text, menutype, moveCard, findCard, editCard, closeCard }) => { +const Card = ({ id, card, moveCard, findCard, editCard, closeCard }) => { const originalIndex = findCard(id).index const [{ isDragging }, drag] = useDrag({ item: { type: ItemTypes.CARD, id, originalIndex }, @@ -34,10 +34,10 @@ return ( <div className="side-card" style={{ opacity }}> <div ref={node => drag(drop(node))}> - {icon && <Icon type={icon} />} - {text} + {card.PageParam && card.PageParam.Icon && <Icon type={card.PageParam.Icon} />} + {card.text} </div> - {menutype === 'CommonTable' ? <Icon className="edit" type="edit" onClick={edit} /> : null} + {!card.forbidden ? <Icon className="edit" type="edit" onClick={edit} /> : null} <Icon className="close" type="close" onClick={close} /> </div> ) diff --git a/src/components/sidemenu/menuelement/index.jsx b/src/components/sidemenu/menuelement/index.jsx index 4473b09..05fc86d 100644 --- a/src/components/sidemenu/menuelement/index.jsx +++ b/src/components/sidemenu/menuelement/index.jsx @@ -1,5 +1,6 @@ import React, { useState } from 'react' import { useDrop } from 'react-dnd' +import { is, fromJS } from 'immutable' import update from 'immutability-helper' import Card from './card' import ItemTypes from './itemtypes' @@ -10,8 +11,11 @@ const moveCard = (id, atIndex) => { const { card, index } = findCard(id) const _cards = update(cards, { $splice: [[index, 1], [atIndex, 0, card]] }) - setCards(_cards) handlePreviewList(_cards) + } + + if (!is(fromJS(cards), fromJS(list))) { + setCards(list) } const findCard = id => { @@ -46,10 +50,8 @@ {cards.map(card => ( <Card key={card.id} - id={`${card.id}`} - icon={card.PageParam && card.PageParam.Icon} - menutype={card.type} - text={card.text} + id={card.id} + card={card} moveCard={moveCard} editCard={editCard} closeCard={closeCard} diff --git a/src/locales/en-US/comtable.js b/src/locales/en-US/comtable.js index ed31042..0dce9ee 100644 --- a/src/locales/en-US/comtable.js +++ b/src/locales/en-US/comtable.js @@ -172,6 +172,17 @@ 'header.form.request.method': '璇锋眰鏂瑰紡', 'header.form.readonly': '鏄惁鍙', 'header.form.field.required': '鏄惁蹇呭~', + 'header.form.field.ishidden': '鏄惁闅愯棌', + 'header.modal.form.edit': '琛ㄥ崟-缂栬緫', + 'header.modal.search.edit': '鎼滅储鏉′欢-缂栬緫', + 'header.modal.action.edit': '鎸夐挳-缂栬緫', + 'header.modal.action.copy': '鎸夐挳-澶嶅埗', + 'header.modal.column.edit': '鏄剧ず鍒�-缂栬緫', + 'header.modal.colspan.edit': '鍚堝苟鍒�-缂栬緫', + 'header.modal.gridbtn.edit': '鎿嶄綔鍒�-缂栬緫', + 'header.modal.tabs.edit': '鏍囩-缂栬緫', + 'header.modal.func.innerface': '鍐呴儴鎺ュ彛: 鍙嚜瀹氫箟鏁版嵁澶勭悊鍑芥暟锛屽嚱鏁板悕绉伴渶浠ableField绛夊瓧绗﹀紑濮嬶紱鏈缃椂浼氳皟鐢ㄧ郴缁熷嚱鏁帮紝浣跨敤绯荤粺鍑芥暟闇�瀹屽杽鏁版嵁婧愬強鎿嶄綔绫诲瀷;', + 'header.modal.func.outface': '澶栭儴鎺ュ彛: 鍙嚜瀹氫箟鏁版嵁澶勭悊鍑芥暟锛屾彁浜ゆ暟鎹粡杩囧唴閮ㄥ嚱鏁板鐞嗗悗锛屼紶鍏ュ閮ㄦ帴鍙o紝鏈缃椂锛屾暟鎹細鐩存帴浼犲叆澶栭儴鎺ュ彛銆�', 'form.required.input': 'Please enter the ', 'form.required.select': '璇烽�夋嫨' } \ No newline at end of file diff --git a/src/locales/zh-CN/comtable.js b/src/locales/zh-CN/comtable.js index 0ae9ee5..cb7c839 100644 --- a/src/locales/zh-CN/comtable.js +++ b/src/locales/zh-CN/comtable.js @@ -172,6 +172,7 @@ 'header.form.request.method': '璇锋眰鏂瑰紡', 'header.form.readonly': '鏄惁鍙', 'header.form.field.required': '鏄惁蹇呭~', + 'header.form.field.ishidden': '鏄惁闅愯棌', 'header.modal.form.edit': '琛ㄥ崟-缂栬緫', 'header.modal.search.edit': '鎼滅储鏉′欢-缂栬緫', 'header.modal.action.edit': '鎸夐挳-缂栬緫', diff --git a/src/store/options.js b/src/store/options.js index b670fdc..6cb4f12 100644 --- a/src/store/options.js +++ b/src/store/options.js @@ -2,6 +2,9 @@ export default { AppId: '201912040924165801464FF1788654BC5AC73', cloudServiceApi: 'http://qingqiumarket.cn/mkwms/webapi/dostar', + cloudLoginApi: 'http://qingqiumarket.cn/mkwms/webapi/dologon', + // cloudServiceApi: 'http://cloud.mk9h.cn/webapi/dostar', + // cloudLoginApi: 'http://cloud.mk9h.cn/webapi/dologon', cloudDatabase: 'sqlserver', localDatabase: 'mysql' } \ No newline at end of file diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx index d099e40..14b1a3a 100644 --- a/src/tabviews/commontable/index.jsx +++ b/src/tabviews/commontable/index.jsx @@ -187,7 +187,7 @@ }, () => { this.improveSearch() - if (config.setting.onload !== 'false') { + if (config.setting.onload !== 'false') { // 鍒濆鍖栧彲鍔犺浇 this.loadmaindata() } }) @@ -318,6 +318,10 @@ this.handleTableId('mainTable', '') + if (!param) { // 鏈幏鍙栧弬鏁版椂锛屼笉鍙戣姹� + return + } + let result = await Api.genericInterface(param) if (result.status) { this.setState({ @@ -378,6 +382,15 @@ getDefaultParam = () => { const { arr_field, pageIndex, pageSize, orderColumn, orderType, search, setting } = this.state + if (!arr_field) { + notification.warning({ + top: 92, + message: '鏈缃樉绀哄垪锛�', + duration: 10 + }) + return null + } + let _search = Utils.joinMainSearchkey(search) _search = _search ? 'where ' + _search : '' diff --git a/src/tabviews/subtable/index.jsx b/src/tabviews/subtable/index.jsx index aed40e9..ee5fa1e 100644 --- a/src/tabviews/subtable/index.jsx +++ b/src/tabviews/subtable/index.jsx @@ -66,7 +66,7 @@ */ async loadconfig () { const { permAction } = this.props - console.log(permAction) + let param = { func: 'sPC_Get_LongParam', MenuID: this.props.MenuID diff --git a/src/tabviews/tableshare/mutilform/index.jsx b/src/tabviews/tableshare/mutilform/index.jsx index 064cd74..8e141ae 100644 --- a/src/tabviews/tableshare/mutilform/index.jsx +++ b/src/tabviews/tableshare/mutilform/index.jsx @@ -139,7 +139,7 @@ }) } - resetform = (formlist, supfields, index) => { + resetform = (formlist, supfields, index, fieldsvalue) => { index++ let subfields = [] @@ -148,7 +148,8 @@ if (item.type === 'link' && item.linkField === supfield.field) { item.options = item.oriOptions.filter(option => option.parentId === supfield.initval) item.initval = item.options[0] ? item.options[0].Value : '' - item.hiden = true + + fieldsvalue[item.field] = item.initval subfields.push(item) } @@ -157,9 +158,10 @@ }) if (subfields.length === 0 || index > 6) { + this.props.form.setFieldsValue(fieldsvalue) return formlist } else { - return this.resetform(formlist, subfields, index) + return this.resetform(formlist, subfields, index, fieldsvalue) } } @@ -167,11 +169,13 @@ let formlist = JSON.parse(JSON.stringify(this.state.formlist)) let subfields = [] + let fieldsvalue = {} formlist = formlist.map(item => { if (item.type === 'link' && item.linkField === _field.field) { item.options = item.oriOptions.filter(option => option.parentId === value) item.initval = item.options[0] ? item.options[0].Value : '' - item.hiden = true + + fieldsvalue[item.field] = item.initval subfields.push(item) } @@ -190,16 +194,10 @@ if (subfields.length === 0) return - formlist = this.resetform(formlist, subfields, 0) + formlist = this.resetform(formlist, subfields, 0, fieldsvalue) + this.setState({ formlist: formlist - }, () => { - this.setState({ - formlist: formlist.map(item => { - item.hiden = false - return item - }) - }) }) } @@ -226,8 +224,8 @@ } this.state.formlist.forEach((item, index) => { - if ((!item.field && item.type !== 'title') || item.hiden) return - + if ((!item.field && item.type !== 'title') || item.hidden === 'true') return + if (item.type === 'title') { fields.push( <Col span={24} key={index}> @@ -500,6 +498,17 @@ this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { let search = [] + // 闅愯棌琛ㄥ崟 + this.state.formlist.forEach(item => { + if (item.hidden !== 'true' || !item.field) return + search.push({ + type: this.state.datatype[item.field], + readonly: this.state.readtype[item.field], + key: item.field, + value: item.initval + }) + }) + Object.keys(values).forEach(key => { if (this.state.datatype[key] === 'datetime') { let _value = '' diff --git a/src/templates/modalconfig/index.jsx b/src/templates/modalconfig/index.jsx index b3cdf2a..56e6cd4 100644 --- a/src/templates/modalconfig/index.jsx +++ b/src/templates/modalconfig/index.jsx @@ -535,6 +535,19 @@ }] }, { + type: 'radio', + key: 'hidden', + label: this.state.dict['header.form.field.ishidden'], + initVal: card.hidden || 'false', + options: [{ + value: 'true', + text: this.state.dict['header.form.true'] + }, { + value: 'false', + text: this.state.dict['header.form.false'] + }] + }, + { type: 'multiselect', key: 'linkSubField', label: this.state.dict['header.form.linkForm'], diff --git a/src/templates/modalconfig/modalform/index.jsx b/src/templates/modalconfig/modalform/index.jsx index ff106e1..37555a0 100644 --- a/src/templates/modalconfig/modalform/index.jsx +++ b/src/templates/modalconfig/modalform/index.jsx @@ -26,7 +26,7 @@ let type = formlist.filter(cell => cell.key === 'type')[0].initVal let resourceType = formlist.filter(cell => cell.key === 'resourceType')[0].initVal - let _options = ['label', 'field', 'initval', 'type', 'readonly', 'required'] // 榛樿鏄剧ず椤� + let _options = ['label', 'field', 'initval', 'type', 'readonly', 'required', 'hidden'] // 榛樿鏄剧ず椤� if ((type === 'multiselect' || type === 'select' || type === 'link') && resourceType === '0') { // 閫夋嫨绫诲瀷銆佽嚜瀹氫箟璧勬簮 _options = [..._options, 'resourceType', 'options'] @@ -55,9 +55,8 @@ form.type = 'select' } else if (type === 'number' && form.key === 'initval') { form.type = 'number' - form.initVal = 0 } - form.hidden = !_options.includes(form.key) + form.show = _options.includes(form.key) return form }) }) @@ -78,7 +77,7 @@ openTypeChange = (key, value) => { if (key === 'type') { - let _options = ['label', 'field', 'initval', 'type', 'readonly', 'required'] + let _options = ['label', 'field', 'initval', 'type', 'readonly', 'required', 'hidden'] if ((value === 'multiselect' || value === 'select' || value === 'link') && this.state.resourceType === '0') { // 閫夋嫨绫诲瀷銆佽嚜瀹氫箟璧勬簮 _options = [..._options, 'resourceType', 'options'] @@ -101,20 +100,18 @@ this.setState({ openType: value, formlist: this.state.formlist.map(form => { - form.hidden = !_options.includes(form.key) + form.show = _options.includes(form.key) if (form.key === 'initval') { if (dateOptions.hasOwnProperty(value)) { form.options = dateOptions[value] form.type = 'select' - form.initVal = '' } else if (value === 'number') { form.type = 'number' - form.initVal = 0 } else { form.type = 'text' - form.initVal = '' } - form.hidden = true + form.initVal = '' + form.show = false } return form }) @@ -122,7 +119,7 @@ this.setState({ formlist: this.state.formlist.map(form => { if (form.key === 'initval' && value !== 'fileupload' && value !== 'funcvar') { - form.hidden = false + form.show = true } return form }) @@ -151,7 +148,7 @@ this.setState({ resourceType: value, formlist: this.state.formlist.map(form => { - form.hidden = !_options.includes(form.key) + form.show = _options.includes(form.key) return form }) }) @@ -163,7 +160,7 @@ const fields = [] this.state.formlist.forEach((item, index) => { - if (item.hidden) return + if (!item.show) return if (item.type === 'text') { // 鏂囨湰鎼滅储 let rules = [] diff --git a/src/templates/tableshare/transferform/index.jsx b/src/templates/tableshare/transferform/index.jsx index 339461d..2bc1f6c 100644 --- a/src/templates/tableshare/transferform/index.jsx +++ b/src/templates/tableshare/transferform/index.jsx @@ -27,7 +27,7 @@ UNSAFE_componentWillMount() { let datas = new Map() this.props.columns.forEach(item => { - if (item.field) { + if (item.field && item.Hide !== 'true') { datas.set(item.uuid, item) } }) diff --git a/src/utils/utils.js b/src/utils/utils.js index 50e592c..f4c00ea 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -166,25 +166,11 @@ value = value.replace(/%/ig, 'mpercent') value = value.replace(/(^\s|\s$)/ig, '') - // value = value.replace(/>/ig, 'greateror') - // .replace(/</ig, 'lessor') - // .replace(/!=/ig, 'noequal') - // .replace(/=/ig, 'equal') - // .replace(/,/ig, 'comma') - // .replace(/>=/ig, 'greaterorequal') - // .replace(/<=/ig, 'lessorequal') - // .replace(/@/ig, 'matk') - // .replace(/\(/ig, 'mlbrktsk') - // .replace(/\)/ig, 'mrbrktsk') - // .replace(/\*/ig, 'mastrsk') - // .replace(/'/ig, 'mqotek') - // .replace(/\s/ig, 'mspace') - // 1銆乪ncode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛夛紝2銆乥ase64鍔犲瘑 value = window.btoa(window.encodeURIComponent(value)) - // 闅忔満鎻掑叆瀛楃 - let index = Math.floor(Math.random() * value.length) + // 鎻掑叆瀛楃 + let index = Math.floor(value.length / 2) value = value.slice(0, index) + salt + value.slice(index) // base64鍔犲瘑 @@ -625,7 +611,7 @@ _sql += `declare @UserName nvarchar(50),@FullName nvarchar(50) select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID ` - _sql += `insert into ${btn.sql} (${keys},createuserid,CreateUser,CreateStaff,BID) select ${values},@BID,@userid,@username,@fullname` + _sql += `insert into ${btn.sql} (${keys},createuserid,CreateUser,CreateStaff,BID) select ${values},@userid,@username,@fullname,@BID` } else if (btn.OpenType === 'pop' && btn.sqlType === 'update') { let _form = [] formdata.forEach(item => { diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index c36e6b2..7e86c78 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -84,6 +84,9 @@ } } else { message.warning(res.message) + this.setState({ + isDisabled: false + }) } }) } else { -- Gitblit v1.8.0