Bläddra i källkod

修复计费规则bug

Shannon_mu 3 år sedan
förälder
incheckning
3e0f4ba7c8

+ 1 - 1
operationSupport/src/components/common/XKUpload.vue

@@ -30,7 +30,7 @@ export default {
     actionUrl: {
       type: String,
       default() {
-        return "/excel/import/excel";
+        return "/sc-community/excel/import/excel";
       }
     },
     params: {

+ 86 - 14
operationSupport/src/views/payService/billingRules/stepPage/add.vue

@@ -24,9 +24,9 @@
                 </template>
             </el-select>
         </template>
-        <template slot="chargeCycleUnit">
+        <template slot="chargeCycle">
             <div class="form-item-flex">
-                <el-select v-model="formData.chargeCycleUnit" class="select" disabled>
+                <el-select v-model="formData.chargeCycle" class="select" disabled>
                     <el-option label="1" :value="1"></el-option>
                 </el-select>
                 <div class="widthFlex">个月</div>
@@ -34,14 +34,34 @@
         </template>
         <template slot="lateFee">
             <div class="form-item-flex">
-                <el-input-number
+                <!-- <el-input-number
                     v-model="formData.lateFee"
                     :precision="2"
                     controls-position="right"
                     :step="0.1"
                     :min="0"
                     :max="100"
-                ></el-input-number>
+                    @change="lateAdd"
+                >
+                    <i slot="suffix" style="font-style: normal; margin-right: 10px">℃</i>
+                </el-input-number> -->
+                <el-input
+                    class="input-number"
+                    v-model="formData.lateFee"
+                    :precision="2"
+                    controls-position="right"
+                    :step="0.1"
+                    :min="0"
+                    :max="100"
+                >
+                    <i slot="suffix" style="font-style: normal; margin-right: 60px"
+                        >‰
+                        <div class="input-button">
+                            <span class="button down" @click="lateAdd('-')"><i class="el-icon-arrow-down"></i></span>
+                            <span class="button up" @click="lateAdd('+')"><i class="el-icon-arrow-up"></i></span>
+                        </div>
+                    </i>
+                </el-input>
                 <el-tooltip class="item" effect="light" placement="right">
                     <div slot="content" v-html="lateFeeMsg"></div>
                     <img src="@/assets/img/menuicon/icon_tishi_zhengchang.png" alt="" />
@@ -64,9 +84,13 @@
                 <div v-if="formData.chargeType === 2">阶梯水量(吨)</div>
                 <div v-if="formData.chargeType === 3">阶梯电量(度)</div>
                 <el-input class="input100" v-model="item.quantity" placeholder="请输入用量"></el-input>
-                <div class="sunm" @click="addPrice" v-if="index === 0 && formData.ladderList.length < 5"><i class="zoniot_font zoniot-icon-tianjia1"></i></div>
+                <div class="sunm" @click="addPrice" v-if="index === 0 && formData.ladderList.length < 5">
+                    <i class="zoniot_font zoniot-icon-tianjia1"></i>
+                </div>
                 <div class="sunm" v-else style="cursor: inherit"></div>
-                <div class="sunm" @click="delePrice" v-if="index === 0 && formData.ladderList.length > 1"><i class="zoniot_font zoniot-icon-shanjian"></i></div>
+                <div class="sunm" @click="delePrice" v-if="index === 0 && formData.ladderList.length > 1">
+                    <i class="zoniot_font zoniot-icon-shanjian"></i>
+                </div>
                 <div class="sunm" v-else style="cursor: inherit"></div>
             </div>
         </template>
@@ -84,7 +108,9 @@ export default {
                 chargeName: '',
                 chargeMode: '',
                 chargePrice: '',
+                chargeCycle: '',
                 chargeCycleUnit: 1,
+                lateFee: 0.0,
                 remark: '',
                 ladderList: [
                     {
@@ -130,8 +156,8 @@ export default {
                     },
                     {
                         label: '计费周期',
-                        prop: 'chargeCycleUnit',
-                        slot: 'chargeCycleUnit'
+                        prop: 'chargeCycle',
+                        slot: 'chargeCycle'
                     },
                     {
                         label: '收滞纳金',
@@ -268,6 +294,25 @@ export default {
                 this.cols[0][12 - a].offShow = true;
             }
         },
+        lateAdd(fu) {
+            if (this.formData.lateFee == null || this.formData.lateFee == undefined) {
+                this.formData.lateFee = 0.0;
+            }
+            let newx = Number(Number(this.formData.lateFee).toFixed(2));
+            if (newx >= 0) {
+                if (fu === '-') {
+                    if (newx <= 0) {
+                        this.formData.lateFee = 0.0;
+                    } else {
+                        this.formData.lateFee = Number(Number(this.formData.lateFee - 0.1).toFixed(2));
+                    }
+                } else if (fu === '+') {
+                    this.formData.lateFee = Number(Number(this.formData.lateFee + 0.1).toFixed(2));
+                }
+            } else {
+                this.formData.lateFee = 0.0;
+            }
+        },
         submit() {
             new Promise((resolve) => {
                 this.$refs.form.validate(resolve);
@@ -280,6 +325,7 @@ export default {
                 var loading = this.$loading();
                 let url = '/sc-charge/scChargeStrategy/add';
                 if (this.params.todo === 'edit') {
+                    formData.id = this.params.data.id;
                     url = '/sc-charge/scChargeStrategy/update';
                 }
                 this.$http
@@ -309,7 +355,7 @@ export default {
             };
             if (this.formData.chargeType === 1) {
                 installData.chargePrice = this.formData.chargePrice;
-                installData.chargeCycleUnit = this.formData.chargeCycleUnit;
+                installData.chargeCycle = this.formData.chargeCycle;
                 installData.lateFee = this.formData.lateFee;
                 installData.arrearsDays = this.formData.arrearsDays;
                 installData.generationRules = this.formData.generationRules;
@@ -317,7 +363,7 @@ export default {
                 if (this.formData.chargeMode === 2) {
                     installData.chargePrice = this.formData.chargePrice;
                 } else {
-                    installData.chargeCycleUnit = this.formData.chargeCycleUnit;
+                    installData.chargeCycle = this.formData.chargeCycle;
                     installData.ladderList = this.formData.ladderList;
                 }
             }
@@ -341,7 +387,7 @@ export default {
     created() {
         if (this.params.todo == 'edit') {
             Object.assign(this.formData, this.params.data);
-            this.formData.ladderList = JSON.parse(this.formData.chargePriceLadder) ||  this.formData.ladderList;
+            this.formData.ladderList = JSON.parse(this.formData.chargePriceLadder) || this.formData.ladderList;
         }
     }
 };
@@ -352,13 +398,39 @@ export default {
 }
 .form-item-flex {
     display: flex;
-    /deep/ .el-input-number--small {
-        width: 110px;
-    }
+
     .input {
         width: 110px;
         margin: 0 15px 0 12px;
     }
+    .input-number {
+        width: 110px;
+        .input-button {
+            line-height: 15px;
+            .up {
+                position: absolute;
+                top: 2px;
+                height: 16px;
+                width: 25px;
+                right: -4px;
+                border-radius: 0px 4px 0 0;
+                background: #f5f7fa;
+                border-bottom: 1px solid #dcdfe6;
+                border-left: 1px solid #dcdfe6;
+            }
+            .down {
+                position: absolute;
+                bottom: 1px;
+                height: 16px;
+                width: 25px;
+                right: -4px;
+                background: #f5f7fa;
+                border-radius: 0 0 4px 0;
+                border-top: 1px solid #dcdfe6;
+                border-left: 1px solid #dcdfe6;
+            }
+        }
+    }
     .input100 {
         width: 100px;
     }