Commit 29d2231b authored by 皮倩雯's avatar 皮倩雯

Merge branch 'master' of https://g.civnet.cn:8443/ReactWeb5/maintenance

# Conflicts: # src/pages/userCenter/userManage/UserManage.jsx
parents a3da4a1b 80abbda9
Pipeline #66345 passed with stages
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
import React, { useEffect, useState } from 'react';
import { Modal, Tooltip } from 'antd';
import styles from './ChooseTableType.less';
const ChooseTableType = props => {
const { defalutFields, visible, onCancel, onTableClick } = props;
const [tableList, setTableList] = useState([]);
useEffect(() => {
if (visible) {
let list = new Map([]);
defalutFields.forEach(item => {
let groupChildren = list.get(item.groupName) || [];
list.set(item.groupName, [...groupChildren, item]);
});
setTableList(Object.fromEntries(list.entries()));
}
}, [visible]);
const onFinish = () => {};
const createTable = val => {
console.log(val);
onCancel();
onTableClick(val);
};
return (
<div>
<Modal
visible={visible}
title="选择表模型"
width="1000px"
onOk={onFinish}
onCancel={onCancel}
maskClosable={false}
footer={[]}
destroyOnClose
centered
>
<div className={styles.content}>
{Object.keys(tableList).map(item => (
<div className={styles.groupBox} key={item}>
<div className={styles.headerBox}>
<div className={styles.line} />
<div className={styles.groupName}>{item}</div>
</div>
<div className={styles.tableContent}>
{tableList[item].map(ele => (
<div
className={styles.tableBox}
key={ele.value}
onClick={() => createTable(ele.value)}
>
<div className={styles.imgBox}>
<img src={`${window.location.origin}/civmanage/${ele.icon}`} alt="" />
</div>
<div className={styles.title}>{ele.value}</div>
</div>
))}
</div>
</div>
))}
</div>
</Modal>
</div>
);
};
export default ChooseTableType;
.content {
height: 530px;
overflow-y: scroll;
.groupBox {
width: 100%;
margin-bottom: 30px;
.headerBox {
display: flex;
align-items: center;
justify-content: left;
.line {
height: 12px;
width: 3px;
background-color: #3D78FF;
}
.groupName {
margin-left: 7px;
}
}
.tableContent {
display: flex;
.tableBox {
display: flex;
flex-direction: column;
justify-content: center;
margin-right: 10px;
margin-top: 10px;
width: 100px;
cursor: pointer;
.imgBox {
display: flex;
justify-content: center;
width: 100px;
height: 50px;
img {
width: 50px;
height: 50px;
}
}
.title {
text-align: center;
margin-top: 5px;
}
}
}
}
}
\ No newline at end of file
......@@ -742,7 +742,7 @@ const TableView = props => {
bordered
dataSource={dataSource}
columns={columns}
scroll={{ x: 'max-content', y: '540px' }}
scroll={{ y: '540px' }}
pagination={false}
id="box"
/>
......
......@@ -4011,21 +4011,6 @@ const AddModal = props => {
rules={[{ required: true, message: '请输入字段名' }]}
style={{ marginBottom: 0 }}
>
{/* <Select
placeholder="选择字段名"
showSearch
style={{ width: '208px' }}
>
{mapFieldValue.length > 0
? mapFieldValue.map((item, index) => (
<>
<Option key={item.name} value={item.name}>
{item.name}
</Option>
</>
))
: ''}
</Select> */}
<TreeSelect
showSearch
style={{ width: '208px' }}
......@@ -4056,21 +4041,6 @@ const AddModal = props => {
rules={[{ required: true, message: '请输入映射字段名' }]}
style={{ marginBottom: 0 }}
>
{/* <Select
placeholder="选择映射字段名"
showSearch
style={{ width: '208px' }}
>
{keepTree.length > 0
? keepTree.map((item, index) => (
<>
<Option key={item} value={item}>
{item}
</Option>
</>
))
: ''}
</Select> */}
<TreeSelect
showSearch
style={{ width: '208px' }}
......@@ -4111,21 +4081,6 @@ const AddModal = props => {
validateTrigger={['onChange', 'onBlur']}
rules={[{ required: true, message: '请填写字段名' }]}
>
{/* <Select
placeholder="选择字段名"
showSearch
style={{ width: '208px', marginLeft: '98px' }}
>
{mapFieldValue.length > 0
? mapFieldValue.map((item, index) => (
<>
<Option key={item.name} value={item.name}>
{item.name}
</Option>
</>
))
: ''}
</Select> */}
<TreeSelect
showSearch
style={{ width: '208px', marginLeft: '98px' }}
......@@ -4141,7 +4096,6 @@ const AddModal = props => {
)}
</TreeSelect>
</Form.Item>
{/* <SwapOutlined style={{marginLeft:'4px'}}/> */}
<img src={logo} style={{ height: '24px' }} alt="" />
<Form.Item
{...restField}
......@@ -4176,21 +4130,6 @@ const AddModal = props => {
},
]}
>
{/* <Select
placeholder="选择映射字段名"
showSearch
style={{ width: '208px' }}
>
{keepTree.length > 0
? keepTree.map((item, index) => (
<>
<Option key={item} value={item}>
{item}
</Option>
</>
))
: ''}
</Select> */}
<TreeSelect
showSearch
style={{ width: '208px' }}
......
......@@ -56,6 +56,7 @@ import AddTablelList from './components/TableView';
import AffiliateAdd from './components/Field/affiliateAdd';
import LoadGroup from './components/Field/loadGroup';
import LoadGroupNew from './components/Field/loadGroupNew';
import ChooseTableType from './components/ChooseTableType';
// import { defaultFields } from './components/defaultFields';
import styles from './index.less';
const { Search } = Input;
......@@ -622,7 +623,7 @@ const TableManager = props => {
style={{ width: '300px' }}
/>
</div>
<Dropdown overlay={menu} arrow>
{/* <Dropdown overlay={menu} arrow>
<Button
type="primary"
icon={<BorderInnerOutlined />}
......@@ -630,7 +631,18 @@ const TableManager = props => {
>
建表
</Button>
</Dropdown>
</Dropdown> */}
<Button
type="primary"
icon={<BorderInnerOutlined />}
style={{ marginLeft: '10px' }}
onClick={() => {
setType('chooseType');
setVisible(true);
}}
>
建表
</Button>
<Button
type="primary"
style={{ marginLeft: '10px' }}
......@@ -709,6 +721,15 @@ const TableManager = props => {
defaultFieldsList={defaultFieldsList}
tableType={tableType}
/>
<ChooseTableType
visible={visible && type === 'chooseType'}
defalutFields={defaultFieldsList}
onCancel={() => setVisible(false)}
onTableClick={val => {
setTableType(val);
AddTable();
}}
/>
{visible && type === 'affiliateAdd' && (
<AffiliateAdd
visible={visible}
......
......@@ -14,6 +14,7 @@
display: flex;
background-color: #e9f0ff;
justify-content: space-between;
margin: -12px 0 0 -12px;
.left {
display: flex;
......@@ -36,6 +37,25 @@
flex: 1;
height: 50px;
.tabBox {
display: flex;
.tab {
height: 50px;
line-height: 50px;
text-align: center;
padding: 0 20px;
cursor: pointer;
}
.activeTab {
color: #3D78FF;
}
}
.ant-tabs-tab {
height: 50px;
......@@ -43,15 +63,19 @@
border-bottom: none;
}
.ant-tabs-tab:hover {
color: rgba(0, 0, 0, 0.85);
}
.ant-tabs-tab .anticon {
margin-right: 0;
}
.ant-tabs-tab-active {
border-top: 2px solid #3D78FF;
border-bottom: none;
background: linear-gradient(0deg, #BED2F9 0%, #F2F7FF 100%);
color: #3D78FF;
// border-top: 2px solid #3D78FF;
// border-bottom: none;
// background: linear-gradient(0deg, #BED2F9 0%, #F2F7FF 100%);
// color: #3D78FF;
}
}
}
......@@ -81,8 +105,11 @@
.left {
margin-right: 490px;
margin-left: 12px;
span {
display: inline-block;
width: 60px;
font-size: 18px;
font-weight: 700;
color: #3D78FF;
......@@ -105,6 +132,9 @@
}
.ant-input-affix-wrapper {
border: 1px solid #fff;
border-right: none;
height: 34px;
background-color: #C2D6FA;
border-radius: 16px 0 0 16px;
......@@ -112,6 +142,7 @@
background-color: #C2D6FA;
color: #7E8BA3;
border: none;
outline: none;
}
.ant-input::placeholder {
......@@ -120,8 +151,18 @@
}
}
.ant-input-affix-wrapper-focused {
height: 34px;
outline: none;
border: 1px solid #fff;
border-right: none;
box-shadow: none;
}
.ant-input-group-addon {
border-radius: 0 16px 16px 0;
border: 1px solid #fff;
border-left: none;
.ant-input-search-button {
border-radius: 0 16px 16px 0;
......@@ -135,6 +176,7 @@
.flowTable {
flex: 1;
overflow-y: scroll;
position: relative;
.flowGroup {
.header {
......@@ -142,18 +184,20 @@
align-items: center;
height: 45px;
.line {
width: 3px;
height: 12px;
background-color: #3D78FF;
margin-right: 5px;
margin-left: 7px;
margin-left: 5px;
}
.name {
font-size: 14px;
color: #2A4260;
cursor: pointer;
}
}
......@@ -213,7 +257,28 @@
width: 333px;
height: 141px;
border-radius: 0 20px 20px 20px;
z-index: 1;
}
.maskHover {
background: linear-gradient(0deg, #A3C7F9 0%, #FFFFFF 99%);
opacity: 0.65;
}
.buttonBox {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
left: 50%;
transform: translateX(-50%);
width: 333px;
height: 141px;
font-size: 16px;
z-index: 2;
.delete {
display: none;
......@@ -221,13 +286,11 @@
.lookDetail {
display: none;
margin-right: 10px;
margin-right: 17px;
}
}
.mask:hover {
background-color: rgba(0, 0, 0, 0.8);
.buttonHover {
.lookDetail {
display: block;
......@@ -238,6 +301,7 @@
display: block;
cursor: pointer;
}
}
.imgBox {
......@@ -258,7 +322,7 @@
display: flex;
width: 100%;
justify-content: space-between;
padding: 0 18px;
padding: 0 20px;
margin-bottom: 8px;
box-sizing: border-box;
}
......
......@@ -8,7 +8,7 @@ const FlowBoard = () => {
const history = useHistory();
useEffect(() => {}, []);
const { flowData, flowID, chartLoading, activeKey, flowTree } = history.location.state;
const { flowData, flowID, chartLoading, activeKey, flowTree, scrollTop } = history.location.state;
return (
<div className={styles.flowChartContainer}>
<FlowChart
......@@ -17,6 +17,7 @@ const FlowBoard = () => {
chartLoading={chartLoading}
activeKey={activeKey}
flowTree={flowTree}
scrollTop={scrollTop}
/>
</div>
);
......
......@@ -37,7 +37,16 @@ let myOverview = null;
const FlowChart = props => {
const history = useHistory();
const { flowData, flowID, chartLoading, msg, treeVisible, activeKey, flowTree } = props;
const {
flowData,
flowID,
chartLoading,
msg,
treeVisible,
activeKey,
flowTree,
scrollTop,
} = props;
const [visible, setVisible] = useState(false);
const [lineVisible, setLineVisible] = useState(false);
const [editMsg, setEditMsg] = useState({}); // 编辑节点的信息
......@@ -354,7 +363,7 @@ const FlowChart = props => {
FlowTimerList: [],
TurnOnCc: 0,
NodeAliasName: '',
Handover: '移交选择人',
TableName: '',
Fields: '',
WebPage: '',
......@@ -386,6 +395,7 @@ const FlowChart = props => {
NodeName: '开始节点',
NodeType: '1',
SerialNo: 0,
Handover: '移交选择人',
...defaultField,
},
{
......@@ -393,6 +403,7 @@ const FlowChart = props => {
NodeName: '普通节点',
NodeType: '0',
SerialNo: 0,
Handover: '移交选择人',
...defaultField,
},
{
......@@ -400,6 +411,7 @@ const FlowChart = props => {
NodeName: '结束节点',
NodeType: '2',
SerialNo: 0,
Handover: '自处理',
...defaultField,
},
]),
......@@ -955,68 +967,6 @@ const FlowChart = props => {
'fasdfsad',
);
};
// 节点配置回调
// const nodeCallBack = obj => {
// let nameIsRepeat;
// let { nodes } = diagram;
// let keyArr = [];
// // 遍历输出节点对象
// nodes.each(node => {
// keyArr = [...keyArr, Number(node.data.key)];
// if (obj.NodeName === node.data.NodeName) {
// nameIsRepeat = true;
// if (modalType === 'edit' && obj.NodeName === editMsg.NodeName) {
// nameIsRepeat = false;
// }
// }
// });
// if (nameIsRepeat) {
// notification.error({
// message: '提示',
// duration: 3,
// description: '节点名称不能重复',
// });
// return;
// }
// // 编辑节点
// let nodeData = diagram.model.findNodeDataForKey(nodeKey);
// const {
// NodeName,
// NodeType,
// roleList,
// SerialNo,
// aheadHandle,
// NodeHandling,
// nodeDetail,
// RuleList,
// CarbonCopyPeopleList,
// SubFlowInfo,
// } = obj;
// nodeData.NodeName = NodeName;
// nodeData.NodeType = NodeType;
// nodeData.NodeId = nodeKey;
// nodeData.roleList = roleList;
// nodeData.SerialNo = SerialNo;
// nodeData.aheadHandle = aheadHandle;
// nodeData.NodeHandling = NodeHandling;
// nodeData.nodeDetail = nodeDetail;
// nodeData.RuleList = RuleList;
// nodeData.CarbonCopyPeopleList = CarbonCopyPeopleList;
// nodeData.SubFlowInfo = SubFlowInfo;
// diagram.model.updateTargetBindings(nodeData);
// // 给线上添加文字
// let diagramObj = JSON.parse(diagram.model.toJson());
// console.log(diagramObj.linkDataArray, 'diagramObj.linkDataArray');
// diagramObj.linkDataArray.forEach(item => {
// let node = diagram.model.findLinkDataForKey(item.LineKey);
// node.text = item.RuleName;
// diagram.model.updateTargetBindings(node);
// });
// // 关闭时进行数据比对看数据是否改变
// leaveTip();
// // setVisible(false);
// };
const nodeCallBack = () => {
SaveWorkFlowImage({
flowName: flowData.flowName,
......@@ -1028,6 +978,7 @@ const FlowChart = props => {
if (response.code === 0) {
FlowNodeSave({
PreviewImage: response.data,
CreateUser: sessionStorage.getItem('userName'),
flowID,
...currentNode.current,
CarbonCopyPeopleList: currentNode.current.CarbonCopyPeopleList.map(item =>
......@@ -1089,11 +1040,7 @@ const FlowChart = props => {
setCurrentFlowData(JSON.parse(JSON.stringify(res.data)));
} else {
notification.error({
title: '提示',
duration: 3,
description: res.msg,
});
message.error(res.msg);
}
});
};
......@@ -1146,7 +1093,6 @@ const FlowChart = props => {
// return;
// }
let list = new Set([]);
console.log(list, '11111');
diagramObj.nodeDataArray.forEach(item => {
if ((item.NodeType === '20' || item.NodeType === '21') && item.RuleList) {
......@@ -1173,7 +1119,6 @@ const FlowChart = props => {
}
item.CarbonCopyPeopleList = item.CarbonCopyPeopleList.map(ele => Number(ele.value));
});
console.log(list, '222');
if ([...list].length > 0) {
list.forEach(item => {
message.error(`请检查${item}规则配置`);
......@@ -1192,6 +1137,7 @@ const FlowChart = props => {
SaveNodeChange({
FlowId: flowID,
// DeleteNodes,
CreateUser: sessionStorage.getItem('userName'),
PreviewImage: val.data,
DeleteLines,
Lines: diagramObj.linkDataArray,
......@@ -1206,26 +1152,14 @@ const FlowChart = props => {
setDeleteNode('');
setDeleteLine('');
getFlowData();
notification.success({
message: '提示',
duration: 3,
description: '保存成功',
});
message.success('保存成功');
} else {
notification.error({
message: '提示',
duration: 8,
description: res.msg,
});
message.error(res.msg);
}
})
.catch(() => {
setButtonLoading(false);
notification.error({
message: '提示',
duration: 3,
description: '网络异常请稍后重试',
});
message.error('网络异常请稍后重试');
});
}
});
......@@ -1301,6 +1235,7 @@ const FlowChart = props => {
pathname: '/biz/workflow/center',
state: {
activeKey,
scrollTop,
},
})
}
......
......@@ -15,7 +15,8 @@ const FlowModal = props => {
if (modalType === 'edit') {
getFormData();
} else {
form.setFieldsValue({ Type: msg.name });
form.setFieldsValue({ Type: msg.name, Prefix: 'xxxx' });
setFlag(flag + 1);
}
}
}, [visible]);
......@@ -31,9 +32,9 @@ const FlowModal = props => {
if (validate) {
let obj = {};
if (modalType === 'add') {
obj = { ...validate, CreateUser: sessionStorage.getItem('userType') };
obj = { ...validate, CreateUser: sessionStorage.getItem('userName') };
} else {
obj = { ...validate, flowID: msg.FlowID };
obj = { ...validate, CreateUser: sessionStorage.getItem('userName'), flowID: msg.FlowID };
}
CreateFlow(obj)
.then(res => {
......@@ -43,7 +44,7 @@ const FlowModal = props => {
duration: 3,
description: modalType === 'add' ? '新增成功' : '编辑成功',
});
onSubumit();
onSubumit(validate.Type);
} else {
notification.error({
message: '提示',
......@@ -104,7 +105,7 @@ const FlowModal = props => {
},
]}
>
<Input placeholder="请输入流程名称" />
<Input placeholder="请输入流程名称" readOnly={modalType === 'edit'} />
</Form.Item>
<Form.Item
label="分组信息"
......
......@@ -72,6 +72,10 @@
}
}
.ant-form label {
width: 100%;
}
.titleBox {
color: #BCBCBC;
font-size: 14px;
......
......@@ -48,6 +48,10 @@ const ConfigNodeMsg = (props, ref) => {
aheadHandle: aheadHandle || aheadHandle === 0 ? aheadHandle : 1,
NodeHandling: NodeHandling || NodeHandling === 0 ? NodeHandling : 1,
});
setNodeMsg(editMsg);
if (!editMsg.TableName) {
return;
}
loadEventFields({ eventTableName: editMsg.TableName }).then(res => {
if (res.code === 0) {
let initList = [];
......@@ -63,7 +67,6 @@ const ConfigNodeMsg = (props, ref) => {
setFiledList(initList);
}
});
setNodeMsg(editMsg);
};
// 获取表名
const getTableName = () => {
......@@ -277,16 +280,6 @@ const ConfigNodeMsg = (props, ref) => {
</Form.Item> */}
{/* 第一次填写显示,如果是网关、子节点一直显示 */}
<Form.Item
// style={{
// display:
// !editMsg.ActivityId ||
// nodeMsg.NodeType === '20' ||
// nodeMsg.NodeType === '21' ||
// nodeMsg.NodeType === '22' ||
// nodeMsg.NodeType === '30'
// ? 'flex'
// : 'none',
// }}
label={`${
nodeMsg.NodeType === '20' || nodeMsg.NodeType === '21' || nodeMsg.NodeType === '22'
? '网关'
......@@ -342,22 +335,63 @@ const ConfigNodeMsg = (props, ref) => {
</Form.Item>
<Form.Item label="移交方式" name="Handover">
<Radio.Group>
<Radio value="移交选择人">移交选择人</Radio>
<Radio value="自处理" style={{ display: editMsg.NodeType === '1' ? 'none' : 'flex' }}>
<Radio
value="移交选择人"
style={{
display: editMsg.NodeType === '2' ? 'none' : 'flex',
}}
>
<div style={{ display: 'flex', alignItems: 'center' }}>
移交选择人
<Tooltip title="根据人员选择面板,自主选择移交的人员">
<InfoCircleOutlined style={{ color: '#1890ff', marginLeft: '3px' }} />
</Tooltip>
</div>
</Radio>
<Radio
value="自处理"
style={{
display: editMsg.NodeType === '1' ? 'none' : 'flex',
}}
>
<div style={{ display: 'flex', alignItems: 'center' }}>
自处理
<Tooltip title="下一个节点,默认由自己继续办理">
<InfoCircleOutlined style={{ color: '#1890ff', marginLeft: '3px' }} />
</Tooltip>
</div>
</Radio>
<Radio value="移交默认人">
<div style={{ display: 'flex', alignItems: 'center' }}>
移交默认人
<Tooltip title="自动移交给权限配置中的默认承办人">
<InfoCircleOutlined style={{ color: '#1890ff', marginLeft: '3px' }} />
</Tooltip>
</div>
</Radio>
<Radio value="移交默认人">移交默认人</Radio>
<Radio
value="移交发起人"
style={{ display: editMsg.NodeType === '1' ? 'none' : 'flex' }}
>
<div style={{ display: 'flex', alignItems: 'center' }}>
移交发起人
<Tooltip title="自动移交给流程发起人">
<InfoCircleOutlined style={{ color: '#1890ff', marginLeft: '3px' }} />
</Tooltip>
</div>
</Radio>
<Radio value="跨站移交">
<div style={{ display: 'flex', alignItems: 'center' }}>
跨站移交
<Tooltip title="人员选择面板,会忽略当前处理站点,展示配置权限所有人员">
<InfoCircleOutlined style={{ color: '#1890ff', marginLeft: '3px' }} />
</Tooltip>
</div>
</Radio>
<Radio value="跨站移交">跨站移交</Radio>
</Radio.Group>
</Form.Item>
<Form.Item label="工单主表" name="TableName">
<Select placeholder="请选择工单主表" onChange={changTable} showSearch>
<Form.Item label="节点表名" name="TableName">
<Select placeholder="请选择节点表名" onChange={changTable} showSearch>
{eventTable.map(item => (
<Option value={item.Name} key={item.Name}>
{item.Name}
......@@ -365,7 +399,7 @@ const ConfigNodeMsg = (props, ref) => {
))}
</Select>
</Form.Item>
<Tooltip title={form.getFieldValue('Fields')}>
<Form.Item
label={
<div className={styles.formData_label}>
......@@ -381,11 +415,19 @@ const ConfigNodeMsg = (props, ref) => {
}
>
<div className={styles.filedListItem}>
<Tooltip title={form.getFieldValue('Fields')}>
<Form.Item name="Fields" style={{ marginBottom: 0, width: '100%' }}>
<Input placeholder="请选编辑字段" allowClear />
<Input
placeholder="请选编辑字段"
readOnly
onClick={() => {
deployField('Fields');
}}
/>
</Form.Item>
</Tooltip>
<Button
type="dashed"
style={{ margin: 0, borderLeft: 0 }}
icon={<PlusOutlined />}
onClick={() => {
deployField('Fields');
......@@ -393,7 +435,6 @@ const ConfigNodeMsg = (props, ref) => {
/>
</div>
</Form.Item>
</Tooltip>
{/* <Form.Item label="前端视图" name="WebPage">
<Input placeholder="请配置前端视图" />
......@@ -423,9 +464,9 @@ const ConfigNodeMsg = (props, ref) => {
>
<Form.Item label="办理方式" name="NodeHandling">
<Select>
<Option value={1}>多人接收,一人办理(抢占模式</Option>
<Option value={0}>多人接收,多人办理(会签模式</Option>
<Option value={2}>一人接收,一人办理</Option>
<Option value={1}>多人接收,一人办理(抢占)</Option>
<Option value={0}>多人接收,多人办理(会签)</Option>
<Option value={2}>一人接收,一人办理(独占)</Option>
</Select>
</Form.Item>
</div>
......
......@@ -47,6 +47,9 @@ const ConfigOperate = (props, ref) => {
};
// 加载修改流程节点配置允许退回列表
const rollBackNodes = () => {
if (!editMsg.ActivityId) {
return;
}
loadRollbackNodes({ flowNodeId: editMsg.ActivityId }).then(res => {
if (res.code === 0) {
setBackNodes(res.data);
......@@ -115,12 +118,17 @@ const ConfigOperate = (props, ref) => {
</div>
<Form.Item
valuePropName="checked"
style={{ marginBottom: '0', padding: '2px', borderBottom: '1px solid #ccc' }}
style={{
marginBottom: '0',
padding: '2px',
borderBottom: '1px solid #ccc',
display: editMsg.NodeType === '0' ? 'flex' : 'none',
}}
label={
<div style={{ display: 'flex', alignItems: 'center' }}>
<Tooltip title="开始节点不允许转办">
{/* <Tooltip title="开始节点不允许转办">
<InfoCircleOutlined style={{ color: '#1890ff', marginRight: '3px' }} />
</Tooltip>
</Tooltip> */}
<span>转办</span>
</div>
}
......@@ -146,9 +154,9 @@ const ConfigOperate = (props, ref) => {
valuePropName="checked"
label={
<div style={{ display: 'flex', alignItems: 'center' }}>
<Tooltip title="开始节点和结束节点不可配置中途关单">
{/* <Tooltip title="开始节点和结束节点不可配置中途关单">
<InfoCircleOutlined style={{ color: '#1890ff', marginRight: '3px' }} />
</Tooltip>
</Tooltip> */}
<span>中途关单</span>
</div>
}
......@@ -170,7 +178,7 @@ const ConfigOperate = (props, ref) => {
valuePropName="checked"
label={
<div style={{ display: 'flex', alignItems: 'center' }}>
<Tooltip title="结束节点可配置自动关单">
<Tooltip title="谨慎使用,由上一节点移交后,会自动归档">
<InfoCircleOutlined style={{ color: '#1890ff', marginRight: '3px' }} />
</Tooltip>
<span>自动关单</span>
......@@ -228,7 +236,12 @@ const ConfigOperate = (props, ref) => {
</Form.Item>
<Form.Item
valuePropName="checked"
style={{ marginBottom: '0', padding: '2px', borderBottom: '1px solid #ccc' }}
style={{
marginBottom: '0',
padding: '2px',
borderBottom: '1px solid #ccc',
display: editMsg.NodeType === '0' ? 'flex' : 'none',
}}
label="是否发送短信"
name="IsSendMessage"
>
......
......@@ -39,7 +39,7 @@ const Login = props => {
const { msg } = result;
if (result.data && result.data.pass) {
const { userMode, token } = result.data;
const { userMode, token, userName } = result.data;
console.log(token);
localStorage.setItem('token', token?.access_token || '');
updateDicName();
......@@ -50,6 +50,7 @@ const Login = props => {
setAuthority(authority);
setAuth(authority);
sessionStorage.setItem('userType', AUTHORITY[userMode]);
sessionStorage.setItem('userName', userName);
if (userMode === USER_MODE.SUPER) {
history.push(`/solution`);
} else {
......
......@@ -123,6 +123,7 @@ const AddUserModal = props => {
(email === '' || isEmail.test(email))
) {
console.log(addUserForm.getFieldValue('GroupId'), 'afasdf');
console.log(orgID);
addUser({
GroupId: addUserForm.getFieldValue('GroupId') || '',
OUID: orgID.id,
......
......@@ -265,6 +265,18 @@ const UserManage = () => {
align: 'center',
render: record => (
<Space size="middle">
<Tooltip title="关联权限">
<IdcardOutlined
onClick={() => relateRole(record)}
style={{ fontSize: '16px', color: '#1890FF' }}
/>
</Tooltip>
<Tooltip title="更改机构">
<ApartmentOutlined
onClick={() => changeOrg(record)}
style={{ fontSize: '16px', color: '#1890FF' }}
/>
</Tooltip>
<Tooltip title="设置为主管">
<Popconfirm
placement="bottomRight"
......@@ -297,18 +309,6 @@ const UserManage = () => {
/>
</Popconfirm>
</Tooltip>
<Tooltip title="关联权限">
<IdcardOutlined
onClick={() => relateRole(record)}
style={{ fontSize: '16px', color: '#1890FF' }}
/>
</Tooltip>
<Tooltip title="更改机构">
<ApartmentOutlined
onClick={() => changeOrg(record)}
style={{ fontSize: '16px', color: '#1890FF' }}
/>
</Tooltip>
{/* <Tooltip title="修改密码">
<UnlockOutlined
onClick={() => changePassword(record)}
......@@ -321,7 +321,7 @@ const UserManage = () => {
{(record.state == 0 || record.state == null) && (
<>
{record.loginName == 'panda' || record.loginName == 'admin' ? (
<StopOutlined style={{ fontSize: '16px' }} />
<StopOutlined style={{ fontSize: '16px', color: '#1890ff' }} disabled />
) : (
<Tooltip title="冻结用户">
<Popconfirm
......@@ -395,7 +395,7 @@ const UserManage = () => {
</Popconfirm>
</Tooltip> */}
{record.loginName == 'panda' || record.loginName == 'admin' ? (
<DeleteOutlined style={{ fontSize: '16px' }} />
<DeleteOutlined style={{ fontSize: '16px', color: '#e86060' }} disabled />
) : (
<Popconfirm
placement="bottomRight"
......
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