Просмотр исходного кода

Merge branch 'feature/0516-courseware' into develop

yuanliang 1 год назад
Родитель
Сommit
c7f78c3cc2

+ 3 - 2
src/components/pagination/index.tsx

@@ -44,7 +44,7 @@ export default defineComponent({
       type: Array as PropType<any>,
       default: () => [10, 20, 30, 40]
     },
-    pageSlot:{
+    pageSlot: {
       type: Number,
       default: 9
     }
@@ -69,6 +69,7 @@ export default defineComponent({
     }
     // 当前分页大小发生改变时的回调函数
     const onUpdatePageSize = (pageSize: number) => {
+      emit('update:page', 1)
       emit('update:pageSize', pageSize)
       emit('list')
 
@@ -168,7 +169,7 @@ export default defineComponent({
         pageSizes={props.pageSizes}
         onUpdatePage={onUpdatePage}
         onUpdatePageSize={onUpdatePageSize}
-        pageSlot = {props.pageSlot}
+        pageSlot={props.pageSlot}
       ></NPagination>
     )
   }

+ 32 - 2
src/views/content-manage/music-manage/modal/musicPreView.tsx

@@ -10,10 +10,40 @@ export default defineComponent({
     }
   },
   setup(props, { emit }) {
+    // const userStore = useUserStore()
+    // const token = userStore.getToken
+    // const prefix = /(localhost|192)/.test(location.host)
+    //   ? 'https://ponline.colexiu.com'
+    //   : location.origin
+    // const src =
+    //   prefix +
+    //   `/orchestra-music-score/?_t=${Date.now()}&id=${
+    //     props.item.id
+    //   }&modelType=practice&modeType=json&Authorization=${token}`
+
     const userStore = useUserStore()
     const token = userStore.getToken
-    const prefix = /(localhost|192)/.test(location.host) ? 'https://ponline.colexiu.com' : location.origin
-    const src = prefix + `/orchestra-music-score/?_t=${Date.now()}&id=${props.item.id}&modelType=practice&modeType=json&Authorization=${token}`
+    const apiUrls = {
+      dev: 'https://dev.kt.colexiu.com',
+      test: 'https://test.lexiaoya.cn',
+      online: 'https://mec.colexiu.com'
+    }
+
+    const environment = location.origin.includes('//dev')
+      ? 'dev'
+      : location.origin.includes('//test')
+      ? 'test'
+      : location.origin.includes('//mec.colexiu')
+      ? 'online'
+      : 'dev'
+    const apiUrl = apiUrls[environment]
+    // const prefix = /(localhost|192)/.test(location.host) ? 'http://dev.resource.colexiu.com/' : location.origin
+    const prefix = /(localhost|192)/.test(location.host) ? 'https://dev.kt.colexiu.com/' : apiUrl
+    let src =
+      prefix +
+      `/instrument/?_t=${Date.now()}&id=${
+        props.item.id
+      }&modelType=practise&modeType=json&Authorization=${token}&isCbs=true`
     return () => (
       <div>
         <iframe width={'667px'} height={'375px'} frameborder="0" src={src}></iframe>

+ 14 - 13
src/views/educational-manage/component/category-list.tsx

@@ -35,7 +35,7 @@ export default defineComponent({
     })
     const searchForm = reactive({
       keyword: '',
-      times: null as any,
+      // times: null as any,
       operatorId: '' //创建人
     })
 
@@ -122,10 +122,11 @@ export default defineComponent({
     const getList = async () => {
       try {
         state.loading = true
-        const { times, ...reset } = searchForm
+        // const { times, ...reset } = searchForm
         const body = {
-          ...reset,
-          ...getTimes(times, ['startTime', 'endTime']),
+          // ...reset,
+          ... searchForm,
+          // ...getTimes(times, ['startTime', 'endTime']),
           page: state.pagination.page,
           rows: state.pagination.rows
         }
@@ -190,15 +191,15 @@ export default defineComponent({
               clearable
             />
           </NFormItem> */}
-          <NFormItem path="times" label="时间">
-            <NDatePicker
-              class={styles.datepicker}
-              value-format="yyyy.MM.dd"
-              v-model:value={searchForm.times}
-              type="daterange"
-              clearable
-            />
-          </NFormItem>
+          {/*<NFormItem path="times" label="时间">*/}
+          {/*  <NDatePicker*/}
+          {/*    class={styles.datepicker}*/}
+          {/*    value-format="yyyy.MM.dd"*/}
+          {/*    v-model:value={searchForm.times}*/}
+          {/*    type="daterange"*/}
+          {/*    clearable*/}
+          {/*  />*/}
+          {/*</NFormItem>*/}
           <NFormItem>
             <NSpace>
               <NButton type="primary" onClick={onSearch}>

+ 4 - 3
src/views/educational-manage/component/material-list.tsx

@@ -76,7 +76,7 @@ export default defineComponent({
         category.list = data?.rows || []
       } catch {}
     }
-    provide('categoryList', category)
+    // provide('categoryList', category)
     // 声部
     const subjects = reactive({
       list: [] as any
@@ -152,14 +152,14 @@ export default defineComponent({
             return (
               <NDescriptions labelPlacement="left" column={1}>
                 <NDescriptionsItem label="曲目名称">
-                  <TheTooltip content={row.materialRef?.relateMaterialInfo?.name} />
+                  <TheTooltip content={row.materialRef?.relateMaterialInfo?.name || '--'} />
                 </NDescriptionsItem>
                 <NDescriptionsItem label="曲目状态">
                   {row.materialRef?.relateMaterialInfo
                     ? row.materialRef?.relateMaterialInfo?.status
                       ? '启用'
                       : '停用'
-                    : ''}
+                    : '--'}
                 </NDescriptionsItem>
               </NDescriptions>
             )
@@ -438,6 +438,7 @@ export default defineComponent({
             <AddMaterial
               item={state.materail}
               isLook={state.isLook}
+              categoryList={category.list}
               onClose={() => {
                 state.visiableCity = false
               }}

+ 26 - 14
src/views/educational-manage/model/addMaterial.tsx

@@ -9,6 +9,7 @@ import {
   NForm,
   NFormItem,
   NInput,
+  NInputGroup,
   NRadio,
   NRadioGroup,
   NSelect,
@@ -27,7 +28,7 @@ import SelectMusicSheet from './selectMusicSheet'
 export default defineComponent({
   name: 'addMaterial',
   emits: ['handleSuccess', 'close'],
-  props: ['item', 'isLook'],
+  props: ['item', 'isLook', 'categoryList'],
   setup(props, { emit }) {
     const message = useMessage()
     const loading = ref(false)
@@ -62,17 +63,18 @@ export default defineComponent({
             musicOpentions.music = {
               name: res.data.contentDesc
             }
-          } else {
-            if (res.data.materialRefs && res.data.materialRefs.length > 0) {
-              res.data.materialRefs.forEach((row: any) => {
-                saveModel.materialRefs.push({
-                  resourceId: row.resourceId,
-                  knowledgeType: row.knowledgeType,
-                  resourceName: row.resourceName
-                })
-              })
-            }
           }
+          //  else {
+          //   if (res.data.materialRefs && res.data.materialRefs.length > 0) {
+          //     res.data.materialRefs.forEach((row: any) => {
+          //       saveModel.materialRefs.push({
+          //         resourceId: row.resourceId,
+          //         knowledgeType: row.knowledgeType,
+          //         resourceName: row.resourceName
+          //       })
+          //     })
+          //   }
+          // }
           console.log('🚀 ~ saveModel', saveModel)
         }
         loading.value = false
@@ -124,7 +126,7 @@ export default defineComponent({
         }
       ]
     }
-    const categoryList = inject('categoryList', { list: [] }).list || []
+    // const categoryList = inject('categoryList', { list: [] }).list || []
     const submit = () => {
       formRef.value?.validate(async (err) => {
         if (!err) {
@@ -193,7 +195,7 @@ export default defineComponent({
                 <NCascader
                   v-model:value={saveModel.materialCategoryId}
                   placeholder="请选择素材分类"
-                  options={categoryList}
+                  options={props.categoryList}
                   checkStrategy="child"
                   childrenField="subMaterialCategoryList"
                   expandTrigger="hover"
@@ -288,7 +290,17 @@ export default defineComponent({
                       选择曲谱
                     </NButton>
                     {saveModel.materialRefs.length > 0 && (
-                      <NInput disabled value={saveModel.materialRefs[0]?.resourceName}></NInput>
+                      <NInputGroup>
+                        <NInput disabled value={saveModel.materialRefs[0]?.resourceName}></NInput>
+                        <NButton
+                          type="primary"
+                          onClick={() => {
+                            saveModel.materialRefs = []
+                          }}
+                        >
+                          删除
+                        </NButton>
+                      </NInputGroup>
                     )}
                   </NSpace>
                 </NFormItem>

+ 1 - 1
src/views/knowledge-manage/knowledge-list/index.tsx

@@ -298,7 +298,7 @@ export default defineComponent({
             onSetModel={(val: any) => Object.assign(searchForm, val)}
           >
             <NFormItem path="search" label="关键字">
-              <NInput v-model:value={searchForm.keyword} placeholder="知识名称/编号" clearable />
+              <NInput v-model:value={searchForm.keyword} placeholder="知识名称/编号" clearable />
             </NFormItem>
             <NFormItem label="课程类型" path="courseTypeCode">
               <NSelect clearable v-model:value={searchForm.courseTypeCode} options={lessonType} />

+ 22 - 20
src/views/music-library/music-sheet/component/music-list.tsx

@@ -37,7 +37,7 @@ import { getMapValueByKey } from '@/utils/filters'
 import { appKey, musicSheetSourceType, musicSheetType } from '@/utils/constant'
 import { getSelectDataFromObj } from '@/utils/objectUtil'
 import { sysApplicationPage } from '@views/menu-manage/api'
-import {getOwnerName, copyText} from '@views/music-library/musicUtil'
+import { getOwnerName, copyText } from '@views/music-library/musicUtil'
 import styles from './music-list.module.less'
 import MusicCreateImg from '../modal/music-create-img'
 import TheTooltip from '@components/TheTooltip'
@@ -106,10 +106,12 @@ export default defineComponent({
                   <TheTooltip content={row.name} />
                 </NDescriptionsItem>
                 <NDescriptionsItem label="编号">
-                  <div onDblclick={() => {
-                    copyText(message,row.id)
-                  }}>
-                    <TheTooltip content={row.id}/>
+                  <div
+                    onDblclick={() => {
+                      copyText(message, row.id)
+                    }}
+                  >
+                    <TheTooltip content={row.id} />
                   </div>
                 </NDescriptionsItem>
               </NDescriptions>
@@ -688,21 +690,21 @@ export default defineComponent({
           </NFormItem>
           <NFormItem label="数据修复" path="dataCorrect">
             <NSelect
-                v-model={[state.searchForm.dataCorrect, 'value']}
-                placeholder="请选择数据修复"
-                clearable
-                options={
-                  [
-                    {
-                      label: '是',
-                      value: true
-                    },
-                    {
-                      label: '否',
-                      value: false
-                    }
-                  ] as any
-                }
+              v-model={[state.searchForm.dataCorrect, 'value']}
+              placeholder="请选择数据修复"
+              clearable
+              options={
+                [
+                  {
+                    label: '是',
+                    value: true
+                  },
+                  {
+                    label: '否',
+                    value: false
+                  }
+                ] as any
+              }
             />
           </NFormItem>
           <NFormItem>

+ 9 - 9
src/views/music-library/music-sheet/modal/music-operation.tsx

@@ -317,7 +317,7 @@ export default defineComponent({
       musicFirstImg: '', //首调图片
       musicJianImg: '', // 简谱固定调
       isEvxml: false, // 是否是evxml
-      isShowFingering: true, // 是否显示指法
+      isShowFingering: true // 是否显示指法
     })
     const state = reactive({
       loading: false,
@@ -376,7 +376,7 @@ export default defineComponent({
             extConfigJson: JSON.stringify({
               repeatedBeats: forms.repeatedBeats ? 1 : 0,
               gradualTimes: forms.graduals,
-              isEvxml: forms.isEvxml ? 1 : 0,
+              isEvxml: forms.isEvxml ? 1 : 0
             }),
             subjectIds: forms.subjectIds.join(',')
           }
@@ -1111,7 +1111,7 @@ export default defineComponent({
                 path="playSpeed"
                 rule={[
                   {
-                    required: false,
+                    required: true,
                     message: '请输入速度'
                   }
                 ]}
@@ -1121,7 +1121,7 @@ export default defineComponent({
                   v-model:value={forms.playSpeed}
                   style="width:100%"
                 />
-              </NFormItemGi>            
+              </NFormItemGi>
             </NGrid>
             <NAlert showIcon={false} style={{ marginBottom: '12px' }}>
               曲目上传
@@ -1183,7 +1183,7 @@ export default defineComponent({
                 >
                   <UploadFile
                     disabled={state.previewMode}
-                    size={10}
+                    size={30}
                     v-model:imageList={state.musicSheetAccompanimentUrlList}
                     tips="仅支持上传.mp3格式文件"
                     listType="image"
@@ -1233,7 +1233,7 @@ export default defineComponent({
                   <UploadFile
                     desc={'MIDI文件'}
                     disabled={state.previewMode}
-                    size={10}
+                    size={30}
                     v-model:fileList={forms.midiFileUrl}
                     tips="仅支持上传.MID格式文件"
                     listType="image"
@@ -1258,7 +1258,7 @@ export default defineComponent({
                 <UploadFile
                   desc={'XML文件'}
                   disabled={state.previewMode}
-                  size={10}
+                  size={30}
                   key={'xmlFileUrl'}
                   v-model:fileList={forms.xmlFileUrl}
                   tips="仅支持上传.xml/.mxml格式文件"
@@ -1344,7 +1344,7 @@ export default defineComponent({
                   <NRadio value={'SINGLE'}>是</NRadio>
                   <NRadio value={'CONCERT'}>否</NRadio>
                 </NRadioGroup>
-              </NFormItemGi> 
+              </NFormItemGi>
               <NFormItemGi
                 label="是否显示指法"
                 path="isShowFingering"
@@ -1359,7 +1359,7 @@ export default defineComponent({
                   <NRadio value={true}>是</NRadio>
                   <NRadio value={false}>否</NRadio>
                 </NRadioGroup>
-              </NFormItemGi>                       
+              </NFormItemGi>
             </NGrid>
 
             {forms.musicSheetType && (

+ 1 - 10
src/views/music-library/project-music-sheet/module/gyt/addMusic.tsx

@@ -319,10 +319,6 @@ export default defineComponent({
                                       label: '平台',
                                       value: 'PLATFORM'
                                     },
-                                    {
-                                      label: '个人',
-                                      value: 'PERSON'
-                                    },
                                   ]
                                 })
                               ]
@@ -367,10 +363,6 @@ export default defineComponent({
                       label: '平台',
                       value: 'PLATFORM'
                     },
-                    {
-                      label: '个人',
-                      value: 'PERSON'
-                    },
                   ]}
                   onUpdateValue={(value) => {
                     row['availableType'] = value
@@ -439,7 +431,6 @@ export default defineComponent({
           )
         },
         key: 'projectMusicCategoryId',
-        fixed: 'right',
         width: 200,
         render: (row: any) => {
           // })
@@ -517,7 +508,6 @@ export default defineComponent({
           )
         },
         key: 'sortNo',
-        fixed: 'right',
         width: 150,
         render: (row: any) => {
           return h(NInputNumber, {
@@ -744,6 +734,7 @@ export default defineComponent({
                 data={state.selectRowData}
                 rowKey={(row: any) => row.id}
                 maxHeight={500}
+                scrollX={1800}
               ></NDataTable>
             </div>
           )}

+ 0 - 4
src/views/music-library/project-music-sheet/module/gyt/updateMusic.tsx

@@ -125,10 +125,6 @@ export default defineComponent({
                         label: '平台',
                         value: 'PLATFORM'
                       },
-                      {
-                        label: '个人',
-                        value: 'PERSON'
-                      },
                     ]}
                     v-model:value={forms.availableType}
                     clearable

+ 38 - 14
src/views/teaching-manage/after-class-training-detail/model/addMaterialTrainingClass.tsx

@@ -207,21 +207,45 @@ export default defineComponent({
 
     // 素材关联知识点
     const handleSave = async () => {
-      state.saveLoading = true
-      const list = state.checkList.map((n: any) => {
-        const item = state.selectCheckList.find((item: any) => item.tempIndex === n)
-        return {
-          materialId: item.materialId,
-          knowledgePointId: item.knowledgePointId,
-          lessonTrainingId: props.parentData.id
-        }
+      // state.saveLoading = true
+      // const list = state.checkList.map((n: any) => {
+      //   const item = state.selectCheckList.find((item: any) => item.tempIndex === n)
+      //   return {
+      //     materialId: item.materialId,
+      //     knowledgePointId: item.knowledgePointId,
+      //     lessonTrainingId: props.parentData.id
+      //   }
+      // })
+      // try {
+      //   const res: any = await lessonTrainingDetailBatchInsert(list)
+      //   message.success('保存成功')
+      //   emit('handleSuccess')
+      // } catch (error) {}
+      // state.saveLoading = false
+      dialog.warning({
+        title: '提示',
+        content: '请确保作业曲目已添加到业务系统',
+        positiveText: '确定',
+        negativeText: '取消',
+        onPositiveClick: async () => {
+          state.saveLoading = true
+          const list = state.checkList.map((n: any) => {
+            const item = state.selectCheckList.find((item: any) => item.tempIndex === n)
+            return {
+              materialId: item.materialId,
+              knowledgePointId: item.knowledgePointId,
+              lessonTrainingId: props.parentData.id
+            }
+          })
+          try {
+            const res: any = await lessonTrainingDetailBatchInsert(list)
+            message.success('保存成功')
+            emit('handleSuccess')
+          } catch (error) {}
+          state.saveLoading = false
+        },
+        onNegativeClick: () => {}
       })
-      try {
-        const res: any = await lessonTrainingDetailBatchInsert(list)
-        message.success('保存成功')
-        emit('handleSuccess')
-      } catch (error) {}
-      state.saveLoading = false
     }
 
     return () => (

+ 27 - 6
src/views/teaching-manage/after-class-training-detail/model/addTrainStandard.tsx

@@ -30,14 +30,35 @@ export default defineComponent({
   setup(props, { emit }) {
     console.log('🚀 ~ props', props.item)
     const userStore = useUserStore()
-    const prefix = /(localhost|192)/.test(location.host)
-      ? 'https://ponline.colexiu.com'
-      : location.origin //
-    const src =
+    // const prefix = /(localhost|192)/.test(location.host)
+    //   ? 'https://test.resource.colexiu.com'
+    //   : location.origin //
+    // const src =
+    //   prefix +
+    //   `/instrument/?_t=${Date.now()}&id=${props.item.content}&modelType=practice&Authorization=${
+    //     userStore.getToken
+    //   }&`
+    const apiUrls = {
+      dev: 'https://dev.kt.colexiu.com',
+      test: 'https://test.kt.colexiu.com',
+      online: 'https://mec.colexiu.com'
+    }
+
+    const environment = location.origin.includes('//dev')
+      ? 'dev'
+      : location.origin.includes('//test')
+      ? 'test'
+      : location.origin.includes('//mec.colexiu')
+      ? 'online'
+      : 'dev'
+    const apiUrl = apiUrls[environment]
+    // const prefix = /(localhost|192)/.test(location.host) ? 'http://dev.resource.colexiu.com/' : location.origin
+    const prefix = /(localhost|192)/.test(location.host) ? 'https://test.kt.colexiu.com' : apiUrl
+    let src =
       prefix +
-      `/orchestra-music-score/?_t=${Date.now()}&id=${
+      `/instrument/?_t=${Date.now()}&id=${
         props.item.content
-      }&modelType=practice&Authorization=${userStore.getToken}`
+      }&modelType=practise&modeType=json&Authorization=${userStore.getToken}&isCbs=true&zoom=0.8`
     const message = useMessage()
     const state = reactive({
       current: 1,

+ 40 - 35
src/views/teaching-manage/courseware-manage/components/courseConfiguration.tsx

@@ -233,41 +233,45 @@ export default defineComponent({
       console.log(data.file)
       const msg = message.loading('正在上传文件', { duration: 0 })
       customRequest_importData.loading = true
-      const fileUrl = await api_uploadFile(data.file.file, () => {})
-      const res = await api_openFileImportInfoSave({
-        dataType: customRequest_importData.dataType,
-        fileName: data.file.name,
-        importUrl: fileUrl,
-        lessonId: route.query.id
-      })
-      console.log('🚀 ~ res:', res)
-      customRequest_importData.loading = false
-      if (res.data) {
-        msg.destroy()
-        // 空表格
-        if (res.data.insertRow === 0 && res.data.invalidRow === 0) {
-          message.error('导入失败,表格为空')
-          return
-        }
-        if (res.data.respUrl) {
-          dialog.error({
-            title: '信息',
-            content: () => (
-              <NSpace>
-                <div>导入失败,点击下载错误信息</div>
-                <a href={res.data.respUrl} download>
-                  下载
-                </a>
-              </NSpace>
-            )
-          })
-          return
+      try {
+        const fileUrl = await api_uploadFile(data.file.file, () => {})
+        const res = await api_openFileImportInfoSave({
+          dataType: customRequest_importData.dataType,
+          fileName: data.file.name,
+          importUrl: fileUrl,
+          lessonId: route.query.id
+        })
+        console.log('🚀 ~ res:', res)
+        customRequest_importData.loading = false
+        if (res.data) {
+          msg.destroy()
+          // 空表格
+          if (res.data.insertRow === 0 && res.data.invalidRow === 0) {
+            message.error('导入失败,表格为空')
+            return
+          }
+          if (res.data.respUrl) {
+            dialog.error({
+              title: '信息',
+              content: () => (
+                <NSpace>
+                  <div>导入失败,点击下载错误信息</div>
+                  <a href={res.data.respUrl} download>
+                    下载
+                  </a>
+                </NSpace>
+              )
+            })
+            return
+          }
+          getDetail()
+          message.success('导入成功')
+        } else {
+          message.error('请下载模板后,填写数据再导入')
         }
-        getDetail()
-        message.success('导入成功')
-      } else {
-        message.error('请下载模板后,填写数据再导入')
-      }
+      } catch {}
+      customRequest_importData.loading = false
+      msg.destroy()
     }
     return () => (
       <div class={styles.courseConfiguration}>
@@ -357,7 +361,8 @@ export default defineComponent({
                     options={[
                       { label: '课件', key: 'COURSEWARE' },
                       { label: '单元测验', key: 'EXAMINATION' },
-                      { label: '课后训练', key: 'HOMEWORK' }
+                      { label: '课后训练', key: 'HOMEWORK' },
+                      { label: '素材关联曲目', key: 'COURSEWARE_REF_MATERIAL' }
                     ]}
                     onSelect={(key: string) => {
                       customRequest_importData.dataType = key

+ 1 - 0
src/views/teaching-manage/courseware-manage/index.tsx

@@ -354,6 +354,7 @@ export default defineComponent({
           importUrl: fileUrl
         })
         console.log('🚀 ~ res:', res)
+        customRequest_importData.loading = false
         if (res.data) {
           // 空表格
           if (res.data.insertRow === 0 && res.data.invalidRow === 0) {

+ 18 - 13
src/views/teaching-manage/courseware-manage/model/CourseKnowledgePoint.tsx

@@ -63,19 +63,24 @@ export default defineComponent({
         title: '知识点名称',
         key: 'name',
         render(row: any) {
-          return row.children ? (
-            <>
-              {row.name}({row.knowledgePointId})
-            </>
-          ) : (
-            <TheLink
-              to={{
-                path: '/educationalManage/knowledgeManage',
-                query: { keyword: row.knowledgePointId }
-              }}
-            >
-              {row.name}({row.knowledgePointId})
-            </TheLink>
+          // return row.children ? (
+          //   <>
+          //     {row.name}({row.knowledgePointId})
+          //   </>
+          // ) : (
+          //   <TheLink
+          //     to={{
+          //       path: '/educationalManage/knowledgeManage',
+          //       query: { keyword: row.knowledgePointId }
+          //     }}
+          //   >
+          //     {row.name}({row.knowledgePointId})
+          //   </TheLink>
+          // )
+          return (
+              <>
+                {row.name}({row.knowledgePointId})
+              </>
           )
         }
       },

+ 48 - 11
src/views/teaching-manage/unit-test/model/addQuestionBank.tsx

@@ -93,6 +93,21 @@ interface ExaminationQuestionAdd {
   answerAnalysis: string | null
 }
 
+const apiUrls = {
+  dev: 'https://dev.kt.colexiu.com',
+  test: 'https://test.kt.colexiu.com',
+  online: 'https://mec.colexiu.com'
+}
+
+const environment = location.origin.includes('//dev')
+  ? 'dev'
+  : location.origin.includes('//test')
+  ? 'test'
+  : location.origin.includes('//mec.colexiu')
+  ? 'online'
+  : 'dev'
+const apiUrl = apiUrls[environment]
+
 export default defineComponent({
   name: 'addQuestionBank',
   emits: ['handleSuccess', 'close'],
@@ -136,6 +151,7 @@ export default defineComponent({
       try {
         const res: any = await examinationQuestionDetail(props.item.id)
         if (res?.data) {
+          console.log(res.data, 'res.data')
           for (let key in saveModel) {
             ;(saveModel as any)[key] = res.data[key] || ''
           }
@@ -148,14 +164,25 @@ export default defineComponent({
               playData.score = _palyData.score
               playData.musicSheetId = _palyData.musicSheetId
               playData.musicName = _palyData.musicName
-              const prefix = /(localhost|192)/.test(location.host)
-                ? 'https://ponline.colexiu.com'
-                : location.origin
+              // const prefix = /(localhost|192)/.test(location.host)
+              //   ? 'https://ponline.colexiu.com'
+              //   : location.origin
+              // musicSheetSrc.value =
+              //   prefix +
+              //   `/orchestra-music-score/?_t=${Date.now()}&id=${
+              //     _palyData.musicSheetId
+              //   }&modelType=practice&Authorization=${userStore.getToken}`
+
+              const prefix = /(localhost)/.test(location.host)
+                ? 'https://test.kt.colexiu.com'
+                : apiUrl
               musicSheetSrc.value =
                 prefix +
-                `/orchestra-music-score/?_t=${Date.now()}&id=${
+                `/instrument/?_t=${Date.now()}&id=${
                   _palyData.musicSheetId
-                }&modelType=practice&Authorization=${userStore.getToken}`
+                }&modelType=practise&modeType=json&Authorization=${
+                  userStore.getToken
+                }&isCbs=true&zoom=0.8`
             } catch (error) {}
           }
           if (saveModel.mediaUrls) {
@@ -560,18 +587,28 @@ export default defineComponent({
           <div>
             <SelectMusicSheet
               onSelect={(row: any) => {
-                // console.log(row)
                 playData.musicSheetId = row.id
-                playData.musicName = row.musicSheetName
+                playData.musicName = row.name
                 modalData.open = false
+                // const prefix = /(localhost|192)/.test(location.host)
+                //   ? 'https://ponline.colexiu.com'
+                //   : location.origin
+                // musicSheetSrc.value =
+                //   prefix +
+                //   `/orchestra-music-score/?_t=${Date.now()}&id=${
+                //     row.id
+                //   }&modelType=practice&Authorization=${userStore.getToken}`
+
                 const prefix = /(localhost|192)/.test(location.host)
-                  ? 'https://ponline.colexiu.com'
-                  : location.origin
+                  ? 'https://test.kt.colexiu.com'
+                  : apiUrl
                 musicSheetSrc.value =
                   prefix +
-                  `/orchestra-music-score/?_t=${Date.now()}&id=${
+                  `/instrument/?_t=${Date.now()}&id=${
                     row.id
-                  }&modelType=practice&Authorization=${userStore.getToken}`
+                  }&modelType=practise&modeType=json&Authorization=${
+                    userStore.getToken
+                  }&isCbs=true&zoom=0.8`
               }}
             />
           </div>

+ 27 - 18
src/views/teaching-manage/unit-test/unit-test-index/editAndUpdate.tsx

@@ -176,24 +176,33 @@ export default defineComponent({
             message.error('阶段自测的合格分数高于题目的总分值')
             return
           }
-          const params: any = {
-            ...saveModel,
-            questionList: modalData.selectList
-          }
-          let res: any = null
-          console.log(params)
-          if (saveModel.id) {
-            res = await unitExaminationSave(params)
-          } else {
-            res = await unitExaminationSave(params)
-          }
-          if (res?.code == 200) {
-            message.success('保存成功')
-            gotoBack()
-            // emit('handleSuccess')
-          } else {
-            message.warning('保存失败')
-          }
+          dialog.warning({
+            title: '提示',
+            content: '请确保测验曲目已添加到业务系统',
+            positiveText: '确定',
+            negativeText: '取消',
+            onPositiveClick: async () => {
+              const params: any = {
+                ...saveModel,
+                questionList: modalData.selectList
+              }
+              let res: any = null
+              console.log(params)
+              if (saveModel.id) {
+                res = await unitExaminationSave(params)
+              } else {
+                res = await unitExaminationSave(params)
+              }
+              if (res?.code == 200) {
+                message.success('保存成功')
+                gotoBack()
+                // emit('handleSuccess')
+              } else {
+                message.warning('保存失败')
+              }
+            },
+            onNegativeClick: () => {}
+          })
         }
       })
     }

+ 1 - 1
vite.config.ts

@@ -21,7 +21,7 @@ function pathResolve(dir: string) {
 // const proxyUrl = 'https://dev.lexiaoya.cn'
 // const proxyUrl = 'http://127.0.0.1:7293/'
 // const proxyUrl = 'https://resource.colexiu.com/'
-const proxyUrl = 'https://dev.resource.colexiu.com'
+const proxyUrl = 'https://test.resource.colexiu.com'
 // https://test.resource.colexiu.com/
 
 export default ({ command, mode }: ConfigEnv): UserConfig => {