detail.vue 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. <template>
  2. <ion-page>
  3. <ion-header class="header-theme2">
  4. <ion-toolbar>
  5. <ion-buttons slot="start">
  6. <ion-icon :icon="arrowBackOutline" @click="onBack"></ion-icon>
  7. </ion-buttons>
  8. <ion-title>
  9. 求职人员详情
  10. </ion-title>
  11. </ion-toolbar>
  12. </ion-header>
  13. <ion-content>
  14. <div class="bw-vue-form">
  15. <div class="form-detail">
  16. <ion-label>姓名</ion-label>
  17. <ion-text>{{ dataModel.name }}</ion-text>
  18. </div>
  19. <div class="form-detail">
  20. <ion-label>身份证号码</ion-label>
  21. <ion-text>{{ dataModel.identityNumberShow }}</ion-text>
  22. </div>
  23. <div class="form-detail">
  24. <ion-label>性别</ion-label>
  25. <ion-text>{{ dataModel.genderName }}</ion-text>
  26. </div>
  27. <div class="form-detail">
  28. <ion-label>联系电话</ion-label>
  29. <ion-text>{{ dataModel.userMobile }}</ion-text>
  30. </div>
  31. <div class="form-detail">
  32. <ion-label>所属驿站</ion-label>
  33. <ion-text>{{ dataModel.siteName }}</ion-text>
  34. </div>
  35. <div class="form-detail">
  36. <ion-label>所属街道</ion-label>
  37. <ion-text>{{ dataModel.regionName+"-"+dataModel.streetName }}</ion-text>
  38. </div>
  39. <div class="form-detail">
  40. <ion-label>居住地址</ion-label>
  41. <ion-text>{{ dataModel.address }}</ion-text>
  42. </div>
  43. <div class="form-detail">
  44. <ion-label>就业状态</ion-label>
  45. <ion-text>{{ dataModel.jobStatusName }}</ion-text>
  46. </div>
  47. <div class="form-detail">
  48. <ion-label>重点人员类别</ion-label>
  49. <ion-text>{{ dataModel.keyTypeName }}</ion-text>
  50. </div>
  51. <div class="form-detail">
  52. <ion-label>社会保障卡号</ion-label>
  53. <ion-text>{{ dataModel.socialSecurityCard }}</ion-text>
  54. </div>
  55. <div class="form-detail">
  56. <ion-label>政治面貌</ion-label>
  57. <ion-text>{{ dataModel.politicsStatusName }}</ion-text>
  58. </div>
  59. <div class="form-detail">
  60. <ion-label>民族</ion-label>
  61. <ion-text>{{ dataModel.nationName }}</ion-text>
  62. </div>
  63. <div class="form-detail">
  64. <ion-label>毕业院校</ion-label>
  65. <ion-text>{{ dataModel.finishSchool }}</ion-text>
  66. </div>
  67. <div class="form-detail">
  68. <ion-label>专业</ion-label>
  69. <ion-text>{{ dataModel.profession }}</ion-text>
  70. </div>
  71. <div class="form-detail">
  72. <ion-label>是否非全日制</ion-label>
  73. <ion-text>{{ dataModel.isFullTimeName }}</ion-text>
  74. </div>
  75. <div class="form-detail">
  76. <ion-label>职业资格类别</ion-label>
  77. <ion-text style="width: 52%;text-align:right;">{{ dataModel.occupationalCategoryName }}</ion-text>
  78. </div>
  79. <div class="form-detail">
  80. <ion-label>职业资格等级</ion-label>
  81. <ion-text>{{ dataModel.occupationalLevelName }}</ion-text>
  82. </div>
  83. <div class="form-detail">
  84. <ion-label>籍贯</ion-label>
  85. <ion-text>{{ dataModel.nativePlace }}</ion-text>
  86. </div>
  87. <div class="form-detail">
  88. <ion-label>出生日期</ion-label>
  89. <ion-text v-if="dataModel.birthDay!=null">{{ dayjs(dataModel.birthDay).format("YYYY-MM-DD") }}</ion-text>
  90. </div>
  91. <div class="form-detail">
  92. <ion-label>户口性质</ion-label>
  93. <ion-text>{{ dataModel.familyNatureName }}</ion-text>
  94. </div>
  95. <div class="form-detail">
  96. <ion-label>最高学历</ion-label>
  97. <ion-text>{{ dataModel.cultureName}}</ion-text>
  98. </div>
  99. <div class="form-detail">
  100. <ion-label>健康状况</ion-label>
  101. <ion-text>{{ dataModel.healthName }}</ion-text>
  102. </div>
  103. <div class="form-detail" name="bloodTypeName">
  104. <ion-label>血型</ion-label>
  105. <ion-text>{{ dataModel.bloodTypeName }}</ion-text>
  106. </div>
  107. <div class="form-detail">
  108. <ion-label>身高</ion-label>
  109. <ion-text v-if="dataModel.height!=null">{{ dataModel.height +"cm"}}</ion-text>
  110. </div>
  111. <div class="form-detail">
  112. <ion-label>视力</ion-label>
  113. <ion-text>{{ dataModel.vision}}</ion-text>
  114. </div>
  115. <div class="form-detail">
  116. <ion-label>体重</ion-label>
  117. <ion-text v-if="dataModel.weight!=null">{{ dataModel.weight +"kg"}}</ion-text>
  118. </div>
  119. <div class="form-detail" name="maritalStatusName">
  120. <ion-label>婚姻状况</ion-label>
  121. <ion-text>{{ dataModel.maritalStatusName}}</ion-text>
  122. </div>
  123. <div class="form-detail">
  124. <ion-label>联系人</ion-label>
  125. <ion-text>{{ dataModel.userName}}</ion-text>
  126. </div>
  127. <div class="form-detail">
  128. <ion-label>电子邮箱</ion-label>
  129. <ion-text>{{ dataModel.email}}</ion-text>
  130. </div>
  131. <div class="form-detail">
  132. <ion-label>家庭住址</ion-label>
  133. <ion-text>{{ dataModel.familyAddress}}</ion-text>
  134. </div>
  135. <div class="form-detail">
  136. <ion-label>兴趣爱好</ion-label>
  137. <ion-text>{{ dataModel.hobby}}</ion-text>
  138. </div>
  139. </div>
  140. </ion-content>
  141. <ion-footer>
  142. </ion-footer>
  143. </ion-page>
  144. </template>
  145. <script lang="ts">
  146. import {defineComponent, ref, reactive, toRefs} from "vue";
  147. import {getJobUserById} from "@/api/jobUserInfo";
  148. import {useRoute, useRouter} from "vue-router";
  149. import {onIonViewDidEnter} from "@ionic/vue";
  150. import {arrowBackOutline} from 'ionicons/icons';
  151. import dayjs from "dayjs";
  152. interface FormData{
  153. dataModel:any
  154. }
  155. export default defineComponent({
  156. name: 'UserDetail',
  157. setup() {
  158. const router = useRouter();
  159. const route = useRoute();
  160. const loading = ref<boolean>(false);
  161. const formData = reactive<FormData>({
  162. dataModel: {
  163. }
  164. });
  165. const onBack=()=>{
  166. router.push({path:'./list',query:{reload:1}});
  167. };
  168. const loadData = async (jobUserID:any,loginUserId:any)=>{
  169. loading.value = true;
  170. const reqData = await getJobUserById(jobUserID,loginUserId);
  171. formData.dataModel = reqData;
  172. const replaceStr = formData.dataModel.identityNumber.substring(3,15);
  173. formData.dataModel.identityNumberShow = String(formData.dataModel.identityNumber).replace(replaceStr,'************');
  174. loading.value = false;
  175. };
  176. const reload = (jobUserID:any,loginUserID:any) => {
  177. loadData(jobUserID,loginUserID);
  178. };
  179. onIonViewDidEnter(() => {
  180. if (route.query.reload) {
  181. reload(route.query.id,route.query.loginUserID)
  182. }
  183. });
  184. return {
  185. ...toRefs(formData),
  186. arrowBackOutline,
  187. route,
  188. loading,
  189. onBack,
  190. loadData,
  191. router,
  192. dayjs,
  193. }
  194. }
  195. });
  196. </script>
  197. <style lang="less">
  198. ion-item {
  199. --border-width: 0;
  200. --border-style: none;
  201. ion-label, ion-input, ion-select, ion-datetime-button {
  202. font-size: 14px !important;
  203. }
  204. }
  205. .stepFlex {
  206. margin: 0;
  207. display: flex;
  208. width: 100%;
  209. .stepFlex-item {
  210. position: relative;
  211. flex: 1;
  212. text-align: center;
  213. margin-top: -10px;
  214. .stepFlex-item-label {
  215. padding-top: 60px;
  216. font-size: 14px;
  217. .stepFlex-item-label-title {
  218. margin-top: 30px;
  219. }
  220. .stepFlex-item-label-desc {
  221. margin-top: 5px;
  222. color: #b9b9bd;
  223. }
  224. }
  225. }
  226. .greenCircle {
  227. top: calc(50% - 15px);
  228. left: calc(50% - 4px);
  229. position: absolute;
  230. z-index: 2;
  231. width: 10px;
  232. height: 10px;
  233. border-radius: 50%;
  234. background-color: #31A2FE;
  235. }
  236. .now {
  237. top: calc(50% - 18px);
  238. left: calc(50% - 8px);
  239. position: absolute;
  240. z-index: 3;
  241. width: 16px;
  242. height: 16px;
  243. border-radius: 50%;
  244. background-color: #31A2FE;
  245. border: 4px solid #c5e8f9;
  246. }
  247. .grayCircle {
  248. top: calc(50% - 15px);
  249. left: calc(50% - 4px);
  250. position: absolute;
  251. z-index: 2;
  252. width: 10px;
  253. height: 10px;
  254. border-radius: 50%;
  255. background-color: #ccc;
  256. }
  257. .greenLine {
  258. width: 100%;
  259. top: calc(50% - 11px);
  260. left: calc(50% - 2px);
  261. height: 2px;
  262. background-color: #31A2FE;
  263. position: absolute;
  264. }
  265. .grayLine {
  266. height: 0;
  267. border: 1px dashed #ccc;
  268. width: 100%;
  269. top: calc(50% - 11px);
  270. left: calc(50% - 2px);
  271. position: absolute;
  272. }
  273. }
  274. </style>