mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-31 08:10:21 +00:00
perf: 移动端支持快速编辑描述选择
This commit is contained in:
parent
13edea3449
commit
afcbd6af92
@ -22,10 +22,11 @@
|
|||||||
transfer>
|
transfer>
|
||||||
<div :style="{userSelect:operateVisible ? 'none' : 'auto', height: operateStyles.height}"></div>
|
<div :style="{userSelect:operateVisible ? 'none' : 'auto', height: operateStyles.height}"></div>
|
||||||
<DropdownMenu slot="list">
|
<DropdownMenu slot="list">
|
||||||
|
<DropdownItem v-if="operateMenu.checked" @click.native="onLiPreview">{{ $L(operateMenu.checked === 'checked' ? '标记未选' : '标记已选') }}</DropdownItem>
|
||||||
|
<DropdownItem v-if="operateMenu.link" @click.native="onLinkPreview">{{ $L('打开链接') }}</DropdownItem>
|
||||||
|
<DropdownItem v-if="operateMenu.img" @click.native="onImagePreview">{{ $L('查看图片') }}</DropdownItem>
|
||||||
<DropdownItem @click.native="onEditing">{{ $L('编辑描述') }}</DropdownItem>
|
<DropdownItem @click.native="onEditing">{{ $L('编辑描述') }}</DropdownItem>
|
||||||
<DropdownItem @click.native="onHistory">{{ $L('历史记录') }}</DropdownItem>
|
<DropdownItem @click.native="onHistory">{{ $L('历史记录') }}</DropdownItem>
|
||||||
<DropdownItem v-if="operateLink" @click.native="onLinkPreview">{{ $L('打开链接') }}</DropdownItem>
|
|
||||||
<DropdownItem v-if="operateImg" @click.native="onImagePreview">{{ $L('查看图片') }}</DropdownItem>
|
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
</div>
|
</div>
|
||||||
@ -101,8 +102,12 @@ export default {
|
|||||||
|
|
||||||
operateStyles: {},
|
operateStyles: {},
|
||||||
operateVisible: false,
|
operateVisible: false,
|
||||||
operateLink: null,
|
operateMenu: {
|
||||||
operateImg: null,
|
target: null,
|
||||||
|
checked: null,
|
||||||
|
link: null,
|
||||||
|
img: null,
|
||||||
|
},
|
||||||
|
|
||||||
listener: null,
|
listener: null,
|
||||||
};
|
};
|
||||||
@ -185,8 +190,13 @@ export default {
|
|||||||
}
|
}
|
||||||
event.stopPropagation()
|
event.stopPropagation()
|
||||||
this.operateVisible = false;
|
this.operateVisible = false;
|
||||||
this.operateLink = event.target.tagName === "A" ? event.target.href : null;
|
this.operateMenu.target = event.target;
|
||||||
this.operateImg = event.target.tagName === "IMG" ? event.target.src : null;
|
this.operateMenu.checked = null;
|
||||||
|
if (event.target.tagName === "LI" && event.target.parentNode.classList.contains("tox-checklist")) {
|
||||||
|
this.operateMenu.checked = event.target.classList.contains("tox-checklist--checked") ? 'checked' : 'unchecked';
|
||||||
|
}
|
||||||
|
this.operateMenu.link = event.target.tagName === "A" ? event.target.href : null;
|
||||||
|
this.operateMenu.img = event.target.tagName === "IMG" ? event.target.src : null;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
const rect = this.$el.getBoundingClientRect();
|
const rect = this.$el.getBoundingClientRect();
|
||||||
this.operateStyles = {
|
this.operateStyles = {
|
||||||
@ -257,9 +267,21 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onLiPreview() {
|
||||||
|
if (!this.operateMenu.checked) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.operateMenu.checked === 'checked') {
|
||||||
|
this.operateMenu.target.classList.remove("tox-checklist--checked");
|
||||||
|
} else {
|
||||||
|
this.operateMenu.target.classList.add("tox-checklist--checked");
|
||||||
|
}
|
||||||
|
this.$emit('on-blur', 'force');
|
||||||
|
},
|
||||||
|
|
||||||
onLinkPreview() {
|
onLinkPreview() {
|
||||||
if (this.operateLink) {
|
if (this.operateMenu.link) {
|
||||||
window.open(this.operateLink);
|
window.open(this.operateMenu.link);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -269,7 +291,7 @@ export default {
|
|||||||
$A.messageWarning("没有可预览的图片")
|
$A.messageWarning("没有可预览的图片")
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let index = Math.max(0, array.findIndex(item => item.src === this.operateImg));
|
let index = Math.max(0, array.findIndex(item => item.src === this.operateMenu.img));
|
||||||
this.$store.dispatch("previewImage", {index, list: array})
|
this.$store.dispatch("previewImage", {index, list: array})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -141,7 +141,7 @@
|
|||||||
:value="taskContent"
|
:value="taskContent"
|
||||||
:placeholder="$L('详细描述...')"
|
:placeholder="$L('详细描述...')"
|
||||||
@on-history="onHistory"
|
@on-history="onHistory"
|
||||||
@on-blur="updateBlur('content')"/>
|
@on-blur="updateBlur('content', $event)"/>
|
||||||
<Form class="items" label-position="left" label-width="auto" @submit.native.prevent>
|
<Form class="items" label-position="left" label-width="auto" @submit.native.prevent>
|
||||||
<FormItem v-if="taskDetail.p_name">
|
<FormItem v-if="taskDetail.p_name">
|
||||||
<div class="item-label" slot="label">
|
<div class="item-label" slot="label">
|
||||||
@ -1083,20 +1083,20 @@ export default {
|
|||||||
if (content == this.taskContent.replace(/\s+original-(width|height)="[^"]*"/g, "")) {
|
if (content == this.taskContent.replace(/\s+original-(width|height)="[^"]*"/g, "")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this.windowTouch) {
|
if (!this.windowTouch || params === 'force') {
|
||||||
$A.modalConfirm({
|
|
||||||
title: '温馨提示',
|
|
||||||
content: '是否保存编辑内容?',
|
|
||||||
onOk: () => {
|
|
||||||
this.updateData("contentSave", {content})
|
|
||||||
},
|
|
||||||
onCancel: () => {
|
|
||||||
this.$refs.desc.updateContent(this.taskContent);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
this.updateData("contentSave", {content})
|
this.updateData("contentSave", {content})
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
$A.modalConfirm({
|
||||||
|
title: '温馨提示',
|
||||||
|
content: '是否保存编辑内容?',
|
||||||
|
onOk: () => {
|
||||||
|
this.updateData("contentSave", {content})
|
||||||
|
},
|
||||||
|
onCancel: () => {
|
||||||
|
this.$refs.desc.updateContent(this.taskContent);
|
||||||
|
}
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'contentSave':
|
case 'contentSave':
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user