正在显示
36 个修改的文件
包含
3601 行增加
和
107 行删除
| 1 | 1 | <template> |
| 2 | 2 | <view class="u-button"> |
| 3 | 3 | <u-button :text="text" :color="reversedColor" :plain="false" :hairline="false" :disabled="disabled" |
| 4 | - :throttleTime="1500" type="default" :open-type="openType" @getphonenumber="getPhoneNumber" | |
| 4 | + :throttleTime="1500" type="default" shape="circle" :open-type="openType" @getphonenumber="getPhoneNumber" | |
| 5 | 5 | :custom-style="getCustomStyle" @click="click"> |
| 6 | 6 | </u-button> |
| 7 | 7 | </view> | ... | ... |
| ... | ... | @@ -173,5 +173,29 @@ export const getInternshipDetailApi = (id, params) => http.get(`/internship/v1/f |
| 173 | 173 | params: params |
| 174 | 174 | }) |
| 175 | 175 | |
| 176 | +// 请假申请列表 | |
| 177 | +export const getleaveRecordlistListApi = (params) => http.get('/internship/v1/leaveRecord/list', { | |
| 178 | + params: params | |
| 179 | +}) | |
| 180 | + | |
| 181 | +// 请假详情 | |
| 182 | +export const getleaveRecorddetailApi = (id,params) => http.get('/internship/v1/leaveRecord/detail/'+id, { | |
| 183 | + params: params | |
| 184 | +}) | |
| 185 | + | |
| 186 | +// 请假审批 | |
| 187 | +export const putleaveRecorddetailApi = (id,params) => http.put(`/internship/v1/leaveRecord/${id}/approve`, params) | |
| 188 | + | |
| 189 | +// 变更列表 | |
| 190 | +export const getformChangeApplyListApi = (params) => http.get('/internship/v1/formChangeApply/list', { | |
| 191 | + params: params | |
| 192 | +}) | |
| 193 | + | |
| 194 | +// 变更详情 | |
| 195 | +export const formChangeApplydetailUrl = (id,params) => http.get('/internship/v1/formChangeApply/detail/'+id, { | |
| 196 | + params: params | |
| 197 | +}) | |
| 176 | 198 | |
| 199 | +// 变更审批 | |
| 200 | +export const putformChangeApplyapprovalUrl = (id,params) => http.put('/internship/v1/formChangeApply/approval/'+id,params) | |
| 177 | 201 | ... | ... |
| ... | ... | @@ -5,13 +5,13 @@ module.exports = (vm) => { |
| 5 | 5 | /* config 为默认全局配置*/ |
| 6 | 6 | |
| 7 | 7 | // 测试环境 |
| 8 | - // config.baseURL = "http://47.110.250.177:8000"; | |
| 8 | + config.baseURL = "http://47.110.250.177:8000"; | |
| 9 | 9 | |
| 10 | 10 | // 预生产环境 |
| 11 | 11 | // config.baseURL = "https://api-isxpre.workai.com.cn"; |
| 12 | 12 | |
| 13 | 13 | // 线上环境 |
| 14 | - config.baseURL = "https://api-isx.workai.com.cn"; | |
| 14 | + // config.baseURL = "https://api-isx.workai.com.cn"; | |
| 15 | 15 | |
| 16 | 16 | config.header = { |
| 17 | 17 | // 'content-type': 'xxx' | ... | ... |
| ... | ... | @@ -109,6 +109,41 @@ |
| 109 | 109 | "enablePullDownRefresh": false |
| 110 | 110 | } |
| 111 | 111 | |
| 112 | + },{ | |
| 113 | + "path": "asklist/asklist", | |
| 114 | + "style": { | |
| 115 | + "navigationBarTitleText": "请假审批", | |
| 116 | + "enablePullDownRefresh": false | |
| 117 | + } | |
| 118 | + | |
| 119 | + },{ | |
| 120 | + "path": "askdetail/askdetail", | |
| 121 | + "style": { | |
| 122 | + "navigationBarTitleText": "详情", | |
| 123 | + "enablePullDownRefresh": false | |
| 124 | + } | |
| 125 | + | |
| 126 | + }, { | |
| 127 | + "path": "changelist/changelist", | |
| 128 | + "style": { | |
| 129 | + "navigationBarTitleText": "实习变更", | |
| 130 | + "enablePullDownRefresh": false | |
| 131 | + } | |
| 132 | + | |
| 133 | + }, { | |
| 134 | + "path": "changedetail/changedetail", | |
| 135 | + "style": { | |
| 136 | + "navigationBarTitleText": "详情", | |
| 137 | + "enablePullDownRefresh": false | |
| 138 | + } | |
| 139 | + | |
| 140 | + }, { | |
| 141 | + "path": "search/search", | |
| 142 | + "style": { | |
| 143 | + "navigationBarTitleText": "搜索", | |
| 144 | + "enablePullDownRefresh": false | |
| 145 | + } | |
| 146 | + | |
| 112 | 147 | } |
| 113 | 148 | ] |
| 114 | 149 | }, | ... | ... |
| ... | ... | @@ -324,8 +324,8 @@ |
| 324 | 324 | padding: 20rpx 0 0 0; |
| 325 | 325 | |
| 326 | 326 | .box { |
| 327 | - width: 630rpx; | |
| 328 | - margin: 20rpx auto; | |
| 327 | + // width: 630rpx; | |
| 328 | + margin: 20rpx 10px; | |
| 329 | 329 | padding: 30rpx 30rpx 12rpx 30rpx; |
| 330 | 330 | border-radius: 12rpx; |
| 331 | 331 | background-color: #FFFFFF; |
| ... | ... | @@ -376,29 +376,30 @@ |
| 376 | 376 | .item_icon { |
| 377 | 377 | margin: 0 0 24rpx 0; |
| 378 | 378 | display: flex; |
| 379 | - flex-flow: row nowrap; | |
| 380 | - justify-content: space-between; | |
| 379 | + // flex-flow: row nowrap; | |
| 380 | + justify-content: space-between; | |
| 381 | + align-items: center; | |
| 381 | 382 | |
| 382 | 383 | text { |
| 383 | - display: inline-block; | |
| 384 | - width: 112rpx; | |
| 385 | - text-align: justify; | |
| 386 | - text-align-last: justify; | |
| 384 | + // display: inline-block; | |
| 385 | + // width: 112rpx; | |
| 386 | + // text-align: justify; | |
| 387 | + // text-align-last: justify; | |
| 387 | 388 | font-size: 28rpx; |
| 388 | - line-height: 48rpx; | |
| 389 | + // line-height: 48rpx; | |
| 389 | 390 | color: #909097; |
| 390 | - vertical-align: top; | |
| 391 | + // vertical-align: top; | |
| 391 | 392 | } |
| 392 | 393 | |
| 393 | 394 | view { |
| 394 | 395 | display: flex; |
| 395 | - flex-flow: row nowrap; | |
| 396 | + // flex-flow: row nowrap; | |
| 396 | 397 | |
| 397 | 398 | text { |
| 398 | - display: inline-block; | |
| 399 | - width: auto; | |
| 399 | + // display: inline-block; | |
| 400 | + // width: auto; | |
| 400 | 401 | font-size: 28rpx; |
| 401 | - line-height: 48rpx; | |
| 402 | + // line-height: 48rpx; | |
| 402 | 403 | color: #202131; |
| 403 | 404 | margin: 0 0 0 78rpx; |
| 404 | 405 | } | ... | ... |
pages/main/home/askdetail/askdetail.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <view class="page"> | |
| 3 | + <view class="top"> | |
| 4 | + <view class="title"> | |
| 5 | + {{detailObj.studentName}}提交的请假申请 | |
| 6 | + </view> | |
| 7 | + <view class="t1"> | |
| 8 | + {{detailObj.projectName}} | |
| 9 | + </view> | |
| 10 | + <view class="t2"> | |
| 11 | + {{detailObj.courseName}} | |
| 12 | + </view> | |
| 13 | + <view v-if="detailObj.status == 'wait'" class="status" style="color: #FFC200;"> | |
| 14 | + 待处理 | |
| 15 | + </view> | |
| 16 | + <view v-else-if="detailObj.status == 'pass'" class="status" style="color: #0CB17A;"> | |
| 17 | + 已通过 | |
| 18 | + </view> | |
| 19 | + <view v-else-if="detailObj.status == 'reject'" class="status" style="color: red;"> | |
| 20 | + 已驳回 | |
| 21 | + </view> | |
| 22 | + </view> | |
| 23 | + <view class="content"> | |
| 24 | + <view class="c1"> | |
| 25 | + 请假类型 | |
| 26 | + </view> | |
| 27 | + <view class="c2"> | |
| 28 | + {{getCategoryList(detailObj.category)}} | |
| 29 | + </view> | |
| 30 | + <view class="grayV"> | |
| 31 | + <view class="g1"> | |
| 32 | + 请假时间 | |
| 33 | + </view> | |
| 34 | + <image class="timeline" src="/static/img/home/timeline.png"></image> | |
| 35 | + <view class="start"> | |
| 36 | + {{$u.timeFormat(detailObj.startTime,'yyyy-mm-dd hh:MM')}} | |
| 37 | + </view> | |
| 38 | + <view class="end"> | |
| 39 | + {{$u.timeFormat(detailObj.endTime,'yyyy-mm-dd hh:MM')}} | |
| 40 | + </view> | |
| 41 | + </view> | |
| 42 | + <view class="c1" style="margin-top: 16rpx;"> | |
| 43 | + 请假原因 | |
| 44 | + </view> | |
| 45 | + <view class="c2" style="margin-top: 16rpx;"> | |
| 46 | + {{detailObj.reason}} | |
| 47 | + </view> | |
| 48 | + <view class="c1" style="margin-top: 32rpx;"> | |
| 49 | + 附件 | |
| 50 | + </view> | |
| 51 | + <view v-if="picList.length>0" class="fj_content"> | |
| 52 | + <view class="item"> | |
| 53 | + <view class="p_item" v-for="(item, index) in picList" :key="index" @click="openImage(item)"> | |
| 54 | + <u-image :height="120" :width="120" :border-radius="16" :src="item"></u-image> | |
| 55 | + </view> | |
| 56 | + </view> | |
| 57 | + </view> | |
| 58 | + </view> | |
| 59 | + <view class="timeb"> | |
| 60 | + <view class="title"> | |
| 61 | + 审批信息 | |
| 62 | + </view> | |
| 63 | + <view style="padding: 10rpx;"> | |
| 64 | + <view> | |
| 65 | + <view v-for="(item,index) in questions" :key="index"> | |
| 66 | + <view class="nodef"> | |
| 67 | + <!-- <<!-- template v-slot:node> --> | |
| 68 | + <view class="node1"> | |
| 69 | + <view class="u-node"></view> | |
| 70 | + </view> | |
| 71 | + <!-- </template> --> | |
| 72 | + <!-- <template v-slot:content> --> | |
| 73 | + <view class="node2"> | |
| 74 | + <view style="display: flex; align-self: center; justify-content:space-between;"> | |
| 75 | + <view class='u-order-title'>{{item.title}}</view> | |
| 76 | + <view class='u-order-time'>{{$u.timeFormat(item.time,'mm-dd hh:MM')}}</view> | |
| 77 | + </view> | |
| 78 | + <view class='u-order-desc'>{{item.desc}}{{item.peo?item.peo:''}}</view> | |
| 79 | + <view v-if="item.reply" class='u-order-reply'>{{item.reply}}</view> | |
| 80 | + </view> | |
| 81 | + <!-- </template> --> | |
| 82 | + </view> | |
| 83 | + </view> | |
| 84 | + </view> | |
| 85 | + </view> | |
| 86 | + </view> | |
| 87 | + <view style="height: 100px;"> | |
| 88 | + | |
| 89 | + </view> | |
| 90 | + <view class="footer" v-if="detailObj.status == 'wait'"> | |
| 91 | + <view class="left_btn"> | |
| 92 | + <c-button type="cancel" text="驳回" @click="handelCancel"> | |
| 93 | + </c-button> | |
| 94 | + </view> | |
| 95 | + <view class="right_btn"> | |
| 96 | + <c-button type="confirm" text="通过" @click="hancelSubmit"> | |
| 97 | + </c-button> | |
| 98 | + </view> | |
| 99 | + </view> | |
| 100 | + </view> | |
| 101 | +</template> | |
| 102 | + | |
| 103 | +<script> | |
| 104 | + import { | |
| 105 | + getleaveRecorddetailApi, | |
| 106 | + putleaveRecorddetailApi, | |
| 107 | + getImgUrlApi, | |
| 108 | + } from '@/config/api.js'; | |
| 109 | + | |
| 110 | + export default { | |
| 111 | + data() { | |
| 112 | + return { | |
| 113 | + id: '', | |
| 114 | + picList: [], | |
| 115 | + detailObj: {}, | |
| 116 | + attachments: [], | |
| 117 | + questions: [], | |
| 118 | + categoryList: [{ | |
| 119 | + label: '事假', | |
| 120 | + value: 'personal' | |
| 121 | + }, | |
| 122 | + { | |
| 123 | + label: '病假', | |
| 124 | + value: "sick", | |
| 125 | + }, | |
| 126 | + { | |
| 127 | + label: '调休', | |
| 128 | + value: "exchange", | |
| 129 | + }, | |
| 130 | + { | |
| 131 | + label: '其他', | |
| 132 | + value: "other", | |
| 133 | + } | |
| 134 | + ] | |
| 135 | + } | |
| 136 | + }, | |
| 137 | + | |
| 138 | + onLoad(e) { | |
| 139 | + this.id = e.id | |
| 140 | + this.loadData() | |
| 141 | + }, | |
| 142 | + | |
| 143 | + methods: { | |
| 144 | + | |
| 145 | + loadData() { | |
| 146 | + getleaveRecorddetailApi(this.id).then(res => { | |
| 147 | + if (res) { | |
| 148 | + this.detailObj = res; | |
| 149 | + this.handleDatas() | |
| 150 | + | |
| 151 | + let q1 = { | |
| 152 | + title: '发起申请', | |
| 153 | + desc: this.detailObj.studentName, | |
| 154 | + time: this.detailObj.createdTime | |
| 155 | + } | |
| 156 | + | |
| 157 | + let s = '' | |
| 158 | + if (this.detailObj.status == 'wait') { | |
| 159 | + s = '(待处理)' | |
| 160 | + }else if (this.detailObj.status == 'pass') { | |
| 161 | + s = '(已通过)' | |
| 162 | + }else if (this.detailObj.status == 'reject') { | |
| 163 | + s = '(已驳回)' | |
| 164 | + } | |
| 165 | + let q2 = { | |
| 166 | + title: '学校审批', | |
| 167 | + desc: this.detailObj.approver, | |
| 168 | + time: this.detailObj.approvalTime, | |
| 169 | + reply: this.detailObj.reply, | |
| 170 | + peo: s, | |
| 171 | + } | |
| 172 | + this.questions.push(q1) | |
| 173 | + if (this.detailObj.approver) { | |
| 174 | + this.questions.push(q2) | |
| 175 | + } | |
| 176 | + } | |
| 177 | + }) | |
| 178 | + }, | |
| 179 | + | |
| 180 | + handelCancel() { | |
| 181 | + putleaveRecorddetailApi(this.id,{status: 'reject'}).then(res => { | |
| 182 | + if (res) { | |
| 183 | + uni.navigateBack({ | |
| 184 | + delta: 1 | |
| 185 | + }); | |
| 186 | + } | |
| 187 | + }) | |
| 188 | + }, | |
| 189 | + | |
| 190 | + hancelSubmit() { | |
| 191 | + putleaveRecorddetailApi(this.id,{status: 'pass'}).then(res => { | |
| 192 | + if (res) { | |
| 193 | + uni.navigateBack({ | |
| 194 | + delta: 1 | |
| 195 | + }); | |
| 196 | + } | |
| 197 | + }) | |
| 198 | + }, | |
| 199 | + | |
| 200 | + getCategoryList(e) { | |
| 201 | + for (var i = 0; i < this.categoryList.length; i++) { | |
| 202 | + let item = this.categoryList[i] | |
| 203 | + if (e == item.value) { | |
| 204 | + return item.label | |
| 205 | + } | |
| 206 | + } | |
| 207 | + }, | |
| 208 | + | |
| 209 | + handleDatas() { //处理获取的网络图片 | |
| 210 | + if (this.detailObj.attachments) { | |
| 211 | + this.createdTime = this.$u.timeFormat(this.detailObj.createdTime / 1000, 'yyyy/mm/dd'); | |
| 212 | + var originInfo = JSON.parse(this.detailObj.attachments); | |
| 213 | + this.attachments = this.attachments.concat(originInfo) | |
| 214 | + console.log("1---", originInfo, "2---", this.attachments) | |
| 215 | + if (originInfo && originInfo.length > 0) { | |
| 216 | + for (var i = 0; i < originInfo.length; i++) { | |
| 217 | + getImgUrlApi({ | |
| 218 | + bucket: originInfo[i].bucket, | |
| 219 | + filePath: originInfo[i].object | |
| 220 | + }).then(res => { | |
| 221 | + this.picList.push(res.url) | |
| 222 | + console.log('picList...', this.picList) | |
| 223 | + }) | |
| 224 | + } | |
| 225 | + } | |
| 226 | + } | |
| 227 | + }, | |
| 228 | + | |
| 229 | + openLink(e) { | |
| 230 | + var _this = this | |
| 231 | + | |
| 232 | + uni.showLoading({ | |
| 233 | + title: '努力加载中~', | |
| 234 | + mask: true | |
| 235 | + }) | |
| 236 | + | |
| 237 | + getImgUrlApi({ | |
| 238 | + bucket: e.bucket, | |
| 239 | + filePath: e.object | |
| 240 | + }).then(data => { | |
| 241 | + console.log("data...", data) | |
| 242 | + if (e.mime_type.indexOf("image") != -1) { | |
| 243 | + _this.openImage(data.url) | |
| 244 | + } else { | |
| 245 | + uni.downloadFile({ | |
| 246 | + url: data.url, | |
| 247 | + success: function(res) { | |
| 248 | + var filePath = res.tempFilePath; | |
| 249 | + uni.openDocument({ | |
| 250 | + filePath: filePath, | |
| 251 | + showMenu: true, | |
| 252 | + success: function(res) { | |
| 253 | + console.log('打开文档成功'); | |
| 254 | + }, | |
| 255 | + complete: function() { | |
| 256 | + uni.hideLoading(); | |
| 257 | + } | |
| 258 | + }); | |
| 259 | + } | |
| 260 | + }); | |
| 261 | + } | |
| 262 | + }) | |
| 263 | + }, | |
| 264 | + openImage(imgPath) { | |
| 265 | + let array = new Array(1).fill(imgPath); | |
| 266 | + uni.previewImage({ | |
| 267 | + urls: array, | |
| 268 | + success(res) { | |
| 269 | + uni.hideLoading(); | |
| 270 | + console.log('openImage success'); | |
| 271 | + }, | |
| 272 | + fail(res) { | |
| 273 | + uni.hideLoading(); | |
| 274 | + console.log('openImage fail:', res); | |
| 275 | + } | |
| 276 | + }); | |
| 277 | + }, | |
| 278 | + } | |
| 279 | + } | |
| 280 | +</script> | |
| 281 | + | |
| 282 | +<style> | |
| 283 | + page { | |
| 284 | + background-color: #F7F7F7; | |
| 285 | + } | |
| 286 | +</style> | |
| 287 | + | |
| 288 | +<style lang="scss" scoped> | |
| 289 | + .page { | |
| 290 | + padding: 16rpx 32rpx; | |
| 291 | + | |
| 292 | + .top { | |
| 293 | + padding: 40rpx 32rpx; | |
| 294 | + background-color: #fff; | |
| 295 | + border-radius: 10px; | |
| 296 | + | |
| 297 | + .title { | |
| 298 | + font-size: 20px; | |
| 299 | + font-family: PingFangSC-Semibold, PingFang SC; | |
| 300 | + font-weight: 600; | |
| 301 | + color: #000000; | |
| 302 | + } | |
| 303 | + | |
| 304 | + .t1 { | |
| 305 | + margin-top: 32rpx; | |
| 306 | + font-size: 13px; | |
| 307 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 308 | + font-weight: 400; | |
| 309 | + color: rgba(0,0,0,0.6500); | |
| 310 | + } | |
| 311 | + | |
| 312 | + .t2 { | |
| 313 | + margin-top: 16rpx; | |
| 314 | + font-size: 13px; | |
| 315 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 316 | + font-weight: 400; | |
| 317 | + color: rgba(0,0,0,0.6500); | |
| 318 | + } | |
| 319 | + | |
| 320 | + .status { | |
| 321 | + margin-top: 32rpx; | |
| 322 | + font-size: 13px; | |
| 323 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 324 | + font-weight: 400; | |
| 325 | + color: #FFC200; | |
| 326 | + } | |
| 327 | + } | |
| 328 | + | |
| 329 | + .content { | |
| 330 | + padding: 40rpx 32rpx; | |
| 331 | + background-color: #fff; | |
| 332 | + border-radius: 10px; | |
| 333 | + margin-top: 16rpx; | |
| 334 | + | |
| 335 | + .c1 { | |
| 336 | + font-size: 16px; | |
| 337 | + font-family: PingFangSC-Semibold, PingFang SC; | |
| 338 | + font-weight: 600; | |
| 339 | + color: #000000; | |
| 340 | + } | |
| 341 | + | |
| 342 | + .c2 { | |
| 343 | + margin-top: 16rpx; | |
| 344 | + font-size: 14px; | |
| 345 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 346 | + font-weight: 400; | |
| 347 | + color: rgba(0,0,0,0.6500); | |
| 348 | + } | |
| 349 | + | |
| 350 | + .grayV { | |
| 351 | + margin-top: 24rpx; | |
| 352 | + height: 98px; | |
| 353 | + background: #F7F7F7; | |
| 354 | + border-radius: 24px; | |
| 355 | + padding: 8rpx 16rpx; | |
| 356 | + position: relative; | |
| 357 | + | |
| 358 | + .g1 { | |
| 359 | + font-size: 16px; | |
| 360 | + font-family: PingFangSC-Semibold, PingFang SC; | |
| 361 | + font-weight: 600; | |
| 362 | + color: #000000; | |
| 363 | + } | |
| 364 | + | |
| 365 | + .timeline { | |
| 366 | + position: absolute; | |
| 367 | + left: 2rpx; | |
| 368 | + top: 72rpx; | |
| 369 | + width: 40rpx; | |
| 370 | + height: 100rpx; | |
| 371 | + } | |
| 372 | + | |
| 373 | + .start { | |
| 374 | + position: absolute; | |
| 375 | + left: 88rpx; | |
| 376 | + top: 68rpx; | |
| 377 | + font-size: 14px; | |
| 378 | + font-family: DINAlternate-Bold, DINAlternate; | |
| 379 | + font-weight: bold; | |
| 380 | + color: rgba(0,0,0,0.6500); | |
| 381 | + } | |
| 382 | + | |
| 383 | + .end { | |
| 384 | + position: absolute; | |
| 385 | + left: 88rpx; | |
| 386 | + top: 134rpx; | |
| 387 | + font-size: 14px; | |
| 388 | + font-family: DINAlternate-Bold, DINAlternate; | |
| 389 | + font-weight: bold; | |
| 390 | + color: rgba(0,0,0,0.6500); | |
| 391 | + } | |
| 392 | + } | |
| 393 | + | |
| 394 | + .fj_content { | |
| 395 | + margin-top: 8px; | |
| 396 | + background-color: #fff; | |
| 397 | + | |
| 398 | + .item { | |
| 399 | + width: 100%; | |
| 400 | + display: flex; | |
| 401 | + flex-direction: row; | |
| 402 | + flex-wrap: wrap; | |
| 403 | + | |
| 404 | + .p_item { | |
| 405 | + position: relative; | |
| 406 | + width: 120rpx; | |
| 407 | + height: 120rpx; | |
| 408 | + margin-right: 13px; | |
| 409 | + margin-bottom: 13px; | |
| 410 | + | |
| 411 | + .delete { | |
| 412 | + position: absolute; | |
| 413 | + width: 24rpx; | |
| 414 | + height: 24rpx; | |
| 415 | + top: -12rpx; | |
| 416 | + right: -12rpx; | |
| 417 | + z-index: 199; | |
| 418 | + } | |
| 419 | + } | |
| 420 | + | |
| 421 | + } | |
| 422 | + | |
| 423 | + } | |
| 424 | + } | |
| 425 | + | |
| 426 | + .timeb { | |
| 427 | + padding: 40rpx 36rpx; | |
| 428 | + background-color: #fff; | |
| 429 | + border-radius: 10px; | |
| 430 | + margin-top: 16rpx; | |
| 431 | + position: relative; | |
| 432 | + | |
| 433 | + .title { | |
| 434 | + font-size: 16px; | |
| 435 | + font-family: PingFangSC-Semibold, PingFang SC; | |
| 436 | + font-weight: 600; | |
| 437 | + color: #000000; | |
| 438 | + margin-bottom: 20rpx; | |
| 439 | + } | |
| 440 | + | |
| 441 | + .nodef { | |
| 442 | + display: flex; | |
| 443 | + justify-content: start; | |
| 444 | + margin-bottom: 30rpx; | |
| 445 | + | |
| 446 | + .node1 { | |
| 447 | + position: relative; | |
| 448 | + margin-top: 4px; | |
| 449 | + | |
| 450 | + .line { | |
| 451 | + position: absolute; | |
| 452 | + left: 5px; | |
| 453 | + width: 1px; | |
| 454 | + height: 100%; | |
| 455 | + background-color: #f7f7f7; | |
| 456 | + } | |
| 457 | + } | |
| 458 | + | |
| 459 | + .node2 { | |
| 460 | + margin-left: 10px; | |
| 461 | + } | |
| 462 | + } | |
| 463 | + | |
| 464 | + .u-node { | |
| 465 | + width: 8px; | |
| 466 | + height: 8px; | |
| 467 | + border-radius: 8rpx; | |
| 468 | + background: #E5E5E6; | |
| 469 | + } | |
| 470 | + | |
| 471 | + .u-order-title { | |
| 472 | + color: rgba(0,0,0,0.4500); | |
| 473 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 474 | + font-weight: 400; | |
| 475 | + font-size: 24rpx; | |
| 476 | + } | |
| 477 | + | |
| 478 | + .u-order-desc { | |
| 479 | + font-size: 14px; | |
| 480 | + font-weight: bold; | |
| 481 | + color: rgba(0,0,0,1); | |
| 482 | + } | |
| 483 | + | |
| 484 | + .u-order-kf { | |
| 485 | + margin-top: 20px; | |
| 486 | + font-size: 14px; | |
| 487 | + font-weight: 400; | |
| 488 | + color: #8C8E91; | |
| 489 | + } | |
| 490 | + | |
| 491 | + .u-order-time { | |
| 492 | + font-size: 12px; | |
| 493 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 494 | + font-weight: 500; | |
| 495 | + color: rgba(0,0,0,0.6500); | |
| 496 | + margin-left: 10px; | |
| 497 | + } | |
| 498 | + | |
| 499 | + .u-order-reply { | |
| 500 | + width: 245px; | |
| 501 | + padding: 10rpx 14rpx; | |
| 502 | + background: #F7F7F7; | |
| 503 | + border-radius: 24px; | |
| 504 | + margin-top: 14rpx; | |
| 505 | + } | |
| 506 | + | |
| 507 | + } | |
| 508 | + | |
| 509 | + .footer { | |
| 510 | + width: 100%; | |
| 511 | + height: 96rpx; | |
| 512 | + padding: 28rpx 30rpx; | |
| 513 | + background: #FFFFFF; | |
| 514 | + position: fixed; | |
| 515 | + bottom: 0; | |
| 516 | + left: 0; | |
| 517 | + z-index: 99; | |
| 518 | + border-top: 2rpx solid #E2E2E8; | |
| 519 | + | |
| 520 | + view { | |
| 521 | + display: inline-block; | |
| 522 | + } | |
| 523 | + | |
| 524 | + .left_btn { | |
| 525 | + width: 330rpx; | |
| 526 | + margin: 0 30rpx 0 0; | |
| 527 | + } | |
| 528 | + | |
| 529 | + .right_btn { | |
| 530 | + width: 330rpx; | |
| 531 | + } | |
| 532 | + } | |
| 533 | + | |
| 534 | + } | |
| 535 | +</style> | |
| \ No newline at end of file | ... | ... |
pages/main/home/asklist/asklist.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <view class="registration_review"> | |
| 3 | + <view class="search_box"> | |
| 4 | + <!-- <view class="check"> | |
| 5 | + <u-checkbox-group v-model="checkboxValue" placement="column" @change="checkboxChange"> | |
| 6 | + <u-checkbox :customStyle="{marginBottom: '8px'}" shape="circle" | |
| 7 | + v-for="(item, index) in checkboxList" :key="index" :label="item.name" :name="item.name" | |
| 8 | + activeColor="#06B079" size="28rpx" labelSize="28rpx" labelColor="#202131"> | |
| 9 | + </u-checkbox> | |
| 10 | + </u-checkbox-group> | |
| 11 | + </view> --> | |
| 12 | + | |
| 13 | + <!-- <view class="search"> | |
| 14 | + <u-search placeholder="请输入学生姓名/学号/手机号" placeholderColor="#C1C1C9" searchIconSize="36" height="64rpx" | |
| 15 | + bgColor="#F4F4F4" :showAction="false" shape="square" v-model="keyword" @search="handelSearch"> | |
| 16 | + </u-search> | |
| 17 | + </view> --> | |
| 18 | + <view style="width: 148px;"> | |
| 19 | + <u-subsection :list="['待处理','全部']" :current="curNow" :fontSize="26" :activeColor="'#000'" @change="sectionChange"></u-subsection> | |
| 20 | + </view> | |
| 21 | + <view style="display: flex; justify-content: space-between; align-items: center;"> | |
| 22 | + <u-icon slot="icon" size="40" :name="'/static/img/home/search.png'" @click="searchCli"></u-icon> | |
| 23 | + <view style="width: 16px;"></view> | |
| 24 | + <u-icon slot="icon" size="40" :name="'/static/img/home/selectIcon.png'" @click="show = true"></u-icon> | |
| 25 | + </view> | |
| 26 | + </view> | |
| 27 | + | |
| 28 | + <view class="list_box" v-if="list.length > 0"> | |
| 29 | + <view class="item" v-for="(item, i) in list" :key="i" @click="handelDetail(item)"> | |
| 30 | + <view class="t1"> | |
| 31 | + {{item.studentName}}提交的请假申请 | |
| 32 | + </view> | |
| 33 | + <view class="t3"> | |
| 34 | + {{item.projectName}} | |
| 35 | + </view> | |
| 36 | + <view class="t2 t2top14"> | |
| 37 | + 请假类型: {{getCategoryList(item.category)}} | |
| 38 | + </view> | |
| 39 | + <view class="t2"> | |
| 40 | + 开始时间: {{timeFormat(item.startTime, 'yyyy-mm-dd hh:MM')}} | |
| 41 | + </view> | |
| 42 | + <view class="t2"> | |
| 43 | + 结束时间: {{timeFormat(item.endTime, 'yyyy-mm-dd hh:MM')}} | |
| 44 | + </view> | |
| 45 | + <view v-if="item.status == 'wait'" class="status" style="color: #F49A23;"> | |
| 46 | + 待处理 | |
| 47 | + </view> | |
| 48 | + <view v-else-if="item.status == 'pass'" class="status" style="color: #0CB17A;"> | |
| 49 | + 已通过 | |
| 50 | + </view> | |
| 51 | + <view v-else-if="item.status == 'reject'" class="status" style="color: red;"> | |
| 52 | + 已驳回 | |
| 53 | + </view> | |
| 54 | + <view class="time"> | |
| 55 | + {{timeFormat(item.createdTime, 'mm-dd')}} | |
| 56 | + </view> | |
| 57 | + </view> | |
| 58 | + <c-loading :loading="loading"></c-loading> | |
| 59 | + </view> | |
| 60 | + <view v-else class="no_data"> | |
| 61 | + <c-no-data></c-no-data> | |
| 62 | + </view> | |
| 63 | + | |
| 64 | + <u-popup :show="show" mode="bottom" @close="close" :round="22"> | |
| 65 | + <view class="popup"> | |
| 66 | + <view style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px;"> | |
| 67 | + <view class="title"> | |
| 68 | + 项目筛选 | |
| 69 | + </view> | |
| 70 | + <image class="close" src="/static/img/home/closepop.png" @click="close" mode=""></image> | |
| 71 | + </view> | |
| 72 | + <view class="search"> | |
| 73 | + <u-search placeholder="请输入项目关键词搜索" placeholderColor="#C1C1C9" searchIconSize="36" height="64rpx" | |
| 74 | + bgColor="#F4F4F4" :showAction="true" shape="round" v-model="sxsearch" @custom="workSearch()" @search="workSearch()"> | |
| 75 | + </u-search> | |
| 76 | + </view> | |
| 77 | + <scroll-view v-if="works.length>0" scroll-y="true" style="height: 80%; margin-top: 40rpx;" | |
| 78 | + @scrolltolower="lower()"> | |
| 79 | + <view class="item_box" v-for="(item,index) in works" :key="index" @click="popupSelItem(item)"> | |
| 80 | + <view style="display: flex; align-items: center; justify-content: space-between;"> | |
| 81 | + <view class="item_title"> | |
| 82 | + {{item.name}} | |
| 83 | + </view> | |
| 84 | + <image v-if="item.id == projectId" style="width: 20px; height: 20px;" src="/static/img/home/popselect.png" mode=""></image> | |
| 85 | + </view> | |
| 86 | + </view> | |
| 87 | + </scroll-view> | |
| 88 | + <view v-else class="no_data" @click="jumpVerified"> | |
| 89 | + <view class="text_black_28"> | |
| 90 | + 暂未搜索到该项目 | |
| 91 | + </view> | |
| 92 | + </view> | |
| 93 | + </view> | |
| 94 | + </u-popup> | |
| 95 | + | |
| 96 | + <!-- <u-popup :show="show" mode="right" @close="close" @open="open" :closeOnClickOverlay="false"> | |
| 97 | + <view class="popup_search"> | |
| 98 | + <view class="content"> | |
| 99 | + <view class="title">按项目筛选</view> | |
| 100 | + <scroll-view class="scroll" scroll-y="true"> | |
| 101 | + <view class="item" v-for="(item, i) in projectList" :key="i" @click="handelClick(item)"> | |
| 102 | + <view class="selectItem" v-if="item.id == projectId"> | |
| 103 | + <text>{{item.name}}</text> | |
| 104 | + </view> | |
| 105 | + <view v-else> | |
| 106 | + <text>{{item.name}}</text> | |
| 107 | + </view> | |
| 108 | + </view> | |
| 109 | + </scroll-view> | |
| 110 | + <view class="switch"> | |
| 111 | + <text>待处理</text> | |
| 112 | + <u-switch v-model="switchValue" size="48" activeColor="#06B079" @change="handelChange"> | |
| 113 | + </u-switch> | |
| 114 | + </view> | |
| 115 | + </view> | |
| 116 | + | |
| 117 | + <view class="footer"> | |
| 118 | + <view class="left_btn"> | |
| 119 | + <c-button type="cancel" text="重置" @click="handelCancel"> | |
| 120 | + </c-button> | |
| 121 | + </view> | |
| 122 | + <view class="right_btn"> | |
| 123 | + <c-button type="confirm" text="确定" @click="hancelSubmit"> | |
| 124 | + </c-button> | |
| 125 | + </view> | |
| 126 | + </view> | |
| 127 | + | |
| 128 | + </view> | |
| 129 | + </u-popup> --> | |
| 130 | + | |
| 131 | + </view> | |
| 132 | +</template> | |
| 133 | + | |
| 134 | +<script> | |
| 135 | + import { | |
| 136 | + mapGetters, | |
| 137 | + mapState, | |
| 138 | + mapActions | |
| 139 | + } from 'vuex' | |
| 140 | + import listMixin from "@/common/mixins/list-mixin.js"; | |
| 141 | + | |
| 142 | + import { | |
| 143 | + getleaveRecordlistListApi, | |
| 144 | + getProjectListApi, | |
| 145 | + } from '@/config/api.js'; | |
| 146 | + | |
| 147 | + export default { | |
| 148 | + mixins: [listMixin], | |
| 149 | + data() { | |
| 150 | + return { | |
| 151 | + checkboxValue: [], | |
| 152 | + // 基本案列数据 | |
| 153 | + checkboxList: [{ | |
| 154 | + name: '待处理', | |
| 155 | + disabled: false | |
| 156 | + }], | |
| 157 | + keyword: '', | |
| 158 | + show: false, | |
| 159 | + list: [], //列表必须为key list的数组 | |
| 160 | + search: { | |
| 161 | + //搜索对象必须为key search的对象 | |
| 162 | + keySearch: "", | |
| 163 | + status: '', | |
| 164 | + | |
| 165 | + }, | |
| 166 | + projectId: '', | |
| 167 | + switchValue: false, | |
| 168 | + categoryList: [{ | |
| 169 | + label: '事假', | |
| 170 | + value: 'personal' | |
| 171 | + }, | |
| 172 | + { | |
| 173 | + label: '病假', | |
| 174 | + value: "sick", | |
| 175 | + }, | |
| 176 | + { | |
| 177 | + label: '调休', | |
| 178 | + value: "exchange", | |
| 179 | + }, | |
| 180 | + { | |
| 181 | + label: '其他', | |
| 182 | + value: "other", | |
| 183 | + } | |
| 184 | + ], | |
| 185 | + curNow: 1, | |
| 186 | + sxsearch: '', | |
| 187 | + works: [], | |
| 188 | + workspage: 1, | |
| 189 | + workstotal: 0, | |
| 190 | + } | |
| 191 | + }, | |
| 192 | + | |
| 193 | + onLoad(option) { | |
| 194 | + console.log(option) | |
| 195 | + // this.$store.dispatch(`home/getProjectList`, { | |
| 196 | + // pageSize: -1, | |
| 197 | + // }) | |
| 198 | + | |
| 199 | + this.worksloadData() | |
| 200 | + | |
| 201 | + // this.search.keySearch = ''; | |
| 202 | + | |
| 203 | + if (option && option.status) { | |
| 204 | + // this.search.status = 'wait'; | |
| 205 | + this.curNow = 0; | |
| 206 | + // this.checkboxValue = ['待处理']; | |
| 207 | + // this.switchValue = true; | |
| 208 | + } | |
| 209 | + | |
| 210 | + }, | |
| 211 | + | |
| 212 | + onShow() { | |
| 213 | + this.finished = false; | |
| 214 | + this.loading = "loadmore"; | |
| 215 | + this.page = 0; | |
| 216 | + this.list = []; | |
| 217 | + this._getList(); | |
| 218 | + }, | |
| 219 | + | |
| 220 | + computed: { | |
| 221 | + ...mapState('home', { | |
| 222 | + // 箭头函数可使代码更简练 | |
| 223 | + projectList: 'projectList', | |
| 224 | + | |
| 225 | + }), | |
| 226 | + | |
| 227 | + }, | |
| 228 | + | |
| 229 | + methods: { | |
| 230 | + | |
| 231 | + searchCli() { | |
| 232 | + this.$u.route('/pages/main/home/search/search?type=ask&searchkey=' + this.keyword); | |
| 233 | + }, | |
| 234 | + | |
| 235 | + sectionChange(index) { | |
| 236 | + this.curNow = index; | |
| 237 | + | |
| 238 | + this.finished = false; | |
| 239 | + this.loading = "loadmore"; | |
| 240 | + this.page = 0; | |
| 241 | + this.list = []; | |
| 242 | + this._getList(); | |
| 243 | + }, | |
| 244 | + | |
| 245 | + getCategoryList(e) { | |
| 246 | + for (var i = 0; i < this.categoryList.length; i++) { | |
| 247 | + let item = this.categoryList[i] | |
| 248 | + if (e == item.value) { | |
| 249 | + return item.label | |
| 250 | + } | |
| 251 | + } | |
| 252 | + }, | |
| 253 | + | |
| 254 | + handelDetail(record) { | |
| 255 | + this.$u.route('/pages/main/home/askdetail/askdetail?id='+record.id); | |
| 256 | + }, | |
| 257 | + | |
| 258 | + timeFormat(timestamp, format = 'yyyy-mm-dd') { | |
| 259 | + return timestamp > 0 ? uni.$u.timeFormat(timestamp, format) : '--' | |
| 260 | + }, | |
| 261 | + | |
| 262 | + checkboxChange(n) { | |
| 263 | + console.log('change', n); | |
| 264 | + | |
| 265 | + this.search.status = n.length > 0 ? 'wait' : ''; | |
| 266 | + | |
| 267 | + this.switchValue = n.length > 0 ? true : false; | |
| 268 | + | |
| 269 | + this.finished = false; | |
| 270 | + this.loading = "loadmore"; | |
| 271 | + this.page = 0; | |
| 272 | + this.list = []; | |
| 273 | + this._getList(); | |
| 274 | + }, | |
| 275 | + | |
| 276 | + handelSearch(value) { | |
| 277 | + this.finished = false; | |
| 278 | + this.loading = "loadmore"; | |
| 279 | + this.page = 0; | |
| 280 | + this.list = []; | |
| 281 | + this._getList(); | |
| 282 | + }, | |
| 283 | + | |
| 284 | + open() { | |
| 285 | + // console.log('open'); | |
| 286 | + }, | |
| 287 | + close() { | |
| 288 | + this.show = false | |
| 289 | + // console.log('close'); | |
| 290 | + }, | |
| 291 | + // scroll-view到底部加载更多 | |
| 292 | + onreachBottom() {}, | |
| 293 | + // 搜索 | |
| 294 | + searchSubmit() { | |
| 295 | + // 调用混合搜索 | |
| 296 | + this._searchData(); | |
| 297 | + }, | |
| 298 | + // 模拟后端分页 | |
| 299 | + async getData(requestParams) { | |
| 300 | + const { | |
| 301 | + search = {} | |
| 302 | + } = requestParams; | |
| 303 | + | |
| 304 | + let params = {}; | |
| 305 | + params.pageNumber = requestParams.page + 1; | |
| 306 | + params.pageSize = 5; | |
| 307 | + | |
| 308 | + if (this.curNow == 0) { | |
| 309 | + params.status = 'wait'; | |
| 310 | + } | |
| 311 | + | |
| 312 | + if (this.keyword) { | |
| 313 | + params.keySearch = this.keyword | |
| 314 | + } | |
| 315 | + | |
| 316 | + if (this.projectId) { | |
| 317 | + params.projectId = this.projectId | |
| 318 | + } | |
| 319 | + | |
| 320 | + return await getleaveRecordlistListApi(params); | |
| 321 | + }, | |
| 322 | + // 数据请求(没错就是这么少的代码) | |
| 323 | + async _getList() { | |
| 324 | + if (this.page == 0) { | |
| 325 | + this.list = []; | |
| 326 | + } | |
| 327 | + | |
| 328 | + // 根据实际情况修改自己修改key | |
| 329 | + let result = await this.getData({ | |
| 330 | + page: this.page, // 传入页码 | |
| 331 | + size: this.size, // 传入每页条数 | |
| 332 | + search: this.search, // 传入搜索的对象 | |
| 333 | + }); | |
| 334 | + | |
| 335 | + this.total = result.total; | |
| 336 | + | |
| 337 | + if (this.list.length == 0 && result.records.length == 0) { | |
| 338 | + this.shownoData = false | |
| 339 | + } else { | |
| 340 | + this.shownoData = true | |
| 341 | + } | |
| 342 | + | |
| 343 | + this.list = this.list.concat(result.records) | |
| 344 | + | |
| 345 | + // 判断是否全部加载完成 | |
| 346 | + if (this.total == this.list.length) { | |
| 347 | + this.finished = true; | |
| 348 | + this.loading = 'nomore'; | |
| 349 | + } else { | |
| 350 | + this.loading = 'loadmore'; | |
| 351 | + } | |
| 352 | + }, | |
| 353 | + | |
| 354 | + handelClick(values) { | |
| 355 | + console.log(values); | |
| 356 | + this.projectId = values.id; | |
| 357 | + }, | |
| 358 | + | |
| 359 | + handelChange(e) { | |
| 360 | + console.log(e) | |
| 361 | + this.checkboxValue = e ? ['待处理'] : []; | |
| 362 | + this.search.status = e ? 'wait' : ''; | |
| 363 | + | |
| 364 | + }, | |
| 365 | + | |
| 366 | + handelCancel() { | |
| 367 | + this.switchValue = false; | |
| 368 | + this.projectId = ''; | |
| 369 | + }, | |
| 370 | + | |
| 371 | + hancelSubmit() { | |
| 372 | + this.finished = false; | |
| 373 | + this.loading = "loadmore"; | |
| 374 | + this.page = 0; | |
| 375 | + this.list = []; | |
| 376 | + this._getList(); | |
| 377 | + | |
| 378 | + this.show = false; | |
| 379 | + }, | |
| 380 | + | |
| 381 | + workSearch() { | |
| 382 | + uni.hideKeyboard(); | |
| 383 | + this.works = [] | |
| 384 | + this.worksloadData() | |
| 385 | + }, | |
| 386 | + | |
| 387 | + lower() { | |
| 388 | + setTimeout(() => { | |
| 389 | + this.worksloadData(true); | |
| 390 | + }, 200) | |
| 391 | + }, | |
| 392 | + | |
| 393 | + worksloadData(e) { | |
| 394 | + let params = {} | |
| 395 | + // this.loading = 'loading' | |
| 396 | + | |
| 397 | + if (e) { | |
| 398 | + if (this.total <= this.works.length) { | |
| 399 | + // this.loading = 'nomore' | |
| 400 | + return | |
| 401 | + } | |
| 402 | + this.workspage++ | |
| 403 | + } else { | |
| 404 | + this.workspage = 1 | |
| 405 | + } | |
| 406 | + params['pageNumber'] = this.workspage | |
| 407 | + if (this.sxsearch) { | |
| 408 | + params['keyWord'] = this.sxsearch | |
| 409 | + } | |
| 410 | + getProjectListApi(params).then(async res => { | |
| 411 | + if (res) { | |
| 412 | + this.total = res.total | |
| 413 | + // this.loading = 'loadmore' | |
| 414 | + this.works = this.works.concat(res.records) | |
| 415 | + } | |
| 416 | + }) | |
| 417 | + }, | |
| 418 | + popupSelItem(item) { | |
| 419 | + this.show = false | |
| 420 | + this.projectId = item.id; | |
| 421 | + this.finished = false; | |
| 422 | + this.loading = "loadmore"; | |
| 423 | + this.page = 0; | |
| 424 | + this.list = []; | |
| 425 | + this._getList(); | |
| 426 | + }, | |
| 427 | + | |
| 428 | + } | |
| 429 | + } | |
| 430 | +</script> | |
| 431 | + | |
| 432 | +<style lang="scss" scoped> | |
| 433 | + .registration_review { | |
| 434 | + width: 100%; | |
| 435 | + min-height: 100%; | |
| 436 | + height: auto; | |
| 437 | + background-color: #F7F7F7; | |
| 438 | + | |
| 439 | + .search_box { | |
| 440 | + padding: 36rpx 30rpx 12rpx; | |
| 441 | + background-color: #FFFFFF; | |
| 442 | + display: flex; | |
| 443 | + flex-flow: row nowrap; | |
| 444 | + justify-content: space-between; | |
| 445 | + | |
| 446 | + .check { | |
| 447 | + padding: 20rpx 0 0 0; | |
| 448 | + } | |
| 449 | + | |
| 450 | + .search { | |
| 451 | + width: 468rpx; | |
| 452 | + } | |
| 453 | + } | |
| 454 | + | |
| 455 | + .list_box { | |
| 456 | + padding: 0 0 50rpx 0; | |
| 457 | + | |
| 458 | + .item { | |
| 459 | + position: relative; | |
| 460 | + margin: 8px 13px 0; | |
| 461 | + padding: 20px 17px; | |
| 462 | + border-radius: 8rpx; | |
| 463 | + background-color: #FFFFFF; | |
| 464 | + | |
| 465 | + .t1 { | |
| 466 | + font-size: 14px; | |
| 467 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 468 | + font-weight: 500; | |
| 469 | + color: #000000; | |
| 470 | + } | |
| 471 | + | |
| 472 | + .t2 { | |
| 473 | + margin-top: 6px; | |
| 474 | + font-size: 12px; | |
| 475 | + font-family: PingFangSC-Light, PingFang SC; | |
| 476 | + font-weight: 300; | |
| 477 | + color: rgba(38,41,47,0.85); | |
| 478 | + } | |
| 479 | + | |
| 480 | + .t3 { | |
| 481 | + font-size: 12px; | |
| 482 | + font-family: PingFangSC-Light, PingFang SC; | |
| 483 | + font-weight: 300; | |
| 484 | + color: #000000; | |
| 485 | + } | |
| 486 | + | |
| 487 | + .t2top14 { | |
| 488 | + margin-top: 14px; | |
| 489 | + } | |
| 490 | + | |
| 491 | + .time { | |
| 492 | + position: absolute; | |
| 493 | + top: 17px; | |
| 494 | + right: 17px; | |
| 495 | + font-size: 12px; | |
| 496 | + font-family: PingFangSC-Light, PingFang SC; | |
| 497 | + font-weight: 300; | |
| 498 | + color: rgba(0,0,0,0.85); | |
| 499 | + } | |
| 500 | + | |
| 501 | + .status { | |
| 502 | + position: absolute; | |
| 503 | + bottom: 20px; | |
| 504 | + right: 17px; | |
| 505 | + font-size: 12px; | |
| 506 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 507 | + font-weight: 400; | |
| 508 | + } | |
| 509 | + } | |
| 510 | + } | |
| 511 | + | |
| 512 | + .popup_search { | |
| 513 | + width: 640rpx; | |
| 514 | + position: relative; | |
| 515 | + | |
| 516 | + .content { | |
| 517 | + padding: 0 40rpx; | |
| 518 | + | |
| 519 | + .title { | |
| 520 | + padding: 24rpx 0; | |
| 521 | + font-size: 28rpx; | |
| 522 | + line-height: 36rpx; | |
| 523 | + color: #202131; | |
| 524 | + } | |
| 525 | + | |
| 526 | + .scroll { | |
| 527 | + max-height: 60vh; | |
| 528 | + | |
| 529 | + .item { | |
| 530 | + | |
| 531 | + view { | |
| 532 | + display: flex; | |
| 533 | + flex-flow: row wrap; | |
| 534 | + align-items: center; | |
| 535 | + width: 500rpx; | |
| 536 | + height: 74rpx; | |
| 537 | + border-radius: 4rpx; | |
| 538 | + border: 2rpx solid #C1C1C9; | |
| 539 | + margin: 0 10rpx 20rpx; | |
| 540 | + font-size: 24rpx; | |
| 541 | + line-height: 32rpx; | |
| 542 | + color: #C0C0C9; | |
| 543 | + padding: 16rpx 20rpx; | |
| 544 | + } | |
| 545 | + | |
| 546 | + .selectItem { | |
| 547 | + background-color: #06B079; | |
| 548 | + color: #FFFFFF; | |
| 549 | + border: 2rpx solid #06B079; | |
| 550 | + } | |
| 551 | + } | |
| 552 | + } | |
| 553 | + | |
| 554 | + .switch { | |
| 555 | + display: flex; | |
| 556 | + flex-flow: row nowrap; | |
| 557 | + justify-content: space-between; | |
| 558 | + padding: 40rpx 0 0 0; | |
| 559 | + | |
| 560 | + text { | |
| 561 | + font-size: 28rpx; | |
| 562 | + line-height: 36rpx; | |
| 563 | + color: #202131; | |
| 564 | + } | |
| 565 | + } | |
| 566 | + | |
| 567 | + | |
| 568 | + } | |
| 569 | + | |
| 570 | + .footer { | |
| 571 | + width: 560rpx; | |
| 572 | + height: 96rpx; | |
| 573 | + padding: 28rpx 40rpx; | |
| 574 | + background: #FFFFFF; | |
| 575 | + position: fixed; | |
| 576 | + bottom: 0; | |
| 577 | + right: 0; | |
| 578 | + z-index: 99; | |
| 579 | + border-top: 2rpx solid #E2E2E8; | |
| 580 | + | |
| 581 | + view { | |
| 582 | + display: inline-block; | |
| 583 | + } | |
| 584 | + | |
| 585 | + .left_btn { | |
| 586 | + width: 194rpx; | |
| 587 | + margin: 0 20rpx 0 0; | |
| 588 | + } | |
| 589 | + | |
| 590 | + .right_btn { | |
| 591 | + width: 346rpx; | |
| 592 | + } | |
| 593 | + } | |
| 594 | + } | |
| 595 | + | |
| 596 | + .popup { | |
| 597 | + height: 500px; | |
| 598 | + padding: 19px 16px; | |
| 599 | + | |
| 600 | + .title { | |
| 601 | + font-size: 18px; | |
| 602 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 603 | + font-weight: 500; | |
| 604 | + color: #000000; | |
| 605 | + } | |
| 606 | + | |
| 607 | + .close { | |
| 608 | + width: 22px; | |
| 609 | + height: 22px; | |
| 610 | + } | |
| 611 | + | |
| 612 | + .item_box { | |
| 613 | + border-radius: 4px; | |
| 614 | + margin: 0 0 48rpx; | |
| 615 | + | |
| 616 | + .item_title { | |
| 617 | + height: 20px; | |
| 618 | + font-size: 14px; | |
| 619 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 620 | + font-weight: 400; | |
| 621 | + color: rgba(0, 0, 0, 0.65); | |
| 622 | + line-height: 20px; | |
| 623 | + } | |
| 624 | + | |
| 625 | + } | |
| 626 | + | |
| 627 | + .no_data { | |
| 628 | + width: 100%; | |
| 629 | + margin-top: 310rpx; | |
| 630 | + | |
| 631 | + .text_black_28 { | |
| 632 | + font-size: 14px; | |
| 633 | + font-family: PingFangSC-Light, PingFang SC; | |
| 634 | + font-weight: 300; | |
| 635 | + color: rgba(0,0,0,0.65); | |
| 636 | + text-align: center; | |
| 637 | + } | |
| 638 | + | |
| 639 | + } | |
| 640 | + | |
| 641 | + } | |
| 642 | + } | |
| 643 | +</style> | ... | ... |
| 1 | +<template> | |
| 2 | + <view class="page"> | |
| 3 | + <view class="top"> | |
| 4 | + <view class="title"> | |
| 5 | + {{title}} | |
| 6 | + </view> | |
| 7 | + <view class="t1"> | |
| 8 | + {{desc}} | |
| 9 | + </view> | |
| 10 | + </view> | |
| 11 | + <view style="background-color: #fff; margin-top: 20rpx;"> | |
| 12 | + <view class="nav_bar_topV65"> | |
| 13 | + <!-- <u-tabs :height="104" :list="menu_list" :active-color="'#26B961'" :is-scroll="false" | |
| 14 | + :current="current" @click="change" :active-item-style="{'color':'#000'}"> | |
| 15 | + </u-tabs> --> | |
| 16 | + <u-tabs :list="menu_list" @click="click" :lineColor="'#26B961'"></u-tabs> | |
| 17 | + </view> | |
| 18 | + </view> | |
| 19 | + <view v-if="current==0"> | |
| 20 | + <view class="timeb"> | |
| 21 | + <view v-if="detailObj.status == 'wait'" class="status" style="color: #F49A23;"> | |
| 22 | + 待处理 | |
| 23 | + </view> | |
| 24 | + <view v-else-if="detailObj.status == 'adopt'" class="status" style="color: #0CB17A;"> | |
| 25 | + 已通过 | |
| 26 | + </view> | |
| 27 | + <view v-else-if="detailObj.status == 'reject'" class="status" style="color: red;"> | |
| 28 | + 已驳回 | |
| 29 | + </view> | |
| 30 | + <!-- <image class="sxdw_icon116" :src="statusImg" mode=""></image> --> | |
| 31 | + <view style="margin-top: 20px;"> | |
| 32 | + <view> | |
| 33 | + <view v-for="(item,index) in questions" :key="index"> | |
| 34 | + <view class="nodef"> | |
| 35 | + <!-- <template v-slot:node> --> | |
| 36 | + <view class="node1"> | |
| 37 | + <view :class="item.title == '新单位信息'?'u-green-node':'u-node'"></view> | |
| 38 | + <view class="line"></view> | |
| 39 | + </view> | |
| 40 | + <!-- </template> --> | |
| 41 | + <!-- <template v-slot:content> --> | |
| 42 | + <view class="node2"> | |
| 43 | + <view class='u-order-title'>{{item.title}}</view> | |
| 44 | + <view class='u-order-reply'> | |
| 45 | + <view v-for="(item1,index1) in item.desc" :key="index1"> | |
| 46 | + <view style="margin-bottom: 20rpx; overflow: hidden;"> | |
| 47 | + <text style="font-size: 13px;color: rgba(0,0,0,0.65);">{{item1.title}}</text> | |
| 48 | + <text style="font-size: 13px;color: rgba(0,0,0,1);margin-left: 4px;">{{item1.desc}}</text> | |
| 49 | + </view> | |
| 50 | + </view> | |
| 51 | + </view> | |
| 52 | + </view> | |
| 53 | + <!-- </template> --> | |
| 54 | + </view> | |
| 55 | + </view> | |
| 56 | + </view> | |
| 57 | + </view> | |
| 58 | + </view> | |
| 59 | + <view style="height: 94px;"></view> | |
| 60 | + <!-- <view class="btv"> | |
| 61 | + <view class="btn" @click="onenter"> | |
| 62 | + 撤销申请 | |
| 63 | + </view> | |
| 64 | + </view> --> | |
| 65 | + <view class="footer" v-if="detailObj.status == 'wait'"> | |
| 66 | + <view class="left_btn"> | |
| 67 | + <c-button type="cancel" text="驳回" @click="handelCancel"> | |
| 68 | + </c-button> | |
| 69 | + </view> | |
| 70 | + <view class="right_btn"> | |
| 71 | + <c-button type="confirm" text="通过" @click="hancelSubmit"> | |
| 72 | + </c-button> | |
| 73 | + </view> | |
| 74 | + </view> | |
| 75 | + </view> | |
| 76 | + <view v-else> | |
| 77 | + <view v-if="JSON.stringify(clObj) != '{}' && clObj" class="bczl"> | |
| 78 | + <view class="t"> | |
| 79 | + <view class="green"></view> | |
| 80 | + <view class="title"> | |
| 81 | + 上传时间 | |
| 82 | + </view> | |
| 83 | + </view> | |
| 84 | + <view class="desc"> | |
| 85 | + <!-- 2022年10月26日 17:22:10 --> | |
| 86 | + {{$u.timeFrom(clObj.createdTime)}} | |
| 87 | + </view> | |
| 88 | + <view class="t" style="margin-top: 72rpx;"> | |
| 89 | + <view class="green"></view> | |
| 90 | + <view class="title"> | |
| 91 | + 备注 | |
| 92 | + </view> | |
| 93 | + </view> | |
| 94 | + <view class="desc"> | |
| 95 | + {{clObj.remarks}} | |
| 96 | + </view> | |
| 97 | + <view class="t" style="margin-top: 72rpx;"> | |
| 98 | + <view class="green"></view> | |
| 99 | + <view class="title"> | |
| 100 | + 照片 | |
| 101 | + </view> | |
| 102 | + </view> | |
| 103 | + <view style="margin-top: 32rpx;"> | |
| 104 | + <u-grid :col="3" :border="false"> | |
| 105 | + <u-grid-item v-for="(item, index) in picList" :key="index"> | |
| 106 | + <u-image :height="196" :width="196" :src="item"></u-image> | |
| 107 | + </u-grid-item> | |
| 108 | + </u-grid> | |
| 109 | + </view> | |
| 110 | + <view class="t" style="margin-top: 72rpx;"> | |
| 111 | + <view class="green"></view> | |
| 112 | + <view class="title"> | |
| 113 | + 附件 | |
| 114 | + </view> | |
| 115 | + </view> | |
| 116 | + <view class="pdffj" v-for="(item,index) in fileList " @click="openLink(item)"> | |
| 117 | + <image class="img" src="/static/img/common/link.png"></image> | |
| 118 | + <text class="look">{{item.filename}}</text> | |
| 119 | + <!-- <text class="look">{{item.filename}}</text> --> | |
| 120 | + </view> | |
| 121 | + </view> | |
| 122 | + <view v-else class="bczl"> | |
| 123 | + <view class="no_data"> | |
| 124 | + <image class="img" src="/static/img/home/nodata.png"></image> | |
| 125 | + <view style=" | |
| 126 | + font-size: 16px; | |
| 127 | + color: #333333; | |
| 128 | + margin-top: 60rpx; | |
| 129 | + text-align: center; | |
| 130 | + ">暂无数据</view> | |
| 131 | + </view> | |
| 132 | + </view> | |
| 133 | + <view style="height: 94px;"></view> | |
| 134 | + <!-- <view v-if="cjtype" class="btv"> | |
| 135 | + <view class="btn" @click="editClick"> | |
| 136 | + {{(JSON.stringify(clObj) != '{}' && clObj)?'编辑':'上传报名材料'}} | |
| 137 | + </view> | |
| 138 | + </view> --> | |
| 139 | + </view> | |
| 140 | + </view> | |
| 141 | +</template> | |
| 142 | + | |
| 143 | +<script> | |
| 144 | + import { | |
| 145 | + formChangeApplydetailUrl, | |
| 146 | + getImgUrlApi, | |
| 147 | + putformChangeApplyapprovalUrl | |
| 148 | + } from '@/config/api.js'; | |
| 149 | + | |
| 150 | + export default { | |
| 151 | + data() { | |
| 152 | + return { | |
| 153 | + title: '', | |
| 154 | + desc: '', | |
| 155 | + changeid: '', | |
| 156 | + detailObj: {}, | |
| 157 | + questions: [], | |
| 158 | + statusImg: '', | |
| 159 | + wageTypes: { | |
| 160 | + "monthly": "月", | |
| 161 | + "daily": "日", | |
| 162 | + "hourly": "时", | |
| 163 | + "annual": "年" | |
| 164 | + }, | |
| 165 | + menu_list: [{ | |
| 166 | + name: '变更详情' | |
| 167 | + }, { | |
| 168 | + name: '变更材料' | |
| 169 | + }], | |
| 170 | + current: 0, | |
| 171 | + cjtype: false, | |
| 172 | + clObj: {}, | |
| 173 | + picList: [], | |
| 174 | + fileList: [], | |
| 175 | + } | |
| 176 | + }, | |
| 177 | + | |
| 178 | + onLoad(e) { | |
| 179 | + console.log(e) | |
| 180 | + this.changeid = e.id | |
| 181 | + }, | |
| 182 | + | |
| 183 | + onShow() { | |
| 184 | + this.loadData() | |
| 185 | + }, | |
| 186 | + | |
| 187 | + methods: { | |
| 188 | + | |
| 189 | + // change(index) { | |
| 190 | + // this.current = index; | |
| 191 | + // }, | |
| 192 | + | |
| 193 | + handelCancel() { | |
| 194 | + putformChangeApplyapprovalUrl(this.changeid,{status: 'reject'}).then(res => { | |
| 195 | + if (res) { | |
| 196 | + uni.navigateBack({ | |
| 197 | + delta: 1 | |
| 198 | + }); | |
| 199 | + } | |
| 200 | + }) | |
| 201 | + }, | |
| 202 | + | |
| 203 | + hancelSubmit() { | |
| 204 | + putformChangeApplyapprovalUrl(this.changeid,{status: 'adopt'}).then(res => { | |
| 205 | + if (res) { | |
| 206 | + uni.navigateBack({ | |
| 207 | + delta: 1 | |
| 208 | + }); | |
| 209 | + } | |
| 210 | + }) | |
| 211 | + }, | |
| 212 | + | |
| 213 | + click(item) { | |
| 214 | + console.log('item', item); | |
| 215 | + this.current = item.index; | |
| 216 | + }, | |
| 217 | + | |
| 218 | + loadData() { | |
| 219 | + formChangeApplydetailUrl(this.changeid).then(res => { | |
| 220 | + if (res) { | |
| 221 | + this.detailObj = res; | |
| 222 | + | |
| 223 | + this.title = res.form.projectName | |
| 224 | + this.desc = res.form.courseName | |
| 225 | + | |
| 226 | + if (res.auditStatus == "wait") { | |
| 227 | + this.statusImg = '/static/img/home/status_need_qiye.png' | |
| 228 | + this.cjtype = true | |
| 229 | + }else if (res.auditStatus == "company_wait") { | |
| 230 | + this.statusImg = '/static/img/home/status_need_qiye.png' | |
| 231 | + this.cjtype = false | |
| 232 | + } | |
| 233 | + | |
| 234 | + this.clObj = res.entryAttachments | |
| 235 | + if (res.entryAttachments) { | |
| 236 | + this.handleDataspdf() | |
| 237 | + this.handlePicks() | |
| 238 | + } | |
| 239 | + | |
| 240 | + let q1_nb = { | |
| 241 | + title: '变更申请', | |
| 242 | + desc: [{ | |
| 243 | + title: "变更类型:", | |
| 244 | + desc: "内部转岗" | |
| 245 | + }, | |
| 246 | + { | |
| 247 | + title: "转岗日期:", | |
| 248 | + desc: this.$u.timeFormat(res.quitTime,'yyyy-mm-dd') | |
| 249 | + }, | |
| 250 | + { | |
| 251 | + title: "变更原因:", | |
| 252 | + desc: res.applyReason | |
| 253 | + } | |
| 254 | + ] | |
| 255 | + } | |
| 256 | + | |
| 257 | + let sorce = '' | |
| 258 | + if (res.afterJobSource == "school") { | |
| 259 | + sorce = "学校推荐" | |
| 260 | + }else if (res.afterJobSource == "hro_platform") { | |
| 261 | + sorce = "平台选岗" | |
| 262 | + }else if (res.afterJobSource == "student") { | |
| 263 | + sorce = "自主添加" | |
| 264 | + } | |
| 265 | + let q1_qt = { | |
| 266 | + title: '变更申请', | |
| 267 | + desc: [{ | |
| 268 | + title: "变更类型:", | |
| 269 | + desc: "其他企业岗位" | |
| 270 | + }, | |
| 271 | + { | |
| 272 | + title: "离职日期:", | |
| 273 | + desc: this.$u.timeFormat(res.quitTime,'yyyy-mm-dd') | |
| 274 | + }, | |
| 275 | + { | |
| 276 | + title: "入职日期:", | |
| 277 | + desc: this.$u.timeFormat(res.entryTime,'yyyy-mm-dd') | |
| 278 | + }, | |
| 279 | + { | |
| 280 | + title: "岗位来源:", | |
| 281 | + desc: sorce | |
| 282 | + }, | |
| 283 | + { | |
| 284 | + title: "变更原因:", | |
| 285 | + desc: res.applyReason | |
| 286 | + } | |
| 287 | + ] | |
| 288 | + } | |
| 289 | + | |
| 290 | + let oldmoney = '' | |
| 291 | + let newmoney = '' | |
| 292 | + if ("negotiable" == res.oldJob.wageType) { | |
| 293 | + oldmoney = "薪资面议" | |
| 294 | + } else if (res.oldJob.wageLower == res.oldJob.wageUpper) { | |
| 295 | + oldmoney = res.oldJob.wageLower + '元' + "/" + this.wageTypes[res.oldJob.wageType] | |
| 296 | + } else { | |
| 297 | + oldmoney = res.oldJob.wageLower + '元' + "-" + res.oldJob.wageUpper + '元' + "/" + this | |
| 298 | + .wageTypes[res.oldJob.wageType] | |
| 299 | + } | |
| 300 | + if ("negotiable" == res.newJob.wageType) { | |
| 301 | + newmoney = "薪资面议" | |
| 302 | + } else if (res.newJob.wageLower == res.newJob.wageUpper) { | |
| 303 | + newmoney = res.newJob.wageLower + '元' + "/" + this.wageTypes[res.newJob.wageType] | |
| 304 | + } else { | |
| 305 | + newmoney = res.newJob.wageLower + '元' + "-" + res.newJob.wageUpper + '元' + "/" + this | |
| 306 | + .wageTypes[res.newJob.wageType] | |
| 307 | + } | |
| 308 | + let q2 = { | |
| 309 | + title: '原单位信息', | |
| 310 | + desc: [{ | |
| 311 | + title: "实习企业:", | |
| 312 | + desc: res.oldJob.company | |
| 313 | + }, | |
| 314 | + { | |
| 315 | + title: "实习岗位:", | |
| 316 | + desc: res.oldJob.name | |
| 317 | + }, | |
| 318 | + { | |
| 319 | + title: "薪资:", | |
| 320 | + desc: oldmoney | |
| 321 | + }, | |
| 322 | + { | |
| 323 | + title: "所在地区:", | |
| 324 | + desc: res.oldJob.province + '/' + res.oldJob.city + '/' + res.oldJob | |
| 325 | + .district | |
| 326 | + }, | |
| 327 | + { | |
| 328 | + title: "详细地址:", | |
| 329 | + desc: res.oldJob.workSite | |
| 330 | + } | |
| 331 | + ] | |
| 332 | + } | |
| 333 | + let q3 = { | |
| 334 | + title: '新单位信息', | |
| 335 | + desc: [{ | |
| 336 | + title: "实习企业:", | |
| 337 | + desc: res.newJob.company | |
| 338 | + }, | |
| 339 | + { | |
| 340 | + title: "实习岗位:", | |
| 341 | + desc: res.newJob.name | |
| 342 | + }, | |
| 343 | + { | |
| 344 | + title: "薪资:", | |
| 345 | + desc: oldmoney | |
| 346 | + }, | |
| 347 | + { | |
| 348 | + title: "所在地区:", | |
| 349 | + desc: res.newJob.province + '/' + res.newJob.city + '/' + res.newJob | |
| 350 | + .district | |
| 351 | + }, | |
| 352 | + { | |
| 353 | + title: "详细地址:", | |
| 354 | + desc: res.newJob.workSite | |
| 355 | + } | |
| 356 | + ] | |
| 357 | + } | |
| 358 | + if (res.changeType == "internal_transfer") { | |
| 359 | + this.questions.push(q1_nb) | |
| 360 | + } else { | |
| 361 | + this.questions.push(q1_qt) | |
| 362 | + } | |
| 363 | + this.questions.push(q2) | |
| 364 | + this.questions.push(q3) | |
| 365 | + } | |
| 366 | + }) | |
| 367 | + }, | |
| 368 | + | |
| 369 | + editClick() { | |
| 370 | + if (JSON.stringify(this.clObj) != '{}' && this.clObj) { | |
| 371 | + this.$u.route({ | |
| 372 | + url: '/pages/student/internship/intership-msg/intership-msg', | |
| 373 | + params: { | |
| 374 | + type: '2', | |
| 375 | + id: this.id, | |
| 376 | + obj: JSON.stringify(this.clObj) | |
| 377 | + } | |
| 378 | + }) | |
| 379 | + }else { | |
| 380 | + this.$u.route({ | |
| 381 | + url: '/pages/student/internship/intership-msg/intership-msg', | |
| 382 | + params: { | |
| 383 | + type: '1', | |
| 384 | + id: this.id | |
| 385 | + } | |
| 386 | + }) | |
| 387 | + } | |
| 388 | + }, | |
| 389 | + | |
| 390 | + handlePicks() { //处理获取的网络图片 | |
| 391 | + this.picList = [] | |
| 392 | + if (this.clObj.attachments) { | |
| 393 | + // this.createdTime = this.$u.timeFormat(this.datas.createdTime / 1000, 'yyyy/mm/dd'); | |
| 394 | + var originInfo = JSON.parse(this.clObj.attachments); | |
| 395 | + // this.attachments = this.attachments.concat(originInfo) | |
| 396 | + // console.log("1---", originInfo, "2---", this.attachments) | |
| 397 | + if (originInfo && originInfo.length > 0) { | |
| 398 | + for (var i = 0; i < originInfo.length; i++) { | |
| 399 | + getImgUrlApi({ | |
| 400 | + bucket: originInfo[i].bucket, | |
| 401 | + filePath: originInfo[i].object | |
| 402 | + }).then(res => { | |
| 403 | + this.picList.push(res.url) | |
| 404 | + console.log('picList...', this.picList) | |
| 405 | + }) | |
| 406 | + } | |
| 407 | + } | |
| 408 | + } | |
| 409 | + }, | |
| 410 | + | |
| 411 | + handleDataspdf() { //处理获取的pdf | |
| 412 | + if (this.clObj.attachmentsFile) { | |
| 413 | + this.fileList = JSON.parse(this.clObj.attachmentsFile) | |
| 414 | + // this.attachmentsFile = this.attachmentsFile.concat(this.fileList) | |
| 415 | + } | |
| 416 | + }, | |
| 417 | + | |
| 418 | + openLink(e) { | |
| 419 | + var _this = this | |
| 420 | + | |
| 421 | + uni.showLoading({ | |
| 422 | + title: '努力加载中~', | |
| 423 | + mask: true | |
| 424 | + }) | |
| 425 | + | |
| 426 | + getImgUrlApi({ | |
| 427 | + bucket: e.bucket, | |
| 428 | + filePath: e.object | |
| 429 | + }).then(data => { | |
| 430 | + console.log("data...", data) | |
| 431 | + if (e.mime_type.indexOf("image") != -1) { | |
| 432 | + _this.openImage(data.url) | |
| 433 | + } else { | |
| 434 | + uni.downloadFile({ | |
| 435 | + url: data.url, | |
| 436 | + success: function(res) { | |
| 437 | + var filePath = res.tempFilePath; | |
| 438 | + uni.openDocument({ | |
| 439 | + filePath: filePath, | |
| 440 | + showMenu: true, | |
| 441 | + success: function(res) { | |
| 442 | + console.log('打开文档成功'); | |
| 443 | + }, | |
| 444 | + complete: function() { | |
| 445 | + uni.hideLoading(); | |
| 446 | + } | |
| 447 | + }); | |
| 448 | + } | |
| 449 | + }); | |
| 450 | + } | |
| 451 | + }) | |
| 452 | + }, | |
| 453 | + | |
| 454 | + openImage(imgPath) { | |
| 455 | + let array = new Array(1).fill(imgPath); | |
| 456 | + uni.previewImage({ | |
| 457 | + urls: array, | |
| 458 | + success(res) { | |
| 459 | + uni.hideLoading(); | |
| 460 | + console.log('openImage success'); | |
| 461 | + }, | |
| 462 | + fail(res) { | |
| 463 | + uni.hideLoading(); | |
| 464 | + console.log('openImage fail:', res); | |
| 465 | + } | |
| 466 | + }); | |
| 467 | + }, | |
| 468 | + } | |
| 469 | + } | |
| 470 | +</script> | |
| 471 | + | |
| 472 | +<style> | |
| 473 | + page { | |
| 474 | + background-color: #F7F7F7; | |
| 475 | + } | |
| 476 | +</style> | |
| 477 | + | |
| 478 | +<style lang="scss" scoped> | |
| 479 | + .page { | |
| 480 | + | |
| 481 | + .top { | |
| 482 | + padding: 50rpx 32rpx; | |
| 483 | + background-color: #fff; | |
| 484 | + | |
| 485 | + .title { | |
| 486 | + font-size: 20px; | |
| 487 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 488 | + font-weight: 500; | |
| 489 | + color: #000000; | |
| 490 | + line-height: 30px; | |
| 491 | + } | |
| 492 | + | |
| 493 | + .t1 { | |
| 494 | + margin-top: 18rpx; | |
| 495 | + font-size: 14px; | |
| 496 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 497 | + font-weight: 400; | |
| 498 | + color: rgba(0, 0, 0, 0.6500); | |
| 499 | + } | |
| 500 | + | |
| 501 | + } | |
| 502 | + | |
| 503 | + .sxdw_icon116 { | |
| 504 | + position: absolute; | |
| 505 | + right: 0; | |
| 506 | + top: 0; | |
| 507 | + width: 224rpx; | |
| 508 | + height: 30px; | |
| 509 | + } | |
| 510 | + | |
| 511 | + .status { | |
| 512 | + position: absolute; | |
| 513 | + right: 10px; | |
| 514 | + top: 10px; | |
| 515 | + font-size: 16px; | |
| 516 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 517 | + font-weight: 400; | |
| 518 | + } | |
| 519 | + | |
| 520 | + .content { | |
| 521 | + padding: 40rpx 32rpx; | |
| 522 | + background-color: #fff; | |
| 523 | + border-radius: 10px; | |
| 524 | + margin-top: 16rpx; | |
| 525 | + | |
| 526 | + .c1 { | |
| 527 | + font-size: 16px; | |
| 528 | + font-family: PingFangSC-Semibold, PingFang SC; | |
| 529 | + font-weight: 600; | |
| 530 | + color: #000000; | |
| 531 | + } | |
| 532 | + | |
| 533 | + .c2 { | |
| 534 | + margin-top: 16rpx; | |
| 535 | + font-size: 14px; | |
| 536 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 537 | + font-weight: 400; | |
| 538 | + color: rgba(0, 0, 0, 0.6500); | |
| 539 | + } | |
| 540 | + | |
| 541 | + .grayV { | |
| 542 | + margin-top: 24rpx; | |
| 543 | + height: 98px; | |
| 544 | + background: #F7F7F7; | |
| 545 | + border-radius: 4px; | |
| 546 | + padding: 8rpx 16rpx; | |
| 547 | + position: relative; | |
| 548 | + | |
| 549 | + .g1 { | |
| 550 | + font-size: 16px; | |
| 551 | + font-family: PingFangSC-Semibold, PingFang SC; | |
| 552 | + font-weight: 600; | |
| 553 | + color: #000000; | |
| 554 | + } | |
| 555 | + | |
| 556 | + .timeline { | |
| 557 | + position: absolute; | |
| 558 | + left: 2rpx; | |
| 559 | + top: 72rpx; | |
| 560 | + width: 40rpx; | |
| 561 | + height: 100rpx; | |
| 562 | + } | |
| 563 | + | |
| 564 | + .start { | |
| 565 | + position: absolute; | |
| 566 | + left: 88rpx; | |
| 567 | + top: 68rpx; | |
| 568 | + font-size: 14px; | |
| 569 | + font-family: DINAlternate-Bold, DINAlternate; | |
| 570 | + font-weight: bold; | |
| 571 | + color: rgba(0, 0, 0, 0.6500); | |
| 572 | + } | |
| 573 | + | |
| 574 | + .end { | |
| 575 | + position: absolute; | |
| 576 | + left: 88rpx; | |
| 577 | + top: 134rpx; | |
| 578 | + font-size: 14px; | |
| 579 | + font-family: DINAlternate-Bold, DINAlternate; | |
| 580 | + font-weight: bold; | |
| 581 | + color: rgba(0, 0, 0, 0.6500); | |
| 582 | + } | |
| 583 | + } | |
| 584 | + | |
| 585 | + .fj_content { | |
| 586 | + margin-top: 8px; | |
| 587 | + background-color: #fff; | |
| 588 | + | |
| 589 | + .item { | |
| 590 | + width: 100%; | |
| 591 | + display: flex; | |
| 592 | + flex-direction: row; | |
| 593 | + flex-wrap: wrap; | |
| 594 | + | |
| 595 | + .p_item { | |
| 596 | + position: relative; | |
| 597 | + width: 120rpx; | |
| 598 | + height: 120rpx; | |
| 599 | + margin-right: 13px; | |
| 600 | + margin-bottom: 13px; | |
| 601 | + | |
| 602 | + .delete { | |
| 603 | + position: absolute; | |
| 604 | + width: 24rpx; | |
| 605 | + height: 24rpx; | |
| 606 | + top: -12rpx; | |
| 607 | + right: -12rpx; | |
| 608 | + z-index: 199; | |
| 609 | + } | |
| 610 | + } | |
| 611 | + | |
| 612 | + } | |
| 613 | + | |
| 614 | + } | |
| 615 | + } | |
| 616 | + | |
| 617 | + .nav_bar_topV65 { | |
| 618 | + background-color: #FFFFFF; | |
| 619 | + width: 50%; | |
| 620 | + } | |
| 621 | + | |
| 622 | + .timeb { | |
| 623 | + padding: 40rpx 36rpx; | |
| 624 | + background-color: #fff; | |
| 625 | + border-radius: 10px; | |
| 626 | + margin-top: 16rpx; | |
| 627 | + position: relative; | |
| 628 | + | |
| 629 | + .title { | |
| 630 | + font-size: 16px; | |
| 631 | + font-family: PingFangSC-Semibold, PingFang SC; | |
| 632 | + font-weight: 600; | |
| 633 | + color: #000000; | |
| 634 | + margin-bottom: 20rpx; | |
| 635 | + } | |
| 636 | + | |
| 637 | + .nodef { | |
| 638 | + display: flex; | |
| 639 | + justify-content: start; | |
| 640 | + margin-bottom: 30rpx; | |
| 641 | + | |
| 642 | + .node1 { | |
| 643 | + position: relative; | |
| 644 | + margin-top: 4px; | |
| 645 | + | |
| 646 | + .line { | |
| 647 | + position: absolute; | |
| 648 | + left: 5px; | |
| 649 | + width: 1px; | |
| 650 | + height: 100%; | |
| 651 | + background-color: #f7f7f7; | |
| 652 | + } | |
| 653 | + } | |
| 654 | + | |
| 655 | + .node2 { | |
| 656 | + margin-left: 10px; | |
| 657 | + } | |
| 658 | + } | |
| 659 | + | |
| 660 | + .u-node { | |
| 661 | + width: 12px; | |
| 662 | + height: 12px; | |
| 663 | + border-radius: 12rpx; | |
| 664 | + background: #E5E5E6; | |
| 665 | + } | |
| 666 | + | |
| 667 | + .u-green-node { | |
| 668 | + width: 12px; | |
| 669 | + height: 12px; | |
| 670 | + border-radius: 12rpx; | |
| 671 | + background: #0CB17A; | |
| 672 | + } | |
| 673 | + | |
| 674 | + .u-order-title { | |
| 675 | + font-size: 15px; | |
| 676 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 677 | + font-weight: 500; | |
| 678 | + color: #000000; | |
| 679 | + } | |
| 680 | + | |
| 681 | + .u-order-reply { | |
| 682 | + width: 100%; | |
| 683 | + padding: 20rpx 20rpx 1rpx; | |
| 684 | + background: #F7F7F7; | |
| 685 | + border-radius: 4px; | |
| 686 | + margin-top: 22rpx; | |
| 687 | + } | |
| 688 | + | |
| 689 | + } | |
| 690 | + | |
| 691 | + .bczl { | |
| 692 | + margin: 20rpx 10rpx 0rpx; | |
| 693 | + padding: 52rpx 38rpx; | |
| 694 | + background-color: #fff; | |
| 695 | + | |
| 696 | + .t { | |
| 697 | + display: flex; | |
| 698 | + align-items: center; | |
| 699 | + | |
| 700 | + .green { | |
| 701 | + width: 3px; | |
| 702 | + height: 15px; | |
| 703 | + background: #0CB17A; | |
| 704 | + } | |
| 705 | + | |
| 706 | + .title { | |
| 707 | + margin-left: 16rpx; | |
| 708 | + font-size: 16px; | |
| 709 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 710 | + font-weight: 500; | |
| 711 | + color: #000000; | |
| 712 | + } | |
| 713 | + | |
| 714 | + } | |
| 715 | + | |
| 716 | + .desc { | |
| 717 | + margin-top: 32rpx; | |
| 718 | + margin-left: 16rpx; | |
| 719 | + font-size: 14px; | |
| 720 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 721 | + font-weight: 400; | |
| 722 | + color: rgba(0,0,0,0.65); | |
| 723 | + } | |
| 724 | + | |
| 725 | + .pdffj { | |
| 726 | + padding: 28rpx 16rpx; | |
| 727 | + | |
| 728 | + .img { | |
| 729 | + width: 24rpx; | |
| 730 | + height: 24rpx; | |
| 731 | + margin-right: 12rpx; | |
| 732 | + } | |
| 733 | + | |
| 734 | + .look { | |
| 735 | + font-size: 28rpx; | |
| 736 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 737 | + font-weight: 400; | |
| 738 | + color: #0CB17A; | |
| 739 | + margin-left: 8rpx; | |
| 740 | + } | |
| 741 | + } | |
| 742 | + } | |
| 743 | + | |
| 744 | + .no_data { | |
| 745 | + width: 100%; | |
| 746 | + | |
| 747 | + .img { | |
| 748 | + display: block; | |
| 749 | + margin: 0 auto; | |
| 750 | + margin-top: 100rpx; | |
| 751 | + width: 260rpx; | |
| 752 | + height: 200rpx; | |
| 753 | + } | |
| 754 | + | |
| 755 | + .text_black_28 { | |
| 756 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 757 | + font-weight: 400; | |
| 758 | + color: #000000; | |
| 759 | + margin-top: 48rpx; | |
| 760 | + text-align: center; | |
| 761 | + } | |
| 762 | + } | |
| 763 | + | |
| 764 | + .footer { | |
| 765 | + width: 100%; | |
| 766 | + height: 96rpx; | |
| 767 | + padding: 28rpx 30rpx; | |
| 768 | + background: #FFFFFF; | |
| 769 | + position: fixed; | |
| 770 | + bottom: 0; | |
| 771 | + left: 0; | |
| 772 | + z-index: 99; | |
| 773 | + border-top: 2rpx solid #E2E2E8; | |
| 774 | + | |
| 775 | + view { | |
| 776 | + display: inline-block; | |
| 777 | + } | |
| 778 | + | |
| 779 | + .left_btn { | |
| 780 | + width: 330rpx; | |
| 781 | + margin: 0 30rpx 0 0; | |
| 782 | + } | |
| 783 | + | |
| 784 | + .right_btn { | |
| 785 | + width: 330rpx; | |
| 786 | + } | |
| 787 | + } | |
| 788 | + | |
| 789 | + .btv { | |
| 790 | + position: fixed; | |
| 791 | + bottom: 0; | |
| 792 | + left: 0; | |
| 793 | + width: 100%; | |
| 794 | + height: 72px; | |
| 795 | + background-color: #fff; | |
| 796 | + padding: 12px 16px; | |
| 797 | + | |
| 798 | + .btn { | |
| 799 | + width: 100%; | |
| 800 | + height: 48px; | |
| 801 | + background: #0CB17A; | |
| 802 | + border-radius: 24px; | |
| 803 | + font-size: 17px; | |
| 804 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 805 | + font-weight: 400; | |
| 806 | + color: #fff; | |
| 807 | + line-height: 48px; | |
| 808 | + text-align: center; | |
| 809 | + } | |
| 810 | + } | |
| 811 | + | |
| 812 | + } | |
| 813 | +</style> | ... | ... |
pages/main/home/changelist/changelist.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <view class="registration_review"> | |
| 3 | + <view class="search_box"> | |
| 4 | + <!-- <view class="check"> | |
| 5 | + <u-checkbox-group v-model="checkboxValue" placement="column" @change="checkboxChange"> | |
| 6 | + <u-checkbox :customStyle="{marginBottom: '8px'}" shape="circle" | |
| 7 | + v-for="(item, index) in checkboxList" :key="index" :label="item.name" :name="item.name" | |
| 8 | + activeColor="#06B079" size="28rpx" labelSize="28rpx" labelColor="#202131"> | |
| 9 | + </u-checkbox> | |
| 10 | + </u-checkbox-group> | |
| 11 | + </view> --> | |
| 12 | + | |
| 13 | + <!-- <view class="search"> | |
| 14 | + <u-search placeholder="请输入学生姓名/学号/手机号" placeholderColor="#C1C1C9" searchIconSize="36" height="64rpx" | |
| 15 | + bgColor="#F4F4F4" :showAction="false" shape="square" v-model="keyword" @search="handelSearch"> | |
| 16 | + </u-search> | |
| 17 | + </view> --> | |
| 18 | + <view style="width: 148px;"> | |
| 19 | + <u-subsection :list="['待处理','全部']" :current="curNow" :fontSize="26" :activeColor="'#000'" | |
| 20 | + @change="sectionChange"></u-subsection> | |
| 21 | + </view> | |
| 22 | + <view style="display: flex; justify-content: space-between; align-items: center;"> | |
| 23 | + <u-icon slot="icon" size="40" :name="'/static/img/home/search.png'" @click="searchCli"></u-icon> | |
| 24 | + <view style="width: 16px;"></view> | |
| 25 | + <u-icon slot="icon" size="40" :name="'/static/img/home/selectIcon.png'" @click="show = true"></u-icon> | |
| 26 | + </view> | |
| 27 | + </view> | |
| 28 | + | |
| 29 | + <view class="list_box" v-if="list.length > 0"> | |
| 30 | + <view class="item" v-for="(item, i) in list" :key="i" @click="handelDetail(item)"> | |
| 31 | + <view class="t1"> | |
| 32 | + {{item.studentName}}提交的实习变更申请 | |
| 33 | + </view> | |
| 34 | + <view class="t3"> | |
| 35 | + {{item.projectName}} | |
| 36 | + </view> | |
| 37 | + <view class="t2 t2top14"> | |
| 38 | + 变更类型: {{item.changeType=="internal_transfer"?'内部转岗':'其他企业岗位'}} | |
| 39 | + </view> | |
| 40 | + <view v-if="item.changeType=='internal_transfer'"> | |
| 41 | + <view class="t2"> | |
| 42 | + 转岗日期: {{timeFormat(item.quitTime, 'yyyy-mm-dd hh:MM')}} | |
| 43 | + </view> | |
| 44 | + </view> | |
| 45 | + <view v-else> | |
| 46 | + <view class="t2"> | |
| 47 | + 离职日期: {{timeFormat(item.quitTime, 'yyyy-mm-dd hh:MM')}} | |
| 48 | + </view> | |
| 49 | + <view class="t2"> | |
| 50 | + 入职日期: {{timeFormat(item.entryTime, 'yyyy-mm-dd hh:MM')}} | |
| 51 | + </view> | |
| 52 | + <view class="t2"> | |
| 53 | + 岗位来源: {{getCategoryList(item.afterJobSource)}} | |
| 54 | + </view> | |
| 55 | + </view> | |
| 56 | + <view v-if="item.status == 'wait'" class="status" style="color: #F49A23;"> | |
| 57 | + 待处理 | |
| 58 | + </view> | |
| 59 | + <view v-else-if="item.status == 'adopt'" class="status" style="color: #0CB17A;"> | |
| 60 | + 已通过 | |
| 61 | + </view> | |
| 62 | + <view v-else-if="item.status == 'reject'" class="status" style="color: red;"> | |
| 63 | + 已驳回 | |
| 64 | + </view> | |
| 65 | + <view class="time"> | |
| 66 | + {{timeFormat(item.createdTime, 'mm-dd')}} | |
| 67 | + </view> | |
| 68 | + </view> | |
| 69 | + <c-loading :loading="loading"></c-loading> | |
| 70 | + </view> | |
| 71 | + <view v-else class="no_data"> | |
| 72 | + <c-no-data></c-no-data> | |
| 73 | + </view> | |
| 74 | + | |
| 75 | + <u-popup :show="show" mode="bottom" @close="close" :round="22"> | |
| 76 | + <view class="popup"> | |
| 77 | + <view style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px;"> | |
| 78 | + <view class="title"> | |
| 79 | + 项目筛选 | |
| 80 | + </view> | |
| 81 | + <image class="close" src="/static/img/home/closepop.png" @click="close" mode=""></image> | |
| 82 | + </view> | |
| 83 | + <view class="search"> | |
| 84 | + <u-search placeholder="请输入项目关键词搜索" placeholderColor="#C1C1C9" searchIconSize="36" height="64rpx" | |
| 85 | + bgColor="#F4F4F4" :showAction="true" shape="round" v-model="sxsearch" @custom="workSearch()" @search="workSearch()"> | |
| 86 | + </u-search> | |
| 87 | + </view> | |
| 88 | + <scroll-view v-if="works.length>0" scroll-y="true" style="height: 80%; margin-top: 40rpx;" | |
| 89 | + @scrolltolower="lower()"> | |
| 90 | + <view class="item_box" v-for="(item,index) in works" :key="index" @click="popupSelItem(item)"> | |
| 91 | + <view style="display: flex; align-items: center; justify-content: space-between;"> | |
| 92 | + <view class="item_title"> | |
| 93 | + {{item.name}} | |
| 94 | + </view> | |
| 95 | + <image v-if="item.id == projectId" style="width: 20px; height: 20px;" | |
| 96 | + src="/static/img/home/popselect.png" mode=""></image> | |
| 97 | + </view> | |
| 98 | + </view> | |
| 99 | + </scroll-view> | |
| 100 | + <view v-else class="no_data" @click="jumpVerified"> | |
| 101 | + <view class="text_black_28"> | |
| 102 | + 暂未搜索到该项目 | |
| 103 | + </view> | |
| 104 | + </view> | |
| 105 | + </view> | |
| 106 | + </u-popup> | |
| 107 | + | |
| 108 | + <!-- <u-popup :show="show" mode="right" @close="close" @open="open" :closeOnClickOverlay="false"> | |
| 109 | + <view class="popup_search"> | |
| 110 | + <view class="content"> | |
| 111 | + <view class="title">按项目筛选</view> | |
| 112 | + <scroll-view class="scroll" scroll-y="true"> | |
| 113 | + <view class="item" v-for="(item, i) in projectList" :key="i" @click="handelClick(item)"> | |
| 114 | + <view class="selectItem" v-if="item.id == projectId"> | |
| 115 | + <text>{{item.name}}</text> | |
| 116 | + </view> | |
| 117 | + <view v-else> | |
| 118 | + <text>{{item.name}}</text> | |
| 119 | + </view> | |
| 120 | + </view> | |
| 121 | + </scroll-view> | |
| 122 | + <view class="switch"> | |
| 123 | + <text>待处理</text> | |
| 124 | + <u-switch v-model="switchValue" size="48" activeColor="#06B079" @change="handelChange"> | |
| 125 | + </u-switch> | |
| 126 | + </view> | |
| 127 | + </view> | |
| 128 | + | |
| 129 | + <view class="footer"> | |
| 130 | + <view class="left_btn"> | |
| 131 | + <c-button type="cancel" text="重置" @click="handelCancel"> | |
| 132 | + </c-button> | |
| 133 | + </view> | |
| 134 | + <view class="right_btn"> | |
| 135 | + <c-button type="confirm" text="确定" @click="hancelSubmit"> | |
| 136 | + </c-button> | |
| 137 | + </view> | |
| 138 | + </view> | |
| 139 | + | |
| 140 | + </view> | |
| 141 | + </u-popup> --> | |
| 142 | + | |
| 143 | + </view> | |
| 144 | +</template> | |
| 145 | + | |
| 146 | +<script> | |
| 147 | + import { | |
| 148 | + mapGetters, | |
| 149 | + mapState, | |
| 150 | + mapActions | |
| 151 | + } from 'vuex' | |
| 152 | + import listMixin from "@/common/mixins/list-mixin.js"; | |
| 153 | + | |
| 154 | + import { | |
| 155 | + getformChangeApplyListApi, | |
| 156 | + getProjectListApi, | |
| 157 | + } from '@/config/api.js'; | |
| 158 | + | |
| 159 | + export default { | |
| 160 | + mixins: [listMixin], | |
| 161 | + data() { | |
| 162 | + return { | |
| 163 | + checkboxValue: [], | |
| 164 | + // 基本案列数据 | |
| 165 | + checkboxList: [{ | |
| 166 | + name: '待处理', | |
| 167 | + disabled: false | |
| 168 | + }], | |
| 169 | + keyword: '', | |
| 170 | + show: false, | |
| 171 | + list: [], //列表必须为key list的数组 | |
| 172 | + search: { | |
| 173 | + //搜索对象必须为key search的对象 | |
| 174 | + keySearch: "", | |
| 175 | + status: '', | |
| 176 | + | |
| 177 | + }, | |
| 178 | + projectId: '', | |
| 179 | + switchValue: false, | |
| 180 | + categoryList: [{ | |
| 181 | + label: '事假', | |
| 182 | + value: 'personal' | |
| 183 | + }, | |
| 184 | + { | |
| 185 | + label: '病假', | |
| 186 | + value: "sick", | |
| 187 | + }, | |
| 188 | + { | |
| 189 | + label: '调休', | |
| 190 | + value: "exchange", | |
| 191 | + }, | |
| 192 | + { | |
| 193 | + label: '其他', | |
| 194 | + value: "other", | |
| 195 | + } | |
| 196 | + ], | |
| 197 | + curNow: 1, | |
| 198 | + sxsearch: '', | |
| 199 | + works: [], | |
| 200 | + workspage: 1, | |
| 201 | + workstotal: 0, | |
| 202 | + } | |
| 203 | + }, | |
| 204 | + | |
| 205 | + onLoad(option) { | |
| 206 | + console.log(option) | |
| 207 | + // this.$store.dispatch(`home/getProjectList`, { | |
| 208 | + // pageSize: -1, | |
| 209 | + // }) | |
| 210 | + | |
| 211 | + this.worksloadData() | |
| 212 | + | |
| 213 | + // this.search.keySearch = ''; | |
| 214 | + | |
| 215 | + if (option && option.status) { | |
| 216 | + // this.search.status = 'wait'; | |
| 217 | + this.curNow = 0; | |
| 218 | + // this.checkboxValue = ['待处理']; | |
| 219 | + // this.switchValue = true; | |
| 220 | + } | |
| 221 | + | |
| 222 | + }, | |
| 223 | + | |
| 224 | + onShow() { | |
| 225 | + this.finished = false; | |
| 226 | + this.loading = "loadmore"; | |
| 227 | + this.page = 0; | |
| 228 | + this.list = []; | |
| 229 | + this._getList(); | |
| 230 | + }, | |
| 231 | + | |
| 232 | + computed: { | |
| 233 | + ...mapState('home', { | |
| 234 | + // 箭头函数可使代码更简练 | |
| 235 | + projectList: 'projectList', | |
| 236 | + | |
| 237 | + }), | |
| 238 | + | |
| 239 | + }, | |
| 240 | + | |
| 241 | + methods: { | |
| 242 | + | |
| 243 | + searchCli() { | |
| 244 | + this.$u.route('/pages/main/home/search/search?type=change&searchkey=' + this.keyword); | |
| 245 | + }, | |
| 246 | + | |
| 247 | + sectionChange(index) { | |
| 248 | + this.curNow = index; | |
| 249 | + | |
| 250 | + this.finished = false; | |
| 251 | + this.loading = "loadmore"; | |
| 252 | + this.page = 0; | |
| 253 | + this.list = []; | |
| 254 | + this._getList(); | |
| 255 | + }, | |
| 256 | + | |
| 257 | + handelDetail(record) { | |
| 258 | + this.$u.route({ | |
| 259 | + url: '/pages/main/home/changedetail/changedetail', | |
| 260 | + params: { | |
| 261 | + id: record.id, | |
| 262 | + } | |
| 263 | + }) | |
| 264 | + }, | |
| 265 | + | |
| 266 | + getCategoryList(e) { | |
| 267 | + if (e == 'hro_platform') { | |
| 268 | + return 'HRO平台' | |
| 269 | + }else if (e == 'hr_platform') { | |
| 270 | + return 'HR平台' | |
| 271 | + }else if (e == 'school') { | |
| 272 | + return '学校创建' | |
| 273 | + }else if (e == 'student') { | |
| 274 | + return '学生端自主添加' | |
| 275 | + }else if (e == 'platform') { | |
| 276 | + return '平台推荐' | |
| 277 | + } | |
| 278 | + return '' | |
| 279 | + }, | |
| 280 | + | |
| 281 | + timeFormat(timestamp, format = 'yyyy-mm-dd') { | |
| 282 | + return timestamp > 0 ? uni.$u.timeFormat(timestamp, format) : '--' | |
| 283 | + }, | |
| 284 | + | |
| 285 | + checkboxChange(n) { | |
| 286 | + console.log('change', n); | |
| 287 | + | |
| 288 | + this.search.status = n.length > 0 ? 'wait' : ''; | |
| 289 | + | |
| 290 | + this.switchValue = n.length > 0 ? true : false; | |
| 291 | + | |
| 292 | + this.finished = false; | |
| 293 | + this.loading = "loadmore"; | |
| 294 | + this.page = 0; | |
| 295 | + this.list = []; | |
| 296 | + this._getList(); | |
| 297 | + }, | |
| 298 | + | |
| 299 | + handelSearch(value) { | |
| 300 | + this.finished = false; | |
| 301 | + this.loading = "loadmore"; | |
| 302 | + this.page = 0; | |
| 303 | + this.list = []; | |
| 304 | + this._getList(); | |
| 305 | + }, | |
| 306 | + | |
| 307 | + open() { | |
| 308 | + // console.log('open'); | |
| 309 | + }, | |
| 310 | + close() { | |
| 311 | + this.show = false | |
| 312 | + // console.log('close'); | |
| 313 | + }, | |
| 314 | + // scroll-view到底部加载更多 | |
| 315 | + onreachBottom() {}, | |
| 316 | + // 搜索 | |
| 317 | + searchSubmit() { | |
| 318 | + // 调用混合搜索 | |
| 319 | + this._searchData(); | |
| 320 | + }, | |
| 321 | + // 模拟后端分页 | |
| 322 | + async getData(requestParams) { | |
| 323 | + const { | |
| 324 | + search = {} | |
| 325 | + } = requestParams; | |
| 326 | + | |
| 327 | + let params = {}; | |
| 328 | + params.pageNumber = requestParams.page + 1; | |
| 329 | + params.pageSize = 5; | |
| 330 | + | |
| 331 | + if (this.curNow == 0) { | |
| 332 | + params.status = 'wait'; | |
| 333 | + } | |
| 334 | + | |
| 335 | + if (this.keyword) { | |
| 336 | + params.keySearch = this.keyword | |
| 337 | + } | |
| 338 | + | |
| 339 | + if (this.projectId) { | |
| 340 | + params.projectId = this.projectId | |
| 341 | + } | |
| 342 | + | |
| 343 | + return await getformChangeApplyListApi(params); | |
| 344 | + }, | |
| 345 | + // 数据请求(没错就是这么少的代码) | |
| 346 | + async _getList() { | |
| 347 | + if (this.page == 0) { | |
| 348 | + this.list = []; | |
| 349 | + } | |
| 350 | + | |
| 351 | + // 根据实际情况修改自己修改key | |
| 352 | + let result = await this.getData({ | |
| 353 | + page: this.page, // 传入页码 | |
| 354 | + size: this.size, // 传入每页条数 | |
| 355 | + search: this.search, // 传入搜索的对象 | |
| 356 | + }); | |
| 357 | + | |
| 358 | + this.total = result.total; | |
| 359 | + | |
| 360 | + if (this.list.length == 0 && result.records.length == 0) { | |
| 361 | + this.shownoData = false | |
| 362 | + } else { | |
| 363 | + this.shownoData = true | |
| 364 | + } | |
| 365 | + | |
| 366 | + this.list = this.list.concat(result.records) | |
| 367 | + | |
| 368 | + // 判断是否全部加载完成 | |
| 369 | + if (this.total == this.list.length) { | |
| 370 | + this.finished = true; | |
| 371 | + this.loading = 'nomore'; | |
| 372 | + } else { | |
| 373 | + this.loading = 'loadmore'; | |
| 374 | + } | |
| 375 | + }, | |
| 376 | + | |
| 377 | + handelClick(values) { | |
| 378 | + console.log(values); | |
| 379 | + this.projectId = values.id; | |
| 380 | + }, | |
| 381 | + | |
| 382 | + handelChange(e) { | |
| 383 | + console.log(e) | |
| 384 | + this.checkboxValue = e ? ['待处理'] : []; | |
| 385 | + this.search.status = e ? 'wait' : ''; | |
| 386 | + | |
| 387 | + }, | |
| 388 | + | |
| 389 | + handelCancel() { | |
| 390 | + this.switchValue = false; | |
| 391 | + this.projectId = ''; | |
| 392 | + }, | |
| 393 | + | |
| 394 | + hancelSubmit() { | |
| 395 | + this.finished = false; | |
| 396 | + this.loading = "loadmore"; | |
| 397 | + this.page = 0; | |
| 398 | + this.list = []; | |
| 399 | + this._getList(); | |
| 400 | + | |
| 401 | + this.show = false; | |
| 402 | + }, | |
| 403 | + | |
| 404 | + workSearch() { | |
| 405 | + uni.hideKeyboard(); | |
| 406 | + this.works = [] | |
| 407 | + this.worksloadData() | |
| 408 | + }, | |
| 409 | + | |
| 410 | + lower() { | |
| 411 | + setTimeout(() => { | |
| 412 | + this.worksloadData(true); | |
| 413 | + }, 200) | |
| 414 | + }, | |
| 415 | + | |
| 416 | + worksloadData(e) { | |
| 417 | + let params = {} | |
| 418 | + // this.loading = 'loading' | |
| 419 | + | |
| 420 | + if (e) { | |
| 421 | + if (this.total <= this.works.length) { | |
| 422 | + // this.loading = 'nomore' | |
| 423 | + return | |
| 424 | + } | |
| 425 | + this.workspage++ | |
| 426 | + } else { | |
| 427 | + this.workspage = 1 | |
| 428 | + } | |
| 429 | + params['pageNumber'] = this.workspage | |
| 430 | + if (this.sxsearch) { | |
| 431 | + params['keyWord'] = this.sxsearch | |
| 432 | + } | |
| 433 | + getProjectListApi(params).then(async res => { | |
| 434 | + if (res) { | |
| 435 | + this.total = res.total | |
| 436 | + // this.loading = 'loadmore' | |
| 437 | + this.works = this.works.concat(res.records) | |
| 438 | + } | |
| 439 | + }) | |
| 440 | + }, | |
| 441 | + popupSelItem(item) { | |
| 442 | + this.show = false | |
| 443 | + this.projectId = item.id; | |
| 444 | + this.finished = false; | |
| 445 | + this.loading = "loadmore"; | |
| 446 | + this.page = 0; | |
| 447 | + this.list = []; | |
| 448 | + this._getList(); | |
| 449 | + }, | |
| 450 | + | |
| 451 | + } | |
| 452 | + } | |
| 453 | +</script> | |
| 454 | + | |
| 455 | +<style lang="scss" scoped> | |
| 456 | + .registration_review { | |
| 457 | + width: 100%; | |
| 458 | + min-height: 100%; | |
| 459 | + height: auto; | |
| 460 | + background-color: #F7F7F7; | |
| 461 | + | |
| 462 | + .search_box { | |
| 463 | + padding: 36rpx 30rpx 12rpx; | |
| 464 | + background-color: #FFFFFF; | |
| 465 | + display: flex; | |
| 466 | + flex-flow: row nowrap; | |
| 467 | + justify-content: space-between; | |
| 468 | + | |
| 469 | + .check { | |
| 470 | + padding: 20rpx 0 0 0; | |
| 471 | + } | |
| 472 | + | |
| 473 | + .search { | |
| 474 | + width: 468rpx; | |
| 475 | + } | |
| 476 | + } | |
| 477 | + | |
| 478 | + .list_box { | |
| 479 | + padding: 0 0 50rpx 0; | |
| 480 | + | |
| 481 | + .item { | |
| 482 | + position: relative; | |
| 483 | + margin: 8px 13px 0; | |
| 484 | + padding: 20px 17px; | |
| 485 | + border-radius: 8rpx; | |
| 486 | + background-color: #FFFFFF; | |
| 487 | + | |
| 488 | + .t1 { | |
| 489 | + font-size: 14px; | |
| 490 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 491 | + font-weight: 500; | |
| 492 | + color: #000000; | |
| 493 | + } | |
| 494 | + | |
| 495 | + .t2 { | |
| 496 | + margin-top: 6px; | |
| 497 | + font-size: 12px; | |
| 498 | + font-family: PingFangSC-Light, PingFang SC; | |
| 499 | + font-weight: 300; | |
| 500 | + color: rgba(38, 41, 47, 0.85); | |
| 501 | + } | |
| 502 | + | |
| 503 | + .t3 { | |
| 504 | + font-size: 12px; | |
| 505 | + font-family: PingFangSC-Light, PingFang SC; | |
| 506 | + font-weight: 300; | |
| 507 | + color: #000000; | |
| 508 | + } | |
| 509 | + | |
| 510 | + .t2top14 { | |
| 511 | + margin-top: 14px; | |
| 512 | + } | |
| 513 | + | |
| 514 | + .time { | |
| 515 | + position: absolute; | |
| 516 | + top: 17px; | |
| 517 | + right: 17px; | |
| 518 | + font-size: 12px; | |
| 519 | + font-family: PingFangSC-Light, PingFang SC; | |
| 520 | + font-weight: 300; | |
| 521 | + color: rgba(0, 0, 0, 0.85); | |
| 522 | + } | |
| 523 | + | |
| 524 | + .status { | |
| 525 | + position: absolute; | |
| 526 | + bottom: 20px; | |
| 527 | + right: 17px; | |
| 528 | + font-size: 12px; | |
| 529 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 530 | + font-weight: 400; | |
| 531 | + } | |
| 532 | + } | |
| 533 | + } | |
| 534 | + | |
| 535 | + .popup_search { | |
| 536 | + width: 640rpx; | |
| 537 | + position: relative; | |
| 538 | + | |
| 539 | + .content { | |
| 540 | + padding: 0 40rpx; | |
| 541 | + | |
| 542 | + .title { | |
| 543 | + padding: 24rpx 0; | |
| 544 | + font-size: 28rpx; | |
| 545 | + line-height: 36rpx; | |
| 546 | + color: #202131; | |
| 547 | + } | |
| 548 | + | |
| 549 | + .scroll { | |
| 550 | + max-height: 60vh; | |
| 551 | + | |
| 552 | + .item { | |
| 553 | + | |
| 554 | + view { | |
| 555 | + display: flex; | |
| 556 | + flex-flow: row wrap; | |
| 557 | + align-items: center; | |
| 558 | + width: 500rpx; | |
| 559 | + height: 74rpx; | |
| 560 | + border-radius: 4rpx; | |
| 561 | + border: 2rpx solid #C1C1C9; | |
| 562 | + margin: 0 10rpx 20rpx; | |
| 563 | + font-size: 24rpx; | |
| 564 | + line-height: 32rpx; | |
| 565 | + color: #C0C0C9; | |
| 566 | + padding: 16rpx 20rpx; | |
| 567 | + } | |
| 568 | + | |
| 569 | + .selectItem { | |
| 570 | + background-color: #06B079; | |
| 571 | + color: #FFFFFF; | |
| 572 | + border: 2rpx solid #06B079; | |
| 573 | + } | |
| 574 | + } | |
| 575 | + } | |
| 576 | + | |
| 577 | + .switch { | |
| 578 | + display: flex; | |
| 579 | + flex-flow: row nowrap; | |
| 580 | + justify-content: space-between; | |
| 581 | + padding: 40rpx 0 0 0; | |
| 582 | + | |
| 583 | + text { | |
| 584 | + font-size: 28rpx; | |
| 585 | + line-height: 36rpx; | |
| 586 | + color: #202131; | |
| 587 | + } | |
| 588 | + } | |
| 589 | + | |
| 590 | + | |
| 591 | + } | |
| 592 | + | |
| 593 | + .footer { | |
| 594 | + width: 560rpx; | |
| 595 | + height: 96rpx; | |
| 596 | + padding: 28rpx 40rpx; | |
| 597 | + background: #FFFFFF; | |
| 598 | + position: fixed; | |
| 599 | + bottom: 0; | |
| 600 | + right: 0; | |
| 601 | + z-index: 99; | |
| 602 | + border-top: 2rpx solid #E2E2E8; | |
| 603 | + | |
| 604 | + view { | |
| 605 | + display: inline-block; | |
| 606 | + } | |
| 607 | + | |
| 608 | + .left_btn { | |
| 609 | + width: 194rpx; | |
| 610 | + margin: 0 20rpx 0 0; | |
| 611 | + } | |
| 612 | + | |
| 613 | + .right_btn { | |
| 614 | + width: 346rpx; | |
| 615 | + } | |
| 616 | + } | |
| 617 | + } | |
| 618 | + | |
| 619 | + .popup { | |
| 620 | + height: 500px; | |
| 621 | + padding: 19px 16px; | |
| 622 | + | |
| 623 | + .title { | |
| 624 | + font-size: 18px; | |
| 625 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 626 | + font-weight: 500; | |
| 627 | + color: #000000; | |
| 628 | + } | |
| 629 | + | |
| 630 | + .close { | |
| 631 | + width: 22px; | |
| 632 | + height: 22px; | |
| 633 | + } | |
| 634 | + | |
| 635 | + .item_box { | |
| 636 | + border-radius: 4px; | |
| 637 | + margin: 0 0 48rpx; | |
| 638 | + | |
| 639 | + .item_title { | |
| 640 | + height: 20px; | |
| 641 | + font-size: 14px; | |
| 642 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 643 | + font-weight: 400; | |
| 644 | + color: rgba(0, 0, 0, 0.65); | |
| 645 | + line-height: 20px; | |
| 646 | + } | |
| 647 | + | |
| 648 | + } | |
| 649 | + | |
| 650 | + .no_data { | |
| 651 | + width: 100%; | |
| 652 | + margin-top: 310rpx; | |
| 653 | + | |
| 654 | + .text_black_28 { | |
| 655 | + font-size: 14px; | |
| 656 | + font-family: PingFangSC-Light, PingFang SC; | |
| 657 | + font-weight: 300; | |
| 658 | + color: rgba(0, 0, 0, 0.65); | |
| 659 | + text-align: center; | |
| 660 | + } | |
| 661 | + | |
| 662 | + } | |
| 663 | + | |
| 664 | + } | |
| 665 | + } | |
| 666 | +</style> | ... | ... |
| 1 | 1 | <template> |
| 2 | 2 | <view class="log_detail"> |
| 3 | 3 | |
| 4 | - <scroll-view scroll-y="true" style="height: 100vh;" :scroll-with-animation="true"> | |
| 4 | + <scroll-view scroll-y="true" style="height: 90%;" :scroll-with-animation="true"> | |
| 5 | 5 | <view class="header_box"> |
| 6 | 6 | <view class="header"> |
| 7 | 7 | <view class="avatar">{{getNameLastTwo(detail.studentName)}}</view> |
| ... | ... | @@ -34,6 +34,15 @@ |
| 34 | 34 | <u-parse :content="detail.content"></u-parse> |
| 35 | 35 | </view> |
| 36 | 36 | |
| 37 | + <view v-if="attachments&&attachments.length>0" class="fj"> | |
| 38 | + <view v-for="(item,index) in attachments " @click="openLink(item)"> | |
| 39 | + <view class="fj_item"> | |
| 40 | + <image class="img" src="/static/img/internship/link.png"></image> | |
| 41 | + <text class="look">{{item.filename}}</text> | |
| 42 | + </view> | |
| 43 | + </view> | |
| 44 | + </view> | |
| 45 | + | |
| 37 | 46 | <view v-if="commentList.length>0" class="reply"> |
| 38 | 47 | <view class="title">评论</view> |
| 39 | 48 | <view v-for="(item,index) in commentList" :key="index"> |
| ... | ... | @@ -80,7 +89,8 @@ |
| 80 | 89 | getLogDetailApi, |
| 81 | 90 | putLogReviewApi, |
| 82 | 91 | getLogReplyListApi, |
| 83 | - postLogReplyApi, | |
| 92 | + postLogReplyApi, | |
| 93 | + getImgUrlApi, | |
| 84 | 94 | } from '@/config/api.js'; |
| 85 | 95 | export default { |
| 86 | 96 | data() { |
| ... | ... | @@ -102,6 +112,8 @@ |
| 102 | 112 | "company": "企业" |
| 103 | 113 | }, |
| 104 | 114 | commentList: [], |
| 115 | + attachments: [], | |
| 116 | + attachmentsFile: [], | |
| 105 | 117 | } |
| 106 | 118 | }, |
| 107 | 119 | |
| ... | ... | @@ -111,6 +123,7 @@ |
| 111 | 123 | getLogDetailApi(option.id).then(data => { |
| 112 | 124 | if (data) { |
| 113 | 125 | this.detail = data |
| 126 | + this.handleAttachments() | |
| 114 | 127 | } |
| 115 | 128 | }) |
| 116 | 129 | |
| ... | ... | @@ -119,6 +132,17 @@ |
| 119 | 132 | }, |
| 120 | 133 | |
| 121 | 134 | methods: { |
| 135 | + handleAttachments() { | |
| 136 | + if (this.detail.attachments) { | |
| 137 | + this.attachments = JSON.parse(this.detail.attachments) | |
| 138 | + } | |
| 139 | + // if (this.detail.attachmentsFile) { | |
| 140 | + // this.attachmentsFile = JSON.parse(this.detail.attachmentsFile) | |
| 141 | + // } | |
| 142 | + // this.attachments = this.attachments.concat(this.attachmentsFile) | |
| 143 | + console.log(this.attachments) | |
| 144 | + }, | |
| 145 | + | |
| 122 | 146 | getCreatedTime(e) { |
| 123 | 147 | console.log(e) |
| 124 | 148 | let time = this.$u.timeFormat(e.logTime / 1000, 'yyyy/mm/dd'); |
| ... | ... | @@ -200,7 +224,57 @@ |
| 200 | 224 | this.reply = '' |
| 201 | 225 | this.getCommentList() |
| 202 | 226 | }) |
| 203 | - } | |
| 227 | + }, | |
| 228 | + | |
| 229 | + openLink(e) { | |
| 230 | + var _this = this | |
| 231 | + | |
| 232 | + uni.showLoading({ | |
| 233 | + title: '努力加载中~', | |
| 234 | + mask: true | |
| 235 | + }) | |
| 236 | + | |
| 237 | + getImgUrlApi({ | |
| 238 | + bucket: e.bucket, | |
| 239 | + filePath: e.object | |
| 240 | + }).then(data => { | |
| 241 | + console.log("data...", data) | |
| 242 | + if (e.mime_type.indexOf("image") != -1) { | |
| 243 | + _this.openImage(data.url) | |
| 244 | + } else { | |
| 245 | + uni.downloadFile({ | |
| 246 | + url: data.url, | |
| 247 | + success: function(res) { | |
| 248 | + var filePath = res.tempFilePath; | |
| 249 | + uni.openDocument({ | |
| 250 | + filePath: filePath, | |
| 251 | + showMenu: true, | |
| 252 | + success: function(res) { | |
| 253 | + console.log('打开文档成功'); | |
| 254 | + }, | |
| 255 | + complete: function() { | |
| 256 | + uni.hideLoading(); | |
| 257 | + } | |
| 258 | + }); | |
| 259 | + } | |
| 260 | + }); | |
| 261 | + } | |
| 262 | + }) | |
| 263 | + }, | |
| 264 | + openImage(imgPath) { | |
| 265 | + let array = new Array(1).fill(imgPath); | |
| 266 | + uni.previewImage({ | |
| 267 | + urls: array, | |
| 268 | + success(res) { | |
| 269 | + uni.hideLoading(); | |
| 270 | + console.log('openImage success'); | |
| 271 | + }, | |
| 272 | + fail(res) { | |
| 273 | + uni.hideLoading(); | |
| 274 | + console.log('openImage fail:', res); | |
| 275 | + } | |
| 276 | + }); | |
| 277 | + }, | |
| 204 | 278 | } |
| 205 | 279 | } |
| 206 | 280 | </script> |
| ... | ... | @@ -208,8 +282,8 @@ |
| 208 | 282 | <style lang="scss" scoped> |
| 209 | 283 | .log_detail { |
| 210 | 284 | width: 100%; |
| 211 | - min-height: 100%; | |
| 212 | - height: auto; | |
| 285 | + // min-height: 100%; | |
| 286 | + height: 100%; | |
| 213 | 287 | background-color: #F7F7F7; |
| 214 | 288 | |
| 215 | 289 | .nextPage { |
| ... | ... | @@ -314,6 +388,39 @@ |
| 314 | 388 | color: #4A4A53; |
| 315 | 389 | } |
| 316 | 390 | |
| 391 | + .fj { | |
| 392 | + margin-top: 16rpx; | |
| 393 | + padding: 24rpx 32rpx 20rpx; | |
| 394 | + background-color: #fff; | |
| 395 | + | |
| 396 | + .fj_item { | |
| 397 | + display: flex; | |
| 398 | + align-items: center; | |
| 399 | + margin-bottom: 20rpx; | |
| 400 | + } | |
| 401 | + | |
| 402 | + .img { | |
| 403 | + width: 24rpx; | |
| 404 | + height: 24rpx; | |
| 405 | + } | |
| 406 | + | |
| 407 | + .look { | |
| 408 | + width: 90%; | |
| 409 | + display: -webkit-box; | |
| 410 | + -webkit-box-orient: vertical; | |
| 411 | + -webkit-line-clamp: 2; | |
| 412 | + overflow: hidden; | |
| 413 | + white-space: normal; | |
| 414 | + word-break: break-all; | |
| 415 | + word-wrap: break-word; | |
| 416 | + font-size: 28rpx; | |
| 417 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 418 | + font-weight: 400; | |
| 419 | + color: #0CB17A; | |
| 420 | + padding-left: 15rpx; | |
| 421 | + } | |
| 422 | + } | |
| 423 | + | |
| 317 | 424 | .reply { |
| 318 | 425 | background-color: #fff; |
| 319 | 426 | padding: 50rpx 30rpx 150rpx; |
| ... | ... | @@ -356,19 +463,20 @@ |
| 356 | 463 | } |
| 357 | 464 | |
| 358 | 465 | .footer { |
| 359 | - width: 100%; | |
| 360 | - height: 130rpx; | |
| 361 | - background: #fff; | |
| 362 | - position: fixed; | |
| 363 | - bottom: 0; | |
| 364 | - left: 0; | |
| 365 | - z-index: 99; | |
| 466 | + // width: 100%; | |
| 467 | + height: 10%; | |
| 468 | + background: #fff; | |
| 469 | + padding: 20rpx; | |
| 470 | + // position: fixed; | |
| 471 | + // bottom: 0; | |
| 472 | + // left: 0; | |
| 473 | + // z-index: 99; | |
| 366 | 474 | |
| 367 | 475 | .uni-input { |
| 368 | - height: 96rpx; | |
| 476 | + min-height: 96rpx; | |
| 369 | 477 | background: rgba(0, 0, 0, 0.04); |
| 370 | 478 | border-radius: 8rpx; |
| 371 | - margin: 10rpx 32rpx 32rpx 32rpx; | |
| 479 | + // margin: 10rpx 32rpx 32rpx 32rpx; | |
| 372 | 480 | padding: 0 20rpx; |
| 373 | 481 | } |
| 374 | 482 | } | ... | ... |
| ... | ... | @@ -61,6 +61,26 @@ |
| 61 | 61 | <text>{{jobDetail.workSite}}</text> |
| 62 | 62 | </view> |
| 63 | 63 | </view> |
| 64 | + | |
| 65 | + <view v-if="registrationDetail.entryAttachments" class="box"> | |
| 66 | + <view class="title">报名材料</view> | |
| 67 | + <view class="time"> | |
| 68 | + {{timeFormat(registrationDetail.entryAttachments.createdTime, 'yyyy-mm-dd hh:MM')}} 上传 | |
| 69 | + </view> | |
| 70 | + <view class="marks"> | |
| 71 | + {{registrationDetail.entryAttachments.remarks}} | |
| 72 | + </view> | |
| 73 | + <view class="cl"> | |
| 74 | + <view v-if="attachments&&attachments.length>0" class="fj"> | |
| 75 | + <view v-for="(item,index) in attachments " @click="openLink(item)"> | |
| 76 | + <view class="fj_item"> | |
| 77 | + <image class="img" src="/static/img/internship/link.png"></image> | |
| 78 | + <text class="look">{{item.filename}}</text> | |
| 79 | + </view> | |
| 80 | + </view> | |
| 81 | + </view> | |
| 82 | + </view> | |
| 83 | + </view> | |
| 64 | 84 | |
| 65 | 85 | <view class="box status"> |
| 66 | 86 | <view class="title">状态</view> |
| ... | ... | @@ -94,13 +114,16 @@ |
| 94 | 114 | <script> |
| 95 | 115 | import { |
| 96 | 116 | getRegistrationDetailApi, |
| 97 | - putRegistrationReviewApi, | |
| 117 | + putRegistrationReviewApi, | |
| 118 | + getImgUrlApi, | |
| 98 | 119 | } from '@/config/api.js'; |
| 99 | 120 | |
| 100 | 121 | export default { |
| 101 | 122 | data() { |
| 102 | 123 | return { |
| 103 | - registrationDetail: {}, | |
| 124 | + registrationDetail: {}, | |
| 125 | + attachments: [], | |
| 126 | + attachmentsFile: [], | |
| 104 | 127 | } |
| 105 | 128 | }, |
| 106 | 129 | |
| ... | ... | @@ -108,7 +131,9 @@ |
| 108 | 131 | getRegistrationDetailApi(option.id).then(data => { |
| 109 | 132 | if (data) { |
| 110 | 133 | console.log(data) |
| 111 | - this.registrationDetail = data | |
| 134 | + this.registrationDetail = data | |
| 135 | + | |
| 136 | + this.handleAttachments() | |
| 112 | 137 | } |
| 113 | 138 | }) |
| 114 | 139 | |
| ... | ... | @@ -147,7 +172,20 @@ |
| 147 | 172 | }, |
| 148 | 173 | }, |
| 149 | 174 | |
| 150 | - methods: { | |
| 175 | + methods: { | |
| 176 | + handleAttachments() { | |
| 177 | + if (this.registrationDetail.entryAttachments) { | |
| 178 | + if (this.registrationDetail.entryAttachments.attachments) { | |
| 179 | + this.attachments = JSON.parse(this.registrationDetail.entryAttachments.attachments) | |
| 180 | + } | |
| 181 | + if (this.registrationDetail.entryAttachments.attachmentsFile) { | |
| 182 | + this.attachmentsFile = JSON.parse(this.registrationDetail.entryAttachments.attachmentsFile) | |
| 183 | + } | |
| 184 | + this.attachments = this.attachments.concat(this.attachmentsFile) | |
| 185 | + console.log(this.attachments) | |
| 186 | + } | |
| 187 | + }, | |
| 188 | + | |
| 151 | 189 | timeFormat(timestamp, format = 'yyyy-mm-dd') { |
| 152 | 190 | return timestamp > 0 ? uni.$u.timeFormat(timestamp, format) : '--' |
| 153 | 191 | }, |
| ... | ... | @@ -176,6 +214,56 @@ |
| 176 | 214 | }); |
| 177 | 215 | } |
| 178 | 216 | }) |
| 217 | + }, | |
| 218 | + | |
| 219 | + openLink(e) { | |
| 220 | + var _this = this | |
| 221 | + | |
| 222 | + uni.showLoading({ | |
| 223 | + title: '努力加载中~', | |
| 224 | + mask: true | |
| 225 | + }) | |
| 226 | + | |
| 227 | + getImgUrlApi({ | |
| 228 | + bucket: e.bucket, | |
| 229 | + filePath: e.object | |
| 230 | + }).then(data => { | |
| 231 | + console.log("data...", data) | |
| 232 | + if (e.mime_type.indexOf("image") != -1) { | |
| 233 | + _this.openImage(data.url) | |
| 234 | + } else { | |
| 235 | + uni.downloadFile({ | |
| 236 | + url: data.url, | |
| 237 | + success: function(res) { | |
| 238 | + var filePath = res.tempFilePath; | |
| 239 | + uni.openDocument({ | |
| 240 | + filePath: filePath, | |
| 241 | + showMenu: true, | |
| 242 | + success: function(res) { | |
| 243 | + console.log('打开文档成功'); | |
| 244 | + }, | |
| 245 | + complete: function() { | |
| 246 | + uni.hideLoading(); | |
| 247 | + } | |
| 248 | + }); | |
| 249 | + } | |
| 250 | + }); | |
| 251 | + } | |
| 252 | + }) | |
| 253 | + }, | |
| 254 | + openImage(imgPath) { | |
| 255 | + let array = new Array(1).fill(imgPath); | |
| 256 | + uni.previewImage({ | |
| 257 | + urls: array, | |
| 258 | + success(res) { | |
| 259 | + uni.hideLoading(); | |
| 260 | + console.log('openImage success'); | |
| 261 | + }, | |
| 262 | + fail(res) { | |
| 263 | + uni.hideLoading(); | |
| 264 | + console.log('openImage fail:', res); | |
| 265 | + } | |
| 266 | + }); | |
| 179 | 267 | }, |
| 180 | 268 | } |
| 181 | 269 | } |
| ... | ... | @@ -257,6 +345,49 @@ |
| 257 | 345 | .border_top { |
| 258 | 346 | border-top: 2rpx solid #E2E2E8; |
| 259 | 347 | padding: 28rpx 0 0 0; |
| 348 | + } | |
| 349 | + | |
| 350 | + .time { | |
| 351 | + margin-top: 10rpx; | |
| 352 | + font-size: 26rpx; | |
| 353 | + } | |
| 354 | + | |
| 355 | + .marks { | |
| 356 | + margin-top: 16rpx; | |
| 357 | + font-size: 30rpx; | |
| 358 | + } | |
| 359 | + | |
| 360 | + .fj { | |
| 361 | + margin-top: 16rpx; | |
| 362 | + // padding: 24rpx 32rpx 20rpx; | |
| 363 | + background-color: #fff; | |
| 364 | + | |
| 365 | + .fj_item { | |
| 366 | + display: flex; | |
| 367 | + align-items: center; | |
| 368 | + margin-bottom: 20rpx; | |
| 369 | + } | |
| 370 | + | |
| 371 | + .img { | |
| 372 | + width: 24rpx; | |
| 373 | + height: 24rpx; | |
| 374 | + } | |
| 375 | + | |
| 376 | + .look { | |
| 377 | + width: 90%; | |
| 378 | + display: -webkit-box; | |
| 379 | + -webkit-box-orient: vertical; | |
| 380 | + -webkit-line-clamp: 2; | |
| 381 | + overflow: hidden; | |
| 382 | + white-space: normal; | |
| 383 | + word-break: break-all; | |
| 384 | + word-wrap: break-word; | |
| 385 | + font-size: 28rpx; | |
| 386 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 387 | + font-weight: 400; | |
| 388 | + color: #0CB17A; | |
| 389 | + padding-left: 15rpx; | |
| 390 | + } | |
| 260 | 391 | } |
| 261 | 392 | } |
| 262 | 393 | ... | ... |
pages/main/home/search/search.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <view class="page"> | |
| 3 | + <!-- <u-search :style="{width:'100%',height: '32px',fontSize: '14px'}" bg-color="#F7F7F7" placeholder="请输入学生姓名/学号/手机号" | |
| 4 | + search-icon-color="#D9D9D9" placeholder-color="#8C8C8C" input-align="left" :clearabled="true" | |
| 5 | + :show-action="false" v-model="search" focus=true @search="handelLink()"> | |
| 6 | + </u-search> --> | |
| 7 | + <u-search placeholder="请输入学生姓名/学号/手机号" placeholderColor="#C1C1C9" searchIconSize="36" height="64rpx" | |
| 8 | + bgColor="#F4F4F4" :showAction="false" shape="round" v-model="search" @search="handelLink()"> | |
| 9 | + </u-search> | |
| 10 | + <view style="display: flex; justify-content: space-between; align-items: center; margin-top: 40rpx;"> | |
| 11 | + <view class="title"> | |
| 12 | + 历史搜索 | |
| 13 | + </view> | |
| 14 | + <u-image width="16px" height="16px" src='/static/img/home/delete.png' @click="clear"></u-image> | |
| 15 | + </view> | |
| 16 | + <view class="his"> | |
| 17 | + <view class="historyItem" v-for="(item,index) in history" :key="index" @click="clickItem(item)"> | |
| 18 | + {{item}} | |
| 19 | + </view> | |
| 20 | + </view> | |
| 21 | + </view> | |
| 22 | +</template> | |
| 23 | + | |
| 24 | +<script> | |
| 25 | + export default { | |
| 26 | + data() { | |
| 27 | + return { | |
| 28 | + type: '', | |
| 29 | + search: '', | |
| 30 | + history: [], | |
| 31 | + } | |
| 32 | + }, | |
| 33 | + | |
| 34 | + onLoad(option) { | |
| 35 | + console.log('onshow', option) | |
| 36 | + if (option && option.type) { | |
| 37 | + this.type = option.type | |
| 38 | + this.search = option.searchkey | |
| 39 | + } | |
| 40 | + }, | |
| 41 | + | |
| 42 | + onShow() { | |
| 43 | + let that = this | |
| 44 | + uni.getStorage({ | |
| 45 | + key: 'search_history', | |
| 46 | + success: function(res) { | |
| 47 | + console.log('123', res) | |
| 48 | + that.history = res.data; | |
| 49 | + } | |
| 50 | + }); | |
| 51 | + }, | |
| 52 | + | |
| 53 | + methods: { | |
| 54 | + handelLink(e) { | |
| 55 | + let that = this | |
| 56 | + | |
| 57 | + // if (e == '' || !e) { | |
| 58 | + // this.$u.toast('请输入搜索条件') | |
| 59 | + // return | |
| 60 | + // } | |
| 61 | + | |
| 62 | + if (e != '') { | |
| 63 | + if (this.history.indexOf(e) == -1) { | |
| 64 | + this.history.push(e) | |
| 65 | + uni.setStorage({ | |
| 66 | + key: 'search_history', | |
| 67 | + data: that.history, | |
| 68 | + success: function() { | |
| 69 | + console.log('success'); | |
| 70 | + } | |
| 71 | + }); | |
| 72 | + } | |
| 73 | + } | |
| 74 | + | |
| 75 | + let pages = getCurrentPages(); | |
| 76 | + let prevPage = pages[pages.length - 2]; | |
| 77 | + prevPage.$vm.keyword = e; | |
| 78 | + uni.navigateBack({ | |
| 79 | + delta: 1 | |
| 80 | + }); | |
| 81 | + }, | |
| 82 | + | |
| 83 | + clear() { | |
| 84 | + let that = this | |
| 85 | + uni.removeStorage({ | |
| 86 | + key: 'search_history', | |
| 87 | + success: function(res) { | |
| 88 | + that.history = []; | |
| 89 | + } | |
| 90 | + }); | |
| 91 | + }, | |
| 92 | + | |
| 93 | + clickItem(e) { | |
| 94 | + let pages = getCurrentPages(); | |
| 95 | + let prevPage = pages[pages.length - 2]; | |
| 96 | + prevPage.$vm.keyword = e; | |
| 97 | + uni.navigateBack({ | |
| 98 | + delta: 1 | |
| 99 | + }); | |
| 100 | + }, | |
| 101 | + } | |
| 102 | + } | |
| 103 | +</script> | |
| 104 | + | |
| 105 | +<style lang="scss" scoped> | |
| 106 | + .page { | |
| 107 | + padding: 20rpx 40rpx; | |
| 108 | + | |
| 109 | + .title { | |
| 110 | + font-size: 16px; | |
| 111 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 112 | + font-weight: 500; | |
| 113 | + color: #000000; | |
| 114 | + } | |
| 115 | + | |
| 116 | + .his { | |
| 117 | + margin-top: 20rpx; | |
| 118 | + display: flex; | |
| 119 | + flex-wrap: wrap; | |
| 120 | + } | |
| 121 | + | |
| 122 | + .historyItem { | |
| 123 | + // height: 32px; | |
| 124 | + background: rgba(0, 0, 0, 0.03); | |
| 125 | + border-radius: 16px; | |
| 126 | + padding: 12rpx 32rpx; | |
| 127 | + font-size: 14px; | |
| 128 | + font-family: PingFangSC-Light, PingFang SC; | |
| 129 | + font-weight: 300; | |
| 130 | + color: rgba(0, 0, 0, 0.65); | |
| 131 | + text-align: center; | |
| 132 | + margin-right: 20rpx; | |
| 133 | + margin-bottom: 10px; | |
| 134 | + } | |
| 135 | + } | |
| 136 | +</style> | ... | ... |
| ... | ... | @@ -5,7 +5,7 @@ |
| 5 | 5 | <view class="box"> |
| 6 | 6 | |
| 7 | 7 | <view class="logo"> |
| 8 | - <u-image width="260rpx" height="140rpx" :src="vuex_baseImgUrl+'/logo.png'" /> | |
| 8 | + <u-image width="200rpx" height="96rpx" :src="vuex_baseImgUrl+'/logo.png'" /> | |
| 9 | 9 | </view> |
| 10 | 10 | |
| 11 | 11 | <view class="btn button_warp"> |
| ... | ... | @@ -157,7 +157,7 @@ |
| 157 | 157 | |
| 158 | 158 | .logo { |
| 159 | 159 | padding: 156rpx 0 0 0; |
| 160 | - width: 260rpx; | |
| 160 | + width: 200rpx; | |
| 161 | 161 | margin: 0 auto; |
| 162 | 162 | } |
| 163 | 163 | ... | ... |
| 1 | 1 | <template> |
| 2 | - <view class="home_box"> | |
| 2 | + <view class="home_box"> | |
| 3 | + <view v-if="isNav" class="hiddenNav" :style="{'height':menuTop+menuHeight+12+ 'px'}"> | |
| 4 | + <view class="school" :style="{'margin-top':top}" @click="show = true"> | |
| 5 | + <text>{{hasLogin?doneSchoolName:'校职通'}}</text> | |
| 6 | + <u-icon v-if="hasLogin" size="12rpx" name="/static/img/home/homesan.png" @click="show = true"></u-icon> | |
| 7 | + </view> | |
| 8 | + </view> | |
| 3 | 9 | <view class="home"> |
| 4 | - | |
| 5 | 10 | <view class="school_box" v-if="hasLogin"> |
| 6 | 11 | <u-image :src="vuex_baseImgUrl+'/schoolBg.png'" width="750rpx" height="496rpx" /> |
| 7 | - <view class="school" :style="{top:top}"> | |
| 8 | - <u-icon size="32rpx" name="/static/img/home/changeSchool.png" @click="show = true"></u-icon> | |
| 12 | + <view class="school" :style="{top:top}" @click="show = true"> | |
| 9 | 13 | <text>{{doneSchoolName}}</text> |
| 14 | + <u-icon size="12rpx" name="/static/img/home/homesan.png" @click="show = true"></u-icon> | |
| 10 | 15 | </view> |
| 11 | 16 | </view> |
| 12 | 17 | |
| 13 | 18 | <view class="school_box" v-else> |
| 14 | 19 | <u-image :src="vuex_baseImgUrl+'/schoolBg.png'" width="750rpx" height="496rpx" /> |
| 15 | 20 | <view class="school" :style="{top:top}"> |
| 16 | - <u-icon size="32rpx" name="/static/img/home/changeSchool.png"></u-icon> | |
| 17 | 21 | <text>校职通</text> |
| 22 | + <!-- <u-icon size="12rpx" name="/static/img/home/homesan.png"></u-icon> --> | |
| 18 | 23 | </view> |
| 19 | 24 | </view> |
| 20 | 25 | |
| 21 | - <view class="info" v-if="hasLogin"> | |
| 22 | - <u-row justify="space-between" customStyle="margin-bottom: 24rpx"> | |
| 26 | + <view class="infoNew"> | |
| 27 | + <!-- <u-row justify="space-between" customStyle="margin-bottom: 24rpx"> | |
| 23 | 28 | <u-col span="5"> |
| 24 | 29 | <view class="name"> |
| 25 | 30 | <text>{{teacher.name}}</text> |
| ... | ... | @@ -32,10 +37,89 @@ |
| 32 | 37 | labelColor="#202131" name="/static/img/home/changeAuth.png"></u-icon> |
| 33 | 38 | </view> |
| 34 | 39 | </u-col> |
| 35 | - </u-row> | |
| 40 | + </u-row> --> | |
| 41 | + <view class="top"> | |
| 42 | + <view v-if="hasLogin"> | |
| 43 | + <view class="name"> | |
| 44 | + Hi, {{teacher.name}} | |
| 45 | + </view> | |
| 46 | + </view> | |
| 47 | + <view v-else> | |
| 48 | + <view class="name"> | |
| 49 | + 未登录 | |
| 50 | + </view> | |
| 51 | + </view> | |
| 52 | + <view v-if="doneRolesLength > 1"> | |
| 53 | + <view class="identity" @click="handelChange"> | |
| 54 | + <u-icon size="32rpx" :label="doneRolesName" labelPos="right" labelSize="24rpx" | |
| 55 | + labelColor="#202131" name="/static/img/home/changeAuth.png"></u-icon> | |
| 56 | + </view> | |
| 57 | + </view> | |
| 58 | + </view> | |
| 59 | + <view class="line" style="margin-top: 24px;"></view> | |
| 60 | + <view class="twoCell"> | |
| 61 | + <view class="item" @click="handelGate(1)"> | |
| 62 | + <view> | |
| 63 | + <image src="/static/img/home/newhome1.png"></image> | |
| 64 | + </view> | |
| 65 | + <view style="display: flex; flex-direction: column;"> | |
| 66 | + <view class="t1"> | |
| 67 | + 报名审核 | |
| 68 | + </view> | |
| 69 | + <view class="t2"> | |
| 70 | + 审核学生实习报名 | |
| 71 | + </view> | |
| 72 | + </view> | |
| 73 | + </view> | |
| 74 | + <view class="item" @click="handelGate(2)"> | |
| 75 | + <view> | |
| 76 | + <image src="/static/img/home/newhome2.png"></image> | |
| 77 | + </view> | |
| 78 | + <view style="display: flex; flex-direction: column;"> | |
| 79 | + <view class="t1"> | |
| 80 | + 请假审批 | |
| 81 | + </view> | |
| 82 | + <view class="t2"> | |
| 83 | + 实习中的请假申请 | |
| 84 | + </view> | |
| 85 | + </view> | |
| 86 | + </view> | |
| 87 | + </view> | |
| 88 | + <view class="fiveCell"> | |
| 89 | + <view class="item" @click="handelGate(3)"> | |
| 90 | + <image src="/static/img/home/newhome3.png"></image> | |
| 91 | + <view class="t1"> | |
| 92 | + 实习变更 | |
| 93 | + </view> | |
| 94 | + </view> | |
| 95 | + <view class="item" @click="handelGate(4)"> | |
| 96 | + <image src="/static/img/home/newhome4.png"></image> | |
| 97 | + <view class="t1"> | |
| 98 | + 日志批阅 | |
| 99 | + </view> | |
| 100 | + </view> | |
| 101 | + <view class="item" @click="handelGate(5)"> | |
| 102 | + <image src="/static/img/home/newhome5.png"></image> | |
| 103 | + <view class="t1"> | |
| 104 | + 报告批阅 | |
| 105 | + </view> | |
| 106 | + </view> | |
| 107 | + <view class="item" @click="handelGate(6)"> | |
| 108 | + <image src="/static/img/home/newhome6.png"></image> | |
| 109 | + <view class="t1"> | |
| 110 | + 学生签到 | |
| 111 | + </view> | |
| 112 | + </view> | |
| 113 | + <view class="item" @click="handelGate(7)"> | |
| 114 | + <image src="/static/img/home/newhome7.png"></image> | |
| 115 | + <view class="t1"> | |
| 116 | + 成绩鉴定 | |
| 117 | + </view> | |
| 118 | + </view> | |
| 119 | + </view> | |
| 36 | 120 | </view> |
| 37 | 121 | |
| 38 | - <view class="info" v-else> | |
| 122 | + <!-- <view class="info" v-else> | |
| 39 | 123 | <u-row justify="space-between" customStyle="margin-bottom: 24rpx"> |
| 40 | 124 | <u-col span="5"> |
| 41 | 125 | <view class="name" @click="handelLOgin"> |
| ... | ... | @@ -44,9 +128,9 @@ |
| 44 | 128 | </view> |
| 45 | 129 | </u-col> |
| 46 | 130 | </u-row> |
| 47 | - </view> | |
| 131 | + </view> --> | |
| 48 | 132 | |
| 49 | - <view class="gate"> | |
| 133 | + <!-- <view class="gate"> | |
| 50 | 134 | <u-row justify="space-between" gutter="16rpx" customStyle="margin-bottom: 10px"> |
| 51 | 135 | <u-col span="4"> |
| 52 | 136 | <view class="box"> |
| ... | ... | @@ -106,16 +190,45 @@ |
| 106 | 190 | </u-col> |
| 107 | 191 | </u-row> |
| 108 | 192 | |
| 109 | - </view> | |
| 193 | + </view> --> | |
| 110 | 194 | |
| 111 | 195 | <view class="todoList"> |
| 112 | - <view class="title">待办事项</view> | |
| 196 | + <view class="top"> | |
| 197 | + <image src="/static/img/home/homedbsx.png"></image> | |
| 198 | + <view class="title">待办事项</view> | |
| 199 | + </view> | |
| 113 | 200 | <view v-if="hasLogin"> |
| 114 | 201 | <view |
| 115 | - v-if="statistics && (statistics.internshipApply > 0 || statistics.formLogWaitReview > 0 || statistics.reportWaitReview > 0 || statistics.achievementWaitAppraisal > 0 )"> | |
| 202 | + v-if="statistics && (statistics.formChangeApplyReview > 0 || statistics.leaveRecordReview > 0 || statistics.internshipApply > 0 || statistics.formLogWaitReview > 0 || statistics.reportWaitReview > 0 || statistics.achievementWaitAppraisal > 0 )"> | |
| 116 | 203 | <view class="cell"> |
| 117 | 204 | <u-cell-group :border="false"> |
| 118 | 205 | <u-cell |
| 206 | + v-if="statistics && statistics.leaveRecordReview && statistics.leaveRecordReview > 0" | |
| 207 | + :isLink="true" url="/pages/main/home/asklist/asklist?status=wait" | |
| 208 | + arrow-direction="right" :rightIconStyle="{fontSize:'24rpx'}" :border="false"> | |
| 209 | + <view slot="title" class="u-slot-title"> | |
| 210 | + <view class="u-cell-title">请假审批</view> | |
| 211 | + <view class="u-cell-text"> | |
| 212 | + 您有<text>{{statistics.leaveRecordReview}}</text>个<text>请假审批</text>待审批!</view> | |
| 213 | + </view> | |
| 214 | + <text slot="value" class="u-slot-value">立即审批</text> | |
| 215 | + | |
| 216 | + </u-cell> | |
| 217 | + <view class="line"></view> | |
| 218 | + <u-cell | |
| 219 | + v-if="statistics && statistics.formChangeApplyReview && statistics.formChangeApplyReview > 0" | |
| 220 | + :isLink="true" url="/pages/main/home/changelist/changelist?status=wait" | |
| 221 | + arrow-direction="right" :rightIconStyle="{fontSize:'24rpx'}" :border="false"> | |
| 222 | + <view slot="title" class="u-slot-title"> | |
| 223 | + <view class="u-cell-title">实习变更</view> | |
| 224 | + <view class="u-cell-text"> | |
| 225 | + 您有<text>{{statistics.formChangeApplyReview}}</text>个<text>实习变更申请</text>待审批! | |
| 226 | + </view> | |
| 227 | + </view> | |
| 228 | + <text slot="value" class="u-slot-value">立即审批</text> | |
| 229 | + </u-cell> | |
| 230 | + <view class="line"></view> | |
| 231 | + <u-cell | |
| 119 | 232 | v-if="statistics && statistics.internshipApply && statistics.internshipApply > 0" |
| 120 | 233 | :isLink="true" |
| 121 | 234 | url="/pages/main/home/registrationReview/registrationReview?status=wait" |
| ... | ... | @@ -127,7 +240,7 @@ |
| 127 | 240 | </view> |
| 128 | 241 | <text slot="value" class="u-slot-value">立即处理</text> |
| 129 | 242 | </u-cell> |
| 130 | - | |
| 243 | + <view class="line"></view> | |
| 131 | 244 | <u-cell |
| 132 | 245 | v-if="statistics && statistics.formLogWaitReview && statistics.formLogWaitReview > 0" |
| 133 | 246 | :isLink="true" url="/pages/main/home/logReview/logReview?status=unread" |
| ... | ... | @@ -139,7 +252,7 @@ |
| 139 | 252 | </view> |
| 140 | 253 | <text slot="value" class="u-slot-value">立即批阅</text> |
| 141 | 254 | </u-cell> |
| 142 | - | |
| 255 | + <view class="line"></view> | |
| 143 | 256 | <u-cell |
| 144 | 257 | v-if="statistics && statistics.reportWaitReview && statistics.reportWaitReview > 0" |
| 145 | 258 | :isLink="true" url="/pages/main/home/reportReview/reportReview?status=stay_examine" |
| ... | ... | @@ -151,7 +264,7 @@ |
| 151 | 264 | </view> |
| 152 | 265 | <text slot="value" class="u-slot-value">立即批阅</text> |
| 153 | 266 | </u-cell> |
| 154 | - | |
| 267 | + <view class="line"></view> | |
| 155 | 268 | <u-cell |
| 156 | 269 | v-if="statistics && statistics.achievementWaitAppraisal && statistics.achievementWaitAppraisal > 0" |
| 157 | 270 | :isLink="true" |
| ... | ... | @@ -165,7 +278,7 @@ |
| 165 | 278 | </view> |
| 166 | 279 | <text slot="value" class="u-slot-value">立即评定</text> |
| 167 | 280 | </u-cell> |
| 168 | - | |
| 281 | + <view class="line"></view> | |
| 169 | 282 | </u-cell-group> |
| 170 | 283 | </view> |
| 171 | 284 | </view> |
| ... | ... | @@ -180,10 +293,35 @@ |
| 180 | 293 | </view> |
| 181 | 294 | </view> |
| 182 | 295 | </view> |
| 296 | + <view style="height: 50px;"></view> | |
| 297 | + <u-popup :show="show" mode="bottom" @close="close" @open="open" :round="22"> | |
| 298 | + <view class="new_popup_search"> | |
| 299 | + <view style="display: flex; justify-content: space-between; align-items: center;"> | |
| 300 | + <view class="title"> | |
| 301 | + 切换学校 | |
| 302 | + </view> | |
| 303 | + <image class="close" src="/static/img/home/closepop.png" @click="close" mode=""></image> | |
| 304 | + </view> | |
| 305 | + <view class="desc"> | |
| 306 | + 请选择需要登陆管理的学校 | |
| 307 | + </view> | |
| 308 | + <scroll-view class="scroll" scroll-y="true"> | |
| 309 | + <view class="item" v-for="(item, i) in schoolList" :key="i" @click="handelClick(item)"> | |
| 310 | + <!-- <view v-if="item.id == schoolId"> --> | |
| 311 | + <view style="display: flex; align-items: center;"> | |
| 312 | + <image class="pop1" src="/static/img/home/schoolAvatar.png" mode=""></image> | |
| 313 | + <text class="fullName">{{item.fullName}}</text> | |
| 314 | + </view> | |
| 315 | + <image v-if="item.fullName == doneSchoolName" class="pop2" src="/static/img/home/popselect.png" mode=""></image> | |
| 316 | + <!-- </view> --> | |
| 317 | + <!-- <view v-else> | |
| 318 | + <u-image src="/static/img/home/schoolAvatar.png" width="104rpx" height="104rpx" /> | |
| 319 | + <text class="fullName">{{item.fullName}}</text> | |
| 320 | + </view> --> | |
| 321 | + </view> | |
| 322 | + </scroll-view> | |
| 183 | 323 | |
| 184 | - <u-popup :show="show" mode="left" @close="close" @open="open"> | |
| 185 | - <view class="popup_search"> | |
| 186 | - <view class="content"> | |
| 324 | + <!-- <view class="content"> | |
| 187 | 325 | <view class="title"> |
| 188 | 326 | <text>选择学校</text> |
| 189 | 327 | <text>请选择您想登录管理的学校</text> |
| ... | ... | @@ -201,7 +339,7 @@ |
| 201 | 339 | </view> |
| 202 | 340 | </scroll-view> |
| 203 | 341 | |
| 204 | - </view> | |
| 342 | + </view> --> | |
| 205 | 343 | |
| 206 | 344 | </view> |
| 207 | 345 | </u-popup> |
| ... | ... | @@ -228,12 +366,17 @@ |
| 228 | 366 | top: '0rpx', |
| 229 | 367 | show: false, |
| 230 | 368 | schoolId: '', |
| 231 | - statistics: {} | |
| 369 | + statistics: {}, | |
| 370 | + statusBarHeight: 44, | |
| 371 | + menuHeight: 32, | |
| 372 | + menuTop: 32, | |
| 373 | + margin: 92, | |
| 374 | + isNav: false | |
| 232 | 375 | } |
| 233 | 376 | }, |
| 234 | 377 | |
| 235 | 378 | onLoad() { |
| 236 | - | |
| 379 | + this.getSystemInfo() | |
| 237 | 380 | }, |
| 238 | 381 | |
| 239 | 382 | onShow() { |
| ... | ... | @@ -262,6 +405,15 @@ |
| 262 | 405 | } |
| 263 | 406 | }) |
| 264 | 407 | } |
| 408 | + }, | |
| 409 | + | |
| 410 | + onPageScroll(res) { | |
| 411 | + // console.log(res.scrollTop) | |
| 412 | + if (res.scrollTop > 100) { | |
| 413 | + this.isNav = true | |
| 414 | + }else { | |
| 415 | + this.isNav = false | |
| 416 | + } | |
| 265 | 417 | }, |
| 266 | 418 | |
| 267 | 419 | computed: { |
| ... | ... | @@ -293,7 +445,36 @@ |
| 293 | 445 | |
| 294 | 446 | }, |
| 295 | 447 | |
| 296 | - methods: { | |
| 448 | + methods: { | |
| 449 | + | |
| 450 | + getSystemInfo() { | |
| 451 | + uni.getSystemInfo({ | |
| 452 | + success: (res) => { | |
| 453 | + | |
| 454 | + let menuButtonInfo = uni.getMenuButtonBoundingClientRect(); | |
| 455 | + this.menuHeight = menuButtonInfo.height | |
| 456 | + this.menuTop = menuButtonInfo.top | |
| 457 | + // 状态栏高度 | |
| 458 | + let statusBarHeight = res.statusBarHeight; | |
| 459 | + let platform = res.platform; | |
| 460 | + let winWidth = res.windowWidth; | |
| 461 | + | |
| 462 | + let excludeStatusBarHeight = 44; | |
| 463 | + if (platform == "android") { | |
| 464 | + excludeStatusBarHeight = 48; | |
| 465 | + } | |
| 466 | + | |
| 467 | + let navigationBarHeight = statusBarHeight + excludeStatusBarHeight; | |
| 468 | + // let proportion = 750 / winWidth; | |
| 469 | + // this.navigationBarHeight = navigationBarHeight * proportion; | |
| 470 | + this.margin = navigationBarHeight; | |
| 471 | + | |
| 472 | + console.log(this.navigationBarHeight, this.menuHeight, this.menuTop, | |
| 473 | + navigationBarHeight) | |
| 474 | + }, | |
| 475 | + complete: function(res) {}, | |
| 476 | + }); | |
| 477 | + }, | |
| 297 | 478 | |
| 298 | 479 | handelClick(values) { |
| 299 | 480 | this.schoolId = values.id; |
| ... | ... | @@ -304,14 +485,14 @@ |
| 304 | 485 | schoolId: values.id, |
| 305 | 486 | }).then(data => { |
| 306 | 487 | console.log(data) |
| 307 | - if (data) { | |
| 308 | - | |
| 309 | - getTodoListStatisticsApi().then(data => { | |
| 310 | - if (data) { | |
| 311 | - this.statistics = data; | |
| 312 | - } | |
| 313 | - }) | |
| 314 | - | |
| 488 | + if (data) { | |
| 489 | + | |
| 490 | + getTodoListStatisticsApi().then(data => { | |
| 491 | + if (data) { | |
| 492 | + this.statistics = data; | |
| 493 | + } | |
| 494 | + }) | |
| 495 | + | |
| 315 | 496 | this.show = false; |
| 316 | 497 | } |
| 317 | 498 | }) |
| ... | ... | @@ -365,32 +546,38 @@ |
| 365 | 546 | return; |
| 366 | 547 | } |
| 367 | 548 | |
| 368 | - let { | |
| 369 | - type = '' | |
| 370 | - } = even.currentTarget.dataset; | |
| 549 | + // let { | |
| 550 | + // type = '' | |
| 551 | + // } = even.currentTarget.dataset; | |
| 371 | 552 | |
| 372 | - switch (type) { | |
| 373 | - case 'review': | |
| 553 | + switch (even) { | |
| 554 | + case 1: | |
| 374 | 555 | this.$u.route('/pages/main/home/registrationReview/registrationReview'); |
| 375 | 556 | break; |
| 376 | 557 | |
| 377 | - case 'signin': | |
| 378 | - this.$u.route('/pages/main/home/studentSignIn/studentSignIn'); | |
| 558 | + case 2: | |
| 559 | + this.$u.route('/pages/main/home/asklist/asklist'); | |
| 560 | + break; | |
| 561 | + | |
| 562 | + case 3: | |
| 563 | + this.$u.route('/pages/main/home/changelist/changelist'); | |
| 379 | 564 | break; |
| 380 | 565 | |
| 381 | - case 'log': | |
| 566 | + case 4: | |
| 382 | 567 | this.$u.route('/pages/main/home/logReview/logReview'); |
| 383 | 568 | break; |
| 384 | 569 | |
| 385 | - case 'report': | |
| 570 | + case 5: | |
| 386 | 571 | this.$u.route('/pages/main/home/reportReview/reportReview'); |
| 387 | 572 | break; |
| 388 | 573 | |
| 389 | - case 'achievement': | |
| 390 | - this.$u.route('/pages/main/home/achievementAppraisal/achievementAppraisal'); | |
| 574 | + case 6: | |
| 575 | + this.$u.route('/pages/main/home/studentSignIn/studentSignIn'); | |
| 391 | 576 | break; |
| 392 | 577 | |
| 393 | - | |
| 578 | + case 7: | |
| 579 | + this.$u.route('/pages/main/home/achievementAppraisal/achievementAppraisal'); | |
| 580 | + break; | |
| 394 | 581 | |
| 395 | 582 | |
| 396 | 583 | |
| ... | ... | @@ -406,8 +593,38 @@ |
| 406 | 593 | <style lang="scss" scoped> |
| 407 | 594 | .cell /deep/ .u-cell { |
| 408 | 595 | background-color: #FFFFFF; |
| 409 | - border-radius: 12rpx; | |
| 410 | - margin: 0 0 20rpx 0; | |
| 596 | + // border-radius: 12rpx; | |
| 597 | + // margin: 0 0 20rpx 0; | |
| 598 | + } | |
| 599 | + | |
| 600 | + .cell /deep/ .u-cell-group { | |
| 601 | + border-radius: 4px; | |
| 602 | + overflow: hidden; | |
| 603 | + } | |
| 604 | + | |
| 605 | + .hiddenNav { | |
| 606 | + position: fixed; | |
| 607 | + top: 0; | |
| 608 | + left: 0; | |
| 609 | + width: 100%; | |
| 610 | + background-color: #fff; | |
| 611 | + z-index: 999; | |
| 612 | + padding-left: 40rpx; | |
| 613 | + | |
| 614 | + .school { | |
| 615 | + display: flex; | |
| 616 | + flex-flow: row nowrap; | |
| 617 | + | |
| 618 | + text { | |
| 619 | + font-size: 32rpx; | |
| 620 | + line-height: 32rpx; | |
| 621 | + color: #202131; | |
| 622 | + font-weight: 500; | |
| 623 | + margin-right: 7px; | |
| 624 | + // width: 600rpx; | |
| 625 | + // text-align: center; | |
| 626 | + } | |
| 627 | + } | |
| 411 | 628 | } |
| 412 | 629 | |
| 413 | 630 | .home_box { |
| ... | ... | @@ -421,7 +638,7 @@ |
| 421 | 638 | .school_box { |
| 422 | 639 | width: 100%; |
| 423 | 640 | height: 496rpx; |
| 424 | - margin: 0 0 34rpx 0; | |
| 641 | + // margin: 0 0 34rpx 0; | |
| 425 | 642 | position: relative; |
| 426 | 643 | |
| 427 | 644 | .school { |
| ... | ... | @@ -436,8 +653,9 @@ |
| 436 | 653 | line-height: 32rpx; |
| 437 | 654 | color: #202131; |
| 438 | 655 | font-weight: 500; |
| 439 | - width: 600rpx; | |
| 440 | - text-align: center; | |
| 656 | + margin-right: 7px; | |
| 657 | + // width: 600rpx; | |
| 658 | + // text-align: center; | |
| 441 | 659 | } |
| 442 | 660 | } |
| 443 | 661 | |
| ... | ... | @@ -478,6 +696,98 @@ |
| 478 | 696 | } |
| 479 | 697 | } |
| 480 | 698 | |
| 699 | + .infoNew { | |
| 700 | + position: relative; | |
| 701 | + top: -26px; | |
| 702 | + left: 0px; | |
| 703 | + margin: 0 10px; | |
| 704 | + // height: 245px; | |
| 705 | + background: #FFFFFF; | |
| 706 | + box-shadow: 0px 2px 20px 0px rgba(0, 0, 0, 0.03); | |
| 707 | + border-radius: 4px; | |
| 708 | + padding: 26px 16px; | |
| 709 | + | |
| 710 | + .top { | |
| 711 | + display: flex; | |
| 712 | + align-items: center; | |
| 713 | + | |
| 714 | + .name { | |
| 715 | + font-size: 18px; | |
| 716 | + font-family: PingFangSC-Semibold, PingFang SC; | |
| 717 | + font-weight: 600; | |
| 718 | + color: #202131; | |
| 719 | + } | |
| 720 | + | |
| 721 | + .identity { | |
| 722 | + padding: 4px 10px; | |
| 723 | + background: #F4F4F4; | |
| 724 | + border-radius: 12px; | |
| 725 | + margin: 0 0 0 10rpx; | |
| 726 | + } | |
| 727 | + } | |
| 728 | + | |
| 729 | + .line { | |
| 730 | + height: 1px; | |
| 731 | + background-color: #F7F7F7; | |
| 732 | + } | |
| 733 | + | |
| 734 | + .twoCell { | |
| 735 | + margin-top: 23px; | |
| 736 | + display: flex; | |
| 737 | + | |
| 738 | + .item { | |
| 739 | + flex: 1; | |
| 740 | + display: flex; | |
| 741 | + | |
| 742 | + image { | |
| 743 | + width: 40px; | |
| 744 | + height: 40px; | |
| 745 | + } | |
| 746 | + | |
| 747 | + .t1 { | |
| 748 | + margin-left: 6px; | |
| 749 | + font-size: 16px; | |
| 750 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 751 | + font-weight: 500; | |
| 752 | + color: #000000; | |
| 753 | + } | |
| 754 | + | |
| 755 | + .t2 { | |
| 756 | + margin-left: 6px; | |
| 757 | + font-size: 12px; | |
| 758 | + font-family: PingFangSC-Light, PingFang SC; | |
| 759 | + font-weight: 300; | |
| 760 | + color: rgba(0, 0, 0, 0.65); | |
| 761 | + } | |
| 762 | + } | |
| 763 | + } | |
| 764 | + | |
| 765 | + .fiveCell { | |
| 766 | + margin-top: 30px; | |
| 767 | + display: flex; | |
| 768 | + | |
| 769 | + .item { | |
| 770 | + flex: 1; | |
| 771 | + display: flex; | |
| 772 | + flex-direction: column; | |
| 773 | + align-items: center; | |
| 774 | + | |
| 775 | + image { | |
| 776 | + width: 24px; | |
| 777 | + height: 24px; | |
| 778 | + } | |
| 779 | + | |
| 780 | + .t1 { | |
| 781 | + margin-top: 8px; | |
| 782 | + font-size: 12px; | |
| 783 | + font-family: PingFangSC-Regular, PingFang SC; | |
| 784 | + font-weight: 400; | |
| 785 | + color: #000000; | |
| 786 | + } | |
| 787 | + } | |
| 788 | + } | |
| 789 | + } | |
| 790 | + | |
| 481 | 791 | .gate { |
| 482 | 792 | width: 690rpx; |
| 483 | 793 | margin: 0 auto 50rpx; |
| ... | ... | @@ -534,8 +844,8 @@ |
| 534 | 844 | } |
| 535 | 845 | |
| 536 | 846 | .todoList { |
| 537 | - width: 690rpx; | |
| 538 | - margin: 0 auto; | |
| 847 | + // width: 690rpx; | |
| 848 | + margin: 0 10px; | |
| 539 | 849 | |
| 540 | 850 | .no_login { |
| 541 | 851 | padding: 150rpx 0 0 0; |
| ... | ... | @@ -548,26 +858,42 @@ |
| 548 | 858 | } |
| 549 | 859 | } |
| 550 | 860 | |
| 551 | - .title { | |
| 552 | - font-size: 32rpx; | |
| 553 | - line-height: 32rpx; | |
| 554 | - color: #202131; | |
| 861 | + .top { | |
| 862 | + display: flex; | |
| 863 | + margin-bottom: 16px; | |
| 864 | + | |
| 865 | + image { | |
| 866 | + width: 16px; | |
| 867 | + height: 16px; | |
| 868 | + } | |
| 869 | + | |
| 870 | + .title { | |
| 871 | + margin-left: 4px; | |
| 872 | + font-size: 32rpx; | |
| 873 | + line-height: 32rpx; | |
| 874 | + color: #202131; | |
| 875 | + } | |
| 555 | 876 | } |
| 556 | 877 | |
| 557 | - .title::before { | |
| 558 | - content: ""; | |
| 559 | - display: inline-block; | |
| 560 | - width: 6rpx; | |
| 561 | - height: 32rpx; | |
| 562 | - background-color: #06B079; | |
| 563 | - margin: 0 12rpx 0 0; | |
| 564 | - position: relative; | |
| 565 | - top: 4rpx; | |
| 566 | - border-radius: 8rpx; | |
| 878 | + .line { | |
| 879 | + height: 1px; | |
| 880 | + background-color: #F7F7F7; | |
| 567 | 881 | } |
| 568 | 882 | |
| 883 | + // .title::before { | |
| 884 | + // content: ""; | |
| 885 | + // display: inline-block; | |
| 886 | + // width: 6rpx; | |
| 887 | + // height: 32rpx; | |
| 888 | + // background-color: #06B079; | |
| 889 | + // margin: 0 12rpx 0 0; | |
| 890 | + // position: relative; | |
| 891 | + // top: 4rpx; | |
| 892 | + // border-radius: 8rpx; | |
| 893 | + // } | |
| 894 | + | |
| 569 | 895 | .cell { |
| 570 | - margin: 20rpx 0 0 0; | |
| 896 | + margin: 0rpx 0 0 0; | |
| 571 | 897 | |
| 572 | 898 | .u-slot-title { |
| 573 | 899 | .u-cell-title { |
| ... | ... | @@ -593,7 +919,6 @@ |
| 593 | 919 | color: #909097; |
| 594 | 920 | } |
| 595 | 921 | } |
| 596 | - | |
| 597 | 922 | } |
| 598 | 923 | } |
| 599 | 924 | |
| ... | ... | @@ -638,7 +963,7 @@ |
| 638 | 963 | flex-flow: row wrap; |
| 639 | 964 | align-items: center; |
| 640 | 965 | |
| 641 | - text { | |
| 966 | + text { | |
| 642 | 967 | width: 240rpx; |
| 643 | 968 | font-size: 40rpx; |
| 644 | 969 | line-height: 48rpx; |
| ... | ... | @@ -652,5 +977,82 @@ |
| 652 | 977 | } |
| 653 | 978 | |
| 654 | 979 | } |
| 980 | + | |
| 981 | + .new_popup_search { | |
| 982 | + padding: 23px 16px; | |
| 983 | + height: 209px; | |
| 984 | + background-image: url('https://yxlypublic.oss-cn-beijing.aliyuncs.com/WeChat/yxly-teacher/pop_bg.png'); | |
| 985 | + background-size: 100% 90px; | |
| 986 | + background-repeat: no-repeat; | |
| 987 | + | |
| 988 | + .title { | |
| 989 | + font-size: 18px; | |
| 990 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 991 | + font-weight: 500; | |
| 992 | + color: #000000; | |
| 993 | + } | |
| 994 | + | |
| 995 | + .close { | |
| 996 | + width: 22px; | |
| 997 | + height: 22px; | |
| 998 | + } | |
| 999 | + | |
| 1000 | + .desc { | |
| 1001 | + margin-top: 10px; | |
| 1002 | + font-size: 14px; | |
| 1003 | + font-family: PingFangSC-Light, PingFang SC; | |
| 1004 | + font-weight: 300; | |
| 1005 | + color: #202131; | |
| 1006 | + } | |
| 1007 | + | |
| 1008 | + .scroll { | |
| 1009 | + margin-top: 25px; | |
| 1010 | + height: 159px; | |
| 1011 | + // background-color: #06B079; | |
| 1012 | + | |
| 1013 | + .item { | |
| 1014 | + width: 100%; | |
| 1015 | + // height: 64rpx; | |
| 1016 | + // padding: 20px 16px; | |
| 1017 | + display: flex; | |
| 1018 | + justify-content: space-between; | |
| 1019 | + align-items: center; | |
| 1020 | + margin-bottom: 15px; | |
| 1021 | + | |
| 1022 | + .pop1 { | |
| 1023 | + width: 30px; | |
| 1024 | + height: 30px; | |
| 1025 | + } | |
| 1026 | + | |
| 1027 | + .pop2 { | |
| 1028 | + width: 20px; | |
| 1029 | + height: 20px; | |
| 1030 | + } | |
| 1031 | + | |
| 1032 | + .fullName { | |
| 1033 | + font-size: 16px; | |
| 1034 | + font-family: PingFangSC-Medium, PingFang SC; | |
| 1035 | + font-weight: 500; | |
| 1036 | + color: #000000; | |
| 1037 | + margin-left: 8px; | |
| 1038 | + } | |
| 1039 | + | |
| 1040 | + // view { | |
| 1041 | + // display: flex; | |
| 1042 | + // flex-flow: row wrap; | |
| 1043 | + // align-items: center; | |
| 1044 | + | |
| 1045 | + // text { | |
| 1046 | + // width: 240rpx; | |
| 1047 | + // font-size: 40rpx; | |
| 1048 | + // line-height: 48rpx; | |
| 1049 | + // color: #202131; | |
| 1050 | + // margin: 0 0 0 34rpx; | |
| 1051 | + // } | |
| 1052 | + // } | |
| 1053 | + | |
| 1054 | + } | |
| 1055 | + } | |
| 1056 | + } | |
| 655 | 1057 | } |
| 656 | 1058 | </style> | ... | ... |
static/img/home/closepop.png
0 → 100644
529 Bytes
static/img/home/delete.png
0 → 100644
270 Bytes
static/img/home/homedbsx.png
0 → 100644
828 Bytes
static/img/home/homesan.png
0 → 100644
326 Bytes
static/img/home/newhome1.png
0 → 100644
2.9 KB
static/img/home/newhome2.png
0 → 100644
3.6 KB
static/img/home/newhome3.png
0 → 100644
2.1 KB
static/img/home/newhome4.png
0 → 100644
2.0 KB
static/img/home/newhome5.png
0 → 100644
2.0 KB
static/img/home/newhome6.png
0 → 100644
2.1 KB
static/img/home/newhome7.png
0 → 100644
2.1 KB
static/img/home/nodata.png
0 → 100644
6.4 KB
static/img/home/popbg.png
0 → 100644
104.2 KB
static/img/home/popselect.png
0 → 100644
831 Bytes
static/img/home/search.png
0 → 100644
1.1 KB
static/img/home/status_need_qiye.png
0 → 100644
4.1 KB
static/img/home/status_need_school.png
0 → 100644
4.7 KB
static/img/home/timeline.png
0 → 100644
233 Bytes
static/img/internship/link.png
0 → 100644
754 Bytes
请
注册
或
登录
后发表评论