wangxy 3 tygodni temu
rodzic
commit
a32fb60c14

+ 0 - 238
components/custom-scroll-list/custom-scroll-list-date.vue

@@ -1,238 +0,0 @@
-<template>
-	<view>
-		<!-- 查询区域 -->
-		<view>
-			<uni-search-bar class="uni-mt-10" v-model="name" radius="100" v-if="hasSearcBar" :placeholder="placeholder"
-				:bgColor="searchBarColor" clearButton="auto" cancelButton="none" @confirm="onSearch" @blur="onSearch" />
-			<view @click="selectDate">日历</view>
-		</view>
-
-		<!-- tab选择区域 -->
-		<view class="lli-status-box" v-if="hasTab">
-			<text :class="['status-item', activeTab === item.value? 'click':'' ]" v-for="item in tabList"
-				:key="item.value" @click="onTavChange(item)">{{item.label}}</text>
-		</view>
-		<!-- 无限滚动区域 -->
-		<scroll-view class="scroll-container" :scroll-y="true" :refresher-enabled="true"
-			:refresher-triggered="triggered" :refresher-threshold="100" refresher-background="#F3F3F4"
-			@refresherrefresh="onRefresh" @scrolltolower="onReachBottom" @refresherrestore="onRestore">
-			<slot :list="list"></slot>
-			<uni-load-more :status="status" :contentText="contentText"></uni-load-more>
-		</scroll-view>
-		<dateSelectDlVue ref="dateSelectRef" @confirm-btn="onDateSelect" @date-reset="onDateReset"></dateSelectDlVue>
-	</view>
-
-</template>
-
-<script setup>
-	import dateSelectDlVue from "@/components/dialog/dateSelectDl.vue";
-	import {
-		ref,
-		onMounted,
-		computed,
-		reactive,
-	} from "vue";
-
-	import {
-		onLoad
-	} from "@dcloudio/uni-app"
-
-
-	const props = defineProps({
-		refreshFn: {
-			type: Function,
-			required: true
-		},
-		tabData: {
-			type: Object
-		},
-		size: {
-			type: Number,
-			default: 5
-		},
-		hasSearcBar: {
-			type: Boolean,
-			default: true,
-		},
-		searchBarKey: {
-			type: String,
-			default: 'name'
-		},
-		hasTab: {
-			type: Boolean,
-			default: true,
-		},
-		defaultTab: {
-			type: [String, Number]
-		},
-		tabList: {
-			type: Array,
-			default: () => [],
-		},
-		tabKey: {
-			type: String,
-			default: 'status'
-		},
-		placeholder: {
-			type: String,
-			default: '请输入考试名称'
-		},
-		searchBarColor: {
-			type: String,
-			default: "#F3F3F4"
-		},
-		tabData: {
-			type: Object,
-		}
-
-	})
-
-	const page = ref(1);
-	const list = ref([]); // 项目列表
-	const triggered = ref(false); // 是否触发下拉刷新
-	const freshing = ref(false); // 是否加载中
-	const total = ref(0); // 项目总数
-	const name = ref(''); // 查询名
-	const activeTab = ref(props.defaultTab);
-	const status = ref('more');
-	const contentText = {
-		contentdown: '查看更多',
-		contentrefresh: '加载中',
-		contentnomore: '没有更多'
-	}
-	const dateSelectRef = ref(null);
-	const selectDateData = ref([]);
-
-	/**
-	 * 是否已完全加载
-	 */
-	const isComplete = computed(() => {
-		if (total.value === 0) {
-			return false;
-		}
-
-		return total.value === list.value.length
-	})
-
-	function onDateReset() {
-		selectDateData.value = [];
-		reset();
-		getData("do-search");
-	}
-
-	function onDateSelect(data) {
-		selectDateData.value = data;
-		reset();
-		getData("do-search");
-	}
-
-	function selectDate() {
-		console.log('open')
-		dateSelectRef.value.handleShow(selectDateData.value)
-	}
-
-	// 重置
-	function reset() {
-		list.value = [];
-		page.value = 1;
-		triggered.value = false;
-		freshing.value = false;
-		total.value = 0;
-		status.value = 'more';
-	}
-
-	// 切换tab
-	function onTavChange(item) {
-		activeTab.value = item.value;
-		name.value = "";
-		reset();
-		getData("do-search");
-	}
-
-	// 查询
-	function onSearch({
-		value
-	}) {
-		name.value = value;
-		reset();
-		getData("do-search");
-	}
-
-	// 获取数据
-	function getData(action) {
-		const options = Object.assign({}, {
-			page: page.value,
-			size: props.size,
-			answerStartTime: selectDateData.value.length ? selectDateData.value[0] : null,
-			answerEndTime: selectDateData.value.length ? selectDateData.value[1] : null,
-			passFlag: -1
-		});
-
-		if (props.hasTab) {
-			options[props.tabKey] = activeTab.value;
-		}
-
-		if (props.hasSearcBar) {
-			options[props.searchBarKey] = name.value;
-		}
-		props.refreshFn(options).then(res => {
-			total.value = res.data.total;
-			action === "do-search" && (list.value = res.data.data); // 查询更新
-			action === "pull-down-refresh" && (list.value = res.data.data); // 下拉更新数据
-			action === "reach-buttom" && (list.value = [...list.value, ...res.data.data]); // 无限滚动更新数据
-
-
-
-		}).finally(() => {
-			triggered.value = false;
-			freshing.value = false;
-			if (total.value !== list.value.length) {
-				status.value = 'more';
-			} else {
-				status.value = 'noMore';
-			}
-		})
-	}
-
-	onLoad(() => {
-		freshing.value = false;
-		setTimeout(() => {
-			triggered.value = true
-		}, 50)
-	})
-
-	// 下拉刷新触发
-	function onRefresh() {
-		if (freshing.value) return;
-		status.value = 'loading';
-		freshing.value = true;
-		triggered.value = true;
-		page.value = 1;
-		getData('pull-down-refresh');
-	}
-
-	// 下拉刷新复位
-	function onRestore() {
-		triggered.value = 'restore'; // 需要重置
-	}
-
-	// 无限滚动
-	function onReachBottom() {
-		if (freshing.value) return;
-		if (isComplete.value) return;
-		freshing.value = true;
-		page.value++;
-		getData('reach-buttom')
-	}
-
-
-	defineExpose({
-		onRefresh
-	})
-</script>
-
-<style lang="scss">
-	.scroll-container {
-		height: calc(100vh - 220rpx)
-	}
-</style>

+ 0 - 121
components/dialog/dateSelectDl.vue

@@ -1,121 +0,0 @@
-<template>
-	<uni-popup ref="commonPopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog">
-		<view class="common-body-box">
-			<view class="common-title">请选择日期</view>
-			<view class="common-content" :class="dialogContentClass">
-				<uni-datetime-picker v-model="infoDate.selected" type="daterange" @change="dateConfirm" />
-			</view>
-			<view class="common-btn-box">
-				<view class="confirm-btn" @click="confirmBtn">确认</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import { ref,reactive } from 'vue';
-	const props = defineProps({
-	  title: {
-	    type: String,
-	    default: ''
-	  },
-	  content: {
-	    type: String,
-		require: true,
-	    default: ''
-	  },
-	  dialogContentClass: {
-	    type: String,
-	  	require: true,
-	    default: 'content-center-class'
-	  },
-	  notBtn: {
-	    type: String,
-	  	require: true,
-	    default: '取消'
-	  },
-	  okBtn: {
-	    type: String,
-	  	require: true,
-	    default: '确认'
-	  },
-	});
-	const commonPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn', 'date-reset'])
-	
-	/**
-	 * 获取任意时间
-	 */
-	function getDate(date, AddDayCount = 0) {
-		if (!date) {
-			date = new Date()
-		}
-		if (typeof date !== 'object') {
-			date = date.replace(/-/g, '/')
-		}
-		const dd = new Date(date)
-	
-		dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期
-	
-		const y = dd.getFullYear()
-		const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0
-		const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0
-		return {
-			fullDate: y + '-' + m + '-' + d,
-			year: y,
-			month: m,
-			date: d,
-			day: dd.getDay()
-		}
-	}
-	const infoDate = reactive({
-		lunar: true,
-		range: true,
-		insert: false,
-		selected: [],
-		valueData: null
-	})
-	
-	function dateConfirm(data) {
-		infoDate.selected = data;
-	}
-	
-	// 打开弹窗
-	function handleShow(data) {
-		if (data) {
-			infoDate.selected = data;
-		}
-		commonPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		commonPopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		if (!infoDate.selected.lenth||infoDate.selected.length>1) {
-			$emit('confirm-btn',infoDate.selected);
-			commonPopup.value.close();
-		} else {
-			uni.showToast({
-				title: '请选择日期',
-				icon: 'none'
-			})
-		}
-	}
-	function handleReset() {
-		$emit('date-reset')
-		infoDate.selected = []
-		handleClose();
-	}
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 7 - 14
pages.json

@@ -108,20 +108,13 @@
 				"navigationBarTitleText" : "报名"
 			}
 		},
-		{
-			"path" : "pages/cuoti/index",
-			"style" : 
-			{
-				"navigationBarTitleText" : "错题"
-			}
-		},
-		{
-			"path" : "pages/cuoti/cuoti",
-			"style" : 
-			{
-				"navigationBarTitleText" : "错题答案"
-			}
-		},
+		// {
+		// 	"path" : "pages/cuoti/cuoti",
+		// 	"style" : 
+		// 	{
+		// 		"navigationBarTitleText" : "错题答案"
+		// 	}
+		// },
 		{
 			"path" : "pages/my/mesPage",
 			"style" : 

+ 2 - 2
pages/course/index.vue

@@ -1,8 +1,8 @@
 <template>
 	<custom-scroll-list :refreshFn="getKechengList" :tabList="tabData" :defaultTab="1">
 		<template #default="{list}">
-			<scroll-list-card-kecheng @click="kechengClick(item)" v-for="(item,index) in list" :key="item.ksId"
-				:data="item"></scroll-list-card-kecheng>
+<!--			<scroll-list-card-kecheng @click="kechengClick(item)" v-for="(item,index) in list" :key="item.ksId"-->
+<!--				:data="item"></scroll-list-card-kecheng>-->
 		</template>
 	</custom-scroll-list>
 </template>

+ 0 - 708
pages/cuoti/cuoti.vue

@@ -1,708 +0,0 @@
-<template>
-	<view class="phone-score-page">
-		<!-- 段落 -->
-		<view class="score-shiti-content">
-			<!-- 试题区域 -->
-			<view v-if="activeSt">
-				<template v-if="activeSt.stTypeId == 1">
-					<!-- 单选 -->
-					<danxuan :question="activeSt" :key="activeSt.stId"></danxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 2">
-					<!-- 多选 -->
-					<duoxuan :question="activeSt" :key="activeSt.stId"></duoxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 3">
-					<!-- 判断 -->
-					<panduan :question="activeSt" :key="activeSt.stId"></panduan>
-				</template>
-				<template v-if="activeSt.stTypeId == 4">
-					<!-- 填空 -->
-					<tiankong :question="activeSt" :key="activeSt.stId"></tiankong>
-				</template>
-				<template v-if="activeSt.stTypeId == 5">
-					<!-- 简答 -->
-					<jianda :question="activeSt" :key="activeSt.stId"></jianda>
-				</template>
-				<template v-if="activeSt.stTypeId == 6">
-					<!-- 阅读 -->
-					<yuedu :question="activeSt" :key="activeSt.stId" @yudu-change="onYueduChange"></yuedu>
-				</template>
-			</view>
-			<!-- 底部 -->
-			<view class="kaoshi-bottom-box">
-				<view class="shiti-num-box" @click="showAnswerCard">
-					<icon class="shiti-num-icon"></icon>答题卡
-					<text
-						class="active-num">{{activeSt ? activeSt.onlyNum: 0}}</text>/<text>{{data.StListForSearch.length}}</text>
-				</view>
-			</view>
-
-			<!-- 解析 -->
-			<view v-if="activeSt" class="score-answer-box">
-				<view class="phone-question-answer-box" v-if="activeSt.stTypeId == 6">
-					<template v-if="yuduItemAnswer.stTypeId == 5">
-						<!-- 阅读题中简答题 -->
-						<view class="phone-line-title">答案解析</view>
-						<view class="btdf-row">本题得分:<text>{{yuduItemAnswer.score}}</text>分</view>
-						<view class="zqda-row">正确答案:
-							<view>{{yuduItemAnswer.result}}</view>
-						</view>
-						<view class="ndda-row">您的答案:
-							<view>{{yuduItemAnswer.reply}}</view>
-						</view>
-						<view class="dajx-row">答案解析:
-							<rich-text :nodes="yuduItemAnswer.answer"></rich-text>
-						</view>
-					</template>
-					<template v-else-if="yuduItemAnswer.stTypeId == 4">
-						<view class="phone-line-title">答案解析</view>
-						<view class="btdf-row">本题得分:<text>{{yuduItemAnswer.score}}</text>分</view>
-						<view class="zqda-row">正确答案:
-							<view v-for="(item,index) in yuduItemAnswer.result">{{`填空${index+1}`}} : {{item}}</view>
-						</view>
-						<view class="ndda-row">您的答案:
-							<view v-for="(item,index) in yuduItemAnswer.reply"> {{`填空${index+1}`}}: {{item}}</view>
-						</view>
-						<view class="dajx-row">答案解析:
-							<rich-text :nodes="yuduItemAnswer.answer"></rich-text>
-						</view>
-					</template>
-					<template v-else>
-						<view class="phone-line-title">答案解析</view>
-						<view class="btdf-row">本题得分:<text>{{yuduItemAnswer.score}}</text>分</view>
-						<view class="zqda-row">正确答案:<text>{{yuduItemAnswer.result}}</text></view>
-						<view class="ndda-row">您的答案:<text>{{yuduItemAnswer.reply}}</text></view>
-						<view class="dajx-row">答案解析:
-							<rich-text :nodes="yuduItemAnswer.answer"></rich-text>
-						</view>
-					</template>
-				</view>
-				<view class="phone-question-answer-box" v-else-if="activeSt.stTypeId == 5">
-					<view class="phone-line-title">答案解析</view>
-					<view class="btdf-row">本题得分:<text>{{data.score}}</text>分</view>
-					<view class="zqda-row">正确答案:
-						<view>{{data.result}}</view>
-					</view>
-					<view class="ndda-row">您的答案:
-						<view>{{data.reply}}</view>
-					</view>
-					<view class="dajx-row">答案解析:
-						<rich-text :nodes="data.answer"></rich-text>
-					</view>
-				</view>
-				<view class="phone-question-answer-box" v-else-if="activeSt.stTypeId == 4">
-					<view class="phone-line-title">答案解析</view>
-					<view class="btdf-row">本题得分:<text>{{answerRes.score}}</text>分</view>
-					<view class="zqda-row">正确答案:
-						<view v-for="(item,index) in answerRes.result">{{`填空${index+1}`}} : {{item}}</view>
-					</view>
-					<view class="ndda-row">您的答案:
-						<view v-for="(item,index) in answerRes.reply"> {{`填空${index+1}`}}: {{item}}</view>
-					</view>
-					<view class="dajx-row">答案解析:
-						<rich-text :nodes="answerRes.answer"></rich-text>
-					</view>
-				</view>
-				<view class="phone-question-answer-box" v-else>
-					<view class="phone-line-title">答案解析</view>
-					<view class="btdf-row">本题得分:<text>{{answerRes.score}}</text>分</view>
-					<view class="zqda-row">正确答案:<text>{{answerRes.result}}</text></view>
-					<view class="ndda-row">您的答案:<text>{{answerRes.reply}}</text></view>
-					<view class="dajx-row">答案解析:
-						<rich-text :nodes="answerRes.answer"></rich-text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 上下按钮 -->
-		<view v-if="activeSt" class="score-bottom-box">
-			<view @click="handleOpenCard" class="score-num-box">
-				<icon class="score-num-icon"></icon>
-				<text
-					class="active-num">{{activeSt && activeSt.onlyNum||0}}</text>/<text>{{data.StListForSearch.length}}</text>
-			</view>
-			<view>
-				<button type="default" size="mini" hover-class="none" class="phone-green-btn score-answer-btn"
-					@click="handlePrev" v-if="!isFistStId">上一题</button>
-				<button type="default" size="mini" hover-class="none" class="phone-green-btn score-answer-btn"
-					@click="handleNext" v-if="!isLastStId">下一题</button>
-				<!-- 		<button type="default" size="mini" hover-class="none" class="phone-green-btn score-answer-btn"
-					@click="handleBack" v-if="isLastStId">完成</button> -->
-			</view>
-		</view>
-		<!-- 答题卡 -->
-		<uni-popup ref="popupRef" background-color="#fff" :animation="false" :is-mask-click="false" :mask-click="false">
-			<view class="answer-card-popup">
-				<view class="icon-title-navBar-box">
-					<view @click="handlePopupBack" class="nav-bar-icon"> </view>
-					<text class="nav-bar-title">答题卡</text>
-				</view>
-				<view class="card-content-box">
-					<view class="answer-card-content" v-for="(paragraph,paragraphIndex) in questionData"
-						:key="paragraphIndex">
-						<view class="paragraph-title">
-							{{paragraph.name}}
-						</view>
-						<view class="paragraph-qa" v-for="(qa,qaIndex) in paragraph.qas" :key="qaIndex"
-							:class="getQaClass(qa)" @click="answerCardItemClick(qa)">{{qa.onlyNum}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</uni-popup>
-
-	</view>
-</template>
-
-<script setup>
-	import danxuan from "@/components/questions/danxuan.vue";
-	import duoxuan from "@/components/questions/duoxuan.vue";
-	import tiankong from "@/components/questions/tiankong.vue";
-	import panduan from "@/components/questions/panduan.vue";
-	import jianda from "@/components/questions/jianda.vue";
-	import yuedu from "@/components/questions/yuedu.vue";
-	import {
-		useQuestionTools
-	} from "@/components/questions/useQuestionTools.js";
-
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import {
-		ref,
-		reactive,
-		computed
-	} from "vue"
-	import * as ctApi from "@/api/cuoti.js"
-	const {
-		checkDanxuanReply,
-		checkDuoxuanReply,
-		checkPanduanReply,
-		checkTiankongReply,
-		getLetterByIndex,
-		checkJiandaReply,
-		checkYueduReply
-	} = useQuestionTools();
-
-
-	const hisId = ref(null)
-	const popupRef = ref(null)
-	const yuduItemAnswer = ref(null); // 阅读小题显示答案
-	const yuduIndexQa = ref(null); // 阅读小题答案
-
-	const data = reactive({
-		ksId: null,
-		ksName: '',
-		stTotal: 0,
-		zyLevelName: '',
-		userScore: '',
-		ksScore: 0,
-		StListForSearch: [],
-		duanluo: []
-	})
-
-	const questionData = ref([]);
-	const progress = reactive({
-		dlIndex: 0,
-		dtIndex: 0
-	})
-
-	const dlName = computed(() => {
-		if (data.StListForSearch && activeSt.value) {
-			return data.StListForSearch[activeSt.value.onlyNum].paragraphName
-		} else {
-			return ''
-		}
-	})
-
-	const activeSt = computed(() => {
-		if (questionData.value.length) {
-			return questionData.value.length && questionData.value[progress.dlIndex].qas[progress.dtIndex];
-		} else {
-			return null
-		}
-	})
-
-	const answerRes = computed(() => {
-		const qa = activeSt.value;
-		let score = qa.score;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else if (qa.reply == 0) {
-				reply = '错误'
-			} else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			} else if (qa.result == 1) {
-				result = '正确'
-			}
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result = qa.result || [];
-			// 填空题
-			return {
-				score,
-				reply,
-				result,
-				answer
-			}
-		} else if (qa.stTypeId == 5) {
-			let reply = qa.reply;
-			let result = qa.result;
-			// 简答题
-			return {
-				score,
-				reply,
-				result,
-				answer
-			}
-		} else {
-			return {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-	})
-
-	function showAnswerCard() {
-		popupRef.value.open('top')
-	}
-
-	function onYueduChange(data) {
-		yuduIndexQa.value = data;
-		checkYueduJiexi()
-	}
-
-	// 校验阅读解析
-	function checkYueduJiexi() {
-		console.log('格式化阅读题', yuduIndexQa.value)
-		let qa = yuduIndexQa.value;
-		let score = qa.userScore;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else if (qa.reply == 0) {
-				reply = '错误'
-			} else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			} else if (qa.result == 1) {
-				result = '正确'
-			}
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result = qa.result || [];
-			// 填空题
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-		if (qa.stTypeId == 5) {
-			// 简单题
-			let reply = qa.reply ? '未答' : qa.reply;
-			let result = qa.result;
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-
-	}
-
-	const isFistStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[0].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-	const isLastStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[data.StListForSearch.length - 1].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-
-
-	onLoad((options) => {
-		hisId.value = options.hisId;
-		initPage()
-	})
-
-
-	function getQaClass(qa) {
-		if (qa.marked && qa.marked === true) {
-			return 'paragraph-qa-block-mark';
-		} else {
-			if (qa.stTypeId == 1) {
-				if (checkDanxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 2) {
-				if (checkDuoxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 3) {
-				if (checkPanduanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 4) {
-				if (checkTiankongReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 5) {
-				if (checkJiandaReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 6) {
-				if (checkYueduReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			}
-		}
-	}
-
-	function skipQuestion(dlIndex, dtIndex) {
-		progress.dlIndex = dlIndex;
-		progress.dtIndex = dtIndex;
-		handlePopupBack()
-	}
-
-	function answerCardItemClick(qa) {
-		const actQa = data.StListForSearch.find(item => item.stId == qa.stId);
-		skipQuestion(actQa.dlIndex, actQa.dtIndex)
-	}
-
-
-	function handleBack() {
-		uni.redirectTo({
-			url: "/pages/admin/Chengji/list"
-		})
-	}
-
-
-	function formatDuanluoList() {
-		let uIndex = 0; // 试题num
-		let iDuanluo = 0; // 段落num
-		let result = [];
-		for (const duanluo of data.duanluo) {
-			let paragraph = {
-				qas: [],
-			};
-			paragraph.name = duanluo.name;
-
-			let iQa = 0; // 当前试题序号
-			let order = 0; // 当前题型中第几题
-			for (const iDanxuan of duanluo.danxuan) {
-				iDanxuan.type = 'danxuan';
-				iDanxuan.marked = false;
-				iDanxuan.onlyNum = uIndex + 1;
-				iDanxuan.order = order;
-				iDanxuan.iQa = iQa;
-				paragraph.qas.push(iDanxuan);
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDanxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDanxuan.iQa,
-					num: iDanxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iDuoxuan of duanluo.duoxuan) {
-				iDuoxuan.type = 'duoxuan';
-				iDuoxuan.marked = false;
-				iDuoxuan.onlyNum = uIndex + 1;
-				iDuoxuan.order = order;
-				paragraph.qas.push(iDuoxuan);
-				iDuoxuan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDuoxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDuoxuan.iQa,
-					num: iDuoxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iPanduan of duanluo.panduan) {
-				iPanduan.type = 'panduan';
-				iPanduan.marked = false;
-				iPanduan.onlyNum = uIndex + 1;
-				iPanduan.order = order;
-				paragraph.qas.push(iPanduan);
-				iPanduan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iPanduan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iPanduan.iQa,
-					num: iPanduan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iTiankong of duanluo.tiankong) {
-				iTiankong.type = 'tiankong';
-				iTiankong.marked = false;
-				iTiankong.onlyNum = uIndex + 1;
-				iTiankong.order = order;
-				paragraph.qas.push(iTiankong);
-				iTiankong.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iTiankong.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iTiankong.iQa,
-					num: iTiankong.onlyNum
-				})
-			}
-			order = 0;
-			for (const iJianda of duanluo.jianda) {
-				iJianda.type = 'jianda';
-				iJianda.onlyNum = uIndex + 1;
-				iJianda.order = order;
-				iJianda.iQa = iQa;
-				paragraph.qas.push(iJianda);
-				iJianda.reply = '';
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iJianda.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iJianda.iQa,
-					num: iJianda.onlyNum
-				})
-			}
-			order = 0;
-			for (const iYuedu of duanluo.yuedu) {
-				iYuedu.type = 'yuedu';
-				iYuedu.onlyNum = uIndex + 1;
-				iYuedu.order = order;
-				iYuedu.iQa = iQa;
-
-				if (iYuedu.duoxuan && iYuedu.duoxuan.length) {
-					iYuedu.duoxuan.map((qIt) => {
-						qIt.reply = qIt.reply || [];
-						return qIt
-					})
-				}
-
-				if (iYuedu.tiankong && iYuedu.tiankong.length) {
-					iYuedu.tiankong.map((qIt) => {
-						qIt.reply = new Array(qIt.count).fill('');
-						return qIt;
-					});
-				}
-
-				paragraph.qas.push(iYuedu);
-				iYuedu.reply = [];
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iYuedu.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iYuedu.iQa,
-					num: iYuedu.onlyNum
-				})
-			}
-			iDuanluo++;
-			questionData.value.push(paragraph)
-
-		}
-	}
-
-	function handlePrev() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index > 0) {
-			const result = data.StListForSearch[index - 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-
-	}
-
-	function handleNext() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index < data.StListForSearch.length) {
-			const result = data.StListForSearch[index + 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-	}
-
-
-
-	function initPage() {
-		uni.setNavigationBarTitle({
-			title: '错题'
-		});
-		ctApi.getCuotiInfo({
-			hisId: hisId.value
-		}).then(res => {
-			data.duanluo = [res.data];
-			formatDuanluoList();
-		})
-	}
-
-	function handlePopupBack() {
-		popupRef.value.close()
-	}
-
-	function handleOpenCard() {
-		popupRef.value.open('top')
-	}
-</script>
-
-<style>
-
-</style>

+ 0 - 30
pages/cuoti/index.vue

@@ -1,30 +0,0 @@
-<template>
-	<custom-scroll-list-date-vue :refreshFn="getCuotiList" :defaultTab="1" ref="scrollRef" placeholder="请输入考试名称">
-		<template #default="{list}">
-			<scroll-list-card-cuoti v-for="(item,index) in list" :key="item.lxId" :data="item"
-				@btnClick="handleClick"></scroll-list-card-cuoti>
-		</template>
-	</custom-scroll-list-date-vue>
-</template>
-
-<script setup>
-	import scrollListCardCuoti from "@/components/score-list-card-cuoti/score-list-card-cuoti.vue";
-	import customScrollListDateVue from "@/components/custom-scroll-list/custom-scroll-list-date.vue";
-	import {
-		getCuotiList,
-	} from "@/api/cuoti.js";
-	import {
-		ref
-	} from "vue";
-
-	function handleClick(data) {
-		uni.navigateTo({
-			url: `/pages/cuoti/cuoti?hisId=${data.hisId}`
-		})	
-	}
-
-</script>
-
-<style lang="scss">
-
-</style>

+ 48 - 48
pages/demo/index.vue

@@ -1,50 +1,50 @@
-<template>
+<template>
 	<view class="lli-demo-page">
-		<uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入考试名称" bgColor="#F3F3F4" clearButton="auto" cancelButton="none" @confirm="search"/>
-		<view class="lli-status-box">
-		    <text class="status-item click">可以考试</text><text class="status-item">已结束</text>
-		</view>
-		<scroll-view class="demo-scroll-view" scroll-y="true">
-			<view class="content-view">
-				
-				<view class="lli-tc demo-title">------------咱们要用的默认按钮↓-------------</view>
-				<button class="lli-btn">页面次要操作 Normal</button>
-				<button class="lli-btn" loading="true" >页面主操作 Loading</button>
-				<button class="lli-btn" disabled="true" >页面次要操作 Disabled</button>
-				<view class="lli-tc demo-title">---------咱们要用的按钮plain(线性)↓----------</view>
-				<button class="lli-btn" plain="true">页面次要操作 Normal</button>
-				<button class="lli-btn" loading="true" plain="true">页面主操作 Loading</button>
-				<button class="lli-btn" disabled="true" plain="true">页面次要操作 Disabled</button>
-				<view class="lli-tc demo-title">------------其他组件定义color="#0550e5"-------------</view>	
-					<checkbox-group>
-						<label>
-							<checkbox value="cb" checked="true" color="#0550e5"/>选中
-						</label>
-						<label>
-							<checkbox value="cb" />未选中
-						</label>
-					</checkbox-group>
-					<view class="lli-tc demo-title">------------扩展组件-------------</view>
-						
-					<uni-section title="自定义样式" subTitle="使用 styles 属性 ,可以自定义输入框样式" type="line" padding>
-								<uni-easyinput v-model="value" placeholder="请输入内容"@input="input"></uni-easyinput>
-							</uni-section>
-			</view>
-		</scroll-view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				value:'',
-			}
-		},
-		methods: {
-			search:function(){},
-		}
-	}
+<!--		<uni-search-bar class="uni-mt-10" radius="100" placeholder="请输入考试名称" bgColor="#F3F3F4" clearButton="auto" cancelButton="none" @confirm="search"/>-->
+<!--		<view class="lli-status-box">-->
+<!--		    <text class="status-item click">可以考试</text><text class="status-item">已结束</text>-->
+<!--		</view>-->
+<!--		<scroll-view class="demo-scroll-view" scroll-y="true">-->
+<!--			<view class="content-view">-->
+
+<!--				<view class="lli-tc demo-title">&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;咱们要用的默认按钮↓-&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;</view>-->
+<!--				<button class="lli-btn">页面次要操作 Normal</button>-->
+<!--				<button class="lli-btn" loading="true" >页面主操作 Loading</button>-->
+<!--				<button class="lli-btn" disabled="true" >页面次要操作 Disabled</button>-->
+<!--				<view class="lli-tc demo-title">-&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;咱们要用的按钮plain(线性)↓&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;</view>-->
+<!--				<button class="lli-btn" plain="true">页面次要操作 Normal</button>-->
+<!--				<button class="lli-btn" loading="true" plain="true">页面主操作 Loading</button>-->
+<!--				<button class="lli-btn" disabled="true" plain="true">页面次要操作 Disabled</button>-->
+<!--				<view class="lli-tc demo-title">&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;其他组件定义color="#0550e5"-&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;</view>-->
+<!--					<checkbox-group>-->
+<!--						<label>-->
+<!--							<checkbox value="cb" checked="true" color="#0550e5"/>选中-->
+<!--						</label>-->
+<!--						<label>-->
+<!--							<checkbox value="cb" />未选中-->
+<!--						</label>-->
+<!--					</checkbox-group>-->
+<!--					<view class="lli-tc demo-title">&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;扩展组件-&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;</view>-->
+
+<!--					<uni-section title="自定义样式" subTitle="使用 styles 属性 ,可以自定义输入框样式" type="line" padding>-->
+<!--								<uni-easyinput v-model="value" placeholder="请输入内容"@input="input"></uni-easyinput>-->
+<!--							</uni-section>-->
+<!--			</view>-->
+<!--		</scroll-view>-->
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				value:'',
+			}
+		},
+		methods: {
+			search:function(){},
+		}
+	}
 </script>
 <style lang="scss">
 	.lli-demo-page{
@@ -62,5 +62,5 @@
 		2.扩展组件:已重置样式,可以直接用
 		3.内置组件:如果是有颜色的,需要添加color="#0550e5"(后期会改成动态的,第一版先这么加),btn也可以用demo写好的
 		4.自己写的样式尽量只用view,text标签,使用类选择器不要使用标签选择器 */
-</style>
-
+</style>
+

+ 0 - 74
pages/my/components/birthdayDialog.vue

@@ -1,74 +0,0 @@
-<template>
-	<uni-popup ref="birthdayPopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog birthday-dialog">
-		<view class="common-body-box">
-			<uni-calendar
-				ref="calendar"
-				:insert="true"
-				@change="dataConfirm"
-				 />
-			<view class="common-btn-box">
-				<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-				<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {ref,reactive} from "vue"
-	import {toast} from "@/utils/common";
-	const props = defineProps({
-	  notBtn: {
-	    type: String,
-	  	require: true,
-	    default: '取消'
-	  },
-	  okBtn: {
-	    type: String,
-	  	require: true,
-	    default: '确认'
-	  },
-	});
-	const time= ref('');
-	const birthdayPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	
-	function passClear(){
-		time.value = '';
-	}
-	
-	function dataConfirm(data){
-		time.value = data.fulldate;
-	}
-	
-	// 打开弹窗
-	function handleShow() {
-		birthdayPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		passClear();
-		birthdayPopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		if(time.value){
-			$emit('confirm-btn',time.value);
-			passClear();
-			birthdayPopup.value.close();
-		}else{
-			toast('请选择日期')
-		}
-		
-	}
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 0 - 81
pages/my/components/genderDialog.vue

@@ -1,81 +0,0 @@
-<template>
-	<uni-popup ref="genderPopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog">
-		<view class="common-body-box">
-			<view class="common-title">修改性别</view>
-			<view class="common-input-box">
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>性别:</text>
-					<uni-data-select
-						class="common-select"
-					    v-model="data.gender"
-					    :localdata="data.range"
-					    @change="change"
-					></uni-data-select>
-				</view>
-			</view>
-			<view class="common-btn-box">
-				<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-				<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {ref,reactive} from "vue"
-	const props = defineProps({
-	  notBtn: {
-	    type: String,
-	  	require: true,
-	    default: '取消'
-	  },
-	  okBtn: {
-	    type: String,
-	  	require: true,
-	    default: '确认'
-	  },
-	});
-	const data = reactive({
-		gender: '',
-		range:[
-		    { value: 0, text: "未知" },
-		    { value: 1, text: "男" },
-		    { value: 2, text: "女" },
-		]
-	})
-	const genderPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	
-	function change(data){
-		console.log('changedata',data);
-	}
-	
-	function passClear(){
-		data.gender = '';
-	}
-	// 打开弹窗
-	function handleShow() {
-		genderPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		passClear();
-		genderPopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		$emit('confirm-btn',data.gender);
-		passClear();
-		genderPopup.value.close();
-	}
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 7 - 11
pages/my/setting.vue

@@ -43,11 +43,9 @@
 		<real-name-dialog ref="realNameDialogRef" @confirm-btn="realNameBtn"></real-name-dialog>
 		<tel-dialog ref="telDialogRef" @confirm-btn="telBtn"></tel-dialog>
 		<password-dialog ref="passwordDialogRef" @confirm-btn="passwordBtn"></password-dialog>
-		<birthday-dialog ref="birthdayDialogRef" @confirm-btn="birthdayBtn"></birthday-dialog>
-		<gender-dialog ref="genderDialogRef" @confirm-btn="genderBtn"></gender-dialog>
-	</view>
-</template>
-
+	</view>
+</template>
+
 <script setup>
 import {reactive,ref} from "vue";
 import {logout} from '@/api/login.js'
@@ -59,8 +57,6 @@ import cacheManager from '@/utils/cacheManager.js';
 import realNameDialog from './components/realNameDialog.vue';
 import telDialog from './components/telDialog.vue';
 import passwordDialog from './components/passwordDialog.vue';
-import birthdayDialog from './components/birthdayDialog.vue';
-import genderDialog from './components/genderDialog.vue';
 
 let settingData = reactive({
 		icon: '',
@@ -230,8 +226,8 @@ let settingData = reactive({
 				passwordDialogRef.value.handleClose();
 			}
 		})
-	}
-</script>
-
-<style>
+	}
+</script>
+
+<style>
 </style>

+ 2 - 2
pages/my/zhengshu.vue

@@ -1,8 +1,8 @@
 <template>
 	<custom-scroll-list :hasSearcBar="false" :refreshFn="getZhengshuList" :hasTab="false" >
 		<template #default="{list}">
-			<scroll-list-card-zhengshu  v-for="(item,index) in list" :key="item.ksId"
-				:data="item"></scroll-list-card-zhengshu>
+	<!-- 		<scroll-list-card-zhengshu  v-for="(item,index) in list" :key="item.ksId"
+				:data="item"></scroll-list-card-zhengshu> -->
 		</template>
 	</custom-scroll-list>
 </template>