feat: Completed the submit function in the task processing dialog 87/99187/1
authorcyuamber <xuranyjy@chinamobile.com>
Thu, 5 Dec 2019 06:33:09 +0000 (14:33 +0800)
committercyuamber <xuranyjy@chinamobile.com>
Thu, 5 Dec 2019 06:33:21 +0000 (14:33 +0800)
Change-Id: I2ab002ce9876687921684f4834908701d98b0d1e
Issue-ID: USECASEUI-352
Signed-off-by: cyuamber <xuranyjy@chinamobile.com>
usecaseui-portal/src/app/core/services/slicingTaskServices.ts
usecaseui-portal/src/app/mock/json/PUT_task_auditInfo.json [new file with mode: 0644]
usecaseui-portal/src/app/views/services/slicing-management/slicing-task-management/slicing-task-model/slicing-task-model.component.html
usecaseui-portal/src/app/views/services/slicing-management/slicing-task-management/slicing-task-model/slicing-task-model.component.ts
usecaseui-portal/src/app/views/services/slicing-management/slicing-task-management/slicing-task-model/subnet-params-model/subnet-params-model.component.html
usecaseui-portal/src/app/views/services/slicing-management/slicing-task-management/slicing-task-model/subnet-params-model/subnet-params-model.component.ts
usecaseui-portal/src/constants/constants.ts

index fffa580..44d87cc 100644 (file)
@@ -28,6 +28,7 @@ export class SlicingTaskServices {
         slicingInstance: this.baseUrl + '/resource/nsi/instances/pageNo/{pageNo}/pageSize/{pageSize}',\r
         slicingSubnetInstance: this.baseUrl + '/resource/nsi/{nsiId}/nssiInstances',\r
         subnetInContext: this.baseUrl + '/resource/nssi/{environmentContext}/instances/pageNo/{pageNo}/pageSize/{pageSize}',\r
+        submitSlicing: this.baseUrl + '/task/auditInfo',    \r
         //slicing-business-management\r
         slicingBusinessList:this.baseUrl+"/resource/business/pageNo/{pageNo}/pageSize/{pageSize}",\r
         slicingBusinesQueryOfStatus:this.baseUrl+"/resource/{businessStatus}/business/pageNo/{pageNo}/pageSize/{pageSize}",\r
@@ -76,6 +77,9 @@ export class SlicingTaskServices {
                         .replace('{pageSize}', pageSize);\r
         return this.http.get<any>(url);\r
     }\r
+    submitSlicing (reqbody) {\r
+        return this.http.put<any>(this.url.submitSlicing, reqbody)\r
+    }\r
 \r
     // Get slicing business list\r
     getSlicingBusinessList (paramsObj,isSelect: boolean) {\r
diff --git a/usecaseui-portal/src/app/mock/json/PUT_task_auditInfo.json b/usecaseui-portal/src/app/mock/json/PUT_task_auditInfo.json
new file mode 100644 (file)
index 0000000..7555563
--- /dev/null
@@ -0,0 +1,7 @@
+{\r
+    "result_header": {\r
+        "result_code": "200",\r
+        "result_message": "Operation result message."\r
+    },\r
+    "result_body": {}\r
+}
\ No newline at end of file
index e2c5561..6c2560a 100644 (file)
       </nz-list-item>
     </nz-list>
   </div>
-  <app-subnet-params-model [showModel]="isShowParams" [detailData]="params" [title]="paramsTitle"
-    (cancel)="isShowParams=$event"></app-subnet-params-model>
+  <app-subnet-params-model 
+    [showModel]="isShowParams" 
+    [detailData]="params" 
+    [title]="paramsTitle" 
+    (cancel)="isShowParams=$event" 
+    (paramsDataChange)="changeParams($event)"
+  >
+  </app-subnet-params-model>
 
 </nz-modal>
\ No newline at end of file
index 5e6fd98..d9c1ec3 100644 (file)
@@ -18,9 +18,9 @@ export class SlicingTaskModelComponent implements OnInit {
   // 业务需求列表
   businessList: object[] = BUSINESS_REQUIREMENT;
   // 配置审核详情
-  checkDetail: object[] = [{}];
+  checkDetail: any[] = [{}];
   //业务需求信息
-  businessRequirement: object[] = [{}];
+  businessRequirement: any[] = [];
   //匹配NST信息 
   NSTinfo: object[] = [{}];
   // 共享切片实例
@@ -70,7 +70,15 @@ export class SlicingTaskModelComponent implements OnInit {
     this.http.getAuditInfo(this.taskId).subscribe( res => {
       const { result_header: { result_code } } = res;
       if (+result_code === 200) {
-        const { task_id, task_name, create_timer, processing_status, business_demand_info, nst_info, nsi_nssi_info, business_demand_info: { service_snssai } } = res.result_body;
+        const { 
+          task_id, 
+          task_name, 
+          create_time, 
+          processing_status, 
+          business_demand_info, 
+          nst_info, nsi_nssi_info, 
+          business_demand_info: { service_snssai } 
+        } = res.result_body;
         const { 
           suggest_nsi_id, 
           suggest_nsi_name, 
@@ -97,9 +105,10 @@ export class SlicingTaskModelComponent implements OnInit {
           cn_area_traffic_cap_ul
         } = nsi_nssi_info;
         // 处理配置审核详情数据
-        this.checkDetail = [{ task_id, task_name, create_timer, processing_status, service_snssai }];
+        this.checkDetail = [{ task_id, task_name, create_time, processing_status, service_snssai }];
         // 业务需求信息数据
         this.businessRequirement = [business_demand_info];
+        // 匹配NST信息
         this.NSTinfo = [nst_info];
         // 共享切片实例
         this.selectedServiceId = suggest_nsi_id;
@@ -216,7 +225,6 @@ export class SlicingTaskModelComponent implements OnInit {
   }
 
   restSubnetInstance (instance: any): void {
-    if (!this.isDisabled) return;
     instance.slicingId = '';
     instance.slicingName = '';
   }
@@ -227,13 +235,38 @@ export class SlicingTaskModelComponent implements OnInit {
     this.params = item.params
   }
 
+  changeParams (params: any): void {
+    const index = this.paramsTitle === '无线域' ? 0 : (this.paramsTitle === '传输域' ? 1 : 2);
+    this.slicingSubnet[index].params = params
+  }
+
   handleCancel() {
     this.showDetail = false;
     this.cancel.emit(this.showDetail);
   }
   handleOk() {
-    this.handleCancel();
-    // 对应操作逻辑未编写
-
+    const { selectedServiceId, selectedServiceName, slicingSubnet, checkDetail, businessRequirement, NSTinfo } = this;
+    const nsi_nssi_info: object = {
+      suggest_nsi_id:  selectedServiceId,
+      suggest_nsi_name: selectedServiceName,
+      an_suggest_nssi_id: slicingSubnet[0].slicingId,
+      an_suggest_nssi_name: slicingSubnet[0].slicingName,
+      ...slicingSubnet[0].params,
+      tn_suggest_nssi_id: slicingSubnet[1].slicingId,
+      tn_suggest_nssi_name: slicingSubnet[1].slicingName,
+      ...slicingSubnet[1].params,
+      cn_suggest_nssi_id: slicingSubnet[2].slicingId,
+      cn_suggest_nssi_name: slicingSubnet[2].slicingName,
+      ...slicingSubnet[2].params,
+    }
+    let reqBody = {...checkDetail[0], business_demand_info: businessRequirement[0], nst_info: NSTinfo[0], nsi_nssi_info};
+    delete reqBody.service_snssai;
+    this.http.submitSlicing(reqBody).subscribe (res => {
+      const { result_header: { result_code } } = res;
+      if (+result_code === 200) {
+        console.log('成功提交')
+        this.handleCancel();
+      }
+    })
   }
 }
index 4d8e54b..1dfc633 100644 (file)
@@ -9,13 +9,18 @@
                 <div *ngIf="item.key === 'an_coverage_area_ta_list'">
                     <div *ngFor="let area of areaList; let i = index">
                         <nz-form-control [nzSpan]="4" [nzOffset]=" i && !ind ? 5 : 0"  class="subnet_params_area" *ngFor="let item of area; let ind = index">
-                            <nz-select [(ngModel)]="item.selected" [name]="'areaList'+i+'_'+ind"> 
+                            <nz-select [(ngModel)]="item.selected" [name]="'area' +i + ind" (nzOpenChange)="handleChange(area, item)" (ngModelChange)="handleChangeSelected(area,item)"> 
                                 <nz-option [nzValue]="op.name" *ngFor="let op of item.options" [nzLabel]="op.name" ></nz-option>
                             </nz-select>
                         </nz-form-control>
-                        <button nz-button nzType="primary" nzSize="small" *ngIf="!i && !ind" class="subnet_params_button" (click)="creatAreaList()">
-                            <i nz-icon class="anticon anticon-plus subnet_params_icon"></i>
-                        </button>
+                        <nz-form-control [nzSpan]="1" [nzOffset]="1">
+                            <button nz-button nzType="primary" nzSize="small"  class="subnet_params_button"  *ngIf="!i" (click)="creatAreaList()">
+                                <i nz-icon class="anticon anticon-plus subnet_params_icon"></i>
+                            </button>
+                            <button nz-button nzType="primary" nzSize="small"  class="subnet_params_button"  *ngIf="i" (click)="deleteAreaList(i)">
+                                <i nz-icon class="anticon anticon-minus subnet_params_icon"></i>
+                            </button>
+                        </nz-form-control>
                     </div>
                     
                 </div>
             </nz-form-item>
         </form>
         <form nz-form *ngIf="title === '核心域'">
-                <nz-form-item *ngFor="let item of coreFormItems">
-                    <nz-form-label  [nzSpan]="10" nzRequired [nzFor]="item.key">{{item.title}}</nz-form-label>
-                    <nz-form-control [nzSpan]="10">
-                        <input nz-input [(ngModel)]="detailData[item.key]" [name]="item.key" [id]="item.key"/>
-                    </nz-form-control>
-                </nz-form-item>
-            </form>
+            <nz-form-item *ngFor="let item of coreFormItems">
+                <nz-form-label  [nzSpan]="10" nzRequired [nzFor]="item.key">{{item.title}}</nz-form-label>
+                <nz-form-control [nzSpan]="10" >
+                    <input nz-input [(ngModel)]="detailData[item.key]" [name]="item.key" [id]="item.key" [readOnly]="item.title === 'S-NSSAI'" *ngIf="item.title !== '共享等级' && item.title !== '游牧性'"/>
+                    <nz-radio-group [name]="item.key" [(ngModel)]="detailData[item.key]" *ngIf="item.title === '共享等级'">
+                        <label nz-radio [nzValue]="option.key" *ngFor="let option of item.options">{{option.title}}</label>
+                    </nz-radio-group>
+                    <nz-select [name]="item.key" [(ngModel)]="detailData[item.key]" *ngIf=" item.title === '游牧性'">
+                        <nz-option [nzValue]="option.key" *ngFor="let option of item.options" [nzLabel]="option.title"></nz-option>
+                    </nz-select>
+                </nz-form-control>
+
+            </nz-form-item>
+        </form>
 
     </div>
 </nz-modal>
index 1a3a194..92c50d1 100644 (file)
@@ -1,5 +1,5 @@
 import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
-import { WIRELESS_FORM_ITEMS, TRANSFRER_FORM_ITEMS, CORE_FORM_ITEMS } from '../.../../../../../../../../constants/constants'
+import { WIRELESS_FORM_ITEMS, TRANSFRER_FORM_ITEMS, CORE_FORM_ITEMS, ADDRESS } from '../.../../../../../../../../constants/constants'
 
 @Component({
        selector: 'app-subnet-params-model',
@@ -12,6 +12,7 @@ export class SubnetParamsModelComponent implements OnInit {
        @Input() detailData: any;
        @Input() title: string;
        @Output() cancel = new EventEmitter<boolean>();
+       @Output() paramsDataChange = new EventEmitter<any>();
 
        transferFormItems = TRANSFRER_FORM_ITEMS;
        coreFormItems = CORE_FORM_ITEMS;
@@ -32,8 +33,17 @@ export class SubnetParamsModelComponent implements OnInit {
                let areaList = [...this.detailData.an_coverage_area_ta_list];
                this.areaList = areaList.map ( (item: any) => {
                        let arr = item.split(';');
-                       item = arr.map( ite => {
-                               let obj: any = {};
+                       item = arr.map( (ite, index) => {
+                               let key: string;
+                               if (!index) {
+                                       key = 'province';
+                               } else if (index === 1){
+                                       key = 'city'
+                               } else {
+                                       key = 'district'
+                               }
+                               const obj: any = {};
+                               obj.key = key;
                                obj.selected = ite
                                obj.options = [{name: ite, id: ite}]
                                return obj
@@ -42,8 +52,61 @@ export class SubnetParamsModelComponent implements OnInit {
                })
        }
 
-       creatAreaList () {
-               
+       creatAreaList (): void {
+               let arr = [
+                       {
+                               key: 'province',
+                               selected: '',
+                               options: []
+                       },
+                       {
+                               key: 'city',
+                               selected: '',
+                               options: []
+                       },
+                       {
+                               key: 'district',
+                               selected: '',
+                               options: []
+                       }
+               ]
+               this.areaList.push(arr)
+       }
+
+       deleteAreaList (index: number): void {
+               this.areaList.splice(index,1);
+       }
+
+       handleChange(area: any[], areaItem: any): void{
+               if (areaItem.key === 'province' && areaItem.options.length <= 1) {
+                       areaItem.options = ADDRESS;
+               } else if (areaItem.key === 'city' && areaItem.options.length <= 1) {
+                       ADDRESS.forEach( item => {
+                               if(item.name === area[0].selected) {
+                                       areaItem.options = item.city;
+                               }
+                       })
+               }else if (areaItem.key === 'district' && areaItem.options.length <= 1) {
+                       ADDRESS.forEach( (item: any) => {
+                               item.city.forEach(city => {
+                                       if (city.name === area[1].selected) {
+                                               areaItem.options = city.county;
+                                       }
+                               })
+                       })
+               }
+       }
+
+       handleChangeSelected(area: any[], areaItem: any) {
+               if (areaItem.key === 'province') {
+                       area[1].selected = ''
+                       area[1].options = [];
+                       area[2].selected = '';
+                       area[2].options = [];
+               } else if (areaItem.key === 'city') {
+                       area[2].selected = '';
+                       area[2].options = [];
+               }
        }
 
        handleCancel() {
@@ -52,6 +115,21 @@ export class SubnetParamsModelComponent implements OnInit {
        }
 
        handleOk(): void {
+               let params: object;
+               if (this.title === '无线域') {
+                       const an_coverage_area_ta_list: string[] = [];
+                       this.areaList.forEach( item => {
+                               let str: string = '';
+                               item.forEach( area => {
+                                       str += area.selected + ';';
+                               })
+                               an_coverage_area_ta_list.push(str.substring(0, str.length-1));
+                       })
+                       params = {...this.detailData, an_coverage_area_ta_list}
+               } else {
+                       params = {...this.detailData}
+               }
+               this.paramsDataChange.emit(params)
                this.handleCancel()
        }
 
index d4a91ea..e8ab5c4 100644 (file)
@@ -18,87 +18,6 @@ export const TASK_PROCESSING_STATUS = [
 ]\r
 \r
 export const BUSINESS_REQUIREMENT = [\r
-       {\r
-               title: '切片业务名称',\r
-               key: 'service_name'\r
-       },\r
-       {\r
-               title: 'S-NSSAI',\r
-               key: 'service_snssai'\r
-       },\r
-       {\r
-               title: '用户下行带宽(Mbps)',\r
-               key: 'exp_data_rate_dl'\r
-       },\r
-       {\r
-               title: '用户上行带宽(Mbps)',\r
-               key: 'exp_data_rate_u'\r
-       },\r
-       {\r
-               title: '游牧性',\r
-               key: 'ue_mobility_level'\r
-       },\r
-       {\r
-               title: '时延(ms)',\r
-               key: 'latency'\r
-       },\r
-       {\r
-               title: '使用期限(月)',\r
-               key: 'use_interval'\r
-       },\r
-       {\r
-               title: '区域',\r
-               key: 'coverage_area_ta_list'\r
-       },\r
-       {\r
-               title: '激活因子(%)',\r
-               key: 'activity_factor'\r
-       },\r
-       {\r
-               title: '共享等级',\r
-               key: 'resource_sharing_level'\r
-       },\r
-       {\r
-               title: '上行区域流量密度(Mbps/km )',\r
-               key: 'area_traffic_cap_ul'\r
-       },\r
-       {\r
-               title: '连接规模数',\r
-               key: 'max_number_of_ues'\r
-       },\r
-       {\r
-               title: '下行区域流量密度(Mbps/km )',\r
-               key: 'area_traffic_cap_dl'\r
-       }\r
-] \r
-\r
-export const WIRELESS_FORM_ITEMS = [\r
-       {\r
-               title: '时延(ms)',\r
-               key: 'an_latency'\r
-       },\r
-       {\r
-               title: '5QI',\r
-               key: 'an_5qi'\r
-       },\r
-       {\r
-               title: '覆盖小区列表',\r
-               key: 'an_coverage_area_ta_list'\r
-       }\r
-]\r
-\r
-export const TRANSFRER_FORM_ITEMS = [\r
-       {\r
-               title: '时延(ms)',\r
-               key: 'tn_latency'\r
-       },\r
-       {\r
-               title: '带宽',\r
-               key: 'tn_bandwidth'\r
-       }\r
-]\r
-\r
-export const CORE_FORM_ITEMS =         [\r
        [\r
                {\r
                        title: '切片业务名称',\r
@@ -132,7 +51,7 @@ export const CORE_FORM_ITEMS =       [
                        title: '使用期限(月)',\r
                        key: 'use_interval'\r
                },\r
-               \r
+\r
                {\r
                        title: '激活因子(%)',\r
                        key: 'activity_factor'\r
@@ -161,151 +80,152 @@ export const CORE_FORM_ITEMS =   [
                        title: '区域',\r
                        key: 'coverage_area_ta_list'\r
                },\r
-       ]\r
+       ],\r
+       \r
+       \r
+] \r
+\r
+export const WIRELESS_FORM_ITEMS = [\r
+       {\r
+               title: '时延(ms)',\r
+               key: 'an_latency'\r
+       },\r
+       {\r
+               title: '5QI',\r
+               key: 'an_5qi'\r
+       },\r
+       {\r
+               title: '覆盖小区列表',\r
+               key: 'an_coverage_area_ta_list'\r
+       }\r
+]\r
+\r
+export const TRANSFRER_FORM_ITEMS = [\r
+       {\r
+               title: '时延(ms)',\r
+               key: 'tn_latency'\r
+       },\r
+       {\r
+               title: '带宽',\r
+               key: 'tn_bandwidth'\r
+       }\r
+]\r
+\r
+export const CORE_FORM_ITEMS =         [\r
+       {\r
+               title: 'S-NSSAI',\r
+               key: 'cn_service_snssai'\r
+       },\r
+       {\r
+               title: '共享等级',\r
+               key: 'cn_resource_sharing_level',\r
+               options: [\r
+                       {\r
+                               title: '共享',\r
+                               key: 'shared'\r
+                       },\r
+                       {\r
+                               title: '独享',\r
+                               key: 'no-shared'\r
+                       }\r
+               ]\r
+       },\r
+       {\r
+               title: '游牧性',\r
+               key: 'cn_ue_mobility_level',\r
+               options: [\r
+                       {\r
+                               title: '不可游牧',\r
+                               key: 'stageary'\r
+                       },\r
+                       {\r
+                               title: '固定接入',\r
+                               key: 'nomadic'\r
+                       },\r
+                       {\r
+                               title: '限定范围内可游牧',\r
+                               key: 'spatially restricted mobility'\r
+                       },\r
+                       {\r
+                               title: '自由游牧',\r
+                               key: 'fully mobility'\r
+                       }\r
+               ]\r
+       },\r
+       {\r
+               title: '时延(ms)',\r
+               key: 'cn_latency'\r
+       },\r
+       {\r
+               title: '连接规模数',\r
+               key: 'cn_max_number_of_ues'\r
+       },\r
+       {\r
+               title: '活动因子(%)',\r
+               key: 'cn_activity_factor'\r
+       },\r
+       {\r
+               title: '用户下行体验速率(Mbps)',\r
+               key: 'cn_exp_data_rate_dl'\r
+       },\r
+       {\r
+               title: '用户上行体验速率(Mbps)',\r
+               key: 'cn_exp_data_rate_ul'\r
+       },\r
+       {\r
+               title: '下行区域流量密度(Mbps/km )',\r
+               key: 'cn_area_traffic_cap_dl'\r
+       },\r
+       {\r
+               title: '下行区域流量密度(Mbps/km )',\r
+               key: 'cn_area_traffic_cap_ul'\r
+       }\r
 ]\r
 \r
-export const ADDRESS = {\r
-    "result_header": {\r
-        "result_code": 200,\r
-        "result_message": "Successfully"\r
-    },\r
-    \r
-    "result_body": {\r
-        "province": [\r
-            {\r
-                "id": "1",\r
-                "name": "北京",\r
-                "city": [\r
-                    {\r
-                        "id": "101",\r
-                        "name": "北京市",\r
-                        "county": [\r
-                            {\r
-                                "id": "1001",\r
-                                "name": "海淀区",\r
-                                "street": [\r
-                                    {\r
-                                        "id": "100101",\r
-                                        "name": "万寿路街道"\r
-                                    },\r
-                                    {\r
-                                        "id": "100102",\r
-                                        "name": "中关村街道"\r
-                                    },\r
-                                    {\r
-                                        "id": "100103",\r
-                                        "name": "海淀街道"\r
-                                    },\r
-                                    {\r
-                                        "id": "100104",\r
-                                        "name": "西三旗街道"\r
-                                    }\r
-                                ]\r
-                            },\r
-                            {\r
-                                "id": "1002",\r
-                                "name": "西城区",\r
-                                "street": [\r
-                                    {\r
-                                        "id": "100201",\r
-                                        "name": "广安门内街道"\r
-                                    },\r
-                                    {\r
-                                        "id": "100202",\r
-                                        "name": "广安门外街道"\r
-                                    },\r
-                                    {\r
-                                        "id": "100203",\r
-                                        "name": "西长安街街道"\r
-                                    },\r
-                                    {\r
-                                        "id": "100204",\r
-                                        "name": "金融街街道"\r
-                                    }\r
-                                ]\r
-                            },\r
-                            {\r
-                                "id": "1003",\r
-                                "name": "昌平区",\r
-                                "street": [\r
-                                    {\r
-                                        "id": "100301",\r
-                                        "name": "城北街道"\r
-                                    },\r
-                                    {\r
-                                        "id": "100302",\r
-                                        "name": "城南街道"\r
-                                    },\r
-                                    {\r
-                                        "id": "100303",\r
-                                        "name": "天通苑北街道"\r
-                                    },\r
-                                    {\r
-                                        "id": "100304",\r
-                                        "name": "天通苑南街道"\r
-                                    }\r
-                                ]\r
-                            }\r
-                        ]\r
-                    }\r
-                ]\r
-            },\r
-            {\r
-                "id": "2",\r
-                "name": "上海",\r
-                "city": [{\r
-                    "id": "201",\r
-                    "name": "上海市",\r
-                    "county": [{\r
-                            "id": "2001",\r
-                            "name": "浦东新区",\r
-                            "street": [\r
-                                {\r
-                                    "id": "200101",\r
-                                    "name": "陆家嘴街道"\r
-                                },\r
-                                {\r
-                                    "id": "200102",\r
-                                    "name": "周家渡街道"\r
-                                },\r
-                                {\r
-                                    "id": "200103",\r
-                                    "name": "塘桥街道"\r
-                                },\r
-                                {\r
-                                    "id": "200104",\r
-                                    "name": "南码头路街道"\r
-                                }\r
-                            ]\r
-                        },\r
-                        {\r
-                            "id": "2002",\r
-                            "name": "静安区",\r
-                            "street": [\r
-                                {\r
-                                    "id": "200201",\r
-                                    "name": "江宁路街道"\r
-                                },\r
-                                {\r
-                                    "id": "200202",\r
-                                    "name": "静安寺街道"\r
-                                },\r
-                                {\r
-                                    "id": "200203",\r
-                                    "name": "南京西路街道"\r
-                                },\r
-                                {\r
-                                    "id": "200204",\r
-                                    "name": "曹家渡街道"\r
-                                }\r
-                            ]\r
-                        }\r
-                    ]\r
-                }]\r
-            }\r
-        ]\r
-    }\r
-}\r
+export const ADDRESS = [\r
+       {\r
+               "id": "1",\r
+               "name": "北京",\r
+               "city": [\r
+                       {\r
+                               "id": "101",\r
+                               "name": "北京市",\r
+                               "county": [\r
+                                       {\r
+                                               "id": "1001",\r
+                                               "name": "海淀区",\r
+                                       },\r
+                                       {\r
+                                               "id": "1002",\r
+                                               "name": "西城区",\r
+                                       },\r
+                                       {\r
+                                               "id": "1003",\r
+                                               "name": "昌平区"\r
+                                       }\r
+                               ]\r
+                       }\r
+               ]\r
+       },\r
+       {\r
+               "id": "2",\r
+               "name": "上海",\r
+               "city": [{\r
+                       "id": "201",\r
+                       "name": "上海市",\r
+                       "county": [\r
+                               {\r
+                                       "id": "2001",\r
+                                       "name": "浦东新区",\r
+                               },\r
+                               {\r
+                                       "id": "2002",\r
+                                       "name": "静安区"\r
+                               }\r
+                       ]\r
+               }]\r
+       }\r
+]\r
 export const BUSINESS_STATUS = [\r
-    "All","activated","deactivated"\r
+       "All", "activated", "deactivated"\r
 ]
\ No newline at end of file