vbea 3 vuotta sitten
vanhempi
sitoutus
8e4b51bb04

+ 6 - 3
Strides-APP/app/pages/home/Home.js

@@ -272,9 +272,11 @@ export default class HomePage extends Component {
    * @param {boolean} first 是否初始化
    */
   getStationList(region, first) {
-    Dialog.showProgressDialog('Loading...');
+    if (!isIOS)
+      Dialog.showProgressDialog('Loading...');
     apiStation.getAllStation(this.filter).then(res => {
-      Dialog.dismissLoading();
+      if (!isIOS)
+        Dialog.dismissLoading();
       if (res.data.sites) {
         const list = [];
         res.data.sites.forEach(item => {
@@ -308,7 +310,8 @@ export default class HomePage extends Component {
         }
       }
     }).catch(err => {
-      Dialog.dismissLoading();
+      if (!isIOS)
+        Dialog.dismissLoading();
       toastShort(err);
       this.setState({
         stopList: []

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

@@ -21,7 +21,7 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item label="Service Provider:" v-if="reportFilter.reportType !== 'MTU'">
+          <el-form-item label="Service Provider:" v-if="reportFilter.reportType !== 'MTU' && reportFilter.reportType !== 'MSUR'">
             <el-select v-model="reportFilter.providerPk">
               <el-option
                 v-for="serviceProvider in serviceProviderOptions"
@@ -31,6 +31,21 @@
               ></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="Site:" v-if="reportFilter.reportType == 'MSUR'">
+            <el-select
+              class="add-text"
+              filterable
+              remote
+              v-model="reportFilter.sitePk"
+              :remote-method="(s) => getSiteOptions(s)"
+              placeholder="Select with search">
+              <el-option
+                v-for="(item, index) in siteOptions"
+                :key="index"
+                :label="item.siteName"
+                :value="item.sitePk"/>
+            </el-select>
+          </el-form-item>
         </div>
 
         <div class="row">
@@ -153,6 +168,7 @@
 
 <script>
 import api from '@/http/api/dashboard'
+import site from '@/http/api/site'
 import reports from '@/http/api/reports'
 
 // waves directive
@@ -185,11 +201,13 @@ export default {
     return {
       loading: false,
       regenbtn: false,
+      siteOptions: [],
       reportTypeOptions: [],
       serviceProviderOptions: [],
       monthOptions: [],
       yearOptions: [],
       reportFilter: {
+        sitePk: "",
         reportType: '',
         providerPk: '',
         year: ''+new Date().getFullYear(),
@@ -210,6 +228,7 @@ export default {
         this.getServiceProviderTypeOptions(),
         this.getMonthOptions(),
         this.getReportTypeOptions(),
+        this.getSiteOptions()
       ]).then(() => {
         this.loading = false
       })
@@ -262,6 +281,13 @@ export default {
           }
         })
     },
+    getSiteOptions(search) {
+      site.getAllSiteList({siteName: search ?? ""}).then(res => {
+        if (res.data && res.data.length > 0) {
+          this.siteOptions = res.data
+        }
+      });
+    },
     handlePageChange(value) {
       this.loading = true
       const { limit, page } = value

+ 32 - 22
Strides-Admin/src/views/site/AddSite.vue

@@ -35,6 +35,24 @@
                   v-model="siteForm.siteInformation.longitude"
                   class="input-text" />
             </el-form-item>
+            <el-form-item
+              prop="siteInformation.type"
+              label="Type:">
+              <div class="type-row" v-for="(item, index) in siteTypeTable">
+                <el-time-picker
+                  v-model="item.startTime"
+                  format="HH:mm"
+                  value-format="HH:mm"
+                  :placeholder="item.label"
+                  :disabled="isSiteTypeEnable(index)"/>
+                <el-time-picker
+                  v-model="item.endTime"
+                  format="HH:mm"
+                  value-format="HH:mm"
+                  placeholder="End Time"
+                  :disabled="isSiteTypeEnable(index)"/>
+              </div>
+            </el-form-item>
           </el-col>
 
           <el-col :span="12">
@@ -94,30 +112,19 @@
                 style="margin-left: 5px;"
                 v-model="siteForm.idle.enableIdleFee"/>
             </div>
+            <div class="flex">
+              <el-form-item
+                label-width="130px"
+                label="Carpark Code:"
+                class="flex-item flex">
+                <el-input
+                  v-model="siteForm.additionalInformation.carParkCode"
+                  class="input-text" />
+              </el-form-item>
+            </div>
           </el-col>
         </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item
-              prop="siteInformation.type"
-              label="Type:">
-              <div class="type-row" v-for="(item, index) in siteTypeTable">
-                <el-time-picker
-                  v-model="item.startTime"
-                  format="HH:mm"
-                  value-format="HH:mm"
-                  :placeholder="item.label"
-                  :disabled="isSiteTypeEnable(index)"/>
-                <el-time-picker
-                  v-model="item.endTime"
-                  format="HH:mm"
-                  value-format="HH:mm"
-                  placeholder="End Time"
-                  :disabled="isSiteTypeEnable(index)"/>
-              </div>
-            </el-form-item>
-          </el-col>
-        </el-row>
+        
         <div class="sparator"></div>
         <div class="section-title">
           EMAIL
@@ -736,6 +743,7 @@ export default {
         additionalInformation: {
           operatingHours: '',
           parkingFee: '',
+          carParkCode: "",
           additionalNotes: '',
           endlessService: false,
           free: false,
@@ -1198,6 +1206,7 @@ export default {
       const {
         free,
         parkingFee,
+        carParkCode,
         endlessService,
         additionalNotes,
         operatingHours,
@@ -1240,6 +1249,7 @@ export default {
         endlessService,
         operatingHours,
         parkingFee,
+        carParkCode,
         additionalNotes,
         loadBalancing: this.balancingForm.loadBalancing,
         staticMaxAmpere: this.balancingForm.staticMaxAmpere,

+ 34 - 22
Strides-Admin/src/views/site/UpdateSite.vue

@@ -55,6 +55,24 @@
                     :value="item.value" />
               </el-select>
             </el-form-item-->
+            <el-form-item
+              prop="siteInformation.type"
+              label="Type:">
+              <div class="type-row" v-for="(item, index) in siteTypeTable">
+                <el-time-picker
+                  v-model="item.startTime"
+                  format="HH:mm"
+                  value-format="HH:mm"
+                  :placeholder="item.label"
+                  :disabled="isSiteTypeEnable(index)"/>
+                <el-time-picker
+                  v-model="item.endTime"
+                  format="HH:mm"
+                  value-format="HH:mm"
+                  placeholder="End Time"
+                  :disabled="isSiteTypeEnable(index)"/>
+              </div>
+            </el-form-item>
           </el-col>
 
           <el-col :span="12">
@@ -119,30 +137,19 @@
                 style="margin-left: 5px;"
                 v-model="updateSiteModel.idle.enableIdleFee"/>
             </div>
+            <div class="flex">
+              <el-form-item
+                label-width="130px"
+                label="Carpark Code:"
+                class="flex-item flex">
+                <el-input
+                  v-model="updateSiteModel.additionalInformation.carParkCode"
+                  class="input-text" />
+              </el-form-item>
+            </div>
           </el-col>
         </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item
-              prop="siteInformation.type"
-              label="Type:">
-              <div class="type-row" v-for="(item, index) in siteTypeTable">
-                <el-time-picker
-                  v-model="item.startTime"
-                  format="HH:mm"
-                  value-format="HH:mm"
-                  :placeholder="item.label"
-                  :disabled="isSiteTypeEnable(index)"/>
-                <el-time-picker
-                  v-model="item.endTime"
-                  format="HH:mm"
-                  value-format="HH:mm"
-                  placeholder="End Time"
-                  :disabled="isSiteTypeEnable(index)"/>
-              </div>
-            </el-form-item>
-          </el-col>
-        </el-row>
+        
         <div class="sparator"></div>
         <div class="section-title">
           EMAIL
@@ -707,6 +714,7 @@ export default {
         additionalInformation: {
           operatingHours: '',
           parkingFee: '',
+          carParkCode: '',
           additionalNotes: '',
           endlessService: false,
           free: false,
@@ -1007,6 +1015,7 @@ export default {
             const {
               free,
               parkingFee,
+              carParkCode,
               endlessService,
               additionalNotes,
               operatingHours,
@@ -1039,6 +1048,7 @@ export default {
 
             this.updateSiteModel.additionalInformation.free = free
             this.updateSiteModel.additionalInformation.parkingFee = parkingFee
+            this.updateSiteModel.additionalInformation.carParkCode = carParkCode
             this.updateSiteModel.additionalInformation.endlessService = endlessService
             this.updateSiteModel.additionalInformation.additionalNotes = additionalNotes
             this.updateSiteModel.additionalInformation.operatingHours = operatingHours
@@ -1465,6 +1475,7 @@ export default {
       const {
         free,
         parkingFee,
+        carParkCode,
         endlessService,
         additionalNotes,
         operatingHours,
@@ -1473,6 +1484,7 @@ export default {
         sitePk: this.selectedSite.sitePk, 
         free,
         parkingFee,
+        carParkCode,
         endlessService,
         additionalNotes,
         operatingHours,