| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <view class="status_wrap"> |
| | | <view class="name">{{ info.createMemberName }}提交的{{ cateList[type].name }}</view> |
| | | <view class="name">{{ info.createMemberName }}提交的访客报备</view> |
| | | <view |
| | | class="desc" |
| | | :class="{ |
| | | gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4', |
| | | }" |
| | | >{{ infoStatus }}</view |
| | | >{{ info.info }}</view |
| | | > |
| | | <view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{ |
| | | statusMap[info.businessStatus] |
| | |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">访客单位</view> |
| | | <view class="value">{{ info.companyName }}人</view> |
| | | <view class="value">{{ info.companyName }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">来访事由</view> |
| | |
| | | <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" /> |
| | | <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img" |
| | | src="@/static/staff/ic_shenpiren@2x.png" /> |
| | | <image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image> |
| | | <span v-else class="img_name">{{ item.memberName && item.memberName.slice(0, 1) }}</span> |
| | | <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png" |
| | | mode="widthFix" /> |
| | |
| | | info.approveDateVO.canBeApproved != null && |
| | | info.approveDateVO.canBeApproved == 1 |
| | | " class="main_footer"> |
| | | <view class="btn" @click="cancelShow = true" v-if="checkAuth('business:visits:cancel') && [0,1,2,5].includes(info.status)">取消预约</view> |
| | | <view style="width: 30rpx; height: 100%;"></view> |
| | | <view class="btn" @click="handleSub(3)">拒绝</view> |
| | | <view style="width: 30rpx; height: 100%;"></view> |
| | | <view class="btn agree" @click="handleSub(2)">同意</view> |
| | | </view> |
| | | |
| | |
| | | " placeholder-class="placeholder9" /> |
| | | <view class="main_footer"> |
| | | <view class="btn" @click="showApprModal = false">取消</view> |
| | | <view style="width: 30rpx; height: 100%;"></view> |
| | | <view class="btn agree" @click="onSubmit">提交</view> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | <!-- 取消预约弹窗 --> |
| | | <u-modal |
| | | :show="cancelShow" |
| | | :showCancelButton="true" |
| | | title="系统提示" |
| | | content='确定取消当前预约吗?' |
| | | @cancel="cancelShow = false" |
| | | @confirm="cancel" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getVisitedReDetail, // 访客预约详情 |
| | | carUseBookAppr |
| | | carUseBookAppr, |
| | | visitsCancel |
| | | } from '@/api' |
| | | export default { |
| | | data() { |
| | |
| | | showApprModal: false, |
| | | param: {}, |
| | | info: {}, |
| | | userInfo: uni.getStorageSync('userInfo') || { |
| | | permissions: [] |
| | | }, |
| | | |
| | | id: '', |
| | | type: '', |
| | |
| | | 2: '已通过', |
| | | 3: '已拒绝', |
| | | 4: '已取消', |
| | | } |
| | | }, |
| | | cancelShow: false |
| | | } |
| | | }, |
| | | onLoad(op) { |
| | | uni.setStorageSync('ywinfo',{}) |
| | | this.id = op.id |
| | | this.type = op.objType |
| | | this.infoStatus = op.info |
| | | this.getDetail() |
| | | }, |
| | | methods: { |
| | | checkAuth(str) { |
| | | const permissions = this.userInfo.permissions || [] |
| | | return permissions.indexOf(str) > -1 |
| | | }, |
| | | // 取消预约 |
| | | cancel() { |
| | | visitsCancel(this.id).then(res => { |
| | | this.cancelShow = false |
| | | this.getDetail() |
| | | }) |
| | | }, |
| | | getDetail() { |
| | | const { id } = this |
| | | getVisitedReDetail({ id }).then(res => { |
| | |
| | | padding-bottom: 0; |
| | | |
| | | .flow_wrap { |
| | | padding: 30rpx 0; |
| | | |
| | | .flow_title { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #222222; |
| | | margin-bottom: 24rpx; |
| | | } |
| | | |
| | | .list { |
| | | .item { |
| | | display: flex; |
| | | margin-bottom: 48rpx; |
| | | position: relative; |
| | | |
| | | .separate { |
| | | position: absolute; |
| | | width: 4rpx; |
| | | height: 100%; |
| | | background-color: #eeeeee; |
| | | left: 40rpx; |
| | | transform: translate(-50%, 0); |
| | | top: 80rpx; |
| | | } |
| | | |
| | | .avatar { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | position: relative; |
| | | margin-right: 20rpx; |
| | | |
| | | .img { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | border-radius: 50%; |
| | | } |
| | | |
| | | .status { |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | right: 0; |
| | | bottom: 0; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | |
| | | .head { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 4rpx; |
| | | |
| | | .event { |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .time { |
| | | font-size: 26rpx; |
| | | color: #999999; |
| | | } |
| | | } |
| | | |
| | | .name_wrap { |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | |
| | | .status { |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | | .children { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin-top: 12rpx; |
| | | |
| | | .child { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | margin-right: 12rpx; |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | .child_img { |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | border-radius: 50%; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .remark { |
| | | margin-top: 12rpx; |
| | | background-color: #f7f7f7; |
| | | padding: 14rpx 20rpx; |
| | | border-radius: 8rpx; |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | line-height: 36rpx; |
| | | } |
| | | } |
| | | |
| | | .carbon { |
| | | display: flex; |
| | | width: 590rpx; |
| | | overflow-x: auto; |
| | | margin-top: 12rpx; |
| | | |
| | | .carbon_item { |
| | | text-align: center; |
| | | flex-shrink: 0; |
| | | width: 100rpx; |
| | | |
| | | image { |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | view { |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | } |
| | | } |
| | | } |
| | | |
| | | &:nth-last-child(1) { |
| | | .separate { |
| | | height: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | padding: 30rpx 0; |
| | | |
| | | .flow_title { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #222222; |
| | | margin-bottom: 24rpx; |
| | | } |
| | | |
| | | .list { |
| | | .item { |
| | | display: flex; |
| | | margin-bottom: 48rpx; |
| | | position: relative; |
| | | |
| | | .separate { |
| | | position: absolute; |
| | | width: 4rpx; |
| | | height: 100%; |
| | | background-color: #eeeeee; |
| | | left: 40rpx; |
| | | transform: translate(-50%, 0); |
| | | top: 80rpx; |
| | | } |
| | | |
| | | .avatar { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | position: relative; |
| | | margin-right: 20rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | .img { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | border-radius: 50%; |
| | | } |
| | | |
| | | .img_name { |
| | | font-size: 32rpx; |
| | | color: #FFFFFF; |
| | | } |
| | | |
| | | .status { |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | right: 0; |
| | | bottom: 0; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | |
| | | .head { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 4rpx; |
| | | |
| | | .event { |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .time { |
| | | font-size: 26rpx; |
| | | color: #999999; |
| | | } |
| | | } |
| | | |
| | | .name_wrap { |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | |
| | | .status { |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | | .children { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin-top: 12rpx; |
| | | |
| | | .child { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | margin-right: 12rpx; |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | |
| | | .child_img { |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | border-radius: 50%; |
| | | margin-bottom: 2rpx; |
| | | } |
| | | |
| | | .child_name { |
| | | margin-bottom: 2rpx; |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | text-align: center; |
| | | justify-content: center; |
| | | padding-top: 4rpx; |
| | | font-size: 28rpx; |
| | | border-radius: 50%; |
| | | color: #FFFFFF; |
| | | background-color: $uni-color-primary; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .remark { |
| | | margin-top: 12rpx; |
| | | background-color: #f7f7f7; |
| | | padding: 14rpx 20rpx; |
| | | border-radius: 8rpx; |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | line-height: 36rpx; |
| | | } |
| | | } |
| | | |
| | | .carbon { |
| | | display: flex; |
| | | width: 590rpx; |
| | | overflow-x: auto; |
| | | margin-top: 12rpx; |
| | | |
| | | .carbon_item { |
| | | text-align: center; |
| | | flex-shrink: 0; |
| | | width: 100rpx; |
| | | |
| | | image { |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | view { |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | } |
| | | } |
| | | } |
| | | |
| | | &:nth-last-child(1) { |
| | | .separate { |
| | | height: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .module_list { |
| | |
| | | background: #ffffff; |
| | | |
| | | .btn { |
| | | width: 336rpx; |
| | | // width: 336rpx; |
| | | flex: 1; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | background: #ffffff; |