预警批量修改预计用量

This commit is contained in:
龙运模 2025-04-11 17:17:59 +08:00
parent 4194c3ef64
commit 8cf8230c51
4 changed files with 139 additions and 37 deletions

View File

@ -24,6 +24,13 @@ export default {
return await http.post(this.url, params); return await http.post(this.url, params);
}, },
}, },
batchEdit:{
url: `${config.API_URL}/spare.parts.water.level.warning.batch.edit`,
name: "批量编辑预估用量",
post: async function (params) {
return await http.post(this.url, params);
},
},
room:{ room:{
url: `${config.API_URL}/regional.room.code.list`, url: `${config.API_URL}/regional.room.code.list`,
name: "区域机房代码列表", name: "区域机房代码列表",

View File

@ -3,6 +3,7 @@
<el-header class="header"> <el-header class="header">
<div class="left-panel"> <div class="left-panel">
<el-button type="primary" v-auth="'sparePartsWaterLevelWarningEdit'" :size="size" icon="el-icon-plus" @click="add">新增预警</el-button> <el-button type="primary" v-auth="'sparePartsWaterLevelWarningEdit'" :size="size" icon="el-icon-plus" @click="add">新增预警</el-button>
<el-button type="primary" :size="size" plain :disabled="selection.length==0" @click="usage">批量修改预计用量</el-button>
<el-button type="danger" v-auth="'sparePartsWaterLevelWarningDelete'" plain :size="size" icon="el-icon-Delete" :disabled="selection.length==0" @click="batch_del"></el-button> <el-button type="danger" v-auth="'sparePartsWaterLevelWarningDelete'" plain :size="size" icon="el-icon-Delete" :disabled="selection.length==0" @click="batch_del"></el-button>
</div> </div>
<div class="right-panel"> <div class="right-panel">
@ -54,21 +55,25 @@
</el-main> </el-main>
</el-container> </el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" @closed="dialog.save=false"></save-dialog> <save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" @closed="dialog.save=false"></save-dialog>
<usageDialog v-if="dialog.usageSave" ref="usageDialog" @success="handleSaveSuccess" @closed="dialog.usageSave=false"></usageDialog>
</template> </template>
<script> <script>
import saveDialog from "./save" import saveDialog from "./save"
import usageDialog from "./usage"
import {eventBus} from "@/utils/eventBus"; import {eventBus} from "@/utils/eventBus";
export default { export default {
name: 'earlyManager', name: 'earlyManager',
components: { components: {
saveDialog saveDialog,
usageDialog
}, },
data() { data() {
return { return {
size:'small', size:'small',
dialog: { dialog: {
save: false, save: false,
usageSave:false,
permission: false permission: false
}, },
exportShow:false, exportShow:false,
@ -202,7 +207,14 @@ export default {
} }
}, },
/** 表格检索结束 */ /** 表格检索结束 */
//
usage(){
this.dialog.usageSave = true
const reqData = {ids: this.selection.map(em=>em.id)};
this.$nextTick(() => {
this.$refs.usageDialog.open('edit').setData(reqData)
})
},
// //
add(){ add(){
this.dialog.save = true this.dialog.save = true
@ -266,12 +278,8 @@ export default {
this.$refs.table.reload(); this.$refs.table.reload();
}, },
// //
handleSaveSuccess(data, mode){ handleSaveSuccess(){
if(mode=='add'){
this.$refs.table.refresh() this.$refs.table.refresh()
}else if(mode=='edit'){
this.$refs.table.refresh()
}
}, },
// //

View File

@ -1,10 +1,15 @@
<template> <template>
<el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')"> <el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')">
<el-scrollbar max-height="380">
<el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="140px"> <el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="140px">
<el-form-item label="区域" prop="region"> <!-- <el-form-item label="区域" prop="region">-->
<el-select v-model="form.region" placeholder="请选择区域" filterable clearable style="width: 100%;"> <!-- <el-select v-model="form.region" placeholder="请选择区域" filterable clearable style="width: 100%;">-->
<el-option v-for="(item,index) in setMap.roomList" :key="index" :label="item.room_name" :value="item.room_code"></el-option> <!-- <el-option v-for="(item,index) in setMap.roomList" :key="index" :label="item.room_name" :value="item.room_code"></el-option>-->
</el-select> <!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="产品编码" prop="part_sn">
<el-input v-model="form.part_sn" placeholder="请输入产品编码" clearable type="text"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="部件类别" prop="part_category"> <el-form-item label="部件类别" prop="part_category">
<el-input v-model="form.part_category" placeholder="请输入部件类别" clearable type="text"></el-input> <el-input v-model="form.part_category" placeholder="请输入部件类别" clearable type="text"></el-input>
@ -21,6 +26,12 @@
<el-form-item label="在保备件数量" prop="protected_spares_quantity"> <el-form-item label="在保备件数量" prop="protected_spares_quantity">
<el-input v-model="form.protected_spares_quantity" placeholder="请输入备件数量" clearable type="text"></el-input> <el-input v-model="form.protected_spares_quantity" placeholder="请输入备件数量" clearable type="text"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="预计六个月用量" prop="estimated_dosage">
<el-input v-model="form.estimated_dosage" placeholder="请输入预计六个月用量" clearable type="text"></el-input>
</el-form-item>
<el-form-item label="时长" prop="duration">
<el-input v-model="form.duration" placeholder="请输入时长" clearable type="text"></el-input>
</el-form-item>
<el-form-item label="治理计划" prop="governance_plan"> <el-form-item label="治理计划" prop="governance_plan">
<el-input v-model="form.governance_plan" placeholder="请输入治理计划" clearable type="textarea" :rows="3"></el-input> <el-input v-model="form.governance_plan" placeholder="请输入治理计划" clearable type="textarea" :rows="3"></el-input>
</el-form-item> </el-form-item>
@ -28,6 +39,7 @@
<el-input v-model="form.risk_description" placeholder="请输入风险描述" clearable type="textarea" :rows="3"></el-input> <el-input v-model="form.risk_description" placeholder="请输入风险描述" clearable type="textarea" :rows="3"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-scrollbar>
<template #footer> <template #footer>
<el-button @click="visible=false" > </el-button> <el-button @click="visible=false" > </el-button>
<el-button v-if="mode!='show'" type="primary" :loading="isSave" @click="submit()"> </el-button> <el-button v-if="mode!='show'" type="primary" :loading="isSave" @click="submit()"> </el-button>
@ -61,14 +73,19 @@ export default {
total_protected_parts: "", total_protected_parts: "",
protected_spares_water_level: "", protected_spares_water_level: "",
protected_spares_quantity: "", protected_spares_quantity: "",
estimated_dosage:"",
governance_plan: "", governance_plan: "",
risk_description: "", risk_description: "",
duration:6
}, },
// //
rules: { rules: {
region:[ region:[
{required:true,message:"区域不能为空"} {required:true,message:"区域不能为空"}
], ],
part_sn:[
{required:true,message:"产品编码不能为空"}
],
part_category:[ part_category:[
{required:true,message:"部件类别不能为空"} {required:true,message:"部件类别不能为空"}
], ],
@ -96,7 +113,7 @@ export default {
} }
}, },
mounted() { mounted() {
this.roomList() // this.roomList()
}, },
methods: { methods: {
// //

View File

@ -0,0 +1,70 @@
<template>
<el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')">
<el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="140px">
<el-form-item label="预计六个月用量" prop="estimated_dosage">
<el-input v-model="form.estimated_dosage" placeholder="请输入预计六个月用量" clearable type="text"></el-input>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="visible=false" > </el-button>
<el-button v-if="mode!='show'" type="primary" :loading="isSave" @click="submit()"> </el-button>
</template>
</el-dialog>
</template>
<script>
export default {
emits: ['success', 'closed'],
data() {
return {
mode: "add",
titleMap: {
edit: '修改预计用量',
},
visible: false,
isSave: false,
//
form: {
ids:[],
estimated_dosage:"",
},
//
rules: {},
}
},
mounted() {
},
methods: {
//
open(mode='add'){
this.mode = mode;
this.visible = true;
return this
},
//
submit(){
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSave = true;
const res = await this.$API.early.earlyWarn.batchEdit.post(this.form);
this.isSave = false;
if(res.code == 200){
this.$emit('success');
this.visible = false;
this.$message.success("操作成功");
}
}
})
},
//
async setData(data) {
Object.assign(this.form, data);
}
}
}
</script>
<style>
</style>