Przeglądaj źródła

Add Partner, Fleet and Member dropdown list filter
https://dev.wormwood.com.sg/zentao/task-view-53.html

vbea 2 lat temu
rodzic
commit
e359c76be2

+ 6 - 2
Strides-Admin/src/views/company/detail.vue

@@ -220,12 +220,12 @@ export default {
           required: true,
         }],
         contactPerson: [{
-          message: "required",
+          message: "Please input contact person",
           trigger: "blur",
           required: false,
         }],
         contactNumber: [{
-          message: "required",
+          message: "Please input contact number",
           trigger: "blur",
           required: false,
         }, {
@@ -234,6 +234,10 @@ export default {
           message: "Please enter the correct number",
         }],
         discount: [{
+          message: "Please input basic discount",
+          trigger: "blur",
+          required: true,
+        },{
           trigger: "blur",
           validator: (rule, value, callback, source, options) => {
             let pattern = /^\d*(\.)?\d{1,2}$/

+ 53 - 1
Strides-Admin/src/views/transaction/transactions.vue

@@ -12,7 +12,7 @@
             class="filter-view-item"
             v-model="filter.pageVo.userType"
             placeholder="User Type"
-            @change="handleFilter"
+            @change="changeUserType"
             clearable>
             <el-option
               v-for="item in userTypeOptions"
@@ -20,6 +20,19 @@
               :label="item"
               :value="item" />
           </el-select>
+          <el-select
+            class="filter-view-item group-select"
+            :class="{hide: groupOptions.length == 0}"
+            v-model="filter.pageVo.groupPk"
+            placeholder="Group Name"
+            @change="handleFilter"
+            clearable>
+            <el-option
+              v-for="(item,index) in groupOptions"
+              :key="index"
+              :label="item.name"
+              :value="item.value"/>
+          </el-select>
           <el-select
             class="filter-view-item"
             v-model="filter.pageVo.filter"
@@ -251,11 +264,13 @@ export default {
         pageSize: 10,
         pageVo: {
           filter: "",
+          groupPk: "",
           criteria: "",
           userType: "",
           dateRange: [],
         }
       },
+      groupOptions: [],
       filterOptions: [],
       userTypeOptions: [],
       listLoading: true,
@@ -291,6 +306,34 @@ export default {
         }
       })
     },
+    changeUserType() {
+      this.filter.pageVo.groupPk = "";
+      this.getGroupOptions();
+    },
+    getGroupOptions() {
+      if (this.filter.pageVo.userType == "") {
+        this.groupOptions = [];
+        return;
+      }
+      this.listLoading = true;
+      apiUser.getGroupByType(this.filter.pageVo.userType).then(res => {
+        if (res.data) {
+          this.groupOptions = res.data
+        } else {
+          this.groupOptions = []
+        }
+      }).catch(err => {
+        this.$message({
+          message: err,
+          type: 'error'
+        })
+        this.groupOptions = []
+      }).finally(() => {
+        setTimeout(() => {
+          this.getList();
+        }, 100)
+      })
+    },
     getUserTypeOption() {
       apiUser.getUserTypeOptions().then(res => {
         if (res.data) {
@@ -387,4 +430,13 @@ export default {
     color: #0000FF;
     cursor: pointer;
   }
+  .group-select {
+    overflow: hidden;
+    transition: all .3s;
+  }
+  .group-select.hide {
+    margin: 0;
+    min-width: 0;
+    max-width: 0;
+  }
 </style>