|
@ -2,136 +2,180 @@ |
|
|
<div> |
|
|
<div> |
|
|
<div class="divbox"> |
|
|
<div class="divbox"> |
|
|
<div class="div-left"> |
|
|
<div class="div-left"> |
|
|
<image class="logo" src='../../imgs/logo.png' mode="widthFix"></image> |
|
|
<image |
|
|
|
|
|
class="logo" |
|
|
|
|
|
src="../../imgs/logo.png" |
|
|
|
|
|
mode="widthFix" |
|
|
|
|
|
></image> |
|
|
</div> |
|
|
</div> |
|
|
<div class="div-right"> |
|
|
<div class="div-right"> |
|
|
<h1 class="h1-title">内部会议系统</h1> |
|
|
<h1 class="h1-title">内部会议系统</h1> |
|
|
<u-form :model="form" :rules="rules" ref="uForm" label-position="top" label-width="100" |
|
|
<u-form |
|
|
class="view-form"> |
|
|
:model="form" |
|
|
|
|
|
:rules="rules" |
|
|
|
|
|
ref="uForm" |
|
|
|
|
|
label-position="top" |
|
|
|
|
|
label-width="100" |
|
|
|
|
|
class="view-form" |
|
|
|
|
|
> |
|
|
<u-form-item label="" prop="username"> |
|
|
<u-form-item label="" prop="username"> |
|
|
<view class="form-item-box"> |
|
|
<view class="form-item-box"> |
|
|
<u-input autocomplete="new-password" class="form-item-input" v-model="form.username" |
|
|
<u-input |
|
|
placeholder="请输入用户名" /> |
|
|
autocomplete="new-password" |
|
|
|
|
|
class="form-item-input" |
|
|
|
|
|
v-model="form.username" |
|
|
|
|
|
placeholder="请输入用户名" |
|
|
|
|
|
/> |
|
|
</view> |
|
|
</view> |
|
|
</u-form-item> |
|
|
</u-form-item> |
|
|
<u-form-item label="" prop="password" class="form-item-pass" style="padding-bottom: 0"> |
|
|
<u-form-item |
|
|
<view class="form-item-box" style="display: flex; align-items: center"> |
|
|
label="" |
|
|
<u-input :type="!passShow ? 'password' : ''" class="form-item-input" |
|
|
prop="password" |
|
|
autocomplete="new-password" v-model="form.password" placeholder="请输入密码" /> |
|
|
class="form-item-pass" |
|
|
<image @click="passShow = !passShow" v-if="passShow" mode="aspectFit" class="form-item-img" |
|
|
style="padding-bottom: 0" |
|
|
src="../../imgs/xyj.png" style="margin-right: 14px"></image> |
|
|
> |
|
|
<image @click="passShow = !passShow" v-else mode="aspectFit" class="form-item-img" |
|
|
<view |
|
|
src="../../imgs/xyj1.png" style="margin-right: 14px"></image> |
|
|
class="form-item-box" |
|
|
|
|
|
style="display: flex; align-items: center" |
|
|
|
|
|
> |
|
|
|
|
|
<u-input |
|
|
|
|
|
:type="!passShow ? 'password' : ''" |
|
|
|
|
|
class="form-item-input" |
|
|
|
|
|
autocomplete="new-password" |
|
|
|
|
|
v-model="form.password" |
|
|
|
|
|
placeholder="请输入密码" |
|
|
|
|
|
/> |
|
|
|
|
|
<image |
|
|
|
|
|
@click="passShow = !passShow" |
|
|
|
|
|
v-if="passShow" |
|
|
|
|
|
mode="aspectFit" |
|
|
|
|
|
class="form-item-img" |
|
|
|
|
|
src="../../imgs/xyj.png" |
|
|
|
|
|
style="margin-right: 14px" |
|
|
|
|
|
></image> |
|
|
|
|
|
<image |
|
|
|
|
|
@click="passShow = !passShow" |
|
|
|
|
|
v-else |
|
|
|
|
|
mode="aspectFit" |
|
|
|
|
|
class="form-item-img" |
|
|
|
|
|
src="../../imgs/xyj1.png" |
|
|
|
|
|
style="margin-right: 14px" |
|
|
|
|
|
></image> |
|
|
</view> |
|
|
</view> |
|
|
</u-form-item> |
|
|
</u-form-item> |
|
|
|
|
|
|
|
|
<u-form-item label="" prop="code"> |
|
|
<u-form-item label="" prop="code"> |
|
|
<view style="width:100%; display: flex;"> |
|
|
<view style="width: 100%; display: flex"> |
|
|
<view class="form-item-box" style="flex:1"> |
|
|
<view class="form-item-box" style="flex: 1"> |
|
|
<u-input autocomplete="off" class="form-item-input" v-model="form.code" |
|
|
<u-input |
|
|
placeholder="请输入验证码" /> |
|
|
autocomplete="off" |
|
|
|
|
|
class="form-item-input" |
|
|
|
|
|
v-model="form.code" |
|
|
|
|
|
placeholder="请输入验证码" |
|
|
|
|
|
/> |
|
|
</view> |
|
|
</view> |
|
|
<view class="code-imagebox" @click="getCaptchaImage()"> |
|
|
<view |
|
|
<image class='code-image' :src="codeUrl" alt=""></image> |
|
|
class="code-imagebox" |
|
|
|
|
|
@click="getCaptchaImage()" |
|
|
|
|
|
> |
|
|
|
|
|
<image |
|
|
|
|
|
class="code-image" |
|
|
|
|
|
:src="codeUrl" |
|
|
|
|
|
alt="" |
|
|
|
|
|
></image> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
</u-form-item> |
|
|
</u-form-item> |
|
|
<view @click="show = true" style="text-align: right;"> 忘记密码?</view> |
|
|
<view @click="show = true" style="text-align: right"> |
|
|
|
|
|
忘记密码?</view |
|
|
|
|
|
> |
|
|
</u-form> |
|
|
</u-form> |
|
|
|
|
|
|
|
|
<view class="log-but" @click="handleLogin"> 登录 </view> |
|
|
<view class="log-but" @click="handleLogin"> 登录 </view> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<u-modal :show="show" :content='configData' @confirm="show = false"></u-modal> |
|
|
<u-modal |
|
|
|
|
|
:show="show" |
|
|
|
|
|
:content="configData" |
|
|
|
|
|
@confirm="show = false" |
|
|
|
|
|
></u-modal> |
|
|
<u-toast ref="uToast"></u-toast> |
|
|
<u-toast ref="uToast"></u-toast> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
<script> |
|
|
<script> |
|
|
import { |
|
|
import { mapMutations, mapState } from 'vuex'; |
|
|
mapMutations, |
|
|
import { login, captchaImage, config } from '@/common/userApi'; |
|
|
mapState |
|
|
export default { |
|
|
} from "vuex"; |
|
|
name: 'SignIn', |
|
|
import { |
|
|
|
|
|
login, |
|
|
|
|
|
captchaImage, |
|
|
|
|
|
config |
|
|
|
|
|
} from "@/common/userApi"; |
|
|
|
|
|
export default { |
|
|
|
|
|
name: "SignIn", |
|
|
|
|
|
components: {}, |
|
|
components: {}, |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
show:false, |
|
|
show: false, |
|
|
codeUrl: '', // 图片验证码 |
|
|
codeUrl: '', // 图片验证码 |
|
|
passShow: false, |
|
|
passShow: false, |
|
|
form: { |
|
|
form: { |
|
|
username: "", |
|
|
username: '', |
|
|
password: "", |
|
|
password: '', |
|
|
}, |
|
|
}, |
|
|
configData:'', |
|
|
configData: '', |
|
|
rules: { |
|
|
rules: { |
|
|
username: [{ |
|
|
username: [ |
|
|
|
|
|
{ |
|
|
required: true, |
|
|
required: true, |
|
|
message: "请输入用户名", |
|
|
message: '请输入用户名', |
|
|
trigger: ["blur"], |
|
|
trigger: ['blur'], |
|
|
}], |
|
|
}, |
|
|
password: [{ |
|
|
], |
|
|
|
|
|
password: [ |
|
|
|
|
|
{ |
|
|
required: true, |
|
|
required: true, |
|
|
message: "请输入密码", |
|
|
message: '请输入密码', |
|
|
trigger: ["blur"], |
|
|
trigger: ['blur'], |
|
|
}], |
|
|
}, |
|
|
code: [{ |
|
|
], |
|
|
|
|
|
code: [ |
|
|
|
|
|
{ |
|
|
required: true, |
|
|
required: true, |
|
|
message: "请输入验证码", |
|
|
message: '请输入验证码', |
|
|
trigger: ["blur"], |
|
|
trigger: ['blur'], |
|
|
}], |
|
|
}, |
|
|
|
|
|
], |
|
|
}, |
|
|
}, |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
computed: { |
|
|
computed: { |
|
|
...mapState("ht", ["reportId"]), |
|
|
...mapState('ht', ['reportId']), |
|
|
}, |
|
|
}, |
|
|
created() { |
|
|
created() { |
|
|
this.getCaptchaImage() // 获取验证码 |
|
|
this.getCaptchaImage(); // 获取验证码 |
|
|
this.getConfig() // 获取配置信息 |
|
|
this.getConfig(); // 获取配置信息 |
|
|
this.keyEnter() |
|
|
this.keyEnter(); |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
...mapMutations(["setTrainPath"]), |
|
|
...mapMutations(['setTrainPath']), |
|
|
// 监听回车事件 |
|
|
// 监听回车事件 |
|
|
keyEnter(){ |
|
|
keyEnter() { |
|
|
document.onkeydown = e =>{ |
|
|
document.onkeydown = (e) => { |
|
|
if(e.keyCode == 13){ |
|
|
if (e.keyCode == 13) { |
|
|
this.handleLogin() // 登录 |
|
|
this.handleLogin(); // 登录 |
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
}; |
|
|
}, |
|
|
}, |
|
|
// 获取验证码 |
|
|
// 获取验证码 |
|
|
async getConfig() { |
|
|
async getConfig() { |
|
|
const res = await config('sys.password.forget'); |
|
|
const res = await config('sys.password.forget'); |
|
|
const { |
|
|
const { code, rows, msg } = res; |
|
|
code, |
|
|
|
|
|
rows, |
|
|
|
|
|
msg |
|
|
|
|
|
} = res; |
|
|
|
|
|
if (code === 200) { |
|
|
if (code === 200) { |
|
|
this.configData = rows[0]?.configValue || '' |
|
|
this.configData = rows[0]?.configValue || ''; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
// 获取验证码 |
|
|
// 获取验证码 |
|
|
async getCaptchaImage() { |
|
|
async getCaptchaImage() { |
|
|
const res = await captchaImage(); |
|
|
const res = await captchaImage(); |
|
|
const { |
|
|
const { code, data, msg } = res; |
|
|
code, |
|
|
|
|
|
data, |
|
|
|
|
|
msg |
|
|
|
|
|
} = res; |
|
|
|
|
|
if (code === 200) { |
|
|
if (code === 200) { |
|
|
this.codeUrl = "data:image/gif;base64," + res.img; |
|
|
this.codeUrl = 'data:image/gif;base64,' + res.img; |
|
|
this.form.uuid = res.uuid |
|
|
this.form.uuid = res.uuid; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
// 登录 |
|
|
// 登录 |
|
@ -144,16 +188,12 @@ |
|
|
uuid: this.form.uuid, |
|
|
uuid: this.form.uuid, |
|
|
}; |
|
|
}; |
|
|
const res = await login(param); |
|
|
const res = await login(param); |
|
|
const { |
|
|
const { code, data, msg } = res; |
|
|
code, |
|
|
|
|
|
data, |
|
|
|
|
|
msg |
|
|
|
|
|
} = res; |
|
|
|
|
|
if (code === 200) { |
|
|
if (code === 200) { |
|
|
uni.setStorageSync("userToken", res.token); |
|
|
uni.setStorageSync('userToken', res.token); |
|
|
uni.setStorageSync("userName", this.form.username); |
|
|
uni.setStorageSync('userName', this.form.username); |
|
|
uni.navigateTo({ |
|
|
uni.navigateTo({ |
|
|
url: "/pages/index/index", |
|
|
url: '/pages/index/index', |
|
|
}); |
|
|
}); |
|
|
// 全屏 |
|
|
// 全屏 |
|
|
var docElm = document.documentElement; |
|
|
var docElm = document.documentElement; |
|
@ -166,17 +206,16 @@ |
|
|
} else if (elem.msRequestFullscreen) { |
|
|
} else if (elem.msRequestFullscreen) { |
|
|
elem.msRequestFullscreen(); |
|
|
elem.msRequestFullscreen(); |
|
|
} |
|
|
} |
|
|
this.handleSuccess("登录成功"); |
|
|
this.handleSuccess('登录成功'); |
|
|
} else { |
|
|
} else { |
|
|
this.handleError(msg || "登录失败"); |
|
|
this.handleError(msg || '登录失败'); |
|
|
} |
|
|
} |
|
|
}) |
|
|
}); |
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
// 错误提示信息 |
|
|
// 错误提示信息 |
|
|
handleError(_tips) { |
|
|
handleError(_tips) { |
|
|
this.$refs.uToast.show({ |
|
|
this.$refs.uToast.show({ |
|
|
type: "error", |
|
|
type: 'error', |
|
|
icon: false, |
|
|
icon: false, |
|
|
message: _tips, |
|
|
message: _tips, |
|
|
}); |
|
|
}); |
|
@ -184,21 +223,21 @@ |
|
|
// 正确提示信息 |
|
|
// 正确提示信息 |
|
|
handleSuccess(_tips) { |
|
|
handleSuccess(_tips) { |
|
|
this.$refs.uToast.show({ |
|
|
this.$refs.uToast.show({ |
|
|
type: "success", |
|
|
type: 'success', |
|
|
icon: false, |
|
|
icon: false, |
|
|
message: _tips, |
|
|
message: _tips, |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}; |
|
|
}; |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
<style lang="scss" scoped> |
|
|
.view-form { |
|
|
.view-form { |
|
|
width: 80% |
|
|
width: 80%; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.code-imagebox { |
|
|
.code-imagebox { |
|
|
width: 100px; |
|
|
width: 100px; |
|
|
margin-left: 12px; |
|
|
margin-left: 12px; |
|
|
|
|
|
|
|
@ -206,9 +245,9 @@ |
|
|
width: 100px; |
|
|
width: 100px; |
|
|
height: 48px; |
|
|
height: 48px; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.log-but { |
|
|
.log-but { |
|
|
width: 400px; |
|
|
width: 400px; |
|
|
line-height: 48px; |
|
|
line-height: 48px; |
|
|
background: #3d78ff; |
|
|
background: #3d78ff; |
|
@ -217,22 +256,22 @@ |
|
|
color: #ffffff; |
|
|
color: #ffffff; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
margin-top: 36px; |
|
|
margin-top: 36px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.checkbox-box { |
|
|
.checkbox-box { |
|
|
display: flex; |
|
|
display: flex; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.view-yd { |
|
|
.view-yd { |
|
|
width: 440px; |
|
|
width: 440px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/deep/.u-checkbox__icon-wrap--square { |
|
|
::v-deep.u-checkbox__icon-wrap--square { |
|
|
width: 18px !important; |
|
|
width: 18px !important; |
|
|
height: 18px !important; |
|
|
height: 18px !important; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.pawss { |
|
|
.pawss { |
|
|
display: flex; |
|
|
display: flex; |
|
|
justify-content: space-between; |
|
|
justify-content: space-between; |
|
|
color: #3d78ff; |
|
|
color: #3d78ff; |
|
@ -240,27 +279,27 @@ |
|
|
.forget { |
|
|
.forget { |
|
|
font-size: 14px !important; |
|
|
font-size: 14px !important; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/deep/ .u-checkbox-label--left span { |
|
|
::v-deep .u-checkbox-label--left span { |
|
|
font-size: 14px !important; |
|
|
font-size: 14px !important; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.form-fg { |
|
|
.form-fg { |
|
|
height: 30px; |
|
|
height: 30px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.form-item-img { |
|
|
.form-item-img { |
|
|
width: 20px; |
|
|
width: 20px; |
|
|
height: 30px; |
|
|
height: 30px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.ipt-box { |
|
|
.ipt-box { |
|
|
width: 380px; |
|
|
width: 380px; |
|
|
margin: 0 100px; |
|
|
margin: 0 100px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.code-wrap { |
|
|
.code-wrap { |
|
|
display: flex; |
|
|
display: flex; |
|
|
|
|
|
|
|
|
.code-field { |
|
|
.code-field { |
|
@ -277,87 +316,87 @@ |
|
|
right: 15px; |
|
|
right: 15px; |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.forgetPassword { |
|
|
.forgetPassword { |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
color: rgba(0, 0, 0, 0.54); |
|
|
color: rgba(0, 0, 0, 0.54); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.forgetPassword:hover { |
|
|
.forgetPassword:hover { |
|
|
text-decoration: underline; |
|
|
text-decoration: underline; |
|
|
color: rgba(0, 0, 0, 0.87); |
|
|
color: rgba(0, 0, 0, 0.87); |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
<style scoped lang="scss"> |
|
|
<style scoped lang="scss"> |
|
|
.form-item-box { |
|
|
.form-item-box { |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
border-radius: 4px 4px 4px 4px; |
|
|
border-radius: 4px 4px 4px 4px; |
|
|
border: 1px solid #dcdfe6; |
|
|
border: 1px solid #dcdfe6; |
|
|
height: 46px; |
|
|
height: 46px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.form-item-input { |
|
|
.form-item-input { |
|
|
height: 46px !important; |
|
|
height: 46px !important; |
|
|
border-radius: 23px; |
|
|
border-radius: 23px; |
|
|
padding: 0 14px !important; |
|
|
padding: 0 14px !important; |
|
|
color: #333333; |
|
|
color: #333333; |
|
|
box-sizing: border-box; |
|
|
box-sizing: border-box; |
|
|
border: none; |
|
|
border: none; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/deep/ .uni-input-input { |
|
|
::v-deep .uni-input-input { |
|
|
//font-size: 50px; |
|
|
//font-size: 50px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.form-item-input:placeholder { |
|
|
.form-item-input:placeholder { |
|
|
font-size: 16px; |
|
|
font-size: 16px; |
|
|
color: #000; |
|
|
color: #000; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.form-item-codebut { |
|
|
.form-item-codebut { |
|
|
font-size: 12px; |
|
|
font-size: 12px; |
|
|
color: #888888; |
|
|
color: #888888; |
|
|
width: 100px; |
|
|
width: 100px; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
border-left: 1px solid #d8d8d8; |
|
|
border-left: 1px solid #d8d8d8; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/deep/ .u-form-item__body__left__content__label { |
|
|
::v-deep .u-form-item__body__left__content__label { |
|
|
width: 100px; |
|
|
width: 100px; |
|
|
font-size: 22px; |
|
|
font-size: 22px; |
|
|
color: #000000; |
|
|
color: #000000; |
|
|
margin-bottom: 16px; |
|
|
margin-bottom: 16px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/deep/.u-input__content__field-wrapper__field { |
|
|
::v-deep.u-input__content__field-wrapper__field { |
|
|
height: 48px; |
|
|
height: 48px; |
|
|
line-height: 48px; |
|
|
line-height: 48px; |
|
|
font-size: 16px; |
|
|
font-size: 16px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/deep/.ant-input { |
|
|
::v-deep.ant-input { |
|
|
font-size: 22px; |
|
|
font-size: 22px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/deep/.ant-input-affix-wrapper .ant-input:not(:first-child) { |
|
|
::v-deep.ant-input-affix-wrapper .ant-input:not(:first-child) { |
|
|
padding-left: 40px; |
|
|
padding-left: 40px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.h1-title { |
|
|
.h1-title { |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
font-weight: bold; |
|
|
font-weight: bold; |
|
|
font-size: 36px; |
|
|
font-size: 36px; |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
margin-bottom: 20px; |
|
|
margin-bottom: 20px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.divbox { |
|
|
.divbox { |
|
|
display: flex; |
|
|
display: flex; |
|
|
background-image: url('../../imgs/left.png'); |
|
|
background-image: url('../../imgs/left.png'); |
|
|
background-position: left bottom; |
|
|
background-position: left bottom; |
|
|
background-repeat: no-repeat; |
|
|
background-repeat: no-repeat; |
|
|
background-size: 100% ; |
|
|
background-size: 100%; |
|
|
.div-left { |
|
|
.div-left { |
|
|
position: relative; |
|
|
position: relative; |
|
|
flex: 1; |
|
|
flex: 1; |
|
@ -370,8 +409,8 @@ |
|
|
color: #6fcd9d; |
|
|
color: #6fcd9d; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
.divbox { |
|
|
.divbox { |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
height: 100vh; |
|
|
height: 100vh; |
|
|
display: flex; |
|
|
display: flex; |
|
@ -381,10 +420,9 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.div-right { |
|
|
.div-right { |
|
|
background:rgba(255, 255, 255, .6) ; |
|
|
background: rgba(255, 255, 255, 0.6); |
|
|
width: 500px; |
|
|
width: 500px; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
text-align: left; |
|
|
text-align: left; |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-wrap: wrap; |
|
|
flex-wrap: wrap; |
|
@ -395,5 +433,5 @@ |
|
|
color: #10b884; |
|
|
color: #10b884; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |