From d8536ee4f4a72b8234c954a9b2ae6e38b9948dde Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Sat, 06 Jan 2024 15:46:28 +0800
Subject: [PATCH] 议事+报名

---
 subPackage/article/communityList.vue |    8 +
 subPackage/article/detail.vue        |  276 +++++++++++++++++++++++++++++--------------------------
 2 files changed, 151 insertions(+), 133 deletions(-)

diff --git a/subPackage/article/communityList.vue b/subPackage/article/communityList.vue
index 85984c3..ec1910b 100644
--- a/subPackage/article/communityList.vue
+++ b/subPackage/article/communityList.vue
@@ -32,17 +32,19 @@
 				list: [],
 				currentPage: 1,
 				loadingStatus: 'nomore',
-				eventType: ""
+				eventType: "",
+				type: '',
 			}
 		},
 		onLoad(option) {
-
 			this.eventType = option.type;
 			if (option.type == 0) {
+				this.type = 3
 				uni.setNavigationBarTitle({
 					title: "公益报名"
 				})
 			} else {
+				this.type = 4
 				uni.setNavigationBarTitle({
 					title: "选举调查"
 				})
@@ -91,6 +93,7 @@
 					size: pageSize,
 					articleType: this.tabId,
 					eventType: this.eventType,
+					type: this.type,
 					houseCode: uni.getStorageSync("siteInfo").houseCode
 				}).then(res => {
 					this.$refs.paging.complete(res.data.records);
@@ -105,6 +108,7 @@
 					current: this.currentPage,
 					articleType: this.tabId,
 					eventType: this.eventType,
+					type: this.type,
 					houseCode: uni.getStorageSync("siteInfo").houseCode
 				}
 				const res = await getPage(param)
diff --git a/subPackage/article/detail.vue b/subPackage/article/detail.vue
index 77d4d87..78a53b9 100644
--- a/subPackage/article/detail.vue
+++ b/subPackage/article/detail.vue
@@ -1,141 +1,144 @@
 <template>
 	<view class="">
 		<view class="wrap">
-		<view class="container">
-			<view class="f-32 fw">{{detailInfo.title}}</view>
-			<view class="row flex j-c-s-b a-i-c c-99">
-				<view class="flex">
-					<!-- <view class="flex a-i-c mr-40">
+			<view class="container">
+				<view class="f-32 fw">{{detailInfo.title}}</view>
+				<view class="row flex j-c-s-b a-i-c c-99">
+					<view class="flex">
+						<!-- <view class="flex a-i-c mr-40">
 					<u-icon name="thumb-up-fill" color="#CECECE"></u-icon>
 					<text class="f-22 ml-10">120</text>
 				     </view> -->
-					<view class="flex a-i-c">
-						<tag-cell  v-if="detailInfo.dictValue" :text="detailInfo.dictValue"></tag-cell>
-						<view class="flex a-i-c ml-20">
-							<u-icon name="eye-fill" color="#CECECE"></u-icon>
-							<text class="f-22 ml-10">{{detailInfo.viewNumber}}</text>
+						<view class="flex a-i-c">
+							<tag-cell v-if="detailInfo.dictValue" :text="detailInfo.dictValue"></tag-cell>
+							<view class="flex a-i-c ml-20">
+								<u-icon name="eye-fill" color="#CECECE"></u-icon>
+								<text class="f-22 ml-10">{{detailInfo.viewNumber}}</text>
+							</view>
 						</view>
 					</view>
+					<text class="f-24">{{detailInfo.createTime}}</text>
 				</view>
-				<text class="f-24">{{detailInfo.createTime}}</text>
-			</view>
-			<view class="content f-28">
-				<u-parse :content="detailInfo.content" :tagStyle="UParseStyle"></u-parse>
-			</view>
-		</view>
-
-		<view class="" v-if="isLoad">
-			<view class="" v-if="eventType == 0 && applyInfo.openFlag == 0">
-				<!-- <view class="explain-row c-main  f-28">
-					报名和投票先指定好房屋
-				</view> -->
-				<view class="select-row flex j-c-s-b a-i-c">
-					<text class="f-28">房屋</text>
-					<view class="select-row-content flex a-i-c">
-						<text class="f-26 c-99 mr-20">{{curSite.name}}</text>
-						<!-- <u-icon name="arrow-right" color="#999"></u-icon> -->
-					</view>
-				</view>
-				<view class="apply">
-					<view class="flex f-d-c a-i-c" v-if="applyList.length">
-						<view class="flex mb-20">
-							<image v-for="i in applyList" class="apply-user" src="/static/icon/user-01.png"
-								mode="aspectFill">
-							</image>
-						</view>
-						<text class="f-28 c-99">共{{applyList.length}}人</text>
-					</view>
-					<button v-if="computeEndTime > 0 && !applyInfo.userId" class="apply-btn bgc-main c-ff "
-						@click="handleApply()">报名</button>
-					<button v-if="applyInfo.userId && computeEndTime > 0" class="apply-btn bgc-lightblue c-main  border-current">已报名</button>
-					<button v-if="computeEndTime <= 0"
-						class="apply-btn bgc-lightblue c-main border-current">已结束</button>
+				<view class="content f-28">
+					<u-parse :content="detailInfo.content" :tagStyle="UParseStyle"></u-parse>
 				</view>
 			</view>
 
-			<view class="mt-20" v-if="eventType == 1 && voteTopicList.length">
-				<view class="select-row flex j-c-s-b a-i-c mb-20">
-					<text class="f-28">房屋</text>
-					<view class="select-row-content flex a-i-c">
-						<text class="f-26 c-99 mr-20">{{curSite.name}}</text>
-						<!-- <u-icon name="arrow-right" color="#999"></u-icon> -->
+			<view class="" v-if="isLoad">
+				<view class="" v-if="applyInfo.eventType == 0 && applyInfo.openFlag == 0">
+					<view class="select-row flex j-c-s-b a-i-c">
+						<text class="f-28">房屋</text>
+						<view class="select-row-content flex a-i-c">
+							<text class="f-26 c-99 mr-20">{{curSite.name}}</text>
+							<!-- <u-icon name="arrow-right" color="#999"></u-icon> -->
+						</view>
+					</view>
+					<view class="apply">
+						<view class="flex f-d-c a-i-c" v-if="applyList.length">
+							<view class="flex mb-20">
+								<image v-for="i in applyList" class="apply-user" src="/static/icon/user-01.png"
+									mode="aspectFill">
+								</image>
+							</view>
+							<text class="f-28 c-99">共{{applyList.length}}人</text>
+						</view>
+						<button v-if="computeEndTime > 0 && !applyInfo.userId" class="apply-btn bgc-main c-ff "
+							@click="handleApply()">报名</button>
+
+						<button v-if="applyInfo.userId && computeEndTime > 0"
+							class="apply-btn bgc-lightblue c-main  border-current">已报名</button>
+
+						<button v-if="computeEndTime <= 0"
+							class="apply-btn bgc-lightblue c-main border-current">已结束</button>
 					</view>
 				</view>
-				<view class="explain-row c-main  f-28">
-					投票{{!isEnd && !isComplete?"进行中":"已结束"}}
-				</view>
-				<view class="vote bgc-ff">
-					<view class="mb-20" v-for="(item,index) in voteTopicList" :key="index">
-						<view class="vote-title">
-							<text class="f-30 fw">{{item.discussContent}}</text>
-							<text class="f-26 ml-10">{{item.optionRange == 0?"(单选)":"(多选)"}}</text>
+
+				<view class="mt-20" v-if="this.type == 4 && voteTopicList.length">
+					<view class="select-row flex j-c-s-b a-i-c mb-20">
+						<text class="f-28">房屋</text>
+						<view class="select-row-content flex a-i-c">
+							<text class="f-26 c-99 mr-20">{{curSite.name}}</text>
+							<!-- <u-icon name="arrow-right" color="#999"></u-icon> -->
 						</view>
-						<view class="" v-if="item.optionRange == 0">
-							<u-radio-group size="22" iconPlacement="right" activeColor="#017BFC" placement="column"
-								v-model="item.selected" @change="selectOption($event,index)"
-								:disabled="item.isSubmit || isEnd">
-								<view class="mb-30" v-for="(i,k) in item.children">
-									<u-radio :label="i.optionContent" :name="i.id"></u-radio>
-									<view class="flex j-c-s-b a-i-c mt-10">
-										<view class="mt-10" style="width:80%;">
-											<uv-line-progress v-if="item.selected" height="6" :showText="false"
-												:percentage="getRatio(i.number)"
-												activeColor="#017BFC"></uv-line-progress>
-											<uv-line-progress v-else height="6" :showText="false"></uv-line-progress>
+					</view>
+					<view class="explain-row c-main  f-28">
+						投票{{!isEnd && !isComplete?"进行中":"已结束"}}
+					</view>
+					<view class="vote bgc-ff">
+						<view class="mb-20" v-for="(item,index) in voteTopicList" :key="index">
+							<view class="vote-title">
+								<text class="f-30 fw">{{item.discussContent}}</text>
+								<text class="f-26 ml-10">{{item.optionRange == 0?"(单选)":"(多选)"}}</text>
+							</view>
+							<view class="" v-if="item.optionRange == 0">
+								<u-radio-group size="22" iconPlacement="right" activeColor="#017BFC" placement="column"
+									v-model="item.selected" @change="selectOption($event,index)"
+									:disabled="item.isSubmit || isEnd">
+									<view class="mb-30" v-for="(i,k) in item.children">
+										<u-radio :label="i.optionContent" :name="i.id"></u-radio>
+										<view class="flex j-c-s-b a-i-c mt-10">
+											<view class="mt-10" style="width:80%;">
+												<uv-line-progress v-if="item.selected" height="6" :showText="false"
+													:percentage="getRatio(i.number)"
+													activeColor="#017BFC"></uv-line-progress>
+												<uv-line-progress v-else height="6"
+													:showText="false"></uv-line-progress>
+											</view>
+
+											<text class="c-33 f-28"
+												v-if="i.number && item.isSubmit">{{i.number}}人</text>
 										</view>
-
-										<text class="c-33 f-28" v-if="i.number && item.isSubmit">{{i.number}}人</text>
 									</view>
-								</view>
-							</u-radio-group>
-						</view>
-						<view class="" v-if="item.optionRange == 1">
-							<u-checkbox-group size="22" iconPlacement="right" activeColor="#017BFC" placement="column"
-								v-model="item.selected" :disabled="isSubmit" @change="selectOption($event,index)"
-								shape="circle" labelColor="#333">
-								<view class="mb-30" v-for="(i,k) in item.children" :key="k">
-									<u-checkbox :label="i.optionContent" :name="i.id"></u-checkbox>
-									<view class="flex j-c-s-b a-i-c mt-10">
-										<view class="mt-10" style="width:80%;">
-											<uv-line-progress v-if="item.selected" height="6" :showText="false"
-												:percentage="getRatio(i.number)"
-												activeColor="#017BFC"></uv-line-progress>
-											<uv-line-progress v-else height="6" :showText="false"></uv-line-progress>
+								</u-radio-group>
+							</view>
+							<view class="" v-if="item.optionRange == 1">
+								<u-checkbox-group size="22" iconPlacement="right" activeColor="#017BFC"
+									placement="column" v-model="item.selected" :disabled="isSubmit"
+									@change="selectOption($event,index)" shape="circle" labelColor="#333">
+									<view class="mb-30" v-for="(i,k) in item.children" :key="k">
+										<u-checkbox :label="i.optionContent" :name="i.id"></u-checkbox>
+										<view class="flex j-c-s-b a-i-c mt-10">
+											<view class="mt-10" style="width:80%;">
+												<uv-line-progress v-if="item.selected" height="6" :showText="false"
+													:percentage="getRatio(i.number)"
+													activeColor="#017BFC"></uv-line-progress>
+												<uv-line-progress v-else height="6"
+													:showText="false"></uv-line-progress>
+											</view>
+											<text class="c-33 f-28" v-if="i.number">{{i.number}}人</text>
 										</view>
-										<text class="c-33 f-28" v-if="i.number">{{i.number}}人</text>
 									</view>
-								</view>
-							</u-checkbox-group>
+								</u-checkbox-group>
+							</view>
+						</view>
+						<button class="apply-btn bgc-main c-ff" v-if="!isEnd  && !isComplete"
+							@click="submitVote()">提交</button>
+						<button class="apply-btn bgc-gray c-d1" v-if="isComplete && !isEnd">已提交</button>
+						<button class="apply-btn bgc-gray c-d1" v-if="isEnd">已结束</button>
+					</view>
+				</view>
+			</view>
+
+			<view class="comment bgc-ff  mt-20" v-if="commentList.length">
+				<caption-row title="用户评论" />
+				<view class="comment-list ">
+					<view class="comment-item flex " v-for="(item,index) in commentList" :key="index">
+						<u-avatar size="45" src="/static/icon/user-01.png"></u-avatar>
+						<view class="comment-item-content">
+							<view class="flex j-c-s-b a-i-c mb-20">
+								<text class="f-28 c-99">{{item.name}}</text>
+								<text class="c-99 f-24">{{item.createTime}}</text>
+							</view>
+							<view class="f-30">
+								{{item.content}}
+							</view>
 						</view>
 					</view>
-					<button class="apply-btn bgc-main c-ff" v-if="!isEnd  && !isComplete"
-						@click="submitVote()">提交</button>
-					<button class="apply-btn bgc-gray c-d1" v-if="isComplete && !isEnd">已提交</button>
-					<button class="apply-btn bgc-gray c-d1" v-if="isEnd">已结束</button>
 				</view>
 			</view>
 		</view>
 
-		<view class="comment bgc-ff  mt-20" v-if="commentList.length">
-			<caption-row title="用户评论" />
-			<view class="comment-list ">
-				<view class="comment-item flex " v-for="(item,index) in commentList" :key="index">
-					<u-avatar size="45" src="/static/icon/user-01.png"></u-avatar>
-					<view class="comment-item-content">
-						<view class="flex j-c-s-b a-i-c mb-20">
-							<text class="f-28 c-99">{{item.name}}</text>
-							<text class="c-99 f-24">{{item.createTime}}</text>
-						</view>
-						<view class="f-30">
-							{{item.content}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		</view>
-		
-		
+
 		<view class="footer">
 			<u-search searchIcon='edit-pen' :animation="true" placeholder="写评论" disabled
 				@click="navToComment"></u-search>
@@ -171,7 +174,7 @@
 				params: {
 					id: ""
 				},
-				eventType: null,
+				type: null,
 				detailInfo: {},
 				pdId: "",
 				curSite: {},
@@ -182,7 +185,7 @@
 				isSubmit: false, // 是否已提交投票
 				commentList: [],
 				isEnd: false, //是否结束
-				isComplete: false ,// 是否完成全部投票
+				isComplete: false, // 是否完成全部投票
 				UParseStyle: {
 					img: 'width: 100%; float: left;'
 				}
@@ -191,9 +194,9 @@
 		onLoad(option) {
 			this.$set(this.params, "id", option.id);
 			if (option.type) {
-				this.$set(this.params, "eventType", option.type);
-				this.eventType = option.type;
-				this.pdId = option.pdId;
+				// this.$set(this.params, "eventType", option.type);
+				// this.eventType = option.type;
+				// this.pdId = option.pdId;
 				this.curSite = uni.getStorageSync("siteInfo")
 			}
 			this.getDetailInfo()
@@ -226,15 +229,18 @@
 
 			getDetailInfo() {
 				getDetail(this.params).then(res => {
-					this.isLoad = true;
+
 					this.detailInfo = res.data;
-					if (this.pdId) {
+					this.type = res.data.type
+					if (res.data.type == 3) {
+						this.isLoad = true;
 						this.getApplyDetail()
-					}
-					if (this.eventType == 0) {
 						this.getApplyList();
+						console.log(this.type)
 					}
-					if (this.eventType == 1) {
+					if (res.data.type == 4) {
+						this.isLoad = true;
+						this.getApplyDetail()
 						this.getVoteList();
 					}
 				})
@@ -255,9 +261,9 @@
 			//报名列表
 			getApplyList() {
 				communityModel.getApplyList({
-					publicDiscussId: this.pdId
+					articleId: this.params.id
 				}).then(res => {
-					console.log(res)
+					// console.log(res)
 					if (res.code == 200) {
 						this.applyList = res.data.records;
 					}
@@ -267,9 +273,9 @@
 			//报名、投票详情
 			getApplyDetail() {
 				communityModel.getApplyDetail({
-					id: this.pdId
+					articleId: this.params.id
 				}).then(res => {
-					console.log(res)
+					// console.log(res)
 					if (res.code == 200) {
 						this.applyInfo = res.data;
 					}
@@ -279,7 +285,7 @@
 			//获取投票议题
 			getVoteList() {
 				communityModel.getVoteTopics({
-					publicDiscussId: this.pdId
+					articleId: this.params.id
 				}).then(res => {
 					if (res.code == 200) {
 						let data = res.data;
@@ -312,14 +318,18 @@
 			//报名
 			handleApply() {
 				if (this.computeEndTime > 0) {
+
 					communityModel.addApply({
-						publicDiscussId: this.pdId
+						publicDiscussId: this.pdId,
+						articleId: this.params.id,
+						houseCode: uni.getStorageSync("siteInfo").houseCode
 					}).then(res => {
 						if (res.code == 200) {
 							uni.showToast({
 								title: "操作成功"
 							})
 							this.getApplyList();
+							this.getApplyDetail()
 						}
 					})
 				} else {
@@ -343,6 +353,8 @@
 					if (i.selected) {
 						delete i.children;
 						i.selected = JSON.stringify(i.selected)
+						i.articleId = this.params.id
+						i.houseCode = uni.getStorageSync("siteInfo").houseCode
 						arr.push(i)
 					}
 				}
@@ -385,9 +397,11 @@
 	page {
 		background-color: #f5f5f5;
 	}
-    .wrap{
-		padding:0 0 130rpx;
+
+	.wrap {
+		padding: 0 0 130rpx;
 	}
+
 	.container {
 		padding: 0 30rpx;
 		background-color: #fff;

--
Gitblit v1.9.3