制造成本分析下所有单项页面修改

This commit is contained in:
2026-03-13 09:44:43 +08:00
parent 660bc4b58b
commit b36acbf1e6
12 changed files with 148 additions and 190 deletions

View File

@@ -10,11 +10,11 @@ VUE_APP_TITLE = 洛玻集团驾驶舱
# VUE_APP_BASE_API = 'http://172.16.33.83:7070' # VUE_APP_BASE_API = 'http://172.16.33.83:7070'
# 杨姗姗 # 杨姗姗
VUE_APP_BASE_API = 'http://172.16.20.218:7070' # VUE_APP_BASE_API = 'http://172.16.20.218:7070'
# 小田 # 小田
# VUE_APP_BASE_API = 'http://172.16.19.232:7070' # VUE_APP_BASE_API = 'http://172.16.19.232:7070'
# 测试 # 测试
# VUE_APP_BASE_API = 'http://192.168.0.35:8080' VUE_APP_BASE_API = 'http://192.168.0.35:8080'
# 路由懒加载 # 路由懒加载

View File

@@ -391,10 +391,10 @@ export default {
{ prop: 'type', label: '指标类型', align: 'center' }, { prop: 'type', label: '指标类型', align: 'center' },
{ prop: 'name', label: '指标名称', align: 'center' }, { prop: 'name', label: '指标名称', align: 'center' },
{ prop: 'unit', label: '单位', align: 'center', filter: publicFormatter('lb_dw') }, { prop: 'unit', label: '单位', align: 'center', filter: publicFormatter('lb_dw') },
{ prop: 'target', label: '预值', align: 'center' }, { prop: 'target', label: '预值', align: 'center' },
]; ];
if (isEdit) { if (isEdit) {
// 编辑模式:仅给「预值」列添加inputArea精准挂载避免无效配置 // 编辑模式:仅给「预值」列添加inputArea精准挂载避免无效配置
this.tableProps = baseTableProps.map(item => { this.tableProps = baseTableProps.map(item => {
if (item.prop === 'target') { // 只给需要编辑的列添加子组件 if (item.prop === 'target') { // 只给需要编辑的列添加子组件
return { return {

View File

@@ -2,7 +2,9 @@
<div id="dayReport" class="dayReport" :style="styles"> <div id="dayReport" class="dayReport" :style="styles">
<div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
<sidebar v-if="!sidebar.hide" class="sidebar-container" /> <sidebar v-if="!sidebar.hide" class="sidebar-container" />
<ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange" @meterialChange='handleMeterialChange' :meterialName='meterialName' top-title="单项原片原料成本分析" <ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange"
@selectChange='handleMeterialChange' :selectName='meterialName' :selectOptions='materialOptions'
top-title="单项原片原料成本分析"
:is-full-screen="isFullScreen" @screenfullChange="screenfullChange" :leftMargin=" '280px' " /> :is-full-screen="isFullScreen" @screenfullChange="screenfullChange" :leftMargin=" '280px' " />
<div class="main-body" style=" <div class="main-body" style="
margin-top: -20px; margin-top: -20px;
@@ -91,6 +93,13 @@ export default {
relatedData: {}, relatedData: {},
trendName: '采购单价', trendName: '采购单价',
meterialName:'', meterialName:'',
materialOptions: [
{value:'硅砂',label:'硅砂'},
{value:'海砂',label:'海砂'},
{value:'纯碱',label:'纯碱'},
{value:'白云石',label:'白云石'},
{value:'石灰石',label:'石灰石'}
]
}; };
}, },

View File

@@ -2,7 +2,9 @@
<div id="dayReport" class="dayReport" :style="styles"> <div id="dayReport" class="dayReport" :style="styles">
<div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
<sidebar v-if="!sidebar.hide" class="sidebar-container" /> <sidebar v-if="!sidebar.hide" class="sidebar-container" />
<ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange" top-title="单项制造费用成本分析" :is-full-screen="isFullScreen" <ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange"
@selectChange='handleOverheadChange' :selectName='overheadName' :selectOptions='overheadOptions'
top-title="单项制造费用成本分析" :is-full-screen="isFullScreen"
@screenfullChange="screenfullChange" :leftMargin="'280px'" /> @screenfullChange="screenfullChange" :leftMargin="'280px'" />
<div class="main-body" style=" <div class="main-body" style="
margin-top: -20px; margin-top: -20px;
@@ -40,18 +42,10 @@
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="centerImg" style="
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1; /* 确保在 backp 之上、内容之下 */
"></div> -->
</div> </div>
</template> </template>
<script> <script>
import ReportHeader from "../components/noRouterHeader.vue"; import ReportHeader from "../productionCostAnalysisComponents/noRouterHeader.vue";
import { Sidebar } from "../../../layout/components"; import { Sidebar } from "../../../layout/components";
import screenfull from "screenfull"; import screenfull from "screenfull";
import changeBase from "../components/changeBase.vue"; import changeBase from "../components/changeBase.vue";
@@ -61,15 +55,7 @@ import totalOverview from "../productionCostAnalysisComponents/totalOverview.vue
import dataTrend from "../productionCostAnalysisComponents/dataTrendProcessingLabor.vue"; import dataTrend from "../productionCostAnalysisComponents/dataTrendProcessingLabor.vue";
import { mapState } from "vuex"; import { mapState } from "vuex";
import { getSingleMaterialCostAnalysis } from '@/api/cockpit' import { getSingleMaterialCostAnalysis } from '@/api/cockpit'
// import PSDO from "./components/PSDO.vue";
// import psiLineChart from "./components/psiLineChart.vue";
// import coreBottomLeft from "./components/coreBottomLeft.vue";
// import orderProgress from "./components/orderProgress.vue";
// import keyWork from "./components/keyWork.vue";
import moment from "moment"; import moment from "moment";
// import html2canvas from 'html2canvas'
// import JsPDF from 'jspdf'
export default { export default {
name: "DayReport", name: "DayReport",
components: { components: {
@@ -95,6 +81,13 @@ export default {
trend: [], trend: [],
relatedData: {}, relatedData: {},
trendName: '制造费用', trendName: '制造费用',
overheadName:'',
overheadOptions:[
{value:'包材',label:'包材'},
{value:'备品丶机物料',label:'备品丶机物料'},
{value:'折旧',label:'折旧'},
{value:'其他',label:'其他'}
]
}; };
}, },
@@ -166,6 +159,7 @@ export default {
this.beilv = _this.clientWidth / 1920; this.beilv = _this.clientWidth / 1920;
})(); })();
}; };
this.overheadName = this.$route.query.name ? this.$route.query.name : '包材'
if(this.$route.query.factory){ if(this.$route.query.factory){
this.factory =Number(this.$route.query.factory) this.factory =Number(this.$route.query.factory)
}else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) { }else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) {
@@ -189,9 +183,7 @@ export default {
// index: this.index, // index: this.index,
// sort: 1, // sort: 1,
trendName: this.trendName, trendName: this.trendName,
analysisObject: [ analysisObject: [this.overheadName + '成本'],
this.$route.query.name ? this.$route.query.name + '成本' : '包材成本'
],
// paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'], // paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'],
levelId: this.factory, levelId: this.factory,
// baseId: Number(this.factory), // baseId: Number(this.factory),
@@ -199,25 +191,21 @@ export default {
// 调用接口 // 调用接口
getSingleMaterialCostAnalysis(requestParams).then((res) => { getSingleMaterialCostAnalysis(requestParams).then((res) => {
this.monData = res.data.currentMonthData.find(item => { this.monData = res.data.currentMonthData.find(item => {
return item.name === "包材成本"; return item.name === this.overheadName+'成本';
}); });
console.log('this.monData', this.monData);
this.totalData = res.data.totalMonthData.find(item => { this.totalData = res.data.totalMonthData.find(item => {
return item.name === "包材成本"; return item.name === this.overheadName+'成本';
}); });
// this.relatedMon = res.data.relatedMon // this.relatedMon = res.data.relatedMon
this.relatedData = { this.relatedData = {
relatedMon: res.data.currentMonthData.filter(item => { relatedMon: res.data.currentMonthData.filter(item => {
return item.name !== "包材成本"; return item.name !== this.overheadName+'成本';
}), // 兜底月度数据 }), // 兜底月度数据
relatedTotal: res.data.totalMonthData.filter(item => { relatedTotal: res.data.totalMonthData.filter(item => {
return item.name !== "包材成本"; return item.name !== this.overheadName+'成本';
}) // 兜底累计数据 }) // 兜底累计数据
} }
;
this.trend = res.data.dataTrend this.trend = res.data.dataTrend
}); });
}, },
@@ -232,6 +220,10 @@ export default {
this.getData() this.getData()
}, },
handleOverheadChange(val) {
this.overheadName = val
this.getData()
},
selectChange(data) { selectChange(data) {
console.log('选中的数据:', data); console.log('选中的数据:', data);
this.factory = data this.factory = data
@@ -291,28 +283,7 @@ export default {
} else { } else {
clearInterval(this.timer); clearInterval(this.timer);
} }
}, }
// 导出
// () {
// this.$message.success('正在导出,请稍等!')
// const element = document.getElementById('dayRepDom')
// element.style.display = 'block'
// const fileName = '株洲碲化镉生产日报' + moment().format('yyMMDD') + '.pdf'
// html2canvas(element, {
// dpi: 300, // Set to 300 DPI
// scale: 3 // Adjusts your resolution
// }).then(function(canvas) {
// const imgWidth = 595.28
// const imgHeight = 841.89
// const pageData = canvas.toDataURL('image/jpeg', 1.0)
// const PDF = new JsPDF('', 'pt', [imgWidth, imgHeight])
// PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
// setTimeout(() => {
// PDF.save(fileName) // 导出文件名
// }, 1000)
// })
// element.style.display = 'none'
// }
}, },
}; };
</script> </script>

View File

@@ -2,7 +2,9 @@
<div id="dayReport" class="dayReport" :style="styles"> <div id="dayReport" class="dayReport" :style="styles">
<div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
<sidebar v-if="!sidebar.hide" class="sidebar-container" /> <sidebar v-if="!sidebar.hide" class="sidebar-container" />
<ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange" top-title="单项原片燃料成本分析" :is-full-screen="isFullScreen" <ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange"
@selectChange='handlefuelChange' :selectName='fuelName' :selectOptions='fuelOptions'
top-title="单项原片燃料成本分析" :is-full-screen="isFullScreen"
@screenfullChange="screenfullChange" :leftMargin="'280px'" /> @screenfullChange="screenfullChange" :leftMargin="'280px'" />
<div class="main-body" style=" <div class="main-body" style="
margin-top: -20px; margin-top: -20px;
@@ -62,7 +64,7 @@
</div> </div>
</template> </template>
<script> <script>
import ReportHeader from "../components/noRouterHeader.vue"; import ReportHeader from "../productionCostAnalysisComponents/noRouterHeader.vue";
import { Sidebar } from "../../../layout/components"; import { Sidebar } from "../../../layout/components";
import screenfull from "screenfull"; import screenfull from "screenfull";
import changeBase from "../components/changeBase.vue"; import changeBase from "../components/changeBase.vue";
@@ -109,8 +111,13 @@ export default {
trend: [], trend: [],
relatedData: {}, relatedData: {},
trendName: '采购单价', trendName: '采购单价',
// monthRelatedData: [], fuelName:'',
// totalRelatedData: [], fuelOptions: [
{value:'天然气',label:'天然气'},
{value:'LNG液化天然气',label:'LNG液化天然气'},
{value:'重油',label:'重油'},
{value:'水',label:'水'}
]
}; };
}, },
@@ -182,6 +189,7 @@ export default {
this.beilv = _this.clientWidth / 1920; this.beilv = _this.clientWidth / 1920;
})(); })();
}; };
this.fuelName = this.$route.query.name ? this.$route.query.name : '天然气'
if(this.$route.query.factory){ if(this.$route.query.factory){
this.factory =Number(this.$route.query.factory) this.factory =Number(this.$route.query.factory)
}else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) { }else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) {
@@ -205,9 +213,7 @@ export default {
// index: this.index, // index: this.index,
// sort: 1, // sort: 1,
trendName: this.trendName, trendName: this.trendName,
analysisObject: [ analysisObject: [this.fuelName + '成本'],
this.$route.query.name ? this.$route.query.name + '成本' : '天然气成本'
],
// paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'], // paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'],
levelId: this.factory, levelId: this.factory,
// baseId: Number(this.factory), // baseId: Number(this.factory),
@@ -215,53 +221,22 @@ export default {
// 调用接口 // 调用接口
getSingleMaterialAnalysis(requestParams).then((res) => { getSingleMaterialAnalysis(requestParams).then((res) => {
this.monData = res.data.currentMonthData.find(item => { this.monData = res.data.currentMonthData.find(item => {
if (this.$route.query.name) { return item.name === this.fuelName + '成本';
// 如果有查询参数,查找 "原料" + 查询参数 的项
return item.name === this.$route.query.name + '成本';
} else {
// 如果没有查询参数,查找 name 为 "原料硅砂" 的项
return item.name === '天然气成本';
}
}); });
console.log('this.monData', this.monData);
this.totalData = res.data.totalMonthData.find(item => { this.totalData = res.data.totalMonthData.find(item => {
if (this.$route.query.name) { return item.name === this.fuelName + '成本';
// 如果有查询参数,查找 "原料" + 查询参数 的项
return item.name === this.$route.query.name + '成本';
} else {
// 如果没有查询参数,查找 name 为 "原料硅砂" 的项
return item.name === '天然气成本';
}
}); });
// this.relatedMon = res.data.relatedMon
this.relatedData = { this.relatedData = {
relatedMon: res.data.currentMonthData.filter(item => { relatedMon: res.data.currentMonthData.filter(item => {
if (this.$route.query.name) { return item.name !== this.fuelName + '成本';
// 如果有查询参数,查找 "原料" + 查询参数 的项
return item.name !== this.$route.query.name + '成本';
} else {
// 如果没有查询参数,查找 name 为 "原料硅砂" 的项
return item.name !== '天然气成本';
}
}), // 兜底月度数据 }), // 兜底月度数据
relatedTotal: res.data.totalMonthData.filter(item => { relatedTotal: res.data.totalMonthData.filter(item => {
if (this.$route.query.name) { return item.name !== this.fuelName + '成本';
// 如果有查询参数,查找 "原料" + 查询参数 的项
return item.name !== this.$route.query.name + '成本';
} else {
// 如果没有查询参数,查找 name 为 "原料硅砂" 的项
return item.name !== '天然气成本';
}
}) // 兜底累计数据 }) // 兜底累计数据
} }
;
this.trend = res.data.dataTrend this.trend = res.data.dataTrend
}); });
}, },
handleTimeChange(obj) { handleTimeChange(obj) {
this.month = obj.targetMonth this.month = obj.targetMonth
this.dateData = { this.dateData = {
@@ -272,6 +247,10 @@ export default {
this.getData() this.getData()
}, },
handlefuelChange(val) {
this.fuelName = val
this.getData()
},
selectChange(data) { selectChange(data) {
console.log('选中的数据:', data); console.log('选中的数据:', data);
this.factory = data this.factory = data

View File

@@ -2,7 +2,9 @@
<div id="dayReport" class="dayReport" :style="styles"> <div id="dayReport" class="dayReport" :style="styles">
<div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
<sidebar v-if="!sidebar.hide" class="sidebar-container" /> <sidebar v-if="!sidebar.hide" class="sidebar-container" />
<ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange" top-title="单项加工辅料成本分析" :is-full-screen="isFullScreen" <ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange"
@selectChange='handleAuxMatChange' :selectName='auxMatName' :selectOptions='auxMatOptions'
top-title="单项加工辅料成本分析" :is-full-screen="isFullScreen"
@screenfullChange="screenfullChange" :leftMargin="'280px'" /> @screenfullChange="screenfullChange" :leftMargin="'280px'" />
<div class="main-body" style=" <div class="main-body" style="
margin-top: -20px; margin-top: -20px;
@@ -62,7 +64,7 @@
</div> </div>
</template> </template>
<script> <script>
import ReportHeader from "../components/noRouterHeader.vue"; import ReportHeader from "../productionCostAnalysisComponents/noRouterHeader.vue";
import { Sidebar } from "../../../layout/components"; import { Sidebar } from "../../../layout/components";
import screenfull from "screenfull"; import screenfull from "screenfull";
import changeBase from "../components/changeBase.vue"; import changeBase from "../components/changeBase.vue";
@@ -109,8 +111,12 @@ export default {
trend: [], trend: [],
relatedData: {}, relatedData: {},
trendName: '采购单价', trendName: '采购单价',
// monthRelatedData: [], auxMatName:'',
// totalRelatedData: [], auxMatOptions: [
{value:'镀膜液',label:'镀膜液'},
{value:'油墨',label:'油墨'},
{value:'釉料',label:'釉料'}
]
}; };
}, },
@@ -182,6 +188,7 @@ export default {
this.beilv = _this.clientWidth / 1920; this.beilv = _this.clientWidth / 1920;
})(); })();
}; };
this.auxMatName = this.$route.query.name ? this.$route.query.name : '镀膜液'
if(this.$route.query.factory){ if(this.$route.query.factory){
this.factory =Number(this.$route.query.factory) this.factory =Number(this.$route.query.factory)
}else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) { }else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) {
@@ -204,10 +211,8 @@ export default {
endTime: this.dateData.endTime, endTime: this.dateData.endTime,
// index: this.index, // index: this.index,
// sort: 1, // sort: 1,
trendName: this.$route.query.name ? this.$route.query.name + '成本' + this.trendName : '镀膜液成本' + this.trendName, trendName: this.auxMatName + '成本' + this.trendName,
analysisObject: [ analysisObject: [this.auxMatName + '成本'],
this.$route.query.name ? this.$route.query.name + '成本' : '镀膜液成本'
],
// paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'], // paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'],
levelId: this.factory, levelId: this.factory,
// baseId: Number(this.factory), // baseId: Number(this.factory),
@@ -215,49 +220,21 @@ export default {
// 调用接口 // 调用接口
getSingleMaterialAnalysis(requestParams).then((res) => { getSingleMaterialAnalysis(requestParams).then((res) => {
this.monData = res.data.currentMonthData.find(item => { this.monData = res.data.currentMonthData.find(item => {
if (this.$route.query.name) { return item.name === this.auxMatName + '成本'
// 如果有查询参数,查找 "原料" + 查询参数 的项
return item.name === this.$route.query.name + '成本'
} else {
// 如果没有查询参数,查找 name 为 "原料硅砂" 的项
return item.name === '镀膜液成本';
}
}); });
console.log('this.monData', this.monData);
this.totalData = res.data.totalMonthData.find(item => { this.totalData = res.data.totalMonthData.find(item => {
if (this.$route.query.name) { return item.name === this.auxMatName + '成本'
// 如果有查询参数,查找 "原料" + 查询参数 的项
return item.name === this.$route.query.name + '成本'
} else {
// 如果没有查询参数,查找 name 为 "原料硅砂" 的项
return item.name === '镀膜液成本';
}
}); });
// this.relatedMon = res.data.relatedMon // this.relatedMon = res.data.relatedMon
this.relatedData = { this.relatedData = {
relatedMon: res.data.currentMonthData.filter(item => { relatedMon: res.data.currentMonthData.filter(item => {
if (this.$route.query.name) { return item.name !== this.auxMatName + '成本'
// 如果有查询参数,查找 "原料" + 查询参数 的项
return item.name !== this.$route.query.name + '成本'
} else {
// 如果没有查询参数,查找 name 为 "原料硅砂" 的项
return item.name === '镀膜液成本';
}
}), // 兜底月度数据 }), // 兜底月度数据
relatedTotal: res.data.totalMonthData.filter(item => { relatedTotal: res.data.totalMonthData.filter(item => {
if (this.$route.query.name) { return item.name !== this.auxMatName + '成本'
// 如果有查询参数,查找 "原料" + 查询参数 的项
return item.name !== this.$route.query.name + '成本'
} else {
// 如果没有查询参数,查找 name 为 "原料硅砂" 的项
return item.name !== '镀膜液成本';
}
}) // 兜底累计数据 }) // 兜底累计数据
} }
;
this.trend = res.data.dataTrend this.trend = res.data.dataTrend
}); });
}, },
@@ -272,6 +249,10 @@ export default {
this.getData() this.getData()
}, },
handleAuxMatChange(val) {
this.auxMatName = val
this.getData()
},
selectChange(data) { selectChange(data) {
console.log('选中的数据:', data); console.log('选中的数据:', data);
this.factory = data this.factory = data

View File

@@ -2,7 +2,9 @@
<div id="dayReport" class="dayReport" :style="styles"> <div id="dayReport" class="dayReport" :style="styles">
<div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
<sidebar v-if="!sidebar.hide" class="sidebar-container" /> <sidebar v-if="!sidebar.hide" class="sidebar-container" />
<ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange" top-title="单项加工制造费用成本" :is-full-screen="isFullScreen" <ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange"
@selectChange='handleOverheadChange' :selectName='overheadName' :selectOptions='overheadOptions'
top-title="单项加工制造费用成本" :is-full-screen="isFullScreen"
@screenfullChange="screenfullChange" :leftMargin=" '270px' " /> @screenfullChange="screenfullChange" :leftMargin=" '270px' " />
<div class="main-body" style=" <div class="main-body" style="
margin-top: -20px; margin-top: -20px;
@@ -52,7 +54,7 @@
</div> </div>
</template> </template>
<script> <script>
import ReportHeader from "../components/noRouterHeader.vue"; import ReportHeader from "../productionCostAnalysisComponents/noRouterHeader.vue";
import { Sidebar } from "../../../layout/components"; import { Sidebar } from "../../../layout/components";
import screenfull from "screenfull"; import screenfull from "screenfull";
import changeBase from "../components/changeBase.vue"; import changeBase from "../components/changeBase.vue";
@@ -94,7 +96,13 @@ export default {
totalData: {}, totalData: {},
trend: [], trend: [],
relatedData: {}, relatedData: {},
trendName: '备件丶机物料成本', trendName: '',
overheadName:'',
overheadOptions: [
{value:'备件丶机物料',label:'备件丶机物料'},
{value:'折旧',label:'折旧'},
{value:'其他',label:'其他'}
]
}; };
}, },
@@ -160,6 +168,7 @@ export default {
this.beilv = _this.clientWidth / 1920; this.beilv = _this.clientWidth / 1920;
})(); })();
}; };
this.overheadName = this.$route.query.name ? this.$route.query.name : '备件丶机物料'
if(this.$route.query.factory){ if(this.$route.query.factory){
this.factory =Number(this.$route.query.factory) this.factory =Number(this.$route.query.factory)
}else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) { }else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) {
@@ -170,22 +179,14 @@ export default {
this.dateData = this.$route.query.dateData ? this.$route.query.dateData : undefined this.dateData = this.$route.query.dateData ? this.$route.query.dateData : undefined
}, },
methods: { methods: {
changeItem(item) {
console.log('item', item);
this.trendName = item
this.getData()
},
getData() { getData() {
const requestParams = { const requestParams = {
startTime: this.dateData.startTime, startTime: this.dateData.startTime,
endTime: this.dateData.endTime, endTime: this.dateData.endTime,
// index: this.index, // index: this.index,
// sort: 1, // sort: 1,
trendName: this.trendName, trendName: this.overheadName+'成本',
analysisObject: [ analysisObject: ['加工制造费用成本'],
'加工制造费用成本'
],
// paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'], // paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'],
levelId: this.factory, levelId: this.factory,
// baseId: Number(this.factory), // baseId: Number(this.factory),
@@ -195,13 +196,10 @@ export default {
this.monData = res.data.currentMonthData.find(item => { this.monData = res.data.currentMonthData.find(item => {
return item.name === "加工制造费用成本"; return item.name === "加工制造费用成本";
}); });
console.log('this.monData', this.monData);
this.totalData = res.data.totalMonthData.find(item => { this.totalData = res.data.totalMonthData.find(item => {
return item.name === "加工制造费用成本"; return item.name === "加工制造费用成本";
}); });
// this.relatedMon = res.data.relatedMon
;
this.trend = res.data.dataTrend this.trend = res.data.dataTrend
}); });
}, },
@@ -216,6 +214,10 @@ export default {
this.getData() this.getData()
}, },
handleOverheadChange(val) {
this.overheadName = val
this.getData()
},
selectChange(data) { selectChange(data) {
console.log('选中的数据:', data); console.log('选中的数据:', data);
this.factory = data this.factory = data

View File

@@ -2,7 +2,9 @@
<div id="dayReport" class="dayReport" :style="styles"> <div id="dayReport" class="dayReport" :style="styles">
<div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
<sidebar v-if="!sidebar.hide" class="sidebar-container" /> <sidebar v-if="!sidebar.hide" class="sidebar-container" />
<ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange" top-title="单项加工燃料成本分析" :is-full-screen="isFullScreen" <ReportHeader :dateData="dateData" size="psi" @timeRangeChange="handleTimeChange"
@selectChange='handleFuelChange' :selectName='fuelName' :selectOptions='fuelOptions'
top-title="单项加工燃料成本分析" :is-full-screen="isFullScreen"
@screenfullChange="screenfullChange" :leftMargin="'280px'" /> @screenfullChange="screenfullChange" :leftMargin="'280px'" />
<div class="main-body" style=" <div class="main-body" style="
margin-top: -20px; margin-top: -20px;
@@ -62,7 +64,7 @@
</div> </div>
</template> </template>
<script> <script>
import ReportHeader from "../components/noRouterHeader.vue"; import ReportHeader from "../productionCostAnalysisComponents/noRouterHeader.vue";
import { Sidebar } from "../../../layout/components"; import { Sidebar } from "../../../layout/components";
import screenfull from "screenfull"; import screenfull from "screenfull";
import changeBase from "../components/changeBase.vue"; import changeBase from "../components/changeBase.vue";
@@ -109,8 +111,11 @@ export default {
trend: [], trend: [],
relatedData: {}, relatedData: {},
trendName: '采购单价', trendName: '采购单价',
// monthRelatedData: [], fuelName:'',
// totalRelatedData: [], fuelOptions: [
{value:'电',label:'电'},
{value:'水',label:'水'}
]
}; };
}, },
@@ -182,6 +187,7 @@ export default {
this.beilv = _this.clientWidth / 1920; this.beilv = _this.clientWidth / 1920;
})(); })();
}; };
this.fuelName = this.$route.query.name ? this.$route.query.name : '电'
if(this.$route.query.factory){ if(this.$route.query.factory){
this.factory =Number(this.$route.query.factory) this.factory =Number(this.$route.query.factory)
}else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) { }else if(this.$store.getters.levelList.length > 0 && this.$store.getters.levelList[0].id !== 1) {
@@ -205,9 +211,7 @@ export default {
// index: this.index, // index: this.index,
// sort: 1, // sort: 1,
trendName: this.trendName, trendName: this.trendName,
analysisObject: [ analysisObject: [this.fuelName + '成本'],
this.$route.query.name ? this.$route.query.name + '成本' : '电成本'
],
// paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'], // paramList: ['制造成本', '财务费用', '销售费用', '管理费用', '运费'],
levelId: this.factory, levelId: this.factory,
// baseId: Number(this.factory), // baseId: Number(this.factory),
@@ -215,20 +219,36 @@ export default {
// 调用接口 // 调用接口
getSingleMaterialAnalysis(requestParams).then((res) => { getSingleMaterialAnalysis(requestParams).then((res) => {
this.monData = res.data.currentMonthData.find(item => { this.monData = res.data.currentMonthData.find(item => {
return item.name === "原片电成本"; if (this.fuelName === '电') {
return item.name === '原片' + this.fuelName + '成本';
}else{
return item.name === this.fuelName + '成本';
}
}); });
console.log('this.monData', this.monData);
this.totalData = res.data.totalMonthData.find(item => { this.totalData = res.data.totalMonthData.find(item => {
return item.name === "原片电成本"; if (this.fuelName === '电') {
return item.name === '原片' + this.fuelName + '成本';
}else{
return item.name === this.fuelName + '成本';
}
}); });
// this.relatedMon = res.data.relatedMon // this.relatedMon = res.data.relatedMon
this.relatedData = { this.relatedData = {
relatedMon: res.data.currentMonthData.filter(item => { relatedMon: res.data.currentMonthData.filter(item => {
return item.name !== "原片电成本"; if (this.fuelName === '电') {
return item.name !== '原片' + this.fuelName + '成本';
}else{
return item.name !== this.fuelName + '成本';
}
}), // 兜底月度数据 }), // 兜底月度数据
relatedTotal: res.data.totalMonthData.filter(item => { relatedTotal: res.data.totalMonthData.filter(item => {
return item.name !== "原片电成本"; if (this.fuelName === '电') {
return item.name !== '原片' + this.fuelName + '成本';
}else{
return item.name !== this.fuelName + '成本';
}
}) // 兜底累计数据 }) // 兜底累计数据
} }
@@ -248,6 +268,10 @@ export default {
this.getData() this.getData()
}, },
handleFuelChange(val) {
this.fuelName = val
this.getData()
},
selectChange(data) { selectChange(data) {
console.log('选中的数据:', data); console.log('选中的数据:', data);
this.factory = data this.factory = data

View File

@@ -27,9 +27,9 @@
<div class='materialType'> <div class='materialType'>
<div class="materialP"> <div class="materialP">
<el-select class="label-text" v-model="materialValue" placeholder="请选择原料" @change='selectMeterial'> <el-select class="label-text" v-model="selectValue" placeholder="请选择原料" @change='selectMeterial'>
<el-option <el-option
v-for="item in materialOptions" v-for="item in selectOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
@@ -67,9 +67,13 @@ export default {
type: Object, type: Object,
default: () => ({}) default: () => ({})
}, },
meterialName:{ selectName:{
type: String, type: String,
default: '硅砂' default: ''
},
selectOptions: {
type: Array,
default: () => []
} }
}, },
data() { data() {
@@ -78,14 +82,7 @@ export default {
timeTimer: null, timeTimer: null,
date: Date.now(), // 使用当前时间戳作为初始值 date: Date.now(), // 使用当前时间戳作为初始值
activeTime: 1, // 默认月维度0=日1=月2=年) activeTime: 1, // 默认月维度0=日1=月2=年)
materialValue:'硅砂', selectValue:'',
materialOptions: [
{value:'硅砂',label:'硅砂'},
{value:'海砂',label:'海砂'},
{value:'纯碱',label:'纯碱'},
{value:'白云石',label:'白云石'},
{value:'石灰石',label:'石灰石'}
]
} }
}, },
watch: { watch: {
@@ -109,11 +106,11 @@ export default {
} }
} }
}, },
meterialName:{ selectName:{
immediate: true, // 初始化时立即执行 immediate: true, // 初始化时立即执行
handler(newVal) { handler(newVal) {
if (newVal) { if (newVal) {
this.materialValue = newVal; this.selectValue = newVal;
} }
} }
} }
@@ -223,7 +220,7 @@ export default {
this.$emit('timeRangeChange', timeRange); this.$emit('timeRangeChange', timeRange);
}, },
selectMeterial(val){ selectMeterial(val){
this.$emit('meterialChange', val); this.$emit('selectChange', val);
} }
} }
} }
@@ -299,7 +296,6 @@ export default {
::v-deep .label-text { ::v-deep .label-text {
display: inline-block; display: inline-block;
transform: skew(25deg); transform: skew(25deg);
padding-left: 10px;
.el-input__inner { .el-input__inner {
border: none; border: none;
font-size: 16px; font-size: 16px;

View File

@@ -24,7 +24,7 @@
</div> </div>
<div class="dashboard right"> <div class="dashboard right">
<div class="title"> <div class="title">
单耗·/ 单耗·
</div> </div>
<div class="line"> <div class="line">
<operatingSingleBar :detailData="unitHaoData"></operatingSingleBar> <operatingSingleBar :detailData="unitHaoData"></operatingSingleBar>

View File

@@ -69,7 +69,7 @@ export default {
*/ */
factoryData() { // 整合原始数据 + 计算flag factoryData() { // 整合原始数据 + 计算flag
return { return {
completeRate: Number(this.totalData.proportion).toFixed(2), completeRate: this.totalData.proportion ? Number(this.totalData.proportion) : 0,
diff: this.totalData.diffValue, diff: this.totalData.diffValue,
real: this.totalData.value, real: this.totalData.value,
target: this.totalData.targetValue, target: this.totalData.targetValue,

View File

@@ -68,14 +68,10 @@
<div class="form-cont"> <div class="form-cont">
<div style=""> <div style="">
<el-form ref="loginForm" :model="loginForm" :rules="LoginRules" class="login-form"> <el-form ref="loginForm" :model="loginForm" :rules="LoginRules" class="login-form">
<el-form-item prop="tenantName" v-if="tenantEnable"> <!-- <el-form-item prop="tenantName" v-if="tenantEnable">
<el-input v-model="loginForm.tenantName" type="text" auto-complete="off" placeholder="租户"> <el-input v-model="loginForm.tenantName" type="text" auto-complete="off" placeholder="租户">
<!-- <svg-icon
slot="prefix"
icon-class="tree"
class="el-input__icon input-icon" /> -->
</el-input> </el-input>
</el-form-item> </el-form-item> -->
<!-- 账号密码登录 --> <!-- 账号密码登录 -->
<div> <div>
<el-form-item prop="username"> <el-form-item prop="username">