no message
This commit is contained in:
parent
f4a35f0adb
commit
c842319bc0
@ -48,7 +48,7 @@
|
||||
"notification-koro1": "^1.1.1",
|
||||
"tinymce": "^5.8.1",
|
||||
"tui-calendar-hi": "^1.13.0-5",
|
||||
"view-design-hi": "^4.6.1-1",
|
||||
"view-design-hi": "^4.6.1-2",
|
||||
"vue-clipboard2": "^0.3.1",
|
||||
"vue-emoji-picker": "^1.0.1",
|
||||
"vue-kityminder-gg": "^1.3.6",
|
||||
|
@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="quick-edit">
|
||||
<div v-if="isEdit" class="quick-input">
|
||||
<Input ref="input" v-model="content" :disabled="isLoad" @on-blur="onEnter" @on-enter="onEnter"/>
|
||||
<Input ref="input" v-model="content" :disabled="isLoad" @on-blur="onBlur" @on-enter="onEnter"/>
|
||||
<div v-if="isLoad" class="quick-loading"><Loading/></div>
|
||||
</div>
|
||||
<template v-else>
|
||||
<div class="quick-text"><slot></slot></div>
|
||||
<Icon class="quick-icon" type="ios-create-outline" @click.stop="onClick"/>
|
||||
<Icon class="quick-icon" type="ios-create-outline" @click.stop="onEdit"/>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
@ -15,7 +15,12 @@
|
||||
export default {
|
||||
name: 'QuickEdit',
|
||||
props: {
|
||||
value: {},
|
||||
value: {
|
||||
|
||||
},
|
||||
autoEdit: {
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
@ -26,14 +31,25 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
if (this.autoEdit === true) {
|
||||
this.onEdit();
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
isEdit(val) {
|
||||
this.$emit("on-edit", val);
|
||||
this.$emit("on-edit-change", val);
|
||||
},
|
||||
autoEdit(val) {
|
||||
if (val === true) {
|
||||
this.onEdit();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
onClick() {
|
||||
onEdit() {
|
||||
this.content = this.value;
|
||||
this.isEdit = true;
|
||||
this.$nextTick(() => {
|
||||
@ -41,6 +57,10 @@ export default {
|
||||
})
|
||||
},
|
||||
|
||||
onBlur() {
|
||||
this.onEnter();
|
||||
},
|
||||
|
||||
onEnter() {
|
||||
if (this.content == this.value) {
|
||||
this.isEdit = false;
|
||||
|
@ -29,7 +29,7 @@
|
||||
<Dropdown trigger="click" @on-click="setLanguage" transfer>
|
||||
<div class="login-language">
|
||||
{{currentLanguage}}
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
</div>
|
||||
<Dropdown-menu slot="list">
|
||||
<Dropdown-item v-for="(item, key) in languageList" :key="key" :name="key" :selected="getLanguage() === key">{{item}}</Dropdown-item>
|
||||
|
@ -38,20 +38,20 @@
|
||||
</Dropdown>
|
||||
<ul class="overlay-y">
|
||||
<li @click="toggleRoute('dashboard')" :class="classNameRoute('dashboard')">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<div class="menu-title">{{$L('仪表盘')}}</div>
|
||||
</li>
|
||||
<li @click="toggleRoute('calendar')" :class="classNameRoute('calendar')">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<div class="menu-title">{{$L('日历')}}</div>
|
||||
</li>
|
||||
<li @click="toggleRoute('messenger')" :class="classNameRoute('messenger')">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<div class="menu-title">{{$L('消息')}}</div>
|
||||
<Badge class="menu-badge" :count="msgAllUnread"></Badge>
|
||||
</li>
|
||||
<li @click="toggleRoute('file')" :class="classNameRoute('file')">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<div class="menu-title">{{$L('文件')}}</div>
|
||||
</li>
|
||||
<li class="menu-project">
|
||||
@ -268,6 +268,10 @@ export default {
|
||||
this.chackPass();
|
||||
},
|
||||
|
||||
taskId(id) {
|
||||
id > 0 && this.$Modal.resetIndex();
|
||||
},
|
||||
|
||||
dialogMsgPush(data) {
|
||||
if (this.natificationHidden && this.natificationReady) {
|
||||
const {id, dialog_id, type, msg} = data;
|
||||
|
@ -55,8 +55,8 @@
|
||||
<Checkbox :value="tablePanel('completedTask')" @on-change="$store.dispatch('toggleTablePanel', 'completedTask')">{{$L('显示已完成')}}</Checkbox>
|
||||
</div>
|
||||
<div :class="['project-switch-button', !tablePanel('card') ? 'menu' : '']" @click="$store.dispatch('toggleTablePanel', 'card')">
|
||||
<div><i class="iconfont"></i></div>
|
||||
<div><i class="iconfont"></i></div>
|
||||
<div><i class="taskfont"></i></div>
|
||||
<div><i class="taskfont"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -99,7 +99,7 @@
|
||||
<EDropdownItem divided disabled>{{$L('颜色')}}</EDropdownItem>
|
||||
<EDropdownItem v-for="(c, k) in $store.state.columnColorList" :key="k" :command="c">
|
||||
<div class="item">
|
||||
<i class="iconfont" :style="{color:c.color}" v-html="c.color == column.color ? '' : ''"></i>{{$L(c.name)}}
|
||||
<i class="taskfont" :style="{color:c.color}" v-html="c.color == column.color ? '' : ''"></i>{{$L(c.name)}}
|
||||
</div>
|
||||
</EDropdownItem>
|
||||
</EDropdownMenu>
|
||||
@ -165,7 +165,7 @@
|
||||
<EDropdownItem divided disabled>{{$L('背景色')}}</EDropdownItem>
|
||||
<EDropdownItem v-for="(c, k) in $store.state.taskColorList" :key="k" :command="c">
|
||||
<div class="item">
|
||||
<i class="iconfont" :style="{color:c.color||'#f9f9f9'}" v-html="c.color == item.color ? '' : ''"></i>{{$L(c.name)}}
|
||||
<i class="taskfont" :style="{color:c.color||'#f9f9f9'}" v-html="c.color == item.color ? '' : ''"></i>{{$L(c.name)}}
|
||||
</div>
|
||||
</EDropdownItem>
|
||||
</EDropdownMenu>
|
||||
@ -196,7 +196,7 @@
|
||||
:class="['task-time', item.today ? 'today' : '', item.overdue ? 'overdue' : '']"
|
||||
:open-delay="600"
|
||||
:content="item.end_at">
|
||||
<div v-if="!item.complete_at"><i class="iconfont"></i>{{ expiresFormat(item.end_at) }}</div>
|
||||
<div v-if="!item.complete_at"><i class="taskfont"></i>{{ expiresFormat(item.end_at) }}</div>
|
||||
</ETooltip>
|
||||
</div>
|
||||
<em v-if="item.p_name" class="priority-color" :style="{backgroundColor:item.p_color}"></em>
|
||||
@ -241,7 +241,7 @@
|
||||
<div :class="['project-table-body', !tablePanel('showMy') ? 'project-table-hide' : '']">
|
||||
<Row class="task-row">
|
||||
<Col span="12" class="row-title">
|
||||
<i class="iconfont" @click="$store.dispatch('toggleTablePanel', 'showMy')"></i>
|
||||
<i class="taskfont" @click="$store.dispatch('toggleTablePanel', 'showMy')"></i>
|
||||
<div class="row-h1">{{$L('我的任务')}}</div>
|
||||
<div class="row-num">({{myList.length}})</div>
|
||||
</Col>
|
||||
@ -256,7 +256,7 @@
|
||||
<div v-if="projectData.task_num > 0" :class="['project-table-body', !tablePanel('showUndone') ? 'project-table-hide' : '']">
|
||||
<Row class="task-row">
|
||||
<Col span="12" class="row-title">
|
||||
<i class="iconfont" @click="$store.dispatch('toggleTablePanel', 'showUndone')"></i>
|
||||
<i class="taskfont" @click="$store.dispatch('toggleTablePanel', 'showUndone')"></i>
|
||||
<div class="row-h1">{{$L('未完成任务')}}</div>
|
||||
<div class="row-num">({{undoneList.length}})</div>
|
||||
</Col>
|
||||
@ -271,7 +271,7 @@
|
||||
<div v-if="projectData.task_num > 0" :class="['project-table-body', !tablePanel('showCompleted') ? 'project-table-hide' : '']">
|
||||
<Row class="task-row">
|
||||
<Col span="12" class="row-title">
|
||||
<i class="iconfont" @click="$store.dispatch('toggleTablePanel', 'showCompleted')"></i>
|
||||
<i class="taskfont" @click="$store.dispatch('toggleTablePanel', 'showCompleted')"></i>
|
||||
<div class="row-h1">{{$L('已完成任务')}}</div>
|
||||
<div class="row-num">({{completedList.length}})</div>
|
||||
</Col>
|
||||
@ -642,6 +642,7 @@ export default {
|
||||
'owner': this.userId,
|
||||
'column_id': column_id,
|
||||
});
|
||||
this.$Modal.resetIndex();
|
||||
this.addShow = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.add.$refs.input.focus();
|
||||
|
@ -26,7 +26,7 @@
|
||||
<li v-for="(item, key) in taskPriority" :key="key">
|
||||
<ETooltip :content="item.name + ' (' + item.days + $L('天') + ')'">
|
||||
<i
|
||||
class="iconfont"
|
||||
class="taskfont"
|
||||
:style="{color:item.color}"
|
||||
v-html="addData.p_name == item.name ? '' : ''"
|
||||
@click="choosePriority(item)"></i>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<li v-for="(item, key) in taskPriority" :key="key">
|
||||
<ETooltip v-if="active" :content="item.name + ' (' + item.days + $L('天') + ')'">
|
||||
<i
|
||||
class="iconfont"
|
||||
class="taskfont"
|
||||
:style="{color:item.color}"
|
||||
v-html="addData.p_name == item.name ? '' : ''"
|
||||
@click="choosePriority(item)"></i>
|
||||
@ -57,7 +57,7 @@
|
||||
<li v-for="(item, key) in taskPriority" :key="key">
|
||||
<ETooltip v-if="active" :content="item.name + ' (' + item.days + $L('天') + ')'">
|
||||
<i
|
||||
class="iconfont"
|
||||
class="taskfont"
|
||||
:style="{color:item.color}"
|
||||
v-html="addData.p_name == item.name ? '' : ''"
|
||||
@click="choosePriority(item)"></i>
|
||||
|
@ -166,7 +166,7 @@
|
||||
<Form class="items" label-position="left" label-width="auto" @submit.native.prevent>
|
||||
<FormItem v-if="taskDetail.p_name">
|
||||
<div class="item-label" slot="label">
|
||||
<i class="iconfont"></i>{{$L('优先级')}}
|
||||
<i class="taskfont"></i>{{$L('优先级')}}
|
||||
</div>
|
||||
<ul class="item-content">
|
||||
<li>
|
||||
@ -179,7 +179,7 @@
|
||||
<EDropdownMenu slot="dropdown">
|
||||
<EDropdownItem v-for="(item, key) in taskPriority" :key="key" :command="item">
|
||||
<i
|
||||
class="iconfont"
|
||||
class="taskfont"
|
||||
:style="{color:item.color}"
|
||||
v-html="taskDetail.p_name == item.name ? '' : ''"></i>
|
||||
{{item.name}}
|
||||
@ -191,7 +191,7 @@
|
||||
</FormItem>
|
||||
<FormItem v-if="getOwner.length > 0">
|
||||
<div class="item-label" slot="label">
|
||||
<i class="iconfont"></i>{{$L('负责人')}}
|
||||
<i class="taskfont"></i>{{$L('负责人')}}
|
||||
</div>
|
||||
<Poptip
|
||||
ref="owner"
|
||||
@ -221,7 +221,7 @@
|
||||
</FormItem>
|
||||
<FormItem v-if="getAssist.length > 0 || assistForce">
|
||||
<div class="item-label" slot="label">
|
||||
<i class="iconfont"></i>{{$L('协助人员')}}
|
||||
<i class="taskfont"></i>{{$L('协助人员')}}
|
||||
</div>
|
||||
<Poptip
|
||||
ref="assist"
|
||||
@ -253,7 +253,7 @@
|
||||
</FormItem>
|
||||
<FormItem v-if="taskDetail.end_at || timeForce">
|
||||
<div class="item-label" slot="label">
|
||||
<i class="iconfont"></i>{{$L('截止时间')}}
|
||||
<i class="taskfont"></i>{{$L('截止时间')}}
|
||||
</div>
|
||||
<ul class="item-content">
|
||||
<li>
|
||||
@ -269,7 +269,7 @@
|
||||
transfer>
|
||||
<div class="picker-time">
|
||||
<div @click="openTime" class="time">{{taskDetail.end_at ? cutTime : '--'}}</div>
|
||||
<Tag v-if="!taskDetail.complete_at && taskDetail.today" color="blue"><i class="iconfont"></i>{{expiresFormat(taskDetail.end_at)}}</Tag>
|
||||
<Tag v-if="!taskDetail.complete_at && taskDetail.today" color="blue"><i class="taskfont"></i>{{expiresFormat(taskDetail.end_at)}}</Tag>
|
||||
<Tag v-if="!taskDetail.complete_at && taskDetail.overdue" color="red">{{$L('超期未完成')}}</Tag>
|
||||
</div>
|
||||
</DatePicker>
|
||||
@ -278,7 +278,7 @@
|
||||
</FormItem>
|
||||
<FormItem v-if="fileList.length > 0">
|
||||
<div class="item-label" slot="label">
|
||||
<i class="iconfont"></i>{{$L('附件')}}
|
||||
<i class="taskfont"></i>{{$L('附件')}}
|
||||
</div>
|
||||
<ul class="item-content file">
|
||||
<li v-for="file in fileList">
|
||||
@ -294,21 +294,21 @@
|
||||
<Button size="small" type="primary" @click="deleteFile(file)">{{$L('确定')}}</Button>
|
||||
</div>
|
||||
</div>
|
||||
<i slot="reference" :class="['iconfont', file._deling ? 'deling' : '']"></i>
|
||||
<i slot="reference" :class="['taskfont', file._deling ? 'deling' : '']"></i>
|
||||
</EPopover>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="item-content">
|
||||
<li>
|
||||
<div class="add-button" @click="$refs.upload.handleClick()">
|
||||
<i class="iconfont"></i>{{$L('添加附件')}}
|
||||
<i class="taskfont"></i>{{$L('添加附件')}}
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</FormItem>
|
||||
<FormItem v-if="subList.length > 0 || addsubForce">
|
||||
<div class="item-label" slot="label">
|
||||
<i class="iconfont"></i>{{$L('子任务')}}
|
||||
<i class="taskfont"></i>{{$L('子任务')}}
|
||||
</div>
|
||||
<ul class="item-content subtask">
|
||||
<TaskDetail v-for="(task, key) in subList" :key="key" :open-task="task"/>
|
||||
@ -325,7 +325,7 @@
|
||||
@on-blur="addsubChackClose"
|
||||
@on-keydown="addsubKeydown"/>
|
||||
<div v-else class="add-button" @click="addsubOpen">
|
||||
<i class="iconfont"></i>{{$L('添加子任务')}}
|
||||
<i class="taskfont"></i>{{$L('添加子任务')}}
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@ -337,14 +337,14 @@
|
||||
placement="bottom"
|
||||
@command="dropAdd">
|
||||
<div class="add-button">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
{{$L('添加')}}
|
||||
<em v-for="item in menuList">{{$L(item.name)}}</em>
|
||||
</div>
|
||||
<EDropdownMenu slot="dropdown">
|
||||
<EDropdownItem v-for="(item, key) in menuList" :key="key" :command="item.command">
|
||||
<div class="item">
|
||||
<i class="iconfont" v-html="item.icon"></i>{{$L(item.name)}}
|
||||
<i class="taskfont" v-html="item.icon"></i>{{$L(item.name)}}
|
||||
</div>
|
||||
</EDropdownItem>
|
||||
</EDropdownMenu>
|
||||
|
@ -44,7 +44,7 @@
|
||||
<EDropdownItem v-if="item.parent_id === 0" divided disabled>{{$L('背景色')}}</EDropdownItem>
|
||||
<EDropdownItem v-for="(c, k) in $store.state.taskColorList" :key="k" :command="c">
|
||||
<div class="item">
|
||||
<i class="iconfont" :style="{color:c.color||'#f9f9f9'}" v-html="c.color == item.color ? '' : ''"></i>{{$L(c.name)}}
|
||||
<i class="taskfont" :style="{color:c.color||'#f9f9f9'}" v-html="c.color == item.color ? '' : ''"></i>{{$L(c.name)}}
|
||||
</div>
|
||||
</EDropdownItem>
|
||||
</template>
|
||||
@ -53,18 +53,18 @@
|
||||
<div class="item-title" @click="openTask(item)">{{item.name}}</div>
|
||||
<div class="item-icons" @click="openTask(item)">
|
||||
<div v-if="item.desc" class="item-icon">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
</div>
|
||||
<div v-if="item.file_num > 0" class="item-icon">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<em>{{item.file_num}}</em>
|
||||
</div>
|
||||
<div v-if="item.msg_num > 0" class="item-icon">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<em>{{item.msg_num}}</em>
|
||||
</div>
|
||||
<div v-if="item.sub_num > 0" class="item-icon" @click.stop="getSublist(item)">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<em>{{item.sub_complete}}/{{item.sub_num}}</em>
|
||||
</div>
|
||||
</div>
|
||||
@ -95,7 +95,7 @@
|
||||
<EDropdownMenu slot="dropdown">
|
||||
<EDropdownItem v-for="(item, key) in taskPriority" :key="key" :command="'priority::' + key">
|
||||
<i
|
||||
class="iconfont"
|
||||
class="taskfont"
|
||||
:style="{color:item.color}"
|
||||
v-html="item.p_name == item.name ? '' : ''"></i>
|
||||
{{item.name}}
|
||||
|
@ -9,21 +9,21 @@
|
||||
<div class="block-title">{{$L('今日待完成')}}</div>
|
||||
<div class="block-data">
|
||||
<div class="block-num">{{projectStatistics.today || 0}}</div>
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
</div>
|
||||
</li>
|
||||
<li @click="dashboard='overdue'">
|
||||
<div class="block-title">{{$L('超期未完成')}}</div>
|
||||
<div class="block-data">
|
||||
<div class="block-num">{{projectStatistics.overdue || 0}}</div>
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="block-title">{{$L('参与的项目')}}</div>
|
||||
<div class="block-data">
|
||||
<div class="block-num">{{projects.length}}</div>
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@ -42,7 +42,7 @@
|
||||
placement="bottom"
|
||||
@command="dropTask(item, $event)">
|
||||
<div class="drop-icon" @click.stop="">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
</div>
|
||||
<EDropdownMenu slot="dropdown" class="project-list-more-dropdown-menu">
|
||||
<EDropdownItem v-if="item.complete_at" command="uncomplete">
|
||||
@ -69,7 +69,7 @@
|
||||
<EDropdownItem v-if="item.parent_id === 0" divided disabled>{{$L('背景色')}}</EDropdownItem>
|
||||
<EDropdownItem v-for="(c, k) in $store.state.taskColorList" :key="k" :command="c">
|
||||
<div class="item">
|
||||
<i class="iconfont" :style="{color:c.color||'#f9f9f9'}" v-html="c.color == item.color ? '' : ''"></i>{{$L(c.name)}}
|
||||
<i class="taskfont" :style="{color:c.color||'#f9f9f9'}" v-html="c.color == item.color ? '' : ''"></i>{{$L(c.name)}}
|
||||
</div>
|
||||
</EDropdownItem>
|
||||
</template>
|
||||
@ -77,14 +77,14 @@
|
||||
</EDropdown>
|
||||
<div class="item-title">{{item.name}}</div>
|
||||
<div v-if="item.desc" class="item-icon">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
</div>
|
||||
<div v-if="item.sub_num > 0" class="item-icon">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<em>{{item.sub_complete}}/{{item.sub_num}}</em>
|
||||
</div>
|
||||
<div :class="['item-icon', item.today ? 'today' : '', item.overdue ? 'overdue' : '']">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<em>{{expiresFormat(item.end_at)}}</em>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -14,7 +14,7 @@
|
||||
trigger="click"
|
||||
placement="bottom"
|
||||
@command="addFile">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<EDropdownMenu slot="dropdown" class="page-file-dropdown-menu">
|
||||
<EDropdownItem v-for="(type, key) in types" :key="key" :command="type.value">
|
||||
<div :class="['file-item ' + type.value]">{{$L('新建' + type.name)}}</div>
|
||||
@ -37,8 +37,8 @@
|
||||
</Button>
|
||||
<div class="flex-full"></div>
|
||||
<div :class="['switch-button', tableMode ? 'table' : '']" @click="tableMode=!tableMode">
|
||||
<div><i class="iconfont"></i></div>
|
||||
<div><i class="iconfont"></i></div>
|
||||
<div><i class="taskfont"></i></div>
|
||||
<div><i class="taskfont"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="tableMode" class="file-table">
|
||||
@ -52,7 +52,7 @@
|
||||
</div>
|
||||
<template v-else>
|
||||
<div v-if="fileList.length == 0 && loadIng == 0" class="file-no">
|
||||
<i class="iconfont"></i>
|
||||
<i class="taskfont"></i>
|
||||
<p>{{$L('没有任何文件')}}</p>
|
||||
</div>
|
||||
<div v-else class="file-list">
|
||||
@ -79,7 +79,7 @@
|
||||
:ref="'input_' + item.id"
|
||||
v-model="item.newname"
|
||||
size="small"
|
||||
:disabled="item._load"
|
||||
:disabled="!!item._load"
|
||||
@on-blur="onBlur(item)"
|
||||
@on-enter="onEnter(item)"/>
|
||||
<div v-if="item._load" class="file-load"><Loading/></div>
|
||||
@ -98,7 +98,7 @@
|
||||
:height="editHeight"
|
||||
:mask-closable="false"
|
||||
:mask-style="{backgroundColor:'rgba(0,0,0,0.7)'}">
|
||||
<FileContent v-if="editShow" :file="editInfo"/>
|
||||
<FileContent :file="editInfo"/>
|
||||
</Drawer>
|
||||
</div>
|
||||
</template>
|
||||
@ -214,15 +214,48 @@ export default {
|
||||
resizable: true,
|
||||
sortable: true,
|
||||
render: (h, {row}) => {
|
||||
return h('div', {
|
||||
class: 'file-name ' + row.type
|
||||
}, [
|
||||
h('QuickEdit', {
|
||||
let array = [];
|
||||
let isCreate = !/^\d+$/.test(row.id);
|
||||
if (isCreate) {
|
||||
// 新建
|
||||
array.push(h('Input', {
|
||||
props: {
|
||||
elementId: 'input_' + row.id,
|
||||
value: row.newname,
|
||||
autofocus: true,
|
||||
disabled: !!row._load,
|
||||
},
|
||||
style: {
|
||||
width: 'auto'
|
||||
},
|
||||
on: {
|
||||
'on-change': (event) => {
|
||||
row.newname = event.target.value;
|
||||
},
|
||||
'on-blur': () => {
|
||||
const file = this.files.find(({id}) => id == row.id);
|
||||
if (file) {
|
||||
file.newname = row.newname;
|
||||
this.onBlur(file)
|
||||
}
|
||||
},
|
||||
'on-enter': () => {
|
||||
const file = this.files.find(({id}) => id == row.id);
|
||||
if (file) {
|
||||
file.newname = row.newname;
|
||||
this.onEnter(file)
|
||||
}
|
||||
}
|
||||
}
|
||||
}))
|
||||
} else {
|
||||
// 编辑
|
||||
array.push(h('QuickEdit', {
|
||||
props: {
|
||||
value: row.name,
|
||||
},
|
||||
on: {
|
||||
'on-edit': (b) => {
|
||||
'on-edit-change': (b) => {
|
||||
const file = this.files.find(({id}) => id == row.id);
|
||||
if (file) {
|
||||
setTimeout(() => {
|
||||
@ -241,8 +274,11 @@ export default {
|
||||
}
|
||||
}, [
|
||||
h('AutoTip', row.name)
|
||||
])
|
||||
]);
|
||||
]));
|
||||
}
|
||||
return h('div', {
|
||||
class: 'file-name ' + row.type
|
||||
}, array);
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -293,11 +329,7 @@ export default {
|
||||
name: '',
|
||||
newname: this.$L('未命名')
|
||||
});
|
||||
this.$nextTick(() => {
|
||||
this.$refs['input_' + id][0].focus({
|
||||
cursor: 'all'
|
||||
})
|
||||
})
|
||||
this.autoBlur(id)
|
||||
},
|
||||
|
||||
openFile(item) {
|
||||
@ -330,11 +362,7 @@ export default {
|
||||
case 'rename':
|
||||
this.$set(item, 'newname', item.name);
|
||||
this.$set(item, '_edit', true);
|
||||
this.$nextTick(() => {
|
||||
this.$refs['input_' + item.id][0].focus({
|
||||
cursor: 'all'
|
||||
})
|
||||
})
|
||||
this.autoBlur(item.id)
|
||||
break;
|
||||
|
||||
case 'copy':
|
||||
@ -400,6 +428,18 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
autoBlur(id) {
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs['input_' + id]) {
|
||||
this.$refs['input_' + id][0].focus({
|
||||
cursor: 'all'
|
||||
})
|
||||
} else if (document.getElementById('input_' + id)) {
|
||||
document.getElementById('input_' + id).focus();
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onBlur(item) {
|
||||
this.onEnter(item);
|
||||
},
|
||||
|
@ -23,8 +23,8 @@
|
||||
:class="{active: dialog.id == dialogId}"
|
||||
@click="openDialog(dialog, true)">
|
||||
<template v-if="dialog.type=='group'">
|
||||
<i v-if="dialog.group_type=='project'" class="iconfont icon-avatar project"></i>
|
||||
<i v-else-if="dialog.group_type=='task'" class="iconfont icon-avatar task"></i>
|
||||
<i v-if="dialog.group_type=='project'" class="taskfont icon-avatar project"></i>
|
||||
<i v-else-if="dialog.group_type=='task'" class="taskfont icon-avatar task"></i>
|
||||
<Icon v-else class="icon-avatar" type="ios-people" />
|
||||
</template>
|
||||
<div v-else-if="dialog.dialog_user" class="user-avatar"><UserAvatar :userid="dialog.dialog_user.userid" :size="42"/></div>
|
||||
|
2
resources/assets/js/store/actions.js
vendored
2
resources/assets/js/store/actions.js
vendored
@ -292,7 +292,7 @@ export default {
|
||||
} else if (state.method.isJson(data)) {
|
||||
let index = state.files.findIndex(({id}) => id == data.id);
|
||||
if (index > -1) {
|
||||
state.files.splice(index, 1, data);
|
||||
state.files.splice(index, 1, Object.assign(state.files[index], data));
|
||||
} else {
|
||||
state.files.push(data)
|
||||
}
|
||||
|
2
resources/assets/sass/app.scss
vendored
2
resources/assets/sass/app.scss
vendored
@ -1,7 +1,7 @@
|
||||
@import "var";
|
||||
@import "element";
|
||||
@import "fonts-ft";
|
||||
@import "iconfont";
|
||||
@import "taskfont";
|
||||
@import "loading";
|
||||
@import "scrollbar";
|
||||
|
||||
|
15
resources/assets/sass/iconfont.scss
vendored
15
resources/assets/sass/iconfont.scss
vendored
@ -1,15 +0,0 @@
|
||||
@font-face {
|
||||
font-family: 'iconfont'; /* Project id 2583385 */
|
||||
src: url('//at.alicdn.com/t/font_2583385_0n9xtibhf9vq.woff2?t=1625032849662') format('woff2'),
|
||||
url('//at.alicdn.com/t/font_2583385_0n9xtibhf9vq.woff?t=1625032849662') format('woff'),
|
||||
url('//at.alicdn.com/t/font_2583385_0n9xtibhf9vq.ttf?t=1625032849662') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
font-family: "iconfont", "serif" !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-text-stroke-width: 0.2px;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
@ -436,7 +436,7 @@
|
||||
color: #ffffff;
|
||||
background-color: #ff9900;
|
||||
}
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
margin-right: 3px;
|
||||
font-size: 12px;
|
||||
}
|
||||
@ -528,7 +528,7 @@
|
||||
display: none;
|
||||
}
|
||||
.row-title {
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
}
|
||||
@ -556,7 +556,7 @@
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
padding-left: 14px;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
cursor: pointer;
|
||||
transition: transform 0.3s;
|
||||
font-size: 12px;
|
||||
@ -628,7 +628,7 @@
|
||||
margin-left: 16px;
|
||||
color: #aaaaaa;
|
||||
cursor: pointer;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
font-size: 12px;
|
||||
}
|
||||
> em {
|
||||
|
@ -28,7 +28,7 @@
|
||||
> li {
|
||||
list-style: none;
|
||||
margin-right: 3px;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
font-size: 22px;
|
||||
cursor: pointer;
|
||||
}
|
||||
@ -111,7 +111,7 @@
|
||||
> li {
|
||||
list-style: none;
|
||||
margin-right: 4px;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
font-size: 17px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -44,7 +44,7 @@
|
||||
> li {
|
||||
list-style: none;
|
||||
margin-left: 3px;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
font-size: 34px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -99,7 +99,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #bbbbbb;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
@ -133,7 +133,7 @@
|
||||
.ivu-tag-text {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
transform: scale(0.9);
|
||||
font-size: 14px;
|
||||
padding-right: 3px;
|
||||
@ -184,7 +184,7 @@
|
||||
}
|
||||
.file-delete {
|
||||
padding-left: 12px;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
display: none;
|
||||
font-size: 14px;
|
||||
color: #aaaaaa;
|
||||
@ -200,7 +200,7 @@
|
||||
}
|
||||
&:hover {
|
||||
.file-delete {
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
@ -68,7 +68,7 @@
|
||||
font-weight: 600;
|
||||
font-size: 32px;
|
||||
}
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
font-size: 20px;
|
||||
}
|
||||
@ -114,7 +114,7 @@
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
color: #bbbbbb;
|
||||
font-size: 18px;
|
||||
}
|
||||
@ -132,7 +132,7 @@
|
||||
height: 22px;
|
||||
color: #aaaaaa;
|
||||
cursor: pointer;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
font-size: 13px;
|
||||
}
|
||||
> em {
|
||||
|
4
resources/assets/sass/pages/page-file.scss
vendored
4
resources/assets/sass/pages/page-file.scss
vendored
@ -38,7 +38,7 @@
|
||||
flex-shrink: 0;
|
||||
margin-left: 22px;
|
||||
cursor: pointer;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
@ -195,7 +195,7 @@
|
||||
&:before {
|
||||
display: block;
|
||||
content: "\e60b";
|
||||
font-family: "iconfont", "serif" !important;
|
||||
font-family: "taskfont", "serif" !important;
|
||||
font-size: 64px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
|
2
resources/assets/sass/pages/page-login.scss
vendored
2
resources/assets/sass/pages/page-login.scss
vendored
@ -89,7 +89,7 @@
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
color: #666666;
|
||||
.iconfont {
|
||||
.taskfont {
|
||||
margin-top: 1px;
|
||||
margin-left: 3px;
|
||||
transform: scale(0.8);
|
||||
|
15
resources/assets/sass/taskfont.scss
vendored
Normal file
15
resources/assets/sass/taskfont.scss
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
@font-face {
|
||||
font-family: 'taskfont'; /* Project id 2583385 */
|
||||
src: url('//at.alicdn.com/t/font_2583385_s6r5dbjuxi.woff2?t=1625128084843') format('woff2'),
|
||||
url('//at.alicdn.com/t/font_2583385_s6r5dbjuxi.woff?t=1625128084843') format('woff'),
|
||||
url('//at.alicdn.com/t/font_2583385_s6r5dbjuxi.ttf?t=1625128084843') format('truetype');
|
||||
}
|
||||
|
||||
.taskfont {
|
||||
font-family: "taskfont", "serif" !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-text-stroke-width: 0.2px;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user