{"version":3,"sources":["webpack:///./src/utils/popup-mixin.ts","webpack:///./src/components/optional-subject/score-rank/index.tsx","webpack:///./src/components/select/art-sport-select/index.tsx","webpack:///./src/components/optional-subject/fill-in-art/index.tsx","webpack:///./src/pages/index/user/optional-subject/utils.ts","webpack:///./src/pages/index/user/optional-subject/OptionalSubject.tsx","webpack:///./src/pages/index/user/optional-subject/index.tsx"],"names":["Vue","extend","model","prop","event","props","visible","Boolean","data","internalVisible","this","watch","cur","ScoreRank","TSXComponent","render","h","arguments","FormItem","title","_Form","Field","_Input","_EditOutlined","__decorate","Prop","String","Component","name","artSportTreeData","require","ArtSportSelect","constructor","labelValue","label","_Select","height","disable","args","control","content","handleChange","value","_TreeSelect","async","node","list","CommonModule","getArtSubject","map","item","artSubjectName","artSubjectId","isLeaf","change","type","FillInArt","componentFactoryOf","mixin","popupMixin","create","initValues","Object","subjectLabel","methods","handleSubmit","values","$emit","_Popup","v","_NavBar","clickLeft","yup","subject","string","required","rank","trim","score","_ActionBar","text","htmlType","createOpenApi","close","createPopupMethodApi","fillInArt","open","addOrEdit","body","onSuccess","OptionalSubject","_userModule$userInfo","_userModule$userInfo2","_userModule$userInfo3","_userModule$userInfo4","_userModule$userInfo5","currentData","userModule","userInfo","optionalSubject","_cloneDeep","sportScoreRank","SportScoreRank","artScoreRank","ArtScoreRank","isSubmiting","tip","artSubjectMap","getSaveTip","removeArtRank","index","splice","$set","removeSportRank","saveScoreRank","key","scoreRankItem","SportSubjectId","SportSubjectName","undefined","hasSame","findIndex","push","resetData","instance","_Toast","loading","subjectScoreRank","concat","sr","success","msg","code","setScoreRank","getUserInfo","wishListModule","removeList","useInPopup","_Dialog","alert","onOk","$router","back","$createElement","info","actions","handle","save","color","okBtn","res","AdvertModule","getAdvert","showAreaCode","areaCode","moduleCode","result","text1","reduce","prev","current","mounted","loadTip","loadArtSubject","beforeDestroy","saveTip","_NoticeBar","marginBottom","array","min","max","valuesChange","allValues","SubjectSelect","RankScoreItem","id","delete","edit","_Grid","_Button","_AddOutlined","click","default_1","beforeRouteLeave","to","from","next","optionSubject","$refs","JSON","stringify","ok","window","confirm","PageView","PageStatus","SUCCESS"],"mappings":"q5BAMeA,eAAIC,OAAO,CACxBC,MAAO,CACLC,KAAM,UACNC,MAAO,UAETC,MAAO,CACLC,QAASC,SAEXC,OACE,MAAO,CACLC,gBAAiBC,KAAKJ,UAG1BK,MAAO,CACLL,QAAQM,GACNF,KAAKD,gBAAkBG,M,wBCT7B,IAAAC,EAAA,UAAqBA,EAArB,cAAuCC,OAG9BC,SAAM,MAAAC,EAAAC,UAAA,GACX,OAAAD,EAAAE,OAAA,cACmBR,KAAKS,QAAK,CAAAH,EAAAI,IAAAC,MAAA,aACR,UAAO,CAAAL,EAAAM,IAAA,aAEf,SAAQ,6BAAAC,IAAA,aAGA,IAAG,YACJ,eAASP,EAAAI,IAAAC,MAAA,aAER,SAAM,CAAAL,EAAAM,IAAA,aAEd,SAAQ,6BAAAC,IAAA,aAGA,IAAG,YACJ,oBAKxB,OAvBEC,eAAA,CADCC,eAAKC,S,4BADab,EAASW,eAAA,CAD7BG,eAAU,CAAEC,KAAM,gBACEf,GAyBrBA,GAzBA,GAAqBA,Q,wFCCrB,MAAMgB,EAA+BC,EAAQ,QAG7C,IAAAC,EAAA,UAAqBA,EAArB,cAA4CjB,OAA5CkB,c,oBAMS,KAAAC,WAAavB,KAAKwB,MAClBnB,SAAM,MAAAC,EAAAC,UAAA,GACX,OAAAD,EAAAmB,IAAA,0BAEuB,CACjBC,OAAQ,QACT,uBAES1B,KAAK2B,QAAO,MAChB,SAAQ,YACF,SAAQ,0BAETC,IACJA,IACH5B,KAAKuB,WAAa,MAErB,YACY,CACXM,QAASA,IACF7B,KAAKuB,WACHvB,KAAKuB,WADYjB,EAAA,cAAmB,kBAAgB,YAG7DwB,QAASA,EAAGC,eAAcC,WAAO1B,EAAA2B,IAAA,OAEvB,mBAAkB,aACjBD,EAAK,SACFb,EAAgB,SAChBe,UACR,GAAmB,MAAfC,EAAKH,MAAe,CACtB,MAAMI,QAAaC,OAAaC,gBAChC,OAAOF,EAAKG,IAAKC,IACR,CACL/B,MAAO+B,EAAKC,eACZT,MAAOQ,EAAKE,aACZC,QAAQ,KAId,MAAO,KACR,WACSC,CAACZ,GAAiBG,WAC1BnC,KAAKuB,WAAaY,EAAK1B,OAAS,GAChCsB,EAAaC,EAAO,CAAER,MAAOW,EAAK1B,MAAOuB,MAAOG,EAAKH,iBAMrE,OApDElB,eAAA,CADCC,eAAK,CAAE8B,KAAM7B,U,4BAGdF,eAAA,CADCC,eAAK,CAAE8B,KAAMhD,W,8BAHKwB,EAAcP,eAAA,CADlCG,eAAU,CAAEC,KAAM,sBACEG,GAsDrBA,GAtDA,GAAqBA,Q,gCCWrB,MAAMyB,GAAYC,kCACfC,MAAMC,GACNC,OAAO,CACNhC,KAAM,cACNvB,MAAO,CACLwD,WAAYC,OACZC,aAAcrC,QAEhBsC,QAAS,CACPC,aAAaC,GACXxD,KAAKyD,MAAM,UAAWD,GACtBxD,KAAKD,iBAAkB,IAG3BM,SAAM,MAAAC,EAAAC,UAAA,IACE,gBAAER,GAAoBC,KAC5B,OAAAM,EAAAoD,IAAA,oBAEgB,cAAa,QAChB3D,EAAe,gDAOf,SAAO,kBAJE4D,IAChB3D,KAAKyD,MAAM,SAAUE,MACtB,CAAArD,EAAAsD,IAAA,sCAMO,eAAa,cACNC,IAAM7D,KAAKD,iBAAkB,KAAKO,EAAAI,IAAA,sBAGhCV,KAAKmD,WAAU,SACrB,EAAK,QACN,EAAK,eACIW,IAAG,CAClBC,QAASD,EAAIE,SAASC,SAAS,WAC/BC,KAAMA,gBAAK,GAAMC,OAAOF,SAAS,WACjCG,MAAOA,gBAAM,GAAMD,OAAOF,SAAS,aACnC,WACQjE,KAAKuD,eAAY,CAAAjD,EAAAE,OAAA,cACX,SAAM,CAAAF,EAAAI,IAAAC,MAAA,aACH,YAAS,CAAAL,EAAAe,EAAA,cACDrB,KAAKqD,aAAY,UAAarD,KAAKmD,kBAAU7C,EAAAH,EAAA,cAGvD,cAAUG,EAAA+D,IAAA,gBACP,CAClB,CACEC,KAAM,MACNzB,KAAM,UACN0B,SAAU,qBAa1B,MAAM,cAAEC,GAAeC,MAAKA,IAAKC,KAAqB5B,IAAW,GAIpD6B,GAAY,CACvBC,KAAMJ,KACNC,MAAKA,IC1FD,SAAUI,IAAU,KAAEC,EAAI,aAAEzB,EAAY,UAAE0B,GAAgC,IAC9E,OAAOJ,GAAUC,KAAK,CACpBzB,WAAY2B,EACZzB,eACA0B,UAAYvB,IACVuB,GAAaA,EAAUvB,M,qDCiB7B,IAAAwB,GAAA,UAAqBA,EAArB,cAA6C5E,OAA7CkB,cAAA,IAAA2D,EAAAC,EAAAC,EAAAC,EAAAC,E,oBAKS,KAAAC,YAAc,CACnBpB,MAAyB,QAAnBe,EAAAM,OAAWC,gBAAQ,IAAAP,OAAA,EAAnBA,EAAqBf,OAAQ,GACnCE,OAA0B,QAAnBc,EAAAK,OAAWC,gBAAQ,IAAAN,OAAA,EAAnBA,EAAqBd,QAAS,GACrCqB,gBAAiBC,IAA6B,QAA7BP,EAAUI,OAAWC,gBAAQ,IAAAL,OAAA,EAAnBA,EAAqBM,kBAAoB,GACpEE,eAAgBD,IAA6B,QAA7BN,EAAUG,OAAWC,gBAAQ,IAAAJ,OAAA,EAAnBA,EAAqBQ,iBAAmB,GAClEC,aAAcH,IAA6B,QAA7BL,EAAUE,OAAWC,gBAAQ,IAAAH,OAAA,EAAnBA,EAAqBS,eAAiB,IASzD,KAAA3C,WAAauC,IAAU1F,KAAKsF,aAC5B,KAAA1F,SAAU,EACV,KAAAmG,aAAc,EACd,KAAAC,IAAc,GACd,KAAAC,cAA4C,GATnD,cACE,MAAMT,EAAWD,OAAWC,SAC5B,OAAOU,gBAAWV,EAAU,eASvBW,cAAcC,GACnBpG,KAAKsF,YAAYO,aAAaQ,OAAOD,EAAO,GAC5CpG,KAAKsG,KAAKtG,KAAKsF,YAAa,eAAgBtF,KAAKsF,YAAYO,cAGxDU,gBAAgBH,GACrBpG,KAAKsF,YAAYK,eAAeU,OAAOD,EAAO,GAC9CpG,KAAKsG,KAAKtG,KAAKsF,YAAa,iBAAkBtF,KAAKsF,YAAYK,gBAG1Da,cAAc1B,EAAsB2B,EAAwCL,GACjF,MAAMM,EAAwB,iBAARD,EAClB,CACA/D,aAAcoC,EAAKf,QACnBtB,eAAgBzC,KAAKiG,cAAcnB,EAAKf,SAAStB,eACjDyB,KAAMY,EAAKZ,KACXE,MAAOU,EAAKV,OAEZ,CACAuC,eAAgB7B,EAAKf,QACrB6C,iBAAkB,KAClB1C,KAAMY,EAAKZ,KACXE,MAAOU,EAAKV,OAEhB,QAAcyC,IAAVT,EACFpG,KAAKsG,KAAKtG,KAAKsF,YAAYmB,GAAML,EAAOM,OACnC,CACL,MAAMI,EAAU9G,KAAKsF,YAAYmB,GAAKM,UAAWvE,GACnC,iBAARiE,EAAiCjE,EAAKE,eAAiBoC,EAAKf,QACzDvB,EAAKmE,iBAAmB7B,EAAKf,SAEtC,GAAI+C,GAAW,EAEb,YADA9G,KAAKwG,cAAc1B,EAAM2B,EAAKK,GAGhC9G,KAAKsF,YAAYmB,GAAKO,KAAKN,GAC3B1G,KAAKsG,KAAKtG,KAAKsF,YAAamB,EAAKzG,KAAKsF,YAAYmB,KAI/CQ,YACLjH,KAAKsF,YAActF,KAAKmD,WAGnB,WAAWiB,EAAeF,EAAcuB,GAC7CzF,KAAK+F,aAAc,EACnB,MAAMmB,EAAWC,IAAMC,QAAQ,SACzB,eAAEzB,EAAc,aAAEE,GAAiB7F,KAAKsF,YACxC9C,EAAO,CAAC,EAAG4B,GAASA,EAAQ,GAAIF,GAAQA,EAAO,IACrD,IAAImD,EAA+B,CAAC7E,GACpC6E,EAAmBA,EAAiBC,OAAOzB,EAAatD,IAAKgF,GAAO,EAAEA,EAAG7E,cAAe6E,EAAGnD,OAAQmD,EAAGrD,QACtGmD,EAAmBA,EAAiBC,OAAO3B,EAAepD,IAAKgF,GAAO,EAAEA,EAAGZ,gBAAiBY,EAAGnD,OAAQmD,EAAGrD,QAC1G,MAAM,QAAEsD,EAAO,IAAEC,EAAG,KAAEC,SAAeC,gBAAa,CAAEN,mBAAkB5B,oBACtEyB,EAASzC,QACJ+C,GAMHxH,KAAKmD,WAAauC,IAAU1F,KAAKsF,aACjCC,OAAWqC,aAAY,GACV,SAATF,IACFG,QAAeC,WAAW,aAC1BD,QAAeC,WAAW,gBAExB9H,KAAK+H,WACP/H,KAAKyD,MAAM,SAEXuE,IAAOC,MAAM,CACXxH,MAAO,KACPqB,QAAS,QACToG,KAAMA,KACJlI,KAAKmI,QAAQC,YAlBnBJ,IAAOC,MAAM,CAAEnG,QAAS2F,IACX,QAATC,GACF1H,KAAKiH,aAsBTjH,KAAK+F,aAAc,EAGd,mBAAmBvC,GAAsB,KAAA6E,eAC9C,IAAK7E,EAAOY,QAAUZ,EAAOU,KAC3B,OAAOiD,IAAMmB,KAAK,gBAEpBN,IAAOpD,KAAK,CACVnE,MAAO,QACPJ,OAASC,GACPA,EAAA,aAAkB,uBAAsB,oBAAoBN,KAAKgG,OAEnEuC,QAAS,CACP,CACE1F,KAAM,KACNyB,KAAM,KACNkE,OAAQtG,gBACAlC,KAAKyI,KACTjF,EAAOY,MACPZ,EAAOU,KACPV,EAAOiC,kBAEF,IAGX,CACE5C,KAAM,SACN6F,MAAO,UACPpE,KAAM,OAGVqE,MAAO,OAIJ,gBACL,MAAMC,QAAYC,QAAaC,UAAU,CACvCC,aAAc,MACdC,SAAU,KACVC,WAAY,QAEd,GAAIL,EAAIpB,SAAWoB,EAAIM,OAAQ,CAC7B,MAAM,OAAEA,GAAWN,EACbpG,EAAO0G,EAAO,GAChB1G,IACFxC,KAAKgG,IAAMxD,EAAK2G,OAAS,KAKxB,uBACL,MAAM/G,QAAaC,OAAaC,gBAChCtC,KAAKiG,cAAgB7D,EAAKgH,OAAO,CAACC,EAAMC,KACtCD,EAAKC,EAAQ5G,cAAgB4G,EACtBD,GACN,IAGEE,UACLvJ,KAAKwJ,UACLxJ,KAAKyJ,iBAGAC,gBACL1J,KAAKiH,YAGA5G,SAAM,MAAAC,EAAAC,UAAA,IACL,YAAE+E,GAAgBtF,KACxB,OAAAM,EAAA,aACa,oBAAkB,CAEzBN,KAAK2J,SAAOrJ,EAAAsJ,IAAA,OAEM,CAACC,aAAc,QAAO,YAAQ7J,KAAK2J,QAAO,gBAAcrJ,EAAAI,IAAA,gBAE9D,EAAK,eAAmBoD,IAAG,CACvC2B,gBAAiB3B,EAAIgG,QAAQC,IAAI,EAAG,aAAaC,IAAI,GACrD5F,MAAOA,gBAAM,GAAMH,SAAS,QAAQE,OACpCD,KAAMA,gBAAK,GAAMC,SACjB,cACa,CACbsB,gBAAiBH,EAAYG,gBAC7BrB,MAAOkB,EAAYlB,MACnBF,KAAMoB,EAAYpB,OACnB,iBACe+F,EAAGC,gBACjBlK,KAAKsF,YAAc,IACdtF,KAAKsF,eACL4E,IAEN,OACSlK,KAAKuD,eAAY,CAAAjD,EAAAE,OAAA,cACT,SAAM,CAAAF,EAAAI,IAAAC,MAAA,aACH,oBAAiB,CAAAL,EAAA6J,YAAA7J,EAAAE,OAAA,cAIpB,wBAAqB,CAAAF,EAAAI,IAAAC,MAAA,aAClB,UAAO,CAAAL,EAAAM,IAAA,aACV,SAAQ,eAAAC,IAAA,aAEL,IAAG,YACJ,eAASP,EAAAI,IAAAC,MAAA,aAER,SAAM,CAAAL,EAAAM,IAAA,aACT,SAAQ,eAAAC,IAAA,aAEL,IAAG,YACJ,wBAAgBP,EAAA,aAGvB,iBAAcA,EAAAE,OAAA,cACT,kBAAiB,YAAa,IAAK,CAE/C8E,EAAYO,aAAatD,IAAI,EAAG2B,OAAME,QAAO1B,eAAcD,kBAAkB2D,IAAK9F,EAAA8J,OAAA,KAEzE1H,EAAY,YACXwB,EAAI,mBAEHE,EAAK,QAeH,CACPiG,GAAI3H,EACJxB,KAAMuB,IACP,WAjBS6H,KACRtK,KAAKmG,cAAcC,IACpB,KACOmE,IAAM1F,GAAU,CACtBC,KAAM,CACJZ,MAAOA,EACPE,OAAQA,EACRL,QAASrB,GAEXW,aAAcZ,EACdsC,UAAYvB,IACVxD,KAAKwG,cAAchD,EAAQ,eAAgB4C,UAUnDd,EAAYK,eAAepD,IAAI,EAAG2B,OAAME,QAAOuC,iBAAgBC,oBAAoBR,IAAK9F,EAAA8J,OAAA,KAE/EzD,EAAc,YACbzC,EAAI,mBAEHE,EAAK,QAeH,CACPiG,GAAI1D,EACJzF,KAAM0F,IACP,WAjBS0D,KACRtK,KAAKuG,gBAAgBH,IACtB,KACOmE,IAAM1F,GAAU,CACtBC,KAAM,CACJZ,MAAOA,EACPE,OAAQA,EACRL,QAAS4C,GAEXtD,aAAcuD,EACd7B,UAAYvB,IACVxD,KAAKwG,cAAchD,EAAQ,iBAAkB4C,UAOnD9F,EAAAkK,IAAA,UAEI,SAAQ,YAAU,WAAQ,CAAAlK,EAAA,aACrB,yBAAuB,CAAAA,EAAAmK,IAAA,aAEzB,UAAS,wBAGT,KAAI,KAAAC,KAAA,UAEAC,IAAM9F,GAAU,CACvBE,UAAYvB,IACa,MAAnBA,EAAOO,QACT/D,KAAKwG,cAAchD,EAAQ,kBAE3BxD,KAAKwG,cAAchD,EAAQ,qBAG/B,oBAAAlD,EAAA+D,IAAA,gBAOC,CACP,CAAEC,KAAM,KAAMzB,KAAM,UAAW0B,SAAU,oBAMvD,OA3SEzD,eAAA,CADCC,eAAKlB,U,iCAFamF,EAAelE,eAAA,CADnCG,eAAU,CAAEC,KAAM,sBACE8D,GA8SrBA,GA9SA,GAAqBA,UCrBrB,IAAA4F,GAAA,UAAAA,EAAA,cAA6BxK,OACpByK,iBAAiBC,EAAWC,EAAaC,GAC9C,MAAMC,EAAqBjL,KAAKkL,MAAM,kBACtC,GAAID,GACEE,KAAKC,UAAUH,EAAc3F,eAAiB6F,KAAKC,UAAUH,EAAc9H,YAE7E,YADA6H,IAIJ,MAAMK,EAAKC,OAAOC,QAAQ,+BACtBF,EACFL,IAEAA,GAAK,GAGF3K,SAAM,MAAAC,EAAAC,UAAA,GACX,OAAAD,EAAAkL,OAAA,cACkB,SAAQ,WAAaC,OAAWC,UAAO,CAAApL,EAAA0E,GAAA,KAChC,uBAI7B,OAvBA4F,EAAA9J,eAAA,CADCG,eAAU,CAAEC,KAAM,2B,GAwBnB0J,GAvBA,G","file":"js/chunk-1597d440.731e0807.js","sourcesContent":["import Vue from 'vue';\n\nexport interface PopupBaseProps {\n visible?: boolean;\n}\n\nexport default Vue.extend({\n model: {\n prop: 'visible',\n event: 'change',\n },\n props: {\n visible: Boolean,\n },\n data() {\n return {\n internalVisible: this.visible,\n };\n },\n watch: {\n visible(cur: boolean) {\n this.internalVisible = cur;\n },\n },\n});\n","import TSXComponent from '@/utils/tsx-component';\nimport FormItem from '../../form-item';\nimport { Form, Input } from '@ohu-mobile/core';\nimport { EditOutlined } from '@ohu-mobile/icons';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\nexport interface ScoreRankProps {\n title?: string;\n}\n\n@Component({ name: 'score-rank' })\nexport default class ScoreRank extends TSXComponent {\n @Prop(String)\n public title!: string;\n public render() {\n return (\n \n \n \n \n \n \n \n \n );\n }\n}\n","import TSXComponent from '@/utils/tsx-component';\nimport Component from 'vue-class-component';\nimport { Select, TreeSelect, TreeNode, InternalTreeNode } from '@ohu-mobile/core';\nimport { Prop } from 'vue-property-decorator';\nimport { CommonModule } from '@/store/modules/common';\nimport './index.scss';\n\n\n\nexport interface ArtSportSelectProps {\n label?: string;\n disable?: boolean;\n}\nconst artSportTreeData: TreeNode[] = require('./data.json');\n\n@Component({ name: 'art-sport-select' })\nexport default class ArtSportSelect extends TSXComponent {\n @Prop({ type: String })\n public label!: string;\n @Prop({ type: Boolean })\n public disable!: boolean;\n\n public labelValue = this.label;\n public render() {\n return (\n {\n if (!args) {\n this.labelValue = '';\n }\n }}\n scopedSlots={{\n control: () => {\n if (!this.labelValue) { return 选择报考科类; }\n return this.labelValue;\n },\n content: ({ handleChange, value }) => (\n {\n if (node.value === '3') {\n const list = await CommonModule.getArtSubject();\n return list.map((item) => {\n return {\n title: item.artSubjectName,\n value: item.artSubjectId,\n isLeaf: true,\n };\n });\n }\n return [];\n }}\n onChange={(value: string, { node }: { node: TreeNode }) => {\n this.labelValue = node.title || '';\n handleChange(value, { label: node.title, value: node.value });\n }} />\n ),\n }} />\n );\n }\n}\n","import { Popup, NavBar, ActionBar, Form, Toast, Dialog, VueEventWrapper } from '@ohu-mobile/core';\nimport popupMixin, { PopupBaseProps } from '@/utils/popup-mixin';\nimport FormItem from '../../form-item';\nimport { componentFactoryOf } from 'vue-tsx-support';\nimport ScoreRank from '../score-rank';\nimport ArtSportSelect from '../../select/art-sport-select';\nimport { rank, score } from '@/utils/validate-rules';\nimport { ScoreRankModel } from '@/api';\nimport createPopupMethodApi, { MethodBaseOptions } from '@ohu-mobile/core/lib/_utils/createPopupMethodApi';\nimport './index.scss';\n\nexport interface FillInArtProps extends PopupBaseProps {\n initValues?: ScoreRankModel;\n subjectLabel?: string;\n}\n\nexport interface FillInArtEvents {\n onSuccess: FillInArtModel;\n onChange: boolean;\n}\n\nexport interface FillInArtModel {\n subject: string;\n rank: string;\n score: string;\n}\n\nconst FillInArt = componentFactoryOf()\n .mixin(popupMixin)\n .create({\n name: 'fill-in-art',\n props: {\n initValues: Object,\n subjectLabel: String,\n },\n methods: {\n handleSubmit(values: FillInArtModel) {\n this.$emit('success', values);\n this.internalVisible = false;\n },\n },\n render() {\n const { internalVisible } = this;\n return (\n {\n this.$emit('change', v);\n }}\n fullscreen\n position=\"right\">\n this.internalVisible = false}>\n \n ({\n subject: yup.string().required('请选择选考科目'),\n rank: rank(true).trim().required('位次号是必填的'),\n score: score(true).trim().required('分数是必填的'),\n })}\n onSubmit={this.handleSubmit}>\n \n \n \n \n \n \n \n \n \n \n );\n },\n });\n\nexport default FillInArt;\n\n\nconst { createOpenApi, close } = createPopupMethodApi(FillInArt, true);\n\nexport type OpenFillInArtOptions = MethodBaseOptions & FillInArtProps & VueEventWrapper;\n\nexport const fillInArt = {\n open: createOpenApi(),\n close,\n};\n","import { fillInArt, FillInArtModel } from '@/components/optional-subject/fill-in-art';\nimport { ScoreRankModel } from '@/api';\n\nexport interface AddOrEditOptions {\n body?: ScoreRankModel;\n subjectLabel?: string;\n onSuccess?: (body: FillInArtModel) => void;\n}\n\nexport function addOrEdit({ body, subjectLabel, onSuccess }: AddOrEditOptions = {}) {\n return fillInArt.open({\n initValues: body,\n subjectLabel,\n onSuccess: (values) => {\n onSuccess && onSuccess(values);\n },\n });\n}\n","import TSXComponent from '@/utils/tsx-component';\nimport Component from 'vue-class-component';\nimport { Form, Input, Bottom, ActionBar, Button, Grid, Toast, Dialog, Popup, NavBar, NoticeBar } from '@ohu-mobile/core';\nimport FormItem from '@/components/form-item';\nimport SubjectSelect from '@/components/select/subject-select';\nimport { EditOutlined, AddOutlined } from '@ohu-mobile/icons';\nimport { userModule } from '@/store/modules/user';\nimport RankScoreItem from '@/components/rank-score-item';\nimport { score, rank } from '@/utils/validate-rules';\nimport { SetSubjectBody, ArtScoreRank, SportScoreRank, setScoreRank, ArtSubject } from '@/api';\nimport { addOrEdit } from './utils';\nimport { AdvertModule } from '@/store/modules/advert';\nimport { FillInArtModel } from '@/components/optional-subject/fill-in-art';\nimport { cloneDeep } from 'lodash';\nimport { Prop } from 'vue-property-decorator';\nimport { wishListModule } from '@/store/modules/wish-list';\nimport { getSaveTip } from '@/utils/getSaveTip';\nimport { CommonModule } from '@/store/modules/common';\n\nimport './index.scss';\n\n\nexport interface OptionalSubjectProps {\n useInPopup?: boolean;\n}\n\nexport interface OptionalSubjectEvents {\n onClose?: void;\n}\n\n@Component({ name: 'optional-subject' })\nexport default class OptionalSubject extends TSXComponent {\n\n @Prop(Boolean)\n public useInPopup!: boolean;\n\n public currentData = {\n rank: userModule.userInfo?.rank || '',\n score: userModule.userInfo?.score || '',\n optionalSubject: cloneDeep(userModule.userInfo?.optionalSubject) || [],\n sportScoreRank: cloneDeep(userModule.userInfo?.SportScoreRank) || [],\n artScoreRank: cloneDeep(userModule.userInfo?.ArtScoreRank) || [],\n };\n\n\n get saveTip() {\n const userInfo = userModule.userInfo;\n return getSaveTip(userInfo, '当前账号不允许保存成绩');\n }\n\n public initValues = cloneDeep(this.currentData);\n public visible = false;\n public isSubmiting = false;\n public tip: string = '';\n public artSubjectMap: Record = {};\n\n public removeArtRank(index: number) {\n this.currentData.artScoreRank.splice(index, 1);\n this.$set(this.currentData, 'artScoreRank', this.currentData.artScoreRank);\n }\n\n public removeSportRank(index: number) {\n this.currentData.sportScoreRank.splice(index, 1);\n this.$set(this.currentData, 'sportScoreRank', this.currentData.sportScoreRank);\n }\n\n public saveScoreRank(body: FillInArtModel, key: 'artScoreRank' | 'sportScoreRank', index?: number) {\n const scoreRankItem = key === 'artScoreRank'\n ? {\n artSubjectId: body.subject,\n artSubjectName: this.artSubjectMap[body.subject].artSubjectName,\n rank: body.rank,\n score: body.score,\n } as ArtScoreRank\n : {\n SportSubjectId: body.subject,\n SportSubjectName: '体育',\n rank: body.rank,\n score: body.score,\n } as SportScoreRank;\n if (index !== undefined) {\n this.$set(this.currentData[key], index, scoreRankItem);\n } else {\n const hasSame = this.currentData[key].findIndex((item: any) => {\n if (key === 'artScoreRank') { return item.artSubjectId === body.subject; }\n return item.SportSubjectId === body.subject;\n });\n if (hasSame >= 0) {\n this.saveScoreRank(body, key, hasSame);\n return;\n }\n this.currentData[key].push(scoreRankItem as any);\n this.$set(this.currentData, key, this.currentData[key]);\n }\n }\n\n public resetData() {\n this.currentData = this.initValues;\n }\n\n public async save(score: string, rank: string, optionalSubject: string[]) {\n this.isSubmiting = true;\n const instance = Toast.loading('正在保存');\n const { sportScoreRank, artScoreRank } = this.currentData;\n const item = [5, score ? +score : '', rank ? +rank : ''] as any;\n let subjectScoreRank: number[][] = [item] ;\n subjectScoreRank = subjectScoreRank.concat(artScoreRank.map((sr) => [+sr.artSubjectId, +sr.score, +sr.rank]));\n subjectScoreRank = subjectScoreRank.concat(sportScoreRank.map((sr) => [+sr.SportSubjectId, +sr.score, +sr.rank]));\n const { success, msg, code } = await setScoreRank({ subjectScoreRank, optionalSubject });\n instance.close();\n if (!success) {\n Dialog.alert({ content: msg });\n if (code === '501') {\n this.resetData();\n }\n } else {\n this.initValues = cloneDeep(this.currentData);\n userModule.getUserInfo(true);\n if (code === '2001') {\n wishListModule.removeList('wish-list');\n wishListModule.removeList('collections');\n }\n if (this.useInPopup) {\n this.$emit('close');\n } else {\n Dialog.alert({\n title: '提示',\n content: '保存成功!',\n onOk: () => {\n this.$router.back();\n },\n });\n }\n\n }\n this.isSubmiting = false;\n }\n\n public async handleSubmit(values: SetSubjectBody) {\n if (!values.score && !values.rank) {\n return Toast.info('分数和位次号两者必填之一');\n }\n Dialog.open({\n title: '请仔细阅读',\n render: (h) => {\n return
;\n },\n actions: [\n {\n type: 'ok',\n text: '保存',\n handle: async () => {\n await this.save(\n values.score as string,\n values.rank as string,\n values.optionalSubject as string[],\n );\n return true;\n },\n },\n {\n type: 'cancel',\n color: '#7383A2',\n text: '取消',\n },\n ],\n okBtn: '保存',\n });\n }\n\n public async loadTip() {\n const res = await AdvertModule.getAdvert({\n showAreaCode: ' C1',\n areaCode: '浙江',\n moduleCode: '用户页',\n });\n if (res.success && res.result) {\n const { result } = res;\n const item = result[0];\n if (item) {\n this.tip = item.text1 || '';\n }\n }\n }\n\n public async loadArtSubject() {\n const list = await CommonModule.getArtSubject();\n this.artSubjectMap = list.reduce((prev, current) => {\n prev[current.artSubjectId] = current;\n return prev;\n }, {});\n }\n\n public mounted() {\n this.loadTip();\n this.loadArtSubject();\n }\n\n public beforeDestroy() {\n this.resetData();\n }\n\n public render() {\n const { currentData } = this;\n return (\n
\n {\n this.saveTip\n &&\n \n }\n
({\n optionalSubject: yup.array().min(3, '请选择三个选考科目').max(3),\n score: score(true).required('分数必填').trim(),\n rank: rank(true).trim(),\n })}\n initialValues={{\n optionalSubject: currentData.optionalSubject,\n score: currentData.score,\n rank: currentData.rank,\n }}\n onValuesChange={({ allValues }) => {\n this.currentData = {\n ...this.currentData,\n ...allValues as any,\n };\n }}\n onSubmit={this.handleSubmit}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n {\n currentData.artScoreRank.map(({ rank, score, artSubjectId, artSubjectName }, index) => (\n {\n this.removeArtRank(index);\n }}\n onEdit={() => addOrEdit({\n body: {\n rank: +rank,\n score: +score,\n subject: artSubjectId,\n },\n subjectLabel: artSubjectName,\n onSuccess: (values) => {\n this.saveScoreRank(values, 'artScoreRank', index);\n },\n })}\n subject={{\n id: artSubjectId,\n name: artSubjectName,\n }} />\n ))\n }\n {\n currentData.sportScoreRank.map(({ rank, score, SportSubjectId, SportSubjectName }, index) => (\n {\n this.removeSportRank(index);\n }}\n onEdit={() => addOrEdit({\n body: {\n rank: +rank,\n score: +score,\n subject: SportSubjectId,\n },\n subjectLabel: SportSubjectName,\n onSuccess: (values) => {\n this.saveScoreRank(values, 'sportScoreRank', index);\n },\n })}\n subject={{\n id: SportSubjectId,\n name: SportSubjectName,\n }} />\n ))\n }\n \n
\n addOrEdit({\n onSuccess: (values) => {\n if (values.subject === '4') {\n this.saveScoreRank(values, 'sportScoreRank');\n } else {\n this.saveScoreRank(values, 'artScoreRank');\n }\n },\n })}>\n 添加位次号/分数\n \n
\n
\n
\n \n \n
\n );\n }\n}\n\n\nexport const openOptionallSubject = () => {\n const instance = Popup.open({\n position: 'right',\n fullscreen: true,\n scrollBody: true,\n targetStyle: {\n height: '100%',\n background: '#FFF',\n },\n render(h) {\n return (\n
\n 设置选考信息\n Popup.close()} />\n
\n );\n },\n });\n\n return instance;\n};\n\n","\n\nimport TSXComponent from '@/utils/tsx-component';\nimport Component from 'vue-class-component';\nimport PageView, { PageStatus } from '@/components/page-view';\nimport OptionalSubject from './OptionalSubject';\nimport { Route, RawLocation } from 'vue-router';\nimport './index.scss';\n\n@Component({ name: 'optional-subject-view' })\nexport default class extends TSXComponent {\n public beforeRouteLeave(to: Route, from: Route, next: (to?: RawLocation | false) => void) {\n const optionSubject: any = this.$refs['option-subject'];\n if (optionSubject) {\n if (JSON.stringify(optionSubject.currentData) === JSON.stringify(optionSubject.initValues)) {\n next();\n return;\n }\n }\n const ok = window.confirm('尚未保存好更改内容,确定退出?(会导致未保存数据丢失)');\n if (ok) {\n next();\n } else {\n next(false);\n }\n }\n public render() {\n return (\n \n \n \n );\n }\n}\n"],"sourceRoot":""}