perf: 整理官网页面

This commit is contained in:
kuaifan 2023-07-11 15:31:42 +08:00
parent 925667d840
commit 56da2a5725
8 changed files with 65 additions and 1920 deletions

View File

@ -38,7 +38,7 @@ class SystemController extends AbstractController
* @apiParam {String} type
* - get: 获取(默认)
* - all: 获取所有(需要管理员权限)
* - save: 保存设置(参数:['reg', 'reg_identity', 'reg_invite', 'login_code', 'password_policy', 'project_invite', 'chat_information', 'anon_message', 'auto_archived', 'archived_day', 'task_visible', 'all_group_mute', 'all_group_autoin', 'image_compress', 'image_save_local', 'start_home', 'home_footer']
* - save: 保存设置(参数:['reg', 'reg_identity', 'reg_invite', 'login_code', 'password_policy', 'project_invite', 'chat_information', 'anon_message', 'auto_archived', 'archived_day', 'task_visible', 'all_group_mute', 'all_group_autoin', 'image_compress', 'image_save_local', 'start_home']
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
@ -71,7 +71,6 @@ class SystemController extends AbstractController
'image_compress',
'image_save_local',
'start_home',
'home_footer'
])) {
unset($all[$key]);
}
@ -882,58 +881,6 @@ class SystemController extends AbstractController
return $data;
}
/**
* @api {get} api/system/get/showitem 19. 首页显示ITEM
*
* @apiDescription 用于判断首页是否显示pro、github、更新日志...
* @apiVersion 1.0.0
* @apiGroup system
* @apiName get__showitem
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function get__showitem()
{
$logPath = base_path('CHANGELOG.md');
$logContent = "";
$logVersion = "";
if (file_exists($logPath)) {
$logContent = file_get_contents($logPath);
preg_match("/## \[(.*?)\]/", $logContent, $matchs);
if ($matchs) {
$logVersion = $matchs[1] === "Unreleased" ? $matchs[1] : "v{$matchs[1]}";
}
}
return Base::retSuccess('success', [
'pro' => str_contains(Request::getHost(), "dootask.com") || str_contains(Request::getHost(), "127.0.0.1"),
'github' => env('GITHUB_URL') ?: false,
'updateLog' => $logContent ?: false,
'updateVer' => $logVersion,
]);
}
/**
* @api {get} api/system/get/starthome 20. 启动首页设置信息
*
* @apiDescription 用于判断注册是否需要启动首页
* @apiVersion 1.0.0
* @apiGroup system
* @apiName get__starthome
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function get__starthome()
{
return Base::retSuccess('success', [
'need_start' => Base::settingFind('system', 'start_home') == 'open',
'home_footer' => Base::settingFind('system', 'home_footer')
]);
}
/**
* @api {get} api/system/email/check 21. 邮件发送测试(限管理员)
*

View File

@ -1,259 +1,19 @@
<template>
<div v-if="needStartHome" class="page-index">
<PageTitle :title="appTitle"/>
<div class="page-warp">
<div class="page-header">
<div class="header-nav">
<div class="header-nav-box">
<div class="logo no-dark-content"></div>
</div>
<div class="header-nav-box header-nav-boxs" v-if="windowWidth > 780">
<Button v-if="showItem.pro" class="header-right-pro no-dark-content" size="small" @click="onPro">{{$L('Pro版')}}</Button>
<template v-if="windowWidth >= 820">
<a v-if="showItem.github" class="header-right-github" :href="showItem.github" target="_blank"><Icon type="logo-github"/></a>
<div v-if="showItem.updateLog" class="header-right-uplog" @click="uplogShow=true">{{$L('更新日志')}}</div>
</template>
<div class="header-right-1">
<Dropdown trigger="click" @on-click="onLanguage">
<a href="javascript:void(0)" class="header-right-1-dropdown">
{{ currentLanguage }}
<Icon type="ios-arrow-down"></Icon>
</a>
<DropdownMenu slot="list">
<DropdownItem
v-for="(item, key) in languageList"
:key="key"
:name="key"
:selected="languageType === key">{{ item }}</DropdownItem>
</DropdownMenu>
</Dropdown>
</div>
<div v-if="windowWidth >= 980" class="header-right-2">
<Dropdown trigger="click" @on-click="setTheme">
<a href="javascript:void(0)" class="header-right-2-dropdown">
{{$L('主题皮肤')}}
<Icon type="ios-arrow-down"></Icon>
</a>
<DropdownMenu slot="list">
<DropdownItem
v-for="(item, key) in themeList"
:key="key"
:name="item.value"
:selected="themeMode === item.value">{{$L(item.name)}}</DropdownItem>
</DropdownMenu>
</Dropdown>
</div>
<div v-if="userId > 0" class="header-right-5 no-dark-content" @click="login">
<UserAvatar :userid="userId" :size="38"/>
</div>
<template v-else>
<div class="header-right-3" @click="register">{{ $L("注册帐号") }}</div>
<div class="header-right-4 no-dark-content" @click="login">{{ $L("登录") }}</div>
</template>
</div>
<div class="header-nav-box header-nav-boxs" v-else>
<Dropdown trigger="click">
<a href="javascript:void(0)">
<Icon type="md-menu" class="header-nav-more no-dark-content"/>
</a>
<DropdownMenu slot="list">
<DropdownItem v-if="userId > 0" @click.native="login">
<UserAvatar :userid="userId" show-name :show-icon="false"/>
</DropdownItem>
<template v-else>
<DropdownItem @click.native="login">{{ $L("登录") }}</DropdownItem>
<DropdownItem @click.native="register">{{ $L("注册帐号") }}</DropdownItem>
</template>
<DropdownItem v-if="showItem.github" @click.native="windowOpen(showItem.github)">Github</DropdownItem>
<DropdownItem v-if="showItem.updateLog" @click.native="uplogShow=true">{{ $L("更新日志") }}</DropdownItem>
<Dropdown placement="right-start" @on-click="onLanguage" transfer>
<DropdownItem>
<div class="header-nav-dropdown-item">
{{ currentLanguage }}
<Icon type="ios-arrow-forward"></Icon>
</div>
</DropdownItem>
<DropdownMenu slot="list">
<DropdownItem
v-for="(item, key) in languageList"
:key="key"
:name="key"
:selected="languageType === key">{{ item }}</DropdownItem>
</DropdownMenu>
</Dropdown>
<Dropdown trigger="click" placement="right-end" @on-click="setTheme" transfer>
<DropdownItem>
<div class="header-nav-dropdown-item">
{{$L('主题皮肤')}}
<Icon type="ios-arrow-forward"></Icon>
</div>
</DropdownItem>
<DropdownMenu slot="list">
<DropdownItem
v-for="(item, key) in themeList"
:key="key"
:name="item.value"
:selected="themeMode === item.value">{{$L(item.name)}}</DropdownItem>
</DropdownMenu>
</Dropdown>
</DropdownMenu>
</Dropdown>
</div>
</div>
<div class="header-content">
<div class="header-title header-title-one">{{appTitle}}</div>
<div class="header-title">
{{ $L("轻量级任务管理工具") }}
</div>
<div class="header-tips">
{{ $L(`${appTitle}是一款轻量级的开源在线项目任务管理工具提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM文件管理等工具。`) }}
</div>
<div class="login-buttom no-dark-content" @click="login">
{{ $L("登录") }}
</div>
</div>
</div>
<div class="page-header-bottom">
<div class="page-header-bottoms">
<ImgView :src="themeIsDark ? 'images/index/dark/1.png':'images/index/light/1.png'"/>
</div>
</div>
<div class="page-main">
<Row :class="windowWidth > 1200 ? 'page-main-row':'page-main-rows'">
<Col :class="windowWidth > 1200 ? 'page-main-img':'page-main-imgs'" :xs="24" :sm="24" :xl="12">
<ImgView :src="themeIsDark ? 'images/index/dark/2.png':'images/index/light/2.png'"/>
</Col>
<Col class="page-main-text" :xs="24" :sm="24" :xl="12" v-if="windowWidth > 1200">
<ImgView src="images/index/square.png"/>
<h3>{{$L('高效便捷的团队沟通工具')}}</h3>
<p>{{$L('针对项目和任务建立群组,工作问题可及时沟通,促进团队快速协作,提高团队工作效率。')}}</p>
</Col>
<Col class="page-main-text page-main-texts" :xs="24" :sm="24" :xl="12" v-else>
<h3><ImgView src="images/index/square.png"/>{{$L('高效便捷的团队沟通工具')}}</h3>
<p>{{$L('针对项目和任务建立群组,工作问题可及时沟通,促进团队快速协作,提高团队工作效率。')}}</p>
</Col>
</Row>
<Row :class="windowWidth > 1200 ? 'page-main-row':'page-main-rows'">
<Col class="page-main-text" :xs="24" :sm="24" :xl="12" v-if="windowWidth > 1200">
<ImgView src="images/index/square.png"/>
<h3>{{$L('强大易用的协同创作云文档')}}</h3>
<p>{{$L('汇集文档、电子表格、思维笔记等多种在线工具,汇聚企业知识资源于一处,支持多人实时协同编辑,让团队协作更便捷。')}}</p>
</Col>
<Col :class="windowWidth > 1200 ? 'page-main-img':'page-main-imgs'" :xs="24" :sm="24" :xl="12">
<ImgView :src="themeIsDark ? 'images/index/dark/3.png':'images/index/light/3.png'"/>
</Col>
<Col class="page-main-text page-main-texts" :xs="24" :sm="24" :xl="12" v-if="windowWidth<=1200">
<h3><ImgView src="images/index/square.png"/>{{$L('强大易用的协同创作云文档')}}</h3>
<p>{{$L('汇集文档、电子表格、思维笔记等多种在线工具,汇聚企业知识资源于一处,支持多人实时协同编辑,让团队协作更便捷。')}}</p>
</Col>
</Row>
<Row :class="windowWidth > 1200 ? 'page-main-row':'page-main-rows'">
<Col :class="windowWidth > 1200 ? 'page-main-img':'page-main-imgs'" :xs="24" :sm="24" :xl="12">
<ImgView :src="themeIsDark ? 'images/index/dark/4.png':'images/index/light/4.png'"/>
</Col>
<Col class="page-main-text" :xs="24" :sm="24" :xl="12" v-if="windowWidth > 1200">
<ImgView src="images/index/square.png"/>
<h3>{{$L('便捷易用的项目管理模板')}}</h3>
<p>{{$L('模版满足多种团队协作场景,同时支持自定义模版,满足团队个性化场景管理需求,可直观的查看项目的进展情况,团队协作更方便。')}}</p>
</Col>
<Col class="page-main-text page-main-texts" :xs="24" :sm="24" :xl="12" v-else>
<h3><ImgView src="images/index/square.png"/>{{$L('便捷易用的项目管理模板')}}</h3>
<p>{{$L('模版满足多种团队协作场景,同时支持自定义模版,满足团队个性化场景管理需求,可直观的查看项目的进展情况,团队协作更方便。')}}</p>
</Col>
</Row>
<Row :class="windowWidth > 1200 ? 'page-main-row':'page-main-rows'">
<Col class="page-main-text" :xs="24" :sm="24" :xl="12" v-if="windowWidth > 1200">
<ImgView src="images/index/square.png"/>
<h3>{{$L('清晰直观的任务日历')}}</h3>
<p>{{$L('通过灵活的任务日历,轻松安排每一天的日程,把任务拆解到每天,让工作目标更清晰,时间分配更合理。')}}</p>
</Col>
<Col :class="windowWidth > 1200 ? 'page-main-img':'page-main-imgs'" :xs="24" :sm="24" :xl="12">
<ImgView :src="themeIsDark ? 'images/index/dark/5.png':'images/index/light/5.png'"/>
</Col>
<Col class="page-main-text page-main-texts" :xs="24" :sm="24" :xl="12" v-if="windowWidth <= 1200">
<h3><ImgView src="images/index/square.png"/>{{$L('清晰直观的任务日历')}}</h3>
<p>{{$L('通过灵活的任务日历,轻松安排每一天的日程,把任务拆解到每天,让工作目标更清晰,时间分配更合理。')}}</p>
</Col>
</Row>
<Row :class="windowWidth > 1200 ? 'page-main-row':'page-main-rows'">
<Col :class="windowWidth > 1200 ? 'page-main-img':'page-main-imgs'" :xs="24" :sm="24" :xl="12">
<ImgView :src="themeIsDark ? 'images/index/dark/6.png':'images/index/light/6.png'"/>
</Col>
<Col class="page-main-text" :xs="24" :sm="24" :xl="12" v-if="windowWidth > 1200">
<ImgView src="images/index/square.png"/>
<h3>{{$L('支持多平台应用')}}</h3>
<p>{{$L('多平台应用支持,打开客户端即可跟进项目任务进度, 同时让你在工作中每一个步骤都能拥有更高效愉悦的体验。')}}</p>
</Col>
<Col class="page-main-text page-main-texts" :xs="24" :sm="24" :xl="12" v-else>
<h3><ImgView src="images/index/square.png"/>{{$L('支持多平台应用')}}</h3>
<p>{{$L('多平台应用支持,打开客户端即可跟进项目任务进度, 同时让你在工作中每一个步骤都能拥有更高效愉悦的体验。')}}</p>
</Col>
</Row>
</div>
<div class="page-footer">
<div class="footer-service no-dark-content">
<div class="footer-bg-box">
<div class="box-title">{{ $L(`开启您的 ${appTitle} 团队协作`) }}</div>
<div class="buttom-box">
<div class="login-btn" @click="login">{{ $L("立即登录") }}</div>
<div class="reg-btn" @click="register">{{ $L("注册") }}</div>
</div>
</div>
</div>
<div class="footer-copyright" v-if="homeFooter" v-html="homeFooter"></div>
</div>
</div>
<!--更新日志-->
<UpdateLog v-model="uplogShow" :update-log="showItem.updateLog" :update-ver="showItem.updateVer"/>
</div>
</template>
<script>
import {mapState} from "vuex";
import {languageList, languageType, setLanguage} from "../language";
import UpdateLog from "./manage/components/UpdateLog";
import {languageType} from "../language";
export default {
components: {UpdateLog},
data() {
return {
languageList,
languageType,
showItem: {
pro: false,
github: '',
updateLog: '',
updateVer: ''
},
needStartHome: false,
homeFooter: '',
uplogShow: false,
};
return {}
},
computed: {
...mapState(['themeMode', 'themeIsDark', 'themeList',]),
computed: {
isSoftware() {
return this.$Electron || this.$isEEUiApp;
},
currentLanguage() {
return languageList[languageType] || "Language";
},
appTitle() {
return window.systemInfo.title || "DooTask";
},
},
mounted() {
@ -271,79 +31,40 @@ export default {
},
activated() {
this.getShowItem();
this.getNeedStartHome();
this.start();
},
methods: {
onPro() {
this.goForward({name: 'pro'});
},
setTheme(mode) {
this.$store.dispatch("setTheme", mode)
},
login() {
if (this.userId > 0) {
this.goForward({name: 'manage-dashboard'}, true);
} else {
this.goForward({name: 'login'}, true);
}
},
register() {
this.goForward({name: 'login', query: {type: "reg"}});
},
windowOpen(url) {
window.open(url)
},
getShowItem() {
this.$store.dispatch("call", {
url: "system/get/showitem",
spinner: 1000
}).then(({data}) => {
this.showItem = data
}).catch(_ => {
this.showItem = {}
});
},
getNeedStartHome() {
start() {
if (this.isSoftware) {
this.needStartHome = false;
if (this.userId > 0) {
this.goForward({name: 'manage-dashboard'}, true);
} else {
this.goForward({name: 'login'}, true);
}
this.goNext()
return;
}
//
this.$store.dispatch("showSpinner", 1000)
this.$store.dispatch("needHome").then(({home_footer}) => {
this.needStartHome = true;
this.homeFooter = home_footer;
this.$store.dispatch("needHome").then(_ => {
this.goIndex();
}).catch(_ => {
this.needStartHome = false;
this.goNext();
}).finally(_ => {
this.$store.dispatch("hiddenSpinner")
});
},
goIndex() {
if (languageType === "zh" || languageType === "zh-CHT") {
window.location.href = $A.apiUrl("../site/zh/index.html")
} else {
window.location.href = $A.apiUrl("../site/en/index.html")
}
},
goNext() {
if (this.userId > 0) {
this.goForward({name: 'manage-dashboard'}, true);
} else {
this.goForward({name: 'login'}, true);
}
},
onLanguage(l) {
setLanguage(l)
}
},
};

View File

@ -1,54 +0,0 @@
<template>
<Modal
v-model="uplogShow"
:fullscreen="uplogFull"
class-name="update-log">
<div slot="header">
<div class="uplog-head">
<div class="uplog-title">{{$L('更新日志')}}</div>
<Tag v-if="updateVer" color="volcano">{{updateVer}}</Tag>
</div>
</div>
<Scrollbar class-name="uplog-body">
<MarkdownPreview :initialValue="updateLog"/>
</Scrollbar>
<div slot="footer" class="adaption">
<Button type="default" @click="uplogFull=!uplogFull">{{$L(uplogFull ? '缩小查看' : '全屏查看')}}</Button>
</div>
</Modal>
</template>
<script>
import MarkdownPreview from "../../../components/MDEditor/components/preview";
export default {
name: 'UpdateLog',
components: {MarkdownPreview},
props: {
value:{
type: Boolean,
default: false
},
updateVer: {},
updateLog: {},
},
data() {
return {
uplogShow: false,
uplogFull: false
}
},
watch: {
value: {
handler(val) {
this.uplogShow = val
},
immediate: true
},
uplogShow(val) {
this.$emit("input", val)
}
},
}
</script>

View File

@ -150,14 +150,6 @@
<Radio label="close">{{$L('关闭')}}</Radio>
</RadioGroup>
<div class="form-tip">{{$L('仅支持网页版。')}}</div>
<Input
v-if="formDatum.start_home == 'open'"
v-model="formDatum.home_footer"
type="textarea"
style="margin:8px 0 -8px"
:rows="2"
:autosize="{ minRows: 2, maxRows: 8 }"
:placeholder="$L('首页底部:首页底部网站备案号等信息')"/>
</FormItem>
</div>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -94,12 +94,8 @@ export default {
state.apiKeyData = data;
})
// 系统设置
dispatch("call", {
url: 'system/setting',
}).then(({data}) => {
state.systemConfig = data;
})
// 获取系统设置
dispatch("systemSetting")
// 加载语言包
await $A.loadScriptS([
@ -328,6 +324,43 @@ export default {
})
},
/**
* 获取系统设置
* @param dispatch
* @param state
* @returns {Promise<unknown>}
*/
systemSetting({dispatch, state}) {
return new Promise((resolve, reject) => {
switch (state.systemConfig.__state) {
case "success":
resolve(state.systemConfig)
break
case "loading":
setTimeout(_ => {
dispatch("systemSetting").then(resolve).catch(reject)
}, 100)
break
default:
state.systemConfig.__state = "loading"
dispatch("call", {
url: "system/setting",
}).then(({data}) => {
state.systemConfig = Object.assign(data, {
__state: "success",
})
resolve(state.systemConfig)
}).catch(_ => {
state.systemConfig.__state = "error"
reject()
});
break
}
})
},
/**
* 是否启用首页
* @param dispatch
@ -336,11 +369,9 @@ export default {
*/
needHome({dispatch, state}) {
return new Promise((resolve, reject) => {
dispatch("call", {
url: "system/get/starthome",
}).then(({data}) => {
if (!!data.need_start) {
resolve(data)
dispatch("systemSetting").then(data => {
if (data.start_home === 'open') {
resolve()
} else {
reject()
}

View File

@ -7,6 +7,5 @@
@import "page-messenger";
@import "page-project";
@import "page-setting";
@import "page-index";
@import "page-approve";
@import "components/_";

View File

@ -1,404 +0,0 @@
.page-index {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: auto;
.page-warp {
max-width: 1920px;
margin: 0 auto;
.page-header {
width: 100%;
background: $primary-color;
position: relative;
padding-bottom: 40px;
.header-nav {
max-width: 1200px;
height: 72px;
margin: auto;
display: flex;
justify-content: space-between;
.header-nav-box {
display: flex;
align-items: center;
padding-left: 20px;
color: #ffffff;
font-weight: 400;
position: relative;
.logo {
width: 143px;
height: 36px;
background: url("../images/logo-index.svg") no-repeat center center;
background-size: contain;
}
.header-right-pro {
margin-left: 28px;
padding: 0 10px;
font-size: 12px;
color: #f6ca9d;
background: #1d1e23;
background: linear-gradient(90deg, #1d1e23, #3f4045);
border: 0;
}
.header-right-github {
margin-left: 28px;
font-size: 24px;
display: flex;
align-items: center;
cursor: pointer;
color: #ffffff;
}
.header-right-uplog {
margin-left: 28px;
font-size: 16px;
cursor: pointer;
}
.header-right-1 {
margin-left: 28px;
display: flex;
.header-right-1-dropdown {
color: #ffffff;
font-size: 16px;
}
}
.header-right-2 {
font-size: 16px;
margin-left: 28px;
cursor: pointer;
.header-right-2-dropdown {
color: #ffffff;
font-size: 16px;
}
}
.header-right-3 {
font-size: 16px;
margin: 0 28px;
cursor: pointer;
}
.header-right-4 {
font-size: 16px;
min-width: 100px;
height: 36px;
background: #ffa25a;
border-radius: 4px;
text-align: center;
line-height: 36px;
cursor: pointer;
padding: 0 10px 0 10px;
}
.header-right-5 {
margin-left: 28px;
}
}
.header-nav-boxs {
justify-content: flex-end;
padding-right: 20px;
.header-nav-more {
color: #fff;
font-size: 36px;
}
.header-nav-dropdown-item {
display: flex;
align-items: center;
justify-content: space-between;
}
}
}
.header-content {
max-width: 1200px;
margin: 0 auto;
.header-title {
font-size: 44px;
font-weight: 500;
color: #ffffff;
line-height: 67px;
text-align: center;
}
.header-title-one {
font-size: 48px;
margin-top: 40px;
}
.header-tips {
font-size: 22px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
text-align: center;
padding: 0 30px;
margin: 22px auto 0;
max-width: 88%;
}
.login-buttom {
width: 150px;
height: 48px;
background: #ffa25a;
border-radius: 8px;
font-size: 18px;
font-weight: 500;
color: #ffffff;
line-height: 48px;
text-align: center;
margin: 34px auto 0;
cursor: pointer;
}
}
}
.page-header-bottom {
position: relative;
background: #FFFFFF url("../images/index/bg-bottom.svg") no-repeat;
background-size: 100%;
margin-bottom: 160px;
margin-top: -2px;
.page-header-bottoms {
max-width: 1200px;
margin: auto;
top: 0;
left: 0;
right: 0;
img {
display: block;
margin: auto;
width: 92%;
}
}
}
.page-main {
max-width: 1200px;
margin: auto;
.page-main-row {
margin-bottom: 150px;
}
.page-main-rows {
margin-bottom: 140px;
}
.page-main-img {
img {
width: 100%;
}
}
.page-main-imgs {
img {
display: block;
width: 90%;
margin: auto;
}
}
.page-main-text {
padding-left: 60px;
padding-top: 120px;
h3 {
font-size: 32px;
font-weight: 500;
color: $primary-title-color;
line-height: 45px;
margin-bottom: 17px;
}
p {
font-size: 18px;
font-weight: 400;
color: #828282;
line-height: 28px;
padding-right: 70px;
}
}
.page-main-texts {
padding-top: 40px;
h3 {
display: flex;
align-items: center;
font-size: 30px;
img {
margin-right: 10px;
}
}
p {
font-size: 16px;
}
}
}
.page-footer {
.footer-service {
width: 100%;
height: 188px;
background-color: #ffa25a;
position: relative;
.footer-bg-box {
overflow: hidden;
width: 100%;
height: 188px;
.box-title {
height: 45px;
font-size: 16px;
font-weight: 500;
color: #ffffff;
line-height: 45px;
text-align: center;
margin: 33px 0 22px 0;
}
.buttom-box {
display: flex;
justify-content: center;
.login-btn {
width: 150px;
height: 48px;
background: #ffffff;
border-radius: 8px;
font-size: 14px;
font-weight: 500;
color: #ffa25a;
line-height: 48px;
text-align: center;
margin-right: 20px;
cursor: pointer;
}
.reg-btn {
width: 150px;
height: 48px;
border-radius: 8px;
border: 1px solid #ffffff;
font-size: 14px;
font-weight: 500;
color: #ffffff;
line-height: 48px;
text-align: center;
cursor: pointer;
}
}
}
}
.footer-copyright {
background: #fff;
color: #828282;
font-size: 12px;
font-weight: 400;
padding: 20px;
line-height: 20px;
text-align: center;
width: 100%;
}
}
}
}
@media screen and (max-width: 1440px) {
.page-index {
.page-warp {
.page-header {
.header-content {
.header-title {
font-size: 34px;
line-height: 60px;
}
.header-title-one {
font-size: 40px;
}
.header-tips {
font-size: 20px;
padding: 0 20px;
}
}
}
.page-header-bottom {
margin-bottom: 80px;
}
.page-main {
.page-main-text {
padding-left: 20px;
padding-top: 80px;
p {
padding-right: 20px;
}
}
.page-main-texts {
h3 {
font-size: 24px;
img {
width: 24px;
}
}
p {
font-size: 14px;
}
}
}
}
}
}
@media screen and (max-width: 468px) {
.page-index {
.page-warp {
.page-header {
.header-content {
.header-title {
font-size: 24px;
line-height: 38px;
}
.header-title-one {
font-size: 28px;
}
.header-tips {
font-size: 16px;
line-height: 26px;
}
}
}
}
}
}