镀层厚度对应表添加穿梭框

dev-scheduling
姜雪 3 weeks ago
parent a69d3f4a6f
commit fa373d3f1e
  1. 131
      src/views/basicData/platThicknessRelation/index.vue
  2. 5
      src/views/energyManagement/components/waterQuota.vue
  3. 45
      src/views/energyManagement/components/waterTarget.vue
  4. 99
      src/views/energyManagement/energyMonitoring.vue

@ -26,6 +26,23 @@
<template #menu-right>
<el-button type="primary" @click="handleImport">导入 </el-button>
</template>
<template #levelNum-form="{ type }">
<div style="width: 100%;">
{{ console.log('levelNum-form 插槽渲染, type:', type, 'form.levelNum:', form.levelNum, 'form.levelNum类型:', typeof form.levelNum, '是否数组:', Array.isArray(form.levelNum), 'gradeData前3项:', gradeData.slice(0, 3)) }}
<el-transfer
v-if="type === 'add' || type === 'edit'"
v-model="form.levelNum"
:data="gradeData"
:titles="['未选择', '已选择']"
filterable
:props="{
key: 'key',
label: 'label'
}"
style="text-align: left;"
></el-transfer>
</div>
</template>
</avue-crud>
<barchSet v-if="isOpen" :showDialog="isOpen" :list="selectionList" @closeDialog="closeDialog"></barchSet>
<!-- 导入 -->
@ -40,6 +57,7 @@
import barchSet from "./barchSet.vue";
import basicImport from '@/components/basic-import/main.vue'
import {getList,addThickness,updateThickness,deleteThickness} from "@/api/basicData/platThicknessRelation"
import {getProduction} from "@/api/basicData/ruleMaintenance"
export default {
components: {
barchSet,
@ -51,6 +69,7 @@ export default {
selectionList: [],
loading:false,
query:{},
gradeData: [],
option: {
height: "auto",
calcHeight: 32,
@ -105,37 +124,17 @@ export default {
prop: "thicknessCode",
sortable: true,
filter: true,
span: 12,
labelWidth: 150,
span: 24,
search: true,
},
{
label: "质量等级",
prop: "levelNum",
type:"select",
// multiple: true,
// multipleLimit: 0,
dicUrl:"/api/blade-scheduling/qualityGrade/getGrades",
props:{
label:"qualityGrade",
value:"qualityGrade"
},
sortable: true,
filter: true,
span: 12,
search: false,
formatter: (row, value, label, column) => {
if (Array.isArray(value)) {
return value.join(', ');
}
return value || '';
},
},
{
label: "是否以21E8-210开头",
prop: "startF21e8",
sortable: true,
filter: true,
span: 12,
span: 24,
search: false,
labelWidth: 150,
type: "select",
@ -153,10 +152,29 @@ export default {
{
label: "厚度",
prop: "thickness",
labelWidth: 150,
sortable: true,
filter: true,
span: 24,
search: false,
},
{
label: "质量等级",
prop: "levelNum",
labelWidth: 150,
sortable: true,
filter: true,
span: 12,
span: 24,
search: false,
addDisplay: true,
editDisplay: true,
formslot: true,
formatter: (row, value, label, column) => {
if (Array.isArray(value)) {
return value.join(', ');
}
return value || '';
},
},
],
},
@ -169,7 +187,58 @@ export default {
isOpen: false,
};
},
mounted() {
this.loadGradeData()
},
methods: {
loadGradeData() {
getProduction().then(res => {
const rawData = res.data.data || []
this.gradeData = rawData.map(item => ({
key: String(item.qualityGrade),
label: String(item.qualityGrade),
qualityGrade: item.qualityGrade
}))
console.log('质量等级数据加载完成:', this.gradeData)
})
},
beforeOpen(done, type) {
console.log('beforeOpen 开始, type:', type)
console.log('当前form.levelNum:', this.form.levelNum, '类型:', typeof this.form.levelNum)
//
if (this.gradeData.length === 0) {
this.loadGradeData()
}
//
if (type == 'edit') {
if (this.form.levelNum) {
console.log('编辑模式,原始levelNum:', this.form.levelNum, '类型:', typeof this.form.levelNum)
// levelNum
if (typeof this.form.levelNum === 'string') {
this.form.levelNum = this.form.levelNum.split(',').map(item => String(item).trim()).filter(item => item !== '')
} else if (typeof this.form.levelNum === 'number') {
this.form.levelNum = [String(this.form.levelNum)]
} else if (Array.isArray(this.form.levelNum)) {
this.form.levelNum = this.form.levelNum.map(item => String(item).trim())
}
console.log('编辑模式,处理后levelNum:', this.form.levelNum, '是否数组:', Array.isArray(this.form.levelNum))
} else {
this.form.levelNum = []
}
} else if (type == 'add') {
this.form.levelNum = []
}
console.log('beforeOpen 结束,form.levelNum:', this.form.levelNum, '是否数组:', Array.isArray(this.form.levelNum))
// done()
done()
// nextTick
this.$nextTick(() => {
console.log('nextTick 中的 form.levelNum:', this.form.levelNum, '是否数组:', Array.isArray(this.form.levelNum))
})
},
//
handleImport() {
this.isShowImport = true
@ -191,7 +260,11 @@ export default {
this.onLoad(this.page);
},
rowSave(row, done, loading){
addThickness(row).then(res =>{
const params = {
...row,
levelNum: Array.isArray(row.levelNum) ? row.levelNum.join(',') : row.levelNum
}
addThickness(params).then(res => {
if(res.data.code == 200){
this.$message.success('新增成功')
this.onLoad()
@ -200,7 +273,11 @@ export default {
})
},
rowUpdate(row, index, done, loading){
updateThickness(row).then(res =>{
const params = {
...row,
levelNum: Array.isArray(row.levelNum) ? row.levelNum.join(',') : row.levelNum
}
updateThickness(params).then(res =>{
if(res.data.code == 200){
this.$message.success('修改成功')
this.onLoad()

@ -131,9 +131,8 @@ export default {
sortable: true,
filter: true,
span: 24,
type: 'datetime',
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd",
type: 'date',
rules: [
{
required: true,

@ -114,6 +114,7 @@ export default {
type: "month",
format: "YYYY-MM",
valueFormat: "YYYY-MM",
valueType: "string",
rules: [
{
required: true,
@ -124,7 +125,7 @@ export default {
},
{
label: "用水目标(L/d㎡)",
prop: "tapWater",
prop: "target",
search: false,
sortable: true,
filter: true,
@ -262,20 +263,48 @@ export default {
},
onLoad() {
this.loading = true;
console.log('=== onLoad 开始 ===');
console.log('请求参数:', {
current: this.page.currentPage,
size: this.page.pageSize,
type: 1
});
pageList(
this.page.currentPage,
this.page.pageSize,
{ type: 1 }
).then(res => {
this.data = res.data.data.records;
this.page.total = res.data.data.total;
this.loading = false;
setTimeout(() => {
this.selectionClear();
}, 500);
}).catch(() => {
console.log('API返回数据:', res);
console.log('res.data:', res.data);
console.log('res.data.data:', res.data.data);
if (res.data && res.data.data) {
this.data = res.data.data.records || [];
this.page.total = res.data.data.total || 0;
console.log('最终数据:', {
records: this.data,
total: this.page.total,
dataLength: this.data.length
});
} else {
console.error('响应数据格式不正确:', res);
this.data = [];
this.page.total = 0;
}
// 使 nextTick loading
this.$nextTick(() => {
this.loading = false;
setTimeout(() => {
this.selectionClear();
}, 500);
});
}).catch(err => {
console.error('请求失败:', err);
this.loading = false;
});
console.log('=== onLoad 结束 ===');
},
},
};

@ -35,7 +35,7 @@
<!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport"
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template"
templateName="试验项目模板.xls"
templateName="试验项目模板.xlsx"
importUrl="/blade-desk/QA/CycleTestItem/import-excel"
@closeDialog="closeDialog"></basic-import>
</basic-container>
@ -101,29 +101,19 @@ export default {
editBtnIcon: " ",
align: "center",
column: [
{
label: "月份",
prop: "month",
sortable: true,
filter: true,
span: 12,
search: true,
width: 130,
type: 'datetimerange',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
startPlaceholder: '开始日期',
endPlaceholder: '结束日期',
rangeSeparator: '至',
searchRange: true,
rules: [
{
required: true,
message: "请选择日期范围",
trigger: "change",
},
],
},
{
label: '月份',
prop: 'month',
type: "month",
sortable: true,
filter: true,
format:'YYYY-MM',
valueFormat:'YYYY-MM',
span: 24,
search: true,
width: 120,
searchLabelWidth: 50,
},
{
label: "上年度月用水",
prop: "lastWater",
@ -153,7 +143,7 @@ export default {
},
{
label: "本年度月用水",
prop: "yearWater",
prop: "currentWater",
search: false,
sortable: true,
filter: true,
@ -162,7 +152,7 @@ export default {
},
{
label: "本年度月用电",
prop: "yearElectric",
prop: "currentElectric",
search: false,
sortable: true,
filter: true,
@ -171,16 +161,16 @@ export default {
},
{
label: "本年度月产值",
prop: "yearNum",
prop: "currentOutput",
search: false,
sortable: true,
filter: true,
span: 12,
width: 140,
},
{
label: "年度月用水目标",
prop: "yearWaterTarget",
{
label: "年度月用水目标",
prop: "lastWaterTarget",
search: false,
sortable: true,
filter: true,
@ -188,8 +178,8 @@ export default {
width: 170,
},
{
label: "月用电目标",
prop: "currentElectricTarget",
label: "上年度月用电目标",
prop: "lastElectricTarget",
search: false,
sortable: true,
filter: true,
@ -197,25 +187,25 @@ export default {
width: 170,
},
{
label: "本月用水目标",
label: "本年度月用水目标",
prop: "currentWaterTarget",
search: false,
sortable: true,
filter: true,
span: 12,
width: 200,
width: 170,
},
{
label: "上月用电实际完成",
prop: "lastElectricRate",
label: "本年度月用电目标",
prop: "currentElectricTarget",
search: false,
sortable: true,
filter: true,
span: 12,
width: 200,
width: 170,
},
{
label: "上月用水实际完成",
label: "上年度月用水实际完成",
prop: "lastWaterRate",
search: false,
sortable: true,
@ -224,7 +214,17 @@ export default {
width: 200,
},
{
label: "本月用电实际完成",
label: "上年度月用电实际完成",
prop: "lastElectricRate",
search: false,
sortable: true,
filter: true,
span: 12,
width: 200,
},
{
label: "本年度月用电实际完成",
prop: "currentElectricRate",
search: false,
sortable: true,
@ -233,7 +233,7 @@ export default {
width: 200,
},
{
label: "本月用水实际完成",
label: "本年度月用水实际完成",
prop: "currentWaterRate",
search: false,
sortable: true,
@ -241,7 +241,24 @@ export default {
span: 12,
width: 200,
},
// {
// label: "",
// prop: "userName",
// search: false,
// sortable: true,
// filter: true,
// span: 12,
// width: 140,
// },
// {
// label: "",
// prop: "uploadTime",
// search: false,
// sortable: true,
// filter: true,
// span: 12,
// width: 140,
// },
],
},
form: {},

Loading…
Cancel
Save