liangyan0105 пре 3 година
родитељ
комит
5707a3be8a
24 измењених фајлова са 1086 додато и 422 уклоњено
  1. 2 1
      src/app/routes/automatic-logon/list/list.component.html
  2. 20 9
      src/app/routes/pro/account/center/applications/applications.component.html
  3. 2 1
      src/app/routes/pro/account/center/articles/articles.component.html
  4. 24 13
      src/app/routes/pro/account/center/center.component.html
  5. 164 76
      src/app/routes/pro/form/advanced-form/advanced-form.component.html
  6. 66 20
      src/app/routes/pro/form/basic-form/basic-form.component.html
  7. 9 6
      src/app/routes/pro/form/step-form/step-form.component.html
  8. 32 14
      src/app/routes/pro/form/step-form/step1.component.html
  9. 28 10
      src/app/routes/pro/form/step-form/step2.component.html
  10. 21 9
      src/app/routes/pro/form/step-form/step3.component.html
  11. 54 19
      src/app/routes/pro/list/applications/applications.component.html
  12. 56 26
      src/app/routes/pro/list/articles/articles.component.html
  13. 36 20
      src/app/routes/pro/list/basic-list/basic-list.component.html
  14. 8 3
      src/app/routes/pro/list/basic-list/edit/edit.component.html
  15. 33 12
      src/app/routes/pro/list/card-list/card-list.component.html
  16. 3 2
      src/app/routes/pro/list/list/list.component.html
  17. 40 14
      src/app/routes/pro/list/projects/projects.component.html
  18. 65 29
      src/app/routes/pro/list/table-list/table-list.component.html
  19. 115 55
      src/app/routes/pro/profile/advanced/advanced.component.html
  20. 51 18
      src/app/routes/system/depart/personnel-add/select-pk-org/select-pk-org.component.html
  21. 22 8
      src/app/routes/system/dict/add/add.component.html
  22. 46 12
      src/app/routes/system/dict/config/edit/edit.component.html
  23. 74 44
      src/app/routes/system/user/password/password.component.html
  24. 115 1
      src/assets/tmp/i18n/zh-CN.json

+ 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>

+ 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>

+ 51 - 18
src/app/routes/system/depart/personnel-add/select-pk-org/select-pk-org.component.html

@@ -6,43 +6,76 @@
 </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 nzAlign="center">{{ 'milestone.serial.number' | translate }}</th>
+          <!-- 公司 -->
+          <th>{{ 'in.company' | translate }}</th>
+          <!-- 部门 -->
+          <th>{{ 'depart' | translate }}</th>
+          <!-- 操作 -->
+          <th>{{ 'table.operation' | translate }}</th>
         </tr>
       </thead>
       <tbody>
-        <tr *ngFor="let data of basicTable.data;let i=index">
-          <td style="width: 10%;" nzAlign="center">{{i+1}}</td>
+        <tr *ngFor="let data of basicTable.data; let i = index">
+          <td style="width: 10%;" nzAlign="center">{{ i + 1 }}</td>
           <td style="width: 50%;">
-            <nz-select style="width: 100%;" nzShowSearch nzAllowClear nzPlaceHolder="{{ 'select.please.choose' | translate }}"
-              [nzDisabled]="false" [(ngModel)]="data.pkOrgId" (ngModelChange)="companyChange(data)">
+            <nz-select
+              style="width: 100%;"
+              nzShowSearch
+              nzAllowClear
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              [nzDisabled]="false"
+              [(ngModel)]="data.pkOrgId"
+              (ngModelChange)="companyChange(data)"
+            >
               <ng-container *ngFor="let org of listOrg">
-                <nz-option nzLabel="{{org.departName}}" nzValue="{{org.id}}"></nz-option>
+                <nz-option nzLabel="{{ org.departName }}" nzValue="{{ org.id }}"></nz-option>
               </ng-container>
             </nz-select>
           </td>
           <td style="width: 30%;">
-            <nz-select style="width: 100%;" nzShowSearch nzAllowClear nzPlaceHolder="{{ 'select.please.choose' | translate }}"
-              [nzDisabled]="false" [(ngModel)]="data.departId" name="departId">
+            <nz-select
+              style="width: 100%;"
+              nzShowSearch
+              nzAllowClear
+              nzPlaceHolder="{{ 'select.please.choose' | translate }}"
+              [nzDisabled]="false"
+              [(ngModel)]="data.departId"
+              name="departId"
+            >
               <ng-container *ngFor="let de of data.listDepart">
-                <nz-option nzLabel="{{de.departName}}" nzValue="{{de.id}}"></nz-option>
+                <nz-option nzLabel="{{ de.departName }}" nzValue="{{ de.id }}"></nz-option>
               </ng-container>
             </nz-select>
           </td>
-          <td style="width: 10%;"><a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="deleteRow(data.sort)">{{'table.delete'|translate}}</a>
+          <td style="width: 10%;">
+            <!-- 是否删除 -->
+            <a
+              nz-popconfirm
+              nzTitle="{{ 'table.Whether.to.delete' | translate }}?"
+              (nzOnConfirm)="deleteRow(data.sort)"
+              >{{ 'table.delete' | translate }}</a
+            >
           </td>
         </tr>
         <tr>
-          <td colSpan="4"><button (click)="addRow()" nz-button nzType="dashed"
-              nzBlock>{{ 'button.add' | translate }}</button></td>
+          <td colSpan="4">
+            <button (click)="addRow()" nz-button nzType="dashed" nzBlock>{{ 'button.add' | translate }}</button>
+          </td>
         </tr>
       </tbody>
     </nz-table>
   </div>
-</div>
+</div>

+ 22 - 8
src/app/routes/system/dict/add/add.component.html

@@ -1,25 +1,39 @@
 <form nz-form>
   <nz-form-item>
-    <nz-form-label nzRequired [nzSm]="6" [nzXs]="24">{{'dictionary.name'|translate}}</nz-form-label>
+    <nz-form-label nzRequired [nzSm]="6" [nzXs]="24">{{ 'dictionary.name' | translate }}</nz-form-label>
     <nz-form-control [nzSm]="14" [nzXs]="24">
-      <input [(ngModel)]="dict.dictName" name="dictName" nz-input placeholder="{{'enter.dictionary.name'|translate}}"/>
+      <input
+        [(ngModel)]="dict.dictName"
+        name="dictName"
+        nz-input
+        placeholder="{{ 'enter.dictionary.name' | translate }}"
+      />
     </nz-form-control>
   </nz-form-item>
   <nz-form-item>
-    <nz-form-label nzRequired [nzSm]="6" [nzXs]="24">{{'dictionary.code'|translate}}</nz-form-label>
-    <nz-form-control [nzSm]="14" [nzXs]="24" >
-      <input [(ngModel)]="dict.dictCode" name="dictCode" nz-input placeholder="{{'enter.dictionary.code'|translate}}"/>
+    <nz-form-label nzRequired [nzSm]="6" [nzXs]="24">{{ 'dictionary.code' | translate }}</nz-form-label>
+    <nz-form-control [nzSm]="14" [nzXs]="24">
+      <input
+        [(ngModel)]="dict.dictCode"
+        name="dictCode"
+        nz-input
+        placeholder="{{ 'enter.dictionary.code' | translate }}"
+      />
     </nz-form-control>
   </nz-form-item>
   <nz-form-item>
-    <nz-form-label [nzSm]="6" [nzXs]="24">{{'description'|translate}}</nz-form-label>
+    <nz-form-label [nzSm]="6" [nzXs]="24">{{ 'description' | translate }}</nz-form-label>
     <nz-form-control [nzSm]="14" [nzXs]="24">
       <input [(ngModel)]="dict.description" name="description" nz-input />
     </nz-form-control>
   </nz-form-item>
 
   <div class="footer">
-    <button type="button" (click)="close()" class="ant-btn" style="margin-right: 8px;"><span>{{'button.close'|translate}}</span></button>
-    <button type="button" (click)="save()" class="ant-btn ant-btn-primary"><span>{{'button.save'|translate}}</span></button>
+    <button type="button" (click)="close()" class="ant-btn" style="margin-right: 8px;">
+      <span>{{ 'button.close' | translate }}</span>
+    </button>
+    <button type="button" (click)="save()" class="ant-btn ant-btn-primary">
+      <span>{{ 'button.save' | translate }}</span>
+    </button>
   </div>
 </form>

+ 46 - 12
src/app/routes/system/dict/config/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>

+ 74 - 44
src/app/routes/system/user/password/password.component.html

@@ -5,50 +5,80 @@
     (nzOnClose)="close()"
     [nzOkLoading]="isOkLoading"
   > -->
-  <nz-drawer
-
-    [nzBodyStyle]="{ height: '', overflow: 'auto', 'padding-bottom': '' }"
-    [nzMaskClosable]="true"
-    [nzVisible]="visible"
-    [nzWidth]="drawerWidth"
-    nzTitle="用户密码"
-    (nzOnClose)="close()"
-  >
+<!-- 用户密码 -->
+<nz-drawer
+  [nzBodyStyle]="{ height: '', overflow: 'auto', 'padding-bottom': '' }"
+  [nzMaskClosable]="true"
+  [nzVisible]="visible"
+  [nzWidth]="drawerWidth"
+  nzTitle="{{ 'user.password' | translate }}"
+  (nzOnClose)="close()"
+>
   <!-- { height: 'calc(100% - 55px)', overflow: 'auto', 'padding-bottom': '53px' } -->
   <form nz-form [formGroup]="validateForm">
-      <nz-form-item >
-        <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="username">{{'user.account'|translate}}</nz-form-label>
-        <nz-form-control [nzSm]="14" [nzXs]="24">
-          <input nz-input [(ngModel)]="user.username" [ngModelOptions]="{standalone: true}" [disabled]="true" id="username" name="username"/>
-        </nz-form-control>
-      </nz-form-item>
-      <nz-form-item>
-          <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzRequired>{{'login.password'|translate}}</nz-form-label>
-          <nz-form-control [nzSm]="14" [nzXs]="24">
-            <input nz-input formControlName="password" type="password" [(ngModel)]="user.password" placeholder="{{'please.enter.new.password'|translate}}" id="password" name="password"/>
-            <nz-form-explain *ngIf="validateForm.get('password')?.dirty && validateForm.get('password')?.errors">
-              {{'please.enter.your.password'|translate}}
-            </nz-form-explain>
-          </nz-form-control>
-        </nz-form-item>
-      <nz-form-item>
-        <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzRequired>{{'confirm.password'|translate}}</nz-form-label>
-        <nz-form-control [nzSm]="14" [nzXs]="24">
-          <input nz-input formControlName="repassword" type="password" [(ngModel)]="user.repassword" id="repassword" name="repassword"/>
-          <nz-form-explain *ngIf="validateForm.get('repassword')?.dirty && validateForm.get('repassword')?.errors">
-            <ng-container *ngIf="validateForm.get('repassword')?.hasError('required')">
-              {{'please.enter.your.login.password.again'|translate}}
-            </ng-container>
-            <ng-container *ngIf="validateForm.get('repassword')?.hasError('confirm')">
-              {{'inconsistent.password.input.twice'|translate}}
-            </ng-container>
-          </nz-form-explain>
-        </nz-form-control>
-      </nz-form-item>
-    </form>
-    <div class="footer">
-        <button type="button" (click)="close()" class="ant-btn" style="margin-right: 8px;"><span>{{'button.close'|translate}}</span></button>
-        <button nz-button nzType="primary" (click)="save()" [nzLoading]="saveLoading"><span>{{'determine'|translate}}</span></button>
-      </div>
-<!-- </nz-modal> -->
+    <nz-form-item>
+      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="username">{{ 'user.account' | translate }}</nz-form-label>
+      <nz-form-control [nzSm]="14" [nzXs]="24">
+        <input
+          nz-input
+          [(ngModel)]="user.username"
+          [ngModelOptions]="{ standalone: true }"
+          [disabled]="true"
+          id="username"
+          name="username"
+        />
+      </nz-form-control>
+    </nz-form-item>
+    <nz-form-item>
+      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzRequired>{{
+        'login.password' | translate
+      }}</nz-form-label>
+      <nz-form-control [nzSm]="14" [nzXs]="24">
+        <input
+          nz-input
+          formControlName="password"
+          type="password"
+          [(ngModel)]="user.password"
+          placeholder="{{ 'please.enter.new.password' | translate }}"
+          id="password"
+          name="password"
+        />
+        <nz-form-explain *ngIf="validateForm.get('password')?.dirty && validateForm.get('password')?.errors">
+          {{ 'please.enter.your.password' | translate }}
+        </nz-form-explain>
+      </nz-form-control>
+    </nz-form-item>
+    <nz-form-item>
+      <nz-form-label class="back-gauge" [nzSm]="6" [nzXs]="24" nzRequired>{{
+        'confirm.password' | translate
+      }}</nz-form-label>
+      <nz-form-control [nzSm]="14" [nzXs]="24">
+        <input
+          nz-input
+          formControlName="repassword"
+          type="password"
+          [(ngModel)]="user.repassword"
+          id="repassword"
+          name="repassword"
+        />
+        <nz-form-explain *ngIf="validateForm.get('repassword')?.dirty && validateForm.get('repassword')?.errors">
+          <ng-container *ngIf="validateForm.get('repassword')?.hasError('required')">
+            {{ 'please.enter.your.login.password.again' | translate }}
+          </ng-container>
+          <ng-container *ngIf="validateForm.get('repassword')?.hasError('confirm')">
+            {{ 'inconsistent.password.input.twice' | translate }}
+          </ng-container>
+        </nz-form-explain>
+      </nz-form-control>
+    </nz-form-item>
+  </form>
+  <div class="footer">
+    <button type="button" (click)="close()" class="ant-btn" style="margin-right: 8px;">
+      <span>{{ 'button.close' | translate }}</span>
+    </button>
+    <button nz-button nzType="primary" (click)="save()" [nzLoading]="saveLoading">
+      <span>{{ 'determine' | translate }}</span>
+    </button>
+  </div>
+  <!-- </nz-modal> -->
 </nz-drawer>

+ 115 - 1
src/assets/tmp/i18n/zh-CN.json

@@ -158,6 +158,7 @@
   "button.add": "新增",
   "table.thead.code": "编码",
   "table.operation": "操作",
+  "main.table.operation": "主操作",
   "table.update": "修改",
   "table.delete": "删除",
   "table.To.grant.authorization": "授权",
@@ -460,6 +461,7 @@
   "data.roles.add": "数据规则新增",
   "data.roles.update": "数据规则修改",
   "depart": "部门",
+  "depart.first.trial": "部门初审",
   "depart.name": "部门名称",
   "depart.prant": "上级部门",
   "depart.sort": "排序",
@@ -1021,6 +1023,8 @@
   "working.hours.code": "工时号",
   "working.project.name": "项目名称",
   "working.task": "任务",
+  "working.task.name": "任务名",
+  "working.task.desc": "任务描述",
   "working.actual.hours": "实际工时",
   "working.workingClass": "工时分类",
   "working.please.select": "请选择工时分类",
@@ -1101,7 +1105,10 @@
   "their.fees.clinical.fee": "临床过手费",
   "their.fees.bioanalysis.fee": "生物分析过手费",
   "their.fees.contract.specification": "合同说明",
+  "indent.their.fees.money": "订单金额",
   "their.fees.money": "金额",
+  "transfer.amount": "转账金额",
+  "payee.name": "收款人姓名",
   "their.fees.notes": "备注",
   "sample.storage.add": "样本储存新增",
   "sample.storage.view": "样本储存详情",
@@ -1859,6 +1866,8 @@
   "billing.bank": "开票银行",
   "date": "时间",
   "product": "产品",
+  "product.document": "产品文档",
+  "product.introduction": "产品简介",
   "material.classification": "物料分类",
   "material.classification.name": "物料分类名称",
   "enabled.not": "未启用",
@@ -1937,5 +1946,110 @@
   "fill.person": "填写人",
   "fill.time": "填写时间",
   "work.available": "工作用时",
-  "work.content": "工作内容"
+  "work.content": "工作内容",
+  "user.password": "用户密码",
+  "share": "分享",
+  "active.users": "活跃用户",
+  "the.label": "标签",
+  "the.team": "团队",
+  "published.in ": "发布在",
+  "warehouse.management": "仓库管理",
+  "warehouse.name": "仓库名",
+  "warehouse.domain.name": "仓库域名",
+  "warehouse.keeper": "仓库管理员",
+  "part.approval": "审批员",
+  "effective.date": "生效日期",
+  "warehouse.type": "仓库类型",
+  "private": "私密",
+  "public": "公开",
+  "part.public": "部分公开",
+  "do.not.public": "不公开",
+  "target.public": "目标公开",
+  "submit": "提交",
+  "members ": "成员",
+  "whether.to.delete.this.row": "是否要删除此行",
+  "whether.to.cancel.this.operation": "是否要取消操作?",
+  "subordinate.departments": "所属部门",
+  "work.number": "工号",
+  "management": "管理",
+  "the.responsible": "责任人",
+  "effect.time": "生效时间",
+  "invited.reviewers.shared.default": "邀评人默认被分享",
+  "reviewers": "邀评人",
+  "commencement.date": "起止日期",
+  "objective.desc": "目标描述",
+  "standard.measurement": "衡量标准",
+  "your.milestones": "你的阶段性工作目标",
+  "target.service.object": "目标的服务对象",
+  "give.target.name": "给目标起个名字",
+  "confirm.transfer.info": "确认转账信息",
+  "fill.transfer.info": "填写转账信息",
+  "instructions": "说明",
+  "transfer.alipay.account": "转账到支付宝账户",
+  "alipay": "支付宝",
+  "transfer.bank.card": "转账到银行卡",
+  "bank.account": "银行账号",
+  "next.step": "下一步",
+  "previous.step": "上一步",
+  "account": "账户",
+  "account.type": "账户类型",
+  "pay.password": "支付密码",
+  "expected.arrive.two.hours": "预计两小时内到账",
+  "transfer.again": "再转一笔",
+  "bill": "账单",
+  "belong.category": "所属类目",
+  "good": "优秀",
+  "avorable.rating": "好评度",
+  "lee.san": "李三",
+  "author": "作者",
+  "no.limit": "不限",
+  "other.options": "其它选项",
+  "look.own": "只看自己的",
+  "load.more": "加载更多",
+  "my.todo": "我的待办",
+  "eight.tasks": "8个任务",
+  "twentyFour.tasks": "24个任务",
+  "waiting": "等待中",
+  "average.task.processing.time.of.the.week": "本周任务平均处理时间",
+  "number.of.tasks.completed.this.week": "本周完成任务数",
+  "quick.start": "快速开始",
+  "one": "一",
+  "two": "二",
+  "batch.approval": "批量审批",
+  "batch.operation": "批量操作",
+  "callBack.number": "调用次数",
+  "rule.number": "规则编号",
+  "has.chosen": "已选择",
+  "item": "项",
+  "tenThousand": "万",
+  "total.service.invocation": "服务调用总计",
+  "option.one": "选项一",
+  "option.two": "选项二",
+  "option.three": "选项三",
+  "pending.approval": "待审批",
+  "rules": "规则",
+  "process.schedule": "流程进度",
+  "create.object": "创建项目",
+  "hurry": "催一下",
+  "financial.review": "财务复核",
+  "user.info": "用户信息",
+  "data.desc": "数据说明",
+  "info.group": "信息组",
+  "group.name": "组名称",
+  "multi.level.info.group": "多层级信息组",
+  "such.data": "某某数据",
+  "this.data.update.time": "该数据更新时间",
+  "expiration.time": "过期时间",
+  "character.code":"角色码",
+  "scientific.name":"学名",
+  "success":"成功",
+  "user.call.records.sixMonths":"用户近半年来电记录",
+  "log.one":"日志一",
+  "log.two":"日志二",
+  "log.three":"日志三",
+  "order.products":"订购产品",
+  "associated.documents":"关联单据",
+  "vip.card.number":"会员卡号",
+  "Id.card":"身份证",
+  "contact":"联系方式"
 }