placePerson.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. <template>
  2. <van-nav-bar
  3. fixed
  4. title="人员档案管理"
  5. left-arrow
  6. @click-left="onClickLeft"
  7. :style="{ 'background-color': selectColor }"
  8. />
  9. <div class="main">
  10. <div class="serach">
  11. <van-search
  12. v-model="value"
  13. show-action
  14. shape="round"
  15. placeholder="请输入姓名/身份证/场所名称"
  16. >
  17. <template #action>
  18. <div>
  19. <van-dropdown-menu>
  20. <van-dropdown-item
  21. overlay="false"
  22. v-model="value1"
  23. :options="option1"
  24. @change="changeValue(value1)"
  25. />
  26. </van-dropdown-menu>
  27. </div>
  28. </template>
  29. </van-search>
  30. </div>
  31. <div class="PersonList" v-if="value1 == 0 || value == ''">
  32. <div
  33. class="PersonItem"
  34. v-for="item in dataList"
  35. :key="item.id"
  36. @click="goPlacePersonInfo(item)"
  37. >
  38. <van-row>
  39. <van-col span="18">
  40. <p>
  41. {{ item.name }}(<span style="color: #36a7f3">{{
  42. item.idcard
  43. }}</span
  44. >)
  45. </p>
  46. </van-col>
  47. <van-col span="6" style="text-align: right">
  48. <!-- <div
  49. v-for="(item2, index) in item.userManagenmetDetailsDTOList"
  50. :key="index"
  51. style="font-size: 12px"
  52. >
  53. <p
  54. v-if="
  55. item2.dataType == 1 &&
  56. item2.dataDictionary == 'hs_religion_type'
  57. "
  58. style="color: #36a7f3"
  59. >
  60. <span v-if="item2.value == 1" style="color: #1eba56"
  61. >伊斯兰教</span
  62. >
  63. <span v-if="item2.value == 2" style="color: #36a7f3">基督教</span>
  64. <span v-if="item2.value == 3" style="color: #ffa500">天主教</span>
  65. <span v-if="item2.value == 4" style="color: #d3c701">佛教</span>
  66. <span v-if="item2.value == 5" style="color: #a0522d">道教</span>
  67. </p>
  68. </div> -->
  69. <span v-if="item.sex == 1" style="color: #36a7f3">男</span>
  70. <span v-if="item.sex == 2" style="color: #d3c701">女</span>
  71. </van-col>
  72. </van-row>
  73. <van-row>
  74. <van-col span="18">
  75. <span style="color: #a2a2a2" v-if="item.locationName">{{
  76. item.locationName
  77. }}</span>
  78. </van-col>
  79. <van-col span="6" style="text-align: right; font-size: 12px">
  80. <span v-if="item.personnelType == 1">宗教从业人员</span>
  81. <span v-else-if="item.personnelType == 2">民族场所从业人员</span>
  82. <span v-else-if="item.personnelType == 3">教职人员</span>
  83. <span v-else-if="item.personnelType == 4">固定信徒</span>
  84. <span v-else-if="item.personnelType == 5">场所居住人员</span>
  85. <span v-else-if="item.personnelType == 6">境外人员</span>
  86. <span v-else-if="item.personnelType == 7">非本市人员</span>
  87. <span v-else-if="item.personnelType == 8">非本教人员</span>
  88. <span v-else-if="item.personnelType == 9">新增信徒人员</span>
  89. <span v-else-if="item.personnelType == 10">临时人员</span>
  90. <span v-else-if="item.personnelType == 11">异常人员</span>
  91. <span v-else-if="item.personnelType == 12">邪教人员</span>
  92. <span v-else-if="item.personnelType == 13">管理人员</span>
  93. <span v-else-if="item.personnelType == 14">全能神离家人员</span>
  94. <span v-else-if="item.personnelType == 15">全能神骨干人员</span>
  95. <span v-else-if="item.personnelType == 16">网络运营人员</span>
  96. <span v-else-if="item.personnelType == 17">涉政有害活动人员</span>
  97. <span v-else-if="item.personnelType == 18">境内外记者</span>
  98. <span v-else-if="item.personnelType == 19">境外法轮功骨干人员</span>
  99. <span v-else-if="item.personnelType == 20">其他邪教骨干人员</span>
  100. <span v-else-if="item.personnelType == 21">心灵法门骨干人员</span>
  101. <span v-else>“精神控制”有害培训骨干人员</span>
  102. </van-col>
  103. </van-row>
  104. </div>
  105. </div>
  106. <div class="PersonList" v-if="value1 != 0 && value != ''">
  107. <div
  108. class="PersonItem"
  109. v-for="item in PersonList"
  110. :key="item.id"
  111. @click="goPlacePersonInfo(item)"
  112. >
  113. <van-row>
  114. <van-col span="18">
  115. <p>
  116. {{ item.name }}(<span style="color: #36a7f3">{{
  117. item.idcard
  118. }}</span
  119. >)
  120. </p>
  121. </van-col>
  122. <van-col span="6" style="text-align: right">
  123. <!-- <div
  124. v-for="(item2, index) in item.userManagenmetDetailsDTOList"
  125. :key="index"
  126. style="font-size: 12px"
  127. >
  128. <p
  129. v-if="
  130. item2.dataType == 1 &&
  131. item2.dataDictionary == 'hs_religion_type'
  132. "
  133. style="color: #36a7f3"
  134. >
  135. <span v-if="item2.value == 1" style="color: #1eba56"
  136. >伊斯兰教</span
  137. >
  138. <span v-if="item2.value == 2" style="color: #36a7f3">基督教</span>
  139. <span v-if="item2.value == 3" style="color: #ffa500">天主教</span>
  140. <span v-if="item2.value == 4" style="color: #d3c701">佛教</span>
  141. <span v-if="item2.value == 5" style="color: #a0522d">道教</span>
  142. </p>
  143. </div> -->
  144. <span v-if="item.sex == 1" style="color: #36a7f3">男</span>
  145. <span v-if="item.sex == 2" style="color: #d3c701">女</span>
  146. </van-col>
  147. </van-row>
  148. <van-row>
  149. <van-col span="18">
  150. <span style="color: #a2a2a2" v-if="item.locationName">{{
  151. item.locationName
  152. }}</span>
  153. </van-col>
  154. <van-col span="6" style="text-align: right; font-size: 12px">
  155. <span v-if="item.personnelType == 1">宗教从业人员</span>
  156. <span v-else-if="item.personnelType == 2">民族场所从业人员</span>
  157. <span v-else-if="item.personnelType == 3">教职人员</span>
  158. <span v-else-if="item.personnelType == 4">固定信徒</span>
  159. <span v-else-if="item.personnelType == 5">场所居住人员</span>
  160. <span v-else-if="item.personnelType == 6">境外人员</span>
  161. <span v-else-if="item.personnelType == 7">非本市人员</span>
  162. <span v-else-if="item.personnelType == 8">非本教人员</span>
  163. <span v-else-if="item.personnelType == 9">新增信徒人员</span>
  164. <span v-else-if="item.personnelType == 10">临时人员</span>
  165. <span v-else-if="item.personnelType == 11">异常人员</span>
  166. <span v-else-if="item.personnelType == 12">邪教人员</span>
  167. <span v-else-if="item.personnelType == 13">管理人员</span>
  168. <span v-else-if="item.personnelType == 14">全能神离家人员</span>
  169. <span v-else-if="item.personnelType == 15">全能神骨干人员</span>
  170. <span v-else-if="item.personnelType == 16">网络运营人员</span>
  171. <span v-else-if="item.personnelType == 17">涉政有害活动人员</span>
  172. <span v-else-if="item.personnelType == 18">境内外记者</span>
  173. <span v-else-if="item.personnelType == 19">境外法轮功骨干人员</span>
  174. <span v-else-if="item.personnelType == 20">其他邪教骨干人员</span>
  175. <span v-else-if="item.personnelType == 21">心灵法门骨干人员</span>
  176. <span v-else>“精神控制”有害培训骨干人员</span>
  177. </van-col>
  178. </van-row>
  179. </div>
  180. </div>
  181. </div>
  182. </template>
  183. <script>
  184. import { ref } from "vue";
  185. import { useRouter } from "vue-router";
  186. import UserManage from "@/api/user/UserManage";
  187. export default {
  188. setup() {
  189. const value = ref("");
  190. const value1 = ref(0);
  191. // const option1 = [
  192. // { text: "所有教别", value: 0 },
  193. // { text: "伊斯兰教", value: 1 },
  194. // { text: "基督教", value: 2 },
  195. // { text: "天主教", value: 3 },
  196. // { text: "佛教", value: 4 },
  197. // { text: "道教", value: 5 },
  198. // ];
  199. // 导航栏颜色
  200. const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
  201. const option1 = [
  202. { text: "搜索选择", value: 0 },
  203. { text: "姓名", value: 1 },
  204. { text: "身份证号", value: 2 },
  205. { text: "场所名称", value: 3 },
  206. ];
  207. let PersonList = ref([]);
  208. let dataList = ref([]);
  209. //数据获取
  210. const loading = ref(false);
  211. const finished = ref(false);
  212. new UserManage()
  213. .list({
  214. current: 1,
  215. size: 10,
  216. })
  217. .then((res) => {
  218. let list2 = [];
  219. list2.push(...res.records);
  220. list2.forEach((n1) => {
  221. let id = n1.id;
  222. new UserManage().queryById(id).then((LP) => {
  223. n1.userManagenmetDetailsDTOList = LP.userManagenmetDetailsDTOList;
  224. });
  225. });
  226. dataList.value = list2;
  227. });
  228. //跳转
  229. let router = useRouter();
  230. const goPlacePersonInfo = (item) => {
  231. var data = JSON.stringify(item);
  232. router.push({
  233. path: "/placePersoninfo",
  234. query: { data: data },
  235. });
  236. };
  237. //宗教选择
  238. const changeValue = (value2) => {
  239. if (value.value != "") {
  240. switch (value2) {
  241. case 0:
  242. PersonList.value = dataList.value;
  243. break;
  244. case 1:
  245. dataList.value.forEach((s1) => {
  246. if (s1.name == value.value) {
  247. PersonList.value.push(s1);
  248. }
  249. });
  250. break;
  251. case 2:
  252. dataList.value.forEach((s1) => {
  253. if (s1.idcard == value.value) {
  254. PersonList.value.push(s1);
  255. }
  256. });
  257. break;
  258. case 3:
  259. dataList.value.forEach((s1) => {
  260. if (s1.locationName == value.value) {
  261. PersonList.value.push(s1);
  262. }
  263. });
  264. break;
  265. default:
  266. break;
  267. }
  268. } else {
  269. PersonList.value.splice(0, PersonList.value.length);
  270. }
  271. };
  272. //返回
  273. const onClickLeft = () => {
  274. history.back();
  275. };
  276. return {
  277. onClickLeft,
  278. value,
  279. value1,
  280. option1,
  281. loading,
  282. finished,
  283. goPlacePersonInfo,
  284. changeValue,
  285. PersonList,
  286. dataList,
  287. selectColor,
  288. };
  289. },
  290. };
  291. </script>
  292. <style lang="less">
  293. body,
  294. html {
  295. margin: 0;
  296. padding: 0;
  297. background-color: #f2f2f2;
  298. }
  299. .van-nav-bar {
  300. background-color: #36a7f3;
  301. .van-nav-bar__title {
  302. color: #fff;
  303. }
  304. .van-badge__wrapper {
  305. color: #fff;
  306. }
  307. }
  308. .search {
  309. background-color: #fff;
  310. .van-dropdown-menu__item {
  311. width: 20px;
  312. height: 50px;
  313. }
  314. }
  315. .PersonList {
  316. background-color: #fff;
  317. margin-top: 20px;
  318. height: 100vh;
  319. p {
  320. margin: 0;
  321. padding: 0;
  322. }
  323. .PersonItem {
  324. padding: 10px 10px;
  325. font-size: 16px;
  326. border-bottom: 1px solid #f2f2f2;
  327. .van-row {
  328. &:nth-child(1) {
  329. margin-bottom: 10px;
  330. .van-col {
  331. &:nth-child(1) {
  332. p {
  333. font-weight: 700;
  334. }
  335. }
  336. &:nth-child(2) {
  337. p {
  338. text-align: right;
  339. }
  340. }
  341. }
  342. }
  343. &:nth-child(2) {
  344. .van-col {
  345. &:nth-child(1) {
  346. p {
  347. color: #d0d0d0;
  348. }
  349. }
  350. &:nth-child(2) {
  351. p {
  352. text-align: right;
  353. color: #d0d0d0;
  354. }
  355. }
  356. }
  357. }
  358. }
  359. }
  360. }
  361. </style>