From aaa8b1b2fca572d6a989179d568991ce4bd48cfb Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期二, 04 三月 2025 17:30:32 +0800
Subject: [PATCH] -

---
 src/pages/reimbursement/index.vue |  217 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 135 insertions(+), 82 deletions(-)

diff --git a/src/pages/reimbursement/index.vue b/src/pages/reimbursement/index.vue
index d077a0c..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,7 +437,11 @@
 		background-color: #fff;
 	}
 
-	.u-textarea {
+	.up-textarea {
 		padding: 0 !important;
 	}
+
+	.u-form-item__body {
+		padding: 5px 0 !important;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.1