Commit f6e6d6d9 by 朱哲铨

代码优化

parent 0834896a
...@@ -496,8 +496,8 @@ ...@@ -496,8 +496,8 @@
function.js Slice管理 function.js Slice管理
be_sysConfig.js 系统设置 be_sysConfig.js 系统设置
routes 目录: 存放 exporess 路由 routes 目录: 存放 exporess 路由
be_routes.js 路由定义 index.js 路由定义
be_nodeSrv.js express 服务器 server.js express 服务器
``` ```
- 增加 lowdb 支持 - 增加 lowdb 支持
...@@ -575,11 +575,11 @@ ...@@ -575,11 +575,11 @@
- Web Server 服务器 - Web Server 服务器
代码: src/backend/webserver/be_nodeSrv.js: 代码: src/backend/webserver/server.js:
```javascript ```javascript
import express from "express"; import express from "express";
import router from "./routes/be_routes.js"; import router from "./routes/index.js";
const PORT = 3000; const PORT = 3000;
const webApp = express(); const webApp = express();
...@@ -615,7 +615,7 @@ ...@@ -615,7 +615,7 @@
- Express的API 路由: - Express的API 路由:
代码: src/backend/webserver/routes/be_routes.js 代码: src/backend/webserver/routes/index.js
```javascript ```javascript
import express from "express"; import express from "express";
...@@ -681,7 +681,7 @@ ...@@ -681,7 +681,7 @@
import { app, protocol, BrowserWindow, Menu } from "electron"; import { app, protocol, BrowserWindow, Menu } from "electron";
import { createProtocol } from "vue-cli-plugin-electron-builder/lib"; import { createProtocol } from "vue-cli-plugin-electron-builder/lib";
+ import webApp from "@/backend/webserver/be_nodeSrv.js"; + import webApp from "@/backend/webserver/server.js";
... ...
``` ```
......
...@@ -2,7 +2,7 @@ import { ...@@ -2,7 +2,7 @@ import {
downloadImage, downloadImage,
toSend, toSend,
writeProfileXml writeProfileXml
} from "@/backend/webserver/utils"; } from "@/backend/utils";
const compressing = require("compressing"); const compressing = require("compressing");
var uuid = require("uuid"); var uuid = require("uuid");
...@@ -10,234 +10,230 @@ const path = require("path"); ...@@ -10,234 +10,230 @@ const path = require("path");
const fs = require("fs"); const fs = require("fs");
const os = require("os"); const os = require("os");
import axios from "axios"; import axios from "axios";
var multiparty = require("multiparty"); var multiparty = require("multiparty");
let fn = new Object(); export default {
getPodProductionInfo: async (req, res) => {
const token = req.headers["jwt-token"];
const company = req.headers["company"];
const productionNo = req.body.productionNo;
try {
let { data } = await axios.post(
`https://${company}/api/podDesignCenter/getPodImageByProduction`,
{ productionNo },
{ headers: { "jwt-token": token } }
);
console.log(data);
if (data.code === 200 && data.data && data.data.length > 0) {
let f = data.data.find(el => !el.productionFile);
data.data.forEach(el => {
if (!el.productionFile.includes("http")) {
el.productionFile = el.productionFile.replace(
"/data/upload/erp/",
""
);
el.productionFile = `https://${company}/upload/erp${el.productionFile}`;
}
});
if (f) {
return res.json({ code: 500, msg: "存在地址错误的素材图" });
}
fn.getPodProductionInfo = async (req, res) => { downloadImage(data.data)
const token = req.headers["jwt-token"]; .then(data => {
const company = req.headers["company"]; res.json({ code: 200, data });
const productionNo = req.body.productionNo; })
try { .catch(err => {
let { data } = await axios.post( res.json({ code: 500, msg: err });
`https://${company}/api/podDesignCenter/getPodImageByProduction`, });
{ productionNo }, } else {
{ headers: { "jwt-token": token } } res.json({ code: 200, msg: "未找到素材图", data: [] });
); }
console.log(data); } catch (err) {
if (data.code === 200 && data.data && data.data.length > 0) { console.log(err);
let f = data.data.find(el => !el.productionFile); res.json({ code: 500, msg: err });
data.data.forEach(el => { }
if (!el.productionFile.includes("http")) { },
el.productionFile = el.productionFile.replace( findByPodProductionNo: async (req, res) => {
"/data/upload/erp/", const token = req.headers["jwt-token"];
"" const company = req.headers["company"];
); const q = req.body;
el.productionFile = `https://${company}/upload/erp${el.productionFile}`; try {
let { data } = await axios.get(
`https://${company}/api/pod/podProductionInfo/findByPodProductionNo`,
{
params: q,
headers: { "jwt-token": token }
} }
}); );
if (f) { res.json(data);
return res.json({ code: 500, msg: "存在地址错误的素材图" }); } catch (err) {
res.json({ code: 500, msg: err });
}
},
getCompanyList: async (req, res) => {
try {
let { data } = await axios.get(
"https://platform.jomalls.com/api/tools/getCompanyList"
);
res.send(data);
} catch (err) {
console.log(err);
res.json({ code: 500, msg: err });
}
},
commitApply: async (req, res) => {
const company = req.headers["company"];
const q = req.body;
try {
let { data } = await axios.post(
`https://${company}/api/sysDeviceInfo/commitApply`,
q
);
res.send(data);
} catch (err) {
console.log(err);
res.json({ code: 500, msg: err });
}
},
completeDelivery: async (req, res) => {
const token = req.headers["jwt-token"];
const company = req.headers["company"];
const q = req.body;
try {
let { data } = await axios.post(
`https://${company}/api/pod/podProductionInfo/completeDelivery`,
q,
{
headers: { "jwt-token": token }
}
);
res.json(data);
} catch (err) {
res.json({ code: 500, msg: err });
}
},
downloadByDesignId: async (req, res) => {
let q = req.body;
try {
let dir = path.join(os.homedir(), "/Desktop/" + q.productionNo + ".zip");
const zipStream = new compressing.zip.Stream();
for (let k in q.imgList) {
const p = path.join(
process.cwd(),
"./print/Input/" + q.imgList[k].fileName
);
zipStream.addEntry(p);
} }
downloadImage(data.data) const destStream = fs.createWriteStream(dir);
.then(data => { zipStream
res.json({ code: 200, data }); .pipe(destStream)
.on("finish", () => {
console.log("success");
res.json({ code: 200, msg: q.productionNo + ".zip" + "已下载到桌面" });
}) })
.catch(err => { .on("error", () => {
res.json({ code: 500, msg: err }); res.json({ code: 500, msg: "文件下载失败" });
}); });
} else { // let ws=fs.createWriteStream(dir );
res.json({ code: 200, msg: "未找到素材图", data: [] }); // console.log(downloadByDesignId)
//
// ws.write(downloadByDesignId.data);
// ws.on('drain',function () {
// console.log("内存干了");
// });
// ws.on('error',function (err) {
// res.json({code: 500, msg: '文件下载失败'})
// });
// ws.on('close',function (err) {
//
// });
// ws.end()
} catch (err) {
console.log(err);
res.json({ code: 500, msg: err });
} }
} catch (err) { },
console.log(err); uploadImage: async (req, res) => {
res.json({ code: 500, msg: err }); try {
} const p = path.join(process.cwd(), "./print/Input/");
}; let fileName = uuid.v4() + ".png";
fn.findByPodProductionNo = async (req, res) => { console.log(fileName);
const token = req.headers["jwt-token"];
const company = req.headers["company"];
const q = req.body;
try {
let { data } = await axios.get(
`https://${company}/api/pod/podProductionInfo/findByPodProductionNo`,
{
params: q,
headers: { "jwt-token": token }
}
);
res.json(data);
} catch (err) {
res.json({ code: 500, msg: err });
}
};
fn.getCompanyList = async (req, res) => {
try {
let { data } = await axios.get(
"https://platform.jomalls.com/api/tools/getCompanyList"
);
res.send(data);
} catch (err) {
console.log(err);
res.json({ code: 500, msg: err });
}
};
fn.commitApply = async (req, res) => {
const company = req.headers["company"];
const q = req.body;
try {
let { data } = await axios.post(
`https://${company}/api/sysDeviceInfo/commitApply`,
q
);
res.send(data);
} catch (err) {
console.log(err);
res.json({ code: 500, msg: err });
}
};
fn.completeDelivery = async (req, res) => {
const token = req.headers["jwt-token"];
const company = req.headers["company"];
const q = req.body;
try {
let { data } = await axios.post(
`https://${company}/api/pod/podProductionInfo/completeDelivery`,
q,
{
headers: { "jwt-token": token }
}
);
res.json(data);
} catch (err) {
res.json({ code: 500, msg: err });
}
};
fn.downloadByDesignId = async (req, res) => {
let q = req.body;
try {
let dir = path.join(os.homedir(), "/Desktop/" + q.productionNo + ".zip");
const zipStream = new compressing.zip.Stream();
for (let k in q.imgList) { const form = new multiparty.Form({ uploadDir: p });
const p = path.join( form.parse(req, function(err, fields, files) {
console.log(fields, files, err);
if (err) {
res.send({ code: 500, err });
} else {
fs.renameSync(files.file[0].path, path.join(p, fileName));
res.json({
code: 200,
data: {
fileName,
url: path.join(process.cwd(), "./print/Input/" + fileName)
}
});
}
});
} catch (err) {
console.log(err);
res.json({ code: 500, msg: err });
}
},
getPngImg: async (req, res) => {
try {
const filePath = path.join(
process.cwd(), process.cwd(),
"./print/Input/" + q.imgList[k].fileName `./print/Input/${req.body.fileName}`
); );
zipStream.addEntry(p); console.log(filePath);
} // 给客户端返回一个文件流 type类型
res.set("content-type", { png: "image/png", jpg: "image/jpeg" }); //设置返回类型
const destStream = fs.createWriteStream(dir); let stream = fs.createReadStream(filePath);
zipStream let responseData = []; //存储文件流
.pipe(destStream) if (stream) {
.on("finish", () => { //判断状态
console.log("success"); stream.on("data", function(chunk) {
res.json({ code: 200, msg: q.productionNo + ".zip" + "已下载到桌面" }); responseData.push(chunk);
}) });
.on("error", () => { stream.on("end", function() {
res.json({ code: 500, msg: "文件下载失败" }); const finalData = Buffer.concat(responseData);
}); res.write(finalData);
// let ws=fs.createWriteStream(dir ); res.end();
// console.log(downloadByDesignId)
//
// ws.write(downloadByDesignId.data);
// ws.on('drain',function () {
// console.log("内存干了");
// });
// ws.on('error',function (err) {
// res.json({code: 500, msg: '文件下载失败'})
// });
// ws.on('close',function (err) {
//
// });
// ws.end()
} catch (err) {
console.log(err);
res.json({ code: 500, msg: err });
}
};
fn.uploadImage = async (req, res) => {
try {
const p = path.join(process.cwd(), "./print/Input/");
let fileName = uuid.v4() + ".png";
console.log(fileName);
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 {
fs.renameSync(files.file[0].path, path.join(p, fileName));
res.json({
code: 200,
data: {
fileName,
url: path.join(process.cwd(), "./print/Input/" + fileName)
}
}); });
} }
}); } catch (err) {
} catch (err) { res.send({ code: 500, msg: err });
console.log(err);
res.json({ code: 500, msg: err });
}
};
fn.getPngImg = async (req, res) => {
try {
const filePath = path.join(
process.cwd(),
`./print/Input/${req.body.fileName}`
);
console.log(filePath);
// 给客户端返回一个文件流 type类型
res.set("content-type", { png: "image/png", jpg: "image/jpeg" }); //设置返回类型
let stream = fs.createReadStream(filePath);
let responseData = []; //存储文件流
if (stream) {
//判断状态
stream.on("data", function(chunk) {
responseData.push(chunk);
});
stream.on("end", function() {
const finalData = Buffer.concat(responseData);
res.write(finalData);
res.end();
});
} }
} catch (err) { },
res.send({ code: 500, msg: err }); login: async (req, res) => {
} const { loginName, company, password, deviceId } = req.body;
}; try {
let { data } = await axios.post(`https://${company}/api/sysLogin/login`, {
fn.login = async (req, res) => { loginName,
const { loginName, company, password, deviceId } = req.body; password,
try { deviceId
let { data } = await axios.post(`https://${company}/api/sysLogin/login`, { });
loginName,
password,
deviceId
});
res.send(data); res.send(data);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
res.json({ code: 500, msg: err }); res.json({ code: 500, msg: err });
}
},
toPrint: (req, res) => {
let body = req.body;
writeProfileXml(body); // 写入xml文件
// GTXproCMD.exe print -X "Profile\\CO12.xml" -I "Input\\sample.png" -A "Output\\pO12.arxp" -S 03000400 -L 02540254
toSend(body)
.then(r => {
res.send({ code: 200, msg: "操作成功" });
})
.catch(err => {
res.send({ code: 500, msg: err });
});
} }
}; };
fn.toPrint = (req, res) => {
let body = req.body;
writeProfileXml(body); // 写入xml文件
// GTXproCMD.exe print -X "Profile\\CO12.xml" -I "Input\\sample.png" -A "Output\\pO12.arxp" -S 03000400 -L 02540254
toSend(body)
.then(r => {
res.send({ code: 200, msg: "操作成功" });
})
.catch(err => {
res.send({ code: 500, msg: err });
});
};
export { fn as default };
...@@ -5,16 +5,26 @@ import fn from "../entity/function.js"; ...@@ -5,16 +5,26 @@ import fn from "../entity/function.js";
let router = express.Router(); let router = express.Router();
// 执行打印命令
router.post("/toPrint", fn.toPrint); router.post("/toPrint", fn.toPrint);
// 登录接口
router.post("/login", fn.login); router.post("/login", fn.login);
// 获取本地文件返回
router.post("/getPngImg", fn.getPngImg); router.post("/getPngImg", fn.getPngImg);
// 上传文件到本地
router.post("/uploadImage", fn.uploadImage); router.post("/uploadImage", fn.uploadImage);
// 获取公司列表
router.get("/getCompanyList", fn.getCompanyList); router.get("/getCompanyList", fn.getCompanyList);
// 提交授权申请
router.post("/commitApply", fn.commitApply); router.post("/commitApply", fn.commitApply);
// 下载素材到本地
router.post("/downloadByDesignId", fn.downloadByDesignId); router.post("/downloadByDesignId", fn.downloadByDesignId);
// 获取 生产单号返回素材地址
router.post("/getPodProductionInfo", fn.getPodProductionInfo); router.post("/getPodProductionInfo", fn.getPodProductionInfo);
// 提交生产完成
router.post("/completeDelivery", fn.completeDelivery); router.post("/completeDelivery", fn.completeDelivery);
// 根据生产单号查询详情
router.post("/findByPodProductionNo", fn.findByPodProductionNo); router.post("/findByPodProductionNo", fn.findByPodProductionNo);
export {router as default}; export { router as default };
import express from "express"; import express from "express";
import router from "./routes/be_routes.js"; import router from "./routes/index.js";
const PORT = 3000; const PORT = 3000;
const webApp = express(); const webApp = express();
...@@ -9,12 +9,12 @@ webApp.use(express.urlencoded({ extended: false })); ...@@ -9,12 +9,12 @@ webApp.use(express.urlencoded({ extended: false }));
webApp.use("/", router); webApp.use("/", router);
// catch 404 // catch 404
webApp.use((req, res, next) => { webApp.use((req, res) => {
res.status(404).send("Sorry! 404 Error."); res.status(404).send("Sorry! 404 Error.");
}); });
// error handler, 4个参数 // error handler, 4个参数
webApp.use((err, req, res, next) => { webApp.use((err, req, res) => {
// set locals, only providing error in development // set locals, only providing error in development
res.locals.message = err.message; res.locals.message = err.message;
res.locals.error = req.app.get("env") === "development" ? err : {}; res.locals.error = req.app.get("env") === "development" ? err : {};
......
"use strict"; "use strict";
import { contextBridge, ipcMain, ipcRenderer } from "electron"; import { ipcMain } from "electron";
import { app, protocol, BrowserWindow, Menu, screen } from "electron"; import { app, protocol, BrowserWindow, screen } from "electron";
import { createProtocol } from "vue-cli-plugin-electron-builder/lib"; import { createProtocol } from "vue-cli-plugin-electron-builder/lib";
import webApp from "@/backend/webserver/be_nodeSrv.js"; import webApp from "@/backend/server.js";
let isCreateWin = false;
const isDevelopment = process.env.NODE_ENV !== "production"; const isDevelopment = process.env.NODE_ENV !== "production";
let win; let win;
......
...@@ -2,14 +2,14 @@ import Vue from "vue"; ...@@ -2,14 +2,14 @@ import Vue from "vue";
import App from "./App.vue"; import App from "./App.vue";
import router from "./router"; import router from "./router";
import store from "./store"; import store from "./store";
import VueI18n from 'vue-i18n'; import VueI18n from "vue-i18n";
import VueCompositionApi from "@vue/composition-api"; import VueCompositionApi from "@vue/composition-api";
import { Message } from "element-ui"; import { Message } from "element-ui";
// 挂载到$message上 // 挂载到$message上
import api from '@/utils/axios' import api from "@/utils/axios";
import ElementUI from "element-ui"; import ElementUI from "element-ui";
import "element-ui/lib/theme-chalk/index.css"; import "element-ui/lib/theme-chalk/index.css";
import dataStore from 'electron-store'; import dataStore from "electron-store";
const DataStore = new dataStore(); const DataStore = new dataStore();
...@@ -18,20 +18,19 @@ Vue.use(ElementUI); ...@@ -18,20 +18,19 @@ Vue.use(ElementUI);
Vue.use(VueCompositionApi); Vue.use(VueCompositionApi);
Vue.use(VueI18n); Vue.use(VueI18n);
Vue.prototype.$message = Message Vue.prototype.$message = Message;
Vue.prototype.$dataStore = DataStore Vue.prototype.$dataStore = DataStore;
Vue.prototype.$store = store Vue.prototype.$store = store;
Vue.prototype.$api = api Vue.prototype.$api = api;
Vue.prototype.$message = Message Vue.prototype.$message = Message;
const i18n = new VueI18n({ const i18n = new VueI18n({
locale: 'zh', locale: "zh",
messages: { messages: {
'zh': require('./i18n/zh.js'), zh: require("./i18n/zh.js"),
'en': require('./i18n/en.js') en: require("./i18n/en.js")
} }
}); });
new Vue({ new Vue({
router, router,
store, store,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment