From 9c7881671df362f10b6f923a2652cafddffcf487 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 03 十二月 2023 09:55:45 +0800 Subject: [PATCH] 2023-12-03 --- src/templates/zshare/verifycard/baseform/index.jsx | 80 +++++++++++++++ src/tabviews/zshare/actionList/normalbutton/index.jsx | 154 ++++++++++++++++++++++++++++-- src/templates/zshare/verifycard/index.jsx | 20 +++ 3 files changed, 236 insertions(+), 18 deletions(-) diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index d6c0450..09a0e4c 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -2372,6 +2372,9 @@ if (btn.verify.noteEnable === 'true') { this.sendMessage(btn.verify, id) } + if (btn.verify.emailEnable === 'true') { + this.sendEmail(btn.verify, id) + } if (btn.verify.wxNote === 'true') { if (btn.verify.wxTemplateId === 'mk_category_temp') { let verify = fromJS(btn.verify).toJS() @@ -2550,8 +2553,8 @@ sendMessage = (verify, id) => { let param = { func: 's_get_sms_local', - TypeCharOne: verify.noteTemp, // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 - TypeCharTwo: verify.noteType, // N瀹氭椂锛孻瀹炴椂 + TypeCharOne: verify.noteTemp || 'Y', // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 + TypeCharTwo: verify.noteType || 'N', // N瀹氭椂锛孻瀹炴椂 upid: id } @@ -2570,9 +2573,9 @@ } let _param = { - templatecode: verify.noteCode, // 妯℃澘缂栫爜 - TypeCharOne: verify.noteTemp, // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 - ID: verify.noteId || '' // 妯℃澘Id锛屾殏鏃舵湭浣跨敤 + templatecode: verify.noteCode, // 妯℃澘缂栫爜 + TypeCharOne: verify.noteTemp || 'Y', // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 + ID: verify.noteId || '' // 妯℃澘Id锛屾殏鏃舵湭浣跨敤 } _param.submitdate = res.submitdate @@ -2580,17 +2583,17 @@ let limit = 5 // 瀹炴椂鏈�澶т负5鏉★紝瀹氭椂鏈�澶т负100鏉� let mobMap = new Map() - if (verify.noteType === 'N') { + if (verify.noteType === 'Y') { + _param.func = 's_get_sms_sso_realtime' + } else { _param.func = 's_get_sms_sso_timer' limit = 100 - } else if (verify.noteType === 'Y') { - _param.func = 's_get_sms_sso_realtime' } let Ltext = [] let error = false - if (verify.noteTemp === 'Y') { + if (verify.noteTemp !== 'N') { _param.p1 = res.p1 || '' _param.p2 = res.p2 || '' _param.p3 = res.p3 || '' @@ -2606,7 +2609,7 @@ res.send_data && res.send_data.forEach(item => { if (item.mob && !mobMap.has(item.mob) && Ltext.length < limit) { - if (verify.noteTemp === 'Y') { + if (verify.noteTemp !== 'N') { Ltext.push(`'${item.mob}'`) } else { let _p = `'${item.p1 || ''}','${item.p2 || ''}','${item.p3 || ''}','${item.p4 || ''}','${item.p5 || ''}','${item.mob}'` @@ -2678,6 +2681,137 @@ }) } + sendEmail = (verify, id) => { + let param = { + func: 's_get_email_local', + TypeCharOne: verify.emailTemp || 'Y', // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 + TypeCharTwo: verify.emailType || 'N', // N瀹氭椂锛孻瀹炴椂 + upid: id + } + + param.LText = Utils.formatOptions(Utils.getuuid()) + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + param.secretkey = Utils.encrypt(param.LText, param.timestamp) + + Api.genericInterface(param).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + return + } + + let _param = { + msn_email_temp_no: verify.emailCode, // 妯℃澘缂栫爜 + TypeCharOne: verify.emailTemp || 'Y', // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 + ID: verify.emailId || '' // 妯℃澘Id锛屾殏鏃舵湭浣跨敤 + } + + _param.submitdate = res.submitdate + + let limit = 5 // 瀹炴椂鏈�澶т负5鏉★紝瀹氭椂鏈�澶т负100鏉� + let mobMap = new Map() + + if (verify.emailType === 'Y') { + _param.func = 's_get_email_sso_realtime' + } else { + _param.func = 's_get_email_sso_timer' + limit = 100 + } + + let Ltext = [] + let error = false + + if (verify.emailTemp !== 'N') { + _param.p1 = res.p1 || '' + _param.p2 = res.p2 || '' + _param.p3 = res.p3 || '' + _param.p4 = res.p4 || '' + _param.p5 = res.p5 || '' + + let _p = _param.p1 + _param.p2 + _param.p3 + _param.p4 + _param.p5 + + if (/\/|\.|.*鍏�.*浜.*涔�.*杩憒闈㈣瘯|閭�璇穦涓嬭浇|绾㈠寘|鎷涜仒|濂借瘎|璇勪环|鏀垮姟閫氱煡|缂磋垂|淇濋櫓|鑲$エ|閲戣瀺|鎴垮湴浜鏁欒偛|娓告垙|寰俊|Q/.test(_p)) { + error = true + } + } + + res.send_data && res.send_data.forEach(item => { + if (item.email && !mobMap.has(item.email) && Ltext.length < limit) { + if (verify.emailTemp !== 'N') { + Ltext.push(`'${item.email}'`) + } else { + let _p = `'${item.p1 || ''}','${item.p2 || ''}','${item.p3 || ''}','${item.p4 || ''}','${item.p5 || ''}','${item.email}'` + + if (/\/|\.|.*鍏�.*浜.*涔�.*杩憒闈㈣瘯|閭�璇穦涓嬭浇|绾㈠寘|鎷涜仒|濂借瘎|璇勪环|鏀垮姟閫氱煡|缂磋垂|淇濋櫓|鑲$エ|閲戣瀺|鎴垮湴浜鏁欒偛|娓告垙|寰俊|Q/.test(_p)) { + error = true + } + + Ltext.push(_p) + } + mobMap.set(item.email, true) + } + }) + + if (error) { + notification.warning({ + top: 92, + message: '娑堟伅涓惈鏈夐潪娉曞瓧绗�', + duration: 5 + }) + return + } + + if (Ltext.length === 0) return + + Ltext = Ltext.join(';') + + _param.LText = window.btoa(window.encodeURIComponent(Ltext)) + _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp) + + _param.rduri = 'https://sso.mk9h.cn/webapi/dostars' + + _param.userid = 'bh0bapabtd45epsgra79segbch6c1ibk' + _param.LoginUID = 'bh0bapabtd45epsgra79segbch6c1ibk' + + Api.genericInterface(_param).then(result => { + if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } + }, (error) => { + if (error && error.ErrCode === 'LoginError') { + let param = { + func: 's_visitor_login', + timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), + SessionUid: 'bh0bapabtd45epsgra79segbch6c1ibk', + TypeCharOne: 'pc', + appkey: '202004041613277377A6A2456D34A4948AE84' + } + + param.LText = md5(window.btoa('bh0bapabtd45epsgra79segbch6c1ibk' + param.timestamp)) + param.secretkey = md5(param.LText + 'mingke' + param.timestamp) + + let params = { + url: 'https://sso.mk9h.cn/webapi/dologon', + method: 'post', + data: JSON.stringify(param) + } + + Api.directRequest(params) + + return + } + }) + }) + } + /** * @description 鎿嶄綔澶辫触鍚庡鐞� * 1銆佺姸鎬佺爜涓� E銆丯銆丗銆丯M 鏃讹紝鏄剧ず鐩稿簲鎻愮ず淇℃伅 diff --git a/src/templates/zshare/verifycard/baseform/index.jsx b/src/templates/zshare/verifycard/baseform/index.jsx index 705262e..e9f2311 100644 --- a/src/templates/zshare/verifycard/baseform/index.jsx +++ b/src/templates/zshare/verifycard/baseform/index.jsx @@ -17,6 +17,7 @@ verify: PropTypes.object, unionFields: PropTypes.array, notes: PropTypes.array, + emailCodes: PropTypes.array, appType: PropTypes.any, onChange: PropTypes.func } @@ -129,6 +130,8 @@ let error = '' if (verify.noteEnable === 'true' && !verify.noteCode) { // 寮�鍚煭淇℃椂锛岄渶瑕佹ā鏉跨紪鐮� error = '寮�鍚煭淇℃椂锛岄渶瑕侀�夋嫨鐭俊妯℃澘锛�' + } else if (verify.emailEnable === 'true' && !verify.emailCode) { + error = '寮�鍚偖浠跺彂閫佹椂锛岄渶瑕侀�夋嫨閭欢妯℃澘锛�' } else if (verify.printEnable === 'true' && !verify.printTempId) { error = '浣跨敤鍗曟嵁鎵撳嵃鏃讹紝闇�瑕侀�夋嫨鎵撳嵃妯℃澘锛�' } else if (verify.accountdate === 'true' && !verify.accountfield) { @@ -155,6 +158,11 @@ if (_verify.noteEnable !== 'true') { _verify.noteCode = '' + _verify.noteId = '' + } + if (_verify.emailEnable !== 'true') { + _verify.emailCode = '' + _verify.emailId = '' } if (_verify.printEnable !== 'true') { _verify.printTempId = '' @@ -188,6 +196,14 @@ const { verify } = this.props let _verify = {...verify, noteCode: val, noteId: option.props.id} + + this.props.onChange(_verify) + } + + onEmailCodeChange = (val, option) => { + const { verify } = this.props + + let _verify = {...verify, emailCode: val, emailId: option.props.id} this.props.onChange(_verify) } @@ -276,7 +292,7 @@ } render() { - const { unionFields, verify, notes, card, appType, columns } = this.props + const { unionFields, verify, notes, emailCodes, card, appType, columns } = this.props const { wxTemps, selectTemp } = this.state const formItemLayout = { labelCol: { @@ -385,7 +401,7 @@ 鐭俊妯℃澘 </Tooltip> } required> - <Select value={verify.noteCode} onSelect={this.onNoteCodeChange}> + <Select value={verify.noteCode || ''} onSelect={this.onNoteCodeChange}> {notes.map(option => <Select.Option key={option.value} id={option.id} value={option.value}> {option.name} @@ -401,7 +417,7 @@ 鍙戦�佹柟寮� </Tooltip> }> - <Radio.Group value={verify.noteType} onChange={(e) => {this.onOptionChange(e.target.value, 'noteType')}}> + <Radio.Group value={verify.noteType || 'N'} onChange={(e) => {this.onOptionChange(e.target.value, 'noteType')}}> <Radio value="Y">瀹炴椂</Radio> <Radio value="N">瀹氭椂</Radio> </Radio.Group> @@ -414,7 +430,63 @@ 鐭俊鍐呭 </Tooltip> }> - <Radio.Group value={verify.noteTemp} onChange={(e) => {this.onOptionChange(e.target.value, 'noteTemp')}}> + <Radio.Group value={verify.noteTemp || 'Y'} onChange={(e) => {this.onOptionChange(e.target.value, 'noteTemp')}}> + <Radio value="Y">鐩稿悓</Radio> + <Radio value="N">涓嶅悓</Radio> + </Radio.Group> + </Form.Item> + </Col> : null} + <Col span={24}></Col> + <Col span={8}> + <Form.Item label={ + <Tooltip placement="bottomLeft" title={'閫夋嫨鍙戦�侀偖浠舵椂锛岄渶瀹屽杽閭欢璁剧疆銆�'}> + <QuestionCircleOutlined className="mk-form-tip" /> + 鍙戦�侀偖浠� + </Tooltip> + }> + <Radio.Group value={verify.emailEnable} onChange={(e) => {this.onOptionChange(e.target.value, 'emailEnable')}}> + <Radio value="true">寮�鍚�</Radio> + <Radio value="false">涓嶅紑鍚�</Radio> + </Radio.Group> + </Form.Item> + </Col> + {verify.emailEnable === 'true' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="bottomLeft" title={<span>閭欢妯℃澘娣诲姞鍦板潃锛�<a target="_blank" rel="noopener noreferrer" href="https://cloud.mk9h.cn/admin/index.html">浜戜腑蹇�</a>->搴旂敤鏈嶅姟->寮�鍙戣�呬腑蹇�->閭欢妯℃澘銆�</span>}> + <QuestionCircleOutlined className="mk-form-tip" /> + 閭欢妯℃澘 + </Tooltip> + } required> + <Select value={verify.emailCode || ''} onSelect={this.onEmailCodeChange}> + {emailCodes.map(option => + <Select.Option key={option.value} id={option.id} value={option.value}> + {option.name} + </Select.Option> + )} + </Select> + </Form.Item> + </Col> : null} + {verify.emailEnable === 'true' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="bottomLeft" title={'瀹炴椂鍙戦�佹渶澶氬悓鏃跺彂閫�5涓敤鎴凤紝瀹氭椂鍙戦�佹渶澶氬悓鏃跺彂閫�100涓敤鎴枫��'}> + <QuestionCircleOutlined className="mk-form-tip" /> + 鍙戦�佹柟寮� + </Tooltip> + }> + <Radio.Group value={verify.emailType || 'N'} onChange={(e) => {this.onOptionChange(e.target.value, 'emailType')}}> + <Radio value="Y">瀹炴椂</Radio> + <Radio value="N">瀹氭椂</Radio> + </Radio.Group> + </Form.Item> + </Col> : null} + {verify.emailEnable === 'true' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="bottomLeft" title={'褰撳悜澶氫釜鐢ㄦ埛鍙戦�佺煭淇℃椂锛岀煭淇″唴瀹规槸鍚︾浉鍚屻��'}> + <QuestionCircleOutlined className="mk-form-tip" /> + 閭欢鍐呭 + </Tooltip> + }> + <Radio.Group value={verify.emailTemp || 'Y'} onChange={(e) => {this.onOptionChange(e.target.value, 'emailTemp')}}> <Radio value="Y">鐩稿悓</Radio> <Radio value="N">涓嶅悓</Radio> </Radio.Group> diff --git a/src/templates/zshare/verifycard/index.jsx b/src/templates/zshare/verifycard/index.jsx index 26ce4cd..57ba2b9 100644 --- a/src/templates/zshare/verifycard/index.jsx +++ b/src/templates/zshare/verifycard/index.jsx @@ -42,6 +42,7 @@ activeKey: 'base', appType: sessionStorage.getItem('appType'), notes: [], // 鐭俊妯℃澘 + emailCodes: [], // 閭妯℃澘 verify: {}, fields: [], usefulfields: '', @@ -571,9 +572,8 @@ _verify.default = _verify.default || 'true' _verify.wxNote = _verify.wxNote || 'false' // 鍏紬鍙锋秷鎭帹閫佹槸鍚﹀紑鍚� _verify.noteEnable = _verify.noteEnable || 'false' // 鐭俊鍙戦�佹槸鍚﹀紑鍚� + _verify.emailEnable = _verify.emailEnable || 'false' // 閭欢鍙戦�佹槸鍚﹀紑鍚� _verify.printEnable = _verify.printEnable || 'false' // 鍗曟嵁鎵撳嵃鏄惁寮�鍚� - _verify.noteType = _verify.noteType || 'N' // 鐭俊鍙戦�佹ā寮忥細Y锛堝疄鏃讹級銆丯锛堝畾鏃讹級 - _verify.noteTemp = _verify.noteTemp || 'Y' // 鐭俊鍙戦�佹ā鏉匡細Y锛堢浉鍚岋級銆丯锛堜笉鍚岋級 _verify.preHandle = _verify.preHandle || 'false' // 鎸夐挳棰勫鐞嗘槸鍚﹀紑鍚� _verify.invalid = _invalid _verify.uniques = _verify.uniques || [] @@ -1064,6 +1064,11 @@ LText: window.btoa(window.encodeURIComponent(`select t.id,templatecode,'['+SignName+']'+describe as describe from (select * from bd_msn_sms_temp where deleted=0 and TypeDesc='QX' and status=20 ) t inner join (select openid from susers where uid=@userid@) u on t.openid =t.openid`)) }, { + obj_name: 'emailCodes', + arr_field: 'msn_email_temp_no,remark,id', + LText: window.btoa(window.encodeURIComponent(`select t.id,t.msn_email_temp_no,t.remark from (select * from bd_msn_email_temp where deleted=0) t inner join (select openid from susers where uid=@userid@) u on t.openid=t.openid`)) + }, + { obj_name: 'scripts', arr_field: 'funcname,longparam', LText: window.btoa(window.encodeURIComponent(`Select distinct func+Remark as funcname,longparam, s.Sort from s_custom_script s inner join (select OpenID from sapp where ID=@Appkey@) p on s.openid = case when s.appkey='' then s.openid else p.OpenID end order by s.Sort`)) @@ -1102,6 +1107,13 @@ return { name: item.describe, value: item.templatecode, + id: item.id + } + }), + emailCodes: res.emailCodes.map(item => { + return { + name: item.remark, + value: item.msn_email_temp_no, id: item.id } }), @@ -1560,7 +1572,7 @@ render() { const { card, columns } = this.props - const { activeKey, verifyInter, verify, fields, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes, appType } = this.state + const { activeKey, verifyInter, verify, fields, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes, emailCodes, appType } = this.state const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -1582,7 +1594,7 @@ {verify.default === 'false' ? <span className="count-tip"><ExclamationOutlined style={{color: 'orange'}}/></span> : null} </span> } key="base"> - <BaseForm card={card} appType={appType} columns={columns} unionFields={unionFields} verify={verify} notes={notes} onChange={(verify) => this.setState({verify})} wrappedComponentRef={(inst) => this.baseForm = inst}/> + <BaseForm card={card} appType={appType} columns={columns} unionFields={unionFields} verify={verify} notes={notes} emailCodes={emailCodes} onChange={(verify) => this.setState({verify})} wrappedComponentRef={(inst) => this.baseForm = inst}/> </TabPane> : null} {verifyInter === 'system' ? <TabPane tab={ <span> -- Gitblit v1.8.0