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

fix: '巡检反馈'

parent e3b0069b
Pipeline #56006 passed with stages
......@@ -12,11 +12,17 @@ import {
Select,
Button,
Dropdown,
Tooltip,
Menu,
Space,
Radio,
} from 'antd';
import { PlusOutlined, DownOutlined, StepForwardFilled } from '@ant-design/icons';
import {
PlusOutlined,
DownOutlined,
StepForwardFilled,
InfoCircleOutlined,
} from '@ant-design/icons';
import styles from './maintenance.less';
import {
CM_XWBPlan_AccountTable,
......@@ -102,10 +108,8 @@ const AddModal = props => {
form.validateFields().then(validate => {
if (validate) {
let obj = form.getFieldsValue();
obj.feedbackName = inputValue.feedbackName;
obj.doRole = inputValue.doRole;
console.log(obj.doRole);
console.log(obj);
// obj.feedbackName = inputValue.feedbackName;
// obj.doRole = inputValue.doRole;
if (type == 'add') {
CM_XWBPlan_DataEditORAdd(obj).then(res => {
if (res.msg == '') {
......@@ -136,7 +140,7 @@ const AddModal = props => {
notification.success({
message: '提示',
duration: 3,
description: '添加成功',
description: '编辑成功',
});
} else {
notification.error({
......@@ -295,7 +299,7 @@ const AddModal = props => {
title="巡维保计划配置"
visible={visible}
destroyOnClose
width="650px"
width="600px"
{...props}
footer={
<Space>
......@@ -307,11 +311,11 @@ const AddModal = props => {
>
<Form form={form} labelCol={{ span: 7 }} style={{ overflowY: 'scroll' }}>
<Row>
<Col span={23}>
<Col span={24}>
<Item
label="业务名称"
name="businessName"
labelCol={{ span: 4 }}
labelCol={{ span: 5 }}
rules={[
{
required: true,
......@@ -337,11 +341,11 @@ const AddModal = props => {
<Input placeholder="业务名称不可重复" />
</Item>
</Col>
<Col span={23}>
<Col span={24}>
<Item
label="业务类型"
name="businessType"
labelCol={{ span: 4 }}
labelCol={{ span: 5 }}
rules={[
{
required: true,
......@@ -363,8 +367,8 @@ const AddModal = props => {
</Select>
</Item>
</Col>
<Col span={23}>
<Item label="执行周期" name="docycle" labelCol={{ span: 4 }}>
<Col span={24}>
<Item label="执行周期" name="docycle" labelCol={{ span: 5 }}>
<Select placeholder="选择计划执行周期">
<Option value="一周一次">一周一次</Option>
<Option value="半月一次">半月一次</Option>
......@@ -375,11 +379,11 @@ const AddModal = props => {
</Select>
</Item>
</Col>
<Col span={23}>
<Col span={24}>
<Item
label="台账名称"
label="维保设备"
name="accountName"
labelCol={{ span: 4 }}
labelCol={{ span: 5 }}
rules={[
{
required: true,
......@@ -388,7 +392,7 @@ const AddModal = props => {
{
validator: (rule, value) => {
if (form.getFieldsValue().accountName == '') {
return Promise.reject('台账名称必选');
return Promise.reject('维保设备必选');
}
return Promise.resolve();
},
......@@ -406,11 +410,11 @@ const AddModal = props => {
</Select>
</Item>
</Col>
<Col span={23}>
<Col span={24}>
<Item
label="反馈名称"
name="feedbackName"
labelCol={{ span: 4 }}
labelCol={{ span: 5 }}
rules={[
{
validator: (rule, value) => {
......@@ -439,11 +443,11 @@ const AddModal = props => {
</div>
</Item>
</Col>
<Col span={23}>
<Col span={24}>
<Item
label="执行角色"
name="doRole"
labelCol={{ span: 4 }}
labelCol={{ span: 5 }}
rules={[
{
validator: (rule, value) => {
......@@ -472,9 +476,23 @@ const AddModal = props => {
</div>
</Item>
</Col>
<Col span={13}>
<Col span={12}>
<Item
label="预生成天数"
label={
<div>
<Tooltip title="任务提前生成天数,仅适用于接口定时执行">
<InfoCircleOutlined
style={{
color: '#1890ff',
marginRight: '2px',
}}
/>
</Tooltip>
<span>预生成天数</span>
</div>
}
labelCol={{ span: 10 }}
name="produceDays"
rules={[
{
......@@ -486,7 +504,7 @@ const AddModal = props => {
<Input placeholder="请输入预生成天数" />
</Item>
</Col>
<Col span={10}>
<Col span={12}>
<Item
label="在线任务量"
name="onLines"
......@@ -501,16 +519,16 @@ const AddModal = props => {
<Input placeholder="请输入在线任务量" />
</Item>
</Col>
<Col span={23}>
<Item label="是否送审" name="isSubmit" labelCol={{ span: 4 }}>
<Col span={24}>
<Item label="是否送审" name="isSubmit" labelCol={{ span: 5 }}>
<Radio.Group defaultValue={chee}>
<Radio value="否"></Radio>
<Radio value="是"></Radio>
</Radio.Group>
</Item>
</Col>
<Col span={23}>
<Item label="SQL过滤" name="filterCondition" labelCol={{ span: 4 }}>
<Col span={24}>
<Item label="SQL过滤" name="filterCondition" labelCol={{ span: 5 }}>
<TextArea placeholder="例如:and 泵房品牌='熊猫'" />
</Item>
</Col>
......
......@@ -100,6 +100,7 @@ const maintenance = () => {
onCell: () => ({
style: {
maxWidth: 200,
overflow: 'hidden',
whiteSpace: 'nowrap',
textOverflow: 'ellipsis',
......@@ -148,6 +149,7 @@ const maintenance = () => {
align: 'center',
onCell: () => ({
style: {
maxWidth: 200,
overflow: 'hidden',
whiteSpace: 'nowrap',
textOverflow: 'ellipsis',
......@@ -198,13 +200,13 @@ const maintenance = () => {
</Tooltip>
),
},
{
title: '启停',
dataIndex: 'doNot',
key: 'doNot',
width: 80,
align: 'center',
},
// {
// title: '启停',
// dataIndex: 'doNot',
// key: 'doNot',
// width: 80,
// align: 'center',
// },
{
title: '操作',
ellipsis: true,
......@@ -324,7 +326,6 @@ const maintenance = () => {
<Button
icon={<OrderedListOutlined className={styles.icon} />}
onClick={sort}
type="primary"
style={{
marginLeft: '30px',
verticalAlign: 'middle',
......
/*
* @Description:
* @Author: leizhe
* @Date: 2022-01-13 10:47:32
* @LastEditTime: 2022-07-22 10:46:13
* @LastEditors: leizhe
*/
/* eslint-disable array-callback-return */
/* eslint-disable no-plusplus */
import React, { useState, useEffect } from 'react';
import { Modal, notification } from 'antd';
import { CM_Feedback_ChangPatrolOrder } from '@/services/PatrolFeedback/api';
import styles from './patrolFeedback.less';
import DragTable from '@/components/DragTable/DragTable';
const SortModal = props => {
const { callBackSubmit = () => {}, title, visible, onCancel, sortData } = props;
const [orderTable, setOrderTable] = useState([]);
const [flowIDs, setFlowIDs] = useState([]);
const onSumbit = () => {
console.log(flowIDs);
CM_Feedback_ChangPatrolOrder(flowIDs.toString()).then(res => {
if (res.code === 0) {
callBackSubmit();
onCancel();
notification.success({
message: '提示',
duration: 3,
description: '调整成功',
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg,
});
}
});
// callBackSubmit({ str: flowIDs });
};
// 根据orderTable值改变flowIDs
useEffect(() => {
let ids = [];
orderTable.map(item => {
ids.push(item.id);
});
console.log(ids);
setFlowIDs(ids);
}, [orderTable]);
useEffect(() => {
console.log(sortData);
if (visible) {
setOrderTable(sortData);
}
}, [visible]);
// 拖拽回调函数
const dragCallBack = data => {
console.log(data);
if (data) {
setOrderTable(data);
}
};
const columns = [
{
title: '巡检对象',
dataIndex: 'layerName',
width: 150,
key: 'layerName',
},
];
return (
<Modal
title={title}
visible={visible}
onCancel={onCancel}
onOk={onSumbit}
okText="确认"
cancelText="取消"
>
<div
className={styles.cardContent}
style={{ width: '26rem', marginLeft: '24px', maxHeight: '400px', overflow: 'auto' }}
>
<div className={styles.doctorTable}>
<DragTable
bordered
style={{ marginBottom: '10px' }}
rowKey={record => record.id}
columns={columns}
dataSource={orderTable}
showHeader={false}
pagination={false}
size="small"
dragCallBack={dragCallBack}
ItemTypes="flowOrder"
/>
</div>
</div>
</Modal>
);
};
export default SortModal;
/* eslint-disable react-hooks/rules-of-hooks */
/* eslint-disable camelcase */
import React, { useState, useEffect } from 'react';
import { Space, Table, Popconfirm, Tooltip, Button, notification } from 'antd';
import {
CM_Feedback_LoadPatrolFeedbacks,
CM_Feedback_RemovePatrolFeedback,
} from '@/services/PatrolFeedback/api';
import { EditTwoTone, DeleteOutlined, PlusOutlined, OrderedListOutlined } from '@ant-design/icons';
import styles from './patrolFeedback.less';
import AddModal from './AddModal';
import SortModal from './SortModal';
import DragTable from '@/components/DragTable/DragTable';
const patrolFeedback = () => {
const [addVisible, setAddVisible] = useState(false);
const [type, setType] = useState('');
const [formObj, setFormObj] = useState('');
const [treeLoading, setTreeLoading] = useState(false);
const [flag, setFlag] = useState(0);
const [tableData, setTableData] = useState([]);
const [keepTableData, setKeepTableData] = useState([]);
const [sortVisible, setSortVisible] = useState(false);
const [selectedRowKeys, setSelectedRowKeys] = useState([]); // 已选用户数,机构改变时重置
const columns = [
{
title: '巡检对象',
dataIndex: 'layerName',
key: 'layerName',
align: 'center',
},
{
title: 'GIS图层',
dataIndex: 'gisLayer',
key: 'gisLayer',
align: 'center',
},
{
title: 'GIS条件',
dataIndex: 'gisFilterValue',
key: 'gisFilterValue',
align: 'center',
},
{
title: '反馈表',
dataIndex: 'tableName',
key: 'tableName',
width: 400,
onCell: () => ({
style: {
maxWidth: 400,
overflow: 'hidden',
whiteSpace: 'nowrap',
textOverflow: 'ellipsis',
cursor: 'pointer',
},
}),
align: 'center',
render: record => (
<Tooltip placement="topLeft" title={record}>
{record}
</Tooltip>
),
},
{
title: '字段集',
dataIndex: 'fields',
key: 'fields',
width: 100,
align: 'center',
},
// {
// title: '异常值',
// dataIndex: 'exceptionValue',
// key: 'exceptionValue',
// width: 150,
// align: 'center',
// },
// {
// title: '触发事件',
// dataIndex: 'eventName',
// key: 'eventName',
// width: 150,
// align: 'center',
// },
{
title: '权限',
dataIndex: 'roles',
key: 'roles',
align: 'center',
width: 100,
},
// {
// title: '分组',
// dataIndex: 'groupType',
// key: 'groupType',
// align: 'center',
// },
{
title: '操作',
ellipsis: true,
key: 'action',
align: 'center',
render: (text, record) => (
<Space>
<Tooltip title="修改">
<EditTwoTone onClick={() => editEventType(record)} style={{ fontSize: '16px' }} />
</Tooltip>
<Tooltip title="删除">
<Popconfirm
placement="bottomRight"
title={<p>是否确认删除?</p>}
okText="确认"
cancelText="取消"
onConfirm={() => deleteEventType(record)}
>
<DeleteOutlined style={{ fontSize: '16px', color: '#e86060' }} />
</Popconfirm>
</Tooltip>
</Space>
),
},
];
useEffect(() => {
setTreeLoading(true);
CM_Feedback_LoadPatrolFeedbacks({ pageIndex: 0, pageSize: 0 }).then(res => {
setTreeLoading(false);
if (res.code === 0) {
console.log(res.data.list);
setTableData(res.data.list);
let list = [];
res.data.list.map(i => {
list.push(i.layerName);
});
setKeepTableData(list);
}
});
}, [flag]);
const add = () => {
setAddVisible(true);
setType('add');
};
const editEventType = record => {
setAddVisible(true);
setType('edit');
setFormObj(record);
};
const deleteEventType = record => {
CM_Feedback_RemovePatrolFeedback(record.id).then(res => {
if (res.code === 0) {
notification.success({
message: '提示',
duration: 3,
description: '删除成功',
});
setFlag(flag + 1);
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg,
});
}
});
};
const onSubmit = () => {
setAddVisible(false);
setFlag(flag + 1);
};
const onOK = () => {
setFlag(flag + 1);
};
const sort = () => {
setSortVisible(true);
};
// 复选框
const rowSelection = {
selectedRowKeys,
onChange: (RowKeys, Rows) => {
setSelectedRowKeys(RowKeys);
},
};
const hasSelected = selectedRowKeys.length > 0;
const de = () => {
CM_Feedback_RemovePatrolFeedback(selectedRowKeys.toString()).then(res => {
if (res.code === 0) {
notification.success({
message: '提示',
duration: 3,
description: '批量删除成功',
});
setSelectedRowKeys([]);
setFlag(flag + 1);
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg,
});
}
});
};
const dragCallBack = value => {
if (value) {
console.log(value);
}
};
return (
<div className={styles.PatrolFeedbackContainer}>
<div className={styles.contentContainers}>
<div style={{ height: '50px', backgroundColor: 'white' }}>
<span style={{ float: 'right', marginRight: '10px' }}>
<Button
icon={<PlusOutlined className={styles.icon} />}
onClick={add}
type="primary"
style={{
marginLeft: '30px',
verticalAlign: 'middle',
marginTop: '10px',
}}
>
<span style={{ marginTop: '-3px' }}>新增</span>
</Button>
<Button
icon={<OrderedListOutlined className={styles.icon} />}
onClick={sort}
style={{
marginLeft: '30px',
verticalAlign: 'middle',
marginTop: '10px',
}}
>
<span style={{ marginTop: '-3px' }}>调序</span>
</Button>
<Button
icon={<DeleteOutlined className={styles.icon} />}
style={{
marginLeft: '30px',
verticalAlign: 'middle',
marginTop: '10px',
}}
onClick={de}
disabled={!hasSelected}
>
<span style={{ marginTop: '-3px' }}>批量删除</span>
</Button>
</span>
</div>
<Table
// rowClassName={setRowClassName}
rowSelection={{
type: 'checkbox',
...rowSelection,
}}
size="small"
rowKey={record => record.id}
bordered
loading={treeLoading}
onRow={record => ({
onDoubleClick: event => {
event.stopPropagation();
editEventType(record);
}, // 双击
})}
columns={columns}
dataSource={tableData}
scroll={{ y: 'calc(100vh - 205px)', x: 'max-content' }}
pagination={{
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
pageSizeOptions: [10, 20, 50, 100],
defaultPageSize: 20,
showQuickJumper: true,
showSizeChanger: true,
}}
/>
{/* 添加事件 */}
<AddModal
visible={addVisible}
type={type}
onClose={() => setAddVisible(false)}
callBackSubmit={onSubmit}
formObj={formObj}
keepTableData={keepTableData}
placement="right"
/>
<SortModal
title="调整顺序"
visible={sortVisible}
sortData={tableData}
onCancel={() => setSortVisible(false)}
callBackSubmit={onOK}
/>
</div>
</div>
);
};
export default patrolFeedback;
.PatrolFeedbackContainer {
.ant-card-body {
padding: 12px 24px 24px 24px;
}
.pickItem {
background-color: #f5f6f9;
}
}
.formData {
height: 38rem;
overflow-y: scroll;
.ant-form-item-label
> label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {
display: none;
}
.formData_label {
display: flex;
align-items: center;
}
.filed_listItem {
display: flex;
height: 3.6rem;
.ant-btn-icon-only {
width: 32px;
height: 32px;
/* padding: 2.4px 0; */
font-size: 16px;
border-radius: 2px;
display: flex;
align-items: center;
justify-content: center;
}
}
}
.cardContent {
height: 30rem;
overflow-y: scroll;
overflow-x: scroll;
width: 100%;
}
.doctorTable {
margin-bottom: 16px;
}
.linkDrowp {
position: absolute;
top: 0px;
left: 93.5%;
width: 1rem;
height: 100%;
display: flex;
align-items: center;
}
.listItem {
display: flex;
justify-content: space-between;
font-size: 14px;
font-weight: 400;
color: #414e65;
cursor: pointer;
line-height: 28px;
align-items: center;
padding: 8px 14px;
}
.ant-select-arrow .anticon {
vertical-align: middle;
}
.listCard {
display: flex;
.cardItem {
padding: 0.5rem;
}
.cardContent {
height: 30rem;
overflow-y: scroll;
width: 100%;
}
.cardItemData {
display: inline-block;
padding: 0.5rem;
border: 1px solid #b5b8c8;
width: 100%;
min-height: 100px;
min-width: 333px;
// height: 30rem;
overflow-y: scroll;
}
}
.ant-modal-body {
padding: 10px 24px 0px 24px;
}
.ant-modal-footer {
padding: 10px 48px 10px 40px;
}
.ant-table-pagination.ant-pagination {
margin: 5px 0;
}
......@@ -716,6 +716,7 @@ const AddModal = props => {
LoadEventFields({ eventTableName: value, distinctFields: '' }).then(res => {
if (res.data.root) {
setNu(res.data.root);
console.log(res.data.root);
setFiled(formateArrDataA(res.data.root, 'group'));
ExternalSummaryField(res.data.root);
ExternalReportField(res.data.root);
......@@ -921,6 +922,8 @@ const AddModal = props => {
};
const formateArrDataA = (initialArr, name) => {
console.log(initialArr);
console.log(name);
// 判定传参是否符合规则
if (!(initialArr instanceof Array)) {
return '请传入正确格式的数组';
......@@ -945,6 +948,7 @@ const AddModal = props => {
if (initialArr[j][`${name}`] == nameArr[k]) {
// 每次外循环时新建一个对应"name"的数组, 内循环时当前数组不变
tempObj[nameArr[k]] = tempObj[nameArr[k]] || [];
console.log(initialArr[j]);
tempObj[nameArr[k]].push(initialArr[j]);
}
}
......@@ -1104,40 +1108,46 @@ const AddModal = props => {
const pickFiled = fileds => {
if (form.getFieldsValue().TableName) {
setFlag(flag + 1);
}
let pp = formateArrDataA(nu, 'group');
if (form.getFieldValue(fileds)) {
let ab = form.getFieldValue(fileds).split(',');
let arr = Object.keys(pp);
let b = [];
let a = [];
arr.map((item, index) => {
pp[item].map((i, j) => {
b.push(i);
let pp = formateArrDataA(nu, 'group');
if (form.getFieldValue(fileds)) {
let ab = form.getFieldValue(fileds).split(',');
let arr = Object.keys(pp);
let b = [];
let a = [];
arr.map((item, index) => {
pp[item].map((i, j) => {
b.push(i);
});
});
});
ab.map((item, index) => {
if (b.includes(item) == false) {
if (item == '') {
a = [];
} else {
a.push(item);
ab.map((item, index) => {
if (b.includes(item) == false) {
if (item == '') {
a = [];
} else {
a.push(item);
}
}
});
if (a.length > 0) {
pp.外部字段 = a;
arr.push('外部字段');
}
});
if (a.length > 0) {
pp.外部字段 = a;
arr.push('外部字段');
setFiled(pp);
setCheckedList1(form.getFieldValue(fileds).split(','));
setPickItem(fileds);
setIsVisibleEdit(true);
} else {
setFiled(pp);
setCheckedList1([]);
setPickItem(fileds);
setIsVisibleEdit(true);
}
setFiled(pp);
setCheckedList1(form.getFieldValue(fileds).split(','));
setPickItem(fileds);
setIsVisibleEdit(true);
} else {
setFiled(pp);
setCheckedList1([]);
setPickItem(fileds);
setIsVisibleEdit(true);
notification.warning({
message: '提示',
duration: 3,
description: '请先选择事件主表',
});
}
};
......
......@@ -185,7 +185,7 @@ const LoginLog = () => {
<Button onClick={() => setTime(24 * 7)}>近1周</Button>
<Button onClick={() => setTime(14 * 24)}>近2周</Button>
<Button onClick={() => setTime(30 * 24)}>近1月</Button>
<Button
{/* <Button
icon={<SyncOutlined className={styles.icon} />}
onClick={handleReset}
style={{
......@@ -195,7 +195,7 @@ const LoginLog = () => {
}}
>
重置
</Button>
</Button> */}
</Col>
</Row>
<Spin spinning={loading} tip="loading">
......
......@@ -288,7 +288,7 @@ const OmsLog = () => {
<div className={styles.omsLog}>
<Row className={styles.head}>
<Col span={24}>
<span style={{ lineHeight: 2 }}>时间:</span>
<span style={{ lineHeight: 2, marginLeft: '27px' }}>时间:</span>
<RangePicker
locale={locale}
showTime
......@@ -323,7 +323,9 @@ const OmsLog = () => {
<Button onClick={() => setTime(24 * 7)}>近1周</Button>
<Button onClick={() => setTime(14 * 24)}>近2周</Button>
<Button onClick={() => setTime(30 * 24)}>近1月</Button>
<span style={{ marginLeft: '20px' }}>接口查询:</span>
<br />
<br />
<span>接口查询:</span>
<Input
style={{ width: '200px' }}
placeholder="请输入接口名称"
......@@ -371,7 +373,7 @@ const OmsLog = () => {
bordered
columns={columns}
dataSource={data}
scroll={{ x: 'max-content', y: 'calc(100vh - 230px)' }}
scroll={{ x: 'max-content', y: 'calc(100vh - 285px)' }}
pagination={false}
onChange={onChangeInput}
/>
......
......@@ -520,7 +520,7 @@ const ServiceLog = () => {
<div className={styles.serviceLog}>
<Row className={styles.head}>
<Col span={24}>
<span>时间:</span>
<span style={{ marginLeft: '27px' }}>时间:</span>
<RangePicker
locale={locale}
showTime
......@@ -557,7 +557,9 @@ const ServiceLog = () => {
<Button onClick={() => setTime(24 * 60, '3')}>近1天</Button>
<Button onClick={() => setTime(24 * 7 * 60, '4')}>近1周</Button>
<Button onClick={() => setTime(24 * dayTime() * 60, '4')}>本月</Button>
<span style={{ marginLeft: '20px' }}>返回状态:</span>
<br />
<br />
<span>返回状态:</span>
<Select
defaultValue="全部"
value={logType}
......@@ -580,7 +582,7 @@ const ServiceLog = () => {
enterButton
value={searchWord}
/>
<Button
{/* <Button
icon={<SyncOutlined className={styles.icon} />}
onClick={handleReset}
style={{
......@@ -590,26 +592,28 @@ const ServiceLog = () => {
}}
>
重置
</Button>
</Button> */}
</Col>
</Row>
<Spin spinning={loading} tip="loading">
<Row style={{ background: 'white' }}>
<Col span={8} style={{ paddingTop: '8px', paddingLeft: '5px' }}>
<span style={{ fontSize: '14px', fontWeight: '600' }}>访问量统计</span>
<span style={{ paddingLeft: '60%' }}>间隔:</span>
<Select
defaultValue="每小时"
size="small"
value={timeInterval}
onChange={selectChange}
className={styles.sel}
>
<Option value="1">每分钟</Option>
<Option value="2">每5分钟</Option>
<Option value="3">每小时</Option>
<Option value="4">每天</Option>
</Select>
<span style={{ float: 'right' }}>
<span>间隔:</span>
<Select
defaultValue="每小时"
size="small"
value={timeInterval}
onChange={selectChange}
className={styles.sel}
>
<Option value="1">每分钟</Option>
<Option value="2">每5分钟</Option>
<Option value="3">每小时</Option>
<Option value="4">每天</Option>
</Select>
</span>
</Col>
<Col span={7} offset={1} style={{ paddingTop: '8px' }}>
<span style={{ fontSize: '14px', fontWeight: '600' }}>接口调用频次统计</span>
......@@ -688,7 +692,7 @@ const ServiceLog = () => {
bordered
columns={columns}
dataSource={dataTable}
scroll={{ x: 'max-content', y: 'calc(100vh - 565px)' }}
scroll={{ x: 'max-content', y: 'calc(100vh - 615px)' }}
pagination={false}
/>
</div>
......
......@@ -286,34 +286,53 @@ const AddModal = props => {
getContainer={false}
>
<Form form={form} {...layout}>
{/* {type === 'edit' ? (
<Item label="名称" name="systemName" rules={[{ required: true, message: '请输入名称' }]}>
<Input allowClear style={{ width: '100%' }} placeholder="请输入名称" disabled />
{type === 'edit' ? (
<Item
label="名称"
name="systemName"
rules={[
{ required: true, message: '请输入名称' },
{
validator: (rule, value) => {
let aa = form.getFieldValue().systemName;
let regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;
let regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im;
if (keepSystemName.indexOf(aa) != -1 && pickItem.SystemName != aa) {
return Promise.reject('名称已存在');
} else if (regEn.test(aa) || regCn.test(aa)) {
return Promise.reject('名称不能包含特殊字符');
}
return Promise.resolve();
},
},
]}
>
<Input allowClear style={{ width: '100%' }} placeholder="请输入名称" />
</Item>
) : ( */}
<Item
label="名称"
name="systemName"
rules={[
{ required: true, message: '请输入名称' },
{
validator: (rule, value) => {
let aa = form.getFieldValue().systemName;
let regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;
let regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im;
if (keepSystemName.indexOf(aa) != -1 && pickItem.SystemName != aa) {
return Promise.reject('名称已存在');
} else if (regEn.test(aa) || regCn.test(aa)) {
return Promise.reject('名称不能包含特殊字符');
}
return Promise.resolve();
) : (
<Item
label="名称"
name="systemName"
rules={[
{ required: true, message: '请输入名称' },
{
validator: (rule, value) => {
let aa = form.getFieldValue().systemName;
let regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;
let regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im;
if (keepSystemName.indexOf(aa) != -1) {
return Promise.reject('名称已存在');
} else if (regEn.test(aa) || regCn.test(aa)) {
return Promise.reject('名称不能包含特殊字符');
}
return Promise.resolve();
},
},
},
]}
>
<Input allowClear style={{ width: '100%' }} placeholder="请输入名称" />
</Item>
{/* )} */}
]}
>
<Input allowClear style={{ width: '100%' }} placeholder="请输入名称" />
</Item>
)}
<Item label="副标题" name="subtitle" rules={[{ required: true, message: '请输入副标题' }]}>
<Input allowClear placeholder="建议使用英文" />
......@@ -332,7 +351,7 @@ const AddModal = props => {
name="accountParamKey"
rules={[{ required: true, message: '请输入参数' }]}
>
<Input allowClear />
<Input allowClear placeholder="请填写账号参数" />
</Item>
</Col>
<Col span={10}>
......@@ -344,7 +363,7 @@ const AddModal = props => {
</Item>
</Col>
</Row>
<Item label="从新窗口打开" name="target">
<Item label="新标签" name="target">
<Radio.Group onChange={onChange} value={radio}>
<Radio value={0}></Radio>
<Radio value={1}></Radio>
......
......@@ -338,11 +338,12 @@ const Integrate = () => {
enterButton
value={searchWord}
/>
<Button icon={<SyncOutlined />} onClick={handleReset} style={{ marginLeft: '20px' }}>
{/* <Button icon={<SyncOutlined />} onClick={handleReset} style={{ marginLeft: '20px' }}>
重置
</Button>
</Button> */}
<Button
icon={<PlusOutlined className={styles.icon} />}
type="primary"
onClick={add}
style={{
verticalAlign: 'middle',
......@@ -373,9 +374,7 @@ const Integrate = () => {
<FilePdfOutlined style={{ fontSize: '24px' }} />
</a>
</Tooltip>
<Button type="primary" onClick={masterStation}>
配置集成网站
</Button>
<Button onClick={masterStation}>配置集成网站</Button>
</div>
</div>
<Spin spinning={loading} tip="loading">
......
......@@ -12,26 +12,26 @@ import PreviewModal from './PreviewModal';
const { Item } = Form;
const { Option } = Select;
const colorList = [
{
key: '科技蓝新',
color: '#2262B2',
// headerColor: 'linear-gradient(0deg, #0066D6 0%, #39A9FF 100%)',
},
{
key: '环保绿新',
color: '#00A295',
// headerColor: 'linear-gradient(0deg, #00845D 0%, #02BF87 100%)',
},
{
key: '科技蓝',
color: '#1890FF',
color: '#2262B2',
// headerColor: 'linear-gradient(0deg, #0066D6 0%, #39A9FF 100%)',
},
{
key: '环保绿',
color: '#00B496',
color: '#00A295',
// headerColor: 'linear-gradient(0deg, #00845D 0%, #02BF87 100%)',
},
// {
// key: '科技蓝',
// color: '#1890FF',
// // headerColor: 'linear-gradient(0deg, #0066D6 0%, #39A9FF 100%)',
// },
// {
// key: '环保绿',
// color: '#00B496',
// // headerColor: 'linear-gradient(0deg, #00845D 0%, #02BF87 100%)',
// },
];
const Master = props => {
......@@ -53,7 +53,7 @@ const Master = props => {
form.setFieldsValue({
logo: res.data.logo,
primaryColor: res.data.primaryColor,
subtitle: res.data.subtitle,
// subtitle: res.data.subtitle,
title: aa[0],
titlebr: aa[1],
});
......@@ -88,7 +88,7 @@ const Master = props => {
AddIntegratedloginSetting({
logo: obj.logo,
primaryColor: obj.primaryColor,
subtitle: obj.subtitle,
// subtitle: obj.subtitle,
title: obj.title,
})
.then(res => {
......@@ -201,9 +201,9 @@ const Master = props => {
>
<Form form={form} {...layout}>
<Row>
<Col span={12}>
<Col span={14}>
<Item
labelCol={{ span: 8 }}
labelCol={{ span: 7 }}
label="标题"
name="title"
rules={[
......@@ -213,12 +213,16 @@ const Master = props => {
},
]}
>
<Input placeholder="请输入标题" autoComplete="off" />
<Input placeholder="请输入标题" autoComplete="off" style={{ marginleft: '3px' }} />
</Item>
</Col>
<Col span={11}>
<Item labelCol={{ span: 7 }} label="换行标题" name="titlebr">
<Input placeholder="仅新主题适用" autoComplete="off" style={{ width: '87%' }} />
<Col span={8}>
<Item name="titlebr">
<Input
placeholder="仅新主题适用"
autoComplete="off"
style={{ marginLeft: '20px', width: '123%' }}
/>
</Item>
</Col>
</Row>
......@@ -281,7 +285,7 @@ const Master = props => {
</Col>
</Row>
<Item name="primaryColor" label="主题">
<Select placeholder="请选择颜色">
<Select placeholder="请选择颜色" style={{ marginLeft: '3px' }}>
{colorList.map(item => (
<Option value={item.color} key={item.color}>
<div style={{ display: 'flex', alignItems: 'center' }}>
......
......@@ -52,7 +52,8 @@ import IncidentView from '@/pages/bsmanager/workOrder/incident/incidentView';
import Flow from '@/pages/bsmanager/workOrder/workFlow/flow';
import FlowNode from '@/pages/bsmanager/workOrder/workFlow/flowNode/flowNode';
import Workflow from '@/pages/bsmanager/workOrder/workflowEdit/Workflow';
import Maintenance from '@/pages/bsmanager/maintenance/maintenance';
import Maintenance from '@/pages/bsmanager/patrolMaintenance/maintenance/maintenance';
import PatrolFeedback from '@/pages/bsmanager/patrolMaintenance/patrolFeedback/patrolFeedback';
// 应用中心
import ProductConfig from '@/pages/productCenter/productConfig/productConfig';
......@@ -237,9 +238,21 @@ export default {
],
},
{
path: '/biz/maintenance',
name: '巡维保',
component: Maintenance,
path: '/biz/patrolMaintenance',
name: '巡检维保',
component: BlankLayout,
routes: [
{
path: '/biz/patrolMaintenance/patrolFeedback',
name: '巡检反馈',
component: PatrolFeedback,
},
{
path: '/biz/patrolMaintenance/maintenance',
name: '维保模板',
component: Maintenance,
},
],
},
],
},
......
/* eslint-disable camelcase */
/*
* @Description:
* @Author: leizhe
* @Date: 2021-09-27 09:42:21
* @LastEditTime: 2022-07-22 10:46:09
* @LastEditors: leizhe
*/
import { CITY_SERVICE, get, PUBLISH_SERVICE, post, postForm } from '../index';
// 加载巡检反馈
export const CM_Feedback_LoadPatrolFeedbacks = data =>
post(`${PUBLISH_SERVICE}/WorkOrderCenter/CM_Feedback_LoadPatrolFeedbacks`, data);
// 添加或修改巡检反馈
export const CM_Feedback_OperatePatrolFeedback = data =>
post(`${PUBLISH_SERVICE}/WorkOrderCenter/CM_Feedback_OperatePatrolFeedback`, data);
// 删除巡检反馈
export const CM_Feedback_RemovePatrolFeedback = patrolFeedbackIDs =>
post(
`${PUBLISH_SERVICE}/WorkOrderCenter/CM_Feedback_RemovePatrolFeedback?patrolFeedbackIDs=${patrolFeedbackIDs}`,
);
// 查询巡检反馈
export const CM_Feedback_QueryPatrolFeedback = query =>
get(`${PUBLISH_SERVICE}/WorkOrderCenter/CM_Feedback_QueryPatrolFeedback`, query);
// 加载事件反馈表
export const CM_Feedback_LoadFeedbackTables = query =>
get(`${PUBLISH_SERVICE}/WorkOrderCenter/CM_Feedback_LoadFeedbackTables`, query);
// 加载触发事件
export const CM_Feedback_LoadFeedbackEvent = query =>
get(`${PUBLISH_SERVICE}/WorkOrderCenter/CM_Feedback_LoadFeedbackEvent`, query);
// 根据反馈表加载关联的字段
export const CM_Feedback_LoadFields = feedbackTableName =>
get(
`${PUBLISH_SERVICE}/WorkOrderCenter/CM_Feedback_LoadFields?feedbackTableName=${feedbackTableName}`,
);
// 调整巡检反馈顺序
export const CM_Feedback_ChangPatrolOrder = patrolOrder =>
get(`${PUBLISH_SERVICE}/WorkOrderCenter/CM_Feedback_ChangPatrolOrder?patrolOrder=${patrolOrder}`);
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