From 22b5859b62fa57710ca771ee59fe896442641914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=AB=A5=E5=B4=87?= <792998983@qq.com> Date: Tue, 7 Sep 2021 17:06:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=85=AC=E5=85=B1=E5=A4=84=E7=90=86=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/SecuritySetting/notice/api.js | 46 ++++++++++ src/forge/SecuritySetting/notice/fetch.js | 10 +++ src/forge/javaFetch.js | 105 ++++++++++++++++++++++ 3 files changed, 161 insertions(+) create mode 100644 src/forge/SecuritySetting/notice/api.js create mode 100644 src/forge/SecuritySetting/notice/fetch.js create mode 100644 src/forge/javaFetch.js diff --git a/src/forge/SecuritySetting/notice/api.js b/src/forge/SecuritySetting/notice/api.js new file mode 100644 index 00000000..07fc1838 --- /dev/null +++ b/src/forge/SecuritySetting/notice/api.js @@ -0,0 +1,46 @@ +import fetch from './fetch'; + +// 获取消息列表 +export function noticePages(params) { + return fetch({ + url: '/api/notice/noticePages', + method: 'get', + params + }); +} + +// 获取单个notice +export function getNotice(params) { + return fetch({ + url: '/api/notice/getNotice', + method: 'get', + params + }); +} + +//新增notice +export function addNotice(data) { + return fetch({ + url: '/api/notice/createNotice', + method: 'post', + data: data + }); +} + +//更新notice +export function updateNotice(data) { + return fetch({ + url: '/api/notice/updateNotice', + method: 'PUT', + data: data + }); +} + +//删除notice +export function deleteNotice(data) { + return fetch({ + url: '/api/notice/deleteNotice', + method: 'DELETE', + data, + }); +} diff --git a/src/forge/SecuritySetting/notice/fetch.js b/src/forge/SecuritySetting/notice/fetch.js new file mode 100644 index 00000000..dba00b14 --- /dev/null +++ b/src/forge/SecuritySetting/notice/fetch.js @@ -0,0 +1,10 @@ + +import javaFetch from '../../javaFetch'; + +const developUrl = "https://test-search.trustie.net"; +const testUrl = "https://test-search.trustie.net"; +const productUrl = "https://wiki-api.trustie.net"; + +const { service, actionUrl } = javaFetch(productUrl, testUrl, developUrl); +export const httpUrl = actionUrl; +export default service; \ No newline at end of file diff --git a/src/forge/javaFetch.js b/src/forge/javaFetch.js new file mode 100644 index 00000000..7f536896 --- /dev/null +++ b/src/forge/javaFetch.js @@ -0,0 +1,105 @@ +import { notification ,message} from 'antd'; +import axios from 'axios'; +import cookie from 'react-cookies'; +import Login from './Wiki/components/Login'; + +export const TokenKey = 'autologin_trustie'; +export default function javaFetch(productUrl,testUrl,developUrl ){ + let actionUrl=''; + if (window.location.href.indexOf('localhost') > -1) { + actionUrl = developUrl; + } else if(window.location.href.indexOf('testforgeplus')>-1){ + actionUrl = testUrl; + axios.defaults.withCredentials = true; + }else if (window.location.href.indexOf('forgeplus') > -1) { + actionUrl = productUrl; + axios.defaults.withCredentials = true; + } + + // 创建axios实例 + const service = axios.create({ + baseURL: actionUrl, + timeout: 10000, // 请求超时时间 + }); + + // request拦截器 + service.interceptors.request.use(config => { + if (cookie.load(TokenKey)) { + console.log(cookie.load(TokenKey)); + config.headers['Authorization'] = cookie.load(TokenKey); // 让每个请求携带自定义token 请根据实际情况自行修改 + } + if (window.location.port === "3007") { + // 模拟token为登录用户 + const token = sessionStorage.token; + if (config.url.indexOf('?') === -1) { + config.url = `${config.url}?token=${token}`; + } else { + config.url = `${config.url}&token=${token}`; + } + } + return config; + }, error => { + console.log(error); // for debug + // Promise.reject(error); + }); + // respone拦截器 + service.interceptors.response.use( + response => { + const res = response||{}; + if (res.status === 400) { + message.error(res.data.message || '操作失败'); + return Promise.reject('error'); + } + if (res.status === 401) { + message.error(res.data.message || '登录信息已过期'); + return Promise.reject('error'); + } + if (res.status === 403) { + message.error(res.data.message || '无权限!'); + return Promise.reject('error'); + } + if (res.status === 40001) { + notification.open({ + message: "提示", + description: '账户或密码错误!', + }); + return Promise.reject('error'); + } + if (response.status !== 200 && res.status !== 200) { + notification.open({ + message: "提示", + description: res.message, + }); + } else { + return response.data; + } + }, + error => { + console.log(error); + let res = error.response||{}; + if (res.status === 400) { + message.error(res.data.message || '操作失败'); + return Promise.reject('error'); + } + if (res.status === 401) { + message.error(res.data.message || '登录信息已过期'); + Login(); + return Promise.reject('error'); + } + if (res.status === 403) { + message.error(res.data.message || '无权限!'); + return Promise.reject('error'); + } + notification.open({ + message: "提示", + description: error.message, + }); + return Promise.reject(error); + } + ); + + console.log(service); + console.log(typeof service); + + return {service,actionUrl}; +} \ No newline at end of file From bc11ac3d79ffaae578f925acc1a59db82bf30a11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=AB=A5=E5=B4=87?= <792998983@qq.com> Date: Tue, 14 Sep 2021 14:56:21 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B0=8F=E9=93=83?= =?UTF-8?q?=E9=93=9B=E5=8F=8A=E6=B5=AE=E5=8A=A8=E6=A1=86=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Head/AppPullRefresh.jsx | 108 ++++++++++ src/forge/Head/Header.js | 30 ++- src/forge/Head/NoticeContent.jsx | 326 ++++++++++++++++++------------ src/forge/Head/header.scss | 54 +++-- 4 files changed, 364 insertions(+), 154 deletions(-) create mode 100644 src/forge/Head/AppPullRefresh.jsx diff --git a/src/forge/Head/AppPullRefresh.jsx b/src/forge/Head/AppPullRefresh.jsx new file mode 100644 index 00000000..d609c176 --- /dev/null +++ b/src/forge/Head/AppPullRefresh.jsx @@ -0,0 +1,108 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { Icon } from 'antd'; +import _ from 'lodash'; +import Nodata from '../Nodata'; + + +class PullRefresh extends Component { + constructor(props) { + super(props); + this.state = { + } + this.pullRef = {}; + // 节流 + this.onScrollList = _.throttle(this.handleScroll, 200, { + leading: false, + trailing: true, + }); + } + + componentDidMount() { + let dom = document.querySelector('.pull-refresh-wrap'); + dom && dom.addEventListener('scroll', this.onScrollList); + } + + componentWillUnmount() { + let dom = document.querySelector('.pull-refresh-wrap'); + dom && dom.removeEventListener('scroll', this.onScrollList) + } + + + handleScroll = () => { + if (this.props.count < this.props.pageSize) return; + if (this.props.type === 1 || this.props.type === 2) return; + const wrap = this.pullRef; + const currentScroll = wrap.scrollTop + wrap.clientHeight + + // 触底 + if (currentScroll >= (wrap.scrollHeight - 10)) { + this.loadData() + } + } + + + handleLoadClick = () => { + this.loadData(); + } + + loadData = () => { + this.props.onPullRefresh() + } + + + renderLoading() { + switch (this.props.type) { + case 0: // 加载更多 + return