| | |
| | | bgColor: '', |
| | | lineColor: '', |
| | | website: '', |
| | | style: '' // 默认为黑色,可选为white |
| | | style: '' |
| | | } |
| | |
| | | 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 |
| | |
| | | }) |
| | | |
| | | 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() |
| | |
| | | /** |
| | | * @description 登录系统, 获取用户信息 |
| | | */ |
| | | getusermsg (username, password) { |
| | | return axios({ |
| | | url: 'webapi/getjsonresult', |
| | | data: { |
| | | DBT: 'proc', |
| | | DBS: 'webapi_login', |
| | | DBP: JSON.stringify({ 'UserName': username, 'Password': 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/dologon', |
| | | data: param |
| | | }) |
| | | } |
| | | |
| | |
| | | delete _param.timestamp |
| | | delete _param.secretkey |
| | | _param = JSON.stringify(_param) |
| | | _param = md5(_param) |
| | | |
| | | if (GlobMap.has(_param)) { |
| | | return Promise.resolve(GlobMap.get(_param)) |
| | |
| | | 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()) |
| | |
| | | import './index.scss' |
| | | |
| | | const { confirm } = Modal |
| | | let previewList = null |
| | | |
| | | class EditMenu extends Component { |
| | | static propTpyes = { |
| | |
| | | } |
| | | |
| | | state = { |
| | | show: true, |
| | | dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS, |
| | | menulist: null, // 菜单列表 |
| | | type: '', // 编辑类型,add or edit |
| | | title: '', // 模态框标题 |
| | | visible: null, // 模态框是否可见 |
| | |
| | | editMenu: null, // 编辑菜单 |
| | | thawmenulist: null, // 已冻结的二级菜单 |
| | | thawMvisible: false, // 解除冻结模态框 |
| | | confirmLoading: false, // 提交中。。。 |
| | | dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS, |
| | | 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'], |
| | |
| | | } |
| | | }) |
| | | } 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' |
| | | }) |
| | | } |
| | |
| | | } |
| | | |
| | | 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 |
| | | }) |
| | | } |
| | | } |
| | | |
| | |
| | | </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> |
| | |
| | | CommonTable: nortable |
| | | } |
| | | |
| | | let previewList = null // 初始菜单列表 |
| | | |
| | | class EditMenu extends Component { |
| | | static propTpyes = { |
| | | reload: PropTypes.func, // 菜单修改后刷新 |
| | |
| | | |
| | | state = { |
| | | dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS, |
| | | show: true, // 控制菜单刷新 |
| | | thawmenulist: null, // 已冻结的二级菜单 |
| | | type: '', // 操作类型,新建或编辑菜单 |
| | | tabview: '', // 选择模板窗口(template)、基础表格配置(CommonTable)、表单(Modal)、子表(SubTable) |
| | |
| | | preview: null, // 图片预览url |
| | | pretemplate: null, // 预览模板 |
| | | btnParam: null, // 编辑按钮的配置信息 |
| | | menulist: null, // 编辑中的菜单 |
| | | sysTemplates: sysTemps // 系统模板 |
| | | } |
| | | |
| | |
| | | * @description 菜单顺序改变时,保存中间状态 |
| | | */ |
| | | 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'], |
| | |
| | | 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'], |
| | |
| | | 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'], |
| | |
| | | } |
| | | }) |
| | | } 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' |
| | | }) |
| | | } |
| | |
| | | } |
| | | |
| | | 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 |
| | | }) |
| | | } |
| | | } |
| | | |
| | |
| | | <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> |
| | |
| | | } |
| | | 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') { |
| | |
| | | _tmenu.LinkUrl = child.LinkUrl |
| | | } |
| | | |
| | | _tmenu.id = n |
| | | _tmenu.id = child.MenuID |
| | | _tmenu.MenuID = child.MenuID |
| | | _tmenu.MenuNo = child.MenuNo |
| | | _tmenu.MenuName = child.MenuName |
| | |
| | | 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 }, |
| | |
| | | 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> |
| | | ) |
| | |
| | | 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' |
| | |
| | | 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 => { |
| | |
| | | {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} |
| | |
| | | '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': '外部接口: 可自定义数据处理函数,提交数据经过内部函数处理后,传入外部接口,未设置时,数据会直接传入外部接口。', |
| | | 'form.required.input': 'Please enter the ', |
| | | 'form.required.select': '请选择' |
| | | } |
| | |
| | | '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': '按钮-编辑', |
| | |
| | | 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' |
| | | } |
| | |
| | | }, () => { |
| | | this.improveSearch() |
| | | |
| | | if (config.setting.onload !== 'false') { |
| | | if (config.setting.onload !== 'false') { // 初始化可加载 |
| | | this.loadmaindata() |
| | | } |
| | | }) |
| | |
| | | |
| | | this.handleTableId('mainTable', '') |
| | | |
| | | if (!param) { // 未获取参数时,不发请求 |
| | | return |
| | | } |
| | | |
| | | let result = await Api.genericInterface(param) |
| | | if (result.status) { |
| | | this.setState({ |
| | |
| | | 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 : '' |
| | |
| | | */ |
| | | async loadconfig () { |
| | | const { permAction } = this.props |
| | | console.log(permAction) |
| | | |
| | | let param = { |
| | | func: 'sPC_Get_LongParam', |
| | | MenuID: this.props.MenuID |
| | |
| | | }) |
| | | } |
| | | |
| | | resetform = (formlist, supfields, index) => { |
| | | resetform = (formlist, supfields, index, fieldsvalue) => { |
| | | index++ |
| | | let subfields = [] |
| | | |
| | |
| | | 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) |
| | | } |
| | |
| | | }) |
| | | |
| | | 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) |
| | | } |
| | | } |
| | | |
| | |
| | | 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) |
| | | } |
| | |
| | | |
| | | 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 |
| | | }) |
| | | }) |
| | | }) |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | 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( |
| | |
| | | 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 = '' |
| | |
| | | }] |
| | | }, |
| | | { |
| | | 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'], |
| | |
| | | |
| | | 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'] |
| | |
| | | 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 |
| | | }) |
| | | }) |
| | |
| | | |
| | | 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'] |
| | |
| | | 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 |
| | | }) |
| | |
| | | this.setState({ |
| | | formlist: this.state.formlist.map(form => { |
| | | if (form.key === 'initval' && value !== 'fileupload' && value !== 'funcvar') { |
| | | form.hidden = false |
| | | form.show = true |
| | | } |
| | | return form |
| | | }) |
| | |
| | | this.setState({ |
| | | resourceType: value, |
| | | formlist: this.state.formlist.map(form => { |
| | | form.hidden = !_options.includes(form.key) |
| | | form.show = _options.includes(form.key) |
| | | return form |
| | | }) |
| | | }) |
| | |
| | | const fields = [] |
| | | |
| | | this.state.formlist.forEach((item, index) => { |
| | | if (item.hidden) return |
| | | if (!item.show) return |
| | | |
| | | if (item.type === 'text') { // 文本搜索 |
| | | let rules = [] |
| | |
| | | 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) |
| | | } |
| | | }) |
| | |
| | | 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、encode编码(中文字符超出base64加密范围),2、base64加密 |
| | | 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加密 |
| | |
| | | _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 => { |
| | |
| | | } |
| | | } else { |
| | | message.warning(res.message) |
| | | this.setState({ |
| | | isDisabled: false |
| | | }) |
| | | } |
| | | }) |
| | | } else { |