teacherdetail.vue 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <template>
  2. <view class="det">
  3. <uni-nav-bar left-icon="left" title="档案详情" :background-color="backgroundColor" :border="navborder" statusBar='true' fixed="true" @clickLeft='getBack'>
  4. </uni-nav-bar>
  5. <view class="det_top"></view>
  6. <view class="detbox">
  7. <view class="det_list">
  8. <image :src="bgimg" class="bgimg"></image>
  9. <view class="tit">基本信息</view>
  10. <view class="list">
  11. <view class="ltit">姓名:</view>
  12. <view class="ltxt">{{datainfo.name||""}}</view>
  13. </view>
  14. <view class="list">
  15. <view class="ltit">身份证号:</view>
  16. <view class="ltxt">{{datainfo.idCard||""}}</view>
  17. </view>
  18. <view class="list">
  19. <view class="ltit">性别:</view>
  20. <view class="ltxt">{{datainfo.sex=='1'?'男':'女'||""}}</view>
  21. </view>
  22. <view class="list">
  23. <view class="ltit">年龄:</view>
  24. <view class="ltxt">{{datainfo.age||""}}</view>
  25. </view>
  26. <view class="list">
  27. <view class="ltit">政治面貌:</view>
  28. <view class="ltxt">{{datainfo.politicalStatus||""}}</view>
  29. </view>
  30. <view class="list">
  31. <view class="ltit">职称:</view>
  32. <view class="ltxt">{{datainfo.professional||""}}</view>
  33. </view>
  34. <view class="list">
  35. <view class="ltit">联系方式:</view>
  36. <view class="ltxt">{{datainfo.phone||""}}</view>
  37. </view>
  38. <view class="list">
  39. <view class="ltit">居住地址:</view>
  40. <view class="ltxt">{{datainfo.address||""}}</view>
  41. </view>
  42. </view>
  43. <view class="det_list">
  44. <view class="tit">职业信息</view>
  45. <!-- <view class="list">
  46. <view class="ltit">教龄:</view>
  47. <view class="ltxt">{{datainfo.height||""}}年</view>
  48. </view> -->
  49. <view class="list">
  50. <view class="ltit">入职时间:</view>
  51. <view class="ltxt">{{datainfo.onBoardTime||""}}</view>
  52. </view>
  53. <view class="list">
  54. <view class="ltit">参加工作时间:</view>
  55. <view class="ltxt">{{datainfo.jobTime||""}}</view>
  56. </view>
  57. </view>
  58. <view class="det_list">
  59. <view class="tit">照片信息</view>
  60. <view class="list flexcja mb15">
  61. <view class="ltit">证件照:</view>
  62. <view class="imgs">
  63. <image :src="baseUrl+item" class="phoimg" v-for="(item,index) in zjfile" :key='index' @click="getPreview(zjfile,index)"></image>
  64. </view>
  65. </view>
  66. <view class="list flexcja">
  67. <view class="ltit">门禁照:</view>
  68. <view class="imgs">
  69. <image :src="baseUrl+item" class="phoimg" v-for="(item,index) in mjfile" :key='index' @click="getPreview(mjfile,index)"></image>
  70. </view>
  71. </view>
  72. </view>
  73. <view class="det_list">
  74. <view class="tit">资质信息</view>
  75. <view class="list flexcja mb15">
  76. <view class="ltit">毕业证明照:</view>
  77. <view class="imgs">
  78. <image :src="baseUrl+item" class="phoimg" v-for="(item,index) in byzmfile" :key='index' @click="getPreview(byzmfile,index)"></image>
  79. </view>
  80. </view>
  81. <view class="list flexcja">
  82. <view class="ltit">毕业证书照:</view>
  83. <view class="imgs">
  84. <image :src="baseUrl+item" class="phoimg" v-for="(item,index) in byzsfile" :key='index' @click="getPreview(byzsfile,index)"></image>
  85. </view>
  86. </view>
  87. <view class="list flexcja">
  88. <view class="ltit">教资证明照:</view>
  89. <view class="imgs">
  90. <image :src="baseUrl+item" class="phoimg" v-for="(item,index) in jzzmfile" :key='index' @click="getPreview(jzzmfile,index)"></image>
  91. </view>
  92. </view>
  93. <view class="list flexcja">
  94. <view class="ltit">职称证明照:</view>
  95. <view class="imgs">
  96. <image :src="baseUrl+item" class="phoimg" v-for="(item,index) in zczmfile" :key='index' @click="getPreview(zczmfile,index)"></image>
  97. </view>
  98. </view>
  99. </view>
  100. <view class="det_list">
  101. <view class="tit">其他信息</view>
  102. <view class="list">
  103. <view class="ltit">身高:</view>
  104. <view class="ltxt">{{datainfo.height||""}}cm</view>
  105. </view>
  106. <view class="list">
  107. <view class="ltit">体重:</view>
  108. <view class="ltxt">{{datainfo.weight||""}}kg</view>
  109. </view>
  110. <view class="list">
  111. <view class="ltit">血型:</view>
  112. <view class="ltxt">{{datainfo.bloodType||""}}</view>
  113. </view>
  114. </view>
  115. </view>
  116. <view style="height: 170rpx;" v-if="checkPermi(['teacher:info:edit','teacher:info:remove'])"></view>
  117. <view class="fbtn" v-if="checkPermi(['teacher:info:edit','teacher:info:remove'])">
  118. <view class="rebtndel" @click="getDel" v-if="checkPermi(['teacher:info:remove'])">删除档案</view>
  119. <view class="w13 flex0"></view>
  120. <view class="rebtn" @click="getUpdate" v-if="checkPermi(['teacher:info:edit'])">修改档案</view>
  121. </view>
  122. </view>
  123. </template>
  124. <script>
  125. import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
  126. import {getteaDetFn,getteaDelFn} from "@/api/mine/files.js"
  127. import config from '@/config'
  128. const baseUrl = config.baseUrl
  129. export default {
  130. data() {
  131. return {
  132. bgimg: require("@/mine/static/score/bg.png"),
  133. backgroundColor: "transparent",
  134. navborder: false,
  135. id: '',
  136. datainfo: '',
  137. baseUrl:'',
  138. zjfile:[],
  139. mjfile:[],
  140. byzmfile:[],
  141. byzsfile:[],
  142. jzzmfile:[],
  143. zczmfile:[],
  144. }
  145. },
  146. onUnload(){
  147. uni.$off('refreshdadetail')
  148. },
  149. onLoad: function(e) {
  150. uni.$on('refreshdadetail',(e) => {
  151. this.getDataFn();
  152. })
  153. this.id = e.id;
  154. this.baseUrl=baseUrl;
  155. this.getDataFn()
  156. },
  157. onPageScroll(e) {
  158. var scrollTop = Number(e.scrollTop);
  159. if (scrollTop > 0) {
  160. this.backgroundColor = '#ffffff'
  161. } else {
  162. this.backgroundColor = 'transparent'
  163. }
  164. },
  165. methods: {
  166. checkPermi,checkRole,
  167. getBack(){
  168. uni.navigateBack({
  169. delta:1
  170. })
  171. },
  172. getDataFn() {
  173. getteaDetFn(this.id).then(res => {
  174. if (res.code == 200) {
  175. this.datainfo = res.data;
  176. if(res.data.identificationPhoto){
  177. this.zjfile=res.data.identificationPhoto.split(',')
  178. }else{
  179. this.zjfile=[];
  180. }
  181. if(res.data.entrancePermit){
  182. this.mjfile=res.data.entrancePermit.split(',')
  183. }else{
  184. this.mjfile=[];
  185. }
  186. if(res.data.graduationPhoto){
  187. this.byzmfile=res.data.graduationPhoto.split(',')
  188. }else{
  189. this.byzmfile=[];
  190. }
  191. if(res.data.degreePhoto){
  192. this.byzsfile=res.data.degreePhoto.split(',')
  193. }else{
  194. this.byzsfile=[];
  195. }
  196. if(res.data.teachingPhoto){
  197. this.jzzmfile=res.data.teachingPhoto.split(',')
  198. }else{
  199. this.jzzmfile=[];
  200. }
  201. if(res.data.professionalPhoto){
  202. this.zczmfile=res.data.professionalPhoto.split(',')
  203. }else{
  204. this.zczmfile=[];
  205. }
  206. } else {
  207. this.$toast(res.msg)
  208. }
  209. })
  210. },
  211. getUpdate(){
  212. this.$tab.navigateTo('/mine/pages/files/addteacher?type=update&id='+this.id);
  213. },
  214. getDel(){
  215. var that=this;
  216. this.$modal.confirm('确定删除该信息吗?').then(() => {
  217. getteaDelFn(that.id).then(res=>{
  218. if (res.code == 200) {
  219. that.$toast('删除成功')
  220. setTimeout(function(){
  221. uni.$emit('refreshdalist');
  222. uni.navigateBack({
  223. delta:1
  224. })
  225. },1500)
  226. } else {
  227. that.$toast(res.msg)
  228. }
  229. })
  230. })
  231. },
  232. // 查看照片
  233. getPreview(iurl,idx) {
  234. var newArr=[];
  235. iurl.forEach(ite=>{
  236. var ds=this.baseUrl+ite
  237. newArr.push(ds)
  238. })
  239. uni.previewImage({
  240. urls: newArr,
  241. current:idx,
  242. success: function(data) {
  243. },
  244. fail: function(err) {
  245. console.log(err.errMsg);
  246. }
  247. });
  248. },
  249. },
  250. }
  251. </script>
  252. <style lang="scss" scoped>
  253. .det_top{width: 100%;height: 334rpx;background: linear-gradient(180deg, rgba(222,230,255,0.72) 28.000000000000004%, rgba(232,236,198,0) 100%);}
  254. .detbox{padding: 0 36rpx;margin-top: -180rpx;padding-bottom: 20rpx;
  255. .det_list{background-color: #fff;border-radius: 10rpx;width: 100%;padding: 36rpx 48rpx;position: relative;margin-bottom: 24rpx;
  256. .tit{font-size: 32rpx;font-weight: bold;color: #161616;position: relative;margin-bottom: 20rpx;
  257. &::before{width: 6rpx;height: 36rpx;background: #1f57e6;border-radius: 4rpx;content: '';position: absolute;left: -24rpx;top: 50%;margin-top: -18rpx;}
  258. }
  259. .list{
  260. display: flex;align-items: flex-start;padding: 10rpx 0;
  261. .ltit{flex: 0 0 auto;font-size: 30rpx;color: #161616;font-weight: bold;margin-right:4rpx;}
  262. .ltxt{flex: 1;font-size: 30rpx;color: #666666;font-weight: 500;line-height: 40rpx;}
  263. .imgs{display: flex;align-items: center;flex-wrap: wrap;justify-content: flex-end;}
  264. .phoimg{width: 140rpx;height: 140rpx;margin: 0 0rpx 14rpx 14rpx;}
  265. }
  266. .bgimg{width: 188rpx;height: 160rpx;position: absolute;right: 46rpx;bottom: 54rpx;}
  267. }
  268. }
  269. .fbtn{display: flex;align-items: center;position: fixed;left: 0;right: 0;bottom: 0;background-color: #f1f1f1;padding: 36rpx;
  270. }
  271. .det /deep/ .uni-navbar__placeholder{height: 0 !important;}
  272. </style>