vbea vor 3 Jahren
Ursprung
Commit
39ae4c70bc

+ 3 - 2
Strides-Admin/src/http/api/transaction.js

@@ -3,8 +3,9 @@ import {get, post, download} from '../http'
 const transaction = {
   getTransactionFilters: () => get('transaction/getTransactionFilters'),
   getTransactionPages: (params) => post('transaction/getTransactionPages', params),
-  getTransactionDetail: (chargingPk) => get('transaction/getTransactionDetail', {transactionPk: chargingPk}),
-  downloadInvoice: (chargingPk) => download('transaction/downloadInvoice', {transactionPk: chargingPk})
+  getTransactionDetail: (params) => get('transaction/getTransactionDetail', params),
+  downloadInvoice: (chargingPk) => download('transaction/downloadInvoice', {transactionPk: chargingPk}),
+  getMeasurandOptions: () => get('transaction/getMeasurands')
 }
 
 export default transaction;

+ 7 - 0
Strides-Admin/src/styles/index.scss

@@ -280,6 +280,13 @@ aside {
   justify-content: center;
 }
 
+.flexcwr {
+  display: flex;
+  flex-wrap: wrap;
+  align-items: center;
+  justify-content: space-between;
+}
+
 .flex1 {
   flex: 1;
 }

+ 1 - 1
Strides-Admin/src/views/Reports.vue

@@ -21,7 +21,7 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item label="Service Provider:">
+          <el-form-item label="Service Provider:" v-if="reportFilter.reportType !== 'MTU'">
             <el-select v-model="reportFilter.providerPk">
               <el-option
                 v-for="serviceProvider in serviceProviderOptions"

+ 41 - 12
Strides-Admin/src/views/transaction/view_transaction.vue

@@ -133,7 +133,19 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <div class="section-title">Intermediate Meter Values</div>
+        <div class="flexcwr">
+          <div class="section-title">Intermediate Meter Values</div>
+          <el-select v-model="measurand" @change="getDeatil">
+            <el-option
+              value=""
+              label="All"/>
+            <el-option
+              v-for="(item, index) in optionsMeasurand"
+              :key="index"
+              :value="item"
+              :label="item"/>
+          </el-select>
+        </div>
         <el-table fit :data="listData">
           <el-table-column
             label="Timestamp"
@@ -228,33 +240,50 @@
         pageSize: 10,
         details: {},
         listData: [],
-        loading: true
+        loading: false,
+        measurand: "",
+        optionsMeasurand: []
       }
     },
     created() {
+      this.getMeasuOptions()
       this.getDeatil()
     },
     methods: {
-      async getDeatil() {
-        try {
-          const data = await api.getTransactionDetail(this.$route.params.id)
-          if (data.success) {
-            this.details = data.data
+      getMeasuOptions() {
+        api.getMeasurandOptions().then(res => {
+          if (res.data) {
+            this.optionsMeasurand = res.data
+          }
+        }).catch(err => {
+          
+        })
+      },
+      getDeatil() {
+        this.loading = true;
+        api.getTransactionDetail({
+          transactionPk: this.$route.params.id,
+          measurand: this.measurand
+        }).then(res => {
+          if (res.data) {
+            this.details = res.data
             if (this.details.duration) {
               this.details.duration = Number((this.details.duration * 60).toFixed(2))
             }
             if (this.details.transactionMeters && this.details.transactionMeters.length) {
               this.handlePageChange()
+            } else {
+              this.listData = []
             }
           }
-          this.loading = false
-        } catch(e) {
-          this.loading = false
+        }).catch(err => {
           this.$message({
             type: 'error',
-            message: e
+            message: err
           })
-        }
+        }).finally(() => {
+          this.loading = false
+        })
       },
       handlePageChange() {
         this.listData = []