dialog.ts 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. import { IncidentItem } from '@/api/incident';
  2. import {
  3. ResourceItemDetail,
  4. SingleDeviceItem,
  5. getResourceItem,
  6. ResourceItemDetailResponse,
  7. } from '@/api/resource';
  8. import { useCommonStore } from '@/store';
  9. import { MarkerType } from "@/store/useMarkerStore";
  10. export const GET_INCIDENT_DIALOG_HTML = (
  11. item: MarkerType,
  12. callback = () => {},
  13. ) => {
  14. const commonStore = useCommonStore();
  15. const el = document.createElement('div');
  16. el.innerHTML = `
  17. <div>
  18. <div class="title">事件信息</div>
  19. <div class="content">
  20. <div><span>标题:</span><span>${item?.name ?? '-'}</span></div>
  21. <div><span>来源:</span><span>${
  22. commonStore.globalDict['zhdd_incident_type']?.find(
  23. (i) => i.dictValue.toString() === `${item?.source}`,
  24. )?.dictLabel ?? '-'
  25. }</span></div>
  26. <div><span>类型:</span><span>${
  27. commonStore.globalDict['zhdd_incident_type']?.find(
  28. (i) => i.dictValue.toString() === `${item?.type}`,
  29. )?.dictLabel ?? '-'
  30. }</span></div>
  31. <div><span>时间:</span><span>${item?.createTime ?? '-'}</span></div>
  32. <div><span>地点:</span><span>${item?.addr ?? '-'}</span></div>
  33. <div><span>描述:</span><span>${item?.des ?? '-'}</span></div>
  34. </div>
  35. <i class="card-border-bottom-left"></i>
  36. <i class="card-border-bottom-right"></i>
  37. </div>
  38. `;
  39. const action = document.createElement('div');
  40. action.className = 'action';
  41. const button = document.createElement('button');
  42. button.className = 'el-button el-button--primary el-button--small';
  43. button.innerHTML = '查看';
  44. action.appendChild(button);
  45. button.addEventListener('click', callback);
  46. el.appendChild(action);
  47. return el;
  48. };
  49. // • 视频打开后显示数据:
  50. // a.视频点位编号
  51. // b.视频点位地点
  52. // c.按钮可以打开一个窗口,然后窗口中显示摄像头拍摄内容 (目前还无该项目数据,暂定为该内容)
  53. export const GET_VIDEO_DIALOG_HTML = (
  54. {
  55. name,
  56. addr,
  57. }: MarkerType,
  58. callback = () => {},
  59. ) => {
  60. const el = document.createElement('div');
  61. el.innerHTML = `
  62. <div>
  63. <div class="title">视频监控信息</div>
  64. <div class="content">
  65. <div><span>编号:</span><span>${name ?? '-'}</span></div>
  66. <div><span>地点:</span><span>${addr ?? '-'}</span></div>
  67. </div>
  68. <i class="card-border-bottom-left"></i>
  69. <i class="card-border-bottom-right"></i>
  70. </div>`;
  71. const action = document.createElement('div');
  72. action.className = 'action';
  73. const button = document.createElement('button');
  74. button.className = 'el-button el-button--primary el-button--small';
  75. button.innerHTML = '查看';
  76. action.appendChild(button);
  77. button.addEventListener('click', callback);
  78. el.appendChild(action);
  79. return el;
  80. };
  81. // • 应急仓库
  82. // a.应急仓库名称
  83. // b.应急仓库地点
  84. // c.应急仓库管理单位
  85. // d.联系人
  86. // e.联系电话
  87. // f.按钮(方式一:跳转应急仓库详情查看物资情况,方式二:在按钮旁边打开一个列表,该列表显示应急仓库的物资情况:物资名称、型号、数量)
  88. export const GET_WAREHOUSE_DIALOG_HTML = (item: ResourceItemDetail) => {
  89. var header = ['序号', '名称', '型号', '规格', '仓储数量', '可用数量', '单位'];
  90. const el = document.createElement('div');
  91. el.innerHTML = `
  92. <div class="ckbg">
  93. <div class="title">应急仓库信息</div>
  94. <div class="content">
  95. <div><span>仓库名称:</span><span>${item.name ?? '-'}</span></div>
  96. <div><span>地点:</span><span>${item.address ?? '-'}</span></div>
  97. <div><span>管理单位:</span><span>${item.manageUnit ?? '-'}</span></div>
  98. <div><span>联系人:</span><span>${item.contactName ?? '-'}</span></div>
  99. <div><span>更新时间:</span><span>${item.updateTime ?? '-'}</span></div>
  100. <div><span>联系方式:</span><span>${item.contactPhone ?? '-'}</span></div>
  101. </div>
  102. <div class="wz">
  103. <table id="tbl-${item.id}">
  104. <tr>
  105. ${ header.map((i) => '<th>' + i + '</th>').join("")}
  106. </tr>
  107. </table>
  108. </div>
  109. </div>
  110. `;
  111. return el;
  112. };
  113. // • 应急车辆
  114. // a.车牌号
  115. // b.归属单位
  116. // c.车辆类型 (应急车辆为实时位置,目前暂无具体数据)
  117. export const GET_VEHICLES_DIALOG_HTML = (item: ResourceItemDetail) => {
  118. const el = document.createElement('div');
  119. el.innerHTML = `
  120. <div>
  121. <div class="title">应急车辆信息</div>
  122. <div class="content">
  123. <div><span>车牌号:</span><span>${item.name ?? '-'}</span></div>
  124. <div><span>管理单位:</span><span>${item.manageUnit ?? '-'}</span></div>
  125. <div><span>车辆类型:</span><span>${item.carType ?? '-'}</span></div>
  126. </div>
  127. <i class="card-border-bottom-left"></i>
  128. <i class="card-border-bottom-right"></i>
  129. </div>
  130. `;
  131. return el;
  132. };
  133. // • 应急队伍
  134. // a.队伍名称
  135. // b.管理单位
  136. // c.携带物资
  137. // d.人数
  138. // e. 联系人
  139. // f.联系电话
  140. export const GET_TEAM_DIALOG_HTML = (item: ResourceItemDetail) => {
  141. const el = document.createElement('div');
  142. el.innerHTML = `
  143. <div>
  144. <div class="title">应急队伍信息</div>
  145. <div class="content">
  146. <div><span>队伍名称:</span><span>${item.name ?? '-'}</span></div>
  147. <div><span>管理单位:</span><span>${item.manageUnit ?? '-'}</span></div>
  148. <div><span>携带物资:</span><span>${item.carryGoods ?? '-'}</span></div>
  149. <div><span>人数:</span><span>${item.num ?? '-'}</span></div>
  150. <div><span>联系人:</span><span>${item.contactName ?? '-'}</span></div>
  151. <div><span>联系方式:</span><span>${item.contactPhone ?? '-'}</span></div>
  152. </div>
  153. <i class="card-border-bottom-left"></i>
  154. <i class="card-border-bottom-right"></i>
  155. </div>
  156. `;
  157. return el;
  158. };
  159. export const GET_SINGLE_DEVICE_DIALOG_HTML = (
  160. item: SingleDeviceItem,
  161. callback = () => {},
  162. ) => {
  163. const el = document.createElement('div');
  164. el.innerHTML = `
  165. <div>
  166. <div class="title">单兵设备</div>
  167. <div class="content">
  168. <div><span>名称:</span><span>${item.userName ?? '-'}</span></div>
  169. <div><span>定位时间:</span><span>${item.time ?? '-'}</span></div>
  170. </div>
  171. <i class="card-border-bottom-left"></i>
  172. <i class="card-border-bottom-right"></i>
  173. </div>
  174. `;
  175. const action = document.createElement('div');
  176. action.className = 'action';
  177. const button = document.createElement('button');
  178. button.className = 'el-button el-button--primary el-button--small';
  179. button.innerHTML = '查看单兵';
  180. action.appendChild(button);
  181. button.addEventListener('click', callback);
  182. // const action2 = document.createElement('div');
  183. // action2.className = 'action';
  184. // const button2 = document.createElement('button');
  185. // button2.className = 'el-button el-button--primary el-button--small';
  186. // button2.innerHTML = '查看视频';
  187. // action2.appendChild(button);
  188. // button2.addEventListener('click', videoplay);
  189. el.appendChild(action);
  190. // el.appendChild(action2);
  191. console.log(el);
  192. return el;
  193. };
  194. export const renderElement = (image: any) => {
  195. const el = document.createElement('div');
  196. el.id = 'marker';
  197. el.style.backgroundImage = `url(${image})`;
  198. el.style.backgroundSize = 'cover';
  199. el.style.width = (24 * 2) / 576 + 'rem';
  200. el.style.minWidth = '24px';
  201. el.style.height = (25 * 2) / 576 + 'rem';
  202. el.style.minHeight = '25px';
  203. return el;
  204. };