修改
This commit is contained in:
2
.env.dev
2
.env.dev
@@ -25,4 +25,4 @@ VUE_APP_CAPTCHA_ENABLE = true
|
|||||||
VUE_APP_DOC_ENABLE = true
|
VUE_APP_DOC_ENABLE = true
|
||||||
|
|
||||||
# 百度统计
|
# 百度统计
|
||||||
VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab
|
# VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab
|
||||||
|
|||||||
16
.env.prod
16
.env.prod
@@ -1,18 +1,20 @@
|
|||||||
# 生产环境配置
|
# 生产环境配置
|
||||||
NODE_ENV = 'production'
|
ENV = 'production'
|
||||||
|
|
||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 洛玻集团驾驶舱
|
VUE_APP_TITLE = 洛玻集团驾驶舱
|
||||||
|
|
||||||
# 芋道管理系统/生产环境
|
# 芋道管理系统/生产环境
|
||||||
# 建议使用相对路径或通过nginx配置的域名/路径,避免写死IP和端口
|
# VUE_APP_BASE_API = '/prod-api'
|
||||||
VUE_APP_BASE_API = '' # 示例:使用相对路径,由nginx转发到实际后端地址
|
VUE_APP_BASE_API = ''
|
||||||
|
|
||||||
# 根据服务器或域名修改,使用相对路径,避免写死IP和端口
|
# 根据服务器或域名修改
|
||||||
PUBLIC_PATH = '' # 改为根路径,或根据实际二级部署路径设置(如 '/subpath/')
|
# PUBLIC_PATH = 'http://my-pi.com:8888/yudao-admin/'
|
||||||
|
# PUBLIC_PATH = 'http://192.168.0.33:8888/'
|
||||||
|
PUBLIC_PATH = ''
|
||||||
|
|
||||||
# 二级部署路径(如果需要)
|
# 二级部署路径
|
||||||
# VUE_APP_APP_NAME ='yudao-admin'
|
VUE_APP_APP_NAME ='yudao-admin'
|
||||||
|
|
||||||
# 多租户的开关
|
# 多租户的开关
|
||||||
VUE_APP_TENANT_ENABLE = true
|
VUE_APP_TENANT_ENABLE = true
|
||||||
|
|||||||
@@ -68,3 +68,11 @@ export function getOperateCockpit(data) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getOrderDetail(data) {
|
||||||
|
return request({
|
||||||
|
url: "/lb/operate-cockpit/getOrderDetail",
|
||||||
|
method: "post",
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -155,9 +155,9 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
getData(obj) {
|
getData(obj) {
|
||||||
getProductSaleAnalysis({
|
getProductSaleAnalysis({
|
||||||
startTime: 1762704000000,
|
startTime: obj.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: obj.endTime,
|
||||||
mode: 1
|
mode: obj.mode,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
this.productSaleData = [
|
this.productSaleData = [
|
||||||
|
|||||||
@@ -98,44 +98,40 @@ export default {
|
|||||||
const mode = this.activeTime + 1; // 1=日,2=月,3=年
|
const mode = this.activeTime + 1; // 1=日,2=月,3=年
|
||||||
const defaultMoment = moment(); // 默认当前时间
|
const defaultMoment = moment(); // 默认当前时间
|
||||||
|
|
||||||
// 处理选择的日期:转为moment对象(兼容不同选择器格式)
|
|
||||||
console.log('this.date', this.date);
|
|
||||||
|
|
||||||
const targetMoment = this.date
|
const targetMoment = this.date
|
||||||
? moment(this.date, this.getPickerType === 'date' ? 'YYYY-MM-DD' : (this.getPickerType === 'month' ? 'YYYY-MM' : 'YYYY'))
|
? moment(this.date, this.getPickerType === 'date' ? 'YYYY-MM-DD' : (this.getPickerType === 'month' ? 'YYYY-MM' : 'YYYY'))
|
||||||
: defaultMoment;
|
: defaultMoment;
|
||||||
|
|
||||||
// 验证日期有效性
|
|
||||||
if (!targetMoment.isValid()) {
|
if (!targetMoment.isValid()) {
|
||||||
console.error('无效日期:', this.date);
|
console.error('无效日期:', this.date);
|
||||||
return { startTime, endTime, mode };
|
return { startTime, endTime, mode };
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. 日维度:当天0点 → 次日0点
|
// 1. 日维度:00:00:00 → 23:59:59(无毫秒)
|
||||||
if (this.activeTime === 0) {
|
if (this.activeTime === 0) {
|
||||||
startTime = targetMoment.startOf('day').valueOf(); // 当天00:00:00 时间戳
|
startTime = targetMoment.startOf('day').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'day').startOf('day').valueOf(); // 次日00:00:00 时间戳
|
endTime = targetMoment.endOf('day').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 月维度:当月1日0点 → 次月1日0点
|
// 2. 月维度:当月1日00:00:00 → 当月最后一天23:59:59(无毫秒)
|
||||||
else if (this.activeTime === 1) {
|
else if (this.activeTime === 1) {
|
||||||
startTime = targetMoment.startOf('month').valueOf(); // 当月1日00:00:00 时间戳
|
startTime = targetMoment.startOf('month').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'month').startOf('month').valueOf(); // 次月1日00:00:00 时间戳
|
endTime = targetMoment.endOf('month').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 年维度:当年1月1日0点 → 次年1月1日0点
|
// 3. 年维度:当年1月1日00:00:00 → 当年最后一天23:59:59(无毫秒)
|
||||||
else if (this.activeTime === 2) {
|
else if (this.activeTime === 2) {
|
||||||
startTime = targetMoment.startOf('year').valueOf(); // 当年1月1日00:00:00 时间戳
|
startTime = targetMoment.startOf('year').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'year').startOf('year').valueOf(); // 次年1月1日00:00:00 时间戳
|
endTime = targetMoment.endOf('year').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调试输出(格式化显示,便于验证)
|
// 调试输出:验证是否去掉毫秒
|
||||||
console.log('时间范围计算结果:', {
|
console.log('时间范围计算结果:', {
|
||||||
mode,
|
mode,
|
||||||
startTime: moment(startTime).format('YYYY-MM-DD HH:mm:ss'),
|
startTime: moment(startTime * 1000).format('YYYY-MM-DD HH:mm:ss'), // 格式:2025-11-30 00:00:00
|
||||||
endTime: moment(endTime).format('YYYY-MM-DD HH:mm:ss'),
|
endTime: moment(endTime * 1000).format('YYYY-MM-DD HH:mm:ss'), // 格式:2025-11-30 23:59:59(无毫秒)
|
||||||
startTimeStamp: startTime,
|
startTimeStamp: startTime, // 秒级时间戳(如:1764422400)
|
||||||
endTimeStamp: endTime
|
endTimeStamp: endTime // 秒级时间戳(如:1764508799)
|
||||||
});
|
});
|
||||||
|
|
||||||
return { startTime, endTime, mode };
|
return { startTime, endTime, mode };
|
||||||
|
|||||||
@@ -103,44 +103,40 @@ export default {
|
|||||||
const mode = this.activeTime + 1; // 1=日,2=月,3=年
|
const mode = this.activeTime + 1; // 1=日,2=月,3=年
|
||||||
const defaultMoment = moment(); // 默认当前时间
|
const defaultMoment = moment(); // 默认当前时间
|
||||||
|
|
||||||
// 处理选择的日期:转为moment对象(兼容不同选择器格式)
|
|
||||||
console.log('this.date', this.date);
|
|
||||||
|
|
||||||
const targetMoment = this.date
|
const targetMoment = this.date
|
||||||
? moment(this.date, this.getPickerType === 'date' ? 'YYYY-MM-DD' : (this.getPickerType === 'month' ? 'YYYY-MM' : 'YYYY'))
|
? moment(this.date, this.getPickerType === 'date' ? 'YYYY-MM-DD' : (this.getPickerType === 'month' ? 'YYYY-MM' : 'YYYY'))
|
||||||
: defaultMoment;
|
: defaultMoment;
|
||||||
|
|
||||||
// 验证日期有效性
|
|
||||||
if (!targetMoment.isValid()) {
|
if (!targetMoment.isValid()) {
|
||||||
console.error('无效日期:', this.date);
|
console.error('无效日期:', this.date);
|
||||||
return { startTime, endTime, mode };
|
return { startTime, endTime, mode };
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. 日维度:当天0点 → 次日0点
|
// 1. 日维度:00:00:00 → 23:59:59(无毫秒)
|
||||||
if (this.activeTime === 0) {
|
if (this.activeTime === 0) {
|
||||||
startTime = targetMoment.startOf('day').valueOf(); // 当天00:00:00 时间戳
|
startTime = targetMoment.startOf('day').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'day').startOf('day').valueOf(); // 次日00:00:00 时间戳
|
endTime = targetMoment.endOf('day').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 月维度:当月1日0点 → 次月1日0点
|
// 2. 月维度:当月1日00:00:00 → 当月最后一天23:59:59(无毫秒)
|
||||||
else if (this.activeTime === 1) {
|
else if (this.activeTime === 1) {
|
||||||
startTime = targetMoment.startOf('month').valueOf(); // 当月1日00:00:00 时间戳
|
startTime = targetMoment.startOf('month').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'month').startOf('month').valueOf(); // 次月1日00:00:00 时间戳
|
endTime = targetMoment.endOf('month').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 年维度:当年1月1日0点 → 次年1月1日0点
|
// 3. 年维度:当年1月1日00:00:00 → 当年最后一天23:59:59(无毫秒)
|
||||||
else if (this.activeTime === 2) {
|
else if (this.activeTime === 2) {
|
||||||
startTime = targetMoment.startOf('year').valueOf(); // 当年1月1日00:00:00 时间戳
|
startTime = targetMoment.startOf('year').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'year').startOf('year').valueOf(); // 次年1月1日00:00:00 时间戳
|
endTime = targetMoment.endOf('year').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调试输出(格式化显示,便于验证)
|
// 调试输出:验证是否去掉毫秒
|
||||||
console.log('时间范围计算结果:', {
|
console.log('时间范围计算结果:', {
|
||||||
mode,
|
mode,
|
||||||
startTime: moment(startTime).format('YYYY-MM-DD HH:mm:ss'),
|
startTime: moment(startTime * 1000).format('YYYY-MM-DD HH:mm:ss'), // 格式:2025-11-30 00:00:00
|
||||||
endTime: moment(endTime).format('YYYY-MM-DD HH:mm:ss'),
|
endTime: moment(endTime * 1000).format('YYYY-MM-DD HH:mm:ss'), // 格式:2025-11-30 23:59:59(无毫秒)
|
||||||
startTimeStamp: startTime,
|
startTimeStamp: startTime, // 秒级时间戳(如:1764422400)
|
||||||
endTimeStamp: endTime
|
endTimeStamp: endTime // 秒级时间戳(如:1764508799)
|
||||||
});
|
});
|
||||||
|
|
||||||
return { startTime, endTime, mode };
|
return { startTime, endTime, mode };
|
||||||
|
|||||||
@@ -162,9 +162,9 @@ export default {
|
|||||||
getData(obj) {
|
getData(obj) {
|
||||||
// obj.levelId = 1
|
// obj.levelId = 1
|
||||||
getCostAnalysisList({
|
getCostAnalysisList({
|
||||||
startTime: 1762704000000,
|
startTime: obj.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: obj.endTime,
|
||||||
mode:1
|
mode: obj.mode,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
this.costOverviews = res.data.costOverviews
|
this.costOverviews = res.data.costOverviews
|
||||||
this.piecesCostViews = res.data.piecesCostViews
|
this.piecesCostViews = res.data.piecesCostViews
|
||||||
|
|||||||
@@ -111,44 +111,40 @@ export default {
|
|||||||
const mode = this.activeTime + 1; // 1=日,2=月,3=年
|
const mode = this.activeTime + 1; // 1=日,2=月,3=年
|
||||||
const defaultMoment = moment(); // 默认当前时间
|
const defaultMoment = moment(); // 默认当前时间
|
||||||
|
|
||||||
// 处理选择的日期:转为moment对象(兼容不同选择器格式)
|
|
||||||
console.log('this.date', this.date);
|
|
||||||
|
|
||||||
const targetMoment = this.date
|
const targetMoment = this.date
|
||||||
? moment(this.date, this.getPickerType === 'date' ? 'YYYY-MM-DD' : (this.getPickerType === 'month' ? 'YYYY-MM' : 'YYYY'))
|
? moment(this.date, this.getPickerType === 'date' ? 'YYYY-MM-DD' : (this.getPickerType === 'month' ? 'YYYY-MM' : 'YYYY'))
|
||||||
: defaultMoment;
|
: defaultMoment;
|
||||||
|
|
||||||
// 验证日期有效性
|
|
||||||
if (!targetMoment.isValid()) {
|
if (!targetMoment.isValid()) {
|
||||||
console.error('无效日期:', this.date);
|
console.error('无效日期:', this.date);
|
||||||
return { startTime, endTime, mode };
|
return { startTime, endTime, mode };
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. 日维度:当天0点 → 次日0点
|
// 1. 日维度:00:00:00 → 23:59:59(无毫秒)
|
||||||
if (this.activeTime === 0) {
|
if (this.activeTime === 0) {
|
||||||
startTime = targetMoment.startOf('day').valueOf(); // 当天00:00:00 时间戳
|
startTime = targetMoment.startOf('day').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'day').startOf('day').valueOf(); // 次日00:00:00 时间戳
|
endTime = targetMoment.endOf('day').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 月维度:当月1日0点 → 次月1日0点
|
// 2. 月维度:当月1日00:00:00 → 当月最后一天23:59:59(无毫秒)
|
||||||
else if (this.activeTime === 1) {
|
else if (this.activeTime === 1) {
|
||||||
startTime = targetMoment.startOf('month').valueOf(); // 当月1日00:00:00 时间戳
|
startTime = targetMoment.startOf('month').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'month').startOf('month').valueOf(); // 次月1日00:00:00 时间戳
|
endTime = targetMoment.endOf('month').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 年维度:当年1月1日0点 → 次年1月1日0点
|
// 3. 年维度:当年1月1日00:00:00 → 当年最后一天23:59:59(无毫秒)
|
||||||
else if (this.activeTime === 2) {
|
else if (this.activeTime === 2) {
|
||||||
startTime = targetMoment.startOf('year').valueOf(); // 当年1月1日00:00:00 时间戳
|
startTime = targetMoment.startOf('year').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'year').startOf('year').valueOf(); // 次年1月1日00:00:00 时间戳
|
endTime = targetMoment.endOf('year').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调试输出(格式化显示,便于验证)
|
// 调试输出:验证是否去掉毫秒
|
||||||
console.log('时间范围计算结果:', {
|
console.log('时间范围计算结果:', {
|
||||||
mode,
|
mode,
|
||||||
startTime: moment(startTime).format('YYYY-MM-DD HH:mm:ss'),
|
startTime: moment(startTime * 1000).format('YYYY-MM-DD HH:mm:ss'), // 格式:2025-11-30 00:00:00
|
||||||
endTime: moment(endTime).format('YYYY-MM-DD HH:mm:ss'),
|
endTime: moment(endTime * 1000).format('YYYY-MM-DD HH:mm:ss'), // 格式:2025-11-30 23:59:59(无毫秒)
|
||||||
startTimeStamp: startTime,
|
startTimeStamp: startTime, // 秒级时间戳(如:1764422400)
|
||||||
endTimeStamp: endTime
|
endTimeStamp: endTime // 秒级时间戳(如:1764508799)
|
||||||
});
|
});
|
||||||
|
|
||||||
return { startTime, endTime, mode };
|
return { startTime, endTime, mode };
|
||||||
|
|||||||
@@ -110,44 +110,40 @@ export default {
|
|||||||
const mode = this.activeTime + 1; // 1=日,2=月,3=年
|
const mode = this.activeTime + 1; // 1=日,2=月,3=年
|
||||||
const defaultMoment = moment(); // 默认当前时间
|
const defaultMoment = moment(); // 默认当前时间
|
||||||
|
|
||||||
// 处理选择的日期:转为moment对象(兼容不同选择器格式)
|
|
||||||
console.log('this.date', this.date);
|
|
||||||
|
|
||||||
const targetMoment = this.date
|
const targetMoment = this.date
|
||||||
? moment(this.date, this.getPickerType === 'date' ? 'YYYY-MM-DD' : (this.getPickerType === 'month' ? 'YYYY-MM' : 'YYYY'))
|
? moment(this.date, this.getPickerType === 'date' ? 'YYYY-MM-DD' : (this.getPickerType === 'month' ? 'YYYY-MM' : 'YYYY'))
|
||||||
: defaultMoment;
|
: defaultMoment;
|
||||||
|
|
||||||
// 验证日期有效性
|
|
||||||
if (!targetMoment.isValid()) {
|
if (!targetMoment.isValid()) {
|
||||||
console.error('无效日期:', this.date);
|
console.error('无效日期:', this.date);
|
||||||
return { startTime, endTime, mode };
|
return { startTime, endTime, mode };
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. 日维度:当天0点 → 次日0点
|
// 1. 日维度:00:00:00 → 23:59:59(无毫秒)
|
||||||
if (this.activeTime === 0) {
|
if (this.activeTime === 0) {
|
||||||
startTime = targetMoment.startOf('day').valueOf(); // 当天00:00:00 时间戳
|
startTime = targetMoment.startOf('day').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'day').startOf('day').valueOf(); // 次日00:00:00 时间戳
|
endTime = targetMoment.endOf('day').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 月维度:当月1日0点 → 次月1日0点
|
// 2. 月维度:当月1日00:00:00 → 当月最后一天23:59:59(无毫秒)
|
||||||
else if (this.activeTime === 1) {
|
else if (this.activeTime === 1) {
|
||||||
startTime = targetMoment.startOf('month').valueOf(); // 当月1日00:00:00 时间戳
|
startTime = targetMoment.startOf('month').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'month').startOf('month').valueOf(); // 次月1日00:00:00 时间戳
|
endTime = targetMoment.endOf('month').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 年维度:当年1月1日0点 → 次年1月1日0点
|
// 3. 年维度:当年1月1日00:00:00 → 当年最后一天23:59:59(无毫秒)
|
||||||
else if (this.activeTime === 2) {
|
else if (this.activeTime === 2) {
|
||||||
startTime = targetMoment.startOf('year').valueOf(); // 当年1月1日00:00:00 时间戳
|
startTime = targetMoment.startOf('year').millisecond(0).valueOf();
|
||||||
endTime = targetMoment.add(1, 'year').startOf('year').valueOf(); // 次年1月1日00:00:00 时间戳
|
endTime = targetMoment.endOf('year').millisecond(0).valueOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调试输出(格式化显示,便于验证)
|
// 调试输出:验证是否去掉毫秒
|
||||||
console.log('时间范围计算结果:', {
|
console.log('时间范围计算结果:', {
|
||||||
mode,
|
mode,
|
||||||
startTime: moment(startTime).format('YYYY-MM-DD HH:mm:ss'),
|
startTime: moment(startTime * 1000).format('YYYY-MM-DD HH:mm:ss'), // 格式:2025-11-30 00:00:00
|
||||||
endTime: moment(endTime).format('YYYY-MM-DD HH:mm:ss'),
|
endTime: moment(endTime * 1000).format('YYYY-MM-DD HH:mm:ss'), // 格式:2025-11-30 23:59:59(无毫秒)
|
||||||
startTimeStamp: startTime,
|
startTimeStamp: startTime, // 秒级时间戳(如:1764422400)
|
||||||
endTimeStamp: endTime
|
endTimeStamp: endTime // 秒级时间戳(如:1764508799)
|
||||||
});
|
});
|
||||||
|
|
||||||
return { startTime, endTime, mode };
|
return { startTime, endTime, mode };
|
||||||
|
|||||||
@@ -169,9 +169,9 @@ export default {
|
|||||||
// startTime: this.startTime,
|
// startTime: this.startTime,
|
||||||
// endTime: this.endTime,
|
// endTime: this.endTime,
|
||||||
// mode: this.mode,
|
// mode: this.mode,
|
||||||
startTime: 1762704000000,
|
startTime: this.dateData.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
trendName: "燃料成本",
|
trendName: "燃料成本",
|
||||||
levelId: this.levelId ? this.levelId :1
|
levelId: this.levelId ? this.levelId :1
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -170,9 +170,9 @@ export default {
|
|||||||
// startTime: this.startTime,
|
// startTime: this.startTime,
|
||||||
// endTime: this.endTime,
|
// endTime: this.endTime,
|
||||||
// mode: this.mode,
|
// mode: this.mode,
|
||||||
startTime: 1762704000000,
|
startTime: this.dateData.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
trendName: "燃动力成本",
|
trendName: "燃动力成本",
|
||||||
levelId: this.levelId ? this.levelId : 1
|
levelId: this.levelId ? this.levelId : 1
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
grid-template-columns: 560px 745px 560px ;
|
grid-template-columns: 560px 745px 560px ;
|
||||||
">
|
">
|
||||||
<coreBottomLeft :purchase="purchase" :inventory="inventory" />
|
<coreBottomLeft :purchase="purchase" :inventory="inventory" />
|
||||||
<orderProgress @getData="getOrderData" :baseOrder="baseOrder" :orderOutput="orderOutput" />
|
<orderProgress @getData="getOrderData" :baseOrder="orderTableData" :orderOutput="orderOutput" />
|
||||||
<keyWork :importantWork="importantWork" />
|
<keyWork :importantWork="importantWork" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -39,7 +39,7 @@ import coreBottomLeft from './components/coreBottomLeft.vue'
|
|||||||
import orderProgress from './components/orderProgress.vue'
|
import orderProgress from './components/orderProgress.vue'
|
||||||
import keyWork from './components/keyWork.vue'
|
import keyWork from './components/keyWork.vue'
|
||||||
// import moment from 'moment'
|
// import moment from 'moment'
|
||||||
import { getOperateCockpit } from '@/api/cockpit'
|
import { getOperateCockpit, getOrderDetail } from '@/api/cockpit'
|
||||||
export default {
|
export default {
|
||||||
name: 'DayReport',
|
name: 'DayReport',
|
||||||
components: { ReportHeader, coreSalesKPIs, keyProductionIndicators, coreBottomLeft, keyWork, orderProgress, financeCosts },
|
components: { ReportHeader, coreSalesKPIs, keyProductionIndicators, coreBottomLeft, keyWork, orderProgress, financeCosts },
|
||||||
@@ -49,6 +49,7 @@ export default {
|
|||||||
timer: null,
|
timer: null,
|
||||||
beilv: 1,
|
beilv: 1,
|
||||||
value: 100,
|
value: 100,
|
||||||
|
orderTableData:[],
|
||||||
productData: {},
|
productData: {},
|
||||||
purchase: {},
|
purchase: {},
|
||||||
dateData:{},
|
dateData:{},
|
||||||
@@ -107,13 +108,14 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getOrderData(num) {
|
async getOrderData(num) {
|
||||||
this.getData({
|
const res = await getOrderDetail({
|
||||||
startTime: this.dateData.startTime,
|
// startTime: this.dateData.startTime,
|
||||||
endTime: this.dateData.endTime,
|
// endTime: this.dateData.endTime,
|
||||||
timeDim: this.dateData.mode,
|
// timeDim: this.dateData.mode,
|
||||||
baseId: num
|
baseId: num
|
||||||
})
|
})
|
||||||
|
this.orderTableData = res.data
|
||||||
},
|
},
|
||||||
getData(obj) {
|
getData(obj) {
|
||||||
console.log('obj', obj);
|
console.log('obj', obj);
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ export default {
|
|||||||
getSalesRevenueData({
|
getSalesRevenueData({
|
||||||
startTime: obj.startTime,
|
startTime: obj.startTime,
|
||||||
endTime: obj.endTime,
|
endTime: obj.endTime,
|
||||||
timeDim: 1
|
timeDim: obj.mode
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
this.saleData = res.data.SaleData
|
this.saleData = res.data.SaleData
|
||||||
|
|||||||
@@ -170,9 +170,9 @@ export default {
|
|||||||
// startTime: this.startTime,
|
// startTime: this.startTime,
|
||||||
// endTime: this.endTime,
|
// endTime: this.endTime,
|
||||||
// mode: this.mode,
|
// mode: this.mode,
|
||||||
startTime: 1762704000000,
|
startTime: this.dateData.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
trendName: "包装物辅材成本",
|
trendName: "包装物辅材成本",
|
||||||
levelId: this.levelId ? this.levelId : 1
|
levelId: this.levelId ? this.levelId : 1
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -170,9 +170,9 @@ export default {
|
|||||||
// startTime: this.startTime,
|
// startTime: this.startTime,
|
||||||
// endTime: this.endTime,
|
// endTime: this.endTime,
|
||||||
// mode: this.mode,
|
// mode: this.mode,
|
||||||
startTime: 1762704000000,
|
startTime: this.dateData.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
trendName: "制造费用成本",
|
trendName: "制造费用成本",
|
||||||
levelId: this.levelId ? this.levelId : 1
|
levelId: this.levelId ? this.levelId : 1
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -158,9 +158,9 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
getData(obj) {
|
getData(obj) {
|
||||||
getProfitAnalysisData({
|
getProfitAnalysisData({
|
||||||
startTime: 1762704000000,
|
startTime: obj.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: obj.endTime,
|
||||||
mode: 1
|
mode: obj.mode,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
|
|
||||||
this.profitTotalData = res.data.overviewProfitData.filter(item => {
|
this.profitTotalData = res.data.overviewProfitData.filter(item => {
|
||||||
|
|||||||
@@ -160,9 +160,9 @@ export default {
|
|||||||
// startTime: this.startTime,
|
// startTime: this.startTime,
|
||||||
// endTime: this.endTime,
|
// endTime: this.endTime,
|
||||||
// mode: this.mode,
|
// mode: this.mode,
|
||||||
startTime: 1762704000290,
|
startTime: this.dateData.startTime,
|
||||||
endTime: 1762790399290,
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
// analysisObject: this.analysisObject,
|
// analysisObject: this.analysisObject,
|
||||||
analysisObject: ["石灰石"],
|
analysisObject: ["石灰石"],
|
||||||
levelId: this.levelId ? this.levelId : 1
|
levelId: this.levelId ? this.levelId : 1
|
||||||
|
|||||||
@@ -156,11 +156,11 @@ export default {
|
|||||||
// this.dateData = obj
|
// this.dateData = obj
|
||||||
// console.log('obj', obj);
|
// console.log('obj', obj);
|
||||||
getCostAnalysisXXCostList({
|
getCostAnalysisXXCostList({
|
||||||
startTime: "1762704000290",
|
startTime: this.dateData.startTime,
|
||||||
endTime: "1762790399290",
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
trendName: "原料成本",
|
trendName: "原料成本",
|
||||||
levelId: 2
|
levelId: this.levelId
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
this.itemData = res.data[0].map((item) => {
|
this.itemData = res.data[0].map((item) => {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -185,9 +185,9 @@ export default {
|
|||||||
// startTime: this.startTime,
|
// startTime: this.startTime,
|
||||||
// endTime: this.endTime,
|
// endTime: this.endTime,
|
||||||
// mode: this.mode,
|
// mode: this.mode,
|
||||||
startTime: 1762704000000,
|
startTime: this.dateData.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
analysisObject: this.analysisObject,
|
analysisObject: this.analysisObject,
|
||||||
levelId: this.levelId ? this.levelId : 1
|
levelId: this.levelId ? this.levelId : 1
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -186,9 +186,9 @@ export default {
|
|||||||
// startTime: this.startTime,
|
// startTime: this.startTime,
|
||||||
// endTime: this.endTime,
|
// endTime: this.endTime,
|
||||||
// mode: this.mode,
|
// mode: this.mode,
|
||||||
startTime: 1762704000000,
|
startTime: this.dateData.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
analysisObject: this.analysisObject,
|
analysisObject: this.analysisObject,
|
||||||
levelId: this.levelId ? this.levelId : 1
|
levelId: this.levelId ? this.levelId : 1
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -180,9 +180,9 @@ export default {
|
|||||||
// startTime: this.startTime,
|
// startTime: this.startTime,
|
||||||
// endTime: this.endTime,
|
// endTime: this.endTime,
|
||||||
// mode: this.mode,
|
// mode: this.mode,
|
||||||
startTime: 1762704000000,
|
startTime: this.dateData.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
analysisObject: this.analysisObject,
|
analysisObject: this.analysisObject,
|
||||||
levelId: this.levelId ? this.levelId : 1
|
levelId: this.levelId ? this.levelId : 1
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -186,9 +186,9 @@ export default {
|
|||||||
// startTime: this.startTime,
|
// startTime: this.startTime,
|
||||||
// endTime: this.endTime,
|
// endTime: this.endTime,
|
||||||
// mode: this.mode,
|
// mode: this.mode,
|
||||||
startTime: 1762704000000,
|
startTime: this.dateData.startTime,
|
||||||
endTime: 1762790400000,
|
endTime: this.dateData.endTime,
|
||||||
mode: 1,
|
mode: this.dateData.mode,
|
||||||
analysisObject: this.analysisObject,
|
analysisObject: this.analysisObject,
|
||||||
levelId: this.levelId ? this.levelId : 1
|
levelId: this.levelId ? this.levelId : 1
|
||||||
};
|
};
|
||||||
|
|||||||
159
vue.config.js
159
vue.config.js
@@ -1,16 +1,16 @@
|
|||||||
'use strict'
|
"use strict";
|
||||||
const path = require('path')
|
const path = require("path");
|
||||||
const defaultSettings = require('./src/settings.js')
|
const defaultSettings = require("./src/settings.js");
|
||||||
|
|
||||||
function resolve(dir) {
|
function resolve(dir) {
|
||||||
return path.join(__dirname, dir)
|
return path.join(__dirname, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
const CompressionPlugin = require('compression-webpack-plugin')
|
const CompressionPlugin = require("compression-webpack-plugin");
|
||||||
|
|
||||||
const name = process.env.VUE_APP_TITLE || "洛玻集团驾驶舱"; // 网页标题
|
const name = process.env.VUE_APP_TITLE || "洛玻集团驾驶舱"; // 网页标题
|
||||||
|
|
||||||
const port = process.env.port || process.env.npm_config_port || 80 // 端口
|
const port = process.env.port || process.env.npm_config_port || 80; // 端口
|
||||||
|
|
||||||
// vue.config.js 配置说明
|
// vue.config.js 配置说明
|
||||||
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
|
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
|
||||||
@@ -19,120 +19,115 @@ module.exports = {
|
|||||||
// 部署生产环境和开发环境下的URL。
|
// 部署生产环境和开发环境下的URL。
|
||||||
// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
|
// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
|
||||||
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
|
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
|
||||||
publicPath: process.env.PUBLIC_PATH ? process.env.PUBLIC_PATH : '/',
|
publicPath: process.env.PUBLIC_PATH ? process.env.PUBLIC_PATH : "/",
|
||||||
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
|
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
|
||||||
outputDir: 'dist',
|
outputDir: "dist",
|
||||||
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
|
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
|
||||||
assetsDir: 'static',
|
assetsDir: "static",
|
||||||
// 是否开启eslint保存检测,有效值:ture | false | 'error'
|
// 是否开启eslint保存检测,有效值:ture | false | 'error'
|
||||||
lintOnSave: process.env.NODE_ENV === 'development',
|
lintOnSave: process.env.NODE_ENV === "development",
|
||||||
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
|
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
|
||||||
productionSourceMap: false,
|
productionSourceMap: false,
|
||||||
// webpack-dev-server 相关配置
|
// webpack-dev-server 相关配置
|
||||||
devServer: {
|
devServer: {
|
||||||
host: '0.0.0.0',
|
host: "0.0.0.0",
|
||||||
port: port,
|
port: port,
|
||||||
open: true,
|
open: true,
|
||||||
proxy: {
|
proxy: {
|
||||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||||
['/proxy-api']: {
|
["/proxy-api"]: {
|
||||||
target: `http://localhost:48080`,
|
target: `http://localhost:48080`,
|
||||||
// target: `http://api-dashboard.yudao.iocoder.cn`,
|
// target: `http://api-dashboard.yudao.iocoder.cn`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
['^' + process.env.VUE_APP_BASE_API]: ''
|
["^" + process.env.VUE_APP_BASE_API]: "",
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
disableHostCheck: true
|
disableHostCheck: true,
|
||||||
},
|
},
|
||||||
css: {
|
css: {
|
||||||
loaderOptions: {
|
loaderOptions: {
|
||||||
sass: {
|
sass: {
|
||||||
sassOptions: { outputStyle: "expanded" }
|
sassOptions: { outputStyle: "expanded" },
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
configureWebpack: {
|
configureWebpack: {
|
||||||
name: name,
|
name: name,
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'@': resolve('src')
|
"@": resolve("src"),
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
// http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
|
// http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
|
||||||
new CompressionPlugin({
|
new CompressionPlugin({
|
||||||
cache: false, // 不启用文件缓存
|
cache: false, // 不启用文件缓存
|
||||||
test: /\.(js|css|html)?$/i, // 压缩文件格式
|
test: /\.(js|css|html)?$/i, // 压缩文件格式
|
||||||
filename: '[path].gz[query]', // 压缩后的文件名
|
filename: "[path].gz[query]", // 压缩后的文件名
|
||||||
algorithm: 'gzip', // 使用gzip压缩
|
algorithm: "gzip", // 使用gzip压缩
|
||||||
minRatio: 0.8 // 压缩率小于1才会压缩
|
minRatio: 0.8, // 压缩率小于1才会压缩
|
||||||
})
|
}),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
chainWebpack(config) {
|
chainWebpack(config) {
|
||||||
config.plugins.delete('preload') // TODO: need test
|
config.plugins.delete("preload"); // TODO: need test
|
||||||
config.plugins.delete('prefetch') // TODO: need test
|
config.plugins.delete("prefetch"); // TODO: need test
|
||||||
|
|
||||||
// set svg-sprite-loader
|
// set svg-sprite-loader
|
||||||
|
config.module.rule("svg").exclude.add(resolve("src/assets/icons")).end();
|
||||||
config.module
|
config.module
|
||||||
.rule('svg')
|
.rule("icons")
|
||||||
.exclude.add(resolve('src/assets/icons'))
|
|
||||||
.end()
|
|
||||||
config.module
|
|
||||||
.rule('icons')
|
|
||||||
.test(/\.svg$/)
|
.test(/\.svg$/)
|
||||||
.include.add(resolve('src/assets/icons'))
|
.include.add(resolve("src/assets/icons"))
|
||||||
.end()
|
.end()
|
||||||
.use('svg-sprite-loader')
|
.use("svg-sprite-loader")
|
||||||
.loader('svg-sprite-loader')
|
.loader("svg-sprite-loader")
|
||||||
.options({
|
.options({
|
||||||
symbolId: 'icon-[name]'
|
symbolId: "icon-[name]",
|
||||||
})
|
})
|
||||||
.end()
|
.end();
|
||||||
|
|
||||||
config
|
config.when(process.env.NODE_ENV !== "development", (config) => {
|
||||||
.when(process.env.NODE_ENV !== 'development',
|
config
|
||||||
config => {
|
.plugin("ScriptExtHtmlWebpackPlugin")
|
||||||
config
|
.after("html")
|
||||||
.plugin('ScriptExtHtmlWebpackPlugin')
|
.use("script-ext-html-webpack-plugin", [
|
||||||
.after('html')
|
|
||||||
.use('script-ext-html-webpack-plugin', [{
|
|
||||||
// `runtime` must same as runtimeChunk name. default is `runtime`
|
|
||||||
inline: /runtime\..*\.js$/
|
|
||||||
}])
|
|
||||||
.end()
|
|
||||||
config
|
|
||||||
.optimization.splitChunks({
|
|
||||||
chunks: 'all',
|
|
||||||
cacheGroups: {
|
|
||||||
libs: {
|
|
||||||
name: 'chunk-libs',
|
|
||||||
test: /[\\/]node_modules[\\/]/,
|
|
||||||
priority: 10,
|
|
||||||
chunks: 'initial' // only package third parties that are initially dependent
|
|
||||||
},
|
|
||||||
elementUI: {
|
|
||||||
name: 'chunk-elementUI', // split elementUI into a single package
|
|
||||||
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
|
|
||||||
test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
|
|
||||||
},
|
|
||||||
commons: {
|
|
||||||
name: 'chunk-commons',
|
|
||||||
test: resolve('src/components'), // can customize your rules
|
|
||||||
minChunks: 3, // minimum common number
|
|
||||||
priority: 5,
|
|
||||||
reuseExistingChunk: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
config.optimization.runtimeChunk('single'),
|
|
||||||
{
|
{
|
||||||
from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
|
// `runtime` must same as runtimeChunk name. default is `runtime`
|
||||||
to: './', //到根目录下
|
inline: /runtime\..*\.js$/,
|
||||||
}
|
},
|
||||||
}
|
])
|
||||||
)
|
.end();
|
||||||
}
|
config.optimization.splitChunks({
|
||||||
}
|
chunks: "all",
|
||||||
|
cacheGroups: {
|
||||||
|
libs: {
|
||||||
|
name: "chunk-libs",
|
||||||
|
test: /[\\/]node_modules[\\/]/,
|
||||||
|
priority: 10,
|
||||||
|
chunks: "initial", // only package third parties that are initially dependent
|
||||||
|
},
|
||||||
|
elementUI: {
|
||||||
|
name: "chunk-elementUI", // split elementUI into a single package
|
||||||
|
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
|
||||||
|
test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
|
||||||
|
},
|
||||||
|
commons: {
|
||||||
|
name: "chunk-commons",
|
||||||
|
test: resolve("src/components"), // can customize your rules
|
||||||
|
minChunks: 3, // minimum common number
|
||||||
|
priority: 5,
|
||||||
|
reuseExistingChunk: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
config.optimization.runtimeChunk("single"),
|
||||||
|
{
|
||||||
|
from: path.resolve(__dirname, "./public/robots.txt"), //防爬虫文件
|
||||||
|
to: "./", //到根目录下
|
||||||
|
};
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user