Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
electron-printer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhuzhequan
electron-printer
Commits
0a3ee7dc
Commit
0a3ee7dc
authored
Apr 29, 2025
by
linjinhong
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into ljh
parents
e5f73622
f3919697
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
122 additions
and
33 deletions
+122
-33
src/server/entity/function.js
+45
-18
src/server/routes/index.js
+3
-0
src/views/design/head/index.vue
+0
-0
src/views/design/main/index.vue
+74
-15
No files found.
src/server/entity/function.js
View file @
0a3ee7dc
...
@@ -2,12 +2,12 @@ import {
...
@@ -2,12 +2,12 @@ import {
downloadImage
,
downloadImage
,
downloadOtherImage
,
downloadOtherImage
,
toSend
,
toSend
,
writeProfileXml
,
writeProfileXml
}
from
"@/server/utils"
;
}
from
"@/server/utils"
;
const
{
const
{
cropImageTransparentEdges
,
cropImageTransparentEdges
,
cropTransparentEdges
,
cropTransparentEdges
,
processImages
,
processImages
}
=
require
(
"../utils/setImage"
);
}
=
require
(
"../utils/setImage"
);
import
axios
from
"axios"
;
import
axios
from
"axios"
;
import
{
returnLogFilePath
}
from
"../utils/log"
;
import
{
returnLogFilePath
}
from
"../utils/log"
;
...
@@ -15,13 +15,11 @@ var request = require("request");
...
@@ -15,13 +15,11 @@ var request = require("request");
const
compressing
=
require
(
"compressing"
);
const
compressing
=
require
(
"compressing"
);
const
uuid
=
require
(
"uuid"
);
const
uuid
=
require
(
"uuid"
);
const
path
=
require
(
"path"
);
const
path
=
require
(
"path"
);
const
fs
=
require
(
"fs"
);
const
fs
=
require
(
"fs"
);
const
os
=
require
(
"os"
);
const
os
=
require
(
"os"
);
const
{
app
}
=
require
(
"electron"
);
const
{
app
}
=
require
(
"electron"
);
let
fileEnv
,
env
,
visionUrl
;
let
fileEnv
,
env
,
visionUrl
;
axios
.
defaults
.
timeout
=
12600000
;
axios
.
defaults
.
timeout
=
12600000
;
const
multiparty
=
require
(
"multiparty"
);
const
multiparty
=
require
(
"multiparty"
);
function
readEnv
()
{
function
readEnv
()
{
...
@@ -73,7 +71,7 @@ export default {
...
@@ -73,7 +71,7 @@ export default {
const
token
=
req
.
headers
[
"jwt-token"
];
const
token
=
req
.
headers
[
"jwt-token"
];
try
{
try
{
let
{
let
{
data
,
data
}
=
await
axios
.
post
(
}
=
await
axios
.
post
(
`
${
env
}
/factory/podJomallOrder/downloadByProduction`
,
`
${
env
}
/factory/podJomallOrder/downloadByProduction`
,
[
req
.
body
[
0
]],
[
req
.
body
[
0
]],
...
@@ -83,26 +81,26 @@ export default {
...
@@ -83,26 +81,26 @@ export default {
if
(
data
.
code
===
200
)
{
if
(
data
.
code
===
200
)
{
files
=
data
.
data
;
files
=
data
.
data
;
files
=
files
.
map
(
(
el
)
=>
{
files
=
files
.
map
(
el
=>
{
return
{
url
:
`
${
fileEnv
}${
el
}
`
};
return
{
url
:
`
${
fileEnv
}${
el
}
`
};
});
});
if
(
req
.
body
[
1
]
===
1
)
{
if
(
req
.
body
[
1
]
===
1
)
{
downloadImage
(
files
)
downloadImage
(
files
)
.
then
(
(
data
)
=>
{
.
then
(
data
=>
{
res
.
json
({
code
:
200
,
data
});
res
.
json
({
code
:
200
,
data
});
})
})
.
catch
(
(
err
)
=>
{
.
catch
(
err
=>
{
res
.
json
({
code
:
500
,
msg
:
err
});
res
.
json
({
code
:
500
,
msg
:
err
});
});
});
}
else
{
}
else
{
downloadOtherImage
(
files
)
downloadOtherImage
(
files
)
.
then
(
(
data
)
=>
{
.
then
(
data
=>
{
console
.
log
(
77
,
data
);
console
.
log
(
77
,
data
);
res
.
json
({
code
:
200
,
data
});
res
.
json
({
code
:
200
,
data
});
})
})
.
catch
(
(
err
)
=>
{
.
catch
(
err
=>
{
res
.
json
({
code
:
500
,
msg
:
err
});
res
.
json
({
code
:
500
,
msg
:
err
});
});
});
}
}
...
@@ -122,7 +120,7 @@ export default {
...
@@ -122,7 +120,7 @@ export default {
`
${
env
}
/factory/podJomallOrderProduct/getSubOrderByThirdSubOrderNumber`
,
`
${
env
}
/factory/podJomallOrderProduct/getSubOrderByThirdSubOrderNumber`
,
{
{
params
:
q
,
params
:
q
,
headers
:
{
"jwt-token"
:
token
}
,
headers
:
{
"jwt-token"
:
token
}
}
}
);
);
res
.
json
(
data
);
res
.
json
(
data
);
...
@@ -146,7 +144,7 @@ export default {
...
@@ -146,7 +144,7 @@ export default {
const
token
=
req
.
headers
[
"jwt-token"
];
const
token
=
req
.
headers
[
"jwt-token"
];
try
{
try
{
let
{
let
{
data
,
data
}
=
await
axios
.
post
(
}
=
await
axios
.
post
(
`
${
env
}
/factory/podJomallOrderProduct/completeDelivery`
,
`
${
env
}
/factory/podJomallOrderProduct/completeDelivery`
,
req
.
body
,
req
.
body
,
...
@@ -179,7 +177,7 @@ export default {
...
@@ -179,7 +177,7 @@ export default {
console
.
log
(
"success"
);
console
.
log
(
"success"
);
res
.
json
({
res
.
json
({
code
:
200
,
code
:
200
,
msg
:
q
.
productionNo
+
".zip"
+
"已下载到桌面"
,
msg
:
q
.
productionNo
+
".zip"
+
"已下载到桌面"
});
});
})
})
.
on
(
"error"
,
()
=>
{
.
on
(
"error"
,
()
=>
{
...
@@ -221,8 +219,8 @@ export default {
...
@@ -221,8 +219,8 @@ export default {
code
:
200
,
code
:
200
,
data
:
{
data
:
{
fileName
,
fileName
,
url
:
path
.
join
(
process
.
cwd
(),
"./print/Input/"
+
fileName
)
,
url
:
path
.
join
(
process
.
cwd
(),
"./print/Input/"
+
fileName
)
}
,
}
});
});
}
}
});
});
...
@@ -274,10 +272,10 @@ export default {
...
@@ -274,10 +272,10 @@ export default {
console
.
log
(
249
,
body
);
console
.
log
(
249
,
body
);
toSend
(
body
)
toSend
(
body
)
.
then
(
(
r
)
=>
{
.
then
(
r
=>
{
res
.
send
({
code
:
200
,
msg
:
"操作成功"
});
res
.
send
({
code
:
200
,
msg
:
"操作成功"
});
})
})
.
catch
(
(
err
)
=>
{
.
catch
(
err
=>
{
res
.
send
({
code
:
500
,
msg
:
err
});
res
.
send
({
code
:
500
,
msg
:
err
});
});
});
},
},
...
@@ -316,7 +314,7 @@ export default {
...
@@ -316,7 +314,7 @@ export default {
fs
.
unlinkSync
(
from
);
fs
.
unlinkSync
(
from
);
res
.
json
({
code
:
200
,
msg
:
"更新成功"
});
res
.
json
({
code
:
200
,
msg
:
"更新成功"
});
})
})
.
catch
(
(
err
)
=>
{
.
catch
(
err
=>
{
res
.
json
({
code
:
500
,
msg
:
err
.
message
});
res
.
json
({
code
:
500
,
msg
:
err
.
message
});
});
});
});
});
...
@@ -357,4 +355,33 @@ export default {
...
@@ -357,4 +355,33 @@ export default {
res
.
json
({
code
:
500
,
msg
:
err
.
message
});
res
.
json
({
code
:
500
,
msg
:
err
.
message
});
}
}
},
},
saveToPng
:
async
(
req
,
res
)
=>
{
try
{
const
p
=
path
.
join
(
process
.
cwd
(),
"./print/Input/"
);
const
form
=
new
multiparty
.
Form
({
uploadDir
:
p
});
form
.
parse
(
req
,
function
(
err
,
fields
,
files
)
{
console
.
log
(
fields
,
files
,
err
);
if
(
err
)
{
res
.
send
({
code
:
500
,
err
});
}
else
{
let
list
=
[];
files
.
files
.
forEach
(
file
=>
{
let
fileName
=
uuid
.
v4
()
+
".png"
;
fs
.
renameSync
(
file
.
path
,
path
.
join
(
p
,
fileName
));
list
.
push
({
fileName
,
url
:
path
.
join
(
process
.
cwd
(),
"./print/Input/"
+
fileName
)
});
});
res
.
json
({
code
:
200
,
data
:
list
});
}
});
}
catch
(
err
)
{
console
.
log
(
err
);
res
.
json
({
code
:
500
,
msg
:
err
});
}
}
};
};
src/server/routes/index.js
View file @
0a3ee7dc
...
@@ -37,4 +37,7 @@ router.post("/imageListTransparentEdges", fn.imageListTransparentEdges);
...
@@ -37,4 +37,7 @@ router.post("/imageListTransparentEdges", fn.imageListTransparentEdges);
// 处理图片并输出结果
// 处理图片并输出结果
router
.
post
(
"/processImage"
,
fn
.
processImage
);
router
.
post
(
"/processImage"
,
fn
.
processImage
);
// 保存生成后得图片返回地址
router
.
post
(
"/saveToPng"
,
fn
.
saveToPng
);
export
{
router
as
default
};
export
{
router
as
default
};
src/views/design/head/index.vue
View file @
0a3ee7dc
This diff is collapsed.
Click to expand it.
src/views/design/main/index.vue
View file @
0a3ee7dc
...
@@ -131,6 +131,7 @@ export default {
...
@@ -131,6 +131,7 @@ export default {
actionList
:
[],
actionList
:
[],
checkList
:
[],
checkList
:
[],
oldImgList
:
[],
oldImgList
:
[],
hasSize
:
false
,
parentWidth
:
0
,
parentWidth
:
0
,
backColor
:
"#77797a"
,
backColor
:
"#77797a"
,
systemSetting
:
{},
systemSetting
:
{},
...
@@ -361,12 +362,24 @@ export default {
...
@@ -361,12 +362,24 @@ export default {
return
mm1
.
width
;
return
mm1
.
width
;
},
},
setDesignImg
(
title
)
{
let
img
=
this
.
selectImgList
.
find
((
it
)
=>
it
.
title
===
title
);
if
(
img
)
{
console
.
log
(
this
.
detail
.
designImageSize
,
"this.detail.size"
);
this
.
getBackFile
(
{
files
:
[
img
],
size
:
this
.
detail
.
designImageSize
},
(
file
)
=>
{
this
.
imgHistoryList
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
imgList
)));
}
);
}
},
selectImg
(
it
,
i
)
{
selectImg
(
it
,
i
)
{
// this.selectImgIndexList.push(i)
// this.selectImgIndexList.push(i)
let
item
=
this
.
imgList
.
find
((
img
)
=>
img
.
fileName
===
it
.
fileName
);
let
item
=
this
.
imgList
.
find
((
img
)
=>
img
.
fileName
===
it
.
fileName
);
if
(
item
)
return
;
if
(
item
)
return
;
// this.selectImgIndexList = Array.from(new Set(this.selectImgIndexList))
// this.selectImgIndexList = Array.from(new Set(this.selectImgIndexList))
this
.
getBackFile
({
files
:
[
it
]
},
(
file
)
=>
{
this
.
getBackFile
({
files
:
[
it
]
,
size
:
null
},
(
file
)
=>
{
this
.
imgHistoryList
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
imgList
)));
this
.
imgHistoryList
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
imgList
)));
});
});
},
},
...
@@ -521,18 +534,29 @@ export default {
...
@@ -521,18 +534,29 @@ export default {
};
};
});
});
},
},
getComputedName
(
title
)
{
let
img
=
this
.
selectImgList
.
find
((
it
)
=>
it
.
title
===
title
);
return
img
?.
fileName
;
},
getComputedTitle
(
title
)
{
console
.
log
(
this
.
selectImgList
,
"this.selectImgList"
);
let
img
=
this
.
selectImgList
.
find
((
it
)
=>
it
.
title
===
title
);
return
img
?.
url
;
},
getBackFile
({
files
,
size
},
callback
)
{
getBackFile
({
files
,
size
},
callback
)
{
let
that
=
this
;
let
that
=
this
;
let
bw
=
document
.
getElementById
(
"line"
).
clientWidth
;
let
bw
=
window
.
getComputedStyle
(
document
.
getElementsByClassName
(
"grid"
)[
0
]
).
width
;
bw
=
Number
(
bw
.
replace
(
"px"
,
""
));
for
(
let
i
=
0
;
i
<
files
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
files
.
length
;
i
++
)
{
files
[
i
].
url
=
files
[
i
].
productionFile
;
files
[
i
].
url
=
files
[
i
].
productionFile
||
files
[
i
].
url
;
that
.
$nextTick
(
async
()
=>
{
that
.
$nextTick
(
async
()
=>
{
let
w
=
document
.
getElementById
(
"line"
).
clientWidth
/
2
;
let
w
=
bw
/
2
;
let
width_px
,
height_px
,
rate
;
let
width_px
,
height_px
,
rate
;
if
(
size
)
{
if
(
size
)
{
width_px
=
mmToPx
(
size
.
width
);
width_px
=
mmToPx
(
size
.
width
);
height_px
=
mmToPx
(
size
.
height
);
height_px
=
mmToPx
(
size
.
height
);
console
.
log
(
width_px
,
height_px
,
"w,h"
);
rate
=
height_px
/
width_px
;
rate
=
height_px
/
width_px
;
}
else
{
}
else
{
let
data
=
await
that
.
getImageSize
(
files
[
i
].
url
);
let
data
=
await
that
.
getImageSize
(
files
[
i
].
url
);
...
@@ -778,21 +802,26 @@ export default {
...
@@ -778,21 +802,26 @@ export default {
});
});
break
;
break
;
case
"sendFile"
:
case
"sendFile"
:
// if (size.width && size.height) {
console
.
log
(
"sendFile"
);
// this.hasSize = true;
if
(
size
)
{
// } else {
this
.
hasSize
=
true
;
// this.hasSize = false;
}
else
{
// }
this
.
hasSize
=
false
;
}
this
.
detail
.
designImageSize
=
size
;
this
.
imgList
=
[];
this
.
imgList
=
[];
this
.
selectIndex
=
-
1
;
this
.
selectIndex
=
-
1
;
if
(
value
.
length
>
0
)
{
if
(
value
.
length
>
0
)
{
this
.
selectImgList
=
value
;
this
.
selectImgList
=
value
;
this
.
selectImgIndex
=
0
;
this
.
selectImgIndex
=
0
;
this
.
getBackFile
({
files
:
[
value
[
0
]],
size
},
(
file
)
=>
{
this
.
getBackFile
(
this
.
imgHistoryList
.
push
(
{
files
:
[
value
[
0
]],
size
:
this
.
detail
.
designImageSize
||
null
},
JSON
.
parse
(
JSON
.
stringify
(
this
.
imgList
))
(
file
)
=>
{
);
this
.
imgHistoryList
.
push
(
});
JSON
.
parse
(
JSON
.
stringify
(
this
.
imgList
))
);
}
);
// this.addFile([value[0].file])
// this.addFile([value[0].file])
}
}
break
;
break
;
...
@@ -912,6 +941,27 @@ export default {
...
@@ -912,6 +941,27 @@ export default {
</el-col>
</el-col>
</el-row>
</el-row>
</el-row>
</el-row>
<el-table
border
:data=
"detail.imageAry"
>
<el-table-column
label=
"打印区域"
prop=
"title"
></el-table-column>
<el-table-column
label=
"效果图"
prop=
"title"
>
<template
slot-scope=
"
{ row }">
<img
class=
"full-width"
:src=
"row.url"
alt=
""
/>
</
template
>
</el-table-column>
<el-table-column
label=
"素材图"
prop=
"title"
>
<
template
slot-scope=
"{ row }"
>
<img
style=
"cursor: pointer"
@
click=
"setDesignImg(row.title)"
v-if=
"getComputedTitle(row.title)"
class=
"full-width"
:src=
"getComputedTitle(row.title)"
alt=
""
/>
<span>
{{
getComputedName
(
row
.
title
)
}}
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<div
class=
"product-information"
>
<div
class=
"product-information"
>
<div
class=
"title"
>
<div
class=
"title"
>
...
@@ -1150,6 +1200,15 @@ export default {
...
@@ -1150,6 +1200,15 @@ export default {
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"print-tip"
v-if=
"detail && detail.designImageSize && selectImgList.length"
>
<b
style=
"color: green"
v-if=
"hasSize"
>
该生产单无需拖动设计,直接打印
</b
>
<b
style=
"color: red"
v-else
>
该生产单需要拖动设计打印
</b>
</div>
</div>
</div>
<img
<img
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment