list.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <template>
  2. <div class="body-layer">
  3. <div class="body-head">
  4. <h3 style="visibility: hidden">项目列表</h3>
  5. <div class="table-ctrl-right">
  6. <slot name="tableCtrl" />
  7. </div>
  8. </div>
  9. <el-table
  10. :data="pagging.state.table.rows"
  11. id="multipleTable"
  12. style="width: 100%"
  13. class="table"
  14. size="large"
  15. @selection-change="pagging.changeSelectRows"
  16. >
  17. <el-table-column
  18. v-if="!isRecycle"
  19. type="selection"
  20. width="50"
  21. :selectable="() => !!operateIsPermissionByPath(checkPerm)"
  22. />
  23. <el-table-column label="序号" width="70" v-slot:default="{ $index }">
  24. <div style="text-align: center">
  25. {{ pagging.state.pag.size * (pagging.state.pag.currentPage - 1) + $index + 1 }}
  26. </div>
  27. </el-table-column>
  28. <el-table-column label="项目编号" prop="projectSn"></el-table-column>
  29. <el-table-column label="事件分类" prop="field5" v-slot:default="{ row }">
  30. <el-tooltip
  31. class="item"
  32. effect="dark"
  33. :content="row.field5"
  34. placement="bottom-start"
  35. v-if="row.field5 && row.field5.length > 10"
  36. >
  37. <p class="tip oper-user">{{ row.field5.substring(0, 10) }}...</p>
  38. </el-tooltip>
  39. <p class="tip" v-else>{{ row.field5 }}</p>
  40. </el-table-column>
  41. <el-table-column label="起火对象" prop="projectName" v-slot:default="{ row }">
  42. <el-tooltip
  43. class="item"
  44. effect="dark"
  45. :content="row.projectName"
  46. placement="bottom-start"
  47. v-if="row.projectName && row.projectName.length > 10"
  48. >
  49. <p class="tip oper-user">{{ row.projectName.substring(0, 10) }}...</p>
  50. </el-tooltip>
  51. <p class="tip" v-else>{{ row.projectName }}</p>
  52. </el-table-column>
  53. <el-table-column label="分类登记" prop="field6" v-slot:default="{ row }">
  54. <el-tooltip
  55. class="item"
  56. effect="dark"
  57. :content="row.field6"
  58. placement="bottom-start"
  59. v-if="row.field6 && row.field6.length > 10"
  60. >
  61. <p class="tip oper-user">{{ row.field6.substring(0, 10) }}...</p>
  62. </el-tooltip>
  63. <p class="tip" v-else>{{ row.field6 }}</p>
  64. </el-table-column>
  65. <el-table-column label="详细地址" prop="projectAddress" v-slot:default="{ row }">
  66. <el-tooltip
  67. class="item"
  68. effect="dark"
  69. :content="row.projectAddress"
  70. placement="bottom-start"
  71. v-if="row.projectAddress && row.projectAddress.length > 10"
  72. >
  73. <p class="tip oper-user">{{ row.projectAddress.substring(0, 10) }}...</p>
  74. </el-tooltip>
  75. <p class="tip" v-else>{{ row.projectAddress }}</p>
  76. </el-table-column>
  77. <el-table-column label="起火场所" prop="projectSite" v-slot:default="{ row }">
  78. <el-tooltip
  79. class="item"
  80. effect="dark"
  81. :content="row.projectSite"
  82. placement="bottom-start"
  83. v-if="row.projectSite && row.projectSite.length > 10"
  84. >
  85. <p class="tip oper-user">{{ row.projectSite.substring(0, 10) }}...</p>
  86. </el-tooltip>
  87. <p class="tip" v-else>{{ row.projectSite }}</p>
  88. </el-table-column>
  89. <el-table-column label="天气情况" prop="field7" v-slot:default="{ row }">
  90. <el-tooltip
  91. class="item"
  92. effect="dark"
  93. :content="row.field7"
  94. placement="bottom-start"
  95. v-if="row.field7 && row.field7.length > 10"
  96. >
  97. <p class="tip oper-user">{{ row.field7.substring(0, 10) }}...</p>
  98. </el-tooltip>
  99. <p class="tip" v-else>{{ row.field7 }}</p>
  100. </el-table-column>
  101. <el-table-column label="勘验地址" prop="field1" v-slot:default="{ row }">
  102. <el-tooltip
  103. class="item"
  104. effect="dark"
  105. :content="row.field1"
  106. placement="bottom-start"
  107. v-if="row.field1 && row.field1.length > 10"
  108. >
  109. <p class="tip oper-user">{{ row.field1.substring(0, 10) }}...</p>
  110. </el-tooltip>
  111. <p class="tip" v-else>{{ row.field1 }}</p>
  112. </el-table-column>
  113. <el-table-column label="全宗名称" prop="caseNewName" v-slot:default="{ row }">
  114. <el-tooltip
  115. class="item"
  116. effect="dark"
  117. :content="row.caseNewName"
  118. placement="bottom-start"
  119. v-if="row.caseNewName && row.caseNewName.length > 10"
  120. >
  121. <p class="tip oper-user">{{ row.caseNewName.substring(0, 10) }}...</p>
  122. </el-tooltip>
  123. <p class="tip" v-else>{{ row.caseNewName }}</p>
  124. </el-table-column>
  125. <el-table-column label="勘验人员" prop="organizerUsers" v-slot:default="{ row }">
  126. <el-tooltip
  127. class="item"
  128. effect="dark"
  129. :content="row.field3"
  130. placement="bottom-start"
  131. v-if="row.field3 && row.field3.length > 10"
  132. >
  133. <p class="tip oper-user">{{ row.field3.substring(0, 10) }}...</p>
  134. </el-tooltip>
  135. <p class="tip" v-else>{{ row.field3 }}</p>
  136. </el-table-column>
  137. <el-table-column label="勘验人单位、职务" prop="field4" v-slot:default="{ row }">
  138. <el-tooltip
  139. class="item"
  140. effect="dark"
  141. :content="row.field4"
  142. placement="bottom-start"
  143. v-if="row.field4 && row.field4.length > 10"
  144. >
  145. <p class="tip oper-user">{{ row.field4.substring(0, 10) }}...</p>
  146. </el-tooltip>
  147. <p class="tip" v-else>{{ row.field4 }}</p>
  148. </el-table-column>
  149. <el-table-column label="勘验单位" prop="organizerDeptName"></el-table-column>
  150. <el-table-column label="事故日期" prop="accidentDate"></el-table-column>
  151. <el-table-column label="勘验日期" prop="field8"></el-table-column>
  152. <el-table-column label="火灾原因" prop="fireReason" v-slot:default="{ row }">
  153. <el-tooltip
  154. class="item"
  155. effect="dark"
  156. :content="row.fireReason"
  157. placement="bottom-start"
  158. v-if="row.fireReason && row.fireReason.length > 10"
  159. >
  160. <p class="tip oper-user">{{ row.fireReason.substring(0, 10) }}...</p>
  161. </el-tooltip>
  162. <p class="tip" v-else>{{ row.fireReason }}</p>
  163. </el-table-column>
  164. <el-table-column label="项目状态" v-slot:default="{ row }">
  165. {{ fireStatusDesc[row.status as FireStatus] }}
  166. </el-table-column>
  167. <slot name="appendColumn" />
  168. <el-table-column label="操作" v-slot:default="{ row }" :width="220" fixed="right">
  169. <slot name="rowCtrl" :row="row" />
  170. </el-table-column>
  171. </el-table>
  172. <com-pagination
  173. @size-change="pagging.changPageSize"
  174. @current-change="pagging.changPageCurrent"
  175. :current-page="pagging.state.pag.currentPage"
  176. :page-size="pagging.state.pag.size"
  177. :total="pagging.state.pag.total"
  178. />
  179. </div>
  180. </template>
  181. <script lang="ts" setup>
  182. import comPagination from "@/components/pagination/index.vue";
  183. import { fireStatusDesc } from "@/app/fire/constant/fire";
  184. import { FireStatus } from "@/app/fire/store/fire";
  185. import { operateIsPermissionByPath } from "@/directive/permission";
  186. import { FirePagging } from "./pagging";
  187. defineProps<{ pagging: FirePagging; checkPerm: string; isRecycle: boolean }>();
  188. </script>