serviceta.component.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <!-- 服务 -->
  2. <form nz-form>
  3. <div nz-row [nzGutter]="24">
  4. <div nz-col [nzSpan]="6">
  5. <nz-form-item>
  6. <nz-form-label [nzSpan]="8">客户编码</nz-form-label>
  7. <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusCode}}</nz-form-control>
  8. </nz-form-item>
  9. </div>
  10. <div nz-col [nzSpan]="6">
  11. <nz-form-item>
  12. <nz-form-label [nzSpan]="8">客户名称</nz-form-label>
  13. <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.cusName}}</nz-form-control>
  14. </nz-form-item>
  15. </div>
  16. <div nz-col [nzSpan]="6">
  17. <nz-form-item>
  18. <nz-form-label [nzSpan]="8">服务项目经理</nz-form-label>
  19. <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.seManager}}</nz-form-control>
  20. </nz-form-item>
  21. </div>
  22. <div nz-col [nzSpan]="6">
  23. <nz-form-item>
  24. <nz-form-label [nzSpan]="8">服务工程师</nz-form-label>
  25. <nz-form-control [nzSm]="16" [nzXs]="24">{{projectManageArchives.seEngineer}}</nz-form-control>
  26. </nz-form-item>
  27. </div>
  28. </div>
  29. </form>
  30. <!-- 汇款信息 -->
  31. <nz-card nzTitle="回款信息" nzSize="small">
  32. <nz-table nzBordered nzSize="small" [nzNoResult]="' '" [nzShowPagination]="false">
  33. <tbody>
  34. <tr>
  35. <td><strong>服务金额</strong></td>
  36. <td>第一笔</td>
  37. <td>{{remittanceInformation.price1}}</td>
  38. <td>第二笔</td>
  39. <td>{{remittanceInformation.price2}}</td>
  40. <td>第三笔</td>
  41. <td>{{remittanceInformation.price3}}</td>
  42. <td>第四笔</td>
  43. <td>{{remittanceInformation.price4}}</td>
  44. <td>第五笔</td>
  45. <td>{{remittanceInformation.price5}}</td>
  46. </tr>
  47. <tr>
  48. <td><strong>实际回款</strong></td>
  49. <td>{{remittanceInformation.milestone1}}</td>
  50. <td>{{remittanceInformation.desc1}}</td>
  51. <td>{{remittanceInformation.milestone2}}</td>
  52. <td>{{remittanceInformation.desc2}}</td>
  53. <td>{{remittanceInformation.milestone3}}</td>
  54. <td>{{remittanceInformation.desc3}}</td>
  55. <td>{{remittanceInformation.milestone4}}</td>
  56. <td>{{remittanceInformation.desc4}}</td>
  57. <td>{{remittanceInformation.milestone5}}</td>
  58. <td>{{remittanceInformation.desc5}}</td>
  59. </tr>
  60. </tbody>
  61. </nz-table>
  62. </nz-card>
  63. <!-- 实施计划 -->
  64. <nz-card nzTitle="服务计划" nzSize="small">
  65. <div nz-row [nzGutter]="24">
  66. <div nz-col [nzSpan]="24">
  67. <!-- 新增按钮 -->
  68. <button (click)="addParent()" nz-button nzType="primary">{{ 'button.add' | translate }}</button>
  69. </div>
  70. </div>
  71. <div nz-row [nzGutter]="24">
  72. <div nz-col [nzSpan]="24">
  73. <nz-table style="padding-top: 5px;" nzSize="small" class="tableTdPadding" #expandTable [nzData]="listOfMapData"
  74. nzTableLayout="fixed" [nzShowPagination]="false" [nzFrontPagination]="false">
  75. <thead>
  76. <tr>
  77. <th style="width: 8%;" ></th>
  78. <th style="width: 5%;">编码</th>
  79. <th style="width: 12%;">里程碑</th>
  80. <th style="width: 10%;">开始时间</th>
  81. <th style="width: 10%;">结束时间</th>
  82. <th style="width: 10%;">计划人天</th>
  83. <th style="width: 20%;">执行人</th>
  84. <th style="width: 10%;">实际人天</th>
  85. <th style="width: 10%;">操作</th>
  86. </tr>
  87. </thead>
  88. <tbody>
  89. <ng-container *ngFor="let data of expandTable.data">
  90. <ng-container *ngFor="let item of mapOfExpandedData[data.key]">
  91. <tr *ngIf="(item.parent && item.parent.expand) || !item.parent">
  92. <td [nzIndentSize]="item.level! * 20" [nzShowExpand]="!!item.children" [(nzExpand)]="item.expand"
  93. (nzExpandChange)="collapse(mapOfExpandedData[data.key], item, $event)">*
  94. </td>
  95. <td><input nz-input [(ngModel)]="item.code" maxlength=6/></td>
  96. <td>
  97. <ng-container *ngIf="item.id">
  98. {{ item.name }}
  99. </ng-container>
  100. <ng-container *ngIf="!item.id">
  101. <input nz-input [(ngModel)]="item.name" maxlength=20/>
  102. </ng-container>
  103. </td>
  104. <td>
  105. <nz-date-picker [(ngModel)]="item.startDate" (ngModelChange)="startChange(item,$event)"></nz-date-picker>
  106. </td>
  107. <td>
  108. <nz-date-picker [(ngModel)]="item.endDate" (ngModelChange)="startChange(item,$event)"></nz-date-picker>
  109. </td>
  110. <td>
  111. <nz-input-number [(ngModel)]="item.planTime" [nzMin]="0" [nzStep]="1" (nzBlur)="planTimeKeyup(item)" [nzMax]=1000></nz-input-number>
  112. </td>
  113. <td>
  114. <!-- <nz-select style="width: 100%;" [nzMaxTagCount]="3" nzMode="multiple" nzPlaceHolder="请选择"
  115. [(ngModel)]="item.executor">
  116. <nz-option *ngFor="let item of personnelList" [nzLabel]="item.id" [nzValue]="item.name"></nz-option>
  117. </nz-select> -->
  118. <nz-tree-select style="width: 100%" [nzNodes]="personnelList" nzShowSearch [nzMultiple]="true"
  119. nzPlaceHolder="请选择"
  120. [(ngModel)]="item.executors" [nzMaxTagCount]="3" [nzAllowClear]="true" [nzDefaultExpandedKeys]="expandKeys">
  121. </nz-tree-select>
  122. </td>
  123. <td>
  124. <nz-input-number [(ngModel)]="item.realTime" [nzMin]="0" [nzStep]="1" [nzMax]=1000></nz-input-number>
  125. </td>
  126. <td>
  127. <a (click)="addChild(item.key)">{{ 'button.leve.lower' | translate }}</a>
  128. <nz-divider nzType="vertical"></nz-divider>
  129. <a nz-popconfirm nzTitle="{{'isdelete'|translate}}" nzOkText="{{ 'yes' | translate }}"
  130. nzCancelText="{{ 'no' | translate }}"
  131. (nzOnConfirm)="deleteRow(mapOfExpandedData[data.key],item,item.key)">{{ 'milestone.delete' | translate }}</a>
  132. </td>
  133. </tr>
  134. </ng-container>
  135. </ng-container>
  136. </tbody>
  137. </nz-table>
  138. </div>
  139. </div>
  140. </nz-card>