Commit 5946c5ef authored by 皮倩雯's avatar 皮倩雯

三级模态增加路由

parents 4f2ba10a 5e0b4c47
Pipeline #36041 skipped with stages
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { Form, Modal, Input, Select, Tooltip, Button, notification, Image, Menu, Dropdown } from 'antd';
import { import {
PlusOutlined, Form,
InfoCircleOutlined, Modal,
DownOutlined Input,
} from '@ant-design/icons'; Select,
Tooltip,
Button,
notification,
Image,
Menu,
Dropdown,
Drawer,
Space,
} from 'antd';
import { import {
LoadEventFields PlusOutlined,
} from '@/services/platform/bs' InfoCircleOutlined,
DownOutlined,
} from '@ant-design/icons';
import { LoadEventFields } from '@/services/platform/bs';
import add from '@/assets/images/thumbnail/add.jpg'; import add from '@/assets/images/thumbnail/add.jpg';
import editor from '@/assets/images/thumbnail/editor.jpg'; import editor from '@/assets/images/thumbnail/editor.jpg';
import hand from '@/assets/images/thumbnail/hand.png'; import hand from '@/assets/images/thumbnail/hand.png';
...@@ -15,371 +26,522 @@ import search from '@/assets/images/thumbnail/search.jpg'; ...@@ -15,371 +26,522 @@ import search from '@/assets/images/thumbnail/search.jpg';
import taizhang from '@/assets/images/thumbnail/taizhang.jpg'; import taizhang from '@/assets/images/thumbnail/taizhang.jpg';
import web from '@/assets/images/thumbnail/web.jpg'; import web from '@/assets/images/thumbnail/web.jpg';
import { import {
GetCM_Ledger_LoadLedgerTable, GetCMLedger_QueryLedgers, GetCMLedger_OperateLedger GetCM_Ledger_LoadLedgerTable,
GetCMLedger_QueryLedgers,
GetCMLedger_OperateLedger,
} from '@/services/standingBook/api'; } from '@/services/standingBook/api';
import styles from './standingBook.less'; import styles from './standingBook.less';
import ChangeAdd from './changeAdd' import ChangeAdd from './changeAdd';
import { orderBy } from 'lodash'; import { orderBy } from 'lodash';
const { Option } = Select; const { Option } = Select;
const { TextArea } = Input; const { TextArea } = Input;
const AddModal = props => { const AddModal = props => {
const { callBackSubmit = () => { }, type, formObj, visible, tableData, maxLength } = props; const {
const [standingTable, setStandingTable] = useState([]); callBackSubmit = () => {},
const [inputValue, setInputVaule] = useState({ Fields: '', EditFields: '', AddFields: '', MobileFields: '', SearchFields: '', WebFields: '' }); type,
const [isVisible, setIsVisible] = useState(false); // 弹窗 formObj,
const [loading, setLoading] = useState(false); visible,
const [pickItem, setPickItem] = useState('') tableData,
const [filed, setFiled] = useState({}); // 传给子组件列表数据 maxLength,
const [types, setTypes] = useState(''); // 弹窗类型 onCancel,
const [Order, setOrder] = useState(''); // 弹窗类型 } = props;
const [checkedList, setCheckedList] = useState([]) const [standingTable, setStandingTable] = useState([]);
const [Type,setType] = useState('') const [inputValue, setInputVaule] = useState({
const [characterValue, setCharacterValue] = useState('') Fields: '',
const [standingType, setStandingType] = useState(['台账', '反馈', '设备']); EditFields: '',
const [form] = Form.useForm(); AddFields: '',
const { Item } = Form; MobileFields: '',
// 提交 SearchFields: '',
const onSubmit = () => { WebFields: '',
form.validateFields().then(validate => { });
if (validate) { const [isVisible, setIsVisible] = useState(false); // 弹窗
setLoading(true); const [loading, setLoading] = useState(false);
let obj = form.getFieldsValue(); const [pickItem, setPickItem] = useState('');
let data = type == 'add' ? { ...obj, ...inputValue, Order: maxLength } : { ...obj, Order, ID: formObj.ID } const [filed, setFiled] = useState({}); // 传给子组件列表数据
GetCMLedger_OperateLedger(data) const [types, setTypes] = useState(''); // 弹窗类型
.then(res => { const [Order, setOrder] = useState(''); // 弹窗类型
setLoading(false); const [checkedList, setCheckedList] = useState([]);
if (res.msg === '') { const [Type, setType] = useState('');
form.resetFields(); const [characterValue, setCharacterValue] = useState('');
callBackSubmit(); const [standingType, setStandingType] = useState(['台账', '反馈', '设备']);
notification.success({ const [form] = Form.useForm();
message: '提示', const { Item } = Form;
duration: 3, // 提交
description: type == 'add' ? '新增成功' : '编辑成功', const onSubmit = () => {
}); form.validateFields().then(validate => {
} else { if (validate) {
notification.error({ setLoading(true);
message: '提示', let obj = form.getFieldsValue();
duration: 3, let data =
description: res.msg, type == 'add'
}); ? { ...obj, ...inputValue, Order: maxLength }
} : { ...obj, Order, ID: formObj.ID };
}) GetCMLedger_OperateLedger(data)
.catch(err => { .then(res => {
notification.error({ setLoading(false);
message: '提示', if (res.msg === '') {
duration: 3, form.resetFields();
description: '新增失败', callBackSubmit();
}); notification.success({
setLoading(false); message: '提示',
}); duration: 3,
description: type == 'add' ? '新增成功' : '编辑成功',
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg,
});
} }
}); })
}; .catch(err => {
notification.error({
message: '提示',
duration: 3,
const onFinish = value => { }; description: '新增失败',
useEffect(() => { });
getTableData() setLoading(false);
if (type === 'edit') { });
GetCMLedger_QueryLedgers({ ledgerId: formObj.ID }).then(res => { }
res.data.root && form.setFieldsValue({ ...res.data.root }); });
setInputVaule({ ...res.data.root }) };
setOrder(res.data.root.Order)
setType(res.data.root.Type)
changTable(res.data.root.TableName)
})
}
else if (type === 'add') {
setInputVaule({ Fields: '', EditFields: '', AddFields: '', MobileFields: '', SearchFields: '', WebFields: '' })
setFiled({})
form.resetFields();
form.setFieldsValue({ AccountType: '台账' });
}
}, [visible]);
const onFinish = value => {};
useEffect(() => {
const layout = { getTableData();
layout: 'horizontal', if (type === 'edit') {
labelCol: { GetCMLedger_QueryLedgers({ ledgerId: formObj.ID }).then(res => {
span: 5, res.data.root && form.setFieldsValue({ ...res.data.root });
}, setInputVaule({ ...res.data.root });
wrapperCol: { setOrder(res.data.root.Order);
span: 19, setType(res.data.root.Type);
}, changTable(res.data.root.TableName);
}; });
const getTableData = () => { } else if (type === 'add') {
setType('') setInputVaule({
GetCM_Ledger_LoadLedgerTable().then(res => { Fields: '',
if (res.msg === 'Ok') { EditFields: '',
setStandingTable(res.data.root) AddFields: '',
} MobileFields: '',
}) SearchFields: '',
WebFields: '',
});
setFiled({});
form.resetFields();
form.setFieldsValue({ AccountType: '台账' });
} }
const changTable = (value) => { }, [visible]);
LoadEventFields({ eventTableName: value, distinctFields: '' }).then(res => {
if (res.data.root && res.data.root.length) {
setFiled(formateArrDataA(res.data.root, 'group'))
}
}) const layout = {
} layout: 'horizontal',
labelCol: {
span: 5,
},
wrapperCol: {
span: 19,
},
};
const getTableData = () => {
setType('');
GetCM_Ledger_LoadLedgerTable().then(res => {
if (res.msg === 'Ok') {
setStandingTable(res.data.root);
}
});
};
const changTable = value => {
LoadEventFields({ eventTableName: value, distinctFields: '' }).then(res => {
if (res.data.root && res.data.root.length) {
setFiled(formateArrDataA(res.data.root, 'group'));
}
});
};
const formateArrDataA = (initialArr, name) => { const formateArrDataA = (initialArr, name) => {
// 判定传参是否符合规则 // 判定传参是否符合规则
if (!(initialArr instanceof Array)) { if (!(initialArr instanceof Array)) {
return '请传入正确格式的数组' return '请传入正确格式的数组';
}
if (!name) {
return '请传入对象属性'
}
//先获取一下这个数组中有多少个"name"
let nameArr = []
for (let i in initialArr) {
if (nameArr.indexOf(initialArr[i][`${name}`]) === -1) {
nameArr.push(initialArr[i][`${name}`])
}
}
//新建一个包含多个list的结果对象
let tempObj = {}
// 根据不同的"name"生成多个数组
console.log(initialArr)
for (let k in nameArr) {
for (let j in initialArr) {
if (initialArr[j][`${name}`] == nameArr[k]) {
// 每次外循环时新建一个对应"name"的数组, 内循环时当前数组不变
tempObj[nameArr[k]] = tempObj[nameArr[k]] || []
tempObj[nameArr[k]].push(initialArr[j])
}
}
}
console.log(tempObj);
for (let key in tempObj) {
let arr = []
tempObj[key].map(item => {
tempObj[key] = arr;
arr.push(item.fieldName)
})
}
return tempObj
} }
const onOK = prop => { if (!name) {
setIsVisible(false) return '请传入对象属性';
let inputText = { ...inputValue }
inputText[prop.pickItem] = prop.str
setCheckedList(prop.checkedList)
setInputVaule(inputText)
} }
const pickFiled = (fileds) => { //先获取一下这个数组中有多少个"name"
setTypes('add') let nameArr = [];
setCharacterValue(inputValue[fileds]) for (let i in initialArr) {
setCheckedList(inputValue[fileds].split(',')) if (nameArr.indexOf(initialArr[i][`${name}`]) === -1) {
setPickItem(fileds) nameArr.push(initialArr[i][`${name}`]);
setIsVisible(true) }
} }
const changeText = (e, type) => { //新建一个包含多个list的结果对象
let inputText = { ...inputValue } let tempObj = {};
inputText[type] = e.target.value // 根据不同的"name"生成多个数组
setInputVaule(inputText) console.log(initialArr);
for (let k in nameArr) {
for (let j in initialArr) {
if (initialArr[j][`${name}`] == nameArr[k]) {
// 每次外循环时新建一个对应"name"的数组, 内循环时当前数组不变
tempObj[nameArr[k]] = tempObj[nameArr[k]] || [];
tempObj[nameArr[k]].push(initialArr[j]);
}
}
} }
const inputType = (e) => { console.log(tempObj);
setType(e.target.value) for (let key in tempObj) {
form.setFieldsValue({ Type:e.target.value }) let arr = [];
tempObj[key].map(item => {
tempObj[key] = arr;
arr.push(item.fieldName);
});
} }
return tempObj;
return ( };
<Modal const onOK = prop => {
title={`${type === 'add' ? '台账配置' : '台账编辑'}`} setIsVisible(false);
bodyStyle={{ width: '100%', minHeight: '100px' }} let inputText = { ...inputValue };
style={{ top: '80px' }} inputText[prop.pickItem] = prop.str;
width="700px" setCheckedList(prop.checkedList);
destroyOnClose setInputVaule(inputText);
maskClosable={false} };
cancelText="取消" const pickFiled = fileds => {
okText="确认" setTypes('add');
{...props} setCharacterValue(inputValue[fileds]);
onOk={() => onSubmit()} setCheckedList(inputValue[fileds].split(','));
confirmLoading={loading} setPickItem(fileds);
forceRender={true} setIsVisible(true);
getContainer={false} };
> const changeText = (e, type) => {
{visible && ( let inputText = { ...inputValue };
<div className={styles.formData}> inputText[type] = e.target.value;
<Form form={form} {...layout} onFinish={onFinish}> setInputVaule(inputText);
<Item };
label="分组" const inputType = e => {
name="Type" setType(e.target.value);
rules={[{ required: true, message: '请选择分组' }]} form.setFieldsValue({ Type: e.target.value });
> };
<div>
<Input
className="ue-editable-select-input"
onChange={inputType}
value = {Type}
>
</Input>
<Dropdown
placement='bottomRight'
style={{width:'20rem'}}
overlay={<Menu>
{tableData.length ? tableData.map((item, index) => { return <Menu.Item onClick={()=>{setType(item); form.setFieldsValue({ Type:item})}} style={{width:'26.6rem'}} key={index}>{item}</Menu.Item> }) : ''}
</Menu>} >
<div className={styles.linkDrowp} onClick={e => e.preventDefault()}>
<DownOutlined style={{fontSize:'12px',color:'rgba(0, 0, 0, 0.25)'}} />
</div>
</Dropdown>
{/* {tableData.length ? tableData.map((item, index) => { return <Option key={index} value={item}>{item}</Option> }) : ''} */}
</div>
</Item>
<Item
label="台账类型"
name="AccountType"
>
<Select
placeholder="选择台账类型"
>
{standingType.length ? standingType.map((item, index) => { return <Option key={index} value={item}>{item}</Option> }) : ''}
</Select>
</Item>
<Item
label="台账名称"
name="Name"
rules={[{ required: true, message: '请输入台账名称' }]}
>
<Input placeholder="台账名称不可重复" allowClear />
</Item>
<Item
label="台账表"
name="TableName"
rules={[{ required: true, message: '请选择台账表' }]}
>
<Select
placeholder=""
optionFilterProp="children"
onChange={changTable}
>
{standingTable.length ? standingTable.map((item, index) => { return <Option key={index} value={item.value}>{item.text}</Option> }) : ''}
</Select>
</Item>
<Item
label={<div className={styles.formData_label}>
<Tooltip title={<Image
width={200}
src={taizhang}
/>}><InfoCircleOutlined style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }} /></Tooltip><span>台账字段</span> </div>}
name="Fields"
>
<div className={styles.filed_listItem} >
<TextArea placeholder="前端详情查看字段" onChange={(e) => changeText(e, 'Fields')} value={inputValue.Fields} allowClear />
<Button type="dashed" onClick={() => pickFiled('Fields')} icon={<PlusOutlined />} style={{ marginLeft: '0.5rem', height: '100%', width: '3.5rem' }} />
</div>
</Item>
<Item
label={<div className={styles.formData_label}> <Tooltip title={<Image
width={200}
src={search}
/>}><InfoCircleOutlined style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }} /></Tooltip><span>检索字段</span> </div>}
name="SearchFields"
>
<div className={styles.filed_listItem} >
<TextArea placeholder="前端列表检索字段" onChange={(e) => changeText(e, 'SearchFields')} value={inputValue.SearchFields} allowClear />
<Button type="dashed" onClick={() => pickFiled('SearchFields')} icon={<PlusOutlined />} style={{ marginLeft: '0.5rem', height: '100%', width: '3.5rem' }} />
</div>
</Item>
<Item
label={<div className={styles.formData_label}> <Tooltip title={<Image
width={200}
src={add}
/>}><InfoCircleOutlined style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }} /></Tooltip><span>添加字段</span> </div>}
name="AddFields"
>
<div className={styles.filed_listItem} >
<TextArea placeholder="前端数据添加字段" onChange={(e) => changeText(e, 'AddFields')} value={inputValue.AddFields} allowClear />
<Button type="dashed" onClick={() => pickFiled('AddFields')} icon={<PlusOutlined />} style={{ marginLeft: '0.5rem', height: '100%', width: '3.5rem' }} />
</div>
</Item>
<Item return (
label={<div className={styles.formData_label}> <Drawer
<Tooltip title={`${type === 'add' ? '台账配置' : '台账编辑'}`}
title={<Image width="500px"
width={200} visible={visible}
src={editor} onClose={onCancel}
/>}><InfoCircleOutlined style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }} /></Tooltip><span>编辑字段</span> </div>} footer={
name="EditFields" <Space>
> <Button onClick={onCancel}>取消</Button>
<Button onClick={onSubmit} type="primary">
<div className={styles.filed_listItem} > 确定
<TextArea placeholder="前端可编辑字段" onChange={(e) => changeText(e, 'EditFields')} value={inputValue.EditFields} allowClear /> </Button>
<Button type="dashed" onClick={() => pickFiled('EditFields')} icon={<PlusOutlined />} style={{ marginLeft: '0.5rem', height: '100%', width: '3.5rem' }} /> </Space>
</div> }
</Item> >
<Item {visible && (
label={<div className={styles.formData_label}> <div className={styles.formData}>
<Tooltip title={<Image <Form form={form} {...layout} onFinish={onFinish}>
width={200} <Item
src={web} label="分组"
/>}><InfoCircleOutlined style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }} /></Tooltip><span>前端字段</span> </div>} name="Type"
name="WebFields" rules={[{ required: true, message: '请选择分组' }]}
> >
<div>
<div className={styles.filed_listItem} > <Input
<TextArea placeholder="前端列表展示字段" onChange={(e) => changeText(e, 'WebFields')} value={inputValue.WebFields} allowClear /> className="ue-editable-select-input"
<Button type="dashed" onClick={() => pickFiled('WebFields')} icon={<PlusOutlined />} style={{ marginLeft: '0.5rem', height: '100%', width: '3.5rem' }} /> onChange={inputType}
</div> value={Type}
</Item> />
<Item <Dropdown
label={<div className={styles.formData_label}> placement="bottomRight"
<Tooltip title={<Image style={{ width: '20rem' }}
width={100} overlay={
src={hand} <Menu>
/>}><InfoCircleOutlined style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }} /></Tooltip><span>手持字段</span> </div>} {tableData.length
name="MobileFields" ? tableData.map((item, index) => {
> return (
<Menu.Item
<div className={styles.filed_listItem} > onClick={() => {
<TextArea placeholder="手持展示字段" onChange={(e) => changeText(e, 'MobileFields')} value={inputValue.MobileFields} allowClear /> setType(item);
<Button type="dashed" onClick={() => pickFiled('MobileFields')} icon={<PlusOutlined />} style={{ marginLeft: '0.5rem', height: '100%', width: '3.5rem' }} /> form.setFieldsValue({ Type: item });
</div> }}
</Item> style={{ width: '26.6rem' }}
<Item key={index}
label='接口配置' >
name="Interface" {item}
> </Menu.Item>
);
})
: ''}
</Menu>
}
>
<div
className={styles.linkDrowp}
onClick={e => e.preventDefault()}
>
<DownOutlined
style={{ fontSize: '12px', color: 'rgba(0, 0, 0, 0.25)' }}
/>
</div>
</Dropdown>
{/* {tableData.length ? tableData.map((item, index) => { return <Option key={index} value={item}>{item}</Option> }) : ''} */}
</div>
</Item>
<Item label="台账类型" name="AccountType">
<Select placeholder="选择台账类型">
{standingType.length
? standingType.map((item, index) => {
return (
<Option key={index} value={item}>
{item}
</Option>
);
})
: ''}
</Select>
</Item>
<Item
label="台账名称"
name="Name"
rules={[{ required: true, message: '请输入台账名称' }]}
>
<Input placeholder="台账名称不可重复" allowClear />
</Item>
<div className={styles.filed_listItem} > <Item
<TextArea placeholder="服务项目dll库" allowClear /> label="台账表"
</div> name="TableName"
</Item> rules={[{ required: true, message: '请选择台账表' }]}
</Form> >
<ChangeAdd <Select
visible={isVisible} placeholder=""
onCancel={() => setIsVisible(false)} optionFilterProp="children"
callBackSubmit={onOK} onChange={changTable}
newCheckedList={checkedList} >
isType={types} {standingTable.length
filed={filed} ? standingTable.map((item, index) => {
pickItem={pickItem} return (
characterValue={characterValue} <Option key={index} value={item.value}>
formObj={formObj} /> {item.text}
</Option>
);
})
: ''}
</Select>
</Item>
<Item
label={
<div className={styles.formData_label}>
<Tooltip title={<Image width={200} src={taizhang} />}>
<InfoCircleOutlined
style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }}
/>
</Tooltip>
<span>台账字段</span>{' '}
</div>
}
name="Fields"
>
<div className={styles.filed_listItem}>
<TextArea
placeholder="前端详情查看字段"
onChange={e => changeText(e, 'Fields')}
value={inputValue.Fields}
allowClear
/>
<Button
type="dashed"
onClick={() => pickFiled('Fields')}
icon={<PlusOutlined />}
style={{
marginLeft: '0.5rem',
height: '100%',
width: '3.5rem',
}}
/>
</div>
</Item>
<Item
label={
<div className={styles.formData_label}>
{' '}
<Tooltip title={<Image width={200} src={search} />}>
<InfoCircleOutlined
style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }}
/>
</Tooltip>
<span>检索字段</span>{' '}
</div> </div>
}
name="SearchFields"
>
<div className={styles.filed_listItem}>
<TextArea
placeholder="前端列表检索字段"
onChange={e => changeText(e, 'SearchFields')}
value={inputValue.SearchFields}
allowClear
/>
<Button
type="dashed"
onClick={() => pickFiled('SearchFields')}
icon={<PlusOutlined />}
style={{
marginLeft: '0.5rem',
height: '100%',
width: '3.5rem',
}}
/>
</div>
</Item>
<Item
label={
<div className={styles.formData_label}>
{' '}
<Tooltip title={<Image width={200} src={add} />}>
<InfoCircleOutlined
style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }}
/>
</Tooltip>
<span>添加字段</span>{' '}
</div>
}
name="AddFields"
>
<div className={styles.filed_listItem}>
<TextArea
placeholder="前端数据添加字段"
onChange={e => changeText(e, 'AddFields')}
value={inputValue.AddFields}
allowClear
/>
<Button
type="dashed"
onClick={() => pickFiled('AddFields')}
icon={<PlusOutlined />}
style={{
marginLeft: '0.5rem',
height: '100%',
width: '3.5rem',
}}
/>
</div>
</Item>
) <Item
} label={
</Modal > <div className={styles.formData_label}>
); <Tooltip title={<Image width={200} src={editor} />}>
<InfoCircleOutlined
style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }}
/>
</Tooltip>
<span>编辑字段</span>{' '}
</div>
}
name="EditFields"
>
<div className={styles.filed_listItem}>
<TextArea
placeholder="前端可编辑字段"
onChange={e => changeText(e, 'EditFields')}
value={inputValue.EditFields}
allowClear
/>
<Button
type="dashed"
onClick={() => pickFiled('EditFields')}
icon={<PlusOutlined />}
style={{
marginLeft: '0.5rem',
height: '100%',
width: '3.5rem',
}}
/>
</div>
</Item>
<Item
label={
<div className={styles.formData_label}>
<Tooltip title={<Image width={200} src={web} />}>
<InfoCircleOutlined
style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }}
/>
</Tooltip>
<span>前端字段</span>{' '}
</div>
}
name="WebFields"
>
<div className={styles.filed_listItem}>
<TextArea
placeholder="前端列表展示字段"
onChange={e => changeText(e, 'WebFields')}
value={inputValue.WebFields}
allowClear
/>
<Button
type="dashed"
onClick={() => pickFiled('WebFields')}
icon={<PlusOutlined />}
style={{
marginLeft: '0.5rem',
height: '100%',
width: '3.5rem',
}}
/>
</div>
</Item>
<Item
label={
<div className={styles.formData_label}>
<Tooltip title={<Image width={100} src={hand} />}>
<InfoCircleOutlined
style={{ color: '#1890FF', padding: '0.2rem 0.2rem 0 0' }}
/>
</Tooltip>
<span>手持字段</span>{' '}
</div>
}
name="MobileFields"
>
<div className={styles.filed_listItem}>
<TextArea
placeholder="手持展示字段"
onChange={e => changeText(e, 'MobileFields')}
value={inputValue.MobileFields}
allowClear
/>
<Button
type="dashed"
onClick={() => pickFiled('MobileFields')}
icon={<PlusOutlined />}
style={{
marginLeft: '0.5rem',
height: '100%',
width: '3.5rem',
}}
/>
</div>
</Item>
<Item label="接口配置" name="Interface">
<div className={styles.filed_listItem}>
<TextArea placeholder="服务项目dll库" allowClear />
</div>
</Item>
</Form>
<ChangeAdd
visible={isVisible}
onCancel={() => setIsVisible(false)}
callBackSubmit={onOK}
newCheckedList={checkedList}
isType={types}
filed={filed}
pickItem={pickItem}
characterValue={characterValue}
formObj={formObj}
/>
</div>
)}
</Drawer>
);
}; };
export default AddModal; export default AddModal;
...@@ -331,8 +331,9 @@ ...@@ -331,8 +331,9 @@
} }
} }
.formData{ .formData{
height: 38rem; height: calc(100vh - 170px);
overflow-y: scroll; overflow-y: scroll;
padding-right: 20px;
.ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before{ .ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before{
display: none; display: none;
} }
......
...@@ -18,7 +18,7 @@ import RequestTest from '../pages/testPages/request'; ...@@ -18,7 +18,7 @@ import RequestTest from '../pages/testPages/request';
import InitDataBase from '../pages/database/InitDataBase'; import InitDataBase from '../pages/database/InitDataBase';
import ManagementDataBase from '../pages/database/ManagementDataBase'; import ManagementDataBase from '../pages/database/ManagementDataBase';
import DatabaseConnectConfig from '@/pages/database/databaseConfig/DatabaseConfig'; import DatabaseConnectConfig from '@/pages/database/databaseConfig/DatabaseConfig';
import CurrentSolution from '@/pages/database/CurrentSolution'; import CurrentSolution from '@/pages/currentSolution/CurrentSolution';
import UserManage from '../pages/userCenter/userManage/UserManage'; import UserManage from '../pages/userCenter/userManage/UserManage';
import RoleManage from '@/pages/userCenter/roleManage/RoleManage'; import RoleManage from '@/pages/userCenter/roleManage/RoleManage';
import SiteManage from '../pages/userCenter/siteManage/SiteManage'; import SiteManage from '../pages/userCenter/siteManage/SiteManage';
......
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