mirror of
https://github.com/kuaifan/dootask.git
synced 2026-03-03 07:37:05 +00:00
no message
This commit is contained in:
parent
a4a7939eae
commit
94e4054cd4
@ -58,8 +58,8 @@ export default {
|
||||
{icon: '', name: 'setting', label: '设置'},
|
||||
],
|
||||
[
|
||||
{icon: '', name: 'addProject', label: '创建项目'},
|
||||
{icon: '', name: 'addTask', label: '添加任务'},
|
||||
{icon: '', name: 'addProject', label: '添加项目'},
|
||||
]
|
||||
],
|
||||
};
|
||||
|
||||
6
resources/assets/js/functions/web.js
vendored
6
resources/assets/js/functions/web.js
vendored
@ -549,6 +549,12 @@
|
||||
setTimeout(() => { $A.modalWarning(config) }, millisecond);
|
||||
return;
|
||||
}
|
||||
if (typeof config === "string" && config === "Network exception") {
|
||||
return;
|
||||
}
|
||||
if ($A.isJson(config) && config.content === "Network exception") {
|
||||
return;
|
||||
}
|
||||
$A.Modal.warning($A.modalConfig(config));
|
||||
},
|
||||
|
||||
|
||||
@ -10,16 +10,62 @@
|
||||
<div v-else class="login-subtitle">{{$L('输入您的凭证以访问您的帐户。')}}</div>
|
||||
|
||||
<div class="login-input">
|
||||
<Input v-if="isSoftware && cacheServerUrl" :value="$A.getDomain(cacheServerUrl)" prefix="ios-globe-outline" size="large" readonly clearable @on-clear="clearServerUrl"/>
|
||||
<Input
|
||||
v-if="isSoftware && cacheServerUrl"
|
||||
:value="$A.getDomain(cacheServerUrl)"
|
||||
prefix="ios-globe-outline"
|
||||
size="large"
|
||||
readonly
|
||||
clearable
|
||||
@on-clear="clearServerUrl"/>
|
||||
|
||||
<Input v-model="email" prefix="ios-mail-outline" :placeholder="$L('输入您的电子邮件')" type="email" size="large" @on-enter="onLogin" @on-blur="onBlur" />
|
||||
<Input
|
||||
v-model="email"
|
||||
prefix="ios-mail-outline"
|
||||
:placeholder="$L('输入您的电子邮件')"
|
||||
type="email"
|
||||
size="large"
|
||||
@on-enter="onLogin"
|
||||
@on-blur="onBlur"
|
||||
clearable/>
|
||||
|
||||
<Input v-model="password" prefix="ios-lock-outline" :placeholder="$L('输入您的密码')" type="password" size="large" @on-enter="onLogin" />
|
||||
<Input
|
||||
v-model="password"
|
||||
prefix="ios-lock-outline"
|
||||
:placeholder="$L('输入您的密码')"
|
||||
type="password"
|
||||
size="large"
|
||||
@on-enter="onLogin"
|
||||
clearable/>
|
||||
|
||||
<Input v-if="loginType=='reg'" v-model="password2" prefix="ios-lock-outline" :placeholder="$L('输入确认密码')" type="password" size="large" @on-enter="onLogin" />
|
||||
<Input v-if="loginType=='reg' && needInvite" v-model="invite" class="login-code" :placeholder="$L('请输入注册邀请码')" type="text" size="large" @on-enter="onLogin"><span slot="prepend"> {{$L('邀请码')}} </span></Input>
|
||||
<Input
|
||||
v-if="loginType=='reg'"
|
||||
v-model="password2"
|
||||
prefix="ios-lock-outline"
|
||||
:placeholder="$L('输入确认密码')"
|
||||
type="password"
|
||||
size="large"
|
||||
@on-enter="onLogin"
|
||||
clearable/>
|
||||
<Input
|
||||
v-if="loginType=='reg' && needInvite"
|
||||
v-model="invite"
|
||||
class="login-code"
|
||||
:placeholder="$L('请输入注册邀请码')"
|
||||
type="text"
|
||||
size="large"
|
||||
@on-enter="onLogin"
|
||||
clearable><span slot="prepend"> {{$L('邀请码')}} </span></Input>
|
||||
|
||||
<Input v-if="loginType=='login' && codeNeed" v-model="code" class="login-code" :placeholder="$L('输入图形验证码')" type="text" size="large" @on-enter="onLogin">
|
||||
<Input
|
||||
v-if="loginType=='login' && codeNeed"
|
||||
v-model="code"
|
||||
class="login-code"
|
||||
:placeholder="$L('输入图形验证码')"
|
||||
type="text"
|
||||
size="large"
|
||||
@on-enter="onLogin"
|
||||
clearable>
|
||||
<Icon type="ios-checkmark-circle-outline" class="login-icon" slot="prepend"></Icon>
|
||||
<div slot="append" class="login-code-end" @click="reCode"><img :src="codeUrl"/></div>
|
||||
</Input>
|
||||
|
||||
@ -1,96 +1,94 @@
|
||||
<template>
|
||||
<div class="project-panel" :class="[tabTypeActive]">
|
||||
<PageTitle :title="projectData.name"/>
|
||||
<div class="project-head">
|
||||
<div class="project-titbox">
|
||||
<div class="project-title">
|
||||
<div class="project-back" @click="goBack">
|
||||
<i class="taskfont"></i>
|
||||
</div>
|
||||
<h1>{{projectData.name}}</h1>
|
||||
<label v-if="projectData.top_at" class="top-text">{{$L('置顶')}}</label>
|
||||
<div v-if="loading" class="project-load"><Loading/></div>
|
||||
<div class="project-titbox">
|
||||
<div class="project-title">
|
||||
<div class="project-back" @click="goBack">
|
||||
<i class="taskfont"></i>
|
||||
</div>
|
||||
<ul class="project-icons">
|
||||
<li class="project-avatar" :class="{'cursor-default': projectData.owner_userid !== userId}" @click="projectDropdown('user')">
|
||||
<ul>
|
||||
<li>
|
||||
<UserAvatar :userid="projectData.owner_userid" :size="36" :borderWitdh="2" :openDelay="0">
|
||||
<p>{{$L('项目负责人')}}</p>
|
||||
</UserAvatar>
|
||||
<Badge v-if="(windowWidth <= 980 || projectData.cacheParameter.chat) && projectUser.length > 0" type="normal" :count="projectData.project_user.length"/>
|
||||
</li>
|
||||
<template v-if="!(windowWidth <= 980 || projectData.cacheParameter.chat) && projectUser.length > 0" v-for="item in projectUser">
|
||||
<li v-if="item.userid === -1" class="more">
|
||||
<ETooltip :disabled="!$isDesktop" :content="$L('共' + (projectData.project_user.length) + '个成员')">
|
||||
<Icon type="ios-more"/>
|
||||
</ETooltip>
|
||||
</li>
|
||||
<li v-else>
|
||||
<UserAvatar :userid="item.userid" :size="36" :borderWitdh="2" :openDelay="0"/>
|
||||
</li>
|
||||
</template>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="project-icon" @click="addTaskOpen(0)">
|
||||
<ETooltip :disabled="!$isDesktop" :content="$L('添加任务')">
|
||||
<Icon class="menu-icon" type="md-add" />
|
||||
</ETooltip>
|
||||
</li>
|
||||
<li :class="['project-icon', searchText!='' ? 'active' : '']">
|
||||
<Tooltip :always="searchText!=''" @on-popper-show="searchFocus" theme="light" :rawIndex="10">
|
||||
<Icon class="menu-icon" type="ios-search" @click="searchFocus" />
|
||||
<div slot="content">
|
||||
<Input v-model="searchText" ref="searchInput" :placeholder="$L('名称、描述...')" class="search-input" clearable/>
|
||||
</div>
|
||||
</Tooltip>
|
||||
</li>
|
||||
<li :class="['project-icon', projectData.cacheParameter.chat ? 'active' : '']" @click="toggleParameter('chat')">
|
||||
<Icon class="menu-icon" type="ios-chatbubbles" />
|
||||
<Badge class="menu-badge" :count="msgUnread"></Badge>
|
||||
</li>
|
||||
<li class="project-icon">
|
||||
<EDropdown @command="projectDropdown" trigger="click" transfer>
|
||||
<Icon class="menu-icon" type="ios-more" />
|
||||
<EDropdownMenu v-if="projectData.owner_userid === userId" slot="dropdown">
|
||||
<EDropdownItem command="setting">{{$L('项目设置')}}</EDropdownItem>
|
||||
<EDropdownItem command="workflow">{{$L('工作流设置')}}</EDropdownItem>
|
||||
<EDropdownItem command="user" divided>{{$L('成员管理')}}</EDropdownItem>
|
||||
<EDropdownItem command="invite">{{$L('邀请链接')}}</EDropdownItem>
|
||||
<EDropdownItem command="log" divided>{{$L('项目动态')}}</EDropdownItem>
|
||||
<EDropdownItem command="archived_task">{{$L('已归档任务')}}</EDropdownItem>
|
||||
<EDropdownItem command="deleted_task">{{$L('已删除任务')}}</EDropdownItem>
|
||||
<EDropdownItem command="transfer" divided>{{$L('移交项目')}}</EDropdownItem>
|
||||
<EDropdownItem command="archived">{{$L('归档项目')}}</EDropdownItem>
|
||||
<EDropdownItem command="delete" style="color:#f40">{{$L('删除项目')}}</EDropdownItem>
|
||||
</EDropdownMenu>
|
||||
<EDropdownMenu v-else slot="dropdown">
|
||||
<EDropdownItem command="log">{{$L('项目动态')}}</EDropdownItem>
|
||||
<EDropdownItem command="archived_task">{{$L('已归档任务')}}</EDropdownItem>
|
||||
<EDropdownItem command="deleted_task">{{$L('已删除任务')}}</EDropdownItem>
|
||||
<EDropdownItem command="exit" divided style="color:#f40">{{$L('退出项目')}}</EDropdownItem>
|
||||
</EDropdownMenu>
|
||||
</EDropdown>
|
||||
</li>
|
||||
</ul>
|
||||
<h1>{{projectData.name}}</h1>
|
||||
<label v-if="projectData.top_at" class="top-text">{{$L('置顶')}}</label>
|
||||
<div v-if="loading" class="project-load"><Loading/></div>
|
||||
</div>
|
||||
<div class="project-subbox clearfix">
|
||||
<div class="project-subtitle" @click="showDesc">{{projectData.desc}}</div>
|
||||
<div class="project-switch">
|
||||
<div v-if="completedCount > 0" class="project-checkbox">
|
||||
<Checkbox :value="projectData.cacheParameter.completedTask" @on-change="toggleCompleted">{{$L('显示已完成')}}</Checkbox>
|
||||
</div>
|
||||
<div v-if="flowList.length > 0" class="project-select">
|
||||
<Cascader :data="flowData" @on-change="flowChange" transfer-class-name="project-panel-flow-cascader" transfer>
|
||||
<span :class="`project-flow ${flowInfo.status}`">{{ flowTitle }}</span>
|
||||
</Cascader>
|
||||
</div>
|
||||
<div class="project-switch-button">
|
||||
<div class="slider" :style="tabTypeStyle"></div>
|
||||
<div @click="tabTypeChange('column')" :class="{ 'active': tabTypeActive === 'column'}"><i class="taskfont"></i></div>
|
||||
<div @click="tabTypeChange('table')" :class="{ 'active': tabTypeActive === 'table'}"><i class="taskfont"></i></div>
|
||||
<div @click="tabTypeChange('gantt')" :class="{ 'active': tabTypeActive === 'gantt'}"><i class="taskfont"></i></div>
|
||||
</div>
|
||||
<ul class="project-icons">
|
||||
<li class="project-avatar" :class="{'cursor-default': projectData.owner_userid !== userId}" @click="projectDropdown('user')">
|
||||
<ul>
|
||||
<li>
|
||||
<UserAvatar :userid="projectData.owner_userid" :size="36" :borderWitdh="2" :openDelay="0">
|
||||
<p>{{$L('项目负责人')}}</p>
|
||||
</UserAvatar>
|
||||
<Badge v-if="(windowWidth <= 980 || projectData.cacheParameter.chat) && projectUser.length > 0" type="normal" :count="projectData.project_user.length"/>
|
||||
</li>
|
||||
<template v-if="!(windowWidth <= 980 || projectData.cacheParameter.chat) && projectUser.length > 0" v-for="item in projectUser">
|
||||
<li v-if="item.userid === -1" class="more">
|
||||
<ETooltip :disabled="!$isDesktop" :content="$L('共' + (projectData.project_user.length) + '个成员')">
|
||||
<Icon type="ios-more"/>
|
||||
</ETooltip>
|
||||
</li>
|
||||
<li v-else>
|
||||
<UserAvatar :userid="item.userid" :size="36" :borderWitdh="2" :openDelay="0"/>
|
||||
</li>
|
||||
</template>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="project-icon" @click="addTaskOpen(0)">
|
||||
<ETooltip :disabled="!$isDesktop" :content="$L('添加任务')">
|
||||
<Icon class="menu-icon" type="md-add" />
|
||||
</ETooltip>
|
||||
</li>
|
||||
<li :class="['project-icon', searchText!='' ? 'active' : '']">
|
||||
<Tooltip :always="searchText!=''" @on-popper-show="searchFocus" theme="light" :rawIndex="10">
|
||||
<Icon class="menu-icon" type="ios-search" @click="searchFocus" />
|
||||
<div slot="content">
|
||||
<Input v-model="searchText" ref="searchInput" :placeholder="$L('名称、描述...')" class="search-input" clearable/>
|
||||
</div>
|
||||
</Tooltip>
|
||||
</li>
|
||||
<li :class="['project-icon', projectData.cacheParameter.chat ? 'active' : '']" @click="toggleParameter('chat')">
|
||||
<Icon class="menu-icon" type="ios-chatbubbles" />
|
||||
<Badge class="menu-badge" :count="msgUnread"></Badge>
|
||||
</li>
|
||||
<li class="project-icon">
|
||||
<EDropdown @command="projectDropdown" trigger="click" transfer>
|
||||
<Icon class="menu-icon" type="ios-more" />
|
||||
<EDropdownMenu v-if="projectData.owner_userid === userId" slot="dropdown">
|
||||
<EDropdownItem command="setting">{{$L('项目设置')}}</EDropdownItem>
|
||||
<EDropdownItem command="workflow">{{$L('工作流设置')}}</EDropdownItem>
|
||||
<EDropdownItem command="user" divided>{{$L('成员管理')}}</EDropdownItem>
|
||||
<EDropdownItem command="invite">{{$L('邀请链接')}}</EDropdownItem>
|
||||
<EDropdownItem command="log" divided>{{$L('项目动态')}}</EDropdownItem>
|
||||
<EDropdownItem command="archived_task">{{$L('已归档任务')}}</EDropdownItem>
|
||||
<EDropdownItem command="deleted_task">{{$L('已删除任务')}}</EDropdownItem>
|
||||
<EDropdownItem command="transfer" divided>{{$L('移交项目')}}</EDropdownItem>
|
||||
<EDropdownItem command="archived">{{$L('归档项目')}}</EDropdownItem>
|
||||
<EDropdownItem command="delete" style="color:#f40">{{$L('删除项目')}}</EDropdownItem>
|
||||
</EDropdownMenu>
|
||||
<EDropdownMenu v-else slot="dropdown">
|
||||
<EDropdownItem command="log">{{$L('项目动态')}}</EDropdownItem>
|
||||
<EDropdownItem command="archived_task">{{$L('已归档任务')}}</EDropdownItem>
|
||||
<EDropdownItem command="deleted_task">{{$L('已删除任务')}}</EDropdownItem>
|
||||
<EDropdownItem command="exit" divided style="color:#f40">{{$L('退出项目')}}</EDropdownItem>
|
||||
</EDropdownMenu>
|
||||
</EDropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="project-subbox">
|
||||
<div class="project-subtitle" @click="showDesc">{{projectData.desc}}</div>
|
||||
<div class="project-switch">
|
||||
<div v-if="completedCount > 0" class="project-checkbox">
|
||||
<Checkbox :value="projectData.cacheParameter.completedTask" @on-change="toggleCompleted">{{$L('显示已完成')}}</Checkbox>
|
||||
</div>
|
||||
<div v-if="flowList.length > 0" class="project-select">
|
||||
<Cascader :data="flowData" @on-change="flowChange" transfer-class-name="project-panel-flow-cascader" transfer>
|
||||
<span :class="`project-flow ${flowInfo.status}`">{{ flowTitle }}</span>
|
||||
</Cascader>
|
||||
</div>
|
||||
<div class="project-switch-button">
|
||||
<div class="slider" :style="tabTypeStyle"></div>
|
||||
<div @click="tabTypeChange('column')" :class="{ 'active': tabTypeActive === 'column'}"><i class="taskfont"></i></div>
|
||||
<div @click="tabTypeChange('table')" :class="{ 'active': tabTypeActive === 'table'}"><i class="taskfont"></i></div>
|
||||
<div @click="tabTypeChange('gantt')" :class="{ 'active': tabTypeActive === 'gantt'}"><i class="taskfont"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
22
resources/assets/sass/dark.scss
vendored
22
resources/assets/sass/dark.scss
vendored
@ -96,19 +96,17 @@ body.dark-mode-reverse {
|
||||
}
|
||||
|
||||
.project-panel {
|
||||
.project-head {
|
||||
.project-titbox {
|
||||
.project-title {
|
||||
.top-text {
|
||||
color: #000000;
|
||||
}
|
||||
.project-titbox {
|
||||
.project-title {
|
||||
.top-text {
|
||||
color: #000000;
|
||||
}
|
||||
.project-icons {
|
||||
> li {
|
||||
&.project-icon {
|
||||
&.active {
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
.project-icons {
|
||||
> li {
|
||||
&.project-icon {
|
||||
&.active {
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,244 +1,239 @@
|
||||
.project-panel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.project-head {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
margin: 32px 32px 0;
|
||||
.project-titbox {
|
||||
width: 100%;
|
||||
.project-titbox {
|
||||
width: 100%;
|
||||
padding: 32px 32px 4px;
|
||||
.project-title {
|
||||
float: left;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 20px;
|
||||
.project-title {
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
.project-back {
|
||||
display: none;
|
||||
}
|
||||
> h1 {
|
||||
color: #333333;
|
||||
font-size: 28px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.project-load {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.project-back {
|
||||
display: none;
|
||||
}
|
||||
> h1 {
|
||||
color: #333333;
|
||||
font-size: 28px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.project-load {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 18px;
|
||||
.common-loading {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
}
|
||||
}
|
||||
.top-text {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
border-radius:4px;
|
||||
padding: 0 6px;
|
||||
margin-top: 3px;
|
||||
margin-left: 10px;
|
||||
background-color: #8BCF70;
|
||||
color:#FFFFFF;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
margin-left: 18px;
|
||||
.common-loading {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
}
|
||||
}
|
||||
.project-icons {
|
||||
.top-text {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
border-radius:4px;
|
||||
padding: 0 6px;
|
||||
margin-top: 3px;
|
||||
margin-left: 10px;
|
||||
background-color: #8BCF70;
|
||||
color:#FFFFFF;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
.project-icons {
|
||||
float: right;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 8px;
|
||||
> li {
|
||||
list-style: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
margin-top: 3px;
|
||||
> li {
|
||||
list-style: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 50%;
|
||||
position: relative;
|
||||
margin-left: 16px;
|
||||
cursor: pointer;
|
||||
transition: box-shadow 0.3s;
|
||||
justify-content: center;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 50%;
|
||||
position: relative;
|
||||
margin-left: 16px;
|
||||
cursor: pointer;
|
||||
transition: box-shadow 0.3s;
|
||||
&:hover {
|
||||
box-shadow: 0 0 6px #cccccc;
|
||||
}
|
||||
&.cursor-default {
|
||||
cursor: default;
|
||||
}
|
||||
&.project-avatar {
|
||||
width: auto;
|
||||
min-width: 36px;
|
||||
&:hover {
|
||||
box-shadow: 0 0 6px #cccccc;
|
||||
box-shadow: none;
|
||||
}
|
||||
&.cursor-default {
|
||||
cursor: default;
|
||||
}
|
||||
&.project-avatar {
|
||||
width: auto;
|
||||
min-width: 36px;
|
||||
&:hover {
|
||||
box-shadow: none;
|
||||
}
|
||||
> ul {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
> li {
|
||||
list-style: none;
|
||||
margin-left: -6px;
|
||||
transition: transform 0.2s;
|
||||
.ivu-badge {
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
left: 23px;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
&:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
&.more {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 17px;
|
||||
width: 30px;
|
||||
height: 32px;
|
||||
color: #aaaaaa;
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
transform: scale(1) !important;
|
||||
z-index: 1;
|
||||
}
|
||||
> ul {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
> li {
|
||||
list-style: none;
|
||||
margin-left: -6px;
|
||||
transition: transform 0.2s;
|
||||
.ivu-badge {
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
left: 23px;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
&:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
&.more {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 17px;
|
||||
width: 30px;
|
||||
height: 32px;
|
||||
color: #aaaaaa;
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
transform: scale(1) !important;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.project-icon {
|
||||
border-radius: 50%;
|
||||
background-color: #F2F3F5;
|
||||
.menu-icon {
|
||||
font-size: 20px;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
}
|
||||
.menu-badge {
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 20px;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
.search-input {
|
||||
margin: 2px 0;
|
||||
width: 170px;
|
||||
}
|
||||
&.active {
|
||||
color: #ffffff;
|
||||
background-color: $primary-color;
|
||||
}
|
||||
}
|
||||
&.project-icon {
|
||||
border-radius: 50%;
|
||||
background-color: #F2F3F5;
|
||||
.menu-icon {
|
||||
font-size: 20px;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
}
|
||||
.menu-badge {
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 20px;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
.search-input {
|
||||
margin: 2px 0;
|
||||
width: 170px;
|
||||
}
|
||||
&.active {
|
||||
color: #ffffff;
|
||||
background-color: $primary-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.project-subbox {
|
||||
width: 100%;
|
||||
.project-subtitle {
|
||||
float: left;
|
||||
color: #999999;
|
||||
line-height: 24px;
|
||||
padding: 6px 0;
|
||||
}
|
||||
.project-switch {
|
||||
float: right;
|
||||
margin: 3px 0 3px 32px;
|
||||
}
|
||||
.project-subbox {
|
||||
width: 100%;
|
||||
padding: 0 32px;
|
||||
.project-subtitle {
|
||||
float: left;
|
||||
color: #999999;
|
||||
line-height: 24px;
|
||||
margin: 6px 0;
|
||||
}
|
||||
.project-switch {
|
||||
float: right;
|
||||
margin: 3px 0 3px 32px;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
.project-checkbox {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
.project-checkbox {
|
||||
align-items: center;
|
||||
margin-right: 14px;
|
||||
opacity: 0.9;
|
||||
height: 30px;
|
||||
.ivu-checkbox-focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
.project-select {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 14px;
|
||||
opacity: 0.9;
|
||||
height: 30px;
|
||||
.project-flow {
|
||||
font-size: 13px;
|
||||
height: 28px;
|
||||
line-height: 26px;
|
||||
padding: 0 8px;
|
||||
border-radius: 4px;
|
||||
background: #f7f7f7;
|
||||
border: 1px solid #e8eaec;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 14px;
|
||||
opacity: 0.9;
|
||||
height: 30px;
|
||||
.ivu-checkbox-focus {
|
||||
box-shadow: none;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
&.start {
|
||||
background-color: rgba($flow-status-start-color, 0.1);
|
||||
border-color: rgba($flow-status-start-color, 0.1);
|
||||
color: $flow-status-start-color;
|
||||
}
|
||||
&.progress {
|
||||
background-color: rgba($flow-status-progress-color, 0.1);;
|
||||
border-color: rgba($flow-status-progress-color, 0.1);;
|
||||
color: $flow-status-progress-color;
|
||||
}
|
||||
&.test {
|
||||
background-color: rgba($flow-status-test-color, 0.1);;
|
||||
border-color: rgba($flow-status-test-color, 0.1);;
|
||||
color: $flow-status-test-color;
|
||||
}
|
||||
&.end {
|
||||
background-color: rgba($flow-status-end-color, 0.1);;
|
||||
border-color: rgba($flow-status-end-color, 0.1);;
|
||||
color: $flow-status-end-color;
|
||||
}
|
||||
}
|
||||
.project-select {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 14px;
|
||||
opacity: 0.9;
|
||||
height: 30px;
|
||||
.project-flow {
|
||||
font-size: 13px;
|
||||
height: 28px;
|
||||
line-height: 26px;
|
||||
padding: 0 8px;
|
||||
border-radius: 4px;
|
||||
background: #f7f7f7;
|
||||
border: 1px solid #e8eaec;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
&.start {
|
||||
background-color: rgba($flow-status-start-color, 0.1);
|
||||
border-color: rgba($flow-status-start-color, 0.1);
|
||||
color: $flow-status-start-color;
|
||||
}
|
||||
&.progress {
|
||||
background-color: rgba($flow-status-progress-color, 0.1);;
|
||||
border-color: rgba($flow-status-progress-color, 0.1);;
|
||||
color: $flow-status-progress-color;
|
||||
}
|
||||
&.test {
|
||||
background-color: rgba($flow-status-test-color, 0.1);;
|
||||
border-color: rgba($flow-status-test-color, 0.1);;
|
||||
color: $flow-status-test-color;
|
||||
}
|
||||
&.end {
|
||||
background-color: rgba($flow-status-end-color, 0.1);;
|
||||
border-color: rgba($flow-status-end-color, 0.1);;
|
||||
color: $flow-status-end-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
.project-switch-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background-color: #ffffff;
|
||||
border-radius: 6px;
|
||||
height: 30px;
|
||||
position: relative;
|
||||
transition: all 0.2s;
|
||||
.active {
|
||||
color: $primary-color;
|
||||
}
|
||||
.project-switch-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background-color: #ffffff;
|
||||
.slider {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.3%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
color: $primary-color;
|
||||
border-radius: 6px;
|
||||
border: 1px solid $primary-color;
|
||||
background-color: rgba($primary-color, 0.1);
|
||||
transition: left 0.2s;
|
||||
}
|
||||
&:hover {
|
||||
box-shadow: 0 0 10px #e6ecfa;
|
||||
}
|
||||
> div {
|
||||
z-index: 1;
|
||||
width: 32px;
|
||||
height: 30px;
|
||||
position: relative;
|
||||
transition: all 0.2s;
|
||||
.active {
|
||||
color: $primary-color;
|
||||
}
|
||||
.slider {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.3%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
color: $primary-color;
|
||||
border-radius: 6px;
|
||||
border: 1px solid $primary-color;
|
||||
background-color: rgba($primary-color, 0.1);
|
||||
transition: left 0.2s;
|
||||
}
|
||||
&:hover {
|
||||
box-shadow: 0 0 10px #e6ecfa;
|
||||
}
|
||||
> div {
|
||||
z-index: 1;
|
||||
width: 32px;
|
||||
height: 30px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
color: $primary-text-color;
|
||||
> i {
|
||||
font-size: 17px;
|
||||
}
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
color: $primary-text-color;
|
||||
> i {
|
||||
font-size: 17px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1026,50 +1021,48 @@
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.project-panel {
|
||||
.project-head {
|
||||
margin: 12px 16px 0;
|
||||
.project-titbox {
|
||||
display: block;
|
||||
margin-bottom: 16px;
|
||||
.project-title {
|
||||
float: left;
|
||||
padding-bottom: 8px;
|
||||
.project-back {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: -16px;
|
||||
width: 52px;
|
||||
> i {
|
||||
font-size: 26px;
|
||||
}
|
||||
}
|
||||
> h1 {
|
||||
font-size: 22px;
|
||||
.project-titbox {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
background-color: #fafafa;
|
||||
padding: 12px 16px 4px;
|
||||
.project-title {
|
||||
float: left;
|
||||
.project-back {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: -16px;
|
||||
width: 52px;
|
||||
> i {
|
||||
font-size: 26px;
|
||||
}
|
||||
}
|
||||
.project-icons {
|
||||
float: right;
|
||||
margin-left: 24px;
|
||||
margin-top: 4px;
|
||||
justify-content: flex-end;
|
||||
> h1 {
|
||||
font-size: 22px;
|
||||
}
|
||||
}
|
||||
.project-subbox {
|
||||
display: block;
|
||||
.project-subtitle {
|
||||
margin-bottom: 6px;
|
||||
word-break: break-all;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
.project-switch {
|
||||
margin-left: 0;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.project-icons {
|
||||
float: right;
|
||||
margin-left: 24px;
|
||||
margin-top: 4px;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
.project-subbox {
|
||||
padding: 0 16px;
|
||||
.project-subtitle {
|
||||
word-break: break-all;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
.project-switch {
|
||||
margin-left: 0;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
.project-column {
|
||||
|
||||
38
resources/assets/sass/pages/page-login.scss
vendored
38
resources/assets/sass/pages/page-login.scss
vendored
@ -63,12 +63,19 @@
|
||||
.login-code {
|
||||
.ivu-input-group-prepend,
|
||||
.ivu-input-group-append {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
background: transparent;
|
||||
border-color: #f1f1f1;
|
||||
> span {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.ivu-input-group-prepend {
|
||||
padding-right: 0;
|
||||
}
|
||||
.ivu-input {
|
||||
border-left-color: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
.login-code-end {
|
||||
margin: -6px -7px;
|
||||
@ -187,10 +194,31 @@
|
||||
width: 44px;
|
||||
}
|
||||
|
||||
.ivu-input-wrapper-large .ivu-input-prefix i,
|
||||
.ivu-input-wrapper-large .ivu-input-suffix i {
|
||||
font-size: 20px;
|
||||
line-height: 44px;
|
||||
.ivu-input-wrapper-large {
|
||||
.ivu-input-prefix i,
|
||||
.ivu-input-suffix i {
|
||||
font-size: 20px;
|
||||
line-height: 44px;
|
||||
}
|
||||
.ivu-input-icon {
|
||||
height: 44px;
|
||||
line-height: 44px;
|
||||
}
|
||||
}
|
||||
|
||||
.login-code {
|
||||
.ivu-input-group-prepend,
|
||||
.ivu-input-group-append {
|
||||
font-size: 18px;
|
||||
background: #ffffff;
|
||||
.login-code-end {
|
||||
height: 42px;
|
||||
}
|
||||
}
|
||||
.ivu-input-group-prepend {
|
||||
padding-left: 12px;
|
||||
padding-right: 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user