<template>
  <el-dialog :title="comIsEntityMaterials ?  '推送到物资用量' : '推送工程量'" :visible.sync="comPushProjectUseDialog" width="480px"
    class="push-project-use-dialog" @close="dialogClose">
    <div class="dialog-body-content">
      <el-form :model="pushForm" ref="pushForm" :rules="rules" class="push-form">
        <el-form-item label="分包项目名称">
          <el-input :value="pushForm.projectName" :disabled="true"></el-input>
        </el-form-item>
        <el-form-item label="本月实际工程量">
          <el-input :value="pushForm.totalQuantities" :disabled="true"></el-input>
        </el-form-item>
        <el-form-item label="需推送工程量" prop="pushQuantities">
          <el-input v-model="pushForm.pushQuantities" placeholder="请填写需推送工程量"></el-input>
        </el-form-item>
      </el-form>
    </div>
  </el-dialog>
</template>
<script>
import { subtract } from "@/utils/decimal";
import { cloneDeep } from 'lodash-es';
export default {
  name: "pushProjectUseDialog",
  model: {
    prop: "pushProjectUseDialog",
    event: "close"
  },
  props: {
    pushProjectUseDialog: {
      type: Boolean,
      default: false
    },
    isEntityMaterials: {
      type: Boolean,
      default: false
    },
    rowData: {
      type: Object,
      default: () => ({})
    }
  },
  watch: {
    pushProjectUseDialog: {
      handler(newValue, oldValue) {
        this.comPushProjectUseDialog = newValue;
      }
    },
    comIsEntityMaterials: {
      handler(newValue, oldValue) {
        this.comIsEntityMaterials = newValue;
      }
    },
    rowData: {
      handler(newValue, oldValue) {
        const _temp = newValue ? newValue : {};
        this.pushForm = cloneDeep({ ...this.pushForm, ..._temp });
      }
    }
  },
  data() {
    // 验证需推送工程量
    const pushQuantitiesValidator = (rule, value, callback) => {
      const reg = /^(?!0\d)(?!0+$)(?!0*\.0*$)\d+(\.\d+)?$/;
      if (!reg.test(value)) return callback(new Error("请输入正确的工程量"));
      callback();
    };
    return {
      comIsEntityMaterials: this.isEntityMaterials,
      comPushProjectUseDialog: this.pushProjectUseDialog,
      pushForm: {
        id: "",
        pushQuantities: "",
        ipmProjectCode: "",
        ipmContractCode: "",
        ipmBizCode: ""
      },
      rules: {
        pushQuantities: [
          { trigger: ["blur", "change"], validator: pushQuantitiesValidator }
        ]
      }
    };
  },
  //可访问data属性
  created() {

  },
  //计算集
  computed: {

  },
  //方法集
  methods: {
    dialogClose() {
      const form = this.$refs["pushForm"];
      if (form) form.clearValidate();
      this.$emit("dialogClose");
      this.pushForm = this.$options.data.call(this).pushForm;
      this.$emit("close", false);
    }
  },
}
</script>
<style lang="scss" scoped>
.push-project-use-dialog {
  ::v-deep .el-dialog {
    margin-top: 0px !important;
    margin: 0px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);

    .el-dialog__header {
      height: 56px;
      padding: 0px 20px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-bottom: 1px solid #eeeeee;
      border-top-left-radius: 4px;
      border-top-right-radius: 4px;

      .el-dialog__title {
        color: #232323;
        font-size: 16px;
        font-weight: bold;
      }

      .el-dialog__headerbtn {
        position: static;
        width: 16px;
        height: 16px;
      }
    }

    .el-dialog__body {
      padding: 0px;

      .dialog-body-content {
        padding: 24px 20px;
        box-sizing: border-box;

        .push-form {
          .el-form-item {
            margin-bottom: 16px;
            display: flex;
            align-items: center;

            .el-form-item__label {
              width: 98px;
              min-width: 98px;
              line-height: 20px;
              color: rgba(35, 35, 35, 0.8);
              font-weight: 350;
              font-size: 14px;
              text-align: right;
              padding-right: 0px;
              margin-right: 16px;
              white-space: nowrap;
            }
            .el-form-item__content {
              width: 100%;
              line-height: 32px;

              .el-input {
                &.is-disabled {
                  .el-input__inner {
                    background: #fff;
                    color: rgba(35, 35, 35, 0.8);
                  }
                }
              }

              .el-input__inner {
                line-height: 32px;
                height: 32px;
                border-radius: 2px;
                padding: 0px 7px;

                ::placeholder {
                  color: #c0c4cc !important;
                }
              }
            }
          }
        }
      }
    }
  }
}
</style>
