|
@@ -17,6 +17,7 @@ import totalBoxBg from './images/total_box_icon.png';
|
|
|
import { drawCircle } from './drawGraph'
|
|
|
import useWeChatShare from '@/hooks/useWeChatShare';
|
|
|
import { browser } from '@/helpers/utils';
|
|
|
+import OFullRefresh from '@/components/m-full-refresh';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'questionnaire-statistics-new',
|
|
@@ -70,6 +71,11 @@ export default defineComponent({
|
|
|
value: index
|
|
|
})
|
|
|
})
|
|
|
+ // 没有缓存
|
|
|
+ if (!sessionStorage.getItem('areaIdx')) {
|
|
|
+ const defaultIndex = data.findIndex((item: any) => item.defaultFlag)
|
|
|
+ forms.areaIdx = defaultIndex ? Number(defaultIndex) : 0
|
|
|
+ }
|
|
|
forms.currentArea = forms.areaColumns.length ? forms.areaColumns[forms.areaIdx].text : ''
|
|
|
forms.currentAreaInfo = forms.areaList.length ? forms.areaList[forms.areaIdx] : null;
|
|
|
} catch (error) {
|
|
@@ -95,6 +101,21 @@ export default defineComponent({
|
|
|
}
|
|
|
);
|
|
|
forms.totalInfo = res.data|| {}
|
|
|
+ nextTick(() => {
|
|
|
+ let percentage = 0;
|
|
|
+ const interval = setInterval(() => {
|
|
|
+ if (percentage <= forms.totalInfo.supportRate) {
|
|
|
+ drawCircle('circle1', 1, percentage)
|
|
|
+ }
|
|
|
+ if (percentage <= forms.totalInfo.participationRate) {
|
|
|
+ drawCircle('circle2', 2, percentage)
|
|
|
+ }
|
|
|
+ percentage += 2; // 每次增加1%
|
|
|
+ if (percentage > Math.max(forms.totalInfo.supportRate, forms.totalInfo.participationRate)) {
|
|
|
+ clearInterval(interval); // 停止定时器
|
|
|
+ }
|
|
|
+ }, 25); // 每25ms更新一次
|
|
|
+ });
|
|
|
} catch (error) {
|
|
|
|
|
|
}
|
|
@@ -174,13 +195,23 @@ export default defineComponent({
|
|
|
const weChatShare = useWeChatShare(
|
|
|
shareTitle,
|
|
|
'科技赋能音乐(器乐)学习,在每一个孩子心中奏响美妙的乐章。',
|
|
|
- window.location.origin + '/classroom-app/shareImg/question-share.png'
|
|
|
+ window.location.origin + '/classroom-app/shareImg/questionnaire-statistics-new.png'
|
|
|
);
|
|
|
if (browser().weixin) {
|
|
|
weChatShare.getAppSignature()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const onRefresh = async () => {
|
|
|
+ console.log('刷新111')
|
|
|
+ finished.value = false;
|
|
|
+ // 重新加载数据
|
|
|
+ // 将 loading 设置为 true,表示处于加载状态
|
|
|
+ loading.value = true;
|
|
|
+ await queryArea();
|
|
|
+ refreshing.value = false
|
|
|
+ };
|
|
|
+
|
|
|
onMounted(async () => {
|
|
|
console.log('刷新页面')
|
|
|
forms.areaIdx = sessionStorage.getItem('areaIdx') || 0;
|
|
@@ -191,24 +222,14 @@ export default defineComponent({
|
|
|
await queryArea();
|
|
|
nextTick(() => {
|
|
|
initWxShare()
|
|
|
-
|
|
|
- let percentage = 0;
|
|
|
- const interval = setInterval(() => {
|
|
|
- if (percentage <= forms.totalInfo.supportRate) {
|
|
|
- drawCircle('circle1', 1, percentage)
|
|
|
- }
|
|
|
- if (percentage <= forms.totalInfo.participationRate) {
|
|
|
- drawCircle('circle2', 2, percentage)
|
|
|
- }
|
|
|
- percentage += 1; // 每次增加1%
|
|
|
- if (percentage > Math.max(forms.totalInfo.supportRate, forms.totalInfo.participationRate)) {
|
|
|
- clearInterval(interval); // 停止定时器
|
|
|
- }
|
|
|
- }, 25); // 每25ms更新一次
|
|
|
});
|
|
|
});
|
|
|
|
|
|
return () => (
|
|
|
+ <OFullRefresh
|
|
|
+ v-model:modelValue={refreshing.value}
|
|
|
+ onRefresh={onRefresh}
|
|
|
+ class={styles.refreshC}>
|
|
|
<div class={[styles.statisBody]}>
|
|
|
{
|
|
|
forms.areaColumns.length > 1 &&
|
|
@@ -224,7 +245,7 @@ export default defineComponent({
|
|
|
|
|
|
{/** 参与学校统计 */}
|
|
|
<div class={styles.sTotal}>
|
|
|
- <div class={styles.stOne}>
|
|
|
+ <div class={[styles.stOne, styles.stOneLine]}>
|
|
|
<div class={styles.soTitle}><span class={styles.sOrange}>{formatNumberWithComma(forms.totalInfo.schoolNum||0)}</span><i>所</i></div>
|
|
|
<p class={styles.soDesc}><img src={schoolIcon} />参与学校</p>
|
|
|
</div>
|
|
@@ -238,7 +259,7 @@ export default defineComponent({
|
|
|
<div class={styles.sRing}>
|
|
|
<div class={[styles.srItem,styles.srItemOne]}>
|
|
|
<div class={styles.siLeft}>
|
|
|
- <canvas id="circle1" width="70" height="70"></canvas>
|
|
|
+ <canvas id="circle1" width="85" height="85"></canvas>
|
|
|
<p>支持率</p>
|
|
|
</div>
|
|
|
<div class={styles.siRight}>
|
|
@@ -248,7 +269,7 @@ export default defineComponent({
|
|
|
</div>
|
|
|
<div class={styles.srItem}>
|
|
|
<div class={styles.siLeft}>
|
|
|
- <canvas id="circle2" width="70" height="70"></canvas>
|
|
|
+ <canvas id="circle2" width="85" height="85"></canvas>
|
|
|
<p>参加率</p>
|
|
|
</div>
|
|
|
<div class={styles.siRight}>
|
|
@@ -271,8 +292,13 @@ export default defineComponent({
|
|
|
v-model={forms.schoolName}
|
|
|
onUpdate:modelValue={(val: any) => {
|
|
|
// 输入框内容变化时触发
|
|
|
- // console.log('搜索内容变化',val)
|
|
|
+ console.log('搜索内容变化',val)
|
|
|
forms.schoolName = val
|
|
|
+ sessionStorage.setItem('qsFilterParams', JSON.stringify({
|
|
|
+ schoolName: forms.schoolName,
|
|
|
+ sortType: forms.sortType,
|
|
|
+ sortField: forms.sortField,
|
|
|
+ }))
|
|
|
getList()
|
|
|
}}>
|
|
|
</Field>
|
|
@@ -345,6 +371,8 @@ export default defineComponent({
|
|
|
</div> :
|
|
|
<OEmpty description="暂无内容" class={styles.emptyC} />
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
{/* 区域 */}
|
|
|
<Popup
|
|
|
v-model:show={forms.areaStatus}
|
|
@@ -373,6 +401,7 @@ export default defineComponent({
|
|
|
forms.areaOptionIndex = [val.selectedOptions[0].value]
|
|
|
forms.areaIdx = val.selectedOptions[0].value
|
|
|
forms.areaStatus = false;
|
|
|
+ forms.schoolName = '';
|
|
|
forms.currentAreaInfo = forms.areaList[val.selectedOptions[0].value]
|
|
|
queryInfo()
|
|
|
getList()
|
|
@@ -384,6 +413,7 @@ export default defineComponent({
|
|
|
|
|
|
{/* <MWxTip /> */}
|
|
|
</div>
|
|
|
+ </OFullRefresh>
|
|
|
);
|
|
|
}
|
|
|
});
|