From 33dbc6a161554f3a897f9e9273feb4f2c1b47381 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 15 十二月 2025 17:04:27 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
---
north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue | 92 +++++++++++++++++++++++++++++++---------------
1 files changed, 62 insertions(+), 30 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue b/north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue
index 0b54627..7cb8bb5 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue
@@ -6,7 +6,9 @@
} from '@element-plus/icons-vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import request from "@/utils/requestByFile"
+import {useI18n} from "vue-i18n";
+const { t } = useI18n()
const uploadRef = ref()
const fileList = ref([])
const converting = ref(false)
@@ -19,7 +21,8 @@
let result = ref(null)
let props = defineProps({
rowIndex:null,
- orderId:null
+ orderId:null,
+ state:null
})
const form = reactive({
@@ -44,7 +47,7 @@
request.post(`/orderFile/deleteOrderNumberFile/${props.orderId}/${props.rowIndex.orderNumber}`).then(res=>{
result.value = null
conversionResult.value = null
- ElMessage.success("鍒犻櫎鎴愬姛")
+ ElMessage.success(t("basicData.msg.deleteSuccess"))
})
}
@@ -72,9 +75,25 @@
return value;
});
- const uint8Array = Uint8Array(bytes);
- const file = File([uint8Array], 'a.dwg', { type:'application/x-dwg' })
- downloadFile(file);
+ const uint8Array = new Uint8Array(bytes);
+ const file = new File([uint8Array], `${props.orderId}-${props.rowIndex.orderNumber}.dwg`, { type:'application/x-dwg' })
+
+ const url = URL.createObjectURL(file);
+ // 鍒涘缓涓嬭浇閾炬帴
+ const a = document.createElement('a');
+ a.href = url;
+ a.download = file.name;
+ a.style.display = 'none';
+
+ // 娣诲姞鍒癉OM骞惰Е鍙戠偣鍑�
+ document.body.appendChild(a);
+ a.click();
+
+ // 娓呯悊璧勬簮
+ setTimeout(() => {
+ document.body.removeChild(a);
+ URL.revokeObjectURL(url);
+ }, 100);
} catch (error) {
console.error('瑙f瀽Java瀛楄妭鏁扮粍瀛楃涓叉椂鍑洪敊:', error);
throw new Error('鏃犳晥鐨凧ava瀛楄妭鏁扮粍鏍煎紡');
@@ -85,7 +104,7 @@
const loadSupportedFormats = async () => {
try {
if (fileList.value.length === 0) {
- ElMessage.warning('璇峰厛閫夋嫨瑕佷笂浼犵殑DWG鏂囦欢')
+ ElMessage.warning(t("order.msg.pleaseUploadPicture1"))
return
}
loadingFormats.value = true
@@ -93,19 +112,19 @@
converting.value = true
progressPercentage.value = 0
progressStatus.value = ''
- progressText.value = '鍑嗗涓婁紶...'
+ progressText.value = t("order.msg.pleaseUploadPicture2")
// 妯℃嫙杩涘害鏇存柊
const progressInterval = setInterval(() => {
if (progressPercentage.value < 80) {
progressPercentage.value += 10
- progressText.value = `涓婁紶涓�... ${progressPercentage.value}%`
+ progressText.value = t("order.msg.pleaseUploadPicture3")+progressPercentage.value+'%'
}
}, 500)
-
const data ={
- file:fileList.value[0].raw
+ file:fileList.value[0].raw,
+ name:fileList.value[0].raw.name
}
request.post(`/orderFile/updateOrderFileByOrderNumber/${props.orderId}/${props.rowIndex.orderNumber}`,data).then(res=>{
if (res.code === '200') {
@@ -115,7 +134,7 @@
clearInterval(progressInterval)
progressPercentage.value = 100
progressStatus.value = 'success'
- progressText.value = '涓婁紶瀹屾垚!'
+ progressText.value = t("order.msg.pleaseUploadPicture4")
uploadRef.value.clearFiles()
fileList.value = []
setTimeout(() => {
@@ -125,31 +144,43 @@
}
})
} catch (error) {
- ElMessage.error('涓婁紶澶辫触')
+ ElMessage.error(t("order.msg.pleaseUploadPicture5"))
} finally {
loadingFormats.value = false
}
}
+const fileTypeCheck = (file) => {
+ const fileName = file.raw.name.toLowerCase();
+ switch (true) {
+ case /\.dwg$/.test(fileName):
+ case /\.png$/.test(fileName):
+ case /\.jpg$/.test(fileName):
+ return true;
+ default:
+ return false;
+ }
+};
const handleFileChange = (file) => {
- console.log(file.type)
- if (!(file.raw.name.toLowerCase().endsWith('.dwg') || file.raw.name.toLowerCase().endsWith('.dxf'))) {
- ElMessage.error('璇烽�夋嫨DWG鎴朌XF鏍煎紡鐨勬枃浠�')
+ const fileTypeCheckBoole = fileTypeCheck(file)
+ if (!(fileTypeCheckBoole )) {
+ //ElMessage.error('璇烽�夋嫨DWG鎴朌XF鏍煎紡鐨勬枃浠�')
+ ElMessage.error(t("order.msg.pleaseUploadPicture6"))
uploadRef.value.clearFiles()
return
}
if (file.raw.size > 50 * 1024 * 1024) {
- ElMessage.error('鏂囦欢澶у皬涓嶈兘瓒呰繃50MB')
+ ElMessage.error(t("order.msg.pleaseUploadPicture7"))
uploadRef.value.clearFiles()
return
}
fileList.value = [file]
- ElMessage.success(`宸查�夋嫨鏂囦欢: ${file.name}`)
+ ElMessage.success(t("order.msg.pleaseUploadPicture8")+file.name)
}
const handleFileRemove = () => {
@@ -188,7 +219,7 @@
<div class="card-header">
<span class="header-title">
<el-icon><Document /></el-icon>
- DWG鏂囦欢涓婁紶
+ {{$t("order.msg.pleaseUploadPicture9")}}
</span>
</div>
@@ -206,16 +237,15 @@
:on-remove="handleFileRemove"
:file-list="fileList"
:limit="1"
- :accept="'.dwg' || '.dxf' "
:disabled="converting"
>
<el-icon class="el-icon--upload"><UploadFilled /></el-icon>
<div class="el-upload__text">
- 鎷栨嫿DWG鏂囦欢鍒版澶勬垨 <em>鐐瑰嚮閫夋嫨鏂囦欢</em>
+ {{$t("order.msg.pleaseUploadPicture10")}} <em>{{$t("order.msg.pleaseUploadPicture11")}}</em>
</div>
<template #tip>
<div class="el-upload__tip">
- 浠呮敮鎸� .dwg 鏍煎紡鏂囦欢锛屼笖鏂囦欢澶у皬涓嶈秴杩�50MB
+ {{$t("order.msg.pleaseUploadPicture12")}}
</div>
</template>
</el-upload>
@@ -228,27 +258,28 @@
type="primary"
:loading="converting"
@click="loadSupportedFormats"
- :disabled="!form.format"
+ :disabled="!form.format || props.state !== 1 || converting"
>
<template #icon>
<el-icon><MagicStick /></el-icon>
</template>
- 淇濆瓨
+ {{$t("basicData.save")}}
</el-button>
<el-button @click="handleReset"
- :loading="converting">
+ :loading="converting"
+ :disabled="props.state !== 1 || converting">
<template #icon>
<el-icon><RefreshLeft /></el-icon>
</template>
- 閲嶇疆
+ {{$t("craft.reset")}}
</el-button>
</div>
</div>
<!-- 杞崲杩涘害 -->
<div v-if="converting" class="conversion-progress">
- <el-divider content-position="left">涓婁紶杩涘害</el-divider>
+ <el-divider content-position="left">{{$t("order.msg.pleaseUploadPicture13")}}</el-divider>
<el-progress
:percentage="progressPercentage"
:status="progressStatus"
@@ -261,11 +292,11 @@
<!-- 杞崲缁撴灉 -->
<div v-if="conversionResult" class="conversion-result">
- <el-divider content-position="left">涓婁紶缁撴灉</el-divider>
+ <el-divider content-position="left">{{$t("order.msg.pleaseUploadPicture14")}}</el-divider>
<el-result
icon="success"
- :sub-title="`鏂囦欢宸叉垚鍔熻浆鏍煎紡`"
+ :sub-title='t("order.msg.pleaseUploadPicture15")'
>
<template #extra>
<div class="result-content">
@@ -298,14 +329,15 @@
><template #icon>
<el-icon><Download/></el-icon>
</template>
- 涓嬭浇
+ {{$t("order.msg.pleaseUploadPicture16")}}
</el-button>
<el-button
@click = 'deleteFile'
+ :disabled="props.state !== 1"
><template #icon>
<el-icon><Delete /></el-icon>
</template>
- 鍒犻櫎
+ {{$t("basicData.delete")}}
</el-button>
</div>
</div>
--
Gitblit v1.8.0