123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- import OHeader from '@/components/o-header'
- import OSticky from '@/components/o-sticky'
- import { Field, CellGroup, Icon, Button, showToast, ActionSheet } from 'vant'
- import { defineComponent, reactive, ref, onMounted } from 'vue'
- import styles from './index.module.less'
- import { useRouter } from 'vue-router'
- import { state as globalState } from '@/state'
- // import locIcon from './images/loc-icon.png'
- import request from '@/helpers/request'
- export default defineComponent({
- name: 'unit-create',
- setup() {
- const router = useRouter()
- const state = reactive({
- actions: [] as any,
- classList: [] as any,
- showPopoverOrchestra: false,
- showPopoverClass: false
- })
- const forms = ref({
- orchestraId: '',
- orchestraName: '',
- classGroupName: '',
- classGroupId: '',
- emergencyContact: '',
- addressLongitudeLatitude: '',
- unitName: '',
- unitId: ''
- } as any)
- const schoolImageRef = ref()
- const submitInfo = async () => {
- sessionStorage.setItem('unit-create', JSON.stringify(forms.value))
- }
- const chioseLesson = () => {
- if (!forms.value.classGroupId) {
- showToast('请选择测验班级')
- return
- }
- sessionStorage.setItem('unit-create', JSON.stringify(forms.value))
- router.push({ path: '/unit-Lesson', query: { classGroupId: forms.value.classGroupId } })
- }
- onMounted(() => {
- forms.value = { ...JSON.parse(sessionStorage.getItem('unit-create') || '{}') } as any
- getOrchestraList()
- })
- const getOrchestraList = async () => {
- try {
- const res = await request.post('/api-school/orchestra/page', {
- data: { page: 1, rows: 9999, status: 'DONE' }
- })
- state.actions = res.data.rows.map((item) => {
- return {
- name: item.name,
- value: item.id as string
- }
- })
- } catch (e: any) {
- const message = e.message
- showToast(message)
- }
- }
- const checkOrchestra = async (val: any) => {
- forms.value.orchestraId = val.value
- forms.value.orchestraName = val.name
- forms.value.classGroupName = ''
- forms.value.classGroupId = ''
- if (val.value) {
- try {
- const res = await request.post('/api-teacher/classGroup/page', {
- data: { page: 1, rows: 9999, orchestraId: val.value }
- })
- state.classList = res.data.rows.map((item) => {
- return {
- name: item.name,
- value: item.id as string
- }
- })
- if (state.classList.length < 1) {
- showToast('当前乐团暂无班级')
- }
- } catch (e) {
- console.log(e, 'cuowu')
- }
- } else {
- state.classList = []
- }
- state.showPopoverOrchestra = false
- }
- const checkClass = async (val: any) => {
- forms.value.classGroupName = val.name
- forms.value.classGroupId = val.value
- state.showPopoverClass = false
- }
- return () => (
- <>
- <div class={styles.schoolEidtWrap}>
- <div class={styles.eidtWrap}>
- {/* onClick={() => setAddress()} */}
- <CellGroup inset>
- <Field
- v-model={forms.value.orchestraName}
- placeholder="选择乐团"
- disabled
- input-align="right"
- onClick={() => {
- state.showPopoverOrchestra = true
- }}
- >
- {{
- extra: () => (
- <div class={styles.loctionIconWrap}>
- <Icon name="arrow" color="#d8d8d8"></Icon>
- {/* <Image width={19} height={18} src={locIcon}></Image> */}
- </div>
- ),
- label: () => <p class={styles.addP}>选择乐团</p>
- }}
- </Field>
- <Field
- rows={3}
- v-model={forms.value.classGroupName}
- maxlength={50}
- placeholder="测验班级"
- disabled
- input-align="right"
- onClick={() => {
- if (!forms.value.orchestraId) {
- showToast('请先选择乐团')
- } else {
- state.showPopoverClass = true
- }
- }}
- >
- {{
- extra: () => (
- <div class={styles.loctionIconWrap}>
- <Icon name="arrow" color="#d8d8d8"></Icon>
- {/* <Image width={19} height={18} src={locIcon}></Image> */}
- </div>
- ),
- label: () => <p class={styles.addP}>测验班级</p>
- }}
- </Field>
- <Field
- rows={3}
- v-model={forms.value.unitName}
- maxlength={50}
- placeholder="测验内容"
- disabled
- input-align="right"
- onClick={chioseLesson}
- >
- {{
- extra: () => (
- <div class={styles.loctionIconWrap}>
- <Icon name="arrow" color="#d8d8d8"></Icon>
- {/* <Image width={19} height={18} src={locIcon}></Image> */}
- </div>
- ),
- label: () => <p class={styles.addP}>测验内容</p>
- }}
- </Field>
- </CellGroup>
- </div>
- <OSticky position="bottom">
- <div class={'btnGroup'}>
- <Button block round type="primary">
- 下一步
- </Button>
- </div>
- </OSticky>
- </div>
- <ActionSheet
- v-model:show={state.showPopoverOrchestra}
- title="选择乐团"
- actions={state.actions}
- onSelect={checkOrchestra}
- ></ActionSheet>
- <ActionSheet
- v-model:show={state.showPopoverClass}
- title="选择班级"
- actions={state.classList}
- onSelect={checkClass}
- ></ActionSheet>
- </>
- )
- }
- })
|