From 2d43a1df3f5ba42710e6d21c27d1e13bdb8dfd56 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期一, 24 三月 2025 09:23:08 +0800
Subject: [PATCH] -
---
src/pages/reimbursement/index.vue | 214 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 132 insertions(+), 82 deletions(-)
diff --git a/src/pages/reimbursement/index.vue b/src/pages/reimbursement/index.vue
index 6505065..ccbf3a4 100644
--- a/src/pages/reimbursement/index.vue
+++ b/src/pages/reimbursement/index.vue
@@ -2,61 +2,89 @@
<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="departmentId" required :borderBottom='false' ref="item1">
- <up-input v-model="state.publicJob.departmentName" border="none" placeholder="璇风偣鍑婚�夋嫨閮ㄩ棬"
- readonly></up-input>
- </up-form-item>
- <up-form-item label="濮撳悕" prop="name" required :borderBottom='false' ref="item1">
- <up-input v-model="state.publicJob.name" border="none" placeholder="璇峰~鍐欏鍚�" readonly></up-input>
- </up-form-item>
- <up-form-item label="閲戦" prop="planMoney" required :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" required :borderBottom='false' ref="item1">
- <view class="c-p-b-20">
- <up-textarea v-model="state.publicJob.planContent" border="none" placeholder="璇峰~鍐欐憳瑕�" count
- maxlength='200'></up-textarea>
- </view>
- </up-form-item>
- <up-form-item label="鍙戠エ" prop="houbufapiaoStatus" required :borderBottom='false' ref="item1">
- <u-radio-group v-model="state.publicJob.houbufapiaoStatus" placement="row"
- @change="checkboxChange">
- <u-radio :customStyle="{marginBottom: '8px',marginRight:'8px'}" label="鏈夊彂绁�" name="You"
- usedAlone />
- <u-radio :customStyle="{marginBottom: '8px',marginRight:'8px'}" label="鍊欒ˉ鍙戠エ"
- name="HouBuFaPiao" usedAlone />
- <u-radio :customStyle="{marginBottom: '8px'}" label="娌″彂绁�" name="Wu" usedAlone />
- </u-radio-group>
- </up-form-item>
- <up-form-item label="涓婁紶鍙戠エ" prop="idCardFace" required
- v-if='state.publicJob.houbufapiaoStatus!=="Wu"'>
- <fui-upload immediate :url="`${apiBaseUrl}/api/UpFile/UpdateFile`" ref="uploadF"
- @success="success('Invoice',$event)" @error="errorInvoice"
- @complete="completeInvoice('Invoice',$event)">
- </fui-upload>
- </up-form-item>
- <up-form-item label="涓婁紶闄勪欢" prop="idCardFace">
- <tem-upload-file immediate :url="`${apiBaseUrl}/api/UpFile/UpdateFile`" ref="uploadB"
- @success="success('File',$event)" @error="errorInvoice"
- @complete="completeInvoice('',$event)">
- </tem-upload-file>
- </up-form-item>
+ <view class="c-p-b-134">
+ <view class="content c-p-l-24 c-p-b-24">
+ <up-form-item label="閮ㄩ棬" prop="departmentId" required :borderBottom='false' ref="item1">
+ <up-input v-model="state.publicJob.departmentName" border="none" placeholder="璇风偣鍑婚�夋嫨閮ㄩ棬"
+ readonly></up-input>
+ </up-form-item>
+ <up-form-item label="濮撳悕" prop="name" required :borderBottom='false' ref="item1">
+ <up-input v-model="state.publicJob.name" border="none" placeholder="璇峰~鍐欏鍚�"
+ readonly></up-input>
+ </up-form-item>
+ <up-form-item label="閲戦" prop="planMoney" required :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" required :borderBottom='false' ref="item1">
+ <!-- <view class="c-p-b-20"> -->
+ <up-textarea v-model="state.publicJob.planContent" border="none" height='35'
+ placeholder="璇峰~鍐欐憳瑕�"></up-textarea>
+ <!-- </view> -->
+ </up-form-item>
+ <up-form-item label="鍙戠エ" prop="houbufapiaoStatus" required :borderBottom='false' ref="item1">
+ <u-radio-group v-model="state.publicJob.houbufapiaoStatus" placement="row"
+ @change="checkboxChange">
+ <u-radio :customStyle="{marginBottom: '8px',marginRight:'8px'}" label="鏈夊彂绁�" name="You"
+ usedAlone />
+ <u-radio :customStyle="{marginBottom: '8px',marginRight:'8px'}" label="鍚庤ˉ鍙戠エ"
+ name="HouBuFaPiao" usedAlone />
+ <u-radio :customStyle="{marginBottom: '8px'}" label="娌″彂绁�" name="Wu" usedAlone />
+ </u-radio-group>
+ </up-form-item>
+ <up-form-item label="涓婁紶鍙戠エ" prop="idCardFace" required
+ v-if='state.publicJob.houbufapiaoStatus=="You"'>
+ <tem-upload-file immediate :url="`https://appimchat.oss-cn-chengdu.aliyuncs.com`" ref="uploadF"
+ :formData="state.formData" fileType='all' @success="success('Invoice',$event)"
+ @error="errorInvoice" @complete="completeInvoice('Invoice',$event)">
+ </tem-upload-file>
+ </up-form-item>
+ <up-form-item label="涓婁紶闄勪欢" prop="idCardFace">
+ <tem-upload-file immediate :url="`https://appimchat.oss-cn-chengdu.aliyuncs.com`"
+ ref="uploadB" fileType="all" @success="success('File',$event)" @error="errorInvoice"
+ @complete="completeInvoice('',$event)">
+ </tem-upload-file>
+ </up-form-item>
+ <template v-if="state.publicJob.approvalStatus=='No'">
+ <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">
+ <up-text :text='item.approvalStaff.name'></up-text>
+ <up-text :type="item.approvalStatus=='Yes'?'success':'warning'"
+ :text="item.approvalStatus=='Yes'?'鎵瑰噯':'涓嶆壒鍑�'"></up-text>
+ </view>
+ <view class="chuany-width64">
+ <up-text :text='item.approvalContent'></up-text>
+ </view>
+ </view>
+ <!-- <view class="c-p-t-20">
+ <up-text :type="state.publicJob.approvalStatus=='Yes'?'success':'warning'"
+ :text="state.publicJob.approvalStatus=='Yes'?'鎵瑰噯':'涓嶆壒鍑�'"></up-text>
+ </view> -->
+ </template>
+ </view>
</view>
+
</up-form>
</view>
+
<view class="tabbtns">
<view class="chuany-flex">
- <up-button color='#fece01' class="text-69" :text="'缁х画鎶ラ攢'" :loading='isLoading' :loadingText="'鎻愪氦涓�'"
- @click="saveOrder('continue')"></up-button>
- <up-button color='#fece01' class="text-69" :text="planId?'淇敼鎶ラ攢':'鎻愪氦鎶ラ攢'" :loading='isLoading'
- :loadingText="planId?'淇敼涓�':'鎻愪氦涓�'" @click="saveOrder"></up-button>
+ <up-button type="primary" :text="'淇濆瓨鎶ラ攢'" :loading='isLoading' :loadingText="'淇濆瓨涓�'"
+ @click="saveOrder('Uncommitted')" v-if='state.publicJob.approvalStatus=="Uncommitted"'></up-button>
+ <up-button color='#fece01' v-if="state.publicJob.approvalStatus=='No'" text="閲嶆柊鐢宠" :loading='isLoading'
+ :loadingText="'鐢宠涓�'" @click="saveOrder('unApproval',true)"></up-button>
+ <up-button color='#fece01'
+ v-if="state.publicJob.approvalStatus=='unApproval'||state.publicJob.approvalStatus=='Uncommitted'"
+ :text="state.publicJob.approvalStatus!=='Uncommitted'?'淇敼鎶ラ攢':'鎻愪氦鎶ラ攢'" :loading='isLoading'
+ :loadingText="state.publicJob.approvalStatus!=='Uncommitted'?'淇敼涓�':'鎻愪氦涓�'"
+ @click="saveOrder('unApproval')"></up-button>
+
</view>
</view>
@@ -97,7 +125,7 @@
const store = useStore()
let departList = ref()
let kemuList = ref()
- let defaultIndex = ref([6])
+ let defaultIndex = ref([0])
let planId = ref('')
let state = reactive({
publicJob: {
@@ -109,8 +137,10 @@
planMoney: '', //閲戦
planContent: '', //鎽樿
houbufapiaoStatus: 'You', //鏈夋棤鍙戠エ
- workPlanAttachments: [] //闄勪欢&鍙戠エ
+ workPlanAttachments: [], //闄勪欢&鍙戠エ
+ approvalStatus: 'Uncommitted'
},
+ formData: {}
})
onLoad((options) => {
let data = $db.get('userInfo').userCompany
@@ -127,8 +157,14 @@
// })
// defaultIndex = [index]
// })
+
$api.getKeMuList().then(res => {
kemuList = [res.data]
+ let obj = kemuList[0].find(item => {
+ return item.subjectName == '宸梾璐�'
+ })
+ state.publicJob.rewardResult = String(obj.keyid)
+ state.publicJob.rewardContent = obj.subjectName
dataPlan(planId.value)
})
})
@@ -205,7 +241,9 @@
planMoney: String(res.data.planMoney), //閲戦
planContent: res.data.planContent, //鎽樿
houbufapiaoStatus: res.data.houbufapiaoStatus, //鏈夋棤鍙戠エ
- workPlanAttachments: res.data.workPlanAttachments //闄勪欢&鍙戠エ
+ workPlanAttachments: res.data.workPlanAttachments, //闄勪欢&鍙戠エ
+ approvalStatus: res.data.approvalStatus,
+ oaWorkPlanShenpis: res.data.oaWorkPlanShenpis
}
state.publicJob.workPlanAttachments.forEach(item => {
if (item.attachmentType == 1) {
@@ -253,7 +291,7 @@
const checkboxChange = () => {
}
- const saveOrder = (val) => {
+ const saveOrder = (val, flag) => {
if (state.publicJob.houbufapiaoStatus == "You") {
let index = state.publicJob.workPlanAttachments.findIndex(item => {
return item.attachmentType == 1
@@ -269,41 +307,47 @@
formRef.value.validate().then(res => {
isLoading.value = true
let functionOrder = null
- if (planId.value) {
+ if (planId.value && !flag) {
functionOrder = $api.EditOder
} else {
functionOrder = $api.CreatOder
}
+ let oldStatus = state.publicJob.approvalStatus
+ val ? state.publicJob.approvalStatus = val : ''
functionOrder(state.publicJob).then(res => {
if (res.code == 1) {
- if (editItem) {
- uni.navigateBack()
- } else if (val == 'continue') {
- state.publicJob = {
- departmentId: $db.get('userInfo').oaPermissions.departId, //閮ㄩ棬Id
- departmentName: $db.get('userInfo').oaPermissions.departmentName,
- name: $db.get('userInfo').oaPermissions.name, //濮撳悕
- rewardResult: '', //绉戠洰id
- rewardContent: '', //绉戠洰鍚嶇О
- planMoney: '', //閲戦
- planContent: '', //鎽樿
- houbufapiaoStatus: 'You', //鏈夋棤鍙戠エ
- workPlanAttachments: [], //闄勪欢&鍙戠エ
- }
- uploadB.value.urls = []
- uploadB.value.status = []
- uploadF.value.urls = []
- uploadF.value.status = []
- } else {
- uni.navigateTo({
- url: '/pages/reimbursement/myreim'
- })
- }
$util.showToast({
- title: editItem ? '淇敼鎴愬姛锛�' : "淇濆瓨鎴愬姛锛�",
+ title: state.publicJob.approvalStatus == 'Uncommitted' ? '淇濆瓨鎴愬姛锛�' :
+ "鎻愪氦鎴愬姛锛�",
icon: "success"
})
+ // if (editItem) {
+ // uni.navigateBack()
+ // } else if (val == 'continue') {
+ state.publicJob = {
+ departmentId: $db.get('userInfo').oaPermissions.departId, //閮ㄩ棬Id
+ departmentName: $db.get('userInfo').oaPermissions.departmentName,
+ name: $db.get('userInfo').oaPermissions.name, //濮撳悕
+ rewardResult: '', //绉戠洰id
+ rewardContent: '', //绉戠洰鍚嶇О
+ planMoney: '', //閲戦
+ planContent: '', //鎽樿
+ houbufapiaoStatus: 'You', //鏈夋棤鍙戠エ
+ workPlanAttachments: [], //闄勪欢&鍙戠エ
+ approvalStatus: 'Uncommitted',
+ }
+ uploadB.value.urls = []
+ uploadB.value.status = []
+ uploadF.value.urls = []
+ uploadF.value.status = []
+ // } else {
+ // uni.redirectTo({
+ // url: '/pages/reimbursement/myreim'
+ // })
+ // }
+
} else {
+ state.publicJob.approvalStatus = oldStatus
$util.showToast({
title: res.error
})
@@ -340,8 +384,10 @@
let obj = {}
//e.res 涓烘湇鍔″櫒杩斿洖鏁版嵁
//涓婁紶鎴愬姛鍥炶皟锛屽鐞嗘湇鍔″櫒杩斿洖鏁版嵁銆愭澶勬牴鎹疄闄呰繑鍥炴暟鎹繘琛屽鐞嗐��
- let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}")
- if (res.code == 1) {
+ let res = e.res
+ console.log(res);
+ // let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}")
+ if (res.statusCode == 200) {
if (res.data && text == 'Invoice') {
obj.attachmentType = 1
obj.planAttachment = res.data //鍙戠エ
@@ -351,6 +397,7 @@
})
uploadF.value.status.push('success')
uploadF.value.status.length = uploadF.value.urls.length
+ console.log(uploadF.value.status);
} else {
obj.attachmentType = 2
obj.planAttachment = res.data //闄勪欢
@@ -360,8 +407,10 @@
})
uploadB.value.status.push('success')
uploadB.value.status.length = uploadB.value.urls.length
+ console.log(uploadB.value.status);
}
state.publicJob.workPlanAttachments.push(obj)
+ console.log(state.publicJob.workPlanAttachments);
} else {
uni.$u.toast(res.error)
if (text == 'Invoice') {
@@ -388,9 +437,10 @@
background-color: #fff;
}
- .u-textarea {
+ .up-textarea {
padding: 0 !important;
}
+
.u-form-item__body {
padding: 5px 0 !important;
}
--
Gitblit v1.9.1