allen před 2 roky
rodič
revize
b93c5b8264

+ 0 - 1
src/views/infrastructure/components/recompose.vue

@@ -176,7 +176,6 @@ export default {
     },
     editRow:{
       handler(val) {
-        console.log(val, 'valvalvalvlavlas')
         const { cusareaParentid } = val
         this.cusareaParentid = cusareaParentid
         this.visible && this.getWaterrightUpareaList(val)

+ 0 - 1
src/views/infrastructure/components/setAnnualWaterRight.vue

@@ -334,7 +334,6 @@ export default {
     },
 
     submitForm(formName) {
-      console.log(this.priceconfigElectricityunitprice,'priceconfigElectricityunitpricepriceconfigElectricityunitprice')
       this.$refs[formName].validate((valid) => {
         valid && this.editPriceHandler()
       })

+ 420 - 0
src/views/infrastructure/components/setAnnualWaterRightAdd.vue

@@ -0,0 +1,420 @@
+<template>
+  <el-dialog
+    title="新增"
+    :visible.sync="dialogVisible"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    @close="handleClose"
+    width="660px"
+  >
+  <el-tooltip
+    class="item_tooltip" 
+    effect="dark"
+    content="操作提示:设置每亩农田同水量的水价信息和用电量的电价信息"
+    placement="right"
+  >
+    <i class="el-alert__icon el-icon-info"></i>
+  </el-tooltip>
+    <el-form
+      ref="baseForm"
+      class="base-form"
+      label-position="right"
+      label-width="100px"
+      :model="baseForm"
+      size="small"
+    >
+    <el-row>
+      <el-col :span="24">
+        <el-form-item label="所属区域">
+          <el-row>
+            <el-col :span="24">
+              <select-tree 
+                :placeholder="'行政区域(全国)'" 
+                style="width:100%"
+                :treeData="treeData"
+                @handlerClick="handlerClick"
+                :checkVal="baseForm.cusareaName"
+              ></select-tree>
+            </el-col>
+          </el-row>
+        </el-form-item>
+      </el-col>
+    </el-row>
+    <el-row>
+      <h3>水价</h3>
+      <el-col :span="24">
+        <el-form-item label="水价计费方式">
+          <el-row>
+            <el-col :span="18">
+              <el-radio v-model="constantWaterPrice" label="0">恒定水价</el-radio>
+              <el-radio v-model="constantWaterPrice" label="1">阶梯水价</el-radio>
+            </el-col>
+          </el-row>
+        </el-form-item>
+        <el-form-item label="水价" 
+          v-if="constantWaterPrice == 0" 
+          prop="priceconfigWaterunitprice"
+          :rules="[{ required: true, message: '请选择您的恒定水价', trigger: 'blur' }]"
+        >
+          <el-row>
+            <el-col :span="18">
+              <el-input
+                style="width: 50%"
+                type="number"
+                v-model="baseForm.priceconfigWaterunitprice"
+              />
+              <span style="display:inline-block;margin-left:5px">元/吨</span>
+            </el-col>
+          </el-row>
+        </el-form-item>
+        <ladderLikeWaterPrice
+          v-else
+          :type="'water'"
+          @changeList="changeList"
+          :list="baseForm.waterPriceSteps || []"
+        />
+      </el-col>
+    </el-row>
+    <el-row>
+      <h3>电价</h3>
+      <el-col :span="24">
+        <el-form-item label="电价计费方式">
+          <el-row>
+            <el-col :span="18">
+              <el-radio v-model="ladderLikeWaterPrice" label="0">恒定电价</el-radio>
+              <el-radio v-model="ladderLikeWaterPrice" label="1">阶梯电价</el-radio>
+            </el-col>
+          </el-row>
+        </el-form-item>
+        <el-form-item
+          label="电价"
+          v-if="ladderLikeWaterPrice == 0"
+          :rules="[{ required: true, message: '请选择您的恒定电价', trigger: 'blur' }]"
+          prop="priceconfigElectricityunitprice"
+        >
+          <el-row>
+            <el-col :span="18">
+              <el-input 
+                style="width: 50%" 
+                type="number"
+                v-model="baseForm.priceconfigElectricityunitprice"
+              />
+              <span style="display:inline-block;margin-left:5px">元/度</span>
+            </el-col>
+          </el-row>
+        </el-form-item>
+        <ladderLikeWaterPrice 
+          v-else
+          :type="'electricity'"
+          @changeList="changeList"
+          :list="baseForm.elecPriceSteps || []"
+        />
+      </el-col>
+    </el-row>
+    </el-form>
+
+    <div style="text-align: right;margin-top: 20px;">
+      <el-button type="info" plain @click="resetForm('baseForm')"
+        >取消</el-button
+      >
+      <el-button
+        type="primary"
+        style="margin-left:16px;"
+        @click="submitForm('baseForm')"
+        :disabled="dialogSubmitLoading"
+        :loading="dialogSubmitLoading"
+        >确定</el-button
+      >
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import SelectTree from '@/components/SelectTree';
+import { getTree } from '@/api/tree.js'
+import { assign } from 'lodash-es';
+import { Message  } from 'element-ui'
+import ladderLikeWaterPrice from './ladderLikeWaterPrice.vue'
+import { addPrice } from '@/api/price/index.js'
+export default {
+  name: 'setAnnualWaterRightAdd',
+  props: {
+    data: {
+      default() {
+        return {};
+      }
+    },
+    visible: {
+      type: Boolean,
+      default: false
+    },
+  },
+  components: {
+    ladderLikeWaterPrice,
+    SelectTree
+  },
+  data() {
+    return {
+      treeData: [],
+      areaId: '',
+      dialogSubmitLoading: false,
+      constantWaterPrice: '1',
+      ladderLikeWaterPrice: '1',
+      dialogVisible: false,
+      priceconfigElectricityunitprice: '',
+      priceconfigWaterunitprice: '',
+      baseForm: {
+        cusareaName: '',
+        priceconfigElectricityunitprice: '',
+        priceconfigWaterunitprice: '',
+        elecPriceSteps: [{
+          pricestepUsagemin: '0',
+          pricestepUsagemax: '',
+          pricestepUnitprice: '',
+        }, {
+          pricestepUsagemin: '',
+          pricestepUsagemax: '',
+          pricestepUnitprice: '',
+        }],
+        waterPriceSteps: [{
+          pricestepUsagemin: '0',
+          pricestepUsagemax: '',
+          pricestepUnitprice: '',
+        }, {
+          pricestepUsagemin: '',
+          pricestepUsagemax: '',
+          pricestepUnitprice: '',
+        }]
+      },
+      hasFetched: false,
+      rules1: {
+        priceconfigWaterunitprice: [
+          { required: true, message: '输入您的恒定水价', trigger: 'blur' }
+        ],
+      },
+      rules2: {
+        priceconfigElectricityunitprice: [
+          { required: true, message: '输入您的恒定电价', trigger: 'blur' }
+        ]
+      },
+      rules3: {
+        priceconfigWaterunitprice: [
+          { required: true, message: '输入您的恒定水价', trigger: 'blur' }
+        ],
+        priceconfigElectricityunitprice: [
+          { required: true, message: '输入您的恒定电价', trigger: 'blur' }
+        ]
+      },
+      rules4: {
+        stockAmount: [
+          { required: true, message: '请选择负责人', trigger: 'blur' }
+        ],
+        sourceinfoId: [
+          { required: true, message: '请选择管辖范围', trigger: 'blur' }
+        ],
+        productName: [
+          { required: true, message: '请输入协会名称', trigger: 'blur' }
+        ],
+        supplierId: [
+          { required: false, message: '请输入协会介绍', trigger: 'blur' }
+        ],
+        goodsSpecValue: [
+          { required: true, message: '请选择规格', trigger: 'blur' }
+        ]
+      }
+    };
+  },
+  watch: {
+    visible(val) {
+      if (val !== this.dialogVisible) {
+        this.dialogVisible = val;
+        if (val) {
+          assign(this.baseForm, this.data);
+          if (!this.hasFetched) {
+            this.hasFetched = true;
+          }
+        }
+      }
+    },
+    data: {
+      deep: true,
+      handler(val) {
+        assign(this.baseForm, val);
+      }
+    },
+  },
+  mounted() { 
+    this.getWaterrightList()
+  },
+  methods: {
+    handlerClick(value) {
+      this.areaId = value?.cusareaId
+    },
+    async getWaterrightList() {
+      if (!this.areaId) {
+        const res = await getTree()
+        this.treeData = res?.data
+        this.areaId = this.treeData[0].cusareaId
+      }
+    },
+    changeList(list,type,row, index) {
+      if (type === 'water') {
+        if (this.baseForm.waterPriceSteps[index + 1]) {
+          const params = this.baseForm.waterPriceSteps[index + 1]
+          params.pricestepUsagemin = row
+          this.$set(this.baseForm.waterPriceSteps, index + 1, params)
+         }
+      } else { 
+        if (this.baseForm.elecPriceSteps[index + 1]) {
+          const params = this.baseForm.elecPriceSteps[index + 1]
+          params.pricestepUsagemin = row
+          this.$set(this.baseForm.elecPriceSteps, index + 1, params)
+         }
+      }
+     },
+    async editPriceHandler() {
+      const { priceconfigId } = this.baseForm
+      if (this.constantWaterPrice == 1) { 
+        for (let i = 0; i < this.baseForm.waterPriceSteps.length; i++) {
+          const waterPriceItem = this.baseForm.waterPriceSteps[i]
+          if (waterPriceItem?.pricestepUsagemin != ''  && waterPriceItem?.pricestepUsagemax != '' && +waterPriceItem?.pricestepUsagemax < +waterPriceItem?.pricestepUsagemin) {
+            Message({
+              type: 'warning',
+              message: `水价第${i+1}阶梯的最大量不能小于最小量`
+            })
+            return
+          }
+          if (!waterPriceItem?.pricestepUnitprice) {
+            Message({
+              type: 'warning',
+              message: '请正确输入您的水价信息'
+            })
+            return
+          }
+          waterPriceItem.pricestepNum = i
+        }
+      }
+      if (this.ladderLikeWaterPrice == 1) {
+        for (let i = 0; i < this.baseForm.elecPriceSteps.length; i++) {
+          const elePriceItem = this.baseForm.elecPriceSteps[i]
+          if (elePriceItem?.pricestepUsagemin != '' && elePriceItem?.pricestepUsagemax != '' && +elePriceItem?.pricestepUsagemax < +elePriceItem?.pricestepUsagemin) {
+            Message({
+              type: 'warning',
+              message: `电价第${i + 1}阶梯的最大量不能小于最小量`
+            })
+            return
+          }
+          if (!elePriceItem?.pricestepUnitprice) {
+            Message({
+              type: 'warning',
+              message: '请正确输入您的电价信息'
+            })
+            return
+          }
+          elePriceItem.pricestepNum = i
+        }
+      }
+      
+      const params = {
+        areaId:this.areaId,
+        priceconfigId,
+        priceconfigWaterchargingtype: this.constantWaterPrice,
+        priceconfigElectricityunitprice:  this.ladderLikeWaterPrice == 0 ? this.baseForm.priceconfigElectricityunitprice: '0',
+        priceconfigElectricitychargingtype: this.ladderLikeWaterPrice,
+        priceconfigWaterunitprice: this.constantWaterPrice == 0 ? this.baseForm.priceconfigWaterunitprice :'0',
+        waterPriceSteps: this.constantWaterPrice == 1 ? this.baseForm.waterPriceSteps : [],
+        elePriceSteps: this.ladderLikeWaterPrice == 1 ? this.baseForm.elecPriceSteps : [],
+      }
+      await addPrice(
+        params
+      )
+      this.handleClose()
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.resetFormData();
+      this.dialogVisible = false;
+    },
+    resetFormData() {
+      this.baseForm =  {
+        cusareaName: '',
+        priceconfigElectricityunitprice: '',
+        priceconfigWaterunitprice: '',
+        elecPriceSteps: [{
+          pricestepUsagemin: '0',
+          pricestepUsagemax: '',
+          pricestepUnitprice: '',
+        }, {
+          pricestepUsagemin: '',
+          pricestepUsagemax: '',
+          pricestepUnitprice: '',
+        }],
+        waterPriceSteps: [{
+          pricestepUsagemin: '0',
+          pricestepUsagemax: '',
+          pricestepUnitprice: '',
+        }, {
+          pricestepUsagemin: '',
+          pricestepUsagemax: '',
+          pricestepUnitprice: '',
+        }]
+      }
+    },
+
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        valid && this.editPriceHandler()
+      })
+    },
+    handleClose() {
+      this.$emit('update:visible', false);
+      this.$emit('clearEdit')
+      this.resetForm('baseForm');
+    },
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form-item__label{
+  text-align: right !important;
+}
+
+.item_tooltip{
+  position: absolute;
+  top: 25px;
+  left: 70px;
+  color: #00000066;
+}
+h3{
+  color: #303133;
+  font-family: Source Han Sans CN VF;
+  font-size: 14px;
+  font-style: normal;
+  font-weight: 700;
+  line-height: 24px;
+}
+.base-form {
+  max-height: 70vh;
+  overflow-y: auto;
+  overflow-x: hidden;
+  padding: 0 20px;
+}
+</style>
+<style lang="css" scoped>
+::v-deep .el-dialog__header {
+  border-bottom: 1px solid #ebeef5;
+}
+</style>
+<style>
+.el-tooltip__popper.is-dark {
+	background: rgba(0,0,0,0.5);
+}
+
+.el-tooltip__popper[x-placement^=right] .popper__arrow{
+  border-right-color:#888;
+}
+.el-tooltip__popper[x-placement^=right] .popper__arrow::after{
+  border-right-color:#888;
+}
+</style>

+ 12 - 3
src/views/infrastructure/waterElectricityPriceSetting.vue

@@ -17,14 +17,14 @@
             </el-select>
             <el-button type="primary" size="small" @click="handleSearch">查询</el-button>
           </div>
-          <!-- <div class="top-left">
+          <div class="top-left">
             <el-button
               type="primary"
               size="small"
               @click="addAssociation"
               >新增
               </el-button
-          ></div> -->
+          ></div>
         </el-col>
         <el-col :span="24" class="elrow-main__col-bottom">
           <b-table ref="tableRef" 
@@ -130,6 +130,10 @@
       :editRow="editRow"
       @clearEdit="handlerClearEdit"
     />
+    <set-annual-water-right-add
+      :visible.sync="addAssociationManageShow"
+      @clearEdit="handlerClearEdit"
+    />
   </el-row>
 </template>
 
@@ -139,13 +143,14 @@ import SelectTree from '@/components/SelectTree';
 import BTable from '@/components/Table/index.vue';
 import { Waterchargingtype, Electricitychargingtype } from './status'
 import setAnnualWaterRight from './components/setAnnualWaterRight.vue'
+import setAnnualWaterRightAdd from './components/setAnnualWaterRightAdd.vue'
 import { getPriceList, deletePrice } from '@/api/price/index.js'
 import { getTree } from '@/api/tree.js'
 import { assign, omit } from 'lodash-es';
 
 export default {
   name: 'waterElectricityPriceSetting',
-  components: { BTable, setAnnualWaterRight, SelectTree },
+  components: { BTable, setAnnualWaterRight, SelectTree, setAnnualWaterRightAdd },
   data() {
     return {
       form: {
@@ -154,6 +159,7 @@ export default {
       areaId: '',
       loading: false,
       associationManageShow: false,
+      addAssociationManageShow: false,
       priceConfigVal: '',
       priceconfigWaterchargingtype: '',
       priceconfigElectricitychargingtype: '',
@@ -248,6 +254,9 @@ export default {
     this.getWaterrightList()
   },
   methods: {
+    addAssociation() { 
+      this.addAssociationManageShow = true
+    },
     editAssociation(row) {
       this.editRow = row
       this.associationManageShow = true