<template> <el-dialog title="申请新性能" :visible.sync="applyItemVisible" :before-close="hideApplyItem" width="750px" v-if="applyItemVisible" > <el-form label-width="100px" :ref="pageName" :rules="rules" :model="applyItem" :validate-on-rule-change="false" > <el-form-item label="申请新性能" prop="items"> <el-checkbox-group v-model="applyItem.items"> <el-checkbox v-for="(item, key) in options.webConfigKV.item" :label="key" :key="key" :disabled="buyItems.includes(key)" >{{ item }}</el-checkbox > </el-checkbox-group> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="hideApplyItem">取 消</el-button> <el-button type="primary" @click="save" :disabled="btnDisabled" >确 定</el-button > </div> </el-dialog></template><script>import { ProductApi } from "@product/api/index";import { Rules } from "@product/mixin/rules";export default { name: "ApplyItem", mixins: [Rules], props: { applyItemVisible: { type: Boolean, }, options: {}, buyItems: { type: Array, }, }, data() { return { pageName: "applyItem", tips: false, btnDisabled: false, applyItem: { items: [], }, rulesInfo: { items: "请抉择须要申请的性能", }, }; }, methods: { hideApplyItem() { this.$emit("hide"); }, save() { if (!this.checkRules()) return false; ProductApi.applyItem .apply({ ...this.applyItem }) .then((res) => { if (res.status == "200") { let result = res.result; this.$message.success("申请胜利!"); this.hideApplyItem(); } }) .finally(() => { this.btnDisabled = false; }); }, }, mounted() { this.setRules(); },};</script>