fuwutai.component.html 134 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030
  1. <div class="fuwutai">
  2. <div class="top" id="top" *ngIf="hurseInfoHiding != 1">
  3. <!-- 头部Tab -->
  4. <div class="tabBox">
  5. <div class="tab" #tabs>
  6. <div class="tab_inner" [style.transform]="'translateX(' + disXHead + 'px)'">
  7. <!-- <div [ngClass]="{ tabItem: true, checked: typeId == -1 }" (click)="checkTab(-1)">
  8. 全部
  9. </div> -->
  10. <div [ngClass]="{ tabItem: true, checked: typeId == item.id }" *ngFor="let item of scopeGroups" (click)="checkTab(item.id)" [title]="item.groupName">
  11. {{ item.groupName }}
  12. </div>
  13. </div>
  14. </div>
  15. <div class="tabBox__operate">
  16. <i class="tabBox__Icon--right icon_transport transport-xiangzuo" (click)="headToLeft()"></i>
  17. <i class="tabBox__Icon--left icon_transport transport-xiangzuo" (click)="headToRight()"></i>
  18. </div>
  19. <div class="timer">{{ workerRefreshTime }}s</div>
  20. </div>
  21. <!-- 配送人员信息内容 -->
  22. <div class="message_cot">
  23. <!-- 配送人员信息 -->
  24. <div class="cot_hid" [style.height]="cotHeight + 'px'">
  25. <ng-container *ngIf="!wLoading && typeData && (typeData.type === 1 || typeData.type === 2)">
  26. <div id="cotAll" class="cot_all" *ngIf="patientCareCol == 7">
  27. <div [ngClass]="{cot: true, sevenCol: true}" *ngFor="let data of workerMessage">
  28. <div class="first" *ngIf="data">
  29. <span nz-tooltip [nzTooltipTitle]="data.phone">{{ data.name }}</span>
  30. <span>累计{{ data.totalCount }}单</span>
  31. <span class="times imptime" *ngIf="data.freetime === '今日还未接单' || data.freetime === null">{{ data.freetime }}</span>
  32. <span class="times imptime imptime-green" *ngIf="data.freetime !== '今日还未接单' && data.freetime !== null">{{ "空闲时间" + data.freetime }}</span>
  33. </div>
  34. <div class="second" *ngIf="data">
  35. <span *ngIf="data.workingFlag == true">{{ data.gdType }}</span>
  36. <span [ngClass]="{ fr: true, colorRed: data.timeOut == true }" *ngIf="data.workingFlag == true">{{ data.gdState }}</span>
  37. </div>
  38. </div>
  39. </div>
  40. </ng-container>
  41. <ng-container *ngIf="!wLoading && typeData && typeData.type === 3">
  42. <div id="cotAll" class="cot_all">
  43. <div [ngClass]="{cot: true, sevenCol: true}" *ngFor="let data of workerMessage">
  44. <div class="first" *ngIf="data">
  45. <span nz-tooltip [nzTooltipTitle]="data[2]">{{ data[1] }}</span>
  46. <span class="fr">今日完成:{{ data[3][2] }}</span>
  47. </div>
  48. <div class="first" *ngIf="data">
  49. <span>待接单:{{ data[3][0] }}</span>
  50. <span class="fr">处理中:{{ data[3][1] }}</span>
  51. </div>
  52. </div>
  53. </div>
  54. </ng-container>
  55. <div class="cot_img" *ngIf="wLoading">
  56. <img src="../../assets/images/loading.gif" alt="" />
  57. </div>
  58. <div class="cot_img" *ngIf="!wLoading && workerMessage.length == 0">
  59. <span>暂无数据</span>
  60. </div>
  61. </div>
  62. <div class="arrow" *ngIf="showRowNum < maxNum" (click)="unfold()">
  63. <i class="icon_transport transport-xiala2-01"></i>
  64. </div>
  65. <div class="arrow" *ngIf="showRowNum > maxNum || showRowNum == maxNum" (click)="retract()">
  66. <i class="icon_transport transport-shangla-"></i>
  67. </div>
  68. </div>
  69. </div>
  70. <!-- 状态工单 -->
  71. <div class="lists_box" [ngClass]="{ top185: hurseInfoHiding != 1 }">
  72. <!-- 未分派/未受理 -->
  73. <div class="lists">
  74. <div class="head">
  75. <span class="auto_tit"><span *ngIf="flagList.hsmsFlag1">未分派</span><span *ngIf="flagList.itsmFlag1 && flagList.hsmsFlag1">/</span><span *ngIf="flagList.itsmFlag1">未受理</span>({{ unassignedList.length }}条)</span>
  76. <div class="ml8 auto_building" *ngIf="!flagList.itsmFlag1 && flagList.hsmsFlag1">
  77. <nz-select class="auto_building_select" [(ngModel)]="unassignedBuilding" nzMode="multiple" nzPlaceHolder="请选择楼栋" (nzOpenChange)="openChangeUnassignedBuilding($event)" (ngModelChange)="changeUnassignedBuilding($event)">
  78. <ng-container *ngFor="let option of unassignedBuildings">
  79. <nz-option *ngIf="!bLoading && !b2Loading" [nzLabel]="option[0] + '(' + option[2] + ')'" [nzValue]="option[3]"></nz-option>
  80. </ng-container>
  81. <nz-option *ngIf="bLoading || b2Loading" nzDisabled nzCustomContent>
  82. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  83. </nz-option>
  84. </nz-select>
  85. </div>
  86. <span class="toLastTime">
  87. <span class="order" (click)="orderList()">{{orderType === 'priority' ? '优先级' : '建单时间'}}</span>
  88. <span class="itsmOrHsms" [ngClass]="{bold: flagList.itsmFlag1}" *ngIf="itsmData.mdv2Switch" (click)="filterOrderList('itsm', 1)">运维</span>
  89. <span class="itsmOrHsms" *ngIf="itsmData.mdv2Switch && hsmsData.hsmsSwitch">|</span>
  90. <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag1}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 1)">配送</span>
  91. <span class="time">{{ orderRefreshTime }}s</span></span>
  92. </div>
  93. <div class="searchBox" *ngIf="!flagList.itsmFlag1 && flagList.hsmsFlag1">
  94. <label nz-checkbox [(ngModel)]="allUnassignedList" (ngModelChange)="changeAllUnassignedList($event)">全选</label>
  95. <div class="search wp60">
  96. <input class="wp75" type="text" placeholder="请输入关键字" [(ngModel)]="unassignedSearchCon" />
  97. <div class="magnifier wp20" (click)="searchUnassigned()">
  98. <i class="icon_transport transport-sousuo"></i>
  99. <span>搜索</span>
  100. </div>
  101. </div>
  102. <button nz-button nzType="primary" (click)="batchDispatch()" [disabled]="!batchType">
  103. 批量派单
  104. </button>
  105. </div>
  106. <div class="cots_body weifenpai" *ngIf="(txtLabelCol == 1 && flagList.hsmsFlag1 && !flagList.itsmFlag1) || flagList.itsmFlag1" [ngClass]="{ top185: hurseInfoHiding != 1, top185_1: flagList.itsmFlag1 }">
  107. <virtual-scroller [items]="unassignedList" #osComponentRef2 [ngStyle]="{ height: '100%' }">
  108. <ng-container *ngIf="unassignedList.length && !loading1">
  109. <div class="list listsTypeColor" *ngFor="let data of osComponentRef2.viewPortItems;trackBy:trackById;let index = index;">
  110. <!-- 配送 绿色-->
  111. <ng-container *ngIf="data.type === 'hsms'">
  112. <div class="top-border2" *ngIf="index == 0"></div>
  113. <div class="top-border2 top-border3" *ngIf="index == 1"></div>
  114. <div class="top-border2" *ngIf="index > 1" [ngClass]="{'top-border3': data.data.timeOut == true}"></div>
  115. <div class="left-border2"></div>
  116. <div class="left_cots" (click)="openDetails(data.data)">
  117. <!-- 工单 -->
  118. <div class="gongdan" (click)="batchDispatchSelect(!data.checked, data.data.id, $event)">
  119. <span class="left mr8" *ngIf="!flagList.itsmFlag1 && flagList.hsmsFlag1"><label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchDispatchSelect($event, data.data.id)"></label></span>
  120. <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
  121. <strong [ngStyle]="{color: data.data.taskType?data.data.taskType.renderColors:'#333'}">{{ data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
  122. </span>
  123. <div class="right_all">
  124. <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
  125. <span class="right">
  126. <span [ngClass]="{ colorRed: data.data.timeOut == true }">{{ data.data.gdState.name }}</span>
  127. </span>
  128. </div>
  129. </div>
  130. <!-- 地点 -->
  131. <div class="didian">
  132. <span class="left" *ngIf="data.data.taskType.associationType.value == 'inspect'">
  133. {{ data.data.startDept ? data.data.startDept.dept : "" }}
  134. <span *ngFor="let item of data.data.middleDept">
  135. ->{{ item.dept }}
  136. </span>
  137. </span>
  138. <span class="left" *ngIf="data.data.taskType.associationType.id != 260">
  139. {{ data.data.startDept ? data.data.startDept.dept : ""}}{{ data.data.endDepts ? "->" + data.data.endDepts[0].dept : "" }}
  140. </span>
  141. <span class="right" *ngIf="data.data.goods">
  142. <i class="icon_transport transport-icon3"></i>
  143. <span>{{ data.data.goods }}</span>
  144. </span>
  145. <span class="right" *ngIf="data.data.workOrderRemark" [title]="data.data.workOrderRemark">
  146. <i class="icon_transport transport-icon3"></i>
  147. <span>{{ data.data.workOrderRemark }}</span>
  148. </span>
  149. </div>
  150. <!-- 时间 -->
  151. <div class="shijian">
  152. <span class="left" *ngIf="data.data.expectTimeNum && data.data.timeOut != true">
  153. <i class="icon_transport transport-shouye10" nz-tooltip nzTooltipTitle="进行中"></i>
  154. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
  155. <i *ngIf="data.data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
  156. <i *ngIf="data.data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
  157. </ng-container>
  158. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.careLevel">
  159. <i *ngIf="data.data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
  160. <i *ngIf="data.data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
  161. <i *ngIf="data.data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
  162. <i *ngIf="data.data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
  163. </ng-container>
  164. <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">
  165. {{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span>
  166. </span>
  167. </span>
  168. <span class="left" *ngIf="data.data.timeOutLength && data.data.timeOut == true">
  169. <i class="colorRed icon_transport transport-daojishi" nz-tooltip nzTooltipTitle="超时"></i>
  170. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
  171. <i *ngIf="data.data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
  172. <i *ngIf="data.data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
  173. </ng-container>
  174. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.careLevel">
  175. <i *ngIf="data.data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
  176. <i *ngIf="data.data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
  177. <i *ngIf="data.data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
  178. <i *ngIf="data.data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
  179. </ng-container>
  180. <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">
  181. {{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span>
  182. </span>
  183. </span>
  184. <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
  185. {{ data.data.showCreateTime }}
  186. </span>
  187. </div>
  188. <!-- 急单 -->
  189. <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
  190. <!-- 加急单 -->
  191. <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
  192. </div>
  193. <div class="right_bots display_flex col-flex align-items_center justify-content_flex-center">
  194. <input type="button" *ngIf="data.data.gdState.value == 2" class="top_bot" value="派单" (click)="allotWorker(data.data.id, data.data.gdState.id)" />
  195. <input type="button" *ngIf="!data.data.worker && data.data.gdState.value != 2" class="top_bot" value="派单" (click)="allotWorker(data.data.id, data.data.gdState.id, 1)" />
  196. <input type="button" *ngIf="(data.data.gdState.value == 2 || data.data.gdState.value == 3 || data.data.gdState.value == 4) && data.data.taskType.remarksSwitch == 1" class="top_bot" value="修改备注" (click)="buildQuick(data.data)" />
  197. <input type="button" *ngIf="data.data.gdState.value == 2 || ((data.data.gdState.value == 3 || data.data.gdState.value == 4) && data.data.worker)" class="btm_bot" value="删除" (click)="openDelModal(data.data.id, 'hsms')" />
  198. </div>
  199. <div *ngIf="data.data.timeOut != true" class="slider sgreen" [ngStyle]="{ width: data.data.percent + '%' }"></div>
  200. <div *ngIf="data.data.timeOut == true" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
  201. <div class="bottom-border2"></div>
  202. <div class="right-border2"></div>
  203. </ng-container>
  204. <!-- 运维 蓝色-->
  205. <ng-container *ngIf="data.type === 'mdv2'">
  206. <div class="top-border" *ngIf="!osComponentRef2.viewPortItems[index-1]"></div>
  207. <div class="top-border top-border3" *ngIf="osComponentRef2.viewPortItems[index-1] && osComponentRef2.viewPortItems[index-1].type=='hsms'"></div>
  208. <div class="top-border" *ngIf="osComponentRef2.viewPortItems[index-1] && osComponentRef2.viewPortItems[index-1].type!='hsms'" [ngClass]="{'top-border3': data.data.overtimePercent > 100}"></div>
  209. <div class="left-border"></div>
  210. <div class="left_cots" (click)="openItsmDetails(data.data)">
  211. <div class="gongdan">
  212. <span class="left gongdan_name">
  213. <span [ngClass]="priorityColor(data.data.priorityId)">{{ data.data.priorityDTO?.name }} </span>{{ data.data.incidentsign }} <span nz-tooltip [nzTooltipTitle]="data.data.hosName + (data.data.repairIncidentType.value === 'public' ? data.data.repairIncidentType.name : (data.data.repairIncidentType.value === 'dept' ? data.data.department?.dept : ''))">{{ data.data.hosName }}<ng-container *ngIf="data.data.repairIncidentType.value === 'public'">{{ data.data.repairIncidentType.name }}</ng-container><ng-container *ngIf="data.data.repairIncidentType.value === 'dept'">{{ data.data.department?.dept }}</ng-container></span>
  214. </span>
  215. <div class="right_all">
  216. <span class="right">
  217. <span>{{ data.data.state.name }}</span>
  218. </span>
  219. </div>
  220. </div>
  221. <div class="didian">
  222. <span class="left">
  223. <span nz-tooltip [nzTooltipTitle]="data.data.description">{{ data.data.description }}</span>
  224. </span>
  225. </div>
  226. <div class="didian">
  227. <span class="left">
  228. <span nz-tooltip [nzTooltipTitle]="(data.data.place ? data.data.place.building.buildingName : '') + (data.data.place ? data.data.place.floorName + '层' : '') + data.data.houseNumber">{{ data.data.place ? data.data.place.building.buildingName : '' }}{{ data.data.place ? data.data.place.floorName + '层' : '' }}{{ data.data.houseNumber }}</span>
  229. <i class="icon_transport transport-a-11111 ml8" *ngIf="data.data.reqAttachment"></i>
  230. <i class="icon_transport transport-luyin ml8" *ngIf="data.data.reqRecord"></i>
  231. </span>
  232. </div>
  233. <div class="didian" *ngIf="data.data.overtimeRemark">
  234. <span class="left">
  235. <span [innerHTML]="data.data.overtimeRemark" nz-tooltip [nzTooltipTitle]="data.data.overtimeRemark"></span>
  236. </span>
  237. </div>
  238. <!-- 时间 -->
  239. <div class="shijian">
  240. <span class="left">
  241. <span>
  242. 申请人:{{ data.data.requester?.name }}
  243. </span>
  244. </span>
  245. <span class="right">
  246. {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
  247. </span>
  248. </div>
  249. </div>
  250. <div class="right_bots display_flex col-flex align-items_center justify-content_flex-center">
  251. <input type="button" *ngIf="data.computedEditFlag && data.data.state.value == 'reassign'" class="top_bot" value="编辑" (click)="edit(data.data)" />
  252. <input type="button" *ngIf="data.computedSubstitutionFlag && data.data.state.value == 'reassign'" class="top_bot" value="换人处理" (click)="substitution(data.data)" />
  253. <input type="button" *ngIf="coopBtns.generate && data.data.state.value == 'accept'" class="top_bot" value="生成" (click)="generateOrder(data.data)" />
  254. <input type="button" *ngIf="coopBtns.reject && data.data.state.value == 'accept'" class="top_bot" value="不受理" (click)="rejectFn(data.data)" />
  255. <input type="button" *ngIf="coopBtns.continue && data.data.state.value == 'storage'" class="top_bot" value="继续建单" (click)="storageSj(data.data)" />
  256. <input type="button" *ngIf="coopBtns.del" class="btm_bot" value="删除" (click)="openDelModal(data.data.id, 'itsm')" />
  257. </div>
  258. <div *ngIf="data.data.overtimePercent <= 100" class="slider sgreen" [ngStyle]="{ width: data.data.overtimePercent + '%' }"></div>
  259. <div *ngIf="data.data.overtimePercent > 100" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
  260. <div class="bottom-border"></div>
  261. <div class="right-border"></div>
  262. </ng-container>
  263. </div>
  264. </ng-container>
  265. <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading1">
  266. <img src="../../assets/images/loading.gif" alt="" />
  267. </div>
  268. <div class="no_data" *ngIf="unassignedList.length == 0 && !loading1">
  269. 暂无数据
  270. </div>
  271. </virtual-scroller>
  272. </div>
  273. </div>
  274. <!-- 待到达/待接单 -->
  275. <div class="lists">
  276. <div class="head">
  277. <span class="auto_tit"><span *ngIf="flagList.hsmsFlag2">待到达</span><span *ngIf="flagList.itsmFlag2 && flagList.hsmsFlag2">/</span><span *ngIf="flagList.itsmFlag2">待接单</span>({{ arriveList.length }}条)</span>
  278. <span class="toLastTime">
  279. <span class="order" (click)="orderList()">{{orderType === 'priority' ? '优先级' : '建单时间'}}</span>
  280. <span class="itsmOrHsms" [ngClass]="{bold: flagList.itsmFlag2}" *ngIf="itsmData.mdv2Switch" (click)="filterOrderList('itsm', 2)">运维</span>
  281. <span class="itsmOrHsms" *ngIf="itsmData.mdv2Switch && hsmsData.hsmsSwitch">|</span>
  282. <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag2}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 2)">配送</span>
  283. <span class="time">{{ orderRefreshTime }}s</span></span>
  284. </div>
  285. <div class="searchBox" *ngIf="!flagList.itsmFlag2 && flagList.hsmsFlag2">
  286. <label nz-checkbox [(ngModel)]="allArriveList" (ngModelChange)="changeAllArriveList($event)">全选</label>
  287. <div class="search wp60">
  288. <input class="wp75" type="text" placeholder="请输入关键字" [(ngModel)]="arriveSearchCon" />
  289. <div class="magnifier wp20" (click)="searchArrive()">
  290. <i class="icon_transport transport-sousuo"></i>
  291. <span>搜索</span>
  292. </div>
  293. </div>
  294. <button nz-button nzType="primary" (click)="batchWithdrawal()" [disabled]="!batchType1">
  295. 批量撤回
  296. </button>
  297. </div>
  298. <div class="cots_body daidaoda" *ngIf="(txtLabelCol == 1 && flagList.hsmsFlag2 && !flagList.itsmFlag2) || flagList.itsmFlag2" [ngClass]="{ top185: hurseInfoHiding != 1, top185_1: flagList.itsmFlag2 }">
  299. <virtual-scroller [items]="arriveList" #osComponentRef3 [ngStyle]="{ height: '100%' }">
  300. <ng-container *ngIf="arriveList.length && !loading2">
  301. <div class="list listsTypeColor" *ngFor="let data of osComponentRef3.viewPortItems;trackBy:trackById;let index = index;">
  302. <!-- 配送 -->
  303. <ng-container *ngIf="data.type === 'hsms'">
  304. <div class="top-border2" *ngIf="index == 0"></div>
  305. <div class="top-border2" *ngIf="index > 0" [ngClass]="{'top-border3': data.data.timeOut == true}"></div>
  306. <div class="left-border2"></div>
  307. <div class="left_cots" (click)="openDetails(data.data)">
  308. <!-- 工单 -->
  309. <div class="gongdan" (click)="batchWithdrawalSelect(!data.checked, data.data.id, $event)">
  310. <span class="left mr8" *ngIf="!flagList.itsmFlag2 && flagList.hsmsFlag2">
  311. <label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
  312. </span>
  313. <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
  314. <strong [ngStyle]="{color: data.data.taskType?data.data.taskType.renderColors:'#333'}">{{ data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
  315. </span>
  316. <div class="right_all">
  317. <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
  318. <span class="right">
  319. <span [ngClass]="{ colorRed: data.data.timeOut == true }">{{ data.data.gdState.name }}</span>
  320. </span>
  321. </div>
  322. </div>
  323. <!-- 地点 -->
  324. <div class="didian">
  325. <span class="left" *ngIf="data.data.taskType.associationType && data.data.taskType.associationType.value == 'inspect'">
  326. {{ data.data.startDept ? data.data.startDept.dept : "" }}
  327. <span *ngFor="let item of data.data.middleDept">
  328. ->{{ item.dept }}
  329. </span>
  330. </span>
  331. <span class="left" *ngIf="data.data.taskType.associationType && data.data.taskType.associationType.id != 260">
  332. {{ data.data.startDept ? data.data.startDept.dept : "" }}{{ data.data.endDepts ? " -> " + data.data.endDepts[0].dept : "" }}
  333. </span>
  334. <span class="right" *ngIf="data.data.goods">
  335. <i class="icon_transport transport-icon3"></i>
  336. <span>{{ data.data.goods }}</span>
  337. </span>
  338. <span class="right" *ngIf="data.data.workOrderRemark" [title]="data.data.workOrderRemark">
  339. <i class="icon_transport transport-icon3"></i>
  340. <span>{{ data.data.workOrderRemark }}</span>
  341. </span>
  342. </div>
  343. <!-- 时间 -->
  344. <div class="shijian">
  345. <span class="left" *ngIf="data.data.expectTimeNum && data.data.timeOut != true">
  346. <i class="icon_transport transport-shouye10" nz-tooltip nzTooltipTitle="进行中"></i>
  347. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
  348. <i *ngIf="data.data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
  349. <i *ngIf="data.data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
  350. </ng-container>
  351. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.careLevel">
  352. <i *ngIf="data.data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
  353. <i *ngIf="data.data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
  354. <i *ngIf="data.data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
  355. <i *ngIf="data.data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
  356. </ng-container>
  357. <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
  358. </span>
  359. <span class="left" *ngIf="data.data.timeOutLength && data.data.timeOut == true">
  360. <i class="colorRed icon_transport transport-daojishi" nz-tooltip nzTooltipTitle="超时"></i>
  361. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
  362. <i *ngIf="data.data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
  363. <i *ngIf="data.data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
  364. </ng-container>
  365. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.careLevel">
  366. <i *ngIf="data.data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
  367. <i *ngIf="data.data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
  368. <i *ngIf="data.data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
  369. <i *ngIf="data.data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
  370. </ng-container>
  371. <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
  372. </span>
  373. <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
  374. {{ data.data.showCreateTime }}
  375. </span>
  376. </div>
  377. <!-- 急单 -->
  378. <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
  379. <!-- 加急单 -->
  380. <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
  381. </div>
  382. <div class="right_bots display_flex col-flex align-items_center justify-content_space-around">
  383. <input type="button" *ngIf="data.data.gdState.value == 2" class="top_bot" value="派单" (click)="allotWorker(data.data.id, data.data.gdState.id)" />
  384. <input type="button" *ngIf="data.data.gdState.value == 3 || data.data.gdState.value == 4" class="top_bot" value="撤回" (click)="openRecallModal(data.data.id)" />
  385. <input type="button" *ngIf="(data.data.gdState.value == 2 || data.data.gdState.value == 3 || data.data.gdState.value == 4) && data.data.taskType.remarksSwitch == 1" class="top_bot" value="修改备注" (click)="buildQuick(data.data)" />
  386. <input type="button" *ngIf="data.data.gdState.value == 2 || data.data.gdState.value == 3 || data.data.gdState.value == 4" class="btm_bot" value="删除" (click)="openDelModal(data.data.id, 'hsms')" />
  387. </div>
  388. <div *ngIf="data.data.timeOut != true" class="slider sgreen" [ngStyle]="{ width: data.data.percent + '%' }"></div>
  389. <div *ngIf="data.data.timeOut == true" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
  390. <div class="bottom-border2"></div>
  391. <div class="right-border2"></div>
  392. </ng-container>
  393. <!-- 运维 -->
  394. <ng-container *ngIf="data.type === 'mdv2'">
  395. <div class="top-border" *ngIf="index == 0"></div>
  396. <div class="top-border" *ngIf="index > 0" [ngClass]="{'top-border3': data.data.overtimePercent > 100}"></div>
  397. <div class="left-border"></div>
  398. <div class="left_cots" (click)="openItsmDetails(data.data)">
  399. <div class="gongdan">
  400. <span class="left gongdan_name">
  401. <span [ngClass]="priorityColor(data.data.priorityId)">{{ data.data.priorityDTO?.name }} </span>{{ data.data.incidentsign }} <span nz-tooltip [nzTooltipTitle]="data.data.hosName + (data.data.repairIncidentType.value === 'public' ? data.data.repairIncidentType.name : (data.data.repairIncidentType.value === 'dept' ? data.data.department?.dept : ''))">{{ data.data.hosName }}<ng-container *ngIf="data.data.repairIncidentType.value === 'public'">{{ data.data.repairIncidentType.name }}</ng-container><ng-container *ngIf="data.data.repairIncidentType.value === 'dept'">{{ data.data.department?.dept }}</ng-container></span>
  402. </span>
  403. <div class="right_all">
  404. <span class="right">
  405. <span>{{ data.data.state.name }}</span>
  406. </span>
  407. </div>
  408. </div>
  409. <div class="didian">
  410. <span class="left">
  411. <span nz-tooltip [nzTooltipTitle]="data.data.description">{{ data.data.description }}</span>
  412. </span>
  413. </div>
  414. <div class="didian">
  415. <span class="left">
  416. <span nz-tooltip [nzTooltipTitle]="(data.data.place ? data.data.place.building.buildingName : '') + (data.data.place ? data.data.place.floorName + '层' : '') + data.data.houseNumber">{{ data.data.place ? data.data.place.building.buildingName : '' }}{{ data.data.place ? data.data.place.floorName + '层' : '' }}{{ data.data.houseNumber }}</span>
  417. <i class="icon_transport transport-a-11111 ml8" *ngIf="data.data.reqAttachment"></i>
  418. <i class="icon_transport transport-luyin ml8" *ngIf="data.data.reqRecord"></i>
  419. </span>
  420. </div>
  421. <div class="didian" *ngIf="data.data.overtimeRemark">
  422. <span class="left">
  423. <span [innerHTML]="data.data.overtimeRemark" nz-tooltip [nzTooltipTitle]="data.data.overtimeRemark"></span>
  424. </span>
  425. </div>
  426. <!-- 时间 -->
  427. <div class="shijian">
  428. <span class="left">
  429. <span>
  430. 处理人/组:{{ transferSynergetic(data.data) }}
  431. </span>
  432. </span>
  433. <span class="right">
  434. {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
  435. </span>
  436. </div>
  437. </div>
  438. <div class="right_bots display_flex col-flex align-items_center justify-content_flex-center">
  439. <input type="button" *ngIf="data.computedEditFlag" class="top_bot" value="编辑" (click)="edit(data.data)" />
  440. <input type="button" *ngIf="data.computedSubstitutionFlag" class="top_bot" value="换人处理" (click)="substitution(data.data)" />
  441. <!-- <input type="button" *ngIf="data.computedReceiveFlag" class="top_bot" value="接单" (click)="showDelModal($event, data.data,'您确认要接单吗?','接单','receive')" /> -->
  442. <input type="button" *ngIf="coopBtns.del" class="btm_bot" value="删除" (click)="openDelModal(data.data.id, 'itsm')" />
  443. </div>
  444. <div *ngIf="data.data.overtimePercent <= 100" class="slider sgreen" [ngStyle]="{ width: data.data.overtimePercent + '%' }"></div>
  445. <div *ngIf="data.data.overtimePercent > 100" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
  446. <div class="bottom-border"></div>
  447. <div class="right-border"></div>
  448. </ng-container>
  449. </div>
  450. </ng-container>
  451. <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading2">
  452. <img src="../../assets/images/loading.gif" alt="" />
  453. </div>
  454. <div class="no_data" *ngIf="arriveList.length == 0 && !loading2">
  455. 暂无数据
  456. </div>
  457. </virtual-scroller>
  458. </div>
  459. </div>
  460. <!-- 执行中 -->
  461. <div class="lists">
  462. <div class="head">
  463. <span class="auto_tit"><span *ngIf="flagList.hsmsFlag3">执行中</span><span *ngIf="flagList.itsmFlag3 && flagList.hsmsFlag3">/</span><span *ngIf="flagList.itsmFlag3">处理中</span>({{ executionList.length }}条)</span>
  464. <span class="toLastTime">
  465. <span class="order" (click)="orderList()">{{orderType === 'priority' ? '优先级' : '建单时间'}}</span>
  466. <span class="itsmOrHsms" [ngClass]="{bold: flagList.itsmFlag3}" *ngIf="itsmData.mdv2Switch" (click)="filterOrderList('itsm', 3)">运维</span>
  467. <span class="itsmOrHsms" *ngIf="itsmData.mdv2Switch && hsmsData.hsmsSwitch">|</span>
  468. <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag3}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 3)">配送</span>
  469. <span class="time">{{ orderRefreshTime }}s</span></span>
  470. </div>
  471. <div class="searchBox" *ngIf="!flagList.itsmFlag3 && flagList.hsmsFlag3">
  472. <div class="search">
  473. <input type="text" placeholder="请输入关键字" [(ngModel)]="executionSearchCon" />
  474. <div class="magnifier" (click)="searchExecution()">
  475. <i class="icon_transport transport-sousuo"></i>
  476. <span>搜索</span>
  477. </div>
  478. </div>
  479. </div>
  480. <div class="cots_body zhixingzhong" *ngIf="(txtLabelCol == 1 && flagList.hsmsFlag3 && !flagList.itsmFlag3) || flagList.itsmFlag3" [ngClass]="{ top185: hurseInfoHiding != 1, top185_1: flagList.itsmFlag3 }">
  481. <virtual-scroller [items]="executionList" #osComponentRef5 [ngStyle]="{ height: '100%' }">
  482. <ng-container *ngIf="executionList.length && !loading3">
  483. <div class="list" *ngFor="let data of osComponentRef5.viewPortItems;trackBy:trackById;let index = index;">
  484. <!-- 配送 -->
  485. <ng-container *ngIf="data.type === 'hsms'">
  486. <div class="top-border2" *ngIf="index == 0"></div>
  487. <div class="top-border2" *ngIf="index > 0" [ngClass]="{'top-border3': data.data.timeOut == true}"></div>
  488. <div class="left-border2"></div>
  489. <div class="left_cots" (click)="openDetails(data.data)">
  490. <!-- 工单 -->
  491. <div class="gongdan">
  492. <span class="left mr8" *ngIf="!flagList.itsmFlag3 && flagList.hsmsFlag3">
  493. <label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
  494. </span>
  495. <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
  496. <strong [ngStyle]="{color: data.data.taskType?data.data.taskType.renderColors:'#333'}">{{ data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
  497. </span>
  498. <div class="right_all">
  499. <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
  500. <span class="right">
  501. <span [ngClass]="{ colorRed: data.data.timeOut == true }">{{ data.data.gdState.name }}</span>
  502. </span>
  503. </div>
  504. </div>
  505. <!-- 地点 -->
  506. <div class="didian">
  507. <span class="left" *ngIf="data.data.taskType.associationType && data.data.taskType.associationType.value == 'inspect'">
  508. {{ data.data.startDept ? data.data.startDept.dept : "" }}
  509. <span *ngFor="let item of data.data.middleDept">
  510. ->{{ item.dept }}
  511. </span>
  512. </span>
  513. <span class="left" *ngIf="data.data.taskType.associationType && data.data.taskType.associationType.id != 260">
  514. {{ data.data.startDept ? data.data.startDept.dept : "" }}{{ data.data.endDepts ? " -> " + data.data.endDepts[0].dept : "" }}
  515. </span>
  516. <span class="right" *ngIf="data.data.goods">
  517. <i class="icon_transport transport-icon3"></i>
  518. <span>{{ data.data.goods }}</span>
  519. </span>
  520. <span class="right" *ngIf="data.data.workOrderRemark" [title]="data.data.workOrderRemark">
  521. <i class="icon_transport transport-icon3"></i>
  522. <span>{{ data.data.workOrderRemark }}</span>
  523. </span>
  524. </div>
  525. <!-- 时间 -->
  526. <div class="shijian">
  527. <span class="left" *ngIf="data.data.expectTimeNum && data.data.timeOut != true">
  528. <i class="icon_transport transport-shouye10" nz-tooltip nzTooltipTitle="进行中"></i>
  529. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
  530. <i *ngIf="data.data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
  531. <i *ngIf="data.data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
  532. </ng-container>
  533. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.careLevel">
  534. <i *ngIf="data.data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
  535. <i *ngIf="data.data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
  536. <i *ngIf="data.data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
  537. <i *ngIf="data.data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
  538. </ng-container>
  539. <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
  540. </span>
  541. <span class="left" *ngIf="data.data.timeOutLength && data.data.timeOut == true">
  542. <i class="colorRed icon_transport transport-daojishi" nz-tooltip nzTooltipTitle="超时"></i>
  543. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
  544. <i *ngIf="data.data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
  545. <i *ngIf="data.data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
  546. </ng-container>
  547. <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.careLevel">
  548. <i *ngIf="data.data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
  549. <i *ngIf="data.data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
  550. <i *ngIf="data.data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
  551. <i *ngIf="data.data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
  552. </ng-container>
  553. <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
  554. </span>
  555. <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
  556. {{ data.data.showCreateTime }}
  557. </span>
  558. </div>
  559. <!-- 急单 -->
  560. <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
  561. <!-- 加急单 -->
  562. <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
  563. </div>
  564. <div class="right_bots display_flex col-flex align-items_center justify-content_space-around">
  565. <input type="button" *ngIf="data.data.gdState.value == 2" class="top_bot" value="派单" (click)="allotWorker(data.data.id, data.data.gdState.id)" />
  566. <input type="button" *ngIf="data.data.gdState.value == 3 || data.data.gdState.value == 4" class="mid_bot" value="撤回" (click)="openRecallModal(data.data.id)" />
  567. <input type="button" *ngIf="data.data.gdState.value == 2 || data.data.gdState.value == 3 || data.data.gdState.value == 4" class="btm_bot" value="删除" (click)="openDelModal(data.data.id, 'hsms')" />
  568. </div>
  569. <div *ngIf="data.data.timeOut != true" class="slider sgreen" [ngStyle]="{ width: data.data.percent + '%' }"></div>
  570. <div *ngIf="data.data.timeOut == true" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
  571. <div class="bottom-border2"></div>
  572. <div class="right-border2"></div>
  573. </ng-container>
  574. <!-- 运维 -->
  575. <ng-container *ngIf="data.type === 'mdv2'">
  576. <div class="top-border" *ngIf="index == 0"></div>
  577. <div class="top-border" *ngIf="index > 0" [ngClass]="{'top-border3': data.data.overtimePercent > 100}"></div>
  578. <div class="left-border"></div>
  579. <div class="left_cots" (click)="openItsmDetails(data.data)">
  580. <div class="gongdan">
  581. <span class="left gongdan_name">
  582. <span [ngClass]="priorityColor(data.data.priorityId)">{{ data.data.priorityDTO?.name }} </span>{{ data.data.incidentsign }} <span nz-tooltip [nzTooltipTitle]="data.data.hosName + (data.data.repairIncidentType.value === 'public' ? data.data.repairIncidentType.name : (data.data.repairIncidentType.value === 'dept' ? data.data.department?.dept : ''))">{{ data.data.hosName }}<ng-container *ngIf="data.data.repairIncidentType.value === 'public'">{{ data.data.repairIncidentType.name }}</ng-container><ng-container *ngIf="data.data.repairIncidentType.value === 'dept'">{{ data.data.department?.dept }}</ng-container></span>
  583. </span>
  584. <div class="right_all">
  585. <span class="right">
  586. <span>{{ data.data.state.name }}</span>
  587. </span>
  588. </div>
  589. </div>
  590. <div class="didian">
  591. <span class="left">
  592. <span nz-tooltip [nzTooltipTitle]="data.data.description">{{ data.data.description }}</span>
  593. </span>
  594. </div>
  595. <div class="didian">
  596. <span class="left">
  597. <span nz-tooltip [nzTooltipTitle]="(data.data.place ? data.data.place.building.buildingName : '') + (data.data.place ? data.data.place.floorName + '层' : '') + data.data.houseNumber">{{ data.data.place ? data.data.place.building.buildingName : '' }}{{ data.data.place ? data.data.place.floorName + '层' : '' }}{{ data.data.houseNumber }}</span>
  598. <i class="icon_transport transport-a-11111 ml8" *ngIf="data.data.reqAttachment"></i>
  599. <i class="icon_transport transport-luyin ml8" *ngIf="data.data.reqRecord"></i>
  600. </span>
  601. </div>
  602. <div class="didian" *ngIf="data.data.overtimeRemark">
  603. <span class="left">
  604. <span [innerHTML]="data.data.overtimeRemark" nz-tooltip [nzTooltipTitle]="data.data.overtimeRemark"></span>
  605. </span>
  606. </div>
  607. <!-- 时间 -->
  608. <div class="shijian">
  609. <span class="left">
  610. <span>
  611. 处理人/组:{{ transferSynergetic(data.data) }}
  612. </span>
  613. </span>
  614. <span class="right">
  615. {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
  616. </span>
  617. </div>
  618. </div>
  619. <div class="right_bots display_flex col-flex align-items_center justify-content_flex-center">
  620. <input type="button" *ngIf="data.computedEditFlag" class="top_bot" value="编辑" (click)="edit(data.data)" />
  621. <input type="button" *ngIf="data.computedSubstitutionFlag" class="top_bot" value="换人处理" (click)="substitution(data.data)" />
  622. <!-- <input type="button" *ngIf="data.computedHandleFlag" class="top_bot" value="处理" (click)="handle(data.data)" /> -->
  623. <input type="button" *ngIf="coopBtns.del" class="btm_bot" value="删除" (click)="openDelModal(data.data.id, 'itsm')" />
  624. </div>
  625. <div *ngIf="data.data.overtimePercent <= 100" class="slider sgreen" [ngStyle]="{ width: data.data.overtimePercent + '%' }"></div>
  626. <div *ngIf="data.data.overtimePercent > 100" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
  627. <div class="bottom-border"></div>
  628. <div class="right-border"></div>
  629. </ng-container>
  630. </div>
  631. </ng-container>
  632. <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading3">
  633. <img src="../../assets/images/loading.gif" alt="" />
  634. </div>
  635. <div class="no_data" *ngIf="executionList.length == 0 && !loading3">
  636. 暂无数据
  637. </div>
  638. </virtual-scroller>
  639. </div>
  640. </div>
  641. </div>
  642. <!-- 右侧悬浮框 -->
  643. <div id="fixedMenu" class="fixed">
  644. <div class="left" *ngIf="fixedTab != '' && showLastItems && fixedTab != 'newOrder' && fixedTab != 'toSystem' && fixedTab != 'logout'">
  645. <!-- 叫号信息 -->
  646. <div
  647. class="con tableCon"
  648. *ngIf="fixedTab == 'queueNum' && fixedTab != 'newOrder'"
  649. >
  650. <div class="table">
  651. <nz-table
  652. #colSpanTable
  653. [nzData]="[{}]"
  654. [nzShowPagination]="false"
  655. nzBordered
  656. >
  657. <thead>
  658. <th nzWidth="10%"></th>
  659. <th nzWidth="40%"></th>
  660. <th nzWidth="10%"></th>
  661. <th nzWidth="40%"></th>
  662. </thead>
  663. <tbody>
  664. <tr>
  665. <td rowspan="2">B超</td>
  666. <td>
  667. <div
  668. class="
  669. tdiv
  670. display_flex
  671. justify-content_space-between
  672. align-items_center
  673. "
  674. >
  675. <div class="name">腹部</div>
  676. <div class="num">
  677. <div>当前叫号<span>D74</span></div>
  678. <div>队列中剩余20人</div>
  679. </div>
  680. </div>
  681. </td>
  682. <td>心脏血管</td>
  683. <td>
  684. <div
  685. class="
  686. tdiv
  687. display_flex
  688. justify-content_space-between
  689. align-items_center
  690. "
  691. >
  692. <div class="name">心脏血管</div>
  693. <div class="num">
  694. <div>当前叫号<span>D74</span></div>
  695. <div>队列中剩余20人</div>
  696. </div>
  697. </div>
  698. </td>
  699. </tr>
  700. <tr>
  701. <td>
  702. <div
  703. class="
  704. tdiv
  705. display_flex
  706. justify-content_space-between
  707. align-items_center
  708. "
  709. >
  710. <div class="name">妇科</div>
  711. <div class="num">
  712. <div>当前叫号<span>D74</span></div>
  713. <div>队列中剩余20人</div>
  714. </div>
  715. </div>
  716. </td>
  717. <td>CT</td>
  718. <td>
  719. <div class="notOpen">
  720. <div>
  721. <img
  722. src="../../assets/images/icon_jianchakong.png"
  723. alt=""
  724. />
  725. </div>
  726. <div>暂未开通</div>
  727. </div>
  728. </td>
  729. </tr>
  730. <tr>
  731. <td>核磁共振</td>
  732. <td>
  733. <div class="notOpen">
  734. <div>
  735. <img
  736. src="../../assets/images/icon_jianchakong.png"
  737. alt=""
  738. />
  739. </div>
  740. <div>暂未开通</div>
  741. </div>
  742. </td>
  743. <td rowspan="2"></td>
  744. <td rowspan="2"></td>
  745. </tr>
  746. <tr>
  747. <td></td>
  748. <td></td>
  749. </tr>
  750. </tbody>
  751. </nz-table>
  752. </div>
  753. </div>
  754. </div>
  755. <div class="right">
  756. <div class="fixedMenu" *ngIf="hsmsData.hsmsSwitch || itsmData.mdv2Switch">
  757. <div class="menuItems">
  758. <button nz-button nzType="link" class="item itemLink" (click)="showNewOrder()" [nzLoading]="getConfigTasktypeLoading || patientLogTasktypeLoading">
  759. 新建工单
  760. </button>
  761. </div>
  762. </div>
  763. <div class="fixedMenu" *ngIf="!incomingService.getPhoneNumber()">
  764. <div class="menuItems">
  765. <button nz-button nzType="link" class="item itemLink" (click)="showBindExtensionNumber()">
  766. 绑定分机
  767. </button>
  768. </div>
  769. </div>
  770. <div class="fixedMenu" *ngIf="!websocketLoading && incomingService.getPhoneNumber()">
  771. <div class="menuItems">
  772. <button nz-button nzType="link" class="item itemLink" (click)="checkOut()">
  773. 签出
  774. </button>
  775. </div>
  776. </div>
  777. <div class="fixedMenu">
  778. <div class="menuItems">
  779. <div class="others" [ngStyle]="{ height: showLastItems ? mainRole ? 35 * 5 + 'px' : 35 * 4 + 'px' : 0 }">
  780. <div [ngClass]="{ item: true, checked: fixedTab == 'orderScope' }" (click)="showOrderScope()">
  781. 工单范围
  782. </div>
  783. <div [ngClass]="{ item: true, checked: fixedTab == 'colType' }" (click)="showDisplayForm()">
  784. 展示形式
  785. </div>
  786. <div [ngClass]="{ item: true, checked: fixedTab == 'nucleicAcidPrinting' }" (click)="checkFixedTab('nucleicAcidPrinting')" *ngIf="isShowNucleicAcidPrinting">
  787. 核酸打印
  788. </div>
  789. <!-- <div [ngClass]="{ item: true, checked: fixedTab == 'queueNum' }" (click)="checkFixedTab('queueNum')">
  790. 叫号信息
  791. </div> -->
  792. <div [ngClass]="{ item: true, checked: fixedTab == 'toSystem' }" *ngIf="mainRole" (click)="checkFixedTab('toSystem')">
  793. 返回系统
  794. </div>
  795. <div [ngClass]="{ item: true, checked: fixedTab == 'logout' }" (click)="checkFixedTab('logout')">
  796. 退出系统
  797. </div>
  798. </div>
  799. </div>
  800. <div class="arrow" *ngIf="!showLastItems" (click)="fixedMenuXiala()">
  801. <i class="icon_transport transport-xiala2-01"></i>
  802. </div>
  803. <div class="arrow" *ngIf="showLastItems" (click)="fixedMenuShangla()">
  804. <i class="icon_transport transport-shangla-"></i>
  805. </div>
  806. </div>
  807. </div>
  808. <div *ngIf="showLastItems && fixedTab != '' && fixedTab != 'logout' && fixedTab != 'toSystem' && fixedTab != 'newOrder'" (click)="fixedMenuShangla()" class="fixedMark"></div>
  809. </div>
  810. <!-- 右侧悬浮框-录音盒或呼叫中心状态 -->
  811. <div id="fixedMenuAll" class="fixedAll" *ngIf="!websocketLoading && (incomingService.getPhoneNumber() || (incomingService.getSign() === 'callCenter' && (jry_state=='laidian' || jry_state=='shimang' || jry_state=='shixian' || jry_state=='tonghuazhong')))">
  812. <div class="right">
  813. <div class="fixedMenuWrap">
  814. <div class="fixedMenu" *ngIf="incomingService.getPhoneNumber()">
  815. <div class="menuItems">
  816. <div class="item itemLink ellipsis-oneline cursorDefault w100" nz-tooltip [nzTooltipTitle]="incomingService.getPhoneNumber()">
  817. {{incomingService.getPhoneNumber()}}
  818. </div>
  819. </div>
  820. </div>
  821. <!-- 录音盒状态 -->
  822. <div class="fixedMenu" *ngIf="incomingService.getPhoneNumber() && incomingService.getSign() === 'box'">
  823. <div class="menuItems">
  824. <i class="icon_transport transport-shixian call-icon"></i>
  825. </div>
  826. </div>
  827. <!-- 呼叫中心状态 -->
  828. <!-- 来电 -->
  829. <div class="fixedMenu" *ngIf="jry_state=='laidian' && incomingService.getSign() === 'callCenter'">
  830. <div class="menuItems">
  831. <i class="icon_transport transport-laidian call-icon"></i>
  832. </div>
  833. </div>
  834. <!-- 示忙 -->
  835. <div class="fixedMenu" *ngIf="jry_state=='shimang' && incomingService.getSign() === 'callCenter'">
  836. <div class="menuItems">
  837. <i class="icon_transport transport-shimang1 call-icon"></i>
  838. </div>
  839. </div>
  840. <!-- 示闲 -->
  841. <div class="fixedMenu" *ngIf="jry_state=='shixian' && incomingService.getSign() === 'callCenter'">
  842. <div class="menuItems">
  843. <i class="icon_transport transport-shixian call-icon"></i>
  844. </div>
  845. </div>
  846. <!-- 通话中 -->
  847. <div class="fixedMenu" *ngIf="jry_state=='tonghuazhong' && incomingService.getSign() === 'callCenter'">
  848. <div class="menuItems">
  849. <i class="icon_transport transport-tonghuazhong call-icon"></i>
  850. </div>
  851. </div>
  852. <div class="fixedMenu" *ngIf="incomingService.getSign() === 'callCenter' && ((jry_state == 'shimang' && isShixian) || jry_state == 'shixian')">
  853. <div class="menuItems">
  854. <button nz-button nzType="link" class="item itemLink call-status" (click)="jry_shixian($event)" *ngIf="jry_state=='shimang' && isShixian">
  855. 示闲
  856. </button>
  857. <button nz-button nzType="link" class="item itemLink call-status" (click)="jry_shimang($event)" *ngIf="jry_state == 'shixian'">
  858. 示忙
  859. </button>
  860. </div>
  861. </div>
  862. </div>
  863. </div>
  864. </div>
  865. <!-- 左侧悬浮框 -->
  866. <div id="fixedMenuLeft" class="fixedLeft" [hidden]="!itsmData.mdv2Switch && !hsmsData.hsmsSwitch">
  867. <div class="right">
  868. <div class="fixedMenu">
  869. <div class="menuItems">
  870. <div class="others">
  871. <div class="item" (click)="visitOrder()" *ngIf="itsmData.mdv2Switch">回访<span *ngIf="visitNum !== undefined" [ngClass]="{ red: visitNum > 0}">-{{visitNum}}</span></div>
  872. <div class="item" (click)="messageOrder()" *ngIf="itsmData.mdv2Switch">留言<span *ngIf="messageNum !== undefined" [ngClass]="{ red: visitNum > 0}">-{{messageNum}}</span></div>
  873. <div class="item itemLink" (click)="callOrder()">通话</div>
  874. </div>
  875. </div>
  876. </div>
  877. </div>
  878. </div>
  879. <!-- 核酸打印 -->
  880. <div
  881. class="newOrder display_flex justify-content_flex-center align-items_center" *ngIf="fixedTab == 'nucleicAcidPrinting'">
  882. <div class="modalBody">
  883. <p class="title">
  884. 汇总
  885. <i class="icon_transport transport-guanbi" (click)="nucleicAcidPrintingCancel()"></i>
  886. </p>
  887. <div class="content">
  888. <nz-table class="hospitalTable" [nzData]="nucleicAcidList" nzSize="middle" [nzShowPagination]="false"
  889. [nzLoading]="nucleicAcidLoading" [nzScroll]="{ y: '428px' }">
  890. <thead>
  891. <tr class="thead">
  892. <th nzWidth="5%">序号</th>
  893. <th nzWidth="25%">楼栋名字</th>
  894. <th nzWidth="10%">工单总量</th>
  895. <th nzWidth="60%">涉及科室</th>
  896. </tr>
  897. </thead>
  898. <tbody>
  899. <tr *ngFor="let data of nucleicAcidList;let i = index;">
  900. <td>{{ i + 1 }}</td>
  901. <td>{{ data.buildName || '无' }}</td>
  902. <td>{{ data.buildCount || '无' }}</td>
  903. <td>{{ data.deptNames || '无' }}</td>
  904. </tr>
  905. </tbody>
  906. </nz-table>
  907. <!-- <div class="pagination">
  908. <nz-pagination [(nzPageIndex)]="nucleicAcidListPageIndex" [(nzTotal)]="nucleicAcidListLength"
  909. [(nzPageSize)]="nucleicAcidListPageSize" (nzPageIndexChange)="getNucleicAcidList()"
  910. (nzPageSizeChange)="getNucleicAcidList()">
  911. </nz-pagination>
  912. </div> -->
  913. </div>
  914. <div class="btns display_flex justify-content_flex-center align-items_center">
  915. <button
  916. nz-button
  917. class="btn"
  918. nzType="primary"
  919. (click)="printAucleicAcid()"
  920. [nzLoading]="isOkLoading"
  921. *ngIf="nucleicAcidList.length"
  922. >
  923. 打印
  924. </button>
  925. <button
  926. class="btn cancel"
  927. nz-button
  928. nzType="default"
  929. (click)="nucleicAcidPrintingCancel()"
  930. >
  931. 取消
  932. </button>
  933. </div>
  934. </div>
  935. </div>
  936. <!-- 打印的内容 -->
  937. <div id="print-section" hidden>
  938. <div *ngFor="let building of nucleicAcidList;let first = first;" [ngStyle]="{'page-break-before':first?'':'always'}" style="overflow: hidden;">
  939. <h1 style="text-align: center;position: relative;"><span style="position: absolute;left: 0;font-size:0.5em;top: 50%;transform: translateY(-50%);">{{printDate|date:'yyyy-MM-dd HH:mm'}}</span>{{building.buildName}}<img style="width: 50px;position: absolute;right: 50px;" [src]="mapQrcodes[building.buildId]"></h1>
  940. <div style="width: 50%;float: left;">
  941. <div style="display: flex;justify-content: center;text-align: center;font-weight: bold;">
  942. <span style="flex: 2; border: 1px solid #ccc;">科室名称</span>
  943. <span style="flex: 1; border-bottom: 1px solid #ccc;border-right: 1px solid #ccc;border-top: 1px solid #ccc;">数量</span>
  944. </div>
  945. </div>
  946. <div style="width: 50%;float: left;">
  947. <div style="display: flex;justify-content: center;text-align: center;font-weight: bold;">
  948. <span style="flex: 2; border-bottom: 1px solid #ccc;border-right: 1px solid #ccc;border-top: 1px solid #ccc;">科室名称</span>
  949. <span style="flex: 1; border-bottom: 1px solid #ccc;border-right: 1px solid #ccc;border-top: 1px solid #ccc;">数量</span>
  950. </div>
  951. </div>
  952. <div *ngFor="let item of building.deptData;let even = even;" style="width: 50%;float: left;">
  953. <div style="display: flex;justify-content: center;text-align: center;">
  954. <span style="flex: 2;word-break: break-all; border-bottom: 1px solid #ccc;border-right: 1px solid #ccc;" [ngStyle]="{'border-left':even?'1px solid #ccc':''}">{{item.deptName}}<span *ngIf="item.workOrderRemarks">+{{item.workOrderRemarks.slice(0,2)}}</span></span>
  955. <span style="flex: 1; border-bottom: 1px solid #ccc;border-right: 1px solid #ccc;"></span>
  956. </div>
  957. </div>
  958. </div>
  959. </div>
  960. <button ngxPrint printSectionId="print-section" #printBtn hidden>打印</button>
  961. <!-- 新建工单 -->
  962. <div class="newOrder display_flex justify-content_flex-center align-items_center" *ngIf="newOrderShow && newOrderShowOpen" (click)="clickExtra($event)">
  963. <div class="modalBody">
  964. <div class="title" *ngIf="currentTabIndex !== '故障报修' && currentTabIndex !== '政务值班'">
  965. <div class="newTop">
  966. <div class="name">来电咨询</div>
  967. <div class="newTopItem">
  968. <span class="grayFont">申请科室:</span>
  969. <nz-select style="width: 146px" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="changeInp('hsms', $event)" nzPlaceHolder="请选择申请科室" [(ngModel)]="applyDept" (ngModelChange)="changeApply($event)" (nzOpenChange)="openChangeApply($event)">
  970. <ng-container *ngFor="let option of applicationDepartmentList">
  971. <nz-option *ngIf="!isLoadingApply" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  972. </ng-container>
  973. <nz-option *ngIf="isLoadingApply" nzDisabled nzCustomContent>
  974. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  975. </nz-option>
  976. </nz-select>
  977. </div>
  978. <div class="newTopItem" *ngIf="false">
  979. <span class="grayFont">任务类型:</span>
  980. <nz-select *ngIf="applyDept" style="width: 146px" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="onSearchTaskBuild($event)" nzPlaceHolder="请选择任务类型" [(ngModel)]="taskBuild" (ngModelChange)="changeTaskBuild($event)">
  981. <ng-container *ngFor="let option of searchTaskList">
  982. <nz-option *ngIf="!searchTaskLoading" [nzLabel]="option.taskTypeName" [nzValue]="option.sid">
  983. </nz-option>
  984. </ng-container>
  985. <nz-option *ngIf="searchTaskLoading" nzDisabled nzCustomContent>
  986. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  987. </nz-option>
  988. </nz-select>
  989. </div>
  990. <div class="newTopItem" *ngIf="isShowResidenceNo">
  991. <span class="grayFont">住院号:</span>
  992. <input style="width: 146px" nz-input placeholder="请输入住院号" [(ngModel)]="residenceNo" (ngModelChange)="changeResidenceNo($event)" />
  993. </div>
  994. <div class="newTopItem" *ngIf="callNumber">
  995. <span class="grayFont">来电电话:{{callNumber}}</span>
  996. </div>
  997. </div>
  998. </div>
  999. <div class="title" *ngIf="currentTabIndex === '故障报修'">
  1000. <div class="newTop">
  1001. <div class="name">来电咨询</div>
  1002. <div class="newTopItem" *ngIf="hospitalModel!=1">
  1003. <span class="grayFont required">院区:</span>
  1004. <nz-select style="width: 160px" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzPlaceHolder="请选择院区" [(ngModel)]="incidentModel.hosId" (ngModelChange)="changeApplyHospital($event)" nzAllowClear [nzDisabled]="buildType === '编辑事件'">
  1005. <ng-container *ngFor="let option of applicationHospitalList">
  1006. <nz-option *ngIf="!isLoading" [nzLabel]="option.hosName" [nzValue]="option.id"></nz-option>
  1007. </ng-container>
  1008. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  1009. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  1010. </nz-option>
  1011. </nz-select>
  1012. </div>
  1013. <div class="newTopItem" [hidden]="incidentModel.repairIncidentType === 'public'">
  1014. <span class="grayFont required">申请科室:</span>
  1015. <nz-select style="width: 160px" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="changeInp('itsm', $event)" nzPlaceHolder="请选择申请科室" [(ngModel)]="incidentModel.department" (ngModelChange)="changeApplyDept($event)" nzAllowClear (nzOpenChange)="openChangeApplyDept($event)">
  1016. <ng-container *ngFor="let option of applicationDeptList">
  1017. <nz-option *ngIf="!isLoadingApply" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  1018. </ng-container>
  1019. <nz-option *ngIf="isLoadingApply" nzDisabled nzCustomContent>
  1020. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  1021. </nz-option>
  1022. </nz-select>
  1023. </div>
  1024. <div class="newTopItem">
  1025. <span class="grayFont" [ngClass]="{'required': publicRepair && applicantMustFillIn==1}">申请人:</span>
  1026. <ng-container *ngIf="buildType === '报修转事件'">{{incidentMsg.requesterName}}</ng-container>
  1027. <ng-container *ngIf="buildType !== '报修转事件'">
  1028. <nz-select style="width: 160px" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="changeCommonInp('requester', $event)" nzPlaceHolder="请选择申请人" [(ngModel)]="incidentModel.requester" (ngModelChange)="changeApplyRequester($event)" nzAllowClear (nzOpenChange)="openChangeApplyRequester($event)">
  1029. <ng-container *ngFor="let option of applicationRequesterList">
  1030. <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
  1031. </ng-container>
  1032. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  1033. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  1034. </nz-option>
  1035. </nz-select>
  1036. <label [hidden]="incidentModel.repairIncidentType === 'public'" nz-checkbox [(ngModel)]="isRelatedDepartment" (ngModelChange)="changeApplyRelatedDepartment($event)" class="ml8">关联查</label>
  1037. </ng-container>
  1038. </div>
  1039. <div class="newTopItem" *ngIf="incidentModel.incomingPhone">
  1040. <span class="grayFont">来电电话:{{incidentModel.incomingPhone}}</span>
  1041. </div>
  1042. <div class="newTopItem" *ngIf="deptRepair && publicRepair || !deptRepair && !publicRepair">
  1043. <span class="grayFont">
  1044. <nz-radio-group [nzDisabled]="buildType === '编辑事件'" [(ngModel)]="incidentModel.repairIncidentType" (ngModelChange)="changeRepairIncidentType($event)">
  1045. <label nz-radio [nzValue]="item.value" *ngFor="let item of repairIncidentTypeList">{{item.name}}</label>
  1046. </nz-radio-group>
  1047. </span>
  1048. </div>
  1049. </div>
  1050. </div>
  1051. <div nz-row class="content">
  1052. <div nz-col nzSpan="15" class="col left">
  1053. <div class="tabs">
  1054. <div class="tabs__inner" #tab>
  1055. <div class="tabs__wrap" [style.transform]="'translateX(' + disX + 'px)'">
  1056. <ng-container *ngFor="let item of workTypesArrange;let index = index;">
  1057. <div [ngClass]="{ tab: true, checked: currentTabIndex == item.key}" (click)="tabClick(item.key)" *ngIf="buildType !== '编辑事件' || (buildType === '编辑事件' && item.key == '故障报修')">
  1058. {{ item.key }}
  1059. </div>
  1060. </ng-container>
  1061. </div>
  1062. </div>
  1063. <div class="tabs__operate" *ngIf="workTypesFlag && applyDept">
  1064. <i class="tabs__Icon--right icon_transport transport-xiangzuo" (click)="toLeft()"></i>
  1065. <i class="tabs__Icon--left icon_transport transport-xiangzuo" (click)="toRight()"></i>
  1066. </div>
  1067. </div>
  1068. <!-- 底部tab页 -->
  1069. <div class="bottomWrap">
  1070. <ng-container *ngFor="let item of workTypesArrange;let index = index;">
  1071. <ng-container *ngIf="applyDept">
  1072. <!-- 患者转运 -->
  1073. <overlay-scrollbars #osComponentRef9 *ngIf="currentTabIndex == item.key && item.key == '患者转运' && !newLoading" class="bottom">
  1074. <div class="bottom255">
  1075. <form nz-form [formGroup]="validateFormZy">
  1076. <div nz-row [nzGutter]="24">
  1077. <div nz-col [nzSpan]="24">
  1078. <div class="control-flex">
  1079. <nz-form-item nz-row class="patient-control">
  1080. <nz-form-label style="line-height: 40px;" class="label" [nzSpan]="8" nzRequired nzFor="patient">患者信息</nz-form-label>
  1081. <nz-form-control class="control" [nzSpan]="16" nzErrorTip="请选择患者信息!">
  1082. <nz-select style="width: 160px" formControlName="patient" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchPatientList(radioValueZy == deathTasktypeId && endDeptZy !== null ? endDeptZy : applyDept, $event)" nzAllowClear nzPlaceHolder="请选择患者信息" [(ngModel)]="patientZy" (ngModelChange)="selectPatientZy($event)">
  1083. <ng-container *ngFor="let option of patientList">
  1084. <nz-option *ngIf="!isLoadingPatient" [nzLabel]="(option.bednum ? option.bednum + '床 ' : '') + (option.patientname || '') + ' ' + (option.residenceNo || '')" [nzValue]="option.patientCode"></nz-option>
  1085. </ng-container>
  1086. <nz-option *ngIf="isLoadingPatient" nzDisabled nzCustomContent>
  1087. <i nz-icon nzType="loading" class="loading-icon"></i>
  1088. 搜索中...
  1089. </nz-option>
  1090. </nz-select>
  1091. </nz-form-control>
  1092. </nz-form-item>
  1093. <nz-form-item class="ml8" class="goods-control" *ngIf="inspectAndPatientTransportConfig.enableGoods == 1">
  1094. <nz-form-label style="line-height: 40px;" class="label" nzFor="goods">携带设备</nz-form-label>
  1095. <nz-form-control class="control" nzErrorTip="请选择携带设备!">
  1096. <nz-checkbox-group [(ngModel)]="goodsNow" formControlName="goods"></nz-checkbox-group>
  1097. </nz-form-control>
  1098. </nz-form-item>
  1099. </div>
  1100. </div>
  1101. <div nz-col [nzSpan]="24" *ngIf="inspectAndPatientTransportConfig.enableTripType == 1">
  1102. <div class="control-flex">
  1103. <nz-form-item style="margin-left: 0;" class="goods-control">
  1104. <nz-form-label style="line-height: 40px;" class="label" nzFor="inspectScore">陪检方式</nz-form-label>
  1105. <nz-form-control class="control" nzErrorTip="请选择陪检方式!">
  1106. <nz-radio-group formControlName="inspectScore" [(ngModel)]="workOrderInspectScore">
  1107. <label nz-radio [nzValue]="item.id" *ngFor="let item of workOrderInspectScoreList">{{item.inspectMode}}</label>
  1108. </nz-radio-group>
  1109. </nz-form-control>
  1110. </nz-form-item>
  1111. </div>
  1112. </div>
  1113. <div nz-col [nzSpan]="24" style="max-height: 310px">
  1114. <nz-form-item>
  1115. <nz-form-label class="label" [nzSm]="24" [nzXs]="24" nzRequired nzFor="taskType">任务类型</nz-form-label>
  1116. <nz-form-control class="control" [nzSm]="24" [nzXs]="24" nzErrorTip="请选择任务类型!">
  1117. <div class="radios">
  1118. <overlay-scrollbars #osComponentRef10 [ngStyle]="{ height: '100%' }">
  1119. <nz-radio-group formControlName="taskType" nz-row [ngModel]="radioValueZy" (ngModelChange)="radioChangeZy($event, index)">
  1120. <div nz-row>
  1121. <label [title]="item1.taskTypeName" nz-col nz-radio [nzValue]="item1.id" *ngFor="let item1 of workTypesArrange[index].value">{{ item1.taskTypeName }}</label>
  1122. </div>
  1123. </nz-radio-group>
  1124. </overlay-scrollbars>
  1125. </div>
  1126. </nz-form-control>
  1127. </nz-form-item>
  1128. </div>
  1129. <div nz-col [nzSpan]="24" *ngIf="isTaskTypeInspect && radioValueZy">
  1130. <div class="pos">
  1131. <div class="pos-item" style="left: 90px;top: 7px;">
  1132. <span style="font-size: 14px">{{inspectToday| date:'yyyy-MM-dd'}}</span>
  1133. <button nz-button nzSize="small" nzType="default" class="pos-btn ml8" (click)="previousDayNew()">
  1134. 上一日
  1135. </button>
  1136. <button nz-button nzSize="small" nzType="default" class="pos-btn ml8" (click)="todayNew()">
  1137. 今天
  1138. </button>
  1139. <button nz-button nzSize="small" nzType="default" class="pos-btn ml8" (click)="nextDayNew()">
  1140. 下一日
  1141. </button>
  1142. </div>
  1143. <!-- 检查 -->
  1144. <nz-form-item>
  1145. <nz-form-label [nzSm]="24" [nzXs]="24" nzFor="linkCheck" style="text-align: left;">关联的检查</nz-form-label>
  1146. <nz-form-control class="datesGroup" *ngIf="linkCheckLis.length">
  1147. <nz-checkbox-wrapper nz-row class="linkCheckCheck w100" ngDefaultControl formControlName="linkCheck" (nzOnChange)="linkCheckLisChange($event)">
  1148. <div nz-row nz-col nzSpan="12" *ngFor="let item of linkCheckLis">
  1149. <div nz-col nzSpan="24">
  1150. <label nz-checkbox [nzValue]="item">{{ item.label}}</label>
  1151. <i class="icon_transport transport-zu1468 priority" *ngIf="item.priority === 1 || item.priority === '1'"></i>
  1152. </div>
  1153. </div>
  1154. </nz-checkbox-wrapper>
  1155. <div class="red" style="line-height: normal; font-weight: bold" *ngIf="currentTasktype.isMoreDept === 0 && isInspects">
  1156. 您选择的检查包含了多个科室,请您只包含一个科室。
  1157. </div>
  1158. </nz-form-control>
  1159. <div class="noInspect" *ngIf="!linkCheckLis.length">暂无关联的检查</div>
  1160. </nz-form-item>
  1161. </div>
  1162. </div>
  1163. <div *ngIf="!isTaskTypeInspect && radioValueZy" nz-col [nzSpan]="deptZyList['startStatus'] != 201 ? 12 : 24" [ngStyle]="{ display: (deptZyList['startStatus'] != 201 && !isTaskTypeInspect) ? 'block' : 'none'}">
  1164. <nz-form-item>
  1165. <nz-form-label class="label" [nzSm]="24" [nzXs]="24" nzRequired nzFor="startDept">起点科室</nz-form-label>
  1166. <nz-form-control class="control" [nzSm]="24" [nzXs]="24" nzErrorTip="请选择起点科室!">
  1167. <nz-select formControlName="startDept" [nzDisabled]="deptZyList.startStatus == 201 || deptZyList.startStatus == 203 || deptZyList.startStatus == 206" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType" (nzOnSearch)="searchHosDepartment(checkedHos, 'start', $event)" nzAllowClear nzPlaceHolder="请选择起点科室" [(ngModel)]="startDeptZy">
  1168. <ng-container *ngFor="let option of deptZyList.startDept">
  1169. <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  1170. </ng-container>
  1171. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  1172. <i nz-icon nzType="loading" class="loading-icon"></i>
  1173. 搜索中...
  1174. </nz-option>
  1175. </nz-select>
  1176. </nz-form-control>
  1177. </nz-form-item>
  1178. </div>
  1179. <div *ngIf="!isTaskTypeInspect && radioValueZy" nz-col [nzSpan]="deptZyList['startStatus'] != 201 ? 12 : 24">
  1180. <nz-form-item>
  1181. <nz-form-label class="label" [nzSm]="24" [nzXs]="24" nzRequired nzFor="endDepts">终点科室</nz-form-label>
  1182. <nz-form-control class="control" [nzSm]="24" [nzXs]="24" nzErrorTip="请选择终点科室!">
  1183. <nz-select formControlName="endDepts" [nzDisabled]="deptZyList.endStatus == 201 || deptZyList.endStatus == 203 || deptZyList.endStatus == 206" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType" (nzOnSearch)="searchHosDepartment(checkedHos, 'end', $event)" nzAllowClear nzPlaceHolder="请选择终点科室" [(ngModel)]="endDeptZy" (ngModelChange)="endDeptZyChange()">
  1184. <ng-container *ngFor="let option of deptZyList.endDept">
  1185. <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  1186. </ng-container>
  1187. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  1188. <i nz-icon nzType="loading" class="loading-icon"></i>
  1189. 搜索中...
  1190. </nz-option>
  1191. </nz-select>
  1192. </nz-form-control>
  1193. </nz-form-item>
  1194. </div>
  1195. <div nz-col [nzSpan]="24" *ngIf="radioValueZy && deptZyList.taskType && deptZyList.taskType.remarksSwitch == 1">
  1196. <nz-form-item>
  1197. <nz-form-label class="label" [nzSm]="3" [nzXs]="3" nzFor="workOrderRemarkZy">注意事项</nz-form-label>
  1198. <nz-form-control class="control" [nzSm]="24" [nzXs]="24" nzErrorTip="请填写注意事项!">
  1199. <div class="noteSign">
  1200. <textarea class="noteFocus" (focus)="focusNote()" formControlName="workOrderRemarkZy" nz-input [placeholder]="deptZyList.taskType.remarksPrompts" [nzAutosize]="{ minRows: 3, maxRows: 5 }" maxlength="100" [(ngModel)]="workOrderRemarkZy"></textarea>
  1201. <div class="noteList" *ngIf="isShowNoteList">
  1202. <ng-container *ngIf="!noteLoading && noteList.length">
  1203. <div class="noteItem ellipsis-oneline" *ngFor="let item of noteList" [title]="item.name" (click)="selectNote(item.name)">{{item.name}}</div>
  1204. </ng-container>
  1205. <div *ngIf="!noteLoading && !noteList.length" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
  1206. <nz-empty></nz-empty>
  1207. </div>
  1208. <div *ngIf="noteLoading" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
  1209. <nz-spin nzSimple></nz-spin>
  1210. </div>
  1211. </div>
  1212. </div>
  1213. </nz-form-control>
  1214. </nz-form-item>
  1215. </div>
  1216. <!-- 预约建单时间-患者其他服务--start -->
  1217. <div nz-col [nzSpan]="24" class="pos">
  1218. <!-- 预约陪检 -->
  1219. <nz-form-item class="pos-item">
  1220. <nz-form-control>
  1221. <label nz-checkbox [(ngModel)]="isYyInspect" (ngModelChange)="yyInspectChange($event)" [ngModelOptions]="{ standalone: true }" style="font-weight: bold">预约陪检</label>
  1222. <span class="red pos-red">请您填写实际预约检查时间,系统会根据时间安排人员进行陪检!</span>
  1223. </nz-form-control>
  1224. </nz-form-item>
  1225. <!-- 预约建单时间-患者其他服务 -->
  1226. <nz-form-item class="yyTime" [ngClass]="{yyTimeError: (!yyTimeZy || !yyDateZy) && clickYYZyFlag}">
  1227. <nz-form-label [nzSm]="24" [nzXs]="24">预约建单时间</nz-form-label>
  1228. <nz-form-control [nzSm]="24" [nzXs]="24">
  1229. <nz-date-picker [nzDisabled]="!isYyInspect" [(ngModel)]="yyDateZy" (ngModelChange)="yyDateChange($event)" [ngModelOptions]="{ standalone: true }" [nzAllowClear]="false" [nzDisabledDate]="disabledyyDateZy" [nzShowToday]="false"></nz-date-picker>
  1230. <nz-time-picker [nzDisabled]="!isYyInspect || !yyDateZy" class="ml8" nzFormat="HH:mm" [nzMinuteStep]="inspectAndPatientTransportConfig.timeMod" [nzSecondStep]="60" [(ngModel)]="yyTimeZy" (ngModelChange)="yyTimeZyChange($event)" [ngModelOptions]="{ standalone: true }" [nzDisabledHours]="disabledHours" [nzDisabledMinutes]="disabledMinutes" [nzAllowEmpty]="false">
  1231. </nz-time-picker>
  1232. <button [disabled]="!isYyInspect || (isYyInspect && !yyDateZy)" nz-button nzType="primary" class="ml8" (click)="nextDayZy()">
  1233. 下一日
  1234. </button>
  1235. </nz-form-control>
  1236. <div class="red w100" *ngIf="(!yyTimeZy || !yyDateZy) && clickYYZyFlag">
  1237. 请填写预约建单时间!
  1238. </div>
  1239. </nz-form-item>
  1240. </div>
  1241. <!-- 预约建单时间-患者其他服务--end -->
  1242. </div>
  1243. </form>
  1244. </div>
  1245. </overlay-scrollbars>
  1246. <!-- 物品配送 -->
  1247. <overlay-scrollbars #osComponentRef13 class="bottom" *ngIf="currentTabIndex == item.key && item.key == '物品配送' && !newLoading">
  1248. <div class="bottom255">
  1249. <form nz-form [formGroup]="validateFormQt">
  1250. <div nz-row [nzGutter]="24">
  1251. <div nz-col [nzSpan]="24" style="max-height: 268px">
  1252. <nz-form-item>
  1253. <nz-form-label class="label" [nzSm]="3" [nzXs]="3" nzRequired nzFor="taskTypeQt">任务类型</nz-form-label>
  1254. <div class="ellipsis-oneline">
  1255. <span class="customRemarks mr8 countRemark" [ngClass]="{ active: countRemarkIndex == i }" (click)="addCountRemark(item, index, i)" *ngFor="let item of countRemarkList;let i = index;">{{ item }}</span>
  1256. </div>
  1257. <nz-form-control class="control" [nzSm]="24" [nzXs]="24" nzErrorTip="请选择任务类型!">
  1258. <div class="radios" style="max-height: 225px" *ngIf="!searchTaskLoading">
  1259. <overlay-scrollbars #osComponentRef11 [ngStyle]="{ height: '100%' }">
  1260. <nz-radio-group formControlName="taskTypeQt" nz-row [(ngModel)]="radioValueQt" (ngModelChange)="radioChangeQt(radioValueQt)">
  1261. <div nz-row>
  1262. <label [title]="item1.taskTypeName" nz-col nz-radio [nzValue]="item1.id" *ngFor="let item1 of workTypesArrange[index].value">{{ item1.taskTypeName }}</label>
  1263. </div>
  1264. </nz-radio-group>
  1265. </overlay-scrollbars>
  1266. </div>
  1267. <div class="radios display_flex justify-content_flex-center align-items_center" style="max-height: 225px" *ngIf="searchTaskLoading">
  1268. <nz-spin nzSimple></nz-spin>
  1269. </div>
  1270. </nz-form-control>
  1271. </nz-form-item>
  1272. </div>
  1273. <div *ngIf="deptQtList.taskType && deptQtList.taskType.associationType.value !== 'specimen'" nz-col [nzSpan]="12" [ngStyle]="{ display: deptQtList['startStatus'] != 201 ? 'block' : 'none' }">
  1274. <nz-form-item>
  1275. <nz-form-label class="label" [nzSm]="24" [nzXs]="24" nzRequired nzFor="startDeptQt">起点科室</nz-form-label>
  1276. <nz-form-control class="control" [nzSm]="24" [nzXs]="24" nzErrorTip="请选择起点科室!">
  1277. <nz-select formControlName="startDeptQt" [nzDisabled]="deptQtList.startStatus == 201 || deptQtList.startStatus == 203" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType" (nzOnSearch)="searchHosDepartmentQt(checkedHos, 'start', $event)" nzAllowClear nzPlaceHolder="请选择起点科室" [(ngModel)]="startDeptQt">
  1278. <ng-container *ngFor="let option of deptQtList.startDept">
  1279. <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  1280. </ng-container>
  1281. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  1282. <i nz-icon nzType="loading" class="loading-icon"></i>
  1283. 搜索中...
  1284. </nz-option>
  1285. </nz-select>
  1286. </nz-form-control>
  1287. </nz-form-item>
  1288. </div>
  1289. <div *ngIf="deptQtList.taskType && deptQtList.taskType.associationType.value !== 'specimen'" nz-col [nzSpan]="12">
  1290. <nz-form-item>
  1291. <nz-form-label class="label" [nzSm]="24" [nzXs]="24" nzRequired nzFor="endDeptsQt">终点科室</nz-form-label>
  1292. <nz-form-control class="control" [nzSm]="24" [nzXs]="24" nzErrorTip="请选择终点科室!">
  1293. <nz-select formControlName="endDeptsQt" [nzDisabled]="deptQtList.endStatus == 201 || deptQtList.endStatus == 203" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType" (nzOnSearch)="searchHosDepartmentQt(checkedHos, 'end', $event)"
  1294. nzAllowClear nzPlaceHolder="请选择终点科室" [(ngModel)]="endDeptQt">
  1295. <ng-container *ngFor="let option of deptQtList.endDept">
  1296. <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  1297. </ng-container>
  1298. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  1299. <i nz-icon nzType="loading" class="loading-icon"></i>
  1300. 搜索中...
  1301. </nz-option>
  1302. </nz-select>
  1303. </nz-form-control>
  1304. </nz-form-item>
  1305. </div>
  1306. <div nz-col [nzSpan]="24" style="padding-bottom: 8px;padding-top: 16px;" *ngIf="deptQtList.taskType && deptQtList.taskType.associationType.value === 'specimen'">
  1307. 起点科室默认为申请科室,终点科室为检验科室,确定后即可新建工单!
  1308. </div>
  1309. <div nz-col [nzSpan]="24" *ngIf="deptQtList.taskType && deptQtList.taskType.remarksSwitch == 1">
  1310. <nz-form-item>
  1311. <nz-form-label class="label" [nzSm]="2" [nzXs]="2" nzFor="workOrderRemark">工单备注</nz-form-label>
  1312. <span class="customRemarks" *ngFor="let item of deptQtList.taskType.customRemarks" (click)="addRemarks(item)">【{{ item }}】</span>
  1313. <nz-form-control class="control" [nzSm]="24" [nzXs]="24" nzErrorTip="请填写工单备注!">
  1314. <textarea formControlName="workOrderRemark" nz-input [placeholder]="deptQtList.taskType.remarksPrompts" [nzAutosize]="{ minRows: 3, maxRows: 5 }" maxlength="100" [(ngModel)]="workOrderRemark" #remarksEle></textarea>
  1315. </nz-form-control>
  1316. </nz-form-item>
  1317. </div>
  1318. <!-- 预约建单时间-其他临床服务--start -->
  1319. <div nz-col [nzSpan]="24" class="pos" *ngIf="deptQtList.taskType && deptQtList.taskType.associationType.value === 'other'">
  1320. <!-- 预约陪检 -->
  1321. <nz-form-item class="pos-item">
  1322. <nz-form-control>
  1323. <label nz-checkbox [(ngModel)]="isYyInspect" (ngModelChange)="yyInspectChange($event)" [ngModelOptions]="{ standalone: true }" style="font-weight: bold">预约陪检</label>
  1324. </nz-form-control>
  1325. </nz-form-item>
  1326. <!-- 预约建单时间 -->
  1327. <nz-form-item class="yyTime" [ngClass]="{ yyTimeError: (!yyTime || !yyDate) && clickYYFlag }">
  1328. <nz-form-label [nzSm]="24" [nzXs]="24">预约建单时间</nz-form-label>
  1329. <nz-form-control [nzSm]="24" [nzXs]="24">
  1330. <nz-date-picker [nzDisabled]="!isYyInspect" [(ngModel)]="yyDate" (ngModelChange)="yyDateChange($event)" [ngModelOptions]="{ standalone: true }" [nzAllowClear]="false" [nzDisabledDate]="disabledyyDate" [nzShowToday]="false">
  1331. </nz-date-picker>
  1332. <nz-time-picker [nzDisabled]="!isYyInspect || !yyDate" class="ml8" nzFormat="HH:mm" [nzMinuteStep]="inspectAndPatientTransportConfig.timeMod" [nzSecondStep]="60" [(ngModel)]="yyTime" (ngModelChange)="yyTimeChange($event)" [ngModelOptions]="{ standalone: true }" [nzDisabledHours]="disabledHours" [nzDisabledMinutes]="disabledMinutes" [nzAllowEmpty]="false">
  1333. </nz-time-picker>
  1334. <button [disabled]="!isYyInspect || (isYyInspect && !yyDate)" nz-button nzType="primary" class="ml8" (click)="nextDay()">
  1335. 下一日
  1336. </button>
  1337. </nz-form-control>
  1338. <div class="red w100" *ngIf="(!yyTime || !yyDate) && clickYYFlag">
  1339. 请填写预约建单时间!
  1340. </div>
  1341. </nz-form-item>
  1342. </div>
  1343. <!-- 预约建单时间-其他临床服务--end -->
  1344. </div>
  1345. </form>
  1346. </div>
  1347. </overlay-scrollbars>
  1348. </ng-container>
  1349. <!-- 故障报修 -->
  1350. <overlay-scrollbars #osComponentRef15 class="bottom_req" *ngIf="currentTabIndex === '故障报修'">
  1351. <div class="req">
  1352. <div class="row">
  1353. <div class="col flex4">
  1354. <span class="name">详细地址:</span>
  1355. <nz-select class="w100" [(ngModel)]="incidentModel.area" (ngModelChange)="changeApplyBuilding($event)" nzAllowClear nzPlaceHolder="请选择楼栋">
  1356. <nz-option [nzValue]="item.id" [nzLabel]="item.buildingName" *ngFor="let item of applicationBuildingList"></nz-option>
  1357. </nz-select>
  1358. </div>
  1359. <div class="col flex3">
  1360. <nz-select class="w100" [(ngModel)]="incidentModel.place" nzAllowClear nzPlaceHolder="请选择楼层">
  1361. <nz-option [nzValue]="item.id" [nzLabel]="item.floorName" *ngFor="let item of applicationFloorList"></nz-option>
  1362. </nz-select>
  1363. </div>
  1364. <div class="col flex7">
  1365. <input class="addressFocus" nz-input placeholder="请填写详细地址" [(ngModel)]="incidentModel.houseNumber" (focus)="focusAddress()" />
  1366. <div class="addressList" *ngIf="isShowAddressList">
  1367. <ng-container *ngIf="!addressLoading && addressList.length">
  1368. <div class="addressItem ellipsis-oneline" *ngFor="let item of addressList" [title]="item.name" (click)="selectAddress(item.name)">{{item.name}}</div>
  1369. </ng-container>
  1370. <div *ngIf="!addressLoading && !addressList.length" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
  1371. <nz-empty></nz-empty>
  1372. </div>
  1373. <div *ngIf="addressLoading" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
  1374. <nz-spin nzSimple></nz-spin>
  1375. </div>
  1376. </div>
  1377. </div>
  1378. </div>
  1379. <div class="row">
  1380. <div class="col">
  1381. <span class="name">科室电话:</span>
  1382. <ng-container *ngIf="incidentMsg.deptManyPhone">{{incidentMsg.deptManyPhone|stringToFirstValue}}<em (click)="importPhone(incidentMsg.deptManyPhone, true)">引入</em></ng-container>
  1383. </div>
  1384. <div class="col">
  1385. <span class="name">报修人电话:</span>
  1386. <ng-container *ngIf="incidentMsg.requesterPhone">{{incidentMsg.requesterPhone}}<em (click)="importPhone(incidentMsg.requesterPhone)">引入</em></ng-container>
  1387. </div>
  1388. <div class="col">
  1389. <ng-container *ngIf="buildType !== '编辑事件'">
  1390. <span class="name">来电电话:</span>
  1391. <ng-container *ngIf="incidentModel.incomingPhone">{{incidentModel.incomingPhone}}<em (click)="importPhone(incidentModel.incomingPhone)">引入</em></ng-container>
  1392. </ng-container>
  1393. </div>
  1394. </div>
  1395. <div class="row">
  1396. <div class="col">
  1397. <span class="name">联系人:</span>
  1398. <input class="w100" nz-input placeholder="请填写联系人" [(ngModel)]="incidentModel.contacts" />
  1399. </div>
  1400. <div class="col">
  1401. <span class="name required">联系电话:</span>
  1402. <input class="w100" nz-input placeholder="请填写联系电话" [(ngModel)]="incidentModel.contactsInformation" />
  1403. </div>
  1404. <div class="col">
  1405. <span class="name">责任部门:</span>
  1406. {{incidentModel.duty ? incidentModel.duty.hosName : ''}}
  1407. </div>
  1408. </div>
  1409. <div class="row">
  1410. <div class="col">
  1411. <span class="name required">故障现象:</span>
  1412. <nz-select class="w100" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="changeCommonInp('category', $event)" nzPlaceHolder="请选择故障现象" [(ngModel)]="incidentModel.category" (ngModelChange)="changeApplyCategory($event)" (nzOpenChange)="openChangeApplyCategory($event)">
  1413. <ng-container *ngFor="let option of applicationCategoryList">
  1414. <nz-option *ngIf="!isLoading" [nzLabel]="option.mutiCategory" [nzValue]="option.id"></nz-option>
  1415. </ng-container>
  1416. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  1417. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  1418. </nz-option>
  1419. </nz-select>
  1420. </div>
  1421. </div>
  1422. <div class="row">
  1423. <div class="col alignItemsStart">
  1424. <span class="name required">故障描述:</span>
  1425. <nz-input-group [nzSuffix]="suffixTemplate">
  1426. <textarea class="w100" nz-input rows="4" placeholder="请填写故障描述" [(ngModel)]="incidentModel.description"></textarea>
  1427. </nz-input-group>
  1428. <span #suffixTemplate class="ant-input-clear-icon ml8" *ngIf="incidentModel.description" (click)="incidentModel.description = null">清空</span>
  1429. </div>
  1430. </div>
  1431. <div class="row">
  1432. <div class="col">
  1433. <span class="name required">优先级:</span>
  1434. <nz-select class="w100" [(ngModel)]="incidentModel.priorityId" nzAllowClear nzPlaceHolder="请选择优先级" [nzDisabled]="buildType === '编辑事件'">
  1435. <nz-option [nzValue]="item.id" [nzLabel]="item.name" *ngFor="let item of applicationPriorityList"></nz-option>
  1436. </nz-select>
  1437. </div>
  1438. <div class="col">
  1439. <span class="name required">报修来源:</span>
  1440. <nz-select class="w100" [(ngModel)]="incidentModel.source" nzAllowClear nzPlaceHolder="请选择报修来源">
  1441. <nz-option [nzValue]="item.id" [nzLabel]="item.name" *ngFor="let item of applicationSourceList"></nz-option>
  1442. </nz-select>
  1443. </div>
  1444. <div class="col">
  1445. <span class="name">预约时间:</span>
  1446. <nz-date-picker style="width: 150px;" [(ngModel)]="incidentModel.yyTime" nzShowTime></nz-date-picker>
  1447. </div>
  1448. </div>
  1449. <div class="row">
  1450. <div class="col">
  1451. <span class="name">报修图片:</span>
  1452. <div class="value w100 upload">
  1453. <ng-container *ngIf="repairImgs.length === 0">
  1454. <nz-upload nzListType="picture-card" [(nzFileList)]="fileList" [nzShowUploadList]="showUploadList" [nzPreview]="handlePreview" nzFileType="image/jpeg,image/png" nzAccept="image/jpeg,image/png" [nzShowButton]="fileList.length < 3" [nzBeforeUpload]="beforeUpload" [nzAction]="temporarilyUrl" [nzSize]="10240">
  1455. <i nz-icon nzType="plus"></i>
  1456. <div class="ant-upload-text">上传照片</div>
  1457. </nz-upload>
  1458. <nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible = false">
  1459. <ng-template #modalContent>
  1460. <img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
  1461. </ng-template>
  1462. </nz-modal>
  1463. <div class="tips">(支持JPG/PNG格式图片,单张大小10M以内)</div>
  1464. </ng-container>
  1465. <div class="thumbList" *ngIf="repairImgs.length > 0">
  1466. <div class="thumb" *ngFor="let item of repairImgs;let index = index;" (click)="previewImageHandler(repairImgs, index)"><img [src]="item.thumbFilePath" alt=""></div>
  1467. </div>
  1468. </div>
  1469. </div>
  1470. </div>
  1471. <div class="row" *ngIf="buildType !== '编辑事件'">
  1472. <div class="col">
  1473. <span class="name required">处理组:</span>
  1474. <nz-select class="w100" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="changeCommonInp('group', $event)" nzPlaceHolder="请选择处理组" [(ngModel)]="incidentModel.group" (ngModelChange)="changeApplyGroup($event)" (nzOpenChange)="openChangeApplyGroup($event)">
  1475. <ng-container *ngFor="let option of applicationGroupList">
  1476. <nz-option *ngIf="!isLoading" [nzLabel]="option.groupName" [nzValue]="option.id"></nz-option>
  1477. </ng-container>
  1478. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  1479. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  1480. </nz-option>
  1481. </nz-select>
  1482. </div>
  1483. <div class="col">
  1484. <span class="name">处理人:</span>
  1485. <nz-select class="w100" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="changeCommonInp('user', $event)" nzPlaceHolder="请选择处理人" [(ngModel)]="incidentModel.user" (nzOpenChange)="openChangeApplyUser($event)" nzAllowClear>
  1486. <ng-container *ngFor="let option of applicationUserList">
  1487. <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
  1488. </ng-container>
  1489. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  1490. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  1491. </nz-option>
  1492. </nz-select>
  1493. </div>
  1494. <div class="col"></div>
  1495. </div>
  1496. </div>
  1497. </overlay-scrollbars>
  1498. <!-- 政务值班 -->
  1499. <overlay-scrollbars #osComponentRef25 *ngIf="currentTabIndex == item.key && item.key == '政务值班'">
  1500. <div class="zw-content">
  1501. <div class="item df">
  1502. <div class="df-fl margin-right">
  1503. <span class="label mar"><span class="red">*</span> 联系人:</span>
  1504. <input nz-input class="formItem" [(ngModel)]="contacts" placeholder="请输入联系人" nzSize="default" />
  1505. </div>
  1506. <div class="df-fl margin-right">
  1507. <span class="label"><span class="red">*</span> 联系电话:</span>
  1508. <input nz-input class="formItem" [(ngModel)]="contactsPhone" placeholder="请输入联系电话" nzSize="default" />
  1509. </div>
  1510. </div>
  1511. <div class="item df">
  1512. <span class="label"><span class="red">*</span> 投诉人:</span>
  1513. <input nz-input class="formItem" [(ngModel)]="complainant" placeholder="请输入投诉人" nzSize="default" />
  1514. </div>
  1515. <div class="item df">
  1516. <span class="label"><span class="red">*</span> 省市区:</span>
  1517. <nz-cascader [nzOptions]="nzOptions" [(ngModel)]="province" placeholder="请选择省市区" (ngModelChange)="onProvinceChanges($event)"></nz-cascader>
  1518. </div>
  1519. <div class="item df">
  1520. <span class="label"><span class="red">*</span> 详细地址:</span>
  1521. <input nz-input class="formItem" [(ngModel)]="detailedAddress" placeholder="请输入详细地址" nzSize="default" />
  1522. </div>
  1523. <div class="item df">
  1524. <span class="label"><span class="red">*</span> 简述:</span>
  1525. <textarea [(ngModel)]="sketch" nz-input rows="1" placeholder="请输入简述"></textarea>
  1526. </div>
  1527. <div class="item lw-df">
  1528. <span class="label"><span class="red">*</span> 记录内容:</span>
  1529. <textarea [(ngModel)]="record" nz-input rows="3" placeholder="请输入记录内容"></textarea>
  1530. </div>
  1531. </div>
  1532. </overlay-scrollbars>
  1533. </ng-container>
  1534. <!-- loading -->
  1535. <div class="bottom" *ngIf="newLoading">
  1536. <div class="bottom255">
  1537. <div class="txtC">
  1538. <img src="../../../assets/images/loading.gif" alt="" />
  1539. <div>加载中...</div>
  1540. </div>
  1541. </div>
  1542. </div>
  1543. </div>
  1544. <!-- 底部信息提示 -->
  1545. <!-- <div class="bottomInfo" *ngIf="currentTabIndex !== '故障报修'">提示:临床科室建单会更简便哟!</div> -->
  1546. </div>
  1547. <div nz-col nzSpan="9" class="col right">
  1548. <div class="rightTitle">
  1549. <div class="rightTitle_tab" [class.active]="currentRTab == tab.id" *ngFor="let tab of rightTitle_tab;" (click)="rightTitleHandler(tab.id)">{{ tab.name }}</div>
  1550. <span class="toLastTime1"><span class="time" *ngIf="applyDept">{{ orderRefreshTime }}s</span></span>
  1551. </div>
  1552. <!-- 近期配送 start -->
  1553. <div class="cots_body weifenpai" *ngIf="currentRTab == 0 && currentTabIndex != '政务值班'" [ngClass]="{ top185: hurseInfoHiding != 1 }">
  1554. <overlay-scrollbars #osComponentRef12 [ngStyle]="{ height: '100%' }">
  1555. <div *ngIf="noArrives.length && !loading4">
  1556. <div class="list listsTypeColor" *ngFor="let data of noArrives">
  1557. <div class="left_cots" (click)="openDetails(data)">
  1558. <!-- 工单 -->
  1559. <div class="gongdan">
  1560. <span class="left">{{ data.taskType.taskName }}({{ data.gdcode }})</span>
  1561. <span class="right">
  1562. <span>{{ data.gdState.name }}</span>
  1563. </span>
  1564. </div>
  1565. <!-- 地点 -->
  1566. <div class="didian">
  1567. <span class="left" *ngIf="data.taskType.associationType.value == 'inspect'">
  1568. {{ data.startDept ? data.startDept.dept : "" }}
  1569. <span *ngFor="let item of data.middleDept">
  1570. ->{{ item.dept }}
  1571. </span>
  1572. </span>
  1573. <span class="left" *ngIf="data.taskType.associationType.id != 260">
  1574. {{ data.startDept ? data.startDept.dept : "" }}{{ data.endDepts ? "->" + data.endDepts[0].dept : "" }}
  1575. </span>
  1576. <span class="right" *ngIf="data.goods">
  1577. <i class="icon_transport transport-icon3"></i>
  1578. <span>{{ data.goods }}</span>
  1579. </span>
  1580. <span class="right" *ngIf="data.workOrderRemark" [title]="data.workOrderRemark">
  1581. <i class="icon_transport transport-icon3"></i>
  1582. <span>{{ data.workOrderRemark }}</span>
  1583. </span>
  1584. </div>
  1585. <!-- 时间 -->
  1586. <div class="shijian">
  1587. <span class="left" *ngIf="data.expectTimeNum && data.timeOut != true">
  1588. <i class="icon_transport transport-shouye10" nz-tooltip nzTooltipTitle="进行中"></i>
  1589. <ng-container *ngIf="(data.taskType.associationType.value == 'patientTransport' || data.taskType.associationType.value == 'inspect') && data.patient?.illnessState">
  1590. <i *ngIf="data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
  1591. <i *ngIf="data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
  1592. </ng-container>
  1593. <ng-container *ngIf="(data.taskType.associationType.value == 'patientTransport' || data.taskType.associationType.value == 'inspect') && data.patient?.careLevel">
  1594. <i *ngIf="data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
  1595. <i *ngIf="data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
  1596. <i *ngIf="data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
  1597. <i *ngIf="data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
  1598. </ng-container>
  1599. <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.taskType.associationType.value == 'patientTransport' || data.taskType.associationType.value == 'inspect'">{{ data.patient.patientName }}<span *ngIf="data.patient.residenceNo">({{ data.patient.residenceNo }})</span></span>
  1600. </span>
  1601. <span class="left" *ngIf="data.timeOutLength && data.timeOut == true">
  1602. <i class="colorRed icon_transport transport-daojishi" nz-tooltip nzTooltipTitle="超时"></i>
  1603. <ng-container *ngIf="(data.taskType.associationType.value == 'patientTransport' || data.taskType.associationType.value == 'inspect') && data.patient?.illnessState">
  1604. <i *ngIf="data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
  1605. <i *ngIf="data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
  1606. </ng-container>
  1607. <ng-container *ngIf="(data.taskType.associationType.value == 'patientTransport' || data.taskType.associationType.value == 'inspect') && data.patient?.careLevel">
  1608. <i *ngIf="data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
  1609. <i *ngIf="data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
  1610. <i *ngIf="data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
  1611. <i *ngIf="data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
  1612. </ng-container>
  1613. <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.taskType.associationType.value == 'patientTransport' || data.taskType.associationType.value == 'inspect'">{{ data.patient.patientName }}<span *ngIf="data.patient.residenceNo">({{ data.patient.residenceNo }})</span></span>
  1614. </span>
  1615. <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.expectTimeNum / 1000)">
  1616. {{ data.showCreateTime }}
  1617. </span>
  1618. </div>
  1619. <!-- 急单 -->
  1620. <img *ngIf="data.emergencyType && data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
  1621. <!-- 加急单 -->
  1622. <img *ngIf="data.emergencyType && data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
  1623. </div>
  1624. <div class="right_bots display_flex col-flex align-items_center justify-content_flex-center">
  1625. <input type="button" *ngIf="data.gdState.value == 2" class="top_bot" value="派单" (click)="allotWorker(data.id, data.gdState.id)" />
  1626. <input type="button" *ngIf="data.gdState.value == 3 || data.gdState.value == 4" class="mid_bot" value="撤回" (click)="openRecallModal(data.id)" />
  1627. <input type="button" *ngIf="data.gdState.value == 2 || data.gdState.value == 3 || data.gdState.value == 4" class="btm_bot" value="删除" (click)="openDelModal(data.id, 'hsms')" />
  1628. </div>
  1629. <div *ngIf="data.timeOut != true" class="slider sgreen" [ngStyle]="{ width: data.percent + '%' }"></div>
  1630. <div *ngIf="data.timeOut == true" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
  1631. </div>
  1632. </div>
  1633. <div class="no_data" *ngIf="noArrives.length == 0 && !loading4">
  1634. 暂无数据
  1635. </div>
  1636. <div class="no_data" *ngIf="loading4">
  1637. <div class="loadingFull display_flex justify-content_flex-center align-items_center">
  1638. <div class="loadingFullInner">
  1639. <img src="../../../assets/images/loading.gif" alt="" />
  1640. <div>加载中...</div>
  1641. </div>
  1642. </div>
  1643. </div>
  1644. </overlay-scrollbars>
  1645. </div>
  1646. <!-- 近期配送 end -->
  1647. <!-- 转出院记录 start -->
  1648. <!-- <div class="cots_body weifenpai patientLog" *ngIf="currentRTab == 1" [ngClass]="{ top185: hurseInfoHiding != 1 }">
  1649. <overlay-scrollbars
  1650. #osComponentRef14
  1651. [ngStyle]="{ height: '100%' }"
  1652. >
  1653. <div class="list listsTypeColor clearfix">
  1654. <nz-table class="w100" [nzData]="patientLogList" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading5">
  1655. <thead>
  1656. <tr class="thead">
  1657. <th nzWidth="10%">类型</th>
  1658. <th nzWidth="17%">时间</th>
  1659. <th nzWidth="23%">申请科室</th>
  1660. <th nzWidth="23%">转入科室</th>
  1661. <th nzWidth="15%">关联患者</th>
  1662. <th nzWidth="12%">操作</th>
  1663. </tr>
  1664. </thead>
  1665. <tbody>
  1666. <tr *ngFor="let data of patientLogList; let i = index">
  1667. <td>{{ data.type ? data.type.name : "-" }}</td>
  1668. <td>{{ data.time | date: "yyyy-MM-dd HH:mm:ss" }}</td>
  1669. <td>{{ data.sqDept ? data.sqDept.dept : "-" }}</td>
  1670. <td>{{ data.zrDept ? data.zrDept.dept : "-" }}</td>
  1671. <td>
  1672. {{ data.patient ? data.patient.patientName : "-" }}
  1673. </td>
  1674. <td>
  1675. <button
  1676. style="cursor: pointer"
  1677. (click)="patientLogBuild(data)"
  1678. >
  1679. 建单
  1680. </button>
  1681. </td>
  1682. </tr>
  1683. </tbody>
  1684. </nz-table>
  1685. </div>
  1686. </overlay-scrollbars>
  1687. </div> -->
  1688. <!-- 转出院记录 end -->
  1689. <!-- 近期维修 start -->
  1690. <div class="cots_body weifenpai" *ngIf="currentRTab == 2" [ngClass]="{ top185: hurseInfoHiding != 1 }">
  1691. <overlay-scrollbars #osComponentRef16 [ngStyle]="{ height: '100%' }">
  1692. <div *ngIf="itsmOrders.length && !loading6">
  1693. <div class="list listsTypeColor" *ngFor="let data of itsmOrders">
  1694. <div class="left_cots" style="width: 96%;">
  1695. <!-- 工单 -->
  1696. <div class="gongdan">
  1697. <span class="left">{{ data.incidentsign }}</span>
  1698. <span class="right">
  1699. <span>{{ data.state?.name }}</span>
  1700. </span>
  1701. </div>
  1702. <!-- 描述 -->
  1703. <div class="didian">
  1704. <span class="left">
  1705. {{ data.description }}
  1706. </span>
  1707. </div>
  1708. <!-- 时间 -->
  1709. <div class="shijian">
  1710. <span class="left"></span>
  1711. <span class="right">
  1712. {{ data.acceptDate | date: "MM-dd HH:mm" }}
  1713. </span>
  1714. </div>
  1715. </div>
  1716. </div>
  1717. </div>
  1718. <div class="no_data" *ngIf="itsmOrders.length == 0 && !loading6">
  1719. 暂无数据
  1720. </div>
  1721. <div class="no_data" *ngIf="loading6">
  1722. <div class="loadingFull display_flex justify-content_flex-center align-items_center">
  1723. <div class="loadingFullInner">
  1724. <img src="../../../assets/images/loading.gif" alt="" />
  1725. <div>加载中...</div>
  1726. </div>
  1727. </div>
  1728. </div>
  1729. </overlay-scrollbars>
  1730. </div>
  1731. <!-- 近期维修 end -->
  1732. <!-- 知识库 start -->
  1733. <div class="cots_body weifenpai" *ngIf="currentRTab == 3" [ngClass]="{ top185: hurseInfoHiding != 1 }">
  1734. <overlay-scrollbars #osComponentRef17 [ngStyle]="{ height: '100%' }">
  1735. <div *ngIf="knowageList.length && !loading7">
  1736. <div class="list listsTypeColor" *ngFor="let data of knowageList" style="height: auto;overflow: hidden;">
  1737. <div class="left_cots" style="width: 96%;height: auto;">
  1738. <!-- 工单 -->
  1739. <div class="gongdan" style="font-size: 16px;">
  1740. <span class="left ellipsis-oneline w100" nz-tooltip [nzTooltipTitle]="data.title">{{data.title}}</span>
  1741. </div>
  1742. <!-- 描述 -->
  1743. <div class="didian" style="font-size: 12px;height: auto;">
  1744. <span class="left noEllipsis">{{data.content | stripHtml}}</span>
  1745. </div>
  1746. <!-- 时间 -->
  1747. <div class="shijian" style="height: auto;line-height: normal;overflow: hidden;padding-bottom: 16px;">
  1748. <span class="right">
  1749. <button nz-button nzType="primary" (click)="importKnowage(data)">引用</button>
  1750. <button class="ml8" nz-button nzType="primary" (click)="showKnowledgeModal(data)">查看</button>
  1751. </span>
  1752. </div>
  1753. </div>
  1754. </div>
  1755. </div>
  1756. <div class="no_data" *ngIf="knowageList.length == 0 && !loading7">
  1757. 暂无数据
  1758. </div>
  1759. <div class="no_data" *ngIf="loading7">
  1760. <div class="loadingFull display_flex justify-content_flex-center align-items_center">
  1761. <div class="loadingFullInner">
  1762. <img src="../../../assets/images/loading.gif" alt="" />
  1763. <div>加载中...</div>
  1764. </div>
  1765. </div>
  1766. </div>
  1767. </overlay-scrollbars>
  1768. </div>
  1769. <!-- 知识库 end -->
  1770. <!-- 政务值班-近期记录 -->
  1771. <div class="cots_body weifenpai" *ngIf="currentRTab == 4 && currentTabIndex == '政务值班'" [ngClass]="{ top185: hurseInfoHiding != 1 }">
  1772. <overlay-scrollbars #osComponentRef26 [ngStyle]="{ height: '100%' }">
  1773. <div class="record" *ngIf="itsmZwOrders.length>0">
  1774. <div class="content" *ngFor="let i of itsmZwOrders">
  1775. <div class="item ju-sb">
  1776. <div class="item-code">{{i.govDutySign}}</div>
  1777. <div>{{i.addTime|date:'yyyy-MM-dd HH:mm:ss'}}</div>
  1778. </div>
  1779. <div class="item">
  1780. {{i.record}}
  1781. </div>
  1782. <div class="item">
  1783. {{ i.province && i.province.name || '-'}}{{ i.city && i.city.name || '-'}}{{ i.district && i.district.name || '-'}}{{ i.detailedAddress || '-'}}
  1784. </div>
  1785. </div>
  1786. </div>
  1787. <div class="no_data" *ngIf="itsmZwOrders.length == 0 && !loading6">
  1788. 暂无数据
  1789. </div>
  1790. <div class="no_data" *ngIf="loading6">
  1791. <div class="loadingFull display_flex justify-content_flex-center align-items_center">
  1792. <div class="loadingFullInner">
  1793. <img src="../../../assets/images/loading.gif" alt="" />
  1794. <div>加载中...</div>
  1795. </div>
  1796. </div>
  1797. </div>
  1798. </overlay-scrollbars>
  1799. </div>
  1800. </div>
  1801. </div>
  1802. <div class="btns display_flex justify-content_flex-center align-items_center">
  1803. <ng-container *ngIf="applyDept && currentTabIndex !== '故障报修'">
  1804. <button nz-button class="btn" nzType="primary" (click)="newOrderOk('&go&')" [nzLoading]="isGoLoading" *ngIf="(radioValueQt || radioValueZy) && currentTasktype && currentTasktype.associationType && ((currentTasktype.associationType.value === 'inspect' && linkCheckLisTrue && !(currentTasktype.isMoreDept === 0 && isInspects)) || currentTasktype.associationType.value !== 'inspect')">
  1805. 继续建单
  1806. </button>
  1807. <button nz-button class="btn" nzType="primary" (click)="newOrderOk()" [nzLoading]="isOkLoading" *ngIf="(radioValueQt || radioValueZy) && currentTasktype && currentTasktype.associationType && ((currentTasktype.associationType.value === 'inspect' && linkCheckLisTrue && !(currentTasktype.isMoreDept === 0 && isInspects)) || currentTasktype.associationType.value !== 'inspect')">
  1808. {{isYyInspect ? '预约建单' :'直接建单'}}
  1809. </button>
  1810. </ng-container>
  1811. <ng-container *ngIf="currentTabIndex === '故障报修' && buildType !== '编辑事件'">
  1812. <label nz-checkbox [(ngModel)]="isBuildOrderAgagin" *ngIf="buildType !== '报修转事件' && buildType !== '留言转事件' && buildType !== '继续建单'">是否连续建单</label>
  1813. <button nz-button class="btn" nzType="primary" (click)="directOrder()">
  1814. 直接解决
  1815. </button>
  1816. <button nz-button class="btn" nzType="primary" (click)="assignOrder()">
  1817. 建单并派单
  1818. </button>
  1819. <button nz-button class="btn" nzType="primary" (click)="temporaryStorage()">
  1820. 暂存
  1821. </button>
  1822. </ng-container>
  1823. <ng-container *ngIf="currentTabIndex === '故障报修' && buildType === '编辑事件'">
  1824. <button nz-button class="btn" nzType="primary" (click)="saveOrder()">
  1825. 保存
  1826. </button>
  1827. </ng-container>
  1828. <button class="btn cancel" nz-button nzType="default" (click)="newOrderCancel()">
  1829. 取消
  1830. </button>
  1831. <ng-container *ngIf="currentTabIndex === '政务值班'">
  1832. <button nz-button [nzLoading]="zwLoading" class="btn" nzType="primary" (click)="saveZwOrder()">
  1833. 保存
  1834. </button>
  1835. </ng-container>
  1836. </div>
  1837. </div>
  1838. </div>
  1839. <!-- 撤回工单 -->
  1840. <div
  1841. class="
  1842. recallOrder
  1843. display_flex
  1844. justify-content_flex-center
  1845. align-items_center
  1846. "
  1847. *ngIf="recallOrderShow"
  1848. >
  1849. <div class="modalBody">
  1850. <div class="title">
  1851. 提示<i
  1852. class="icon_transport transport-guanbi"
  1853. (click)="closeRecallOrderModal()"
  1854. ></i>
  1855. </div>
  1856. <div class="content">
  1857. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  1858. <div class="defeat">您确认要撤回此工单吗?</div>
  1859. </div>
  1860. <div class="btns display_flex justify-content_flex-center">
  1861. <button
  1862. nz-button
  1863. nzType="primary"
  1864. [nzLoading]="btnLoading"
  1865. (click)="confirmRec()"
  1866. >
  1867. 确认
  1868. </button>
  1869. <button
  1870. class="recDelBtn"
  1871. nz-button
  1872. nzType="primary"
  1873. [nzLoading]="recDelLoading"
  1874. nzGhost
  1875. (click)="recAndDel()"
  1876. *ngIf="!batchClickType1"
  1877. >
  1878. 撤回并删除
  1879. </button>
  1880. <button
  1881. class="btn cancel"
  1882. nz-button
  1883. nzType="default"
  1884. (click)="closeRecallOrderModal()"
  1885. >
  1886. 取消
  1887. </button>
  1888. </div>
  1889. </div>
  1890. </div>
  1891. <!-- 删除模态框 -->
  1892. <app-dialog-delete
  1893. [delModal]="delOrderShow"
  1894. (hideDelModalEvent)="closeDelOrderModal()"
  1895. [btnLoading]="btnLoading"
  1896. (confirmDelEvent)="confirmDel()"
  1897. content="您确认要删除吗?"
  1898. ></app-dialog-delete>
  1899. <!-- 删除模态框 -->
  1900. <app-dialog-delete
  1901. [delModal]="logoutModal"
  1902. (hideDelModalEvent)="closeLogoutModal()"
  1903. [btnLoading]="btnLoading"
  1904. (confirmDelEvent)="confirmLogout()"
  1905. content="您确认要退出系统吗?"
  1906. ></app-dialog-delete>
  1907. <!-- 重复建单策略 -->
  1908. <app-dialog-delete
  1909. [delModal]="repeatModal"
  1910. (hideDelModalEvent)="hideRepeatModal()"
  1911. [btnLoading]="loadingRepeat"
  1912. (confirmDelEvent)="confirmRepeat()"
  1913. [content]="repeatMsg"
  1914. confirmTxt="是"
  1915. cancelTxt="否"
  1916. (cancelDelEvent)="hideRepeatModal()"
  1917. ></app-dialog-delete>
  1918. <!-- 是否限制业务发起时间模态框 -->
  1919. <app-dialog-delete [delModal]="limitTimeModal" (hideDelModalEvent)="hideLimitTimeModal()" [btnLoading]="limitTimeLoading"
  1920. (confirmDelEvent)="confirmLimitTime()" [content]="limitTimeInfo" confirmTxt="继续建单" [isShowConfirm]="isShowConfirm" [isShowConfirmInfo]="isShowConfirmInfo"></app-dialog-delete>
  1921. </div>
  1922. <!-- 绑定分机 -->
  1923. <app-bind-extension-number [hsmsData]="hsmsData" [itsmData]="itsmData" [coopBtns]="coopBtns" [websocketLoading]="websocketLoading" *ngIf="showBindExtensionNumberModal" (confirmModal)="checkIn($event)" (cancelModal)="cancelBindExtensionNumber($event)"></app-bind-extension-number>
  1924. <!-- 工单范围 -->
  1925. <app-order-scope *ngIf="showInitModal" [showGovDutyConfig]="showGovDutyConfig" [hsmsData]="hsmsData" [itsmData]="itsmData" [coopBtns]="coopBtns" (confirmModal)="confirmOrderScope($event)" (cancelModal)="cancelOrderScope($event)"></app-order-scope>
  1926. <!-- 展示形式 -->
  1927. <app-display-form *ngIf="showDisplayFormModal" (confirmModal)="confirmDisplayForm($event)" (cancelModal)="cancelDisplayForm($event)"></app-display-form>
  1928. <!-- 消息弹框模板 -->
  1929. <ng-template #msgTemplate let-msg="data">
  1930. <div class="msgTemBox ant-notification-notice-content">
  1931. <div class="borderLeft"></div>
  1932. <div class="ant-notification-notice-with-icon">
  1933. <span class="ant-notification-notice-icon">
  1934. <i class="icon icon_transport transport-shouye9"></i>
  1935. </span>
  1936. <div class="ant-notification-notice-message">
  1937. {{ msg.type == 1 ? "通知" : "消息" }}
  1938. </div>
  1939. <div class="ant-notification-notice-description">{{ msg.content }}</div>
  1940. </div>
  1941. </div>
  1942. </ng-template>
  1943. <!-- 操作成功/失败提示框 -->
  1944. <app-prompt-modal
  1945. *ngIf="promptModalShow"
  1946. [content]="promptContent"
  1947. [success]="ifSuccess"
  1948. [show]="promptModalShow"
  1949. [info]="promptInfo"
  1950. [back]="back"
  1951. (closeModel)="closeModel($event)"
  1952. >
  1953. </app-prompt-modal>
  1954. <!-- 选择转入科室 -->
  1955. <app-select-dept
  1956. [createLoading]="createLoading"
  1957. [deptFlag]="deptFlag"
  1958. (submitFormHand)="submitFormHand($event)"
  1959. (deptFlagHand)="deptFlagHand($event)"
  1960. [hosId]="checkedHos"
  1961. *ngIf="deptFlag"
  1962. ></app-select-dept>
  1963. <router-outlet (deactivate)="refreshList($event)"></router-outlet>
  1964. <!-- 遮罩 -->
  1965. <app-mask *ngIf="maskFlag"></app-mask>
  1966. <!-- 直接解决 -->
  1967. <app-incident-direct-order *ngIf="directOrderModalShow" (closeModelHs)="closeDirectOrderModelOrder($event)" (confirmModelHs)="confirmDirectOrderModelOrder($event)"></app-incident-direct-order>
  1968. <!-- 知识库查看 -->
  1969. <app-knowledge-look (cancelKnowledgeModal)="cancelKnowledgeModal()" *ngIf="isShowKnowledge" [knowledgeData]="coopData"></app-knowledge-look>
  1970. <!-- 详情 -->
  1971. <app-incident-detail [id]="coopData.id" *ngIf="detailModalShow" (closeModelHs)="closeDetailModelOrder($event)" (confirmModelHs)="confirmDetailModelOrder($event)"></app-incident-detail>
  1972. <!-- 图片预览 -->
  1973. <app-image-viewer [imageUrl]="imgs" hidden *ngIf="isPreview" [isPreviewNow]="true" [initialViewIndex]="initialViewIndex"></app-image-viewer>
  1974. <!-- 不受理 -->
  1975. <app-incident-reject [id]="coopData.id" *ngIf="rejectModalShow" (closeModelHs)="closeRejectModelOrder($event)" (confirmModelHs)="confirmRejectModelOrder($event)"></app-incident-reject>
  1976. <!-- 换人处理 -->
  1977. <app-incident-substitution [id]="coopData.id" *ngIf="substitutionModalShow" (closeModelHs)="closeSubstitutionModelOrder($event)" (confirmModelHs)="confirmSubstitutionModelOrder($event)"></app-incident-substitution>
  1978. <app-dialog-delete [delModal]="delModal" (hideDelModalEvent)="hideDelModal()" [btnLoading]="btnLoading" (confirmDelEvent)="confirmDelFn()" [content]="tipsMsg1"></app-dialog-delete>
  1979. <!-- 处理 -->
  1980. <app-incident-handle [id]="coopData.id" *ngIf="handleModalShow" (closeModelHs)="closeHandleModelOrder($event)" (confirmModelHs)="confirmHandleModelOrder($event)"></app-incident-handle>
  1981. <!-- 回访列表 -->
  1982. <app-incident-ser-visit [itsmData]="itsmData" *ngIf="visitShow" (closeModelHs)="closeVisit($event)"></app-incident-ser-visit>
  1983. <!-- 留言列表 -->
  1984. <app-incident-ser-message [itsmData]="itsmData" *ngIf="messageShow" (closeModelHs)="closeMessage($event)"></app-incident-ser-message>
  1985. <!-- 通话列表 -->
  1986. <app-incident-ser-call [itsmData]="itsmData" [hsmsData]="hsmsData" *ngIf="callShow" (closeModelHs)="closeCall($event)"></app-incident-ser-call>
  1987. <!-- 修改备注弹窗 -->
  1988. <app-edit-work-order-remark *ngIf="isShowBuildQuickConfirm" [buildQuickConfirmData]="buildQuickConfirmData" (cancelModal)="cancelBuildQuickConfirm($event)" (confirmModal)="confirmBuildQuickConfirm($event)" [loading5]="loadingQuick"></app-edit-work-order-remark>