update.component.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. <nz-spin [nzSpinning]="saveLoading">
  2. <!-- 主数据 -->
  3. <nz-table nzSize="small" [nzNoResult]="' '" nzBordered #basicTable [nzShowPagination]="false" style="margin-bottom: 5px;">
  4. <thead>
  5. <tr>
  6. <!-- 异常工时信息统计单 -->
  7. <th colspan="7">
  8. <h2><strong>生产异常信息统计单</strong></h2>
  9. </th>
  10. </tr>
  11. </thead>
  12. <tbody>
  13. <tr>
  14. <!-- <td style="width: 25%;">姓名</td>
  15. <td style="width: 25%;" colSpan="2">
  16. <nz-select [(ngModel)]="fbsAbnormalWorkingHours.personnelIdU8" style="width: 100%;" nzShowSearch nzAllowClear
  17. nzPlaceHolder="请选择" (ngModelChange)="personnelChange($event)">
  18. <ng-container *ngFor="let proper of properList">
  19. <nz-option [nzLabel]="proper.cpersonname" [nzValue]="proper.cpersoncode"> </nz-option>
  20. </ng-container>
  21. </nz-select>
  22. </td> -->
  23. <td style="width: 25%;" colSpan="2">日期</td>
  24. <td style="width: 25%;" colspan="2">
  25. <nz-date-picker [(ngModel)]="fbsAbnormalWorkingHours.date" nzPlaceHolder="请选择" nzDisabled>
  26. </nz-date-picker>
  27. </td>
  28. <td colSpan="3"></td>
  29. </tr>
  30. <tr>
  31. <td>出勤记录</td>
  32. <td>应到人数</td>
  33. <td>
  34. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.numberOfPeopleToArrive" [nzMin]="0" [nzStep]="1">
  35. </nz-input-number>
  36. </td>
  37. <td>实到人数</td>
  38. <td>
  39. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.actualNumberOfPeople" [nzMin]="0" [nzStep]="1">
  40. </nz-input-number>
  41. </td>
  42. <td>出勤工时</td>
  43. <td>
  44. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.attendanceHours" [nzMin]="0" [nzStep]="1">
  45. </nz-input-number>
  46. </td>
  47. </tr>
  48. <tr>
  49. <td>加班记录</td>
  50. <td>加班工时</td>
  51. <td>
  52. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.overtimeHours" [nzMin]="0" [nzStep]="1">
  53. </nz-input-number>
  54. </td>
  55. <td>加班原因</td>
  56. <td colspan="3">
  57. <textarea rows="2" nz-input [(ngModel)]="fbsAbnormalWorkingHours.overtimeReason"></textarea>
  58. </td>
  59. </tr>
  60. <tr>
  61. <td style="width: 25%;" rowSpan="2">其他工时统计</td>
  62. <td style="width: 10%;">培训</td>
  63. <td style="width: 15%;">
  64. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.train" [nzMin]="0" [nzStep]="1"></nz-input-number>
  65. </td>
  66. <td style="width: 10%;">会议</td>
  67. <td style="width: 15%;">
  68. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.meeting" [nzMin]="0" [nzStep]="1"></nz-input-number>
  69. </td>
  70. <td style="width: 10%;">5S</td>
  71. <td style="width: 15%;">
  72. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.fiveS" [nzMin]="0" [nzStep]="1"></nz-input-number>
  73. </td>
  74. </tr>
  75. <tr>
  76. <td>研发</td>
  77. <td>
  78. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.researchAndDevelopment" [nzMin]="0" [nzStep]="1">
  79. </nz-input-number>
  80. </td>
  81. <td colSpan="5"></td>
  82. </tr>
  83. <tr>
  84. <td rowSpan="3">异常工时统计</td>
  85. <td>质量</td>
  86. <td>
  87. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.quality" [nzMin]="0" [nzStep]="1"></nz-input-number>
  88. </td>
  89. <td>设计</td>
  90. <td>
  91. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.design" [nzMin]="0" [nzStep]="1"></nz-input-number>
  92. </td>
  93. <td>返工</td>
  94. <td>
  95. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.rework" [nzMin]="0" [nzStep]="1"></nz-input-number>
  96. </td>
  97. </tr>
  98. <tr>
  99. <td>物料</td>
  100. <td>
  101. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.materiel" [nzMin]="0" [nzStep]="1"></nz-input-number>
  102. </td>
  103. <td>能源</td>
  104. <td>
  105. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.energy" [nzMin]="0" [nzStep]="1"></nz-input-number>
  106. </td>
  107. <td>其他</td>
  108. <td>
  109. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.other" [nzMin]="0" [nzStep]="1"></nz-input-number>
  110. </td>
  111. </tr>
  112. <tr>
  113. <td>设备</td>
  114. <td>
  115. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.equipment" [nzMin]="0" [nzStep]="1"></nz-input-number>
  116. </td>
  117. <td>计划</td>
  118. <td >
  119. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.plan" [nzMin]="0" [nzStep]="1"></nz-input-number>
  120. </td>
  121. <td></td>
  122. <td></td>
  123. </tr>
  124. <tr>
  125. <td rowSpan="2">仓库工时统计</td>
  126. <td >配料</td>
  127. <td>
  128. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.mixedIngredients" [nzMin]="0" [nzStep]="1"></nz-input-number>
  129. </td>
  130. <td >入库</td>
  131. <td >
  132. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.warehousing" [nzMin]="0" [nzStep]="1"></nz-input-number>
  133. </td>
  134. <td >打包</td>
  135. <td>
  136. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.pack" [nzMin]="0" [nzStep]="1"></nz-input-number>
  137. </td>
  138. </tr>
  139. <tr>
  140. <td>其他</td>
  141. <td>
  142. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.warehouseOthers" [nzMin]="0" [nzStep]="1">
  143. </nz-input-number>
  144. </td>
  145. <td >备注</td>
  146. <td colSpan="3">
  147. <textarea rows="2" nz-input [(ngModel)]="fbsAbnormalWorkingHours.memo"></textarea>
  148. </td>
  149. </tr>
  150. <tr>
  151. <!-- <td>改善措施</td>
  152. <td>当日派工产品</td>
  153. <td>
  154. <nz-select [(ngModel)]="fbsAbnormalWorkingHours.productId" style="width: 100%;" nzShowSearch
  155. nzAllowClear nzPlaceHolder="请选择" (ngModelChange)="productChange($event)">
  156. <ng-container *ngFor="let produc of productList">
  157. <nz-option [nzLabel]="produc.product" [nzValue]="produc.productId"> </nz-option>
  158. </ng-container>
  159. </nz-select>
  160. </td>
  161. <td>不良品数量</td>
  162. <td><nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.rejectsNumber" [nzMin]="0" [nzStep]="1"></nz-input-number></td> -->
  163. <!-- <td>异常类别</td>
  164. <td>
  165. <nz-select [(ngModel)]="fbsAbnormalWorkingHours.typeId" style="width: 100%;" nzShowSearch
  166. nzAllowClear nzPlaceHolder="请选择" (ngModelChange)="typeChange($event)">
  167. <ng-container *ngFor="let type of typeListSelect">
  168. <nz-option [nzLabel]="type.typeName" [nzValue]="type.id"> </nz-option>
  169. </ng-container>
  170. </nz-select>
  171. </td> -->
  172. </tr>
  173. <tr></tr>
  174. </tbody>
  175. </nz-table>
  176. <!-- 子表数据 -->
  177. <div nz-row nzGutter="24" >
  178. <!-- 异常原因描述 -->
  179. <div nz-col nzMd="24" nzLg="24">
  180. <nz-card nzTitle="异常原因描述">
  181. <!-- 按钮 -->
  182. <div nz-row [nzGutter]="24">
  183. <div nz-col nzMd="24" nzLg="24">
  184. <button (click)="describeAddRow()" nz-button nzType="primary">新增</button>
  185. </div>
  186. </div>
  187. <!-- 表格 -->
  188. <nz-table style="margin-top: 5px;" nzSize="small" #editRowTable nzBordered [nzData]="describeList" [nzShowPagination]="false" [nzFrontPagination]=false>
  189. <thead>
  190. <tr>
  191. <th nzWidth="5%">序号</th>
  192. <th nzWidth="10%">类别</th>
  193. <th nzWidth="15%">物料名称</th>
  194. <th nzWidth="10%">计划数量</th>
  195. <th nzWidth="10%">不良品数量</th>
  196. <th nzWidth="25%">异常原因描述</th>
  197. <th nzWidth="15%">异常类别</th>
  198. <th nzWidth="10%">操作</th>
  199. </tr>
  200. </thead>
  201. <tbody>
  202. <tr *ngFor="let data of editRowTable.data">
  203. <td>{{data.sort}}</td>
  204. <td>
  205. <nz-select [(ngModel)]="data.type" style="width: 100%;" nzShowSearch nzAllowClear nzPlaceHolder="请选择"
  206. [nzDropdownMatchSelectWidth]="false">
  207. <nz-option nzLabel="产品" nzValue="产品"> </nz-option>
  208. <nz-option nzLabel="物料" nzValue="物料"> </nz-option>
  209. </nz-select>
  210. </td>
  211. <td>
  212. <!-- 选择产品 -->
  213. <ng-container *ngIf="data.type=='产品'">
  214. <nz-select [(ngModel)]="data.productId" style="width: 100%;" nzShowSearch nzAllowClear
  215. nzPlaceHolder="请选择" (ngModelChange)="productChange($event,data)"
  216. [nzDropdownMatchSelectWidth]="false">
  217. <ng-container *ngFor="let produc of productList">
  218. <nz-option [nzLabel]="produc.product" [nzValue]="produc.productId"> </nz-option>
  219. </ng-container>
  220. </nz-select>
  221. </ng-container>
  222. <!-- 选择物料 -->
  223. <ng-container *ngIf="data.type=='物料'">
  224. <input [(ngModel)]="data.product" nz-input
  225. placeholder="请输入" />
  226. </ng-container>
  227. </td>
  228. <td>
  229. <ng-container *ngIf="data.type=='产品'">
  230. {{data.plannedQuantity}}
  231. </ng-container>
  232. <ng-container *ngIf="data.type=='物料'">
  233. <nz-input-number [(ngModel)]="data.plannedQuantity" [nzMin]="0" [nzStep]="1"></nz-input-number>
  234. </ng-container>
  235. </td>
  236. <td><nz-input-number [(ngModel)]="data.rejectsNumber" [nzMin]="0" [nzStep]="1"></nz-input-number></td>
  237. <td><textarea rows="1" nz-input [(ngModel)]="data.describes"></textarea></td>
  238. <td>
  239. <!-- <nz-select [(ngModel)]="data.typeId" style="width: 100%;" nzShowSearch
  240. nzAllowClear nzPlaceHolder="请选择" (ngModelChange)="typeChange($event,data)">
  241. <ng-container *ngFor="let type of typeListSelect">
  242. <nz-option [nzLabel]="type.typeName" [nzValue]="type.id"> </nz-option>
  243. </ng-container>
  244. </nz-select> -->
  245. <input nz-input name="data.typeName" [(ngModel)]="data.typeName" />
  246. </td>
  247. <td><a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="describeDeleteRow(data.sort)">删除</a></td>
  248. </tr>
  249. </tbody>
  250. </nz-table>
  251. </nz-card>
  252. </div>
  253. <!-- 异常类型 -->
  254. <!-- <div nz-col nzMd="24" nzLg="12">
  255. <nz-card nzTitle="异常类别">
  256. <div nz-row [nzGutter]="24">
  257. <div nz-col nzMd="24" nzLg="24">
  258. <button (click)="typeAddRow()" nz-button nzType="primary">新增</button>
  259. </div>
  260. </div>
  261. <nz-table style="margin-top: 5px;" nzSize="small" #typeTable nzBordered [nzData]="typeList" [nzShowPagination]="false" [nzFrontPagination]=false>
  262. <thead>
  263. <tr>
  264. <th nzWidth="10%">序号</th>
  265. <th nzWidth="80%">异常类型</th>
  266. <th nzWidth="10%">操作</th>
  267. </tr>
  268. </thead>
  269. <tbody>
  270. <tr *ngFor="let data of typeTable.data">
  271. <td>{{data.sort}}</td>
  272. <td><input nz-input placeholder="请输入" [(ngModel)]="data.typeName" /></td>
  273. <td><a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="typeDeleteRow(data.sort)">删除</a></td>
  274. </tr>
  275. </tbody>
  276. </nz-table>
  277. </nz-card>
  278. </div> -->
  279. </div>
  280. </nz-spin>
  281. <!-- 底部按钮 -->
  282. <div class="base">
  283. <!-- 底部关闭按钮 -->
  284. <a nz-popconfirm style="margin-right: 2%" nzTitle="确认关闭吗(关闭前请确认数据已保存)" (nzOnConfirm)="close()">
  285. <button nz-button class="ant-btn buttonDistance"><span>关闭
  286. </span></button>
  287. </a>
  288. <!-- 底部保存按钮 -->
  289. <button nzbutton (click)="save()" nz-button nzType="primary" [nzLoading]="saveLoading"><span>保存</span></button>
  290. </div>