From c70f5e1d471ddf002ef0ebd5f4c6a5ed1c865d0d Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 21 十月 2026 17:47:58 +0800
Subject: [PATCH] 测试完成
---
src/views/outsideChainwtnew.vue | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 104 insertions(+), 2 deletions(-)
diff --git a/src/views/outsideChainwtnew.vue b/src/views/outsideChainwtnew.vue
index 5dd3cb3..8b61ffa 100644
--- a/src/views/outsideChainwtnew.vue
+++ b/src/views/outsideChainwtnew.vue
@@ -64,6 +64,7 @@
item.prompt &&
item.scriptResult &&
(item.scriptType !== 2 || item.scriptResult.length > 0),
+ 'required-error': item.requiredError,
}"
>
<!-- 棰樼洰棰樺共 -->
@@ -71,7 +72,11 @@
<span class="question-number"
>{{ getQuestionNumber(group, index) }}.</span
>
- <span class="question-text">{{ item.scriptContent }}</span>
+ <span class="question-text"
+ ><span v-if="isRequired(item)" class="required-star"
+ >*</span
+ >{{ item.scriptContent }}</span
+ >
<span class="question-type-tag">
{{
item.scriptType == 1
@@ -201,6 +206,7 @@
item.prompt &&
item.scriptResult &&
(item.scriptType !== 2 || item.scriptResult.length > 0),
+ 'required-error': item.requiredError,
}"
>
<!-- 棰樼洰棰樺共 -->
@@ -208,7 +214,11 @@
<span class="question-number"
>{{ getVisibleQuestionIndex(index) }}.</span
>
- <span class="question-text">{{ item.scriptContent }}</span>
+ <span class="question-text"
+ ><span v-if="isRequired(item)" class="required-star"
+ >*</span
+ >{{ item.scriptContent }}</span
+ >
<span class="question-type-tag">
{{
item.scriptType == 1
@@ -407,6 +417,12 @@
// 鍚庣绉侀挜
privateKey:
" MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAtDOpbUQhcEoYy77agRhIHmAzs7H+KHJhN56gTTI9fWq23j77nI055MFV3oQQziIrNUTNaPpEQhZXBpI0+f9K9QIDAQABAkB3n0fcWfrcoMN/FU3VnrnZOEF6CzFNxkgU9P8y36QECWKZ9JhYQkNpKrMC9oXlN3VSaRigV7B+L/I/a0Rs1W+tAiEA4jx7xcXJ4y4BNwAmVHt6NNiEkzIwWnwC/0qsEu8NsOsCIQDL6MMn1D2uznC6OuOWpxDCkBh1JL1NzZTZeH2G+hj7nwIgKGAC9tjFnvWm4dn0/T7MIIJDpsFeP8fCAS2iZ/6hwuECIAS/eLvWr1EAsZNEh8QcQ8GkBU3E+ztyjAK8UX/xFt/VAiBf79/1tDErX4/DChecM8w3c3DhbBcjuE3fHZn7p6/UKg==",
+ // 婊℃剰搴�/寤夋磥棰樼殑榛樿閫夐」锛堜粎鍦ㄩ鐩湭濉啓鏃剁敓鏁堬級
+ defaultAnswers: [
+ { keyword: "鎮ㄥ鍖绘姢浜哄憳鐨勬弧鎰忓害涓�", answer: "浼�" },
+ { keyword: "鎮ㄥ鍖婚櫌鐜銆佽鏂界瓑鏁翠綋鐨勬弧鎰忓害涓�", answer: "浼�" },
+ { keyword: "鏄惁鏈夊尰鎶や汉鍛樹富鍔ㄧ储瑕佺孩鍖呫�侀敠鏃楁垨琛ㄦ壃淇�", answer: "鏃�" },
+ ],
formData: {
question1: "",
question2: "",
@@ -601,6 +617,8 @@
item.scriptResult = item.scriptResult.split("&");
}
});
+ // 榛樿鍕鹃�夋弧鎰忓害/寤夋磥棰橈紙宸蹭綔绛旂殑涓嶄細琚鐩栵級
+ this.applyDefaultAnswers(this.questionList);
this.loading = false;
return;
@@ -634,12 +652,40 @@
item.scriptResult = [];
}
});
+ // 榛樿鍕鹃�夋弧鎰忓害/寤夋磥棰�
+ this.applyDefaultAnswers(this.questionList);
this.loading = false;
}
})
.finally(() => {
this.loading = false;
});
+ },
+ // 缁欐寚瀹氶鐩缃粯璁ら�夐」锛堜粎鍦ㄦ湭濉啓鏃剁敓鏁堬級
+ applyDefaultAnswers(list) {
+ if (!Array.isArray(list)) return;
+ list.forEach((item) => {
+ if (item.scriptType != 1) return;
+ // 宸叉湁绛旀鏃朵笉瑕嗙洊
+ if (
+ item.scriptResult !== undefined &&
+ item.scriptResult !== null &&
+ item.scriptResult !== ""
+ ) {
+ return;
+ }
+ const content = (item.scriptContent || "").trim();
+ const matched = this.defaultAnswers.find((d) =>
+ content.includes(d.keyword)
+ );
+ if (!matched) return;
+ const option = (item.svyTaskTemplateTargetoptions || []).find(
+ (o) => (o.optioncontent || "").trim() === matched.answer
+ );
+ if (option) {
+ item.scriptResult = option.optioncontent;
+ }
+ });
},
// 鍔犲瘑鍑芥暟
encrypt(txt) {
@@ -695,6 +741,10 @@
// 缂撳瓨
cache(subm) {
console.log("杩涘叆缂撳瓨");
+ // 鎻愪氦鍦烘櫙锛氬厛鍋氬繀濉」鏍¢獙
+ if (subm === true && !this.validateRequired()) {
+ return;
+ }
// 鎻愪氦鍦烘櫙锛氬紑鍚姞杞界姸鎬侊紝闃叉閲嶅鐐瑰嚮
if (subm === true) {
this.submitting = true;
@@ -764,6 +814,46 @@
this.$modal.msgError("鎻愪氦澶辫触锛岃閲嶈瘯");
}
});
+ },
+ // 鏄惁蹇呭~锛�1蹇呭~ 2涓嶅繀濉級
+ isRequired(item) {
+ return item.ismandatory == 1 || item.ismandatory == "1";
+ },
+ // 鍒ゆ柇棰樼洰鏄惁鏈~鍐�
+ isQuestionEmpty(item) {
+ const val = item.scriptResult;
+ if (item.scriptType == 2) {
+ return !val || (Array.isArray(val) && val.length === 0);
+ }
+ return val === undefined || val === null || val === "";
+ },
+ // 淇濆瓨鍓嶅繀濉」鏍¢獙
+ validateRequired() {
+ const list = this.questionList || [];
+ list.forEach((item) => {
+ if (item.requiredError) this.$set(item, "requiredError", false);
+ });
+ const unfilled = [];
+ list.forEach((item) => {
+ if (item.ishide) return;
+ if (!this.isRequired(item)) return;
+ if (this.isQuestionEmpty(item)) unfilled.push(item);
+ });
+ if (unfilled.length > 0) {
+ unfilled.forEach((item) => this.$set(item, "requiredError", true));
+ this.$modal.msgWarning(
+ `杩樻湁 ${unfilled.length} 閬撳繀濉鏈~鍐欙紝璇疯ˉ鍏呭悗鍐嶆彁浜
+ );
+ this.$nextTick(() => {
+ const idx = this.visibleQuestions.indexOf(unfilled[0]);
+ const els = this.$el.querySelectorAll(".question-item");
+ if (els[idx]) {
+ els[idx].scrollIntoView({ behavior: "smooth", block: "center" });
+ }
+ });
+ return false;
+ }
+ return true;
},
// 鑾峰彇鍙棰樼洰鐨勬纭簭鍙凤紙瑙e喅璺抽鍚庡簭鍙蜂笉杩炵画鐨勯棶棰橈級
getVisibleQuestionIndex(index) {
@@ -1041,6 +1131,12 @@
border-left: 4px solid #e6a23c;
}
+ &.required-error {
+ border-color: #f56c6c;
+ border-left: 4px solid #f56c6c;
+ background: #fef0f0;
+ }
+
&:last-child {
margin-bottom: 0;
}
@@ -1074,6 +1170,12 @@
min-width: 16px;
}
+.required-star {
+ color: #f56c6c;
+ margin-right: 2px;
+ font-weight: 600;
+}
+
// .question-text {
// line-height: 1.5;
// color: #2c3e50;
--
Gitblit v1.9.3