From 5f8cd55f32939d15c6224d491f89743421cab0f9 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Mon, 20 Nov 2023 13:12:42 +0800
Subject: [PATCH] fix:分享修改

---
 pages/actionChange/workOrderDetails/index.vue |  263 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 182 insertions(+), 81 deletions(-)

diff --git a/pages/actionChange/workOrderDetails/index.vue b/pages/actionChange/workOrderDetails/index.vue
index 1e79165..6071eca 100644
--- a/pages/actionChange/workOrderDetails/index.vue
+++ b/pages/actionChange/workOrderDetails/index.vue
@@ -1,93 +1,185 @@
 <template>
 	<view class="mainContent">
-		<basicInfor :basic-infor="basicInfor" />
-		<rectificationInfor ref="rectificationInfor" :basic-infor="basicInfor" />
-		<approvalnfor ref="approvalnfor" v-if="basicInfor.state >= 30" :basic-infor="basicInfor" />
-		<view class="bunts">
-			<u-button shape="square" @click="close">������</u-button>
-			<u-button
-				v-if="pageState==='edit'"
-				shape="square"
-				type="primary"
-				@click="submit"
-			>
-				������
-			</u-button>
+		<u-sticky>
+			<u-alert v-if="basicInfor.invalidReason" :title="`���������:${basicInfor.invalidReason}`" type="warning"
+				:description="description"></u-alert>
+		</u-sticky>
+		<basicInfor :basic-infor="basicInfor" v-if="basicInfor.unitId" />
+		<rectificationInfor ref="rectificationInfor" :basic-infor="basicInfor"
+			v-if="!(pageState === 'view' && basicInfor.state === 20)&&isShow" />
+		<approvalnfor ref="approvalnfor" v-if="basicInfor.state >= 30 && basicInfor.stateName!=='���������' && isShow"
+			:basic-infor="basicInfor" />
+		<view class="bunts" v-if="isShow">
+			<view class="but butRight">
+				<u-button shape="square" @click="refuse" type="error"
+					v-if="pageState==='edit'&& basicInfor.state >= 30">������</u-button>
+				<u-button shape=" square" @click="close" v-else>������</u-button>
+			</view>
+			<view class="but butleft" v-if="pageState==='edit'">
+				<u-button shape="square" type="primary" @click="submit"> ������ </u-button>
+			</view>
 		</view>
+		<u-overlay :show="show" :mask-click-able='false' opacity='0.8'>
+		</u-overlay>
 	</view>
 </template>
 <script>
-import basicInfor from '../components/basicInfor.vue'
-import rectificationInfor from '../components/rectificationInfor.vue'
-import approvalnfor from '../components/approvalnfor.vue'
-export default {
-	components: {
-		basicInfor,
-		rectificationInfor,
-		approvalnfor,
-	},
-	data() {
-		return {
-			basicInfor: {}
-		}
-	},
-	computed: {
-		pageState() {
-			return this.basicInfor.pageState
-		}
-	},
-	onLoad: function(option) {
-		console.log('option', option)
-		//option���object������������������������������������������������
-		this.basicInfor = JSON.parse(option.infor)
-
-	},
-	onBackPress(e) {
-		uni.navigateTo({
-			url: '/pages/actionChange/agencyPage/index',
-		})
-		return false
-	},
-	methods: {
-		radioGroupChange(e) {
-			console.log('radioGroupe���e', this.workForme.isChange)
+	import basicInfor from '../components/basicInfor.vue'
+	import rectificationInfor from '../components/rectificationInfor.vue'
+	import approvalnfor from '../components/approvalnfor.vue'
+	export default {
+		components: {
+			basicInfor,
+			rectificationInfor,
+			approvalnfor,
 		},
-		close() {
-			let pages = getCurrentPages() // ������������
-			let beforePage = pages[pages.length - 3] // ������������
-			//beforePage.$vm.reFresh = Math.random()//������������������������
-			uni.navigateBack({
-				delta: 1, //������������������������������������������2
-				success: function() {
-					// beforePage.$vm.reFresh()
+		data() {
+			return {
+				basicInfor: {},
+				unitListL: [],
+				userInfor: null,
+				show: true,
+				isShow: false,
+				option: {}
+			}
+		},
+		computed: {
+			pageState() {
+				return this.basicInfor.pageState
+			},
+		},
+		created() {},
+		onLoad(option) {
+			//option���object������������������������������������������������
+			this.basicInfor = JSON.parse(option.infor)
+			// let type = JSON.parse(option.type)
+			console.log('option', option)
+			this.option = option
+		},
+		async mounted() {
+			await this.$onLaunched
+			//������������������ 
+			this.userInfor = JSON.parse(uni.getStorageSync('userInfor') || 'null')
+			console.log('������������������������', this.userInfor)
+			if (this.option.type === 'share' && this.userInfor) {
+				let params = {
+					allocationNum: this.basicInfor.allocationNum,
+					userId: this.userInfor.userId
 				}
-			})
-		},
-		submit() {
-			Promise.all([this.$refs.rectificationInfor && this.$refs.rectificationInfor.formVali(), this.$refs
-				.approvalnfor && this.$refs.approvalnfor.formVali()
-			]) //
-				.then(()=> {
-					let api = this.basicInfor.state >= 30 ? '/allocation/check' : '/allocation/change' //������
-					let form = this.basicInfor.state >=30 ? this.$refs.approvalnfor.form : this.$refs.rectificationInfor.form
-					let data = {
-						allocationId: this.basicInfor.allocationId,
-						...form,
-						state: this.basicInfor.state,
+				this.$http.httpGet('/allocationApp/authority', params).then(res => {
+					console.log('������������������', res)
+					if (res.data.code === 3) {
+						uni.showModal({
+							content: '���������������������������������������������',
+							showCancel: false,
+							confirmText: '������',
+							success: res => {
+								if (res.confirm) {
+									uni.reLaunch({
+										url: '/pages/index/index',
+									})
+								}
+							},
+						})
+					} else if (res.data.code === 1) {
+						// ������������
+						this.basicInfor.pageState = 'edit'
+						this.basicInfor.stateName = res.data.name
+						this.getData()
+					} else if (res.data.code === 2) {
+						// ���������
+						this.basicInfor.pageState = 'view'
+						this.basicInfor.stateName = res.data.name
+						this.getData()
 					}
-					this.$http.httpPost(api, data).then((res)=> {
-						this.close()
+				}).catch(errors => {
+					console.log('���������������������', errors)
+					console.log('���������������������params', params)
+				})
+			} else {
+				this.isShow = true
+				this.getData()
+			}
+		},
+		methods: {
+			getData() {
+				this.$http.httpGet('/allocation/detail', {
+					id: this.basicInfor.allocationId
+				}).then(res => {
+					this.basicInfor = {
+						...this.basicInfor,
+						...res.data
+					}
+					console.log('this.basicInfor123', this.basicInfor)
+					let time = this.basicInfor.time.slice(5)
+					this.share.title = `${this.basicInfor.unitName}-${time}������������`
+					this.show = false
+					this.isShow = true
+				})
+			},
+			radioGroupChange(e) {
+				console.log('radioGroupe���e', this.workForme.isChange)
+			},
+			close() {
+				uni.$emit('currIndex', {
+					data: {
+						index: '0',
+						showTabBar: true
+					}
+				})
+				if (this.option.type === 'share') {
+					uni.redirectTo({
+						url: '/pages/index/index',
 					})
-				})
-				.catch(err=> {
-					console.log('���������������������', err)
-				})
-
-		}
-	},
-}
+				} else {
+					uni.navigateBack({
+						delta: 1, //������������������������������������������2
+					})
+				}
+			},
+			refuse() {
+				Promise.all([this.$refs.rectificationInfor && this.$refs.rectificationInfor.formVali(), this.$refs
+						.approvalnfor && this.$refs.approvalnfor.formVali()
+					]) //
+					.then(() => {
+						let api = this.basicInfor.state >= 30 ? '/allocation/check' : '/allocation/change' //������
+						let form = this.basicInfor.state >= 30 ? this.$refs.approvalnfor.form : this.$refs
+							.rectificationInfor.form
+						let data = {
+							allocationId: this.basicInfor.allocationId,
+							...form,
+							state: 50,
+						}
+						this.$http.httpPost(api, data).then(res => {
+							this.close()
+						})
+					}).catch(err => {
+						console.log('���������������', err)
+					})
+			},
+			submit() {
+				Promise.all([this.$refs.rectificationInfor && this.$refs.rectificationInfor.formVali(), this.$refs
+						.approvalnfor && this.$refs.approvalnfor.formVali()
+					]) //
+					.then(() => {
+						let api = this.basicInfor.state >= 30 ? '/allocation/check' : '/allocation/change' //������
+						let form = this.basicInfor.state >= 30 ? this.$refs.approvalnfor.form : this.$refs
+							.rectificationInfor.form
+						let data = {
+							allocationId: this.basicInfor.allocationId,
+							...form,
+							state: this.basicInfor.state === 20 ? 30 : 40,
+						}
+						this.$http.httpPost(api, data).then(res => {
+							this.close()
+						})
+					}).catch(err => {
+						console.log('���������������', err)
+					})
+			}
+		},
+	}
 </script>
-
 <style scoped lang="scss">
 	.mainContent {
 		padding-bottom: 38.46rpx;
@@ -98,9 +190,18 @@
 		margin-top: 20px;
 		margin-bottom: 96.15rpx;
 		padding: 0 20px;
+		justify-content: center;
 
-		.u-button {
-			width: 288.46rpx;
+		.but {
+			width: 50%;
+		}
+
+		.butRight {
+			padding-right: 20px;
+		}
+
+		.butleft {
+			padding-left: 20px;
 		}
 	}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0