public/README.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
public/options.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/menu/components/chart/antv-bar/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/setupProxy.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/tabviews/custom/components/chart/antv-bar-line/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/tabviews/zshare/actionList/funczip/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/templates/zshare/formconfig.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/templates/zshare/verifycard/baseform/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/templates/zshare/verifycard/baseform/index.scss | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/templates/zshare/verifycard/billcodeform/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/templates/zshare/verifycard/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/design/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
public/README.txt
@@ -10,6 +10,7 @@ defaultApp -- 默认应用,系统默认打开某个子应用时需填写应用编码 defaultLang -- 打开的子应用语言类型,默认为zh-CN WXAppID -- 使用公众号时,绑定的公众号ID WXminiAppID -- 使用微信小程序时,绑定的小程序ID debugger -- 值为true时开启调试模式,开启后移动端子应用中会有控制台 licenseKey -- 许可密钥,在内部网络中使用系统时,会跳过epc验证 probation -- 试用期(YYYY-MM-DD),在正式系统中,试用期内调用系统接口的脚本会记录下来 public/options.json
@@ -9,6 +9,7 @@ "defaultApp": "mk", "defaultLang": "zh-CN", "WXAppID": "", "WXminiAppID": "", "debugger": false, "licenseKey": "", "probation": "", src/api/index.js
@@ -29,7 +29,7 @@ axios.interceptors.request.use((config) => { if (config.url.includes('LoginAndRedirect') || config.url.includes('getjsonresult') || config.url.includes('wxNativePay')) { config.data = qs.stringify(config.data) } else if (config.url.includes('Upload') || config.url.includes('doupload') || config.url.includes('dopreload')) { } else if (config.url.includes('doupload') || config.url.includes('dopreload')) { config.headers = { 'Content-Type': 'multipart/form-data' } } else if (config.method === 'post' && config.data) { config.data = JSON.stringify(config.data) @@ -111,9 +111,32 @@ * @description 微信业务请求 */ wxRequest (url, method, param) { let _url = window.GLOB.location + ':8080/' + window.GLOB.service + url let _url = document.location.origin + '/' + window.GLOB.service + url if (process.env.NODE_ENV !== 'production') { _url = document.location.origin + '/' + url } if (param) { return axios({ url: _url, method, data: param }) } return axios({ url: _url, method }) } /** * @description 微信业务请求 */ wxNginxRequest (url, method, param) { let _url = window.GLOB.location + ':8080/' + url if (process.env.NODE_ENV === 'production') { _url = document.location.origin + ':8080/' + window.GLOB.service + url _url = document.location.origin + ':8080/' + url } if (param) { @@ -122,12 +145,12 @@ method, data: param }) } else { return axios({ url: _url, method }) } return axios({ url: _url, method }) } /** @@ -895,8 +918,13 @@ * @description 获取微信支付二维码 */ getWxNativePay (param) { let _url = document.location.origin + '/' + window.GLOB.service + 'wxpay/wxNativePay' if (process.env.NODE_ENV !== 'production') { _url = document.location.origin + '/wxpay/wxNativePay' } return axios({ url: '/wxpay/wxNativePay', url: _url, method: 'post', data: param }) src/menu/components/chart/antv-bar/index.jsx
@@ -788,13 +788,17 @@ } } const view2 = chart.createView({ region: { start: { x: 0, y: 0 }, end: { x: 1, y: 1 } }, padding }) let view2 = chart // 无独立柱状图时不做分面 if (Bar_axis.length) { view2 = chart.createView({ region: { start: { x: 0, y: 0 }, end: { x: 1, y: 1 } }, padding }) } view2.data(dv.rows) src/setupProxy.js
@@ -1,9 +1,7 @@ // const proxy = require('http-proxy-middleware') // const host = 'http://qingqiumarket.cn' // const service = 'mkwms/' const proxy = require('http-proxy-middleware') const options = require('../public/options.json') module.exports = function(app) {} // module.exports = function(app) { module.exports = function(app) { // app.use(proxy('/webapi', { // target: `${host}/${service}webapi`, // secure: false, @@ -32,14 +30,11 @@ // } // })) // app.use(proxy('/wxpay', { // target: `${host}/${service}wxpay`, // secure: false, // changeOrigin: true, // pathRewrite: { // '^/wxpay': '/' // } // })) app.use(proxy('/wxpay', { target: `${options.host}/${options.service}`, secure: false, changeOrigin: true })) // app.use(proxy('/trans', { // target: `${host}/${service}`, @@ -52,4 +47,4 @@ // secure: false, // changeOrigin: true // })) // } } src/tabviews/custom/components/chart/antv-bar-line/index.jsx
@@ -1329,13 +1329,17 @@ } } const view2 = chart.createView({ region: { start: { x: 0, y: 0 }, end: { x: 1, y: 1 } }, padding }) let view2 = chart if (plot.Bar_axis) { view2 = chart.createView({ region: { start: { x: 0, y: 0 }, end: { x: 1, y: 1 } }, padding }) } view2.data(dv.rows) view2.legend(false) src/tabviews/zshare/actionList/funczip/index.jsx
@@ -123,13 +123,6 @@ return } // Api.wxRequest('wxpay/getaccesstoken', 'get').then(res => { // let token = res.oa_access_token // Api.wxRequest(`cgi-bin/template/get_all_private_template?access_token=${token}`, 'get') // }) this.setState({ loading: true }) src/templates/zshare/formconfig.jsx
@@ -878,7 +878,6 @@ */ export function getActionForm (card, config, usefulFields, type, menulist = [], printTemps = [], tabs = []) { let columns = (config.columns || []).filter(col => col.field) usefulFields = [] let opentypes = [ { src/templates/zshare/verifycard/baseform/index.jsx
New file @@ -0,0 +1,250 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' // import { is, fromJS } from 'immutable' import { Form, Row, Col, Select, Radio, Tooltip } from 'antd' import { QuestionCircleOutlined } from '@ant-design/icons' // import './index.scss' class BillCodeForm extends Component { static propTpyes = { card: PropTypes.object, verify: PropTypes.object, unionFields: PropTypes.array, notes: PropTypes.array, onChange: PropTypes.func } state = { wxTemps: [], miniTemps: [], } UNSAFE_componentWillMount() { } componentDidMount() { let wxTemps = sessionStorage.getItem('wxTemplates') let miniTemps = sessionStorage.getItem('wxMiniTemplates') wxTemps = wxTemps ? JSON.parse(wxTemps) : [] miniTemps = miniTemps ? JSON.parse(miniTemps) : [] this.setState({wxTemps, miniTemps}) } handleConfirm = () => { const { verify } = this.props let error = '' if (verify.noteEnable === 'true' && !verify.noteCode) { // 开启短信时,需要模板编码 error = '开启短信时,需要选择短信模板!' } else if (verify.accountdate === 'true' && !verify.accountfield) { error = '开启账期时,需要选择验证公司!' } else if (verify.wxNote === 'true') { if (!verify.wxTemplateId) { error = '开启公众号消息推送时,需要选择消息模板!' } } return error } onOptionChange = (value, key) => { const { verify } = this.props let _verify = {...verify, [key]: value} if (_verify.noteEnable !== 'true') { _verify.noteCode = '' } if (_verify.accountdate !== 'true') { _verify.accountfield = '' _verify.voucherdate = '' } if (_verify.wxNote !== 'true') { _verify.wxTemplateId = '' } this.props.onChange(_verify) } onNoteCodeChange = (val, option) => { const { verify } = this.props let _verify = {...verify, noteCode: val, noteId: option.props.id} this.props.onChange(_verify) } onWxTemplateChange = (val) => { const { verify } = this.props let _verify = {...verify, wxTemplateId: val} this.props.onChange(_verify) } render() { const { unionFields, verify, notes, card } = this.props // const { getFieldDecorator } = this.props.form const { wxTemps } = this.state const formItemLayout = { labelCol: { xs: { span: 24 }, sm: { span: 8 } }, wrapperCol: { xs: { span: 24 }, sm: { span: 16 } } } return ( <Form {...formItemLayout}> <Row gutter={24}> {card.sqlType !== 'custom' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'默认sql执行顺序为自定义脚本之前'}> <QuestionCircleOutlined className="mk-form-tip" /> 默认sql </Tooltip> }> <Radio.Group value={verify.default} onChange={(e) => {this.onOptionChange(e.target.value, 'default')}}> <Radio value="true">执行</Radio> <Radio value="false">不执行</Radio> </Radio.Group> </Form.Item> </Col> : null} <Col span={8}> <Form.Item label={'失效验证'}> <Radio.Group value={verify.invalid} onChange={(e) => {this.onOptionChange(e.target.value, 'invalid')}}> <Radio value="true">开启</Radio> <Radio value="false">不开启</Radio> </Radio.Group> </Form.Item> </Col> <Col span={8}> <Form.Item label={'账期验证'}> <Radio.Group value={verify.accountdate} onChange={(e) => {this.onOptionChange(e.target.value, 'accountdate')}}> <Radio value="true">开启</Radio> <Radio value="false">不开启</Radio> </Radio.Group> </Form.Item> </Col> {verify.accountdate === 'true' ? <Col span={8}> <Form.Item label={'验证公司'} required> <Select defaultValue={verify.accountfield || ''} onChange={(val) => {this.onOptionChange(val, 'accountfield')}}> {unionFields.map(option => <Select.Option key={option.uuid} value={option.field}> {option.label} </Select.Option> )} </Select> </Form.Item> </Col> : null} {verify.accountdate === 'true' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'验证日期为空时,默认为当天。'}> <QuestionCircleOutlined className="mk-form-tip" /> 验证日期 </Tooltip> }> <Select allowClear defaultValue={verify.voucherdate || ''} onChange={(val) => {this.onOptionChange(val, 'voucherdate')}}> {unionFields.map(option => <Select.Option key={option.uuid} value={option.field}> {option.label} </Select.Option> )} </Select> </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.noteEnable} onChange={(e) => {this.onOptionChange(e.target.value, 'noteEnable')}}> <Radio value="true">开启</Radio> <Radio value="false">不开启</Radio> </Radio.Group> </Form.Item> </Col> {verify.noteEnable === '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.noteCode} onSelect={this.onNoteCodeChange}> {notes.map(option => <Select.Option key={option.value} id={option.id} value={option.value}> {option.name} </Select.Option> )} </Select> </Form.Item> </Col> : null} {verify.noteEnable === 'true' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'实时发送最多同时发送5个用户,定时发送最多同时发送100个用户。'}> <QuestionCircleOutlined className="mk-form-tip" /> 发送方式 </Tooltip> }> <Radio.Group value={verify.noteType} onChange={(e) => {this.onOptionChange(e.target.value, 'noteType')}}> <Radio value="Y">实时</Radio> <Radio value="N">定时</Radio> </Radio.Group> </Form.Item> </Col> : null} {verify.noteEnable === 'true' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'当向多个用户发送短信时,短信内容是否相同。'}> <QuestionCircleOutlined className="mk-form-tip" /> 短信内容 </Tooltip> }> <Radio.Group value={verify.noteTemp} 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.wxNote} onChange={(e) => {this.onOptionChange(e.target.value, 'wxNote')}}> <Radio value="true">开启</Radio> <Radio value="false">不开启</Radio> </Radio.Group> </Form.Item> </Col> {verify.wxNote === 'true' ? <Col span={8}> <Form.Item label="消息模板" required> <Select value={verify.wxTemplateId} onSelect={this.onWxTemplateChange}> {wxTemps.map(option => <Select.Option key={option.template_id} value={option.template_id}> {option.title} </Select.Option> )} </Select> </Form.Item> </Col> : null} </Row> </Form> ) } } export default Form.create()(BillCodeForm) src/templates/zshare/verifycard/baseform/index.scss
src/templates/zshare/verifycard/billcodeform/index.jsx
@@ -6,8 +6,7 @@ import './index.scss' class UniqueForm extends Component { class BillCodeForm extends Component { static propTpyes = { dict: PropTypes.object, // 字典项 btn: PropTypes.object, // 按钮信息 @@ -377,4 +376,4 @@ } } export default Form.create()(UniqueForm) export default Form.create()(BillCodeForm) src/templates/zshare/verifycard/index.jsx
@@ -1,8 +1,8 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' import { Form, Tabs, Row, Col, Radio, Button, Select, Popconfirm, notification, Modal, message, InputNumber, Tooltip, Typography } from 'antd' import { QuestionCircleOutlined, CheckCircleOutlined, StopOutlined, EditOutlined, SwapOutlined, DeleteOutlined, ExclamationOutlined, BorderOutlined } from '@ant-design/icons' import { Form, Tabs, Row, Col, Button, Popconfirm, notification, Modal, message, InputNumber, Typography } from 'antd' import { CheckCircleOutlined, StopOutlined, EditOutlined, SwapOutlined, DeleteOutlined, ExclamationOutlined, BorderOutlined } from '@ant-design/icons' import Toast from 'antd-mobile/es/components/toast' import Dialog from 'antd-mobile/es/components/dialog' import moment from 'moment' @@ -10,6 +10,7 @@ import Api from '@/api' import Utils from '@/utils/utils.js' import options from '@/store/options.js' import BaseForm from './baseform' import UniqueForm from './uniqueform' import ContrastForm from './contrastform' import CustomForm from './customform' @@ -39,6 +40,8 @@ state = { initsql: '', // sql验证时变量声明及赋值 verifyInter: 'system', // 接口类型 activeKey: 'base', appType: sessionStorage.getItem('appType'), notes: [], // 短信模板 setting: null, @@ -550,6 +553,7 @@ } _verify.default = _verify.default || 'true' _verify.wxNote = _verify.wxNote || 'false' // 公众号消息推送是否开启 _verify.noteEnable = _verify.noteEnable || 'false' // 短信发送是否开启 _verify.noteType = _verify.noteType || 'N' // 短信发送模式:Y(实时)、N(定时) _verify.noteTemp = _verify.noteTemp || 'Y' // 短信发送模板:Y(相同)、N(不同) @@ -590,7 +594,11 @@ item.$index = i + 1 }) let verifyInter = card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? 'system' : 'inner' this.setState({ activeKey: verifyInter === 'system' ? 'base' : 'tip', verifyInter: verifyInter, setting: config.setting || {}, verify: _verify, oriVerify: fromJS(_verify).toJS() @@ -1147,39 +1155,6 @@ this.setState({ verify }) } onNoteCodeChange = (val, option) => { const { verify } = this.state this.setState({ verify: {...verify, noteCode: val, noteId: option.props.id} }) } onOptionChange = (e, key) => { const { verify } = this.state let value = e.target.value this.setState({ verify: {...verify, [key]: value} }) } changeAccField = (val) => { const { verify } = this.state this.setState({ verify: {...verify, accountfield: val} }) } changeAccDate = (val) => { const { verify } = this.state this.setState({ verify: {...verify, voucherdate: val} }) } handleDelete = (record, type) => { const { verify } = this.state @@ -1383,8 +1358,21 @@ handleConfirm = () => { const { card } = this.props const { setting } = this.state const { setting, activeKey } = this.state let verify = fromJS(this.state.verify).toJS() if (activeKey === 'base') { let msg = this.baseForm.handleConfirm() if (msg) { notification.warning({ top: 92, message: msg, duration: 5 }) return Promise.reject() } } // 表单提交时检查输入值是否正确 return new Promise((resolve, reject) => { @@ -1392,13 +1380,6 @@ notification.warning({ top: 92, message: '不执行默认sql时,必须设置自定义脚本!', duration: 5 }) return } else if (verify.accountdate === 'true' && !verify.accountfield) { notification.warning({ top: 92, message: '开启账期时,需要选择验证公司!', duration: 5 }) return @@ -1422,12 +1403,6 @@ msg = '自定义脚本' } else if (this.scriptsForm && this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))) { msg = '自定义脚本' } if (verify.noteEnable === 'true' && !verify.noteCode) { // 开启短信时,需要模板编码 verify.noteEnable = 'false' } else if (verify.noteEnable !== 'true' && verify.noteCode) { verify.noteCode = '' } if (window.GLOB.funcs && window.GLOB.funcs.length > 0) { @@ -1477,6 +1452,26 @@ }) } changeTab = (val) => { const { activeKey } = this.state if (activeKey === 'base') { let msg = this.baseForm.handleConfirm() if (msg) { notification.warning({ top: 92, message: msg, duration: 5 }) return } } this.setState({ activeKey: val }) } /** * @description 组件销毁,清除state更新 */ @@ -1488,7 +1483,7 @@ render() { const { card } = this.props const { verify, fields, visible, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes, appType } = this.state const { activeKey, verifyInter, verify, fields, visible, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes, appType } = this.state const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -1502,201 +1497,30 @@ return ( <div id="verify-card-box-tab"> <Tabs defaultActiveKey="1" className="verify-card-box"> {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={ <Tabs activeKey={activeKey} className="verify-card-box" onChange={this.changeTab}> {verifyInter === 'system' ? <TabPane tab={ <span> 基础验证 {verify.default === 'false' ? <span className="count-tip"><ExclamationOutlined style={{color: 'orange'}}/></span> : null} </span> } key="1"> <Form {...formItemLayout}> <Row gutter={24}> {this.props.card.sqlType !== 'custom' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'默认sql执行顺序为自定义脚本之前'}> <QuestionCircleOutlined className="mk-form-tip" /> 默认sql </Tooltip> }> <Radio.Group value={verify.default} onChange={(e) => {this.onOptionChange(e, 'default')}}> <Radio value="true">执行</Radio> <Radio value="false">不执行</Radio> </Radio.Group> </Form.Item> </Col> : null} <Col span={8}> <Form.Item label={'账期验证'}> <Radio.Group value={verify.accountdate} onChange={(e) => {this.onOptionChange(e, 'accountdate')}}> <Radio value="true">开启</Radio> <Radio value="false">不开启</Radio> </Radio.Group> </Form.Item> </Col> {verify.accountdate === 'true' ? <Col span={8}> <Form.Item label={'验证公司'} required> <Select defaultValue={verify.accountfield || ''} onChange={this.changeAccField}> {unionFields.map(option => <Select.Option key={option.uuid} value={option.field}> {option.label} </Select.Option> )} </Select> </Form.Item> </Col> : null} {verify.accountdate === 'true' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'验证日期为空时,默认为当天。'}> <QuestionCircleOutlined className="mk-form-tip" /> 验证日期 </Tooltip> }> <Select allowClear defaultValue={verify.voucherdate || ''} onChange={this.changeAccDate}> {unionFields.map(option => <Select.Option key={option.uuid} value={option.field}> {option.label} </Select.Option> )} </Select> </Form.Item> </Col> : null} <Col span={8}> <Form.Item label={'失效验证'}> <Radio.Group value={verify.invalid} onChange={(e) => {this.onOptionChange(e, 'invalid')}}> <Radio value="true">开启</Radio> <Radio value="false">不开启</Radio> </Radio.Group> </Form.Item> </Col> <Col span={24}></Col> <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'选择发送短信时,需完善短信设置。'}> <QuestionCircleOutlined className="mk-form-tip" /> 发送短信 </Tooltip> }> <Radio.Group value={verify.noteEnable} onChange={(e) => {this.onOptionChange(e, 'noteEnable')}}> <Radio value="true">开启</Radio> <Radio value="false">不开启</Radio> </Radio.Group> </Form.Item> </Col> {verify.noteEnable === '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> }> <Select value={verify.noteCode} onSelect={this.onNoteCodeChange}> {notes.map(option => <Select.Option key={option.value} id={option.id} value={option.value}> {option.name} </Select.Option> )} </Select> </Form.Item> </Col> : null} {verify.noteEnable === 'true' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'实时发送最多同时发送5个用户,定时发送最多同时发送100个用户。'}> <QuestionCircleOutlined className="mk-form-tip" /> 发送方式 </Tooltip> }> <Radio.Group value={verify.noteType} onChange={(e) => {this.onOptionChange(e, 'noteType')}}> <Radio value="Y">实时</Radio> <Radio value="N">定时</Radio> </Radio.Group> </Form.Item> </Col> : null} {verify.noteEnable === 'true' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'当向多个用户发送短信时,短信内容是否相同。'}> <QuestionCircleOutlined className="mk-form-tip" /> 短信内容 </Tooltip> }> <Radio.Group value={verify.noteTemp} onChange={(e) => {this.onOptionChange(e, '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.wxEnable} onChange={(e) => {this.onOptionChange(e, 'noteEnable')}}> <Radio value="true">开启</Radio> <Radio value="false">不开启</Radio> </Radio.Group> </Form.Item> </Col> {verify.noteEnable === '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> }> <Select value={verify.noteCode} onSelect={this.onNoteCodeChange}> {notes.map(option => <Select.Option key={option.value} id={option.id} value={option.value}> {option.name} </Select.Option> )} </Select> </Form.Item> </Col> : null} {verify.noteEnable === 'true' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'实时发送最多同时发送5个用户,定时发送最多同时发送100个用户。'}> <QuestionCircleOutlined className="mk-form-tip" /> 发送方式 </Tooltip> }> <Radio.Group value={verify.noteType} onChange={(e) => {this.onOptionChange(e, 'noteType')}}> <Radio value="Y">实时</Radio> <Radio value="N">定时</Radio> </Radio.Group> </Form.Item> </Col> : null} {verify.noteEnable === 'true' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title={'当向多个用户发送短信时,短信内容是否相同。'}> <QuestionCircleOutlined className="mk-form-tip" /> 短信内容 </Tooltip> }> <Radio.Group value={verify.noteTemp} onChange={(e) => {this.onOptionChange(e, 'noteTemp')}}> <Radio value="Y">相同</Radio> <Radio value="N">不同</Radio> </Radio.Group> </Form.Item> </Col> : null} */} </Row> </Form> } key="base"> <BaseForm card={card} unionFields={unionFields} verify={verify} notes={notes} onChange={(verify) => this.setState({verify})} wrappedComponentRef={(inst) => this.baseForm = inst}/> </TabPane> : null} {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={ {verifyInter === 'system' ? <TabPane tab={ <span> 比较验证 {verify.contrasts.length ? <span className="count-tip">{verify.contrasts.length}</span> : null} </span> } key="2x"> } key="contrasts"> <ContrastForm dict={this.props.dict} contrastChange={this.contrastChange}/> <EditTable actions={['edit', 'move', 'copy', 'del', 'status']} type="contrastverify" data={verify.contrasts} columns={contrastColumns} onChange={(contrasts) => this.setState({verify: {...verify, contrasts}})}/> </TabPane> : null} {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={ {verifyInter === 'system' ? <TabPane tab={ <span> 自定义验证 {verify.customverifys.length ? <span className="count-tip">{verify.customverifys.length}</span> : null} </span> } key="3"> } key="customverifys"> <CustomForm dict={this.props.dict} btn={this.props.card} @@ -1707,12 +1531,12 @@ /> <EditTable actions={['move']} data={verify.customverifys} columns={customColumns} onChange={(customverifys) => {this.setState({verify: {...verify, customverifys}})}}/> </TabPane> : null} {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={ {verifyInter === 'system' ? <TabPane tab={ <span> 单号生成 {verify.billcodes.length ? <span className="count-tip">{verify.billcodes.length}</span> : null} </span> } key="4"> } key="billcodes"> <BillcodeForm fields={fields} btn={this.props.card} @@ -1726,12 +1550,12 @@ /> <EditTable actions={['move']} data={verify.billcodes} columns={orderColumns} onChange={(billcodes) => {this.setState({verify: {...verify, billcodes}})}}/> </TabPane> : null} {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={ {verifyInter === 'system' ? <TabPane tab={ <span> {card.Ot !== 'requiredOnce' ? '唯一性验证' : '同类数据验证'} {verify.uniques.length ? <span className="count-tip">{verify.uniques.length}</span> : null} </span> } key="2"> } key="uniques"> <UniqueForm btn={card} fields={card.Ot !== 'requiredOnce' ? uniqueFields : columnsFields} @@ -1740,12 +1564,12 @@ /> <EditTable actions={['edit', 'move', 'del', 'status']} data={verify.uniques} columns={card.Ot !== 'requiredOnce' ? uniqueColumns : onceUniqueColumns} onChange={this.changeUniques}/> </TabPane> : null} {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={ {verifyInter === 'system' ? <TabPane tab={ <span> 创建凭证 {verify.voucher && verify.voucher.enabled ? <span className="count-tip">1</span> : null} </span> } key="5"> } key="voucher"> <VoucherForm dict={this.props.dict} voucher={voucher} @@ -1756,12 +1580,12 @@ wrappedComponentRef={(inst) => this.voucherForm = inst} /> </TabPane> : null} {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={ {verifyInter === 'system' ? <TabPane tab={ <span> 自定义脚本 {verify.scripts.length ? <span className="count-tip">{verify.scripts.length}</span> : null} </span> } key="6"> } key="scripts"> <BorderOutlined className="full-scripts" onClick={() => { if (this.scriptsForm && (this.scriptsForm.state.editItem || (this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))))) { notification.warning({ @@ -1791,7 +1615,7 @@ 回调脚本 {verify.cbScripts.length ? <span className="count-tip">{verify.cbScripts.length}</span> : null} </span> } key="6a"> } key="cbScripts"> <CallBackCustomScript btn={this.props.card} dict={this.props.dict} @@ -1804,7 +1628,7 @@ /> <EditTable actions={['move']} data={verify.cbScripts} columns={cbScriptsColumns} onChange={(cbScripts) => {this.setState({verify: {...verify, cbScripts}})}}/> </TabPane> : null} <TabPane tab="信息提示" key="7"> <TabPane tab="信息提示" key="tip"> <Form {...formItemLayout}> <Row gutter={24}> <Col offset={6} span={6}> src/views/design/index.jsx
@@ -3,6 +3,7 @@ import enUS from 'antd/es/locale/en_US' import zhCN from 'antd/es/locale/zh_CN' import Api from '@/api' import asyncComponent from '@/utils/asyncComponent' import Header from './header' import { setGLOBFuncs } from '@/utils/utils.js' @@ -16,6 +17,38 @@ class Design extends Component { componentDidMount() { setGLOBFuncs() // 获取微信公众号及小程序消息模板 if (!sessionStorage.getItem('wxTemplates')) { Api.wxRequest('wxpay/getaccesstoken', 'get').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 => { if (res.template_list) { let temps = res.template_list.filter(item => item.primary_industry) sessionStorage.setItem('wxTemplates', JSON.stringify(temps)) } else { sessionStorage.setItem('wxTemplates', JSON.stringify([])) } }) } else { sessionStorage.setItem('wxTemplates', JSON.stringify([])) } 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([])) } }) } } render () {