<template>
|
<el-dialog
|
class="project-modal"
|
title="批量设置上下线"
|
:visible.sync="innerVisible"
|
:close-on-click-modal="false"
|
width="500px"
|
@opened="onModalOpened"
|
@close="onModalClose"
|
>
|
<div class="storage-setting-choose-limit-modal" v-loading="loading">
|
<el-form label-width="70px" ref="form" :model="form" :rules="rules" size="mini" @submit.native.prevent>
|
<!-- <el-form-item label="任务号:">{{ row.task_no }}</el-form-item>
|
<el-form-item label="当前优先级:">{{ row.task_priority }}</el-form-item> -->
|
<el-form-item label-width="0px">
|
<el-radio-group v-model="form.setType">
|
<el-radio :label="item.value" v-for="(item, index) in types" :key="'set-type-' + index">{{
|
item.label
|
}}</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="限定值:" prop="number">
|
<el-input-number v-model="form.number" :min="0" />
|
</el-form-item>
|
</el-form>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="onClose">关 闭</el-button>
|
<el-button type="primary" @click="onSubmit">提交</el-button>
|
</span>
|
</el-dialog>
|
</template>
|
|
<script>
|
import { UpdateMinStorage, UpdateMaxStorage } from '@/api/enterchoose';
|
const defaultForm = {
|
setType: 'minStorage',
|
number: ''
|
};
|
export default {
|
name: 'storageSettingChooseLimitModal',
|
props: {
|
visible: {
|
type: Boolean,
|
default: false
|
}
|
},
|
data() {
|
return {
|
innerVisible: false,
|
loading: false,
|
form: { ...defaultForm },
|
types: [
|
{ value: 'minStorage', label: '最小库容' },
|
{ value: 'maxStorage', label: '最大库容' }
|
],
|
rules: {
|
number: [{ validator: this.validateInput, trigger: 'change' }]
|
}
|
};
|
},
|
watch: {
|
visible(newVal, oldVal) {
|
if (newVal !== this.innerVisible) {
|
this.innerVisible = newVal;
|
}
|
},
|
innerVisible(newVal, oldVal) {
|
if (newVal !== this.visible) {
|
this.$emit('update:visible', newVal);
|
}
|
}
|
},
|
methods: {
|
onModalOpened() {},
|
onModalClose() {
|
this.form = { ...defaultForm };
|
},
|
onClose() {
|
this.innerVisible = false;
|
},
|
onSubmit() {
|
this.$refs.form.validate(valid => {
|
if (valid) {
|
this.dealSubmit();
|
} else {
|
return false;
|
}
|
});
|
},
|
validateInput(rule, value, callback) {
|
if (value === '' || value === null) {
|
callback(new Error('请确认限定值'));
|
} else if (value !== parseInt(value)) {
|
callback(new Error('限定值只能是整数'));
|
} else if (value < 0) {
|
callback(new Error('限定值不可小于0'));
|
} else {
|
callback();
|
}
|
},
|
dealSubmit() {
|
if (this.loading) return false;
|
this.loading = true;
|
let params = {};
|
params[this.form.setType] = this.form.number;
|
this.submitAjax(params)
|
.then(response => {
|
if (response.code == 0) {
|
this.$message.success('操作成功!');
|
} else {
|
let msg = response.msg || '操作失败';
|
this.$alert(msg, '系统提示', { type: 'error' });
|
}
|
this.loading = false;
|
if (response.code == 0) {
|
this.innerVisible = false;
|
}
|
})
|
.catch(() => {
|
this.loading = false;
|
});
|
},
|
submitAjax(params) {
|
if (this.form.setType === 'minStorage') {
|
return UpdateMinStorage(params);
|
} else {
|
return UpdateMaxStorage(params);
|
}
|
}
|
}
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
.storage-setting-choose-limit-modal {
|
padding: 12px 8px 0px 18px;
|
}
|
</style>
|