Merge branch 'master' of http://182.92.169.222:3000/wangjiadong/knowledge
commit
2e0e7e8261
12 changed files with 874 additions and 207 deletions
@ -1,96 +1,100 @@ |
|||||||
<template> |
<template> |
||||||
<div class="configuration-page"> |
<div class="configuration-page"> |
||||||
<el-form :model="form" label-width="auto" style="max-width: 600px"> |
<el-form :model="form" label-width="auto" style="max-width: 600px"> |
||||||
<el-form-item label="LOGO"> |
<el-form-item label="LOGO"> |
||||||
<my-update v-model="form.logo"></my-update> |
<my-update v-model="form.logo"></my-update> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="项目名称"> |
<el-form-item label="项目名称"> |
||||||
<el-input v-model="form.name" /> |
<el-input v-model="form.name" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="门户头部宣传大图"> |
<el-form-item label="门户头部宣传大图"> |
||||||
<my-update v-model="form.promotionalImages"></my-update> |
<my-update v-model="form.promotionalImages"></my-update> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="门户首页"> |
<el-form-item label="门户首页"> |
||||||
<el-input v-model="form.home" /> |
<el-input v-model="form.home" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="后台登陆首页地址"> |
<el-form-item label="后台登陆首页地址"> |
||||||
<el-input v-model="form.loginAddress" /> |
<el-input v-model="form.loginAddress" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="系统标题"> |
<el-form-item label="系统标题"> |
||||||
<el-input v-model="form.title" /> |
<el-input v-model="form.title" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="版权信息"> |
<el-form-item label="版权信息"> |
||||||
<el-input v-model="form.copyrightInformation" /> |
<el-input v-model="form.copyrightInformation" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="备案号"> |
<el-form-item label="备案号"> |
||||||
<el-input v-model="form.recordNumber" /> |
<el-input v-model="form.recordNumber" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="备案号信息"> |
<el-form-item label="备案号信息"> |
||||||
<el-input v-model="form.recordInformation" type="textarea" /> |
<el-input v-model="form.recordInformation" type="textarea" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="qq"> |
<el-form-item label="qq"> |
||||||
<el-input v-model="form.qqNumber" /> |
<el-input v-model="form.qqNumber" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="邮箱"> |
<el-form-item label="邮箱"> |
||||||
<el-input v-model="form.mailbox" /> |
<el-input v-model="form.mailbox" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="电话"> |
<el-form-item label="电话"> |
||||||
<el-input v-model="form.phone" /> |
<el-input v-model="form.phone" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="联系地址"> |
<el-form-item label="联系地址"> |
||||||
<el-input v-model="form.address" /> |
<el-input v-model="form.address" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="二维码"> |
<el-form-item label="二维码"> |
||||||
<my-update v-model="form.qrCode"></my-update> |
<my-update v-model="form.qrCode"></my-update> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item> |
<el-form-item> |
||||||
<el-button type="primary" @click="onSubmit">保存</el-button> |
<el-button type="primary" @click="onSubmit">保存</el-button> |
||||||
</el-form-item> |
</el-form-item> |
||||||
</el-form> |
</el-form> |
||||||
</div> |
</div> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang="ts" setup> |
<script lang="ts" setup> |
||||||
import { getSysSettingApi, proxPutSysSettingApi, uploadApi } from '@/api/configuration'; |
import { |
||||||
|
getSysSettingApi, |
||||||
|
proxPutSysSettingApi, |
||||||
|
uploadApi, |
||||||
|
} from '@/api/configuration' |
||||||
import { ref, reactive } from 'vue' |
import { ref, reactive } from 'vue' |
||||||
import MyUpdate from './MyUpdate.vue'; |
import MyUpdate from './MyUpdate.vue' |
||||||
import useUserStore from '@/store/modules/user'; |
import useUserStore from '@/store/modules/user' |
||||||
const userStore = useUserStore() |
const userStore = useUserStore() |
||||||
|
|
||||||
// do not use same name with ref |
// do not use same name with ref |
||||||
const form = reactive({ |
const form = reactive({ |
||||||
address: '', |
address: '', |
||||||
copyrightInformation: '', |
copyrightInformation: '', |
||||||
id: userStore.data.id, |
id: userStore.data.id, |
||||||
loginAddress: '', |
loginAddress: '', |
||||||
logo: '', |
logo: '', |
||||||
name: '', |
name: '', |
||||||
phone: '', |
phone: '', |
||||||
promotionalImages: '', |
promotionalImages: '', |
||||||
qqNumber: '', |
qqNumber: '', |
||||||
qrCode: '', |
qrCode: '', |
||||||
recordNumber: '', |
recordNumber: '', |
||||||
title: '', |
title: '', |
||||||
mailbox: '', |
mailbox: '', |
||||||
home: '', |
home: '', |
||||||
recordInformation: '' |
recordInformation: '', |
||||||
}) |
}) |
||||||
|
|
||||||
const ran = ref(false) |
const ran = ref(false) |
||||||
getSysSettingApi().then((res) => { |
getSysSettingApi().then((res) => { |
||||||
Object.assign(form, res.data) |
Object.assign(form, res.data) |
||||||
ran.value = true |
ran.value = true |
||||||
}) |
}) |
||||||
const onSubmit = async () => { |
const onSubmit = async () => { |
||||||
form.logo = await uploadApi(form.logo) |
form.logo = await uploadApi(form.logo) |
||||||
form.promotionalImages = await uploadApi(form.promotionalImages) |
form.promotionalImages = await uploadApi(form.promotionalImages) |
||||||
form.qrCode = await uploadApi(form.qrCode) |
form.qrCode = await uploadApi(form.qrCode) |
||||||
await proxPutSysSettingApi(form) |
await proxPutSysSettingApi(form) |
||||||
} |
} |
||||||
</script> |
</script> |
||||||
<style lang="scss" scoped> |
<style lang="scss" scoped> |
||||||
.configuration-page { |
.configuration-page { |
||||||
width: 600px; |
width: 600px; |
||||||
margin: auto; |
margin: auto; |
||||||
} |
} |
||||||
</style> |
</style> |
@ -1,14 +1,172 @@ |
|||||||
<template> |
<template> |
||||||
<div> |
<div class="container"> |
||||||
点赞记录 |
<el-card> |
||||||
</div> |
<el-form :inline="true" :model="formInline" class="demo-form-inline"> |
||||||
|
<el-form-item label="课程名称"> |
||||||
|
<el-input |
||||||
|
v-model="formInline.user" |
||||||
|
placeholder="请输入课程名称" |
||||||
|
clearable |
||||||
|
style="width: 300px" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
|
||||||
|
<el-form-item label="日期"> |
||||||
|
<el-date-picker |
||||||
|
v-model="formInline.date" |
||||||
|
type="date" |
||||||
|
placeholder="请选择日期" |
||||||
|
clearable |
||||||
|
style="width: 300px" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
:loading="inquireLoading" |
||||||
|
@click="handleInquire" |
||||||
|
> |
||||||
|
查询 |
||||||
|
</el-button> |
||||||
|
<el-button |
||||||
|
type="danger" |
||||||
|
v-if="selectID.length" |
||||||
|
@click="deleteSelected" |
||||||
|
> |
||||||
|
批量删除 |
||||||
|
</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
</el-card> |
||||||
|
<el-card style="margin-top: 20px; height: calc(100vh - 200px); width: 100%"> |
||||||
|
<el-table |
||||||
|
:data="recordList" |
||||||
|
border |
||||||
|
style="width: 100%" |
||||||
|
@selection-change="selectionChange" |
||||||
|
> |
||||||
|
<el-table-column type="selection" width="55" /> |
||||||
|
<el-table-column type="index" width="55" label="序号" /> |
||||||
|
<el-table-column prop="courseName" label="课程名称" /> |
||||||
|
<el-table-column prop="number" label="点赞人数" /> |
||||||
|
<el-table-column prop="time" label="时间" /> |
||||||
|
<el-table-column label="操作"> |
||||||
|
<template #default="{ row }"> |
||||||
|
<el-button type="danger" link @click="onDeleteRecord(row.id)"> |
||||||
|
删除 |
||||||
|
</el-button> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
</el-table> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang='ts' setup> |
<script lang="ts" setup> |
||||||
import { onMounted, reactive, ref, toRefs, watch } from 'vue' |
import { reactive, ref } from 'vue' |
||||||
|
import useUserStore from '@/store/modules/user' |
||||||
|
import { ElMessageBox, ElMessage } from 'element-plus' |
||||||
|
import { useRouter } from 'vue-router' |
||||||
|
|
||||||
|
const router = useRouter() |
||||||
|
|
||||||
|
const userStore = useUserStore() |
||||||
|
const formInline = reactive({ |
||||||
|
user: '', |
||||||
|
region: '', |
||||||
|
date: '', |
||||||
|
}) |
||||||
|
const inquireLoading = ref(false) |
||||||
|
function handleInquire() { |
||||||
|
inquireLoading.value = true |
||||||
|
setTimeout(() => { |
||||||
|
inquireLoading.value = false |
||||||
|
ElMessage({ |
||||||
|
type: 'success', |
||||||
|
message: '查询成功', |
||||||
|
}) |
||||||
|
}, Math.random() * 1000) |
||||||
|
} |
||||||
|
const recordList = ref([ |
||||||
|
{ |
||||||
|
courseId: 'de3100cad98f76be3176dd39aa748a9e', |
||||||
|
courseName: '离散数学及其应用', |
||||||
|
id: '1818126244841295873', |
||||||
|
img: '', |
||||||
|
number: 5, |
||||||
|
time: '2024-07-30 11:27:30', |
||||||
|
userId: '2', |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: '1818114181813293057', |
||||||
|
courseId: '2fa0fd63262230639d2c45a3acd9045c', |
||||||
|
courseName: '计算机导论12', |
||||||
|
userId: '2', |
||||||
|
number: 2, |
||||||
|
img: '', |
||||||
|
time: '2024-07-30 10:39:34', |
||||||
|
}, |
||||||
|
]) |
||||||
|
const params = ref({ |
||||||
|
pagesize: 10, |
||||||
|
pagenum: '1', |
||||||
|
userId: userStore.data.id, |
||||||
|
}) |
||||||
|
const total = ref(0) |
||||||
|
|
||||||
|
//删除浏览记录逻辑 |
||||||
|
const onDeleteRecord = async (ids: any) => { |
||||||
|
await ElMessageBox.confirm('你确认删除该条浏览信息吗?', '温馨提示', { |
||||||
|
type: 'warning', |
||||||
|
confirmButtonText: '确认', |
||||||
|
cancelButtonText: '取消', |
||||||
|
}) |
||||||
|
} |
||||||
|
const selectID = ref([]) |
||||||
|
const selectionChange = (e: { map: (arg0: (item: any) => any) => never[] }) => { |
||||||
|
if (e) { |
||||||
|
selectID.value = e.map((item: { id: any }) => item.id) |
||||||
|
console.log(selectID.value) |
||||||
|
} |
||||||
|
} |
||||||
|
const deleteSelected = async () => { |
||||||
|
//判断数组是否为空 |
||||||
|
if (selectID.value.length === 0) { |
||||||
|
await ElMessageBox.confirm('请选择你要删除的内容', '温馨提示', { |
||||||
|
type: 'warning', |
||||||
|
confirmButtonText: '确认', |
||||||
|
}) |
||||||
|
return |
||||||
|
} |
||||||
|
await ElMessageBox.confirm('你确认删除浏览记录吗?', '温馨提示', { |
||||||
|
type: 'warning', |
||||||
|
confirmButtonText: '确认', |
||||||
|
cancelButtonText: '取消', |
||||||
|
}) |
||||||
|
} |
||||||
</script> |
</script> |
||||||
|
|
||||||
<style lang='scss' scoped> |
<style lang="scss" scoped> |
||||||
|
.container { |
||||||
|
position: relative; |
||||||
|
width: 100%; |
||||||
|
|
||||||
|
// height: calc(100vh - 100px); |
||||||
|
.pagination { |
||||||
|
position: absolute; |
||||||
|
bottom: 20px; |
||||||
|
left: 50%; |
||||||
|
transform: translateX(-50%); |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
:deep(.el-form-item) { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
|
||||||
|
:deep(.el-scrollbar__wrap) { |
||||||
|
padding: 0; |
||||||
|
} |
||||||
</style> |
</style> |
||||||
|
@ -0,0 +1,81 @@ |
|||||||
|
<template> |
||||||
|
<div class="footer"> |
||||||
|
<ul> |
||||||
|
<li> |
||||||
|
系统标题: |
||||||
|
{{ adminInfoStore.info.title }} |
||||||
|
|
||||||
|
</li><el-divider direction="vertical" border-style="dashed" /> |
||||||
|
<li> |
||||||
|
版权信息: |
||||||
|
{{ adminInfoStore.info.copyrightInformation }} |
||||||
|
|
||||||
|
</li> <el-divider direction="vertical" border-style="dashed" /> |
||||||
|
<li> |
||||||
|
备案号: |
||||||
|
{{ adminInfoStore.info.recordNumber }} |
||||||
|
|
||||||
|
</li> <el-divider direction="vertical" border-style="dashed" /> |
||||||
|
<li> |
||||||
|
qq: |
||||||
|
{{ adminInfoStore.info.qqNumber }} |
||||||
|
|
||||||
|
</li><el-divider direction="vertical" border-style="dashed" /> |
||||||
|
<li> |
||||||
|
邮箱: |
||||||
|
{{ adminInfoStore.info.mailbox }} |
||||||
|
|
||||||
|
</li> <el-divider direction="vertical" border-style="dashed" /> |
||||||
|
<li> |
||||||
|
电话: |
||||||
|
{{ adminInfoStore.info.phone }} |
||||||
|
|
||||||
|
</li> |
||||||
|
<li> |
||||||
|
地址: |
||||||
|
{{ adminInfoStore.info.address }} |
||||||
|
</li> |
||||||
|
<el-divider direction="vertical" border-style="dashed" /> |
||||||
|
<li> |
||||||
|
<el-image style="width: 50px; height: 50px" :src="adminInfoStore.info.qrCode" fit="cover" /> |
||||||
|
</li> |
||||||
|
<el-divider direction="vertical" border-style="dashed" /> |
||||||
|
<li> |
||||||
|
备案信息: |
||||||
|
{{ adminInfoStore.info.recordInformation }} |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts" setup> |
||||||
|
import useAdminInfoStore from '@/store/module/adminInfo' |
||||||
|
const adminInfoStore = useAdminInfoStore() |
||||||
|
console.log(adminInfoStore); |
||||||
|
|
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.footer { |
||||||
|
background-color: #252527; |
||||||
|
height: 300px; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
|
||||||
|
ul { |
||||||
|
width: 600px; |
||||||
|
height: 200px; |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
color: #ccc; |
||||||
|
font-family:'Courier New', Courier, monospace; |
||||||
|
// background: linear-gradient(white,#38495a); |
||||||
|
// background-clip: text; |
||||||
|
// color: transparent; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
</style> |
@ -1,81 +1,312 @@ |
|||||||
<template> |
|
||||||
<div class="footer"> |
|
||||||
<ul> |
|
||||||
<li> |
|
||||||
系统标题: |
|
||||||
{{ adminInfoStore.info.title }} |
|
||||||
|
|
||||||
</li><el-divider direction="vertical" border-style="dashed" /> |
|
||||||
<li> |
|
||||||
版权信息: |
|
||||||
{{ adminInfoStore.info.copyrightInformation }} |
|
||||||
|
|
||||||
</li> <el-divider direction="vertical" border-style="dashed" /> |
|
||||||
<li> |
|
||||||
备案号: |
|
||||||
{{ adminInfoStore.info.recordNumber }} |
|
||||||
|
|
||||||
</li> <el-divider direction="vertical" border-style="dashed" /> |
|
||||||
<li> |
|
||||||
qq: |
|
||||||
{{ adminInfoStore.info.qqNumber }} |
|
||||||
|
|
||||||
</li><el-divider direction="vertical" border-style="dashed" /> |
|
||||||
<li> |
|
||||||
邮箱: |
|
||||||
{{ adminInfoStore.info.mailbox }} |
|
||||||
|
|
||||||
</li> <el-divider direction="vertical" border-style="dashed" /> |
|
||||||
<li> |
|
||||||
电话: |
|
||||||
{{ adminInfoStore.info.phone }} |
|
||||||
|
|
||||||
</li> |
|
||||||
<li> |
|
||||||
地址: |
|
||||||
{{ adminInfoStore.info.address }} |
|
||||||
</li> |
|
||||||
<el-divider direction="vertical" border-style="dashed" /> |
|
||||||
<li> |
|
||||||
<el-image style="width: 50px; height: 50px" :src="adminInfoStore.info.qrCode" fit="cover" /> |
|
||||||
</li> |
|
||||||
<el-divider direction="vertical" border-style="dashed" /> |
|
||||||
<li> |
|
||||||
备案信息: |
|
||||||
{{ adminInfoStore.info.recordInformation }} |
|
||||||
</li> |
|
||||||
</ul> |
|
||||||
</div> |
|
||||||
</template> |
|
||||||
|
|
||||||
<script lang="ts" setup> |
<script lang="ts" setup> |
||||||
|
import { ref } from "vue"; |
||||||
import useAdminInfoStore from '@/store/module/adminInfo' |
import useAdminInfoStore from '@/store/module/adminInfo' |
||||||
const adminInfoStore = useAdminInfoStore() |
const adminInfoStore = useAdminInfoStore() |
||||||
console.log(adminInfoStore); |
const info = adminInfoStore.info; |
||||||
|
|
||||||
|
const footer = ref(null) |
||||||
|
|
||||||
|
function handleDark() { |
||||||
|
// @ts-ignore |
||||||
|
footer.value.classList.toggle('dark__mode') |
||||||
|
isShow.value = !isShow.value |
||||||
|
} |
||||||
|
const isShow = ref(false) |
||||||
</script> |
</script> |
||||||
|
|
||||||
|
<template> |
||||||
|
<footer ref="footer" class="dark__mode"> |
||||||
|
<div class="container"> |
||||||
|
<div class="container__footer"> |
||||||
|
<div class="profil"> |
||||||
|
<div class="logo__area"> |
||||||
|
<img src="../../assets/images/LOGO.png" alt=""> |
||||||
|
<span class="logo__name">LESSON</span> |
||||||
|
<button v-show="isShow" @click="handleDark" class="moon"><i class='bx bxs-moon'></i></button> |
||||||
|
<button v-show="!isShow" @click="handleDark" class="sun"><i class='bx bxs-sun'></i></button> |
||||||
|
</div> |
||||||
|
<div class="desc__area"> |
||||||
|
<p> |
||||||
|
Thanks for using the integrated teaching portal system |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
<div class="social__media"> |
||||||
|
<i class='bx bxl-linkedin-square'></i> |
||||||
|
<i class='bx bxl-facebook-square'></i> |
||||||
|
<i class='bx bxl-instagram-alt'></i> |
||||||
|
<i class='bx bxl-github'></i> |
||||||
|
<!-- <i> |
||||||
|
<svg class="svg"> |
||||||
|
<use :xlink:href="'#icon-QQ'"></use> |
||||||
|
</svg> |
||||||
|
</i> --> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="service__area"> |
||||||
|
<ul class="service__header"> |
||||||
|
<li class="service__name">Information</li> |
||||||
|
<li> |
||||||
|
<i> |
||||||
|
系统标题:{{ info.title }} |
||||||
|
</i> |
||||||
|
</li> |
||||||
|
<li> |
||||||
|
<i> |
||||||
|
版权信息:{{ info.copyrightInformation }} |
||||||
|
</i> |
||||||
|
</li> |
||||||
|
<li> |
||||||
|
<i> |
||||||
|
备案号:{{ info.recordNumber }} |
||||||
|
</i> |
||||||
|
</li> |
||||||
|
<li> |
||||||
|
<i> |
||||||
|
备案信息:{{ info.recordInformation }} |
||||||
|
</i> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
<ul class="service__header"> |
||||||
|
<li class="service__name">Relation</li> |
||||||
|
<li> |
||||||
|
<i> |
||||||
|
邮箱:{{ info.mailbox }} |
||||||
|
</i> |
||||||
|
</li> |
||||||
|
<li> |
||||||
|
<i> |
||||||
|
电话:{{ info.phone }} |
||||||
|
</i> |
||||||
|
</li> |
||||||
|
<li> |
||||||
|
<i> |
||||||
|
QQ:{{ info.qqNumber }} |
||||||
|
</i> |
||||||
|
</li> |
||||||
|
<li> |
||||||
|
<i> |
||||||
|
地址:{{ info.address }} |
||||||
|
</i> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<hr> |
||||||
|
<!-- <div class="footer__bottom"> |
||||||
|
<div class="copy__right"> |
||||||
|
<i class='bx bxs-copyright'></i> |
||||||
|
<span>2024 ayprojex</span> |
||||||
|
</div> |
||||||
|
<div class="tou"> |
||||||
|
<i>Term of Use</i> |
||||||
|
<i>Privacy Policy</i> |
||||||
|
<i>Cookie</i> |
||||||
|
</div> |
||||||
|
</div> --> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</template> |
||||||
|
|
||||||
<style lang="scss" scoped> |
<style lang="scss" scoped> |
||||||
.footer { |
@import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap'); |
||||||
background-color: #252527; |
|
||||||
height: 300px; |
.svg { |
||||||
display: flex; |
width: 24px; |
||||||
align-items: center; |
height: 25px; |
||||||
justify-content: center; |
} |
||||||
|
|
||||||
ul { |
.dark__mode { |
||||||
width: 600px; |
--primary-color: #000; |
||||||
height: 200px; |
--secondary-color: #fff; |
||||||
display: flex; |
} |
||||||
|
|
||||||
|
footer { |
||||||
|
--primary-color: #fff; |
||||||
|
--secondary-color: #000; |
||||||
|
background-color: var(--primary-color); |
||||||
|
box-shadow: 0 16px 70px -8px rgba(0, 0, 0, 0.25); |
||||||
|
border-radius: 20px 20px 0 0; |
||||||
|
transition: background 0.3s linear; |
||||||
|
|
||||||
|
.container { |
||||||
|
max-width: 1240px; |
||||||
|
padding: 30px 40px; |
||||||
|
margin: auto; |
||||||
|
|
||||||
|
.container__footer { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
margin-bottom: 1em; |
||||||
|
|
||||||
|
.profil { |
||||||
|
.logo__area { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
margin-bottom: 1em; |
||||||
|
|
||||||
|
.logo__name { |
||||||
|
font-size: 1.5em; |
||||||
|
font-weight: 700; |
||||||
|
margin: 0 1em; |
||||||
|
color: var(--secondary-color); |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
width: 35px; |
||||||
|
height: 35px; |
||||||
|
border-radius: 50%; |
||||||
|
border: 1px solid var(--primary-color); |
||||||
|
} |
||||||
|
|
||||||
|
button { |
||||||
|
border: none; |
||||||
|
outline: none; |
||||||
|
background-color: transparent; |
||||||
|
font-size: 15px; |
||||||
|
cursor: pointer; |
||||||
|
|
||||||
|
&.sun { |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.desc__area { |
||||||
|
max-width: 320px; |
||||||
|
margin-bottom: 1.25em; |
||||||
|
|
||||||
|
p { |
||||||
|
color: #828282; |
||||||
|
font-weight: 400; |
||||||
|
line-height: 1.8; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.social__media { |
||||||
|
// display: flex; |
||||||
|
|
||||||
|
i { |
||||||
|
color: #828282; |
||||||
|
margin-right: 22px; |
||||||
|
font-size: 24px; |
||||||
|
|
||||||
|
// &:hover { |
||||||
|
// color: #313131; |
||||||
|
// } |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.service__area { |
||||||
|
display: flex; |
||||||
|
|
||||||
|
.service__header { |
||||||
|
margin-right: 40px; |
||||||
|
|
||||||
|
li.service__name { |
||||||
|
color: var(--secondary-color); |
||||||
|
font-weight: 600; |
||||||
|
} |
||||||
|
|
||||||
|
li { |
||||||
|
margin-bottom: 10px; |
||||||
|
|
||||||
|
i { |
||||||
|
color: #828282; |
||||||
|
margin-bottom: 1px; |
||||||
|
font-weight: 400; |
||||||
|
|
||||||
|
// &:hover { |
||||||
|
// color: #313131; |
||||||
|
// } |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
hr { |
||||||
|
height: 1px; |
||||||
|
border: none; |
||||||
|
background-color: #828282; |
||||||
|
margin-bottom: 1em; |
||||||
|
} |
||||||
|
|
||||||
|
.footer__bottom { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
font-size: 0.857em; |
||||||
|
|
||||||
|
.copy__right { |
||||||
|
color: #828282; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
|
||||||
|
span { |
||||||
|
margin-left: 8px; |
||||||
|
font-weight: 400; |
||||||
|
letter-spacing: 0.135em; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.tou { |
||||||
|
i { |
||||||
|
color: #828282; |
||||||
|
margin-left: 1.5em; |
||||||
|
|
||||||
|
// &:hover { |
||||||
|
// color: #313131; |
||||||
|
// } |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (max-width:768px) { |
||||||
|
|
||||||
|
.container__footer, |
||||||
|
.service__area { |
||||||
|
flex-wrap: wrap; |
||||||
|
justify-content: left; |
||||||
|
} |
||||||
|
|
||||||
|
.service__header { |
||||||
|
margin-left: 0; |
||||||
|
margin-right: 40px; |
||||||
|
} |
||||||
|
|
||||||
|
.social_media { |
||||||
|
margin-bottom: 1em; |
||||||
|
} |
||||||
|
|
||||||
|
.footer_bottom { |
||||||
flex-wrap: wrap; |
flex-wrap: wrap; |
||||||
align-items: center; |
|
||||||
justify-content: center; |
justify-content: center; |
||||||
color: #ccc; |
|
||||||
font-family:'Courier New', Courier, monospace; |
|
||||||
// background: linear-gradient(white,#38495a); |
|
||||||
// background-clip: text; |
|
||||||
// color: transparent; |
|
||||||
} |
} |
||||||
|
} |
||||||
|
|
||||||
|
@media screen and (max-width: 510px) { |
||||||
|
.service__header { |
||||||
|
margin-bottom: 8px; |
||||||
|
} |
||||||
|
|
||||||
|
.copy__right { |
||||||
|
margin-bottom: 8px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
* { |
||||||
|
padding: 0; |
||||||
|
margin: 0; |
||||||
|
box-sizing: border-box; |
||||||
|
font-family: "Rubik", sans-serif; |
||||||
|
font-size: 16px; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
text-decoration: none; |
||||||
} |
} |
||||||
</style> |
</style> |
||||||
|
After Width: | Height: | Size: 869 B |
Loading…
Reference in new issue