ReligiousPeopleReportList.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. <template>
  2. <van-nav-bar
  3. fixed
  4. title="信教群众异常"
  5. right-text="上报"
  6. left-arrow
  7. @click-left="onClickLeft"
  8. @click-right="onClickRight"
  9. >
  10. <template #right>
  11. <van-icon name="plus" size="18" />
  12. </template>
  13. </van-nav-bar>
  14. <div class="main">
  15. <van-search
  16. v-model="searchVal"
  17. clearable
  18. show-action
  19. shape="round"
  20. placeholder="请输入搜索关键词"
  21. label="姓名"
  22. input-align="center"
  23. @search="onSearch"
  24. @cancel="onCancel"
  25. />
  26. <van-tabs
  27. v-show="!searchShow"
  28. v-model:active="active"
  29. title-inactive-color="#bdbdbd"
  30. title-active-color="#36a7f3"
  31. >
  32. <van-tab title="未审核" name="0">
  33. <van-list
  34. v-model:loading="loading"
  35. :finished="finished"
  36. finished-text="没有更多了"
  37. @load="onLoad"
  38. >
  39. <van-swipe-cell
  40. v-for="item in list"
  41. :key="item"
  42. >
  43. <div class="list_item" @click="goInfo(item.id)">
  44. <div class="item-left">
  45. <p v-show="item.partyTime != ''" style="color: #c4c4c4">
  46. {{ item.partyTime }}
  47. </p>
  48. <p style="color: red">待审核</p>
  49. </div>
  50. <van-cell>
  51. <template #title>
  52. <van-text-ellipsis
  53. rows="2"
  54. :content="`${item.abnormalName}存在${item.abnormalBehavior}异常行为`"
  55. />
  56. </template>
  57. <template #label>
  58. {{ item.currentResidence }}
  59. </template>
  60. </van-cell>
  61. </div>
  62. <template #right>
  63. <van-button
  64. square
  65. type="danger"
  66. text="删除"
  67. class="button"
  68. @click="deleteItem(item.id)"
  69. />
  70. <van-button
  71. square
  72. type="primary"
  73. text="修改"
  74. class="button"
  75. @click="updateItem(item)"
  76. />
  77. </template>
  78. </van-swipe-cell>
  79. </van-list>
  80. </van-tab>
  81. <van-tab title="已审核" name="1">
  82. <van-list
  83. v-model:loading="loading"
  84. :finished="finished"
  85. finished-text="没有更多了"
  86. @load="onLoad"
  87. >
  88. <van-swipe-cell v-for="item in readList" :key="item">
  89. <div class="list_item" @click="goInfo(item.id)">
  90. <div class="item-left">
  91. <p style="color: #c4c4c4">{{ item.partyTime }}</p>
  92. <p style="color: red">已审核</p>
  93. </div>
  94. <van-cell>
  95. <template #title>
  96. <van-text-ellipsis
  97. rows="2"
  98. :content="`${item.abnormalName}存在${item.abnormalBehavior}异常行为`"
  99. />
  100. </template>
  101. <template #label>
  102. {{ item.currentResidence }}
  103. </template>
  104. </van-cell>
  105. </div>
  106. </van-swipe-cell>
  107. </van-list>
  108. </van-tab>
  109. </van-tabs>
  110. <!-- 搜索结果 -->
  111. <van-list
  112. v-show="searchShow"
  113. v-model:loading="loading"
  114. :finished="finished"
  115. finished-text="没有更多了"
  116. @load="onLoad"
  117. >
  118. <van-swipe-cell v-for="item in searchList" :key="item">
  119. <div class="list_item" @click="goInfo(item.id)">
  120. <div class="item-left">
  121. <p style="color: #c4c4c4">{{ item.partyTime }}</p>
  122. <p style="color: red">已审核</p>
  123. </div>
  124. <van-cell>
  125. <template #title>
  126. <van-text-ellipsis
  127. rows="2"
  128. :content="`${item.abnormalName}存在${item.abnormalBehavior}异常行为`"
  129. />
  130. </template>
  131. <template #label>
  132. {{ item.currentResidence }}
  133. </template>
  134. </van-cell>
  135. </div>
  136. </van-swipe-cell>
  137. </van-list>
  138. <van-dialog
  139. v-model:show="showDel"
  140. show-cancel-button
  141. confirmButtonText="删除"
  142. message="请确认删除该记录"
  143. @confirm="Itemdel"
  144. >
  145. </van-dialog>
  146. </div>
  147. </template>
  148. <script>
  149. import { ref } from "vue";
  150. import ReligiousPeopleReportService from "@/api/differentbelievers/ReligiousPeopleReportService";
  151. import { useRouter } from "vue-router";
  152. export default {
  153. name: "ReligiousPeopleReportList",
  154. setup() {
  155. const onClickLeft = () => {
  156. history.back();
  157. };
  158. // 上报
  159. const onClickRight = () => {
  160. router.push("/differentbelievers");
  161. };
  162. // 切换
  163. let active = ref(0);
  164. // 未审核列表
  165. let list = ref([]);
  166. // 已审核列表
  167. let readList = ref([]);
  168. const loading = ref(false);
  169. const finished = ref(false);
  170. let index = 0;
  171. const onLoad = () => {
  172. loading.value = true;
  173. finished.value = false;
  174. // 异步更新数据
  175. new ReligiousPeopleReportService()
  176. .list({
  177. current: index + 1,
  178. size: 10,
  179. })
  180. .then(({ records, total }) => {
  181. records.forEach((item) => {
  182. if (item.assessment == 0) {
  183. list.value.push(item);
  184. } else {
  185. readList.value.push(item);
  186. }
  187. });
  188. // 加载状态结束
  189. loading.value = false;
  190. let page = parseInt(total / 10);
  191. // 数据全部加载完成
  192. if (index >= page || total < 10) {
  193. finished.value = true;
  194. } else {
  195. index++;
  196. }
  197. });
  198. };
  199. // 搜索
  200. let searchShow = ref(false);
  201. let searchList = ref([]);
  202. const searchVal = ref("");
  203. const onSearch = () => {
  204. searchShow.value = true;
  205. searchList.value = [];
  206. new ReligiousPeopleReportService()
  207. .list({
  208. current: 1,
  209. size: 10000,
  210. abnormalName: searchVal.value,
  211. })
  212. .then(({ records }) => {
  213. searchList.value.push(...records);
  214. // 加载状态结束
  215. loading.value = false;
  216. });
  217. };
  218. const onCancel = () => {
  219. searchVal.value = "";
  220. searchShow.value = false;
  221. };
  222. // 删除确认
  223. let showDel = ref(false);
  224. let ids = ref("");
  225. const deleteItem = (val) => {
  226. showDel.value = true;
  227. ids.value = val;
  228. };
  229. // 删除
  230. const Itemdel = () => {
  231. new ReligiousPeopleReportService().delete(ids.value).then((res) => {
  232. console.log("删除", res);
  233. index = 0;
  234. loading.value = true;
  235. list.value = [];
  236. readList.value = [];
  237. onLoad();
  238. });
  239. };
  240. let router = useRouter();
  241. // 修改跳转
  242. const updateItem = (val) => {
  243. router.push({
  244. path: "/differentbelievers",
  245. query: { id: val.id },
  246. });
  247. };
  248. // 详情跳转
  249. const goInfo = (val) => {
  250. router.push({
  251. path: "/differentbelieversInfo",
  252. query: { id: val },
  253. });
  254. };
  255. return {
  256. active,
  257. onClickLeft,
  258. list,
  259. readList,
  260. onLoad,
  261. loading,
  262. finished,
  263. searchShow,
  264. searchVal,
  265. searchList,
  266. onSearch,
  267. onCancel,
  268. onClickRight,
  269. updateItem,
  270. goInfo,
  271. showDel,
  272. deleteItem,
  273. Itemdel,
  274. };
  275. },
  276. };
  277. </script >
  278. <style scope>
  279. </style>