Просмотр исходного кода

Enhance service provider enhancement again, add OCPI party id and tenant company infomation
https://dev.wormwood.com.sg/zentao/task-view-491.html

vbea 1 год назад
Родитель
Сommit
a930e1f871

+ 176 - 82
Strides-Admin/src/views/provider2/detail.vue

@@ -7,91 +7,147 @@
       label-position="right"
       label-width="150px"
       style="width: 100%;">
-      <div class="content">
-        <div class="section-title">Service Provider</div>
-        <el-form-item
-          label="Provider Name:"
-          prop="providerName">
-          <el-input
-            class="add-text"
-            maxlength="30"
-            v-model="form.providerName"/>
-        </el-form-item>
-        <el-form-item
-          label="Country:"
-          prop="countryCode">
-          <el-select
-            v-model="form.countryCode"
-            class="add-text">
-            <el-option
-              v-for="item in options.country"
-              :key="item.countryCode"
-              :label="item.countryName"
-              :value="item.countryCode"/>
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          label="Contact Person:"
-          prop="providerContactPerson">
-          <el-input
-            class="add-text"
-            maxlength="50"
-            v-model="form.providerContactPerson"/>
-        </el-form-item>
-        <el-form-item
-          label="Contact Number:"
-          prop="providerContactPhoneNumber">
-          <div class="add-text flexc">
+      <div class="flexr">
+        <div class="content flex1">
+          <div class="section-title">Service Provider</div>
+          <el-form-item
+            label="Provider Name:"
+            prop="providerName">
+            <el-input
+              class="add-text"
+              maxlength="30"
+              v-model="form.providerName"/>
+          </el-form-item>
+          <el-form-item
+            label="Country:"
+            prop="countryCode">
             <el-select
-              style="min-width: 75px; max-width: 80px;"
-              v-model="form.providerContactCallingCode">
+              v-model="form.countryCode"
+              class="add-text">
               <el-option
                 v-for="item in options.country"
-                :key="item.callingCode"
-                :label="'+' + item.callingCode"
-                :value="item.callingCode"/>
+                :key="item.countryCode"
+                :label="item.countryName"
+                :value="item.countryCode"/>
             </el-select>
+          </el-form-item>
+          <el-form-item
+            label="Party ID:"
+            prop="partyId">
+            <el-input
+              class="add-text"
+              maxlength="3"
+              v-model="form.partyId"
+              @blur="changePartyId"/>
+          </el-form-item>
+          <el-form-item
+            label="Contact Person:"
+            prop="providerContactPerson">
             <el-input
-              v-model="form.providerContactPhoneNumber"
-              style="margin-left: 10px;"
-              maxlength="15"/>
-          </div>
-        </el-form-item>
-        <el-form-item
-          label="Payment Gateway:"
-          prop="paymentGateway">
-          <el-select
-            v-model="form.paymentGateway"
-            class="add-text">
-            <el-option
-              v-for="item in options.payment"
-              :key="item.key"
-              :label="item.value"
-              :value="item.key"/>
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          label="Provider Logo:"
-          class="is-required">
-          <el-upload
-            class="logo-upload"
-            action
-            :limit="1"
-            :show-file-list="false"
-            :file-list="[]"
-            :on-remove="file => removeLogo(file)"
-            :http-request="file => uploadLogo(file)"
-            accept=".jpg,.jpeg,.png,.gif,.JPG,.JPEG"
-            v-loading="loading.upload">
-            <el-image
-              v-if="logos.length > 0"
-              :src="logos[0].url"
-              title="Click to update logo"/>
-            <i v-else
-              class="el-icon-plus avatar-uploader-icon"
-              title="Click to select file"/>
-          </el-upload>
-        </el-form-item>
+              class="add-text"
+              maxlength="50"
+              v-model="form.providerContactPerson"/>
+          </el-form-item>
+          <el-form-item
+            label="Contact Number:"
+            prop="providerContactPhoneNumber">
+            <div class="add-text flexc">
+              <el-select
+                style="min-width: 75px; max-width: 80px;"
+                v-model="form.providerContactCallingCode">
+                <el-option
+                  v-for="item in options.country"
+                  :key="item.callingCode"
+                  :label="'+' + item.callingCode"
+                  :value="item.callingCode"/>
+              </el-select>
+              <el-input
+                v-model="form.providerContactPhoneNumber"
+                style="margin-left: 10px;"
+                maxlength="15"/>
+            </div>
+          </el-form-item>
+          <el-form-item
+            label="Payment Gateway:"
+            prop="paymentGateway">
+            <el-select
+              v-model="form.paymentGateway"
+              class="add-text">
+              <el-option
+                v-for="item in options.payment"
+                :key="item.key"
+                :label="item.value"
+                :value="item.key"/>
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            label="Provider Logo:"
+            class="is-required">
+            <el-upload
+              class="logo-upload"
+              action
+              :limit="1"
+              :show-file-list="false"
+              :file-list="[]"
+              :on-remove="file => removeLogo(file)"
+              :http-request="file => uploadLogo(file)"
+              accept=".jpg,.jpeg,.png,.gif,.JPG,.JPEG"
+              v-loading="loading.upload">
+              <el-image
+                v-if="logos.length > 0"
+                :src="logos[0].url"
+                title="Click to update logo"/>
+              <i v-else
+                class="el-icon-plus avatar-uploader-icon"
+                title="Click to select file"/>
+            </el-upload>
+          </el-form-item>
+        </div>
+        <div class="content flex1">
+          <div class="section-title">Company Details</div>
+          <el-form-item
+            label="Company Name:"
+            prop="company.companyName">
+            <el-input
+              class="add-text"
+              maxlength="50"
+              v-model="form.company.companyName"/>
+          </el-form-item>
+          <el-form-item
+            label="Company UEN:"
+            prop="company.companyUen">
+            <el-input
+              class="add-text"
+              maxlength="15"
+              v-model="form.company.companyUen"/>
+          </el-form-item>
+          <el-form-item
+            label="Company Email:"
+            prop="company.companyEmail">
+            <el-input
+              class="add-text"
+              maxlength="50"
+              v-model="form.company.companyEmail"/>
+          </el-form-item>
+          <el-form-item
+            label="Company Website:"
+            prop="company.companyWebsit">
+            <el-input
+              class="add-text"
+              maxlength="50"
+              v-model="form.company.companyWebsit"/>
+          </el-form-item>
+          <el-form-item
+            label="Company Address:"
+            prop="company.companyAddress">
+            <el-input
+              class="add-text"
+              maxlength="100"
+              v-model="form.company.companyAddress"
+              type="textarea"
+              :autosize="autoSize"/>
+          </el-form-item>
+        </div>
       </div>
       <div class="content flexcr">
         <div class="buttons">
@@ -141,6 +197,7 @@ export default {
         payment: []
       },
       form: {
+        partyId: "",
         providerPk: "",
         providerName: "",
         countryCode: setting.defaultCountry,
@@ -148,7 +205,15 @@ export default {
         paymentGateway: "",
         providerContactPerson: "",
         providerContactCallingCode: Number(setting.defaultCalling),
-        providerContactPhoneNumber: ""
+        providerContactPhoneNumber: "",
+        company: {
+          companyUen: "",
+          companyName: "",
+          companyEmail: "",
+          companyWebsit: "",
+          companyAddress: "",
+          providerCompanyPk: ""
+        }
       },
       rule: {
         providerName: {
@@ -175,9 +240,33 @@ export default {
           required: true,
           trigger: 'blur',
           message: 'Please type contact number'
+        },
+        partyId: {
+          required: true,
+          trigger: 'blur',
+          message: 'Please type party Id'
+        },
+        "company.companyName": {
+          required: true,
+          trigger: 'blur',
+          message: 'Please type company name'
+        },
+        "company.companyUen": {
+          required: true,
+          trigger: 'blur',
+          message: 'Please type company UEN'
+        },
+        "company.companyAddress": {
+          required: true,
+          trigger: 'blur',
+          message: 'Please type company address'
         }
       },
-      logos: []
+      logos: [],
+      autoSize: {
+        minRows: 3,
+        maxRows: 8
+      }
     };
   },
   created() {
@@ -311,6 +400,11 @@ export default {
           type: 'error'
         })
       });
+    },
+    changePartyId() {
+      if (this.form.partyId) {
+        this.form.partyId = this.form.partyId.toUpperCase();
+      }
     }
   }
 }

+ 5 - 0
Strides-Admin/src/views/provider2/index.vue

@@ -39,6 +39,11 @@
         prop="providerName"
         align="center"
         min-width="150"/>
+      <el-table-column
+        label="Country"
+        prop="country"
+        align="center"
+        min-width="90"/>
       <el-table-column
         label="No.of Sites"
         align="center"