Commit 5163e82b authored by Maofei94's avatar Maofei94

Merge branch 'master' of g.civnet.cn:test/maintenance

parents cc82a60f b27be4ff
......@@ -27,7 +27,12 @@
cursor: pointer;
border-bottom: 1px solid #2f54eb;
}
.search{
width: 50%;
}
.hide{
display: none !important;
}
.svgBg{
background: #aaa;
background-image: linear-gradient(white 0px, transparent 0), linear-gradient(hsla(0,0%,100%,.3) 1px, transparent 0), linear-gradient(90deg, hsla(0,0%,100%,.3) 1px, transparent 0);
......@@ -66,6 +71,7 @@
&:hover>span{
color: #2f54eb;
}
img {
margin: auto;
width: 100%;
......@@ -76,7 +82,7 @@
background-color: rgba(238,238,238,1);
}
&:hover,
&.seleted {
&>.seleted {
.iconBtn {
visibility: visible;
}
......
import React from 'react';
import { Upload, Modal, message, Tabs, Result } from 'antd';
import { Upload, Modal, message, Tabs, Result, Input } from 'antd';
import { PlusOutlined, CheckCircleFilled } from '@ant-design/icons';
import ImgCrop from 'antd-img-crop';
import classnames from 'classnames';
......@@ -46,6 +46,7 @@ interface PicturesWallType {
type?: 'CityTemp'|'icon'|'androidMenu'|'menuNew',
value?: string | string[],
uploadContext: any,
search: string,
}
class PicturesWall extends React.Component<PicturesWallType> {
......@@ -57,6 +58,7 @@ class PicturesWall extends React.Component<PicturesWallType> {
imgBed: this.props.uploadContext?.imgBed || [],
curSelectedImg: '',
prevProps:{},
search: '',
fileList: this.props.value ? Array.isArray(this.props.value) ? this.props.value.map((v) => ({
url: v,
uid: uuid(8, 16),
......@@ -331,25 +333,35 @@ class PicturesWall extends React.Component<PicturesWallType> {
{imgBed.map((item, i) => {
return (
<TabPane tab={tabNames[item.moduleName]} key={item.moduleName}>
<Input
placeholder="搜索图库"
className={styles.search}
size="middle"
value={this.state.search}
onChange={e => this.setState({search: e.target.value})}
allowClear/>
<div className={styles.imgBox}>
{item.child?.map(m => m.fileUrls).flat(Infinity).map((item: string, i: number) => {
const fileName = this.getFileName(item)
return (
<div
className={styles.imgItem}
className={classnames({
[styles.imgItem]:true,
[styles.hide]: !fileName.includes(this.state.search)
})}
key={i}
onClick={() => this.handleImgSelected(item)}>
<div
className={classnames(
curSelectedImg === item ? styles.seleted : '',
)}
>
<img className={classnames({[styles.svgGray]: /\.svg$/.test(item)})} src={this.getImageUrl(item)} title={item} alt="熊猫运维中台系统" />
<span className={styles.iconBtn}>
<CheckCircleFilled />
</span>
</div>
<span>{this.getFileName(item)}</span>
<span>{fileName}</span>
</div>
);
})}
......
import React, { useState, useEffect } from 'react';
import {
Table,
Tooltip,
Spin,
Modal,
Form,
......@@ -11,7 +12,8 @@ import {
notification,
message,
} from 'antd';
import { get } from '@/services/index';
import { get } from '@/services';
import { EditTwoTone, DeleteOutlined } from '@ant-design/icons';
import styles from './AppDic.less';
const AppDic = () => {
......@@ -53,40 +55,40 @@ const AppDic = () => {
{
title: '操作',
key: 'action',
width: 200,
width: 100,
render: record => (
<Space>
<Button
type="primary"
size="small"
onClick={() => {
setSelect(record);
setEditVisible(true);
editForm.setFieldsValue({
label: record.Label,
key: record.Key,
value: record.Value,
description: record.Description,
});
}}
>
修改
</Button>
<Tooltip title="编辑">
<EditTwoTone
onClick={() => {
setSelect(record);
setEditVisible(true);
editForm.setFieldsValue({
label: record.Label,
key: record.Key,
value: record.Value,
description: record.Description,
});
}}
style={{ fontSize: '16px' }}
/>
</Tooltip>
<Popconfirm
title="是否删除该数据?"
okText="确认"
cancelText="取消"
onConfirm={submitDelete}
>
<Button
size="small"
danger
<DeleteOutlined
onClick={() => {
setSelect(record);
}}
>
删除
</Button>
style={{
fontSize: '16px',
margin: '0px 10px',
color: '#e86060',
}}
/>
</Popconfirm>
</Space>
),
......
......@@ -15,7 +15,7 @@ import {
Col,
} from 'antd';
import { EditTwoTone, DeleteOutlined } from '@ant-design/icons';
import { get } from '@/services/index';
import { get } from '@/services';
import styles from './WebDic.less';
const WebDic = () => {
......
......@@ -257,7 +257,7 @@ const UserManage = () => {
<Tooltip title="冻结用户">
<StopOutlined
onClick={() => freezeUser(record)}
style={{ fontSize: '16px', color: '#1890FF' }}
style={{ fontSize: '16px', color: '#e86060' }}
/>
</Tooltip>
</>
......@@ -267,15 +267,15 @@ const UserManage = () => {
<Tooltip title="解冻用户">
<StopOutlined
onClick={() => freezeUser(record)}
style={{ fontSize: '16px' }}
style={{ fontSize: '16px', color: '#1890FF' }}
/>
</Tooltip>
</>
)}
<Tooltip title="删除用户">
<DeleteTwoTone
<DeleteOutlined
onClick={() => deleteUser(record)}
style={{ fontSize: '16px' }}
style={{ fontSize: '16px', color: '#e86060' }}
/>
</Tooltip>
</Space>
......@@ -285,8 +285,6 @@ const UserManage = () => {
const [selectionType] = useState('checkbox');
const rowSelection = {
onChange: (selectedRowKeys, selectedRows) => {
console.log(selectedRowKeys.toString());
console.log(selectedRows.map(item => item.OUID).toString());
setUserIDs(selectedRowKeys.toString()); // 数组转字符串,逗号连接
setOrgIDs(selectedRows.map(item => item.OUID).toString());
// 选中行数大于0时设置批量操作可行
......@@ -1414,14 +1412,22 @@ const UserManage = () => {
label="新密码"
rules={[{ required: true, message: '不能为空' }]}
>
<Input placeholder="请输入新密码" />
<Input
placeholder="请输入新密码"
type="password"
autoComplete="off"
/>
</Form.Item>
<Form.Item
name="passwordConfirm"
label="确认密码"
rules={[{ required: true, message: '不能为空' }]}
>
<Input placeholder="再次确认新密码" />
<Input
placeholder="再次确认新密码"
type="password"
autoComplete="off"
/>
</Form.Item>
</Form>
</Modal>
......
......@@ -9,7 +9,7 @@ import {
deleteWebsite,
getAllConfigName,
} from '@/services/webConfig/api';
import { ExclamationCircleOutlined } from '@ant-design/icons';
import { EditTwoTone, ExclamationCircleOutlined } from '@ant-design/icons';
import Modal from 'antd/lib/modal/Modal';
import ProCard from '@ant-design/pro-card';
import styles from './index.less';
......@@ -243,7 +243,7 @@ const WebConfigPage = props => {
setIsEdit(true);
}}
>
查看/编辑网站配置
<EditTwoTone /> 查看/编辑网站配置
</span>
<MenuConfig
menu={tabPaneItem?.children.find(
......
......@@ -9,9 +9,12 @@
user-select: none;
position: relative;
top: -10px;
}
.link:hover{
color: #1890ff;
.anticon{
top: -3px;
margin-right: 2px;
position: relative;
}
}
.ant-tabs-content-holder>.ant-tabs-content.ant-tabs-content-top{
position: absolute;
......
......@@ -7,6 +7,7 @@ import {
SolutionOutlined,
// AndroidOutlined,
// CommentOutlined,
TableOutlined,
CopyOutlined,
} from '@ant-design/icons';
import UserLayout from '../layouts/UserLayout';
......@@ -21,7 +22,7 @@ import CurrentSolution from '@/pages/database/CurrentSolution';
import UserManage from '../pages/userCenter/UserManage';
import RoleManage from '@/pages/userCenter/roleManage/RoleManage';
import SiteManage from '../pages/userCenter/siteManage/SiteManage';
import Dictionary from '../pages/platformCenter/dictionary';
import Dictionary from '../pages/dataCenter/dictionary';
import ServiceLog from '../pages/log/serviceLog';
import LoginLog from '../pages/log/loginLog';
import OmsLog from '../pages/log/omsLog';
......@@ -207,13 +208,14 @@ export default {
'/web4/?widget=product/oms/MqttConfig/MqttConfig.js|hideMap=true',
component: BaseFrameContainer,
},
{
path: '/platformCenter/dictionary',
name: '数据中心',
component: Dictionary,
},
],
},
{
path: '/dataCenter/dictionary',
name: '数据中心',
icon: <TableOutlined style={iconStyle} />,
component: Dictionary,
},
{
path: '/productCenter',
component: BlankLayout,
......
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