Commit c0cf7174 authored by 皮倩雯's avatar 皮倩雯

fix: '消息平台推送模板配置新增WEB,APP配置'

parent 9e324b11
Pipeline #49031 passed with stages
in 4 minutes 34 seconds
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Description: * @Description:
* @Author: leizhe * @Author: leizhe
* @Date: 2022-03-04 18:33:24 * @Date: 2022-03-04 18:33:24
* @LastEditTime: 2022-03-24 17:41:25 * @LastEditTime: 2022-04-27 14:26:14
* @LastEditors: leizhe * @LastEditors: leizhe
*/ */
import { Tree } from 'antd'; import { Tree } from 'antd';
...@@ -18,7 +18,8 @@ export default props => { ...@@ -18,7 +18,8 @@ export default props => {
const { expandedKeys, onExpand, onSelect, selectedKeys, keepTree, ...rest } = props; const { expandedKeys, onExpand, onSelect, selectedKeys, keepTree, ...rest } = props;
const [epKeys, setEpKeys] = useState([expandedKeys]); const [epKeys, setEpKeys] = useState([expandedKeys]);
useEffect(() => { useEffect(() => {
console.log(expandedKeys, 'expandedKeys'); console.log(expandedKeys);
console.log(selectedKeys);
setEpKeys([expandedKeys]); setEpKeys([expandedKeys]);
}, [expandedKeys]); }, [expandedKeys]);
......
...@@ -31,6 +31,7 @@ const StandingBook = props => { ...@@ -31,6 +31,7 @@ const StandingBook = props => {
const [allData, setAllData] = useState([]); const [allData, setAllData] = useState([]);
const [tableData, setTableData] = useState([]); const [tableData, setTableData] = useState([]);
const [treeLoading, setTreeLoading] = useState(false); const [treeLoading, setTreeLoading] = useState(false);
const [tableLoading, setTableLoading] = useState(false);
const [maxLength, setMaxLength] = useState(0); const [maxLength, setMaxLength] = useState(0);
const [treeVisible, setTreeVisible] = useState(true); // 左边列表是否可见 const [treeVisible, setTreeVisible] = useState(true); // 左边列表是否可见
const [formObj, setFormObj] = useState(''); const [formObj, setFormObj] = useState('');
...@@ -180,7 +181,7 @@ const StandingBook = props => { ...@@ -180,7 +181,7 @@ const StandingBook = props => {
setShowSearchStyle(false); setShowSearchStyle(false);
// 第一次进入展示第一页 不是第一次进入根据当前选择的来进行展示 // 第一次进入展示第一页 不是第一次进入根据当前选择的来进行展示
flag === 0 ? setPickItem(newArr[0]) : setPickItem(pickItem); flag === 0 ? setPickItem(newArr[0]) : setPickItem(pickItem);
// pickItem ? setPickItem(pickItem) : setPickItem(newArr[0]); setPickItem(newArr[0]);
console.log(newArr, 'newArr'); console.log(newArr, 'newArr');
setTableData(newArr); setTableData(newArr);
} }
...@@ -257,9 +258,9 @@ const StandingBook = props => { ...@@ -257,9 +258,9 @@ const StandingBook = props => {
const onSearch = () => { const onSearch = () => {
console.log(searchWord); console.log(searchWord);
console.log(pickItem); console.log(pickItem);
setTreeLoading(true); setTableLoading(true);
GetCM_Ledger_LoadLedgers({ accountName: searchWord }).then(res => { GetCM_Ledger_LoadLedgers({ accountName: searchWord }).then(res => {
setTreeLoading(false); setTableLoading(false);
if (res.msg === 'Ok' && res.data.root) { if (res.msg === 'Ok' && res.data.root) {
console.log(res.data.root); console.log(res.data.root);
setMaxLength(res.data.root.length + 1); setMaxLength(res.data.root.length + 1);
...@@ -270,7 +271,7 @@ const StandingBook = props => { ...@@ -270,7 +271,7 @@ const StandingBook = props => {
}); });
console.log(arr); console.log(arr);
setShowSearchStyle(true); setShowSearchStyle(true);
setAllData(arr); // setAllData(arr);
setSearchData(res.data.root); setSearchData(res.data.root);
setPickItem(''); setPickItem('');
// 第一次进入展示第一页 不是第一次进入根据当前选择的来进行展示 // 第一次进入展示第一页 不是第一次进入根据当前选择的来进行展示
...@@ -285,7 +286,27 @@ const StandingBook = props => { ...@@ -285,7 +286,27 @@ const StandingBook = props => {
console.log(e.target.value); console.log(e.target.value);
setSearchWord(e.target.value); setSearchWord(e.target.value);
if (e.target.value == '') { if (e.target.value == '') {
handleReset(); setTableLoading(true);
GetCM_Ledger_LoadLedgers().then(res => {
setTableLoading(false);
if (res.msg === 'Ok' && res.data.root) {
console.log(res.data.root);
setMaxLength(res.data.root.length + 1);
let arr = formateArrDataA(res.data.root, 'type');
let newArr = [];
Object.keys(arr).map((item, index) => {
newArr.push(item);
});
console.log(arr);
setAllData(arr);
setShowSearchStyle(false);
// 第一次进入展示第一页 不是第一次进入根据当前选择的来进行展示
flag === 0 ? setPickItem(newArr[0]) : setPickItem(pickItem);
setPickItem(newArr[0]);
console.log(newArr, 'newArr');
setTableData(newArr);
}
});
} }
}; };
...@@ -301,7 +322,6 @@ const StandingBook = props => { ...@@ -301,7 +322,6 @@ const StandingBook = props => {
}; };
const handleReset = () => { const handleReset = () => {
setFlag(flag + 1); setFlag(flag + 1);
setSearchWord('');
}; };
return ( return (
<PageContainer className={styles.userManageContainer}> <PageContainer className={styles.userManageContainer}>
...@@ -354,7 +374,10 @@ const StandingBook = props => { ...@@ -354,7 +374,10 @@ const StandingBook = props => {
[styles.pickItem]: item === pickItem, [styles.pickItem]: item === pickItem,
[styles.listHover]: item !== pickItem && item === hoverItemIndex, [styles.listHover]: item !== pickItem && item === hoverItemIndex,
})} })}
onClick={e => setPickItem(item)} onClick={() => {
setPickItem(item);
setSearchWord('');
}}
onMouseEnter={() => { onMouseEnter={() => {
setHoverItemIndex(item); setHoverItemIndex(item);
}} }}
...@@ -422,6 +445,7 @@ const StandingBook = props => { ...@@ -422,6 +445,7 @@ const StandingBook = props => {
}; };
}} }}
columns={columns} columns={columns}
loading={tableLoading}
dataSource={pickItem ? allData[pickItem] : searchData} dataSource={pickItem ? allData[pickItem] : searchData}
// loading={tableLoading} // loading={tableLoading}
scroll={{ x: 'max-content', y: 'calc(100vh - 180px)' }} scroll={{ x: 'max-content', y: 'calc(100vh - 180px)' }}
......
/* eslint-disable default-case */
/* eslint-disable no-undef */
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import SiteModal from '@/components/Modal/SiteModa'; import SiteModal from '@/components/Modal/SiteModa';
import { Form, Input, notification, Select, Row, Col } from 'antd'; import { Form, Input, notification, Select, Row, Col } from 'antd';
...@@ -6,7 +8,7 @@ const { Item } = Form; ...@@ -6,7 +8,7 @@ const { Item } = Form;
const { TextArea } = Input; const { TextArea } = Input;
const AddModal = props => { const AddModal = props => {
const { option, messageVersion } = props; const { option, messageVersion, visible } = props;
const [form] = Form.useForm(); const [form] = Form.useForm();
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
...@@ -16,16 +18,25 @@ const AddModal = props => { ...@@ -16,16 +18,25 @@ const AddModal = props => {
}; };
const onSubmitSuccess = () => { const onSubmitSuccess = () => {
const result = form.getFieldValue(); const result = form.getFieldValue();
if (result.type == 'APP' || result.type == 'WEB') {
delete result.third_id;
delete result.third_name;
delete result.weixin;
}
console.log(result.type);
console.log(result);
props.onSubmit & props.onSubmit({ Id: props.template.Id, ...result }); props.onSubmit & props.onSubmit({ Id: props.template.Id, ...result });
form.resetFields(); form.resetFields();
}; };
useEffect(() => { useEffect(() => {
console.log(option); if (visible) {
if (option) { console.log(option);
setTemplateName(option.filter(item => item.Type === '公众号')); if (option) {
form.setFieldsValue({ setTemplateName(option.filter(item => item.Type === '公众号'));
type: '公众号', form.setFieldsValue({
}); type: '公众号',
});
}
} }
}, [props]); }, [props]);
const layout = { const layout = {
...@@ -37,9 +48,7 @@ const AddModal = props => { ...@@ -37,9 +48,7 @@ const AddModal = props => {
span: 19, span: 19,
}, },
}; };
// useEffect(()=>{
// },[props.template])
const onChange = (value, option) => { const onChange = (value, option) => {
form.setFieldsValue({ form.setFieldsValue({
third_id: option.code, third_id: option.code,
...@@ -47,6 +56,7 @@ const AddModal = props => { ...@@ -47,6 +56,7 @@ const AddModal = props => {
// setTemplateName(option.filter(item => item.Type === value)) // setTemplateName(option.filter(item => item.Type === value))
}; };
const onChangeType = value => { const onChangeType = value => {
form.setFieldsValue({ third_name: '', third_id: '', weixin: '' });
setTemplateName(option.filter(item => item.Type === value)); setTemplateName(option.filter(item => item.Type === value));
console.log(option.filter(item => item.Type === value)); console.log(option.filter(item => item.Type === value));
}; };
...@@ -116,114 +126,122 @@ const AddModal = props => { ...@@ -116,114 +126,122 @@ const AddModal = props => {
<Select style={{ width: '85%' }} onChange={value => onChangeType(value)}> <Select style={{ width: '85%' }} onChange={value => onChangeType(value)}>
<Select.Option value="公众号">公众号</Select.Option> <Select.Option value="公众号">公众号</Select.Option>
<Select.Option value="短信">短信</Select.Option> <Select.Option value="短信">短信</Select.Option>
<Select.Option value="APP">APP</Select.Option>
<Select.Option value="WEB">WEB</Select.Option>
<Select.Option value="企业微信">企业微信</Select.Option> <Select.Option value="企业微信">企业微信</Select.Option>
</Select> </Select>
</Item> </Item>
</Col> </Col>
</Row> </Row>
{form.getFieldsValue().type !== '企业微信' ? ( {form.getFieldsValue().type === 'APP' || form.getFieldsValue().type === 'WEB' ? (
<> <></>
<Row>
<Col span={12}>
<Item
label="第三方模板名称"
name="third_name"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
rules={[
{
required: true,
message: '请选择第三方模板名称',
},
]}
>
{/* <Input placeholder="请输入模板名称" /> */}
<Select
placeholder="请选择模板名称"
style={{ width: '120%' }}
onChange={(value, option) => onChange(value, option)}
>
{templateName &&
templateName.length > 0 &&
templateName.map((item, index) => (
<Select.Option value={item.Name} key={index} code={item.Code}>
{item.Name}
</Select.Option>
))}
</Select>
</Item>
</Col>
<Col span={12}>
<Item
label="第三方模板编号"
name="third_id"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
rules={[
{
required: true,
message: '请输入第三方模板编号',
},
]}
>
<Input placeholder="请输入第三方模板编号" style={{ width: '85%' }} />
</Item>
</Col>
</Row>
</>
) : ( ) : (
<> <>
<Row> {form.getFieldsValue().type !== '企业微信' ? (
<Col span={12}> <>
<Item <Row>
label="第三方模板名称" <Col span={12}>
wrapperCol={{ span: 12 }} <Item
labelCol={{ span: 12 }} label="第三方模板名称"
name="third_name" name="third_name"
rules={[ wrapperCol={{ span: 12 }}
{ labelCol={{ span: 12 }}
required: true, rules={[
message: '请选择第三方模板名称', {
}, required: true,
]} message: '请选择第三方模板名称',
> },
<Select ]}
style={{ width: '120%' }} >
onChange={value => onChangeType1(value)} {/* <Input placeholder="请输入模板名称" /> */}
placeholder="请选择模板名称" <Select
> placeholder="请选择模板名称"
<Select.Option value="普通文本">普通文本</Select.Option> style={{ width: '120%' }}
<Select.Option value="文字卡片">文字卡片</Select.Option> onChange={(value, option) => onChange(value, option)}
<Select.Option value="图片消息">图片消息</Select.Option> >
<Select.Option value="图片">图片</Select.Option> {templateName &&
</Select> templateName.length > 0 &&
</Item> templateName.map((item, index) => (
</Col> <Select.Option value={item.Name} key={index} code={item.Code}>
<Col span={12}> {item.Name}
<Item </Select.Option>
label="企业微信应用id" ))}
wrapperCol={{ span: 12 }} </Select>
labelCol={{ span: 12 }} </Item>
name="weixin" </Col>
rules={[ <Col span={12}>
{ <Item
required: true, label="第三方模板编号"
message: '请输入企业微信号', name="third_id"
}, wrapperCol={{ span: 12 }}
]} labelCol={{ span: 12 }}
> rules={[
<Input placeholder="请输入企业微信号" style={{ width: '160px' }} /> {
</Item> required: true,
</Col> message: '请输入第三方模板编号',
</Row> },
]}
>
<Input placeholder="请输入第三方模板编号" style={{ width: '85%' }} />
</Item>
</Col>
</Row>
</>
) : (
<>
<Row>
<Col span={12}>
<Item
label="第三方模板名称"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
name="third_name"
rules={[
{
required: true,
message: '请选择第三方模板名称',
},
]}
>
<Select
style={{ width: '120%' }}
onChange={value => onChangeType1(value)}
placeholder="请选择模板名称"
>
<Select.Option value="普通文本">普通文本</Select.Option>
<Select.Option value="文字卡片">文字卡片</Select.Option>
<Select.Option value="图片消息">图片消息</Select.Option>
<Select.Option value="图片">图片</Select.Option>
</Select>
</Item>
</Col>
<Col span={12}>
<Item
label="企业微信应用id"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
name="weixin"
rules={[
{
required: true,
message: '请输入企业微信号',
},
]}
>
<Input placeholder="请输入企业微信号" style={{ width: '160px' }} />
</Item>
</Col>
</Row>
</>
)}
</> </>
)} )}
<Item label="模板参数(仅针对2.0规则)" labelCol={{ span: 6 }} name="params"> <Item label="模板参数(仅针对2.0规则)" labelCol={{ span: 6 }} name="params">
<TextArea rows={2} style={{ width: '95%' }} placeholder="first|Second|Third|Four" /> <TextArea rows={2} style={{ width: '95%' }} placeholder="first|Second|Third|Four" />
</Item> </Item>
<Item label="模板参数(仅针对2.0规则)" labelCol={{ span: 6 }} name="param1"> <Item label="解析参数(仅针对2.0规则)" labelCol={{ span: 6 }} name="param1">
<TextArea rows={2} style={{ width: '95%' }} placeholder="first|Second|Third|Four" /> <TextArea rows={2} style={{ width: '95%' }} placeholder="first|Second|Third|Four" />
</Item> </Item>
<Item label="参数说明" name="desc" labelCol={{ span: 6 }}> <Item label="参数说明" name="desc" labelCol={{ span: 6 }}>
......
...@@ -16,28 +16,37 @@ const EditModal = props => { ...@@ -16,28 +16,37 @@ const EditModal = props => {
}; };
const onSubmitSuccess = () => { const onSubmitSuccess = () => {
const result = form.getFieldValue(); const result = form.getFieldValue();
if (result.type == 'APP' || result.type == 'WEB') {
delete result.third_id;
delete result.third_name;
delete result.weixin;
}
props.onSubmit & props.onSubmit({ Id: props.template.Id, ...result }); props.onSubmit & props.onSubmit({ Id: props.template.Id, ...result });
form.resetFields();
}; };
useEffect(() => { useEffect(() => {
form.setFieldsValue({ if (visible) {
name: props.template.name, form.setFieldsValue({
type: props.template.type, name: props.template.name,
third_name: props.template.third_name == '-' ? '' : props.template.third_name, type: props.template.type,
third_id: props.template.third_id == '-' ? '' : props.template.third_id, third_name: props.template.third_name == '-' ? '' : props.template.third_name,
weixin: props.template.weixin == '-' ? '' : props.template.weixin, third_id: props.template.third_id == '-' ? '' : props.template.third_id,
params: props.template.template_params1 == '-' ? '' : props.template.template_params1, weixin: props.template.weixin == '-' ? '' : props.template.weixin,
param1: props.template.template_params2 == '-' ? '' : props.template.template_params2, params: props.template.template_params1 == '-' ? '' : props.template.template_params1,
desc: props.template.desc == '-' ? '' : props.template.desc, param1: props.template.template_params2 == '-' ? '' : props.template.template_params2,
analysis_params: props.template.analysis_params == '-' ? '' : props.template.analysis_params, desc: props.template.desc == '-' ? '' : props.template.desc,
}); analysis_params:
setTimeout(() => { props.template.analysis_params == '-' ? '' : props.template.analysis_params,
console.log(form.getFieldsValue().type); });
setFlag(flag + 1); setTimeout(() => {
}, 0); console.log(form.getFieldsValue().type);
setFlag(flag + 1);
}, 0);
if (option) { if (option) {
setTemplateName(option.filter(item => item.Type === props.template.type)); setTemplateName(option.filter(item => item.Type === props.template.type));
}
} }
}, [props.template, visible]); }, [props.template, visible]);
...@@ -52,6 +61,7 @@ const EditModal = props => { ...@@ -52,6 +61,7 @@ const EditModal = props => {
}; };
const onChangeType = value => { const onChangeType = value => {
form.setFieldsValue({ third_name: '', third_id: '', weixin: '' });
console.log(option.filter(item => item.Type === value), '123'); console.log(option.filter(item => item.Type === value), '123');
setTemplateName(option.filter(item => item.Type === value)); setTemplateName(option.filter(item => item.Type === value));
}; };
...@@ -128,118 +138,120 @@ const EditModal = props => { ...@@ -128,118 +138,120 @@ const EditModal = props => {
<Select style={{ width: '85%' }} onChange={value => onChangeType(value)}> <Select style={{ width: '85%' }} onChange={value => onChangeType(value)}>
<Select.Option value="公众号">公众号</Select.Option> <Select.Option value="公众号">公众号</Select.Option>
<Select.Option value="短信">短信</Select.Option> <Select.Option value="短信">短信</Select.Option>
<Select.Option value="APP">APP</Select.Option>
<Select.Option value="WEB">WEB</Select.Option>
<Select.Option value="企业微信">企业微信</Select.Option> <Select.Option value="企业微信">企业微信</Select.Option>
</Select> </Select>
</Item> </Item>
</Col> </Col>
</Row> </Row>
{form.getFieldsValue().type === '企业微信' ? ( {form.getFieldsValue().type === 'APP' || form.getFieldsValue().type === 'WEB' ? (
<> <></>
<Row>
<Col span={12}>
<Item
label="第三方模板名称"
name="third_name"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
rules={[
{
required: true,
message: '请输入第三方模板名称',
},
]}
>
<Select
style={{ width: '120%' }}
onChange={value => onChangeType1(value)}
placeholder="请选择模板名称"
>
<Select.Option value="普通文本">普通文本</Select.Option>
<Select.Option value="文字卡片">文字卡片</Select.Option>
<Select.Option value="图片消息">图片消息</Select.Option>
<Select.Option value="图片">图片</Select.Option>
</Select>
</Item>
</Col>
<Col span={12}>
<Item
label="企业微信应用id"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
name="weixin"
rules={[
{
required: true,
message: '请输入企业微信号',
},
]}
>
<Input placeholder="请输入企业微信号" style={{ width: '160px' }} />
</Item>
</Col>
</Row>
</>
) : ( ) : (
''
)}
{form.getFieldsValue().type !== '企业微信' &&
form.getFieldsValue().type !== 'APP' &&
form.getFieldsValue().type !== 'WEB' ? (
<> <>
<Row> {form.getFieldsValue().type !== '企业微信' ? (
<Col span={12}> <>
<Item <Row>
label="第三方模板名称" <Col span={12}>
name="third_name" <Item
wrapperCol={{ span: 12 }} label="第三方模板名称"
labelCol={{ span: 12 }} name="third_name"
rules={[ wrapperCol={{ span: 12 }}
{ labelCol={{ span: 12 }}
required: true, rules={[
message: '请输入第三方模板名称', {
}, required: true,
]} message: '请选择第三方模板名称',
> },
<Select ]}
placeholder="请选择模板名称" >
style={{ width: '120%' }} {/* <Input placeholder="请输入模板名称" /> */}
onChange={(value, option) => onChange(value, option)} <Select
> placeholder="请选择模板名称"
{templateName && style={{ width: '120%' }}
templateName.length > 0 && onChange={(value, option) => onChange(value, option)}
templateName.map((item, index) => ( >
<Option value={item.Name} key={item.Name + index} code={item.Code}> {templateName &&
{item.Name} templateName.length > 0 &&
</Option> templateName.map((item, index) => (
))} <Select.Option value={item.Name} key={index} code={item.Code}>
</Select> {item.Name}
</Item> </Select.Option>
</Col> ))}
<Col span={12}> </Select>
<Item </Item>
label="第三方模板编号" </Col>
wrapperCol={{ span: 12 }} <Col span={12}>
labelCol={{ span: 12 }} <Item
name="third_id" label="第三方模板编号"
rules={[ name="third_id"
{ wrapperCol={{ span: 12 }}
required: true, labelCol={{ span: 12 }}
message: '请输入第三方模板编号', rules={[
}, {
]} required: true,
> message: '请输入第三方模板编号',
<Input placeholder="请输入模板名称" style={{ width: '85%' }} /> },
</Item> ]}
</Col> >
</Row> <Input placeholder="请输入第三方模板编号" style={{ width: '85%' }} />
</Item>
</Col>
</Row>
</>
) : (
<>
<Row>
<Col span={12}>
<Item
label="第三方模板名称"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
name="third_name"
rules={[
{
required: true,
message: '请选择第三方模板名称',
},
]}
>
<Select
style={{ width: '120%' }}
onChange={value => onChangeType1(value)}
placeholder="请选择模板名称"
>
<Select.Option value="普通文本">普通文本</Select.Option>
<Select.Option value="文字卡片">文字卡片</Select.Option>
<Select.Option value="图片消息">图片消息</Select.Option>
<Select.Option value="图片">图片</Select.Option>
</Select>
</Item>
</Col>
<Col span={12}>
<Item
label="企业微信应用id"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
name="weixin"
rules={[
{
required: true,
message: '请输入企业微信号',
},
]}
>
<Input placeholder="请输入企业微信号" style={{ width: '160px' }} />
</Item>
</Col>
</Row>
</>
)}
</> </>
) : (
''
)} )}
<Item label="模板参数(仅针对2.0规则)" labelCol={{ span: 6 }} name="params"> <Item label="模板参数(仅针对2.0规则)" labelCol={{ span: 6 }} name="params">
<TextArea rows={2} style={{ width: '95%' }} placeholder="first|Second|Third|Four" /> <TextArea rows={2} style={{ width: '95%' }} placeholder="first|Second|Third|Four" />
</Item> </Item>
<Item label="模板参数(仅针对2.0规则)" labelCol={{ span: 6 }} name="param1"> <Item label="解析参数(仅针对2.0规则)" labelCol={{ span: 6 }} name="param1">
<TextArea rows={2} style={{ width: '95%' }} placeholder="first|Second|Third|Four" /> <TextArea rows={2} style={{ width: '95%' }} placeholder="first|Second|Third|Four" />
</Item> </Item>
<Item label="参数说明" labelCol={{ span: 6 }} name="desc"> <Item label="参数说明" labelCol={{ span: 6 }} name="desc">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment