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/src/main/java/com/example/erp/controller/sd/OrderFileController.java | 8
north-glass-erp/northglass-erp/src/lang/en.js | 36 +++
north-glass-erp/northglass-erp/src/views/system/userLog/UserListLog.vue | 92 -------
north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue | 60 +++--
north-glass-erp/northglass-erp/src/views/system/userLog/UserLog.vue | 2
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue | 4
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue | 2
north-glass-erp/northglass-erp/src/lang/zh.js | 36 +++
north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductInventoryReport.vue | 2
north-glass-erp/northglass-erp/src/components/BasicTable.vue | 2
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue | 118 ++++++++++
north-glass-erp/northglass-erp/src/lang/ar.js | 36 +++
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue | 2
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue | 4
north-glass-erp/northglass-erp/src/lang/ru.js | 37 +++
north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue | 4
north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java | 26 ++
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java | 79 +++++--
north-glass-erp/northglass-erp/src/views/sd/basicData/SearchProcessAttributeConfig.vue | 16
north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductOutboundReport.vue | 2
north-glass-erp/northglass-erp/src/lang/kr.js | 37 +++
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProjectDetailSmallPiece.vue | 4
north-glass-erp/northglass-erp/src/views/sd/basicData/BasicData.vue | 2
23 files changed, 441 insertions(+), 170 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/BasicTable.vue b/north-glass-erp/northglass-erp/src/components/BasicTable.vue
index 3318e50..9bd61fa 100644
--- a/north-glass-erp/northglass-erp/src/components/BasicTable.vue
+++ b/north-glass-erp/northglass-erp/src/components/BasicTable.vue
@@ -184,7 +184,7 @@
// 3. 瀹氫箟鐖剁骇鍒梡rocessList锛屽寘鍚姩鎬佸瓙鍒�
const processList = {
- title: t('鍏朵粬鍒�'),
+ title: t('basicData.otherColumns'),
field: 'process',
children: otherColumns // 灏嗗姩鎬佸垪浣滀负瀛愬垪
};
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue b/north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue
index c8402bf..1ddb7d9 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue
@@ -41,7 +41,7 @@
<div style="margin-top: 10px">
- <el-button @click="emitParent()" style="width: 80px;height: 30px" type="primary" size="small">淇濆瓨</el-button>
+ <el-button @click="emitParent()" style="width: 80px;height: 30px" type="primary" size="small">{{$t('basicData.save')}}</el-button>
</div>
</div>
@@ -190,7 +190,7 @@
if(dataList.value.edgingProcess.edgingType!=null){
emit('getEdgingProcess', dataList.value,dataList.value.edgingProcess.edgingType)
}else{
- ElMessage.error(t('璇烽�夋嫨纾ㄨ竟绫诲瀷'))
+ ElMessage.error(t('order.msg.pleaseProcessType'))
}
}
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 6e039b2..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)
@@ -45,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"))
})
}
@@ -102,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
@@ -110,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') {
@@ -132,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(() => {
@@ -142,32 +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)
- if (!(file.raw.name.toLowerCase().endsWith('.dwg') )) {
+ const fileTypeCheckBoole = fileTypeCheck(file)
+ if (!(fileTypeCheckBoole )) {
//ElMessage.error('璇烽�夋嫨DWG鎴朌XF鏍煎紡鐨勬枃浠�')
- ElMessage.error('璇烽�夋嫨DWG鏍煎紡鐨勬枃浠�')
+ 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 = () => {
@@ -206,7 +219,7 @@
<div class="card-header">
<span class="header-title">
<el-icon><Document /></el-icon>
- DWG鏂囦欢涓婁紶
+ {{$t("order.msg.pleaseUploadPicture9")}}
</span>
</div>
@@ -224,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>
@@ -251,7 +263,7 @@
<template #icon>
<el-icon><MagicStick /></el-icon>
</template>
- 淇濆瓨
+ {{$t("basicData.save")}}
</el-button>
<el-button @click="handleReset"
@@ -260,14 +272,14 @@
<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"
@@ -280,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">
@@ -317,7 +329,7 @@
><template #icon>
<el-icon><Download/></el-icon>
</template>
- 涓嬭浇
+ {{$t("order.msg.pleaseUploadPicture16")}}
</el-button>
<el-button
@click = 'deleteFile'
@@ -325,7 +337,7 @@
><template #icon>
<el-icon><Delete /></el-icon>
</template>
- 鍒犻櫎
+ {{$t("basicData.delete")}}
</el-button>
</div>
</div>
diff --git a/north-glass-erp/northglass-erp/src/lang/ar.js b/north-glass-erp/northglass-erp/src/lang/ar.js
index 9fec150..5ab5eb1 100644
--- a/north-glass-erp/northglass-erp/src/lang/ar.js
+++ b/north-glass-erp/northglass-erp/src/lang/ar.js
@@ -76,6 +76,7 @@
remarks2:'澶囨敞2',
remarks3:'澶囨敞3',
remarks4:'澶囨敞4',
+ otherColumns:'鍏朵粬鍒�',
msg:{
max255:'兀丿禺賱 255 丨乇賮賸丕 賰丨丿 兀賯氐賶',
max10:"鏈�澶氳緭鍏�10涓瓧绗�",
@@ -327,7 +328,24 @@
updateOrderIdErrorDiscrepancyInLength:'杈撳叆璁㈠崟鍙烽暱搴︿笉绗�',
updateOrderIdErrorInputNumber:'璇疯緭鍏ユ暟瀛�',
updateOrderIdErrorNotNo1:'涓嶈兘淇敼绗竴涓崟瀛�',
- updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒'
+ updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒',
+ pleaseProcessType:'璇烽�夋嫨纾ㄨ竟绫诲瀷',
+ pleaseUploadPicture1:"璇峰厛閫夋嫨瑕佷笂浼犵殑DWG鏂囦欢鎴栧浘鐗囨枃浠�",
+ pleaseUploadPicture2:"鍑嗗涓婁紶...",
+ pleaseUploadPicture3:"涓婁紶涓�...",
+ pleaseUploadPicture4:"涓婁紶瀹屾垚!",
+ pleaseUploadPicture5:"涓婁紶澶辫触!",
+ pleaseUploadPicture6:"璇烽�夋嫨DWG鏂囦欢鎴朖PG銆丳NG鏍煎紡鐨勫浘鐗囨枃浠�",
+ pleaseUploadPicture7:"鏂囦欢澶у皬涓嶈兘瓒呰繃50MB",
+ pleaseUploadPicture8:"宸查�夋嫨鏂囦欢:",
+ pleaseUploadPicture9:"鏂囦欢涓婁紶",
+ pleaseUploadPicture10:"鎷栨嫿鏂囦欢鍒版澶勬垨",
+ pleaseUploadPicture11:"鐐瑰嚮閫夋嫨鏂囦欢",
+ pleaseUploadPicture12:"浠呮敮鎸� .dwg銆�.jpg銆�.png 鏍煎紡鏂囦欢锛屼笖鏂囦欢澶у皬涓嶈秴杩�50MB",
+ pleaseUploadPicture13:"涓婁紶杩涘害",
+ pleaseUploadPicture14:"涓婁紶缁撴灉",
+ pleaseUploadPicture15:"鏂囦欢宸叉垚鍔熻浆鏍煎紡",
+ pleaseUploadPicture16:"涓嬭浇",
},
preciseMode:'绮剧‘妯″紡',
ambiguityModels:'妯$硦妯″紡',
@@ -337,6 +355,7 @@
layer:'鍗曠墖妯″紡',
notFinish:'寰呭畬鎴�',
processCardCollect:'娴佺▼鍗℃眹鎬�',
+ fileUpload:'鏂囦欢涓婁紶'
},
searchOrder:{
@@ -585,6 +604,8 @@
quantity:'宸ョ▼鐢ㄦ暟閲�',
print1:'11鍒�4琛�',
print2:'6琛�3鍒�',
+ glassId:'鐜荤拑缂栧彿',
+ polysId:'灏忕墖搴忓彿',
msg:{
msg1:'娴佺▼鍗″垱寤哄け璐�',
msg2:'璇疯緭鍏ュ皬浜庣瓑浜庡緟鍒嗘暟閲忕殑鏁板瓧',
@@ -915,6 +936,7 @@
pleaseMsg1:'璁㈠崟瀛樺湪鍏朵粬閲戦鍗曚环娌℃湁濉啓',
print1:'娲涢槼鎵撳嵃鏃犲昂瀵�',
print2:'娲涢槼鎵撳嵃鏈夊昂瀵�',
+ orderAdd:'璁㈠崟娣诲姞',
},
replenish:{
@@ -1000,10 +1022,19 @@
changeUserName:'鬲毓丿賷賱 丕爻賲 丕賱賲爻鬲禺丿賲',
userNameCannotBeEmpty:'賱丕 賷賲賰賳 丕賳 賷賰賵賳 丕爻賲 丕賱賲爻鬲禺丿賲 賮丕乇睾丕賸',
},
+ userLog:{
+ page:{
+ userListLog:'鏃ュ織棣栭〉',
+ },
+ loginName:'鐧诲綍鍚�',
+ userName:'鐢ㄦ埛鍚�',
+ loginDate:'鐧诲綍鏃堕棿',
+ },
orderBasicData:{
page:{
searchOrderBasicData:'丕賱賳賵毓 丕賱兀爻丕爻賷',
searchGlassType:'賳賵毓 丕賱夭噩丕噩',
+ searchProcessAttributeConfig:'宸ヨ壓灞炴�х被鍒�',
},
glassCategory:'賳賵毓 丕賱夭噩丕噩',
order:'胤賱亘',
@@ -1044,6 +1075,9 @@
laminatingProcessB:'涓┖鍚庡悎鐗囧伐搴�',
laminatingProcessC:'澶硅兌宸ュ簭',
laminatingProcessD:'涓┖宸ュ簭',
+ please1:'璇烽�夋嫨绫诲埆',
+ please2:'璇疯緭鍏ュ悕绉�',
+ please3:'璇疯緭鍏ュ埆鍚�',
},
machine:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/en.js b/north-glass-erp/northglass-erp/src/lang/en.js
index 29f9e6e..3131fbd 100644
--- a/north-glass-erp/northglass-erp/src/lang/en.js
+++ b/north-glass-erp/northglass-erp/src/lang/en.js
@@ -76,6 +76,7 @@
remarks2:'澶囨敞2',
remarks3:'澶囨敞3',
remarks4:'澶囨敞4',
+ otherColumns:'鍏朵粬鍒�',
msg:{
max255:"The value contains a maximum of 255 characters",
max10:"鏈�澶氳緭鍏�10涓瓧绗�",
@@ -327,7 +328,24 @@
updateOrderIdErrorDiscrepancyInLength:'杈撳叆璁㈠崟鍙烽暱搴︿笉绗�',
updateOrderIdErrorInputNumber:'璇疯緭鍏ユ暟瀛�',
updateOrderIdErrorNotNo1:'涓嶈兘淇敼绗竴涓崟瀛�',
- updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒'
+ updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒',
+ pleaseProcessType:'璇烽�夋嫨纾ㄨ竟绫诲瀷',
+ pleaseUploadPicture1:"璇峰厛閫夋嫨瑕佷笂浼犵殑DWG鏂囦欢鎴栧浘鐗囨枃浠�",
+ pleaseUploadPicture2:"鍑嗗涓婁紶...",
+ pleaseUploadPicture3:"涓婁紶涓�...",
+ pleaseUploadPicture4:"涓婁紶瀹屾垚!",
+ pleaseUploadPicture5:"涓婁紶澶辫触!",
+ pleaseUploadPicture6:"璇烽�夋嫨DWG鏂囦欢鎴朖PG銆丳NG鏍煎紡鐨勫浘鐗囨枃浠�",
+ pleaseUploadPicture7:"鏂囦欢澶у皬涓嶈兘瓒呰繃50MB",
+ pleaseUploadPicture8:"宸查�夋嫨鏂囦欢:",
+ pleaseUploadPicture9:"鏂囦欢涓婁紶",
+ pleaseUploadPicture10:"鎷栨嫿鏂囦欢鍒版澶勬垨",
+ pleaseUploadPicture11:"鐐瑰嚮閫夋嫨鏂囦欢",
+ pleaseUploadPicture12:"浠呮敮鎸� .dwg銆�.jpg銆�.png 鏍煎紡鏂囦欢锛屼笖鏂囦欢澶у皬涓嶈秴杩�50MB",
+ pleaseUploadPicture13:"涓婁紶杩涘害",
+ pleaseUploadPicture14:"涓婁紶缁撴灉",
+ pleaseUploadPicture15:"鏂囦欢宸叉垚鍔熻浆鏍煎紡",
+ pleaseUploadPicture16:"涓嬭浇",
},
preciseMode:'绮剧‘妯″紡',
ambiguityModels:'妯$硦妯″紡',
@@ -337,6 +355,7 @@
layer:'鍗曠墖妯″紡',
notFinish:'寰呭畬鎴�',
processCardCollect:'娴佺▼鍗℃眹鎬�',
+ fileUpload:'鏂囦欢涓婁紶'
},
searchOrder:{
@@ -585,6 +604,8 @@
quantity:'宸ョ▼鐢ㄦ暟閲�',
print1:'11鍒�4琛�',
print2:'6琛�3鍒�',
+ glassId:'鐜荤拑缂栧彿',
+ polysId:'灏忕墖搴忓彿',
msg:{
msg1:'娴佺▼鍗″垱寤哄け璐�',
msg2:'璇疯緭鍏ュ皬浜庣瓑浜庡緟鍒嗘暟閲忕殑鏁板瓧',
@@ -915,6 +936,7 @@
pleaseMsg1:'There are other amounts in the order and the unit price is not filled in',
print1:'娲涢槼鎵撳嵃鏃犲昂瀵�',
print2:'娲涢槼鎵撳嵃鏈夊昂瀵�',
+ orderAdd:'璁㈠崟娣诲姞',
},
replenish:{
@@ -1000,10 +1022,19 @@
changeUserName:'Modifying a user name',
userNameCannotBeEmpty:'The user name cannot be empty',
},
+ userLog:{
+ page:{
+ userListLog:'鏃ュ織棣栭〉',
+ },
+ loginName:'鐧诲綍鍚�',
+ userName:'鐢ㄦ埛鍚�',
+ loginDate:'鐧诲綍鏃堕棿',
+ },
orderBasicData:{
page:{
searchOrderBasicData:'Base type',
searchGlassType:'Type of glass',
+ searchProcessAttributeConfig:'宸ヨ壓灞炴�х被鍒�',
},
glassCategory:'Type of glass',
order:'Order',
@@ -1044,6 +1075,9 @@
laminatingProcessB:'涓┖鍚庡悎鐗囧伐搴�',
laminatingProcessC:'澶硅兌宸ュ簭',
laminatingProcessD:'涓┖宸ュ簭',
+ please1:'璇烽�夋嫨绫诲埆',
+ please2:'璇疯緭鍏ュ悕绉�',
+ please3:'璇疯緭鍏ュ埆鍚�',
},
machine:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/kr.js b/north-glass-erp/northglass-erp/src/lang/kr.js
index c808376..7a9a01b 100644
--- a/north-glass-erp/northglass-erp/src/lang/kr.js
+++ b/north-glass-erp/northglass-erp/src/lang/kr.js
@@ -76,6 +76,7 @@
remarks2:'澶囨敞2',
remarks3:'澶囨敞3',
remarks4:'澶囨敞4',
+ otherColumns:'鍏朵粬鍒�',
msg:{
max255:"斓滊寑 255鞛� 鞛呺牓 臧�電�",
max10:"鏈�澶氳緭鍏�10涓瓧绗�",
@@ -327,7 +328,24 @@
updateOrderIdErrorDiscrepancyInLength:'欤茧氩堩樃 鞛愲靾� 攵堨澕旃�',
updateOrderIdErrorInputNumber:'靾瀽 鞛呺牓 頃勳殧',
updateOrderIdErrorNotNo1:'觳� 氩堨Ц 頃 靾橃爼 攵堦皜',
- updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒'
+ updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒',
+ pleaseProcessType:'璇烽�夋嫨纾ㄨ竟绫诲瀷',
+ pleaseUploadPicture1:"璇峰厛閫夋嫨瑕佷笂浼犵殑DWG鏂囦欢鎴栧浘鐗囨枃浠�",
+ pleaseUploadPicture2:"鍑嗗涓婁紶...",
+ pleaseUploadPicture3:"涓婁紶涓�...",
+ pleaseUploadPicture4:"涓婁紶瀹屾垚!",
+ pleaseUploadPicture5:"涓婁紶澶辫触!",
+ pleaseUploadPicture6:"璇烽�夋嫨DWG鏂囦欢鎴朖PG銆丳NG鏍煎紡鐨勫浘鐗囨枃浠�",
+ pleaseUploadPicture7:"鏂囦欢澶у皬涓嶈兘瓒呰繃50MB",
+ pleaseUploadPicture8:"宸查�夋嫨鏂囦欢:",
+ pleaseUploadPicture9:"鏂囦欢涓婁紶",
+ pleaseUploadPicture10:"鎷栨嫿鏂囦欢鍒版澶勬垨",
+ pleaseUploadPicture11:"鐐瑰嚮閫夋嫨鏂囦欢",
+ pleaseUploadPicture12:"浠呮敮鎸� .dwg銆�.jpg銆�.png 鏍煎紡鏂囦欢锛屼笖鏂囦欢澶у皬涓嶈秴杩�50MB",
+ pleaseUploadPicture13:"涓婁紶杩涘害",
+ pleaseUploadPicture14:"涓婁紶缁撴灉",
+ pleaseUploadPicture15:"鏂囦欢宸叉垚鍔熻浆鏍煎紡",
+ pleaseUploadPicture16:"涓嬭浇",
},
preciseMode:'绮剧‘妯″紡',
ambiguityModels:'妯$硦妯″紡',
@@ -337,6 +355,7 @@
layer:'鍗曠墖妯″紡',
notFinish:'寰呭畬鎴�',
processCardCollect:'娴佺▼鍗℃眹鎬�',
+ fileUpload:'鏂囦欢涓婁紶'
},
searchOrder:{
@@ -366,7 +385,6 @@
isStorage:'鞛呹碃 鞕勲霅� 欤茧鞚� 鞁滌姢韰� 霅橂弻毽赴臧� 攵堦皜電� 頃╇媹雼�.',
BackSure:'頃措嫻 頂勲靹胳姢毳� 鞗愴伌毽溂搿� 霅橂弻毽嫓瓴犾姷雼堦箤?',
filterError:'璇疯緭鍏ユ纭牸寮忕殑绛涢�夋潯浠�'
-
},
updateOrderId:'欤茧 氩堩樃 靾橃爼',
reportingTransfer:'鞛戩梾 鞁れ爜 鞚搓磤'
@@ -586,6 +604,8 @@
quantity:'宸ョ▼鐢ㄦ暟閲�',
print1:'11鍒�4琛�',
print2:'6琛�3鍒�',
+ glassId:'鐜荤拑缂栧彿',
+ polysId:'灏忕墖搴忓彿',
msg:{
msg1:'娴佺▼鍗″垱寤哄け璐�',
msg2:'璇疯緭鍏ュ皬浜庣瓑浜庡緟鍒嗘暟閲忕殑鏁板瓧',
@@ -916,6 +936,7 @@
pleaseMsg1:'欤茧靹� 旮绊儉旮堨暋 雼皜臧� 旮办瀰霅橃 鞎婌晿鞀惦媹雼�',
print1:'娲涢槼鎵撳嵃鏃犲昂瀵�',
print2:'娲涢槼鎵撳嵃鏈夊昂瀵�',
+ orderAdd:'璁㈠崟娣诲姞',
},
replenish:{
@@ -1001,10 +1022,19 @@
changeUserName:'靷毄鞛� 氇� 靾橃爼',
userNameCannotBeEmpty:'靷毄鞛� 鞚措鞚� 頃勳垬 鞛呺牓 頃鞛呺媹雼�',
},
+ userLog:{
+ page:{
+ userListLog:'鏃ュ織棣栭〉',
+ },
+ loginName:'鐧诲綍鍚�',
+ userName:'鐢ㄦ埛鍚�',
+ loginDate:'鐧诲綍鏃堕棿',
+ },
orderBasicData:{
page:{
searchOrderBasicData:'旮半掣 鞙犿槙',
searchGlassType:'鞙犽Μ 攵勲',
+ searchProcessAttributeConfig:'宸ヨ壓灞炴�х被鍒�',
},
glassCategory:'鞙犽Μ 攵勲',
order:'欤茧 甏�毽�',
@@ -1045,6 +1075,9 @@
laminatingProcessB:'欷戧车 頉� 鞝戫暕 瓿奠爼',
laminatingProcessC:'鞝侅傅 瓿奠爼',
laminatingProcessD:'欷戧车 鞙犽Μ 鞝滌“ 瓿奠爼',
+ please1:'璇烽�夋嫨绫诲埆',
+ please2:'璇疯緭鍏ュ悕绉�',
+ please3:'璇疯緭鍏ュ埆鍚�',
},
machine:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/ru.js b/north-glass-erp/northglass-erp/src/lang/ru.js
index 0acd315..fb2f94e 100644
--- a/north-glass-erp/northglass-erp/src/lang/ru.js
+++ b/north-glass-erp/northglass-erp/src/lang/ru.js
@@ -76,6 +76,7 @@
remarks2:'澶囨敞2',
remarks3:'澶囨敞3',
remarks4:'澶囨敞4',
+ otherColumns:'鍏朵粬鍒�',
msg:{
max255:"袙胁械写懈褌械 255 褋懈屑胁芯谢芯胁.",
max10:"鏈�澶氳緭鍏�10涓瓧绗�",
@@ -327,7 +328,24 @@
updateOrderIdErrorDiscrepancyInLength:'杈撳叆璁㈠崟鍙烽暱搴︿笉绗�',
updateOrderIdErrorInputNumber:'璇疯緭鍏ユ暟瀛�',
updateOrderIdErrorNotNo1:'涓嶈兘淇敼绗竴涓崟瀛�',
- updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒'
+ updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒',
+ pleaseProcessType:'璇烽�夋嫨纾ㄨ竟绫诲瀷',
+ pleaseUploadPicture1:"璇峰厛閫夋嫨瑕佷笂浼犵殑DWG鏂囦欢鎴栧浘鐗囨枃浠�",
+ pleaseUploadPicture2:"鍑嗗涓婁紶...",
+ pleaseUploadPicture3:"涓婁紶涓�...",
+ pleaseUploadPicture4:"涓婁紶瀹屾垚!",
+ pleaseUploadPicture5:"涓婁紶澶辫触!",
+ pleaseUploadPicture6:"璇烽�夋嫨DWG鏂囦欢鎴朖PG銆丳NG鏍煎紡鐨勫浘鐗囨枃浠�",
+ pleaseUploadPicture7:"鏂囦欢澶у皬涓嶈兘瓒呰繃50MB",
+ pleaseUploadPicture8:"宸查�夋嫨鏂囦欢:",
+ pleaseUploadPicture9:"鏂囦欢涓婁紶",
+ pleaseUploadPicture10:"鎷栨嫿鏂囦欢鍒版澶勬垨",
+ pleaseUploadPicture11:"鐐瑰嚮閫夋嫨鏂囦欢",
+ pleaseUploadPicture12:"浠呮敮鎸� .dwg銆�.jpg銆�.png 鏍煎紡鏂囦欢锛屼笖鏂囦欢澶у皬涓嶈秴杩�50MB",
+ pleaseUploadPicture13:"涓婁紶杩涘害",
+ pleaseUploadPicture14:"涓婁紶缁撴灉",
+ pleaseUploadPicture15:"鏂囦欢宸叉垚鍔熻浆鏍煎紡",
+ pleaseUploadPicture16:"涓嬭浇",
},
preciseMode:'绮剧‘妯″紡',
ambiguityModels:'妯$硦妯″紡',
@@ -337,7 +355,7 @@
layer:'鍗曠墖妯″紡',
notFinish:'寰呭畬鎴�',
processCardCollect:'娴佺▼鍗℃眹鎬�',
-
+ fileUpload:'鏂囦欢涓婁紶'
},
searchOrder:{
createOrder:'袙褘锌懈褋邪褌褜 蟹邪泻邪蟹',
@@ -586,6 +604,8 @@
quantity:'宸ョ▼鐢ㄦ暟閲�',
print1:'11鍒�4琛�',
print2:'6琛�3鍒�',
+ glassId:'鐜荤拑缂栧彿',
+ polysId:'灏忕墖搴忓彿',
msg:{
msg1:'娴佺▼鍗″垱寤哄け璐�',
msg2:'璇疯緭鍏ュ皬浜庣瓑浜庡緟鍒嗘暟閲忕殑鏁板瓧',
@@ -916,6 +936,7 @@
pleaseMsg1:'璁㈠崟瀛樺湪鍏朵粬閲戦鍗曚环娌℃湁濉啓',
print1:'娲涢槼鎵撳嵃鏃犲昂瀵�',
print2:'娲涢槼鎵撳嵃鏈夊昂瀵�',
+ orderAdd:'璁㈠崟娣诲姞',
},
replenish:{
@@ -1001,10 +1022,19 @@
changeUserName:'淇敼鐢ㄦ埛鍚嶇О',
userNameCannotBeEmpty:'鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖',
},
+ userLog:{
+ page:{
+ userListLog:'鏃ュ織棣栭〉',
+ },
+ loginName:'鐧诲綍鍚�',
+ userName:'鐢ㄦ埛鍚�',
+ loginDate:'鐧诲綍鏃堕棿',
+ },
orderBasicData:{
page:{
searchOrderBasicData:'袘邪蟹芯胁褘泄 褌懈锌',
searchGlassType:'小褌械泻谢芯 泻邪褌械谐芯褉懈懈',
+ searchProcessAttributeConfig:'宸ヨ壓灞炴�х被鍒�',
},
glassCategory:'小褌械泻谢芯 泻邪褌械谐芯褉懈懈',
order:'袟邪泻邪蟹褘',
@@ -1045,6 +1075,9 @@
laminatingProcessB:'涓┖鍚庡悎鐗囧伐搴�',
laminatingProcessC:'澶硅兌宸ュ簭',
laminatingProcessD:'涓┖宸ュ簭',
+ please1:'璇烽�夋嫨绫诲埆',
+ please2:'璇疯緭鍏ュ悕绉�',
+ please3:'璇疯緭鍏ュ埆鍚�',
},
machine:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/zh.js b/north-glass-erp/northglass-erp/src/lang/zh.js
index 06112dd..e97f90b 100644
--- a/north-glass-erp/northglass-erp/src/lang/zh.js
+++ b/north-glass-erp/northglass-erp/src/lang/zh.js
@@ -76,6 +76,7 @@
remarks2:'澶囨敞2',
remarks3:'澶囨敞3',
remarks4:'澶囨敞4',
+ otherColumns:'鍏朵粬鍒�',
msg:{
max255:"鏈�澶氳緭鍏�255涓瓧绗�",
max10:"鏈�澶氳緭鍏�10涓瓧绗�",
@@ -327,7 +328,24 @@
updateOrderIdErrorDiscrepancyInLength:'杈撳叆璁㈠崟鍙烽暱搴︿笉绗�',
updateOrderIdErrorInputNumber:'璇疯緭鍏ユ暟瀛�',
updateOrderIdErrorNotNo1:'涓嶈兘淇敼绗竴涓崟瀛�',
- updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒'
+ updateOrderError:'姝よ鍗曞凡宸ヨ壓瀹℃牳鎴栦慨鏀规棤娉曞啀娆′慨鏀�,椤甸潰灏嗚嚜鍔ㄥ埛鏂帮紒',
+ pleaseProcessType:'璇烽�夋嫨纾ㄨ竟绫诲瀷',
+ pleaseUploadPicture1:"璇峰厛閫夋嫨瑕佷笂浼犵殑DWG鏂囦欢鎴栧浘鐗囨枃浠�",
+ pleaseUploadPicture2:"鍑嗗涓婁紶...",
+ pleaseUploadPicture3:"涓婁紶涓�...",
+ pleaseUploadPicture4:"涓婁紶瀹屾垚!",
+ pleaseUploadPicture5:"涓婁紶澶辫触!",
+ pleaseUploadPicture6:"璇烽�夋嫨DWG鏂囦欢鎴朖PG銆丳NG鏍煎紡鐨勫浘鐗囨枃浠�",
+ pleaseUploadPicture7:"鏂囦欢澶у皬涓嶈兘瓒呰繃50MB",
+ pleaseUploadPicture8:"宸查�夋嫨鏂囦欢:",
+ pleaseUploadPicture9:"鏂囦欢涓婁紶",
+ pleaseUploadPicture10:"鎷栨嫿鏂囦欢鍒版澶勬垨",
+ pleaseUploadPicture11:"鐐瑰嚮閫夋嫨鏂囦欢",
+ pleaseUploadPicture12:"浠呮敮鎸� .dwg銆�.jpg銆�.png 鏍煎紡鏂囦欢锛屼笖鏂囦欢澶у皬涓嶈秴杩�50MB",
+ pleaseUploadPicture13:"涓婁紶杩涘害",
+ pleaseUploadPicture14:"涓婁紶缁撴灉",
+ pleaseUploadPicture15:"鏂囦欢宸叉垚鍔熻浆鏍煎紡",
+ pleaseUploadPicture16:"涓嬭浇",
},
preciseMode:'绮剧‘妯″紡',
ambiguityModels:'妯$硦妯″紡',
@@ -337,6 +355,7 @@
layer:'鍗曠墖妯″紡',
notFinish:'寰呭畬鎴�',
processCardCollect:'娴佺▼鍗℃眹鎬�',
+ fileUpload:'鏂囦欢涓婁紶'
},
searchOrder:{
@@ -585,6 +604,8 @@
quantity:'宸ョ▼鐢ㄦ暟閲�',
print1:'11鍒�4琛�',
print2:'6琛�3鍒�',
+ glassId:'鐜荤拑缂栧彿',
+ polysId:'灏忕墖搴忓彿',
msg:{
msg1:'娴佺▼鍗″垱寤哄け璐�',
msg2:'璇疯緭鍏ュ皬浜庣瓑浜庡緟鍒嗘暟閲忕殑鏁板瓧',
@@ -915,6 +936,7 @@
pleaseMsg1:'璁㈠崟瀛樺湪鍏朵粬閲戦鍗曚环娌℃湁濉啓',
print1:'娲涢槼鎵撳嵃鏃犲昂瀵�',
print2:'娲涢槼鎵撳嵃鏈夊昂瀵�',
+ orderAdd:'璁㈠崟娣诲姞',
},
replenish:{
@@ -1000,10 +1022,19 @@
changeUserName:'淇敼鐢ㄦ埛鍚嶇О',
userNameCannotBeEmpty:'鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖',
},
+ userLog:{
+ page:{
+ userListLog:'鏃ュ織棣栭〉',
+ },
+ loginName:'鐧诲綍鍚�',
+ userName:'鐢ㄦ埛鍚�',
+ loginDate:'鐧诲綍鏃堕棿',
+ },
orderBasicData:{
page:{
searchOrderBasicData:'鍩虹绫诲瀷',
searchGlassType:'鐜荤拑绫诲埆',
+ searchProcessAttributeConfig:'宸ヨ壓灞炴�х被鍒�',
},
glassCategory:'鐜荤拑绫诲埆',
order:'璁㈠崟',
@@ -1044,6 +1075,9 @@
laminatingProcessB:'涓┖鍚庡悎鐗囧伐搴�',
laminatingProcessC:'澶硅兌宸ュ簭',
laminatingProcessD:'涓┖宸ュ簭',
+ please1:'璇烽�夋嫨绫诲埆',
+ please2:'璇疯緭鍏ュ悕绉�',
+ please3:'璇疯緭鍏ュ埆鍚�',
},
machine:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductInventoryReport.vue b/north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductInventoryReport.vue
index c091a01..2fc7af0 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductInventoryReport.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductInventoryReport.vue
@@ -22,7 +22,7 @@
{field: 'orderDetail.width', width: '100',title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'orderDetail.height',width: '100', title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'area',width: '100', title: t('order.computeGrossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
- {field: 'squareMillimeter',width: '100', title: t('骞虫柟姣背')},
+ {field: 'squareMillimeter',width: '100', title: t('report.thicknessArea')},
{field: 'money',width: '100', title: t('order.grossAmount'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'order.project',width: '100', title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'order.customerName',width: '100', title: t('order.customers'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
diff --git a/north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductOutboundReport.vue b/north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductOutboundReport.vue
index 2e6cc8b..3a4d2c2 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductOutboundReport.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/stockReport/FinishedProductOutboundReport.vue
@@ -20,7 +20,7 @@
{field: 'order.customerName',width: '100', title: t('order.customers'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'order.orderType',width: '100', title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'area',width: '100', title: t('order.computeGrossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
- {field: 'squareMillimeter',width: '100', title: t('骞虫柟姣背')},
+ {field: 'squareMillimeter',width: '100', title: t('report.thicknessArea')},
{field: 'orderDetail.productId',width: '100', title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'orderDetail.productName',width: '140', title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'orderDetail.width', width: '100',title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
index d07842f..5a9490e 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
@@ -2,15 +2,79 @@
<div style="display: flex; height: 90vh;">
<!-- Sidebar -->
<div class="sidebar" style="width: 200px; background: #f4f4f4; padding: 10px; height: 93%; overflow-y: auto; max-height: 90vh; border-radius: 8px;">
- <div
- v-for="(layout, layoutIndex) in layouts"
- :key="layoutIndex"
- class="sidebar-item"
- @click="selectLayout(layoutIndex)"
- :class="{ 'selected': selectedLayoutIndex === layoutIndex }" style="margin-bottom: 5px;"
- >
- {{ layout.realWidth }} 脳 {{ layout.realHeight }} 脳 {{ layout.quantity }}
+ <div class="folder">
+ <div
+ class="folder-header" style="padding: 8px; background: #e0e0e0; margin-bottom: 5px; border-radius: 4px; user-select: none; display: flex; justify-content: space-between; align-items: center;"
+ >
+ <span @click="toggleFolder('pending')" style="flex: 1; cursor: pointer;">寰呭垏鍓插師鐗�</span>
+ <button
+ @click="toggleFolder('pending')" style="background: none; border: none; cursor: pointer; font-size: 14px; padding: 2px 5px; border-radius: 3px;"
+ :title="openFolders.pending ? '鏀惰捣' : '灞曞紑'"
+ >
+ <el-icon v-if="openFolders.pending"><ArrowUp /></el-icon>
+ <el-icon v-else><ArrowDown /></el-icon>
+ </button>
+ </div>
+ <div v-show="openFolders.pending" class="folder-content" style="padding-left: 15px;">
+ <div
+ v-for="(layout, layoutIndex) in layouts"
+ :key="layoutIndex"
+ class="sidebar-item"
+ @click="selectLayout(layoutIndex)"
+ :class="{ 'selected': selectedLayoutIndex === layoutIndex }" style="margin-bottom: 5px;"
+ >
+ {{ layout.realWidth }} 脳 {{ layout.realHeight }} 脳 {{ layout.quantity }}
+ </div>
+ </div>
</div>
+
+<!-- 寰呰ˉ鐗囬槦鍒楁枃浠跺す -->
+ <div class="folder">
+ <div
+ class="folder-header" style="padding: 8px; background: #e0e0e0; margin-bottom: 5px; border-radius: 4px; user-select: none; display: flex; justify-content: space-between; align-items: center;"
+ >
+ <span @click="toggleFolder('patchQueue')" style="flex: 1; cursor: pointer;">寰呰ˉ鐗囬槦鍒�</span>
+ <button
+ @click="toggleFolder('patchQueue')" style="background: none; border: none; cursor: pointer; font-size: 14px; padding: 2px 5px; border-radius: 3px;"
+ :title="openFolders.patchQueue ? '鏀惰捣' : '灞曞紑'"
+ >
+ <el-icon v-if="openFolders.patchQueue"><ArrowUp /></el-icon>
+ <el-icon v-else><ArrowDown /></el-icon>
+ </button>
+ </div>
+ <div v-show="openFolders.patchQueue" class="folder-content" style="padding-left: 15px;">
+ <div style="padding: 10px; color: #666; font-style: italic;">
+ 鏆傛棤琛ョ墖浠诲姟
+ </div>
+ </div>
+ </div>
+
+ <!-- 娣诲姞鑷畾涔夊昂瀵告枃浠跺す -->
+ <div class="folder">
+ <div
+ class="folder-header" style="padding: 8px; background: #e0e0e0; margin-bottom: 5px; border-radius: 4px; user-select: none; display: flex; justify-content: space-between; align-items: center;"
+ >
+ <span @click="toggleFolder('customSize')" style="flex: 1; cursor: pointer;">娣诲姞鑷畾涔夊昂瀵�</span>
+ <button
+ @click="toggleFolder('customSize')" style="background: none; border: none; cursor: pointer; font-size: 14px; padding: 2px 5px; border-radius: 3px;"
+ :title="openFolders.customSize ? '鏀惰捣' : '灞曞紑'"
+ >
+ <el-icon v-if="openFolders.customSize"><ArrowUp /></el-icon>
+ <el-icon v-else><ArrowDown /></el-icon>
+ </button>
+ </div>
+ <div v-show="openFolders.customSize" class="folder-content" style="padding-left: 15px;">
+ <div style="padding: 10px;">
+ <button
+ @click="showAddCustomSizeDialog" style="width: 100%; padding: 8px; background: #409eff; color: white; border: none; border-radius: 4px; cursor: pointer;"
+ >
+ + 娣诲姞鑷畾涔夊昂瀵�
+ </button>
+ </div>
+ </div>
+ </div>
+
+
</div>
<!-- Main Layout Panel -->
@@ -76,6 +140,7 @@
<script setup>
import { ref, reactive, onMounted, onUnmounted } from 'vue';
import { useRouter } from 'vue-router';
+import { ArrowUp, ArrowDown } from '@element-plus/icons-vue'
import request from "@/utils/request";
const router = useRouter();
import { useI18n } from "vue-i18n";
@@ -148,6 +213,30 @@
ElMessage.warning(res.msg);
}
});
+};
+
+const openFolders = ref({
+ pending: true, // 榛樿灞曞紑"寰呭垏鍓插師鐗�"鏂囦欢澶�
+ patchQueue: false, // 榛樿鏀惰捣"寰呰ˉ鐗囬槦鍒�"鏂囦欢澶�
+ customSize: false // 榛樿鏀惰捣"娣诲姞鑷畾涔夊昂瀵�"鏂囦欢澶�
+});
+
+// 鍒囨崲鏂囦欢澶瑰睍寮�/鏀惰捣鐘舵��
+const toggleFolder = (folderName) => {
+ openFolders.value[folderName] = !openFolders.value[folderName];
+};
+
+
+
+const showAddCustomSizeDialog = () => {
+ // 妫�鏌ユ槸鍚﹂�夋嫨浜嗙増鍥�
+ if (selectedLayoutIndex.value === null || layouts.value.length === 0) {
+ ElMessage.warning('璇峰厛閫夋嫨涓�涓増鍥�');
+ return;
+ }
+
+ // 浣跨敤鐜版湁鐨勬坊鍔犳垚鍝侀�昏緫锛屼紶鍏ュ綋鍓嶉�変腑鐨勭増鍥剧储寮�
+ showAddDialog(selectedLayoutIndex.value);
};
//鏌ヨ璁剧疆鐨勫熀纭�淇℃伅鏋跺彿锛岀煩褰㈤鑹诧紝璁㈠崟搴忓彿绛�
@@ -1408,4 +1497,17 @@
.context-menu div:hover {
background-color: #f0f0f0;
}
+
+.folder-header {
+ font-weight: bold;
+}
+
+.folder-header:hover {
+ background-color: #d0d0d0 !important;
+}
+
+.folder-content {
+ border-left: 2px solid #ccc;
+ margin-left: 5px;
+}
</style>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
index 4c4a3b3..cafc314 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -605,7 +605,7 @@
return
}
if (printMerge.value === null || printMerge.value === '') {
- ElMessage.warning('璇峰~鍏ラ渶瑕佸悎骞剁殑灞�')
+ ElMessage.warning(t('rework.msg1'))
return
}
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
index e6ece88..c3b4eee 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -711,7 +711,7 @@
return
}
if (printMerge.value === null || printMerge.value === '') {
- ElMessage.warning('璇峰~鍏ラ渶瑕佸悎骞剁殑灞�')
+ ElMessage.warning(t('rework.msg1'))
return
}
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProjectDetailSmallPiece.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProjectDetailSmallPiece.vue
index 50f20df..81633b9 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProjectDetailSmallPiece.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProjectDetailSmallPiece.vue
@@ -233,14 +233,14 @@
},
{
field: 'polys_id',
- title: t('灏忕墖搴忓彿'),
+ title: t('processCard.polysId'),
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
filterMethod: filterChanged
},
{
field: 'glass_id',
- title: t('鐜荤拑缂栧彿'),
+ title: t('processCard.glassId'),
filters: [{data: ''}],
slots: {filter: 'num1_filter'},
filterMethod: filterChanged
diff --git a/north-glass-erp/northglass-erp/src/views/sd/basicData/BasicData.vue b/north-glass-erp/northglass-erp/src/views/sd/basicData/BasicData.vue
index d226197..9f1f9c1 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/basicData/BasicData.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/basicData/BasicData.vue
@@ -22,7 +22,7 @@
<el-breadcrumb :separator-icon="ArrowRight">
<el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/orderBasicData/searchBasicData' }">{{ $t('orderBasicData.page.searchOrderBasicData') }}</el-breadcrumb-item>
<el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/orderBasicData/searchGlassType' }">{{ $t('orderBasicData.page.searchGlassType') }}</el-breadcrumb-item>
- <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/orderBasicData/searchProcessAttributeConfig' }">{{ $t('宸ヨ壓灞炴�х被鍒�') }}</el-breadcrumb-item>
+ <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/orderBasicData/searchProcessAttributeConfig' }">{{ $t('orderBasicData.page.searchProcessAttributeConfig') }}</el-breadcrumb-item>
<el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">鎶ヨ〃</el-breadcrumb-item>
</el-breadcrumb>
</div>
diff --git a/north-glass-erp/northglass-erp/src/views/sd/basicData/SearchProcessAttributeConfig.vue b/north-glass-erp/northglass-erp/src/views/sd/basicData/SearchProcessAttributeConfig.vue
index 57dde0d..bdaa1d6 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/basicData/SearchProcessAttributeConfig.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/basicData/SearchProcessAttributeConfig.vue
@@ -45,9 +45,9 @@
{title: t('basicData.operate'), width: 110, slots: { default: 'button_slot' },fixed:"left",},
{type: 'seq', title: t('basicData.number'), width: 80 ,fixed:"left",},
{field:'level',title: t('orderBasicData.level')},
- {field:'processType',title: t('鍒悕'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field:'processType',title: t('orderBasicData.alias'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
{field:'processName',title: t('orderBasicData.name'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
- {field:'inputType',title: t('绫诲瀷')},
+ {field:'inputType',title: t('machine.type')},
{field:'createTime',title: t('basicData.creationTime')}
],
@@ -144,15 +144,15 @@
const saveBasicData = (type) =>{
if(submit.value.glassLevel[0]===null){
- ElMessage.warning("璇烽�夋嫨绫诲埆")
+ ElMessage.warning(t('orderBasicData.please1'))
return
}
if(submit.value.processName===null||submit.value.processName===""){
- ElMessage.warning("璇疯緭鍏ュ悕绉�")
+ ElMessage.warning(t('orderBasicData.please2'))
return
}
if(submit.value.processType===null||submit.value.processType===""){
- ElMessage.warning("璇疯緭鍏ュ埆鍚�")
+ ElMessage.warning(t('orderBasicData.please3'))
return
}
submit.value.type = type
@@ -217,13 +217,13 @@
/>
</el-row>
<el-row>
- 鍒悕锛�<el-input style="width: 250px;" v-model="submit.processType"/>
+ {{ $t('orderBasicData.alias') }}锛�<el-input style="width: 250px;" v-model="submit.processType"/>
</el-row>
<el-row>
- 鍚嶇О锛�<el-input style="width: 250px;" v-model="submit.processName"/>
+ {{ $t('orderBasicData.name') }}锛�<el-input style="width: 250px;" v-model="submit.processName"/>
</el-row>
<el-row>
- 绫诲瀷锛�<el-input style="width: 250px;" v-model="submit.inputType"/>
+ {{ $t('machine.type') }}锛�<el-input style="width: 250px;" v-model="submit.inputType"/>
</el-row>
<el-row>
<el-button v-if="!rowIndex" @click="saveBasicData('add')" type="primary">{{ $t('basicData.insert') }}</el-button>
diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
index d74604d..4f080d7 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -390,7 +390,7 @@
{'code': 'addToExamine', 'name': t('reportingWorks.saveAndReview'),status: 'primary',icon: 'vxe-icon-save'},
{'code': 'toExamine', 'name': t('basicData.review'),status: 'primary'},
{'code': 'CounterExamination', 'name': t('basicData.cancelReview'),status: 'primary'},
- //{'code': 'addOtherOrders','name': t('璁㈠崟娣诲姞'),'status': 'primary'}
+ //{'code': 'addOtherOrders','name': t('delivery.orderAdd'),'status': 'primary'}
//{'code': 'glassShelf', 'name': t('finishedGlassShelf.finishedGlassShelfEmit'),status: 'primary'}
],
/*import: false,
@@ -1104,7 +1104,7 @@
<el-dialog
v-model="dialogSelectOrderVisible"
- :title="t('璁㈠崟娣诲姞')"
+ :title="t('delivery.orderAdd')"
style="width: 70%;height:75% "
destroy-on-close
:close-on-click-modal="false"
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
index 0b6cb66..64c5d54 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -139,7 +139,7 @@
{ code: 'updateOrderId', name: t('searchOrder.updateOrderId'), prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: false },
{ code: 'reportingTransfer', name: t('searchOrder.reportingTransfer'), prefixIcon: 'vxe-icon-send', visible: true, disabled: true },
{ code: 'uploadPicture', name: t('order.graphic'),prefixIcon: 'vxe-icon-picture-fill', visible: true, },
- { code: 'fileUpload', name: t('涓婁紶DWG鏂囦欢'),prefixIcon: 'vxe-icon-picture-fill', visible: true, }
+ { code: 'fileUpload', name: t('order.fileUpload'),prefixIcon: 'vxe-icon-picture-fill', visible: true, }
]
]
}
@@ -195,7 +195,7 @@
{
field: 'processAttribute',
width: 160,
- title: t('宸ヨ壓灞炴��'),
+ title: t('craft.processAttribute'),
filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged
},
{field: 'processingNote',width:200, title: t('order.processingNote'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
diff --git a/north-glass-erp/northglass-erp/src/views/system/userLog/UserListLog.vue b/north-glass-erp/northglass-erp/src/views/system/userLog/UserListLog.vue
index eb3180c..2b09a97 100644
--- a/north-glass-erp/northglass-erp/src/views/system/userLog/UserListLog.vue
+++ b/north-glass-erp/northglass-erp/src/views/system/userLog/UserListLog.vue
@@ -9,8 +9,6 @@
const { t } = useI18n()
const router = useRouter()
const route = useRoute()
-const dialogVisible = ref(false)
-const dialogVisibleProcess = ref(false)
let roleList = ref([])
//宸ュ簭
const processValue = ref()
@@ -55,9 +53,9 @@
//琛ㄥご鍙傛暟
columns:[
{type: 'seq', title: t('basicData.Number'), width: 80 ,fixed:"left"},
- {field: 'operator_id',width:120, title: t('鐧诲綍鍚�'), sortable: true, filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
- {field: 'operator',width:120, title: t('鐢ㄦ埛鍚�'), sortable: true, filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
- {field: 'format_create_time',width:160, title: t('鐧诲綍鏃堕棿'),sortable: true},
+ {field: 'operator_id',width:120, title: t('userLog.loginName'), sortable: true, filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
+ {field: 'operator',width:120, title: t('userLog.userName'), sortable: true, filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
+ {field: 'format_create_time',width:160, title: t('userLog.loginDate'),sortable: true},
],
//琛ㄥご鎸夐挳
@@ -86,31 +84,8 @@
const getTableRow = (row,type) => {
switch (type) {
- case 'edit': {
- userRole.value.roles = []
- dialogVisible.value = true
- row.userRoleList.forEach(item=>{
- userRole.value.roles.push(item.roleId)
- })
- userRole.value.userId = row.id
- break
- }
- case 'delete': {
- request.post(`/userInfo/userDelete/${row.id}`).then((res) => {
- if(res.code==200 && res.data ===true){
- ElMessage.success(t('searchOrder.msgDeleteSuccess'))
- router.push({path:'/main/user/userList',query:{random:Math.random()}})
- }else{
- ElMessage.warning(t('searchOrder.msgDeleteFail'))
- }
- })
- break
- }
- case 'editProcess': {
- dialogVisibleProcess.value = true
- processRow.value.userId = row.id
- break
- }
+
+
}
}
@@ -151,15 +126,7 @@
</div>
</template>
- <template #button_slot="{ row }">
- <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">{{ $t('user.setUpRoles') }}</el-button>
- <el-button @click="getTableRow(row,'editProcess')" link type="primary" size="small">{{ $t('user.setProcess') }}</el-button>
- <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')">
- <template #reference>
- <el-button link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>
- </template>
- </el-popconfirm>
- </template>
+
<template #num1_filter="{ column, $panel }">
<div>
@@ -171,51 +138,8 @@
</vxe-grid>
</div>
- <el-dialog
- v-model="dialogVisible"
- :title="$t('user.roleSelection')"
- width="30%"
- :before-close="handleClose"
- >
- <span>
- <el-radio v-for="(item) in roleList"
- :label="item.id"
- v-model="userRole.roles" >
- {{item.role}}
- </el-radio>
- </span>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="dialogVisible = false">{{ $t('basicData.cancelButtonText') }}</el-button>
- <el-button type="primary" @click="roleUpdate">
- {{ $t('basicData.confirmButtonText') }}
- </el-button>
- </span>
- </template>
- </el-dialog>
- <el-dialog
- v-model="dialogVisibleProcess"
- :title="$t('user.roleSelection')"
- width="30%"
- :before-close="handleClose"
- >
- <el-select v-model="processValue" clearable :placeholder="$t('reportingWorks.selectProcess')" default-value="default_city" style="width: 120px">
- <el-option
- v-for="item in processRow['process']"
- :key="item.id"
- :label="item.basic_name"
- :value="item.basic_name"
- />
- </el-select>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="dialogVisibleProcess = false">{{ $t('basicData.cancelButtonText') }}</el-button>
- <el-button type="primary" @click="updateProcess">
- {{ $t('basicData.confirmButtonText') }}
- </el-button>
- </span>
- </template>
- </el-dialog>
+
+
</div>
</template>
diff --git a/north-glass-erp/northglass-erp/src/views/system/userLog/UserLog.vue b/north-glass-erp/northglass-erp/src/views/system/userLog/UserLog.vue
index 55f1e9d..b26e333 100644
--- a/north-glass-erp/northglass-erp/src/views/system/userLog/UserLog.vue
+++ b/north-glass-erp/northglass-erp/src/views/system/userLog/UserLog.vue
@@ -19,7 +19,7 @@
<div id="main-div">
<div id="div-title">
<el-breadcrumb :separator-icon="ArrowRight">
- <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/userLog/userListLog' }">{{$t('鏃ュ織棣栭〉')}}</el-breadcrumb-item>
+ <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/userLog/userListLog' }">{{$t('userLog.page.userListLog')}}</el-breadcrumb-item>
<el-breadcrumb-item v-show="false" />
</el-breadcrumb>
</div>
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
index 8d68b74..0ff4649 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
@@ -24,6 +24,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.sql.Date;
+import java.util.HashMap;
import java.util.Map;
@RestController
@@ -227,6 +228,31 @@
}
+ @PostMapping("/calculate")
+ public ResponseEntity<Map<String, Object>> receiveOptimizeRequest(
+ @RequestBody Map<String, Object> requestData) {
+
+ Map<String, Object> response = new HashMap<>();
+
+ try {
+ // 绔嬪嵆杩斿洖鎺ユ敹鎴愬姛鐨勫搷搴�
+ response.put("code", "200");
+ response.put("msg", "success");
+ response.put("data", "");
+
+ // 寮傛澶勭悊璁$畻浠诲姟
+// glassOptimizeService.processExternalOptimizeRequest(requestData);
+ System.out.println(requestData);
+
+ return ResponseEntity.ok(response);
+ } catch (Exception e) {
+ response.put("code", 201);
+ response.put("msg", "false: " + e.getMessage());
+ response.put("data", "");
+ return ResponseEntity.status(500).body(response);
+ }
+ }
+
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderFileController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderFileController.java
index 37850f1..1094e5b 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderFileController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderFileController.java
@@ -19,9 +19,13 @@
private final OrderFileService orderFileService;
@PostMapping("/updateOrderFileByOrderNumber/{orderId}/{orderNumber}")
- public Result updateOrderFileByOrderNumber(@RequestParam("file") MultipartFile file, @PathVariable String orderId, @PathVariable String orderNumber) throws IOException {
+ public Result updateOrderFileByOrderNumber(
+ @RequestParam("file") MultipartFile file,
+ @RequestParam("name") String name,
+ @PathVariable String orderId,
+ @PathVariable String orderNumber) throws IOException {
- return Result.success(orderFileService.updateOrderFileByOrderNumber(file,orderId,orderNumber));
+ return Result.success(orderFileService.updateOrderFileByOrderNumber(file,name,orderId,orderNumber));
}
@PostMapping("/getOrderFilePicture")
public Result getOrderFilePicture(@RequestBody List<Map<String,Object>> orderDetails) throws NoSuchFieldException {
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
index 116db21..e15bb07 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
@@ -53,33 +53,45 @@
return orderFiles;
}
- public Object updateOrderFileByOrderNumber(MultipartFile file,String orderId,String orderNumber) throws IOException {
+ public Object updateOrderFileByOrderNumber(MultipartFile file,String name,String orderId,String orderNumber) throws IOException {
+ //鍒ゆ柇鏄惁瑙勫畾鐨勬牸寮忓悗缂�鍚�
+ if(!isAllowedFile(name)){
+ return null;
+ }
+
try (InputStream is = License.class.getResourceAsStream("/lisence.xml")) {
- License license = new License();
- license.setLicense(is);
+ String base64 = null;
+ if(name.toLowerCase().endsWith(".dwg")){
+
+ License license = new License();
+ license.setLicense(is);
- // 璋冪敤Image绫荤殑Load鏂规硶鏉ュ姞杞借緭鍏ョ殑DWG鏂囦欢銆�
- Image image = Image.load(file.getInputStream());
- // 鍒涘缓CadRasterizationOptions瀹炰緥浠ュ惎鐢–AD鏍呮牸鍖栭�夐」銆�
- CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
- // 璁剧疆瀹藉害
- rasterizationOptions.setPageWidth(1000);
- // 璁剧疆楂樺害
- rasterizationOptions.setPageHeight(700);
- // 璋冪敤杩欎釜setEmbedBackground鏂规硶鏉ヨ缃儗鏅壊鏄惁涓嶇瓑浜庤緭鍑烘牸寮忕殑榛樿鑳屾櫙鑹�
- //rasterizationOptions.setEmbedBackground(true);
- // 涓虹敓鎴愮殑鍥惧儚鍒涘缓涓�涓狿ngOptions鐨勫疄渚嬶紝骞跺皢鍏跺垎閰嶇粰ImageOptionsBase绫荤殑瀹炰緥銆�
- ImageOptionsBase options = new PngOptions();
- // 璋冪敤 setVectorRasterizationOptions 鏂规硶鏉ュ畾涔夊厜鏍呭寲閫夐」
- options.setVectorRasterizationOptions(rasterizationOptions);
+ // 璋冪敤Image绫荤殑Load鏂规硶鏉ュ姞杞借緭鍏ョ殑DWG鏂囦欢銆�
+ Image image = Image.load(file.getInputStream());
+ // 鍒涘缓CadRasterizationOptions瀹炰緥浠ュ惎鐢–AD鏍呮牸鍖栭�夐」銆�
+ CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
+ // 璁剧疆瀹藉害
+ rasterizationOptions.setPageWidth(1000);
+ // 璁剧疆楂樺害
+ rasterizationOptions.setPageHeight(700);
+ // 璋冪敤杩欎釜setEmbedBackground鏂规硶鏉ヨ缃儗鏅壊鏄惁涓嶇瓑浜庤緭鍑烘牸寮忕殑榛樿鑳屾櫙鑹�
+ //rasterizationOptions.setEmbedBackground(true);
+ // 涓虹敓鎴愮殑鍥惧儚鍒涘缓涓�涓狿ngOptions鐨勫疄渚嬶紝骞跺皢鍏跺垎閰嶇粰ImageOptionsBase绫荤殑瀹炰緥銆�
+ ImageOptionsBase options = new PngOptions();
+ // 璋冪敤 setVectorRasterizationOptions 鏂规硶鏉ュ畾涔夊厜鏍呭寲閫夐」
+ options.setVectorRasterizationOptions(rasterizationOptions);
- // 淇濆瓨鍒板瓧鑺傛祦
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- image.save(outputStream, options);
- byte[] imageBytes = outputStream.toByteArray();
- String base64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(imageBytes);
+ // 淇濆瓨鍒板瓧鑺傛祦
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ image.save(outputStream, options);
+ byte[] imageBytes = outputStream.toByteArray();
+ base64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(imageBytes);
+ }else{
+ base64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(file.getBytes());
+ }
+
OrderFile orderFile = new OrderFile();
orderFile.setImageBase64(base64);
orderFile.setFileName(file.getName());
@@ -107,6 +119,10 @@
e.printStackTrace();
return null;
}
+
+
+
+
}
public Object getOrderNumberFile(String orderId, String orderNumber) {
@@ -122,4 +138,23 @@
.eq("order_number", orderNumber)
) > 0;
}
+
+ public static boolean isAllowedFile(String fileName) {
+ List<String> allowedExtensions = Arrays.asList(".dwg", ".png", ".jpg");
+ if (fileName == null || fileName.isEmpty()) {
+ return false;
+ }
+
+ String lowerFileName = fileName.toLowerCase();
+
+ for (String ext : allowedExtensions) {
+ if (!ext.startsWith(".")) {
+ ext = "." + ext;
+ }
+ if (lowerFileName.endsWith(ext)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
--
Gitblit v1.8.0