|
@@ -1,32 +1,88 @@
|
|
|
import ColField from "@/components/col-field";
|
|
|
import ColFieldGroup from "@/components/col-field-group";
|
|
|
+import ColPopup from "@/components/col-popup";
|
|
|
import ColUpload from "@/components/col-upload";
|
|
|
-import { Col, Field, Form, Image, Row } from "vant";
|
|
|
+import request from "@/helpers/request";
|
|
|
+import { create } from "domain";
|
|
|
+import { Button, Col, Field, Form, Image, Row, Sticky } from "vant";
|
|
|
import { defineComponent } from "vue";
|
|
|
+import SubjectModel from "../teacher-cert/module/subject-model";
|
|
|
import styles from "./class-info.module.less";
|
|
|
+import { createState } from './createState'
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: "ClassInfo",
|
|
|
data() {
|
|
|
return {
|
|
|
- url: ''
|
|
|
+ subjectStatus: false
|
|
|
}
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ choiceSubjectIds() { // 选择的科目编号
|
|
|
+ let ids = createState.createVideo.subjectIds ? createState.createVideo.subjectIds.split(',') : [];
|
|
|
+ ids = ids.map((item: any) => Number(item))
|
|
|
+ return ids
|
|
|
+ },
|
|
|
+ subjectList() { // 学科列表
|
|
|
+ return createState.subjectList || []
|
|
|
+ },
|
|
|
+ choiceSubject() { // 选择的科目
|
|
|
+ let tempArr: any[] = []
|
|
|
+ this.subjectList.forEach((parent: any) => {
|
|
|
+ parent.subjects && parent.subjects.forEach((sub: any) => {
|
|
|
+ if (this.choiceSubjectIds.includes(sub.id)) {
|
|
|
+ tempArr.push(sub as never)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ return tempArr
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async mounted() {
|
|
|
+ try {
|
|
|
+ if (createState.subjectList.length <= 0) {
|
|
|
+ const res = await request.get('/api-teacher/subject/queryPageTree', {
|
|
|
+ params: {
|
|
|
+ rows: 100,
|
|
|
+ page: 1
|
|
|
+ }
|
|
|
+ })
|
|
|
+ createState.subjectList = res.data.rows || [];
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ onSubmit(values: any) {
|
|
|
+ console.log(values)
|
|
|
+ },
|
|
|
+ onChoice(item: any) {
|
|
|
+ createState.createVideo.subjectIds = item.join(',') || ''
|
|
|
+
|
|
|
+ this.subjectStatus = false
|
|
|
+ },
|
|
|
+ },
|
|
|
render() {
|
|
|
return (
|
|
|
- <Form class={styles.classInfo}>
|
|
|
+ <Form class={styles.classInfo} onSubmit={this.onSubmit}>
|
|
|
<ColFieldGroup>
|
|
|
<ColField title="课程名称" required>
|
|
|
<Field
|
|
|
- name="课程名称"
|
|
|
+ v-model={createState.createVideo.courseName}
|
|
|
+ name="courseName"
|
|
|
placeholder="请输入您的课程名称"
|
|
|
+ rules={[{ required: true, message: '请输入您的课程名称' }]}
|
|
|
/>
|
|
|
</ColField>
|
|
|
<ColField title="课程声部" required>
|
|
|
<Field
|
|
|
- name="课程声部"
|
|
|
+ v-model={createState.createVideo.subjectIds}
|
|
|
+ name="subjectIds"
|
|
|
readonly
|
|
|
isLink
|
|
|
+ onClick={() => { this.subjectStatus = true }}
|
|
|
+ rules={[{ required: true, message: '请选择课程声部' }]}
|
|
|
placeholder="请选择课程声部"
|
|
|
/>
|
|
|
</ColField>
|
|
@@ -35,10 +91,12 @@ export default defineComponent({
|
|
|
<ColFieldGroup>
|
|
|
<ColField title="课程介绍" required border={false}>
|
|
|
<Field
|
|
|
- name="课程介绍"
|
|
|
+ v-model={createState.createVideo.courseRemark}
|
|
|
+ name="courseRemark"
|
|
|
placeholder="请输入课程介绍"
|
|
|
rows="3"
|
|
|
autosize
|
|
|
+ rules={[{ required: true, message: '请选择课程声部' }]}
|
|
|
type="textarea"
|
|
|
/>
|
|
|
</ColField>
|
|
@@ -47,8 +105,11 @@ export default defineComponent({
|
|
|
<ColFieldGroup>
|
|
|
<ColField title="课程组售价" required>
|
|
|
<Field
|
|
|
- name="课程组售价"
|
|
|
+ v-model={createState.createVideo.coursePrice}
|
|
|
+ name="coursePrice"
|
|
|
placeholder="请输入您的课程组售价"
|
|
|
+ type="number"
|
|
|
+ rules={[{ required: true, message: '请选择课程声部' }]}
|
|
|
v-slots={{
|
|
|
button: () => (<span>元</span>)
|
|
|
}}
|
|
@@ -67,6 +128,9 @@ export default defineComponent({
|
|
|
<p class={styles.photoTip}>模板图片将作为改课程封面为学员展示</p>
|
|
|
|
|
|
<Field
|
|
|
+ v-model={createState.createVideo.courseImg}
|
|
|
+ name="courseImg"
|
|
|
+ rules={[{ required: true, message: '请选择课程声部' }]}
|
|
|
v-slots={{
|
|
|
input: () => (
|
|
|
<Row justify="space-between">
|
|
@@ -80,7 +144,11 @@ export default defineComponent({
|
|
|
<Image class={styles.imgContainer} src="https://daya.ks3-cn-beijing.ksyun.com/202201/Sv7wlrW.png" />
|
|
|
</Col>
|
|
|
<Col span={12} class={styles.imgContainer}>
|
|
|
- <ColUpload cropper v-model={this.url} class={styles.imgContainer} />
|
|
|
+ <ColUpload cropper options={{
|
|
|
+ fixedNumber: [3 , 2],
|
|
|
+ autoCropWidth: 750,
|
|
|
+ autoCropHeight: 500,
|
|
|
+ }} v-model={createState.createVideo.courseImg} class={styles.imgContainer} />
|
|
|
</Col>
|
|
|
</Row>
|
|
|
)
|
|
@@ -88,6 +156,16 @@ export default defineComponent({
|
|
|
/>
|
|
|
</ColField>
|
|
|
</ColFieldGroup>
|
|
|
+
|
|
|
+ <Sticky offsetBottom={0} position="bottom">
|
|
|
+ <div class={[styles.btnGroup]}>
|
|
|
+ <Button block round type="primary" native-type="submit">下一步</Button>
|
|
|
+ </div>
|
|
|
+ </Sticky>
|
|
|
+
|
|
|
+ <ColPopup v-model={this.subjectStatus}>
|
|
|
+ <SubjectModel max={1} subjectList={this.subjectList} choiceSubjectIds={this.choiceSubjectIds} onChoice={this.onChoice} />
|
|
|
+ </ColPopup>
|
|
|
</Form>
|
|
|
)
|
|
|
}
|