Commit 7c8e2d03 authored by 皮倩雯's avatar 皮倩雯

fix: '消息平台新增配置'

parent 6567b4fa
Pipeline #64618 waiting for manual action with stages
......@@ -184,8 +184,8 @@ const patrolFeedback = () => {
});
data.区域巡检 = area;
data.DMA巡检 = dma;
data.未分组 = other;
if (other.length > 0) {
data.未分组 = other;
setGroupName(['区域巡检', 'DMA巡检', '未分组']);
}
}
......
......@@ -228,6 +228,7 @@ const ProjectManage = props => {
setShowSearchStyle(true);
};
const changeDesc = record => {
console.log(record);
setCurrentTempalte(record);
history.push({
pathname: `/platform/schemeDetail`,
......@@ -410,14 +411,15 @@ const ProjectManage = props => {
onChange={onTypeChange}
>
<Option value="全部">全部</Option>
<Option value="自定义">自定义</Option>
<Option value="定时推送">定时推送</Option>
<Option value="监控报警">监控报警</Option>
<Option value="工单办理">工单办理</Option>
<Option value="平台公告">平台公告</Option>
<Option value="定时推送">定时推送</Option>
</Select>
</div>
<div className={styles.template_type}>
<div className={styles.title}>方案名称</div>
{/* <div className={styles.title}>方案名称</div>
<Select
placeholder="请选择方案名称!"
value={currentName}
......@@ -431,7 +433,7 @@ const ProjectManage = props => {
{item.MsgType}
</Option>
))}
</Select>
</Select> */}
</div>
<div className={styles.fast_search}>
<div className={styles.title}>快速检索</div>
......
......@@ -333,6 +333,7 @@ const EditModal = props => {
<Item label="功能路径" name="web_path">
<Input placeholder="请输入功能路径" />
</Item>
</div>
</div>
)}
......
/* eslint-disable arrow-body-style */
/* eslint-disable no-useless-escape */
/* eslint-disable no-lonely-if */
/* eslint-disable no-unused-expressions */
/* eslint-disable prefer-template */
/* eslint-disable react/jsx-boolean-value */
import React, { useState, useEffect } from 'react';
import { Modal, Collapse, notification, Upload, Input, Empty, Tooltip } from 'antd';
import { GetImageOrderByFile, GetImageOrderByPath } from '@/services/integratedLogin/api';
import classnames from 'classnames';
import styles from './PreviewModal.less';
const { Panel } = Collapse;
const PreviewModal = props => {
const {
callBackSubmit = () => {},
visible,
onCancel,
imageUrl,
keepImgeUrl,
type,
imgDataList,
} = props;
const [imgData, setImgData] = useState([]);
const [pickItem, setPickItem] = useState('');
const [chooseItem, setChooseItem] = useState('');
const [keepItem, setKeepItem] = useState('');
const [keepGroupName, setKeepGroupName] = useState([]);
const [search, setSearch] = useState('');
const { Search } = Input;
useEffect(() => {
if (visible) {
console.log(imageUrl);
console.log(keepImgeUrl);
setChooseItem(imageUrl);
update();
} else {
setPickItem('');
setKeepItem('');
setChooseItem('');
}
}, [visible]);
const update = () => {
console.log(imgDataList);
let bb = [];
let aa = [];
imgDataList.map((i, a) => {
if (i.files.length > 0) {
bb.push(i);
aa.push(i.groupName);
}
});
setKeepGroupName(aa);
console.log(bb);
setImgData(bb);
imgDataList.map(i => {
i.files.map((j, index) => {
if (keepImgeUrl) {
if (j.path == keepImgeUrl) {
setKeepItem(i.name);
setPickItem(index);
setChooseItem(j.path);
}
} else {
if (chooseItem == j.path) {
setKeepItem(i.name);
setPickItem(index);
setChooseItem(j.path);
}
}
});
});
};
// 提交
const onSubmit = () => {
console.log(keepItem);
if (keepItem) {
console.log(chooseItem);
callBackSubmit(chooseItem);
}
onCancel();
};
const handleCollapseChange = key => {
setKeepGroupName(key);
};
return (
<Modal
title="图片库"
style={{ top: '100px' }}
width="1000px"
destroyOnClose
maskClosable={false}
cancelText="取消"
okText="确认"
{...props}
onOk={() => onSubmit()}
forceRender={true}
getContainer={false}
>
{imgData.length > 0 ? (
<Collapse
style={{ height: '600px', overflow: 'scroll', marginTop: '20px' }}
bordered={false}
activeKey={keepGroupName}
onChange={handleCollapseChange}
>
{imgData.map((i, j) => {
return (
<Panel
header={i.groupName}
key={i.groupName}
style={{
marginBottom: '24px',
overflow: 'hidden',
border: '0px',
background: '#f7f7f7',
borderRadius: '2px',
}}
>
{i.files &&
i.files.map((k, index) => {
return (
<div className={styles.divItem} key={index}>
<img
src={window.location.origin + `/${k.path}`}
className={classnames({
[styles.imgHidden]: k.path !== chooseItem,
[styles.imgItem]: k.path == chooseItem,
})}
height="80px"
width="80px"
alt="集成登录默认"
onClick={e => {
setPickItem(index);
setKeepItem(i.groupName);
setChooseItem(k.path);
}}
/>
<div
style={{
textAlign: 'center',
width: '100px',
}}
>
<Tooltip title={k.name}>
<p
style={{
height: '22px',
overflow: 'hidden',
whiteSpace: 'nowrap',
textOverflow: 'ellipsis',
}}
>
{k.name}
</p>
</Tooltip>
</div>
</div>
);
})}
</Panel>
);
})}
</Collapse>
) : (
<Empty
image={Empty.PRESENTED_IMAGE_SIMPLE}
description="暂无数据"
style={{ height: '600px', margin: '20px auto 0px auto', paddingTop: '50px' }}
/>
)}
</Modal>
);
};
export default PreviewModal;
.divItem {
display: inline-block;
margin-left: 30px;
margin-bottom: 30px;
width: 100px;
}
.imgItem {
border: 3px solid #00ff37;
box-sizing: border-box;
border-radius: 5px;
display: inline-block;
margin-left: 10px;
background-color: #2881a1;
}
.imgHidden {
margin-left: 10px;
border: none;
display: inline-block;
background-color: #2881a1;
}
.imgHidden:hover {
margin-left: 10px;
border: 3px solid #00ff37;
box-sizing: border-box;
border-radius: 5px;
display: inline-block;
}
.iconItem {
// position: relative;
// left: 70px;
// top: 10px;
// font-size: 17px;
margin-top: -3px;
font-size: 17px;
float: right;
margin-left: -10px;
}
.iconHidden {
display: none;
}
.iconHidden:hover {
// position: relative;
// left: 70px;
// top: 10px;
// font-size: 17px;
margin-top: -3px;
font-size: 17px;
float: right;
margin-left: -10px;
}
.table {
background-color: white;
height: calc(100vh - 130px);
margin-top: 10px;
overflow-y: scroll;
}
// .ant-card-body {
// padding: 0px 24px 24px 17px;
// }
.sel {
width: 200px;
}
.icon {
margin-top: -5px !important;
vertical-align: text-bottom;
}
.redText {
color: red;
}
\ No newline at end of file
......@@ -16,6 +16,7 @@ import {
TreeSelect,
Empty,
Switch as Switchs,
Image,
} from 'antd';
import BaseForm from '@/components/BaseForm/index';
import { Switch } from 'react-router';
......@@ -29,6 +30,8 @@ import {
FolderFilled,
FileOutlined,
MobileOutlined,
DeleteOutlined,
PictureOutlined,
} from '@ant-design/icons';
import moment from 'moment';
import { useHistory } from 'react-router-dom';
......@@ -40,6 +43,7 @@ import {
UpdateMessageConfig,
InsertMessageConfig,
AddIISAgentConfig,
GetMessageIcon,
// eslint-disable-next-line import/no-duplicates
} from '@/services/messagemanage/messagemanage';
......@@ -47,6 +51,7 @@ import { getWebModuleTree, getWebMenuInfo } from '@/services/webConfig/api';
import { getMenuInfo, getMiniAppModuleTree } from '@/services/mobileConfig/api';
import styles from './schemeDetail.less';
import PreviewModal from './PreviewModal';
const { Item } = Form;
const { TextArea } = Input;
const EditModal = props => {
......@@ -57,7 +62,7 @@ const EditModal = props => {
const [isStart, setIsStart] = useState(false);
const [IISConfig, setIISConfig] = useState(null);
const [isUse, setIsUse] = useState('0');
const [btnType, setBtnType] = useState('定时推送');
const [btnType, setBtnType] = useState('自定义');
const { template, confirmModal, currentPage } = props.location.state;
const [currentTrench, setCurrentTrench] = useState({
isMessageShow: false,
......@@ -74,6 +79,10 @@ const EditModal = props => {
const [MES_ITEMS, setMES_ITEMS] = useState([]);
const [EN_ITEMS, setEN_ITEMS] = useState([]);
const [listType, setListType] = useState([
{
title: '自定义',
desc: '根据用户需求,自定义消息内容与各类推送方式。',
},
{
title: '定时推送',
desc: '用于周期性简报的定时推送,如智能巡检、运行周报。',
......@@ -84,7 +93,7 @@ const EditModal = props => {
},
{
title: '工单办理',
desc: '在工单系统中,针对特定人员的通知,包括工作办理、审核、会签、回退等操作。',
desc: '针对工单办理人员的通知,包括工作办理、回退、审核等操作。',
},
{
title: '平台公告',
......@@ -96,8 +105,16 @@ const EditModal = props => {
const { TreeNode } = TreeSelect;
const [treeSelectValue, setTreeSelectValue] = useState(undefined);
const [treeSelectValueMoblie, setTreeSelectValueMoblie] = useState(undefined);
const [imgDataList, setImgDataList] = useState([]);
const [show, setShow] = useState('hidden');
const [imageUrl, setImageUrl] = useState();
const [keepImgeUrl, setKeepImgeUrl] = useState('');
const [im, setIm] = useState();
const [previewModal, setPreviewModal] = useState(false);
const [type, setType] = useState('');
useEffect(() => {
getMessageIcon();
getTreeWeb();
getTreeMoblie();
GetMessageTemplate().then(res => {
......@@ -145,13 +162,16 @@ const EditModal = props => {
// eslint-disable-next-line radix
aa = parseInt(template.WorkWeiXinTemplateId);
}
// 编辑
if (template.ThemeName) {
setType('edit');
form.setFieldsValue({
name: template.MsgType,
isStart: template.IsStarted === '0' ? '关闭' : '开启',
to_person: template.PushGroup,
push_mode: template.PushMode === null ? '' : template.PushMode.split(','),
webIcon: template.WebIcon ? `${window.location.origin}/${template.WebIcon}` : '',
webTitile: template.WebTitile,
app_template: template.AppTemplateID,
app_path: template.AppFunctionPath,
wx_template: template.PublicTemplateID ? parseInt(template.PublicTemplateID) : '',
......@@ -162,6 +182,8 @@ const EditModal = props => {
message_template: template.MsgTemplateID,
enterprise_template: aa,
});
setImageUrl(template.WebIcon ? `${window.location.origin}/${template.WebIcon}` : '');
setIm(template.WebIcon ? template.WebIcon : '');
setPlan(template.MsgType);
setBtnType(template.type);
setIsUse(template.IsStarted);
......@@ -177,11 +199,21 @@ const EditModal = props => {
),
});
} else {
setType('add');
setImageUrl('');
setIm('');
console.log(111);
setBtnType('定时推送');
setBtnType('自定义');
}
}, [props]);
const getMessageIcon = () => {
GetMessageIcon().then(res => {
console.log(res.data);
setImgDataList(res.data);
});
};
const getTreeWeb = () => {
getWebModuleTree('super')
.then(res => {
......@@ -314,7 +346,7 @@ const EditModal = props => {
if (template.ThemeName) {
let a = {
ID: template.ID,
ThemeName: template.ThemeName,
ThemeName: btnType,
MsgType: fv.name,
PublicTemplateID: fv.wx_template.toString() ? fv.wx_template.toString() : WX_ITEMS[0].Id,
PublicConfig: template.PublicConfig,
......@@ -338,6 +370,8 @@ const EditModal = props => {
WebTemplateID: fv.web_template ? fv.web_template : WEB_ITEMS[0].Id,
PushGroup: fv.to_person ? fv.to_person.toString() : '',
WorkWeiXinTemplateId: aa,
WebIcon: fv.webIcon,
WebTitile: fv.webTitile,
};
UpdateMessageConfig(a).then(res => {
......@@ -377,7 +411,7 @@ const EditModal = props => {
}
console.log(fv.enterprise_template);
let b = {
ThemeName: '定时推送',
ThemeName: btnType,
MsgType: fv.name,
PublicTemplateID: fv.wx_template ? fv.wx_template.toString() : WX_ITEMS[0].Id,
PublicConfig: template.PublicConfig,
......@@ -401,6 +435,8 @@ const EditModal = props => {
WebTemplateID: fv.web_template ? fv.web_template : WEB_ITEMS[0].Id,
PushGroup: fv.to_person ? fv.to_person.toString() : '',
WorkWeiXinTemplateId: bb,
WebIcon: fv.webIcon,
WebTitile: fv.webTitile,
};
InsertMessageConfig(b).then(res => {
if (res.code === 0) {
......@@ -486,6 +522,10 @@ const EditModal = props => {
}
});
const pictruePreview = () => {
setPreviewModal(true);
};
const treeSelectOnchange = e => {
form.setFieldsValue({ web_path: '' });
getWebMenuInfo({
......@@ -641,6 +681,16 @@ const EditModal = props => {
form.setFieldsValue({ web_path: e });
}
};
const onOk = props => {
if (props) {
setImageUrl(`${window.location.origin}/${props}`);
setIm(props);
setKeepImgeUrl(props);
form.setFieldsValue({ webIcon: `${props}` });
}
setShow('hidden');
};
return (
<div className={styles.editModal_container}>
<Form form={form} onFinish={onSubmit}>
......@@ -668,20 +718,36 @@ const EditModal = props => {
<div className={styles.cardList}>
{listType.map(item => (
<div key={item.title} className={styles.cardListItem}>
{item.title != '自定义' && item.title != '定时推送' ? (
<Button
type={item.title === btnType ? 'primary' : 'default'}
style={{ cursor: 'not-allowed', marginRight: '1rem' }}
style={{ cursor: 'not-allowed', marginRight: '1rem', width: '88px' }}
>
{item.title}
</Button>{' '}
</Button>
) : (
<Button
type={item.title === btnType ? 'primary' : 'default'}
style={{ marginRight: '1rem', width: '88px' }}
onClick={() => {
setBtnType(item.title);
}}
>
{item.title}
</Button>
)}
<span>{item.desc}</span>
</div>
))}
</div>
</Item>
<Item label="是否启用" labelAlign="right" style={{ marginLeft: '12px' }}>
<Switchs checked={isUse !== '0'} onChange={onChange} />
</Item>
</Card>
{btnType === '定时推送' && (
<Card title="推送信息" style={{ width: '100%', marginTop: '1rem' }}>
{btnType === '定时推送' ? (
<Card title="推送计划" style={{ width: '100%', marginTop: '1rem' }}>
<div style={{ display: 'flex', alignItems: 'center' }}>
<Item labelCol={{ span: 6 }}>
<div style={{ display: 'flex' }}>
......@@ -729,19 +795,17 @@ const EditModal = props => {
alignItems: 'center',
}}
>
推送计划{' '}
定时任务{' '}
<VisibleIISAgentConfig
agentConfig={template.item && template.item.AgentConfig}
value={plan}
onIISAgentSubmit={onIISAgentSubmit}
/>
</div>
<span>
是否启用:
<Switchs checked={isUse !== '0'} onChange={onChange} />
</span>
</div>
</Card>
) : (
<></>
)}
<div className={styles.push_trench}>
<Row>
......@@ -884,6 +948,84 @@ const EditModal = props => {
)}
</TreeSelect>
</Item>
<Item
label="图标"
name="WebIcon"
style={{ height: '112px' }}
labelCol={{ span: 6 }}
>
{imageUrl ? (
<div
style={{
width: '104px',
height: '104px',
border: '1px solid #d9d9d9',
borderRadius: '2px',
padding: '8px',
position: 'relative',
}}
onMouseEnter={() => setShow('visible')}
onMouseLeave={() => setShow('hidden')}
>
<img
src={imageUrl}
alt="singleFile"
style={{
width: '100%',
backgroundColor: '#2881a1',
}}
/>
{show == 'visible' ? (
<>
<div className={styles.imgg} />
<DeleteOutlined
onClick={() => {
setImageUrl('');
setIm('');
setKeepImgeUrl('');
form.setFieldsValue({ WebIcon: '' });
}}
style={{
position: 'absolute',
fontSize: '18px',
left: '24px',
top: '45px',
color: 'white',
zIndex: '999',
}}
/>
<PictureOutlined
onClick={pictruePreview}
style={{
position: 'absolute',
fontSize: '18px',
left: '54px',
top: '45px',
color: 'white',
zIndex: '999',
}}
/>
</>
) : (
<></>
)}
</div>
) : (
<Image
width="104px"
// height={100}
src="error"
onClick={pictruePreview}
fallback="data:image/png;base64,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"
/>
)}
</Item>
<Item label="标题" name="webTitile" labelCol={{ span: 6 }}>
<Input placeholder="请输入标题" />
</Item>
</div>
</div>
}
......@@ -956,6 +1098,17 @@ const EditModal = props => {
</Row>
</Form>
<div />
<PreviewModal
visible={previewModal}
onCancel={() => {
setPreviewModal(false);
}}
imageUrl={im}
keepImgeUrl={keepImgeUrl}
type={type}
imgDataList={imgDataList}
callBackSubmit={onOk}
/>
<RoleModal
selectValue={form.getFieldValue('to_person')}
visible={showRoleModal}
......
......@@ -65,9 +65,10 @@
margin-top: 10px;
width: 100%;
padding: 10px;
height: 12rem;
height: 13rem;
display: flex;
flex-direction: column;
overflow: scroll;
}
.ant-switch {
margin-right: 0.5rem;
......@@ -78,3 +79,20 @@
}
}
}
.imgg {
position: relative;
top: -95px;
left: -9px;
height: 104px;
width: 104px;
background: rgba(0, 0, 0, 0.5);
border-radius: 2px;
z-index: 1;
}
.imgg :hover {
opacity: 0.7;
width: '100%';
background-color: '#2881a1';
}
......@@ -43,3 +43,6 @@ export const GetIISAgentConfig = param =>
export const RoleGroupList = param => get(`${PUBLISH_SERVICE}/UserCenter/RoleGroupList`, param);
export const GetGroupUserTree = param =>
get(`${PUBLISH_SERVICE}/UserCenter/GetGroupUserTree`, param);
// 获取图片路径接口
export const GetMessageIcon = param => get(`${PUBLISH_SERVICE}/MessageConfig/GetMessageIcon`, param);
\ No newline at end of file
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