dialog.ts 6.6 KB

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