Commit 928cf499 authored by mayongxin's avatar mayongxin

perf:新增IIS助理服务器配置

parent 7948067a
Pipeline #25430 skipped with stages
......@@ -6,7 +6,8 @@ import {
Input,
Button,
Select,
Popconfirm
Popconfirm,
message
} from 'antd';
import { PlusCircleOutlined } from '@ant-design/icons';
......@@ -14,12 +15,12 @@ const { Search } = Input;
const { Option } = Select;
import EditModal from './components/EditModal'
import VisibleRoleModal from './components/RolseSelect/VisibleRoleModal'
import { GetMessageConfigList, UpdateMessageConfig, InsertMessageConfig, DeleteMessageConfig } from '@/services/platform/messagemanage'
import { GetMessageConfigList, UpdateMessageConfig, InsertMessageConfig, DeleteMessageConfig, GetMsgTypeList, DeleteIISAgentConfig } from '@/services/platform/messagemanage'
import styles from './ProjectManage.less'
const ProjectManage = () => {
const [visibleParams, setvisibleParams] = useState({
modalVisible: false, // 新增弹窗
addVisible: false, // 新增弹窗
delVisible: false, // 删除弹窗
editVisible: false, // 修改弹窗
spinLoading: false, // 加载弹窗
......@@ -27,11 +28,14 @@ const ProjectManage = () => {
loading: false,
checkBoxLoading: false,
});
const [currentType, setCurrentType] = useState("全部")
const [currentName, setCurrentName] = useState("全部")
const [messageTypes, setMessageTypes] = useState([])
const [currentTemplate, setCurrentTempalte] = useState({});
const [flag, setFlag] = useState(0)
const [pageIndex,setPageIndex] = useState(0)
const [pageSize,setPageSize] = useState(10)
const [dataList,setDataList] = useState([])
const [pageIndex, setPageIndex] = useState(0)
const [pageSize, setPageSize] = useState(10)
const [dataList, setDataList] = useState([])
const columns = [
{
title: '方案名称',
......@@ -58,6 +62,9 @@ const ProjectManage = () => {
title: '是否启用',
dataIndex: 'is_use',
key: 'is_use',
render: (text, record) => (
<div>{text === "0" ? "否" : "是"}</div>
)
},
{
title: '操作',
......@@ -86,140 +93,33 @@ const ProjectManage = () => {
编辑
</Button>
<div onClick={e => e.stopPropagation()}>
{
record.type != "通用报警"
&& record.type != "工单提醒"
&& record.type != "系统通知"
&& (<div onClick={e => e.stopPropagation()}>
<Popconfirm
title="是否删除该连接的历史记录?"
title="是否删除方案?"
okText="确认"
cancelText="取消"
onConfirm={() => {
//delConfirm(record);
DeleteProject(record)
}}
>
<Button size="small" danger>
删除
</Button>
</Popconfirm>
</div>
</div>)
}
</Space>
),
},
];
const data = [
{
key: '1',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '2',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '3',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '4',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '5',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '6',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '7',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '8',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '9',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '10',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '11',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '12',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
{
key: '13',
name: "工单提醒",
type: "工单办理",
send_pattern: "平台弹框",
receive_person: "推送组",
is_use: "是"
},
]
const placeholder = '请输入方案名称'
const handleSearch = () => {
const handleSearch = (value) => {
GetMessageList({ pageSize: 10, pageIndex: 0, search: value })
}
const changeDesc = (record) => {
......@@ -227,62 +127,144 @@ const ProjectManage = () => {
handleShowModal("editVisible", true)
}
const TestDesc = (record) => {
console.log(record, "选中的方案")
// setCurrentTempalte(record)
// handleShowModal("editVisible", true)
}
const DeleteProject = (record) => {
let agen = record.item.AgentConfig
let config = record.item.MessageConfig
if (agen) {
DeleteIISAgentConfig({
agentName: config.MsgType
}).then(
res => {
if (res === 0) {
DeleteMessageConfig({
id: config.ID
}).then(
res3 => {
if (res3.code === 0) {
message.success("删除方案成功")
setFlag(flag +1)
}
}
)
}
}
)
}else{
DeleteMessageConfig({
id:config.ID
}).then(
res3 =>{
if(res3.code === 0){
message.success("删除方案成功")
setFlag(flag +1)
}
}
)
}
}
const handleReset = () => {
setCurrentType("全部")
setCurrentName("全部")
GetMessageList({ pageSize: 10, pageIndex: 0 })
}
// 弹出模态框
const handleShowModal = (key, value) => {
setvisibleParams({ ...visibleParams, [key]: value });
};
const editModal = () => {
handleShowModal("editVisbile",false)
setFlag(flag + 1)
}
const bddModal = () => {
handleShowModal("addVisbile",false)
setFlag(flag + 1)
}
const onAddClick = () => {
setCurrentTempalte({})
handleShowModal("addVisible", true)
}
const onTypeChange = (value) => {
if (value == "全部") {
setCurrentType("")
GetMessageList({ pageIndex: pageIndex, pageSize: 10 })
} else {
GetMessageList({ pageIndex: pageIndex, pageSize: 10, infoType: value, msgType: currentName == "全部" ? "" : currentName })
setCurrentType(value)
}
}
const onNameChange = (value) => {
if (value == "全部") {
setCurrentName("")
GetMessageList({ pageIndex: pageIndex, pageSize: 10 })
} else {
GetMessageList({ pageIndex: pageIndex, pageSize: 10, msgType: value, infoType: currentType == "全部" ? "" : currentType })
setCurrentName(value)
}
}
useEffect(() => {
GetMessageConfigList({
pageIndex:pageIndex,
pageSize:10,
}).then(
GetMsgTypeList().then(
res => {
if (res.code === 0) {
setMessageTypes(res.data)
}
}
)
}, [])
useEffect(() => {
GetMessageList({ pageIndex: pageIndex, pageSize: 10 })
}, [flag])
const GetMessageList = (params) => {
GetMessageConfigList(params).then(
res => {
let mesList = []
if(res.code === 0){
res.MessageConfigModels.map((item)=>{
if (res.code === 0) {
res.data.MessageConfigModels.map((item) => {
mesList.push({
name:item.ThemeName,
type:item.MesType,
send_pattern:item.PushMode,
receive_person:item.Pusher,
is_use:item.IsStarted
name: item.MessageConfig.MsgType,
type: item.MessageConfig.ThemeName,
send_pattern: item.MessageConfig.PushMode,
receive_person: item.MessageConfig.PushGroup,
is_use: item.MessageConfig.IsStarted,
...item.MessageConfig,
item: item
})
})
setDataList(mesList)
}
}
)
}, [flag])
}
return (
<div className={styles.project_container}>
<div className={styles.operate_bar}>
<div className={styles.template_type}>
<div className={styles.title}>方案类型</div>
<Select placeholder="请选择方案类型!" defaultValue="0" style={{ width: "150px" }}>
<Option value="0">全部</Option>
<Option value="1">监控报警</Option>
<Option value="2">工单办理</Option>
<Option value="3">平台公告</Option>
<Option value="4">定时推送</Option>
<Select placeholder="请选择方案类型!" defaultValue={currentType} style={{ width: "150px" }} onChange={onTypeChange}>
<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>
<Select placeholder="请选择方案名称!" defaultValue="0" style={{ width: "150px" }}>
<Option value="0">全部</Option>
<Option value="1">GCK简报</Option>
<Option value="2">GCK运行日报</Option>
<Option value="3">二供简报</Option>
<Option value="4">消息提醒</Option>
<Select placeholder="请选择方案名称!" defaultValue={currentName} style={{ width: "150px" }} onChange={onNameChange}>
<Option value="全部">全部</Option>
{
messageTypes.map((item, idx) => {
return (
<Option key={idx} value={item}>{item}</Option>
)
})
}
</Select>
</div>
<div className={styles.fast_search}>
......@@ -296,13 +278,13 @@ const ProjectManage = () => {
style={{ width: "300px" }}
/>
</div>
<Button type="primary">重置</Button>
<Button type="primary" onClick={handleReset}>重置</Button>
<Button type="primary" style={{ marginLeft: "10px" }} icon={<PlusCircleOutlined />}>新增</Button>
<Button type="primary" style={{ marginLeft: "10px" }} icon={<PlusCircleOutlined />} onClick={onAddClick}>新增</Button>
</div>
<div className={styles.list_view}>
<Table columns={columns} dataSource={data} pagination={{ pageSize: '10' }} />
<Table columns={columns} dataSource={dataList} pagination={{ pageSize: '10' }} />
</div>
<EditModal
visible={visibleParams.editVisible}
......@@ -310,14 +292,12 @@ const ProjectManage = () => {
onCancel={() => handleShowModal('editVisible', false)}
confirmModal={editModal}
/>
{/* <VisibleRoleModal
visible={true}
template={currentTemplate}
onCancel={() => handleShowModal('editVisible', false)}
confirmModal={editModal}
/> */}
<EditModal
visible={visibleParams.addVisible}
template={{}}
onCancel={() => handleShowModal('addVisible', false)}
confirmModal={bddModal}
/>
</div>
)
}
......
import React, { useState, useEffect, useRef } from 'react'
import SiteModal from '@/components/Modal/SiteModa';
import { Form, Input, notification, Select, Checkbox } from 'antd'
import { Form, Input, notification, Select, Checkbox, message } from 'antd'
import BaseForm from '@/components/BaseForm/index';
import { Switch } from 'react-router';
import { iteratee } from 'lodash';
......@@ -8,6 +8,10 @@ import styles from './EditModal.less';
import v from 'voca';
import VisibleRoleModal from './RolseSelect/VisibleRoleModal'
import VisibleIISAgentConfig from './IISAgentConfig/VisibleIISAgentConfig'
import { GetMessageTemplate } from '@/services/platform/messagemanage'
import moment from 'moment'
import { UpdateMessageConfig, InsertMessageConfig, AddIISAgentConfig } from '@/services/platform/messagemanage'
const { Item } = Form;
const EditModal = props => {
......@@ -16,17 +20,188 @@ const EditModal = props => {
const [form] = Form.useForm();
const [loading, setLoading] = useState(false);
const [isStart, setIsStart] = useState(false);
const [IISConfig, setIISConfig] = useState(null)
const { template, confirmModal } = props
const [currentTrench, setCurrentTrench] = useState({
isMessageShow: false,
isAPPShow: false,
isWEBShow: false,
isWXShow: false
})
const formEntity = useRef(null);
const plainOptions = ['APP', '微信', 'WEB', '短信'];
const plainOptions = ['平台弹框', '短信推送', '公众号推送'];
const [APP_ITEMS, setAPP_ITEMS] = useState([])
const [WEB_ITEMS, setWEB_ITEMS] = useState([])
const [WX_ITEMS, setWX_ITEMS] = useState([])
const [MES_ITEMS, setMES_ITEMS] = useState([])
useEffect(() => {
GetMessageTemplate().then(
res => {
if (res.code === 0) {
let arr1 = []
let arr2 = []
let arr3 = []
let arr4 = []
res.data.map((item, index) => {
if (item.Type === "公众号") {
arr1.push(item)
}
if (item.Type === "短信") {
arr2.push(item)
}
if (item.Type === "APP") {
arr3.push(item)
}
if (item.Type === "WEB") {
arr4.push(item)
}
})
setAPP_ITEMS(arr3)
setMES_ITEMS(arr2)
setWX_ITEMS(arr1)
setWEB_ITEMS(arr4)
}
}
)
}, [])
useEffect(() => {
if (template.ThemeName) {
form.setFieldsValue({
name: template.MsgType,
isStart: template.IsStarted === "0" ? "关闭" : "开启",
to_person: template.PushGroup,
push_plan: template.MsgType,
push_mode: template.PushMode.split(","),
app_template: template.AppTemplateID,
app_path: template.AppFunctionPath,
wx_template: parseInt(template.PublicTemplateID),
h5_path: template.PublicPath,
miniprogram_path: template.MiniAppRoute,
web_template: template.WebTemplateID,
web_path: template.WebFunctionPath,
message_template: template.MsgTemplateID,
})
setCurrentTrench({
isAPPShow: template.PushMode.split(",").indexOf("平台弹框") > -1 ? true : false,
isWXShow: template.PushMode.split(",").indexOf("公众号推送") > -1 ? true : false,
isWEBShow: template.PushMode.split(",").indexOf("平台弹框") > -1 ? true : false,
isMessageShow: template.PushMode.split(",").indexOf("短信推送") > -1 ? true : false,
})
}
}, [props])
const onNameChange = (e) => {
form.setFieldsValue({
push_plan: e.target.value
})
}
const onSubmit = () => {
console.log(form.getFieldValue())
let fv = form.getFieldValue()
if (template.ThemeName) {
let a = {
ID: template.ID,
ThemeName: template.ThemeName,
MsgType: fv.name,
PublicTemplateID: fv.wx_template,
PublicConfig: template.PublicConfig,
PublicPath: fv.h5_path,
MsgTemplateName: template.MsgTemplateName,
MsgTemplateCode: template.MsgTemplateCode,
MsgConfig: template.MsgConfig,
MiniAppRoute: fv.miniprogram_path,
AppFunctionPath: fv.app_path,
AppConfig: template.AppConfig,
WebFunctionPath: fv.web_path,
WebConfig: template.WebConfig,
IsDelete: template.IsDelete,
InputTime: moment().format("YYYY-MM-DD HH:mm:ss"),
Pusher: template.Pusher,
PushMode: fv.push_mode.toString(),
PushPath: template.PushPath,
IsStarted: fv.isStart,
MsgTemplateID: fv.message_template,
AppTemplateID: fv.app_template,
WebTemplateID: fv.web_template,
PushGroup: fv.to_person.toString()
}
console.log(a)
UpdateMessageConfig(a).then(
res => {
if (res.code === 0) {
if (IISConfig) {
AddIISAgentConfig(IISConfig).then(
res => {
if (res.code === 0) {
message.success("保存成功")
confirmModal()
}
}
)
} else {
message.success("保存成功")
confirmModal()
}
}
}
)
} else {
let b = {
ThemeName: "定时推送",
MsgType: fv.name,
PublicTemplateID: fv.wx_template,
PublicConfig: template.PublicConfig,
PublicPath: fv.h5_path,
MsgTemplateName: template.MsgTemplateName,
MsgTemplateCode: template.MsgTemplateCode,
MsgConfig: template.MsgConfig,
MiniAppRoute: fv.miniprogram_path,
AppFunctionPath: fv.app_path,
AppConfig: template.AppConfig,
WebFunctionPath: fv.web_path,
WebConfig: template.WebConfig,
IsDelete: template.IsDelete,
InputTime: moment().format("YYYY-MM-DD HH:mm:ss"),
Pusher: template.Pusher,
PushMode: fv.push_mode.toString(),
PushPath: template.PushPath,
IsStarted: fv.isStart,
MsgTemplateID: fv.message_template,
AppTemplateID: fv.app_template,
WebTemplateID: fv.web_template,
PushGroup: fv.to_person.toString()
}
console.log(b)
InsertMessageConfig(b).then(
res => {
if (res.code === 0) {
if (IISConfig) {
AddIISAgentConfig(IISConfig).then(
res => {
if (res.code === 0) {
message.success("保存成功")
confirmModal()
}
}
)
} else {
message.success("保存成功")
confirmModal()
}
}
}
)
}
}
const operateProject = () => {
......@@ -34,20 +209,22 @@ const EditModal = props => {
const onTypeChange = (value) => {
console.log(value)
setCurrentTrench({
isAPPShow: value.indexOf("APP") > -1 ? true : false,
isWXShow: value.indexOf("微信") > -1 ? true : false,
isWEBShow: value.indexOf("WEB") > -1 ? true : false,
isMessageShow: value.indexOf("短信") > -1 ? true : false,
isAPPShow: value.indexOf("平台弹框") > -1 ? true : false,
isWXShow: value.indexOf("公众号推送") > -1 ? true : false,
isWEBShow: value.indexOf("平台弹框") > -1 ? true : false,
isMessageShow: value.indexOf("短信推送") > -1 ? true : false,
})
}
const handleGetForm = form => {
formEntity.current = form;
};
const onIISAgentSubmit = (value) => {
console.log(value, "IIS配置")
}
return (
<SiteModal
{...props}
title="编辑推送方案"
title={template.ThemeName ? "编辑推送方案" : "新增推送方案"}
bodyStyle={{ width: '100%', minHeight: '100px' }}
style={{ top: 200, borderRadius: '20px' }}
width="1200px"
......@@ -69,16 +246,16 @@ const EditModal = props => {
},
]}
>
<Input placeholder="请输入方案名称" />
<Input placeholder="请输入方案名称" disabled={template.ThemeName ? true : false} onChange={onNameChange} />
</Item>
<Item
label="是否开启"
name="isStart"
initialValue="开启"
>
<Select >
<Option value="开启">开启</Option>
<Option value="关闭">关闭</Option>
<Option value="1">开启</Option>
<Option value="0">关闭</Option>
</Select>
</Item>
<Item
......@@ -86,17 +263,17 @@ const EditModal = props => {
name="to_person"
>
<VisibleRoleModal/>
<VisibleRoleModal />
</Item>
<Item
label="定时计划"
name="push_plan"
>
<VisibleIISAgentConfig/>
<VisibleIISAgentConfig agentConfig={template.item && template.item.AgentConfig} onIISAgentSubmit={onIISAgentSubmit} />
</Item>
<Item
label="推送方式"
name="params"
name="push_mode"
>
<Checkbox.Group
options={plainOptions}
......@@ -116,9 +293,14 @@ const EditModal = props => {
label="模板"
name="app_template"
>
<Select defaultValue={"开启"}>
<Option value="开启">开启</Option>
<Option value="关闭">关闭</Option>
<Select >
{
APP_ITEMS.map((item, idx) => {
return (
<Option value={item.Id} key={idx}>{item.LikeName}</Option>
)
})
}
</Select>
</Item>
<Item
......@@ -142,9 +324,14 @@ const EditModal = props => {
label="模板"
name="wx_template"
>
<Select defaultValue={"开启"}>
<Option value="开启">开启</Option>
<Option value="关闭">关闭</Option>
<Select >
{
WX_ITEMS.map((item, idx) => {
return (
<Option value={item.Id} key={idx}>{item.LikeName}</Option>
)
})
}
</Select>
</Item>
<Item
......@@ -174,9 +361,14 @@ const EditModal = props => {
label="模板"
name="web_template"
>
<Select defaultValue={"开启"}>
<Option value="开启">开启</Option>
<Option value="关闭">关闭</Option>
<Select >
{
WEB_ITEMS.map((item, idx) => {
return (
<Option value={item.Id} key={idx}>{item.LikeName}</Option>
)
})
}
</Select>
</Item>
<Item
......@@ -201,9 +393,14 @@ const EditModal = props => {
label="模板"
name="message_template"
>
<Select defaultValue={"开启"}>
<Option value="开启">开启</Option>
<Option value="关闭">关闭</Option>
<Select >
{
MES_ITEMS.map((item, idx) => {
return (
<Option value={item.Id} key={idx}>{item.LikeName}</Option>
)
})
}
</Select>
</Item>
</div>
......
......@@ -8,7 +8,7 @@ const DayOfWeekSelect = props => {
const [selectValues, setSelectValues] = useState([])
const {onChange} = props
const {onChange,value} = props
const hours = [
{ name: "星期一", value: '1' },
......@@ -45,6 +45,9 @@ const DayOfWeekSelect = props => {
setSelectValues(value)
onChange&&onChange(values)
}
useEffect(()=>{
setSelectValues(value)
},[props])
return (
<div >
<Radio.Group onChange={onTypeChange}>
......
......@@ -8,7 +8,7 @@ const HourOfDaySelect = props => {
const [selectValues, setSelectValues] = useState([])
const {onChange} = props
const {onChange,value} = props
const hours = [
{ name: "0:00", value: '0' },
......@@ -40,19 +40,28 @@ const HourOfDaySelect = props => {
let values = []
switch (e.target.value) {
case 0:
values = ["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23",]
values = ["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23"]
break
case 1:
values = []
break
case 2:
values = ["6","8"]
break
case 3:
values = ["0","8","16"]
break
case 4:
values = ["0","6","12","18"]
break
}
onChange&&onChange(value)
onChange&&onChange(values)
setSelectValues(values)
}
useEffect(()=>{
setSelectValues(value)
},[props])
const onCheckChange = (value)=>{
setSelectValues(value)
......
import React, { useEffect, useState } from 'react'
import SiteModal from '@/components/Modal/SiteModa';
import { Checkbox, Input, Button, Modal, Form, Radio, DatePicker, Switch } from 'antd'
import { Checkbox, Input, Button, Modal, Form, Radio, DatePicker, Switch, Select, message } from 'antd'
import HourOfDaySelect from './HourOfDaySelect'
import DayOfWeekSelect from './DayOfWeekSelect'
import styles from './VisibleIISAgentConfig.less'
import moment from 'moment'
import { tr } from 'voca';
const { Item } = Form;
......@@ -12,29 +14,154 @@ const VisibleIISAgentConfig = props => {
const [loading, setLoading] = useState(false);
const [previewVisible, setPreviewVisible] = useState(false)
const [selectRole, setSelectRole] = useState([])
const [isReentrant,setIsReentrant] = useState(false)
const [isReentrant, setIsReentrant] = useState(false)
const [postCheck, setPostCheck] = useState(false)
const [reenCheck, setReenCheck] = useState(false)
const [logCheck, setLogCheck] = useState(false)
const [isEndTimeShow, setIsEndTimeShow] = useState(false)
const [isLoopShow, setIsLoopShow] = useState(false)
const [isDayLoopShow, setIsDayLoopShow] = useState(false)
const [isWeekLoopShow, setIsWeekLoopShow] = useState(false)
const [form] = Form.useForm();
const onSubmit = () => {
const dateFormat = 'YYYY-MM-DD HH:mm:ss';
const { agentConfig, value, onIISAgentSubmit } = props
useEffect(() => {
if (agentConfig) {
form.setFieldsValue({
is_enable: agentConfig.Enabled,
url_type: agentConfig.Absolute ? false : true,
url_path: agentConfig.Url,
request_header: agentConfig.CustomHeader,
plan_type: agentConfig.LoopMode,
start_time: moment(agentConfig.StartFrom, dateFormat),
end_time: moment(agentConfig.EndAt, dateFormat),
loop_mode: agentConfig.LoopMode,
interval: agentConfig.Interval,
loop_unit: agentConfig.LoopUnit,
hour_of_day: agentConfig.HourOfDay && agentConfig.HourOfDay.split(","),
day_of_week: agentConfig.DayOfWeek,
time_out: agentConfig.Timeout,
post_state: agentConfig.UsePostState,
reentrant: agentConfig.AllowReentrant,
enable_log: agentConfig.AllowLog,
})
changeLoopMode(agentConfig.LoopMode)
setReenCheck(agentConfig.AllowReentrant)
setPostCheck(agentConfig.UsePostState)
setLogCheck(agentConfig.AllowLog)
}
form.setFieldsValue({
name: value
})
setSelectRole(props.value)
}, [props])
const handleCancel = () => {
setPreviewVisible(false)
}
const handleOk = () => {
let fv = form.getFieldValue()
onIISAgentSubmit && onIISAgentSubmit(
{
Url: fv.url_path,
CustomHeader: fv.request_header,
StartFrom: fv.start_time && fv.start_time.format(dateFormat),
EndAt: fv.end_time && fv.end_time.format(dateFormat),
MillisecondsTimeout: fv.time_out,
LoopMode: fv.loop_mode,
LoopUnit: fv.loop_unit,
MonthOfYear: "",
WeekOfMonth: "",
DayOfWeek: fv.day_of_week,
DayOfMonth: "",
HourOfDay: fv.hour_of_day.toString(),
Interval: fv.interval,
UsePostState: fv.post_state,
AllowReentrant: fv.reentrant,
AllowLog: fv.enable_log,
Enabled: fv.is_enable,
Timeout: fv.time_out,
Absolute: true
}
)
setPreviewVisible(false)
}
const handleClick = () => {
if (value) {
setPreviewVisible(true)
} else {
message.error("请先输入方案名称!")
}
}
const onPostChange = (value) => {
setIsReentrant(value)
setPostCheck(value)
form.setFieldsValue({
post_state: value
})
}
const onReenChange = (value) => {
setReenCheck(value)
form.setFieldsValue({
reentrant: value
})
}
const onLogChange = (value) => {
setLogCheck(value)
form.setFieldsValue({
enable_log: value
})
}
const changeLoopMode = (value) => {
switch (value) {
case "ByOnce":
setIsEndTimeShow(false)
setIsLoopShow(true)
setIsWeekLoopShow(false)
setIsDayLoopShow(false)
break
case "BYLOOP":
setIsEndTimeShow(true)
setIsLoopShow(true)
setIsWeekLoopShow(false)
setIsDayLoopShow(false)
break
case "ByDay":
setIsEndTimeShow(true)
setIsLoopShow(false)
setIsWeekLoopShow(false)
setIsDayLoopShow(true)
break
case "ByWeek":
setIsEndTimeShow(true)
setIsLoopShow(false)
setIsWeekLoopShow(true)
setIsDayLoopShow(true)
break
}
}
const onLoopModeChange = (e) => {
changeLoopMode(e.target.value)
}
return (
<div>
<div onClick={handleClick}>选择推送组</div>
<div>{selectRole}</div>
<div className={styles.agent_container}>
<Input value={selectRole} disabled={true} />
<div className={styles.select_btn} onClick={handleClick}>推送计划</div>
<SiteModal
{...props}
title="编辑定时任务"
......@@ -56,13 +183,22 @@ const VisibleIISAgentConfig = props => {
label="计划名称"
name="name"
>
<Input placeholder="请输入计划名称" />
<Input placeholder="请输入计划名称" disabled={true} />
</Item>
<Item
label="是否开启"
name="is_enable"
>
<Select >
<Option value={true}>开启</Option>
<Option value={false}>关闭</Option>
</Select>
</Item>
<Item
label="路径类型"
name="url_type"
>
<Radio.Group value={false}>
<Radio.Group >
<Radio value={false}>相对路径</Radio>
<Radio value={true}>绝对路径</Radio>
</Radio.Group>
......@@ -80,12 +216,14 @@ const VisibleIISAgentConfig = props => {
<Input placeholder="请输入URL名称" />
</Item>
<Item
label="计划类型"
name="plan_type"
label="执行方式"
name="loop_mode"
>
<Radio.Group value={1} buttonStyle='outline'>
<Radio value={1}>重复执行</Radio>
<Radio value={0}>执行一次</Radio>
<Radio.Group onChange={onLoopModeChange}>
<Radio value={"ByOnce"}>一次</Radio>
<Radio value={"BYLOOP"}>循环</Radio>
<Radio value={"ByDay"}>每天</Radio>
<Radio value={"ByWeek"}>每周</Radio>
</Radio.Group>
</Item>
<Item
......@@ -94,22 +232,20 @@ const VisibleIISAgentConfig = props => {
>
<DatePicker showTime />
</Item>
{
isEndTimeShow && (
<Item
label="结束时间"
name="end_time"
>
<DatePicker showTime />
</Item>
<Item
label="执行方式"
name="loopMode"
>
<Radio.Group value={false}>
<Radio value={0}>循环</Radio>
<Radio value={1}>每天</Radio>
<Radio value={2}>每周</Radio>
</Radio.Group>
</Item>
)
}
{
isLoopShow && (
<div>
<Item
label="循环周期"
name="interval"
......@@ -122,18 +258,29 @@ const VisibleIISAgentConfig = props => {
>
<Input placeholder="请输入循环单位" />
</Item>
</div>
)
}
{
isDayLoopShow && (
<Item
label="日循环"
name="hour_of_day"
>
<HourOfDaySelect />
</Item>
)
}
{
isWeekLoopShow && (
<Item
label="周循环"
name="day_of_week"
>
<DayOfWeekSelect />
</Item>
)
}
<Item
label="超时时间"
name="time_out"
......@@ -144,19 +291,19 @@ const VisibleIISAgentConfig = props => {
label="POST状态"
name="post_state"
>
<Switch checkedChildren="开启" unCheckedChildren="关闭" onChange={onPostChange} />
<Switch checkedChildren="开启" unCheckedChildren="关闭" onChange={onPostChange} checked={postCheck} />
</Item>
<Item
label="允许并发"
label="允许重入"
name="reentrant"
>
<Switch checkedChildren="开启" unCheckedChildren="关闭" disabled={isReentrant}/>
<Switch checkedChildren="开启" unCheckedChildren="关闭" onChange={onReenChange} disabled={isReentrant} checked={reenCheck} />
</Item>
<Item
label="开启日志"
name="enable_log"
>
<Switch checkedChildren="开启" unCheckedChildren="关闭" />
<Switch checkedChildren="开启" unCheckedChildren="关闭" onChange={onLogChange} checked={logCheck} />
</Item>
</Form>
......
.IISAgent_container{
.agent_container {
display: flex;
flex-direction: row;
.select_btn {
display: inline-block;
color: #2f54eb;
cursor: pointer;
border-bottom: 1px solid #2f54eb;
width: 80px;
margin-left: 20px;
}
.select_result {}
}
.IISAgent_container {
overflow-y: scroll;
height: 500px;
}
import React, { useEffect, useState } from 'react'
import SiteModal from '@/components/Modal/SiteModa';
import { Checkbox, Input, Button, Modal } from 'antd'
import { data } from '../Mock'
//import { data } from '../Mock'
import _ from 'lodash';
import classnames from 'classnames';
import styles from './VisibleRoleModal.less'
import { ManOutlined } from '@ant-design/icons';
import { RoleGroupList } from '@/services/platform/messagemanage'
const checkIsGroup = node =>
node.children?.length > 0;
......@@ -18,7 +18,39 @@ const VisibleRoleModal = props => {
const [loading, setLoading] = useState(false);
const [previewVisible, setPreviewVisible] = useState(false)
const [selectRole,setSelectRole] = useState([])
const [selectRole, setSelectRole] = useState([])
const [dataTree,setDataTree] = useState([])
const GetRoleGroupList = () => {
RoleGroupList().then(
res => {
//数据转换
let tree = []
res.data.roleList.map((item,index)=>{
tree.push({
name:item.visibleTitle,
id:index,
children:item.roleList.map((roleItem)=>{
return(
{
name:roleItem.roleName,
id:roleItem.roleName,
children:[]
}
)
})
})
})
setDataTree(tree)
}
)
}
useEffect(() => {
setSelectRole(props.value)
GetRoleGroupList()
}, [props])
const onSubmit = () => {
}
......@@ -32,18 +64,19 @@ const VisibleRoleModal = props => {
const handleClick = () => {
setPreviewVisible(true)
}
const onChange2 = (value)=>{
const onChange2 = (value) => {
console.log(value)
setSelectRole(value.toString())
}
return (
<div>
<div onClick={handleClick}>选择推送组</div>
<div>{selectRole}</div>
<div className={styles.role_container}>
<Input disabled={true} value={selectRole} />
<div className={styles.select_btn} onClick={handleClick}>推送人员</div>
<SiteModal
{...props}
title="编辑推送方案"
title="选择推送人员"
bodyStyle={{ width: '100%', minHeight: '100px' }}
style={{ top: 200, borderRadius: '20px' }}
width="800px"
......@@ -56,8 +89,8 @@ const VisibleRoleModal = props => {
onCancel={handleCancel}
>
<div>
<ListCard {...props} onChange2={onChange2}/>
<div className={styles.list_card}>
<ListCard {...props} onChange2={onChange2} data={dataTree}/>
</div>
</SiteModal>
</div>
......@@ -80,7 +113,7 @@ const checkChildrenByCondition = (
const ListCard = props => {
const { onChange,onChange2 } = props
const { onChange, onChange2 ,data} = props
const [changedItem, setChangedItem] = useState({ item: {} });
const [valueList, setValueList] = useState([]);
......@@ -124,7 +157,7 @@ const ListCard = props => {
}
useEffect(() => {
setValueList(['1', '2', '3'])
}, [])
return (
<div>
......
.role_container {
display: flex;
flex-direction: row;
.select_btn {
display: inline-block;
color: #2f54eb;
cursor: pointer;
border-bottom: 1px solid #2f54eb;
width: 80px;
margin-left: 20px;
}
}
.list_card{
overflow-y: scroll;
height: 500px;
}
.divBox {
// display: flex;
width: 100%;
......@@ -7,45 +24,53 @@
margin-top: 20px;
min-height: 50px;
padding: 0 10px 10px 20px;
.ant-checkbox-wrapper{
.ant-checkbox-wrapper {
background-color: #fff;
}
.topCheckbox{
height: 20px;
.topCheckbox {
// height: 75px;
margin: -10px 0 0 0px;
line-height: 20px;
}
.topCheckbox>label :hover{
.topCheckbox>label :hover {
font-weight: 600;
}
.checkdiv {
display: flex;
flex-wrap: wrap;
// margin-left: 20px;
// justify-content: space-between;
}
}
.divSingle{
}
.divSingle {
border: none;
margin-top: 20px;
min-width: 180px;
flex-grow: 0;
flex-shrink: 0;
// flex-grow: 0;
// flex-shrink: 0;
// flex:0 0 auto;
// flex-basis: auto;
margin-right: 10px;
background: transparent;
}
.isSearch{
}
.isSearch {
color: red;
background-color: yellow;
}
.boldLabel{
}
.boldLabel {
font-size: 15px;
font-weight: bold;
background-color: #fff;
}
.btnBox{
}
.btnBox {
position: sticky;
bottom: 0px;
right: 0px;
......@@ -56,4 +81,4 @@
display: flex;
justify-content: flex-end;
align-items: center;
}
\ No newline at end of file
}
\ No newline at end of file
......@@ -15,9 +15,9 @@ export const GetThirdpartyTemplates = param =>
export const GetMessageConfigList = param =>
get(`${PUBLISH_SERVICE}/MessageConfig/GetMessageConfigList`, param);
export const InsertMessageConfig = param =>
get(`${PUBLISH_SERVICE}/MessageConfig/InsertMessageConfig`, param);
post(`${PUBLISH_SERVICE}/MessageConfig/InsertMessageConfig`, param);
export const UpdateMessageConfig = param =>
get(`${PUBLISH_SERVICE}/MessageConfig/UpdateMessageConfig`, param);
post(`${PUBLISH_SERVICE}/MessageConfig/UpdateMessageConfig`, param);
export const DeleteMessageConfig = param =>
get(`${PUBLISH_SERVICE}/MessageConfig/DeleteMessageConfig`, param);
export const GetMessageVersion = param =>
......@@ -27,8 +27,12 @@ export const GetMsgTypeList = param =>
export const TestPush = param =>
get(`${PUBLISH_SERVICE}/MessageConfig/TestPush`, param);
export const AddIISAgentConfig = param =>
get(`${PUBLISH_SERVICE}/MessageConfig/AddIISAgentConfig`, param);
post(`${PUBLISH_SERVICE}/MessageConfig/AddIISAgentConfig`, param);
export const DeleteIISAgentConfig = param =>
get(`${PUBLISH_SERVICE}/MessageConfig/DeleteIISAgentConfig`, param);
export const GetIISAgentConfig = param =>
get(`${PUBLISH_SERVICE}/MessageConfig/GetIISAgentConfig`, param);
//组件接口
export const RoleGroupList = param =>
get(`${PUBLISH_SERVICE}/UserCenter/RoleGroupList`, param);
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