From 6b8e685d4fb33aaa0f6641e5b7718190f5134154 Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Sat, 23 Mar 2024 14:23:46 +0800
Subject: [PATCH] 投票逻辑修改

---
 subPackage/article/detail.vue |   71 +++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 33 deletions(-)

diff --git a/subPackage/article/detail.vue b/subPackage/article/detail.vue
index 4374db2..87ff7ec 100644
--- a/subPackage/article/detail.vue
+++ b/subPackage/article/detail.vue
@@ -67,8 +67,13 @@
 					<view class="vote bgc-ff">
 						<view class="mb-20" v-for="(item,index) in voteTopicList" :key="index">
 							<view class="vote-title">
+								<text v-if="item.mandatoryFlag == 1">*</text>
 								<text class="f-30 fw">{{item.discussContent}}</text>
-								<text class="f-26 ml-10">{{item.optionRange == 0?"(单选)":"(多选)"}}</text>
+								<text class="f-26 ml-10" v-if="item.optionRange == 0">(单选)</text>
+								<text class="f-26 ml-10" v-if="item.optionRange == 1 && !item.optionNumber">(多选)</text>
+								<text class="f-26 ml-10" v-if="item.optionRange == 1 && item.optionNumber>0">(多选
+									{{`最多可选${item.optionNumber}项`}})</text>
+
 							</view>
 							<view class="" v-if="item.optionRange == 0">
 								<u-radio-group size="22" iconPlacement="right" activeColor="#017BFC" placement="column"
@@ -85,15 +90,15 @@
 													:showText="false"></uv-line-progress>
 											</view>
 
-											<text class="c-33 f-28"
-												v-if="i.number && item.isSubmit">{{i.number}}人</text>
+											<!-- <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"
+									placement="column" v-model="item.selected" :disabled="item.isSubmit || isEnd"
 									@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"
@@ -106,7 +111,7 @@
 												<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>
+											<!-- <text class="c-33 f-28" v-if="i.number">{{i.number}}人</text> -->
 										</view>
 									</view>
 								</u-checkbox-group>
@@ -243,6 +248,7 @@
 				let endTimestamp = new Date(this.applyInfo.endTime).getTime();
 				if (Number(endTimestamp) - Number(curTimestamp) <= 0) {
 					this.isEnd = true;
+					this.setOptionDisable() //时间结束,所有多项按钮禁用
 				}
 				return Number(endTimestamp) - Number(curTimestamp)
 			}
@@ -397,39 +403,35 @@
 
 			selectOption(id, index) {
 				let item = this.voteTopicList[index];
-				// if (item.optionNumber == item.selected.length) {
-				// 	this.$showTips(`最多只能选${item.optionNumber}项`);
-				// 	return;
-				// }
-				item.selected = id;
-				let disableIndex = ""
-				this.$set(this.voteTopicList, index, item);
-				for (let i = 0, ii = item.selected.length; i < ii; i++) {
-					for (let k = 0, kk = item.children.length; k < kk; k++) {
-						if (item.selected[i] != item.children[k].id) {
-							if (item.selected.length == item.optionNumber) {
-								console.log("index ===>", k)
-								disableIndex = k;
-								break;
-								// item.children[k].disabled = true;
+				if (id.length <= item.optionNumber) {
+					item.selected = id;
+				}
+				for (let i = 0, ii = item.children.length; i < ii; i++) {
+					item.children[i].selected = false;
+					for (let k = 0, kk = item.selected.length; k < kk; k++) {
+						if (item.children[i].id === item.selected[k]) {
+							item.children[i].selected = true;
+						}
+						item.children[i].disabled = false;
+						if (item.selected.length == item.optionNumber) {
+							if (!item.children[i].selected) {
+								item.children[i].disabled = true;
 							}
 						}
-
-
 					}
 				}
-
-				console.log("disableIndex ===>", disableIndex);
-
-
-
-
-
-
-
-
-
+				this.$set(this.voteTopicList, index, item);
 			},
+
+
+			setOptionDisable() {
+				for (let i = 0, ii = this.voteTopicList.length; i < ii; i++) {
+					for (let k = 0, kk = this.voteTopicList[i].children.length; k < kk; k++) {
+						this.voteTopicList[i].children[k].disabled = true;
+					}
+				}
+			},
+
 
 			getParams(signPath) {
 				let list = JSON.parse(JSON.stringify(this.voteTopicList));
@@ -442,7 +444,10 @@
 						i.houseCode = uni.getStorageSync("siteInfo").houseCode
 						i.signaturePath = signPath ? signPath : ""
 						arr.push(i)
+					} else if (!i.selected && i.mandatoryFlag) {
+						this.$showTips('必填议题请选择选项')
 					}
+
 				}
 				return arr;
 			},

--
Gitblit v1.9.3