From e3f6581c48b1dfb65c55e8a1a6ce1761a7dc26b4 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期四, 16 一月 2025 15:29:43 +0800 Subject: [PATCH] 费用报销 --- src/pages/checkin/checkin.vue | 274 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 269 insertions(+), 5 deletions(-) diff --git a/src/pages/checkin/checkin.vue b/src/pages/checkin/checkin.vue index 8183fd0..cd28503 100644 --- a/src/pages/checkin/checkin.vue +++ b/src/pages/checkin/checkin.vue @@ -1,22 +1,286 @@ <template> <view> - + <view class='chuany-flex camera-fill chuany-justify-center chuany-align-center'> + <tem-upload-fui immediate :url="`${apiBaseUrl}/api/UpFile/UpdateFile`" ref="uploadE" max='1' + @success="success" cameraType='back' :sizeType='sizeType' :sourceType='sourceType' @error="error" + @complete="complete" width="280" :mediaType='mediaType' height="280"> + <view class="" v-if="checkPhoto"> + <image :src="checkPhoto" mode="aspectFill" style="width: 280rpx;height: 280rpx;"> + </image> + </view> + <view class=" chuany-flex chuany-flex-direction chuany-align-center" v-else> + <fui-icon name="camera-fill"></fui-icon> + <view class="chuany-font20">鎷嶆憚鐜鐓х墖</view> + </view> + </tem-upload-fui> + <tem-upload-fui ref="uploadP" max='1' @error="error" @complete="completePerson" width="280" height="280" + :sizeType='sizeType' :sourceType='sourceType' :mediaType='mediaType' :isFace='true'> + <view class="" v-if="faceImg"> + <image :src="faceImg" mode="aspectFill" style="width: 280rpx;height: 280rpx;"></image> + </view> + <view class=" chuany-flex chuany-flex-direction chuany-align-center" v-else> + <fui-icon name="addfriends-fill"></fui-icon> + <view class="chuany-font20">鎷嶆憚浜鸿劯鐓х墖</view> + </view> + </tem-upload-fui> + + <!-- <view class="fui-upload__item fui-upload__noborder" + style="width:280rpx;height:280rpx;background:#eee;" @tap.stop="openCamera"> + <view class="" v-if="faceImg"> + <image :src="faceImg" mode="aspectFill" style="width: 280rpx;height: 280rpx;"></image> + </view> + <view class=" chuany-flex chuany-flex-direction chuany-align-center" v-else> + <fui-icon name="addfriends-fill"></fui-icon> + <view class="chuany-font20">鎷嶆憚浜鸿劯鐓х墖</view> + </view> + </view> --> + </view> + <view class="c-m-20 chuany-font24"> + 涓轰簡淇濊瘉鎵撳崱鐨勬纭�э紝鈥屽缓璁湪鍏徃闂ㄥ彛鎴栬繘鍏ュ姙鍏鐨勯棬鍙e啀鎵撳崱銆傗�屽悓鏃讹紝鈥岀‘淇濈収鐗囩殑娓呮櫚銆佲�屾槑浜紝鈥岄潰閮ㄥ彲瑙併�� + </view> + <view v-if='dakaList&&dakaList.length>0'> + <view class="chuany-flex chuany-justify-evenly chuany-flex-wrap c-p-t-20"> + <view + class="chuany-flex chuany-flex-direction chuany-align-center chuany-justify-around textclo chuany-font24 c-p-b-30 daka" + :key="index" v-for="(item,index) in dakaList"> + <up-avatar shape="square" size="56" :src="item.checkPhoto" + @click="previewImage(item.checkPhoto)"></up-avatar> + <view class="step_item"> + <up-icon name="checkmark-circle-fill" :color="item.checktime?'#2979ff':'#e9e8e8'" + size="22"></up-icon> + <view class="line" :class="item.checkPhoto?'line-active':''" + v-if="index!==dakaList.length-1&&index%2==0"> + </view> + </view> + <text>{{item.checktime?'宸叉墦鍗�':'鏈墦鍗�'}}</text> + <text + :class="$util.formatDate(item.checktime,true)=='-'?'core-opa':''">{{$util.formatDate(item.checktime,true)}}</text> + </view> + </view> + </view> + <view class="tabbtns"> + <up-button color='#fece01' class="text-69" text="纭鎵撳崱" :loading='isLoading' loadingText="鎵撳崱涓�" + @click="enroll"></up-button> + </view> </view> </template> <script> + import { + apiBaseUrl + } from '@/common/setting/constVarsHelper.js'; export default { data() { return { - + src: '', + apiBaseUrl, + orderBiddingId: '', //鎷涘伐鏄庣粏OrderBiddingId + checkPhoto: '', //鎵撳崱鐓х墖 + faceImg: '', //浜鸿劯鍥剧墖 + dakaList: [], + sourceType: ["camera"], + sizeType: ['compressed'], + mediaType: ['image'], + isLoading: false } }, + onLoad(option) { + this.apiBaseUrl = apiBaseUrl + let id = option.orderid + this.orderBiddingId = id + this.getDaka(id) + }, + onShow(){ + if(this.$db.get('faceImg')){ + let faceImgPath = this.$db.get('faceImg') + this.$refs.uploadP.urls = [faceImgPath] + this.$refs.uploadP.status = ['success'] + this.$util.pathToBase64(faceImgPath).then(res => { + this.faceImg = res + }) + } + }, + onUnload(){ + this.$db.del('faceImg') + }, methods: { - + getDaka(id) { + this.$api.getDaka({ + orderId: id + }).then(res => { + if (res.code == 1) { + this.dakaList = res.data ? res.data.orderBiddingDetailCheck : [] + if (this.dakaList.length > 6) { + this.dakaList.length = 6 + } + if (this.dakaList.length % 2 !== 0) { + this.dakaList.push({}) + } + } else { + this.$util.showToast({ + title: res.error + }) + } + }) + }, + openCamera() { + // 鎷嶇収鍜岀浉鍐� + // uni.chooseMedia({ + // count: 1, + // mediaType: ['image'], + // sizeType: ["compressed"], + // sourceType: ["camera"], + // camera: 'front', + // success: (res) => { + // const { + // tempFiles + // } = res; + // this.$util.pathToBase64(tempFiles[0].tempFilePath).then(res => { + // this.faceImg = res + // }) + // }, + // }); + + }, + + success(e) { + //e.res 涓烘湇鍔″櫒杩斿洖鏁版嵁 + //涓婁紶鎴愬姛鍥炶皟锛屽鐞嗘湇鍔″櫒杩斿洖鏁版嵁銆愭澶勬牴鎹疄闄呰繑鍥炴暟鎹繘琛屽鐞嗐�� + let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}") + if (res.data) { + this.checkPhoto = res.data //鎵撳崱鐓х墖 + //浜鸿劯鍥剧墖 + // enterpriseInfo.businessLicense = res.data.url + // enterpriseInfo.suppliername = res.data.info.name //浼佷笟鍚嶇О + // enterpriseInfo.regtime = res.data.info.setDate //娉ㄥ唽鏃堕棿 + // enterpriseInfo.address = res.data.info.address //鑱旂郴鍦板潃 + // enterpriseInfo.suppliercode = res.data.info.regNum //浼佷笟娉ㄥ唽鍙� + // enterpriseInfo.contact = res.data.info.person //鑱旂郴浜� + } + }, + error() { + + }, + complete(e) { + if (e.action == 'delete') { + // 鍒犻櫎澶勭悊 + } + console.log(e, '鍒犻櫎') + }, + completePerson(e) { + if (e.action == 'delete') { + this.faceImg = '' + this.$db.del('faceImg') + // 鍒犻櫎澶勭悊 + return + } + this.$util.pathToBase64(e.urls[0]).then(res => { + this.faceImg = res + }) + }, + previewImage(url) { + uni.previewImage({ + urls: [url] + }) + }, + enroll() { + if (!this.checkPhoto) { + this.$util.showToast({ + title: "璇锋媿鎽勭幆澧冪収鐗囷紒", + icon: "error" + }) + return + } + if (!this.faceImg) { + this.$util.showToast({ + title: "璇锋媿鎽勪汉鑴哥収鐗囷紒", + icon: "error" + }) + return + } + this.isLoading = true + let obj = { + OrderId: this.orderBiddingId, //鎷涘伐鏄庣粏OrderBiddingId + checkPhoto: this.checkPhoto, //鎵撳崱鐓х墖 + faceImg: this.faceImg, + } + this.$api.saveDaka(obj).then(res => { + if (res.code == 1) { + this.$util.showToast({ + title: "鎵撳崱鎴愬姛锛�", + icon: "success" + }) + this.checkPhoto = '' //鎵撳崱鐓х墖 + this.faceImg = '' + this.$db.del('faceImg') + this.$refs.uploadP.deleteImage() + this.$refs.uploadE.deleteImage() + this.getDaka(this.orderBiddingId) + } else { + this.$util.showToast({ + title: res.error, + }) + } + this.isLoading = false + }) + } } } </script> -<style> +<style lang="scss"> + .fui-upload__item { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + align-items: center; + justify-content: center; + margin-right: 20rpx; + margin-bottom: 20rpx; + /* #ifdef H5 */ + cursor: pointer; + /* #endif */ + position: relative; -</style> + /* #ifndef APP-NVUE */ + box-sizing: border-box; + /* #endif */ + } + + .fui-upload__noborder { + border-width: 0; + } + + .camera-fill { + // width: 400rpx; + // height: 400rpx; + margin: 20rpx auto; + border-radius: 20rpx; + } + + .daka { + width: 260rpx; + height: 230rpx; + } + + .step_item { + position: relative; + /* width: 144rpx; */ + display: flex; + + .line { + position: absolute; + top: 17rpx; + left: 35rpx; + content: ""; + height: 4rpx; + width: 310rpx; + background-color: #e9e8e8; + z-index: -1; + } + + .line-active { + background-color: #2979ff; + } + } +</style> \ No newline at end of file -- Gitblit v1.9.1