|
@@ -24,13 +24,6 @@ export default defineComponent({
|
|
|
setup() {
|
|
|
const route = useRoute();
|
|
|
const router = useRouter();
|
|
|
- const areaTenantName = sessionStorage.getItem('areaTenantName') || ''
|
|
|
- const shareTitle = areaTenantName + '音乐(器乐)数字化转型问卷统计';
|
|
|
- const weChatShare = useWeChatShare(
|
|
|
- shareTitle,
|
|
|
- '科技赋能音乐(器乐)学习,在每一个孩子心中奏响美妙的乐章。',
|
|
|
- window.location.origin + '/classroom-app/shareImg/questionnaire-statistics-new.png'
|
|
|
- );
|
|
|
|
|
|
const tabName = ref('all');
|
|
|
const forms = reactive({
|
|
@@ -70,6 +63,7 @@ export default defineComponent({
|
|
|
const res = await request.post(
|
|
|
'/edu-app/open/meetingQuestionSetting/schoolStat',
|
|
|
{
|
|
|
+ hideLoading: false,
|
|
|
data: {
|
|
|
schoolAreaId: forms.id
|
|
|
}
|
|
@@ -151,9 +145,8 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
const onRefresh = async () => {
|
|
|
- console.log('刷新111')
|
|
|
- state.intervalOne = null;
|
|
|
- clearInterval(state.intervalOne); // 停止定时器
|
|
|
+ // console.log('刷新111')
|
|
|
+ clearDataAnimation();
|
|
|
finished.value = false;
|
|
|
// 重新加载数据
|
|
|
// 将 loading 设置为 true,表示处于加载状态
|
|
@@ -162,6 +155,10 @@ export default defineComponent({
|
|
|
refreshing.value = false
|
|
|
};
|
|
|
|
|
|
+ const clearDataAnimation = () => {
|
|
|
+ clearInterval(state.intervalOne); // 停止定时器
|
|
|
+ state.intervalOne = null;
|
|
|
+ }
|
|
|
|
|
|
const initData = async () => {
|
|
|
await queryInfo()
|
|
@@ -183,25 +180,37 @@ export default defineComponent({
|
|
|
}
|
|
|
percentage += 1; // 每次增加1%
|
|
|
if (percentage > Math.max(state.schoolInfo.supportStudentRate, state.schoolInfo.participationStudentRate)) {
|
|
|
- clearInterval(state.intervalOne); // 停止定时器
|
|
|
- state.intervalOne = null;
|
|
|
+ clearDataAnimation();
|
|
|
// percentage = 0;
|
|
|
}
|
|
|
}, 25); // 每25ms更新一次
|
|
|
});
|
|
|
}
|
|
|
- onMounted(async () => {
|
|
|
+
|
|
|
+ const initWxShare = () => {
|
|
|
+ const shareTitle = (state.schoolInfo.schoolName||'') + '音乐(器乐)数字化转型调查统计';
|
|
|
+ const weChatShare = useWeChatShare(
|
|
|
+ shareTitle,
|
|
|
+ '科技赋能音乐(器乐)学习,在每一个孩子心中奏响美妙的乐章。',
|
|
|
+ window.location.origin + '/classroom-app/shareImg/statistics-school.png'
|
|
|
+ );
|
|
|
if (browser().weixin) {
|
|
|
weChatShare.getAppSignature()
|
|
|
}
|
|
|
- initData()
|
|
|
+ }
|
|
|
+
|
|
|
+ onMounted(async () => {
|
|
|
+ await initData()
|
|
|
+ nextTick(() => {
|
|
|
+ initWxShare()
|
|
|
+ });
|
|
|
});
|
|
|
onUnmounted(() => {
|
|
|
- clearInterval(state.intervalOne); // 停止定时器
|
|
|
- state.intervalOne = null;
|
|
|
+ clearDataAnimation();
|
|
|
});
|
|
|
return () => (
|
|
|
<OFullRefresh
|
|
|
+ freshDisabled={state.gradeStatus}
|
|
|
v-model:modelValue={refreshing.value}
|
|
|
onRefresh={onRefresh}
|
|
|
class={styles.refreshC}>
|
|
@@ -281,48 +290,51 @@ export default defineComponent({
|
|
|
</li>
|
|
|
</ul>
|
|
|
{/** 班级列表 */}
|
|
|
- <div class={styles.scList}>
|
|
|
- {
|
|
|
- state.classList.map((item: any) => (
|
|
|
- <div class={styles.sItem}>
|
|
|
- <div class={[styles.itemTile, styles.itemTileDetail]}>
|
|
|
- <img src={gradeIcon} />
|
|
|
- <p>{item.currentGrade||''}{item.currentClass || ''}</p>
|
|
|
- <div class={styles.itRight}><span class={styles.sRed}>{formatNumberWithComma(item.studentNum || 0)}</span> 人参与调查</div>
|
|
|
- </div>
|
|
|
- <ul class={styles.itemContent}>
|
|
|
- <li>
|
|
|
- <div class={styles.icTop}>
|
|
|
- <span class={styles.sBlue}>{formatNumberWithComma(item.supportStudentNum || 0)}</span><i>人</i>
|
|
|
- </div>
|
|
|
- <p>支持开展</p>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <div class={styles.icTop}>
|
|
|
- <span class={styles.sBlue}>{Number(item.supportStudentRate || 0).toFixed(2)}%</span>
|
|
|
- </div>
|
|
|
- <p>支持率</p>
|
|
|
- </li>
|
|
|
+ {
|
|
|
+ state.classList.length ?
|
|
|
+ <div class={styles.scList}>
|
|
|
+ {
|
|
|
+ state.classList.map((item: any) => (
|
|
|
+ <div class={styles.sItem}>
|
|
|
+ <div class={[styles.itemTile, styles.itemTileDetail]}>
|
|
|
+ <img src={gradeIcon} />
|
|
|
+ <p>{item.currentGrade||''}{item.currentClass || ''}</p>
|
|
|
+ <div class={styles.itRight}><span class={styles.sRed}>{formatNumberWithComma(item.studentNum || 0)}</span> 人参与调查</div>
|
|
|
+ </div>
|
|
|
+ <ul class={styles.itemContent}>
|
|
|
+ <li>
|
|
|
+ <div class={styles.icTop}>
|
|
|
+ <span class={styles.sBlue}>{formatNumberWithComma(item.supportStudentNum || 0)}</span><i>人</i>
|
|
|
+ </div>
|
|
|
+ <p>支持开展</p>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <div class={styles.icTop}>
|
|
|
+ <span class={styles.sBlue}>{Number(item.supportStudentRate || 0).toFixed(2)}%</span>
|
|
|
+ </div>
|
|
|
+ <p>支持率</p>
|
|
|
+ </li>
|
|
|
|
|
|
- <li>
|
|
|
- <div class={styles.icTop}>
|
|
|
- <span class={styles.sGreen}>{formatNumberWithComma(item.participationStudentNum || 0)}</span><i>人</i>
|
|
|
- </div>
|
|
|
- <p>报名参加</p>
|
|
|
- </li>
|
|
|
-
|
|
|
- <li>
|
|
|
- <div class={styles.icTop}>
|
|
|
- <span class={styles.sGreen}>{Number(item.participationStudentRate || 0).toFixed(2)}%</span>
|
|
|
- </div>
|
|
|
- <p>参加率</p>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
- ))
|
|
|
- }
|
|
|
- </div>
|
|
|
+ <li>
|
|
|
+ <div class={styles.icTop}>
|
|
|
+ <span class={styles.sGreen}>{formatNumberWithComma(item.participationStudentNum || 0)}</span><i>人</i>
|
|
|
+ </div>
|
|
|
+ <p>报名参加</p>
|
|
|
+ </li>
|
|
|
|
|
|
+ <li>
|
|
|
+ <div class={styles.icTop}>
|
|
|
+ <span class={styles.sGreen}>{Number(item.participationStudentRate || 0).toFixed(2)}%</span>
|
|
|
+ </div>
|
|
|
+ <p>参加率</p>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ ))
|
|
|
+ }
|
|
|
+ </div> :
|
|
|
+ <OEmpty description="暂无内容" class={styles.emptyC} />
|
|
|
+ }
|
|
|
{/* 班级 */}
|
|
|
<Popup
|
|
|
v-model:show={state.gradeStatus}
|