Browse Source

Merge branch 'master' of http://139.196.39.194:9021/chenc/cd-project-management-web

chenc 3 years ago
parent
commit
c1f4e49c7a
100 changed files with 7964 additions and 3538 deletions
  1. 5 6
      src/app/layout/passport/passport.component.html
  2. 2 1
      src/app/routes/automatic-logon/list/list.component.html
  3. 6 3
      src/app/routes/basedata/customer/details/details.component.html
  4. 23 22
      src/app/routes/basedata/customer/edit/edit.component.html
  5. 3 2
      src/app/routes/basedata/material-file/material-file.component.html
  6. 1 1
      src/app/routes/basedata/merchants-industry/add/add.component.html
  7. 46 12
      src/app/routes/basedata/milestone-category/edit/edit.component.html
  8. 9 6
      src/app/routes/basedata/milestone-category/milestone-category.component.html
  9. 64 45
      src/app/routes/basedata/post/post.component.html
  10. 27 11
      src/app/routes/basedata/project-approval/add/add.component.html
  11. 2 1
      src/app/routes/basedata/project-approval/project-approval.component.html
  12. 2 1
      src/app/routes/contract-management/contract-file/add/essential-information/essential-information.component.html
  13. 147 47
      src/app/routes/contract-management/contract-file/add/product-module/product-module.component.html
  14. 13 8
      src/app/routes/contract-management/contract-file/contract-file.component.html
  15. 1 0
      src/app/routes/contract-management/contract-file/update/essential-information/essential-information.component.html
  16. 9 18
      src/app/routes/contract-management/contract-file/update/product-module/product-module.component.html
  17. 3 3
      src/app/routes/contract-management/contract-process-view/process-view/essential-information/essential-information.component.html
  18. 14 14
      src/app/routes/contract-management/contract-process-view/process-view/product-module/product-module.component.html
  19. 6 3
      src/app/routes/delon/cache/cache.component.html
  20. 71 25
      src/app/routes/down-payment-management/collection-confirmation/collection-confirmation.component.html
  21. 120 49
      src/app/routes/down-payment-management/payment-slip/add/add.component.html
  22. 80 52
      src/app/routes/down-payment-management/payment-slip/payment-slip.component.html
  23. 120 49
      src/app/routes/down-payment-management/payment-slip/update/update.component.html
  24. 56 36
      src/app/routes/down-payment-management/payment-slip/view/view.component.html
  25. 120 49
      src/app/routes/down-payment-management/receipt/add/add.component.html
  26. 84 52
      src/app/routes/down-payment-management/receipt/receipt.component.html
  27. 119 49
      src/app/routes/down-payment-management/receipt/update/update.component.html
  28. 56 36
      src/app/routes/down-payment-management/receipt/view/view.component.html
  29. 108 41
      src/app/routes/expense-reimbursement/expense-reimbursement-form/add/add.component.html
  30. 81 50
      src/app/routes/expense-reimbursement/expense-reimbursement-form/expense-reimbursement-form.component.html
  31. 111 41
      src/app/routes/expense-reimbursement/expense-reimbursement-form/update/update.component.html
  32. 49 25
      src/app/routes/expense-reimbursement/expense-reimbursement-form/view/view.component.html
  33. 139 71
      src/app/routes/invoice-management/invoice-manage-purchase/add/add.component.html
  34. 81 53
      src/app/routes/invoice-management/invoice-manage-purchase/invoice-manage-purchase.component.html
  35. 135 71
      src/app/routes/invoice-management/invoice-manage-purchase/update/update.component.html
  36. 73 52
      src/app/routes/invoice-management/invoice-manage-purchase/view/view.component.html
  37. 136 71
      src/app/routes/invoice-management/invoice-sales/add/add.component.html
  38. 79 52
      src/app/routes/invoice-management/invoice-sales/invoice-sales.component.html
  39. 135 71
      src/app/routes/invoice-management/invoice-sales/update/update.component.html
  40. 72 52
      src/app/routes/invoice-management/invoice-sales/view/view.component.html
  41. 20 9
      src/app/routes/pro/account/center/applications/applications.component.html
  42. 2 1
      src/app/routes/pro/account/center/articles/articles.component.html
  43. 24 13
      src/app/routes/pro/account/center/center.component.html
  44. 164 76
      src/app/routes/pro/form/advanced-form/advanced-form.component.html
  45. 66 20
      src/app/routes/pro/form/basic-form/basic-form.component.html
  46. 9 6
      src/app/routes/pro/form/step-form/step-form.component.html
  47. 32 14
      src/app/routes/pro/form/step-form/step1.component.html
  48. 28 10
      src/app/routes/pro/form/step-form/step2.component.html
  49. 21 9
      src/app/routes/pro/form/step-form/step3.component.html
  50. 54 19
      src/app/routes/pro/list/applications/applications.component.html
  51. 56 26
      src/app/routes/pro/list/articles/articles.component.html
  52. 36 20
      src/app/routes/pro/list/basic-list/basic-list.component.html
  53. 8 3
      src/app/routes/pro/list/basic-list/edit/edit.component.html
  54. 33 12
      src/app/routes/pro/list/card-list/card-list.component.html
  55. 3 2
      src/app/routes/pro/list/list/list.component.html
  56. 40 14
      src/app/routes/pro/list/projects/projects.component.html
  57. 65 29
      src/app/routes/pro/list/table-list/table-list.component.html
  58. 115 55
      src/app/routes/pro/profile/advanced/advanced.component.html
  59. 35 17
      src/app/routes/pro/profile/basic/basic.component.html
  60. 21 7
      src/app/routes/pro/result/fail/fail.component.html
  61. 29 13
      src/app/routes/pro/result/success/success.component.html
  62. 600 206
      src/app/routes/project-manage-archives/add/business-affairs/business-affairs.component.html
  63. 124 62
      src/app/routes/project-manage-archives/add/development/development.component.html
  64. 149 43
      src/app/routes/project-manage-archives/add/essential-information/essential-information.component.html
  65. 135 60
      src/app/routes/project-manage-archives/add/implementation/implementation.component.html
  66. 129 62
      src/app/routes/project-manage-archives/add/serviceta/serviceta.component.html
  67. 53 17
      src/app/routes/project-manage-archives/list/list.component.html
  68. 623 207
      src/app/routes/project-manage-archives/update/business-affairs/business-affairs.component.html
  69. 127 62
      src/app/routes/project-manage-archives/update/development/development.component.html
  70. 176 54
      src/app/routes/project-manage-archives/update/essential-information/essential-information.component.html
  71. 124 59
      src/app/routes/project-manage-archives/update/implementation/implementation.component.html
  72. 126 63
      src/app/routes/project-manage-archives/update/serviceta/serviceta.component.html
  73. 173 115
      src/app/routes/project-manage-archives/view/business-affairs/business-affairs.component.html
  74. 91 54
      src/app/routes/project-manage-archives/view/development/development.component.html
  75. 66 29
      src/app/routes/project-manage-archives/view/essential-information/essential-information.component.html
  76. 87 53
      src/app/routes/project-manage-archives/view/implementation/implementation.component.html
  77. 96 55
      src/app/routes/project-manage-archives/view/serviceta/serviceta.component.html
  78. 126 41
      src/app/routes/project-work/development-log/add/add.component.html
  79. 58 19
      src/app/routes/project-work/development-log/development-log.component.html
  80. 123 41
      src/app/routes/project-work/development-log/update/update.component.html
  81. 47 25
      src/app/routes/project-work/development-log/view/view.component.html
  82. 86 36
      src/app/routes/project-work/development-milestone-confirm/add/add.component.html
  83. 57 22
      src/app/routes/project-work/development-milestone-confirm/development-milestone-confirm.component.html
  84. 88 36
      src/app/routes/project-work/development-milestone-confirm/update/update.component.html
  85. 50 28
      src/app/routes/project-work/development-milestone-confirm/view/view.component.html
  86. 128 41
      src/app/routes/project-work/implementation-log/add/add.component.html
  87. 49 19
      src/app/routes/project-work/implementation-log/implementation-log.component.html
  88. 121 41
      src/app/routes/project-work/implementation-log/update/update.component.html
  89. 45 25
      src/app/routes/project-work/implementation-log/view/view.component.html
  90. 95 36
      src/app/routes/project-work/implementation-milestone-confirm/add/add.component.html
  91. 61 22
      src/app/routes/project-work/implementation-milestone-confirm/implementation-milestone-confirm.component.html
  92. 86 36
      src/app/routes/project-work/implementation-milestone-confirm/update/update.component.html
  93. 48 28
      src/app/routes/project-work/implementation-milestone-confirm/view/view.component.html
  94. 71 33
      src/app/routes/project-work/product-confirmation/add/add.component.html
  95. 54 21
      src/app/routes/project-work/product-confirmation/product-confirmation.component.html
  96. 69 32
      src/app/routes/project-work/product-confirmation/update/update.component.html
  97. 52 28
      src/app/routes/project-work/product-confirmation/view/view.component.html
  98. 122 41
      src/app/routes/project-work/service-log/add/add.component.html
  99. 53 19
      src/app/routes/project-work/service-log/service-log.component.html
  100. 127 41
      src/app/routes/project-work/service-log/update/update.component.html

+ 5 - 6
src/app/layout/passport/passport.component.html

@@ -3,9 +3,8 @@
   <div class="wrap">
     <div class="top">
       <div class="head">
-        <img class="logo" src="./assets/logo1.png">
-        <span class="title">项目管理系统</span><span
-          style="margin-left: 10px;"><strong>(v20.1130)</strong></span>
+        <img class="logo" src="./assets/logo1.png" />
+        <span class="title">项目管理系统</span><span style="margin-left: 10px;"><strong>(v20.1130)</strong></span>
         <!-- 测试包才有 -->
         <!-- <span class="title" >(<span style="color: red;">测试</span>)</span> -->
       </div>
@@ -17,9 +16,9 @@
         <!-- Copyright
       <i class="anticon anticon-copyright"></i> 2019 -->
         <!-- <a href="" target="_blank">{{'app.login.technical.support.company' | translate}}</a> -->
-        {{'app.login.technical.support.company' | translate}}
-        {{'app.login.technical.support' | translate}}
+        {{ 'app.login.technical.support.company' | translate }}
+        {{ 'app.login.technical.support' | translate }}
       </span>
     </global-footer>
   </div>
-</div>
+</div>

+ 2 - 1
src/app/routes/automatic-logon/list/list.component.html

@@ -1,6 +1,7 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary">新建</button>
+    <!--新建  -->
+    <button (click)="add()" nz-button nzType="primary">{{ 'new' | translate }}</button>
   </ng-template>
 </page-header>
 <nz-card>

+ 6 - 3
src/app/routes/basedata/customer/details/details.component.html

@@ -1,18 +1,21 @@
 <nz-spin [nzSpinning]="isLoading">
   <form nz-form>
     <nz-form-item>
-      <nz-form-label nzRequired [nzSm]="3" [nzXs]="24">{{ 'customer.code' | translate }}</nz-form-label>
       <!--客户编码-->
+      <nz-form-label nzRequired [nzSm]="3" [nzXs]="24">{{ 'customer.code' | translate }}</nz-form-label>
+
       <nz-form-control [nzSm]="4" [nzXs]="24">
         {{ customer.code }}
       </nz-form-control>
-      <nz-form-label nzRequired [nzSm]="3" [nzXs]="24">{{ 'customer.name' | translate }}</nz-form-label>
       <!--客户名称-->
+      <nz-form-label nzRequired [nzSm]="3" [nzXs]="24">{{ 'customer.name' | translate }}</nz-form-label>
+
       <nz-form-control [nzSm]="4" [nzXs]="24">
         {{ customer.name }}
       </nz-form-control>
-      <nz-form-label [nzSm]="3" [nzXs]="24">{{ 'customer.shortName' | translate }}</nz-form-label>
       <!--客户简称-->
+      <nz-form-label [nzSm]="3" [nzXs]="24">{{ 'customer.shortName' | translate }}</nz-form-label>
+
       <nz-form-control [nzSm]="4" [nzXs]="24">
         {{ customer.shortName }}
       </nz-form-control>

+ 23 - 22
src/app/routes/basedata/customer/edit/edit.component.html

@@ -174,14 +174,14 @@
           nzPlaceHolder="{{ 'select.please.choose' | translate }}"
           [nzDisabled]="false"
           [(ngModel)]="customer.customerClassificationDictValue"
-          name="customerClassificationDictValue">
+          name="customerClassificationDictValue"
+        >
           <nz-option nzLabel="{{ 'select.please.choose' | translate }}" nzValue="" selected="selected"> </nz-option>
           <ng-container *ngFor="let customerClassification of customerClassificationList">
             <nz-option [nzValue]="customerClassification.value" [nzLabel]="customerClassification.text"></nz-option>
           </ng-container>
         </nz-select>
       </nz-form-control>
-
     </nz-form-item>
 
     <!-- 第七行 ------------->
@@ -215,7 +215,6 @@
           nzPlaceHolder="{{ 'select.please.choose' | translate }}"
           [(ngModel)]="customer.baseCustomerIndustryId"
           name="baseCustomerIndustryId"
-         
         >
         </nz-tree-select>
       </nz-form-control>
@@ -294,24 +293,24 @@
         {{ 'higher.unit' | translate }}
       </nz-form-label>
       <!-- 上级单位  禁选 -->
-        <nz-form-control [nzSm]="4" [nzXs]="24">
-          <nz-input-group nzSearch [nzAddOnAfter]="suffixIconButton">
-            <input
-              type="text"
-              [(ngModel)]="customer.parentName"
-              name="parentName"
-              nz-input
-              placeholder="{{ 'select.please.choose' | translate }}"
-              [disabled]="true"
-            />
-          </nz-input-group>
-          <ng-template #suffixIconButton>
-            <!-- 放大镜  勾选列表 -->
-            <button nz-button nzType="primary" nzSearch (click)="modalTable()">
-              <i nz-icon type="search"></i>
-            </button>
-          </ng-template>
-        </nz-form-control>
+      <nz-form-control [nzSm]="4" [nzXs]="24">
+        <nz-input-group nzSearch [nzAddOnAfter]="suffixIconButton">
+          <input
+            type="text"
+            [(ngModel)]="customer.parentName"
+            name="parentName"
+            nz-input
+            placeholder="{{ 'select.please.choose' | translate }}"
+            [disabled]="true"
+          />
+        </nz-input-group>
+        <ng-template #suffixIconButton>
+          <!-- 放大镜  勾选列表 -->
+          <button nz-button nzType="primary" nzSearch (click)="modalTable()">
+            <i nz-icon type="search"></i>
+          </button>
+        </ng-template>
+      </nz-form-control>
       <nz-form-label [nzSm]="3" [nzXs]="24">
         {{ 'use.status' | translate }}
       </nz-form-label>
@@ -585,7 +584,9 @@
     <!-- 按钮 -->
     <div nz-row nzGutter="24">
       <div nz-col nzMd="24" nzLg="24">
-        <button (click)="addRowContacts()" style="margin-bottom:10px;" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
+        <button (click)="addRowContacts()" style="margin-bottom:10px;" nz-button nzType="primary">
+          {{ 'button.add' | translate }}
+        </button>
       </div>
     </div>
 

+ 3 - 2
src/app/routes/basedata/material-file/material-file.component.html

@@ -26,7 +26,9 @@
       <!-- 添加一级 -->
       <div nz-row [nzGutter]="24" style="margin-bottom: 10px;">
         <div nz-col nzMd="24" nzLg="24">
-          <button nz-button nzType="primary" (click)="addMaterial(0)">{{ 'button.leve.one' | translate }}</button>
+          <button nz-button nzType="primary" (click)="addMaterial(0)">
+            {{ 'button.leve.one' | translate }}
+          </button>
         </div>
       </div>
       <!-- 搜索框 -->
@@ -154,7 +156,6 @@
                 </th>
                 <!-- 名称 -->
                 <th nzAlign="center" nzLeft="8vw">{{ 'contract.name' | translate }}</th>
-
                 <!-- 属性 -->
                 <th nzAlign="center">{{ 'property' | translate }}</th>
                 <!-- 状态 -->

+ 1 - 1
src/app/routes/basedata/merchants-industry/add/add.component.html

@@ -30,7 +30,7 @@
 
   <!-- 是否启用 -->
   <nz-form-item>
-    <nz-form-label nzRequired [nzSm]="6" [nzXs]="24">{{ 'is.status' | translate }} </nz-form-label>
+    <nz-form-label nzRequired [nzSm]="6" [nzXs]="24">{{ 'is.status' | translate }}</nz-form-label>
     <nz-form-control [nzSm]="14" [nzXs]="24">
       <nz-switch
         [ngModelOptions]="{ standalone: true }"

+ 46 - 12
src/app/routes/basedata/milestone-category/edit/edit.component.html

@@ -1,33 +1,67 @@
-<nz-modal [(nzVisible)]="isVisible" nzTitle="{{title}}" nzClosable="false" nzWidth="900" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk('')">
-  <form nz-form >
+<nz-modal
+  [(nzVisible)]="isVisible"
+  nzTitle="{{ title }}"
+  nzClosable="false"
+  nzWidth="900"
+  (nzOnCancel)="handleCancel()"
+  (nzOnOk)="handleOk('')"
+>
+  <form nz-form>
     <nz-form-item>
-      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="itemText" nzRequired>{{ 'contract.name' | translate }}</nz-form-label>
+      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="itemText" nzRequired>
+        {{ 'contract.name' | translate }}
+      </nz-form-label>
       <nz-form-control [nzSm]="14" [nzXs]="24">
-        <input nz-input placeholder="{{'please.enter.name'|translate}}" [(ngModel)]="dictitem.itemText" id="itemText" name="itemText"/>
+        <input
+          nz-input
+          placeholder="{{ 'please.enter.name' | translate }}"
+          [(ngModel)]="dictitem.itemText"
+          id="itemText"
+          name="itemText"
+        />
       </nz-form-control>
     </nz-form-item>
     <nz-form-item>
-      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="itemValue" nzRequired>{{'data.value'|translate}}</nz-form-label>
+      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="itemValue" nzRequired>
+        {{ 'data.value' | translate }}
+      </nz-form-label>
       <nz-form-control [nzSm]="14" [nzXs]="24">
-        <input nz-input placeholder="{{'please.enter.data.value'|translate}}" [(ngModel)]="dictitem.itemValue" id="itemValue" name="itemValue"/>
+        <input
+          nz-input
+          placeholder="{{ 'please.enter.data.value' | translate }}"
+          [(ngModel)]="dictitem.itemValue"
+          id="itemValue"
+          name="itemValue"
+        />
       </nz-form-control>
     </nz-form-item>
     <nz-form-item>
-      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="description">{{'depart.description'|translate}}</nz-form-label>
+      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="description">
+        {{ 'depart.description' | translate }}
+      </nz-form-label>
       <nz-form-control [nzSm]="14" [nzXs]="24">
-        <input nz-input placeholder="" [(ngModel)]="dictitem.description" id="description" name="description"/>
+        <input nz-input placeholder="" [(ngModel)]="dictitem.description" id="description" name="description" />
       </nz-form-control>
     </nz-form-item>
     <nz-form-item>
-      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="sortOrder">{{'depart.sort'|translate}}</nz-form-label>
+      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="sortOrder">
+        {{ 'depart.sort' | translate }}
+      </nz-form-label>
       <nz-form-control [nzSm]="14" [nzXs]="24">
-        <input nz-input placeholder="" [(ngModel)]="dictitem.sortOrder" id="sortOrder" name="sortOrder"/>
+        <input nz-input placeholder="" [(ngModel)]="dictitem.sortOrder" id="sortOrder" name="sortOrder" />
       </nz-form-control>
     </nz-form-item>
     <nz-form-item>
-      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="status">{{"depart.Whether.to.enable"|translate}}</nz-form-label>
+      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzFor="status">
+        {{ 'depart.Whether.to.enable' | translate }}
+      </nz-form-label>
       <nz-form-control [nzSm]="14" [nzXs]="24">
-          <nz-switch [(ngModel)]="dictitem.status" name="status" nzCheckedChildren="{{'yes'|translate}}" nzUnCheckedChildren="{{'no'|translate}}"></nz-switch>
+        <nz-switch
+          [(ngModel)]="dictitem.status"
+          name="status"
+          nzCheckedChildren="{{ 'yes' | translate }}"
+          nzUnCheckedChildren="{{ 'no' | translate }}"
+        ></nz-switch>
       </nz-form-control>
     </nz-form-item>
   </form>

+ 9 - 6
src/app/routes/basedata/milestone-category/milestone-category.component.html

@@ -17,16 +17,19 @@
   >
     <thead>
       <tr>
-        <th nzAlign="center">{{ 'contract.name' | translate }}</th>
-        <th nzAlign="center">{{ 'data.value' | translate }}</th>
-        <th nzAlign="center" style="width: 21%">{{ 'table.operation' | translate }}</th>
+        <!-- 名称 -->
+        <th>{{ 'contract.name' | translate }}</th>
+        <!-- 数据值 -->
+        <th>{{ 'data.value' | translate }}</th>
+        <!-- 操作 -->
+        <th style="width: 21%">{{ 'table.operation' | translate }}</th>
       </tr>
     </thead>
     <tbody>
       <tr *ngFor="let data of basicTable.data">
-        <td nzAlign="center">{{ data.itemText }}</td>
-        <td nzAlign="center">{{ data.itemValue }}</td>
-        <td nzAlign="center">
+        <td>{{ data.itemText }}</td>
+        <td>{{ data.itemValue }}</td>
+        <td>
           <a href="javascript:void(0);" (click)="edit(data)">{{ 'table.update' | translate }}</a>
           <nz-divider nzType="vertical"></nz-divider>
           <a href="javascript:void(0);" (click)="delete(data.id)">{{ 'table.delete' | translate }}</a>

+ 64 - 45
src/app/routes/basedata/post/post.component.html

@@ -11,17 +11,17 @@
         <!--按钮操作 -->
         <div nz-row [nzGutter]="24" style="margin-bottom: 10px;">
           <div nz-col nzMd="24" nzLg="24">
-            <button (click)="add()" nz-button acl [acl-ability]="'post:add'"
-              nzType="primary">添加一级</button>
+            <!-- 添加一级 -->
+            <button (click)="add()" nz-button acl [acl-ability]="'post:add'" nzType="primary">
+              {{ 'button.leve.one' | translate }}
+            </button>
           </div>
         </div>
         <!-- 搜索框 -->
         <div nz-row [nzGutter]="24">
           <div nz-col nzMd="24" nzLg="24">
             <nz-input-group [nzSuffix]="suffixIcon" style="width:100%">
-              <input type="text" nz-input
-                placeholder="请输入"
-                [(ngModel)]="searchValue" />
+              <input type="text" nz-input placeholder="{{ 'placeholder' | translate }}" [(ngModel)]="searchValue" />
             </nz-input-group>
             <ng-template #suffixIcon>
               <i nz-icon type="search"></i>
@@ -31,23 +31,29 @@
         <!-- tree -->
         <div nz-row [nzGutter]="24">
           <div nz-col nzMd="24" nzLg="24">
-            <nz-tree [nzData]="nodes" [nzSearchValue]="searchValue" (nzClick)="treeClick($event)"
-              (nzDblClick)="openFolder($event)">
+            <nz-tree
+              [nzData]="nodes"
+              [nzSearchValue]="searchValue"
+              (nzClick)="treeClick($event)"
+              (nzDblClick)="openFolder($event)"
+            >
               <ng-template #contextTemplate>
                 <ul nz-menu nzInDropDown>
                   <li nz-menu-item (click)="addChild()" acl [acl-ability]="'post:add'">
-                    {{ 'button.add' | translate }}</li>
+                    {{ 'button.add' | translate }}
+                  </li>
                   <li nz-menu-item (click)="delete()" acl [acl-ability]="'post:delete'">
-                    {{ 'table.delete' | translate }}</li>
+                    {{ 'table.delete' | translate }}
+                  </li>
                   <li nz-menu-item (click)="cancel()">{{ 'button.cancel' | translate }}</li>
                 </ul>
               </ng-template>
               <ng-template #nzTreeTemplate let-node>
                 <span class="custom-node">
-                  <span *ngIf="!node.isLeaf" (contextmenu)="contextMenu(node.key,$event, contextTemplate)">
+                  <span *ngIf="!node.isLeaf" (contextmenu)="contextMenu(node.key, $event, contextTemplate)">
                     <span class="folder-name">{{ node.title }}</span>
                   </span>
-                  <span *ngIf="node.isLeaf" (contextmenu)="contextMenu(node.key,$event, contextTemplate)">
+                  <span *ngIf="node.isLeaf" (contextmenu)="contextMenu(node.key, $event, contextTemplate)">
                     <span class="file-name">{{ node.title }}</span>
                   </span>
                 </span>
@@ -55,59 +61,72 @@
             </nz-tree>
           </div>
         </div>
-
       </nz-card>
     </div>
 
-
     <!--右边card-->
-  <div nz-col nzMd="24" nzLg="12">
-    <nz-card>
-      <!-- form -->
-      <form nz-form [formGroup]="validateForm" (ngSubmit)="submitForm()">
-        <nz-form-item>
-          <nz-form-label nzRequired [nzSm]="8" [nzXs]="24">职务编码</nz-form-label>
-          <nz-form-control [nzSm]="14" [nzXs]="24">
-            <input formControlName="code" id="code" [(ngModel)]="baseArchivesPost.code" name="code" nz-input
-              placeholder="{{ 'placeholder' | translate }}职务编码" maxlength=3/>
+    <div nz-col nzMd="24" nzLg="12">
+      <nz-card>
+        <!-- form -->
+        <form nz-form [formGroup]="validateForm" (ngSubmit)="submitForm()">
+          <nz-form-item>
+            <nz-form-label nzRequired [nzSm]="8" [nzXs]="24">职务编码</nz-form-label>
+            <nz-form-control [nzSm]="14" [nzXs]="24">
+              <input
+                formControlName="code"
+                id="code"
+                [(ngModel)]="baseArchivesPost.code"
+                name="code"
+                nz-input
+                placeholder="{{ 'placeholder' | translate }}职务编码"
+                maxlength="3"
+              />
               <nz-form-explain *ngIf="validateForm.get('code')?.dirty && validateForm.get('code')?.errors">
                 请输入职务编码
               </nz-form-explain>
-          </nz-form-control>
-        </nz-form-item>
-        <nz-form-item>
-          <nz-form-label nzRequired [nzSm]="8" [nzXs]="24">职务名称</nz-form-label>
-          <nz-form-control [nzSm]="14" [nzXs]="24">
-            <input formControlName="name" id="name" [(ngModel)]="baseArchivesPost.name" name="name" nz-input
-              placeholder="{{ 'placeholder' | translate }}职务名称" maxlength=20/>
+            </nz-form-control>
+          </nz-form-item>
+          <nz-form-item>
+            <nz-form-label nzRequired [nzSm]="8" [nzXs]="24">职务名称</nz-form-label>
+            <nz-form-control [nzSm]="14" [nzXs]="24">
+              <input
+                formControlName="name"
+                id="name"
+                [(ngModel)]="baseArchivesPost.name"
+                name="name"
+                nz-input
+                placeholder="{{ 'placeholder' | translate }}职务名称"
+                maxlength="20"
+              />
               <nz-form-explain *ngIf="validateForm.get('name')?.dirty && validateForm.get('name')?.errors">
                 请输入职务名称
               </nz-form-explain>
-          </nz-form-control>
-        </nz-form-item>
-        <!-- <nz-form-item>
+            </nz-form-control>
+          </nz-form-item>
+          <!-- <nz-form-item>
           <nz-form-label nzRequired [nzSm]="8" [nzXs]="24">是否启用
           </nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
             <nz-switch [ngModelOptions]="{standalone: true}" [(ngModel)]="status" name="status" nzCheckedChildren="是" nzUnCheckedChildren="否"></nz-switch>
           </nz-form-control>
         </nz-form-item> -->
-        <!-- <nz-form-item style="margin-bottom:8px;">
+          <!-- <nz-form-item style="margin-bottom:8px;">
           <nz-form-control [nzSpan]="14" [nzOffset]="8">
             <button nzType="primary" (click)="reset()" nz-button ><span>{{ 'button.reset' | translate }}</span></button>
             <button nzType="primary" (click)="update()" nz-button acl [acl-ability]="'post:update'"><span>{{ 'button.save' | translate }}</span></button>
           </nz-form-control>
         </nz-form-item> -->
-        <nz-form-item >
-          <nz-form-label [nzSm]="8" [nzXs]="24" [nzNoColon]=true>
-          </nz-form-label>
-          <nz-form-control [nzSm]="14" [nzXs]="24">
-            <button nzType="primary" (click)="reset()" nz-button ><span>{{ 'button.reset' | translate }}</span></button>
-            <button nz-button nzType="primary">保存</button>
-          </nz-form-control>
-        </nz-form-item>
-      </form>
-    </nz-card>
-  </div>
+          <nz-form-item>
+            <nz-form-label [nzSm]="8" [nzXs]="24" [nzNoColon]="true"> </nz-form-label>
+            <nz-form-control [nzSm]="14" [nzXs]="24">
+              <button nzType="primary" (click)="reset()" nz-button>
+                <span>{{ 'button.reset' | translate }}</span>
+              </button>
+              <button nz-button nzType="primary">保存</button>
+            </nz-form-control>
+          </nz-form-item>
+        </form>
+      </nz-card>
+    </div>
   </div>
-</nz-card>
+</nz-card>

+ 27 - 11
src/app/routes/basedata/project-approval/add/add.component.html

@@ -1,27 +1,43 @@
 <form nz-form [formGroup]="validateForm" (ngSubmit)="submitForm()">
   <nz-form-item>
-    <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="code">项目编码</nz-form-label>
-    <nz-form-control [nzSm]="14" [nzXs]="24" >
-      <input placeholder="自动生成" nz-input formControlName="code" id="code" [(ngModel)]="baseArchivesProjectApproval.code"/>
+    <!-- 项目编码 -->
+    <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="code">{{ 'project.code' | translate }}</nz-form-label>
+    <nz-form-control [nzSm]="14" [nzXs]="24">
+      <!-- 自动生成 -->
+      <input
+        placeholder="{{ 'aoto.create' | translate }}"
+        nz-input
+        formControlName="code"
+        id="code"
+        [(ngModel)]="baseArchivesProjectApproval.code"
+      />
       <!-- <nz-form-explain *ngIf="validateForm.get('code')?.dirty && validateForm.get('code')?.errors">
         请输入项目编码
       </nz-form-explain> -->
     </nz-form-control>
   </nz-form-item>
   <nz-form-item>
-    <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="name">项目名称</nz-form-label>
-    <nz-form-control [nzSm]="14" [nzXs]="24" >
-      <input nz-input formControlName="name" id="name" [(ngModel)]="baseArchivesProjectApproval.name" maxlength=20/>
+    <!-- 项目名称 -->
+    <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="name">{{ 'cost.item.name' | translate }}</nz-form-label>
+    <nz-form-control [nzSm]="14" [nzXs]="24">
+      <input nz-input formControlName="name" id="name" [(ngModel)]="baseArchivesProjectApproval.name" maxlength="20" />
       <nz-form-explain *ngIf="validateForm.get('name')?.dirty && validateForm.get('name')?.errors">
-        请输入项目名称
+        <!-- 请输入项目名称 -->
+        {{ 'placeholder' | translate }}{{ 'cost.item.name' | translate }}
       </nz-form-explain>
     </nz-form-control>
   </nz-form-item>
   <nz-form-item>
-    <nz-form-label nzRequired [nzSm]="6" [nzXs]="24">是否启用
-    </nz-form-label>
+    <!--是否启用  -->
+    <nz-form-label nzRequired [nzSm]="6" [nzXs]="24">{{ 'is.status' | translate }} </nz-form-label>
     <nz-form-control [nzSm]="14" [nzXs]="24">
-      <nz-switch [ngModelOptions]="{standalone: true}" [(ngModel)]="status" name="status" nzCheckedChildren="是" nzUnCheckedChildren="否"></nz-switch>
+      <nz-switch
+        [ngModelOptions]="{ standalone: true }"
+        [(ngModel)]="status"
+        name="status"
+        nzCheckedChildren="{{ 'yes' | translate }}"
+        nzUnCheckedChildren="{{ 'no' | translate }}"
+      ></nz-switch>
     </nz-form-control>
   </nz-form-item>
-</form>
+</form>

+ 2 - 1
src/app/routes/basedata/project-approval/project-approval.component.html

@@ -73,7 +73,8 @@
           </nz-form-control>
         </nz-form-item>
         <nz-form-item>
-          <nz-form-label nzRequired [nzSm]="8" [nzXs]="24">项目名称</nz-form-label>
+          <!-- 项目名称 -->
+          <nz-form-label nzRequired [nzSm]="8" [nzXs]="24">{{ 'cost.item.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
             <input formControlName="name" id="name" [(ngModel)]="baseArchivesProjectApproval.name" name="name" nz-input
               placeholder="{{ 'placeholder' | translate }}项目名称" maxlength=20/>

+ 2 - 1
src/app/routes/contract-management/contract-file/add/essential-information/essential-information.component.html

@@ -318,7 +318,8 @@
       <!-- 制单人 -->
       <div nz-col [nzSpan]="12">
         <nz-form-item>
-          <nz-form-label [nzSpan]="'vertical' ? 24 : null">制单人</nz-form-label>
+          <!-- 制单人 -->
+          <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{'pm.quotation.Single.person' | translate}}</nz-form-label>
           <nz-form-explain>
             {{contractFile.createBy}}
           </nz-form-explain>

+ 147 - 47
src/app/routes/contract-management/contract-file/add/product-module/product-module.component.html

@@ -1,9 +1,10 @@
 <!-- 产品 -->
-<nz-card nzTitle="产品">
+<nz-card nzTitle="{{ 'product' | translate }}">
   <!-- 操作按钮 -->
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <button nz-button (click)="productAddRow()" nzType="primary">新增</button>
+      <!-- 新增 -->
+      <button nz-button (click)="productAddRow()" nzType="primary">{{ 'button.add' | translate }}</button>
       <br />
       <br />
     </div>
@@ -14,16 +15,37 @@
       <nz-table #productRowTable nzSize="small" class="tableTdPadding" nzBordered [nzData]="productList">
         <thead>
           <tr>
-            <th nzWidth="10%">产品编码</th>
-            <th nzWidth="17%">产品名称</th>
-            <th nzWidth="9%">折扣率</th>
-            <th nzWidth="9%">标准报价</th>
-            <th nzWidth="9%">折扣后单价</th>
-            <th nzWidth="9%">标准金额</th>
-            <th nzWidth="9%">折扣后金额</th>
-            <th nzWidth="9%">成本单价</th>
-            <th nzWidth="9%">成本金额</th>
-            <th nzWidth="10%">操作</th>
+            <!-- 产品编码 -->
+            <th nzWidth="10%">{{ 'product' | translate }}{{ 'table.thead.code' | translate }}</th>
+            <!-- 产品名称 -->
+            <th nzWidth="17%">{{ 'product' | translate }}{{ 'contract.name' | translate }}</th>
+
+            <!-- 折扣率 -->
+            <th nzWidth="9%">{{ 'The discount' | translate }}</th>
+            <!-- 标准报价 -->
+            <th nzWidth="9%">{{ 'standard.quotation' | translate }}</th>
+
+            <!-- 折扣后单价 -->
+            <th nzWidth="9%">
+              {{ 'pm.quotation.Discount' | translate }}{{ 'after' | translate }}{{ 'price' | translate }}
+            </th>
+
+            <!-- 标准金额 -->
+            <th nzWidth="9%">{{ 'standard.amount' | translate }}</th>
+
+            <!-- 折扣后金额 -->
+            <th nzWidth="9%">
+              {{ 'pm.quotation.Discount' | translate }}{{ 'after' | translate }}{{ 'their.fees.money' | translate }}
+            </th>
+
+            <!-- 成本单价 -->
+            <th nzWidth="9%">{{ 'cost' | translate }}{{ 'price' | translate }}</th>
+
+            <!--成本金额  -->
+            <th nzWidth="9%">{{ 'cost' | translate }}{{ 'their.fees.money' | translate }}</th>
+
+            <!-- 操作 -->
+            <th nzWidth="10%">{{ 'table.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
@@ -31,8 +53,13 @@
             <td><input type="text" nz-input [(ngModel)]="data.code" disabled="true" /></td>
             <td>
               <nz-input-group nzSearch [nzAddOnAfter]="suffixIconButton">
-                <input type="text" [(ngModel)]="data.name" nz-input
-                  placeholder="{{ 'select.please.choose' | translate }}" disabled="true" />
+                <input
+                  type="text"
+                  [(ngModel)]="data.name"
+                  nz-input
+                  placeholder="{{ 'select.please.choose' | translate }}"
+                  disabled="true"
+                />
               </nz-input-group>
               <ng-template #suffixIconButton>
                 <!-- 放大镜  勾选列表 -->
@@ -42,36 +69,72 @@
               </ng-template>
             </td>
             <td>
-              <nz-input-number [nzMin]="0" [(ngModel)]="data.discountRate" [nzFormatter]="formatterDollar2" [nzParser]="parserDollar2"></nz-input-number>
+              <nz-input-number
+                [nzMin]="0"
+                [(ngModel)]="data.discountRate"
+                [nzFormatter]="formatterDollar2"
+                [nzParser]="parserDollar2"
+              ></nz-input-number>
             </td>
             <td>
-              <nz-input-number [nzMin]="0" [nzDisabled]="true" [(ngModel)]="data.standardQuotation"
-                [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number>
+              <nz-input-number
+                [nzMin]="0"
+                [nzDisabled]="true"
+                [(ngModel)]="data.standardQuotation"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+              ></nz-input-number>
             </td>
             <td>
-              <nz-input-number [nzMin]="0" [(ngModel)]="data.unitPriceAfterDiscount" (nzBlur)="unitPriceAfterDiscountBlur(data)" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar"></nz-input-number>
+              <nz-input-number
+                [nzMin]="0"
+                [(ngModel)]="data.unitPriceAfterDiscount"
+                (nzBlur)="unitPriceAfterDiscountBlur(data)"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+              ></nz-input-number>
             </td>
             <td>
-              <nz-input-number [nzMin]="0" [(ngModel)]="data.standardAmount" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar"></nz-input-number>
+              <nz-input-number
+                [nzMin]="0"
+                [(ngModel)]="data.standardAmount"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+              ></nz-input-number>
             </td>
             <td>
-              <nz-input-number [nzMin]="0" [(ngModel)]="data.amountAfterDiscount" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar"></nz-input-number>
+              <nz-input-number
+                [nzMin]="0"
+                [(ngModel)]="data.amountAfterDiscount"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+              ></nz-input-number>
             </td>
             <td>
-              <nz-input-number [nzMin]="0" [(ngModel)]="data.costUnitPrice" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar"></nz-input-number>
+              <nz-input-number
+                [nzMin]="0"
+                [(ngModel)]="data.costUnitPrice"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+              ></nz-input-number>
             </td>
             <td>
-              <nz-input-number [nzMin]="0" [(ngModel)]="data.costAmount" [nzFormatter]="formatterDollar"
-                [nzParser]="parserDollar"></nz-input-number>
+              <nz-input-number
+                [nzMin]="0"
+                [(ngModel)]="data.costAmount"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+              ></nz-input-number>
             </td>
             <td>
-              <a nz-popconfirm nzTitle="{{ 'confirm.to.delete' | translate }}?" nzOkText="{{ 'yes' | translate }}"
+              <a
+                nz-popconfirm
+                nzTitle="{{ 'confirm.to.delete' | translate }}?"
+                nzOkText="{{ 'yes' | translate }}"
                 nzCancelText="{{ 'no' | translate }}"
-                (nzOnConfirm)="productDeleteRow(data)">{{ 'table.delete' | translate }}</a>
+                (nzOnConfirm)="productDeleteRow(data)"
+                >{{ 'table.delete' | translate }}</a
+              >
             </td>
           </tr>
         </tbody>
@@ -80,13 +143,15 @@
   </div>
 </nz-card>
 
-<nz-card nzTitle="模块">
+<!-- 模块 -->
+<nz-card nzTitle="{{ 'module' | translate }}">
   <nz-tabset>
     <nz-tab *ngFor="let product of productList" [nzTitle]="product.name">
       <!-- 操作按钮 -->
       <div nz-row [nzGutter]="24">
         <div nz-col [nzSpan]="24">
-          <button nz-button (click)="moduleAddRow(product)" nzType="primary">新增</button>
+          <!-- 新增 -->
+          <button nz-button (click)="moduleAddRow(product)" nzType="primary">{{ 'button.add' | translate }}</button>
           <br />
           <br />
         </div>
@@ -94,39 +159,74 @@
       <!-- 表格 -->
       <div nz-row [nzGutter]="24">
         <div nz-col [nzSpan]="24">
-          <nz-table #moduleRowTable nzSize="small" class="tableTdPadding" nzBordered
-            [nzData]="product.contractFileModularList">
+          <nz-table
+            #moduleRowTable
+            nzSize="small"
+            class="tableTdPadding"
+            nzBordered
+            [nzData]="product.contractFileModularList"
+          >
             <thead>
               <tr>
-                <th nzWidth="30%">产品模块编码</th>
-                <th nzWidth="30%">产品模块名称</th>
-                <th nzWidth="10%">标准报价</th>
-                <th nzWidth="10%">采购价格</th>
-                <th nzWidth="20%">操作</th>
+                <!-- 产品模块编码 -->
+                <th nzWidth="30%">{{ 'product' | translate }}{{ 'module.code' | translate }}</th>
+
+                <!-- 产品模块名称 -->
+                <th nzWidth="30%">{{ 'product' | translate }}{{ 'module.name' | translate }}</th>
+
+                <!-- 标准报价 -->
+                <th nzWidth="10%">{{ 'standard.quotation' | translate }}</th>
+
+                <!-- 采购价格 -->
+                <th nzWidth="10%">{{ 'procurement' | translate }}{{ 'the.price' | translate }}</th>
+
+                <!-- 操作 -->
+                <th nzWidth="20%">{{ 'table.operation' | translate }}</th>
               </tr>
             </thead>
             <tbody>
               <tr *ngFor="let data of moduleRowTable.data" class="editable-row">
                 <td><input disabled="true" type="text" nz-input [(ngModel)]="data.code" /></td>
                 <td>
-                  <nz-select style="width:100%" nzShowSearch nzAllowClear [(ngModel)]="data.baseMaterialFileModularId"
-                    nzPlaceHolder="请选择" (ngModelChange)="baseMaterialFileModularIdChange(product,data,$event)">
+                  <nz-select
+                    style="width:100%"
+                    nzShowSearch
+                    nzAllowClear
+                    [(ngModel)]="data.baseMaterialFileModularId"
+                    nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                    (ngModelChange)="baseMaterialFileModularIdChange(product, data, $event)"
+                  >
                     <nz-option *ngFor="let i of product.modularListSelect" [nzValue]="i.id" [nzLabel]="i.name">
                     </nz-option>
                   </nz-select>
                 </td>
                 <td>
-                  <nz-input-number [nzMin]="0" [nzDisabled]="true" [(ngModel)]="data.standardQuotation" [nzFormatter]="formatterDollar"
-                    [nzParser]="parserDollar" (ngModelChange)="standardQuotationModuleKeyUp(product)"></nz-input-number>
+                  <nz-input-number
+                    [nzMin]="0"
+                    [nzDisabled]="true"
+                    [(ngModel)]="data.standardQuotation"
+                    [nzFormatter]="formatterDollar"
+                    [nzParser]="parserDollar"
+                    (ngModelChange)="standardQuotationModuleKeyUp(product)"
+                  ></nz-input-number>
                 </td>
                 <td>
-                  <nz-input-number [nzMin]="0" [(ngModel)]="data.purchasePrice"  [nzFormatter]="formatterDollar"
-                    [nzParser]="parserDollar"></nz-input-number>
+                  <nz-input-number
+                    [nzMin]="0"
+                    [(ngModel)]="data.purchasePrice"
+                    [nzFormatter]="formatterDollar"
+                    [nzParser]="parserDollar"
+                  ></nz-input-number>
                 </td>
                 <td>
-                  <a nz-popconfirm nzTitle="{{ 'confirm.to.delete' | translate }}?" nzOkText="{{ 'yes' | translate }}"
+                  <a
+                    nz-popconfirm
+                    nzTitle="{{ 'confirm.to.delete' | translate }}?"
+                    nzOkText="{{ 'yes' | translate }}"
                     nzCancelText="{{ 'no' | translate }}"
-                    (nzOnConfirm)="moduleDeleteRow(product,data.id)">{{ 'table.delete' | translate }}</a>
+                    (nzOnConfirm)="moduleDeleteRow(product, data.id)"
+                    >{{ 'table.delete' | translate }}</a
+                  >
                 </td>
               </tr>
             </tbody>
@@ -135,4 +235,4 @@
       </div>
     </nz-tab>
   </nz-tabset>
-</nz-card>
+</nz-card>

+ 13 - 8
src/app/routes/contract-management/contract-file/contract-file.component.html

@@ -84,19 +84,24 @@
               <nz-divider nzType="vertical"></nz-divider>
               <!-- 删除 -->
               <!-- <a (click)="delete(data.id)">{{ 'table.delete' | translate }}</a> -->
-              
-              <a nz-popconfirm nzTitle="{{ 'confirm.to.delete' | translate }}?" nzOkText="{{ 'yes' | translate }}"
+
+              <a
+                nz-popconfirm
+                nzTitle="{{ 'confirm.to.delete' | translate }}?"
+                nzOkText="{{ 'yes' | translate }}"
                 nzCancelText="{{ 'no' | translate }}"
-                (nzOnConfirm)="delete(data.id)">{{ 'table.delete' | translate }}</a>
-                <!-- 更多 -->
+                (nzOnConfirm)="delete(data.id)"
+                >{{ 'table.delete' | translate }}</a
+              >
+              <!-- 更多 -->
               <nz-divider nzType="vertical"></nz-divider>
               <nz-dropdown>
-                <a nz-dropdown> {{'menu.more'|translate}} <i nz-icon type="down"></i> </a>
+                <a nz-dropdown> {{ 'menu.more' | translate }} <i nz-icon type="down"></i> </a>
                 <ul nz-menu nzSelectable>
                   <!-- 修改 -->
-                  <li nz-menu-item >
-                    <a href="javascript:;"
-                      (click)="submitProcess(data.id)">提交流程</a>
+                  <li nz-menu-item>
+                    <!-- 提交流程 -->
+                    <a href="javascript:;" (click)="submitProcess(data.id)">{{ 'submit.process' | translate }}</a>
                   </li>
                 </ul>
               </nz-dropdown>

+ 1 - 0
src/app/routes/contract-management/contract-file/update/essential-information/essential-information.component.html

@@ -65,6 +65,7 @@
         <nz-form-item>
           <nz-form-label [nzSpan]="'vertical' ? 24 : null" [nzXs]="24" nzRequired>
             {{ 'financial.management.milestoneName' | translate }}
+            {{ 'financial.management.type' | translate }}
           </nz-form-label>
           <nz-form-control [nzSm]="24" [nzXs]="24">
             <nz-select

+ 9 - 18
src/app/routes/contract-management/contract-file/update/product-module/product-module.component.html

@@ -1,5 +1,5 @@
 <!-- 产品 -->
-<nz-card nzTitle="产品">
+<nz-card nzTitle="{{ 'product' | translate }}">
   <!-- 操作按钮 -->
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
@@ -26,9 +26,7 @@
 
             <!-- 折扣后单价 -->
             <th nzWidth="9%">
-              {{ 'pm.quotation.Discount' | translate }}
-              {{ 'after' | translate }}
-              {{ 'price' | translate }}
+              {{ 'pm.quotation.Discount' | translate }}{{ 'after' | translate }}{{ 'price' | translate }}
             </th>
 
             <!-- 标准金额 -->
@@ -36,22 +34,14 @@
 
             <!-- 折扣后金额 -->
             <th nzWidth="9%">
-              {{ 'pm.quotation.Discount' | translate }}
-              {{ 'after' | translate }}
-              {{ 'their.fees.money' | translate }}
+              {{ 'pm.quotation.Discount' | translate }}{{ 'after' | translate }}{{ 'their.fees.money' | translate }}
             </th>
 
             <!-- 成本单价 -->
-            <th nzWidth="9%">
-              {{ 'cost' | translate }}
-              {{ 'price' | translate }}
-            </th>
+            <th nzWidth="9%">{{ 'cost' | translate }}{{ 'price' | translate }}</th>
 
             <!--成本金额  -->
-            <th nzWidth="9%">
-              {{ 'cost' | translate }}
-              {{ 'their.fees.money' | translate }}
-            </th>
+            <th nzWidth="9%">{{ 'cost' | translate }}{{ 'their.fees.money' | translate }}</th>
 
             <!-- 操作 -->
             <th nzWidth="10%">{{ 'table.operation' | translate }}</th>
@@ -141,7 +131,9 @@
                 nzTitle="{{ 'confirm.to.delete' | translate }}?"
                 nzOkText="{{ 'yes' | translate }}"
                 nzCancelText="{{ 'no' | translate }}"
-                (nzOnConfirm)="productDeleteRow(data)">{{ 'table.delete' | translate }}</a>
+                (nzOnConfirm)="productDeleteRow(data)"
+                >{{ 'table.delete' | translate }}</a
+              >
             </td>
           </tr>
         </tbody>
@@ -186,8 +178,7 @@
 
                 <!-- 采购价格 -->
                 <th nzWidth="10%">
-                  {{ 'procurement' | translate }}
-                  {{ 'the.price' | translate }}
+                  {{ 'procurement' | translate }}{{ 'the.price' | translate }}
                 </th>
 
                 <!-- 操作 -->

+ 3 - 3
src/app/routes/contract-management/contract-process-view/process-view/essential-information/essential-information.component.html

@@ -250,9 +250,9 @@
       <!-- 制单人 -->
       <div nz-col [nzSpan]="12">
         <nz-form-item>
-          <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{
-            'pm.quotation.Single.person' | translate
-          }}</nz-form-label>
+          <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+            {{'pm.quotation.Single.person' | translate}}
+          </nz-form-label>
           <nz-form-control [nzSm]="24" [nzXs]="24">
             {{contractFile.createBy}}
           </nz-form-control>

+ 14 - 14
src/app/routes/contract-management/contract-process-view/process-view/product-module/product-module.component.html

@@ -1,5 +1,5 @@
 <!-- 产品 -->
-<nz-card nzTitle="产品">
+<nz-card nzTitle="{{ 'product' | translate }}">
   <!-- 表格 -->
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
@@ -49,30 +49,30 @@
         </thead>
         <tbody>
           <tr *ngFor="let data of productRowTable.data" class="editable-row">
-            <td>{{data.code}}</td>
+            <td>{{ data.code }}</td>
             <td>
-              {{data.name}}
+              {{ data.name }}
             </td>
             <td>
-              {{data.discountRate}}
+              {{ data.discountRate }}
             </td>
             <td>
-              {{data.standardQuotation}}
+              {{ data.standardQuotation }}
             </td>
             <td>
-              {{data.unitPriceAfterDiscount}}
+              {{ data.unitPriceAfterDiscount }}
             </td>
             <td>
-              {{data.standardAmount}}
+              {{ data.standardAmount }}
             </td>
             <td>
-              {{data.amountAfterDiscount}}
+              {{ data.amountAfterDiscount }}
             </td>
             <td>
-              {{data.costUnitPrice}}
+              {{ data.costUnitPrice }}
             </td>
             <td>
-              {{data.costAmount}}
+              {{ data.costAmount }}
             </td>
           </tr>
         </tbody>
@@ -110,15 +110,15 @@
             </thead>
             <tbody>
               <tr *ngFor="let data of moduleRowTable.data" class="editable-row">
-                <td>{{data.code}}</td>
+                <td>{{ data.code }}</td>
                 <td>
-                  {{data.baseMaterialFileModularId}}
+                  {{ data.baseMaterialFileModularId }}
                 </td>
                 <td>
-                  {{data.standardQuotation}}
+                  {{ data.standardQuotation }}
                 </td>
                 <td>
-                  {{data.purchasePrice}}
+                  {{ data.purchasePrice }}
                 </td>
               </tr>
             </tbody>

+ 6 - 3
src/app/routes/delon/cache/cache.component.html

@@ -1,10 +1,13 @@
 <div class="alain-default__content-title">
   <h1>
-    Cache 缓存,
+    <!-- 缓存 -->
+    Cache{{ 'cache' | translate }},
     <a href="https://ng-alain.com/components/cache" target="_blank">Document</a>
   </h1>
 </div>
 <nz-card nzTitle="Service">
-  <button nz-button (click)="set()">设置</button>
-  <button nz-button (click)="get()" class="ml-sm">获取</button>
+  <!-- 设置 -->
+  <button nz-button (click)="set()">{{ 'menu.extras.settings' | translate }}</button>
+  <!-- 获取 -->
+  <button nz-button (click)="get()" class="ml-sm">{{ 'get' | translate }}</button>
 </nz-card>

+ 71 - 25
src/app/routes/down-payment-management/collection-confirmation/collection-confirmation.component.html

@@ -9,7 +9,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)]="managerPaymentAndReceiptSlip.billcode" />
           </nz-form-control>
@@ -17,9 +18,14 @@
       </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>
@@ -28,21 +34,40 @@
   <!-- 表格 -->
   <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>说明</th>
-            <th>对应发票</th>
-            <th>操作</th>
+            <!-- 单据编码 -->
+            <th>{{ 'documents.code' | translate }}</th>
+            <!-- 客户编码 -->
+            <th>{{ 'customer.code' | translate }}</th>
+            <!-- 客户名称 -->
+            <th>{{ 'customer.name' | translate }}</th>
+            <!-- 项目编码 -->
+            <th>{{ 'project.code' | translate }}</th>
+            <!-- 项目名称 -->
+            <th>{{ 'cost.item.name' | translate }}</th>
+            <!-- 收付款条线 -->
+            <th>{{ 'receiving.line' | translate }}</th>
+            <!-- 里程碑 -->
+            <th>{{ 'milestone.milestone' | translate }}</th>
+            <!--  收款金额-->
+            <th>{{ 'collection' | translate }}{{ 'their.fees.money' | translate }}</th>
+            <!--说明  -->
+            <th>{{ 'instructions' | translate }}</th>
+            <!-- 对应发票 -->
+            <th>{{ 'corresponding.invoice' | translate }}</th>
+            <!-- 操作 -->
+            <th>{{ 'table.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
@@ -53,30 +78,51 @@
             <td>{{ data.proCode }}</td>
             <td>{{ data.proName }}</td>
             <td>
-              {{data.coArchivesName}}
+              {{ data.coArchivesName }}
             </td>
             <td>
-              {{data.proArchivesMilestone}}
+              {{ data.proArchivesMilestone }}
             </td>
             <td>
               <!-- 已确认显示 -->
-              <nz-input-number *ngIf="data.status==='1'" [nzDisabled]="true"  [(ngModel)]="data.coPrvice" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number>
+              <nz-input-number
+                *ngIf="data.status === '1'"
+                [nzDisabled]="true"
+                [(ngModel)]="data.coPrvice"
+                [nzMin]="0"
+                [nzMax]="10000000000"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+              ></nz-input-number>
               <!-- 待确认显示 -->
-              <nz-input-number *ngIf="data.status==='0'" [(ngModel)]="data.coPrvice" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number>
+              <nz-input-number
+                *ngIf="data.status === '0'"
+                [(ngModel)]="data.coPrvice"
+                [nzMin]="0"
+                [nzMax]="10000000000"
+                [nzStep]="1"
+                [nzFormatter]="formatterDollar"
+                [nzParser]="parserDollar"
+              ></nz-input-number>
             </td>
             <td>
-              {{data.explain}}
+              {{ data.explain }}
             </td>
             <td>
-              {{data.invoice}}
+              {{ data.invoice }}
             </td>
             <td>
-              <a *ngIf="data.status==='0'" (click)="toBeConfirmed(data)" acl [acl-ability]="'receipt:update'">待确认</a>
-              <nz-tag *ngIf="data.status==='1'" [nzColor]="'green'">已确认</nz-tag>
+              <!-- 带确认 -->
+              <a *ngIf="data.status === '0'" (click)="toBeConfirmed(data)" acl [acl-ability]="'receipt:update'">{{
+                'waiting.confim' | translate
+              }}</a>
+              <!-- 已确认 -->
+              <nz-tag *ngIf="data.status === '1'" [nzColor]="'green'">{{ 'have.confim' | translate }}</nz-tag>
             </td>
           </tr>
         </tbody>
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 120 - 49
src/app/routes/down-payment-management/payment-slip/add/add.component.html

@@ -3,9 +3,11 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <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">
-            自动生成
+            <!-- 自动生成 -->
+            {{ 'aoto.create' | translate }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -13,47 +15,58 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户编码</nz-form-label>
+          <!-- 客户编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusCode}}
+            {{ managerPaymentAndReceiptSlip.cusCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户名称</nz-form-label>
+          <!-- 客户名称 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusName}}
+            {{ managerPaymentAndReceiptSlip.cusName }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">项目编码</nz-form-label>
+          <!-- 项目编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.proCode}}
+            {{ managerPaymentAndReceiptSlip.proCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <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)]="managerPaymentAndReceiptSlip.proId" nzPlaceHolder="请选择"
-              (ngModelChange)="proChange($event)">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proId"
+              id="proId"
+              [(ngModel)]="managerPaymentAndReceiptSlip.proId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              (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">
-              请选择项目名称
+            <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>
   </form>
-<!-- 子表数据 -->
+  <!-- 子表数据 -->
   <nz-card>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
@@ -63,52 +76,105 @@
     </div>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-          [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center">序号</th>
-              <th>收付款条线</th>
-              <th>里程碑</th>
-              <th>付款金额</th>
-              <th>说明</th>
-              <th>对应发票</th>
-              <th>操作</th>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 收付款条线 -->
+              <th>{{ 'receiving.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 付款金额 -->
+              <th>{{ 'payFor' | translate }}{{ 'their.fees.money' | translate }}</th>
+              <!-- 说明 -->
+              <th>{{ 'instructions' | translate }}</th>
+              <!-- 对应发票 -->
+              <th>{{ 'corresponding.invoice' | translate }}</th>
+              <!-- 操作 -->
+              <th>{{ '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 style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.coArchivesId" nzPlaceHolder="请选择" (ngModelChange)="coArchivesIdChange(data)">
-                <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.coArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="coArchivesIdChange(data)"
+                >
+                  <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
+                </nz-select>
               </td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.proArchivesId" nzPlaceHolder="请选择"
-                (ngModelChange)="proBusinessChange(data)">
-                <nz-option *ngFor="let i of data.proArchivesIdList" [nzValue]="i.mileId" [nzLabel]="i.mileName"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.proArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="proBusinessChange(data)"
+                >
+                  <nz-option
+                    *ngFor="let i of data.proArchivesIdList"
+                    [nzValue]="i.mileId"
+                    [nzLabel]="i.mileName"
+                  ></nz-option>
+                </nz-select>
               </td>
               <td>
-                <nz-input-number [(ngModel)]="data.coPrvice" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar" (ngModelChange)="coPrviceKeyUp()"></nz-input-number>
+                <nz-input-number
+                  [(ngModel)]="data.coPrvice"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                  (ngModelChange)="coPrviceKeyUp()"
+                ></nz-input-number>
               </td>
               <td>
                 <textarea rows="1" nz-input [(ngModel)]="data.explain"></textarea>
               </td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzAllowClear nzShowSearch [(ngModel)]="data.invoiceId" nzPlaceHolder="请选择"
+                <nz-select
+                  style="width: 100%;"
+                  nzAllowClear
+                  nzShowSearch
+                  [(ngModel)]="data.invoiceId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                >
+                  <nz-option *ngFor="let i of invoiceIdList" [nzValue]="i.id" [nzLabel]="i.billcode"></nz-option>
+                </nz-select>
+              </td>
+              <td>
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                  >{{ 'table.delete' | translate }}</a
                 >
-                <nz-option *ngFor="let i of invoiceIdList" [nzValue]="i.id" [nzLabel]="i.billcode"></nz-option>
-              </nz-select>
               </td>
-              <td ><a nz-popconfirm nzTitle="是否删除?"
-                  (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
             </tr>
-            <tr *ngIf="itemDataList&&itemDataList.length>0">
+            <tr *ngIf="itemDataList && itemDataList.length > 0">
               <td colSpan="2"></td>
-              <td><strong>付款总金额</strong></td>
-              <td><strong>$ {{managerPaymentAndReceiptSlip.totalPrice}}</strong></td>
+              <!-- 付款总金额 -->
+              <td>
+                <strong>{{ 'payFor.total.amount' | translate }}</strong>
+              </td>
+              <td>
+                <strong>$ {{ managerPaymentAndReceiptSlip.totalPrice }}</strong>
+              </td>
               <td colSpan="3"></td>
             </tr>
           </tbody>
@@ -120,11 +186,16 @@
 <!-- 按钮 -->
 <div class="base">
   <!-- 关闭按钮 -->
-  <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>

+ 80 - 52
src/app/routes/down-payment-management/payment-slip/payment-slip.component.html

@@ -1,62 +1,90 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'payment-slip:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'payment-slip:add'">
+      {{ 'cost.new' | translate }}
+    </button>
   </ng-template>
 </page-header>
 <nz-card>
   <!-- 查询条件 -->
- <form nz-form>
-  <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-control [nzSm]="14" [nzXs]="24">
-          <input nz-input name="code" [(ngModel)]="managerPaymentAndReceiptSlip.billcode" />
-        </nz-form-control>
-      </nz-form-item>
+  <form nz-form>
+    <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">{{ 'documents.code' | translate }}</nz-form-label>
+          <nz-form-control [nzSm]="14" [nzXs]="24">
+            <input nz-input name="code" [(ngModel)]="managerPaymentAndReceiptSlip.billcode" />
+          </nz-form-control>
+        </nz-form-item>
+      </div>
+      <div nz-col [nzSpan]="8">
+        <nz-form-item>
+          <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>{{ 'button.query' | translate }}</span>
+            </button>
+          </nz-form-control>
+        </nz-form-item>
+      </div>
     </div>
-    <div nz-col [nzSpan]="8">
-      <nz-form-item>
-        <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>
-        </nz-form-control>
-      </nz-form-item>
+  </form>
+  <!-- 表格 -->
+  <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"
+      >
+        <thead>
+          <tr>
+            <!-- 单据编码 -->
+            <th>{{ 'documents.code' | translate }}</th>
+            <!-- 客户编码-->
+            <th>{{ 'customer.code' | translate }}</th>
+            <!-- 客户名称 -->
+            <th>{{ 'customer.name' | translate }}</th>
+            <!-- 项目编码 -->
+            <th>{{ 'project.code' | translate }}</th>
+            <!-- 项目名称 -->
+            <th>{{ 'cost.item.name' | translate }}</th>
+            <!-- 操作 -->
+            <th>{{ 'table.operation' | translate }}</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr *ngFor="let data of basicTable.data">
+            <td>{{ data.billcode }}</td>
+            <td>{{ data.cusCode }}</td>
+            <td>{{ data.cusName }}</td>
+            <td>{{ data.proCode }}</td>
+            <td>{{ data.proName }}</td>
+            <td>
+              <!-- 详情 修改 删除 -->
+              <a (click)="view(data)" acl [acl-ability]="'payment-slip:view'">
+                {{ 'table.view' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'payment-slip:view'"></nz-divider>
+              <a (click)="update(data)" acl [acl-ability]="'payment-slip:update'">
+                {{ 'table.update' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'payment-slip:update'"></nz-divider>
+              <a (click)="delete(data.id)" acl [acl-ability]="'payment-slip:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
+            </td>
+          </tr>
+        </tbody>
+      </nz-table>
     </div>
   </div>
-</form>
- <!-- 表格 -->
- <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">
-      <thead>
-        <tr>
-          <th>单据编码</th>
-          <th>客户编码</th>
-          <th>客户名称</th>
-          <th>项目编码</th>
-          <th>项目名称</th>
-          <th>操作</th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr *ngFor="let data of basicTable.data">
-          <td>{{ data.billcode }}</td>
-          <td>{{ data.cusCode }}</td>
-          <td>{{ data.cusName }}</td>
-          <td>{{ data.proCode }}</td>
-          <td>{{ data.proName }}</td>
-          <td>
-            <a (click)="view(data)" acl [acl-ability]="'payment-slip:view'">详情</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'payment-slip:view'"></nz-divider>
-            <a (click)="update(data)" acl [acl-ability]="'payment-slip:update'">修改</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'payment-slip:update'"></nz-divider>
-            <a (click)="delete(data.id)" acl [acl-ability]="'payment-slip:delete'">删除</a>
-          </td>
-        </tr>
-      </tbody>
-    </nz-table>
-  </div>
-</div>
 </nz-card>

+ 120 - 49
src/app/routes/down-payment-management/payment-slip/update/update.component.html

@@ -3,9 +3,11 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <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">
-            自动生成
+            <!-- 自动生成 -->
+            {{ 'aoto.create' | translate }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -13,47 +15,58 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户编码</nz-form-label>
+          <!-- 客户编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusCode}}
+            {{ managerPaymentAndReceiptSlip.cusCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户名称</nz-form-label>
+          <!-- 客户名称 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusName}}
+            {{ managerPaymentAndReceiptSlip.cusName }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">项目编码</nz-form-label>
+          <!-- 项目编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.proCode}}
+            {{ managerPaymentAndReceiptSlip.proCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <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)]="managerPaymentAndReceiptSlip.proId" nzPlaceHolder="请选择"
-              (ngModelChange)="proChange($event)">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proId"
+              id="proId"
+              [(ngModel)]="managerPaymentAndReceiptSlip.proId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              (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">
-              请选择项目名称
+            <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>
   </form>
-<!-- 子表数据 -->
+  <!-- 子表数据 -->
   <nz-card>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
@@ -63,52 +76,105 @@
     </div>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-          [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center">序号</th>
-              <th>收付款条线</th>
-              <th>里程碑</th>
-              <th>付款金额</th>
-              <th>说明</th>
-              <th>对应发票</th>
-              <th>操作</th>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 收付款条线 -->
+              <th>{{ 'receiving.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 付款金额 -->
+              <th>{{ 'payFor' | translate }}{{ 'their.fees.money' | translate }}</th>
+              <!-- 说明 -->
+              <th>{{ 'instructions' | translate }}</th>
+              <!-- 对应发票 -->
+              <th>{{ 'corresponding.invoice' | translate }}</th>
+              <!-- 操作 -->
+              <th>{{ 'table.operation' | translate }}</th>
             </tr>
           </thead>
           <tbody>
-            <tr *ngFor="let data of basicTable.data;let i=index">
-              <td nzAlign="center">{{i+1}}{{data.sort}}</td>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}{{ data.sort }}</td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.coArchivesId" nzPlaceHolder="请选择" (ngModelChange)="coArchivesIdChange(data)">
-                <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.coArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="coArchivesIdChange(data)"
+                >
+                  <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
+                </nz-select>
               </td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.proArchivesId" nzPlaceHolder="请选择"
-                (ngModelChange)="proBusinessChange(data,'1')">
-                <nz-option *ngFor="let i of data.proArchivesIdList" [nzValue]="i.mileId" [nzLabel]="i.mileName"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.proArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="proBusinessChange(data, '1')"
+                >
+                  <nz-option
+                    *ngFor="let i of data.proArchivesIdList"
+                    [nzValue]="i.mileId"
+                    [nzLabel]="i.mileName"
+                  ></nz-option>
+                </nz-select>
               </td>
               <td>
-                <nz-input-number [(ngModel)]="data.coPrvice" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar" (ngModelChange)="coPrviceKeyUp()"></nz-input-number>
+                <nz-input-number
+                  [(ngModel)]="data.coPrvice"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                  (ngModelChange)="coPrviceKeyUp()"
+                ></nz-input-number>
               </td>
               <td>
                 <textarea rows="1" nz-input [(ngModel)]="data.explain"></textarea>
               </td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzAllowClear nzShowSearch [(ngModel)]="data.invoiceId" nzPlaceHolder="请选择"
+                <nz-select
+                  style="width: 100%;"
+                  nzAllowClear
+                  nzShowSearch
+                  [(ngModel)]="data.invoiceId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                >
+                  <nz-option *ngFor="let i of invoiceIdList" [nzValue]="i.id" [nzLabel]="i.billcode"></nz-option>
+                </nz-select>
+              </td>
+              <td>
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                  >{{ 'table.delete' | translate }}</a
                 >
-                <nz-option *ngFor="let i of invoiceIdList" [nzValue]="i.id" [nzLabel]="i.billcode"></nz-option>
-              </nz-select>
               </td>
-              <td ><a nz-popconfirm nzTitle="是否删除?"
-                  (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
             </tr>
-            <tr *ngIf="itemDataList&&itemDataList.length>0">
+            <tr *ngIf="itemDataList && itemDataList.length > 0">
               <td colSpan="2"></td>
-              <td><strong>付款总金额</strong></td>
-              <td><strong>$ {{managerPaymentAndReceiptSlip.totalPrice}}</strong></td>
+              <!-- 付款总金额 -->
+              <td>
+                <strong>{{ 'payFor.total.amount' | translate }}</strong>
+              </td>
+              <td>
+                <strong>$ {{ managerPaymentAndReceiptSlip.totalPrice }}</strong>
+              </td>
               <td colSpan="3"></td>
             </tr>
           </tbody>
@@ -120,11 +186,16 @@
 <!-- 按钮 -->
 <div class="base">
   <!-- 关闭按钮 -->
-  <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>

+ 56 - 36
src/app/routes/down-payment-management/payment-slip/view/view.component.html

@@ -1,11 +1,12 @@
 <nz-spin [nzSpinning]="isLoadingSave">
-  <form nz-form >
+  <form nz-form>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <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">
-            {{managerPaymentAndReceiptSlip.billcode}}
+            {{ managerPaymentAndReceiptSlip.billcode }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -13,78 +14,96 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户编码</nz-form-label>
+          <!-- 客户编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusCode}}
+            {{ managerPaymentAndReceiptSlip.cusCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户名称</nz-form-label>
+          <!-- 客户名称 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusName}}
+            {{ managerPaymentAndReceiptSlip.cusName }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">项目编码</nz-form-label>
+          <!-- 项目编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.proCode}}
+            {{ managerPaymentAndReceiptSlip.proCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <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">
-            {{managerPaymentAndReceiptSlip.proName}}
+            {{ managerPaymentAndReceiptSlip.proName }}
           </nz-form-control>
         </nz-form-item>
       </div>
     </div>
   </form>
-<!-- 子表数据 -->
+  <!-- 子表数据 -->
   <nz-card>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" #basicTable
-          [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center">序号</th>
-              <th>收付款条线</th>
-              <th>里程碑</th>
-              <th>付款金额</th>
-              <th>说明</th>
-              <th>对应发票</th>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 收付款条线 -->
+              <th>{{ 'receiving.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 付款金额 -->
+              <th>{{ 'payFor' | translate }}{{ 'their.fees.money' | translate }}</th>
+              <!-- 说明 -->
+              <th>{{ 'instructions' | translate }}</th>
+              <!-- 对应发票 -->
+              <th>{{ 'corresponding.invoice' | translate }}</th>
             </tr>
           </thead>
           <tbody>
-            <tr *ngFor="let data of basicTable.data;let i=index">
-              <td nzAlign="center">{{i+1}}{{data.sort}}</td>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}{{ data.sort }}</td>
               <td style="width: 20%;">
-                {{data.coArchivesName}}
+                {{ data.coArchivesName }}
               </td>
               <td style="width: 20%;">
-                {{data.proArchivesMilestone}}
+                {{ data.proArchivesMilestone }}
               </td>
+              <td>$ {{ data.coPrvice }}</td>
               <td>
-                $ {{data.coPrvice}}
-              </td>
-              <td>
-                {{data.explain}}
+                {{ data.explain }}
               </td>
               <td style="width: 20%;">
-                {{data.invoice}}
+                {{ data.invoice }}
               </td>
-              
             </tr>
-            <tr *ngIf="itemDataList&&itemDataList.length>0">
+            <tr *ngIf="itemDataList && itemDataList.length > 0">
               <td colSpan="2"></td>
-              <td><strong>付款总金额</strong></td>
-              <td><strong>$ {{managerPaymentAndReceiptSlip.totalPrice}}</strong></td>
+              <!-- 付款总金额 -->
+              <td>
+                <strong>{{ 'payFor.total.amount' | translate }}</strong>
+              </td>
+              <td>
+                <strong>$ {{ managerPaymentAndReceiptSlip.totalPrice }}</strong>
+              </td>
               <td colSpan="2"></td>
             </tr>
           </tbody>
@@ -96,6 +115,7 @@
 <!-- 按钮 -->
 <div class="base">
   <!-- 关闭按钮 -->
-  <button nz-button  (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel' | translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 120 - 49
src/app/routes/down-payment-management/receipt/add/add.component.html

@@ -3,9 +3,11 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <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">
-            自动生成
+            <!-- 自动生成 -->
+            {{ 'aoto.create' | translate }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -13,47 +15,57 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户编码</nz-form-label>
+          <!-- 客户编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusCode}}
+            {{ managerPaymentAndReceiptSlip.cusCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户名称</nz-form-label>
+          <!-- 客户名称 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusName}}
+            {{ managerPaymentAndReceiptSlip.cusName }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">项目编码</nz-form-label>
+          <!-- 项目编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.proCode}}
+            {{ managerPaymentAndReceiptSlip.proCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <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)]="managerPaymentAndReceiptSlip.proId" nzPlaceHolder="请选择"
-              (ngModelChange)="proChange($event)">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proId"
+              id="proId"
+              [(ngModel)]="managerPaymentAndReceiptSlip.proId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              (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">
-              请选择项目名称
+            <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>
   </form>
-<!-- 子表数据 -->
+  <!-- 子表数据 -->
   <nz-card>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
@@ -63,52 +75,106 @@
     </div>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-          [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center">序号</th>
-              <th>收付款条线</th>
-              <th>里程碑</th>
-              <th>收款金额</th>
-              <th>说明</th>
-              <th>对应发票</th>
-              <th>操作</th>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 收付款条线 -->
+              <th>{{ 'receiving.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 收款金额 -->
+              <th>{{ 'collection' | translate }}{{ 'their.fees.money' | translate }}</th>
+              <!-- 说明 -->
+              <th>{{ 'instructions' | translate }}</th>
+              <!-- 对应发票 -->
+              <th>{{ 'corresponding.invoice' | translate }}</th>
+              <!-- 操作 -->
+              <th>{{ '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 style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.coArchivesId" nzPlaceHolder="请选择" (ngModelChange)="coArchivesIdChange(data)">
-                <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.coArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="coArchivesIdChange(data)"
+                >
+                  <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
+                </nz-select>
               </td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.proArchivesId" nzPlaceHolder="请选择"
-                (ngModelChange)="proBusinessChange(data)">
-                <nz-option *ngFor="let i of data.proArchivesIdList" [nzValue]="i.mileId" [nzLabel]="i.mileName"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.proArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="proBusinessChange(data)"
+                >
+                  <nz-option
+                    *ngFor="let i of data.proArchivesIdList"
+                    [nzValue]="i.mileId"
+                    [nzLabel]="i.mileName"
+                  ></nz-option>
+                </nz-select>
               </td>
               <td>
-                <nz-input-number [(ngModel)]="data.coPrvice" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar" (ngModelChange)="coPrviceKeyUp()"></nz-input-number>
+                <nz-input-number
+                  [(ngModel)]="data.coPrvice"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                  (ngModelChange)="coPrviceKeyUp()"
+                ></nz-input-number>
               </td>
               <td>
                 <textarea rows="1" nz-input [(ngModel)]="data.explain"></textarea>
               </td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzAllowClear nzShowSearch [(ngModel)]="data.invoiceId" nzPlaceHolder="请选择"
+                <nz-select
+                  style="width: 100%;"
+                  nzAllowClear
+                  nzShowSearch
+                  [(ngModel)]="data.invoiceId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                >
+                  <nz-option *ngFor="let i of invoiceIdList" [nzValue]="i.id" [nzLabel]="i.billcode"></nz-option>
+                </nz-select>
+              </td>
+              <td>
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
                 >
-                <nz-option *ngFor="let i of invoiceIdList" [nzValue]="i.id" [nzLabel]="i.billcode"></nz-option>
-              </nz-select>
+                  {{ 'table.delete' | translate }}
+                </a>
               </td>
-              <td ><a nz-popconfirm nzTitle="是否删除?"
-                  (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
             </tr>
-            <tr *ngIf="itemDataList&&itemDataList.length>0">
+            <tr *ngIf="itemDataList && itemDataList.length > 0">
               <td colSpan="2"></td>
-              <td><strong>收款总金额</strong></td>
-              <td><strong>$ {{managerPaymentAndReceiptSlip.totalPrice}}</strong></td>
+              <!-- 收款总金额 -->
+              <td>
+                <strong>{{ 'collection.total.amount' | translate }}</strong>
+              </td>
+              <td>
+                <strong>$ {{ managerPaymentAndReceiptSlip.totalPrice }}</strong>
+              </td>
               <td colSpan="3"></td>
             </tr>
           </tbody>
@@ -120,11 +186,16 @@
 <!-- 按钮 -->
 <div class="base">
   <!-- 关闭按钮 -->
-  <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>

+ 84 - 52
src/app/routes/down-payment-management/receipt/receipt.component.html

@@ -1,63 +1,95 @@
 <!-- 收款单 -->
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'receipt:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'receipt:add'">
+      {{ 'cost.new' | translate }}
+    </button>
   </ng-template>
 </page-header>
 <nz-card>
   <!-- 查询条件 -->
- <form nz-form>
-  <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-control [nzSm]="14" [nzXs]="24">
-          <input nz-input name="code" [(ngModel)]="managerPaymentAndReceiptSlip.billcode" />
-        </nz-form-control>
-      </nz-form-item>
+  <form nz-form>
+    <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">{{ 'documents.code' | translate }}</nz-form-label>
+          <nz-form-control [nzSm]="14" [nzXs]="24">
+            <input nz-input name="code" [(ngModel)]="managerPaymentAndReceiptSlip.billcode" />
+          </nz-form-control>
+        </nz-form-item>
+      </div>
+      <div nz-col [nzSpan]="8">
+        <nz-form-item>
+          <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>{{ 'button.query' | translate }}</span>
+            </button>
+          </nz-form-control>
+        </nz-form-item>
+      </div>
     </div>
-    <div nz-col [nzSpan]="8">
-      <nz-form-item>
-        <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>
-        </nz-form-control>
-      </nz-form-item>
+  </form>
+  <!-- 表格 -->
+  <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"
+      >
+        <thead>
+          <tr>
+            <!-- 单据编码 -->
+            <th>{{ 'documents.code' | translate }}</th>
+            <!-- 客户编码-->
+            <th>{{ 'customer.code' | translate }}</th>
+            <!-- 客户名称 -->
+            <th>{{ 'customer.name' | translate }}</th>
+            <!-- 项目编码 -->
+            <th>{{ 'project.code' | translate }}</th>
+            <!-- 项目名称 -->
+            <th>{{ 'cost.item.name' | translate }}</th>
+            <!-- 操作 -->
+            <th>{{ 'table.operation' | translate }}</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr *ngFor="let data of basicTable.data">
+            <td>{{ data.billcode }}</td>
+            <td>{{ data.cusCode }}</td>
+            <td>{{ data.cusName }}</td>
+            <td>{{ data.proCode }}</td>
+            <td>{{ data.proName }}</td>
+            <td>
+              <!-- 详情 -->
+              <a (click)="view(data)" acl [acl-ability]="'receipt:update'">
+                {{ 'table.view' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'receipt:update'"></nz-divider>
+
+              <!-- 修改 -->
+              <a (click)="update(data)" acl [acl-ability]="'receipt:update'">
+                {{ 'table.update' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'receipt:update'"></nz-divider>
+              
+              <!-- 删除 -->
+              <a (click)="delete(data.id)" acl [acl-ability]="'receipt:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
+            </td>
+          </tr>
+        </tbody>
+      </nz-table>
     </div>
   </div>
-</form>
- <!-- 表格 -->
- <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">
-      <thead>
-        <tr>
-          <th>单据编码</th>
-          <th>客户编码</th>
-          <th>客户名称</th>
-          <th>项目编码</th>
-          <th>项目名称</th>
-          <th>操作</th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr *ngFor="let data of basicTable.data">
-          <td>{{ data.billcode }}</td>
-          <td>{{ data.cusCode }}</td>
-          <td>{{ data.cusName }}</td>
-          <td>{{ data.proCode }}</td>
-          <td>{{ data.proName }}</td>
-          <td>
-            <a (click)="view(data)" acl [acl-ability]="'receipt:update'">详情</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'receipt:update'"></nz-divider>
-            <a (click)="update(data)" acl [acl-ability]="'receipt:update'">修改</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'receipt:update'"></nz-divider>
-            <a (click)="delete(data.id)" acl [acl-ability]="'receipt:delete'">删除</a>
-          </td>
-        </tr>
-      </tbody>
-    </nz-table>
-  </div>
-</div>
 </nz-card>

+ 119 - 49
src/app/routes/down-payment-management/receipt/update/update.component.html

@@ -3,9 +3,10 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <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">
-            {{managerPaymentAndReceiptSlip.billcode}}
+            {{ managerPaymentAndReceiptSlip.billcode }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -13,47 +14,58 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户编码</nz-form-label>
+          <!-- 客户编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusCode}}
+            {{ managerPaymentAndReceiptSlip.cusCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户名称</nz-form-label>
+          <!-- 客户名称 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusName}}
+            {{ managerPaymentAndReceiptSlip.cusName }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">项目编码</nz-form-label>
+          <!-- 项目编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.proCode}}
+            {{ managerPaymentAndReceiptSlip.proCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <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)]="managerPaymentAndReceiptSlip.proId" nzPlaceHolder="请选择"
-              (ngModelChange)="proChange($event)">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proId"
+              id="proId"
+              [(ngModel)]="managerPaymentAndReceiptSlip.proId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              (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">
-              请选择项目名称
+            <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>
   </form>
-<!-- 子表数据 -->
+  <!-- 子表数据 -->
   <nz-card>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
@@ -63,52 +75,105 @@
     </div>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-          [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center">序号</th>
-              <th>收付款条线</th>
-              <th>里程碑</th>
-              <th>收款金额</th>
-              <th>说明</th>
-              <th>对应发票</th>
-              <th>操作</th>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 收付款条线 -->
+              <th>{{ 'receiving.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 收款金额 -->
+              <th>{{ 'collection' | translate }}{{ 'their.fees.money' | translate }}</th>
+              <!-- 说明 -->
+              <th>{{ 'instructions' | translate }}</th>
+              <!-- 对应发票 -->
+              <th>{{ 'corresponding.invoice' | translate }}</th>
+              <!-- 操作 -->
+              <th>{{ 'table.operation' | translate }}</th>
             </tr>
           </thead>
           <tbody>
-            <tr *ngFor="let data of basicTable.data;let i=index">
-              <td nzAlign="center">{{i+1}}{{data.sort}}</td>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}{{ data.sort }}</td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.coArchivesId" nzPlaceHolder="请选择" (ngModelChange)="coArchivesIdChange(data)">
-                <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.coArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="coArchivesIdChange(data)"
+                >
+                  <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
+                </nz-select>
               </td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.proArchivesId" nzPlaceHolder="请选择"
-                (ngModelChange)="proBusinessChange(data,'1')">
-                <nz-option *ngFor="let i of data.proArchivesIdList" [nzValue]="i.mileId" [nzLabel]="i.mileName"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.proArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="proBusinessChange(data, '1')"
+                >
+                  <nz-option
+                    *ngFor="let i of data.proArchivesIdList"
+                    [nzValue]="i.mileId"
+                    [nzLabel]="i.mileName"
+                  ></nz-option>
+                </nz-select>
               </td>
               <td>
-                <nz-input-number [(ngModel)]="data.coPrvice" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar" (ngModelChange)="coPrviceKeyUp()"></nz-input-number>
+                <nz-input-number
+                  [(ngModel)]="data.coPrvice"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                  (ngModelChange)="coPrviceKeyUp()"
+                ></nz-input-number>
               </td>
               <td>
                 <textarea rows="1" nz-input [(ngModel)]="data.explain"></textarea>
               </td>
               <td style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch nzAllowClear [(ngModel)]="data.invoiceId" nzPlaceHolder="请选择"
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  nzAllowClear
+                  [(ngModel)]="data.invoiceId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                >
+                  <nz-option *ngFor="let i of invoiceIdList" [nzValue]="i.id" [nzLabel]="i.billcode"></nz-option>
+                </nz-select>
+              </td>
+              <td>
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                  >{{ 'table.delete' | translate }}</a
                 >
-                <nz-option *ngFor="let i of invoiceIdList" [nzValue]="i.id" [nzLabel]="i.billcode"></nz-option>
-              </nz-select>
               </td>
-              <td ><a nz-popconfirm nzTitle="是否删除?"
-                  (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
             </tr>
-            <tr *ngIf="itemDataList&&itemDataList.length>0">
+            <tr *ngIf="itemDataList && itemDataList.length > 0">
               <td colSpan="2"></td>
-              <td><strong>收款总金额</strong></td>
-              <td><strong>$ {{managerPaymentAndReceiptSlip.totalPrice}}</strong></td>
+              <!-- 收款总金额 -->
+              <td>
+                <strong>{{ 'collection.total.amount' | translate }}</strong>
+              </td>
+              <td>
+                <strong>$ {{ managerPaymentAndReceiptSlip.totalPrice }}</strong>
+              </td>
               <td colSpan="3"></td>
             </tr>
           </tbody>
@@ -120,11 +185,16 @@
 <!-- 按钮 -->
 <div class="base">
   <!-- 关闭按钮 -->
-  <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>

+ 56 - 36
src/app/routes/down-payment-management/receipt/view/view.component.html

@@ -1,11 +1,12 @@
 <nz-spin [nzSpinning]="isLoadingSave">
-  <form nz-form >
+  <form nz-form>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <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">
-            {{managerPaymentAndReceiptSlip.billcode}}
+            {{ managerPaymentAndReceiptSlip.billcode }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -13,78 +14,96 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户编码</nz-form-label>
+          <!-- 客户编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusCode}}
+            {{ managerPaymentAndReceiptSlip.cusCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">客户名称</nz-form-label>
+          <!-- 客户名称 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'customer.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.cusName}}
+            {{ managerPaymentAndReceiptSlip.cusName }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24">项目编码</nz-form-label>
+          <!-- 项目编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{managerPaymentAndReceiptSlip.proCode}}
+            {{ managerPaymentAndReceiptSlip.proCode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="6">
         <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">
-            {{managerPaymentAndReceiptSlip.proName}}
+            {{ managerPaymentAndReceiptSlip.proName }}
           </nz-form-control>
         </nz-form-item>
       </div>
     </div>
   </form>
-<!-- 子表数据 -->
+  <!-- 子表数据 -->
   <nz-card>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" #basicTable
-          [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center">序号</th>
-              <th>收付款条线</th>
-              <th>里程碑</th>
-              <th>收款金额</th>
-              <th>说明</th>
-              <th>对应发票</th>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 收付款条线 -->
+              <th>{{ 'receiving.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 收款金额 -->
+              <th>{{ 'collection' | translate }}{{ 'their.fees.money' | translate }}</th>
+              <!-- 说明 -->
+              <th>{{ 'instructions' | translate }}</th>
+              <!-- 对应发票 -->
+              <th>{{ 'corresponding.invoice' | translate }}</th>
             </tr>
           </thead>
           <tbody>
-            <tr *ngFor="let data of basicTable.data;let i=index">
-              <td nzAlign="center">{{i+1}}{{data.sort}}</td>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}{{ data.sort }}</td>
               <td style="width: 20%;">
-                {{data.coArchivesName}}
+                {{ data.coArchivesName }}
               </td>
               <td style="width: 20%;">
-                {{data.proArchivesMilestone}}
+                {{ data.proArchivesMilestone }}
               </td>
+              <td>$ {{ data.coPrvice }}</td>
               <td>
-                $ {{data.coPrvice}}
-              </td>
-              <td>
-                {{data.explain}}
+                {{ data.explain }}
               </td>
               <td style="width: 20%;">
-                {{data.invoice}}
+                {{ data.invoice }}
               </td>
-              
             </tr>
-            <tr *ngIf="itemDataList&&itemDataList.length>0">
+            <tr *ngIf="itemDataList && itemDataList.length > 0">
               <td colSpan="2"></td>
-              <td><strong>收款总金额</strong></td>
-              <td><strong>$ {{managerPaymentAndReceiptSlip.totalPrice}}</strong></td>
+              <!-- 收款总金额 -->
+              <td>
+                <strong>{{ 'collection.total.amount' | translate }}</strong>
+              </td>
+              <td>
+                <strong>$ {{ managerPaymentAndReceiptSlip.totalPrice }}</strong>
+              </td>
               <td colSpan="2"></td>
             </tr>
           </tbody>
@@ -96,6 +115,7 @@
 <!-- 按钮 -->
 <div class="base">
   <!-- 关闭按钮 -->
-  <button nz-button  (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel' | translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 108 - 41
src/app/routes/expense-reimbursement/expense-reimbursement-form/add/add.component.html

@@ -3,40 +3,60 @@
     <div nz-row [nzGutter]="24">
       <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">{{ 'personnel' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
-              formControlName="personIds" id="personIds" nzPlaceHolder="请选择" [(ngModel)]="personIds"
-              [nzMaxTagCount]="3" [nzAllowClear]="true">
+            <nz-tree-select
+              style="width: 100%"
+              [nzNodes]="personnelList"
+              nzShowSearch
+              [nzMultiple]="true"
+              formControlName="personIds"
+              id="personIds"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              [(ngModel)]="personIds"
+              [nzMaxTagCount]="3"
+              [nzAllowClear]="true"
+            >
             </nz-tree-select>
             <nz-form-explain *ngIf="validateForm.get('personIds')?.dirty && validateForm.get('personIds')?.errors">
-              请选择人员
+              <!-- 请选择人员 -->
+              {{ 'select.please.choose' | translate }}{{ 'personnel' | 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">日期</nz-form-label>
+          <!-- 日期 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'Date' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <nz-date-picker formControlName="date" id="date" [(ngModel)]="reExpenseSlip.date">
-            </nz-date-picker>
+            <nz-date-picker formControlName="date" id="date" [(ngModel)]="reExpenseSlip.date"> </nz-date-picker>
             <nz-form-explain *ngIf="validateForm.get('date')?.dirty && validateForm.get('date')?.errors">
-              请选择时间
+              <!-- 请选择时间 -->
+              {{ 'select.please.choose' | translate }}{{ '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>{{ '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)]="reExpenseSlip.proId" nzPlaceHolder="请选择">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proId"
+              id="proId"
+              [(ngModel)]="reExpenseSlip.proId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            >
               <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>
@@ -45,17 +65,22 @@
     <div nz-row [nzGutter]="24">
       <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">{{ 'pm.quotation.Single.person' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{reExpenseSlip.producer}}
+            {{ reExpenseSlip.producer }}
           </nz-form-control>
         </nz-form-item>
       </div>
+
       <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">
+            {{ 'pm.quotation.check' | translate }}{{ 'person' | translate }}
+          </nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{reExpenseSlip.reviewer}}
+            {{ reExpenseSlip.reviewer }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -71,38 +96,75 @@
     </div>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-          [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center">序号</th>
-              <th>费用项目</th>
-              <th>金额</th>
-              <th>上传附件</th>
-              <th>操作</th>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 费用项目 -->
+              <th>{{ 'pm.quotation.fee' | translate }}{{ 'project' | translate }}</th>
+              <!-- 金额 -->
+              <th>{{ 'their.fees.money' | translate }}</th>
+              <!-- 上传附件 -->
+              <th>
+                {{ 'pm.project.archives.file.up.load' | translate }}{{ 'pm.project.archives.file.up.Enclosure' | translate }}
+              </th>
+              <!-- 操作 -->
+              <th>{{ '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 style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.costId" nzPlaceHolder="请选择">
-                <nz-option *ngFor="let i of costIdList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.costId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                >
+                  <nz-option *ngFor="let i of costIdList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
+                </nz-select>
               </td>
               <td>
-                <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number>
+                <nz-input-number
+                  [(ngModel)]="data.price"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                ></nz-input-number>
               </td>
               <td>
-                <button nz-button nzType="primary" (click)="uploadDownload(data)">{{'pm.project.archives.files.needed.to.be.uploaded.to.the.software'|translate}}</button>
+                <button nz-button nzType="primary" (click)="uploadDownload(data)">
+                  {{ 'pm.project.archives.files.needed.to.be.uploaded.to.the.software' | translate }}
+                </button>
                 <!-- 几个文件 -->
-                &nbsp;<nz-tag [nzColor]="'blue'">{{data.files.length}}</nz-tag>{{'File'|translate}}
+                &nbsp;<nz-tag [nzColor]="'blue'">{{ data.files.length }}</nz-tag
+                >{{ 'File' | translate }}
+              </td>
+              <td>
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                  >{{ 'table.delete' | translate }}</a
+                >
               </td>
-              <td ><a nz-popconfirm nzTitle="是否删除?"
-                  (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
             </tr>
             <tr>
-              <td colSpan="5"><button (click)="addRow()" nz-button nzType="dashed" nzBlock >{{ 'button.add' | translate }}</button></td>
+              <td colSpan="5">
+                <button (click)="addRow()" nz-button nzType="dashed" nzBlock>{{ 'button.add' | translate }}</button>
+              </td>
             </tr>
           </tbody>
         </nz-table>
@@ -114,11 +176,16 @@
 <!-- 按钮 -->
 <div class="base">
   <!-- 关闭按钮 -->
-  <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>

+ 81 - 50
src/app/routes/expense-reimbursement/expense-reimbursement-form/expense-reimbursement-form.component.html

@@ -1,60 +1,91 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'expense-reimbursement-form:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'expense-reimbursement-form:add'">
+      {{ 'new' | translate }}
+    </button>
   </ng-template>
 </page-header>
 <nz-card>
   <!-- 查询条件 -->
- <form nz-form>
-  <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-control [nzSm]="14" [nzXs]="24">
-          <!-- <input nz-input name="code" [(ngModel)]="reExpenseSlip.billcode" /> -->
-        </nz-form-control>
-      </nz-form-item>
+  <form nz-form>
+    <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">{{ 'cost.item.name' | translate }}</nz-form-label>
+          <nz-form-control [nzSm]="14" [nzXs]="24"> </nz-form-control>
+        </nz-form-item>
+      </div>
+      <div nz-col [nzSpan]="8">
+        <nz-form-item>
+          <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>
+                {{ 'store.search' | translate }}
+              </span>
+            </button>
+          </nz-form-control>
+        </nz-form-item>
+      </div>
     </div>
-    <div nz-col [nzSpan]="8">
-      <nz-form-item>
-        <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>
-        </nz-form-control>
-      </nz-form-item>
+  </form>
+  <!-- 表格 -->
+  <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"
+      >
+        <thead>
+          <tr>
+            <!-- 人员 -->
+            <th>{{ 'personnel' | translate }}</th>
+
+            <!-- 日期 -->
+            <th>{{ 'Date' | translate }}</th>
+
+            <!-- 项目 -->
+            <th>{{ 'project' | translate }}</th>
+
+            <!-- 制单人 -->
+            <th>{{ 'pm.quotation.Single.person' | translate }}</th>
+
+            <!-- 操作 -->
+            <th>{{ 'table.operation' | translate }}</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr *ngFor="let data of basicTable.data">
+            <td>{{ data.person }}</td>
+            <td>{{ data.date }}</td>
+            <td>{{ data.proName }}</td>
+            <td>{{ data.producer }}</td>
+            <td>
+              <!-- 详情  修改  删除 -->
+              <a (click)="view(data)" acl [acl-ability]="'expense-reimbursement-form:view'">
+                {{ 'table.view' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'expense-reimbursement-form:view'"></nz-divider>
+              <a (click)="update(data)" acl [acl-ability]="'expense-reimbursement-form:update'">
+                {{ 'table.update' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'expense-reimbursement-form:update'"></nz-divider>
+              <a (click)="delete(data.id)" acl [acl-ability]="'expense-reimbursement-form:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
+            </td>
+          </tr>
+        </tbody>
+      </nz-table>
     </div>
   </div>
-</form>
- <!-- 表格 -->
- <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">
-      <thead>
-        <tr>
-          <th>人员</th>
-          <th>日期</th>
-          <th>项目</th>
-          <th>制单人</th>
-          <th>操作</th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr *ngFor="let data of basicTable.data">
-          <td>{{ data.person }}</td>
-          <td>{{ data.date }}</td>
-          <td>{{ data.proName }}</td>
-          <td>{{ data.producer }}</td>
-          <td>
-            <a (click)="view(data)" acl [acl-ability]="'expense-reimbursement-form:view'">详情</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'expense-reimbursement-form:view'"></nz-divider>
-            <a (click)="update(data)" acl [acl-ability]="'expense-reimbursement-form:update'">修改</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'expense-reimbursement-form:update'"></nz-divider>
-            <a (click)="delete(data.id)" acl [acl-ability]="'expense-reimbursement-form:delete'">删除</a>
-          </td>
-        </tr>
-      </tbody>
-    </nz-table>
-  </div>
-</div>
 </nz-card>

+ 111 - 41
src/app/routes/expense-reimbursement/expense-reimbursement-form/update/update.component.html

@@ -3,40 +3,61 @@
     <div nz-row [nzGutter]="24">
       <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">{{ 'personnel' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
-              formControlName="personIds" id="personIds" nzPlaceHolder="请选择" [(ngModel)]="personIds"
-              [nzMaxTagCount]="3" [nzAllowClear]="true">
+            <nz-tree-select
+              style="width: 100%"
+              [nzNodes]="personnelList"
+              nzShowSearch
+              [nzMultiple]="true"
+              formControlName="personIds"
+              id="personIds"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              [(ngModel)]="personIds"
+              [nzMaxTagCount]="3"
+              [nzAllowClear]="true"
+            >
             </nz-tree-select>
             <nz-form-explain *ngIf="validateForm.get('personIds')?.dirty && validateForm.get('personIds')?.errors">
-              请选择人员
+              <!--请选择人员  -->
+              {{ 'select.please.choose' | translate }}{{ 'personnel' | 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">日期</nz-form-label>
+          <!--日期  -->
+          <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'Date' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            <nz-date-picker formControlName="date" id="date" [(ngModel)]="reExpenseSlip.date">
-            </nz-date-picker>
+            <nz-date-picker formControlName="date" id="date" [(ngModel)]="reExpenseSlip.date"> </nz-date-picker>
             <nz-form-explain *ngIf="validateForm.get('date')?.dirty && validateForm.get('date')?.errors">
-              请选择时间
+              <!-- 请选择日期 -->
+              {{ 'select.please.choose' | translate }}{{ '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>{{ '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)]="reExpenseSlip.proId" nzPlaceHolder="请选择">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proId"
+              id="proId"
+              [(ngModel)]="reExpenseSlip.proId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            >
               <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>
@@ -45,17 +66,21 @@
     <div nz-row [nzGutter]="24">
       <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">{{ 'pm.quotation.Single.person' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{reExpenseSlip.producer}}
+            {{ reExpenseSlip.producer }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">
+            {{ 'pm.quotation.check' | translate }}{{ 'person' | translate }}
+          </nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{reExpenseSlip.reviewer}}
+            {{ reExpenseSlip.reviewer }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -71,38 +96,78 @@
     </div>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-          [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center">序号</th>
-              <th>费用项目</th>
-              <th>金额</th>
-              <th>上传附件</th>
-              <th>操作</th>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 费用项目 -->
+              <th>{{ 'pm.quotation.fee' | translate }}{{ 'project' | translate }}</th>
+              <!-- 金额 -->
+              <th>{{ 'their.fees.money' | translate }}</th>
+              <!-- 上传附件 -->
+              <th>
+                {{ 'pm.project.archives.file.up.load' | translate}}
+                {{ 'pm.project.archives.file.up.Enclosure' | translate }}
+              </th>
+              <!--操作  -->
+              <th>{{ '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 style="width: 20%;">
-                <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.costId" nzPlaceHolder="请选择">
-                <nz-option *ngFor="let i of costIdList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
-              </nz-select>
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.costId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                >
+                  <nz-option *ngFor="let i of costIdList" [nzValue]="i.id" [nzLabel]="i.name"></nz-option>
+                </nz-select>
               </td>
               <td>
-                <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number>
+                <nz-input-number
+                  [(ngModel)]="data.price"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                ></nz-input-number>
               </td>
               <td>
-                <button nz-button nzType="primary" (click)="uploadDownload(data)">{{'pm.project.archives.files.needed.to.be.uploaded.to.the.software'|translate}}</button>
+                <button nz-button nzType="primary" (click)="uploadDownload(data)">
+                  {{ 'pm.project.archives.files.needed.to.be.uploaded.to.the.software' | translate }}
+                </button>
                 <!-- 几个文件 -->
-                &nbsp;<nz-tag [nzColor]="'blue'">{{data.files.length}}</nz-tag>{{'File'|translate}}
+                &nbsp;<nz-tag [nzColor]="'blue'">{{ data.files.length }}</nz-tag
+                >{{ 'File' | translate }}
+              </td>
+              <td>
+                <!-- 是否删除 -->
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                >
+                  {{ 'table.delete' | translate }}
+                </a>
               </td>
-              <td ><a nz-popconfirm nzTitle="是否删除?"
-                  (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
             </tr>
             <tr>
-              <td colSpan="5"><button (click)="addRow()" nz-button nzType="dashed" nzBlock >{{ 'button.add' | translate }}</button></td>
+              <td colSpan="5">
+                <button (click)="addRow()" nz-button nzType="dashed" nzBlock>{{ 'button.add' | translate }}</button>
+              </td>
             </tr>
           </tbody>
         </nz-table>
@@ -114,11 +179,16 @@
 <!-- 按钮 -->
 <div class="base">
   <!-- 关闭按钮 -->
-  <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>

+ 49 - 25
src/app/routes/expense-reimbursement/expense-reimbursement-form/view/view.component.html

@@ -3,25 +3,28 @@
     <div nz-row [nzGutter]="24">
       <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">{{ 'personnel' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{reExpenseSlip.person}}
+            {{ reExpenseSlip.person }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'Date' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{reExpenseSlip.date}}
+            {{ reExpenseSlip.date }}
           </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">
-            {{reExpenseSlip.proName}}
+            {{ reExpenseSlip.proName }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -29,17 +32,21 @@
     <div nz-row [nzGutter]="24">
       <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">{{ 'pm.quotation.Single.person' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{reExpenseSlip.producer}}
+            {{ reExpenseSlip.producer }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">
+            {{ 'pm.quotation.check' | translate }}{{ 'person' | translate }}
+          </nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{reExpenseSlip.reviewer}}
+            {{ reExpenseSlip.reviewer }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -49,29 +56,45 @@
   <nz-card>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" #basicTable
-          [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
           <thead>
             <tr>
-              <th nzAlign="center">序号</th>
-              <th>费用项目</th>
-              <th>金额</th>
-              <th>上传附件</th>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 费用项目 -->
+              <th>{{ 'pm.quotation.fee' | translate }}{{ 'project' | translate }}</th>
+              <!-- 金额 -->
+              <th>{{ 'their.fees.money' | translate }}</th>
+              <!-- 上传附件 -->
+              <th>
+                {{ 'pm.project.archives.file.up.load' | translate
+                }}{{ 'pm.project.archives.file.up.Enclosure' | 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 style="width: 20%;">
-                {{data.costName}}
+                {{ data.costName }}
               </td>
               <td>
-                {{data.price}}
+                {{ data.price }}
               </td>
               <td>
-                <button nz-button nzType="primary" (click)="uploadDownload(data)">{{'pm.project.archives.files.needed.to.be.uploaded.to.the.software'|translate}}</button>
+                <button nz-button nzType="primary" (click)="uploadDownload(data)">
+                  {{ 'pm.project.archives.files.needed.to.be.uploaded.to.the.software' | translate }}
+                </button>
                 <!-- 几个文件 -->
-                &nbsp;<nz-tag [nzColor]="'blue'">{{data.files.length}}</nz-tag>{{'File'|translate}}
+                &nbsp;<nz-tag [nzColor]="'blue'">{{ data.files.length }}</nz-tag
+                >{{ 'File' | translate }}
               </td>
             </tr>
           </tbody>
@@ -84,6 +107,7 @@
 <!-- 按钮 -->
 <div class="base">
   <!-- 关闭按钮 -->
-  <button nz-button (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel'|translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 139 - 71
src/app/routes/invoice-management/invoice-manage-purchase/add/add.component.html

@@ -3,32 +3,45 @@
     <div nz-row [nzGutter]="24">
       <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">
-            自动生成
+            <!--自动生成  -->
+            {{ 'aoto.create' | translate }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{invoiceManagePurchase.proCode}}
+            {{ invoiceManagePurchase.proCode }}
           </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="proArchivesId"
-              id="proArchivesId" [(ngModel)]="invoiceManagePurchase.proArchivesId" nzPlaceHolder="请选择"
-              (ngModelChange)="proChange($event)">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proArchivesId"
+              id="proArchivesId"
+              [(ngModel)]="invoiceManagePurchase.proArchivesId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              (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('proArchivesId')?.dirty && validateForm.get('proArchivesId')?.errors">
-              请选择项目名称
+              *ngIf="validateForm.get('proArchivesId')?.dirty && validateForm.get('proArchivesId')?.errors"
+            >
+              <!-- 请选择项目名称-->
+              {{ 'select.please.choose' | translate }}{{ 'cost.item.name' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -36,72 +49,127 @@
     </div>
   </form>
 
-
-<nz-card>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <!-- 新增按钮 -->
-      <button (click)="addRow()" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
+  <nz-card>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <!-- 新增按钮 -->
+        <button (click)="addRow()" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
+      </div>
     </div>
-  </div>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-        [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
-        <thead>
-          <tr>
-            <th nzAlign="center">序号</th>
-            <th>首付款条线</th>
-            <th>里程碑</th>
-            <th>金额</th>
-            <th>未收票金额</th>
-            <th>本次收票金额</th>
-            <th>操作</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr *ngFor="let data of basicTable.data;let i=index">
-            <td nzAlign="center">{{i+1}}</td>
-            <td style="width: 20%;">
-              <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.coArchivesId" nzPlaceHolder="请选择" (ngModelChange)="coArchivesChange(data)">
-              <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName" ></nz-option>
-            </nz-select>
-            </td>
-            <td style="width: 20%;" >
-              <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.proBusinessId" nzPlaceHolder="请选择"
-              (ngModelChange)="proBusinessChange(data)">
-              <nz-option *ngFor="let i of data.proBusinessList" [nzValue]="i.mileId" [nzLabel]="i.mileName"></nz-option>
-            </nz-select>
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.price}}
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.uncoPrice}}
-            </td>
-            <td>
-              <nz-input-number [(ngModel)]="data.coPrice" [nzMin]="0" [nzMax]=10000000000 [nzMax]="data.uncoPriceMax" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar" (ngModelChange)="coPriceKeyUp(data)"></nz-input-number>
-            </td>
-            <td ><a nz-popconfirm nzTitle="是否删除?"
-                (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
-          </tr>
-        </tbody>
-      </nz-table>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
+          <thead>
+            <tr>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!--首付款条线  -->
+              <th>{{ 'first.payment.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 金额 -->
+              <th>{{ 'their.fees.money' | translate }}</th>
+              <!--  未收票金额-->
+              <th>{{ 'no.ticket.money' | translate }}</th>
+              <!-- 本次收票金额 -->
+              <th>{{ 'this.ticket.money' | translate }}</th>
+              <!-- 操作 -->
+              <th>{{ 'table.operation' | translate }}</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}</td>
+              <td style="width: 20%;">
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.coArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="coArchivesChange(data)"
+                >
+                  <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
+                </nz-select>
+              </td>
+              <td style="width: 20%;">
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.proBusinessId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="proBusinessChange(data)"
+                >
+                  <nz-option
+                    *ngFor="let i of data.proBusinessList"
+                    [nzValue]="i.mileId"
+                    [nzLabel]="i.mileName"
+                  ></nz-option>
+                </nz-select>
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.price }}
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.uncoPrice }}
+              </td>
+              <td>
+                <nz-input-number
+                  [(ngModel)]="data.coPrice"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzMax]="data.uncoPriceMax"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                  (ngModelChange)="coPriceKeyUp(data)"
+                ></nz-input-number>
+              </td>
+              <td>
+                <!-- 是否删除 -->
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                  >{{ 'table.delete' | translate }}</a
+                >
+              </td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </div>
     </div>
-  </div>
-</nz-card>
+  </nz-card>
 </nz-spin>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{invoiceManagePurchase.currentUser}} <strong>填写时间:</strong>{{invoiceManagePurchase.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>
+  {{ invoiceManagePurchase.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>
+  {{ invoiceManagePurchase.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>

+ 81 - 53
src/app/routes/invoice-management/invoice-manage-purchase/invoice-manage-purchase.component.html

@@ -1,63 +1,91 @@
 <!-- 采购发票 -->
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary"  acl [acl-ability]="'invoice-manage-purchase:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'invoice-manage-purchase:add'">
+      {{ 'cost.new' | translate }}
+    </button>
   </ng-template>
 </page-header>
 <nz-card>
- <!-- 查询条件 -->
- <form nz-form>
-  <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-control [nzSm]="14" [nzXs]="24">
-          <input nz-input name="code" [(ngModel)]="invoiceManagePurchase.billcode" />
-        </nz-form-control>
-      </nz-form-item>
+  <!-- 查询条件 -->
+  <form nz-form>
+    <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">{{ 'documents.code' | translate }}</nz-form-label>
+          <nz-form-control [nzSm]="14" [nzXs]="24">
+            <input nz-input name="code" [(ngModel)]="invoiceManagePurchase.billcode" />
+          </nz-form-control>
+        </nz-form-item>
+      </div>
+      <div nz-col [nzSpan]="8">
+        <nz-form-item>
+          <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>{{ 'button.query' | translate }}</span>
+            </button>
+          </nz-form-control>
+        </nz-form-item>
+      </div>
     </div>
-    <div nz-col [nzSpan]="8">
-      <nz-form-item>
-        <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>
-        </nz-form-control>
-      </nz-form-item>
+  </form>
+  <!-- 表格 -->
+  <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"
+      >
+        <thead>
+          <tr>
+            <!--  单据编码-->
+            <th>{{ 'documents.code' | translate }}</th>
+            <!--项目编码  -->
+            <th>{{ 'project.code' | translate }}</th>
+            <!--  项目名称-->
+            <th>{{ 'cost.item.name' | translate }}</th>
+            <!-- 填写人 -->
+            <th>{{ 'fill.person' | translate }}</th>
+            <!-- 填写时间 -->
+            <th>{{ 'fill.time' | translate }}</th>
+            <!--操作  -->
+            <th>{{ 'table.operation' | translate }}</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr *ngFor="let data of basicTable.data">
+            <td>{{ data.billcode }}</td>
+            <td>{{ data.proCode }}</td>
+            <td>{{ data.proName }}</td>
+            <td>{{ data.currentUser }}</td>
+            <td>{{ data.createTime }}</td>
+            <td>
+              <!-- 详情 修改 删除 -->
+              <a (click)="view(data)" acl [acl-ability]="'invoice-manage-purchase:view'">
+                {{ 'table.view' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'invoice-manage-purchase:view'"></nz-divider>
+              <a (click)="update(data)" acl [acl-ability]="'invoice-manage-purchase:update'">
+                {{ 'table.update' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'invoice-manage-purchase:update'"></nz-divider>
+              <a (click)="delete(data.id)" acl [acl-ability]="'invoice-manage-purchase:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
+            </td>
+          </tr>
+        </tbody>
+      </nz-table>
     </div>
   </div>
-</form>
- <!-- 表格 -->
- <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">
-      <thead>
-        <tr>
-          <th>单据编码</th>
-          <th>项目编码</th>
-          <th>项目名称</th>
-          <th>填写人</th>
-          <th>填写时间</th>
-          <th>操作</th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr *ngFor="let data of basicTable.data">
-          <td>{{ data.billcode }}</td>
-          <td>{{ data.proCode }}</td>
-          <td>{{ data.proName }}</td>
-          <td>{{ data.currentUser }}</td>
-          <td>{{ data.createTime }}</td>
-          <td>
-            <a (click)="view(data)" acl [acl-ability]="'invoice-manage-purchase:view'">详情</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'invoice-manage-purchase:view'"></nz-divider>
-            <a (click)="update(data)" acl [acl-ability]="'invoice-manage-purchase:update'">修改</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'invoice-manage-purchase:update'"></nz-divider>
-            <a (click)="delete(data.id)" acl [acl-ability]="'invoice-manage-purchase:delete'">删除</a>
-          </td>
-        </tr>
-      </tbody>
-    </nz-table>
-  </div>
-</div>
 </nz-card>

+ 135 - 71
src/app/routes/invoice-management/invoice-manage-purchase/update/update.component.html

@@ -3,32 +3,44 @@
     <div nz-row [nzGutter]="24">
       <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">
-            {{invoiceManagePurchase.billcode}}
+            {{ invoiceManagePurchase.billcode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{invoiceManagePurchase.proCode}}
+            {{ invoiceManagePurchase.proCode }}
           </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="proArchivesId"
-              id="proArchivesId" [(ngModel)]="invoiceManagePurchase.proArchivesId" nzPlaceHolder="请选择"
-              (ngModelChange)="proChange($event)">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proArchivesId"
+              id="proArchivesId"
+              [(ngModel)]="invoiceManagePurchase.proArchivesId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              (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('proArchivesId')?.dirty && validateForm.get('proArchivesId')?.errors">
-              请选择项目名称
+              *ngIf="validateForm.get('proArchivesId')?.dirty && validateForm.get('proArchivesId')?.errors"
+            >
+              <!-- 请选择项目名称 -->
+              {{ 'select.please.choose' | translate }}{{ 'cost.item.name' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -36,72 +48,124 @@
     </div>
   </form>
 
-
-<nz-card>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <!-- 新增按钮 -->
-      <button (click)="addRow()" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
+  <nz-card>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <!-- 新增按钮 -->
+        <button (click)="addRow()" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
+      </div>
     </div>
-  </div>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-        [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
-        <thead>
-          <tr>
-            <th nzAlign="center">序号</th>
-            <th>首付款条线</th>
-            <th>里程碑</th>
-            <th>金额</th>
-            <th>未收票金额</th>
-            <th>本次收票金额</th>
-            <th>操作</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr *ngFor="let data of basicTable.data;let i=index">
-            <td nzAlign="center">{{i+1}}</td>
-            <td style="width: 20%;">
-              <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.coArchivesId" nzPlaceHolder="请选择" (ngModelChange)="coArchivesChange(data)">
-              <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName" ></nz-option>
-            </nz-select>
-            </td>
-            <td style="width: 20%;">
-              <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.proBusinessId" nzPlaceHolder="请选择"
-              (ngModelChange)="proBusinessIdChange(data)">
-              <nz-option *ngFor="let i of data.proBusinessList" [nzValue]="i.mileId" [nzLabel]="i.mileName"></nz-option>
-            </nz-select>
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.price}}
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.uncoPrice}}
-            </td>
-            <td>
-              <nz-input-number [(ngModel)]="data.coPrice" [nzMax]="data.uncoPriceMax" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar" (ngModelChange)="coPriceKeyUp(data)"></nz-input-number>
-            </td>
-            <td ><a nz-popconfirm nzTitle="是否删除?"
-                (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
-          </tr>
-        </tbody>
-      </nz-table>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
+          <thead>
+            <tr>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!--首付款条线  -->
+              <th>{{ 'first.payment.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 金额 -->
+              <th>{{ 'their.fees.money' | translate }}</th>
+              <!--  未收票金额-->
+              <th>{{ 'no.ticket.money' | translate }}</th>
+              <!-- 本次收票金额 -->
+              <th>{{ 'this.ticket.money' | translate }}</th>
+              <!-- 操作 -->
+              <th>{{ 'table.operation' | translate }}</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}</td>
+              <td style="width: 20%;">
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.coArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="coArchivesChange(data)"
+                >
+                  <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
+                </nz-select>
+              </td>
+              <td style="width: 20%;">
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.proBusinessId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="proBusinessIdChange(data)"
+                >
+                  <nz-option
+                    *ngFor="let i of data.proBusinessList"
+                    [nzValue]="i.mileId"
+                    [nzLabel]="i.mileName"
+                  ></nz-option>
+                </nz-select>
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.price }}
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.uncoPrice }}
+              </td>
+              <td>
+                <nz-input-number
+                  [(ngModel)]="data.coPrice"
+                  [nzMax]="data.uncoPriceMax"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                  (ngModelChange)="coPriceKeyUp(data)"
+                ></nz-input-number>
+              </td>
+              <td>
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                  >{{ 'table.delete' | translate }}</a
+                >
+              </td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </div>
     </div>
-  </div>
-</nz-card>
+  </nz-card>
 </nz-spin>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{invoiceManagePurchase.currentUser}} <strong>填写时间:</strong>{{invoiceManagePurchase.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ invoiceManagePurchase.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ invoiceManagePurchase.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>

+ 73 - 52
src/app/routes/invoice-management/invoice-manage-purchase/view/view.component.html

@@ -1,80 +1,101 @@
 <nz-spin [nzSpinning]="isLoadingSave">
-  <form nz-form >
+  <form nz-form>
     <div nz-row [nzGutter]="24">
       <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">
-            {{invoiceManagePurchase.billcode}}
+            {{ invoiceManagePurchase.billcode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{invoiceManagePurchase.proCode}}
+            {{ invoiceManagePurchase.proCode }}
           </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">
-           {{invoiceManagePurchase.proName}}
+            {{ invoiceManagePurchase.proName }}
           </nz-form-control>
         </nz-form-item>
       </div>
     </div>
   </form>
 
-
-<nz-card>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" #basicTable
-        [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
-        <thead>
-          <tr>
-            <th nzAlign="center">序号</th>
-            <th>首付款条线</th>
-            <th>里程碑</th>
-            <th>金额</th>
-            <th>未收票金额</th>
-            <th>本次收票金额</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr *ngFor="let data of basicTable.data;let i=index">
-            <td nzAlign="center">{{i+1}}</td>
-            <td style="width: 20%;">
-              {{data.coArchivesName}}
-            </td>
-            <td style="width: 20%;">
-              {{data.proArchivesMilestone}}
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.price}}
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.uncoPrice}}
-            </td>
-            <td>
-              {{data.coPrice}}
-            </td>
-          </tr>
-        </tbody>
-      </nz-table>
+  <nz-card>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
+          <thead>
+            <tr>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!--首付款条线  -->
+              <th>{{ 'first.payment.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 金额 -->
+              <th>{{ 'their.fees.money' | translate }}</th>
+              <!--  未收票金额-->
+              <th>{{ 'no.ticket.money' | translate }}</th>
+              <!-- 本次收票金额 -->
+              <th>{{ 'this.ticket.money' | translate }}</th>
+              <!-- 操作 -->
+              <th>{{ 'table.operation' | translate }}</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}</td>
+              <td style="width: 20%;">
+                {{ data.coArchivesName }}
+              </td>
+              <td style="width: 20%;">
+                {{ data.proArchivesMilestone }}
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.price }}
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.uncoPrice }}
+              </td>
+              <td>
+                {{ data.coPrice }}
+              </td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </div>
     </div>
-  </div>
-</nz-card>
+  </nz-card>
 </nz-spin>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{invoiceManagePurchase.currentUser}} <strong>填写时间:</strong>{{invoiceManagePurchase.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ invoiceManagePurchase.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ invoiceManagePurchase.createTime }}
   <!-- 关闭按钮 -->
-  <button nz-button  (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel'|translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 136 - 71
src/app/routes/invoice-management/invoice-sales/add/add.component.html

@@ -3,32 +3,45 @@
     <div nz-row [nzGutter]="24">
       <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">
-            自动生成
+            <!-- 自动生成 -->
+            {{ 'aoto.create' | translate }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{invoiceManagePurchase.proCode}}
+            {{ invoiceManagePurchase.proCode }}
           </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="proArchivesId"
-              id="proArchivesId" [(ngModel)]="invoiceManagePurchase.proArchivesId" nzPlaceHolder="请选择"
-              (ngModelChange)="proChange($event)">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proArchivesId"
+              id="proArchivesId"
+              [(ngModel)]="invoiceManagePurchase.proArchivesId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              (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('proArchivesId')?.dirty && validateForm.get('proArchivesId')?.errors">
-              请选择项目名称
+              *ngIf="validateForm.get('proArchivesId')?.dirty && validateForm.get('proArchivesId')?.errors"
+            >
+              <!-- 请选择项目名称 -->
+              {{ 'select.please.choose' | translate }}{{ 'cost.item.name' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -36,72 +49,124 @@
     </div>
   </form>
 
-
-<nz-card>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <!-- 新增按钮 -->
-      <button (click)="addRow()" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
+  <nz-card>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <!-- 新增按钮 -->
+        <button (click)="addRow()" nz-button nzType="primary">
+          {{ 'button.add' | translate }}
+        </button>
+      </div>
     </div>
-  </div>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-        [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
-        <thead>
-          <tr>
-            <th nzAlign="center">序号</th>
-            <th>首付款条线</th>
-            <th>里程碑</th>
-            <th>金额</th>
-            <th>未收票金额</th>
-            <th>本次收票金额</th>
-            <th>操作</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr *ngFor="let data of basicTable.data;let i=index">
-            <td nzAlign="center">{{i+1}}</td>
-            <td style="width: 20%;">
-              <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.coArchivesId" nzPlaceHolder="请选择" (ngModelChange)="coArchivesChange(data)">
-              <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName" ></nz-option>
-            </nz-select>
-            </td>
-            <td style="width: 20%;" >
-              <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.proBusinessId" nzPlaceHolder="请选择"
-              (ngModelChange)="proBusinessChange(data)">
-              <nz-option *ngFor="let i of data.proBusinessList" [nzValue]="i.mileId" [nzLabel]="i.mileName"></nz-option>
-            </nz-select>
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.price}}
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.uncoPrice}}
-            </td>
-            <td>
-              <nz-input-number [(ngModel)]="data.coPrice" [nzMin]="0" [nzMax]=10000000000 [nzMax]="data.uncoPriceMax" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar" (ngModelChange)="coPriceKeyUp(data)"></nz-input-number>
-            </td>
-            <td ><a nz-popconfirm nzTitle="是否删除?"
-                (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
-          </tr>
-        </tbody>
-      </nz-table>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
+          <thead>
+            <tr>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!--首付款条线  -->
+              <th>{{ 'first.payment.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 金额 -->
+              <th>{{ 'their.fees.money' | translate }}</th>
+              <!--  未收票金额-->
+              <th>{{ 'no.ticket.money' | translate }}</th>
+              <!-- 本次收票金额 -->
+              <th>{{ 'this.ticket.money' | translate }}</th>
+              <!-- 操作 -->
+              <th>{{ 'table.operation' | translate }}</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}</td>
+              <td style="width: 20%;">
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.coArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="coArchivesChange(data)"
+                >
+                  <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
+                </nz-select>
+              </td>
+              <td style="width: 20%;">
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.proBusinessId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="proBusinessChange(data)"
+                >
+                  <nz-option
+                    *ngFor="let i of data.proBusinessList"
+                    [nzValue]="i.mileId"
+                    [nzLabel]="i.mileName"
+                  ></nz-option>
+                </nz-select>
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.price }}
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.uncoPrice }}
+              </td>
+              <td>
+                <nz-input-number
+                  [(ngModel)]="data.coPrice"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzMax]="data.uncoPriceMax"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                  (ngModelChange)="coPriceKeyUp(data)"
+                ></nz-input-number>
+              </td>
+              <td>
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                  >{{ 'table.delete' | translate }}</a
+                >
+              </td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </div>
     </div>
-  </div>
-</nz-card>
+  </nz-card>
 </nz-spin>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{invoiceManagePurchase.currentUser}} <strong>填写时间:</strong>{{invoiceManagePurchase.createTime}}
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ invoiceManagePurchase.currentUser }}
+
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ invoiceManagePurchase.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>

+ 79 - 52
src/app/routes/invoice-management/invoice-sales/invoice-sales.component.html

@@ -1,63 +1,90 @@
 <!-- 销售发票 -->
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary"  acl [acl-ability]="'invoice-sales:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'invoice-sales:add'">
+      {{ 'cost.new' | translate }}
+    </button>
   </ng-template>
 </page-header>
 <nz-card>
   <!-- 查询条件 -->
- <form nz-form>
-  <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-control [nzSm]="14" [nzXs]="24">
-          <input nz-input name="code" [(ngModel)]="invoiceManagePurchase.billcode" />
-        </nz-form-control>
-      </nz-form-item>
+  <form nz-form>
+    <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">{{ 'documents.code' | translate }}</nz-form-label>
+          <nz-form-control [nzSm]="14" [nzXs]="24">
+            <input nz-input name="code" [(ngModel)]="invoiceManagePurchase.billcode" />
+          </nz-form-control>
+        </nz-form-item>
+      </div>
+      <div nz-col [nzSpan]="8">
+        <nz-form-item>
+          <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>{{ 'button.query' | translate }}</span>
+            </button>
+          </nz-form-control>
+        </nz-form-item>
+      </div>
     </div>
-    <div nz-col [nzSpan]="8">
-      <nz-form-item>
-        <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>
-        </nz-form-control>
-      </nz-form-item>
+  </form>
+  <!-- 表格 -->
+  <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"
+      >
+        <thead>
+          <tr>
+            <!-- 单据编码 -->
+            <th>{{ 'documents.code' | translate }}</th>
+            <!-- 项目编码 -->
+            <th>{{ 'project.code' | translate }}</th>
+            <!-- 项目名称 -->
+            <th>{{ 'cost.item.name' | translate }}</th>
+            <!--填写人  -->
+            <th>{{ 'fill.person' | translate }}</th>
+            <!--填写时间  -->
+            <th>{{ 'fill.time' | translate }}</th>
+            <!--操作  -->
+            <th>{{ 'table.operation' | translate }}</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr *ngFor="let data of basicTable.data">
+            <td>{{ data.billcode }}</td>
+            <td>{{ data.proCode }}</td>
+            <td>{{ data.proName }}</td>
+            <td>{{ data.currentUser }}</td>
+            <td>{{ data.createTime }}</td>
+            <td>
+              <a (click)="view(data)" acl [acl-ability]="'invoice-sales:view'">
+                {{ 'table.view' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'invoice-sales:view'"></nz-divider>
+              <a (click)="update(data)" acl [acl-ability]="'invoice-sales:update'">
+                {{ 'table.update' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'invoice-sales:update'"></nz-divider>
+              <a (click)="delete(data.id)" acl [acl-ability]="'invoice-sales:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
+            </td>
+          </tr>
+        </tbody>
+      </nz-table>
     </div>
   </div>
-</form>
- <!-- 表格 -->
- <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">
-      <thead>
-        <tr>
-          <th>单据编码</th>
-          <th>项目编码</th>
-          <th>项目名称</th>
-          <th>填写人</th>
-          <th>填写时间</th>
-          <th>操作</th>
-        </tr>
-      </thead>
-      <tbody>
-        <tr *ngFor="let data of basicTable.data">
-          <td>{{ data.billcode }}</td>
-          <td>{{ data.proCode }}</td>
-          <td>{{ data.proName }}</td>
-          <td>{{ data.currentUser }}</td>
-          <td>{{ data.createTime }}</td>
-          <td>
-            <a (click)="view(data)" acl [acl-ability]="'invoice-sales:view'">详情</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'invoice-sales:view'"></nz-divider>
-            <a (click)="update(data)" acl [acl-ability]="'invoice-sales:update'">修改</a>
-            <nz-divider nzType="vertical" acl [acl-ability]="'invoice-sales:update'"></nz-divider>
-            <a (click)="delete(data.id)" acl [acl-ability]="'invoice-sales:delete'">删除</a>
-          </td>
-        </tr>
-      </tbody>
-    </nz-table>
-  </div>
-</div>
 </nz-card>

+ 135 - 71
src/app/routes/invoice-management/invoice-sales/update/update.component.html

@@ -3,32 +3,44 @@
     <div nz-row [nzGutter]="24">
       <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">
-            {{invoiceManagePurchase.billcode}}
+            {{ invoiceManagePurchase.billcode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{invoiceManagePurchase.proCode}}
+            {{ invoiceManagePurchase.proCode }}
           </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="proArchivesId"
-              id="proArchivesId" [(ngModel)]="invoiceManagePurchase.proArchivesId" nzPlaceHolder="请选择"
-              (ngModelChange)="proChange($event)">
+            <nz-select
+              style="widows: 100%;"
+              nzShowSearch
+              nzAllowClear
+              formControlName="proArchivesId"
+              id="proArchivesId"
+              [(ngModel)]="invoiceManagePurchase.proArchivesId"
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              (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('proArchivesId')?.dirty && validateForm.get('proArchivesId')?.errors">
-              请选择项目名称
+              *ngIf="validateForm.get('proArchivesId')?.dirty && validateForm.get('proArchivesId')?.errors"
+            >
+              <!-- 请选择项目名称 -->
+              {{ 'select.please.choose' | translate }}{{ 'cost.item.name' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -36,72 +48,124 @@
     </div>
   </form>
 
-
-<nz-card>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <!-- 新增按钮 -->
-      <button (click)="addRow()" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
+  <nz-card>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <!-- 新增按钮 -->
+        <button (click)="addRow()" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
+      </div>
     </div>
-  </div>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #basicTable
-        [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
-        <thead>
-          <tr>
-            <th nzAlign="center">序号</th>
-            <th>首付款条线</th>
-            <th>里程碑</th>
-            <th>金额</th>
-            <th>未收票金额</th>
-            <th>本次收票金额</th>
-            <th>操作</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr *ngFor="let data of basicTable.data;let i=index">
-            <td nzAlign="center">{{i+1}}</td>
-            <td style="width: 20%;">
-              <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.coArchivesId" nzPlaceHolder="请选择" (ngModelChange)="coArchivesChange(data)">
-              <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName" ></nz-option>
-            </nz-select>
-            </td>
-            <td style="width: 20%;">
-              <nz-select style="width: 100%;" nzShowSearch [(ngModel)]="data.proBusinessId" nzPlaceHolder="请选择"
-              (ngModelChange)="proBusinessIdChange(data)">
-              <nz-option *ngFor="let i of data.proBusinessList" [nzValue]="i.mileId" [nzLabel]="i.mileName"></nz-option>
-            </nz-select>
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.price}}
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.uncoPrice}}
-            </td>
-            <td>
-              <nz-input-number [(ngModel)]="data.coPrice" [nzMax]="data.uncoPriceMax" [nzMin]="0" [nzMax]=10000000000 [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar" (ngModelChange)="coPriceKeyUp(data)"></nz-input-number>
-            </td>
-            <td ><a nz-popconfirm nzTitle="是否删除?"
-                (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a></td>
-          </tr>
-        </tbody>
-      </nz-table>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          class="tableTdPadding"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
+          <thead>
+            <tr>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!--首付款条线  -->
+              <th>{{ 'first.payment.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 金额 -->
+              <th>{{ 'their.fees.money' | translate }}</th>
+              <!--  未收票金额-->
+              <th>{{ 'no.ticket.money' | translate }}</th>
+              <!-- 本次收票金额 -->
+              <th>{{ 'this.ticket.money' | translate }}</th>
+              <!-- 操作 -->
+              <th>{{ 'table.operation' | translate }}</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}</td>
+              <td style="width: 20%;">
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.coArchivesId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="coArchivesChange(data)"
+                >
+                  <nz-option *ngFor="let i of coArchivesList" [nzValue]="i.id" [nzLabel]="i.planName"></nz-option>
+                </nz-select>
+              </td>
+              <td style="width: 20%;">
+                <nz-select
+                  style="width: 100%;"
+                  nzShowSearch
+                  [(ngModel)]="data.proBusinessId"
+                  nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+                  (ngModelChange)="proBusinessIdChange(data)"
+                >
+                  <nz-option
+                    *ngFor="let i of data.proBusinessList"
+                    [nzValue]="i.mileId"
+                    [nzLabel]="i.mileName"
+                  ></nz-option>
+                </nz-select>
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.price }}
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.uncoPrice }}
+              </td>
+              <td>
+                <nz-input-number
+                  [(ngModel)]="data.coPrice"
+                  [nzMax]="data.uncoPriceMax"
+                  [nzMin]="0"
+                  [nzMax]="10000000000"
+                  [nzStep]="1"
+                  [nzFormatter]="formatterDollar"
+                  [nzParser]="parserDollar"
+                  (ngModelChange)="coPriceKeyUp(data)"
+                ></nz-input-number>
+              </td>
+              <td>
+                <a
+                  nz-popconfirm
+                  nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+                  (nzOnConfirm)="deleteRow(data.sort)"
+                  >{{ 'table.delete' | translate }}</a
+                >
+              </td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </div>
     </div>
-  </div>
-</nz-card>
+  </nz-card>
 </nz-spin>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{invoiceManagePurchase.currentUser}} <strong>填写时间:</strong>{{invoiceManagePurchase.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ invoiceManagePurchase.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ invoiceManagePurchase.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>

+ 72 - 52
src/app/routes/invoice-management/invoice-sales/view/view.component.html

@@ -1,80 +1,100 @@
 <nz-spin [nzSpinning]="isLoadingSave">
-  <form nz-form >
+  <form nz-form>
     <div nz-row [nzGutter]="24">
       <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">
-            {{invoiceManagePurchase.billcode}}
+            {{ invoiceManagePurchase.billcode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'project.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{invoiceManagePurchase.proCode}}
+            {{ invoiceManagePurchase.proCode }}
           </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">
-           {{invoiceManagePurchase.proName}}
+            {{ invoiceManagePurchase.proName }}
           </nz-form-control>
         </nz-form-item>
       </div>
     </div>
   </form>
 
-
-<nz-card>
-  <div nz-row [nzGutter]="24">
-    <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small" #basicTable
-        [nzData]="itemDataList" [nzFrontPagination]="false" [nzShowPagination]="false" >
-        <thead>
-          <tr>
-            <th nzAlign="center">序号</th>
-            <th>首付款条线</th>
-            <th>里程碑</th>
-            <th>金额</th>
-            <th>未收票金额</th>
-            <th>本次收票金额</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr *ngFor="let data of basicTable.data;let i=index">
-            <td nzAlign="center">{{i+1}}</td>
-            <td style="width: 20%;">
-              {{data.coArchivesName}}
-            </td>
-            <td style="width: 20%;">
-              {{data.proArchivesMilestone}}
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.price}}
-            </td>
-            <td>
-              <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
-              {{data.uncoPrice}}
-            </td>
-            <td>
-              {{data.coPrice}}
-            </td>
-          </tr>
-        </tbody>
-      </nz-table>
+  <nz-card>
+    <div nz-row [nzGutter]="24">
+      <div nz-col [nzSpan]="24">
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          #basicTable
+          [nzData]="itemDataList"
+          [nzFrontPagination]="false"
+          [nzShowPagination]="false"
+        >
+          <thead>
+            <tr>
+              <!-- 序号 -->
+              <th nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+              <!--首付款条线  -->
+              <th>{{ 'first.payment.line' | translate }}</th>
+              <!-- 里程碑 -->
+              <th>{{ 'milestone.milestone' | translate }}</th>
+              <!-- 金额 -->
+              <th>{{ 'their.fees.money' | translate }}</th>
+              <!--  未收票金额-->
+              <th>{{ 'no.ticket.money' | translate }}</th>
+              <!-- 本次收票金额 -->
+              <th>{{ 'this.ticket.money' | translate }}</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of basicTable.data; let i = index">
+              <td nzAlign="center">{{ i + 1 }}</td>
+              <td style="width: 20%;">
+                {{ data.coArchivesName }}
+              </td>
+              <td style="width: 20%;">
+                {{ data.proArchivesMilestone }}
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.price" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.price }}
+              </td>
+              <td>
+                <!-- <nz-input-number [(ngModel)]="data.uncoPrice" [nzMin]="0" [nzStep]="1" [nzFormatter]="formatterDollar" [nzParser]="parserDollar"></nz-input-number> -->
+                {{ data.uncoPrice }}
+              </td>
+              <td>
+                {{ data.coPrice }}
+              </td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </div>
     </div>
-  </div>
-</nz-card>
+  </nz-card>
 </nz-spin>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{invoiceManagePurchase.currentUser}} <strong>填写时间:</strong>{{invoiceManagePurchase.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ invoiceManagePurchase.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ invoiceManagePurchase.createTime }}
+
   <!-- 关闭按钮 -->
-  <button nz-button  (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel'|translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 20 - 9
src/app/routes/pro/account/center/applications/applications.component.html

@@ -1,19 +1,27 @@
-<nz-list [nzLoading]="listLoading" [nzDataSource]="list" [nzRenderItem]="item" [nzGrid]="{ gutter: 24, xxl: 8, xl: 12, lg: 12, md: 12, sm: 12, xs: 24 }">
+<nz-list
+  [nzLoading]="listLoading"
+  [nzDataSource]="list"
+  [nzRenderItem]="item"
+  [nzGrid]="{ gutter: 24, xxl: 8, xl: 12, lg: 12, md: 12, sm: 12, xs: 24 }"
+>
   <ng-template #item let-item>
     <nz-list-item>
-      <nz-card nzHoverable [nzActions]="[op1,op2,op3,op4]">
+      <nz-card nzHoverable [nzActions]="[op1, op2, op3, op4]">
         <ng-template #op1>
-          <nz-tooltip [nzTitle]="'下载'">
+          <!-- 下载 -->
+          <nz-tooltip [nzTitle]="'{{ 'pm.project.archives.file.down.load' | translate }}'">
             <i nz-tooltip nz-icon type="download"></i>
           </nz-tooltip>
         </ng-template>
         <ng-template #op2>
-          <nz-tooltip [nzTitle]="'编辑'">
+          <!-- 编辑 -->
+          <nz-tooltip [nzTitle]="'{{ 'edit' | translate }}'">
             <i nz-tooltip nz-icon type="edit"></i>
           </nz-tooltip>
         </ng-template>
         <ng-template #op3>
-          <nz-tooltip [nzTitle]="'分享'">
+          <!-- 分享 -->
+          <nz-tooltip [nzTitle]="'{{ 'share' | translate }}'">
             <i nz-tooltip nz-icon type="share-alt"></i>
           </nz-tooltip>
         </ng-template>
@@ -34,14 +42,17 @@
         </nz-card-meta>
         <div class="card-info d-flex">
           <div>
-            <p>活跃用户</p>
-            <p>{{item.activeUser}}
+            <!-- 活跃用户 -->
+            <p>{{ 'active.users' | translate }}</p>
+            <p>
+              {{ item.activeUser }}
               <em class="wan"></em>
             </p>
           </div>
           <div>
-            <p>新增用户</p>
-            <p>{{item.newUser | number: '3.'}}</p>
+            <!-- 新增用户 -->
+            <p>{{ 'new.users' | translate }}</p>
+            <p>{{ item.newUser | number: '3.' }}</p>
           </div>
         </div>
       </nz-card>

+ 2 - 1
src/app/routes/pro/account/center/articles/articles.component.html

@@ -21,7 +21,8 @@
       <div class="mt-md d-flex">
         <nz-avatar [nzSrc]="item.avatar" [nzSize]="'small'" class="mr-sm"></nz-avatar>
         <a href="{{item.href}}" target="_blank">{{item.owner}}</a>
-        <span class="px-sm">发布在</span>
+        <!-- 发布在 -->
+        <span class="px-sm">{{ 'published.in' | translate }}</span>
         <a href="{{item.href}}" target="_blank">{{item.href}}</a>
         <time class="pl-md text-grey" title="{{item.updatedAt}}">{{item.updatedAt | _date}}</time>
       </div>

+ 24 - 13
src/app/routes/pro/account/center/center.component.html

@@ -3,38 +3,49 @@
     <nz-card [nzBordered]="false" class="mb-lg" [nzLoading]="!user">
       <ng-container *ngIf="user">
         <div class="avatarHolder">
-          <img src="{{user.avatar}}">
-          <div class="name">{{user.name}}</div>
-          <div>{{user.signature}}</div>
+          <img src="{{ user.avatar }}" />
+          <div class="name">{{ user.name }}</div>
+          <div>{{ user.signature }}</div>
         </div>
         <div class="detail">
-          <p><i class="title"></i>{{user.title}}</p>
-          <p><i class="group"></i>{{user.group}}</p>
+          <p><i class="title"></i>{{ user.title }}</p>
+          <p><i class="group"></i>{{ user.group }}</p>
           <p>
             <i class="address"></i>
-            {{user.geographic.province.label}}
-            {{user.geographic.city.label}}
+            {{ user.geographic.province.label }}
+            {{ user.geographic.city.label }}
           </p>
         </div>
         <nz-divider nzDashed></nz-divider>
         <div class="tags">
-          <div class="tagsTitle">标签</div>
-          <nz-tag *ngFor="let t of user.tags">{{t.label}}</nz-tag>
+          <!-- 标签 -->
+          <div class="tagsTitle">{{ 'the.label' | translate }}</div>
+          <nz-tag *ngFor="let t of user.tags">{{ t.label }}</nz-tag>
           <nz-tag *ngIf="!taging" (click)="tagShowIpt()" class="ant-tag__plus">
             <i nz-icon type="plus"></i>
           </nz-tag>
-          <input *ngIf="taging" #tagInput nz-input [(ngModel)]="tagValue" (blur)="tagBlur()"
-                 (keydown)="tagEnter($event)" nzSize="small" type="text" style="width: 78px">
+          <input
+            *ngIf="taging"
+            #tagInput
+            nz-input
+            [(ngModel)]="tagValue"
+            (blur)="tagBlur()"
+            (keydown)="tagEnter($event)"
+            nzSize="small"
+            type="text"
+            style="width: 78px"
+          />
         </div>
         <nz-divider nzDashed></nz-divider>
         <div class="team">
-          <div class="teamTitle">团队</div>
+          <!-- 团队 -->
+          <div class="teamTitle">{{ 'the.team' | translate }}</div>
           <nz-spin [nzSpinning]="!notice">
             <div nz-row nzGutter="36">
               <div nz-col *ngFor="let t of notice" nzLg="24" nzXl="12">
                 <a href="#" class="text-truncate">
                   <nz-avatar [nzSrc]="t.logo" nzSize="small"></nz-avatar>
-                  {{t.member}}
+                  {{ t.member }}
                 </a>
               </div>
             </div>

+ 164 - 76
src/app/routes/pro/form/advanced-form/advanced-form.component.html

@@ -1,42 +1,57 @@
 <page-header [title]="'高级表单'">
+  <!-- {{ '' | translate }} -->
   高级表单常见于一次性输入和提交大批量数据的场景。(示例采用响应式表单,也可使用模板驱动方式)
 </page-header>
 <form nz-form [formGroup]="form" (ngSubmit)="_submitForm()" [nzLayout]="'vertical'">
-  <nz-card [nzBordered]="false" nzTitle="仓库管理">
+  <!-- 仓库管理 -->
+  <nz-card [nzBordered]="false" nzTitle="{{ 'warehouse.management' | translate }}">
     <nz-row nzGutter="16">
       <nz-col nzLg="6" nzMd="12" nzSm="24">
         <nz-form-item>
-          <nz-form-label nzFor="name">仓库名</nz-form-label>
+          <!-- 仓库名 -->
+          <nz-form-label nzFor="name">{{ 'warehouse.name' | translate }}</nz-form-label>
           <nz-form-control>
-            <input nz-input formControlName="name" id="name" placeholder="请输入仓库名称">
+            <input
+              nz-input
+              formControlName="name"
+              id="name"
+              placeholder="{{ 'placeholder' | translate }}{{ 'warehouse.name' | translate }}"
+            />
             <nz-form-explain *ngIf="(name.dirty || name.touched) && name.errors?.required">
-              请输入仓库名称
+              {{ 'placeholder' | translate }}{{ 'warehouse.name' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
-      <nz-col [nzXl]="{span:6, offset:2}" [nzLg]="{span:8}" [nzMd]="{span:12}" nzSm="24">
+      <nz-col [nzXl]="{ span: 6, offset: 2 }" [nzLg]="{ span: 8 }" [nzMd]="{ span: 12 }" nzSm="24">
         <nz-form-item>
-          <nz-form-label>仓库域名</nz-form-label>
+          <!-- 仓库域名 -->
+          <nz-form-label>{{ 'warehouse.domain.name' | translate }}</nz-form-label>
           <nz-form-control>
             <nz-input-group nzAddOnBefore="http://" nzAddOnAfter=".com">
-              <input nz-input formControlName="url" placeholder="请输入">
+              <input nz-input formControlName="url" placeholder="{{ 'placeholder' | translate }}" />
             </nz-input-group>
             <nz-form-explain *ngIf="(url.dirty || url.touched) && url.errors?.required">
-              请输入仓库域名
+              {{ 'placeholder' | translate }}
+              {{ 'warehouse.domain.name' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
-      <nz-col [nzXl]="{span:8, offset:2}" [nzLg]="{span:10}" [nzMd]="{span:24}" nzSm="24">
+      <nz-col [nzXl]="{ span: 8, offset: 2 }" [nzLg]="{ span: 10 }" [nzMd]="{ span: 24 }" nzSm="24">
         <nz-form-item>
-          <nz-form-label>仓库管理员</nz-form-label>
+          <!--仓库管理员  -->
+          <nz-form-label>{{ 'warehouse.keeper' | translate }}仓库管理员</nz-form-label>
           <nz-form-control>
-            <nz-select formControlName="owner" [nzPlaceHolder]="'请选择管理员'" [nzShowSearch]="true">
+            <nz-select
+              formControlName="owner"
+              [nzPlaceHolder]="'{{ 'placeholder' | translate }}{{ 'warehouse.keeper' | translate }}'"
+              [nzShowSearch]="true"
+            >
               <nz-option *ngFor="let i of users" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
             </nz-select>
             <nz-form-explain *ngIf="(owner.dirty || owner.touched) && owner.errors?.required">
-              请选择管理员
+              {{ 'placeholder' | translate }}{{ 'warehouse.keeper' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -45,76 +60,105 @@
     <nz-row nzGutter="16">
       <nz-col nzLg="6" nzMd="12" nzSm="24">
         <nz-form-item>
-          <nz-form-label>审批员</nz-form-label>
+          <!-- 审批员 -->
+          <nz-form-label>{{ 'part.approval' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select formControlName="approver" [nzPlaceHolder]="'请选择管理员'" [nzShowSearch]="true">
-              <nz-option *ngFor="let i of users" [nzLabel]="i.label" [nzValue]="i.value">
-              </nz-option>
+            <!--  -->
+            <nz-select
+              formControlName="approver"
+              [nzPlaceHolder]="'{{ 'placeholder' | translate }}{{ 'part.approval' | translate }}'"
+              [nzShowSearch]="true"
+            >
+              <nz-option *ngFor="let i of users" [nzLabel]="i.label" [nzValue]="i.value"> </nz-option>
             </nz-select>
             <nz-form-explain *ngIf="(approver.dirty || approver.touched) && approver.errors?.required">
-              请选择审批员
+              {{ 'placeholder' | translate }}{{ 'part.approval' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
-      <nz-col [nzXl]="{span:6, offset:2}" [nzLg]="{span:8}" [nzMd]="{span:12}" nzSm="24">
+      <nz-col [nzXl]="{ span: 6, offset: 2 }" [nzLg]="{ span: 8 }" [nzMd]="{ span: 12 }" nzSm="24">
         <nz-form-item>
-          <nz-form-label>生效日期</nz-form-label>
+          <!-- 生效日期 -->
+          <nz-form-label>{{ 'effective.date' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-range-picker formControlName="date_range" [nzStyle]="{width: '100%'}"></nz-range-picker>
+            <nz-range-picker formControlName="date_range" [nzStyle]="{ width: '100%' }"></nz-range-picker>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
-      <nz-col [nzXl]="{span:8, offset:2}" [nzLg]="{span:10}" [nzMd]="{span:24}" nzSm="24">
+      <nz-col [nzXl]="{ span: 8, offset: 2 }" [nzLg]="{ span: 10 }" [nzMd]="{ span: 24 }" nzSm="24">
         <nz-form-item>
-          <nz-form-label>仓库类型</nz-form-label>
+          <!-- 仓库类型 -->
+          <nz-form-label>{{ 'warehouse.type' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select formControlName="type" [nzShowSearch]="true" [nzPlaceHolder]="'请选择仓库类型'">
-              <nz-option [nzLabel]="'私密'" [nzValue]="'private'"></nz-option>
-              <nz-option [nzLabel]="'公开'" [nzValue]="'public'"></nz-option>
+            <nz-select
+              formControlName="type"
+              [nzShowSearch]="true"
+              [nzPlaceHolder]="'{{ 'placeholder' | translate }}{{ 'warehouse.type' | translate }}'"
+            >
+              <!-- 私密 -->
+              <nz-option [nzLabel]="'{{ 'private' | translate }}'" [nzValue]="'private'"></nz-option>
+              <!-- 公开 -->
+              <nz-option [nzLabel]="'{{ 'public' | translate }}'" [nzValue]="'public'"></nz-option>
             </nz-select>
+            <!--  -->
             <nz-form-explain *ngIf="(type.dirty || type.touched) && type.errors?.required">
-              请选择仓库类型
+              {{ 'placeholder' | translate }}{{ 'warehouse.type' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
     </nz-row>
   </nz-card>
-  <nz-card [nzBordered]="false" nzTitle="任务管理">
+  <nz-card [nzBordered]="false" nzTitle="{{ 'working.task' | translate }}{{ 'management' | translate }}">
     <nz-row nzGutter="16">
       <nz-col nzLg="6" nzMd="12" nzSm="24">
         <nz-form-item>
-          <nz-form-label>任务名</nz-form-label>
+          <!-- 任务名 -->
+          <nz-form-label>{{ 'working.task.name' | translate }}</nz-form-label>
           <nz-form-control>
-            <input nz-input formControlName="name2" placeholder="请输入任务名">
+            <input
+              nz-input
+              formControlName="name2"
+              placeholder="{{ 'placeholder' | translate }}{{ 'working.task.name' | translate }}"
+            />
             <nz-form-explain *ngIf="(name2.dirty || name2.touched) && name2.errors?.required">
-              请输入任务名
+              {{ 'placeholder' | translate }}{{ 'working.task.name' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
-      <nz-col [nzXl]="{span:6, offset:2}" [nzLg]="{span:8}" [nzMd]="{span:12}" nzSm="24">
+      <nz-col [nzXl]="{ span: 6, offset: 2 }" [nzLg]="{ span: 8 }" [nzMd]="{ span: 12 }" nzSm="24">
         <nz-form-item>
-          <nz-form-label>任务描述</nz-form-label>
+          <!-- 任务描述 -->
+          <nz-form-label>{{ 'working.task.desc' | translate }}</nz-form-label>
           <nz-form-control>
-            <textarea nz-input formControlName="summary" [nzAutosize]="true" placeholder="请输入任务描述"></textarea>
+            <textarea
+              nz-input
+              formControlName="summary"
+              [nzAutosize]="true"
+              placeholder="{{ 'placeholder' | translate }}{{ 'working.task.desc' | translate }}"
+            ></textarea>
             <nz-form-explain *ngIf="(summary.dirty || summary.touched) && summary.errors?.required">
-              请输入任务描述
+              {{ 'placeholder' | translate }}{{ 'working.task.desc' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
-      <nz-col [nzXl]="{span:8, offset:2}" [nzLg]="{span:10}" [nzMd]="{span:24}" nzSm="24">
+      <nz-col [nzXl]="{ span: 8, offset: 2 }" [nzLg]="{ span: 10 }" [nzMd]="{ span: 24 }" nzSm="24">
         <nz-form-item>
-          <nz-form-label>执行人</nz-form-label>
+          <!-- 执行人 -->
+          <nz-form-label>{{ 'executor' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select formControlName="owner2" [nzPlaceHolder]="'请选择执行人'" [nzShowSearch]="true">
-              <nz-option *ngFor="let i of users" [nzLabel]="i.label" [nzValue]="i.value">
-              </nz-option>
+            <nz-select
+              formControlName="owner2"
+              [nzPlaceHolder]="'{{ 'select.please.choose' | translate }}{{ 'executor' | translate }}'"
+              [nzShowSearch]="true"
+            >
+              <nz-option *ngFor="let i of users" [nzLabel]="i.label" [nzValue]="i.value"> </nz-option>
             </nz-select>
             <nz-form-explain *ngIf="(owner2.dirty || owner2.touched) && owner2.errors?.required">
-              请选择执行人
+              {{ 'select.please.choose' | translate }}{{ 'executor' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -123,96 +167,140 @@
     <nz-row nzGutter="16">
       <nz-col nzLg="6" nzMd="12" nzSm="24">
         <nz-form-item>
-          <nz-form-label>责任人</nz-form-label>
+          <!-- 责任人 -->
+          <nz-form-label>{{ 'the.responsible' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select formControlName="approver2" [nzPlaceHolder]="'请选择责任人'" [nzShowSearch]="true">
+            <nz-select
+              formControlName="approver2"
+              [nzPlaceHolder]="'{{ 'select.please.choose' | translate }}{{ 'the.responsible' | translate }}'"
+              [nzShowSearch]="true"
+            >
               <nz-option *ngFor="let i of users" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
             </nz-select>
             <nz-form-explain *ngIf="(approver2.dirty || approver2.touched) && approver2.errors?.required">
-              请选择责任人
+              {{ 'select.please.choose' | translate }}{{ 'the.responsible' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
-      <nz-col [nzXl]="{span:6, offset:2}" [nzLg]="{span:8}" [nzMd]="{span:12}" nzSm="24">
+      <nz-col [nzXl]="{ span: 6, offset: 2 }" [nzLg]="{ span: 8 }" [nzMd]="{ span: 12 }" nzSm="24">
         <nz-form-item>
-          <nz-form-label>生效时间</nz-form-label>
+          <!-- 生效时间 -->
+          <nz-form-label>{{ 'effect.time' | translate }}</nz-form-label>
           <nz-form-control>
             <nz-time-picker formControlName="time"></nz-time-picker>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
-      <nz-col [nzXl]="{span:8, offset:2}" [nzLg]="{span:10}" [nzMd]="{span:24}" nzSm="24">
+      <nz-col [nzXl]="{ span: 8, offset: 2 }" [nzLg]="{ span: 10 }" [nzMd]="{ span: 24 }" nzSm="24">
         <nz-form-item>
-          <nz-form-label>任务类型</nz-form-label>
+          <!--任务类型  -->
+          <nz-form-label>{{ 'working.task' | translate }}{{ 'financial.management.type' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select formControlName="type2" [nzShowSearch]="true" [nzPlaceHolder]="'请选择任务类型'">
-              <nz-option [nzLabel]="'私密'" [nzValue]="'private'"></nz-option>
-              <nz-option [nzLabel]="'公开'" [nzValue]="'public'"></nz-option>
+            <nz-select
+              formControlName="type2"
+              [nzShowSearch]="true"
+              [nzPlaceHolder]="'{{ 'select.please.choose' | translate }}{{ 'working.task' | translate }}{{ 'financial.management.type' | translate }}'"
+            >
+              <!--私密  -->
+              <nz-option [nzLabel]="'{{ 'private' | translate }}'" [nzValue]="'private'"></nz-option>
+              <!-- 公开 -->
+              <nz-option [nzLabel]="'{{ 'public' | translate }}'" [nzValue]="'public'"></nz-option>
             </nz-select>
             <nz-form-explain *ngIf="(type2.dirty || type2.touched) && type2.errors?.required">
-              请选择任务类型
+              {{ 'select.please.choose' | translate }}{{ 'working.task' | translate
+              }}{{ 'financial.management.type' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
       </nz-col>
     </nz-row>
   </nz-card>
-  <nz-card [nzBordered]="false" nzTitle="成员管理">
+  <!--成员管理  -->
+  <nz-card [nzBordered]="false" nzTitle="{{ 'members' | translate }}{{ 'management' | translate }}">
     <nz-table nzSize="small" formArrayName="items" [nzData]="items.value" [nzShowPagination]="false">
       <thead>
         <tr>
-          <th>成员姓名</th>
-          <th>工号</th>
-          <th>所属部门</th>
-          <th>操作</th>
+          <!--  成员姓名-->
+          <th>{{ 'members' | translate }}{{ 'name' | translate }}</th>
+          <!-- 工号 -->
+          <th>{{ 'work.number' | translate }}</th>
+          <!-- 所属部门 -->
+          <th>{{ 'subordinate.departments' | translate }}</th>
+          <!-- 操作 -->
+          <th>{{ 'table.operation' | translate }}</th>
         </tr>
       </thead>
       <tbody>
         <tr *ngFor="let item of items.controls; let i = index" [formGroupName]="i">
           <td>
-            <span *ngIf="editIndex!==i">{{items.value[i].name}}</span>
-            <span *ngIf="editIndex===i" nz-form-control>
-              <input nz-input formControlName="name" placeholder="请输入成员姓名">
+            <span *ngIf="editIndex !== i">{{ items.value[i].name }}</span>
+            <span *ngIf="editIndex === i" nz-form-control>
+              <!-- 成员姓名 -->
+              <input
+                nz-input
+                formControlName="name"
+                placeholder="{{ 'placeholder' | translate }}{{ 'members' | translate }}{{ 'name' | translate }}"
+              />
             </span>
           </td>
           <td>
-            <span *ngIf="editIndex!==i">{{items.value[i].workId}}</span>
-            <span *ngIf="editIndex===i" nz-form-control>
-              <input nz-input formControlName="workId" placeholder="请输入工号">
+            <span *ngIf="editIndex !== i">{{ items.value[i].workId }}</span>
+            <span *ngIf="editIndex === i" nz-form-control>
+              <!-- 请输入工号 -->
+              <input
+                nz-input
+                formControlName="workId"
+                placeholder="{{ 'placeholder' | translate }}{{ 'work.number' | translate }}"
+              />
             </span>
           </td>
           <td>
-            <span *ngIf="editIndex!==i">{{items.value[i].department}}</span>
-            <span *ngIf="editIndex===i" nz-form-control>
-              <input nz-input formControlName="department" placeholder="请输入所属部门">
+            <span *ngIf="editIndex !== i">{{ items.value[i].department }}</span>
+            <span *ngIf="editIndex === i" nz-form-control>
+              <!-- 所属部门 -->
+              <input
+                nz-input
+                formControlName="department"
+                placeholder="{{ 'placeholder' | translate }}{{ 'subordinate.departments' | translate }}"
+              />
             </span>
           </td>
           <td>
-            <span *ngIf="editIndex!==i">
-              <a (click)="edit(i)">编辑</a>
+            <span *ngIf="editIndex !== i">
+              <!-- 编辑 -->
+              <a (click)="edit(i)">{{ 'edit' | translate }}</a>
               <nz-divider nzType="vertical"></nz-divider>
-              <nz-popconfirm (nzOnConfirm)="del(i)" [nzTitle]="'是否要删除此行?'">
-                <a nz-popconfirm>删除</a>
+              <!-- 是否要删除此行 -->
+              <nz-popconfirm (nzOnConfirm)="del(i)" [nzTitle]="'{{ 'whether.to.delete.this.row' | translate }}'">
+                <!-- 删除 -->
+                <a nz-popconfirm>{{ 'table.delete' | translate }}</a>
               </nz-popconfirm>
             </span>
-            <span *ngIf="editIndex===i">
-              <a (click)="save(i)">保存</a>
+            <span *ngIf="editIndex === i">
+              <!--保存  -->
+              <a (click)="save(i)">{{ 'button.save' | translate }}</a>
               <nz-divider nzType="vertical"></nz-divider>
-              <nz-popconfirm (nzOnConfirm)="cancel(i)" [nzTitle]="'是否要取消操作?'">
-                <a nz-popconfirm>取消</a>
+              <!--  取消-->
+              <nz-popconfirm
+                (nzOnConfirm)="cancel(i)"
+                [nzTitle]="'{{ 'whether.to.cancel.this.operation' | translate }}'"
+              >
+                <a nz-popconfirm>{{ 'button.cancel' | translate }}</a>
               </nz-popconfirm>
             </span>
           </td>
         </tr>
       </tbody>
     </nz-table>
-    <button *ngIf="editIndex===-1" nz-button [nzType]="'dashed'" (click)="add()" nzBlock class="mt-md">
+    <button *ngIf="editIndex === -1" nz-button [nzType]="'dashed'" (click)="add()" nzBlock class="mt-md">
       <i nz-icon type="plus"></i>
-      <span>新增成员</span>
+      <!-- 新增成员 -->
+      <span>{{ 'button.add' | translate }}{{ 'members' | translate }}</span>
     </button>
   </nz-card>
   <footer-toolbar errorCollect>
-    <button nz-button type="primary" nzType="primary">提交</button>
+    <!-- 提交 -->
+    <button nz-button type="primary" nzType="primary">{{ 'submit' | translate }}</button>
   </footer-toolbar>
 </form>

+ 66 - 20
src/app/routes/pro/form/basic-form/basic-form.component.html

@@ -1,41 +1,87 @@
+<!-- 基础表单 -->
 <page-header [title]="'基础表单'">
   将一个冗长或用户不熟悉的表单任务分成多个步骤,指导用户完成。
 </page-header>
 <nz-card [nzBordered]="false">
   <form nz-form [formGroup]="form" (ngSubmit)="submit()" se-container="1" labelWidth="200">
-    <se label="标题" error="请输入标题" required>
-      <input nz-input formControlName="title" placeholder="给目标起个名字">
+    <se label="{{ 'title' | translate }}" error="{{ 'placeholder' | translate }}{{ 'title' | translate }}" required>
+      <!-- 给目标起个名字 -->
+      <input nz-input formControlName="title" placeholder="{{ 'give.target.name' | translate }}" />
     </se>
-    <se label="起止日期" error="请输入标题" required>
+    <!-- 起止日期 -->
+    <se
+      label="{{ 'commencement.date' | translate }}"
+      error="{{ 'select.please.choose' | translate }}{{ 'commencement.date' | translate }}"
+      required
+    >
       <nz-range-picker formControlName="date"></nz-range-picker>
     </se>
-    <se label="目标描述" error="请输入目标描述" required>
-      <textarea nz-input formControlName="goal" [nzAutosize]="{minRows: 4}" placeholder="请输入你的阶段性工作目标"></textarea>
+    <!-- 目标描述 -->
+    <se
+      label="{{ 'objective.desc' | translate }}"
+      error="{{ 'placeholder' | translate }}{{ 'objective.desc' | translate }}"
+      required
+    >
+      <!-- 请输入你的阶段性工作目标 -->
+      <textarea
+        nz-input
+        formControlName="goal"
+        [nzAutosize]="{ minRows: 4 }"
+        placeholder="{{ 'placeholder' | translate }}{{ 'your.milestones' | translate }}"
+      ></textarea>
     </se>
-    <se label="衡量标准" error="请输入衡量标准" required>
-      <textarea nz-input formControlName="standard" [nzAutosize]="{minRows: 4}" placeholder="请输入衡量标准"></textarea>
+    <!--衡量标准  -->
+    <se
+      label="{{ 'standard.measurement' | translate }}"
+      error="{{ 'placeholder' | translate }}{{ 'standard.measurement' | translate }}"
+      required
+    >
+      <textarea
+        nz-input
+        formControlName="standard"
+        [nzAutosize]="{ minRows: 4 }"
+        placeholder="{{ 'placeholder' | translate }}{{ 'standard.measurement' | translate }}"
+      ></textarea>
     </se>
-    <se label="客户" optionalHelp="目标的服务对象" error="请输入衡量标准">
-      <input nz-input formControlName="client" placeholder="请描述你服务的客户,内部客户直接 @姓名/工号">
+    <!-- 客户 目标的服务对象 衡量标准-->
+    <se
+      label="{{ 'customer' | translate }}"
+      optionalHelp="{{ 'target.service.object' | translate }}"
+      error="{{ 'placeholder' | translate }}{{ 'standard.measurement' | translate }}"
+    >
+      <input nz-input formControlName="client" placeholder="请描述你服务的客户,内部客户直接 @姓名/工号" />
     </se>
-    <se label="邀评人">
-      <input nz-input formControlName="invites" placeholder="请直接 @姓名/工号,最多可邀请 5 人">
+    <!-- 邀评人 -->
+    <se label="{{ 'reviewers' | translate }}">
+      <input nz-input formControlName="invites" placeholder="请直接 @姓名/工号,最多可邀请 5 人" />
     </se>
-    <se label="权重">
-      <nz-input-number formControlName="weight" placeholder="请输入"></nz-input-number>
+    <!-- 权重 -->
+    <se label="{{ 'milestone.schedule' | translate }}">
+      <nz-input-number formControlName="weight" placeholder="{{ 'placeholder' | translate }}"></nz-input-number>
       <em>%</em>
     </se>
-    <se label="目标公开" extra="客户、邀评人默认被分享">
+    <!-- 目标公开  客户、邀评人默认被分享-->
+    <se
+      label="{{ 'target.public' | translate }}"
+      extra="{{ 'customer' | translate }}、{{ 'invited.reviewers.shared.default' | translate }}"
+    >
       <nz-radio-group formControlName="public">
-        <label nz-radio [nzValue]="1">公开</label>
-        <label nz-radio [nzValue]="2">部分公开</label>
-        <label nz-radio [nzValue]="3">不公开</label>
+        <!-- 公开 -->
+        <label nz-radio [nzValue]="1">{{ 'public' | translate }}</label>
+        <!-- 部分公开 -->
+        <label nz-radio [nzValue]="2">{{ 'part.public' | translate }}</label>
+        <!-- 不公开 -->
+        <label nz-radio [nzValue]="3">{{ 'do.not.public' | translate }}</label>
       </nz-radio-group>
-      <input *ngIf="form.value.public === 2" nz-input formControlName="publicUsers" placeholder="公开给">
+      <input *ngIf="form.value.public === 2" nz-input formControlName="publicUsers" placeholder="公开给" />
     </se>
     <se>
-      <button nz-button nzType="primary" [disabled]="form.invalid" type="submit" [nzLoading]="submitting">提交</button>
-      <button nz-button class="ml-sm">保存</button>
+      <!-- 提交 -->
+      <button nz-button nzType="primary" [disabled]="form.invalid" type="submit" [nzLoading]="submitting">
+        {{ 'submit' | translate }}
+      </button>
+      <!-- 保存 -->
+      <button nz-button class="ml-sm">{{ 'button.save' | translate }}</button>
     </se>
   </form>
 </nz-card>

+ 9 - 6
src/app/routes/pro/form/step-form/step-form.component.html

@@ -3,11 +3,14 @@
 </page-header>
 <nz-card [nzBordered]="false">
   <nz-steps [(nzCurrent)]="item.step">
-    <nz-step nzTitle="填写转账信息"></nz-step>
-    <nz-step nzTitle="确认转账信息"></nz-step>
-    <nz-step nzTitle="完成"></nz-step>
+    <!-- 填写转账信息 -->
+    <nz-step nzTitle="{{ 'fill.transfer.info' | translate }}"></nz-step>
+    <!--确认转账信息  -->
+    <nz-step nzTitle="{{ 'confirm.transfer.info' | translate }}"></nz-step>
+    <!-- 完成 -->
+    <nz-step nzTitle="{{ 'cost.finish' | translate }}"></nz-step>
   </nz-steps>
-  <app-step1 *ngIf="item.step==0"></app-step1>
-  <app-step2 *ngIf="item.step==1"></app-step2>
-  <app-step3 *ngIf="item.step==2"></app-step3>
+  <app-step1 *ngIf="item.step == 0"></app-step1>
+  <app-step2 *ngIf="item.step == 1"></app-step2>
+  <app-step3 *ngIf="item.step == 2"></app-step3>
 </nz-card>

+ 32 - 14
src/app/routes/pro/form/step-form/step1.component.html

@@ -4,29 +4,47 @@
       <nz-option [nzLabel]="item.pay_account" [nzValue]="item.pay_account"></nz-option>
     </nz-select>
   </se>
-  <se label="收款账户" error="请输入收款账户" required>
+  <!-- 收款账户 -->
+  <se
+    label="{{ 'collection' | translate }}{{ 'account' | translate }}"
+    error="{{ 'placeholder' | translate }}{{ 'collection' | translate }}{{ 'account' | translate }}"
+    required
+  >
     <nz-input-group nzCompact>
       <nz-select formControlName="receiver_type" style="width: 100px;">
-        <nz-option [nzLabel]="'支付宝'" [nzValue]="'alipay'"></nz-option>
-        <nz-option [nzLabel]="'银行账号'" [nzValue]="'bank'"></nz-option>
+        <!-- 支付宝 -->
+        <nz-option [nzLabel]="'{{ 'alipay' | translate }}'" [nzValue]="'alipay'"></nz-option>
+        <!-- 银行账号 -->
+        <nz-option [nzLabel]="'{{ 'bank.account' | translate }}'" [nzValue]="'bank'"></nz-option>
       </nz-select>
-      <input formControlName="receiver_account" nz-input style="width: calc(100% - 100px);">
+      <input formControlName="receiver_account" nz-input style="width: calc(100% - 100px);" />
     </nz-input-group>
   </se>
-  <se label="收款姓名" error="请输入收款姓名,至少2个字符以上" required>
-    <input nz-input formControlName="receiver_name">
+  <!-- 收款姓名 -->
+  <se label="{{ 'collection' | translate }}{{ 'name' | translate }}" error="请输入收款姓名,至少2个字符以上" required>
+    <input nz-input formControlName="receiver_name" />
   </se>
-  <se label="转账金额" error="请输入转账金额,且1至100万以内" required>
-    <input nz-input formControlName="amount" id="amount" nzAddonAfter="¥">
+  <!-- 转账金额 -->
+  <se label="{{ 'transfer.amount' | translate }}" error="请输入转账金额,且1至100万以内" required>
+    <input nz-input formControlName="amount" id="amount" nzAddonAfter="¥" />
   </se>
   <se>
-    <button nz-button nzType="primary" [disabled]="form.invalid">下一步</button>
+    <!-- 下一步 -->
+    <button nz-button nzType="primary" [disabled]="form.invalid">{{ 'next.step' | translate }}</button>
   </se>
 </form>
 <div class="border-top-1 mt-lg px-lg text-grey-dark">
-  <h3 class="h3 my-md">说明</h3>
-  <h4 class="h4 mb-sm">转账到支付宝账户</h4>
-  <p class="mb-sm">如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。</p>
-  <h4 class="h4 mb-sm">转账到银行卡</h4>
-  <p>如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。</p>
+  <!-- 说明 -->
+  <h3 class="h3 my-md">{{ 'instructions' | translate }}</h3>
+  <!-- 转账到支付宝账户 -->
+  <h4 class="h4 mb-sm">{{ 'transfer.alipay.account' | translate }}</h4>
+  <!--  -->
+  <p class="mb-sm">
+    如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。
+  </p>
+  <!-- 转账到银行卡 -->
+  <h4 class="h4 mb-sm">{{ 'transfer.bank.card' | translate }}</h4>
+  <p>
+    如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。
+  </p>
 </div>

+ 28 - 10
src/app/routes/pro/form/step-form/step2.component.html

@@ -1,15 +1,33 @@
 <form nz-form [formGroup]="form" (ngSubmit)="_submitForm()" se-container="1" labelWidth="100">
-  <nz-alert class="pb-lg" [nzMessage]="'确认转账后,资金将直接打入对方账户,无法退回。'" [nzShowIcon]="true" [nzCloseable]="true"></nz-alert>
-  <se label="付款账户">{{item.pay_account}}</se>
-  <se label="账户类型">{{item.receiver_type==='alipay' ? '支付宝' : '银行'}}</se>
-  <se label="收款账户">{{item.receiver_account}}</se>
-  <se label="收款人姓名">{{item.receiver_name}}</se>
-  <se label="转账金额"><strong class="text-lg">{{item.amount}}</strong></se>
-  <se label="支付密码" required error="至少6位数以上" class="border-top-1 pt-lg">
-    <input nz-input formControlName="password" type="password">
+  <nz-alert
+    class="pb-lg"
+    [nzMessage]="'确认转账后,资金将直接打入对方账户,无法退回。'"
+    [nzShowIcon]="true"
+    [nzCloseable]="true"
+  ></nz-alert>
+  <!-- 付款账户 -->
+  <se label="{{ 'payFor' | translate }}{{ 'account' | translate }}">{{ item.pay_account }}</se>
+  <!-- 账户类型 -->
+  <se label="{{ 'account.type' | translate }}">{{ item.receiver_type === 'alipay' ? '支付宝' : '银行' }}</se>
+  <!-- 收款账户 -->
+  <se label="{{ 'collection' | translate }}{{ 'account' | translate }}">{{ item.receiver_account }}</se>
+  <!-- 收款人姓名 -->
+  <se label="{{ 'payee.name' | translate }}">{{ item.receiver_name }}</se>
+  <!-- 转账金额 -->
+  <se label="{{ 'transfer.amount' | translate }}"
+    ><strong class="text-lg">{{ item.amount }}</strong></se
+  >
+  <!--支付密码  -->
+  <se label="{{ 'pay.password' | translate }}" required error="至少6位数以上" class="border-top-1 pt-lg">
+    <!--  -->
+    <input nz-input formControlName="password" type="password" />
   </se>
   <se>
-    <button nz-button [nzType]="'primary'" [nzLoading]="loading" [disabled]="form.invalid">提交</button>
-    <button nz-button (click)="prev()">上一步</button>
+    <!-- 提交 -->
+    <button nz-button [nzType]="'primary'" [nzLoading]="loading" [disabled]="form.invalid">
+      {{ 'submit' | translate }}
+    </button>
+    <!-- 上一步 -->
+    <button nz-button (click)="prev()">{{ 'previous.step' | translate }}</button>
   </se>
 </form>

+ 21 - 9
src/app/routes/pro/form/step-form/step3.component.html

@@ -1,18 +1,30 @@
 <div class="icon pt-md">
   <i nz-icon type="check-circle" class="text-success icon-lg"></i>
 </div>
-<h1 class="h2 pt-md">操作成功</h1>
-<p class="pt-md text-grey">预计两小时内到账</p>
+<!-- 操作成功 -->
+<h1 class="h2 pt-md">{{ 'Successful.operation' | translate }}</h1>
+<!-- 预计两小时内到账 -->
+<p class="pt-md text-grey">{{ 'expected.arrive.two.hours' | translate }}</p>
 <div sv-container col="1" labelWidth="150" class="extra">
-  <sv label="付款账户">{{item.pay_account}}</sv>
-  <sv label="账户类型">{{item.receiver_type_str}}</sv>
-  <sv label="收款账户">{{item.receiver_account}}</sv>
-  <sv label="收款人姓名">{{item.receiver_name}}</sv>
-  <sv label="转账金额"><strong class="text-lg pr-sm">{{item.amount}}</strong></sv>
+  <!-- 付款账户 -->
+  <sv label="{{ 'payFor' | translate }}{{ 'account' | translate }}">{{ item.pay_account }}</sv>
+  <!--账户类型  -->
+  <sv label="{{ 'account.type' | translate }}">{{ item.receiver_type_str }}</sv>
+  <!-- 收款账户 -->
+  <sv label="{{ 'collection' | translate }}{{ 'account' | translate }}">{{ item.receiver_account }}</sv>
+  <!-- 收款人姓名 -->
+  <sv label="{{ 'payee.name' | translate }}">{{ item.receiver_name }}</sv>
+  <!-- 转账金额 -->
+  <sv label="{{ 'transfer.amount' | translate }}"
+    ><strong class="text-lg pr-sm">{{ item.amount }}</strong
+    >元</sv
+  >
 </div>
 <div nz-row class="my-md py-md">
   <div nz-col>
-    <button nz-button (click)="item.again()" [nzType]="'primary'">再转一笔</button>
-    <button nz-button class="ml-sm">查看账单</button>
+    <!-- 再转一笔 -->
+    <button nz-button (click)="item.again()" [nzType]="'primary'">{{ 'transfer.again' | translate }}</button>
+    <!-- 查看账单 -->
+    <button nz-button class="ml-sm">{{ 'check' | translate }}{{ 'bill' | translate }}</button>
   </div>
 </div>

+ 54 - 19
src/app/routes/pro/list/applications/applications.component.html

@@ -1,27 +1,51 @@
 <nz-card [nzBordered]="false">
   <form nz-form se-container="1" size="compact" gutter="32" [labelWidth]="null">
-    <se label="所属类目" line>
+    <!-- 所属类目 -->
+    <se label="{{ 'belong.category' | translate }}" line>
       <tag-select>
-        <nz-tag *ngFor="let i of categories; let idx = index" nzMode="checkable" [nzChecked]="i.value" (nzCheckedChange)="changeCategory($event, idx)">
-          {{i.text}}
+        <nz-tag
+          *ngFor="let i of categories; let idx = index"
+          nzMode="checkable"
+          [nzChecked]="i.value"
+          (nzCheckedChange)="changeCategory($event, idx)"
+        >
+          {{ i.text }}
         </nz-tag>
       </tag-select>
     </se>
-    <se label="其它选项">
+    <!-- 其它选项 -->
+    <se label="{{ 'other.options' | translate }}">
       <div class="ant-form ant-form-inline">
         <nz-form-item>
-          <nz-form-label nzFor="rate">作者</nz-form-label>
+          <!-- 作者 -->
+          <nz-form-label nzFor="rate">{{ 'author' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select [(ngModel)]="q.user" name="user" [nzPlaceHolder]="'不限'" [nzShowSearch]="true" style="width: 100px;">
-              <nz-option [nzLabel]="'李三'" [nzValue]="'lisa'"></nz-option>
+            <!-- 不限 -->
+            <nz-select
+              [(ngModel)]="q.user"
+              name="user"
+              [nzPlaceHolder]="'{{ 'no.limit' | translate }}'"
+              [nzShowSearch]="true"
+              style="width: 100px;"
+            >
+              <!-- 李三 -->
+              <nz-option [nzLabel]="'{{ 'lee.san' | translate }}'" [nzValue]="'lisa'"></nz-option>
             </nz-select>
           </nz-form-control>
         </nz-form-item>
         <nz-form-item>
-          <nz-form-label nzFor="rate">好评度</nz-form-label>
+          <!-- 好评度 -->
+          <nz-form-label nzFor="rate">{{ 'aavorable.rating' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select [(ngModel)]="q.rate" name="rate" [nzPlaceHolder]="'不限'" [nzShowSearch]="true" style="width: 100px;">
-              <nz-option [nzLabel]="'优秀'" [nzValue]="'good'"></nz-option>
+            <nz-select
+              [(ngModel)]="q.rate"
+              name="rate"
+              [nzPlaceHolder]="'{{ 'no.limit' | translate }}'"
+              [nzShowSearch]="true"
+              style="width: 100px;"
+            >
+              <!-- 优秀 -->
+              <nz-option [nzLabel]="'{{ 'good' | translate }}'" [nzValue]="'good'"></nz-option>
             </nz-select>
           </nz-form-control>
         </nz-form-item>
@@ -29,22 +53,30 @@
     </se>
   </form>
 </nz-card>
-<nz-list [nzLoading]="loading" [nzDataSource]="list" [nzRenderItem]="item" [nzGrid]="{ gutter: 24, xl: 6, lg: 8, md: 8, sm: 12, xs: 24 }">
+<nz-list
+  [nzLoading]="loading"
+  [nzDataSource]="list"
+  [nzRenderItem]="item"
+  [nzGrid]="{ gutter: 24, xl: 6, lg: 8, md: 8, sm: 12, xs: 24 }"
+>
   <ng-template #item let-item>
     <nz-list-item>
-      <nz-card nzHoverable [nzActions]="[op1,op2,op3,op4]">
+      <nz-card nzHoverable [nzActions]="[op1, op2, op3, op4]">
         <ng-template #op1>
-          <nz-tooltip [nzTitle]="'下载'">
+          <!--  下载-->
+          <nz-tooltip [nzTitle]="'{{ 'pm.project.archives.file.down.load' | translate }}'">
             <i nz-tooltip nz-icon type="download"></i>
           </nz-tooltip>
         </ng-template>
         <ng-template #op2>
-          <nz-tooltip [nzTitle]="'编辑'">
+          <!--  编辑-->
+          <nz-tooltip [nzTitle]="'{{ 'edit' | translate }}'">
             <i nz-tooltip nz-icon type="edit"></i>
           </nz-tooltip>
         </ng-template>
         <ng-template #op3>
-          <nz-tooltip [nzTitle]="'分享'">
+          <!-- 分享 -->
+          <nz-tooltip [nzTitle]="'{{ 'share' | translate }}'">
             <i nz-tooltip nz-icon type="share-alt"></i>
           </nz-tooltip>
         </ng-template>
@@ -65,14 +97,17 @@
         </nz-card-meta>
         <div class="card-info d-flex">
           <div>
-            <p>活跃用户</p>
-            <p>{{item.activeUser}}
+            <!-- 活跃用户 -->
+            <p>{{ 'active.users' | translate }}</p>
+            <p>
+              {{ item.activeUser }}
               <em class="wan"></em>
             </p>
           </div>
           <div>
-            <p>新增用户</p>
-            <p>{{item.newUser | number: '3.'}}</p>
+            <!-- 新增用户 -->
+            <p>{{ 'new.users' | translate }}</p>
+            <p>{{ item.newUser | number: '3.' }}</p>
           </div>
         </div>
       </nz-card>

+ 56 - 26
src/app/routes/pro/list/articles/articles.component.html

@@ -1,9 +1,15 @@
 <nz-card [nzBordered]="false">
   <form nz-form se-container="1" size="compact" gutter="32" [labelWidth]="null">
-    <se label="所属类目" line>
+    <!-- 所属类目 -->
+    <se label="{{ 'belong.category' | translate }}" line>
       <tag-select>
-        <nz-tag *ngFor="let i of categories; let idx = index" nzMode="checkable" [nzChecked]="i.value" (nzCheckedChange)="changeCategory($event, idx)">
-          {{i.text}}
+        <nz-tag
+          *ngFor="let i of categories; let idx = index"
+          nzMode="checkable"
+          [nzChecked]="i.value"
+          (nzCheckedChange)="changeCategory($event, idx)"
+        >
+          {{ i.text }}
         </nz-tag>
       </tag-select>
     </se>
@@ -11,23 +17,40 @@
       <nz-select [(ngModel)]="q.owners" name="owners" [nzMode]="'tags'" style="max-width: 286px;">
         <nz-option *ngFor="let i of owners" [nzLabel]="i.name" [nzValue]="i.id"></nz-option>
       </nz-select>
-      <a class="ml-sm" (click)="setOwner()">只看自己的</a>
+      <!-- 只看自己的 -->
+      <a class="ml-sm" (click)="setOwner()">{{ 'look.own' | translate }}</a>
     </se>
-    <se label="其它选项">
+    <!-- 其它选项 -->
+    <se label="{{ 'other.options' | translate }}">
       <div class="ant-form ant-form-inline">
         <nz-form-item>
-          <nz-form-label nzFor="rate">作者</nz-form-label>
+          <!--作者  -->
+          <nz-form-label nzFor="rate">{{ 'author' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select [(ngModel)]="q.user" name="user" [nzPlaceHolder]="'不限'" [nzShowSearch]="true" style="width: 100px;">
-              <nz-option [nzLabel]="'李三'" [nzValue]="'lisa'"></nz-option>
+            <nz-select
+              [(ngModel)]="q.user"
+              name="user"
+              [nzPlaceHolder]="'{{ 'no.limit' | translate }}'"
+              [nzShowSearch]="true"
+              style="width: 100px;"
+            >
+              <nz-option [nzLabel]="'{{ 'lee.san' | translate }}'" [nzValue]="'lisa'"></nz-option>
             </nz-select>
           </nz-form-control>
         </nz-form-item>
         <nz-form-item>
-          <nz-form-label nzFor="rate">好评度</nz-form-label>
+          <!-- 好评度 -->
+          <nz-form-label nzFor="rate">{{ 'aavorable.rating' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select [(ngModel)]="q.rate" name="rate" [nzPlaceHolder]="'不限'" [nzShowSearch]="true" style="width: 100px;">
-              <nz-option [nzLabel]="'优秀'" [nzValue]="'good'"></nz-option>
+            <nz-select
+              [(ngModel)]="q.rate"
+              name="rate"
+              [nzPlaceHolder]="'{{ 'no.limit' | translate }}'"
+              [nzShowSearch]="true"
+              style="width: 100px;"
+            >
+            <!-- 优秀 -->
+              <nz-option [nzLabel]="'{{ 'good' | translate }}'" [nzValue]="'good'"></nz-option>
             </nz-select>
           </nz-form-control>
         </nz-form-item>
@@ -36,21 +59,24 @@
   </form>
 </nz-card>
 <nz-card [nzBordered]="false">
-  <nz-list nzItemLayout="vertical" [nzLoading]="loading" [nzDataSource]="list" [nzRenderItem]="item" [nzLoadMore]="loadMore">
+  <nz-list
+    nzItemLayout="vertical"
+    [nzLoading]="loading"
+    [nzDataSource]="list"
+    [nzRenderItem]="item"
+    [nzLoadMore]="loadMore"
+  >
     <ng-template #item let-item>
-      <nz-list-item [nzContent]="nzContent" [nzExtra]="nzExtra" [nzActions]="[op1,op2,op3]">
-        <ng-template #op1>
-          <i nz-icon type="star" class="mr-sm"></i>{{item.star}}</ng-template>
-        <ng-template #op2>
-          <i nz-icon type="like" class="mr-sm"></i>{{item.like}}</ng-template>
-        <ng-template #op3>
-          <i nz-icon type="message" class="mr-sm"></i>{{item.message}}</ng-template>
+      <nz-list-item [nzContent]="nzContent" [nzExtra]="nzExtra" [nzActions]="[op1, op2, op3]">
+        <ng-template #op1> <i nz-icon type="star" class="mr-sm"></i>{{ item.star }}</ng-template>
+        <ng-template #op2> <i nz-icon type="like" class="mr-sm"></i>{{ item.like }}</ng-template>
+        <ng-template #op3> <i nz-icon type="message" class="mr-sm"></i>{{ item.message }}</ng-template>
         <ng-template #nzExtra>
           <div style="width: 272px; height: 1px;"></div>
         </ng-template>
         <nz-list-item-meta [nzTitle]="nzTitle" [nzDescription]="nzDescription">
           <ng-template #nzTitle>
-            <a href="{{item.href}}" target="_blank">{{item.title}}</a>
+            <a href="{{ item.href }}" target="_blank">{{ item.title }}</a>
           </ng-template>
           <ng-template #nzDescription>
             <nz-tag>Alain</nz-tag>
@@ -59,20 +85,24 @@
           </ng-template>
         </nz-list-item-meta>
         <ng-template #nzContent>
-          <p>{{item.content}}</p>
+          <p>{{ item.content }}</p>
           <div class="mt-md d-flex">
             <nz-avatar [nzSrc]="item.avatar" [nzSize]="'small'" class="mr-sm"></nz-avatar>
-            <a href="{{item.href}}" target="_blank">{{item.owner}}</a>
-            <span class="px-sm">发布在</span>
-            <a href="{{item.href}}" target="_blank">{{item.href}}</a>
-            <time class="pl-md text-grey" title="{{item.updatedAt}}">{{item.updatedAt | _date}}</time>
+            <a href="{{ item.href }}" target="_blank">{{ item.owner }}</a>
+            <!-- 发布在 -->
+            <span class="px-sm">{{ 'published.in' | translate }}</span>
+            <a href="{{ item.href }}" target="_blank">{{ item.href }}</a>
+            <time class="pl-md text-grey" title="{{ item.updatedAt }}">{{ item.updatedAt | _date }}</time>
           </div>
         </ng-template>
       </nz-list-item>
     </ng-template>
     <ng-template #loadMore>
       <div class="text-center mt-md">
-        <button nz-button (click)="getData(true)" [nzLoading]="loading" [nzType]="'dashed'" style="min-width:200px;">加载更多</button>
+        <!-- 加载更多 -->
+        <button nz-button (click)="getData(true)" [nzLoading]="loading" [nzType]="'dashed'" style="min-width:200px;">
+          {{ 'load.more' | translate }}
+        </button>
       </div>
     </ng-template>
   </nz-list>

+ 36 - 20
src/app/routes/pro/list/basic-list/basic-list.component.html

@@ -2,66 +2,81 @@
 <nz-card [nzBordered]="false">
   <div nz-row>
     <div nz-col [nzXs]="24" [nzSm]="8" class="header-info">
-      <span class="text-grey-dark">我的待办</span>
-      <span class="d-block display-2">8个任务</span>
+      <!--  我的待办-->
+      <span class="text-grey-dark">{{ 'my.todo' | translate }}</span>
+      <!-- 8个任务 -->
+      <span class="d-block display-2">{{ 'eight.tasks' | translate }}</span>
       <em></em>
     </div>
     <div nz-col [nzXs]="24" [nzSm]="8" class="header-info">
-      <span class="text-grey-dark">本周任务平均处理时间</span>
-      <span class="d-block display-2">32分钟</span>
+      <!-- 本周任务平均处理时间 -->
+      <span class="text-grey-dark">{{ 'average.task.processing.time.of.the.week' | translate }}</span>
+      <!-- 32分钟 -->
+      <span class="d-block display-2">32{{ 'TimedTask.Label.CronExpression.Minute' | translate }}</span>
       <em></em>
     </div>
     <div nz-col [nzXs]="24" [nzSm]="8" class="header-info">
-      <span class="text-grey-dark">本周完成任务数</span>
-      <span class="d-block display-2">24个任务</span>
+      <!-- 本周完成任务数 -->
+      <span class="text-grey-dark">{{ 'number.of.tasks.completed.this.week' | translate }}</span>
+      <!-- 24个任务 -->
+      <span class="d-block display-2">{{ 'twentyFour.tasks' | translate }}</span>
     </div>
   </div>
 </nz-card>
 <nz-card [nzBordered]="false">
   <div class="d-flex align-items-center mb-lg">
-    <h3 class="flex-1 text-lg">标准列表</h3>
+    <!-- 标准列表 -->
+    <h3 class="flex-1 text-lg">{{ 'menu.list.basiclist' | translate }}</h3>
     <div>
       <nz-radio-group [(ngModel)]="q.status" class="mr-md">
         <label nz-radio-button [nzValue]="'all'">
-          <span>全部</span>
+          <!-- 全部 -->
+          <span>{{ 'store.all' | translate }}</span>
         </label>
         <label nz-radio-button [nzValue]="'progress'">
-          <span>进行中</span>
+          <!--进行中  -->
+          <span>{{ 'pm.project.archives.start.Have.in.hand' | translate }}</span>
         </label>
         <label nz-radio-button [nzValue]="'waiting'">
-          <span>等待中</span>
+          <!-- 等待中 -->
+          <span>{{ 'waiting' | translate }}</span>
         </label>
       </nz-radio-group>
       <nz-input-group nzSuffixIcon="anticon anticon-search" style="width: 270px;">
-        <input type="text" nz-input placeholder="请输入" [(ngModel)]="q.q" name="q">
+        <input type="text" nz-input placeholder="{{ 'placeholder' | translate }}" [(ngModel)]="q.q" name="q" />
       </nz-input-group>
     </div>
   </div>
   <button nz-button (click)="openEdit()" [nzType]="'dashed'" nzBlock class="mb-sm">
     <i nz-icon type="plus"></i>
-    <span>添加</span>
+    <!-- 添加 -->
+    <span>{{ 'add' | translate }}</span>
   </button>
   <nz-list [nzDataSource]="data" [nzLoading]="loading" [nzRenderItem]="item" [nzPagination]="pagination">
     <ng-template #item let-item>
       <nz-list-item [nzContent]="nzContent" [nzActions]="[edit, op]">
         <ng-template #edit>
-          <a (click)="openEdit(item)">编辑</a>
+          <!-- 编辑 -->
+          <a (click)="openEdit(item)">{{ 'edit' | translate }}</a>
         </ng-template>
         <ng-template #op>
           <nz-dropdown>
             <a class="ant-dropdown-link" nz-dropdown>
-              更多
+              <!--  更多-->
+              {{ 'menu.more' | translate }}
               <i nz-icon type="down"></i>
             </a>
             <ul nz-menu>
-              <li nz-menu-item (click)="openEdit(item)">编辑</li>
-              <li nz-menu-item (click)="msg.success('删除:' + item.title)">删除</li>
+              <!-- 编辑 -->
+              <li nz-menu-item (click)="openEdit(item)">{{ 'edit' | translate }}</li>
+              <!-- 删除 -->
+              <li nz-menu-item (click)="msg.success('删除:' + item.title)">{{ 'table.delete' | translate }}</li>
             </ul>
           </nz-dropdown>
         </ng-template>
         <nz-list-item-meta [nzTitle]="nzTitle" [nzDescription]="item.subDescription" [nzAvatar]="nzAvatar">
           <ng-template #nzTitle>
-            <a href="{{item.href}}" target="_blank">{{item.title}}</a>
+            <a href="{{ item.href }}" target="_blank">{{ item.title }}</a>
           </ng-template>
           <ng-template #nzAvatar>
             <nz-avatar [nzSrc]="item.logo" nzSize="large" [nzShape]="'square'"></nz-avatar>
@@ -72,11 +87,12 @@
             <div class="d-flex text-grey-dark">
               <div class="flex-1">
                 Owner
-                <p>{{item.owner}}</p>
+                <p>{{ item.owner }}</p>
               </div>
               <div class="text-right">
-                开始时间
-                <p>{{item.createdAt | _date}}</p>
+                <!--开始时间  -->
+                {{ 'contract.start.date' | translate }}
+                <p>{{ item.createdAt | _date }}</p>
               </div>
             </div>
             <nz-progress [nzPercent]="item.percent" [nzStatus]="item.status" [nzStrokeWidth]="6"></nz-progress>

+ 8 - 3
src/app/routes/pro/list/basic-list/edit/edit.component.html

@@ -1,9 +1,14 @@
 <div class="modal-header">
-  <div class="modal-title">任务编辑</div>
+  <!-- 任务编辑 -->
+  <div class="modal-title">{{ 'working.task' | translate }}{{ 'edit' | translate }}</div>
 </div>
 <sf #sf mode="edit" [schema]="schema" [formData]="record" button="none">
   <div class="modal-footer">
-    <button nz-button type="button" (click)="close()">关闭</button>
-    <button nz-button type="submit" [nzType]="'primary'" (click)="save(sf.value)" [disabled]="!sf.valid">保存</button>
+    <!-- 关闭 -->
+    <button nz-button type="button" (click)="close()">{{ 'button.close' | translate }}</button>
+    <!-- 保存 -->
+    <button nz-button type="submit" [nzType]="'primary'" (click)="save(sf.value)" [disabled]="!sf.valid">
+      {{ 'button.save' | translate }}
+    </button>
   </div>
 </sf>

+ 33 - 12
src/app/routes/pro/list/card-list/card-list.component.html

@@ -1,45 +1,66 @@
-<page-header [title]="'卡片列表'" [extra]="extra">
+<!-- 卡片列表 -->
+<page-header [title]="'{{ 'menu.list.cardlist' | translate }}'" [extra]="extra">
   <ng-template #extra>
     <div style="margin-top: -60px; text-align: center; width: 195px;">
-      <img class="img-fluid" src="https://gw.alipayobjects.com/zos/rmsportal/RzwpdLnhmvDJToTdfDPe.png">
+      <img class="img-fluid" src="https://gw.alipayobjects.com/zos/rmsportal/RzwpdLnhmvDJToTdfDPe.png" />
     </div>
   </ng-template>
   段落示意:蚂蚁金服务设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。
   <div class="d-flex pt-md">
     <a class="d-flex pr-lg">
-      <img class="pr-sm" src="https://gw.alipayobjects.com/zos/rmsportal/MjEImQtenlyueSmVEfUD.svg" />快速开始
+      <!-- 快速开始 -->
+      <img class="pr-sm" src="https://gw.alipayobjects.com/zos/rmsportal/MjEImQtenlyueSmVEfUD.svg" />
+      {{ 'quick.start' | translate }}
     </a>
     <a class="d-flex pr-lg">
-      <img class="pr-sm" src="https://gw.alipayobjects.com/zos/rmsportal/NbuDUAuBlIApFuDvWiND.svg" />产品简介
+      <!-- 产品简介 -->
+      <img class="pr-sm" src="https://gw.alipayobjects.com/zos/rmsportal/NbuDUAuBlIApFuDvWiND.svg" />
+      {{ 'product.introduction' | translate }}
     </a>
     <a class="d-flex">
-      <img class="pr-sm" src="https://gw.alipayobjects.com/zos/rmsportal/ohOEPSYdDTNnyMbGuyLb.svg" />产品文档
+      <!-- 产品文档 -->
+      <img class="pr-sm" src="https://gw.alipayobjects.com/zos/rmsportal/ohOEPSYdDTNnyMbGuyLb.svg" />
+      {{ 'product.document' | translate }}
     </a>
   </div>
 </page-header>
-<nz-list [nzLoading]="loading" [nzDataSource]="list" [nzRenderItem]="item" [nzGrid]="{gutter: 24, lg: 8, md: 12, sm: 24, xs: 24 }">
+<nz-list
+  [nzLoading]="loading"
+  [nzDataSource]="list"
+  [nzRenderItem]="item"
+  [nzGrid]="{ gutter: 24, lg: 8, md: 12, sm: 24, xs: 24 }"
+>
   <ng-template #item let-item>
     <nz-list-item>
-      <button *ngIf="item === null" nz-button (click)="msg.success('add')" [nzType]="'dashed'" style="width: 100%; height: 183px;">
+      <button
+        *ngIf="item === null"
+        nz-button
+        (click)="msg.success('add')"
+        [nzType]="'dashed'"
+        style="width: 100%; height: 183px;"
+      >
         <i nz-icon type="plus"></i>
-        <span>新增产品</span>
+        <!-- 新增产品 -->
+        <span> {{ 'button.add' | translate }}{{ 'product' | translate }}</span>
       </button>
       <nz-card nzHoverable *ngIf="item !== null" [nzActions]="[op1, op2]">
         <ng-template #op1>
-          <a (click)="msg.success('操作一:' + item.id);">操作一</a>
+          <!-- 操作一 -->
+          <a (click)="msg.success('操作一:' + item.id)"> {{ 'table.operation' | translate }}{{ 'one' | translate }}</a>
         </ng-template>
         <ng-template #op2>
-          <a (click)="msg.success('操作二:' + item.id);">操作二</a>
+          <!-- 操作二 -->
+          <a (click)="msg.success('操作二:' + item.id)"> {{ 'table.operation' | translate }}{{ 'two' | translate }}</a>
         </ng-template>
         <nz-card-meta [nzAvatar]="nzAvatar" [nzTitle]="nzTitle" [nzDescription]="nzDescription">
           <ng-template #nzAvatar>
             <nz-avatar nzSize="large" [nzSrc]="item.avatar"></nz-avatar>
           </ng-template>
           <ng-template #nzTitle>
-            <a (click)="msg.success('标题:' + item.id);">{{item.title}}</a>
+            <a (click)="msg.success('标题:' + item.id)">{{ item.title }}</a>
           </ng-template>
           <ng-template #nzDescription>
-            <ellipsis>{{item.description}}</ellipsis>
+            <ellipsis>{{ item.description }}</ellipsis>
           </ng-template>
         </nz-card-meta>
       </nz-card>

+ 3 - 2
src/app/routes/pro/list/list/list.component.html

@@ -1,7 +1,8 @@
-<page-header [title]="'搜索列表'" [tab]="tab">
+<!-- 搜索列表 -->
+<page-header [title]="'{{ 'menu.list.searchlist' | translate }}'" [tab]="tab">
   <div class="text-center">
     <nz-input-group nzSearch nzSize="large" [nzSuffix]="suffixButton" style="width: 520px;">
-      <input type="text" nz-input placeholder="请输入">
+      <input type="text" nz-input placeholder="{{ 'placeholder' | translate }}" />
       <ng-template #suffixButton>
         <button nz-button nzType="primary" nzSize="large" nzSearch>Search</button>
       </ng-template>

+ 40 - 14
src/app/routes/pro/list/projects/projects.component.html

@@ -1,27 +1,48 @@
 <nz-card [nzBordered]="false">
   <form nz-form se-container="1" size="compact" gutter="32" [labelWidth]="null">
-    <se label="所属类目" line>
+    <!-- 所属类目 -->
+    <se label="{{ 'belong.category' | translate }}" line>
       <tag-select>
-        <nz-tag *ngFor="let i of categories; let idx = index" nzMode="checkable" [nzChecked]="i.value" (nzCheckedChange)="changeCategory($event, idx)">
-          {{i.text}}
+        <nz-tag
+          *ngFor="let i of categories; let idx = index"
+          nzMode="checkable"
+          [nzChecked]="i.value"
+          (nzCheckedChange)="changeCategory($event, idx)"
+        >
+          {{ i.text }}
         </nz-tag>
       </tag-select>
     </se>
-    <se label="其它选项">
+    <se label="{{ 'other.options' | translate }}">
       <div class="ant-form ant-form-inline">
         <nz-form-item>
-          <nz-form-label nzFor="rate">作者</nz-form-label>
+          <!--作者  -->
+          <nz-form-label nzFor="rate">{{ 'author' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select [(ngModel)]="q.user" name="user" [nzPlaceHolder]="'不限'" [nzShowSearch]="true" style="width: 100px;">
-              <nz-option [nzLabel]="'李三'" [nzValue]="'lisa'"></nz-option>
+            <nz-select
+              [(ngModel)]="q.user"
+              name="user"
+              [nzPlaceHolder]="'{{ 'no.limit' | translate }}'"
+              [nzShowSearch]="true"
+              style="width: 100px;"
+            >
+              <nz-option [nzLabel]="'{{ 'lee.san' | translate }}'" [nzValue]="'lisa'"></nz-option>
             </nz-select>
           </nz-form-control>
         </nz-form-item>
         <nz-form-item>
-          <nz-form-label nzFor="rate">好评度</nz-form-label>
+          <!-- 好评度 -->
+          <nz-form-label nzFor="rate">{{ 'aavorable.rating' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select [(ngModel)]="q.rate" name="rate" [nzPlaceHolder]="'不限'" [nzShowSearch]="true" style="width: 100px;">
-              <nz-option [nzLabel]="'优秀'" [nzValue]="'good'"></nz-option>
+            <nz-select
+              [(ngModel)]="q.rate"
+              name="rate"
+              [nzPlaceHolder]="'{{ 'no.limit' | translate }}'"
+              [nzShowSearch]="true"
+              style="width: 100px;"
+            >
+            <!-- 优秀 -->
+              <nz-option [nzLabel]="'{{ 'good' | translate }}'" [nzValue]="'good'"></nz-option>
             </nz-select>
           </nz-form-control>
         </nz-form-item>
@@ -29,20 +50,25 @@
     </se>
   </form>
 </nz-card>
-<nz-list [nzLoading]="loading" [nzRenderItem]="item" [nzDataSource]="list" [nzGrid]="{gutter: 24, lg: 6, md: 8, sm: 12, xs: 24 }">
+<nz-list
+  [nzLoading]="loading"
+  [nzRenderItem]="item"
+  [nzDataSource]="list"
+  [nzGrid]="{ gutter: 24, lg: 6, md: 8, sm: 12, xs: 24 }"
+>
   <ng-template #item let-item>
     <nz-list-item>
       <nz-card nzHoverable [nzCover]="cover">
         <ng-template #cover>
-          <img alt="{{item.title}}" src="{{item.cover}}">
+          <img alt="{{ item.title }}" src="{{ item.cover }}" />
         </ng-template>
         <nz-card-meta [nzTitle]="nzTitle" [nzDescription]="item.subDescription">
           <ng-template #nzTitle>
-            <a (click)="msg.success('标题:' + item.id);">{{item.title}}</a>
+            <a (click)="msg.success('标题:' + item.id)">{{ item.title }}</a>
           </ng-template>
         </nz-card-meta>
         <div class="card-item-content">
-          <span class="text-grey">{{item.updatedAt | _date:'fn'}}</span>
+          <span class="text-grey">{{ item.updatedAt | _date: 'fn' }}</span>
           <avatar-list size="mini">
             <avatar-list-item *ngFor="let m of item.members" [src]="m.avatar" [tips]="m.name"></avatar-list-item>
           </avatar-list>

+ 65 - 29
src/app/routes/pro/list/table-list/table-list.component.html

@@ -1,20 +1,29 @@
-<page-header [title]="'查询表格'"></page-header>
+<!-- 查询表格 -->
+<page-header [title]="'{{ 'menu.list.searchtable' | translate }}'"></page-header>
 <nz-card [nzBordered]="false">
   <form nz-form [nzLayout]="'inline'" (ngSubmit)="getData()" class="search__form">
     <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
       <div nz-col nzMd="8" nzSm="24">
         <nz-form-item>
-          <nz-form-label nzFor="no">规则编号</nz-form-label>
+          <!-- 规则编号 -->
+          <nz-form-label nzFor="no">{{ 'rule.number' | translate }}</nz-form-label>
           <nz-form-control>
-            <input nz-input [(ngModel)]="q.no" name="no" placeholder="请输入" id="no">
+            <input nz-input [(ngModel)]="q.no" name="no" placeholder="{{ 'placeholder' | translate }}" id="no" />
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col nzMd="8" nzSm="24">
         <nz-form-item>
-          <nz-form-label nzFor="status">使用状态</nz-form-label>
+          <!-- 使用状态 -->
+          <nz-form-label nzFor="status">{{ 'use.status' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select [(ngModel)]="q.status" name="status" id="status" [nzPlaceHolder]="'请选择'" [nzShowSearch]="true">
+            <nz-select
+              [(ngModel)]="q.status"
+              name="status"
+              id="status"
+              [nzPlaceHolder]="'{{ 'select.please.choose"' | translate }}'"
+              [nzShowSearch]="true"
+            >
               <nz-option *ngFor="let i of status; let idx = index" [nzLabel]="i.text" [nzValue]="idx"></nz-option>
             </nz-select>
           </nz-form-control>
@@ -22,24 +31,28 @@
       </div>
       <div nz-col nzMd="8" nzSm="24" *ngIf="expandForm">
         <nz-form-item>
-          <nz-form-label nzFor="callNo">调用次数</nz-form-label>
+          <!-- 调用次数 -->
+          <nz-form-label nzFor="callNo">{{ 'callBack.number' | translate }}</nz-form-label>
           <nz-form-control>
-            <input nz-input id="callNo">
+            <input nz-input id="callNo" />
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col nzMd="8" nzSm="24" *ngIf="expandForm">
         <nz-form-item>
-          <nz-form-label nzFor="updatedAt">更新日期</nz-form-label>
-          <nz-form-control>
-          </nz-form-control>
+          <!-- 更新日期 -->
+          <nz-form-label nzFor="updatedAt"
+            >{{ 'pm.quotation.update' | translate }}{{ 'Date' | translate }}</nz-form-label
+          >
+          <nz-form-control> </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col nzMd="8" nzSm="24" *ngIf="expandForm">
         <nz-form-item>
-          <nz-form-label nzFor="status2">使用状态</nz-form-label>
+          <!-- 使用状态 -->
+          <nz-form-label nzFor="status2">{{ 'use.status' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select [nzPlaceHolder]="'请选择'" nzId="status2" [nzShowSearch]="true">
+            <nz-select [nzPlaceHolder]="'{{ 'select.please.choose' | translate }}'" nzId="status2" [nzShowSearch]="true">
               <nz-option *ngFor="let i of status; let idx = index" [nzLabel]="i.text" [nzValue]="idx"></nz-option>
             </nz-select>
           </nz-form-control>
@@ -47,19 +60,24 @@
       </div>
       <div nz-col nzMd="8" nzSm="24" *ngIf="expandForm">
         <nz-form-item>
-          <nz-form-label nzFor="status3">使用状态</nz-form-label>
+          <!-- 使用状态 -->
+          <nz-form-label nzFor="status3">{{ 'use.status' | translate }}</nz-form-label>
           <nz-form-control>
-            <nz-select [nzPlaceHolder]="'请选择'" nzId="status3" [nzShowSearch]="true">
+            <nz-select [nzPlaceHolder]="'{{ 'select.please.choose' | translate }}'" nzId="status3" [nzShowSearch]="true">
               <nz-option *ngFor="let i of status; let idx = index" [nzLabel]="i.text" [nzValue]="idx"></nz-option>
             </nz-select>
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="expandForm ? 24 : 8" [class.text-right]="expandForm">
-        <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="loading">查询</button>
-        <button nz-button type="reset" (click)="reset()" class="mx-sm">重置</button>
-        <a (click)="expandForm=!expandForm">
-          {{expandForm ? '收起' : '展开'}}
+        <!-- 查询 -->
+        <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="loading">
+          {{ 'button.query' | translate }}
+        </button>
+        <!-- 重置 -->
+        <button nz-button type="reset" (click)="reset()" class="mx-sm">{{ 'button.reset' | translate }}</button>
+        <a (click)="expandForm = !expandForm">
+          {{ expandForm ? '收起' : '展开' }}
           <i class="anticon" [class.anticon-down]="!expandForm" [class.anticon-up]="expandForm"></i>
         </a>
       </div>
@@ -67,28 +85,39 @@
   </form>
   <button nz-button (click)="add(modalContent)" [nzType]="'primary'">
     <i nz-icon type="plus"></i>
-    <span>新建</span>
+    <!-- 新建 -->
+    <span>{{ 'cost.new' | translate }}</span>
   </button>
   <ng-container *ngIf="selectedRows.length > 0">
-    <button nz-button>批量操作</button>
+    <!-- 批量操作 -->
+    <button nz-button>{{ 'batch.operation' | translate }}</button>
     <nz-dropdown [nzPlacement]="'bottomLeft'">
       <button nz-button nz-dropdown>
-        更多操作
+        <!-- 更多操作 -->
+        {{ 'menu.more' | translate }}{{ 'table.operation' | translate }}
         <i nz-icon type="down"></i>
       </button>
       <ul nz-menu>
-        <li nz-menu-item (click)="remove()">删除</li>
-        <li nz-menu-item (click)="approval()">批量审批</li>
+        <!-- 删除 -->
+        <li nz-menu-item (click)="remove()">{{ 'table.delete' | translate }}</li>
+        <!-- 批量审批 -->
+        <li nz-menu-item (click)="approval()">{{ 'batch.approval' | translate }}</li>
       </ul>
     </nz-dropdown>
   </ng-container>
   <div class="my-md">
     <nz-alert [nzType]="'info'" [nzShowIcon]="true" [nzMessage]="message">
       <ng-template #message>
-        已选择
-        <strong class="text-primary">{{selectedRows.length}}</strong>&nbsp;&nbsp; 服务调用总计
-        <strong>{{totalCallNo}}</strong>
-        <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
+        <!--已选择  -->
+        {{ 'has.chosen' | translate }} 
+        <!-- 服务调用总计 -->
+        <strong class="text-primary">{{ selectedRows.length }}</strong> 
+        {{ 'item' | translate }} &nbsp;&nbsp;{{ 'total.service.invocation' | translate }}
+         <strong>{{ totalCallNo }}</strong> 
+         
+         {{ 'tenThousand' | translate }}
+        <!--清空  -->
+        <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">{{ 'empty' | translate }}</a>
       </ng-template>
     </nz-alert>
   </div>
@@ -100,9 +129,16 @@
 </nz-card>
 <ng-template #modalContent>
   <nz-form-item>
-    <nz-form-label nzFor="no">描述</nz-form-label>
+    <!-- 描述 -->
+    <nz-form-label nzFor="no">{{ 'description' | translate }}</nz-form-label>
     <nz-form-control>
-      <input nz-input [(ngModel)]="description" name="description" placeholder="请输入" id="no">
+      <input
+        nz-input
+        [(ngModel)]="description"
+        name="description"
+        placeholder="{{ 'placeholder' | translate }}"
+        id="no"
+      />
     </nz-form-control>
   </nz-form-item>
 </ng-template>

+ 115 - 55
src/app/routes/pro/profile/advanced/advanced.component.html

@@ -1,56 +1,73 @@
 <page-header [title]="'单号:234231029431'" [logo]="logo" [action]="action" [extra]="extra" [tab]="tab">
   <ng-template #logo>
-    <img src="https://gw.alipayobjects.com/zos/rmsportal/nxkuOJlFJuAUhzlMTCEe.png">
+    <img src="https://gw.alipayobjects.com/zos/rmsportal/nxkuOJlFJuAUhzlMTCEe.png" />
   </ng-template>
   <ng-template #action>
     <nz-button-group>
-      <button nz-button>操作</button>
-      <button nz-button>操作</button>
+      <!-- 操作 -->
+      <button nz-button>{{ 'table.operation' | translate }}</button>
+      <button nz-button>{{ 'table.operation' | translate }}</button>
     </nz-button-group>
     <nz-dropdown class="mx-sm">
       <button nz-button nz-dropdown>
         <i nz-icon type="ellipsis"></i>
       </button>
       <ul nz-menu>
-        <li nz-menu-item>选项一</li>
-        <li nz-menu-item>选项二</li>
-        <li nz-menu-item>选项三</li>
+        <!--选项一 二 三  -->
+        <li nz-menu-item>{{ 'option.one' | translate }}</li>
+        <li nz-menu-item>{{ 'option.two' | translate }}</li>
+        <li nz-menu-item>{{ 'option.three' | translate }}</li>
       </ul>
     </nz-dropdown>
-    <button nz-button [nzType]="'primary'">主操作</button>
+    <!--  主操作-->
+    <button nz-button [nzType]="'primary'">{{ 'main.table.operation' | translate }}</button>
   </ng-template>
   <ng-template #extra>
     <div nz-row>
       <div nz-col nzXs="24" nzSm="12">
-        <p class="text-grey">状态</p>
-        <p class="text-lg">待审批</p>
+        <!-- 状态 -->
+        <p class="text-grey">{{ 'state' | translate }}</p>
+        <!-- 待审批 -->
+        <p class="text-lg">{{ 'pending.approval' | translate }}</p>
       </div>
       <div nz-col nzXs="24" nzSm="12">
-        <p class="text-grey">订单金额</p>
+        <!-- 订单金额 -->
+        <p class="text-grey">{{ 'indent.their.fees.money' | translate }}</p>
         <p class="text-lg">¥ 568.08</p>
       </div>
     </div>
   </ng-template>
   <ng-template #tab>
     <nz-tabset>
-      <nz-tab nzTitle="详情"></nz-tab>
-      <nz-tab nzTitle="规则"></nz-tab>
+      <!-- 详情 -->
+      <nz-tab nzTitle="{{ 'table.view' | translate }}"></nz-tab>
+      <!-- 规则 -->
+      <nz-tab nzTitle="{{ 'rules' | translate }}"></nz-tab>
     </nz-tabset>
   </ng-template>
   <sv-container size="small" col="2">
-    <sv label="创建人">曲丽丽</sv>
-    <sv label="订购产品">XX 服务</sv>
-    <sv label="创建时间">2017-07-07</sv>
-    <sv label="关联单据">
+    <!-- 创建人 -->
+    <sv label="{{ 'create.by' | translate }}">曲丽丽</sv>
+    <!-- 订购产品 -->
+    <sv label="{{ 'order.products' | translate }}">XX 服务</sv>
+    <!-- 创建时间 -->
+    <sv label="{{ 'creat.time' | translate }}">2017-07-07</sv>
+    <!-- 关联单据 -->
+    <sv label="{{ 'associated.documents' | translate }}">
       <a (click)="msg.success('yes')">12421</a>
     </sv>
-    <sv label="生效日期">2017-07-07 ~ 2017-08-08</sv>
-    <sv label="备注">请于两个工作日内确认</sv>
+    <!--生效日期  -->
+    <sv label="{{ 'effective.date' | translate }}">2017-07-07 ~ 2017-08-08</sv>
+    <!-- 备注 -->
+    <sv label="{{ 'memo' | translate }}">请于两个工作日内确认</sv>
+    <!--  -->
   </sv-container>
 </page-header>
-<nz-card [nzBordered]="false" class="mb-lg" nzTitle="流程进度">
+<!-- 流程进度 -->
+<nz-card [nzBordered]="false" class="mb-lg" nzTitle="{{ 'process.schedule' | translate }}">
   <nz-steps [nzCurrent]="1" nzProgressDot>
-    <nz-step [nzTitle]="'创建项目'" [nzDescription]="createDesc">
+    <!-- 创建项目 -->
+    <nz-step [nzTitle]="'{{ 'create.object' | translate }}'" [nzDescription]="createDesc">
       <ng-template #createDesc>
         <div class="desc">
           <div class="my-sm">
@@ -61,38 +78,54 @@
         </div>
       </ng-template>
     </nz-step>
-    <nz-step [nzTitle]="'部门初审'" [nzDescription]="checkedDesc">
+    <!-- 部门初审 -->
+    <nz-step [nzTitle]="'{{ 'depart.first.trial' | translate }}'" [nzDescription]="checkedDesc">
       <ng-template #checkedDesc>
         <div class="desc">
           <div class="my-sm">
             周毛毛
             <i nz-icon type="dingding" class="ml-sm" style="color: #00a0e9;"></i>
           </div>
-          <a (click)="msg.success('click')">催一下</a>
+          <!-- 催一下 -->
+          <a (click)="msg.success('click')">{{ 'hurry' | translate }}</a>
         </div>
       </ng-template>
     </nz-step>
-    <nz-step [nzTitle]="'财务复核'"></nz-step>
-    <nz-step [nzTitle]="'完成'"></nz-step>
+    <!-- 财务复核 -->
+    <nz-step [nzTitle]="'{{ 'financial.review' | translate }}'"></nz-step>
+    <!-- 完成 -->
+    <nz-step [nzTitle]="'{{ 'cost.finish' | translate }}'"></nz-step>
   </nz-steps>
   <div class="steps-content"></div>
 </nz-card>
-<nz-card [nzBordered]="false" nzTitle="用户信息" class="mb-lg">
+<!-- 用户信息 -->
+<nz-card [nzBordered]="false" nzTitle="{{ 'user.info' | translate }}" class="mb-lg">
   <sv-container class="mb-lg">
-    <sv label="用户姓名">付小小</sv>
-    <sv label="会员卡号">32943898021309809423</sv>
-    <sv label="身份证">3321944288191034921</sv>
-    <sv label="联系方式">18112345678</sv>
-    <sv label="联系地址">曲丽丽 18100000000 浙江省杭州市西湖区黄姑山路工专路交叉路口</sv>
+    <!-- 用户姓名 -->
+    <sv label="{{ 'user.name' | translate }}">付小小</sv>
+    <!-- 会员卡号 -->
+    <sv label="{{ 'vip.card.number' | translate }}">32943898021309809423</sv>
+    <!--身份证  -->
+    <sv label="{{ 'Id.card' | translate }}">3321944288191034921</sv>
+    <!-- 联系方式 -->
+    <sv label="{{ 'contact' | translate }}">18112345678</sv>
+    <!-- 联系地址 -->
+    <sv label="{{ 'hospital.contact.address' | translate }}"
+      >曲丽丽 18100000000 浙江省杭州市西湖区黄姑山路工专路交叉路口</sv
+    >
   </sv-container>
-  <sv-container class="mb-lg" title="信息组">
-    <sv label="某某数据">725</sv>
-    <sv label="该数据更新时间">2017-08-08</sv>
+  <!-- 信息组 -->
+  <sv-container class="mb-lg" title="{{ 'info.group' | translate }}">
+    <!-- 某某数据 -->
+    <sv label="{{ 'such.data' | translate }}">725</sv>
+    <!-- 该数据更新时间 -->
+    <sv label="{{ 'this.data.update.time' | translate }}">2017-08-08</sv>
     <sv>&nbsp;</sv>
     <sv [label]="label">
       <ng-template #label>
-        某某数据
-        <nz-tooltip [nzTitle]="'数据说明'">
+        {{ 'such.data' | translate }}
+        <!-- 数据说明 -->
+        <nz-tooltip [nzTitle]="{{ 'data.desc' | translate }}''">
           <span nz-tooltip>
             <i nz-icon type="info-circle"></i>
           </span>
@@ -102,45 +135,72 @@
     </sv>
     <sv label="该数据更新时间">2017-08-08</sv>
   </sv-container>
-  <h4 class="mb-md">信息组</h4>
-  <nz-card nzType="inner" nzTitle="多层级信息组">
-    <sv-container size="small" title="组名称">
-      <sv label="负责人">林东东</sv>
-      <sv label="角色码">1234567</sv>
-      <sv label="所属部门">XX公司 - YY部</sv>
-      <sv label="过期时间">2017-08-08</sv>
-      <sv label="描述">这段描述很长很长很长很长很长很长很长很长很长很长很长很长很长很长...</sv>
+  <!-- 信息组 -->
+  <h4 class="mb-md">{{ 'info.group' | translate }}</h4>
+  <nz-card nzType="inner" nzTitle="{{ 'multi.level.info.group' | translate }}">
+    <!-- 组名称 -->
+    <sv-container size="small" title="{{ 'group.name' | translate }}">
+      <!-- 负责人 -->
+      <sv label="{{ 'depart.person.in.charge' | translate }}">林东东</sv>
+      <!--  角色码-->
+      <sv label="{{ 'character.code' | translate }}">1234567</sv>
+      <!-- 所属部门 -->
+      <sv label="{{ 'subordinate.departments' | translate }}">XX公司 - YY部</sv>
+      <!-- 过期时间 -->
+      <sv label="{{ 'expiration.time' | translate }}">2017-08-08</sv>
+      <!-- 描述 -->
+      <sv label="{{ 'description' | translate }}">
+        这段描述很长很长很长很长很长很长很长很长很长很长很长很长很长很长...
+      </sv>
     </sv-container>
     <nz-divider></nz-divider>
-    <sv-container size="small" title="组名称" col="1">
-      <sv label="学名">
+    <!-- 组名称 -->
+    <sv-container size="small" title="{{ 'group.name' | translate }}" col="1">
+      <!-- 学名 -->
+      <sv label="{{ 'scientific.name' | translate }}">
         Citrullus lanatus (Thunb.) Matsum. et Nakai一年生蔓生藤本;茎、枝粗壮,具明显的棱。卷须较粗..
       </sv>
     </sv-container>
     <nz-divider></nz-divider>
-    <sv-container size="small" title="组名称">
-      <sv label="负责人">付小小</sv>
-      <sv label="角色码">1234568</sv>
+    <!-- 组名称 -->
+    <sv-container size="small" title="{{ 'group.name' | translate }}">
+      <!-- 负责人 -->
+      <sv label="{{ 'depart.person.in.charge' | translate }}">付小小</sv>
+      <!-- 角色码 -->
+      <sv label="{{ 'character.code' | translate }}">1234568</sv>
     </sv-container>
   </nz-card>
 </nz-card>
-<nz-card [nzBordered]="false" nzTitle="用户近半年来电记录" class="mb-lg">
+<!--用户近半年来电记录  -->
+<nz-card [nzBordered]="false" nzTitle="{{ 'user.call.records.sixMonths' | translate }}" class="mb-lg">
   <div class="no-data">
-    <i nz-icon type="frown"></i>暂无数据
+    <!--暂无数据  -->
+    <i nz-icon type="frown"></i>{{ 'no.data' | translate }}
   </div>
 </nz-card>
 <nz-card [nzBordered]="false">
   <nz-card-tab>
     <nz-tabset nzSize="large" (nzSelectChange)="change($event)">
-      <nz-tab nzTitle="操作日志一"></nz-tab>
-      <nz-tab nzTitle="操作日志二"></nz-tab>
-      <nz-tab nzTitle="操作日志三"></nz-tab>
+      <!--操作日志一  -->
+      <nz-tab nzTitle="{{ 'table.operation' | translate }}{{ 'log.one' | translate }}"></nz-tab>
+      <nz-tab nzTitle="{{ 'table.operation' | translate }}{{ 'log.two' | translate }}"></nz-tab>
+      <nz-tab nzTitle="{{ 'table.operation' | translate }}{{ 'log.three' | translate }}"></nz-tab>
     </nz-tabset>
   </nz-card-tab>
   <st [columns]="opColumns" [data]="list">
     <ng-template st-row="status" let-i>
-      <nz-badge *ngIf="i.status === 'success'" [nzStatus]="'success'" [nzText]="'成功'"></nz-badge>
-      <nz-badge *ngIf="i.status !== 'success'" [nzStatus]="'processing'" [nzText]="'进行中'"></nz-badge>
+      <!-- 成功 -->
+      <nz-badge
+        *ngIf="i.status === 'success'"
+        [nzStatus]="'success'"
+        [nzText]="'{{ 'success' | translate }}'"
+      ></nz-badge>
+      <!-- 进行中 -->
+      <nz-badge
+        *ngIf="i.status !== 'success'"
+        [nzStatus]="'processing'"
+        [nzText]="'{{ 'pm.project.archives.start.Have.in.hand' | translate }}'"
+      ></nz-badge>
     </ng-template>
   </st>
 </nz-card>

+ 35 - 17
src/app/routes/pro/profile/basic/basic.component.html

@@ -1,37 +1,55 @@
-<page-header [title]="'基础详情页'"></page-header>
+<!-- 基础详情页 -->
+<page-header [title]="'{{ 'menu.profile.basic' | translate }}'"></page-header>
 <nz-card [nzHoverable]="true" [nzBordered]="false">
-  <sv-container size="large" title="退款申请">
-    <sv label="取货单号">1000000000</sv>
-    <sv label="状态">已取货</sv>
-    <sv label="销售单号">1234123421</sv>
-    <sv label="子订单">3214321432</sv>
+
+  <!-- 退款申请 -->
+  <sv-container size="large" title="{{ 'refund.application' | translate }}">
+    <!-- 取货单号 -->
+    <sv label="{{ 'take.invoice.number' | translate }}">1000000000</sv>
+    <!-- 状态 -->
+    <sv label="{{ 'state' | translate }}">已取货</sv>
+    <!-- 销售单号 -->
+    <sv label="{{ 'sales.orderNumber' | translate }}">1234123421</sv>
+    <!-- 子订单 -->
+    <sv label="{{ 'child.orders' | translate }}">3214321432</sv>
   </sv-container>
   <nz-divider></nz-divider>
-  <sv-container size="large" title="用户信息">
-    <sv label="用户姓名">付小小</sv>
-    <sv label="联系电话">18100000000</sv>
-    <sv label="常用快递">菜鸟仓储</sv>
-    <sv label="取货地址">浙江省杭州市西湖区万塘路18号</sv>
-    <sv label="备注"></sv>
+
+  <!-- 用户信息 -->
+  <sv-container size="large" title="{{ 'user.info' | translate }}">
+    <!-- 用户姓名 -->
+    <sv label="{{ 'user.name' | translate }}">付小小</sv>
+    <!-- 联系电话 -->
+    <sv label="{{ 'contact.phone.number' | translate }}">18100000000</sv>
+    <!-- 常用快递 -->
+    <sv label="{{ 'commonly.used.express' | translate }}">菜鸟仓储</sv>
+    <!-- 取货地址 -->
+    <sv label="{{ 'pickup.address' | translate }}">浙江省杭州市西湖区万塘路18号</sv>
+    <!-- 备注 -->
+    <sv label="{{ 'memo' | translate }}"></sv>
   </sv-container>
   <nz-divider></nz-divider>
-  <div class="text-lg mb-md">退货商品</div>
+  
+  <!-- 退货商品 -->
+  <div class="text-lg mb-md">{{ 'return.goods' | translate }}</div>
   <st #st [data]="goods" [columns]="goodsColumns" [body]="goodsBody" [page]="{ show: false }">
     <ng-template #goodsBody>
       <tr>
-        <td>合计</td>
+        <!--  合计-->
+        <td>{{ 'pm.total' | translate }}</td>
         <td></td>
         <td></td>
         <td class="text-right"></td>
         <td class="text-right">
-          <strong>{{basicNum}}</strong>
+          <strong>{{ basicNum }}</strong>
         </td>
         <td class="text-right">
-          <strong>{{amountNum | _currency}}</strong>
+          <strong>{{ amountNum | _currency }}</strong>
         </td>
       </tr>
     </ng-template>
   </st>
-  <div class="text-lg my-md">退货进度</div>
+  <!--退货进度  -->
+  <div class="text-lg my-md">{{ 'return.schedule' | translate }}</div>
   <st [data]="progress" [columns]="progressColumns" [page]="{ show: false }"></st>
 </nz-card>

+ 21 - 7
src/app/routes/pro/result/fail/fail.component.html

@@ -1,23 +1,37 @@
 <page-header></page-header>
 <nz-card [nzBordered]="false">
-  <result type="error" [title]="'提交失败'" description="请核对并修改以下信息后,再重新提交。" [extra]="resultExtra">
+  <!-- 提交失败 请核对并修改以下信息后,再重新提交-->
+  <result
+    type="error"
+    [title]="'{{ 'submit.fail' | translate }}'"
+    description="{{ 'check.modify.following.information.before.resubmitting' | translate }}"
+    [extra]="resultExtra"
+  >
     <ng-template #resultExtra>
-      <div class="mb-md text-lg">您提交的内容有如下错误:</div>
+      <!-- 您提交的内容有如下错误: -->
+      <div class="mb-md text-lg">{{ 'your.submission.has.following.error' | translate }}:</div>
       <div class="mb-md">
-        <i nz-icon type="close-circle" class="text-error pr-sm"></i>您的账户已被冻结
+        <i nz-icon type="close-circle" class="text-error pr-sm"></i>
+        <!-- 您的账户已被冻结 -->
+        {{ 'your.account.frozen' | translate }}
         <a class="ml-md">
-          立即解冻
+          <!--立即解冻  -->
+          {{ 'thaw.immediately' | translate }}
           <i nz-icon type="right" class="pl-sm"></i>
         </a>
       </div>
       <div>
-        <i nz-icon type="close-circle" class="text-error pr-sm"></i>您的账户还不具备申请资格
+        <i nz-icon type="close-circle" class="text-error pr-sm"></i>
+        <!--  您的账户还不具备申请资格-->
+        {{ 'your.account.eligible.for.application.not.yet' | translate }}
         <a class="ml-md">
-          立即升级
+          <!-- 立即升级 -->
+          {{ 'upgrade.immediately' | translate }}
           <i nz-icon type="right" class="pl-sm"></i>
         </a>
       </div>
     </ng-template>
-    <button nz-button [nzType]="'primary'">返回修改</button>
+    <!--返回修改  -->
+    <button nz-button [nzType]="'primary'">{{ 'return.modify' | translate }}</button>
   </result>
 </nz-card>

+ 29 - 13
src/app/routes/pro/result/success/success.component.html

@@ -1,24 +1,33 @@
 <page-header></page-header>
 <nz-card>
-  <result type="success" [title]="'提交成功'" description="提交结果页用于反馈一系列操作任务的处理结果,如果仅是简单操作,使用 Message 全局提示反馈即可。本文字区域可以展示简单的补充说明,如果有类似展示x“单据”的需求,下面这个灰色区域可以呈现比较复杂的内容。"
-    [extra]="resultExtra">
+  <!-- 提交成功 -->
+  <result
+    type="success"
+    [title]="'{{ 'submit.success' | translate }}'"
+    description="提交结果页用于反馈一系列操作任务的处理结果,如果仅是简单操作,使用 Message 全局提示反馈即可。本文字区域可以展示简单的补充说明,如果有类似展示x“单据”的需求,下面这个灰色区域可以呈现比较复杂的内容。"
+    [extra]="resultExtra"
+  >
     <ng-template #resultExtra>
       <div nz-row [nzGutter]="16" class="mb-md">
         <div nz-col [nzXs]="24" [nzSm]="12" [nzMd]="12" [nzLg]="12" [nzXl]="6">
-          <span class="text-grey-darker">项目 ID:</span>
+          <!-- 项目 -->
+          <span class="text-grey-darker">{{ 'project' | translate }} ID:</span>
           23421
         </div>
         <div nz-col [nzXs]="24" [nzSm]="12" [nzMd]="12" [nzLg]="12" [nzXl]="6">
-          <span class="text-grey-darker">负责人:</span>
+          <!--负责人:  -->
+          <span class="text-grey-darker">{{ 'depart.person.in.charge' | translate }}:</span>
           曲丽丽
         </div>
         <div nz-col [nzXs]="24" [nzSm]="24" [nzMd]="24" [nzLg]="24" [nzXl]="12">
-          <span class="text-grey-darker">生效时间:</span>
+          <!--生效时间:  -->
+          <span class="text-grey-darker">{{ 'effect.time' | translate }}:</span>
           2016-12-12 ~ 2017-12-12
         </div>
       </div>
       <nz-steps [nzCurrent]="1" nzProgressDot>
-        <nz-step [nzTitle]="'创建项目'" [nzDescription]="createDesc">
+        <!--  创建项目-->
+        <nz-step [nzTitle]="'{{ 'create.object' | translate }}'" [nzDescription]="createDesc">
           <ng-template #createDesc>
             <div style="font-size: 14px; position: relative; left: 38px;">
               <div style="margin-top: 8px; margin-bottom: 4px;">
@@ -29,7 +38,8 @@
             </div>
           </ng-template>
         </nz-step>
-        <nz-step [nzTitle]="'部门初审'" [nzDescription]="checkedDesc">
+        <!-- 部门初审 -->
+        <nz-step [nzTitle]="'{{ 'depart.first.trial' | translate }}'" [nzDescription]="checkedDesc">
           <ng-template #checkedDesc>
             <div style="font-size: 14px; position: relative; left: 38px;">
               <div style="margin-top: 8px; margin-bottom: 4px;">
@@ -37,17 +47,23 @@
                 <i nz-icon type="dingding" class="ml-sm" style="color: #00a0e9;"></i>
               </div>
               <div style="margin-top: 8px; margin-bottom: 4px;">
-                <a (click)="msg.success('click')">催一下</a>
+                <!--  催一下-->
+                <a (click)="msg.success('click')">{{ 'hurry' | translate }}</a>
               </div>
             </div>
           </ng-template>
         </nz-step>
-        <nz-step [nzTitle]="'财务复核'"></nz-step>
-        <nz-step [nzTitle]="'完成'"></nz-step>
+        <!-- 财务复核 -->
+        <nz-step [nzTitle]="'{{ 'financial.review' | translate }}'"></nz-step>
+        <!-- 完成 -->
+        <nz-step [nzTitle]="'{{ 'cost.finish' | translate }}'"></nz-step>
       </nz-steps>
     </ng-template>
-    <button nz-button [nzType]="'primary'">返回列表</button>
-    <button nz-button>查看项目</button>
-    <button nz-button>打 印</button>
+    <!-- 返回列表 -->
+    <button nz-button [nzType]="'primary'">{{ 'return.lists' | translate }}</button>
+    <!-- 查看项目 -->
+    <button nz-button>{{ 'view.object' | translate }}</button>
+    <!-- 打 印 -->
+    <button nz-button>{{ 'menu.delon.print' | translate }}</button>
   </result>
 </nz-card>

+ 600 - 206
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,9 +461,8 @@
   </div>
 </nz-card>
 
-
 <!-- 付款计划 -->
-<nz-card nzTitle="付款计划" nzSize="small">
+<nz-card nzTitle="{{ 'payFor' | translate }}{{ 'the.plan' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="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,177 @@
         <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>
+
+            <!-- 1 -->
+            <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>
+
+            <!-- 2 -->
+            <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>
+
+            <!-- 3 -->
+            <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>

+ 149 - 43
src/app/routes/project-manage-archives/add/essential-information/essential-information.component.html

@@ -3,7 +3,10 @@
   <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"
@@ -15,7 +18,8 @@
     </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>{{ 'cost.item.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <!-- {{projectManageArchivesa.proName}} -->
           <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="contractFileId" id="contractFileId"
@@ -30,7 +34,10 @@
     </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">
           {{projectManageArchivesa.cusCode}}
         </nz-form-control>
@@ -38,7 +45,10 @@
     </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">
           <nz-select nzDisabled style="widows: 100%;" nzShowSearch nzAllowClear formControlName="cusId" id="cusId"
             [(ngModel)]="projectManageArchivesa.cusId" nzPlaceHolder="请选择" (ngModelChange)="cusChange($event)">
@@ -54,29 +64,36 @@
   <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 [nzDisabled]="true" [(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>
+          {{ 'financial.management.milestoneName' | translate }}
+          {{ 'milestone.milestone.type' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <nz-select nzDisabled style="widows: 100%;" nzShowSearch nzAllowClear formControlName="milestoneId" id="milestoneId"
             [(ngModel)]="projectManageArchivesa.milestoneId" nzPlaceHolder="请选择"
             (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>
@@ -85,27 +102,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>
@@ -114,27 +154,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>
@@ -143,23 +208,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>
@@ -168,19 +258,35 @@
   <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">
+          {{ 'service' | 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="seEngineerIds" id="seEngineerIds" nzPlaceHolder="请选择" [(ngModel)]="seEngineerIds"
@@ -191,4 +297,4 @@
       </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>

+ 53 - 17
src/app/routes/project-manage-archives/list/list.component.html

@@ -1,23 +1,34 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary"  acl [acl-ability]="'project-manage-archives:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'project-manage-archives:add'">
+      {{ 'cost.new' | translate }}
+    </button>
   </ng-template>
 </page-header>
+
 <nz-card>
   <!-- 查询条件 -->
   <form nz-form>
     <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">
+            {{ 'project' | translate }}{{ 'table.thead.code' | translate }}
+          </nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
             <input nz-input name="code" [(ngModel)]="projectManageArchives.proCode" />
           </nz-form-control>
         </nz-form-item>
       </div>
+      
       <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">
+            {{ 'cost.item.name' | translate }}
+          </nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
             <input nz-input name="name" [(ngModel)]="projectManageArchives.proName" />
           </nz-form-control>
@@ -25,9 +36,12 @@
       </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>
@@ -36,15 +50,28 @@
   <!-- 表格 -->
   <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>{{ 'project' | translate }}{{ 'table.thead.code' | translate }}</th>
+            <!-- 项目名称 -->
+            <th>{{ 'cost.item.name' | translate }}</th>
+            <!-- 客户名称 -->
+            <th>{{ 'customer.name' | translate }}</th>
+            <!--  项目总金额-->
+            <th>{{ 'total.amount.of.the.project' | translate }}</th>
+            <!-- 操作 -->
+            <th>{{ 'table.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
@@ -54,11 +81,20 @@
             <td>{{ data.cusName }}</td>
             <td>{{ data.totalPrice }}</td>
             <td>
-              <a (click)="view(data)" acl [acl-ability]="'project-manage-archives:view'">详情</a>
-              <nz-divider nzType="vertical" acl [acl-ability]="'project-manage-archives:view'"></nz-divider>
-              <a (click)="update(data)" acl [acl-ability]="'project-manage-archives:update'">修改</a>
-              <nz-divider nzType="vertical" acl [acl-ability]="'project-manage-archives:update'"></nz-divider>
-              <a (click)="delete(data.id)" acl [acl-ability]="'project-manage-archives:delete'">删除</a>
+              <!-- 详情 -->
+              <a (click)="view(data)" acl [acl-ability]="'project-manage-archives:view'">
+                {{ 'table.view' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'project-manage-archives:view'"> </nz-divider>
+              <!-- 修改 -->
+              <a (click)="update(data)" acl [acl-ability]="'project-manage-archives:update'">
+                {{ 'table.update' | translate }}
+              </a>
+              <nz-divider nzType="vertical" acl [acl-ability]="'project-manage-archives:update'"> </nz-divider>
+              <!--删除  -->
+              <a (click)="delete(data.id)" acl [acl-ability]="'project-manage-archives:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
             </td>
           </tr>
         </tbody>

+ 623 - 207
src/app/routes/project-manage-archives/update/business-affairs/business-affairs.component.html

@@ -3,46 +3,52 @@
   <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.name' | 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.shortName' | 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>
 </form>
 <!-- 收款计划 -->
-<nz-card nzTitle="收款计划" nzSize="small">
+<nz-card nzTitle="{{ 'payment.plan' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
       <!-- 新增按钮 -->
@@ -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,177 @@
         <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="{{ '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.desc1" nz-input maxlength=140 (blur)="descChange()"/>
+              <input [(ngModel)]="data.desc1" nz-input maxlength="140" (blur)="descChange()" />
             </td>
-            <td style="width: 4%;">第二笔</td>
+
+            <!-- 2 -->
+            <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>
+
+            <!--3-->
+            <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>
+
+            <!--4  -->
+            <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>
+
+            <!-- 5 -->
+            <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 +258,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 +268,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 +291,183 @@
         <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>
+
+            <!-- 2-->
+            <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>
+
+            <!-- 3 -->
+            <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>
+
+            <!-- 4 -->
+            <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>
+
+            <!--5 -->
+            <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,9 +475,8 @@
   </div>
 </nz-card>
 
-
 <!-- 付款计划 -->
-<nz-card nzTitle="付款计划" nzSize="small">
+<nz-card nzTitle="{{ 'payFor' | translate }}{{ 'the.plan' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
       <!-- 新增按钮 -->
@@ -272,9 +485,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 +508,178 @@
         <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>
+
+            <!-- {{ 'the.second' | translate }} -->
+            <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>
+
+            <!-- {{ 'the.third' | translate }} -->
+            <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>
+
+            <!-- {{ 'the.fourth' | translate }} -->
+            <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>
+
+            <!-- {{ 'the.fifth' | translate }} -->
+            <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 +687,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 +697,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 +720,181 @@
         <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>
+
+            <!--2 -->
+            <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>
+
+            <!-- 3 -->
+            <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>
+
+            <!-- {4 -->
+            <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>
+
+            <!-- 5 -->
+            <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>

+ 127 - 62
src/app/routes/project-manage-archives/update/development/development.component.html

@@ -3,67 +3,83 @@
   <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 }}</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 +88,116 @@
   </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.muilesCode" maxlength=6/></td>
+                <td><input nz-input [(ngModel)]="item.muilesCode" maxlength="6" /></td>
                 <td>
                   <ng-container *ngIf="item.muilesId">
                     {{ item.muilesName }}
                   </ng-container>
                   <ng-container *ngIf="!item.muilesId">
-                    <input nz-input [(ngModel)]="item.muilesName" maxlength=20/>
+                    <input nz-input [(ngModel)]="item.muilesName" 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 +206,4 @@
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 176 - 54
src/app/routes/project-manage-archives/update/essential-information/essential-information.component.html

@@ -3,10 +3,13 @@
   <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-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="proId" id="proId"
-            [(ngModel)]="projectManageArchivesa.proId" nzPlaceHolder="请选择">
+            [(ngModel)]="projectManageArchivesa.proId" nzPlaceHolder="{{ 'select.please.choose' | translate }}">
             <nz-option *ngFor="let i of proList" [nzValue]="i.id" [nzLabel]="i.code"></nz-option>
           </nz-select> -->
           {{projectManageArchivesa.proCode}}
@@ -15,15 +18,17 @@
     </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)">
@@ -38,9 +43,10 @@
     </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>
@@ -48,29 +54,45 @@
   <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 [nzDisabled]="true" [(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>
+          {{ 'financial.management.milestoneName' | translate }}
+          {{ '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)" [nzDisabled]="true">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="milestoneId"
+            id="milestoneId"
+            [(ngModel)]="projectManageArchivesa.milestoneId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            (ngModelChange)="milestoneChange($event)"
+            [nzDisabled]="true"
+          >
             <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>
@@ -79,27 +101,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="{{ '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"
+          <!-- <nz-select [nzMaxTagCount]="3" nzMode="multiple" nzPlaceHolder="{{ 'select.please.choose' | translate }}" 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>
@@ -108,27 +153,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"
+          <!-- <nz-select [nzMaxTagCount]="3" nzMode="multiple" nzPlaceHolder="{{ 'select.please.choose' | translate }}" 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>
@@ -137,23 +207,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>
@@ -162,26 +257,53 @@
   <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">
+          {{ 'service' | 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="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>

+ 124 - 59
src/app/routes/project-manage-archives/update/implementation/implementation.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.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">
       <!-- 新增按钮 -->
@@ -72,66 +87,116 @@
   </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.muilesCode" maxlength=6/></td>
+                <td><input nz-input [(ngModel)]="item.muilesCode" maxlength="6" /></td>
                 <td>
                   <ng-container *ngIf="item.muilesId">
                     {{ item.muilesName }}
                   </ng-container>
                   <ng-container *ngIf="!item.muilesId">
-                    <input nz-input [(ngModel)]="item.muilesName" maxlength=20/>
+                    <input nz-input [(ngModel)]="item.muilesName" 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>
@@ -140,4 +205,4 @@
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 126 - 63
src/app/routes/project-manage-archives/update/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>
-      </tr>
+          <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,66 +83,118 @@
   </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.muilesCode" maxlength=6/></td>
+                <td><input nz-input [(ngModel)]="item.muilesCode" maxlength="6" /></td>
                 <td>
                   <ng-container *ngIf="item.muilesId">
                     {{ item.muilesName }}
                   </ng-container>
                   <ng-container *ngIf="!item.muilesId">
-                    <input nz-input [(ngModel)]="item.muilesName" maxlength=20/>
+                    <input nz-input [(ngModel)]="item.muilesName" 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>
@@ -140,4 +203,4 @@
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 173 - 115
src/app/routes/project-manage-archives/view/business-affairs/business-affairs.component.html

@@ -3,50 +3,63 @@
   <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.name' | 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.shortName' | 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>
 </form>
 <!-- 收款计划 -->
-<nz-card nzTitle="收款计划" nzSize="small">
+<nz-card nzTitle="{{ 'payment.plan' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small"  #basicTable
-        [nzData]="collectionPlanList" [nzFrontPagination]="false" [nzShowPagination]="false" [nzScroll]="{x:'123vw'}">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        #basicTable
+        [nzData]="collectionPlanList"
+        [nzFrontPagination]="false"
+        [nzShowPagination]="false"
+        [nzScroll]="{ x: '123vw' }"
+      >
         <!-- <thead>
           <tr>
             <th>{{ 'customer.contacts.name' | translate }}</th>
@@ -60,57 +73,67 @@
         <tbody>
           <tr *ngFor="let data of basicTable.data">
             <td style="width: 7%;">
-              {{data.planName}}
+              {{ data.planName }}
             </td>
-            <td style="width: 4%;">第一笔</td>
+
+            <!-- 1 -->
+            <td style="width: 4%;">{{ 'the.first' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price1}}
+              {{ data.price1 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone1}}
+              {{ data.milestone1 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc1}}
+              {{ data.desc1 }}
             </td>
-            <td style="width: 4%;">第二笔</td>
+
+            <!-- 2 -->
+            <td style="width: 4%;">{{ 'the.second' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price2}}
+              {{ data.price2 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone2}}
+              {{ data.milestone2 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc2}}
+              {{ data.desc2 }}
             </td>
-            <td style="width: 4%;">第三笔</td>
+
+            <!-- 3 -->
+            <td style="width: 4%;">{{ 'the.third' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price3}}
+              {{ data.price3 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone3}}
+              {{ data.milestone3 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc3}}
+              {{ data.desc3 }}
             </td>
-            <td style="width: 4%;">第四笔</td>
+
+            <!-- 4 -->
+            <td style="width: 4%;">{{ 'the.fourth' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price4}}
+              {{ data.price4 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone4}}
+              {{ data.milestone4 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc4}}
+              {{ data.desc4 }}
             </td>
-            <td style="width: 4%;">第五笔</td>
+
+            <!-- 5 -->
+            <td style="width: 4%;">{{ 'the.fifth' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price5}}
+              {{ data.price5 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone5}}
+              {{ data.milestone5 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc5}}
+              {{ data.desc5 }}
             </td>
           </tr>
         </tbody>
@@ -119,14 +142,19 @@
   </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">
-      <nz-table style="padding-top: 5px;" nzSize="small"  #basicTable2
-        [nzData]="paymentCollectionList" [nzFrontPagination]="false" [nzShowPagination]="false"
-        [nzScroll]="{x:'123vw'}">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        #basicTable2
+        [nzData]="paymentCollectionList"
+        [nzFrontPagination]="false"
+        [nzShowPagination]="false"
+        [nzScroll]="{ x: '123vw' }"
+      >
         <!-- <thead>
           <tr>
             <th>{{ 'customer.contacts.name' | translate }}</th>
@@ -140,57 +168,67 @@
         <tbody>
           <tr *ngFor="let data of basicTable2.data">
             <td style="width: 7%;">
-              {{data.planName}}
+              {{ data.planName }}
             </td>
-            <td style="width: 4%;">第一笔</td>
+
+            <!-- 第一笔 -->
+            <td style="width: 4%;">{{ 'the.first' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price1}}
+              {{ data.price1 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone1}}
+              {{ data.milestone1 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc1}}
+              {{ data.desc1 }}
             </td>
-            <td style="width: 4%;">第二笔</td>
+
+            <!-- 第二笔 -->
+            <td style="width: 4%;">{{ 'the.second' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price2}}
+              {{ data.price2 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone2}}
+              {{ data.milestone2 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc2}}
+              {{ data.desc2 }}
             </td>
-            <td style="width: 4%;">第三笔</td>
+
+            <!-- 第三笔 -->
+            <td style="width: 4%;">{{ 'the.third' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price3}}
+              {{ data.price3 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone3}}
+              {{ data.milestone3 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc3}}
+              {{ data.desc3 }}
             </td>
-            <td style="width: 4%;">第四笔</td>
+
+            <!-- 第四笔 -->
+            <td style="width: 4%;">{{ 'the.fourth' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price4}}
+              {{ data.price4 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone4}}
+              {{ data.milestone4 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc4}}
+              {{ data.desc4 }}
             </td>
-            <td style="width: 4%;">第五笔</td>
+
+            <!-- 第五笔 -->
+            <td style="width: 4%;">{{ 'the.fifth' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price5}}
+              {{ data.price5 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone5}}
+              {{ data.milestone5 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc5}}
+              {{ data.desc5 }}
             </td>
           </tr>
         </tbody>
@@ -199,14 +237,19 @@
   </div>
 </nz-card>
 
-
 <!-- 付款计划 -->
-<nz-card nzTitle="付款计划" nzSize="small">
+<nz-card nzTitle="{{ 'payFor' | translate }}{{ 'the.plan' | translate }}" nzSize="small">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="24">
-      <nz-table style="padding-top: 5px;" nzSize="small"  #basicTable3
-        [nzData]="paymentPlanList" [nzFrontPagination]="false" [nzShowPagination]="false"
-        [nzScroll]="{x:'123vw'}">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        #basicTable3
+        [nzData]="paymentPlanList"
+        [nzFrontPagination]="false"
+        [nzShowPagination]="false"
+        [nzScroll]="{ x: '123vw' }"
+      >
         <!-- <thead>
           <tr>
             <th>{{ 'customer.contacts.name' | translate }}</th>
@@ -220,57 +263,67 @@
         <tbody>
           <tr *ngFor="let data of basicTable3.data">
             <td style="width: 7%;">
-              {{data.planName}}
+              {{ data.planName }}
             </td>
-            <td style="width: 4%;">第一笔</td>
+
+            <!-- 第一笔 -->
+            <td style="width: 4%;">{{ 'the.first' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price1}}
+              {{ data.price1 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone1}}
+              {{ data.milestone1 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc1}}
+              {{ data.desc1 }}
             </td>
-            <td style="width: 4%;">第二笔</td>
+
+            <!-- 第二笔 -->
+            <td style="width: 4%;">{{ 'the.second' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price2}}
+              {{ data.price2 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone2}}
+              {{ data.milestone2 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc2}}
+              {{ data.desc2 }}
             </td>
-            <td style="width: 4%;">第三笔</td>
+
+            <!--第三笔  -->
+            <td style="width: 4%;">{{ 'the.third' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price3}}
+              {{ data.price3 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone3}}
+              {{ data.milestone3 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc3}}
+              {{ data.desc3 }}
             </td>
-            <td style="width: 4%;">第四笔</td>
+
+            <!-- 第四笔 -->
+            <td style="width: 4%;">{{ 'the.fourth' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price4}}
+              {{ data.price4 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone4}}
+              {{ data.milestone4 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc4}}
+              {{ data.desc4 }}
             </td>
-            <td style="width: 4%;">第五笔</td>
+
+            <!-- 第五笔 -->
+            <td style="width: 4%;">{{ 'the.fifth' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price5}}
+              {{ data.price5 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone5}}
+              {{ data.milestone5 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc5}}
+              {{ data.desc5 }}
             </td>
           </tr>
         </tbody>
@@ -279,14 +332,19 @@
   </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">
-      <nz-table style="padding-top: 5px;" nzSize="small" #basicTable4
-        [nzData]="paymentStatusList" [nzFrontPagination]="false" [nzShowPagination]="false"
-        [nzScroll]="{x:'123vw'}">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        #basicTable4
+        [nzData]="paymentStatusList"
+        [nzFrontPagination]="false"
+        [nzShowPagination]="false"
+        [nzScroll]="{ x: '123vw' }"
+      >
         <!-- <thead>
           <tr>
             <th>{{ 'customer.contacts.name' | translate }}</th>
@@ -300,61 +358,61 @@
         <tbody>
           <tr *ngFor="let data of basicTable4.data">
             <td style="width: 7%;">
-              {{data.planName}}
+              {{ data.planName }}
             </td>
-            <td style="width: 4%;">第一笔</td>
+            <td style="width: 4%;">{{ 'the.first' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price1}}
+              {{ data.price1 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone1}}
+              {{ data.milestone1 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc1}}
+              {{ data.desc1 }}
             </td>
-            <td style="width: 4%;">第二笔</td>
+            <td style="width: 4%;">{{ 'the.second' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price2}}
+              {{ data.price2 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone2}}
+              {{ data.milestone2 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc2}}
+              {{ data.desc2 }}
             </td>
-            <td style="width: 4%;">第三笔</td>
+            <td style="width: 4%;">{{ 'the.third' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price3}}
+              {{ data.price3 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone3}}
+              {{ data.milestone3 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc3}}
+              {{ data.desc3 }}
             </td>
-            <td style="width: 4%;">第四笔</td>
+            <td style="width: 4%;">{{ 'the.fourth' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price4}}
+              {{ data.price4 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone4}}
+              {{ data.milestone4 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc4}}
+              {{ data.desc4 }}
             </td>
-            <td style="width: 4%;">第五笔</td>
+            <td style="width: 4%;">{{ 'the.fifth' | translate }}</td>
             <td style="width: 4%;">
-              {{data.price5}}
+              {{ data.price5 }}
             </td>
             <td style="width: 5%;">
-              {{data.milestone5}}
+              {{ data.milestone5 }}
             </td>
             <td style="width: 5%;">
-              {{data.desc5}}
+              {{ data.desc5 }}
             </td>
           </tr>
         </tbody>
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 91 - 54
src/app/routes/project-manage-archives/view/development/development.component.html

@@ -3,110 +3,147 @@
   <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">
-      <nz-table style="padding-top: 5px;" nzSize="small" #expandTable [nzData]="listOfMapData"
-        nzTableLayout="fixed" [nzShowPagination]="false" [nzFrontPagination]="false">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        #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: 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>
           </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>{{item.muilesCode}}</td>
+                <td>{{ item.muilesCode }}</td>
                 <td>
-                  {{item.muilesName}}
+                  {{ item.muilesName }}
                 </td>
                 <td>
-                  {{item.startDate}}
+                  {{ item.startDate }}
                 </td>
                 <td>
-                  {{item.endDate}}
+                  {{ item.endDate }}
                 </td>
                 <td>
-                  {{item.planTime}}
+                  {{ item.planTime }}
                 </td>
                 <td>
-                  {{item.executor}}
+                  {{ item.executor }}
                 </td>
                 <td>
-                  {{item.realTime}}
+                  {{ item.realTime }}
                 </td>
               </tr>
             </ng-container>
@@ -115,4 +152,4 @@
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 66 - 29
src/app/routes/project-manage-archives/view/essential-information/essential-information.component.html

@@ -3,37 +3,43 @@
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >项目编码</nz-form-label>
+        <!--项目编码  -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'project' | translate }}{{ 'table.thead.code' | translate }}</nz-form-label
+        >
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <!-- <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="proId" id="proId"
             [(ngModel)]="projectManageArchivesa.proId" nzPlaceHolder="请选择">
             <nz-option *ngFor="let i of proList" [nzValue]="i.id" [nzLabel]="i.code"></nz-option>
           </nz-select> -->
-          {{projectManageArchivesa.proCode}}
+          {{ projectManageArchivesa.proCode }}
         </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 }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{projectManageArchivesa.cusCode}}
+          {{ projectManageArchivesa.cusCode }}
         </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 }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{projectManageArchivesa.cusName}}
+          {{ projectManageArchivesa.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
@@ -41,17 +47,24 @@
   <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">{{
+          'total.amount.of.the.project' | translate
+        }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{projectManageArchivesa.totalPrice}}
+          {{ projectManageArchivesa.totalPrice }}
         </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">
+          {{ 'financial.management.milestoneName' | translate }}
+          {{ 'financial.management.type' | translate }}</nz-form-label
+        >
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{projectManageArchivesa.milestoneType}}
+          {{ projectManageArchivesa.milestoneType }}
         </nz-form-control>
       </nz-form-item>
     </div>
@@ -59,21 +72,27 @@
   <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">
-          {{projectManageArchivesa.saleManager}}
+          {{ projectManageArchivesa.saleManager }}
         </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> -->
-          {{projectManageArchivesa.saleMan}}
+          {{ projectManageArchivesa.saleMan }}
         </nz-form-control>
       </nz-form-item>
     </div>
@@ -81,17 +100,23 @@
   <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">
-          {{projectManageArchivesa.impManager}}
+          {{ projectManageArchivesa.impManager }}
         </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">
-          {{projectManageArchivesa.impConsultant}}
+          {{ projectManageArchivesa.impConsultant }}
         </nz-form-control>
       </nz-form-item>
     </div>
@@ -99,17 +124,23 @@
   <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">
-          {{projectManageArchivesa.deManager}}
+          {{ projectManageArchivesa.deManager }}
         </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">
-          {{projectManageArchivesa.deEngineer}}
+          {{ projectManageArchivesa.deEngineer }}
         </nz-form-control>
       </nz-form-item>
     </div>
@@ -117,19 +148,25 @@
   <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">
-          {{projectManageArchivesa.seManager}}
+          {{ projectManageArchivesa.seManager }}
         </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"
+          >{{ 'service' | translate }}{{ 'engineer' | translate }}</nz-form-label
+        >
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{projectManageArchivesa.seEngineer}}
+          {{ projectManageArchivesa.seEngineer }}
         </nz-form-control>
       </nz-form-item>
     </div>
   </div>
-</form>
+</form>

+ 87 - 53
src/app/routes/project-manage-archives/view/implementation/implementation.component.html

@@ -3,108 +3,142 @@
   <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>
+        <!--  2-->
+        <td>{{ 'the.second' | translate }}</td>
+        <td>{{ remittanceInformation.price2 }}</td>
+        <!--  3-->
+        <td>{{ 'the.third' | translate }}</td>
+        <td>{{ remittanceInformation.price3 }}</td>
+        <!-- 4 -->
+        <td>{{ 'the.fourth' | translate }}</td>
+        <td>{{ remittanceInformation.price4 }}</td>
+        <!-- 5 -->
+        <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">
-      <nz-table style="padding-top: 5px;" nzSize="small" #expandTable [nzData]="listOfMapData"
-        nzTableLayout="fixed" [nzShowPagination]="false" [nzFrontPagination]="false">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        #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: 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>
           </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>{{item.muilesCode}}</td>
+                <td>{{ item.muilesCode }}</td>
                 <td>
-                  {{item.muilesName}}
+                  {{ item.muilesName }}
                 </td>
                 <td>
-                  {{item.startDate}}
+                  {{ item.startDate }}
                 </td>
                 <td>
-                  {{item.endDate}}
+                  {{ item.endDate }}
                 </td>
                 <td>
-                  {{item.planTime}}
+                  {{ item.planTime }}
                 </td>
                 <td>
-                  {{item.executor}}
+                  {{ item.executor }}
                 </td>
                 <td>
-                  {{item.realTime}}
+                  {{ item.realTime }}
                 </td>
               </tr>
             </ng-container>
@@ -113,4 +147,4 @@
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 96 - 55
src/app/routes/project-manage-archives/view/serviceta/serviceta.component.html

@@ -3,109 +3,150 @@
   <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>
+        <!--  2-->
+        <td>{{ 'the.second' | translate }}</td>
+        <td>{{ remittanceInformation.price2 }}</td>
+        <!-- 3 -->
+        <td>{{ 'the.third' | translate }}</td>
+        <td>{{ remittanceInformation.price3 }}</td>
+        <!--4  -->
+        <td>{{ 'the.fourth' | translate }}</td>
+        <td>{{ remittanceInformation.price4 }}</td>
+        <!--5  -->
+        <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">
-      <nz-table style="padding-top: 5px;" nzSize="small" #expandTable [nzData]="listOfMapData"
-        nzTableLayout="fixed" [nzShowPagination]="false" [nzFrontPagination]="false">
+      <nz-table
+        style="padding-top: 5px;"
+        nzSize="small"
+        #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: 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>
+          </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>{{item.muilesCode}}</td>
+                <td>{{ item.muilesCode }}</td>
                 <td>
-                  {{item.muilesName}}
+                  {{ item.muilesName }}
                 </td>
                 <td>
-                  {{item.startDate}}
+                  {{ item.startDate }}
                 </td>
                 <td>
-                  {{item.endDate}}
+                  {{ item.endDate }}
                 </td>
                 <td>
-                  {{item.planTime}}
+                  {{ item.planTime }}
                 </td>
                 <td>
-                  {{item.executor}}
+                  {{ item.executor }}
                 </td>
                 <td>
-                  {{item.realTime}}
+                  {{ item.realTime }}
                 </td>
               </tr>
             </ng-container>
@@ -114,4 +155,4 @@
       </nz-table>
     </div>
   </div>
-</nz-card>
+</nz-card>

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

@@ -3,37 +3,69 @@
     <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="{{ 'aoto.create' | translate }}"
+              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="{{ 'select.please.choose' | translate }}"
+              (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="{{ 'select.please.choose' | translate }}"
+              [(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 +74,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 +130,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 +195,22 @@
 </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>

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

@@ -3,37 +3,67 @@
     <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="{{ 'aoto.create' | translate }}"
+              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="{{ 'select.please.choose' | translate }}"
+              (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="{{ 'select.please.choose' | translate }}"
+              [(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 +72,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,34 +128,60 @@
 
     <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
+                  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>
@@ -120,13 +192,23 @@
 </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>

+ 47 - 25
src/app/routes/project-work/development-log/view/view.component.html

@@ -3,25 +3,28 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="8">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24"  nzFor="code">单据编码</nz-form-label>
+          <!-- 单据编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="code">{{ 'documents.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{proWorkLogic.billcode}}
+            {{ proWorkLogic.billcode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'cost.item.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{proWorkLogic.proName}}
+            {{ proWorkLogic.proName }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'report.person' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{proWorkLogic.reporter}}
+            {{ proWorkLogic.reporter }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -29,23 +32,25 @@
     <div nz-row [nzGutter]="24">
       <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">{{ '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">
-            {{proWorkLogic.startDate}}
+            {{ proWorkLogic.startDate }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ '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">
-            {{proWorkLogic.endDate}}
+            {{ proWorkLogic.endDate }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -54,27 +59,37 @@
   <nz-card>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" #basicTable [nzData]="itemList"
-          [nzFrontPagination]="false" [nzShowPagination]="false">
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          #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 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>
             </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>
-                {{data.proArchivesMilestone}}
+                {{ data.proArchivesMilestone }}
               </td>
               <td>
-                {{data.content}}
+                {{ data.content }}
               </td>
               <td style="width: 10%;">
-                {{data.duration}}
+                {{ data.duration }}
               </td>
             </tr>
           </tbody>
@@ -85,8 +100,15 @@
 </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 }}
   <!-- 关闭按钮 -->
-  <button nz-button (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel'|translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 86 - 36
src/app/routes/project-work/development-milestone-confirm/add/add.component.html

@@ -1,89 +1,123 @@
 <!-- 基本信息 -->
 <form nz-form [formGroup]="validateForm" (ngSubmit)="submitForm()">
-
-
-
   <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>{{ 'documents.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          自动生成
+          <!-- 自动生成 -->
+          {{ 'aoto.create' | translate }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'project.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proCode}}
+          {{ proWorkMilestone.proCode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>{{ 'cost.item.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="proId" id="proId"
-            [(ngModel)]="proWorkMilestone.proId" nzPlaceHolder="请选择" (ngModelChange)="proChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="proId"
+            id="proId"
+            [(ngModel)]="proWorkMilestone.proId"
+            nzPlaceHolder=" {{ 'select.please.choose' | translate }}"
+            (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]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusCode}}
+          {{ proWorkMilestone.cusCode }}
         </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]="'vertical' ? 24 : null">客户名称</nz-form-label>
+        <!--客户名称  -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusName}}
+          {{ proWorkMilestone.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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 }}{{ 'financial.management.milestoneName' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="mileId" id="mileId"
-            [(ngModel)]="proWorkMilestone.mileId" nzPlaceHolder="请选择" (ngModelChange)="milChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="mileId"
+            id="mileId"
+            [(ngModel)]="proWorkMilestone.mileId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            (ngModelChange)="milChange($event)"
+          >
             <nz-option *ngFor="let i of mieList" [nzValue]="i.key" [nzLabel]="i.milesName"></nz-option>
           </nz-select>
           <nz-form-explain *ngIf="validateForm.get('mileId')?.dirty && validateForm.get('mileId')?.errors">
-            请选择里程碑
+            <!-- 请选择里程碑 -->
+            {{ 'cost.choose' | translate }}{{ 'financial.management.milestoneName' | 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" nzRequired>里程碑确认</nz-form-label>
+        <!-- 里程碑确认 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" nzRequired>
+          {{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-switch formControlName="milSwitch" id="milSwitch" [(ngModel)]="milSwitch" nzCheckedChildren="是"
-            nzUnCheckedChildren="否"></nz-switch>
+          <nz-switch
+            formControlName="milSwitch"
+            id="milSwitch"
+            [(ngModel)]="milSwitch"
+            nzCheckedChildren="{{ 'yes' | translate }}"
+            nzUnCheckedChildren="{{ 'no' | translate }}"
+          ></nz-switch>
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>
+          {{ 'ok' | translate }}{{ 'date' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <nz-date-picker formControlName="confirmTime" id="confirmTime" [(ngModel)]="proWorkMilestone.confirmTime">
           </nz-date-picker>
           <nz-form-explain *ngIf="validateForm.get('confirmTime')?.dirty && validateForm.get('confirmTime')?.errors">
-            请选择时间
+            {{ 'select.please.choose' | translate }}{{ 'date' | translate }}
           </nz-form-explain>
         </nz-form-control>
       </nz-form-item>
@@ -91,25 +125,41 @@
   </div>
 </form>
 <!-- 项目成果 -->
-<nz-card nzTitle="项目成果">
+<nz-card nzTitle="{{ 'project.results' | translate }}">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
-      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple=true
-        (nzChange)="handleChange($event)">
-        <button nz-button><i nz-icon nzType="upload"></i>上传</button>
+      <nz-upload
+        nzAction="sys/common/uploadFile"
+        [nzFileList]="fileList"
+        nzMultiple="true"
+        (nzChange)="handleChange($event)"
+      >
+        <!-- 上传 -->
+        <button nz-button><i nz-icon nzType="upload"></i>
+          {{ 'pm.project.archives.file.up.load' | translate }}
+        </button>
       </nz-upload>
     </div>
   </div>
 </nz-card>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkMilestone.currentUser}} <strong>填写时间:</strong>{{proWorkMilestone.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ proWorkMilestone.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ proWorkMilestone.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>

+ 57 - 22
src/app/routes/project-work/development-milestone-confirm/development-milestone-confirm.component.html

@@ -1,6 +1,9 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'development-milestone-confirm:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'development-milestone-confirm:add'">
+      {{ '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)]="proWorkMilestone.billcode" />
           </nz-form-control>
@@ -17,30 +21,50 @@
       </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>操作</th>
+            <!-- 单据编码 -->
+            <th>{{ 'documents.code' | translate }}</th>
+            <!--项目编码  -->
+            <th>{{ 'project.code' | translate }}</th>
+            <!-- 项目名称 -->
+            <th>{{ 'cost.item.name' | translate }}</th>
+            <!-- 客户编码 -->
+            <th>{{ 'customer.code' | translate }}</th>
+            <!-- 客户名称 -->
+            <th>{{ 'customer.name' | translate }}</th>
+            <!-- 项目里程碑 -->
+            <th>{{ 'project' | translate }}{{ 'financial.management.milestoneName' | translate }}</th>
+            <!-- 里程碑确认 -->
+            <th>{{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}</th>
+            <!-- 确认时间 -->
+            <th>{{ 'confim.date' | translate }}</th>
+            <!-- 操作 -->
+            <th>{{ 'table.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
@@ -52,16 +76,27 @@
             <td>{{ data.cusName }}</td>
             <td>{{ data.mileName }}</td>
             <td>
-              <nz-tag *ngIf="data.mileConfirm===0" [nzColor]="'red'"></nz-tag>
-              <nz-tag *ngIf="data.mileConfirm===1" [nzColor]="'green'"></nz-tag>
+              <!-- 否 -->
+              <nz-tag *ngIf="data.mileConfirm === 0" [nzColor]="'red'">{{ 'no' | translate }}</nz-tag>
+              <!-- 是 -->
+              <nz-tag *ngIf="data.mileConfirm === 1" [nzColor]="'green'">{{ 'yes' | translate }}</nz-tag>
             </td>
             <td>{{ data.confirmTime }}</td>
             <td>
-              <a (click)="view(data)" acl [acl-ability]="'development-milestone-confirm:view'">详情</a>
+              <!-- 详情 -->
+              <a (click)="view(data)" acl [acl-ability]="'development-milestone-confirm:view'">
+                {{ 'table.view' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'development-milestone-confirm:view'"></nz-divider>
-              <a (click)="update(data)" acl [acl-ability]="'development-milestone-confirm:update'">修改</a>
+              <!-- 修改 -->
+              <a (click)="update(data)" acl [acl-ability]="'development-milestone-confirm:update'">
+                {{ 'table.update' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'development-milestone-confirm:update'"></nz-divider>
-              <a (click)="delete(data.id)" acl [acl-ability]="'development-milestone-confirm:delete'">删除</a>
+              <!-- 删除 -->
+              <a (click)="delete(data.id)" acl [acl-ability]="'development-milestone-confirm:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
             </td>
           </tr>
         </tbody>

+ 88 - 36
src/app/routes/project-work/development-milestone-confirm/update/update.component.html

@@ -1,89 +1,123 @@
 <!-- 基本信息 -->
 <form nz-form [formGroup]="validateForm" (ngSubmit)="submitForm()">
-
-
-
   <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>{{ 'documents.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.billcode}}
+          {{ proWorkMilestone.billcode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'project.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proCode}}
+          {{ proWorkMilestone.proCode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>{{ 'cost.item.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="proId" id="proId"
-            [(ngModel)]="proWorkMilestone.proId" nzPlaceHolder="请选择" (ngModelChange)="proChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="proId"
+            id="proId"
+            [(ngModel)]="proWorkMilestone.proId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            (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]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusCode}}
+          {{ proWorkMilestone.cusCode }}
         </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]="'vertical' ? 24 : null">客户名称</nz-form-label>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusName}}
+          {{ proWorkMilestone.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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 }}{{ 'financial.management.milestoneName' | translate }}</nz-form-label
+        >
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="mileId" id="mileId"
-            [(ngModel)]="proWorkMilestone.mileId" nzPlaceHolder="请选择" (ngModelChange)="milChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="mileId"
+            id="mileId"
+            [(ngModel)]="proWorkMilestone.mileId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            (ngModelChange)="milChange($event)"
+          >
             <nz-option *ngFor="let i of mieList" [nzValue]="i.key" [nzLabel]="i.milesName"></nz-option>
           </nz-select>
           <nz-form-explain *ngIf="validateForm.get('mileId')?.dirty && validateForm.get('mileId')?.errors">
-            请选择里程碑
+            <!-- 请选择里程碑 -->
+            {{ 'cost.choose' | translate }}{{ 'financial.management.milestoneName' | 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" nzRequired>里程碑确认</nz-form-label>
+        <!-- 里程碑确认 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" nzRequired>
+          {{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-switch formControlName="milSwitch" id="milSwitch" [(ngModel)]="milSwitch" nzCheckedChildren="是"
-            nzUnCheckedChildren="否"></nz-switch>
+          <nz-switch
+            formControlName="milSwitch"
+            id="milSwitch"
+            [(ngModel)]="milSwitch"
+            nzCheckedChildren="{{ 'cost.yes' | translate }}"
+            nzUnCheckedChildren="{{ 'cost.no' | translate }}"
+          ></nz-switch>
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>
+          {{ 'ok' | translate }}{{ 'date' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <nz-date-picker formControlName="confirmTime" id="confirmTime" [(ngModel)]="proWorkMilestone.confirmTime">
           </nz-date-picker>
           <nz-form-explain *ngIf="validateForm.get('confirmTime')?.dirty && validateForm.get('confirmTime')?.errors">
-            请选择时间
+            <!-- 请选择时间 -->
+            {{ 'select.please.choose' | translate }}{{ 'date' | translate }}
           </nz-form-explain>
         </nz-form-control>
       </nz-form-item>
@@ -91,25 +125,43 @@
   </div>
 </form>
 <!-- 项目成果 -->
-<nz-card nzTitle="项目成果">
+<nz-card nzTitle="{{ 'project.results' | translate }}">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
-      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple=true
-        (nzChange)="handleChange($event)">
-        <button nz-button><i nz-icon nzType="upload"></i>上传</button>
+      <nz-upload
+        nzAction="sys/common/uploadFile"
+        [nzFileList]="fileList"
+        nzMultiple="true"
+        (nzChange)="handleChange($event)"
+      >
+        <!-- 上传 -->
+        <button nz-button>
+          <i nz-icon nzType="upload"></i>
+          {{ 'pm.project.archives.file.up.load' | translate }}
+        </button>
       </nz-upload>
     </div>
   </div>
 </nz-card>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkMilestone.currentUser}} <strong>填写时间:</strong>{{proWorkMilestone.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ proWorkMilestone.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ proWorkMilestone.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>

+ 50 - 28
src/app/routes/project-work/development-milestone-confirm/view/view.component.html

@@ -1,85 +1,102 @@
 <!-- 基本信息 -->
 <form nz-form>
-
-
-
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >单据编码</nz-form-label>
+        <!-- 单据编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'documents.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.billcode}}
+          {{ proWorkMilestone.billcode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'project.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proCode}}
+          {{ proWorkMilestone.proCode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >项目名称</nz-form-label>
+        <!-- 项目名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'cost.item.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proName}}
+          {{ proWorkMilestone.proName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusCode}}
+          {{ proWorkMilestone.cusCode }}
         </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]="'vertical' ? 24 : null">客户名称</nz-form-label>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'customer.name' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusName}}
+          {{ proWorkMilestone.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >项目里程碑</nz-form-label>
+        <!-- 项目里程碑 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'project' | translate }}{{ 'financial.management.milestoneName' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.mileName}}
+          {{ proWorkMilestone.mileName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >里程碑确认</nz-form-label>
+        <!-- 里程碑确认 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-            <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm===1"></nz-tag>
-            <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm===0"></nz-tag>
+          <!-- 是 -->
+          <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm === 1">
+            {{ 'cost.yes' | translate }}
+          </nz-tag>
+          <!-- 否 -->
+          <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm === 0">
+            {{ 'cost.no' | translate }}
+          </nz-tag>
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >确认时间</nz-form-label>
+        <!-- 确认时间 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'ok' | translate }}{{ 'date' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.confirmTime}}
+          {{ proWorkMilestone.confirmTime }}
         </nz-form-control>
       </nz-form-item>
     </div>
   </div>
 </form>
 <!-- 项目成果 -->
-<nz-card nzTitle="项目成果">
+<nz-card nzTitle="{{ 'project.results' | translate }}">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
-      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple=true
-        >
+      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple="true">
         <!-- <button nz-button><i nz-icon nzType="upload"></i>上传</button> -->
       </nz-upload>
     </div>
@@ -87,8 +104,13 @@
 </nz-card>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkMilestone.currentUser}} <strong>填写时间:</strong>{{proWorkMilestone.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ proWorkMilestone.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ proWorkMilestone.createTime }}
   <!-- 关闭按钮 -->
-  <button nz-button (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel'|translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 128 - 41
src/app/routes/project-work/implementation-log/add/add.component.html

@@ -3,37 +3,72 @@
     <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="{{ 'aoto.create' | translate }}"
+              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="{{ 'cost.choose' | translate }}"
+              (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="{{ 'cost.choose' | translate }}"
+              [(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 +77,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">
-              请选择开始时间
+              <!-- 请选择开始时间 -->
+              {{ 'cost.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">
-              请选择结束时间
+              <!-- 请选择结束时间 -->
+              {{ 'cost.choose' | translate }}{{ 'contract.end.date' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -82,34 +133,60 @@
 
     <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
+                  style="width: 100%"
+                  [nzNodes]="mieList"
+                  nzShowSearch
+                  [nzMultiple]="false"
+                  nzPlaceHolder=" {{ 'cost.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>
@@ -120,13 +197,23 @@
 </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>

+ 49 - 19
src/app/routes/project-work/implementation-log/implementation-log.component.html

@@ -1,6 +1,9 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'implementation-log:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'implementation-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,48 @@
       </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 +75,18 @@
             <td>{{ data.currentUser }}</td>
             <td>{{ data.createTime }}</td>
             <td>
-              <a (click)="view(data)" acl [acl-ability]="'implementation-log:view'">详情</a>
+              <!-- 详情 修改 删除 -->
+              <a (click)="view(data)" acl [acl-ability]="'implementation-log:view'">
+                {{ 'table.view' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'implementation-log:view'"></nz-divider>
-              <a (click)="update(data)" acl [acl-ability]="'implementation-log:update'">修改</a>
+              <a (click)="update(data)" acl [acl-ability]="'implementation-log:update'">
+                {{ 'table.update' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'implementation-log:update'"></nz-divider>
-              <a (click)="delete(data.id)" acl [acl-ability]="'implementation-log:delete'">删除</a>
+              <a (click)="delete(data.id)" acl [acl-ability]="'implementation-log:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
             </td>
           </tr>
         </tbody>

+ 121 - 41
src/app/routes/project-work/implementation-log/update/update.component.html

@@ -3,37 +3,67 @@
     <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="{{ 'aoto.create' | translate }}"
+              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="{{ 'select.please.choose' | translate }}"
+              (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="{{ 'select.please.choose' | translate }}"
+              [(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 +72,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,34 +128,59 @@
 
     <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
+                  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>
@@ -120,13 +191,22 @@
 </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>

+ 45 - 25
src/app/routes/project-work/implementation-log/view/view.component.html

@@ -3,25 +3,28 @@
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="8">
         <nz-form-item>
-          <nz-form-label [nzSm]="6" [nzXs]="24"  nzFor="code">单据编码</nz-form-label>
+          <!-- 单据编码 -->
+          <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="code">{{ 'documents.code' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{proWorkLogic.billcode}}
+            {{ proWorkLogic.billcode }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'cost.item.name' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{proWorkLogic.proName}}
+            {{ proWorkLogic.proName }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ 'report.person' | translate }}</nz-form-label>
           <nz-form-control [nzSm]="14" [nzXs]="24">
-            {{proWorkLogic.reporter}}
+            {{ proWorkLogic.reporter }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -29,23 +32,25 @@
     <div nz-row [nzGutter]="24">
       <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">{{ '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">
-            {{proWorkLogic.startDate}}
+            {{ proWorkLogic.startDate }}
           </nz-form-control>
         </nz-form-item>
       </div>
       <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">{{ '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">
-            {{proWorkLogic.endDate}}
+            {{ proWorkLogic.endDate }}
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -54,27 +59,37 @@
   <nz-card>
     <div nz-row [nzGutter]="24">
       <div nz-col [nzSpan]="24">
-        <nz-table style="padding-top: 5px;" nzSize="small" #basicTable [nzData]="itemList"
-          [nzFrontPagination]="false" [nzShowPagination]="false">
+        <nz-table
+          style="padding-top: 5px;"
+          nzSize="small"
+          #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 nzAlign="center" style="width: 5%;">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 里程碑 -->
+              <th style="width: 30%;">{{ 'milestone.milestone' | translate }}</th>
+              <!-- 工作内容 -->
+              <th style="width: 50%;">{{ 'work.content' | translate }}</th>
+              <!-- 工作用时 -->
+              <th style="width: 5%;">{{ 'work.available' | 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>
-                {{data.proArchivesMilestone}}
+                {{ data.proArchivesMilestone }}
               </td>
               <td>
-                {{data.content}}
+                {{ data.content }}
               </td>
               <td style="width: 10%;">
-                {{data.duration}}
+                {{ data.duration }}
               </td>
             </tr>
           </tbody>
@@ -85,8 +100,13 @@
 </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 }}
   <!-- 关闭按钮 -->
-  <button nz-button (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel'|translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 95 - 36
src/app/routes/project-work/implementation-milestone-confirm/add/add.component.html

@@ -1,89 +1,129 @@
 <!-- 基本信息 -->
 <form nz-form [formGroup]="validateForm" (ngSubmit)="submitForm()">
-
-
-
   <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>
+          {{ 'documents.code' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          自动生成
+          <!--自动生成  -->
+          {{ 'aoto.create' | translate }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'project.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proCode}}
+          {{ proWorkMilestone.proCode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>
+          {{ 'cost.item.name' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="proId" id="proId"
-            [(ngModel)]="proWorkMilestone.proId" nzPlaceHolder="请选择" (ngModelChange)="proChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="proId"
+            id="proId"
+            [(ngModel)]="proWorkMilestone.proId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            (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]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusCode}}
+          {{ proWorkMilestone.cusCode }}
         </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]="'vertical' ? 24 : null">客户名称</nz-form-label>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusName}}
+          {{ proWorkMilestone.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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 }}{{ 'financial.management.milestoneName' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="mileId" id="mileId"
-            [(ngModel)]="proWorkMilestone.mileId" nzPlaceHolder="请选择" (ngModelChange)="milChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="mileId"
+            id="mileId"
+            [(ngModel)]="proWorkMilestone.mileId"
+            nzPlaceHolder="{{ 'cost.choose' | translate }}"
+            (ngModelChange)="milChange($event)"
+          >
             <nz-option *ngFor="let i of mieList" [nzValue]="i.key" [nzLabel]="i.milesName"></nz-option>
           </nz-select>
           <nz-form-explain *ngIf="validateForm.get('mileId')?.dirty && validateForm.get('mileId')?.errors">
-            请选择里程碑
+            <!--请选择里程碑  -->
+            {{ 'cost.choose' | translate }}{{ 'financial.management.milestoneName' | 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" nzRequired>里程碑确认</nz-form-label>
+        <!-- 里程碑确认 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" nzRequired>
+          {{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-switch formControlName="milSwitch" id="milSwitch" [(ngModel)]="milSwitch" nzCheckedChildren="是"
-            nzUnCheckedChildren="否"></nz-switch>
+          <!-- 是 否 -->
+          <nz-switch
+            formControlName="milSwitch"
+            id="milSwitch"
+            [(ngModel)]="milSwitch"
+            nzCheckedChildren="{{ 'cost.yes' | translate }}"
+            nzUnCheckedChildren="{{ 'cost.no' | translate }}"
+          ></nz-switch>
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>
+          <!-- 确认时间 -->
+          {{ 'ok' | translate }}{{ 'date' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <nz-date-picker formControlName="confirmTime" id="confirmTime" [(ngModel)]="proWorkMilestone.confirmTime">
           </nz-date-picker>
           <nz-form-explain *ngIf="validateForm.get('confirmTime')?.dirty && validateForm.get('confirmTime')?.errors">
-            请选择时间
+            <!-- 请选择时间 -->
+            {{ 'select.please.choose' | translate }}{{ 'date' | translate }}
           </nz-form-explain>
         </nz-form-control>
       </nz-form-item>
@@ -91,25 +131,44 @@
   </div>
 </form>
 <!-- 项目成果 -->
-<nz-card nzTitle="项目成果">
+<nz-card nzTitle="{{ 'project.results' | translate }}">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
-      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple=true
-        (nzChange)="handleChange($event)">
-        <button nz-button><i nz-icon nzType="upload"></i>上传</button>
+      <nz-upload
+        nzAction="sys/common/uploadFile"
+        [nzFileList]="fileList"
+        nzMultiple="true"
+        (nzChange)="handleChange($event)"
+      >
+        <!-- 上传 -->
+        <button nz-button>
+          <i nz-icon nzType="upload"></i>
+          {{ 'pm.project.archives.file.up.load' | translate }}
+        </button>
       </nz-upload>
     </div>
   </div>
 </nz-card>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkMilestone.currentUser}} <strong>填写时间:</strong>{{proWorkMilestone.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>
+  {{ proWorkMilestone.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>
+  {{ proWorkMilestone.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>

+ 61 - 22
src/app/routes/project-work/implementation-milestone-confirm/implementation-milestone-confirm.component.html

@@ -1,6 +1,9 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'implementation-milestone-confirm:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'implementation-milestone-confirm:add'">
+      {{ '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)]="proWorkMilestone.billcode" />
           </nz-form-control>
@@ -17,30 +21,50 @@
       </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>操作</th>
+            <!-- 单据编码 -->
+            <th>{{ 'documents.code' | translate }}</th>
+            <!-- 项目编码 -->
+            <th>{{ 'project' | translate }}{{ 'table.thead.code' | translate }}</th>
+            <!-- 项目名称 -->
+            <th>{{ 'cost.item.name' | translate }}</th>
+            <!-- 客户编码 -->
+            <th>{{ 'customer.code' | translate }}</th>
+            <!-- 客户名称 -->
+            <th>{{ 'customer.name' | translate }}</th>
+            <!-- 项目里程碑 -->
+            <th>{{ 'project' | translate }}{{ 'financial.management.milestoneName' | translate }}</th>
+            <!--  里程碑确认-->
+            <th>{{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}</th>
+            <!-- 确认时间 -->
+            <th>{{ 'ok' | translate }}{{ 'date' | translate }}</th>
+            <!-- 操作 -->
+            <th>{{ 'cost.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
@@ -52,16 +76,31 @@
             <td>{{ data.cusName }}</td>
             <td>{{ data.mileName }}</td>
             <td>
-              <nz-tag *ngIf="data.mileConfirm===0" [nzColor]="'red'"></nz-tag>
-              <nz-tag *ngIf="data.mileConfirm===1" [nzColor]="'green'"></nz-tag>
+              <!-- 否 -->
+              <nz-tag *ngIf="data.mileConfirm === 0" [nzColor]="'red'">
+                {{ 'cost.no' | translate }}
+              </nz-tag>
+              <!-- 是 -->
+              <nz-tag *ngIf="data.mileConfirm === 1" [nzColor]="'green'">
+                {{ 'cost.yes' | translate }}
+              </nz-tag>
             </td>
             <td>{{ data.confirmTime }}</td>
             <td>
-              <a (click)="view(data)" acl [acl-ability]="'implementation-milestone-confirm:view'">详情</a>
+              <!-- 详情 -->
+              <a (click)="view(data)" acl [acl-ability]="'implementation-milestone-confirm:view'">
+                {{ 'table.view' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'implementation-milestone-confirm:view'"></nz-divider>
-              <a (click)="update(data)" acl [acl-ability]="'implementation-milestone-confirm:update'">修改</a>
+              <!-- 修改 -->
+              <a (click)="update(data)" acl [acl-ability]="'implementation-milestone-confirm:update'">
+                {{ 'table.update' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'implementation-milestone-confirm:update'"></nz-divider>
-              <a (click)="delete(data.id)" acl [acl-ability]="'implementation-milestone-confirm:delete'">删除</a>
+              <!-- 删除 -->
+              <a (click)="delete(data.id)" acl [acl-ability]="'implementation-milestone-confirm:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
             </td>
           </tr>
         </tbody>

+ 86 - 36
src/app/routes/project-work/implementation-milestone-confirm/update/update.component.html

@@ -1,89 +1,123 @@
 <!-- 基本信息 -->
 <form nz-form [formGroup]="validateForm" (ngSubmit)="submitForm()">
-
-
-
   <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>{{ 'documents.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.billcode}}
+          {{ proWorkMilestone.billcode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'project.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proCode}}
+          {{ proWorkMilestone.proCode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>{{ 'cost.item.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="proId" id="proId"
-            [(ngModel)]="proWorkMilestone.proId" nzPlaceHolder="请选择" (ngModelChange)="proChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="proId"
+            id="proId"
+            [(ngModel)]="proWorkMilestone.proId"
+            nzPlaceHolder="{{ 'cost.choose' | translate }}"
+            (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]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusCode}}
+          {{ proWorkMilestone.cusCode }}
         </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]="'vertical' ? 24 : null">客户名称</nz-form-label>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusName}}
+          {{ proWorkMilestone.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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 }}{{ 'financial.management.milestoneName' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="mileId" id="mileId"
-            [(ngModel)]="proWorkMilestone.mileId" nzPlaceHolder="请选择" (ngModelChange)="milChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="mileId"
+            id="mileId"
+            [(ngModel)]="proWorkMilestone.mileId"
+            nzPlaceHolder="{{ 'cost.choose' | translate }}"
+            (ngModelChange)="milChange($event)"
+          >
             <nz-option *ngFor="let i of mieList" [nzValue]="i.key" [nzLabel]="i.milesName"></nz-option>
           </nz-select>
           <nz-form-explain *ngIf="validateForm.get('mileId')?.dirty && validateForm.get('mileId')?.errors">
-            请选择里程碑
+            <!-- 请选择里程碑 -->
+            {{ 'cost.choose' | translate }}{{ 'financial.management.milestoneName' | 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" nzRequired>里程碑确认</nz-form-label>
+        <!-- 里程碑确认 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null" nzRequired>
+          {{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-switch formControlName="milSwitch" id="milSwitch" [(ngModel)]="milSwitch" nzCheckedChildren="是"
-            nzUnCheckedChildren="否"></nz-switch>
+          <nz-switch
+            formControlName="milSwitch"
+            id="milSwitch"
+            [(ngModel)]="milSwitch"
+            nzCheckedChildren="{{ 'cost.yes' | translate }}"
+            nzUnCheckedChildren="{{ 'cost.no' | translate }}"
+          ></nz-switch>
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>
+          {{ 'ok' | translate }}{{ 'date' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <nz-date-picker formControlName="confirmTime" id="confirmTime" [(ngModel)]="proWorkMilestone.confirmTime">
           </nz-date-picker>
           <nz-form-explain *ngIf="validateForm.get('confirmTime')?.dirty && validateForm.get('confirmTime')?.errors">
-            请选择时间
+            <!-- 请选择时间 -->
+            {{ 'select.please.choose' | translate }}{{ 'date' | translate }}
           </nz-form-explain>
         </nz-form-control>
       </nz-form-item>
@@ -91,25 +125,41 @@
   </div>
 </form>
 <!-- 项目成果 -->
-<nz-card nzTitle="项目成果">
+<nz-card nzTitle="{{ 'project.results' | translate }}">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
-      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple=true
-        (nzChange)="handleChange($event)">
-        <button nz-button><i nz-icon nzType="upload"></i>上传</button>
+      <nz-upload
+        nzAction="sys/common/uploadFile"
+        [nzFileList]="fileList"
+        nzMultiple="true"
+        (nzChange)="handleChange($event)"
+      >
+        <!-- 上传 -->
+        <button nz-button><i nz-icon nzType="upload"></i>
+          {{ 'pm.project.archives.file.up.load' | translate }}
+        </button>
       </nz-upload>
     </div>
   </div>
 </nz-card>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkMilestone.currentUser}} <strong>填写时间:</strong>{{proWorkMilestone.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ proWorkMilestone.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ proWorkMilestone.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>

+ 48 - 28
src/app/routes/project-work/implementation-milestone-confirm/view/view.component.html

@@ -1,85 +1,100 @@
 <!-- 基本信息 -->
 <form nz-form>
-
-
-
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >单据编码</nz-form-label>
+        <!-- 单据编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'documents.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.billcode}}
+          {{ proWorkMilestone.billcode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'project.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proCode}}
+          {{ proWorkMilestone.proCode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >项目名称</nz-form-label>
+        <!-- 项目名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'cost.item.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proName}}
+          {{ proWorkMilestone.proName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusCode}}
+          {{ proWorkMilestone.cusCode }}
         </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]="'vertical' ? 24 : null">客户名称</nz-form-label>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusName}}
+          {{ proWorkMilestone.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >项目里程碑</nz-form-label>
+        <!-- 项目里程碑 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'project' | translate }}{{ 'financial.management.milestoneName' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.mileName}}
+          {{ proWorkMilestone.mileName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >里程碑确认</nz-form-label>
+        <!-- 里程碑确认 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-            <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm===1"></nz-tag>
-            <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm===0"></nz-tag>
+          <!-- 是 -->
+          <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm === 1">
+            {{ 'cost.yes' | translate }}
+          </nz-tag>
+          <!-- 否 -->
+          <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm === 0">
+            {{ 'cost.no' | translate }}
+          </nz-tag>
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >确认时间</nz-form-label>
+        <!-- 确认时间 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'ok' | translate }}{{ 'date' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.confirmTime}}
+          {{ proWorkMilestone.confirmTime }}
         </nz-form-control>
       </nz-form-item>
     </div>
   </div>
 </form>
 <!-- 项目成果 -->
-<nz-card nzTitle="项目成果">
+<nz-card nzTitle="{{ 'project.results' | translate }}">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
-      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple=true
-        >
+      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple="true">
         <!-- <button nz-button><i nz-icon nzType="upload"></i>上传</button> -->
       </nz-upload>
     </div>
@@ -87,8 +102,13 @@
 </nz-card>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkMilestone.currentUser}} <strong>填写时间:</strong>{{proWorkMilestone.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ proWorkMilestone.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ proWorkMilestone.createTime }}
   <!-- 关闭按钮 -->
-  <button nz-button (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel'|translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 71 - 33
src/app/routes/project-work/product-confirmation/add/add.component.html

@@ -1,55 +1,68 @@
 <!-- 基本信息 -->
 <form nz-form [formGroup]="validateForm" (ngSubmit)="submitForm()">
-
-
-
   <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>
+          {{ 'documents.code' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          自动生成
+          <!-- 自动生成 -->
+          {{ 'aoto.create' | translate }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'project.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proCode}}
+          {{ proWorkMilestone.proCode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>{{ 'cost.item.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="proId" id="proId"
-            [(ngModel)]="proWorkMilestone.proId" nzPlaceHolder="请选择" (ngModelChange)="proChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="proId"
+            id="proId"
+            [(ngModel)]="proWorkMilestone.proId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            (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]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusCode}}
+          {{ proWorkMilestone.cusCode }}
         </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]="'vertical' ? 24 : null">客户名称</nz-form-label>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusName}}
+          {{ proWorkMilestone.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
@@ -58,7 +71,7 @@
         <nz-form-label [nzSpan]="'vertical' ? 24 : null" nzRequired>项目里程碑</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="mileId" id="mileId"
-            [(ngModel)]="proWorkMilestone.mileId" nzPlaceHolder="请选择" (ngModelChange)="milChange($event)">
+            [(ngModel)]="proWorkMilestone.mileId" nzPlaceHolder="{{ 'select.please.choose' | translate }}" (ngModelChange)="milChange($event)">
             <nz-option *ngFor="let i of mieList" [nzValue]="i.key" [nzLabel]="i.milesName"></nz-option>
           </nz-select>
           <nz-form-explain *ngIf="validateForm.get('mileId')?.dirty && validateForm.get('mileId')?.errors">
@@ -69,21 +82,29 @@
     </div> -->
     <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>{{ 'ok' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-switch formControlName="milSwitch" id="milSwitch" [(ngModel)]="milSwitch" nzCheckedChildren="是"
-            nzUnCheckedChildren="否"></nz-switch>
+          <nz-switch
+            formControlName="milSwitch"
+            id="milSwitch"
+            [(ngModel)]="milSwitch"
+            nzCheckedChildren="{{ 'yes' | translate }}"
+            nzUnCheckedChildren="{{ 'no' | translate }}"
+          ></nz-switch>
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>{{ 'confim.date' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <nz-date-picker formControlName="confirmTime" id="confirmTime" [(ngModel)]="proWorkMilestone.confirmTime">
           </nz-date-picker>
           <nz-form-explain *ngIf="validateForm.get('confirmTime')?.dirty && validateForm.get('confirmTime')?.errors">
-            请选择时间
+            <!-- 请选择时间 -->
+            {{ 'select.please.choose' | translate }}{{ 'Date' | translate }}
           </nz-form-explain>
         </nz-form-control>
       </nz-form-item>
@@ -91,25 +112,42 @@
   </div>
 </form>
 <!-- 项目成果 -->
-<nz-card nzTitle="项目成果">
+<nz-card nzTitle="{{ 'project.results' | translate }}">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
-      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple=true
-        (nzChange)="handleChange($event)">
-        <button nz-button><i nz-icon nzType="upload"></i>上传</button>
+      <nz-upload
+        nzAction="sys/common/uploadFile"
+        [nzFileList]="fileList"
+        nzMultiple="true"
+        (nzChange)="handleChange($event)"
+      >
+        <!-- 上传 -->
+        <button nz-button>
+          <i nz-icon nzType="upload"></i>
+          {{ 'pm.project.archives.file.up.load' | translate }}
+        </button>
       </nz-upload>
     </div>
   </div>
 </nz-card>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkMilestone.currentUser}} <strong>填写时间:</strong>{{proWorkMilestone.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ proWorkMilestone.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ proWorkMilestone.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>

+ 54 - 21
src/app/routes/project-work/product-confirmation/product-confirmation.component.html

@@ -1,6 +1,8 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'product-confirmation:add'">新建</button>
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'product-confirmation:add'">
+      {{ 'new' | translate }}
+    </button>
   </ng-template>
 </page-header>
 <nz-card>
@@ -9,7 +11,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)]="proWorkMilestone.billcode" />
           </nz-form-control>
@@ -17,30 +20,51 @@
       </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>{{ 'documents.code' | translate }}</th>
+            <!--项目编码  -->
+            <th>{{ 'project.code' | translate }}</th>
+            <!-- 项目名称 -->
+            <th>{{ 'cost.item.name' | translate }}</th>
+            <!-- 客户编码 -->
+            <th>{{ 'customer.code' | translate }}</th>
+            <!-- 客户名称 -->
+            <th>{{ 'customer.name' | translate }}</th>
             <!-- <th>项目里程碑</th> -->
-            <th>里程碑确认</th>
-            <th>确认时间</th>
-            <th>操作</th>
+
+            <!-- 里程碑确认 -->
+            <th>{{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}</th>
+
+            <!-- 确定时间 -->
+            <th>{{ 'confim.date' | translate }}</th>
+            <!-- 操作 -->
+            <th>{{ 'table.operation' | translate }}</th>
           </tr>
         </thead>
         <tbody>
@@ -52,16 +76,25 @@
             <td>{{ data.cusName }}</td>
             <!-- <td>{{ data.mileName }}</td> -->
             <td>
-              <nz-tag *ngIf="data.mileConfirm===0" [nzColor]="'red'"></nz-tag>
-              <nz-tag *ngIf="data.mileConfirm===1" [nzColor]="'green'"></nz-tag>
+              <!-- 否 -->
+              <nz-tag *ngIf="data.mileConfirm === 0" [nzColor]="'red'">{{ 'no' | translate }}</nz-tag>
+              <!-- 是 -->
+              <nz-tag *ngIf="data.mileConfirm === 1" [nzColor]="'green'">{{ 'yes' | translate }}</nz-tag>
             </td>
             <td>{{ data.confirmTime }}</td>
             <td>
-              <a (click)="view(data)" acl [acl-ability]="'product-confirmation:view'">详情</a>
+              <!-- 详情 修改 删除 -->
+              <a (click)="view(data)" acl [acl-ability]="'product-confirmation:view'">
+                {{ 'table.view' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'product-confirmation:view'"></nz-divider>
-              <a (click)="update(data)" acl [acl-ability]="'product-confirmation:update'">修改</a>
+              <a (click)="update(data)" acl [acl-ability]="'product-confirmation:update'">
+                {{ 'table.update' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'product-confirmation:update'"></nz-divider>
-              <a (click)="delete(data.id)" acl [acl-ability]="'product-confirmation:delete'">删除</a>
+              <a (click)="delete(data.id)" acl [acl-ability]="'product-confirmation:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
             </td>
           </tr>
         </tbody>

+ 69 - 32
src/app/routes/project-work/product-confirmation/update/update.component.html

@@ -1,75 +1,95 @@
 <!-- 基本信息 -->
 <form nz-form [formGroup]="validateForm" (ngSubmit)="submitForm()">
-
-
-
   <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>{{ 'documents.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.billcode}}
+          {{ proWorkMilestone.billcode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'project.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proCode}}
+          {{ proWorkMilestone.proCode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>{{ 'cost.item.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-select style="widows: 100%;" nzShowSearch nzAllowClear formControlName="proId" id="proId"
-            [(ngModel)]="proWorkMilestone.proId" nzPlaceHolder="请选择" (ngModelChange)="proChange($event)">
+          <nz-select
+            style="widows: 100%;"
+            nzShowSearch
+            nzAllowClear
+            formControlName="proId"
+            id="proId"
+            [(ngModel)]="proWorkMilestone.proId"
+            nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+            (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]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusCode}}
+          {{ proWorkMilestone.cusCode }}
         </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]="'vertical' ? 24 : null">客户名称</nz-form-label>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'customer.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusName}}
+          {{ proWorkMilestone.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>{{ 'ok' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          <nz-switch formControlName="milSwitch" id="milSwitch" [(ngModel)]="milSwitch" nzCheckedChildren="是"
-            nzUnCheckedChildren="否"></nz-switch>
+          <nz-switch
+            formControlName="milSwitch"
+            id="milSwitch"
+            [(ngModel)]="milSwitch"
+            nzCheckedChildren="{{ 'yes' | translate }}"
+            nzUnCheckedChildren="{{ 'no' | translate }}"
+          ></nz-switch>
         </nz-form-control>
       </nz-form-item>
     </div>
     <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>
+          {{ 'confim.date' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
           <nz-date-picker formControlName="confirmTime" id="confirmTime" [(ngModel)]="proWorkMilestone.confirmTime">
           </nz-date-picker>
           <nz-form-explain *ngIf="validateForm.get('confirmTime')?.dirty && validateForm.get('confirmTime')?.errors">
-            请选择时间
+            <!-- 请选择时间 -->
+            {{ 'select.please.choose' | translate }}{{ 'Date' | translate }}
           </nz-form-explain>
         </nz-form-control>
       </nz-form-item>
@@ -77,25 +97,42 @@
   </div>
 </form>
 <!-- 项目成果 -->
-<nz-card nzTitle="项目成果">
+<nz-card nzTitle="{{ 'project.results' | translate }}">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
-      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple=true
-        (nzChange)="handleChange($event)">
-        <button nz-button><i nz-icon nzType="upload"></i>上传</button>
+      <nz-upload
+        nzAction="sys/common/uploadFile"
+        [nzFileList]="fileList"
+        nzMultiple="true"
+        (nzChange)="handleChange($event)"
+      >
+        <!-- 上传 -->
+        <button nz-button>
+          <i nz-icon nzType="upload"></i>
+          {{ 'pm.project.archives.file.up.load' | translate }}
+        </button>
       </nz-upload>
     </div>
   </div>
 </nz-card>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkMilestone.currentUser}} <strong>填写时间:</strong>{{proWorkMilestone.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ proWorkMilestone.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ proWorkMilestone.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>

+ 52 - 28
src/app/routes/project-work/product-confirmation/view/view.component.html

@@ -1,85 +1,104 @@
 <!-- 基本信息 -->
 <form nz-form>
-
-
-
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >单据编码</nz-form-label>
+        <!-- 单据编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'documents.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.billcode}}
+          {{ proWorkMilestone.billcode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">项目编码</nz-form-label>
+        <!-- 项目编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'project.code' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proCode}}
+          {{ proWorkMilestone.proCode }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >项目名称</nz-form-label>
+        <!-- 项目名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">{{ 'cost.item.name' | translate }}</nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.proName}}
+          {{ proWorkMilestone.proName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null">客户编码</nz-form-label>
+        <!-- 客户编码 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'customer.code' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusCode}}
+          {{ proWorkMilestone.cusCode }}
         </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]="'vertical' ? 24 : null">客户名称</nz-form-label>
+        <!-- 客户名称 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'customer.name' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.cusName}}
+          {{ proWorkMilestone.cusName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >项目里程碑</nz-form-label>
+        <!--项目里程碑  -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'project' | translate }}{{ 'financial.management.milestoneName' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.mileName}}
+          {{ proWorkMilestone.mileName }}
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >里程碑确认</nz-form-label>
+        <!-- 里程碑确认 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'financial.management.milestoneName' | translate }}{{ 'ok' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-            <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm===1"></nz-tag>
-            <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm===0"></nz-tag>
+          <!-- 是 -->
+          <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm === 1">
+            {{ 'yes' | translate }}
+          </nz-tag>
+          <!-- 否 -->
+          <nz-tag [nzColor]="'green'" *ngIf="proWorkMilestone.mileConfirm === 0">
+            {{ 'no' | translate }}
+          </nz-tag>
         </nz-form-control>
       </nz-form-item>
     </div>
     <div nz-col [nzSpan]="6">
       <nz-form-item>
-        <nz-form-label [nzSpan]="'vertical' ? 24 : null" >确认时间</nz-form-label>
+        <!-- 确认时间 -->
+        <nz-form-label [nzSpan]="'vertical' ? 24 : null">
+          {{ 'ok' | translate }}{{ 'date' | translate }}
+        </nz-form-label>
         <nz-form-control [nzSm]="24" [nzXs]="24">
-          {{proWorkMilestone.confirmTime}}
+          {{ proWorkMilestone.confirmTime }}
         </nz-form-control>
       </nz-form-item>
     </div>
   </div>
 </form>
 <!-- 项目成果 -->
-<nz-card nzTitle="项目成果">
+<nz-card nzTitle="{{ 'project.results' | translate }}">
   <div nz-row [nzGutter]="24">
     <div nz-col [nzSpan]="6">
-      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple=true
-        >
+      <nz-upload nzAction="sys/common/uploadFile" [nzFileList]="fileList" nzMultiple="true">
         <!-- <button nz-button><i nz-icon nzType="upload"></i>上传</button> -->
       </nz-upload>
     </div>
@@ -87,8 +106,13 @@
 </nz-card>
 <!-- 按钮 -->
 <div class="base">
-  <strong>填写人:</strong>{{proWorkMilestone.currentUser}} <strong>填写时间:</strong>{{proWorkMilestone.createTime}}
+  <!-- 填写人 -->
+  <strong>{{ 'fill.person' | translate }}:</strong>{{ proWorkMilestone.currentUser }}
+
+  <!-- 填写时间 -->
+  <strong>{{ 'fill.time' | translate }}:</strong>{{ proWorkMilestone.createTime }}
   <!-- 关闭按钮 -->
-  <button nz-button (click)="close()"
-    [nzLoading]="isLoadingSave"><span>{{'pm.quotation.cancel'|translate}}</span></button>
-</div>
+  <button nz-button (click)="close()" [nzLoading]="isLoadingSave">
+    <span>{{ 'pm.quotation.cancel' | translate }}</span>
+  </button>
+</div>

+ 122 - 41
src/app/routes/project-work/service-log/add/add.component.html

@@ -3,37 +3,67 @@
     <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="{{ 'aoto.create' | translate }}"
+              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="{{ 'select.please.choose' | translate }}"
+              (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="{{ 'select.please.choose' | translate }}"
+              [(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 +72,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 +128,59 @@
 
     <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%;">{{ 'milestone.serial.number' | translate }}</th>
+              <!-- 里程碑 -->
+              <th style="width: 30%;">{{ 'milestone.milestone' | 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 +191,22 @@
 </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>

+ 53 - 19
src/app/routes/project-work/service-log/service-log.component.html

@@ -1,6 +1,9 @@
 <page-header [action]="phActionTpl">
   <ng-template #phActionTpl>
-    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'service-log:add'">新建</button>
+    <!-- 新建 -->
+    <button (click)="add()" nz-button nzType="primary" acl [acl-ability]="'service-log:add'">
+      {{ 'cost.new' | translate }}
+    </button>
   </ng-template>
 </page-header>
 <nz-card>
@@ -9,7 +12,10 @@
     <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 +23,50 @@
       </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 +79,18 @@
             <td>{{ data.currentUser }}</td>
             <td>{{ data.createTime }}</td>
             <td>
-              <a (click)="view(data)" acl [acl-ability]="'service-log:view'">详情</a>
+              <!-- 详情 修改 删除 -->
+              <a (click)="view(data)" acl [acl-ability]="'service-log:view'">
+                {{ 'table.view' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'service-log:view'"></nz-divider>
-              <a (click)="update(data)" acl [acl-ability]="'service-log:update'">修改</a>
+              <a (click)="update(data)" acl [acl-ability]="'service-log:update'">
+                {{ 'table.update' | translate }}
+              </a>
               <nz-divider nzType="vertical" acl [acl-ability]="'service-log:update'"></nz-divider>
-              <a (click)="delete(data.id)" acl [acl-ability]="'service-log:delete'">删除</a>
+              <a (click)="delete(data.id)" acl [acl-ability]="'service-log:delete'">
+                {{ 'table.delete' | translate }}
+              </a>
             </td>
           </tr>
         </tbody>

+ 127 - 41
src/app/routes/project-work/service-log/update/update.component.html

@@ -3,37 +3,69 @@
     <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="{{ 'aoto.create' | translate }}"
+              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="{{ 'cost.choose' | translate }}"
+              (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="{{ 'cost.choose' | translate }}"
+              [(ngModel)]="proWorkLogic.reporterId"
+              [nzMaxTagCount]="3"
+              [nzAllowClear]="true"
+            >
             </nz-tree-select>
             <nz-form-explain *ngIf="validateForm.get('proId')?.dirty && validateForm.get('proId')?.errors">
-              请选择汇报人
+              <!-- 请选择汇报人 -->
+              {{ 'cost.choose' | translate }}{{ 'report.person' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -42,30 +74,48 @@
     <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">
-              请选择开始时间
+              <!-- 请选择开始时间 -->
+              {{ 'cost.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">
-              请选择结束时间
+              <!-- 请选择结束时间 -->
+              {{ 'cost.choose' | translate }}{{ 'contract.end.date' | translate }}
             </nz-form-explain>
           </nz-form-control>
         </nz-form-item>
@@ -82,34 +132,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
+                  style="width: 100%"
+                  [nzNodes]="mieList"
+                  nzShowSearch
+                  [nzMultiple]="false"
+                  nzPlaceHolder="{{ 'cost.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>
@@ -120,13 +197,22 @@
 </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>

Some files were not shown because too many files changed in this diff