vue 判断对象长度

194 阅读2分钟

目前使用在form表单提交的时候如果不加校验的情况下 可以取表单对象的的长度做判断 表单里面一共有6个值最好是大于六 但是我这都做了校验要不要这个判断无所谓了,所以就这样了 如果子组件里面有确定按钮这个是form提交的 然后外层是数据的提交,这个form表单下面是上传的组件,这个上传的组件没办法去做校验,所以父组件里面加了判断,如果有上传的文件,就提交没有就做提示需要上传组件,然后form表单里面没有拦截成果,只要你的form表单里面值都输入了,你这个新增接口数据已经提交数据库了,页面没什么问题,但是最后统计数据的时候新增这个接口会提交2次,有重复的数据,所以也需要在form表单做拦截,相当于最后外层的提交接口和form表单里面的接口,两个接口是必须都有值 并且是同时调取的,如果其中一个不满足条件就无法新增提交,所以最后下面的form提交也做一个if判断了 回访的时候这个form表单已存在回访的字段没值,当你点击回访页面的时候你输入值,没走到下面的if判断form输入值的时候点击确定这个表单值已经走新增接口的,还是不对所以在if判断之前在家一个判断,如果是回访的时候并且文件上传是false的时候把回访的字段置空 接口msg报错你让后端修改 这几个值未空的时候msg报错是你要的提示

 const visitedViews = computed(() => store.state.operate.have);
  
  form表单里面的确认提交:
   const dataLen = Object.keys(form.value).length;
    if (store.state.operate.have == false && data.value.type == "8") {
console.log("回访");
// disabled.value = true;
console.log("20");
form.value = {
  peoplePg: form.value.peoplePg,
  machinePg: form.value.machinePg,
  goodsPg: form.value.goodsPg,
  environmentPg: form.value.environmentPg,
  managePg: form.value.managePg,
  otherPg: form.value.otherPg,

  areaId: form.value.areaId,
  createBy: form.value.createBy,
  createTime: form.value.createTime,
  customerCategory: form.value.customerCategory,
  customerCode: form.value.customerCode,
  customerId: form.value.customerId,
  customerName: form.value.customerName,
  district: form.value.district,

  hfCount: form.value.hfCount,
  id: form.value.id,

  params: form.value.params,

  pgCount: form.value.pgCount,
  projectId: form.value.projectId,
  remark: form.value.remark,
  searchValue: form.value.searchValue,
  type: form.value.type,
  updateBy: form.value.updateBy,
  updateTime: form.value.updateTime,

  peopleHf: null,
  machineHf: null,
  goodsHf: null,
  environmentHf: null,
  manageHf: null,
  otherFx: null,
};
      } else {
        form.value = {
          ...form.value,
        };
      }
            if (visitedViews.value && dataLen > 0) {
              console.log("visitedViews", visitedViews.value);
              addThreat({
                ...node.value,
                ...form.value,
                customerId: props.data.customerId,
                type: data.value.type == 7 ? "评估" : "回访",
              }).then((res) => {
                emit("handleSubmit");
              });
            } else {
              ElMessage({
                type: "error",
                message: "上传文件不可为空",
              });
            }
    
    外层父组件的最后提交:
    //提交上传
function handleSubmit() {
  if(visitedViews.value){
    console.log('visitedViews.value',visitedViews.value);
    proxy.$modal.confirm("提交后进入审批,非驳回不可上传,请确认后提交!")
    .then(function () { 
      let params = {
        ...props.node,
        isUpload: 1,
      };
      console.log('params',params);
      flowSubmit(params).then((res) => {
        const loading = ElLoading.service({
          lock: true,
          text: "数据提交中,请稍后...",
          background: "rgba(0, 0, 0, 0.7)",
        });
        ctx.emit("updateData");
        // proxy.$modal.msgSuccess("提交成功");
        ctx.emit("closeDialog");
        setTimeout(function () {
          loading.close();
        }, 2000); // 定时时间
      });
    });
  }else{
    ElMessage({
        type: "error",
        message: "上传文件不可为空",
      });
  }
  
}