forked from Gitlink/forgeplus-react
check&change
This commit is contained in:
parent
8120a2d4e2
commit
85585746f7
|
|
@ -31,7 +31,7 @@ class ActivityItem extends Component {
|
|||
<span className="activity_type">{item.trend_type}</span>
|
||||
</p >
|
||||
}
|
||||
<p className="itemLine mt15">
|
||||
<p className="itemLine mt10">
|
||||
<Link to={`/users/${item && item.login}`} className="show-user-link">
|
||||
<img alt="" src={getImageUrl(`images/${item.user_avatar}`)} className="createImage" />
|
||||
<span className="mr20">{item.user_name}</span>
|
||||
|
|
|
|||
|
|
@ -66,6 +66,9 @@
|
|||
display: flex;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.activity_list .activity_item:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
.prPercent > p{
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -273,7 +273,7 @@ class merge extends Component {
|
|||
);
|
||||
return (
|
||||
<div className="main">
|
||||
<div className="topWrapper">
|
||||
<div className="topWrapper" style={{borderBottom:"1px solid #eee"}}>
|
||||
<div className="target-detail-search">
|
||||
<Search
|
||||
placeholder="输入关键字搜索合并请求"
|
||||
|
|
@ -425,61 +425,6 @@ class merge extends Component {
|
|||
) : (
|
||||
<NoneData _html="暂时还没有相关数据哦!" projectsId={projectsId} owner={owner} />
|
||||
)}
|
||||
{/* <div className="topWrapper" style={{ borderBottom: "none" }}>
|
||||
<p className="topWrapper_type_infos">
|
||||
<li className={status_type === "1" ? "active" : ""} onClick={() => this.openorder("1")}>{data && data.open_count ? data.open_count : 0}个开启中</li>
|
||||
<li className={status_type === "2" ? "active" : ""} onClick={() => this.openorder("2")}>{data && data.close_count ? data.close_count : 0}个已关闭</li>
|
||||
</p>
|
||||
|
||||
<div className="topWrapper_select">
|
||||
<div>
|
||||
<Search
|
||||
placeholder="搜索"
|
||||
enterButton
|
||||
onSearch={this.searchFunc}
|
||||
style={{ width: 300 }}
|
||||
/>
|
||||
</div>
|
||||
<a className="topWrapper_btn ml10" onClick={() => this.islogin()}>创建合并请求</a>
|
||||
</div>
|
||||
</div>
|
||||
<div className="f-wrap-between pb20" style={{borderBottom:"1px dashed #ddd"}}>
|
||||
<div></div>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_tag, '标签', 'issue_tag_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.issue_tag_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_version, '里程碑', 'fixed_version_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.fixed_version_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.assign_user, '指派人', 'assigned_to_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.assigned_to_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.paix}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{
|
||||
data && data.search_count && data.search_count > 0 ?
|
||||
<div>
|
||||
<Spin spinning={isSpin}>
|
||||
<OrderItem issues={issues} search_count={search_count} page={select_params.page} limit={select_params.limit} {...this.props} {...this.state}></OrderItem>
|
||||
{Paginations}
|
||||
</Spin>
|
||||
</div>
|
||||
:
|
||||
<NoneData _html="暂时还没有相关数据哦!" />
|
||||
} */}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,18 +117,12 @@ class UserSubmitComponent extends Component {
|
|||
|
||||
const { current_user, filepath, projectDetail } = this.props;
|
||||
const { editor_type } = this.props;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<span className="df mt30" style={{ alignItems: "center" }}>
|
||||
<Link
|
||||
to={`/users/${current_user && current_user.login}`}
|
||||
className="show-user-link"
|
||||
>
|
||||
<Link to={`/users/${current_user && current_user.login}`} className="show-user-link" >
|
||||
<img
|
||||
src={getImageUrl(
|
||||
`images/${current_user && current_user.image_url}`
|
||||
)}
|
||||
src={getImageUrl(`images/${current_user && current_user.image_url}`)}
|
||||
alt=""
|
||||
className="screwImg"
|
||||
/>
|
||||
|
|
@ -136,7 +130,6 @@ class UserSubmitComponent extends Component {
|
|||
{current_user && current_user.username}:
|
||||
</span>
|
||||
</Link>
|
||||
|
||||
<span className="color-grey-8">提交变更</span>
|
||||
</span>
|
||||
<Spin spinning={isSpin}>
|
||||
|
|
@ -153,10 +146,8 @@ class UserSubmitComponent extends Component {
|
|||
})(
|
||||
<div className="setInputAddon">
|
||||
<Input
|
||||
addonBefore={`/${
|
||||
projectDetail && projectDetail.identifier
|
||||
}/`}
|
||||
value={filename ? filename : filepath}
|
||||
addonBefore={`/${ projectDetail && projectDetail.identifier }/`}
|
||||
value={filename || filepath}
|
||||
onChange={this.changeFileName}
|
||||
placeholder="文件路径..."
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ class UploadFile extends Component {
|
|||
const { pathname } = this.props.location;
|
||||
const { filename, editorValue, attachment_clean } = this.state;
|
||||
const urlroot = pathname.split("uploadfile/")[1];
|
||||
const file_path = !urlroot ? `${filename}` : `${urlroot}/${filename}`;
|
||||
const file_path = !urlroot ? filename : `${urlroot}/${filename}`;
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ class Milepost extends Component {
|
|||
<span>里程碑{data && data.issue_tags_count}已创建</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="topWrapper">
|
||||
<div className="topWrapper" style={{borderBottom:"1px solid #eee"}}>
|
||||
<div className="topWrapper_type_infos">
|
||||
<li className={openselect ? "active" : ""} onClick={() => this.opneMilelist(1)}>{data && data.open_count}个开启中</li>
|
||||
<li className={closeselect ? "active" : ""} onClick={() => this.opneMilelist(2)}>{data && data.closed_count}个已关闭</li>
|
||||
|
|
@ -223,15 +223,15 @@ class Milepost extends Component {
|
|||
{
|
||||
data && data.user_admin_or_member ?
|
||||
<div className="milepostleft">
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<div className="grid-item ml15 color-grey-9">
|
||||
<i className="iconfont icon-bianji3 font-14 mr5"></i>
|
||||
<Link to={`/projects/${owner}/${projectsId}/milestones/${item.id}/edit`} className="color-grey-9">编辑</Link>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<div className="grid-item ml15 color-grey-9">
|
||||
<i className="iconfont icon-yiguanbi1 font-14 mr5"></i>
|
||||
<a onClick={() => this.updatestatusemile(this.state.status === "closed" ? "open" : "closed", item)} className="color-grey-9">{this.state.status === "closed" ? "开启" : "关闭"}</a>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<div className="grid-item ml15 color-grey-9">
|
||||
<i className="iconfont icon-lajitong font-14 mr5" ></i>
|
||||
<Popconfirm placement="bottom" title={'是否删除里程碑?'} okText="是" cancelText="否" onConfirm={() => this.closemile(item)}>
|
||||
<a className="color-grey-9">删除</a>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import React, { Component } from "react";
|
|||
import { Link } from 'react-router-dom';
|
||||
import { Dropdown, Menu, Icon, Pagination, Spin } from 'antd';
|
||||
import './order.css';
|
||||
import { FlexAJ } from '../Component/layout'
|
||||
|
||||
import NoneData from '../Nodata';
|
||||
import OrderItem from './OrderItem';
|
||||
|
|
@ -198,92 +199,94 @@ class MilepostDetail extends Component {
|
|||
</Menu>
|
||||
)
|
||||
return (
|
||||
<div className="main">
|
||||
<div className="miledetail mb20">
|
||||
<div className="topmilepost">
|
||||
<p className="font-18">{data && data.name}</p>
|
||||
<div className="main" style={{padding:"0px"}}>
|
||||
<div className="miledetail">
|
||||
<p className="font-20">{data && data.name}</p>
|
||||
<FlexAJ>
|
||||
<span className="mt7">
|
||||
<span className="mr10">
|
||||
<i className="iconfont icon-rili font-14 mr5">
|
||||
</i>
|
||||
{
|
||||
data && data.effective_date ?
|
||||
<span >{data && data.effective_date}</span>
|
||||
:
|
||||
<span >暂无截止时间</span>
|
||||
}
|
||||
</span>
|
||||
<span className="font-weight-bold">{data && data.percent && data.percent.toFixed(2)}%完成 </span>
|
||||
</span>
|
||||
<div className="milepostdiv">
|
||||
<Link to={`/projects/${owner}/${projectsId}/milestones/${meilid}/edit`} className="topWrapper_btn" style={{ marginRight: 15 }} >编辑里程碑</Link>
|
||||
<Link to={`/projects/${owner}/${projectsId}/issues/${meilid}/new`} className="topWrapper_btn">创建任务</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="grid-item mr10">
|
||||
<span className="mr10">
|
||||
<i className="iconfont icon-rili font-14 mr5">
|
||||
</i>
|
||||
{
|
||||
data && data.effective_date ?
|
||||
<span >{data && data.effective_date}</span>
|
||||
:
|
||||
<span >暂无截止时间</span>
|
||||
}
|
||||
</span>
|
||||
<span className="font-weight-bold">
|
||||
{data && data.percent && data.percent.toFixed(2)}%完成
|
||||
</span>
|
||||
</div>
|
||||
</FlexAJ>
|
||||
</div>
|
||||
|
||||
<Spin spinning={isSpin}>
|
||||
<div className="f-wrap-between pb20 bor-bottom-greyE">
|
||||
<ul className="topWrapper_type_infos">
|
||||
<li className={status_type==="1" ? "active" : ""} onClick={() => this.openorder("1")}>{data && data.open_issues_count}个开启中</li>
|
||||
<li className={status_type==="2" ? "active" : ""} onClick={() => this.openorder("2")}>{data && data.close_issues_count}个已关闭</li>
|
||||
</ul>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_tag, '标签', 'issue_tag_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.issue_tag_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.assign_user, '发布人', 'author_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.author_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.assign_user, '负责人', 'assigned_to_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.assigned_to_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.tracker, '类型', 'tracker_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.tracker_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_status, '状态', 'status_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.status_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.done_ratio, '完成度', 'done_ratio')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.done_ratios}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.paix}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
<div className="pl20 pr20">
|
||||
<div className="f-wrap-between pt15 pb15 bor-bottom-greyE">
|
||||
<ul className="topWrapper_type_infos">
|
||||
<li className={status_type==="1" ? "active" : ""} onClick={() => this.openorder("1")}>{data && data.open_issues_count}个开启中</li>
|
||||
<li className={status_type==="2" ? "active" : ""} onClick={() => this.openorder("2")}>{data && data.close_issues_count}个已关闭</li>
|
||||
</ul>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_tag, '标签', 'issue_tag_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.issue_tag_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.assign_user, '发布人', 'author_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.author_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.assign_user, '负责人', 'assigned_to_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.assigned_to_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.tracker, '类型', 'tracker_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.tracker_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_status, '状态', 'status_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.status_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.done_ratio, '完成度', 'done_ratio')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.done_ratios}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.paix}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="setItemStyle">
|
||||
{
|
||||
search_count === 0 ?
|
||||
<NoneData _html="暂时还没有相关数据哦!" />
|
||||
:
|
||||
issues && issues.length>0 && issues.map((item,key)=>{
|
||||
return(
|
||||
<OrderItem key={key} mile item={item} search_count={search_count} page={page} limit={limit} {...this.props} {...this.state}></OrderItem>
|
||||
)
|
||||
})
|
||||
}
|
||||
</div>
|
||||
{
|
||||
search_count > limit?
|
||||
<div className="mt30 mb50 edu-txt-center">
|
||||
<Pagination simple current={page} total={search_count} pageSize={limit} onChange={this.ChangePage}></Pagination>
|
||||
</div>:""
|
||||
}
|
||||
</div>
|
||||
{
|
||||
search_count === 0 ?
|
||||
<NoneData _html="暂时还没有相关数据哦!" />
|
||||
:
|
||||
issues && issues.length>0 && issues.map((item,key)=>{
|
||||
return(
|
||||
<OrderItem key={key} mile item={item} search_count={search_count} page={page} limit={limit} {...this.props} {...this.state}></OrderItem>
|
||||
)
|
||||
})
|
||||
}
|
||||
{
|
||||
search_count > limit?
|
||||
<div className="mt30 mb50 edu-txt-center">
|
||||
<Pagination simple current={page} total={search_count} pageSize={limit} onChange={this.ChangePage}></Pagination>
|
||||
</div>:""
|
||||
}
|
||||
</Spin>
|
||||
</div>
|
||||
)
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ class OrderItem extends Component {
|
|||
</div>
|
||||
<div className="milepostdiv" style={{ marginTop: 5 }}>
|
||||
<div className="milepostrighe">
|
||||
|
||||
<div className="grid-item mr10">
|
||||
<i className="iconfont icon-rili font-14 mr5">
|
||||
</i>
|
||||
|
|
@ -64,15 +63,15 @@ class OrderItem extends Component {
|
|||
{
|
||||
data.user_admin_or_member ?
|
||||
<div className="milepostleft">
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<div className="grid-item ml15 color-grey-9">
|
||||
<i className="iconfont icon-bianji3 font-14 mr5"></i>
|
||||
<Link to={`/projects/${owner}/${projectsId}/milestones/${item.id}/edit`} className="color-grey-9">编辑</Link>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<div className="grid-item ml15 color-grey-9">
|
||||
<i className="iconfont icon-yiguanbi1 font-14 mr5"></i>
|
||||
<a onClick={() => this.updatestatusemile(this.state.status === "closed" ? "open" : "closed", item)} className="color-grey-9">{this.state.status === "closed" ? "开启" : "关闭"}</a>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<div className="grid-item ml15 color-grey-9">
|
||||
<i className="iconfont icon-lajitong font-14 mr5" ></i>
|
||||
<Popconfirm placement="bottom" title={'是否删除里程碑?'} okText="是" cancelText="否" onConfirm={() => this.closemile(item)}>
|
||||
<a className="color-grey-9">删除</a>
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ class OrderItem extends Component {
|
|||
<div className="issueItem">
|
||||
{current_user && current_user.login && checkbox}
|
||||
<div className="flex-1">
|
||||
<p className="mb15 df" style={{alignItems:"center"}}>
|
||||
<p className="mb10 df" style={{alignItems:"center"}}>
|
||||
<Link to={`/projects/${owner}/${projectsId}/issues/${item.id}/detail`} target="_blank" title={item.name} className="hide-1 font-16 color-grey-3 lineh-30 mr10" style={{maxWidth:"300px"}}>{item.name}</Link>
|
||||
{TagInfo(item.priority,"mr10")}
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
}
|
||||
|
||||
.topmilepost {
|
||||
padding: 20px 0;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
|
@ -27,7 +26,7 @@
|
|||
}
|
||||
|
||||
.miledetail {
|
||||
padding-bottom: 20px;
|
||||
padding:15px 20px;
|
||||
box-sizing: border-box;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
|
|
@ -212,12 +211,18 @@
|
|||
padding: 6px 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.setItemStyle .issueItem{
|
||||
padding:16px 0px;
|
||||
}
|
||||
.issueItem {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-content: center;
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 16px 0px 16px 20px;
|
||||
padding: 16px 20px;
|
||||
}
|
||||
.issueItem:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
.issueNo {
|
||||
padding: 0px 5px;
|
||||
|
|
@ -424,7 +429,7 @@
|
|||
}
|
||||
.milepostrighe {
|
||||
display: flex;
|
||||
width: 80%;
|
||||
flex:1;
|
||||
}
|
||||
.milepostleft {
|
||||
display: flex;
|
||||
|
|
@ -640,7 +645,7 @@ a.issue-type-button.active:hover {
|
|||
|
||||
.custom-comment-tabs .ant-tabs-top-bar{
|
||||
border-bottom: none;
|
||||
padding: 15px 0;
|
||||
padding-top:15px;
|
||||
}
|
||||
.custom-comment-tabs .search-count-button{
|
||||
line-height: 18px;
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ class Index extends Component {
|
|||
const { projectsId , owner } = this.props.match.params;
|
||||
const { pathname } = this.props.history.location;
|
||||
|
||||
const flag = pathname === `/projects/${projectsId}/setting`;
|
||||
const flag = pathname === `/projects/${owner}/${projectsId}/setting`;
|
||||
return (
|
||||
<Box className="ProjectListIndex">
|
||||
<Short>
|
||||
|
|
@ -49,9 +49,8 @@ class Index extends Component {
|
|||
<li className={flag ? "active" : ""}>
|
||||
<p>
|
||||
<Link to={`/projects/${owner}/${projectsId}/setting`} className="w-100">
|
||||
|
||||
<i className="iconfont icon-huabanfuben font-18 mr10"></i>基本设置
|
||||
</Link>
|
||||
</Link>
|
||||
</p>
|
||||
</li>
|
||||
<li
|
||||
|
|
|
|||
Loading…
Reference in New Issue