预警批量修改预计用量

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);
},
},
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:{
url: `${config.API_URL}/regional.room.code.list`,
name: "区域机房代码列表",

View File

@ -3,6 +3,7 @@
<el-header class="header">
<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" :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>
</div>
<div class="right-panel">
@ -54,21 +55,25 @@
</el-main>
</el-container>
<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>
<script>
import saveDialog from "./save"
import usageDialog from "./usage"
import {eventBus} from "@/utils/eventBus";
export default {
name: 'earlyManager',
components: {
saveDialog
saveDialog,
usageDialog
},
data() {
return {
size:'small',
dialog: {
save: false,
usageSave:false,
permission: 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(){
this.dialog.save = true
@ -266,12 +278,8 @@ export default {
this.$refs.table.reload();
},
//
handleSaveSuccess(data, mode){
if(mode=='add'){
handleSaveSuccess(){
this.$refs.table.refresh()
}else if(mode=='edit'){
this.$refs.table.refresh()
}
},
//

View File

@ -1,10 +1,15 @@
<template>
<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-item label="区域" prop="region">
<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-select>
<!-- <el-form-item label="区域" prop="region">-->
<!-- <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-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 label="部件类别" prop="part_category">
<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-input v-model="form.protected_spares_quantity" placeholder="请输入备件数量" clearable type="text"></el-input>
</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-input v-model="form.governance_plan" placeholder="请输入治理计划" clearable type="textarea" :rows="3"></el-input>
</el-form-item>
@ -28,6 +39,7 @@
<el-input v-model="form.risk_description" placeholder="请输入风险描述" clearable type="textarea" :rows="3"></el-input>
</el-form-item>
</el-form>
</el-scrollbar>
<template #footer>
<el-button @click="visible=false" > </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: "",
protected_spares_water_level: "",
protected_spares_quantity: "",
estimated_dosage:"",
governance_plan: "",
risk_description: "",
duration:6
},
//
rules: {
region:[
{required:true,message:"区域不能为空"}
],
part_sn:[
{required:true,message:"产品编码不能为空"}
],
part_category:[
{required:true,message:"部件类别不能为空"}
],
@ -96,7 +113,7 @@ export default {
}
},
mounted() {
this.roomList()
// this.roomList()
},
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>