Commit f6e45c94 by linjinhong

fix:添加库存提示

parent 8163590c
......@@ -11,7 +11,7 @@ function startLoading() {
lock: true,
text: "拼命加载中...",
spinner: "el-icon-loading",
background: "rgba(0,0,0,.7)",
background: "rgba(0,0,0,.7)"
});
}
......@@ -25,16 +25,16 @@ axios.defaults.timeout = 12600000;
const QUERY_ORDER_API_MAP = {
CN: {
path: "factory/podJomallOrderProductCn/getProductCnByFactorySubOrderNumber",
paramKey: "factorySubOrderNumber", // 参数名:工厂子订单号
paramKey: "factorySubOrderNumber" // 参数名:工厂子订单号
},
US: {
path: "factory/podJomallOrderProductUs/getProductUsByFactorySubOrderNumber",
paramKey: "factorySubOrderNumber", // 参数名:工厂子订单号
paramKey: "factorySubOrderNumber" // 参数名:工厂子订单号
},
GC: {
path: "factory/podJomallOrderProduct/getSubOrderByThirdSubOrderNumber",
paramKey: "thirdSubOrderNumber", // 参数名:第三方子订单号(老pod)
},
paramKey: "thirdSubOrderNumber" // 参数名:第三方子订单号(老pod)
}
};
/**
* 通用查询订单接口
......@@ -53,21 +53,21 @@ export function findByPodProductionNoApi(orderNumber) {
const apiConfig = QUERY_ORDER_API_MAP[orderNumber.orderType];
if (!apiConfig) {
throw new Error(
`查询订单失败:不支持的订单类型${orderNumber.orderType},仅支持CN/US/GC`,
`查询订单失败:不支持的订单类型${orderNumber.orderType},仅支持CN/US/GC`
);
}
// 3. 构造请求参数(根据类型自动匹配参数名)
const requestParams = {
[apiConfig.paramKey]: orderNumber.thirdSubOrderNumber,
resizable: orderNumber.resizable,
resizable: orderNumber.resizable
};
// 4. 获取基地址并发送GET请求
const env = getHostApi().apiApiHost;
return axios.get(apiConfig.path, {
baseURL: env,
params: requestParams,
params: requestParams
});
}
// ===================== 素材下载相关 =====================
......@@ -97,7 +97,7 @@ export async function downloadBySubOrderNumberApi(params) {
// 4. 发送请求获取下载链接
const { data, message } = await downloadDesignImagesBaseApi(
pathMap["downloadBySubOrderNumber"][targetType],
params,
params
);
// 建议明确获取响应data(根据实际axios响应结构调整)
......@@ -113,7 +113,7 @@ export async function downloadBySubOrderNumberApi(params) {
// 6. 构建下载文件列表
const fileEnv = getHostApi().fileApiUrl;
files = files.map((el) => ({ url: `${fileEnv}${el}` }));
files = files.map(el => ({ url: `${fileEnv}${el}` }));
console.log(106, files);
const downloadFunc =
params.device === 2 ? downloadOtherImage : downloadImage;
......@@ -122,7 +122,7 @@ export async function downloadBySubOrderNumberApi(params) {
return {
code: 200,
message: "下载成功",
data: downloadResult,
data: downloadResult
};
} catch (error) {
// 统一错误处理:便于调试和用户提示
......@@ -147,21 +147,21 @@ export function completeDeliveryApi(params) {
CN: {
data: {
id: params.id,
podJomallOrderCnId: params.podJomallOrderCnId || "",
podJomallOrderCnId: params.podJomallOrderCnId || ""
},
url: "factory/podJomallOrderProductCn/completeDelivery",
url: "factory/podJomallOrderProductCn/completeDelivery"
},
US: {
data: {
id: params.id,
podJomallOrderUsId: params.podJomallOrderUsId || "",
podJomallOrderUsId: params.podJomallOrderUsId || ""
},
url: "factory/podJomallOrderProductUs/completeDelivery",
url: "factory/podJomallOrderProductUs/completeDelivery"
},
GC: {
data: { id: params.id },
url: "factory/podJomallOrderProduct/completeDelivery",
},
url: "factory/podJomallOrderProduct/completeDelivery"
}
};
// 2. 校验订单类型是否支持
......@@ -178,16 +178,16 @@ export function checkUpdate(version) {
{
params: {
businessType: "production_assistant",
version,
},
},
version
}
}
);
}
export function getAllCountryApi(thirdSubOrderNumber) {
return axios.get(`logisticsAddress/getAllCountry`, {
params: {
thirdSubOrderNumber,
},
thirdSubOrderNumber
}
});
}
......@@ -4,7 +4,7 @@ export const pathMap = {
CN: "factory/podJomallOrderProductCn/getProductCnByFactorySubOrderNumber",
US: "factory/podJomallOrderProductUs/getProductUsByFactorySubOrderNumber",
GC: "factory/podJomallOrderProduct/getSubOrderByThirdSubOrderNumber",
OP: "factory/podOrderOperation/getByOperationNo",
OP: "factory/podOrderOperation/getByOperationNo"
},
//下载素材接口
downloadBySubOrderNumber: {
......@@ -14,26 +14,30 @@ export const pathMap = {
OP: "factory/podOrderOperation/downloadDesignImages",
USHLC: "factory/podJomallOrderProductUs/downloadCompatibleDesignImages",
CNHLC: "factory/podJomallOrderProductCn/downloadCompatibleDesignImages",
OPHLC: "factory/podOrderOperation/downloadCompatibleDesignImages",
OPHLC: "factory/podOrderOperation/downloadCompatibleDesignImages"
},
//生产完成接口
completeDelivery: {
CN: "factory/podJomallOrderProductCn/completeDelivery",
US: "factory/podJomallOrderProductUs/completeDelivery",
GC: "factory/podJomallOrderProduct/completeDelivery",
OP: "factory/podOrderOperation/printerCompleteDelivery",
OP: "factory/podOrderOperation/printerCompleteDelivery"
},
//惠立彩素材下载接口
processTransparentBackground: {
CN: "factory/podJomallOrderProductCn/processTransparentBackground",
US: "factory/podJomallOrderProductUs/processTransparentBackground",
US: "factory/podJomallOrderProductUs/processTransparentBackground"
},
//判断 status 操作单状态
scanProduce: {
OP: "factory/podOrderOperation/scan-produce"
}
};
export function autoRegisterRouter(router, funcKey, handler) {
const configGroup = pathMap[funcKey];
// 遍历配置自动注册路由
Object.values(configGroup).forEach((el) => {
Object.values(configGroup).forEach(el => {
router.post(`/${el}`, (req, res) => {
handler(req, res);
});
......
......@@ -3,12 +3,12 @@ import {
downloadOtherImage,
toSend,
writeProfileXml,
copySingleImage,
copySingleImage
} from "@/server/utils";
const {
cropImageTransparentEdges,
cropTransparentEdges,
processImages,
processImages
} = require("../utils/setImage");
import axios from "axios";
import { returnLogFilePath } from "../utils/log";
......@@ -26,7 +26,7 @@ const {
getVersion,
setApi,
getHostApi,
getDesktopDevice,
getDesktopDevice
} = require("@/server/utils/store");
const { pathMap } = require("@/config/index.js");
......@@ -95,12 +95,12 @@ export default {
const response = await axios({
url: req.body.url,
method: "GET",
responseType: "stream",
responseType: "stream"
});
let fileName = uuid.v4() + ".png";
const filePath = path.join(
process.cwd(),
`./${version}/Input/` + fileName,
`./${version}/Input/` + fileName
);
const writer = fs.createWriteStream(filePath);
......@@ -109,21 +109,21 @@ export default {
writer.on("finish", () => {
res.json({
code: 200,
data: filePath,
data: filePath
});
});
writer.on("error", (err) => {
writer.on("error", err => {
res.json({
code: 500,
data: err.message,
data: err.message
});
});
} catch (error) {
console.error("Error downloading image:", error);
res.json({
code: 500,
data: error.message,
data: error.message
});
}
},
......@@ -170,7 +170,7 @@ export default {
}
const { data } = await axios.post(postUrl, [...params.ids], {
headers: { "jwt-token": token },
headers: { "jwt-token": token }
});
if (data.code !== 200) {
......@@ -193,13 +193,13 @@ export default {
let files = [path];
files = files.map((el) => ({ url: `${fileEnv}${el}` }));
files = files.map(el => ({ url: `${fileEnv}${el}` }));
const downloadFunc =
params.device === 2 ? downloadOtherImage : downloadImage;
const result = await downloadFunc(files, {
processDesignA,
processDesignB,
processDesignB
});
console.log("result200", result);
......@@ -220,7 +220,7 @@ export default {
CN: "factorySubOrderNumber",
US: "factorySubOrderNumber",
GC: "thirdSubOrderNumber",
OP: "operationNo",
OP: "operationNo"
};
let url = pathMap["findByPodProductionNo"][params.orderType];
let paramsField = fieldMap[params.orderType];
......@@ -228,9 +228,9 @@ export default {
let { data } = await axios.get(`${env}/${url}`, {
params: {
[paramsField]: params.thirdSubOrderNumber,
resizable: params.resizable,
resizable: params.resizable
},
headers: { "jwt-token": token },
headers: { "jwt-token": token }
});
res.setHeader("Act-Request-URL", `${env}/${url}`);
res.json(data);
......@@ -241,7 +241,7 @@ export default {
getCompanyList: async (req, res) => {
try {
let { data } = await axios.get(
"https://platform.jomalls.com/api/tools/getCompanyList",
"https://platform.jomalls.com/api/tools/getCompanyList"
);
res.setHeader("X-Backend-Request-URL", "api/tools/getCompanyList");
res.send(data);
......@@ -258,21 +258,21 @@ export default {
const fieldMap = {
CN: {
id: params.id,
podJomallOrderCnId: params.podJomallOrderCnId || "",
podJomallOrderCnId: params.podJomallOrderCnId || ""
},
US: {
id: params.id,
podJomallOrderUsId: params.podJomallOrderUsId || "",
podJomallOrderUsId: params.podJomallOrderUsId || ""
},
GC: { id: params.id },
OP: { ...params.data },
OP: { ...params.data }
};
let url = pathMap["completeDelivery"][params.orderType];
let postData = fieldMap[params.orderType];
try {
let { data } = await axios.post(`${env}/${url}`, postData, {
headers: { "jwt-token": token },
headers: { "jwt-token": token }
});
res.setHeader("X-Backend-Request-URL", url);
......@@ -295,7 +295,7 @@ export default {
for (let k in q.imgList) {
const p = path.join(
process.cwd(),
`./${version}/Input/` + q.imgList[k].fileName,
`./${version}/Input/` + q.imgList[k].fileName
);
zipStream.addEntry(p);
}
......@@ -307,7 +307,7 @@ export default {
// console.log("success");
res.json({
code: 200,
msg: q.productionNo + ".zip" + "已下载到桌面",
msg: q.productionNo + ".zip" + "已下载到桌面"
});
})
.on("error", () => {
......@@ -339,8 +339,8 @@ export default {
code: 200,
data: {
fileName,
url: path.join(process.cwd(), `./${version}/Input/` + fileName),
},
url: path.join(process.cwd(), `./${version}/Input/` + fileName)
}
});
}
});
......@@ -357,7 +357,7 @@ export default {
const filePath = path.join(
process.cwd(),
`./${version}/Input/${req.body.fileName}`,
`./${version}/Input/${req.body.fileName}`
);
console.log(filePath);
// 给客户端返回一个文件流 type类型
......@@ -401,7 +401,7 @@ export default {
.then(() => {
res.send({ code: 200, msg: "操作成功" });
})
.catch((err) => {
.catch(err => {
res.send({ code: 500, msg: err });
});
},
......@@ -443,7 +443,7 @@ export default {
fs.unlinkSync(from);
res.json({ code: 200, msg: "更新成功" });
})
.catch((err) => {
.catch(err => {
res.json({ code: 500, msg: err.message });
});
});
......@@ -535,17 +535,17 @@ export default {
res.send({ code: 500, err });
} else {
let list = [];
files.files.forEach((file) => {
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(), `./${version}/Input/` + fileName),
url: path.join(process.cwd(), `./${version}/Input/` + fileName)
});
});
res.json({
code: 200,
data: list,
data: list
});
}
});
......@@ -591,7 +591,7 @@ export default {
try {
let { data } = await axios.get(`${env}/${url}`, {
params: postData,
headers: { "jwt-token": token },
headers: { "jwt-token": token }
});
console.log("processTransparentBackground", data);
if (data.message) {
......@@ -600,7 +600,7 @@ export default {
let files = data.data || [data.message];
files = files.map((el) => ({ url: `${fileEnv}${el}` }));
files = files.map(el => ({ url: `${fileEnv}${el}` }));
console.log("processTransparentBackground,files", files);
const result = await downloadImage(files);
......@@ -611,4 +611,25 @@ export default {
res.json({ code: 500, msg: err });
}
},
scanProduce: async (req, res) => {
env = getHostApi().apiApiHost;
const token = req.headers["jwt-token"];
const params = req.body;
let url = "factory/podOrderOperation/scan-produce";
console.log("scanProduce", `${env}/${url}`);
try {
let { data } = await axios.get(`${env}/${url}`, {
headers: { "jwt-token": token },
params: {
id: params.id,
status: params.status
}
});
res.send(data);
} catch (error) {
console.log("scanProduce", error);
res.json({ code: 500, msg: error });
}
}
};
......@@ -25,7 +25,7 @@ router.post("/downloadByDesignId", fn.downloadByDesignId);
autoRegisterRouter(
router,
"downloadBySubOrderNumber",
fn.downloadBySubOrderNumber,
fn.downloadBySubOrderNumber
);
// 提交生产完成
autoRegisterRouter(router, "completeDelivery", fn.completeDelivery);
......@@ -61,6 +61,9 @@ autoRegisterRouter(router, "findByPodProductionNo", fn.findByPodProductionNo);
autoRegisterRouter(
router,
"processTransparentBackground",
fn.processTransparentBackground,
fn.processTransparentBackground
);
//操作单状态
autoRegisterRouter(router, "scanProduce", fn.scanProduce);
export { router as default };
......@@ -5,7 +5,7 @@ import { Loading } from "element-ui";
// create an axios instance
const service = axios.create({
baseURL: "http://localhost:3000", // url = base url + request url
timeout: 12600000, // request timeout
timeout: 12600000 // request timeout
});
let loading;
......@@ -14,7 +14,7 @@ function startLoading() {
lock: true,
text: "拼命加载中...",
spinner: "el-icon-loading",
background: "rgba(0,0,0,.7)",
background: "rgba(0,0,0,.7)"
});
}
......@@ -24,7 +24,7 @@ function endLoading() {
// Add a request interceptor
service.interceptors.request.use(
(config) => {
config => {
const user = Vue.prototype.$dataStore.get("user");
if (user) {
config.headers["jwt-token"] = user.token;
......@@ -32,32 +32,30 @@ service.interceptors.request.use(
startLoading();
return config;
},
(error) => {
error => {
endLoading();
// do something with request error
return Promise.reject(error);
},
}
);
// Add a response interceptor
service.interceptors.response.use(
async (response) => {
async response => {
// do something with response data
const res = response.data;
endLoading();
if (res.code) {
if (res.code !== 200) {
if (res.code === 411) {
return Promise.resolve(res);
}
if (res.code === 205) {
if (res.code === 411 || res.code === 205 || res.code === 301) {
return Promise.resolve(res);
}
if (res.code === 403) {
Vue.prototype.$dataStore.delete("user");
Vue.prototype.$message.error({
showClose: true,
message: res.msg || res.message || "Error",
message: res.msg || res.message || "Error"
});
setTimeout(() => {
location.reload();
......@@ -72,7 +70,7 @@ service.interceptors.response.use(
}
Vue.prototype.$message.error({
showClose: true,
message: res.msg || res.message || "Error",
message: res.msg || res.message || "Error"
});
// reject
return Promise.reject(new Error(res.msg || res.message || "Error"));
......@@ -82,11 +80,11 @@ service.interceptors.response.use(
}
return Promise.resolve(res);
},
(error) => {
error => {
endLoading();
// do something with response error
return Promise.reject(error);
},
}
);
export default service;
......
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