diff --git a/src/App.js b/src/App.js index 8675a9553..408abdbe3 100644 --- a/src/App.js +++ b/src/App.js @@ -22,6 +22,7 @@ import { SnackbarHOC } from 'educoder'; import { initAxiosInterceptors } from './AppConfig' import { Provider } from 'react-redux'; import configureStore from './redux/stores/configureStore'; +import { indexOf } from 'lodash'; const store = configureStore(); window.marked = marked; const theme = createMuiTheme({ @@ -123,9 +124,21 @@ const AboutUs = Loadable({ loading: Loading, }) -const Teaching = Loadable({ - loader : () => import("./forge/TeachingPractice/Teaching"), - loading: Loading, +// const Teaching = Loadable({ +// loader : () => import("./forge/TeachingPractice/Teaching"), +// loading: Loading, +// }); + +// 首页 +const HomePage = Loadable({ + loader: () => import('./home'), + loading: Loading, +}); + +// 管理页面 +const Managements = Loadable({ + loader: () => import('./military/managements'), + loading: Loading, }) // const CreateMerge = Loadable({ // loader: () => import('./forge/Merge/NewMerge'), @@ -133,7 +146,7 @@ const Teaching = Loadable({ // }) // 此处仅维护前端可能的一级路由,不用进行项目或者组织判断的字段。 -const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize", "login", "register", "resetPassword", "aboutus","educoder","task","notice"]; +const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize", "login", "register", "resetPassword", "aboutus","educoder","task","notice","managements","expert",]; class App extends Component { constructor(props) { @@ -184,7 +197,11 @@ class App extends Component { this.setState({ pathType: response.data.type || '404', pathName: pathname, - }) + }); + // 如果属于组织或者个人,那么存储该用户到sessionStorage中,作为判断是否为开源项目导航菜单的依据 + if(['User','Organization'].includes(response.data.type)){ + sessionStorage.setItem("pathname",pathname); + } } }); }else{ @@ -386,6 +403,11 @@ class App extends Component { path="/register" render={(props) =>} > + {/*管理页面*/} + + + {/*403*/} + {/* 忘记密码 */} {/* 教学实践 */} - } - > + > */} {/* 组织 */}
{content} -

{subTitle}

+

删除后未来事件将不会推送至此Webhook地址:{subTitle}

) diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index ec0a7f6d5..4831f73bc 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -36,15 +36,15 @@ function About(props, ref) { const [ disabled, setDisabled ] = useState(false); const [ typeFlag, setTypeFlag] = useState(false); - const AuthorLogin = props.projectDetail && props.projectDetail.author && props.projectDetail.author.login; + const isPermission = props.projectDetail && props.projectDetail.permission && props.projectDetail.permission!=="Reporter"; const CurrentLogin = props.current_user && props.current_user.login; useEffect(()=>{ - if(CurrentLogin === AuthorLogin){ + if(isPermission){ auth('get'); }else{ setIsSpining(false); } - },[AuthorLogin,CurrentLogin]) + },[isPermission,CurrentLogin]) function auth(type){ const url = `/${owner}/${projectsId}/ci_authorize.json`; @@ -167,7 +167,7 @@ function About(props, ref) {

定义DevOps工作流,帮助您检测bug、发布代码…

{ - CurrentLogin !== AuthorLogin ? + !isPermission ?
DevOps开启功能暂未对项目创建者以外的角色开放,可以联系项目创建者进行开启,开启后便可查看构建信息。
:"" } @@ -177,7 +177,7 @@ function About(props, ref) { 如何使用引擎(Engine)功能? { - AuthorLogin === CurrentLogin ? + isPermission ? { step === 0 && !typeFlag ? diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 004c46f21..949f031c6 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -533,7 +533,7 @@ function CoderDepot(props){ 关于 { projectDetail.permission && (projectDetail.permission==="Admin" || projectDetail.permission==="Owner" || projectDetail.permission==="Manager") && - setOpenModal(true)} className="iconfont icon-a-shezhi color-grey-9 font-15"> + setOpenModal(true)} className="iconfont icon-a-shezhi color-grey-9 font-15 pointer"> } {desc &&

{desc}

} diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index c9419b83c..25b710b20 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -255,7 +255,7 @@ class Index extends Component { 更新时间排序 创建时间排序 - fork数据排序 + fork数量排序 点赞数量排序 ) diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index 632f55560..fecadb137 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -83,7 +83,7 @@ class IndexItem extends Component {
- + {item.author.name}/{item.name} { !item.is_public && 私有 } diff --git a/src/forge/Main/SpecialModal.jsx b/src/forge/Main/SpecialModal.jsx index 1454be671..2c9a21f8c 100644 --- a/src/forge/Main/SpecialModal.jsx +++ b/src/forge/Main/SpecialModal.jsx @@ -16,7 +16,8 @@ function SpecialModal({ visible , hideModal , sureModal , showNotification , use function sure(){ if(!user_apply_signatures || (user_apply_signatures && user_apply_signatures.status !== "waiting")){ if(!id || (id && id.length === 0)){ - showNotification("请先提交文件进行审核!"); + // showNotification("请先提交文件进行审核!"); + getUrl(`/api/apply_signatures/template_file`) return; } const url = `/apply_signatures.json`; diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index 6b9611f29..1dcc80bde 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -210,8 +210,10 @@ class order extends Component { }); } } + const { select_params } = this.state; this.setState({ select_params:{ + ...select_params, order_name:key_name[0], order_type:e.item.props.value, page:1 @@ -220,9 +222,6 @@ class order extends Component { const { status_type } = this.state; this.getIssueList(status_type); }) - // this.state.select_params.order_name = key_name[0]; - // this.state.select_params.order_type = e.item.props.value; - // this.state.select_params.page = 1; }; getOption = (e, id, name, toGet) => { @@ -283,15 +282,15 @@ class order extends Component { // 翻页 ChangePage = (page) => { window.scrollTo(0,0); + const { status_type } = this.state; this.setState({ isSpin: true, checkedValue: [], - all: false + all: false, + },()=>{ + this.state.select_params.page=page; + this.getIssueList(status_type); }); - - const { status_type } = this.state; - this.state.select_params.page = page; - this.getIssueList(status_type); }; // 搜索 @@ -346,12 +345,12 @@ class order extends Component { ChangeAssign = (type) => { const { current_user } = this.props; this.setState({ - isSpin: true, + isSpin: true }); if (type) { if (!current_user) { this.setState({ - isSpin: false, + isSpin: false }); return; } @@ -385,7 +384,7 @@ class order extends Component { this.state.select_params.author_id = undefined; } const { status_type } = this.state; - + this.state.select_params.page = 1; this.getIssueList(status_type); }; @@ -563,6 +562,49 @@ class order extends Component { } }) } + + clearSelectParams=()=>{ + this.setState({ + status_type: "1", // 默认显示开启中的 + issue_tag_ids: "标记", + tracker_ids: "类型", + author_ids: "发布人", + assigned_to_ids: "负责人", + fixed_version_ids: "里程碑", + status_ids: "状态", + done_ratios: "完成度", + paix: "排序", + update_author_ids: "更换负责人", + update_fixed_version_ids: '更换里程碑', + update_status_ids: "修改状态", + begin: '', + end: '', + checkedValue: [], + allValue: [], + all: false, + search:undefined, + select_params: { + assigned_to_id: undefined, // 负责人 + author_id: undefined, // 发布人 + issue_tag_id: undefined, // 标记 + tracker_id: undefined, //类型 + done_ratio: undefined, // 完成度 + status_id: undefined, // 优先级 + fixed_version_id: undefined,//里程碑 + order_name: undefined, + order_type: undefined, + search: undefined, + update_author_id: undefined, + update_fixed_version_id: undefined, + update_status_id: undefined, + page: 1, + limit: 15, + } + },()=>{ + this.getIssueList("1"); + }) + } + menu =()=> ( this.getMenu(e)}> @@ -634,6 +676,7 @@ class order extends Component { />
+ 清除筛选条件 - - - Webhooks - - - {/* */} + + Webhooks + + {id ? "更新" : "添加"}Webhook +

当webhook被触发时,我们将向以下URL发送通知,包括已选择事件的详细信息。更多信息可查阅webhooks指南

@@ -200,7 +199,7 @@ function New({ form , match , showNotification , history }) { } ] })( - + )} @@ -261,11 +260,11 @@ function New({ form , match , showNotification , history }) { */} 创建 - 创建分支或标记 + 创建分支或标签 删除 - 删除分支或标记 + 删除分支或标签

合并请求事件

diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx index 6e98183f8..3e0389e36 100644 --- a/src/forge/Team/Setting/TeamSettingCommon.jsx +++ b/src/forge/Team/Setting/TeamSettingCommon.jsx @@ -74,6 +74,7 @@ export default Form.create()( function getImage(image){ setImageFlag(true); setImage(image); + console.log(image); } // 删除组织 @@ -107,6 +108,7 @@ export default Form.create()( } callback(); } + return(
@@ -176,11 +178,11 @@ export default Form.create()( '最大仓库数:', "max_repo_creation", [], - ,false,false, + ,false,false, "当输入栏为空时,默认数量无限制" )}

选择头像:

- +
diff --git a/src/forge/Team/TeamMember.jsx b/src/forge/Team/TeamMember.jsx index d21d514f3..7bffb65d2 100644 --- a/src/forge/Team/TeamMember.jsx +++ b/src/forge/Team/TeamMember.jsx @@ -6,7 +6,7 @@ import Nodata from '../Nodata'; import { Pagination , Spin } from 'antd'; import AddMemberBox from './Component/AddMemberBox'; -const limit = 15; +const limit = 16; function TeamMember({organizeDetail,current_user,history,match}){ const OIdentifier = match.params.OIdentifier; const [ page , setPage ] = useState(1); @@ -24,7 +24,7 @@ function TeamMember({organizeDetail,current_user,history,match}){ setIsSpin(true); const url = `/organizations/${organizeDetail.id}/organization_users.json`; axios.get(url,{ - page,limit + params:{page,limit} }).then(result=>{ if(result && result.data){ setList(result.data.organization_users); @@ -76,7 +76,7 @@ function TeamMember({organizeDetail,current_user,history,match}){ { total >limit &&
- setPage(page)}/> + setPage(p)}/>
} diff --git a/src/forge/users/InfosUser.js b/src/forge/users/InfosUser.js index fff3685e7..4a5c7d9bc 100644 --- a/src/forge/users/InfosUser.js +++ b/src/forge/users/InfosUser.js @@ -108,7 +108,7 @@ class InfosUser extends Component { 更新时间排序 创建时间排序 - fork数据排序 + fork数量排序 点赞数量排序 ); diff --git a/src/forge/users/Statistics/Index.jsx b/src/forge/users/Statistics/Index.jsx index 64986c524..21d6d0bd0 100644 --- a/src/forge/users/Statistics/Index.jsx +++ b/src/forge/users/Statistics/Index.jsx @@ -121,7 +121,7 @@ function Index(props) { } }).then(result=>{ if(result && result.data){ - setCloudData({categories:[]}); + setCloudData(result.data || []); } }).catch(error=>{}) } @@ -202,7 +202,7 @@ function Index(props) {

展示你擅长、关注、感兴趣的专业范围,通过你参与项目、收藏项目、关注项目、复刻项目等数据来统计。

{ - cloudData && cloudData.length >0? + cloudData && cloudData.categories && cloudData.categories.length > 0? : diff --git a/src/home/index.scss b/src/home/index.scss index ea40b71f2..2a1b113cf 100644 --- a/src/home/index.scss +++ b/src/home/index.scss @@ -112,7 +112,7 @@ &.newHeaders { // background-color: #1a2358; background-color: #0037af; - z-index: 1000000; + z-index: 1000; } .newFooter{ background: inherit; diff --git a/src/military/components/adminRouter/index.jsx b/src/military/components/adminRouter/index.jsx index 7f652efd2..2328006a8 100644 --- a/src/military/components/adminRouter/index.jsx +++ b/src/military/components/adminRouter/index.jsx @@ -1,4 +1,4 @@ -import React, { useMemo,useState } from 'react'; +import React, { useEffect, useMemo,useState } from 'react'; import { Link } from "react-router-dom"; import { Menu, Dropdown, } from 'antd'; @@ -7,20 +7,27 @@ import './index.scss'; const { SubMenu } = Menu; export default props => { - + const {current_user}=props; const main_web_site_url =localStorage.chromesetting&& JSON.parse(localStorage.chromesetting).main_web_site_url; const current_main_site_url =localStorage.chromesetting&& JSON.parse(localStorage.chromesetting).current_main_site_url; - + const noticeUrl =localStorage.chromesetting&& JSON.parse(localStorage.chromesetting).api_urls.notice; + useEffect(()=>{ + sessionStorage.setItem('current_user',JSON.stringify(current_user)); + },[current_user.login]); + const [current,setCurrent]=useState(JSON.parse(sessionStorage.adminRouter||'[]')); + const [title,setTitle]=useState(''); + function handleClick (e){ setCurrent([e.key]); + setTitle(e.item.props.title); sessionStorage.setItem( 'adminRouter',JSON.stringify([e.key])); }; const projectMenu = useMemo(() => { return - 项目管理后台 + 项目管理后台 }); @@ -35,109 +42,100 @@ export default props => { 应征投稿协议内容 - 延期任务处理 - {/* 协议签订凭证上传 */} - 支付报酬凭证上传 + 延期任务处理 + 支付报酬凭证上传 - 创客任务列表 + 创客任务列表 }); const competitionMenu = useMemo(() => { - return - 竞赛列表 - 评审任务列表 + return + 竞赛列表 + 赛区配置 + 竞赛评审列表 }); - // const expertMenu = useMemo(() => { - // return - // 专家注册审核 - // 专家库 - // - // }); - const userMenu = useMemo(() => { return - 用户列表 - 主体信息列表 - 试用授权列表 - 自动授权列表 - 专家注册列表 - 专家库列表 + 用户列表 + 主体信息列表 + 试用授权列表 + 自动授权列表 + 专家注册列表 + 专家库列表 }); const forumMenu = useMemo(() => { return - 帖子 - 申请删帖 - 回复 - 版块配置 - 禁言列表 - 版主审批 + 帖子 + 申请删帖 + 回贴 + 版块配置 }); const checkMenu = useMemo(() => { return - 企业认证 - {/* 开源项目 */} - 统筹任务发布审批 - 自主任务发布审批 - 成果/评论审批 - 成果上传申诉审批 - 公示期成果申诉审批 - 协议审批 - 成果举报申诉 - 评选佐证材料 + 企业认证 + 统筹任务发布审批 + 自主任务发布审批 + 成果/评论审批 + 成果上传申诉审批 + 公示期成果申诉审批 + 协议审批 + 成果举报申诉 + 评选佐证材料 }); const limitsMenu = useMemo(() => { return - 权限组配置 - 权限操作配置 + 权限组配置 + 权限操作配置 }); const configMenu = useMemo(() => { return - 关于我们 - 首页版块 - 合作伙伴 + 关于我们 + 首页版块 + 合作伙伴 }); + const noticeMenu = useMemo(() => { + return + 招标公告 + + }); return (
-
+
项目
-
+
创客
-
竞赛
+
竞赛
- {/* -
专家
-
*/} - -
用户
+
用户
@@ -145,15 +143,19 @@ export default props => { -
审批
+
审批
权限管理
- + {/*
网站配置
+
*/} + + +
招标公告
) diff --git a/src/military/components/adminRouter/index.scss b/src/military/components/adminRouter/index.scss index 954e3e35c..05cd3c526 100644 --- a/src/military/components/adminRouter/index.scss +++ b/src/military/components/adminRouter/index.scss @@ -11,6 +11,9 @@ box-sizing: border-box; position: relative; cursor: pointer; + &.active{ + color: #4154f1; + } &::after { content: ""; position: absolute; diff --git a/src/military/expert.js b/src/military/expert.js index c338755d7..5bad4b7c5 100644 --- a/src/military/expert.js +++ b/src/military/expert.js @@ -16,15 +16,6 @@ const Review = Loadable({ loading: Loading, }); -const AdminRouter = Loadable({ - loader: () => import("./expert/adminRouter"), - loading: Loading, -}); - -// const ReviewTasks = Loadable({ -// loader: () => import("./expert/reviewTasks"), -// loading: Loading, -// }) const ExpertUser = Loadable({ loader: () => import("./expert/expertUser"), loading: Loading, @@ -54,14 +45,7 @@ const Expert = (propsTransmit) => { )} > - - {/* 管理员管理 */} - ( - - )} - > + ( diff --git a/src/military/expert/adminRouter.js b/src/military/expert/adminRouter.js deleted file mode 100644 index 61d467f9d..000000000 --- a/src/military/expert/adminRouter.js +++ /dev/null @@ -1,92 +0,0 @@ -import React from "react"; - -import { Route, Switch } from "react-router-dom"; -import Loadable from "react-loadable"; -import Loading from "../../Loading"; -import AdminRouter from "../components/adminRouter"; - -// 专家库 -const ExpertList = Loadable({ - loader: () => import("./expertList"), - loading: Loading, -}); -// 专家审核 -const RegisterList = Loadable({ - loader: () => import("./registerList"), - loading: Loading, -}); -//创客任务评审规则 -const ReviewRules = Loadable({ - loader : () => import("./reviewRules"), - loading: Loading, -}); -//创客任务选择评审专家 -const SelectExpert = Loadable({ - loader: () => import("./selectExpert"), - loading: Loading, -}); -//创客任务评审结果查看 -const ReviewResult = Loadable({ - loader: () => import("./reviewResult"), - loading: Loading, -}); -//竞赛评审任务列表 -const CompetitionList = Loadable({ - loader: () => import("./competionList"), - loading: Loading, -}) - -const AdminPage = (propsF) => { - - return ( - - - - {/* 专家审核 */} - ( - - )} - > - {/* 专家库列表 */} - ( - - )} - > - {/* 创客任务评审规则 */} - ( - - )} - > - {/* 创客任务选择评审专家 */} - ( - - )} - > - {/* 创客任务评审结果查看 */} - ( - - )} - > - {/* 竞赛评审任务列表 */} - ( - - )} - > - - - ); -} -// } -export default AdminPage; diff --git a/src/military/expert/competionList/index.jsx b/src/military/expert/competionList/index.jsx index c9ff51b58..ac9a70b83 100644 --- a/src/military/expert/competionList/index.jsx +++ b/src/military/expert/competionList/index.jsx @@ -95,16 +95,13 @@ function Competition(props){ } }, { - title: "开始时间", + title: "比赛时间", dataIndex: "start_time", - key: "startTime", - align: "center", - }, - { - title: "截止时间", - dataIndex: "end_time", - key: "endTime", + key: "time", align: "center", + render:(text, record)=>{ + return text +' ~ '+ record.end_time; + } }, { title: "报名人数", @@ -117,7 +114,7 @@ function Competition(props){ dataIndex: 'current_status', key: "rules", render: (text, record) => { - return record.assignRuleAndExperts ? : record.is_expert_audit && text<4 ? 编辑 : 编辑 + return record.assignRuleAndExperts ? : record.is_expert_audit && text<4 ? 编辑 : 编辑 } }, { @@ -125,7 +122,7 @@ function Competition(props){ dataIndex: 'current_status', key: "experts", render: (text, record) => { - return record.assignRuleAndExperts ? : record.is_expert_audit && text<4 ? 选择 : 选择 + return record.assignRuleAndExperts ? : record.is_expert_audit && text<4 ? 选择 : 选择 } }, { @@ -141,7 +138,7 @@ function Competition(props){ dataIndex: 'assignRuleAndExperts', key: "results", render: (text, record) => { - return text ? 查看:查看 + return text ? 查看:查看 } } ]; @@ -263,7 +260,7 @@ function Competition(props){ // 修改路由,跳转到第几页 function updateUrl(page){ setCurPage(page); - window.location.href=`/expert/admin/competition/#page=${page}`; + window.location.href=`/managements/expert/competition/#page=${page}`; } function hashDate(hash) { diff --git a/src/military/expert/expertList/index.jsx b/src/military/expert/expertList/index.jsx index 895adcc55..bf5e163a4 100644 --- a/src/military/expert/expertList/index.jsx +++ b/src/military/expert/expertList/index.jsx @@ -313,7 +313,7 @@ function RegisterList({ showNotification }) { Authorization: cookie.load('autologin_trustie') || sessionStorage.osredmToken, }, }; - + return (
@@ -373,7 +373,7 @@ function RegisterList({ showNotification }) { row.id} @@ -393,7 +393,7 @@ function RegisterList({ showNotification }) { > -

{ window.open(httpUrl + '/busiAttachments/download/134') }}>专家注册表模板.xlsx

+

{ window.open(`${httpUrl}/busiAttachments/download/${window.location.host.indexOf('osredm') === -1 ? '171' : '137'}`) }}>专家注册表模板.xlsx

提示:只能在导入模版上增减数据,才能导入成功!

) diff --git a/src/military/managements.js b/src/military/managements.js new file mode 100644 index 000000000..098b8f023 --- /dev/null +++ b/src/military/managements.js @@ -0,0 +1,227 @@ +import React, { useEffect, useState } from "react"; + +import { Route, Switch } from "react-router-dom"; +import { withRouter } from "react-router"; +import { SnackbarHOC } from "educoder"; +import { CNotificationHOC } from "../modules/courses/common/CNotificationHOC"; +import { TPMIndexHOC } from "../modules/tpm/TPMIndexHOC"; +import Loadable from "react-loadable"; +import Loading from "../Loading"; +import AdminRouter from "./components/adminRouter"; +import { ImageLayerOfCommentHOC } from "../modules/page/layers/ImageLayerOfCommentHOC"; +import './index.scss'; + +{/* 任务管理审核 */} +const TaskManage = Loadable({ + loader: () => import("./task/taskManage"), + loading: Loading, +}); + +{/* 成果管理审核 */} +const PaperManage = Loadable({ + loader: () => import("./task/paperManage"), + loading: Loading, +}); + +{/* 成果申诉管理审核 */} +const PaperComplain = Loadable({ + loader: () => import("./task/paperComplain"), + loading: Loading, +}); + +const ProofManage = Loadable({ + loader: () => import("./task/proofManage"), + loading: Loading, +}); + +const PublicityComplain = Loadable({ + loader: () => import("./task/publicityComplain"), + loading: Loading, +}); + +const AgreementManage = Loadable({ + loader: () => import("./task/agreementManage"), + loading: Loading, +}); + +const PayProof = Loadable({ + loader: () => import("./task/payProof"), + loading: Loading, +}); + +const TaskAdmin = Loadable({ + loader: () => import("./task/taskAdmin"), + loading: Loading, +}); + +const DelayManage = Loadable({ + loader: () => import("./task/delayManage"), + loading: Loading, +}); + + + +// 专家库 +const ExpertList = Loadable({ + loader: () => import("./expert/expertList"), + loading: Loading, +}); +// 专家审核 +const RegisterList = Loadable({ + loader: () => import("./expert/registerList"), + loading: Loading, +}); +//创客任务评审规则 +const ReviewRules = Loadable({ + loader : () => import("./expert/reviewRules"), + loading: Loading, +}); +//创客任务选择评审专家 +const SelectExpert = Loadable({ + loader: () => import("./expert/selectExpert"), + loading: Loading, +}); +//创客任务评审结果查看 +const ReviewResult = Loadable({ + loader: () => import("./expert/reviewResult"), + loading: Loading, +}); +//竞赛评审任务列表 +const CompetitionList = Loadable({ + loader: () => import("./expert/competionList"), + loading: Loading, +}) + +const Managements = (propsF) => { + + return ( +
+ + + {/* 任务管理审核 */} + ( + + )} + > + + {/* 成果管理审核 */} + ( + + )} + > + + {/* 成果申诉管理审核 */} + ( + + )} + > + + {/* 公示期成果申诉管理审核 */} + ( + + )} + > + + {/* 佐证管理审核 */} + ( + + )} + > + + {/* 管理员协议审核 */} + ( + + )} + > + + {/* 管理员上传支付凭证 */} + ( + + )} + > + + {/* 管理员任务列表 */} + ( + + )} + > + + {/* 延期管理 */} + ( + + )} + > + + + + {/* 专家审核 */} + ( + + )} + > + {/* 专家库列表 */} + ( + + )} + > + {/* 创客任务评审规则 */} + ( + + )} + > + {/* 创客任务选择评审专家 */} + ( + + )} + > + {/* 创客任务评审结果查看 */} + ( + + )} + > + {/* 竞赛评审任务列表 */} + ( + + )} + > + +
+ ); +} + +export default withRouter( + ImageLayerOfCommentHOC({ + imgSelector: ".imageLayerParent img, .imageLayerParent .imageTarget", + parentSelector: ".newMain", + })(CNotificationHOC()(SnackbarHOC()(TPMIndexHOC(Managements)))) +); diff --git a/src/military/task.js b/src/military/task.js index 2cd35a111..84f58a2fe 100644 --- a/src/military/task.js +++ b/src/military/task.js @@ -32,13 +32,6 @@ const MyTask = Loadable({ }); -const TaskAdminRouter = Loadable({ - loader: () => import("./task/taskAdminRouter"), - loading: Loading, -}); - - - const Index = (propsTransmit) => { // 开发时,从代理的位置获取用户信息 const [currentUser, setCurrentUser] = useState(propsTransmit.current_user); @@ -90,12 +83,12 @@ const Index = (propsTransmit) => { > {/* 管理员管理 */} - ( )} - > + > */} {/* 任务列表 */} { - - const projectMenu = useMemo(() => { - return - 项目管理后台 - - }); - - const taskMenu = useMemo(() => { - return - - 任务领域 - 行业信息 - 职位信息 - 需求导入模板 - 签订协议内容 - 应征投稿协议内容 - - - 延期任务处理 - {/* 协议签订凭证上传 */} - 支付报酬凭证上传 - - - 任务列表 - 创意征集评论 - - }); - - const competitionMenu = useMemo(() => { - return - 竞赛列表 - - }); - - const userMenu = useMemo(() => { - return - 用户列表 - 主体信息列表 - 试用授权列表 - 自动授权列表 - - }); - - const forumMenu = useMemo(() => { - return - 帖子 - 申请删帖 - 回复 - 版块配置 - 禁言列表 - 版主审批 - - }); - - - const checkMenu = useMemo(() => { - return - 企业认证 - 开源项目 - 统筹任务发布审批 - 自主任务发布审批 - 成果上传申诉审批 - 公示期成果申诉审批 - 协议审批 - 成果举报申诉 - 评选佐证材料 - - }); - - - const limitsMenu = useMemo(() => { - return - 权限组配置 - 权限操作配置 - - }); - - - const configMenu = useMemo(() => { - return - 关于我们 - 首页版块 - 合作伙伴 - - }); - - - return ( -
- -
- 项目 -
-
- - -
- 创客 -
-
- - -
竞赛
-
- - -
用户
-
- - -
论坛交流
-
- - -
审批
-
- - -
权限管理
-
- - -
网站配置
-
- - -
- ) -} \ No newline at end of file diff --git a/src/military/task/components/adminRouter/index.scss b/src/military/task/components/adminRouter/index.scss deleted file mode 100644 index 954e3e35c..000000000 --- a/src/military/task/components/adminRouter/index.scss +++ /dev/null @@ -1,24 +0,0 @@ -.managements_menus { - background: #fff; - border: 1px solid #eee; - - .drop-div { - position: relative; - float: left; - width: 108px; - text-align: center; - padding: 15px 0px; - box-sizing: border-box; - position: relative; - cursor: pointer; - &::after { - content: ""; - position: absolute; - right: 1px; - top: 20px; - width: 1px; - height: 20px; - background-color: #ddd; - } - } -} diff --git a/src/military/task/components/itemAgreementManage/index.jsx b/src/military/task/components/itemAgreementManage/index.jsx index a6497f212..56f1ca80e 100644 --- a/src/military/task/components/itemAgreementManage/index.jsx +++ b/src/military/task/components/itemAgreementManage/index.jsx @@ -3,7 +3,7 @@ import { Pagination, Modal, Input, Form, } from 'antd'; import { Link } from "react-router-dom"; import Nodata from 'forge/Nodata'; import Loading from "src/Loading"; -import { timeAgo, getImageUrl } from 'educoder'; +import { timeAgo, getImageUrl,goUser,goUserMes } from 'educoder'; import { adminCheckAgreement } from '../../api'; import { httpUrl } from '../../fetch'; import './index.scss'; @@ -67,14 +67,6 @@ export default Form.create()((props) => { }); } - function goUser(login) { - window.location.href = `/users/${login}`; - } - - function goUserMes(login) { - window.location.href = `/users/${login}/message_detail`; - } - function downFile(item) { let url = httpUrl + '/busiAttachments/download/' + item.id; window.open(url); @@ -108,7 +100,7 @@ export default Form.create()((props) => { { item.status === 2 && - { goUserMes(item.user.login) }}>私信 + { goUserMes(item.user.id) }}>私信 { agreeClick(item) }}>同意 { refuseClick(item) }}>驳回 diff --git a/src/military/task/components/itemDelayManage/index.jsx b/src/military/task/components/itemDelayManage/index.jsx index 8a32a7ee0..3bd9aacb6 100644 --- a/src/military/task/components/itemDelayManage/index.jsx +++ b/src/military/task/components/itemDelayManage/index.jsx @@ -4,7 +4,7 @@ import { Link } from "react-router-dom"; import moment from 'moment'; import Nodata from 'forge/Nodata'; import Loading from "src/Loading"; -import { getImageUrl, formatDuring } from 'educoder'; +import { getImageUrl, formatDuring,goUser,goUserMes } from 'educoder'; import { taskStatusAllArr } from '../../static'; import { delayTask, closeTask } from '../../api'; import './index.scss'; @@ -70,14 +70,6 @@ export default Form.create()((props) => { }); } - function goUser(login) { - window.location.href = `/users/${login}`; - } - - function goUserMes(login) { - window.location.href = `/users/${login}/message_detail`; - } - const helper = useCallback( (label, name, rules, widget, initialValue) => ( @@ -160,7 +152,7 @@ export default Form.create()((props) => { { item.cancelStatus === 0 && - { goUserMes(item.user.login) }}>私信 + { goUserMes(item.user.id) }}>私信 { delayClick(item) }}>延期 { closeClick(item) }}>关闭 diff --git a/src/military/task/components/itemPayProof/index.jsx b/src/military/task/components/itemPayProof/index.jsx index 2c7621462..8cdabebc4 100644 --- a/src/military/task/components/itemPayProof/index.jsx +++ b/src/military/task/components/itemPayProof/index.jsx @@ -4,7 +4,7 @@ import { Link } from "react-router-dom"; import Nodata from 'forge/Nodata'; import Loading from "src/Loading"; import Upload from 'military/components/Upload'; -import { timeAgo, getImageUrl } from 'educoder'; +import { timeAgo, getImageUrl,goUser,goUserMes } from 'educoder'; import { uploadPayProof } from '../../api'; import './index.scss'; @@ -16,16 +16,6 @@ export default Form.create()((props) => { const [fileList, setFileList] = useState(null); const pageSize = props.pageSize || 10; - - function goUser(login) { - window.location.href = `/users/${login}`; - } - - function goUserMes(login) { - window.location.href = `/users/${login}/message_detail`; - } - - // 上传附件后得到的文件数组 function uploadFunc(fileList, files) { setFileList(fileList); @@ -72,7 +62,7 @@ export default Form.create()((props) => { {timeAgo(item.createdAt)} 发布方式: {item.task && item.task.publishMode === 1 ? '统筹任务' : '自主提交'} - { item.user && goUserMes(item.user.login) }}>私信 + { item.user && goUserMes(item.user.id) }}>私信
diff --git a/src/military/task/components/itemProofManage/index.jsx b/src/military/task/components/itemProofManage/index.jsx index 36c8860f6..4de3b8459 100644 --- a/src/military/task/components/itemProofManage/index.jsx +++ b/src/military/task/components/itemProofManage/index.jsx @@ -3,7 +3,7 @@ import { Pagination, Modal, Input } from 'antd'; import { Link } from "react-router-dom"; import Nodata from 'forge/Nodata'; import Loading from "src/Loading"; -import { timeAgo, getImageUrl } from 'educoder'; +import { timeAgo, getImageUrl,goUser,goUserMes } from 'educoder'; import { checkProof } from '../../api'; import { httpUrl } from '../../fetch'; import './index.scss'; @@ -60,13 +60,6 @@ export default (props) => { }); } - function goUser(login) { - window.location.href = `/users/${login}`; - } - - function goUserMes(login) { - window.location.href = `/users/${login}/message_detail`; - } function downFile(item) { let url = httpUrl + '/busiAttachments/download/' + item.id; @@ -98,7 +91,7 @@ export default (props) => { { item.taskResultProof.status === 2 && - { goUserMes(item.user.login) }}>私信 + { goUserMes(item.user.id) }}>私信 { agreeClick(item) }}>同意 { refuseClick(item) }}>拒绝 diff --git a/src/military/task/components/itemPublicityComplain/index.jsx b/src/military/task/components/itemPublicityComplain/index.jsx index 4f3289751..4a176b575 100644 --- a/src/military/task/components/itemPublicityComplain/index.jsx +++ b/src/military/task/components/itemPublicityComplain/index.jsx @@ -3,7 +3,7 @@ import { Pagination, Modal, Input, Radio, Form, InputNumber } from 'antd'; import { Link } from "react-router-dom"; import Nodata from 'forge/Nodata'; import Loading from "src/Loading"; -import { timeAgo, getImageUrl } from 'educoder'; +import { timeAgo, getImageUrl,goUser,goUserMes } from 'educoder'; import { checkPublicity } from '../../api'; import { httpUrl } from '../../fetch'; import './index.scss'; @@ -49,14 +49,6 @@ export default Form.create()((props) => { } - function goUser(login) { - window.location.href = `/users/${login}`; - } - - function goUserMes(login) { - window.location.href = `/users/${login}/message_detail`; - } - function downFile(item) { let url = httpUrl + '/busiAttachments/download/' + item.id; window.open(url); @@ -86,7 +78,7 @@ export default Form.create()((props) => { { goUser(item.user.login) }}>{item.user && (item.user.nickname || item.user.login)} {timeAgo(item.createdAt)} - { goUserMes(item.user.login) }}>私信 + { goUserMes(item.user.id) }}>私信 {item.status === 2 && { deal(item) }}>处理} diff --git a/src/military/task/components/itemTaskManage/index.jsx b/src/military/task/components/itemTaskManage/index.jsx index 0323e8769..74df438ee 100644 --- a/src/military/task/components/itemTaskManage/index.jsx +++ b/src/military/task/components/itemTaskManage/index.jsx @@ -3,7 +3,7 @@ import { Pagination, Modal, Input, Radio, Button } from 'antd'; import { Link } from "react-router-dom"; import Nodata from 'forge/Nodata'; import Loading from "src/Loading"; -import { timeAgo, getImageUrl } from 'educoder'; +import { timeAgo, getImageUrl,goUser,goUserMes } from 'educoder'; import { main_web_site_url } from '../../static'; import { checkTask } from '../../api'; import './index.scss'; @@ -61,14 +61,6 @@ export default (props) => { }); } - function goUser(login) { - window.location.href = `/users/${login}`; - } - - function goUserMes(login) { - window.location.href = `/users/${login}/message_detail`; - } - function scale(scale) { if (scale > 10000) { return '10000人以上'; @@ -103,7 +95,7 @@ export default (props) => { { item.status === 1 && - { goUserMes(item.user.login) }}>私信 + { goUserMes(item.user.id) }}>私信 { agreeClick(item.id) }}>同意 { refuseClick(item.id) }}>拒绝 diff --git a/src/military/task/index.scss b/src/military/task/index.scss index fe484d808..36be5da36 100644 --- a/src/military/task/index.scss +++ b/src/military/task/index.scss @@ -128,4 +128,14 @@ span.list-gray { } .failByPression .ant-modal-body .anticon, .center-right-but .ant-input-search-icon:hover, .center-content .ant-pagination-item-active a{ color: #4154f1; +} +.go_profiles .ant-modal-body{ + text-align: center; + .anticon{ + color: #4154f1; + margin-left: 30px; + } + .ant-modal-confirm-btns{ + float: none; + } } \ No newline at end of file diff --git a/src/military/task/static.js b/src/military/task/static.js index c0caa1e1d..51e3c6b85 100644 --- a/src/military/task/static.js +++ b/src/military/task/static.js @@ -1,19 +1,19 @@ // task静态数据 export const taskStatusArr = [ - { dicItemCode: '3,4,5,6,7', name: "正在进行中", dicItemName: '正在进行中' }, - { dicItemCode: '8', name: "已完成", dicItemName: '已完成' }, + { dicItemCode: "3,4,5,6,7", name: "正在进行中", dicItemName: "正在进行中" }, + { dicItemCode: "8", name: "已完成", dicItemName: "已完成" }, ]; export const taskStatusAllArr = [ - { dicItemCode: 0, name: "草稿", dicItemName: '草稿' }, - { dicItemCode: 1, name: "待审核", dicItemName: '待审核' }, - { dicItemCode: 2, name: "已拒绝", dicItemName: '已拒绝' }, - { dicItemCode: 3, name: "成果征集中", dicItemName: '成果征集中' }, - { dicItemCode: 4, name: "成果评选中", dicItemName: '成果评选中' }, - { dicItemCode: 5, name: "公示中", dicItemName: '公示中' }, - { dicItemCode: 6, name: "协议签订中", dicItemName: '协议签订中' }, - { dicItemCode: 7, name: "支付中", dicItemName: '支付中' }, - { dicItemCode: 8, name: "已完成", dicItemName: '已完成' }, + { dicItemCode: 0, name: "草稿", dicItemName: "草稿" }, + { dicItemCode: 1, name: "待审核", dicItemName: "待审核" }, + { dicItemCode: 2, name: "已拒绝", dicItemName: "已拒绝" }, + { dicItemCode: 3, name: "成果征集中", dicItemName: "成果征集中" }, + { dicItemCode: 4, name: "成果评选中", dicItemName: "成果评选中" }, + { dicItemCode: 5, name: "公示中", dicItemName: "公示中" }, + { dicItemCode: 6, name: "协议签订中", dicItemName: "协议签订中" }, + { dicItemCode: 7, name: "支付中", dicItemName: "支付中" }, + { dicItemCode: 8, name: "已完成", dicItemName: "已完成" }, { dicItemCode: 9, name: "待修缮", dicItemName: "待修缮" }, ]; @@ -27,102 +27,109 @@ export const taskModeIdArr = [ { dicItemCode: 1, name: "单人悬赏", dicItemName: "单人悬赏" }, { dicItemCode: 2, name: "多人悬赏", dicItemName: "多人悬赏" }, { dicItemCode: 3, name: "计件悬赏", dicItemName: "计件悬赏" }, -] +]; export const approveArr = [ - { dicItemCode: '3,4,5,6,7,8', name: "已同意", dicItemName: "已同意" }, - { dicItemCode: '2', name: "已拒绝", dicItemName: "已拒绝" }, - { dicItemCode: '9', name: "待修缮", dicItemName: "待修缮" }, -] + { dicItemCode: "3,4,5,6,7,8", name: "已同意", dicItemName: "已同意" }, + { dicItemCode: "2", name: "已拒绝", dicItemName: "已拒绝" }, + { dicItemCode: "9", name: "待修缮", dicItemName: "待修缮" }, +]; export const proofArr = [ { dicItemCode: 1, name: "已同意", dicItemName: "已同意" }, { dicItemCode: 0, name: "已拒绝", dicItemName: "已拒绝" }, { dicItemCode: 2, name: "待审核", dicItemName: "待审核" }, -] +]; export const publicityArr = [ { dicItemCode: 1, name: "已受理", dicItemName: "已受理" }, { dicItemCode: 0, name: "不受理", dicItemName: "不受理" }, -] +]; export const agreementArr = [ { dicItemCode: 0, name: "已驳回", dicItemName: "已驳回" }, { dicItemCode: 1, name: "已同意", dicItemName: "已同意" }, { dicItemCode: 2, name: "待审核", dicItemName: "待审核" }, -] +]; export const publishModeArr = ["自主提交", "统筹任务"]; export const delayTaskArr = [ - { dicItemCode: 3, name: "成果征集中", dicItemName: '成果征集中' }, - { dicItemCode: 4, name: "成果评选中", dicItemName: '成果评选中' }, - { dicItemCode: 6, name: "协议签订中", dicItemName: '协议签订中' }, - { dicItemCode: 7, name: "支付中", dicItemName: '支付中' }, + { dicItemCode: 3, name: "成果征集中", dicItemName: "成果征集中" }, + { dicItemCode: 4, name: "成果评选中", dicItemName: "成果评选中" }, + { dicItemCode: 6, name: "协议签订中", dicItemName: "协议签订中" }, + { dicItemCode: 7, name: "支付中", dicItemName: "支付中" }, ]; export const delayDealArr = [ - { dicItemCode: 1, name: "延期", dicItemName: '延期' }, - { dicItemCode: 2, name: "关闭", dicItemName: '关闭' }, + { dicItemCode: 1, name: "延期", dicItemName: "延期" }, + { dicItemCode: 2, name: "关闭", dicItemName: "关闭" }, ]; -export const sortArr = [{ - name: '综合', - type: 'default', -}, { - name: '最新', - type: 'createdAt', - icon: true, - desc: false, -}, -{ - name: '最热', - type: 'visits', - icon: true, - desc: false, -}, -{ - name: '价格', - type: 'bounty', - icon: true, - desc: false, -},]; +export const sortArr = [ + { + name: "综合", + type: "default", + }, + { + name: "最新", + type: "createdAt", + icon: true, + desc: false, + }, + { + name: "最热", + type: "visits", + icon: true, + desc: false, + }, + { + name: "价格", + type: "bounty", + icon: true, + desc: false, + }, +]; export const applyStatusArr = [ - { dicItemCode: '0,3,4', name: "待确认", dicItemName: '待确认' }, - { dicItemCode: '1', name: "未采纳", dicItemName: '未采纳' }, - { dicItemCode: '2', name: "评选胜出", dicItemName: '评选胜出' }, + { dicItemCode: "0,3,4", name: "待确认", dicItemName: "待确认" }, + { dicItemCode: "1", name: "未采纳", dicItemName: "未采纳" }, + { dicItemCode: "2", name: "评选胜出", dicItemName: "评选胜出" }, ]; export const applyStatusAllArr = [ - { dicItemCode: '0', name: "待确认", dicItemName: '待确认' }, - { dicItemCode: '1', name: "未采纳", dicItemName: '未采纳' }, - { dicItemCode: '2', name: "评选胜出", dicItemName: '评选胜出' }, - { dicItemCode: '3', name: "待确认", dicItemName: '待确认' }, - { dicItemCode: '4', name: "待确认", dicItemName: '待确认' }, + { dicItemCode: "0", name: "待确认", dicItemName: "待确认" }, + { dicItemCode: "1", name: "未采纳", dicItemName: "未采纳" }, + { dicItemCode: "2", name: "评选胜出", dicItemName: "评选胜出" }, + { dicItemCode: "3", name: "待确认", dicItemName: "待确认" }, + { dicItemCode: "4", name: "待确认", dicItemName: "待确认" }, ]; export const paperCheckStatusArr = [ - { dicItemCode: '0', name: "待审核", dicItemName: '待审核' }, - { dicItemCode: '1', name: "通过", dicItemName: '通过' }, - { dicItemCode: '2', name: "未通过", dicItemName: '未通过' }, + { dicItemCode: "0", name: "待审核", dicItemName: "待审核" }, + { dicItemCode: "1", name: "通过", dicItemName: "通过" }, + { dicItemCode: "2", name: "未通过", dicItemName: "未通过" }, ]; -export const paperCheckTextArr = ["您已成功提交,请等待审核!", "您的成果已经审核通过!", "您的成果审核未通过"]; +export const paperCheckTextArr = [ + "您已成功提交,请等待审核!", + "您的成果已经审核通过!", + "您的成果审核未通过", +]; export const paperComplainStatusArr = [ - { dicItemCode: '0', name: "未通过", dicItemName: '未通过' }, - { dicItemCode: '1', name: "通过", dicItemName: '通过' }, - { dicItemCode: '2', name: "待审核", dicItemName: '待审核' }, -] + { dicItemCode: "0", name: "未通过", dicItemName: "未通过" }, + { dicItemCode: "1", name: "通过", dicItemName: "通过" }, + { dicItemCode: "2", name: "待审核", dicItemName: "待审核" }, +]; export const showUserModeArr = [ - { dicItemCode: 0, name: "不公示", dicItemName: '不公示' }, - { dicItemCode: 1, name: "自动公示", dicItemName: '自动公示' }, - { dicItemCode: 2, name: "手动公示", dicItemName: '手动公示' }, -] + { dicItemCode: 0, name: "不公示", dicItemName: "不公示" }, + { dicItemCode: 1, name: "自动公示", dicItemName: "自动公示" }, + { dicItemCode: 2, name: "手动公示", dicItemName: "手动公示" }, +]; -export const myPaperStatusArr = ["待确认", "未采纳", "评选胜出"] +export const myPaperStatusArr = ["待确认", "未采纳", "评选胜出"]; export const formItemLayout = { labelCol: { @@ -137,10 +144,13 @@ export const formItemLayout = { }, }; -export const main_web_site_url = localStorage.chromesetting && JSON.parse(localStorage.chromesetting).main_web_site_url; - -export const current_main_site_url = localStorage.chromesetting && JSON.parse(localStorage.chromesetting).current_main_site_url; +export const main_web_site_url = + localStorage.chromesetting && + JSON.parse(localStorage.chromesetting).main_web_site_url; +export const current_main_site_url = + localStorage.chromesetting && + JSON.parse(localStorage.chromesetting).current_main_site_url; export const formModalLayout = { labelCol: { @@ -166,9 +176,10 @@ export const tailFormItemLayout = { }, }; -export const agreementContent = '

投稿协议内容示例,请在管理 — 创客 — 基础数据 — 应征投稿协议内容 修改.

在您通过本平台在线签署应征投稿合同前,请您认真细致地阅读以下《应征投稿协议》,特别是其中以粗体下划线明显标注的条款,并在您同意了下述协议条款再正式进入后续程序

本协议由甲方(任务发布方)和乙方(应征者)在线签订,请甲乙双方仔细阅读协议内容, 请务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款、法律适用和争议解决条款。 甲乙双方点击接受本协议,即意味着已阅读、理解并接受本协议所有条款,并对本协议条款的含义及相应的法律后果已全部知晓并充分认可。甲乙双方点击确认本协议后,本协议即产生法律约束力。

本协议内容包括协议正文及甲乙双方在线相互确认的合同。所签订的合同、合同附件为本协议不可分割的一部分,与本协议正文具有同等法律效力。若您继续使用本平台创客空间,则表明您已经完全知晓、认可并同意遵守本协议内容、所有汇新云已经发布的各类规则以及签订的合同。

在阅读本协议的过程中,如不同意本协议或其中任何条款约定,应拒绝接受本协议所约定的内容,甲乙双方都有权自主选择拒绝达成合作。

1.定义

除非本协议另有约定,在本协议中所用下列术语定义如下:

1.1 本平台:是指www.XXXXXX.com 为用户提供任务信息发布、交流,第三方以“企业”或“个人”入驻的形式应征任务的电子商务交易服务平台;

1.2 用户:指在本平台合法注册,接受并认可服务平台相关协议、规则、规范、制度等的自然人、法人或其他非法人组织。

1.3 甲方:指在本平台上发布创客任务的用户。

1.4 乙方:是指经本平台审核通过入驻本平台,根据任务方发布的任务,提供各种定制服务或IT产品,在平台开展业务经营的企业或个人。

1.5 服务任务:指甲方基于自身任务向乙方提出的具体服务要求。

1.6 项目款:指甲方和乙方的交易金额,即本协议约定交易金额或后续经协商调整后确定的交易总金额。

1.7 平台账户:指用户在本平台注册的帐号,用户只能通过该帐户登陆服务平台进行交易。

2.甲方权利义务

2.1 甲方应当根据服务任务主动向乙方提交本项目所需的相关资料,并保证该资料的真实性、合法性、准确性、完整性,如因甲方未按照前述标准提供资料导致乙方无法履行协议义务,由此产生的责任由甲方自行承担。

2.2 甲方在向乙方提交项目所涉及资料时有权一并对乙方的服务提出建议和思路,同时有权在验收时对乙方的服务成果提出修改意见,但甲方提出的服务建议或思路以及修改意见应当明确具体,如不明确,有权不听取建议或拒绝修改,同时甲方不得借机拖延进度及应支付的款项,甲方提出超出协议或合同约定范围的修改要求,乙方有权拒绝或者另行收取费用。

2.3 甲方未按照合同在约定的日期内支付项目款的,乙方有权拒绝或顺延提供服务。

2.4 甲方应充分了解且同意遵守服务平台公布的所有协议、规则、制度等文件,并按照服务平台的相关规定处理相关交易事项。

2.5 甲方应及时验收乙方交付的服务成果(包括阶段成果和最终成果),如乙方向甲方提交服务成果后在规定期限日内甲方未给出具体验收意见的,视为乙方提交的服务成果合格。如有下一阶段服务的,乙方有权继续推进;如下一阶段服务因甲方原因导致无法继续推进的,乙方不承担任何责任。

2.6 甲方有义务向乙方提供必要的配合义务,包括提供必要资料、及时验收、及时回复等。

2.7 甲方同意并知晓,乙方仅提供合法、合规、合理的服务,对甲方违背法律法规或行政规章的服务要求,乙方有权拒绝提供服务。

2.8 甲方应当保证委托的服务事项不违反任何法律法规或侵犯他人合法权利,否则乙方有权拒绝提供服务并有权立即解除本协议。

2.9 甲方应当保证合法使用乙方提交的服务成果,不得将服务成果用于任何违法违规或侵犯他人合法权益的活动,甲方应自行承担服务成果使用过程中发生的全部责任。

2.10 甲方同意,为便于双方交易,本协议作为交易的主要内容和双方之间权利义务的根本性约定,具体服务项目、期限、金额等甲方在平台与乙方签订电子合同时在合同上予以标注,甲方对在合同中提供的所有信息的真实性负责。

2.11 甲方在签订线下子合同时,应仔细确认所需要的服务内容、价格、数量、交付方式等信息。该信息将作为甲方的真实意思表示,甲方应对该等信息的法律后果承担责任。

2.12 甲方理解并同意:签订线下合同时系统生成的订单信息是计算机信息系统根据乙方填写的内容自动生成的数据,仅是乙方发出的合同要约;甲方收到乙方的合同信息内容并确认签字后,合同生效。

2.13 甲方同意并授权平台方保存其信息(包括但不限于注册信息)

3. 乙方权利义务

3.1 乙方应按照合同约定的时间和质量向甲方提供服务。

3.2 乙方应当积极听取甲方的修改意见,甲方提出合理任务且提出明确的修改意见的,乙方在提交服务成果后可提供修改服务,但超出合同约定内容的修改任务乙方有权拒绝。

3.3 乙方应当对甲方提供的相关资料承担保密义务,除为履行本协议义务及法律规定外,不得向第三方透露。

3.4 乙方有权要求甲方按照合同约定的日期支付相应款项,否则乙方有权拒绝、顺延提供服务和不发起项目验收;

3.5 甲方与乙方约定分阶段工作的,乙方完成阶段性工作并发起验收,甲方应在规定期限日内予以验收确认,验收合格后乙方有权要求甲方支付下一开发阶段的项目启动资金;如甲方在规定期限日内未予以验收的,则视为验收合格。

3.6 在双方签订的合同生效后,乙方有权要求甲方先支付阶段性工作的项目启动资金进行托管后,再进行工作。

3.7 因乙方自身原因导致约定分阶段工作未能如期完成并交付,则乙方需要与甲方提前协商沟通,并在汇新云平台上发起项目延期函,甲方进行确认后方可生效。若乙方未提前发起项目延期函并与甲方确认,否则乙方需按照约定的日期进行交付,由此产生的责任由乙方自行承担。

3.8 乙方应按照法律规定自行缴纳相应税费。

3.9 乙方可能会向实现甲方任务所必须的关联方或合作伙伴共享甲方的订单信息,以保障为甲方提供的服务顺利进行。比如乙方必须将甲方的订单信息与第三方服务商共享来实现甲方的服务任务,并使其完成后续的售后服务,甲方对此无异议。

3.10 乙方应将平台方公布的最新信息传递给甲方,维护三方合作关系。

3.11 乙方对服务中产生的因己方原因造成的甲方损失负有责任,应负责解决;若因此对平台造成损失的,乙方应赔偿平台方全部损失。

4.服务平台方权利义务

4.1 平台方对甲乙双方的注册申请有审核决定的权利;

4.2 平台方享有为维护系统而短暂停止服务的权利,暂停服务之前,平台方将在系统进行通知,甲乙双方应留意公告并做好相应备份工作。

4.3 平台方有权根据中国法律法规的调整、行政执法机关的命令和社会伦理道德的变化相应调整在线管理服务的审核标准,甲乙双方不得以类似“以前曾通过汇新云服务审核”的理由要求平台方继续审核通过;

4.4 乙方使用服务平台的账号密码所进行的一切操作视为乙方行为。乙方应妥善平台的账号密码,否则由此造成的一切后果由乙方承担;一旦发生安全问题应立即通知平台方以共同采取措施包括但不限于冻结账号等。

4.5 平台方有权根据自身任务改变平台服务规则,并在服务平台进行公告;

4.6 若乙方超过90天不使用平台账号的,平台方有权屏蔽或注销其账号。

5. 知识产权

5.1 本协议所产生成果的知识产权在甲方支付完全部项目款后,归甲方所有,乙方或乙方委托提供服务的第三方保留法律规定禁止转让部分的知识产权,同时保留服务成果用于案例展示、评选的权利。但甲方与乙方另有约定的除外。

5.2 乙方应当保证服务成果符合国家法律法规的规定,不存在任何侵犯第三方的所有权、知识产权、名誉权、肖像权等侵权行为,并承担因此产生的全部责任。

5.3 甲方的服务任务如需采购第三方知识产权产品的,乙方应当及时告知甲方经甲方书面同意且支付采购费用后,乙方予以采购并使用或由甲方自行采购并提供给乙方使用。

5.4 甲方在未付清所有服务费用之前,不得使用服务成果,不得主张服务成果的知识产权。如甲方在未付清服务费用之前自行或许可他人使用(包含但不限于直接使用、修改后使用)乙方提交的服务成果的,导致乙方或者其他第三方遭受损失的,甲方应承担由此产生的全部责任。

5.5 甲方应积极就服务成果申请相关知识产权(如有),如发生第三方侵权的,乙方可协助甲方维权,但不对维权结果承担任何责任。

  1. 责任限制

乙方依照法律规定履行基础保障义务,但对于下述原因导致的合同履行障碍、履行瑕疵、履行延后或履行内容变更等情形,乙方并不承担相应的违约责任:

6、因自然灾害、罢工、暴乱、战争、政府行为、司法行政命令等不可抗力因素;

6、因电力供应故障、通讯网络故障等公共服务因素或第三人因素;

6、在乙方已尽善意管理的情况下,因常规或紧急的设备与系统维护、设备与系统故障、网络信息与数据安全等因素。

  1. 违约责任

7.1 乙方未按照合同的约定按时提交服务成果的,应向甲方支付合同中规定的违约金。

7.2 甲方在服务期间无正当理由单方终止协议的,已支付费用无权要求返还。

7.3 乙方在服务期间无正当理由单方终止协议的,所收取的费用应当全部退回给甲方。

7.4 甲乙双方应遵守平台规则以及维护平台商业形象以及维护平台方正常运营,若因甲乙双方任何一方的原因给平台方造成损失的,平台方有权追究其责任,要求其支付违约金,并有权冻结其享有的平台账号;若平台方以法律手段维护其权益的,平台方所支付的全部费用,包括但不限于律师费、诉讼费等,全部由违约方承担。

  1. 争议解决

8.1 因本协议及与本协议有关的争议、解释等,均适用中华人民共和国法律。

8.2 本协议签订或履行过程中,如有争议,双方应当友好协商解决;协商不成,双方一致同意提交平台方所在地人民法院解决。

  1. 其他

9.1 本协议以电子文本形式生成,甲方与乙方完成协议订立手续后,即具有与手写签名同等的法律效力。

9.2 本协议中的任何约定如违反法律法规的规定而无效的,该无效条款不影响本协议其他条款的效力,甲方与乙方仍因履行其他条款所约定的权利义务。

9.3 本协议内容中以加粗方式显著标识的条款,请着重阅读。甲乙方点击“确认”按钮即视为完全接受本协议,在点击之前请再次确认已知悉并完全理解本协议的全部内容

'; +export const agreementContent = + '

投稿协议内容示例,请在管理 — 创客 — 基础数据 — 应征投稿协议内容 修改.

在您通过本平台在线签署应征投稿合同前,请您认真细致地阅读以下《应征投稿协议》,特别是其中以粗体下划线明显标注的条款,并在您同意了下述协议条款再正式进入后续程序

本协议由甲方(任务发布方)和乙方(应征者)在线签订,请甲乙双方仔细阅读协议内容, 请务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款、法律适用和争议解决条款。 甲乙双方点击接受本协议,即意味着已阅读、理解并接受本协议所有条款,并对本协议条款的含义及相应的法律后果已全部知晓并充分认可。甲乙双方点击确认本协议后,本协议即产生法律约束力。

本协议内容包括协议正文及甲乙双方在线相互确认的合同。所签订的合同、合同附件为本协议不可分割的一部分,与本协议正文具有同等法律效力。若您继续使用本平台创客空间,则表明您已经完全知晓、认可并同意遵守本协议内容、所有汇新云已经发布的各类规则以及签订的合同。

在阅读本协议的过程中,如不同意本协议或其中任何条款约定,应拒绝接受本协议所约定的内容,甲乙双方都有权自主选择拒绝达成合作。

1.定义

除非本协议另有约定,在本协议中所用下列术语定义如下:

1.1 本平台:是指www.XXXXXX.com 为用户提供任务信息发布、交流,第三方以“企业”或“个人”入驻的形式应征任务的电子商务交易服务平台;

1.2 用户:指在本平台合法注册,接受并认可服务平台相关协议、规则、规范、制度等的自然人、法人或其他非法人组织。

1.3 甲方:指在本平台上发布创客任务的用户。

1.4 乙方:是指经本平台审核通过入驻本平台,根据任务方发布的任务,提供各种定制服务或IT产品,在平台开展业务经营的企业或个人。

1.5 服务任务:指甲方基于自身任务向乙方提出的具体服务要求。

1.6 项目款:指甲方和乙方的交易金额,即本协议约定交易金额或后续经协商调整后确定的交易总金额。

1.7 平台账户:指用户在本平台注册的帐号,用户只能通过该帐户登陆服务平台进行交易。

2.甲方权利义务

2.1 甲方应当根据服务任务主动向乙方提交本项目所需的相关资料,并保证该资料的真实性、合法性、准确性、完整性,如因甲方未按照前述标准提供资料导致乙方无法履行协议义务,由此产生的责任由甲方自行承担。

2.2 甲方在向乙方提交项目所涉及资料时有权一并对乙方的服务提出建议和思路,同时有权在验收时对乙方的服务成果提出修改意见,但甲方提出的服务建议或思路以及修改意见应当明确具体,如不明确,有权不听取建议或拒绝修改,同时甲方不得借机拖延进度及应支付的款项,甲方提出超出协议或合同约定范围的修改要求,乙方有权拒绝或者另行收取费用。

2.3 甲方未按照合同在约定的日期内支付项目款的,乙方有权拒绝或顺延提供服务。

2.4 甲方应充分了解且同意遵守服务平台公布的所有协议、规则、制度等文件,并按照服务平台的相关规定处理相关交易事项。

2.5 甲方应及时验收乙方交付的服务成果(包括阶段成果和最终成果),如乙方向甲方提交服务成果后在规定期限日内甲方未给出具体验收意见的,视为乙方提交的服务成果合格。如有下一阶段服务的,乙方有权继续推进;如下一阶段服务因甲方原因导致无法继续推进的,乙方不承担任何责任。

2.6 甲方有义务向乙方提供必要的配合义务,包括提供必要资料、及时验收、及时回复等。

2.7 甲方同意并知晓,乙方仅提供合法、合规、合理的服务,对甲方违背法律法规或行政规章的服务要求,乙方有权拒绝提供服务。

2.8 甲方应当保证委托的服务事项不违反任何法律法规或侵犯他人合法权利,否则乙方有权拒绝提供服务并有权立即解除本协议。

2.9 甲方应当保证合法使用乙方提交的服务成果,不得将服务成果用于任何违法违规或侵犯他人合法权益的活动,甲方应自行承担服务成果使用过程中发生的全部责任。

2.10 甲方同意,为便于双方交易,本协议作为交易的主要内容和双方之间权利义务的根本性约定,具体服务项目、期限、金额等甲方在平台与乙方签订电子合同时在合同上予以标注,甲方对在合同中提供的所有信息的真实性负责。

2.11 甲方在签订线下子合同时,应仔细确认所需要的服务内容、价格、数量、交付方式等信息。该信息将作为甲方的真实意思表示,甲方应对该等信息的法律后果承担责任。

2.12 甲方理解并同意:签订线下合同时系统生成的订单信息是计算机信息系统根据乙方填写的内容自动生成的数据,仅是乙方发出的合同要约;甲方收到乙方的合同信息内容并确认签字后,合同生效。

2.13 甲方同意并授权平台方保存其信息(包括但不限于注册信息)

3. 乙方权利义务

3.1 乙方应按照合同约定的时间和质量向甲方提供服务。

3.2 乙方应当积极听取甲方的修改意见,甲方提出合理任务且提出明确的修改意见的,乙方在提交服务成果后可提供修改服务,但超出合同约定内容的修改任务乙方有权拒绝。

3.3 乙方应当对甲方提供的相关资料承担保密义务,除为履行本协议义务及法律规定外,不得向第三方透露。

3.4 乙方有权要求甲方按照合同约定的日期支付相应款项,否则乙方有权拒绝、顺延提供服务和不发起项目验收;

3.5 甲方与乙方约定分阶段工作的,乙方完成阶段性工作并发起验收,甲方应在规定期限日内予以验收确认,验收合格后乙方有权要求甲方支付下一开发阶段的项目启动资金;如甲方在规定期限日内未予以验收的,则视为验收合格。

3.6 在双方签订的合同生效后,乙方有权要求甲方先支付阶段性工作的项目启动资金进行托管后,再进行工作。

3.7 因乙方自身原因导致约定分阶段工作未能如期完成并交付,则乙方需要与甲方提前协商沟通,并在汇新云平台上发起项目延期函,甲方进行确认后方可生效。若乙方未提前发起项目延期函并与甲方确认,否则乙方需按照约定的日期进行交付,由此产生的责任由乙方自行承担。

3.8 乙方应按照法律规定自行缴纳相应税费。

3.9 乙方可能会向实现甲方任务所必须的关联方或合作伙伴共享甲方的订单信息,以保障为甲方提供的服务顺利进行。比如乙方必须将甲方的订单信息与第三方服务商共享来实现甲方的服务任务,并使其完成后续的售后服务,甲方对此无异议。

3.10 乙方应将平台方公布的最新信息传递给甲方,维护三方合作关系。

3.11 乙方对服务中产生的因己方原因造成的甲方损失负有责任,应负责解决;若因此对平台造成损失的,乙方应赔偿平台方全部损失。

4.服务平台方权利义务

4.1 平台方对甲乙双方的注册申请有审核决定的权利;

4.2 平台方享有为维护系统而短暂停止服务的权利,暂停服务之前,平台方将在系统进行通知,甲乙双方应留意公告并做好相应备份工作。

4.3 平台方有权根据中国法律法规的调整、行政执法机关的命令和社会伦理道德的变化相应调整在线管理服务的审核标准,甲乙双方不得以类似“以前曾通过汇新云服务审核”的理由要求平台方继续审核通过;

4.4 乙方使用服务平台的账号密码所进行的一切操作视为乙方行为。乙方应妥善平台的账号密码,否则由此造成的一切后果由乙方承担;一旦发生安全问题应立即通知平台方以共同采取措施包括但不限于冻结账号等。

4.5 平台方有权根据自身任务改变平台服务规则,并在服务平台进行公告;

4.6 若乙方超过90天不使用平台账号的,平台方有权屏蔽或注销其账号。

5. 知识产权

5.1 本协议所产生成果的知识产权在甲方支付完全部项目款后,归甲方所有,乙方或乙方委托提供服务的第三方保留法律规定禁止转让部分的知识产权,同时保留服务成果用于案例展示、评选的权利。但甲方与乙方另有约定的除外。

5.2 乙方应当保证服务成果符合国家法律法规的规定,不存在任何侵犯第三方的所有权、知识产权、名誉权、肖像权等侵权行为,并承担因此产生的全部责任。

5.3 甲方的服务任务如需采购第三方知识产权产品的,乙方应当及时告知甲方经甲方书面同意且支付采购费用后,乙方予以采购并使用或由甲方自行采购并提供给乙方使用。

5.4 甲方在未付清所有服务费用之前,不得使用服务成果,不得主张服务成果的知识产权。如甲方在未付清服务费用之前自行或许可他人使用(包含但不限于直接使用、修改后使用)乙方提交的服务成果的,导致乙方或者其他第三方遭受损失的,甲方应承担由此产生的全部责任。

5.5 甲方应积极就服务成果申请相关知识产权(如有),如发生第三方侵权的,乙方可协助甲方维权,但不对维权结果承担任何责任。

  1. 责任限制

乙方依照法律规定履行基础保障义务,但对于下述原因导致的合同履行障碍、履行瑕疵、履行延后或履行内容变更等情形,乙方并不承担相应的违约责任:

6、因自然灾害、罢工、暴乱、战争、政府行为、司法行政命令等不可抗力因素;

6、因电力供应故障、通讯网络故障等公共服务因素或第三人因素;

6、在乙方已尽善意管理的情况下,因常规或紧急的设备与系统维护、设备与系统故障、网络信息与数据安全等因素。

  1. 违约责任

7.1 乙方未按照合同的约定按时提交服务成果的,应向甲方支付合同中规定的违约金。

7.2 甲方在服务期间无正当理由单方终止协议的,已支付费用无权要求返还。

7.3 乙方在服务期间无正当理由单方终止协议的,所收取的费用应当全部退回给甲方。

7.4 甲乙双方应遵守平台规则以及维护平台商业形象以及维护平台方正常运营,若因甲乙双方任何一方的原因给平台方造成损失的,平台方有权追究其责任,要求其支付违约金,并有权冻结其享有的平台账号;若平台方以法律手段维护其权益的,平台方所支付的全部费用,包括但不限于律师费、诉讼费等,全部由违约方承担。

  1. 争议解决

8.1 因本协议及与本协议有关的争议、解释等,均适用中华人民共和国法律。

8.2 本协议签订或履行过程中,如有争议,双方应当友好协商解决;协商不成,双方一致同意提交平台方所在地人民法院解决。

  1. 其他

9.1 本协议以电子文本形式生成,甲方与乙方完成协议订立手续后,即具有与手写签名同等的法律效力。

9.2 本协议中的任何约定如违反法律法规的规定而无效的,该无效条款不影响本协议其他条款的效力,甲方与乙方仍因履行其他条款所约定的权利义务。

9.3 本协议内容中以加粗方式显著标识的条款,请着重阅读。甲乙方点击“确认”按钮即视为完全接受本协议,在点击之前请再次确认已知悉并完全理解本协议的全部内容

'; export const expertReviewArr = [ - { dicItemCode: 1, name: "提交评审", dicItemName: '提交评审' }, - { dicItemCode: -1, name: "不提交评审", dicItemName: '不提交评审' }, -] \ No newline at end of file + { dicItemCode: 1, name: "提交评审", dicItemName: "提交评审" }, + { dicItemCode: -1, name: "不提交评审", dicItemName: "不提交评审" }, +]; diff --git a/src/military/task/taskAdmin/index.jsx b/src/military/task/taskAdmin/index.jsx index 8241c23a6..7b6a6c81d 100644 --- a/src/military/task/taskAdmin/index.jsx +++ b/src/military/task/taskAdmin/index.jsx @@ -232,14 +232,14 @@ export default Form.create()(({ form, showNotification, match, history, state }) title: '评审规则', dataIndex: 'ruleEditedCount', render: (text, record) => { - return record.assignRuleAndExperts ? : record.expertReview && (record.status === 1 || record.status === 3) ? 编辑 : 编辑 + return record.assignRuleAndExperts ? : record.expertReview && (record.status === 1 || record.status === 3) ? 编辑 : 编辑 } }, { title: '专家选取', dataIndex: 'expertSelectedCount', render: (text, record) => { - return record.assignRuleAndExperts ? : record.expertReview && (record.status === 1 || record.status === 3) ? 选择 : 选择 + return record.assignRuleAndExperts ? : record.expertReview && (record.status === 1 || record.status === 3) ? 选择 : 选择 } }, { @@ -253,7 +253,7 @@ export default Form.create()(({ form, showNotification, match, history, state }) title: '评审结果', dataIndex: 'expertReview2', render: (text, record) => { - return record.assignRuleAndExperts ? 查看:查看 + return record.assignRuleAndExperts ? 查看:查看 } }, { @@ -514,7 +514,7 @@ export default Form.create()(({ form, showNotification, match, history, state }) function setCurPage1(page){ setCurPage(page); - window.location.href=`/task/taskAdmin#page=${page}`; + window.location.href=`/managements/task/taskAdmin#page=${page}`; } // 改变排序字段 diff --git a/src/military/task/taskAdminRouter.js b/src/military/task/taskAdminRouter.js deleted file mode 100644 index e6badd65e..000000000 --- a/src/military/task/taskAdminRouter.js +++ /dev/null @@ -1,136 +0,0 @@ -import React from "react"; - -import { Route, Switch } from "react-router-dom"; -import Loadable from "react-loadable"; -import Loading from "../../Loading"; -import AdminRouter from "../components/adminRouter"; - - -const TaskManage = Loadable({ - loader: () => import("./taskManage"), - loading: Loading, -}); - -const PaperManage = Loadable({ - loader: () => import("./paperManage"), - loading: Loading, -}); - -const PaperComplain = Loadable({ - loader: () => import("./paperComplain"), - loading: Loading, -}); - -const ProofManage = Loadable({ - loader: () => import("./proofManage"), - loading: Loading, -}); - -const PublicityComplain = Loadable({ - loader: () => import("./publicityComplain"), - loading: Loading, -}); - -const AgreementManage = Loadable({ - loader: () => import("./agreementManage"), - loading: Loading, -}); - -const PayProof = Loadable({ - loader: () => import("./payProof"), - loading: Loading, -}); - -const TaskAdmin = Loadable({ - loader: () => import("./taskAdmin"), - loading: Loading, -}); - -const DelayManage = Loadable({ - loader: () => import("./delayManage"), - loading: Loading, -}); - -const AdminPage = (propsF) => { - - return ( - - - - {/* 任务管理审核 */} - ( - - )} - > - - {/* 成果管理审核 */} - ( - - )} - > - - {/* 成果申诉管理审核 */} - ( - - )} - > - - {/* 公示期成果申诉管理审核 */} - ( - - )} - > - - {/* 佐证管理审核 */} - ( - - )} - > - - {/* 管理员协议审核 */} - ( - - )} - > - - {/* 管理员上传支付凭证 */} - ( - - )} - > - - {/* 管理员任务列表 */} - ( - - )} - > - - {/* 延期管理 */} - ( - - )} - > - - - ); -} -// } -export default AdminPage; diff --git a/src/military/task/taskList/index.jsx b/src/military/task/taskList/index.jsx index 5e5dc6d93..f67fc088d 100644 --- a/src/military/task/taskList/index.jsx +++ b/src/military/task/taskList/index.jsx @@ -11,7 +11,7 @@ import '../index.scss'; const Search = Input.Search; -export default ({ history, current_user, showLoginDialog, location }) => { +export default ({ history, current_user, showLoginDialog, location, mygetHelmetapi }) => { // console.log(current_user); let initType = getUrlToken('type', location.search) || ''; @@ -147,7 +147,7 @@ export default ({ history, current_user, showLoginDialog, location }) => { if (res) { if (res.message === 'success') { history.push("/task/taskAdd"); - } else if (res.message === '主体信息未认证') { + } else if (res.message === '未进行实体认证') { Modal.info({ title: '因为以下原因,您暂时不能进行本操作', content:
@@ -157,9 +157,10 @@ export default ({ history, current_user, showLoginDialog, location }) => {
, onOk: () => { - window.location.href = `/users/${current_user.login}/profiles`; + window.location.href = mygetHelmetapi && mygetHelmetapi.main_web_site_url + `/users/${current_user.login}/profiles`; }, okText: '立即完善', + className: 'go_profiles' }); } else { Modal.info({ diff --git a/src/modules/login/LoginDialog.js b/src/modules/login/LoginDialog.js index 06a0efbfb..c2e277728 100644 --- a/src/modules/login/LoginDialog.js +++ b/src/modules/login/LoginDialog.js @@ -1,4 +1,5 @@ import React, { Component } from 'react'; +import { Base64 } from 'js-base64'; import Dialog from 'material-ui/Dialog'; import { notification } from 'antd'; @@ -367,7 +368,7 @@ class LoginDialog extends Component { let url = '/accounts/login.json' axios.post(url, { login: newloginValue, - password: newpassValue, + password: Base64.encode(newpassValue), autologin: isGoingValue } ).then((response) => { diff --git a/src/modules/loginRegister/LoginRegisterPage.jsx b/src/modules/loginRegister/LoginRegisterPage.jsx index 200aba0b1..788bbf40c 100644 --- a/src/modules/loginRegister/LoginRegisterPage.jsx +++ b/src/modules/loginRegister/LoginRegisterPage.jsx @@ -2,7 +2,7 @@ import React from "react"; import Login from "./Login"; import Register from "./Register"; import ResetPassword from "./ResetPassword"; -import logo from './img/logo.png'; +import logo from './img/logo.svg'; import banner from './img/banner.png'; import ball from './img/ball.png'; import img1 from './img/img1.png'; diff --git a/src/modules/loginRegister/img/logo.svg b/src/modules/loginRegister/img/logo.svg new file mode 100644 index 000000000..35501c2ba --- /dev/null +++ b/src/modules/loginRegister/img/logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/src/modules/tpm/NewHeader.js b/src/modules/tpm/NewHeader.js index 131157400..901d68eb4 100644 --- a/src/modules/tpm/NewHeader.js +++ b/src/modules/tpm/NewHeader.js @@ -581,11 +581,28 @@ class NewHeader extends Component { matchpaths = (url) => { const { match } = this.props; - + let pathname=sessionStorage.pathname; if(url){ - if (match.path.indexOf(url) > -1) { + if (url.indexOf('forums') > -1 && match.path.indexOf('forums') > -1) { return true - }else { + // 开源项目,路由改版后,比较麻烦,因此使用多个进行判断 + } else if (url.indexOf('explore') > -1 && match.path.indexOf('explore') > -1) { + return true + // 开源项目,路由改版后,比较麻烦,因此使用多个进行判断 + } else if (url.indexOf('explore') > -1 && match.url.indexOf(pathname) > -1) { + return true + // 公告 + } else if (url.indexOf('/notice') > -1 && match.path.indexOf('/notice') > -1) { + return true + // 创客 + } else if (url.indexOf('/task') > -1 && match.path.indexOf('/task') > -1) { + return true + // 管理 + } else if (url.indexOf('/managements') > -1 && match.path.indexOf('/managements') > -1) { + return true + } else if (['http://117.50.100.12:8080','https://osredm.com','http://111.8.36.180:8000','http://localhost:3007'].includes(url) && match.path === '/') { + return true + } else { return false } } @@ -727,7 +744,7 @@ class NewHeader extends Component { var wl = waiLian && waiLian.length>0; return (
  • this.headtypesonClick(item.link, true)} className={`${this.matchpaths(item.link) === true ? 'pr active' : 'pr'}`} style={!is_hidden ? { display: 'flex' } : { display: 'none' }}> - {item.name} + {item.name}
  • ) }) @@ -835,7 +852,7 @@ class NewHeader extends Component { { settings && settings.personal && settings.personal.length > 0 && settings.personal.map((item,key)=>{ return( -
  • {item.name}
  • +
  • {item.name}
  • ) }) } diff --git a/src/modules/tpm/css/headerExcess.css b/src/modules/tpm/css/headerExcess.css index 1dd4b0de7..6c8c90ceb 100644 --- a/src/modules/tpm/css/headerExcess.css +++ b/src/modules/tpm/css/headerExcess.css @@ -1,14 +1,15 @@ .head-nav ul#header-nav li:hover a, .head-nav ul#header-nav li.active a{ - color: #1484EF; + color: #466AFF; } .head-nav ul#header-nav li.active a::after{ content: ""; width: 100%; height:2px; - background-color: #1484EF; + background-color: #466AFF; left:0px; bottom: 12px; position: absolute; + margin-left: 0; } .login-box{ font-size: 15px; diff --git a/src/modules/user/LoginRegisterComponent.js b/src/modules/user/LoginRegisterComponent.js index a6ba6570e..f4a6d97f6 100644 --- a/src/modules/user/LoginRegisterComponent.js +++ b/src/modules/user/LoginRegisterComponent.js @@ -1,6 +1,7 @@ import React, {Component} from 'react'; import {setmiyah,broadcastChannelPostMessage} from 'educoder'; import {Tabs, Input, Checkbox, Button, notification,Menu} from 'antd'; +import { Base64 } from 'js-base64'; import passopen from '../../../src/images/login/passopen.png'; import passoff from '../../../src/images/login/passoff.png'; import axios from 'axios'; @@ -351,7 +352,7 @@ class LoginRegisterComponent extends Component { var url = "/accounts/login.json"; axios.post(url, { login: this.state.login, - password: this.state.password, + password: Base64.encode(this.state.password), }).then((response) => { if (response === undefined) {