From 9a61e46d96536f3299e57f7259ae1c9972256ec6 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 30 九月 2025 09:42:09 +0800
Subject: [PATCH] 1. 隐藏未完成的账户匹配页面 2. 根据第三方新的接口文档修改接口url地址
---
src/views/fysp/check/components/ArbitraryPhoto.vue | 95 +++++++++++++++++++++++++++++++++--------------
1 files changed, 67 insertions(+), 28 deletions(-)
diff --git a/src/views/fysp/check/components/ArbitraryPhoto.vue b/src/views/fysp/check/components/ArbitraryPhoto.vue
index 55b11a5..012ae5c 100644
--- a/src/views/fysp/check/components/ArbitraryPhoto.vue
+++ b/src/views/fysp/check/components/ArbitraryPhoto.vue
@@ -14,7 +14,12 @@
@contextmenu="closeContextMenu"
class="container"
> -->
- <div v-if="showMenu" ref="menu" :style="menuStyle" class="context-menu">
+ <div
+ v-if="showMenu && !menuLoading"
+ ref="menu"
+ :style="menuStyle"
+ class="context-menu"
+ >
<template v-for="(item, index) in menuItems" :key="index">
<el-popover v-if="item.children" placement="right-start" trigger="hover">
<template #reference>
@@ -58,22 +63,12 @@
loading: true,
// 鍙抽敭鍥剧墖寮瑰嚭鑿滃崟鎺у埗
showMenu: false,
+ menuLoading: true,
menuStyle: undefined,
- // menuItems: [
- // { label: '澶嶅埗鍥剧墖', action: 'copy' },
- // {
- // label: '绉诲姩鍒�',
- // children: [
- // {
- // action: 'move',
- // label: v.typeName,
- // value: v.typeId
- // }
- // ]
- // }
- // ],
+ allMoveActions: [],
closeContextMenuListenr: undefined,
// 鍙抽敭閫変腑鐨勫浘鐗�
+ selectedFileElement: undefined,
selectedFile: undefined,
selectedIndex: undefined,
selectedTypeId: undefined
@@ -81,21 +76,14 @@
},
computed: {
menuItems() {
- const sceneTypeId = this.subtask.sceneTypeId;
- const items = enumMediaFile(sceneTypeId, false)
- .filter((v) => {
- return v.value != this.selectedTypeId;
- })
- .map((v) => {
- return {
- action: 'move',
- label: v.label,
- value: v.value
- };
- });
return [
- // { label: '澶嶅埗鍥剧墖', action: 'copy' },
- { label: '绉诲姩鍒�', children: items }
+ // { label: '澶嶅埗鍒板壀璐存澘', action: 'copy' },
+ {
+ label: '绉诲姩鍒�',
+ children: this.allMoveActions.filter((v) => {
+ return v.value != this.selectedTypeId;
+ })
+ }
];
}
},
@@ -112,6 +100,8 @@
}
};
document.addEventListener('click', this.closeContextMenuListenr);
+
+ this.initMenuItems();
},
unmounted() {
document.removeEventListener('click', this.closeContextMenuListenr);
@@ -158,6 +148,7 @@
left: `${event.clientX}px`,
top: `${event.clientY}px`
};
+ this.selectedFileElement = event.target;
this.selectedTypeId = typeId;
this.selectedIndex = index;
this.selectedFile = this.typesMap.get(typeId)[index];
@@ -168,6 +159,7 @@
handleMenuItem(item) {
switch (item.action) {
case 'copy':
+ this.drawImageToCanvas();
break;
case 'move':
this.selectedFile.data.businesstypeid = item.value;
@@ -217,6 +209,53 @@
// }
// this.selectedFile.loading = false;
// }, 2000);
+ },
+ drawImageToCanvas() {
+ const canvas = document.createElement('canvas');
+ const ctx = canvas.getContext('2d');
+ const img = this.selectedFileElement; // 鑾峰彇DOM寮曠敤
+ // img.crossOrigin = 'Anonymous';
+ canvas.width = img.naturalWidth;
+ canvas.height = img.naturalHeight;
+ ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
+ this.copyCanvasToClipboard(canvas);
+ const dataUrl = canvas.toDataURL('image/png'); // 鍙互閫夋嫨鍏朵粬鏍煎紡濡�'image/jpeg'
+ // 鍒涘缓涓�涓复鏃剁殑textarea鍏冪礌鏉ュ鍒舵枃鏈�
+ const tempTextArea = document.createElement('textarea');
+ document.body.appendChild(tempTextArea);
+ tempTextArea.value = dataUrl;
+ tempTextArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(tempTextArea);
+ },
+ copyCanvasToClipboard(canvas) {
+ canvas.toBlob((blob) => {
+ const item = new ClipboardItem({ 'image/png': blob }); // 浣犲彲浠ユ牴鎹渶瑕佹敼鍙樻牸寮忥紝濡� "image/jpeg"
+ navigator.clipboard.write([item]).then(
+ () => {
+ console.log('Image copied to clipboard');
+ },
+ (err) => {
+ console.error('Could not copy image: ', err);
+ }
+ );
+ }, 'image/png'); // 鍚屾牱锛岃繖閲屼篃鍙互鎸囧畾鍏朵粬鏍煎紡锛屽 'image/jpeg'
+ },
+ // 鍒濆鍖栧満鏅浘鐗囩殑绫诲瀷鑿滃崟
+ initMenuItems() {
+ this.menuLoading = true;
+ const sceneTypeId = this.subtask.sceneTypeId;
+ enumMediaFile(sceneTypeId, false)
+ .then((res) => {
+ this.allMoveActions = res.map((v) => {
+ return {
+ action: 'move',
+ label: v.label,
+ value: v.value
+ };
+ });
+ })
+ .finally(() => (this.menuLoading = false));
}
}
};
--
Gitblit v1.9.3