From ec90cbd7680a6f927cb1cea43f33ab7df6d0864c Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期二, 11 十一月 2025 09:23:22 +0800
Subject: [PATCH] -
---
src/pages/reimbursement/approve.vue | 205 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 150 insertions(+), 55 deletions(-)
diff --git a/src/pages/reimbursement/approve.vue b/src/pages/reimbursement/approve.vue
index b877350..8cb2eaf 100644
--- a/src/pages/reimbursement/approve.vue
+++ b/src/pages/reimbursement/approve.vue
@@ -2,68 +2,106 @@
<view class="full-page ">
<view class="list">
<up-form labelPosition="left" :model="state.publicJob" ref="formRef" labelWidth='140rpx'>
- <view class="content c-p-l-24 c-p-b-120">
- <up-form-item label="鐢宠鏃ユ湡" prop="planStartTime" :borderBottom='false' ref="item1">
- <up-input v-model="state.publicJob.planStartTime" border="none" placeholder="璇风偣鍑婚�夋嫨閮ㄩ棬"
- readonly></up-input>
- </up-form-item>
- <up-form-item label="閮ㄩ棬" prop="departmentId" :borderBottom='false' ref="item1">
- <up-input v-model="state.publicJob.depart.name" border="none" placeholder="璇风偣鍑婚�夋嫨閮ㄩ棬"
- readonly></up-input>
- </up-form-item>
- <up-form-item label="濮撳悕" prop="name" :borderBottom='false' ref="item1">
- <up-input v-model="state.publicJob.planPeople" border="none" placeholder="璇峰~鍐欏鍚�"
- readonly></up-input>
- </up-form-item>
- <up-form-item label="璇风ず绫诲埆" prop="name" :borderBottom='false' ref="item1">
- <up-input v-model="leibie" border="none" placeholder="璇峰~鍐欏鍚�" readonly></up-input>
- </up-form-item>
- <up-form-item label="閲戦" prop="planMoney" :borderBottom='false' ref="item1">
- <up-input v-model="state.publicJob.planMoney" border="none" placeholder="璇峰~鍐欓噾棰�"
- type="digit"></up-input>
- </up-form-item>
- <up-form-item label="绉戠洰" prop="rewardContent" :borderBottom='false' ref="item1">
- <up-input v-model="state.publicJob.rewardContent" border="none" placeholder="璇风偣鍑婚�夋嫨绉戠洰"
- readonly></up-input>
- </up-form-item>
- <up-form-item label="鎽樿" prop="planContent" :borderBottom='false' ref="item1">
- <view class="c-p-b-20">
- <up-textarea v-model="state.publicJob.planContent" border="none" readonly
+ <view class="c-p-b-134">
+ <view class="content c-p-l-24 c-p-b-24">
+ <up-form-item label="鐢宠鏃ユ湡" prop="planStartTime" :borderBottom='false' ref="item1">
+ <up-input v-model="state.publicJob.planStartTime" border="none" placeholder="璇风偣鍑婚�夋嫨鏃ユ湡"
+ readonly></up-input>
+ </up-form-item>
+ <up-form-item label="閮ㄩ棬" prop="departmentId" :borderBottom='false' ref="item1">
+ <up-input v-model="state.publicJob.depart.name" border="none" placeholder="璇风偣鍑婚�夋嫨閮ㄩ棬"
+ readonly></up-input>
+ </up-form-item>
+ <up-form-item label="濮撳悕" prop="name" :borderBottom='false' ref="item1">
+ <up-input v-model="state.publicJob.planPeople" border="none" placeholder="璇峰~鍐欏鍚�"
+ readonly></up-input>
+ </up-form-item>
+ <up-form-item label="璇风ず绫诲埆" prop="name" :borderBottom='false' ref="item1">
+ <up-input v-model="leibie" border="none" placeholder="璇峰~鍐欏鍚�" readonly></up-input>
+ </up-form-item>
+ <up-form-item label="閲戦" prop="planMoney" :borderBottom='false' ref="item1">
+ <up-input v-model="state.publicJob.planMoney" border="none" placeholder="璇峰~鍐欓噾棰�"
+ type="digit"></up-input>
+ </up-form-item>
+ <up-form-item label="绉戠洰" prop="rewardContent" required :borderBottom='false' ref="item1"
+ @click='openKemuPicker'>
+ <up-input v-model="state.publicJob.rewardContent" border="none" placeholder="璇风偣鍑婚�夋嫨绉戠洰"
+ readonly></up-input>
+ </up-form-item>
+ <up-form-item label="鎽樿" prop="planContent" :borderBottom='false' ref="item1">
+ <!-- <view class="c-p-b-20"> -->
+ <up-textarea v-model="state.publicJob.planContent" border="none" autoHeight
placeholder="璇峰~鍐欐憳瑕�"></up-textarea>
- </view>
- </up-form-item>
- <up-form-item label="鍙戠エ" prop="idCardFace" v-if='state.publicJob.houbufapiaoStatus!=="Wu"'>
- <view class="" v-if="state.invoice&&state.invoice.length>0">
- <image class="fui-upload__img" v-for="(item,index) in state.invoice"
- :style="{width:200+'rpx',height:200+'rpx'}" :key="item.keyid" :src="item"
- mode="aspectFill" @tap.stop="previewImage(index,'invoice')"></image>
- </view>
- <view class="" v-else>
- 鏈笂浼犲彂绁�
- </view>
- </up-form-item>
- <up-form-item label="闄勪欢" prop="idCardFace">
- <view class="" v-if="state.file&&state.file.length>0">
- <image class="fui-upload__img" v-for="(item,index) in state.file"
- :style="{width:200+'rpx',height:200+'rpx'}" :key="item.keyid" :src="item"
- mode="aspectFill" @tap.stop="previewImage(index)"></image>
- </view>
- <view class="" v-else>
- 鏈笂浼犻檮浠�
- </view>
- </up-form-item>
+ <!-- </view> -->
+ </up-form-item>
+ <up-form-item label="瀹℃壒鎰忚" prop="approvalContent" :borderBottom='false' ref="item1"
+ v-if="state.publicJob.approvalStatus == 'unApproval'">
+ <!-- <view class="c-p-b-20"> -->
+ <up-textarea v-model="state.publicJob.approvalContent" border="none" autoHeight
+ placeholder="璇峰~鍐欏鎵规剰瑙�"></up-textarea>
+ <!-- </view> -->
+ </up-form-item>
+ <up-form-item label="鍙戠エ" prop="idCardFace" v-if='state.publicJob.houbufapiaoStatus!=="Wu"'>
+ <view class="fui-upload__wrap" v-if="state.invoice&&state.invoice.length>0">
+ <view class="fui-upload__item" v-for="(item,index) in state.invoice" :key="item.keyid">
+ <u-tag :text="item.match(/\/([^\/]*)$/)[1]" size="mini"
+ @click="$util.previewWechat(item)"
+ v-if="$util.checkFileExtensions(item)"></u-tag>
+ <image class="fui-upload__img" :style="{width:200+'rpx',height:200+'rpx'}" v-else
+ :src="item" mode="aspectFill" @tap.stop="previewImage(index,'invoice')"></image>
+ </view>
+ </view>
+ <view class="" v-else>
+ {{state.publicJob.houbufapiaoStatus=="Wu"?'鏃犲彂绁�':null}}
+ </view>
+ </up-form-item>
+ <up-form-item label="闄勪欢" prop="idCardFace">
+ <view class="fui-upload__wrap" v-if="state.file&&state.file.length>0">
+ <view class="fui-upload__item" v-for="(item,index) in state.file" :key="item.keyid">
+ <u-tag :text="item.match(/\/([^\/]*)$/)[1]" size="mini"
+ @click="$util.previewWechat(item)"
+ v-if="$util.checkFileExtensions(item)"></u-tag>
+ <image class="fui-upload__img" v-else :style="{width:200+'rpx',height:200+'rpx'}"
+ :src="item" mode="aspectFill" @tap.stop="previewImage(index)"></image>
+ </view>
+ </view>
+ <view class="" v-else>
+ 鏈笂浼犻檮浠�
+ </view>
+ </up-form-item>
+ <!-- v-if="state.publicJob.approvalStatus !== 'unApproval'" -->
+ <template v-if="isShow">
+ <view v-for="(item,index) in state.publicJob.oaWorkPlanShenpis" :key="item.index"
+ class="chuany-flex c-p-t-20">
+ <view class="chuany-flex chuany-width36">
+ <u-text :text='item.approvalStaff.name'></u-text>
+ <u--text :type="item.approvalStatus=='Yes'?'success':'warning'"
+ :text="item.approvalStatus=='Yes'?'鎵瑰噯':'涓嶆壒鍑�'"></u--text>
+ </view>
+ <view class="chuany-width64">
+ <u-text :text='item.approvalContent'></u-text>
+ </view>
+ </view>
+ <!-- <view class="c-p-t-20">
+ <u--text :type="state.publicJob.approvalStatus=='Yes'?'success':'warning'"
+ :text="state.publicJob.approvalStatus=='Yes'?'鎵瑰噯':'涓嶆壒鍑�'"></u--text>
+ </view> -->
+ </template>
+ </view>
</view>
</up-form>
</view>
- <view class="tabbtns">
+ <view class="tabbtns" v-if="state.publicJob.approvalStatus == 'unApproval'">
<view class="chuany-flex">
- <up-button type='success' class="text-69" :text="'鎵瑰噯'" :loading='isLoading' :loadingText="'鎵瑰噯涓�'"
+ <up-button type='success' :text="'鎵瑰噯'" :loading='isLoading' :loadingText="'鎵瑰噯涓�'"
@click="saveOrder('Yes')"></up-button>
- <up-button color='#fece01' class="text-69" :text="'涓嶆壒鍑�'" :loading='isLoading' :loadingText="'鎻愪氦涓�'"
+ <up-button color='#fece01' :text="'涓嶆壒鍑�'" :loading='isLoading' :loadingText="'鎻愪氦涓�'"
@click="saveOrder('No')"></up-button>
</view>
</view>
+ <u-picker :show="kemuPicker" :columns="kemuList" keyName="subjectName" @cancel='openKemuPicker'
+ :defaultIndex='defaultIndex' @confirm='confirmKemuPicker'></u-picker>
</view>
</template>
@@ -110,13 +148,25 @@
invoice: [],
file: []
})
+ let defaultIndex = ref([0])
+ let kemuList = ref()
+ let kemuPicker = ref(false)
onLoad((options) => {
let data = $db.get('userInfo').userCompany
role.value = options.role
detailId.value = options.detailId
- getRolePlaneList()
+ $api.getKeMuList().then(res => {
+ kemuList = [res.data]
+ getRolePlaneList()
+ })
})
-
+ const isShow = computed(()=>{
+ if (role.value == 'zhuGuan') {
+ return state.publicJob.approvalStatus !== 'unApproval'
+ } else {
+ return state.publicJob.oaWorkPlanShenpis&&state.publicJob.oaWorkPlanShenpis.length>0
+ }
+ })
const formRef = ref(null);
onReady(() => {})
onShow(() => {})
@@ -151,6 +201,10 @@
getList(detailId.value).then(res => {
state.publicJob = res.data
state.publicJob.planStartTime = $util.formatDate(state.publicJob.planStartTime)
+ let index = kemuList[0].findIndex(item => {
+ return item.keyid == state.publicJob.rewardResult
+ })
+ defaultIndex = [index]
state.publicJob.workPlanAttachments.forEach(item => {
if (item.attachmentType == 1) {
state.invoice.push(item.planAttachment)
@@ -159,6 +213,15 @@
}
})
})
+ }
+ const confirmKemuPicker = (arr) => {
+ console.log('----', arr);
+ state.publicJob.rewardResult = String(arr.value[0].keyid)
+ state.publicJob.rewardContent = arr.value[0].subjectName
+ openKemuPicker()
+ }
+ const openKemuPicker = () => {
+ kemuPicker.value = !kemuPicker.value
}
const saveOrder = (approvalStatus) => {
isLoading.value = true
@@ -170,7 +233,11 @@
}
let obj = {
oA_WorkPlanId: state.publicJob.keyid,
- approvalStatus
+ approvalStatus,
+ rewardResult: state.publicJob.rewardResult,
+ planContent: state.publicJob.planContent,
+ planMoney: state.publicJob.planMoney,
+ approvalContent: state.publicJob.approvalContent
}
functionOrder(obj).then(res => {
if (res.code == 1) {
@@ -206,7 +273,35 @@
.u-textarea {
padding: 0 !important;
}
+
.u-form-item__body {
padding: 5px 0 !important;
}
+
+ .fui-upload__wrap {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ flex-direction: row;
+ flex-wrap: wrap;
+ }
+
+ .fui-upload__item {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ align-items: center;
+ justify-content: center;
+ /* margin-right: 20rpx; */
+ margin: 10rpx 10rpx 10rpx 0;
+ /* margin-bottom: 20rpx; */
+ /* #ifdef H5 */
+ cursor: pointer;
+ /* #endif */
+ position: relative;
+
+ /* #ifndef APP-NVUE */
+ box-sizing: border-box;
+ /* #endif */
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.1