summaryrefslogtreecommitdiffstats
path: root/usecaseui-portal/src/ @media only all and (prefers-color-scheme: dark) { .highlight .hll { background-color: #49483e } .highlight .c { color: #75715e } /* Comment */ .highlight .err { color: #960050; background-color: #1e0010 } /* Error */ .highlight .k { color: #66d9ef } /* Keyword */ .highlight .l { color: #ae81ff } /* Literal */ .highlight .n { color: #f8f8f2 } /* Name */ .highlight .o { color: #f92672 } /* Operator */ .highlight .p { color: #f8f8f2 } /* Punctuation */ .highlight .ch { color: #75715e } /* Comment.Hashbang */ .highlight .cm { color: #75715e } /* Comment.Multiline */ .highlight .cp { color: #75715e } /* Comment.Preproc */ .highlight .cpf { color: #75715e } /* Comment.PreprocFile */ .highlight .c1 { color: #75715e } /* Comment.Single */ .highlight .cs { color: #75715e } /* Comment.Special */ .highlight .gd { color: #f92672 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gi { color: #a6e22e } /* Generic.Inserted */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #75715e } /* Generic.Subheading */ .highlight .kc { color: #66d9ef } /* Keyword.Constant */ .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ .highlight .kn { color: #f92672 } /* Keyword.Namespace */ .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ .highlight .kt { color: #66d9ef } /* Keyword.Type */ .highlight .ld { color: #e6db74 } /* Literal.Date */ .highlight .m { color: #ae81ff } /* Literal.Number */ .highlight .s { color: #e6db74 } /* Literal.String */ .highlight .na { color: #a6e22e } /* Name.Attribute */ .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ .highlight .nc { color: #a6e22e } /* Name.Class */ .highlight .no { color: #66d9ef } /* Name.Constant */ .highlight .nd { color: #a6e22e } /* Name.Decorator */ .highlight .ni { color: #f8f8f2 } /* Name.Entity */ .highlight .ne { color: #a6e22e } /* Name.Exception */ .highlight .nf { color: #a6e22e } /* Name.Function */ .highlight .nl { color: #f8f8f2 } /* Name.Label */ .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ .highlight .nx { color: #a6e22e } /* Name.Other */ .highlight .py { color: #f8f8f2 } /* Name.Property */ .highlight .nt { color: #f92672 } /* Name.Tag */ .highlight .nv { color: #f8f8f2 } /* Name.Variable */ .highlight .ow { color: #f92672 } /* Operator.Word */ .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ .highlight .mb { color: #ae81ff } /* Literal.Number.Bin */ .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ .highlight .sa { color: #e6db74 } /* Literal.String.Affix */ .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ .highlight .sc { color: #e6db74 } /* Literal.String.Char */ .highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */ .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ .highlight .se { color: #ae81ff } /* Literal.String.Escape */ .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ .highlight .sx { color: #e6db74 } /* Literal.String.Other */ .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #a6e22e } /* Name.Function.Magic */ .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ .highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */ .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ } @media (prefers-color-scheme: light) { .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
distribution_type: 'container'
container_release_tag: '7.2.0'
project: 'integration/docker/onap-java11'
log_dir: 'integration-docker-onap-java11-docker-merge-master/40/'
ref: beaaa274cf87fc7f45673c562cfcc31cb5d2e505
containers:
    - name: 'integration-java11'
      version: 'latest'
a id='n298' href='#n298'>298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323
<!--
    Copyright (C) 2019 CMCC, Inc. and others. All rights reserved.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

            http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div class="action ant-tabs-bar">

    <span><i style="margin-right: 10px"><img src="../../../assets/images/customer.png" alt=""></i>Customer: </span>
    <nz-dropdown [nzTrigger]="'click'" [nzPlacement]="'bottomLeft'">
        <button nz-button nz-dropdown><span>{{customerSelected.name}}</span> <i class="anticon anticon-down"></i>
        </button>
        <ul nz-menu style="min-height:40px;max-height: 200px; overflow: auto;">
            <li nz-menu-item (click)="choseCustomer(item)" *ngFor="let item of customerList">
                <a title="{{item.name}}" style="max-width: 165px; overflow: hidden; text-overflow: ellipsis;">{{item.name}}</a>
            </li>
        </ul>
    </nz-dropdown>

    <span style="margin-left:40px"><i style="margin-right: 10px"><img src="../../../assets/images/service-type.png" alt=""></i>Service Type: </span>
    <nz-dropdown [nzTrigger]="'click'" [nzPlacement]="'bottomLeft'">
        <button nz-button nz-dropdown><span>{{serviceTypeSelected.name}}</span> <i class="anticon anticon-down"></i>
        </button>
        <ul nz-menu style="min-height:40px;max-height: 200px; overflow: auto;">
            <li nz-menu-item (click)="choseServiceType(item)" *ngFor="let item of serviceTypeList">
                <a title="{{item.name}}" style="max-width: 165px; overflow: hidden; text-overflow: ellipsis;">{{item.name}}</a>
            </li>
        </ul>
    </nz-dropdown>

    <button class="create" nz-button [nzType]="'primary'" (click)="createModal()"><i
            class="anticon anticon-plus" style="transform: scale(1.5);line-height: 15px;margin-right: 5px;"></i><span> Create </span>
    </button>
    <nz-modal nzWidth="428" [(nzVisible)]="isVisible" nzTitle="Service Creation" (nzOnCancel)="handleCancel()"
              (nzOnOk)="handleOk()" nzClassName="serviceCreationModel">
        <div class="select-list">
            <span style="display:inline-block;">Customer: </span>
            <nz-select style="width: 176px;float: right;" [(ngModel)]="customerSelected2.name" nzAllowClear>
                <nz-option *ngFor="let item of customerList2" [nzValue]="item.name" [nzLabel]="item.name"></nz-option>
            </nz-select>
        </div>
       <div class="select-list">
            <span style="display:inline-block;">SERVICE TYPE: </span>
            <nz-select style="width: 176px;float: right;" [(ngModel)]="serviceTypeSelected2.name" nzAllowClear (ngModelChange)="choseTemplateType()">
                <nz-option *ngFor="let item of serviceTypeList2" [nzValue]="item.name" [nzLabel]="item.name" ></nz-option>
            </nz-select>
        </div>
  		<div class="select-list">
            <span style="display:inline-block;width:70px;">TEMPLATE: </span>
            <nz-select style="width: 176px;float: right;" [(ngModel)]="template1" nzAllowClear>
                <nz-option *ngFor="let item of templates" [nzValue]="item" [nzLabel]="item.name"></nz-option>
            </nz-select>
        </div>
    </nz-modal>
</div>
<nz-layout style=" padding: 20px 32px; ">
    <ul class="top-num">
        <li *ngFor="let item of serviceMunber" class="top-list">
            <span class="round">{{item.serviceDomain}}</span>
            <div class="top-list-text">
                <span>{{item.number}}</span><br>
                <span>{{item.detailName}}</span>
            </div>
        </li>
    </ul>
    <div class="list" id="services-list" [ngClass]="{'listdisplay':listDisplay == true}">
        <nz-table *ngIf="1"
                  #nzTable [nzData]="tableData"
                  nzShowSizeChanger
                  [nzFrontPagination]="false"
                  [nzShowQuickJumper]="true"
                  [nzPageSizeOptions]="[5,10,15,20]"
                  [nzTotal]='total'
                  [(nzPageSize)]="pageSize"
                  [(nzPageIndex)]='pageIndex'
                  [nzLoading]="loading"
                  [nzSize]="'middle'"
                  [nzScroll]="{ y: '58vh' }"
                  (nzPageIndexChange)="searchData()"
                  (nzPageSizeChange)="searchData(true)">
            <thead>
            <tr>
                <th nzWidth="5%">NO</th>
                <th nzWidth="5%"></th>
                <th nzWidth="20%">Name</th>
                <th nzWidth="20%">Description</th>
                <th nzWidth="15%">Use Case</th>
                <th nzWidth="20%">Status</th>
                <th nzWidth="15%">Action</th>
            </tr>
            </thead>
            <tbody>
            <ng-template ngFor let-data [ngForOf]="nzTable.data" let-i="index">
                <tr>
                    <td>{{pageSize*(pageIndex-1) + i+1}}</td>
                    <td [nzShowExpand]="data.childServiceInstances[0]" [(nzExpand)]="data.expand"></td>
                    <td>{{data["service-instance-name"] || data.nsName}}</td>
                    <td>{{data["service-instance-id"] || data.nsInstanceId}}</td>
                    <td>
                        <p [ngClass]="{'e2eColor':data.serviceDomain=='E2E Service','nsColor':data.serviceDomain=='Network Service','ccvpnColor':data.serviceDomain=='CCVPN','sotnColor':data.serviceDomain=='SOTN','voLTEColor':data.serviceDomain=='voLTE type'}">
                            {{data.serviceDomain}}
                        </p>
                    </td>
                    <td>
              <span [ngClass]="{'active':data.statusClass=='2001','closed':data.statusClass=='Closed','onboarding':data.statusClass=='Onboarding',
                    'updating':data.statusClass=='Updating','deleting':data.statusClass=='1002','creating':data.statusClass=='1001',
                    'scaling':data.statusClass=='1003','healing':data.statusClass=='1004'}">{{data.tips}}</span>
                        <nz-progress *ngIf="data.status == 'In Progress'" [nzPercent]="data.rate" [nzShowInfo]="false"
                                     nzStatus="active"></nz-progress>
                    </td>
                    <td>
                        <i [ngClass]="{'cannotclick':data.status == 'In Progress'||(data.status=='Failed' && data.operationType=='1001')||(data.status=='Failed' && data.operationType=='1002')}"
                           class="anticon anticon-bars" (click)="serviceDetail(data)"></i>
                        <i [ngClass]="{'cannotclick':data.status == 'In Progress'}" class="anticon anticon-delete"
                           (click)="deleteModel(data)"></i>
                        <i [ngClass]="{'cannotclick':data.status == 'In Progress'}" class="anticon anticon-ellipsis"
                           (click)="iconMoreShow(data,tableData)" style="transform: rotate(90deg);"></i>

                        <ul *ngIf="data.iconMore==true " class="icon-more">
                            <li>
                                <i [ngClass]="{'cannotclick':data.serviceDomain!='E2E Service' || data.status == 'In Progress'||(data.status=='Failed' && data.operationType=='1001')||(data.status=='Failed' && data.operationType=='1002')}"
                                   class="anticon anticon-setting" (click)="scaleService(data)"></i>
                                <span>scale</span>
                            </li>
                           <li>
                               <i [ngClass]="{'cannotclick':data.status == 'In Progress'||(data.status=='Failed' && data.operationType=='1001')||(data.status=='Failed' && data.operationType=='1002')}"
                                  class="anticon anticon-cloud-upload-o" (click)="update(data)"></i>
                               <span>update</span>
                           </li>
                        </ul>
                        <!-- <i *ngIf="data.serviceDomain=='E2E Service'||data.serviceDomain=='Network Service' " class="anticon anticon-cloud-upload-o" (click)="updataService(data)"></i> -->
                        <!-- <i [ngClass]="{'cannotclick':data.status == 'processing'||data.status=='Deleting'||data.status=='Creating'||data.status=='Healing'}"
                          *ngIf="data.serviceDomain=='Network Service' " class="anticon anticon-reload" (click)="healService(data)"></i> -->
                    </td>
                </tr>
                <tr class="childtr" [nzExpand]="data.expand" *ngFor="let item of data.childServiceInstances">
                    <td></td>
                    <td></td>
                    <td>{{item["service-instance-id"] || item.nsInstanceId || item.vnfInstanceId}}</td>
                    <td>{{item["service-instance-name"] || item.nsName || item.vnfInstanceName}}</td>
                    <td>
                        <p [ngClass]="{'vnfColor':item.serviceDomain=='vnf','siteColor':item.serviceDomain=='SITE','SDWANColor':item.serviceDomain=='SDWAN'}">
                            {{item.serviceDomain}}
                        </p>
                    </td>
                    <td>
                        <span [ngClass]="{'healing':data.statusClass=='1004'}">{{data.tips}}</span>
                        <nz-progress *ngIf=" item.status == 'Healing' " [nzPercent]="item.rate"></nz-progress>
                    </td>
                    <td>
                        <i [ngClass]="{'cannotclick':data.serviceDomain!='Network Service' || data.status == 'In Progress'||(data.status=='Failed' && data.operationType=='1001')||(data.status=='Failed' && data.operationType=='1002')}"
                           class="anticon anticon-reload" (click)="healService(item)"></i>
                    </td>
                </tr>
            </ng-template>
            </tbody>
        </nz-table>

        <nz-modal nzWidth="428" [nzVisible]="scaleModelVisible" nzTitle="Scale" (nzOnCancel)="scaleCancel()"
                  (nzOnOk)="scaleOk()" nzClassName="scaleModel">
            <h3><span style="color: red">*&nbsp;</span>Are you sure Scale this instance?</h3>
            <div class="question">
                <h4>Instance ID:</h4>
                <div class="scaleModelContent" style="width: 100%">{{ thisService["service-instance-id"] || thisService["nsInstanceId"] ||
                    thisService["vnfInstanceId"]}}</div>
            </div>
            <div *ngFor="let item of e2e_nsData" style="margin-top: 20px">
                <h3>{{ item.netWorkServiceName }}</h3>
                <div class="e2eScaleContent">
                    <span class="e2eScaleLable">Scale Type:</span>
                    <nz-select style="width: 165px;" [(ngModel)]="item.scaleType">
                        <nz-option nzValue="SCALE_NS" nzLabel="SCALE_NS"></nz-option>
                        <nz-option nzValue="SCALE_VNF" nzLabel="SCALE_VNF"></nz-option>
                    </nz-select>
                </div>
               <div class="e2eScaleContent">
                   <span class="e2eScaleLable">AspectId:</span>
                   <input style="width: 165px;" nz-input [(ngModel)]="item.aspectId" placeholder="string">
               </div>
                <div class="e2eScaleContent">
                    <span class="e2eScaleLable">Number Of Steps:</span>
                    <nz-input-number style="width: 165px;" [(ngModel)]="item.numberOfSteps" [nzMin]="1" [nzMax]="100"
                                     nzPrecision=0 [nzStep]="1" nzPlaceHolder="number"></nz-input-number>
                </div>
                <div class="e2eScaleContent">
                    <span class="e2eScaleLable" >Scaling Direction:</span>
                    <nz-select style="width: 165px;" nzPlaceHolder="Chose" [(ngModel)]="item.scalingDirection">
                        <nz-option nzValue="SCALE_IN" nzLabel="SCALE_IN"></nz-option>
                        <nz-option nzValue="SCALE_OUT" nzLabel="SCALE_OUT"></nz-option>
                    </nz-select>
                </div>
            </div>
        </nz-modal>

        <nz-modal nzWidth="428" [(nzVisible)]="deleteModelVisible" nzTitle="Delete" (nzOnCancel)="deleteCancel()"
                  (nzOnOk)="deleteOk()"  nzClassName="{{thisService['serviceDomain'] == 'Network Service'?'nsdeleteModel':'deleteModel'}}">
            <h3><span style="color: red">*&nbsp;</span>Are you sure delete this instance?</h3>
            <div class="question">
                <h4>Instance Name:</h4>
                <div class="deleteModelContent">{{ thisService["service-instance-id"] ||
                    thisService["nsInstanceId"] }}</div>
            </div>
            <div class="question">
                <h4>Instance ID:</h4>
                <div class="deleteModelContent">{{ thisService["service-instance-name"] ||
                    thisService["nsInstanceName"] }}</div>
            </div>
            <div *ngIf="thisService['serviceDomain'] == 'Network Service'">
                <div class="question">
                    <h4>terminationType:</h4>
                    <nz-select style="width: 306px;" [(ngModel)]="terminationType">
                        <nz-option nzValue="graceful" nzLabel="graceful"></nz-option>
                        <nz-option nzValue="forceful" nzLabel="forceful"></nz-option>
                    </nz-select>
                </div>
                <div class="question">
                    <h4 *ngIf="terminationType=='graceful'">gracefulTerminationTimeout:</h4>
                    <input *ngIf="terminationType=='graceful'" style="width: 306px;" nz-input
                           [(ngModel)]="gracefulTerminationTimeout">
                </div>
            </div>
        </nz-modal>

        <nz-modal nzWidth="428" [nzVisible]="healModelVisible" nzTitle="Heal" (nzOnCancel)="healCancel()"
                  (nzOnOk)="healOk()" nzClassName="healModel">
            <h3><span style="color: red">*&nbsp;</span>Are you sure heal this instance?</h3>
            <div class="heal-question">
                <p class="heal-label">Instance ID: </p>
                <div class="healModelContent" title="{{ thisService['service-instance-id'] || thisService['nsInstanceId'] ||
                    thisService['vnfInstanceId']}}"> {{ thisService["service-instance-id"] || thisService["nsInstanceId"] ||
                    thisService["vnfInstanceId"]}}</div>
            </div>
            <!-- NS -->
            <div *ngIf="thisService['serviceDomain'] == 'Network Service'">
                <div class="question">
                    <p class="heal-label">degreeHealing:</p>
                    <nz-select style="width: 200px;height:42px;margin-left: 15px;border-radius: 6px" [(ngModel)]="nsParams.degreeHealing">
                        <nz-option nzValue="HEAL_RESTORE" nzLabel="HEAL_RESTORE"></nz-option>
                        <nz-option nzValue="HEAL_QOS" nzLabel="HEAL_QOS"></nz-option>
                        <nz-option nzValue="HEAL_RESET" nzLabel="HEAL_RESET"></nz-option>
                        <nz-option nzValue="PARTIAL_HEALING" nzLabel="PARTIAL_HEALING"></nz-option>
                    </nz-select>
                </div>
                <div>
                    <span style="display:inline-block;">actionsHealing:</span>
                    <button nz-button [nzType]="'default'" (click)="addActionsHealing()"><i
                            class="anticon anticon-plus-circle-o"></i></button>
                    <br>
                    <div *ngFor="let item of healActions;let i = index;" style="display:inline-block;">
                        <input style="width: 165px;" nz-input [(ngModel)]="item.value">
                        <button nz-button [nzType]="'dashed'" (click)="minusActionsHealing(i)"><i
                                class="anticon anticon-minus-circle-o"></i></button>
                        &nbsp;
                    </div>
                </div>
                <span style="display:inline-block;width:50%;">healScript:</span>
                <input style="width: 165px;" nz-input [(ngModel)]="nsParams.healScript">
                <div>
                    <span style="display:inline-block;">additionalParamsforNs:</span>
                    <button nz-button [nzType]="'default'" (click)="addNsAdditional()"><i
                            class="anticon anticon-plus-circle-o"></i></button>
                    <br>
                    <div *ngFor="let item of nsAdditional;let i = index;">
                        Key: <input style="width: 165px;" nz-input [(ngModel)]="item.key"> &nbsp;
                        Value: <input style="width: 165px;" nz-input [(ngModel)]="item.value">
                        <button nz-button [nzType]="'dashed'" (click)="minusNsAdditional(i)"><i
                                class="anticon anticon-minus-circle-o"></i></button>
                    </div>
                </div>
            </div>
            <!-- vnf -->
            <div *ngIf="thisService['serviceDomain'] == 'vnf'"  style="clear: both">
                <div class="heal-question">
                    <p class="heal-label">cause:</p>
                    <input nz-input [(ngModel)]="vnfParams.cause" class="heal-input">
                </div>
                <div class="heal-question">
                    <p class="heal-label">action:</p>
                    <input nz-input [(ngModel)]="vnfParams.additionalParams.action" class="heal-input">
                </div>
                <div class="heal-question">
                    <p class="heal-label">actionvminfo:</p>
                    <nz-select style=" float: right;width: 200px;margin-left: 15px;border-radius: 6px;margin-right: 30px" [(ngModel)]="vmSelected">
                        <nz-option *ngFor="let item of vnfVms" [nzValue]="item" [nzLabel]="item.vmName"></nz-option>
                    </nz-select>
                </div>
            </div>
        </nz-modal>
    </div>

    <div class="detailComponent" *ngIf="detailshow">
        <app-ccvpn-detail [namesTranslate]="namesTranslate" [detailParams]="detailData"
                          (closeDetail)="detailshow = false;listDisplay = false;"></app-ccvpn-detail>
    </div>
    <div class="detailComponent" *ngIf="detailshow2">
        <app-e2e-detail  [namesTranslate]="namesTranslate" [detailParams]="detailData"
                        (closeDetail)="detailshow2 = false;listDisplay = false;"></app-e2e-detail>
    </div>
    <div class="createComponent" *ngIf="createshow">
        <app-ccvpn-creation
                [createParams]="createData"
                [namesTranslate]="namesTranslate"
                (closeCreate)="closeCreate($event)">
        </app-ccvpn-creation>
    </div>
    <div class="createComponent" *ngIf="createshow2">
        <app-e2e-creation
                [createParams]="createData"
                (nsCloseCreate)="nsCloseCreate($event)"
                (e2eCloseCreate)="e2eCloseCreate($event)">
        </app-e2e-creation>
    </div>
    <!--</div>-->
</nz-layout>