From 461e4fff4b51d067671244eec63b097cd9012b6e Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 30 三月 2020 09:25:41 +0800 Subject: [PATCH] 2020-03-30 --- src/templates/zshare/createinterface/index.jsx | 284 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 143 insertions(+), 141 deletions(-) diff --git a/src/templates/zshare/createinterface/index.jsx b/src/templates/zshare/createinterface/index.jsx index bb867db..aab31f6 100644 --- a/src/templates/zshare/createinterface/index.jsx +++ b/src/templates/zshare/createinterface/index.jsx @@ -17,27 +17,144 @@ loading: false, } - exec = (innerFunc, newLText, DelText) => { + exec = (menu, config) => { + let _grid = [] + let _fields = [] + let _index = 1 + + config.columns.forEach(item => { + if (!item.field || item.type === 'colspan') return + + let _type = `nvarchar(${item.fieldlength || 50})` + + if (item.type === 'number') { + _type = `decimal(18,${item.decimal ? item.decimal : 0})` + } else if (item.type === 'picture' || item.type === 'textarea') { + _type = `nvarchar(${item.fieldlength || 512})` + } + + _grid.push(item.field) + _fields.push(`select '${item.field}' as gridfield,'${_type}' as fieldtype,'${item.label}' as label,'${_index}' as Sort`) + _index++ + }) + + let _search = [] + _index = 1 + + if (menu.type !== 'main') { + if (config.setting.dataresource && /@BID@/ig.test(config.setting.dataresource)) { + _search.push(`select 'BID' as searchfield,'BID' as label,'0' as Sort,'' as defaultvalue,'required' as DefaultType`) + _index++ + } else { + _search.push(`select 'BID' as searchfield,'BID' as label,'0' as Sort,'' as defaultvalue,'' as DefaultType`) + _index++ + } + } + + let _fieldMap = new Map() + + config.search.forEach(item => { + let fields = [item.field] + let _val = item.initval + + if (item.type === 'text') { + fields = item.field.split(',') + } + if (/^date/ig.test(item.type)) { + _val = '' + } + + if (item.type === 'datemonth' || item.type === 'dateweek' || item.type === 'daterange') { + fields = [item.field, item.field] + } + + fields.forEach(cell => { + let _field = cell + if (_fieldMap.has(cell)) { + _field = _field + '1' + } + + _fieldMap.set(cell, true) + + _search.push(`select '${_field}' as searchfield,'${item.label}' as label,'${_index}' as Sort,'${_val}' as defaultvalue,'${item.required === 'true' ? 'required' : ''}' as DefaultType`) + _index++ + }) + }) + + let searchText = [] + _fieldMap = new Map() + + config.search.forEach((item, i) => { + if (item.type === 'text') { + let str = item.match === '=' ? '' : '\'%\'' + let _fields_ = item.field.split(',').map(field => { // 缁煎悎鎼滅储锛屾墍瀛楁鎷兼帴 + + return field + ' ' + item.match + ` ${str ? str + '+' : ''}@` + field + `@${str ? '+' + str : ''}` + }) + + if (_fields_.length === 1) { + searchText.push(_fields_[0]) + } else { + searchText.push('(' + _fields_.join(' OR ') + ')') + } + } else if (item.type === 'select') { + + searchText.push(item.field + ' ' + item.match + ' @' + item.field + '@') + } else if (item.type === 'multiselect') { + + searchText.push(`@${item.field}@ ` + item.match + ' \'%\'+' + item.field + '+\'%\'') + } else if (item.type === 'date') { + let _field = item.field + if (_fieldMap.has(item.field)) { + _field = _field + '1' + } + + _fieldMap.set(item.field, true) + + searchText.push(item.field + ' ' + item.match + ' @' + _field + '@') + } else if (item.type === 'datemonth' || item.type === 'dateweek' || item.type === 'daterange') { + + searchText.push('(' + item.field + ' >= @' + item.field + '@ AND ' + item.field + ' < @' + item.field + '1@)') + } else { + searchText.push(item.field + ' ' + item.match + ' @' + item.field + '@') + } + }) + + let param = { + func: 's_get_para_for_out', + Menuid: menu.MenuID, + Menuname: menu.menuName, + Menuno: menu.menuNo, + Ltextgridparam: _fields.join(' union all '), + Ltextsearchparam: _search.join(' union all '), + AppendWhere: config.setting.queryType === 'query' ? searchText.join(' AND ') : '', + Ltextgrid: _grid.join(','), + WhereType: config.setting.queryType === 'statistics' ? 'Statistics' : 'query', + OrderCol: config.setting.order + } + + param.Ltextsearchparam = Utils.formatOptions(param.Ltextsearchparam) + param.AppendWhere = Utils.formatOptions(param.AppendWhere) + + param.Ltextgridparam = Utils.formatOptions(param.Ltextgridparam) + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' + param.secretkey = Utils.encrypt(param.Ltextgridparam, param.timestamp) + this.setState({ loading: true }) return new Promise(resolve => { - this.createExec(resolve, innerFunc, newLText, DelText) + this.createExec(resolve, param) }) } - createExec = (_resolve, innerFunc, newLText, DelText) => { - let isExist = false // 瀛樺偍杩囩▼鏄惁瀛樺湪 - let cloudText = '' // 浜戠瀛樺偍缁撴灉 - let localfunc = '' // 鏈湴瀛樺偍杩囩▼ + createExec = (_resolve, param) => { + let _mainParam = JSON.parse(JSON.stringify(param)) new Promise(resolve => { // 鑾峰彇浜戠瀛樺偍杩囩▼淇℃伅 - Api.getSystemConfig({ - func: 'sPC_Get_TVP', - TVPName: innerFunc - }).then(result => { + Api.getLocalConfig(param).then(result => { if (!result.status) { notification.warning({ top: 92, @@ -46,156 +163,41 @@ }) resolve(false) } else { - cloudText = result.TVPText resolve(true) } }) }).then(res => { - if (!res) return res - // 鑾峰彇鏈湴瀛樺偍杩囩▼淇℃伅 + if (res === false) return res - let _param = { - func: 's_get_userproc', - LText: innerFunc + if (window.GLOB.mainSystemApi) { + _mainParam.rduri = window.GLOB.mainSystemApi + + return Api.getLocalConfig(_mainParam) } - _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' - _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp) + return 'success' + }).then(result => { + if (result === false || result === 'success') return result - return Api.getLocalConfig(_param) - }).then(res => { - if (!res) return res - - // 澶勭悊鏈湴缁撴灉 - if (!res.status) { + if (!result.status) { notification.warning({ top: 92, - message: res.message, + message: result.message, duration: 10 }) return false } else { - isExist = true - localfunc = Utils.formatOptions(res.Ltext) - return true + return 'success' } }).then(res => { - if (!res) return res - - // 鏍规嵁鏈湴鍙婅繙绔粨鏋滃垽鏂墽琛屽姩浣� - if ((newLText === localfunc) && (newLText === cloudText)) { - return 'drop' - } else if (!localfunc || (cloudText === localfunc)) { - // 鏈湴瀛樺偍杩囩▼涓嶅瓨鍦紝鎴栦簯绔拰鏈湴瀛樺偍杩囩▼涓�鑷存椂锛屽皢鏂扮殑瀛樺偍杩囩▼鏇存柊鑷充簯绔� - return Api.getSystemConfig({ - func: 'sPC_TVP_InUp', - TVPName: innerFunc, - TVPText: newLText, - TypeName: 'P' - }) - } else { - return new Promise(resolve => { - Api.getSystemConfig({ // 娣诲姞鐜版湁鐨勬湰鍦板瓨鍌ㄨ繃绋嬭嚦浜戠 - func: 'sPC_TVP_InUp', - TVPName: innerFunc, - TVPText: localfunc, - TypeName: 'P' - }).then(result => { - if (result.status) { - Api.getSystemConfig({ - func: 'sPC_TVP_InUp', // 娣诲姞鏈�鏂扮殑瀛樺偍杩囩▼鑷充簯绔� - TVPName: innerFunc, - TVPText: newLText, - TypeName: 'P' - }).then(response => { - resolve(response) - }) - } else { - resolve(result) - } - }) - }) - } - }).then(res => { - if (!res || res === 'drop') return res - - // 澶勭悊浜戠鏇存柊缁撴灉 - if (!res.status) { - notification.warning({ - top: 92, - message: res.message, - duration: 10 - }) - return false - } else if (isExist) { - return 'drop' - } else { - return 'create' - } - }).then(res => { - if (!res || res === 'create') return res - - // 鍒犻櫎瀛樺偍杩囩▼ - let _param = { - func: 'sPC_TableData_InUpDe', - LText: DelText, - TypeCharOne: 'proc' // 鍒犻櫎鎴栧垱寤哄瓨鍌ㄨ繃绋嬫爣蹇� - } - - _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' - _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp) - - return Api.getLocalConfig(_param) - }).then(res => { - if (!res || res === 'create') return res - - // 鍒犻櫎缁撴灉澶勭悊 - if (!res.status) { - notification.warning({ - top: 92, - message: res.message, - duration: 10 - }) - return false - } else { - return true - } - }).then(res => { - if (!res) return res - - // 鏂板缓瀛樺偍杩囩▼ - let _param = { - func: 'sPC_TableData_InUpDe', - LText: newLText, - TypeCharOne: 'proc' - } - _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' - _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp) - - return Api.getLocalConfig(_param) - }).then(res => { - if (!res) return res - - // 澶勭悊鏂板缓缁撴灉 - if (!res.status) { - notification.warning({ - top: 92, - message: res.message, - duration: 10 - }) - return false + // 缁撴灉澶勭悊 + if (res === false) { + _resolve('error') } else { notification.success({ top: 92, message: '鍒涘缓鎴愬姛', duration: 2 }) - return true - } - }).then(res => { - // 缁撴灉澶勭悊 - if (!res) { - _resolve('error') - } else { _resolve('success') } @@ -209,11 +211,11 @@ return ( <Button - className="mk-btn mk-purple" + className="mk-btn mk-green" onClick={this.props.trigger} loading={this.state.loading} > - {this.props.dict['header.menu.func.create']} + {this.props.dict['header.menu.interface.create']} </Button> ) } -- Gitblit v1.8.0