Kaynağa Gözat

预算批复 预算总额:需要自动计算
预算总额:判断表体为空才可以手输
明细金额:需设置2位小数

xieyn 2 yıl önce
ebeveyn
işleme
d1d4103645
1 değiştirilmiş dosya ile 33 ekleme ve 29 silme
  1. 33 29
      src/views/oa/modules/BudgetReplyModal.vue

+ 33 - 29
src/views/oa/modules/BudgetReplyModal.vue

@@ -48,7 +48,7 @@
           </a-col>
           <a-col :span="8">
             <a-form-item label="预算总额" :labelCol="labelCol" :wrapperCol="wrapperCol">
-              <a-input v-decorator="[ 'budgetTotal', validatorRules.budgetTotal]" placeholder="请输入预算总额"></a-input>
+              <a-input :disabled="this.disdabled" v-decorator="[ 'budgetTotal', validatorRules.budgetTotal]" placeholder="请输入预算总额"></a-input>
             </a-form-item>
           </a-col>
           <a-col :span="24">
@@ -72,6 +72,9 @@
             :rowNumber="true"
             :rowSelection="true"
             :actionButton="true"
+            @added="moneyChange"
+            @inserted="moneyChange"
+            @deleted="moneyChange"
             @selectRowChange="moneyChange"
             @valueChange="moneyChange">
           <template v-slot:department="props">
@@ -106,7 +109,7 @@
     },
     data() {
       return {
-        selectedRowIds:[],
+        disdabled:true,
         yearShowOne: false,
         labelCol: {
           span: 6
@@ -234,6 +237,7 @@
               width:"200px",
               placeholder: '请输入${title}',
               defaultValue: '',
+              validateRules:[{pattern:/^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额,限制两位小数!'}]
             },
             {
               title: '拨付方式',
@@ -278,13 +282,6 @@
         }
       }
     },
-    mounted () {
-      this.$nextTick(()=>{
-        // this.selectedRowIds = this.$refs.refKeys[0].selectedRowIds;
-        // console.log("selectedRowIds",this.selectedRowIds)
-      })
-
-    },
     methods: {
       getAllTable() {
         let values = this.tableKeys.map(key => getRefPromise(this, key))
@@ -295,7 +292,9 @@
         if(this.model.budgetYear){
           this.model.budgetYear =  moment(this.model.budgetYear);
         }
+        console.log(this.model)
         let fieldval = pick(this.model,'registerPerson','registerDept','registerDate','budgetYear','budgetTotal','file')
+
         this.$nextTick(() => {
           this.form.setFieldsValue(fieldval)
         })
@@ -348,30 +347,35 @@
         ]
         this.$refs.budgetReplyDetail.setValues(values)
       },
-      moneyChange() {
+      moneyChange(type, row, column, value, target) {
         this.$refs.budgetReplyDetail.getValues((error, values) =>{
-          console.log(values)
-          var detailMoneys = 0;//定义预算总金额
-          var d = 0;//定义小数位的初始长度,默认为整数,即小数位为0
-          // 错误数 = 0 则代表验证通过
-          if (error === 0) {
-            // 将通过后的数组提交到后台或自行进行其他处理
-            for(var i = 0;i<values.length;i++){
-              var str = values[i].detailMoney;
-              if(str.indexOf(".")!=-1){//判断数字是否为小数
-                //获取小数位的长度
-                var temp = str.split(".")[1].length;
-                //比较此数的小数位与原小数位的长度,取小数位较长的存储到d中
-                d = d < temp ? temp : d;
+          if(values.length ===0){
+            this.disdabled = false
+          }else{
+            this.disdabled = true
+            var detailMoneys = 0;//定义预算总金额
+            var d = 0;//定义小数位的初始长度,默认为整数,即小数位为0
+            // 错误数 = 0 则代表验证通过
+            if (error === 0) {
+              // 将通过后的数组提交到后台或自行进行其他处理
+              for(var i = 0;i<values.length;i++){
+                var str = values[i].detailMoney;
+                if(str.indexOf(".")!=-1){//判断数字是否为小数
+                  //获取小数位的长度
+                  var temp = str.split(".")[1].length;
+                  //比较此数的小数位与原小数位的长度,取小数位较长的存储到d中
+                  d = d < temp ? temp : d;
+                }
+                detailMoneys+= Number(values[i].detailMoney);
               }
-              detailMoneys+= Number(values[i].detailMoney);
+            } else {
+              this.$message.error('验证未通过')
             }
-          } else {
-            this.$message.error('验证未通过')
+            this.form.setFieldsValue({
+              budgetTotal: detailMoneys.toFixed(d)
+            })
           }
-          this.form.setFieldsValue({
-            budgetTotal: detailMoneys.toFixed(d)
-          })
+
         })
       },
     }