follow-communications-adminstration-edit.component.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. <div class="addHospital-w">
  2. <div class="container">
  3. <!-- <h3 style="font-size: 18px; color: red">سيتم تحديث الصفحه بعد <countdown #countdown [config]="{leftTime: 180}">$!m!:$!s!</countdown></h3> -->
  4. <h3 style="font-size: 18px; color: red">سيتم تحديث الصفحه بعد {{counter$ | async }} ثانيه </h3>
  5. <div class="row">
  6. <div class="col-12">
  7. <ul class="list-unstyled titileLi-w">
  8. <li class="headingText-w">خدمه البلاغات </li>
  9. <li class="headingText-w" style="cursor:pointer" (click)="authSer.perviousLocation()"> عرض التفاصيل</li>
  10. </ul>
  11. </div>
  12. </div>
  13. <div class="containerContent-w">
  14. <form (ngSubmit)="onSubmittedForm()" #f="ngForm">
  15. <div class="row">
  16. <div class="col-12">
  17. <h2 class="title">بيانات منشئ البلاغ</h2>
  18. <div class="row">
  19. <div class="wrapper">
  20. <div class="col-12 col-md-4">
  21. <div class="form-group">
  22. <label for="name" style="float:right">رقم البلاغ</label>
  23. <input id="name" type="text" class="form-control" placeholder="رقم البلاغ" ngModel name="commmun_number" [(ngModel)]="maintData.id" [disabled]="disabledInput" />
  24. </div>
  25. </div>
  26. <div class="col-12 col-md-4">
  27. <div class="form-group">
  28. <label for="name" style="float:right">إسم المستخدم</label>
  29. <input id="name" type="text" class="form-control" placeholder="الإسم" ngModel name="name" [(ngModel)]="userData.comm_creator_name" [disabled]="disabledInput" />
  30. </div>
  31. </div>
  32. <div class="col-12 col-md-4">
  33. <div class="form-group">
  34. <label for="name" style="float:right">الإداره</label>
  35. <input id="name" type="text" class="form-control" placeholder="الإداره" ngModel name="comm_adminstration_creator_name" [(ngModel)]="userData.comm_adminstration_creator_name" [disabled]="disabledInput" />
  36. </div>
  37. </div>
  38. <div class="col-12 col-sm-12 col-md-6 col-lg-4">
  39. <div class="form-group">
  40. <label style="float:right">رقم الجوال <span class="spanReqired-w">*</span></label>
  41. <input type="phone" placeholder="رقم الجوال" class="form-control" ngModel name="phone" [(ngModel)]="userData.comm_creator_phone" [disabled]="disabledInput" />
  42. </div>
  43. </div>
  44. <div class="col-12 col-sm-12 col-md-6 col-lg-4">
  45. <div class="form-group">
  46. <label for="endDate" style="float:right" >التاريخ<span class="spanReqired-w">*</span></label>
  47. <div *ngIf='bindingDateSplitEnd'>
  48. <app-end-higri-date (onDatePicked)="getDate($event, 'end')" [myEndDate]="bindingDateSplitEnd" [higriDisabled]="disabledVal"> </app-end-higri-date>
  49. </div>
  50. </div>
  51. </div>
  52. <div class="col-12 col-sm-12 col-md-6 col-lg-4">
  53. <div class="form-group">
  54. <label for="time" style="float:right"> الوقت<span class="spanReqired-w">*</span></label>
  55. <input type="time" id="time" placeholder="الوقت" class="form-control" ngModel name="time" [(ngModel)]="maintData.created_time" [disabled]="disabledInput" />
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. <div class="col-12">
  62. <h2 class="title">بيانات البلاغ</h2>
  63. <div class="row">
  64. <div class="wrapper">
  65. <div class="col-12 col-sm-12 col-md-6 col-lg-4">
  66. <div class="form-group">
  67. <label for="subject" style="float: right; margin-right:5px;margin-top:10px">موضوع البلاغ</label>
  68. <input type="text" id="subject" class="form-control" placeholder="موضوع البلاغ" name="subject" ngModel [(ngModel)]="maintData.subject" [disabled]="disabledInput" />
  69. </div>
  70. </div>
  71. <div class="col-12 col-sm-12 col-md-6 col-lg-4">
  72. <div class="form-group">
  73. <label for="message" style="float: right; margin-right:5px;margin-top:10px">نص البلاغ</label>
  74. <input type="text" id="message" class="form-control" placeholder="نص البلاغ" name="message" ngModel [(ngModel)]="maintData.message" [disabled]="disabledInput" />
  75. </div>
  76. </div>
  77. <div class="col-12 col-sm-12 col-md-4 col-lg-4" style="margin-top: 10px;">
  78. <div class="form-group">
  79. <label for="reportTopic" style="float: right;margin-right: 5px"> الموقع الرئيسي </label>
  80. <select name="main_location_id" class="form-control" [ngModel]="mainLocationVal" (change)="onChangemainLocation($event)" [disabled]="disabledInput" >
  81. <option *ngFor="let location of locationList" [value]="location.id" required> {{location.name}} </option>
  82. </select>
  83. </div>
  84. </div>
  85. <div class="col-12 col-sm-12 col-md-4 col-lg-4">
  86. <div class="form-group">
  87. <label for="sub_location_id" style="float: right;margin-right: 5px"> الموقع الفرعي </label>
  88. <select name="sub_location_id" class="form-control" [ngModel]="subLocationVal" (change)="changeSubLocation($event)" [disabled]="disabledInput">
  89. <option *ngFor="let location of subLocationList" [value]="location.id" required> {{location.name}} </option>
  90. </select>
  91. </div>
  92. </div>
  93. <div class="col-12">
  94. <h2 class="title">المرفقات</h2>
  95. <div class="row">
  96. <div class="wrapper">
  97. <h3 *ngIf="!showAttachements" style="font-size: 18px;">لا توجد مرفقات لعرضها </h3>
  98. <table class="table table-bordered" *ngIf="showAttachements">
  99. <thead class="headBackground-w">
  100. <tr>
  101. <th> إسم المرفق</th>
  102. <th>عرض الملف</th>
  103. </tr>
  104. </thead>
  105. <tbody>
  106. <tr style="text-align:center;" *ngFor="let file of maintData['files']; let i = index">
  107. <td><input type="text" class="form-control" placeholder="إسم الملف" [(ngModel)]="file.title" [ngModelOptions]="{standalone: true}" [disabled]="disabledInput"/></td>
  108. <th style="text-align:center"><a href="{{authSer.pathImg + file.file}}" target="_blank"><i class="fas fa-download"></i></a></th>
  109. </tr>
  110. </tbody>
  111. </table>
  112. </div>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="col-12">
  119. <h2 class="title">عمليات البلاغ</h2>
  120. <div class="row">
  121. <div class="wrapper">
  122. <div class="col-12 col-sm-12 col-md-6 col-lg-4">
  123. <div class="form-group">
  124. <label style="float:right" for="parent_category_id">التصنيف الرئيسي</label>
  125. <select class="form-control" id="parent_category_id" style="padding:0 5px" ngModel name="parent_category_id" (input)="changeParentCategory($event)" [(ngModel)]="communicationData.parent_category_id" [disabled]="disabledInput">
  126. <option *ngFor="let categorie of parentCategoriesList; let i = index" [value]="categorie.id">{{categorie.name}}</option>
  127. </select>
  128. </div>
  129. </div>
  130. <div class="col-12 col-md-4">
  131. <div class="form-group">
  132. <label style="float:right" for="child_category_id">التصنيف الفرعي</label>
  133. <select class="form-control" id="child_category_id" style="padding:0 5px" ngModel name="child_category_id" [(ngModel)]="communicationData.child_category_id" [disabled]="disabledInput">
  134. <option *ngFor="let childCategorie of childsCategoriesList; let i = index" [value]="childCategorie.id">{{childCategorie.name}}</option>
  135. </select>
  136. </div>
  137. </div>
  138. <div class="col-12 col-md-4">
  139. <div class="form-group">
  140. <label style="float:right" for="time_period_id">الفئه - الوقت</label>
  141. <select class="form-control" id="time_period_id" style="padding:0 5px" ngModel name="time_period_id" [(ngModel)]="communicationData.time_period_id" [disabled]="disabledInput">
  142. <option *ngFor="let timePeriod of times; let i = index" [value]="timePeriod.id">{{timePeriod.name}}</option>
  143. </select>
  144. </div>
  145. </div>
  146. <div class="col-12 col-md-12">
  147. <div class="form-group">
  148. <label for="maintenance_notes" style="float:right">ملاحظات إداره الصيانه</label>
  149. <textarea cols="3" class="form-control" name="maintenance_notes" id="maintenance_notes" [(ngModel)]="communicationData.maintenance_notes" [disabled]="disabledInput"> </textarea>
  150. </div>
  151. </div>
  152. </div>
  153. </div>
  154. </div>
  155. <div class="col-12">
  156. <h2 class="title">إغلاف البلاغ</h2>
  157. <div class="row">
  158. <div class="wrapper" style="padding: 10px 20px;">
  159. <div style="float:right">
  160. <input type="checkbox" class="form-check-input" name="status" id="status" [(ngModel)]="formData.status" [value]="formData.status">
  161. <label class="form-check-label" for="status" style="margin: 0 20px;">إغلاق البلاغ</label>
  162. </div>
  163. <div class="col-12 col-md-12" style="margin: 20px 0;" *ngIf="formData.status">
  164. <div class="form-group">
  165. <label for="closed_status_reason" style="float:right; margin-right: 5px;"> سبب إغلاق البلاغ</label>
  166. <textarea cols="3" class="form-control" name="closed_status_reason" id="closed_status_reason" [(ngModel)]="formData.closed_status_reason"> </textarea>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. <div class="col-12">
  173. <h2 class="title"> ملاحظات الإداره</h2>
  174. <div class="row">
  175. <div class="wrapper" style="padding: 10px 20px;">
  176. <div class="col-12 col-md-12" style="margin: 20px 0;">
  177. <div class="form-group">
  178. <label for="adminstration_notes" style="float:right; margin-right: 5px;"> </label>
  179. <textarea cols="3" class="form-control" name="adminstration_notes" id="adminstration_notes" [(ngModel)]="formData.adminstration_notes"> </textarea>
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. <div class="col-12">
  186. <h2 class="title">الإدارات الموجه لها البلاغ</h2>
  187. <div class="row">
  188. <div class="wrapper">
  189. <table class="table table-bordered">
  190. <thead class="headBackground-w">
  191. <tr>
  192. <th>الجهه المستلمه للبلاغ</th>
  193. <th>وقت التحويل</th>
  194. <th>ملاحظات</th>
  195. <th>حاله البلاغ</th>
  196. <th>الاٌقسام</th>
  197. <th>مده التأخير</th>
  198. </tr>
  199. </thead>
  200. <tbody>
  201. <tr *ngFor="let selectAdmin of maintData['adminstrations']; let i = index">
  202. <td>{{selectAdmin.name ? selectAdmin.name : '-'}}</td>
  203. <td>{{ selectAdmin.created_at ? selectAdmin.created_at : '-' }}</td>
  204. <td>{{selectAdmin.adminstration_notes ? selectAdmin.adminstration_notes : '-'}}</td>
  205. <td>
  206. {{
  207. selectAdmin.adminstration_status == 'new' ? 'جديد'
  208. : selectAdmin.adminstration_status == 'closed' ? 'مغلق'
  209. : selectAdmin.adminstration_status == 'reopen' ? 'إستأنف'
  210. : selectAdmin.adminstration_status == 'redirect_to_adminstrations' ? 'العائد للإدارات' : 'لايوجد'}}
  211. </td>
  212. <th style="text-align:center">
  213. <div class="dropdown">
  214. <button class="btn btn-secondary dropdown-toggle buttonW" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  215. عرض
  216. </button>
  217. <div class="dropdown-menu" aria-labelledby="dropdownMenuButton" style="text-align:right;">
  218. <a class="dropdown-item" *ngFor="let department of selectAdmin['departments']"> {{ department.name ? department.name : 'لا يوجد'}} </a>
  219. </div>
  220. </div>
  221. </th>
  222. <td style="font-size: 12px;">{{selectAdmin.countdown}}</td>
  223. </tr>
  224. </tbody>
  225. </table>
  226. </div>
  227. </div>
  228. </div>
  229. <div class="col-12">
  230. <h2 class="title">الأقسام الموجه لها البلاغ</h2>
  231. <div class="row">
  232. <div class="wrapper">
  233. <!-- Button trigger modal -->
  234. <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" style="float: right; margin: 20px 0;">
  235. الأقسام الموجه لها البلاغ
  236. </button>
  237. <!-- Modal -->
  238. <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  239. <div class="modal-dialog" role="document">
  240. <div class="modal-content">
  241. <div class="modal-header">
  242. <h5 class="modal-title" id="exampleModalLabel">الأقسام</h5>
  243. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  244. <span aria-hidden="true">&times;</span>
  245. </button>
  246. </div>
  247. <div class="modal-body">
  248. <div class="form-group">
  249. <input type="text" placeholder="البحث" class="form-control inputSearchTable-w" style="margin-top:0;" (input)="filtterFunc($event)"/>
  250. <hr>
  251. </div>
  252. <table class="table table-bordered">
  253. <thead class="headBackground-w">
  254. <tr>
  255. <th style="text-align:right">
  256. <div class="custom-control custom-checkbox">
  257. <input type="checkbox" class="custom-control-input" [(ngModel)]="selectedAll" (change)="selectAll();" id="customCheck" name="example1">
  258. </div>
  259. </th>
  260. <th style="text-align:right">الإسم</th>
  261. </tr>
  262. </thead>
  263. <tbody>
  264. <tr *ngFor="let data of departments; let i = index">
  265. <td>
  266. <div class="custom-control custom-checkbox centerIneerItem">
  267. <input type="checkbox" class="custom-control-input" id="{{data.id}}" [(ngModel)]="data.selected" [value]='data' (change)="checkIfAllSelected();" [ngModelOptions]="{standalone: true}">
  268. <label class="custom-control-label disblayBlock-w" for="{{data.id}}" style="color:#2a2a2a"></label>
  269. </div>
  270. </td>
  271. <td>{{data.name}}</td>
  272. </tr>
  273. </tbody>
  274. </table>
  275. </div>
  276. <div class="modal-footer">
  277. <button type="button" class="btn btn-secondary" data-dismiss="modal" style="margin: 0 10px;">إغلاق</button>
  278. <button type="button" class="btn btn-primary" data-dismiss="modal" (click)="getDepartments()">حفظ</button>
  279. </div>
  280. </div>
  281. </div>
  282. </div>
  283. <table class="table table-bordered">
  284. <thead class="headBackground-w">
  285. <tr>
  286. <th>الجهه المستلمه للبلاغ</th>
  287. <th>وقت التحويل</th>
  288. <th>ملاحظات</th>
  289. <th>حاله البلاغ</th>
  290. <th>مده التأخير</th>
  291. <th>حذف</th>
  292. </tr>
  293. </thead>
  294. <tbody>
  295. <tr *ngFor="let selectAdmin of selectedDepartments; let i = index">
  296. <td>{{selectAdmin.name ? selectAdmin.name : '-'}}</td>
  297. <td>{{ selectAdmin.created_at ? selectAdmin.created_at : '-' }}</td>
  298. <td>{{selectAdmin.adminstration_notes ? selectAdmin.adminstration_notes : '-'}}</td>
  299. <td>
  300. {{
  301. selectAdmin.adminstration_status == 'new' ? 'جديد'
  302. : selectAdmin.adminstration_status == 'closed' ? 'مغلق'
  303. : selectAdmin.adminstration_status == 'reopen' ? 'إستأنف'
  304. : selectAdmin.adminstration_status == 'redirect_to_adminstrations' ? 'العائد للإدارات' : 'لايوجد'}}
  305. </td>
  306. <td style="font-size: 12px;">{{selectAdmin.countdown}}</td>
  307. <td><button type="button" class="btn btn-danger" (click)="removeSelectedAdminsration(selectAdmin)">حذف</button></td>
  308. </tr>
  309. </tbody>
  310. </table>
  311. </div>
  312. </div>
  313. </div>
  314. <div class="col-12">
  315. <button type="submit" class="btn btn-success rightW" [disabled]="!f.valid || checkSaveClick" *ngIf="!checkStatusClosed">حفظ</button>
  316. <button type="button" class="btn btn-primary rightW" (click)="onPrint()" *ngIf="maintData.reopen == 1">طباعه</button>
  317. <button type="button" class="btn btn-warning rightW" (click)="authSer.backFromEdit()" style="margin:20px 10px;">إلغاء</button>
  318. </div>
  319. </div>
  320. </form>
  321. </div>
  322. </div>
  323. </div>