import { defineComponent, onMounted, reactive, ref } from 'vue'; import styles from './index.module.less'; import { List, Popup, DatePicker, Popover, Picker } from 'vant'; import request from '@/helpers/request'; import { useRoute, useRouter } from 'vue-router'; import OEmpty from '@/components/m-empty'; import MWxTip from '@/components/m-wx-tip'; import OSearch from '@/components/m-search'; import positionIcon from './images/position_icon.png'; import scIcon1 from './images/sc_icon1.png'; import scIcon2 from './images/sc_icon2.png'; import scIcon3 from './images/sc_icon3.png'; import schoolIcon from './images/school_icon.png'; import gradeIcon from './images/class_icon.png'; import { number } from 'echarts'; export default defineComponent({ name: 'statistics-detail', setup() { const route = useRoute(); const router = useRouter(); const tabName = ref('all'); const forms = reactive({ schoolName: '', id: route.query.id, yearStatus: false, schoolId: null, }); const refreshing = ref(false); const loading = ref(true); const state = reactive({ saveLoading: false, image: null as any, shareLoading: false, schoolInfo: {} as any, classList: [] as any, currentSort: 1, // 当前选中的排序方式 currentAsc: false, // 是否生序,默认是降序 gradeColumns: [], gradeStatus: false, gradePopShow: false, currentGrade: "", currentClass: "", gradeOptionIndex: [] as any, gradeContent: null as any, }); // 获取学校信息 const queryInfo = async () => { try { const res = await request.post( '/edu-app/open/meetingQuestionSetting/schoolStat', { data: { schoolAreaId: forms.id } } ); state.schoolInfo = res.data || {} // 构建年级、班级及联选择 const columns: any = [] res.data.classData.unshift({ currentClassList: [], currentGrade: '全部年级' }) res.data.classData.forEach((grade: any, index: number) => { let columnItem: any = {} columnItem.text = grade.currentGrade columnItem.value = 'grade' + index columnItem.children = [] grade.currentClassList.unshift('全部班级') if (grade.currentClassList?.length) { grade.currentClassList.forEach((classObj: any, cIdx: number) => { columnItem.children.push({ text: classObj, value: 'class' + cIdx }) }) } columns.push(columnItem) }) state.gradeColumns = columns // console.log('555',res, state.gradeColumns) } catch (error) { } } const queryList = async () => { try { const res = await request.post( '/edu-app/open/meetingQuestionSetting/schoolClass', { data: { schoolAreaId: forms.id, currentGrade: state.currentGrade, currentClass: state.currentClass, sortType: state.currentSort, asc: state.currentAsc } } ); state.classList = res.data || [] // console.log('222',res) } catch (error) { } } const filterList = (num: number) => { if (state.currentSort !== num) { state.currentAsc = false } else { state.currentAsc = !state.currentAsc } state.currentSort = num; queryList() } const formatNumberWithComma = (num: number | string) => { // 将数字转换为字符串,去掉小数点后面的部分 let [integer, decimal] = num.toString().split('.'); // 使用正则表达式添加千分位分隔符 integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ','); // 如果有小数部分,则保留小数部分 return decimal ? `${integer}.${decimal}` : integer; } onMounted(async () => { await queryInfo() queryList() }); return () => (
{state.schoolInfo.schoolName}
支持学校开展
支持率
{item.currentGrade||''}{item.currentClass || ''}
参与调查
支持学校开展
支持率