From 16213c0f85aa3ac8317797bf4a05fd12940e16d3 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 05 三月 2025 17:29:42 +0800 Subject: [PATCH] - --- src/pages/reimbursement/approve.vue | 199 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 145 insertions(+), 54 deletions(-) diff --git a/src/pages/reimbursement/approve.vue b/src/pages/reimbursement/approve.vue index 9533509..ea5b9a8 100644 --- a/src/pages/reimbursement/approve.vue +++ b/src/pages/reimbursement/approve.vue @@ -2,68 +2,105 @@ <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> + <template v-if="state.publicJob.approvalStatus !== 'unApproval'"> + <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,11 +147,17 @@ 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 formRef = ref(null); @@ -151,6 +194,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 +206,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 +226,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,4 +266,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