若依的修改和增加表单是同一个表单

判断增加或者修改是根据主键ID是否为空来判断

如果某个表主键ID是新增时用户输入的,那原来的判断就无效了

怎么办呢

看代码

下方↓修改和增加表单

<!-- 添加或修改邮件管理对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="接收玩家ID" prop="accountId">
          <el-input v-model="form.accountId" placeholder="请输入接收玩家ID" />
        </el-form-item>
        <el-form-item label="发送类型" prop="type">
          <el-select v-model="form.type" placeholder="请选择发送类型">
            <el-option
              v-for="dict in dict.type.tb_mailtype"
              :key="dict.value"
              :label="dict.label"
              :value="parseInt(dict.value)"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="发送玩家ID" prop="srcId">
          <el-input v-model="form.srcId" placeholder="请输入发送玩家ID" />
        </el-form-item>
        <el-form-item label="发送昵称" prop="srcNickName">
          <el-input v-model="form.srcNickName" placeholder="请输入发送昵称" />
        </el-form-item>
        <el-form-item label="邮件标题" prop="title">
          <el-input v-model="form.title" placeholder="请输入邮件标题" />
        </el-form-item>
        <el-form-item label="邮件内容">
          <editor v-model="form.content" :min-height="192"/>
        </el-form-item>
        <el-form-item label="是否未读" prop="isRead">
          <el-select v-model="form.isRead" placeholder="请选择是否未读">
            <el-option
              v-for="dict in dict.type.tb_isread"
              :key="dict.value"
              :label="dict.label"
              :value="parseInt(dict.value)"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="奖励信息" prop="isAdjunct">
          <el-select v-model="form.isAdjunct" placeholder="请选择奖励信息">
            <el-option
              v-for="dict in dict.type.tb_isadjunct"
              :key="dict.value"
              :label="dict.label"
              :value="parseInt(dict.value)"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="附件内容" prop="adjunct">
          <el-input v-model="form.adjunct" type="textarea" placeholder="请输入内容" />
        </el-form-item>
        <el-form-item label="创建时间" prop="mCreateTime">
          <el-input v-model="form.mCreateTime" placeholder="请输入创建时间" />
        </el-form-item>
        <el-form-item label="持续时间" prop="lastingTime">
          <el-input v-model="form.lastingTime" placeholder="请输入持续时间" />
        </el-form-item>
        <el-form-item label="邮件类型" prop="mtype">
          <el-select v-model="form.mtype" placeholder="请选择邮件类型">
            <el-option
              v-for="dict in dict.type.tb_mtype"
              :key="dict.value"
              :label="dict.label"
              :value="parseInt(dict.value)"
            ></el-option>
          </el-select>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>

下方↓提交按钮

/** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.mailId != null) {//判断ID是否为空
            updateTb_player_mail(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addTb_player_mail(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },

可以看到判断的是ID

怎么修改呢

//在data中增加个字段用来判断当前状态
data() {
    return {
      // 默认是新增channel
      isAdd: true,



//在新增和修改时,改变状态值
/** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.open = true;
      this.isAdd = true;//修改状态
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      const ccChannelId = row.ccChannelId || this.ids
      getTb_channel_config(ccChannelId).then(response => {
        this.form = response.data;
        this.open = true;
        this.isAdd = false;//修改状态
      });
    },

//点击确认按钮时就不判断ID了,判断isAdd状态
 /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.isAdd == false) {//判断isAdd是否位false
            updateTb_channel_config(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addTb_channel_config(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },

Logo

快速构建 Web 应用程序

更多推荐