From 866db6d8afa6980fd485570acda6b5fcebda4da3 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 01 七月 2024 16:08:27 +0800 Subject: [PATCH] 2024-07-01 --- src/templates/zshare/verifycard/baseform/index.jsx | 186 +++++++++++++++++++++++++++++++++------------- 1 files changed, 133 insertions(+), 53 deletions(-) diff --git a/src/templates/zshare/verifycard/baseform/index.jsx b/src/templates/zshare/verifycard/baseform/index.jsx index d67515e..395564c 100644 --- a/src/templates/zshare/verifycard/baseform/index.jsx +++ b/src/templates/zshare/verifycard/baseform/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { fromJS } from 'immutable' -import { Form, Row, Col, Select, Radio, Tooltip, Input } from 'antd' +import { Form, Row, Col, Select, Radio, Tooltip, Input, message } from 'antd' import { QuestionCircleOutlined } from '@ant-design/icons' import Api from '@/api' @@ -25,61 +25,68 @@ state = { wxTemps: [], selectTemp: null, - miniTemps: [] + WXApps: null } componentDidMount() { - let wxTemps = sessionStorage.getItem('wxTemplates') + const { appType, verify } = this.props - if (window.GLOB.WXAppID && window.GLOB.nginx && !wxTemps) { - Api.wxAccessToken().then(res => { - let wxtoken = res.oa_access_token || '' - // let minitoken = res.mini_access_token || '' - - if (wxtoken) { - Api.wxNginxRequest(`cgi-bin/template/get_all_private_template?access_token=${wxtoken}`, 'get').then(res => { - let temps = [] - if (res.template_list) { - temps = res.template_list.filter(item => { - if (!item.primary_industry || sysTempsIds.includes(item.template_id)) return false - if (item.content) { - item.content = item.content.replace('{{first.DATA}}\n', '').replace('\n{{remark.DATA}}', '') - } + let appId = window.GLOB.WXAppID || '' - return true - }) - } - - sessionStorage.setItem('wxTemplates', JSON.stringify(temps)) - localStorage.setItem('wxTemplates', JSON.stringify(temps)) + if (window.GLOB.WXApps && !appType) { + let apps = window.GLOB.WXApps.filter(app => app.appType === 'public') - localStorage.removeItem('wxTemplates') + if (apps.length > 0) { + this.setState({WXApps: apps}) + } - this.resetTemps(temps) - }) - } else { - sessionStorage.setItem('wxTemplates', JSON.stringify([])) - localStorage.setItem('wxTemplates', JSON.stringify([])) + if (verify.wxAppId && apps.findIndex(item => item.appId === verify.wxAppId) > -1) { + appId = verify.wxAppId + } + } - localStorage.removeItem('wxTemplates') - } - // if (minitoken) { - // Api.wxNginxRequest(`wxaapi/newtmpl/gettemplate?access_token=${minitoken}`, 'get').then(res => { - // if (res.errmsg === 'ok' && res.data) { - // sessionStorage.setItem('wxMiniTemplates', JSON.stringify(res.data)) - // } else { - // sessionStorage.setItem('wxMiniTemplates', JSON.stringify([])) - // } - // }) - // } else { - // sessionStorage.setItem('wxMiniTemplates', JSON.stringify([])) - // } - }) + let wxTemps = sessionStorage.getItem('wxTemplates' + appId) + + if (appId && window.GLOB.nginx && !wxTemps) { + if (verify.wxNote === 'true') { + this.getTemps(appId) + } } else if (wxTemps) { wxTemps = JSON.parse(wxTemps) this.resetTemps(wxTemps) + } else { + this.resetTemps([]) } + } + + getTemps = (appId) => { + Api.wxAccessToken(appId).then(res => { + if (res.status && res.access_token) { + Api.wxNginxRequest(`cgi-bin/template/get_all_private_template?access_token=${res.access_token}`, 'get').then(res => { + let temps = [] + if (res.template_list) { + temps = res.template_list.filter(item => { + if (!item.primary_industry || sysTempsIds.includes(item.template_id)) return false + if (item.content) { + item.content = item.content.replace('{{first.DATA}}\n', '').replace('\n{{remark.DATA}}', '') + } + + return true + }) + } else if (res.errcode && res.errmsg) { + message.warning(res.errcode + ': ' + res.errmsg) + } + + sessionStorage.setItem('wxTemplates' + appId, JSON.stringify(temps)) + + this.resetTemps(temps) + }) + } else { + message.warning(res.message || '寰俊鎺堟潈澶辫触锛�') + sessionStorage.setItem('wxTemplates' + appId, JSON.stringify([])) + } + }) } resetTemps = (wxTemps) => { @@ -102,14 +109,14 @@ content: '璁㈠崟绫诲瀷锛歿{keyword1.DATA}}\n璁㈠崟鍙凤細{{keyword2.DATA}}\n璁㈠崟鐘舵�侊細{{keyword3.DATA}}', example: '璁㈠崟绫诲瀷锛氶��绉熺敵璇穃r\n璁㈠崟鍙凤細TZ16101909\r\n璁㈠崟鐘舵�侊細寰呭彇璐�' }, - { - template_id: 'mk_category_temp', - title: '绫荤洰妯℃澘', - primary_industry: '', - deputy_industry: '', - content: '', - example: '' - } + // { + // template_id: 'mk_category_temp', + // title: '绫荤洰妯℃澘', + // primary_industry: '', + // deputy_industry: '', + // content: '', + // example: '' + // } ] let _wxTemps = [...wxTemps, ...sysTemps] @@ -181,6 +188,7 @@ delete _verify.pre_func } if (_verify.wxNote !== 'true') { + delete _verify.wxAppId delete _verify.wxTemplateId delete _verify.wxNoteLink delete _verify.wxNoteLinkUrl @@ -197,6 +205,18 @@ } this.props.onChange(_verify) + + if (key === 'wxNote' && value === 'true' && window.GLOB.WXAppID && window.GLOB.nginx) { + let wxTemps = sessionStorage.getItem('wxTemplates' + window.GLOB.WXAppID) + + if (wxTemps) { + wxTemps = JSON.parse(wxTemps) + + this.resetTemps(wxTemps) + } else { + this.getTemps(window.GLOB.WXAppID) + } + } } onNoteCodeChange = (val, option) => { @@ -262,6 +282,50 @@ this.props.onChange(_verify) } + onWxAppChange = (val) => { + const { verify } = this.props + + let _verify = {...verify, wxAppId: val, wxNote: 'false'} + + delete _verify.wxTemplateId + delete _verify.wxNoteLink + delete _verify.wxNoteLinkUrl + delete _verify.wxNoteMiniId + delete _verify.wxNoteLinkMenuId + delete _verify.wxNoteCallback + delete _verify.wxCustomTempId + + _verify.wxNoteKeys = null + + if (this.state.selectTemp) { + this.setState({selectTemp: null}) + } + + let _verify_ = fromJS(_verify).toJS() + _verify_.wxNote = 'true' + + this.props.onChange(_verify) + + setTimeout(() => { + this.props.onChange(_verify_) + + if (!window.GLOB.nginx) { + message.warning('nginx鏈嶅姟灏氭湭寮�鍚紝璇锋鏌ラ厤缃枃浠跺苟鍦ㄦ湇鍔″櫒涓畬鎴恘ginx璁剧疆銆�') + return + } + + let wxTemps = sessionStorage.getItem('wxTemplates' + val) + + if (wxTemps) { + wxTemps = JSON.parse(wxTemps) + + this.resetTemps(wxTemps) + } else { + this.getTemps(val) + } + }, 20) + } + onWxNoteKeyChange = (key, val) => { let _verify = fromJS(this.props.verify).toJS() @@ -300,7 +364,7 @@ render() { const { unionFields, verify, notes, emailCodes, card, appType, columns, fields } = this.props - const { wxTemps, selectTemp } = this.state + const { wxTemps, selectTemp, WXApps } = this.state const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -636,7 +700,7 @@ <Col span={24}></Col> <Col span={8}> <Form.Item label={ - <Tooltip placement="bottomLeft" title={'璇峰湪鏈嶅姟鍣ㄥ畬鎴愬叕浼楀彿閰嶇疆銆�'}> + <Tooltip placement="bottomLeft" title="璇峰湪鏈嶅姟鍣ㄥ畬鎴愬叕浼楀彿閰嶇疆銆�"> <QuestionCircleOutlined className="mk-form-tip" /> 鍏紬鍙锋秷鎭� </Tooltip> @@ -647,6 +711,22 @@ </Radio.Group> </Form.Item> </Col> + {verify.wxNote === 'true' && WXApps ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="bottomLeft" title="璇烽�夋嫨鍙戦�佹秷鎭殑鍏紬鍙枫��"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鍏紬鍙� + </Tooltip> + } required> + <Select value={verify.wxAppId || window.GLOB.WXAppID} onSelect={this.onWxAppChange}> + {WXApps.map(option => + <Select.Option key={option.appId} value={option.appId}> + {option.appName} + </Select.Option> + )} + </Select> + </Form.Item> + </Col> : null} {verify.wxNote === 'true' ? <Col span={8}> <Form.Item label="娑堟伅妯℃澘" required> <Select value={verify.wxTemplateId} onSelect={this.onWxTemplateChange}> -- Gitblit v1.8.0