Bladeren bron

fix: bug修改

allen 2 jaren geleden
bovenliggende
commit
3dd4337c57

+ 7 - 3
src/components/SelectTree/index.vue

@@ -53,15 +53,19 @@ export default {
       defaultChecked: []
       defaultChecked: []
     }
     }
   },
   },
-  mounted() { 
-    this.defaultChecked = this.checkedList.split(',')
-  },
   watch: {
   watch: {
     checkVal: {
     checkVal: {
       handler(val) {
       handler(val) {
         this.node.cusareaName = val
         this.node.cusareaName = val
       }
       }
     },
     },
+    checkedList: {
+      handler(val) {
+        this.defaultChecked = val ? val.split(',') : []
+      },
+      deep: true,
+      immediate: true
+    }
   },
   },
   methods: {
   methods: {
     //点击节点
     //点击节点

+ 8 - 0
src/utils/index.js

@@ -452,3 +452,11 @@ export const isValidIDCard = (idCard) => {
 export const checkPhone = (phone) => {
 export const checkPhone = (phone) => {
   return /^1\d{10}$/.test(phone);
   return /^1\d{10}$/.test(phone);
 };
 };
+// 富文本编辑器的删除完全
+export const checkEmpty = (str) => {
+  let res = str.replace(/<p>/g, '');
+  res = res.replace(/<\/p>/g, '');
+  res = res.replace(/&nbsp;/g, '');
+  res = res.replace(/<br>/g, '');
+  return res.trim() == '';
+};

+ 8 - 2
src/views/infrastructure/components/ladderLikeWaterPrice.vue

@@ -22,12 +22,18 @@
                   @change="(val) => changeMaxHandler(val,index)"
                   @change="(val) => changeMaxHandler(val,index)"
                 />
                 />
               </el-col>
               </el-col>
-              <el-col :span="2">
+              <el-col :span="2" v-if="type == 'water'">
                 <span style="margin:0 10px;">吨</span>
                 <span style="margin:0 10px;">吨</span>
               </el-col>
               </el-col>
-              <el-col :span="8" style="display:flex">
+              <el-col :span="2" v-else>
+                <span style="margin:0 10px;">度</span>
+              </el-col>
+              <el-col :span="8" style="display:flex" v-if="type == 'water'">
                 <el-input type="number" v-model="item.pricestepUnitprice" style="width: 50%;margin-right:10px;"/>元/吨
                 <el-input type="number" v-model="item.pricestepUnitprice" style="width: 50%;margin-right:10px;"/>元/吨
               </el-col>
               </el-col>
+              <el-col :span="8" style="display:flex" v-else>
+                <el-input type="number" v-model="item.pricestepUnitprice" style="width: 50%;margin-right:10px;"/>元/度
+              </el-col>
               <el-col :span="2" v-if="index + 1 == list.length && list.length > 2">
               <el-col :span="2" v-if="index + 1 == list.length && list.length > 2">
                 <span style="margin: 0 10px;">
                 <span style="margin: 0 10px;">
                   <i class="el-icon-delete-solid delete-icon" @click="() => handlerDeleteIcon(index)"></i>
                   <i class="el-icon-delete-solid delete-icon" @click="() => handlerDeleteIcon(index)"></i>

+ 22 - 2
src/views/infrastructure/components/recompose.vue

@@ -45,6 +45,8 @@
         <el-form-item label="面积:" prop="area">
         <el-form-item label="面积:" prop="area">
           <el-input
           <el-input
             placeholder="请输入"
             placeholder="请输入"
+            type="number"
+            :max="Number(infoData.areasizeResidue || 0)"
             v-model="baseForm.area"
             v-model="baseForm.area"
             style="width:250px;"
             style="width:250px;"
           >
           >
@@ -55,8 +57,10 @@
       <el-row>
       <el-row>
         <el-form-item label="额定水权:" prop="ratedWater">
         <el-form-item label="额定水权:" prop="ratedWater">
           <el-input
           <el-input
+            type="number"
             placeholder="请输入"
             placeholder="请输入"
             style="width:250px;"
             style="width:250px;"
+            :max="Number(infoData.waterrightAmount || 0)"
             v-model="baseForm.ratedWater">
             v-model="baseForm.ratedWater">
           </el-input>
           </el-input>
           <span style="margin-left:5px">m³ </span>
           <span style="margin-left:5px">m³ </span>
@@ -130,10 +134,26 @@ export default {
       hasFetched: false,
       hasFetched: false,
       rules: {
       rules: {
         area: [
         area: [
-          { required: true, message: '请输入面积', trigger: 'blur' }
+          { required: true, validator: (rule, value, callback) => {
+              if (!value) { callback(new Error('请输入面积')); return }
+              if (isNaN(value)) callback(new Error('请正确输入您的面积'))
+              else if (value > this.infoData.areasizeResidue) {
+                callback(new Error('输入的面积不能大于总面积'))
+              } else {
+                callback()
+              }
+            }, trigger: 'blur' }
         ],
         ],
         ratedWater: [
         ratedWater: [
-          { required: true, message: '请输入额定水权', trigger: 'blur' }
+          { required: true, validator: (rule, value, callback) => {
+            if (!value) {  callback(new Error('请输入额定水权'));  return}
+            if(isNaN(value)) callback(new Error('请正确输入您的额定水权'))
+            else if (value > this.infoData.waterrightAmount) {
+              callback(new Error('输入的额定水权不能大于总额定水权'))
+            } else { 
+              callback()
+            }
+          },  trigger: 'blur' }
         ]
         ]
       }
       }
     };
     };

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

@@ -62,6 +62,7 @@
                 type="number"
                 type="number"
                 v-model="baseForm.priceconfigWaterunitprice"
                 v-model="baseForm.priceconfigWaterunitprice"
               />
               />
+              <span style="display:inline-block;margin-left:5px">元/吨</span>
             </el-col>
             </el-col>
           </el-row>
           </el-row>
         </el-form-item>
         </el-form-item>

+ 36 - 9
src/views/peasantHouseholdManage/components/addedFarmers.vue

@@ -186,13 +186,16 @@ export default {
     isEdit:{
     isEdit:{
       type: Boolean,
       type: Boolean,
       default: false
       default: false
+    },
+    currentClickId: {
+      type: Number | String
     }
     }
   },
   },
   data() {
   data() {
     return {
     return {
       dialogSubmitLoading: false,
       dialogSubmitLoading: false,
       dialogVisible: false,
       dialogVisible: false,
-      baseForm: this.editFarmerData,
+      baseForm: { ...this.editFarmerData },
       hasFetched: false,
       hasFetched: false,
       cusareaName: '',
       cusareaName: '',
       areaAll: '0',
       areaAll: '0',
@@ -208,7 +211,7 @@ export default {
         ],
         ],
         farmerIdcard: [
         farmerIdcard: [
           {
           {
-            required: true, validator: (rule, value, callback) => { 
+            required: true, validator: (rule, value, callback) => {
               if (!value) callback(new Error('请输入农户身份证号'));
               if (!value) callback(new Error('请输入农户身份证号'));
               const vaild = isValidIDCard(value)
               const vaild = isValidIDCard(value)
               if (vaild) {
               if (vaild) {
@@ -232,10 +235,27 @@ export default {
             },  trigger: 'blur' }
             },  trigger: 'blur' }
         ],
         ],
         farmerAreasize: [
         farmerAreasize: [
-          { required: true, message: '请输入土地面积', trigger: 'blur' }
+          {
+            required: true, validator: (rule, value, callback) => {
+              if (!value) { callback(new Error('请输入土地面积')); return }
+              if (isNaN(value)) callback(new Error('请正确输入您的土地面积'))
+              else if (value > this.areaAll) {
+                callback(new Error('输入的土地面积不能大于总面积'))
+              } else {
+                callback()
+              }
+            }, trigger: 'blur' }
         ],
         ],
         farmerWramount: [
         farmerWramount: [
-          { required: true, message: '请输入水权', trigger: 'blur' }
+          { required: true, validator: (rule, value, callback) => {
+              if (!value) { callback(new Error('请输入水权')); return }
+              if (isNaN(value)) callback(new Error('请正确输入您的水权'))
+              else if (value > this.residualWaterRight) {
+                callback(new Error('输入的水权不能大于剩余水权'))
+              } else {
+                callback()
+              }
+            }, trigger: 'blur' }
         ]
         ]
       }
       }
     };
     };
@@ -254,19 +274,26 @@ export default {
     },
     },
     editFarmerData: {
     editFarmerData: {
       handler(val) {
       handler(val) {
-        this.baseForm = val
+        this.baseForm = {...val }
         this.cusareaName = val.cusareaName
         this.cusareaName = val.cusareaName
       },
       },
       deep: true
       deep: true
     },
     },
     treeData: {
     treeData: {
-      handler(val) {
-        console.log(val,'valjkvksaljvksjskvc')
-       },
+      handler(val) { 
+        const value = this.findItemByAreaId(this.currentClickId, val)
+        this.areaAll = value?.waterrightAreasize
+        this.waterRightAll = value?.waterrightAmount
+        this.yieldPer = value?.waterrightAmount == 0 ? 0 : (value?.waterrightAreasize) / (value?.waterrightAmount)
+        this.residualWaterRight = value?.amountResidue ?? 0
+      },
       deep: true
       deep: true
-     }
+    }
   },
   },
   methods: {
   methods: {
+    findItemByAreaId(areaId,list) {
+      return list.find(item => item.areaId === areaId)
+    },
     handlerClick(value) {
     handlerClick(value) {
       this.baseForm.areaId = value?.areaId
       this.baseForm.areaId = value?.areaId
       this.areaAll = value?.waterrightAreasize
       this.areaAll = value?.waterrightAreasize

+ 3 - 2
src/views/peasantHouseholdManage/index.vue

@@ -120,6 +120,7 @@
     :treeData="treeDatas"
     :treeData="treeDatas"
     :editFarmerData="editFarmerData"
     :editFarmerData="editFarmerData"
     :isEdit="isEdit"
     :isEdit="isEdit"
+    :currentClickId="currentClickId"
     @refresh="handleSearch"
     @refresh="handleSearch"
   />
   />
   <farmer-management 
   <farmer-management 
@@ -253,7 +254,7 @@ export default {
       })
       })
       this.detailsData = res?.data
       this.detailsData = res?.data
     },
     },
-    async getWaterrighTreetList() {
+    async getWaterrighTreetList(currentClickId) {
       const date = new Date()
       const date = new Date()
       const waterrightYear = date.getFullYear()
       const waterrightYear = date.getFullYear()
       const res = await getWaterrightList({
       const res = await getWaterrightList({
@@ -271,10 +272,10 @@ export default {
           res = await getTree()
           res = await getTree()
           this.$store.dispatch('tree/setTree', res)
           this.$store.dispatch('tree/setTree', res)
         }
         }
-        this.getWaterrighTreetList()
         this.treeData = res?.data
         this.treeData = res?.data
         this.currentClick = res?.data[0]
         this.currentClick = res?.data[0]
         this.currentClickId = this.currentClick?.cusareaId
         this.currentClickId = this.currentClick?.cusareaId
+        this.getWaterrighTreetList(this.currentClickId)
       }
       }
       const params = {
       const params = {
         farmerName: this.farmerName,
         farmerName: this.farmerName,

+ 18 - 12
src/views/waterManage/component/associationManage.vue

@@ -36,14 +36,14 @@
             <el-row :gutter="5">
             <el-row :gutter="5">
               <el-col :span="23">
               <el-col :span="23">
                 <select-tree
                 <select-tree
+                  v-if="dialogVisible"
                   style="width: 100%"
                   style="width: 100%"
                   :treeData="treeData"
                   :treeData="treeData"
                   :placeholder="'请输入产品名称/批次号'"
                   :placeholder="'请输入产品名称/批次号'"
-                  @handlerClick="handlerClick"
                   @getCheckTree="getCheckTreeHandler"
                   @getCheckTree="getCheckTreeHandler"
                   @getCheckTreeNode="getCheckTreeNodeHandler"
                   @getCheckTreeNode="getCheckTreeNodeHandler"
                   :checkVal="cusareaName"
                   :checkVal="cusareaName"
-                  :checkedList="areaIds"
+                  :checkedList="allAreaIds"
                   checkbox
                   checkbox
                   v-model="baseForm.areaIds"
                   v-model="baseForm.areaIds"
                 ></select-tree>
                 ></select-tree>
@@ -94,7 +94,7 @@
                   type="textarea"
                   type="textarea"
                   :autosize="{ minRows: 4}"
                   :autosize="{ minRows: 4}"
                   placeholder="请输入协会介绍"
                   placeholder="请输入协会介绍"
-                  maxlength="500"
+                  maxlength="250"
                   show-word-limit
                   show-word-limit
                   v-model="baseForm.assocRemark" />
                   v-model="baseForm.assocRemark" />
               </el-col>
               </el-col>
@@ -168,12 +168,12 @@ export default {
         assocRemark: '',
         assocRemark: '',
         areaIds: []
         areaIds: []
       },
       },
-      areaIds: '',
+      allAreaIds: '',
       syinfoList: [],
       syinfoList: [],
       hasFetched: false,
       hasFetched: false,
       rules: {
       rules: {
-        assocManageid: [
-          { required: true, message: '请选择负责人', trigger: 'blur' }
+         assocManageid: [
+          { required: true, message: '请选择负责人', trigger: 'change' }
         ],
         ],
         assocName: [
         assocName: [
           { required: true, message: '请输入您的协会名称', trigger: 'blur' }
           { required: true, message: '请输入您的协会名称', trigger: 'blur' }
@@ -182,7 +182,13 @@ export default {
           { required: true, message: '请输入您的协会介绍', trigger: 'blur' }
           { required: true, message: '请输入您的协会介绍', trigger: 'blur' }
         ],
         ],
         areaIds: [
         areaIds: [
-          { required: true, message: '请输入您的管辖范围', trigger: 'blur' }
+          {
+            required: true, validator: (rule, value, callback) => {
+              if (!value) { callback(new Error('请输入您的管辖范围')) }
+              else { 
+                callback()
+              };
+            }, trigger: 'change' }
         ],
         ],
       }
       }
     };
     };
@@ -211,7 +217,7 @@ export default {
         this.baseForm.assocRemark = val.assocRemark
         this.baseForm.assocRemark = val.assocRemark
         this.baseForm.assocManageid = val.assocManageid
         this.baseForm.assocManageid = val.assocManageid
         this.baseForm.areaIds = val.areaIds
         this.baseForm.areaIds = val.areaIds
-        this.areaIds = val.areaIds
+        this.allAreaIds = val.areaIds
         const treeNodeList = val?.cusareaNames?.split(',') || []
         const treeNodeList = val?.cusareaNames?.split(',') || []
         this.cusareaName = treeNodeList[treeNodeList.length - 1]
         this.cusareaName = treeNodeList[treeNodeList.length - 1]
         this.treeNodeList = treeNodeList
         this.treeNodeList = treeNodeList
@@ -226,10 +232,10 @@ export default {
     getCheckTreeNodeHandler(val) { 
     getCheckTreeNodeHandler(val) { 
       this.treeNodeList = val
       this.treeNodeList = val
     },
     },
-    handlerClick() { },
-    resetForm(formName) {
-      this.$refs[formName].resetFields();
+    resetForm() {
       this.dialogVisible = false;
       this.dialogVisible = false;
+      this.cusareaName = ''
+      this.$refs.baseForm.resetFields();
     },
     },
     resetFormData() {
     resetFormData() {
       this.baseForm = {
       this.baseForm = {
@@ -254,7 +260,6 @@ export default {
       }
       }
       this.handleClose()
       this.handleClose()
       this.$emit('getList')
       this.$emit('getList')
-      this.resetFormData()
     },
     },
     submitForm(formName) {
     submitForm(formName) {
       this.$refs[formName].validate((valid) => {
       this.$refs[formName].validate((valid) => {
@@ -263,6 +268,7 @@ export default {
     },
     },
     handleClose() {
     handleClose() {
       this.$emit('update:visible', false);
       this.$emit('update:visible', false);
+      // this.resetFormData()
       this.resetForm('baseForm');
       this.resetForm('baseForm');
     },
     },
   }
   }

+ 46 - 7
src/views/waterMarket/component/waterDeal.vue

@@ -97,26 +97,28 @@
                 min="0"
                 min="0"
                 :max="sellerRow.farmerWrbalance"
                 :max="sellerRow.farmerWrbalance"
                 v-model="baseForm.trxrcdNum"
                 v-model="baseForm.trxrcdNum"
+                @input="trxrcdNumInput"
                 style="width: 150px"
                 style="width: 150px"
               />
               />
             </el-form-item>
             </el-form-item>
           </div>
           </div>
-          <div style="display:flex;align-items:center;margin-top: 10px">
+          <div style="display:flex;align-items:center;margin-top: 20px">
             <el-form-item label="交易价格:" prop="trxrcdPrice" style="margin:0;padding:0">
             <el-form-item label="交易价格:" prop="trxrcdPrice" style="margin:0;padding:0">
               <el-input
               <el-input
                 type="number"
                 type="number"
                 min="0"
                 min="0"
                 v-model="baseForm.trxrcdPrice"
                 v-model="baseForm.trxrcdPrice"
+                @input="trxrcdPriceInput"
                 style="width: 150px"
                 style="width: 150px"
               />
               />
             </el-form-item>
             </el-form-item>
           </div>
           </div>
-          <div style="display:flex;align-items:center;margin-top: 10px">
+          <div style="display:flex;align-items:center;margin-top: 20px">
             <el-form-item label="交易金额:"  style="margin:0;padding:0">
             <el-form-item label="交易金额:"  style="margin:0;padding:0">
               {{ (Number(baseForm.trxrcdNum) * Number(baseForm.trxrcdPrice)).toFixed(2) }}
               {{ (Number(baseForm.trxrcdNum) * Number(baseForm.trxrcdPrice)).toFixed(2) }}
             </el-form-item>
             </el-form-item>
           </div>
           </div>
-          <div style="text-align:right;margin-top:50px">
+          <div style="text-align:right;margin-top:30px">
             <el-button type="info" plain @click="resetForm('baseForm')"
             <el-button type="info" plain @click="resetForm('baseForm')"
             >取消</el-button
             >取消</el-button
           >
           >
@@ -170,16 +172,30 @@ export default {
       },
       },
       rules: {
       rules: {
         trxrcdSellerid: [
         trxrcdSellerid: [
-          { required: true, message: '请选择您的卖方用水户', trigger: 'blur' }
+          { required: true, message: '请选择您的卖方用水户', trigger: 'change' }
         ],
         ],
         trxrcdBuyerid: [
         trxrcdBuyerid: [
-          { required: true, message: '请选择您的买方用水户', trigger: 'blur' }
+          { required: true, message: '请选择您的买方用水户', trigger: 'change' }
         ],
         ],
         trxrcdPrice: [
         trxrcdPrice: [
-          { required: true, message: '请输入您的交易水量', trigger: 'blur' }
+          { required: true, validator: (rule, value, callback) => {
+              if (!value) callback(new Error('请输入您的交易水量'));
+              if (value <= 0) {
+                callback(new Error('请正确输入您的交易水量'));
+              } else {
+                callback()
+              }
+            },  trigger: 'blur' }
         ],
         ],
         trxrcdNum: [
         trxrcdNum: [
-          { required: true, message: '请输入您的交易价格', trigger: 'blur' }
+          { required: true, validator: (rule, value, callback) => {
+              if (!value) callback(new Error('请输入您的交易价格'));
+              if (value <= 0) {
+                callback(new Error('请正确输入您的交易价格'));
+              } else {
+                callback()
+              }
+            }, trigger: 'blur' }
         ]
         ]
       }
       }
     };
     };
@@ -198,6 +214,22 @@ export default {
     },
     },
   },
   },
   methods: {
   methods: {
+    trxrcdNumInput(value) {
+      if(isNaN(value))return false
+      this.baseForm.trxrcdNum = this.setRule(value)
+    },
+    trxrcdPriceInput(value) { 
+      if (isNaN(value)) return false
+      this.baseForm.trxrcdPrice = this.setRule(value)
+    },
+    setRule(value) {
+      value = value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
+      value = value.replace(/^\./g, ""); //验证第一个字符是数字而不是字符
+      value = value.replace(/\.{2,}/g, "."); //只保留第一个.清除多余的
+      value = value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
+      value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
+      return value
+    },
     async addTrxrcdHandler() {
     async addTrxrcdHandler() {
       const params = { ...this.baseForm }
       const params = { ...this.baseForm }
       params.trxrcdMoney = Number(this.baseForm.trxrcdNum) * Number(this.baseForm.trxrcdPrice)
       params.trxrcdMoney = Number(this.baseForm.trxrcdNum) * Number(this.baseForm.trxrcdPrice)
@@ -220,6 +252,13 @@ export default {
      },
      },
     resetForm(formName) {
     resetForm(formName) {
       this.dialogVisible = false;
       this.dialogVisible = false;
+      this.baseForm = {
+        trxrcdSellerid: '',
+        trxrcdBuyerid: '',
+        trxrcdPrice: 0,
+        trxrcdNum: 0
+      }
+       this.$refs.baseForm.resetFields();
     },
     },
     handleClose() {
     handleClose() {
       this.$emit('update:visible', false);
       this.$emit('update:visible', false);

+ 18 - 4
src/views/waterSubsidy/components/newPolicy.vue

@@ -74,6 +74,7 @@
 <script>
 <script>
 import { addSubsidyPolicy, editSubsidyPolicy } from '@/api/subsidypolicy/index.js'
 import { addSubsidyPolicy, editSubsidyPolicy } from '@/api/subsidypolicy/index.js'
 import { getToken } from "@/utils/auth";
 import { getToken } from "@/utils/auth";
+import { checkEmpty } from '@/utils/index';
 import { Message } from 'element-ui'
 import { Message } from 'element-ui'
 import { assign } from 'lodash-es';
 import { assign } from 'lodash-es';
 export default {
 export default {
@@ -127,7 +128,17 @@ export default {
           { required: true, message: '请选择您的图片', trigger: 'change' }
           { required: true, message: '请选择您的图片', trigger: 'change' }
         ],
         ],
         subsidypolicyContent: [
         subsidypolicyContent: [
-          { required: true, message: '请输入内容', trigger: 'change' }
+          {
+            required: true, validator: (rule, value, callback) => {
+              if (!value) callback(new Error('请输入内容'));
+              const vaild = !checkEmpty(value)
+              if (vaild) {
+                callback()
+              } else {
+                callback(new Error('请输入内容'));
+              }
+
+            }, trigger: 'blur' }
         ]
         ]
       }
       }
     };
     };
@@ -156,9 +167,12 @@ export default {
     baseForm: {
     baseForm: {
       handler(val) {
       handler(val) {
         const { src, subsidypolicyContent } = val
         const { src, subsidypolicyContent } = val
-        const uploader = this.$refs.uploader
-        const errorUploadText = uploader 
-        console.log(errorUploadText,'uploaderuploaderuploader')
+        if (src) this.$refs['baseForm'].clearValidate(['src'])
+        if (!checkEmpty(subsidypolicyContent)) {
+          this.$refs['baseForm'].clearValidate(['subsidypolicyContent'])
+        } else { 
+          this.$refs['baseForm'].validateField('subsidypolicyContent')
+        }
       },
       },
       deep: true
       deep: true
     }
     }