Browse Source

一部分页面翻译

liangyan0105 3 years ago
parent
commit
6e151fb1e0

+ 0 - 1
src/app/routes/basedata/material-file/material-file.component.html

@@ -154,7 +154,6 @@
                 </th>
                 <!-- 名称 -->
                 <th nzAlign="center" nzLeft="8vw">{{ 'contract.name' | translate }}</th>
-
                 <!-- 属性 -->
                 <th nzAlign="center">{{ 'property' | translate }}</th>
                 <!-- 状态 -->

+ 593 - 205
src/app/routes/project-manage-archives/add/business-affairs/business-affairs.component.html

@@ -3,40 +3,46 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">客户编码</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusCode}}</nz-form-control>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="8">{{ 'customer.code' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.cusCode }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">客户名称</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusName}}</nz-form-control>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="8">{{ 'customer.name' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.cusName }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">销售经理</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.saleManager}}</nz-form-control>
+        <!-- 销售经理 -->
+        <nz-form-label [nzSpan]="8"> {{ 'sales' | translate }}{{ 'manager' | translate }} </nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.saleManager }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">业务员</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.saleMan}}</nz-form-control>
+        <!-- 业务员 -->
+        <nz-form-label [nzSpan]="8"> {{ 'salesman' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.saleMan }}</nz-form-control>
       </nz-form-item>
     </div>
   </div>
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">项目总金额</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.totalPrice}}</nz-form-control>
+        <!-- 项目总金额 -->
+        <nz-form-label [nzSpan]="8">{{ 'total.amount.of.the.project' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.totalPrice }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">已回款金额</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.received}}</nz-form-control>
+        <!-- 已回款金额 -->
+        <nz-form-label [nzSpan]="8">{{ 'amount.paid.back' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.received }}</nz-form-control>
       </nz-form-item>
     </div>
   </div>
@@ -51,8 +57,16 @@
   </div>
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-        [nzData]="collectionPlanList" [nzFrontPagination]="false" [nzShowPagination]="false" [nzScroll]="{x:'123vw'}">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        class="tableTdPadding"
+        #basicTable
+        [nzData]="collectionPlanList"
+        [nzFrontPagination]="false"
+        [nzShowPagination]="false"
+        [nzScroll]="{ x: '123vw' }"
+      >
         <!-- <thead>
           <tr>
             <th>{{ 'customer.contacts.name' | translate }}</th>
@@ -66,83 +80,172 @@
         <tbody>
           <tr *ngFor="let data of basicTable.data">
             <td style="width: 7%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.planId" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="planIdChange(data,'1')">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.planId"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="planIdChange(data, '1')"
+              >
                 <nz-option *ngFor="let i of planList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
-            <td style="width: 4%;">第一笔</td>
+            <!-- 第一笔 -->
+            <td style="width: 4%;">{{ 'the.first' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price1" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 (nzBlur)="priceBlur()"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId1" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileIdChange(data)">
+              <nz-input-number
+                [(ngModel)]="data.price1"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                (nzBlur)="priceBlur()"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId1"
+                nzPlaceHolder="请选择"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileIdChange(data)"
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc1" nz-input maxlength=140 (blur)="descChange()"/>
+              <input [(ngModel)]="data.desc1" nz-input maxlength="140" (blur)="descChange()" />
             </td>
-            <td style="width: 4%;">第二笔</td>
+            <!-- 第二笔 -->
+            <td style="width: 4%;">{{ 'the.second' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price2" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 (nzBlur)="priceBlur()"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId2" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileIdChange(data)">
+              <nz-input-number
+                [(ngModel)]="data.price2"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                (nzBlur)="priceBlur()"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId2"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileIdChange(data)"
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc2" nz-input maxlength=140 (blur)="descChange()"/>
+              <input [(ngModel)]="data.desc2" nz-input maxlength="140" (blur)="descChange()" />
             </td>
-            <td style="width: 4%;">第三笔</td>
+            <!-- 第三笔 -->
+            <td style="width: 4%;">{{ 'the.third' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price3" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 (nzBlur)="priceBlur()"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId3" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileIdChange(data)">
+              <nz-input-number
+                [(ngModel)]="data.price3"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                (nzBlur)="priceBlur()"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId3"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileIdChange(data)"
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc3" nz-input maxlength=140 (blur)="descChange()"/>
+              <input [(ngModel)]="data.desc3" nz-input maxlength="140" (blur)="descChange()" />
             </td>
-            <td style="width: 4%;">第四笔</td>
+            <!-- 第四笔 -->
+            <td style="width: 4%;">{{ 'the.fourth' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price4" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 (nzBlur)="priceBlur()"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId4" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileIdChange(data)">
+              <nz-input-number
+                [(ngModel)]="data.price4"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                (nzBlur)="priceBlur()"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId4"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileIdChange(data)"
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc4" nz-input maxlength=140 (blur)="descChange()"/>
+              <input [(ngModel)]="data.desc4" nz-input maxlength="140" (blur)="descChange()" />
             </td>
-            <td style="width: 4%;">第五笔</td>
+            <!-- 第五笔 -->
+            <td style="width: 4%;">{{ 'the.fifth' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price5" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 (nzBlur)="priceBlur()"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId5" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileIdChange(data)">
+              <nz-input-number
+                [(ngModel)]="data.price5"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                (nzBlur)="priceBlur()"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId5"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileIdChange(data)"
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc5" nz-input maxlength=140 (blur)="descChange()"/>
+              <input [(ngModel)]="data.desc5" nz-input maxlength="140" (blur)="descChange()" />
+            </td>
+            <td nzRight="0">
+              <!-- 是否删除 -->
+              <a
+                nz-popconfirm
+                nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                (nzOnConfirm)="collectionPlanDelete(data.sort)"
+                >{{ 'table.delete' | translate }}</a
+              >
             </td>
-            <td nzRight="0"><a nz-popconfirm nzTitle="是否删除?"
-                (nzOnConfirm)="collectionPlanDelete(data.sort)">{{'table.delete'|translate}}</a></td>
           </tr>
         </tbody>
       </nz-table>
@@ -150,9 +253,8 @@
   </div>
 </nz-card>
 
-
 <!-- 回款情况 -->
-<nz-card nzTitle="回款情况" nzSize="small">
+<nz-card nzTitle="{{ 'receivable.situation' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
       <!-- 新增按钮 -->
@@ -161,9 +263,16 @@
   </div>
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable2
-        [nzData]="paymentCollectionList" [nzFrontPagination]="false" [nzShowPagination]="false"
-        [nzScroll]="{x:'123vw'}">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        class="tableTdPadding"
+        #basicTable2
+        [nzData]="paymentCollectionList"
+        [nzFrontPagination]="false"
+        [nzShowPagination]="false"
+        [nzScroll]="{ x: '123vw' }"
+      >
         <!-- <thead>
           <tr>
             <th>{{ 'customer.contacts.name' | translate }}</th>
@@ -177,83 +286,174 @@
         <tbody>
           <tr *ngFor="let data of basicTable2.data">
             <td style="width: 7%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.planId" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="planIdChange(data,'2')" nzDisabled>
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.planId"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="planIdChange(data, '2')"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of planList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
-            <td style="width: 4%;">第一笔</td>
+            <td style="width: 4%;">{{ 'the.first' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price1" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar"  [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId1" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileChange(data)" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price1"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId1"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileChange(data)"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc1" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc1" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第二笔</td>
+            <td style="width: 4%;">{{ 'the.second' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price2" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId2" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileChange(data)" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price2"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId2"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileChange(data)"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc2" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc2" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第三笔</td>
+            <td style="width: 4%;">{{ 'the.third' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price3" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId3" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileChange(data)" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price3"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId3"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileChange(data)"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc3" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc3" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第四笔</td>
+            <td style="width: 4%;">{{ 'the.fourth' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price4" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId4" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileChange(data)" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price4"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId4"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileChange(data)"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc4" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc4" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第五笔</td>
+            <td style="width: 4%;">{{ 'the.fifth' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price5" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId5" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="mileChange(data)" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price5"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId5"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="mileChange(data)"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc5" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc5" nz-input maxlength="140" [disabled]="true" />
+            </td>
+            <td nzRight="0">
+              <!-- 是否删除 -->
+              <a
+                nz-popconfirm
+                nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                (nzOnConfirm)="paymentCollectionDelete(data.sort)"
+              >
+                {{ 'table.delete' | translate }}</a
+              >
             </td>
-            <td nzRight="0"><a nz-popconfirm nzTitle="是否删除?"
-              (nzOnConfirm)="paymentCollectionDelete(data.sort)">{{'table.delete'|translate}}</a></td>
           </tr>
         </tbody>
       </nz-table>
@@ -261,7 +461,6 @@
   </div>
 </nz-card>
 
-
 <!-- 付款计划 -->
 <nz-card nzTitle="付款计划" nzSize="small">
   <div nz-row [nzGutter]="24">
@@ -272,9 +471,16 @@
   </div>
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable3
-        [nzData]="paymentPlanList" [nzFrontPagination]="false" [nzShowPagination]="false"
-        [nzScroll]="{x:'123vw'}">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        class="tableTdPadding"
+        #basicTable3
+        [nzData]="paymentPlanList"
+        [nzFrontPagination]="false"
+        [nzShowPagination]="false"
+        [nzScroll]="{ x: '123vw' }"
+      >
         <!-- <thead>
           <tr>
             <th>{{ 'customer.contacts.name' | translate }}</th>
@@ -288,83 +494,174 @@
         <tbody>
           <tr *ngFor="let data of basicTable3.data">
             <td style="width: 7%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.planId" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="planIdChange(data,'3')" nzDisabled>
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.planId"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="planIdChange(data, '3')"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of planList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
-            <td style="width: 4%;">第一笔</td>
+            <!-- 第一笔 -->
+            <td style="width: 4%;">{{ 'the.first' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price1" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId1" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price1"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId1"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc1" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc1" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第二笔</td>
+            <!-- 第二笔 -->
+            <td style="width: 4%;">{{ 'the.second' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price2" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId2" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price2"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId2"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc2" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc2" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第三笔</td>
+            <!-- 第三笔 -->
+            <td style="width: 4%;">{{ 'the.third' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price3" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId3" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price3"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId3"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc3" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc3" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第四笔</td>
+            <!-- 第四笔 -->
+            <td style="width: 4%;">{{ 'the.fourth' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price4" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId4" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price4"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId4"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc4" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc4" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第五笔</td>
+            <!-- 第五笔 -->
+            <td style="width: 4%;">{{ 'the.fifth' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price5" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId5" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price5"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId5"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc5" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc5" nz-input maxlength="140" [disabled]="true" />
+            </td>
+            <td nzRight="0">
+              <!-- 是否删除 -->
+              <a
+                nz-popconfirm
+                nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                (nzOnConfirm)="paymentPlanDelete(data.sort)"
+              >
+                {{ 'table.delete' | translate }}
+              </a>
             </td>
-            <td nzRight="0"><a nz-popconfirm nzTitle="是否删除?"
-              (nzOnConfirm)="paymentPlanDelete(data.sort)">{{'table.delete'|translate}}</a></td>
           </tr>
         </tbody>
       </nz-table>
@@ -372,9 +669,8 @@
   </div>
 </nz-card>
 
-
 <!-- 付款情况 -->
-<nz-card nzTitle="付款情况" nzSize="small">
+<nz-card nzTitle="{{ 'payFor' | translate }}{{ 'situation' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
       <!-- 新增按钮 -->
@@ -383,9 +679,16 @@
   </div>
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable4
-        [nzData]="paymentStatusList" [nzFrontPagination]="false" [nzShowPagination]="false"
-        [nzScroll]="{x:'123vw'}">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        class="tableTdPadding"
+        #basicTable4
+        [nzData]="paymentStatusList"
+        [nzFrontPagination]="false"
+        [nzShowPagination]="false"
+        [nzScroll]="{ x: '123vw' }"
+      >
         <!-- <thead>
           <tr>
             <th>{{ 'customer.contacts.name' | translate }}</th>
@@ -399,86 +702,171 @@
         <tbody>
           <tr *ngFor="let data of basicTable4.data">
             <td style="width: 7%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.planId" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" (ngModelChange)="planIdChange(data,'4')" nzDisabled>
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.planId"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                (ngModelChange)="planIdChange(data, '4')"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of planList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
-            <td style="width: 4%;">第一笔</td>
+            <td style="width: 4%;">{{ 'the.first' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price1" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId1" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price1"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId1"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc1" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc1" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第二笔</td>
+            <td style="width: 4%;">{{ 'the.second' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price2" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId2" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price2"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId2"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc2" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc2" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第三笔</td>
+            <td style="width: 4%;">{{ 'the.third' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price3" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId3" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price3"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId3"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc3" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc3" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第四笔</td>
+            <td style="width: 4%;">{{ 'the.fourth' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price4" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId4" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price4"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId4"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc4" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc4" nz-input maxlength="140" [disabled]="true" />
             </td>
-            <td style="width: 4%;">第五笔</td>
+            <td style="width: 4%;">{{ 'the.fifth' | translate }}</td>
             <td style="width: 4%;">
-              <nz-input-number [(ngModel)]="data.price5" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar" [nzMax]=1000000000 [disabled]="true"></nz-input-number>
-            </td>
-            <td style="width: 5%;">
-              <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.mileId5" nzPlaceHolder="请选择"
-                [nzDropdownMatchSelectWidth]="false" nzDisabled>
+              <nz-input-number
+                [(ngModel)]="data.price5"
+                [nzMin]="0"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+                [nzMax]="1000000000"
+                [disabled]="true"
+              ></nz-input-number>
+            </td>
+            <td style="width: 5%;">
+              <nz-select
+                style="width: 100%;"
+                nzShowSearch
+                nzAllowClear
+                [(ngModel)]="data.mileId5"
+                nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                [nzDropdownMatchSelectWidth]="false"
+                nzDisabled
+              >
                 <nz-option *ngFor="let i of milestoneList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
               </nz-select>
             </td>
             <td style="width: 5%;">
-              <input [(ngModel)]="data.desc5" nz-input maxlength=140 [disabled]="true"/>
+              <input [(ngModel)]="data.desc5" nz-input maxlength="140" [disabled]="true" />
+            </td>
+            <td nzRight="0">
+              <a
+                nz-popconfirm
+                nzTitle=" {{ 'table.Whether.to.delete' | translate }}?"
+                (nzOnConfirm)="paymentStatusDelete(data.sort)"
+              >
+                {{ 'table.delete' | translate }}
+              </a>
             </td>
-            <td nzRight="0"><a nz-popconfirm nzTitle="是否删除?"
-              (nzOnConfirm)="paymentStatusDelete(data.sort)">{{'table.delete'|translate}}</a></td>
           </tr>
         </tbody>
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 124 - 62
src/app/routes/project-manage-archives/add/development/development.component.html

@@ -3,67 +3,82 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">客户编码</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusCode}}</nz-form-control>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="8">{{ 'customer.code' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.cusCode }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">客户名称</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusName}}</nz-form-control>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="8">{{ 'customer.name' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.cusName }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">开发项目经理</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.deManager}}</nz-form-control>
+        <!-- 开发项目经理 -->
+        <nz-form-label [nzSpan]="8">{{ 'development' | translate }}{{ 'pm.PM' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.deManager }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">开发工程师</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.deEngineer}}</nz-form-control>
+        <!-- 开发工程师 -->
+        <nz-form-label [nzSpan]="8">{{ 'customer.name' | translate }}{{ 'engineer' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.deEngineer }}</nz-form-control>
       </nz-form-item>
     </div>
   </div>
 </form>
 
 <!-- 汇款信息 -->
-<nz-card nzTitle="回款信息" nzSize="small">
+<nz-card nzTitle="{{ 'receivable' | translate }}{{ 'info' | translate }}" nzSize="small">
   <nz-table nzBordered nzSize="small" [nzNoResult]="' '" [nzShowPagination]="false">
     <tbody>
       <tr>
-        <td><strong>开发金额</strong></td>
-        <td>第一笔</td>
-        <td>{{remittanceInformation.price1}}</td>
-        <td>第二笔</td>
-        <td>{{remittanceInformation.price2}}</td>
-        <td>第三笔</td>
-        <td>{{remittanceInformation.price3}}</td>
-        <td>第四笔</td>
-        <td>{{remittanceInformation.price4}}</td>
-        <td>第五笔</td>
-        <td>{{remittanceInformation.price5}}</td>
+        <!-- 开发金额 -->
+        <td>
+          <strong>{{ 'development' | translate }}{{ 'their.fees.money' | translate }}</strong>
+        </td>
+        <!-- 第一笔 -->
+        <td>{{ 'the.first' | translate }}</td>
+        <td>{{ remittanceInformation.price1 }}</td>
+
+        <td>{{ 'the.second' | translate }}</td>
+        <td>{{ remittanceInformation.price2 }}</td>
+
+        <td>{{ 'the.third' | translate }}</td>
+        <td>{{ remittanceInformation.price3 }}</td>
+
+        <td>{{ 'the.fourth' | translate }}</td>
+        <td>{{ remittanceInformation.price4 }}</td>
+
+        <td>{{ 'the.fifth' | translate }}</td>
+        <td>{{ remittanceInformation.price5 }}</td>
       </tr>
       <tr>
-        <td><strong>实际回款</strong></td>
-        <td>{{remittanceInformation.milestone1}}</td>
-        <td>{{remittanceInformation.desc1}}</td>
-        <td>{{remittanceInformation.milestone2}}</td>
-        <td>{{remittanceInformation.desc2}}</td>
-        <td>{{remittanceInformation.milestone3}}</td>
-        <td>{{remittanceInformation.desc3}}</td>
-        <td>{{remittanceInformation.milestone4}}</td>
-        <td>{{remittanceInformation.desc4}}</td>
-        <td>{{remittanceInformation.milestone5}}</td>
-        <td>{{remittanceInformation.desc5}}</td>
+        <!-- 实际回款 -->
+        <td>
+          <strong>{{ 'actual' | translate }}{{ 'receivable' | translate }}</strong>
+        </td>
+        <td>{{ remittanceInformation.milestone1 }}</td>
+        <td>{{ remittanceInformation.desc1 }}</td>
+        <td>{{ remittanceInformation.milestone2 }}</td>
+        <td>{{ remittanceInformation.desc2 }}</td>
+        <td>{{ remittanceInformation.milestone3 }}</td>
+        <td>{{ remittanceInformation.desc3 }}</td>
+        <td>{{ remittanceInformation.milestone4 }}</td>
+        <td>{{ remittanceInformation.desc4 }}</td>
+        <td>{{ remittanceInformation.milestone5 }}</td>
+        <td>{{ remittanceInformation.desc5 }}</td>
       </tr>
     </tbody>
   </nz-table>
 </nz-card>
 
-<!-- 实施计划 -->
-<nz-card nzTitle="开发计划" nzSize="small">
+<!-- 开发计划 -->
+<nz-card nzTitle="{{ 'development' | translate }}{{ 'the.plan' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
       <!-- 新增按钮 -->
@@ -72,67 +87,114 @@
   </div>
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #expandTable [nzData]="listOfMapData"
-        nzTableLayout="fixed" [nzShowPagination]="false" [nzFrontPagination]="false">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        class="tableTdPadding"
+        #expandTable
+        [nzData]="listOfMapData"
+        nzTableLayout="fixed"
+        [nzShowPagination]="false"
+        [nzFrontPagination]="false"
+      >
         <thead>
           <tr>
-            <th style="width: 8%;" ></th>
-            <th style="width: 5%;">编码</th>
-            <th style="width: 12%;">里程碑</th>
-            <th style="width: 10%;">开始时间</th>
-            <th style="width: 10%;">结束时间</th>
-            <th style="width: 10%;">计划人天</th>
-            <th style="width: 20%;">执行人</th>
-            <th style="width: 10%;">实际人天</th>
-            <th style="width: 10%;">操作</th>
+            <th style="width: 8%;"></th>
+            <!-- 编码 -->
+            <th style="width: 5%;">{{ 'table.thead.code' | translate }}</th>
+            <!-- 里程碑 -->
+            <th style="width: 12%;">{{ 'financial.management.milestoneName' | translate }}</th>
+            <!-- 开始时间 -->
+            <th style="width: 10%;">{{ 'contract.start.date' | translate }}</th>
+            <!--  结束时间-->
+            <th style="width: 10%;">{{ 'contract.end.date' | translate }}</th>
+            <!-- 计划人天 -->
+            <th style="width: 10%;">{{ 'the.plan' | translate }}{{ 'person.date' | translate }}</th>
+            <!--执行人  -->
+            <th style="width: 20%;">{{ 'executor' | translate }}</th>
+            <!-- 实际人天 -->
+            <th style="width: 10%;">{{ 'actual' | translate }}{{ 'person.date' | translate }}</th>
+            <!-- 操作 -->
+            <th style="width: 10%;">{{ 'table.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
           <ng-container *ngFor="let data of expandTable.data">
             <ng-container *ngFor="let item of mapOfExpandedData[data.key]">
-
-
               <tr *ngIf="(item.parent && item.parent.expand) || !item.parent">
-                <td [nzIndentSize]="item.level! * 20" [nzShowExpand]="!!item.children" [(nzExpand)]="item.expand"
-                  (nzExpandChange)="collapse(mapOfExpandedData[data.key], item, $event)">
-                </td>
-                <td><input nz-input [(ngModel)]="item.code" maxlength=6/></td>
+                <td
+                  [nzIndentSize]="item.level! * 20"
+                  [nzShowExpand]="!!item.children"
+                  [(nzExpand)]="item.expand"
+                  (nzExpandChange)="collapse(mapOfExpandedData[data.key], item, $event)"
+                ></td>
+                <td><input nz-input [(ngModel)]="item.code" maxlength="6" /></td>
                 <td>
                   <ng-container *ngIf="item.id">
                     {{ item.name }}
                   </ng-container>
                   <ng-container *ngIf="!item.id">
-                    <input nz-input [(ngModel)]="item.name" maxlength=20/>
+                    <input nz-input [(ngModel)]="item.name" maxlength="20" />
                   </ng-container>
                 </td>
                 <td>
-                  <nz-date-picker [(ngModel)]="item.startDate" (ngModelChange)="startChange(item,$event)"></nz-date-picker>
+                  <nz-date-picker
+                    [(ngModel)]="item.startDate"
+                    (ngModelChange)="startChange(item, $event)"
+                  ></nz-date-picker>
                 </td>
                 <td>
-                  <nz-date-picker [(ngModel)]="item.endDate" (ngModelChange)="startChange(item,$event)"></nz-date-picker>
+                  <nz-date-picker
+                    [(ngModel)]="item.endDate"
+                    (ngModelChange)="startChange(item, $event)"
+                  ></nz-date-picker>
                 </td>
                 <td>
-                  <nz-input-number [(ngModel)]="item.planTime" [nzMin]="0" [nzStep]="1" (nzBlur)="planTimeKeyup(item)" [nzMax]=1000></nz-input-number>
+                  <nz-input-number
+                    [(ngModel)]="item.planTime"
+                    [nzMin]="0"
+                    [nzStep]="1"
+                    (nzBlur)="planTimeKeyup(item)"
+                    [nzMax]="1000"
+                  ></nz-input-number>
                 </td>
                 <td>
                   <!-- <nz-select style="width: 100%;" [nzMaxTagCount]="3" nzMode="multiple" nzPlaceHolder="请选择"
                     [(ngModel)]="item.executor">
                     <nz-option *ngFor="let item of personnelList" [nzLabel]="item.id" [nzValue]="item.name"></nz-option>
                   </nz-select> -->
-                  <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
-                  nzPlaceHolder="请选择"
-                  [(ngModel)]="item.executors" [nzMaxTagCount]="3" [nzAllowClear]="true" [nzDefaultExpandedKeys]="expandKeys">
-                </nz-tree-select>
+                  <nz-tree-select
+                    style="width: 100%"
+                    [nzNodes]="personnelList"
+                    nzShowSearch
+                    [nzMultiple]="true"
+                    nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                    [(ngModel)]="item.executors"
+                    [nzMaxTagCount]="3"
+                    [nzAllowClear]="true"
+                    [nzDefaultExpandedKeys]="expandKeys"
+                  >
+                  </nz-tree-select>
                 </td>
                 <td>
-                  <nz-input-number [(ngModel)]="item.realTime" [nzMin]="0" [nzStep]="1" [nzMax]=1000></nz-input-number>
+                  <nz-input-number
+                    [(ngModel)]="item.realTime"
+                    [nzMin]="0"
+                    [nzStep]="1"
+                    [nzMax]="1000"
+                  ></nz-input-number>
                 </td>
                 <td>
                   <a (click)="addChild(item.key)">{{ 'button.leve.lower' | translate }}</a>
                   <nz-divider nzType="vertical"></nz-divider>
-                  <a nz-popconfirm nzTitle="{{'isdelete'|translate}}" nzOkText="{{ 'yes' | translate }}"
+                  <a
+                    nz-popconfirm
+                    nzTitle="{{ 'isdelete' | translate }}"
+                    nzOkText="{{ 'yes' | translate }}"
                     nzCancelText="{{ 'no' | translate }}"
-                    (nzOnConfirm)="deleteRow(mapOfExpandedData[data.key],item,item.key)">{{ 'milestone.delete' | translate }}</a>
+                    (nzOnConfirm)="deleteRow(mapOfExpandedData[data.key], item, item.key)"
+                    >{{ 'milestone.delete' | translate }}</a
+                  >
                 </td>
               </tr>
             </ng-container>
@@ -141,4 +203,4 @@
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 212 - 61
src/app/routes/project-manage-archives/add/essential-information/essential-information.component.html

@@ -3,45 +3,77 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" nzRequired>项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" nzRequired>
+          {{ 'project' | translate }{{ 'table.thead.code' | translate }}}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-tree-select style="width: 100%" [nzNodes]="proList" nzShowSearch [nzMultiple]="false"
-            formControlName="proId" id="proId" nzPlaceHolder="请选择" [(ngModel)]="projectManageArchivesa.proId"
-            [nzMaxTagCount]="3" [nzAllowClear]="true" (ngModelChange)="proChange($event)">
+          <nz-tree-select
+            style="width: 100%"
+            [nzNodes]="proList"
+            nzShowSearch
+            [nzMultiple]="false"
+            formControlName="proId"
+            id="proId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            [(ngModel)]="projectManageArchivesa.proId"
+            [nzMaxTagCount]="3"
+            [nzAllowClear]="true"
+            (ngModelChange)="proChange($event)"
+          >
           </nz-tree-select>
+          <!-- 请选择项目 -->
           <nz-form-explain *ngIf="validateForm.get('proId')?.dirty && validateForm.get('proId')?.errors">
-            请选择项目
+            {{ 'cost.choose' | translate }} {{ 'project' | translate }}
           </nz-form-explain>
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">项目名称</nz-form-label>
+        <!-- 项目名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">
+          {{ 'cost.item.name' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{projectManageArchivesa.proName}}
+          {{ projectManageArchivesa.proName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">
+          {{ 'customer.code' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="cusId" id="cusId"
-            [(ngModel)]="projectManageArchivesa.cusId" nzPlaceHolder="请选择" (ngModelChange)="cusChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="cusId"
+            id="cusId"
+            [(ngModel)]="projectManageArchivesa.cusId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            (ngModelChange)="cusChange($event)"
+          >
             <nz-option *ngFor="let i of cusList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
           </nz-select>
+          <!-- 请选择客户 -->
           <nz-form-explain *ngIf="validateForm.get('cusId')?.dirty && validateForm.get('cusId')?.errors">
-            请选择客户
+            {{ 'cost.choose' | translate }} {{ 'customer' | translate }}
           </nz-form-explain>
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">客户名称</nz-form-label>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">
+          {{ 'customer.name' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{projectManageArchivesa.cusName}}
+          {{ projectManageArchivesa.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
@@ -49,29 +81,51 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24" nzRequired>项目总金额</nz-form-label>
+        <!-- 项目总金额 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24" nzRequired>
+          {{ 'total.amount.of.the.project' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-input-number [(ngModel)]="projectManageArchivesa.totalPrice" formControlName="totalPrice" id="totalPrice"
-            [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"
-            (keyup)="getProjectManageArchivesa()" [nzMax]=10000000000></nz-input-number>
+          <nz-input-number
+            [(ngModel)]="projectManageArchivesa.totalPrice"
+            formControlName="totalPrice"
+            id="totalPrice"
+            [nzMin]="0"
+            [nzStep]="1"
+            [nzFormatter]="formatterDollar"
+            [nzParser]="parserDollar"
+            (keyup)="getProjectManageArchivesa()"
+            [nzMax]="10000000000"
+          ></nz-input-number>
+          <!-- 请输入项目总金额 -->
           <nz-form-explain *ngIf="validateForm.get('totalPrice')?.dirty && validateForm.get('totalPrice')?.errors">
-            请输入项目总金额
+            {{ 'placeholder' | translate }}{{ 'total.amount.of.the.project' | translate }}
           </nz-form-explain>
         </nz-form-control>
-
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24" nzRequired>里程碑类型</nz-form-label>
+        <!-- 里程碑类型 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24" nzRequired>
+          {{ 'milestone.milestone.type' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="milestoneId" id="milestoneId"
-            [(ngModel)]="projectManageArchivesa.milestoneId" nzPlaceHolder="请选择"
-            (ngModelChange)="milestoneChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="milestoneId"
+            id="milestoneId"
+            [(ngModel)]="projectManageArchivesa.milestoneId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            (ngModelChange)="milestoneChange($event)"
+          >
             <nz-option *ngFor="let i of milestoneList" [nzValue]="i.value" [nzLabel]="i.text"></nz-option>
           </nz-select>
+          <!--请选择里程碑  -->
           <nz-form-explain *ngIf="validateForm.get('milestoneId')?.dirty && validateForm.get('milestoneId')?.errors">
-            请选择里程碑
+            {{ 'select.please.choose' | translate }} {{ 'financial.management.milestoneName' | translate }}
           </nz-form-explain>
         </nz-form-control>
       </nz-form-item>
@@ -80,27 +134,50 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">销售经理</nz-form-label>
+        <!-- 销售经理 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">
+          {{ 'sales' | translate }} {{ 'manager' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-tree-select style="width: 100%" [nzNodes]="saleManagerList" nzShowSearch [nzMultiple]="false"
-            formControlName="saleManagerId" id="saleManagerId" nzPlaceHolder="请选择"
-            [(ngModel)]="projectManageArchivesa.saleManagerId" [nzMaxTagCount]="3" [nzAllowClear]="true"
-            (ngModelChange)="managerChange($event,'1')">
+          <nz-tree-select
+            style="width: 100%"
+            [nzNodes]="saleManagerList"
+            nzShowSearch
+            [nzMultiple]="false"
+            formControlName="saleManagerId"
+            id="saleManagerId"
+            nzPlaceHolder="{{ '' | translate }}{{ '' | translate }}{{ 'select.please.choose' | translate }}"
+            [(ngModel)]="projectManageArchivesa.saleManagerId"
+            [nzMaxTagCount]="3"
+            [nzAllowClear]="true"
+            (ngModelChange)="managerChange($event, '1')"
+          >
           </nz-tree-select>
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="18">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">业务员</nz-form-label>
+        <!-- 业务员 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">{{ 'salesman' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <!-- <nz-select [nzMaxTagCount]="3" nzMode="multiple" nzPlaceHolder="请选择" formControlName="saleManIds"
             id="saleManIds" [(ngModel)]="saleManIds">
             <nz-option *ngFor="let item of personnelList" [nzLabel]="item.id" [nzValue]="item.name"></nz-option>
           </nz-select> -->
-          <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
-            formControlName="saleManIds" id="saleManIds" nzPlaceHolder="请选择" [(ngModel)]="saleManIds"
-            [nzMaxTagCount]="3" [nzAllowClear]="true" (ngModelChange)="personnelChange($event,'1')">
+          <nz-tree-select
+            style="width: 100%"
+            [nzNodes]="personnelList"
+            nzShowSearch
+            [nzMultiple]="true"
+            formControlName="saleManIds"
+            id="saleManIds"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            [(ngModel)]="saleManIds"
+            [nzMaxTagCount]="3"
+            [nzAllowClear]="true"
+            (ngModelChange)="personnelChange($event, '1')"
+          >
           </nz-tree-select>
         </nz-form-control>
       </nz-form-item>
@@ -109,27 +186,52 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">实施项目经理</nz-form-label>
+        <!-- 实施项目经理 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">
+          {{ 'implementation' | translate }}{{ 'pm.PM' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-tree-select style="width: 100%" [nzNodes]="impManagerList" nzShowSearch [nzMultiple]="false"
-            formControlName="impManagerId" id="impManagerId" nzPlaceHolder="请选择"
-            [(ngModel)]="projectManageArchivesa.impManagerId" [nzMaxTagCount]="3" [nzAllowClear]="true"
-            (ngModelChange)="managerChange($event,'2')">
+          <nz-tree-select
+            style="width: 100%"
+            [nzNodes]="impManagerList"
+            nzShowSearch
+            [nzMultiple]="false"
+            formControlName="impManagerId"
+            id="impManagerId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            [(ngModel)]="projectManageArchivesa.impManagerId"
+            [nzMaxTagCount]="3"
+            [nzAllowClear]="true"
+            (ngModelChange)="managerChange($event, '2')"
+          >
           </nz-tree-select>
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="18">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">实施顾问</nz-form-label>
+        <!-- 实施顾问 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">
+          {{ 'implementation' | translate }}{{ 'consultant' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <!-- <nz-select [nzMaxTagCount]="3" nzMode="multiple" nzPlaceHolder="请选择" formControlName="impConsultantIds"
             id="impConsultantIds" [(ngModel)]="impConsultantIds">
             <nz-option *ngFor="let item of personnelList" [nzLabel]="item.id" [nzValue]="item.name"></nz-option>
           </nz-select> -->
-          <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
-            formControlName="impConsultantIds" id="impConsultantIds" nzPlaceHolder="请选择" [(ngModel)]="impConsultantIds"
-            [nzMaxTagCount]="3" [nzAllowClear]="true" (ngModelChange)="personnelChange($event,'2')">
+          <nz-tree-select
+            style="width: 100%"
+            [nzNodes]="personnelList"
+            nzShowSearch
+            [nzMultiple]="true"
+            formControlName="impConsultantIds"
+            id="impConsultantIds"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            [(ngModel)]="impConsultantIds"
+            [nzMaxTagCount]="3"
+            [nzAllowClear]="true"
+            (ngModelChange)="personnelChange($event, '2')"
+          >
           </nz-tree-select>
         </nz-form-control>
       </nz-form-item>
@@ -138,23 +240,48 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">开发项目经理</nz-form-label>
+        <!-- 开发项目经理 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">
+          {{ 'development' | translate }}{{ 'pm.PM' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-tree-select style="width: 100%" [nzNodes]="deManagerList" nzShowSearch [nzMultiple]="false"
-            formControlName="deManagerId" id="deManagerId" nzPlaceHolder="请选择"
-            [(ngModel)]="projectManageArchivesa.deManagerId" [nzMaxTagCount]="3" [nzAllowClear]="true"
-            (ngModelChange)="managerChange($event,'3')">
+          <nz-tree-select
+            style="width: 100%"
+            [nzNodes]="deManagerList"
+            nzShowSearch
+            [nzMultiple]="false"
+            formControlName="deManagerId"
+            id="deManagerId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            [(ngModel)]="projectManageArchivesa.deManagerId"
+            [nzMaxTagCount]="3"
+            [nzAllowClear]="true"
+            (ngModelChange)="managerChange($event, '3')"
+          >
           </nz-tree-select>
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="18">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">开发工程师</nz-form-label>
+        <!-- 开发工程师 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">
+          {{ 'customer.name' | translate }}{{ 'engineer' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
-            formControlName="deEngineerIds" id="deEngineerIds" nzPlaceHolder="请选择" [(ngModel)]="deEngineerIds"
-            [nzMaxTagCount]="3" [nzAllowClear]="true" (ngModelChange)="personnelChange($event,'3')">
+          <nz-tree-select
+            style="width: 100%"
+            [nzNodes]="personnelList"
+            nzShowSearch
+            [nzMultiple]="true"
+            formControlName="deEngineerIds"
+            id="deEngineerIds"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            [(ngModel)]="deEngineerIds"
+            [nzMaxTagCount]="3"
+            [nzAllowClear]="true"
+            (ngModelChange)="personnelChange($event, '3')"
+          >
           </nz-tree-select>
         </nz-form-control>
       </nz-form-item>
@@ -163,26 +290,50 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">服务经理</nz-form-label>
+        <!-- 服务经理 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">
+          {{ 'service' | translate }}{{ 'manager' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-tree-select style="width: 100%" [nzNodes]="seManagerList" nzShowSearch [nzMultiple]="false"
-            formControlName="seManagerId" id="seManagerId" nzPlaceHolder="请选择"
-            [(ngModel)]="projectManageArchivesa.seManagerId" [nzMaxTagCount]="3" [nzAllowClear]="true"
-            (ngModelChange)="managerChange($event,'4')" [nzDefaultExpandedKeys]="expandKeys">
+          <nz-tree-select
+            style="width: 100%"
+            [nzNodes]="seManagerList"
+            nzShowSearch
+            [nzMultiple]="false"
+            formControlName="seManagerId"
+            id="seManagerId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            [(ngModel)]="projectManageArchivesa.seManagerId"
+            [nzMaxTagCount]="3"
+            [nzAllowClear]="true"
+            (ngModelChange)="managerChange($event, '4')"
+            [nzDefaultExpandedKeys]="expandKeys"
+          >
           </nz-tree-select>
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="18">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">服务工程师</nz-form-label>
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24">{{ '' | translate }}服务工程师</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
-            formControlName="seEngineerIds" id="seEngineerIds" nzPlaceHolder="请选择" [(ngModel)]="seEngineerIds"
-            [nzMaxTagCount]="3" [nzAllowClear]="true" (ngModelChange)="personnelChange($event,'4')" [nzDefaultExpandedKeys]="expandKeys">
+          <nz-tree-select
+            style="width: 100%"
+            [nzNodes]="personnelList"
+            nzShowSearch
+            [nzMultiple]="true"
+            formControlName="seEngineerIds"
+            id="seEngineerIds"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            [(ngModel)]="seEngineerIds"
+            [nzMaxTagCount]="3"
+            [nzAllowClear]="true"
+            (ngModelChange)="personnelChange($event, '4')"
+            [nzDefaultExpandedKeys]="expandKeys"
+          >
           </nz-tree-select>
         </nz-form-control>
       </nz-form-item>
     </div>
   </div>
-</form>
+</form>

+ 135 - 60
src/app/routes/project-manage-archives/add/implementation/implementation.component.html

@@ -3,136 +3,211 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">客户编码</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusCode}}</nz-form-control>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="8">{{ 'customer.code' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.cusCode }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">客户名称</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusName}}</nz-form-control>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="8">
+          {{ 'customer.name' | translate }}
+        </nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">
+          {{ projectManageArchives.cusName }}
+        </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">实施项目经理</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.impManager}}</nz-form-control>
+        <!-- 实施项目经理 -->
+        <nz-form-label [nzSpan]="8"> {{ 'implementation' | translate }}{{ 'pm.PM' | translate }} </nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">
+          {{ projectManageArchives.impManager }}
+        </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">实施顾问</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.impConsultant}}</nz-form-control>
+        <!--实施顾问  -->
+        <nz-form-label [nzSpan]="8"> {{ 'implementation' | translate }}{{ 'consultant' | translate }} </nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">
+          {{ projectManageArchives.impConsultant }}
+        </nz-form-control>
       </nz-form-item>
     </div>
   </div>
 </form>
 
-<!-- 款信息 -->
-<nz-card nzTitle="回款信息" nzSize="small">
+<!-- 款信息 -->
+<nz-card nzTitle="{{ 'receivable' | translate }}{{ 'info' | translate }}" nzSize="small">
   <nz-table nzBordered nzSize="small" [nzNoResult]="' '" [nzShowPagination]="false">
     <tbody>
       <tr>
-        <td><strong>实施金额</strong></td>
-        <td>第一笔</td>
-        <td>{{remittanceInformation.price1}}</td>
-        <td>第二笔</td>
-        <td>{{remittanceInformation.price2}}</td>
-        <td>第三笔</td>
-        <td>{{remittanceInformation.price3}}</td>
-        <td>第四笔</td>
-        <td>{{remittanceInformation.price4}}</td>
-        <td>第五笔</td>
-        <td>{{remittanceInformation.price5}}</td>
+        <!-- 实施金额 -->
+        <td>
+          <strong> {{ 'implementation' | translate }}{{ 'their.fees.money' | translate }} </strong>
+        </td>
+        <!-- 第一笔 -->
+        <td>{{ 'the.first' | translate }}</td>
+        <td>{{ remittanceInformation.price1 }}</td>
+
+        <td>{{ 'the.second' | translate }}</td>
+        <td>{{ remittanceInformation.price2 }}</td>
+
+        <td>{{ 'the.third' | translate }}</td>
+        <td>{{ remittanceInformation.price3 }}</td>
+
+        <td>{{ 'the.fourth' | translate }}</td>
+        <td>{{ remittanceInformation.price4 }}</td>
+
+        <td>{{ 'the.fifth' | translate }}</td>
+        <td>{{ remittanceInformation.price5 }}</td>
       </tr>
       <tr>
-        <td><strong>实际回款</strong></td>
-        <td>{{remittanceInformation.milestone1}}</td>
-        <td>{{remittanceInformation.desc1}}</td>
-        <td>{{remittanceInformation.milestone2}}</td>
-        <td>{{remittanceInformation.desc2}}</td>
-        <td>{{remittanceInformation.milestone3}}</td>
-        <td>{{remittanceInformation.desc3}}</td>
-        <td>{{remittanceInformation.milestone4}}</td>
-        <td>{{remittanceInformation.desc4}}</td>
-        <td>{{remittanceInformation.milestone5}}</td>
-        <td>{{remittanceInformation.desc5}}</td>
+        <!--实际回款  -->
+        <td>
+          <strong> {{ 'actual' | translate }}{{ 'receivable' | translate }} </strong>
+        </td>
+        <td>{{ remittanceInformation.milestone1 }}</td>
+        <td>{{ remittanceInformation.desc1 }}</td>
+        <td>{{ remittanceInformation.milestone2 }}</td>
+        <td>{{ remittanceInformation.desc2 }}</td>
+        <td>{{ remittanceInformation.milestone3 }}</td>
+        <td>{{ remittanceInformation.desc3 }}</td>
+        <td>{{ remittanceInformation.milestone4 }}</td>
+        <td>{{ remittanceInformation.desc4 }}</td>
+        <td>{{ remittanceInformation.milestone5 }}</td>
+        <td>{{ remittanceInformation.desc5 }}</td>
       </tr>
     </tbody>
   </nz-table>
 </nz-card>
 
 <!-- 实施计划 -->
-<nz-card nzTitle="实施计划" nzSize="small">
+<nz-card nzTitle="{{ 'implementation' | translate }}{{ 'the.plan' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
       <!-- 新增按钮 -->
-      <button (click)="addParent()" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
+      <button (click)="addParent()" nz-button nzType="primary">
+        {{ 'button.add' | translate }}
+      </button>
     </div>
   </div>
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #expandTable [nzData]="listOfMapData"
-        nzTableLayout="fixed" [nzShowPagination]="false" [nzFrontPagination]="false">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        class="tableTdPadding"
+        #expandTable
+        [nzData]="listOfMapData"
+        nzTableLayout="fixed"
+        [nzShowPagination]="false"
+        [nzFrontPagination]="false"
+      >
         <thead>
           <tr>
-            <th style="width: 8%;" ></th>
-            <th style="width: 5%;">编码</th>
-            <th style="width: 12%;">里程碑</th>
-            <th style="width: 10%;">开始时间</th>
-            <th style="width: 10%;">结束时间</th>
-            <th style="width: 10%;">计划人天</th>
-            <th style="width: 20%;">执行人</th>
-            <th style="width: 10%;">实际人天</th>
-            <th style="width: 10%;">操作</th>
+            <th style="width: 8%;"></th>
+            <!-- 编码 -->
+            <th style="width: 5%;">{{ 'table.thead.code' | translate }}</th>
+            <!-- 里程碑 -->
+            <th style="width: 12%;">{{ 'financial.management.milestoneName' | translate }}</th>
+            <!-- 开始时间 -->
+            <th style="width: 10%;">{{ 'contract.start.date' | translate }}</th>
+            <!-- 结束时间 -->
+            <th style="width: 10%;">{{ 'contract.end.date' | translate }}</th>
+            <!--计划人天  -->
+            <th style="width: 10%;">{{ 'the.plan' | translate }}{{ 'person.date' | translate }}</th>
+            <!-- 执行人 -->
+            <th style="width: 20%;">{{ 'executor' | translate }}</th>
+            <!-- 实际人天 -->
+            <th style="width: 10%;">{{ 'actual' | translate }}{{ 'person.date' | translate }}</th>
+            <!--操作  -->
+            <th style="width: 10%;">{{ 'table.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
           <ng-container *ngFor="let data of expandTable.data">
             <ng-container *ngFor="let item of mapOfExpandedData[data.key]">
-
-
               <tr *ngIf="(item.parent && item.parent.expand) || !item.parent">
-                <td [nzIndentSize]="item.level! * 20" [nzShowExpand]="!!item.children" [(nzExpand)]="item.expand"
-                  (nzExpandChange)="collapse(mapOfExpandedData[data.key], item, $event)">*
+                <td
+                  [nzIndentSize]="item.level! * 20"
+                  [nzShowExpand]="!!item.children"
+                  [(nzExpand)]="item.expand"
+                  (nzExpandChange)="collapse(mapOfExpandedData[data.key], item, $event)"
+                >
+                  *
                   <!-- <input style="width: 50%;" nz-input [(ngModel)]="item.code" /> -->
                 </td>
-                <td><input nz-input [(ngModel)]="item.code" maxlength=6/></td>
+                <td><input nz-input [(ngModel)]="item.code" maxlength="6" /></td>
                 <td>
                   <ng-container *ngIf="item.id">
                     {{ item.name }}
                   </ng-container>
                   <ng-container *ngIf="!item.id">
-                    <input nz-input [(ngModel)]="item.name" maxlength=20/>
+                    <input nz-input [(ngModel)]="item.name" maxlength="20" />
                   </ng-container>
                 </td>
                 <td>
-                  <nz-date-picker [(ngModel)]="item.startDate" (ngModelChange)="startChange(item,$event)"></nz-date-picker>
+                  <nz-date-picker
+                    [(ngModel)]="item.startDate"
+                    (ngModelChange)="startChange(item, $event)"
+                  ></nz-date-picker>
                 </td>
                 <td>
-                  <nz-date-picker [(ngModel)]="item.endDate" (ngModelChange)="startChange(item,$event)"></nz-date-picker>
+                  <nz-date-picker
+                    [(ngModel)]="item.endDate"
+                    (ngModelChange)="startChange(item, $event)"
+                  ></nz-date-picker>
                 </td>
                 <td>
-                  <nz-input-number [(ngModel)]="item.planTime" [nzMin]="0" [nzStep]="1" (nzBlur)="planTimeKeyup(item)" [nzMax]=1000></nz-input-number>
+                  <nz-input-number
+                    [(ngModel)]="item.planTime"
+                    [nzMin]="0"
+                    [nzStep]="1"
+                    (nzBlur)="planTimeKeyup(item)"
+                    [nzMax]="1000"
+                  ></nz-input-number>
                 </td>
                 <td>
                   <!-- <nz-select style="width: 100%;" [nzMaxTagCount]="3" nzMode="multiple" nzPlaceHolder="请选择"
                     [(ngModel)]="item.executor">
                     <nz-option *ngFor="let item of personnelList" [nzLabel]="item.id" [nzValue]="item.name"></nz-option>
                   </nz-select> -->
-                  <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
-                    nzPlaceHolder="请选择" [(ngModel)]="item.executors" [nzMaxTagCount]="3" [nzAllowClear]="true" [nzDefaultExpandedKeys]="expandKeys">
+                  <nz-tree-select
+                    style="width: 100%"
+                    [nzNodes]="personnelList"
+                    nzShowSearch
+                    [nzMultiple]="true"
+                    nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                    [(ngModel)]="item.executors"
+                    [nzMaxTagCount]="3"
+                    [nzAllowClear]="true"
+                    [nzDefaultExpandedKeys]="expandKeys"
+                  >
                   </nz-tree-select>
                 </td>
                 <td>
-                  <nz-input-number [(ngModel)]="item.realTime" [nzMin]="0" [nzStep]="1" [nzMax]=1000></nz-input-number>
+                  <nz-input-number
+                    [(ngModel)]="item.realTime"
+                    [nzMin]="0"
+                    [nzStep]="1"
+                    [nzMax]="1000"
+                  ></nz-input-number>
                 </td>
                 <td>
                   <a (click)="addChild(item.key)">{{ 'button.leve.lower' | translate }}</a>
                   <nz-divider nzType="vertical"></nz-divider>
-                  <a nz-popconfirm nzTitle="{{'isdelete'|translate}}" nzOkText="{{ 'yes' | translate }}"
+                  <a
+                    nz-popconfirm
+                    nzTitle="{{ 'isdelete' | translate }}"
+                    nzOkText="{{ 'yes' | translate }}"
                     nzCancelText="{{ 'no' | translate }}"
-                    (nzOnConfirm)="deleteRow(mapOfExpandedData[data.key],item,item.key)">{{ 'milestone.delete' | translate }}</a>
+                    (nzOnConfirm)="deleteRow(mapOfExpandedData[data.key], item, item.key)"
+                    >{{ 'milestone.delete' | translate }}</a
+                  >
                 </td>
               </tr>
             </ng-container>
@@ -141,4 +216,4 @@
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 129 - 62
src/app/routes/project-manage-archives/add/serviceta/serviceta.component.html

@@ -3,67 +3,78 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">客户编码</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusCode}}</nz-form-control>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="8">{{ 'customer.code' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.cusCode }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">客户名称</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusName}}</nz-form-control>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="8"> {{ 'customer.name' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.cusName }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">服务项目经理</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.seManager}}</nz-form-control>
+        <!-- 服务项目经理 -->
+        <nz-form-label [nzSpan]="8">{{ 'service' | translate }}{{ 'pm.PM' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.seManager }}</nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="8">服务工程师</nz-form-label>
-        <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.seEngineer}}</nz-form-control>
+        <!-- 服务工程师 -->
+        <nz-form-label [nzSpan]="8">{{ 'service' | translate }}{{ 'engineer' | translate }}</nz-form-label>
+        <nz-form-control [nzSm]="16" [nzXs]="24">{{ projectManageArchives.seEngineer }}</nz-form-control>
       </nz-form-item>
     </div>
   </div>
 </form>
 
-<!-- 款信息 -->
-<nz-card nzTitle="回款信息" nzSize="small">
+<!-- 款信息 -->
+<nz-card nzTitle="{{ 'receivable' | translate }}{{ 'info' | translate }}" nzSize="small">
   <nz-table nzBordered nzSize="small" [nzNoResult]="' '" [nzShowPagination]="false">
     <tbody>
       <tr>
-        <td><strong>服务金额</strong></td>
-        <td>第一笔</td>
-        <td>{{remittanceInformation.price1}}</td>
-        <td>第二笔</td>
-        <td>{{remittanceInformation.price2}}</td>
-        <td>第三笔</td>
-        <td>{{remittanceInformation.price3}}</td>
-        <td>第四笔</td>
-        <td>{{remittanceInformation.price4}}</td>
-        <td>第五笔</td>
-        <td>{{remittanceInformation.price5}}</td>
+        <!-- 服务金额 -->
+        <td>
+          <strong>{{ 'service' | translate }}{{ 'their.fees.money' | translate }}</strong>
+        </td>
+        <!-- 第一笔 -->
+        <td>{{ 'the.first' | translate }}</td>
+        <td>{{ remittanceInformation.price1 }}</td>
+        <td>{{ 'the.second' | translate }}</td>
+        <td>{{ remittanceInformation.price2 }}</td>
+        <td>{{ 'the.third' | translate }}</td>
+        <td>{{ remittanceInformation.price3 }}</td>
+        <td>{{ 'the.fourth' | translate }}</td>
+        <td>{{ remittanceInformation.price4 }}</td>
+        <td>{{ 'the.fifth' | translate }}</td>
+        <td>{{ remittanceInformation.price5 }}</td>
       </tr>
       <tr>
-        <td><strong>实际回款</strong></td>
-        <td>{{remittanceInformation.milestone1}}</td>
-        <td>{{remittanceInformation.desc1}}</td>
-        <td>{{remittanceInformation.milestone2}}</td>
-        <td>{{remittanceInformation.desc2}}</td>
-        <td>{{remittanceInformation.milestone3}}</td>
-        <td>{{remittanceInformation.desc3}}</td>
-        <td>{{remittanceInformation.milestone4}}</td>
-        <td>{{remittanceInformation.desc4}}</td>
-        <td>{{remittanceInformation.milestone5}}</td>
-        <td>{{remittanceInformation.desc5}}</td>
+        <!--实际回款  -->
+        <td>
+          <strong>{{ 'actual' | translate }}{{ 'receivable' | translate }}</strong>
+        </td>
+        <td>{{ remittanceInformation.milestone1 }}</td>
+        <td>{{ remittanceInformation.desc1 }}</td>
+        <td>{{ remittanceInformation.milestone2 }}</td>
+        <td>{{ remittanceInformation.desc2 }}</td>
+        <td>{{ remittanceInformation.milestone3 }}</td>
+        <td>{{ remittanceInformation.desc3 }}</td>
+        <td>{{ remittanceInformation.milestone4 }}</td>
+        <td>{{ remittanceInformation.desc4 }}</td>
+        <td>{{ remittanceInformation.milestone5 }}</td>
+        <td>{{ remittanceInformation.desc5 }}</td>
       </tr>
     </tbody>
   </nz-table>
 </nz-card>
 
-<!-- 实施计划 -->
-<nz-card nzTitle="服务计划" nzSize="small">
+<!-- 服务计划 -->
+<nz-card nzTitle="{{ 'service' | translate }}{{ 'the.plan' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
       <!-- 新增按钮 -->
@@ -72,67 +83,123 @@
   </div>
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #expandTable [nzData]="listOfMapData"
-        nzTableLayout="fixed" [nzShowPagination]="false" [nzFrontPagination]="false">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        class="tableTdPadding"
+        #expandTable
+        [nzData]="listOfMapData"
+        nzTableLayout="fixed"
+        [nzShowPagination]="false"
+        [nzFrontPagination]="false"
+      >
         <thead>
           <tr>
-            <th style="width: 8%;" ></th>
-            <th style="width: 5%;">编码</th>
-            <th style="width: 12%;">里程碑</th>
-            <th style="width: 10%;">开始时间</th>
-            <th style="width: 10%;">结束时间</th>
-            <th style="width: 10%;">计划人天</th>
-            <th style="width: 20%;">执行人</th>
-            <th style="width: 10%;">实际人天</th>
-            <th style="width: 10%;">操作</th>
+            <th style="width: 8%;"></th>
+            <!-- 编码 -->
+            <th style="width: 5%;">{{ 'table.thead.code' | translate }}</th>
+
+            <!-- 里程碑 -->
+            <th style="width: 12%;">{{ 'financial.management.milestoneName' | translate }}</th>
+
+            <!-- 开始时间 -->
+            <th style="width: 10%;">{{ 'contract.start.date' | translate }}</th>
+
+            <!-- 结束时间 -->
+            <th style="width: 10%;">{{ 'contract.end.date' | translate }}</th>
+
+            <!-- 计划人天 -->
+            <th style="width: 10%;">{{ 'the.plan' | translate }}{{ 'person.date' | translate }}</th>
+
+            <!-- 执行人 -->
+            <th style="width: 20%;">{{ 'executor' | translate }}</th>
+
+            <!--实际人天  -->
+            <th style="width: 10%;">{{ 'actual' | translate }}{{ 'person.date' | translate }}</th>
+
+            <!--  操作-->
+            <th style="width: 10%;">{{ 'table.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
           <ng-container *ngFor="let data of expandTable.data">
             <ng-container *ngFor="let item of mapOfExpandedData[data.key]">
-
-
               <tr *ngIf="(item.parent && item.parent.expand) || !item.parent">
-                <td [nzIndentSize]="item.level! * 20" [nzShowExpand]="!!item.children" [(nzExpand)]="item.expand"
-                  (nzExpandChange)="collapse(mapOfExpandedData[data.key], item, $event)">*
+                <td
+                  [nzIndentSize]="item.level! * 20"
+                  [nzShowExpand]="!!item.children"
+                  [(nzExpand)]="item.expand"
+                  (nzExpandChange)="collapse(mapOfExpandedData[data.key], item, $event)"
+                >
+                  *
                 </td>
-                <td><input nz-input [(ngModel)]="item.code" maxlength=6/></td>
+                <td><input nz-input [(ngModel)]="item.code" maxlength="6" /></td>
                 <td>
                   <ng-container *ngIf="item.id">
                     {{ item.name }}
                   </ng-container>
                   <ng-container *ngIf="!item.id">
-                    <input nz-input [(ngModel)]="item.name" maxlength=20/>
+                    <input nz-input [(ngModel)]="item.name" maxlength="20" />
                   </ng-container>
                 </td>
                 <td>
-                  <nz-date-picker [(ngModel)]="item.startDate" (ngModelChange)="startChange(item,$event)"></nz-date-picker>
+                  <nz-date-picker
+                    [(ngModel)]="item.startDate"
+                    (ngModelChange)="startChange(item, $event)"
+                  ></nz-date-picker>
                 </td>
                 <td>
-                  <nz-date-picker [(ngModel)]="item.endDate" (ngModelChange)="startChange(item,$event)"></nz-date-picker>
+                  <nz-date-picker
+                    [(ngModel)]="item.endDate"
+                    (ngModelChange)="startChange(item, $event)"
+                  ></nz-date-picker>
                 </td>
                 <td>
-                  <nz-input-number [(ngModel)]="item.planTime" [nzMin]="0" [nzStep]="1" (nzBlur)="planTimeKeyup(item)" [nzMax]=1000></nz-input-number>
+                  <nz-input-number
+                    [(ngModel)]="item.planTime"
+                    [nzMin]="0"
+                    [nzStep]="1"
+                    (nzBlur)="planTimeKeyup(item)"
+                    [nzMax]="1000"
+                  ></nz-input-number>
                 </td>
                 <td>
                   <!-- <nz-select style="width: 100%;" [nzMaxTagCount]="3" nzMode="multiple" nzPlaceHolder="请选择"
                     [(ngModel)]="item.executor">
                     <nz-option *ngFor="let item of personnelList" [nzLabel]="item.id" [nzValue]="item.name"></nz-option>
                   </nz-select> -->
-                  <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
-                  nzPlaceHolder="请选择"
-                  [(ngModel)]="item.executors" [nzMaxTagCount]="3" [nzAllowClear]="true" [nzDefaultExpandedKeys]="expandKeys">
-                </nz-tree-select>
+                  <nz-tree-select
+                    style="width: 100%"
+                    [nzNodes]="personnelList"
+                    nzShowSearch
+                    [nzMultiple]="true"
+                    nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                    [(ngModel)]="item.executors"
+                    [nzMaxTagCount]="3"
+                    [nzAllowClear]="true"
+                    [nzDefaultExpandedKeys]="expandKeys"
+                  >
+                  </nz-tree-select>
                 </td>
                 <td>
-                  <nz-input-number [(ngModel)]="item.realTime" [nzMin]="0" [nzStep]="1" [nzMax]=1000></nz-input-number>
+                  <nz-input-number
+                    [(ngModel)]="item.realTime"
+                    [nzMin]="0"
+                    [nzStep]="1"
+                    [nzMax]="1000"
+                  ></nz-input-number>
                 </td>
                 <td>
                   <a (click)="addChild(item.key)">{{ 'button.leve.lower' | translate }}</a>
                   <nz-divider nzType="vertical"></nz-divider>
-                  <a nz-popconfirm nzTitle="{{'isdelete'|translate}}" nzOkText="{{ 'yes' | translate }}"
+                  <a
+                    nz-popconfirm
+                    nzTitle="{{ 'isdelete' | translate }}"
+                    nzOkText="{{ 'yes' | translate }}"
                     nzCancelText="{{ 'no' | translate }}"
-                    (nzOnConfirm)="deleteRow(mapOfExpandedData[data.key],item,item.key)">{{ 'milestone.delete' | translate }}</a>
+                    (nzOnConfirm)="deleteRow(mapOfExpandedData[data.key], item, item.key)"
+                    >{{ 'milestone.delete' | translate }}</a
+                  >
                 </td>
               </tr>
             </ng-container>
@@ -141,4 +208,4 @@
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 123 - 41
src/app/routes/project-work/development-log/add/add.component.html

@@ -3,37 +3,68 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="8">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="code">单据编码</nz-form-label>
+          <!-- 单据编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="code">{{
+            'documents.code' | translate
+          }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <input placeholder="自动生成" nz-input formControlName="billcode" id="billcode"
-              [(ngModel)]="proWorkLogic.billcode" [disabled]="true" />
+            <input
+              placeholder="自动生成"
+              nz-input
+              formControlName="billcode"
+              id="billcode"
+              [(ngModel)]="proWorkLogic.billcode"
+              [disabled]="true"
+            />
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="8">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>项目名称</nz-form-label>
+          <!-- 项目名称 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>{{ 'cost.item.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="proId" id="proId"
-              [(ngModel)]="proWorkLogic.proId" nzPlaceHolder="请选择" (ngModelChange)="proChange($event)">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proId"
+              id="proId"
+              [(ngModel)]="proWorkLogic.proId"
+              nzPlaceHolder="请选择"
+              (ngModelChange)="proChange($event)"
+            >
               <nz-option *ngFor="let i of proList" [nzValue]="i.id" [nzLabel]="i.proName"></nz-option>
             </nz-select>
             <nz-form-explain *ngIf="validateForm.get('proId')?.dirty && validateForm.get('proId')?.errors">
-              请选择项目名称
+              <!-- 请选择项目名称 -->
+              {{ 'select.please.choose' | translate }}{{ 'cost.item.name' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="8">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>汇报人</nz-form-label>
+          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>
+            {{ 'report.person' | translate }}
+          </nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="false"
-              formControlName="reporterId" id="reporterId" nzPlaceHolder="请选择" [(ngModel)]="proWorkLogic.reporterId"
-              [nzMaxTagCount]="3" [nzAllowClear]="true">
+            <nz-tree-select
+              style="width: 100%"
+              [nzNodes]="personnelList"
+              nzShowSearch
+              [nzMultiple]="false"
+              formControlName="reporterId"
+              id="reporterId"
+              nzPlaceHolder="请选择"
+              [(ngModel)]="proWorkLogic.reporterId"
+              [nzMaxTagCount]="3"
+              [nzAllowClear]="true"
+            >
             </nz-tree-select>
             <nz-form-explain *ngIf="validateForm.get('proId')?.dirty && validateForm.get('proId')?.errors">
-              请选择汇报人
+              <!--     请选择汇报人 -->
+              {{ 'select.please.choose' | translate }}{{ 'report.person' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -42,30 +73,46 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="8">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>开始时间</nz-form-label>
+          <!--  开始时间-->
+          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>{{ 'contract.start.date' | translate }}</nz-form-label>
           <!-- <nz-form-control [nzSm]="14" [nzXs]="24">
             <nz-range-picker [nzShowTime]="true" formControlName="date" id="date" [(ngModel)]="date"></nz-range-picker>
           </nz-form-control> -->
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="startDate" id="startDate"
-              [(ngModel)]="proWorkLogic.startDate" [nzDisabledDate]="disabledDate" ></nz-date-picker>
+            <nz-date-picker
+              nzShowTime
+              nzFormat="yyyy-MM-dd HH:mm:ss"
+              formControlName="startDate"
+              id="startDate"
+              [(ngModel)]="proWorkLogic.startDate"
+              [nzDisabledDate]="disabledDate"
+            ></nz-date-picker>
             <nz-form-explain *ngIf="validateForm.get('startDate')?.dirty && validateForm.get('startDate')?.errors">
-              请选择开始时间
+              <!-- 请选择开始时间 -->
+              {{ 'select.please.choose' | translate }}{{ 'contract.start.date' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="8">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>结束时间</nz-form-label>
+          <!-- 结束时间 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>{{ 'contract.end.date' | translate }}</nz-form-label>
           <!-- <nz-form-control [nzSm]="14" [nzXs]="24">
             <nz-range-picker [nzShowTime]="true" formControlName="date" id="date" [(ngModel)]="date"></nz-range-picker>
           </nz-form-control> -->
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="endDate" id="endDate"
-              [(ngModel)]="proWorkLogic.endDate" [nzDisabledDate]="disabledDate2"></nz-date-picker>
+            <nz-date-picker
+              nzShowTime
+              nzFormat="yyyy-MM-dd HH:mm:ss"
+              formControlName="endDate"
+              id="endDate"
+              [(ngModel)]="proWorkLogic.endDate"
+              [nzDisabledDate]="disabledDate2"
+            ></nz-date-picker>
             <nz-form-explain *ngIf="validateForm.get('endDate')?.dirty && validateForm.get('endDate')?.errors">
-              请选择结束时间
+              <!-- 请选择结束时间 -->
+              {{ 'select.please.choose' | translate }}{{ 'contract.end.date' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -82,33 +129,61 @@
 
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable [nzData]="itemList"
-          [nzFrontPagination]="false" [nzShowPagination]="false">
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center" style="width: 5%;">序号</th>
-              <th style="width: 30%;">里程碑</th>
-              <th style="width: 50%;">工作内容</th>
-              <th style="width: 5%;">工作用时</th>
-              <th style="width: 10%;">操作</th>
+              <!--  序号-->
+              <th nzAlign="center" style="width: 5%;">{{ 'pm.contract.serial.number' | translate }}</th>
+              <!-- 里程碑 -->
+              <th style="width: 30%;">{{ 'financial.management.milestoneName' | translate }}</th>
+              <!-- 工作内容 -->
+              <th style="width: 50%;">{{ 'work.content' | translate }}</th>
+              <!--工作用时  -->
+              <th style="width: 5%;">{{ 'work.available' | translate }}</th>
+              <!-- 操作 -->
+              <th style="width: 10%;">{{ 'table.operation' | translate }}</th>
             </tr>
           </thead>
           <tbody>
-            <tr *ngFor="let data of basicTable.data;let i =index">
-              <td nzAlign="center">{{i+1}}</td>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}</td>
               <td>
-                <nz-tree-select style="width: 100%" [nzNodes]="mieList" nzShowSearch [nzMultiple]="false"
-                  nzPlaceHolder="请选择" [(ngModel)]="data.proArchivesId" [nzMaxTagCount]="3" [nzAllowClear]="true" (ngModelChange)="proArchivesIdChange(data)">
-                </nz-tree-select >
+                <nz-tree-select
+                  style="width: 100%"
+                  [nzNodes]="mieList"
+                  nzShowSearch
+                  [nzMultiple]="false"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  [(ngModel)]="data.proArchivesId"
+                  [nzMaxTagCount]="3"
+                  [nzAllowClear]="true"
+                  (ngModelChange)="proArchivesIdChange(data)"
+                >
+                </nz-tree-select>
               </td>
               <td>
                 <textarea rows="1" nz-input [(ngModel)]="data.content"></textarea>
               </td>
               <td style="width: 10%;">
-                <nz-input-number [(ngModel)]="data.duration" [nzMin]="0" [nzStep]="1" [nzMax]=100></nz-input-number>
+                <nz-input-number [(ngModel)]="data.duration" [nzMin]="0" [nzStep]="1" [nzMax]="100"></nz-input-number>
               </td>
               <td>
-                <a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a>
+                <!-- 是否删除 -->
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                >
+                  {{ 'table.delete' | translate }}
+                </a>
               </td>
             </tr>
           </tbody>
@@ -119,13 +194,20 @@
 </nz-spin>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkLogic.currentUser}} <strong>填写时间:</strong>{{proWorkLogic.createTime}}
+  <!-- 填写人  时间 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ proWorkLogic.currentUser }}
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ proWorkLogic.createTime }}
   <!-- 关闭按钮 -->
-  <a nz-popconfirm nzTitle="{{'pm.contract.contract.add.button.cancel'|translate}}" (nzOnConfirm)="close()"
-    style="padding-right: 8px">
-    <button nz-button>{{'pm.quotation.cancel'|translate}}</button>
+  <a
+    nz-popconfirm
+    nzTitle="{{ 'pm.contract.contract.add.button.cancel' | translate }}"
+    (nzOnConfirm)="close()"
+    style="padding-right: 8px"
+  >
+    <button nz-button>{{ 'pm.quotation.cancel' | translate }}</button>
   </a>
   <!-- 保存按钮 -->
-  <button nz-button nzType="primary" class="ant-btn ant-btn-primary" (click)="submitForm()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.finish' | translate}}</span></button>
-</div>
+  <button nz-button nzType="primary" class="ant-btn ant-btn-primary" (click)="submitForm()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.finish' | translate }}</span>
+  </button>
+</div>

+ 58 - 19
src/app/routes/project-work/development-log/development-log.component.html

@@ -1,6 +1,9 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'development-log:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'development-log:add'">
+      {{ 'cost.new' | translate }}
+    </button>
   </ng-template>
 </page-header>
 <nz-card>
@@ -9,7 +12,8 @@
     <div nz-row [nzGutter]="{ xs: 8, sm: 16, md: 24, lg: 32 }">
       <div nz-col [nzSpan]="8">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">单据编码</nz-form-label>
+          <!-- 单据编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'documents.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
             <input nz-input name="code" [(ngModel)]="proWorkLogic.billcode" />
           </nz-form-control>
@@ -17,29 +21,55 @@
       </div>
       <div nz-col [nzSpan]="8">
         <nz-form-item>
-          <nz-form-label [nzSm]="2" [nzXs]="24" [nzNoColon]=true></nz-form-label>
+          <nz-form-label [nzSm]="2" [nzXs]="24" [nzNoColon]="true"></nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <button nzType="primary" (click)="query()" nz-button><span>查询</span></button>
+            <!-- 查询 -->
+            <button nzType="primary" (click)="query()" nz-button>
+              <span>{{ 'button.query' | translate }}</span>
+            </button>
           </nz-form-control>
         </nz-form-item>
       </div>
     </div>
   </form>
-   <!-- 表格 -->
-   <div nz-row [nzGutter]="{ xs: 8, sm: 16, md: 24, lg: 32 }">
+  <!-- 表格 -->
+  <div nz-row [nzGutter]="{ xs: 8, sm: 16, md: 24, lg: 32 }">
     <div nz-col [nzSpan]="24">
-      <nz-table nzSize="small" #basicTable [nzData]="listOfData" [nzFrontPagination]="false" [nzTotal]="page.total"
-        [nzPageIndex]="page.current" (nzPageIndexChange)="pageIndexChange($event)" [nzLoading]="isSpinning">
+      <nz-table
+        nzSize="small"
+        #basicTable
+        [nzData]="listOfData"
+        [nzFrontPagination]="false"
+        [nzTotal]="page.total"
+        [nzPageIndex]="page.current"
+        (nzPageIndexChange)="pageIndexChange($event)"
+        [nzLoading]="isSpinning"
+      >
         <thead>
           <tr>
-            <th>单据编码</th>
-            <th>项目名称</th>
-            <th>开始时间</th>
-            <th>结束时间</th>
-            <th>汇报人</th>
-            <th>填写人</th>
-            <th>填写时间</th>
-            <th>操作</th>
+            <!-- 单据编码 -->
+            <th>{{ 'documents.code' | translate }}</th>
+
+            <!-- 项目名称 -->
+            <th>{{ 'cost.item.name' | translate }}</th>
+
+            <!-- 开始时间 -->
+            <th>{{ 'contract.start.date' | translate }}</th>
+
+            <!-- 结束时间 -->
+            <th>{{ 'contract.end.date' | translate }}</th>
+
+            <!-- 汇报人 -->
+            <th>{{ 'report.person' | translate }}</th>
+
+            <!-- 填写人 -->
+            <th>{{ 'fill.person' | translate }}</th>
+
+            <!-- 填写时间 -->
+            <th>{{ 'fill.time' | translate }}</th>
+
+            <!-- 操作 -->
+            <th>{{ 'table.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
@@ -52,11 +82,20 @@
             <td>{{ data.currentUser }}</td>
             <td>{{ data.createTime }}</td>
             <td>
-              <a (click)="view(data)" acl [acl-ability]="'development-log:view'">详情</a>
+              <!-- 详情 -->
+              <a (click)="view(data)" acl [acl-ability]="'development-log:view'">
+                {{ 'table.view' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'development-log:view'"></nz-divider>
-              <a (click)="update(data)" acl [acl-ability]="'development-log:update'">修改</a>
+              <!-- 修改 -->
+              <a (click)="update(data)" acl [acl-ability]="'development-log:update'">
+                {{ 'table.update' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'development-log:update'"></nz-divider>
-              <a (click)="delete(data.id)" acl [acl-ability]="'development-log:delete'">删除</a>
+              <!-- 删除 -->
+              <a (click)="delete(data.id)" acl [acl-ability]="'development-log:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
             </td>
           </tr>
         </tbody>

+ 46 - 32
src/assets/tmp/i18n/zh-CN.json

@@ -695,7 +695,6 @@
   "pm.quotation.tax.rate": "税费",
   "pm.quotation.total.bioanalytical.services.fee": "生物分析总费用",
   "pm.quotation.Discount": "折扣",
-
   "pm.quotation.Discount.rate": "折扣比例",
   "pm.quotation.Total.discount.price": "折扣总价",
   "pm.quotation.Please.enter.one.of.the.discounts": "请输入其中一种折扣",
@@ -1893,35 +1892,50 @@
   "summarize": "概述",
   "free.sale.until": "免费售后截至",
   "free.sale.start": "免费售后起始",
-  "after":"后",
-  "price":"单价",
-  "standard.amount":"标准金额",
-  "the.price":"价格",
-  "select.the.company.and.department":"选择公司与部门",
-  "start":"开始",
-  "limit.time":"工期",
-  "the.year":"年",
-  "month":"月",
-  "project.risk.warning":"项目风险预警",
-  "group.members":"组成员",
-  "receiving":"收付款",
-  "the.plan":"计划",
-  "actual":"实际",
-  "collection":"收款",
-  "invoice.amount":"开票金额",
-  "payFor":"付款",
-  "ticket.amount":"收票金额",
-  "taxable.amount":"应税合计",
-  "after.tax.total":"税后合计",
-  "internal.cost":"内部成本",
-  "income":"收入",
-  "equally.shared.costs":"公摊费用",
-  "commission":"提成",
-  "bonus":"奖金",
-  "wage":"工资",
-  "reserved":"预留",
-  "user.of.the.role":"角色下的用户",
-  "product.details":"产品详情"
-
-
+  "after": "后",
+  "price": "单价",
+  "standard.amount": "标准金额",
+  "the.price": "价格",
+  "select.the.company.and.department": "选择公司与部门",
+  "start": "开始",
+  "limit.time": "工期",
+  "the.year": "年",
+  "month": "月",
+  "project.risk.warning": "项目风险预警",
+  "group.members": "组成员",
+  "receiving": "收付款",
+  "the.plan": "计划",
+  "actual": "实际",
+  "collection": "收款",
+  "invoice.amount": "开票金额",
+  "payFor": "付款",
+  "ticket.amount": "收票金额",
+  "taxable.amount": "应税合计",
+  "after.tax.total": "税后合计",
+  "internal.cost": "内部成本",
+  "income": "收入",
+  "equally.shared.costs": "公摊费用",
+  "commission": "提成",
+  "bonus": "奖金",
+  "wage": "工资",
+  "reserved": "预留",
+  "user.of.the.role": "角色下的用户",
+  "product.details": "产品详情",
+  "manager": "经理",
+  "salesman": "业务员",
+  "amount.paid.back": "已回款金额",
+  "situation": "情况",
+  "receivable": "回款",
+  "info": "信息",
+  "person": "人",
+  "executor": "执行人",
+  "engineer": "工程师",
+  "consultant": "顾问",
+  "person.date": "人天",
+  "documents.code": "单据编码",
+  "report.person": "汇报人",
+  "fill.person": "填写人",
+  "fill.time": "填写时间",
+  "work.available": "工作用时",
+  "work.content": "工作内容"
 }