|
@@ -1,4 +1,4 @@
|
|
|
-import { Row, showToast } from "vant";
|
|
|
+import { Row, showToast, showConfirmDialog } from "vant";
|
|
|
import { defineComponent, onMounted, reactive, nextTick, ref } from "vue";
|
|
|
import state from "/src/state";
|
|
|
import request from "/src/utils/request";
|
|
@@ -10,6 +10,14 @@ import "@varlet/ui/es/button-group/style";
|
|
|
import "@varlet/ui/es/switch/style";
|
|
|
import { storeData } from "/src/store";
|
|
|
import rightHideIcon from './image/right_hide_icon.png';
|
|
|
+import editIcon from './image/edit.png';
|
|
|
+import editCloseIcon from './image/edit_close.png';
|
|
|
+import editSaveIcon from './image/edit_save.png';
|
|
|
+import editPreIcon from './image/edit_pre.png';
|
|
|
+import editDeleteIcon from './image/edit_delete.png';
|
|
|
+import editResetIcon from './image/edit_reset.png';
|
|
|
+import editReduceIcon from './image/edit_reduce.png';
|
|
|
+import editAddIcon from './image/edit_add.png';
|
|
|
|
|
|
let extStyleConfigJson: any = {};
|
|
|
const clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
|
@@ -160,6 +168,21 @@ function getBox(ele: SVGAElement) {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
+// 切换开关
|
|
|
+const switchMoveState = () => {
|
|
|
+ // 如果编辑过,没有保存,点击取消状态,需要提醒用户是否取消
|
|
|
+ if (moveData.open && undoData.undoList.length) {
|
|
|
+ showConfirmDialog({
|
|
|
+ title: "温馨提示",
|
|
|
+ message: "您有新的修改还未保存,取消后本次编辑的内容将不会保存",
|
|
|
+ }).then(() => {
|
|
|
+ moveData.open = false
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ moveData.open = !moveData.open
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// 过滤数据
|
|
|
export const filterMoveData = async () => {
|
|
|
const examSongId = state.examSongId;
|
|
@@ -217,6 +240,8 @@ export const filterMoveData = async () => {
|
|
|
});
|
|
|
if (res && res.code == 200) {
|
|
|
showToast("保存成功");
|
|
|
+ undoData.undoList = [];
|
|
|
+ undoData.activeItem = null;
|
|
|
}
|
|
|
clearActiveModel();
|
|
|
}
|
|
@@ -552,7 +577,7 @@ export default defineComponent({
|
|
|
return () => (
|
|
|
<div class={[moveData.open ? "" : styles.moveDisabled]}>
|
|
|
<div id="toolBox">
|
|
|
- <div class={[styles.toolBox, !showToolBox.value && styles.hideTool]} >
|
|
|
+ {/* <div class={[styles.toolBox, !showToolBox.value && styles.hideTool]} >
|
|
|
<Switch v-model={moveData.open} />
|
|
|
{moveData.open && (
|
|
|
<>
|
|
@@ -562,12 +587,6 @@ export default defineComponent({
|
|
|
<Button onClick={() => handleAddAndSub('sub')}>减</Button>
|
|
|
</ButtonGroup>
|
|
|
)}
|
|
|
- {/* <ButtonGroup size="small">
|
|
|
-
|
|
|
- <Button>
|
|
|
- <Icon name="arrow-down" style={{ transform: "rotate(-90deg)" }} />
|
|
|
- </Button>
|
|
|
- </ButtonGroup> */}
|
|
|
<Button size="small" onClick={handleUndo} disabled={undoData.undoList.length ? false : true}>
|
|
|
<Icon name="arrow-down" style={{ transform: "rotate(90deg)" }} />
|
|
|
</Button>
|
|
@@ -593,7 +612,37 @@ export default defineComponent({
|
|
|
class={[styles.rightHideIcon, !showToolBox.value ? styles.rightIconShow : '']}
|
|
|
src={rightHideIcon}
|
|
|
onClick={() => showToolBox.value = true } />
|
|
|
- }
|
|
|
+ } */}
|
|
|
+ <div class={[styles.editToolBox, !moveData.open && styles.itemDisabled]}>
|
|
|
+ <div class={[styles.editItem, styles.canEdit]} onClick={switchMoveState}>
|
|
|
+ <img src={moveData.open ? editCloseIcon : editIcon} />
|
|
|
+ <span>{moveData.open ? '取消' : '编辑'}</span>
|
|
|
+ </div>
|
|
|
+ <div class={styles.editItem} onClick={filterMoveData}>
|
|
|
+ <img src={editSaveIcon} />
|
|
|
+ <span>保存</span>
|
|
|
+ </div>
|
|
|
+ <div class={[styles.editItem, !undoData.undoList.length && styles.disabled]} onClick={handleUndo}>
|
|
|
+ <img src={editPreIcon} />
|
|
|
+ <span>撤回</span>
|
|
|
+ </div>
|
|
|
+ <div class={[styles.editItem, moveData.activeIndex <= -1 && styles.disabled]} onClick={handleDeleteMoveNote}>
|
|
|
+ <img src={editDeleteIcon} />
|
|
|
+ <span>{moveData.modelList[moveData.activeIndex]?.isDelete ? '回显' : '删除'}</span>
|
|
|
+ </div>
|
|
|
+ <div class={styles.editItem} onClick={resetMoveNote}>
|
|
|
+ <img src={editResetIcon} />
|
|
|
+ <span>重置</span>
|
|
|
+ </div>
|
|
|
+ {
|
|
|
+ moveData.tool.isAddAndSub &&
|
|
|
+ <div class={styles.extraItem}>
|
|
|
+ <img src={editReduceIcon} onClick={() => handleAddAndSub('sub')} />
|
|
|
+ <img src={editAddIcon} onClick={() => handleAddAndSub('add')} />
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+
|
|
|
+ </div>
|
|
|
</div>
|
|
|
{moveData.modelList.map((item: any, index: number) => {
|
|
|
return (
|