|  | @@ -0,0 +1,365 @@
 | 
	
		
			
				|  |  | +import { defineComponent, onMounted, reactive, ref, nextTick } from 'vue';
 | 
	
		
			
				|  |  | +import styles from './index.module.less';
 | 
	
		
			
				|  |  | +import { List, Popup, DatePicker, Popover, Field, 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 searchIcon from './images/search_icon.png';
 | 
	
		
			
				|  |  | +import searchBtn from './images/search_btn.png';
 | 
	
		
			
				|  |  | +import totalBoxBg from './images/total_box_icon.png';
 | 
	
		
			
				|  |  | +import { drawCircle } from './drawGraph'
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +export default defineComponent({
 | 
	
		
			
				|  |  | +  name: 'questionnaire-statistics-new',
 | 
	
		
			
				|  |  | +  setup() {
 | 
	
		
			
				|  |  | +    const route = useRoute();
 | 
	
		
			
				|  |  | +    const router = useRouter();
 | 
	
		
			
				|  |  | +    const tabName = ref('all');
 | 
	
		
			
				|  |  | +    const forms = reactive({
 | 
	
		
			
				|  |  | +      schoolName: '',
 | 
	
		
			
				|  |  | +      id: route.query.id,
 | 
	
		
			
				|  |  | +      // id: '1687275949971763202',
 | 
	
		
			
				|  |  | +      yearStatus: false,
 | 
	
		
			
				|  |  | +      schoolId: null,
 | 
	
		
			
				|  |  | +      classList: [] as any,
 | 
	
		
			
				|  |  | +      page: 1,
 | 
	
		
			
				|  |  | +      rows: 20,
 | 
	
		
			
				|  |  | +      isClick: false,
 | 
	
		
			
				|  |  | +      tenantId: route.query.id,
 | 
	
		
			
				|  |  | +      areaList: [] as any,
 | 
	
		
			
				|  |  | +      areaColumns: [] as any,
 | 
	
		
			
				|  |  | +      areaStatus: false,
 | 
	
		
			
				|  |  | +      areaPopupShow: false,
 | 
	
		
			
				|  |  | +      areaOptionIndex: [] as any,
 | 
	
		
			
				|  |  | +      currentArea: null as any, // 当前的区域
 | 
	
		
			
				|  |  | +      currentAreaInfo: null as any,
 | 
	
		
			
				|  |  | +      schoolList: [] as any,
 | 
	
		
			
				|  |  | +      totalInfo: {} as any,
 | 
	
		
			
				|  |  | +      sortType: 'DESC' as any, // 排序方式,ASC(升序)/DESC(降序)
 | 
	
		
			
				|  |  | +      sortField: 'totalNum', // totalNum: 总人数,supportNum:支持人数,supportRate:支持率
 | 
	
		
			
				|  |  | +      areaIdx: 0 as any,
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const refreshing = ref(false);
 | 
	
		
			
				|  |  | +    const loading = ref(true);
 | 
	
		
			
				|  |  | +    const finished = ref(false);
 | 
	
		
			
				|  |  | +    const showContact = ref(false);
 | 
	
		
			
				|  |  | +    const list = ref([]);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const queryArea = async () => {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const { data } = await request.get(
 | 
	
		
			
				|  |  | +          `/edu-app/open/tenantInfo/getArea?tenantId=${forms.tenantId}`, {
 | 
	
		
			
				|  |  | +            hideLoading: false,
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +        forms.areaList = data || []
 | 
	
		
			
				|  |  | +        data.forEach((item: any, index: number) => {
 | 
	
		
			
				|  |  | +          const {provinceName='',cityName='',regionName=''} = item
 | 
	
		
			
				|  |  | +          forms.areaColumns.push({
 | 
	
		
			
				|  |  | +            text: provinceName + ' ' + cityName + ' ' + (regionName ? regionName : ''),
 | 
	
		
			
				|  |  | +            value: index
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        forms.currentArea = forms.areaColumns.length ? forms.areaColumns[forms.areaIdx].text : ''
 | 
	
		
			
				|  |  | +        forms.currentAreaInfo = forms.areaList.length ? forms.areaList[forms.areaIdx] : null;
 | 
	
		
			
				|  |  | +      } catch (error) {
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      await queryInfo();
 | 
	
		
			
				|  |  | +      await getList();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const queryInfo = async () => {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const { provinceCode='',cityCode='',regionCode='' } = forms.currentAreaInfo
 | 
	
		
			
				|  |  | +        const res = await request.post(
 | 
	
		
			
				|  |  | +          '/edu-app/open/schoolMeetingQuestion/areaSummarySum',
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            data: {
 | 
	
		
			
				|  |  | +              tenantId: forms.tenantId,
 | 
	
		
			
				|  |  | +              schoolName: forms.schoolName,
 | 
	
		
			
				|  |  | +              provinceCode,
 | 
	
		
			
				|  |  | +              cityCode,
 | 
	
		
			
				|  |  | +              districtCode: regionCode,
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +        forms.totalInfo = res.data|| {}
 | 
	
		
			
				|  |  | +      } catch (error) {
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const getList = async () => {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const { provinceCode='',cityCode='',regionCode='' } = forms.currentAreaInfo
 | 
	
		
			
				|  |  | +        const res = await request.post(
 | 
	
		
			
				|  |  | +          '/edu-app/open/schoolMeetingQuestion/areaSummary',
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            data: {
 | 
	
		
			
				|  |  | +              tenantId: forms.tenantId,
 | 
	
		
			
				|  |  | +              schoolName: forms.schoolName,
 | 
	
		
			
				|  |  | +              provinceCode,
 | 
	
		
			
				|  |  | +              cityCode,
 | 
	
		
			
				|  |  | +              districtCode: regionCode,
 | 
	
		
			
				|  |  | +              sortType: forms.sortType,
 | 
	
		
			
				|  |  | +              sortField: forms.sortField,
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        forms.schoolList = res?.data || []
 | 
	
		
			
				|  |  | +      } catch {
 | 
	
		
			
				|  |  | +        // 
 | 
	
		
			
				|  |  | +      } finally {
 | 
	
		
			
				|  |  | +        //
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const state = reactive({
 | 
	
		
			
				|  |  | +      saveLoading: false,
 | 
	
		
			
				|  |  | +      image: null as any,
 | 
	
		
			
				|  |  | +      shareLoading: false
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const skipDetail = (id: any) => {
 | 
	
		
			
				|  |  | +      sessionStorage.setItem('areaIdx', forms.areaIdx)
 | 
	
		
			
				|  |  | +      router.push({
 | 
	
		
			
				|  |  | +        path: '/statistics-detail-new',
 | 
	
		
			
				|  |  | +        query: {
 | 
	
		
			
				|  |  | +          id,
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const filterList = (val: string) => {
 | 
	
		
			
				|  |  | +      if (forms.sortField !== val) {
 | 
	
		
			
				|  |  | +        forms.sortType = 'DESC'
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        forms.sortType = forms.sortType === 'DESC' ? 'ASC' : 'DESC'
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      forms.sortField = val
 | 
	
		
			
				|  |  | +      getList()
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    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 () => {
 | 
	
		
			
				|  |  | +      // console.log('刷新页面')
 | 
	
		
			
				|  |  | +      forms.areaIdx = sessionStorage.getItem('areaIdx') || 0;
 | 
	
		
			
				|  |  | +      await queryArea();
 | 
	
		
			
				|  |  | +      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 += 1; // 每次增加1%
 | 
	
		
			
				|  |  | +          if (percentage > Math.max(forms.totalInfo.supportRate, forms.totalInfo.participationRate)) {
 | 
	
		
			
				|  |  | +            clearInterval(interval); // 停止定时器
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }, 25); // 每25ms更新一次
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    return () => (
 | 
	
		
			
				|  |  | +      <div class={[styles.statisBody]}>
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +        forms.areaColumns.length > 1 && 
 | 
	
		
			
				|  |  | +        <div class={[styles.spColumn, forms.areaStatus && styles.openVal]} onClick={() => {
 | 
	
		
			
				|  |  | +          forms.areaOptionIndex = [Number(forms.areaIdx)]
 | 
	
		
			
				|  |  | +          forms.areaStatus = true
 | 
	
		
			
				|  |  | +        }}>
 | 
	
		
			
				|  |  | +          <img src={positionIcon} />
 | 
	
		
			
				|  |  | +          <p>{forms.currentArea}</p>
 | 
	
		
			
				|  |  | +          <i></i>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        {/** 参与学校统计 */}
 | 
	
		
			
				|  |  | +        <div class={styles.sTotal}>
 | 
	
		
			
				|  |  | +          <div class={styles.stOne}>
 | 
	
		
			
				|  |  | +            <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>
 | 
	
		
			
				|  |  | +          <div class={styles.stOne}>
 | 
	
		
			
				|  |  | +            <div class={styles.soTitle}><span class={styles.sRed}>{formatNumberWithComma(forms.totalInfo.totalNum||0)}</span><i>人</i></div>
 | 
	
		
			
				|  |  | +            <p class={styles.soDesc}><img src={scIcon1} />参与调查</p>
 | 
	
		
			
				|  |  | +          </div> 
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        {/** 圆环统计 */}
 | 
	
		
			
				|  |  | +        <div class={styles.sRing}>
 | 
	
		
			
				|  |  | +          <div class={[styles.srItem,styles.srItemOne]}>
 | 
	
		
			
				|  |  | +            <div class={styles.siLeft}>
 | 
	
		
			
				|  |  | +              <canvas id="circle1" width="70" height="70"></canvas>
 | 
	
		
			
				|  |  | +              <p>支持率</p>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div class={styles.siRight}>
 | 
	
		
			
				|  |  | +              <div><span class={styles.sBlue}>{formatNumberWithComma(forms.totalInfo.supportNum||0)}</span><i>人</i></div>
 | 
	
		
			
				|  |  | +              <p>支持开展</p>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +          <div class={styles.srItem}>
 | 
	
		
			
				|  |  | +            <div class={styles.siLeft}>
 | 
	
		
			
				|  |  | +              <canvas id="circle2" width="70" height="70"></canvas>
 | 
	
		
			
				|  |  | +              <p>参加率</p>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div class={styles.siRight}>
 | 
	
		
			
				|  |  | +              <div><span class={styles.sGreen}>{formatNumberWithComma(forms.totalInfo.participationNum||0)}</span><i>人</i></div>
 | 
	
		
			
				|  |  | +              <p>报名参加</p>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        {/** 搜索栏 */}
 | 
	
		
			
				|  |  | +        <div class={styles.searechInfo}>
 | 
	
		
			
				|  |  | +            <img src={searchIcon} class={styles.searchIcon} />
 | 
	
		
			
				|  |  | +             <Field
 | 
	
		
			
				|  |  | +                clearable={true}
 | 
	
		
			
				|  |  | +                inputAlign="left"
 | 
	
		
			
				|  |  | +                placeholder="请输入学校名称"
 | 
	
		
			
				|  |  | +                autocomplete="off"
 | 
	
		
			
				|  |  | +                center
 | 
	
		
			
				|  |  | +                maxlength={30}
 | 
	
		
			
				|  |  | +                v-model={forms.schoolName}
 | 
	
		
			
				|  |  | +                onUpdate:modelValue={(val: any) => {
 | 
	
		
			
				|  |  | +                  // 输入框内容变化时触发
 | 
	
		
			
				|  |  | +                  // console.log('搜索内容变化',val)
 | 
	
		
			
				|  |  | +                  forms.schoolName = val
 | 
	
		
			
				|  |  | +                  getList()
 | 
	
		
			
				|  |  | +                }}>
 | 
	
		
			
				|  |  | +              </Field>   
 | 
	
		
			
				|  |  | +              <img src={searchBtn} class={styles.searchBtn} onClick={getList} />         
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        {/** 排序栏 */}
 | 
	
		
			
				|  |  | +        <ul class={styles.sortColumn}>
 | 
	
		
			
				|  |  | +            <li class={forms.sortField === 'totalNum' && styles.sortActive} onClick={() => filterList('totalNum')}>
 | 
	
		
			
				|  |  | +              <span>参与调查人数</span>
 | 
	
		
			
				|  |  | +              <i class={[(forms.sortField === 'totalNum' && forms.sortType === 'DESC') && styles.actDown, (forms.sortField === 'totalNum' && forms.sortType === 'ASC') && styles.actUp]}></i>
 | 
	
		
			
				|  |  | +            </li>
 | 
	
		
			
				|  |  | +            <li class={forms.sortField === 'supportNum' && styles.sortActive} onClick={() => filterList('supportNum')}>
 | 
	
		
			
				|  |  | +              <span>支持人数</span>
 | 
	
		
			
				|  |  | +              <i class={[(forms.sortField === 'supportNum' && forms.sortType === 'DESC') && styles.actDown, (forms.sortField === 'supportNum' && forms.sortType === 'ASC') && styles.actUp]}></i>
 | 
	
		
			
				|  |  | +            </li>
 | 
	
		
			
				|  |  | +            <li class={forms.sortField === 'supportRate' && styles.sortActive} onClick={() => filterList('supportRate')}>
 | 
	
		
			
				|  |  | +              <span>支持率</span>
 | 
	
		
			
				|  |  | +              <i class={[(forms.sortField === 'supportRate' && forms.sortType === 'DESC') && styles.actDown, (forms.sortField === 'supportRate' && forms.sortType === 'ASC') && styles.actUp]}></i>
 | 
	
		
			
				|  |  | +            </li>        
 | 
	
		
			
				|  |  | +            <li class={forms.sortField === 'participationNum' && styles.sortActive} onClick={() => filterList('participationNum')}>
 | 
	
		
			
				|  |  | +              <span>参加人数</span>
 | 
	
		
			
				|  |  | +              <i class={[(forms.sortField === 'participationNum' && forms.sortType === 'DESC') && styles.actDown, (forms.sortField === 'participationNum' && forms.sortType === 'ASC') && styles.actUp]}></i>
 | 
	
		
			
				|  |  | +            </li>       
 | 
	
		
			
				|  |  | +            <li class={forms.sortField === 'participationRate' && styles.sortActive} onClick={() => filterList('participationRate')}>
 | 
	
		
			
				|  |  | +              <span>参加率</span>
 | 
	
		
			
				|  |  | +              <i class={[(forms.sortField === 'participationRate' && forms.sortType === 'DESC') && styles.actDown, (forms.sortField === 'participationRate' && forms.sortType === 'ASC') && styles.actUp]}></i>
 | 
	
		
			
				|  |  | +            </li>                                    
 | 
	
		
			
				|  |  | +        </ul>
 | 
	
		
			
				|  |  | +        {/** 学校列表 */}
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          forms.schoolList.length ?
 | 
	
		
			
				|  |  | +          <div class={styles.scList}>
 | 
	
		
			
				|  |  | +            {forms.schoolList.map((item: any) => (
 | 
	
		
			
				|  |  | +              <div class={styles.sItem} onClick={() => skipDetail(item.schoolAreaId)}>
 | 
	
		
			
				|  |  | +                <div class={styles.itemTile}>
 | 
	
		
			
				|  |  | +                  <img src={schoolIcon} />
 | 
	
		
			
				|  |  | +                  <p>{item.schoolName}</p>
 | 
	
		
			
				|  |  | +                  <i></i>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class={[styles.itemDesc]}><span class={styles.sRed}>{formatNumberWithComma(item.totalNum || 0)}</span> 人参与调查</div>
 | 
	
		
			
				|  |  | +                <ul class={styles.itemContent}>
 | 
	
		
			
				|  |  | +                  <li>
 | 
	
		
			
				|  |  | +                    <div class={styles.icTop}>
 | 
	
		
			
				|  |  | +                      <span class={styles.sRed}>{formatNumberWithComma(item.supportNum || 0)}</span><i>人</i>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <p>支持开展</p>
 | 
	
		
			
				|  |  | +                  </li>
 | 
	
		
			
				|  |  | +                  <li>
 | 
	
		
			
				|  |  | +                    <div class={styles.icTop}>
 | 
	
		
			
				|  |  | +                      <span class={styles.sBlue}>{Number(item.supportRate || 0).toFixed(2)}%</span>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <p>支持率</p>
 | 
	
		
			
				|  |  | +                  </li>
 | 
	
		
			
				|  |  | +                  <li>
 | 
	
		
			
				|  |  | +                    <div class={styles.icTop}>
 | 
	
		
			
				|  |  | +                      <span class={styles.sGreen}>{formatNumberWithComma(item.participationNum || 0)}</span><i>人</i>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <p>报名参加</p>
 | 
	
		
			
				|  |  | +                  </li>     
 | 
	
		
			
				|  |  | +                  <li>
 | 
	
		
			
				|  |  | +                    <div class={styles.icTop}>
 | 
	
		
			
				|  |  | +                      <span class={styles.sGreen}>{Number(item.participationRate || 0).toFixed(2)}%</span>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <p>参加率</p>
 | 
	
		
			
				|  |  | +                  </li>                                               
 | 
	
		
			
				|  |  | +                </ul>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            ))}
 | 
	
		
			
				|  |  | +          </div> : 
 | 
	
		
			
				|  |  | +          <OEmpty description="暂无内容" class={styles.emptyC} />
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        {/* 区域 */}
 | 
	
		
			
				|  |  | +        <Popup
 | 
	
		
			
				|  |  | +          v-model:show={forms.areaStatus}
 | 
	
		
			
				|  |  | +          position="bottom"
 | 
	
		
			
				|  |  | +          round
 | 
	
		
			
				|  |  | +          safeAreaInsetBottom
 | 
	
		
			
				|  |  | +          lazyRender={false}
 | 
	
		
			
				|  |  | +          class={'popupBottomSearch'}
 | 
	
		
			
				|  |  | +          onOpen={() => {
 | 
	
		
			
				|  |  | +            forms.areaPopupShow = true;
 | 
	
		
			
				|  |  | +          }}
 | 
	
		
			
				|  |  | +          onClosed={() => {
 | 
	
		
			
				|  |  | +            forms.areaPopupShow = false;
 | 
	
		
			
				|  |  | +          }}>
 | 
	
		
			
				|  |  | +          {forms.areaPopupShow && (
 | 
	
		
			
				|  |  | +            <Picker
 | 
	
		
			
				|  |  | +              showToolbar
 | 
	
		
			
				|  |  | +              v-model={forms.areaOptionIndex}
 | 
	
		
			
				|  |  | +              columns={forms.areaColumns}
 | 
	
		
			
				|  |  | +              onCancel={() => (forms.areaStatus = false)}
 | 
	
		
			
				|  |  | +              onConfirm={(val: any) => {
 | 
	
		
			
				|  |  | +                // forms.gradeAndClassIndex = [val.selectedOptions[0].value, val.selectedOptions[1].value]
 | 
	
		
			
				|  |  | +                // forms.currentArea = val.selectedOptions[0].text;
 | 
	
		
			
				|  |  | +                // forms.currentClass = val.selectedOptions[1].text;
 | 
	
		
			
				|  |  | +                forms.currentArea = val.selectedOptions[0].text
 | 
	
		
			
				|  |  | +                forms.areaOptionIndex = [val.selectedOptions[0].value]
 | 
	
		
			
				|  |  | +                forms.areaIdx = val.selectedOptions[0].value
 | 
	
		
			
				|  |  | +                forms.areaStatus = false;
 | 
	
		
			
				|  |  | +                forms.currentAreaInfo = forms.areaList[val.selectedOptions[0].value]
 | 
	
		
			
				|  |  | +                queryInfo()
 | 
	
		
			
				|  |  | +                getList()
 | 
	
		
			
				|  |  | +                console.log('选择1111',val,forms.areaOptionIndex)
 | 
	
		
			
				|  |  | +              }}
 | 
	
		
			
				|  |  | +            />
 | 
	
		
			
				|  |  | +          )}
 | 
	
		
			
				|  |  | +        </Popup>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        {/* <MWxTip /> */}
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +});
 |