Browse Source

文案数据修改

yuanliang 1 year ago
parent
commit
7bccfebeb8

+ 0 - 46
src/views/music-categrory/api.ts

@@ -1,46 +0,0 @@
-import request from '@/utils/request/index'
-
-/**
- * 曲谱分类列表
- */
-export const getMusicSheetCategories = (params: object) => {
-  return request({
-    url: '/cbs-app/musicSheetCategories/queryTree',
-    method: 'get',
-    data: params,
-    params
-  } as any)
-}
-
-/**
- * 新增曲谱分类  musicSheetCategories/save
- */
-export const saveMusicSheetCategories = (params: object) => {
-  return request({
-    url: '/cbs-app/musicSheetCategories/save',
-    method: 'post',
-    data: params
-  } as any)
-}
-
-/**
- * 停用启用
- */
-export const musicSheetCategoriesSwitching = (params: object) => {
-  return request({
-    url: `/cbs-app/musicSheetCategories/switching/${params}`,
-    method: 'post',
-    data: params
-  } as any)
-}
-
-/**
- * 修改
- */
-export const resetMusicSheetCategories = (params: object) => {
-  return request({
-    url: '/cbs-app/musicSheetCategories/update',
-    method: 'post',
-    data: params
-  } as any)
-}

+ 0 - 152
src/views/music-categrory/components/eidt-categroy.tsx

@@ -1,152 +0,0 @@
-import {
-  NForm,
-  NFormItem,
-  NInput,
-  NInputNumber,
-  NSpace,
-  NButton,
-  useMessage,
-  NCascader
-} from 'naive-ui'
-import { defineComponent, onMounted, reactive, ref } from 'vue'
-import { useRoute } from 'vue-router'
-import { saveMusicSheetCategories, resetMusicSheetCategories } from '../api'
-import UploadFile from '@/components/upload-file'
-import { filterPointCategory } from '@/views/teaching-manage/unit-test'
-export default defineComponent({
-  emits: ['close', 'getList'],
-  props: ['actvieRow', 'isAdd', 'list'],
-  name: 'eidt-categroy',
-  setup(props, { emit }) {
-    const route = useRoute()
-    const orchestraId = route.query.orchestraId || ''
-    const message = useMessage()
-    const formRef = ref()
-    const parentList = ref([
-      { name: '顶级分类', id: 0 },
-      ...filterPointCategory(props.list, 'musicSheetCategoriesList')
-    ] as any)
-    const state = reactive({
-      loading: false,
-      dataList: [] as any,
-      btnLoading: false
-    })
-    const forms = reactive({
-      id: '',
-      name: '',
-      lessonTargetDesc: '',
-      sortNo: '',
-      semesterNo: '',
-      enableFlag: false,
-      parentId: 0
-    } as any)
-
-    const onSubmit = async () => {
-      formRef.value?.validate(async (errors: any) => {
-        if (!errors) {
-          try {
-            if (!props.isAdd) {
-              const { data } = await resetMusicSheetCategories({ ...forms })
-              emit('getList')
-              message.success('修改成功')
-            } else {
-              const { data } = await saveMusicSheetCategories({ ...forms })
-              emit('getList')
-              message.success('添加成功')
-            }
-          } catch (error) {}
-        } else {
-          // console.log(errors)
-          // message.error(errors)
-        }
-      })
-    }
-    onMounted(() => {
-      if (props?.actvieRow?.id && !props.isAdd) {
-        for (let key in props?.actvieRow) {
-          forms[key] = props?.actvieRow[key]
-        }
-      } else if (props?.actvieRow?.id && props.isAdd) {
-        forms.parentId = props?.actvieRow.id + ''
-      }
-    })
-    return () => (
-      <div>
-        <NForm ref={formRef} model={forms}>
-          {props.isAdd && (
-            <NFormItem label="父级分类" path="parentId">
-              <NCascader
-                placeholder="请选择父级分类"
-                v-model:value={forms.parentId}
-                options={parentList.value}
-                checkStrategy="all"
-                expandTrigger="hover"
-                childrenField="musicSheetCategoriesList"
-                valueField="id"
-                labelField="name"
-                clearable
-                filterable
-              />
-            </NFormItem>
-          )}
-
-          <NFormItem
-            label="教材名称"
-            rule={[
-              {
-                required: true,
-                message: '请输入教材名称',
-                trigger: ['blur', 'input']
-              }
-            ]}
-            path="name"
-          >
-            <NInput
-              v-model:value={forms.name}
-              placeholder="请输入教材名称"
-              maxlength={500}
-              clearable
-            ></NInput>
-          </NFormItem>
-          <NFormItem
-            label="教材封面"
-            path="coverImg"
-            rule={[
-              {
-                required: true,
-                message: '请上教材封面',
-                trigger: ['input', 'blur']
-              }
-            ]}
-          >
-            <UploadFile
-              v-model:fileList={forms.coverImg}
-              accept=".jpg,.jpeg,.png"
-              cropper
-              options={{
-                enlarge: 1, //  图片放大倍数
-                autoCropWidth: 349, //默认生成截图框宽度
-                autoCropHeight: 141 //默认生成截图框高度
-              }}
-              size={1}
-              tips="请上传请上传尺寸为349*141大小1M以内的JPG、PNG图片"
-            />
-          </NFormItem>
-        </NForm>
-        <NSpace justify="end">
-          <NButton type="default" onClick={() => emit('close')}>
-            取消
-          </NButton>
-          <NButton
-            type="primary"
-            onClick={() => onSubmit()}
-            loading={state.btnLoading}
-            disabled={state.btnLoading}
-          >
-            确认
-          </NButton>
-        </NSpace>
-      </div>
-    )
-  }
-})

+ 0 - 340
src/views/music-categrory/index.tsx

@@ -1,340 +0,0 @@
-import SaveForm from '@/components/save-form'
-import Pagination from '@/components/pagination'
-import {
-  DataTableColumn,
-  NButton,
-  NDataTable,
-  NDatePicker,
-  NFormItem,
-  NImage,
-  NInput,
-  NSelect,
-  NSpace,
-  useDialog,
-  useMessage,
-  NModal
-} from 'naive-ui'
-import { defineComponent, onMounted, reactive, ref } from 'vue'
-import { getMusicSheetCategories, musicSheetCategoriesSwitching } from './api'
-import { InternalRowData } from 'naive-ui/es/data-table/src/interface'
-import { useRouter } from 'vue-router'
-import { knowledgeTypeData, lessonType } from '@/views/knowledge-manage/knowledgeTypeData'
-import EidtCategroy from './components/eidt-categroy'
-
-type RowData = {
-  id: string
-  name: string
-  coverImg: string
-  musicSheetNum: string
-  updateTime: string
-  enable: boolean
-  musicSheetCategoriesList?: RowData[]
-}
-export default defineComponent({
-  emits: ['setTabName'],
-  name: 'music-categrory',
-  setup(props, { emit }) {
-    const router = useRouter()
-    const state = reactive({
-      loading: false,
-      pagination: {
-        page: 1,
-        rows: 999,
-        pageTotal: 0
-      },
-      dataList: [] as any,
-      visiablePlan: false,
-      modalType: 'add',
-      materail: null,
-      actvieRow: null as any,
-      isAdd: true
-    })
-
-    const searchForm = reactive<any>({
-      name: '', // 计划名称
-      keyword: '', // 关键字匹配
-      enable: null // 是否启用
-    })
-    const dialog = useDialog()
-    const message = useMessage()
-
-    const getList = async () => {
-      try {
-        state.loading = true
-        const body = {
-          page: state.pagination.page,
-          rows: state.pagination.rows,
-          ...searchForm
-        }
-        const { data } = await getMusicSheetCategories(body)
-        state.loading = false
-        // state.pagination.pageTotal = Number(data.total)
-        state.dataList = (data as RowData[]) || []
-      } catch {
-        state.loading = false
-      }
-    }
-
-    onMounted(() => {
-      getList()
-    })
-
-    //启用停用
-    const handleChangeState = (row: any, type: boolean) => {
-      dialog.warning({
-        title: '警告',
-        content: type ? `是否确认启用${row.name}?` : `是否确认停用${row.name}?`,
-        positiveText: '确定',
-        negativeText: '取消',
-        onPositiveClick: async () => {
-          try {
-            const res = await musicSheetCategoriesSwitching(row.id)
-            message.success('操作成功')
-            onSubmit()
-          } catch (e) {}
-        }
-      })
-    }
-
-    const columns = (): DataTableColumn[] => {
-      return [
-        {
-          title: '教材编号',
-          key: 'id'
-        },
-        {
-          title: '教材名称',
-          key: 'name'
-        },
-        {
-          title: '教材封面',
-          key: 'coverImg',
-          render: (row: any) => (
-            <img src={row.coverImg} style={{ width: '175px', height: '70px' }} alt="" />
-          )
-        },
-        {
-          title: '曲目数量',
-          key: 'musicSheetNum'
-        },
-
-        // {
-        //   title: '使用音源',
-        //   key: 'soundResource'
-        //   //   render(row) {
-        //   //     return `第${row.semesterNo}学期`
-        //   //   }
-        // },
-        {
-          title: '最后更新时间',
-          key: 'updateTime'
-        },
-        {
-          title: '教材状态',
-          key: 'enable',
-          render(row) {
-            return row.enable ? '已启用' : '未启用'
-          }
-        },
-
-        {
-          title: '操作',
-          key: 'operation',
-          fixed: 'right',
-          render(row: any) {
-            return (
-              <NSpace>
-                {row.enable ? (
-                  <NButton
-                    //v-auth="musicSheetCategories/switching1608067671668359169"
-                    type="error"
-                    size="small"
-                    text
-                    onClick={() => handleChangeState(row, false)}
-                  >
-                    停用
-                  </NButton>
-                ) : (
-                  <NButton
-                    //v-auth="musicSheetCategories/switching1608067671668359169"
-                    type="primary"
-                    size="small"
-                    text
-                    onClick={() => handleChangeState(row, true)}
-                  >
-                    启用
-                  </NButton>
-                )}
-                {/* <NButton
-                  type="primary"
-                  size="small"
-                  text
-                  onClick={() => {
-                    gotoDetail(row)
-                  }}
-                >
-                  查看
-                </NButton> */}
-                <NButton
-                  type="primary"
-                  size="small"
-                  text
-                  onClick={() => {
-                    resetPlan(row)
-                  }}
-                  //v-auth="musicSheetCategories/update1608067835686617090"
-                >
-                  修改
-                </NButton>
-                {row.currentLevel < 4 ? (
-                  <NButton
-                    type="primary"
-                    size="small"
-                    text
-                    onClick={() => handleAdd(row)}
-                    //v-auth="musicSheetCategories/save1608067543331045378"
-                  >
-                    添加
-                  </NButton>
-                ) : null}
-              </NSpace>
-            )
-          }
-        }
-      ]
-    }
-
-    const saveForm = ref()
-    const onSubmit = () => {
-      state.pagination.page = 1
-      getList()
-    }
-
-    // 删除
-    const handleDelete = async (row: any) => {
-      dialog.warning({
-        title: '警告',
-        content: '是否确认删除此计划?',
-        positiveText: '确定',
-        negativeText: '取消',
-        onPositiveClick: async () => {
-          console.log('row', row)
-          //   const res = await lessonPlanRemove(row.id)
-          //   if (res.data) {
-          //     onSubmit()
-          //     message.success('删除成功')
-          //   }
-        }
-      })
-    }
-
-    const onSearch = () => {
-      saveForm.value?.submit()
-    }
-    const onBtnReset = () => {
-      saveForm.value?.reset()
-    }
-    // 修改
-    const resetPlan = (row: any) => {
-      state.actvieRow = row
-      state.isAdd = false
-      state.visiablePlan = true
-    }
-    // 曲目新增
-    const handleAdd = (row: any) => {
-      state.actvieRow = row
-      state.isAdd = true
-      state.visiablePlan = true
-    }
-    // 详情
-    const gotoDetail = (row: any) => {
-      console.log('gotoDetail')
-      emit('setTabName', {
-        id: row.id,
-        tabName: 'MusicList'
-      })
-      // router.push({ path: '/planDetail', query: { name: row.name, id: row.id } })
-    }
-    return () => (
-      <div class="system-menu-container">
-        <div class={['section-container']}>
-          <SaveForm
-            ref={saveForm}
-            model={searchForm}
-            onSubmit={onSubmit}
-            onSetModel={(val: any) => Object.assign(searchForm, val)}
-            saveKey="music-categrory"
-          >
-            {/* <NFormItem path="keyword" label="计划名称/编号">
-              <NInput v-model:value={searchForm.keyword} placeholder="计划名称/编号" clearable />
-            </NFormItem> */}
-
-            <NFormItem path="enable" label="教材状态">
-              <NSelect
-                placeholder="教材状态"
-                clearable
-                v-model:value={searchForm.enable}
-                options={[
-                  { label: '已启用', value: 1 },
-                  { label: '未启用', value: 0 }
-                ]}
-              />
-            </NFormItem>
-            <NFormItem>
-              <NSpace>
-                <NButton type="primary" onClick={onSearch}>
-                  搜索
-                </NButton>
-                <NButton type="default" onClick={onBtnReset}>
-                  重置
-                </NButton>
-              </NSpace>
-            </NFormItem>
-          </SaveForm>
-          <NSpace style={{ paddingBottom: '12px' }}>
-            <NButton
-              type="primary"
-              //v-auth="musicSheetCategories/save1608067543331045378"
-              onClick={() => {
-                state.actvieRow = null
-                state.visiablePlan = true
-                state.isAdd = true
-              }}
-            >
-              新增分类
-            </NButton>
-          </NSpace>
-
-          <NDataTable
-            scrollX={1000}
-            loading={state.loading}
-            columns={columns()}
-            data={state.dataList}
-            rowKey={(row: any) => row.id}
-            childrenKey="musicSheetCategoriesList"
-          ></NDataTable>
-        </div>
-        <NModal
-          v-model:show={state.visiablePlan}
-          preset="dialog"
-          showIcon={false}
-          title={state.actvieRow ? '修改曲谱分类' : '新增曲谱分类'}
-          style={{ width: '550px' }}
-        >
-          <EidtCategroy
-            onGetList={() => {
-              state.visiablePlan = false
-              getList()
-            }}
-            onClose={() => {
-              state.visiablePlan = false
-            }}
-            list={state.dataList}
-            isAdd={state.isAdd}
-            actvieRow={state.actvieRow}
-          ></EidtCategroy>
-        </NModal>
-      </div>
-    )
-  }
-})

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

@@ -105,7 +105,7 @@ export default defineComponent({
         },
         {
           title: '上传人',
-          key: 'createBy'
+          key: 'createByName'
         },
         {
           title: '上传时间',

+ 1 - 1
src/views/music-library/music-sheet/component/music-sheet-categories-list.tsx

@@ -172,7 +172,7 @@ export default defineComponent({
               v-model:show={state.showSaveDialog}
               preset="dialog"
               showIcon={false}
-              title={state.saveRowData ? '修改曲谱分类' : '新增曲谱分类'}
+              title={state.saveRowData ? '修改分类' : '新增分类'}
               style={{width: '550px'}}
           >
             <SaveCategroyDialog

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

@@ -482,26 +482,6 @@ export default defineComponent({
       return partListNames || []
     }
 
-    // 获取乐器信息
-
-    const initInstrumentList = async () => {
-      if (state.instrumentList && state.instrumentList.length > 0) {
-        return
-      }
-      try {
-        const {data} = await musicalInstrumentPage({page: 1, rows: 999})
-        const tempList = data.rows || []
-        state.instrumentData = tempList
-        tempList.forEach((item: any) => {
-          item.label = item.name
-          item.value = item.id + ''
-          item.disabled = !item.enableFlag
-        })
-        state.instrumentList = tempList
-      } catch {
-      }
-    }
-
     // 反显声部
     const showBackSubject = async (musicalInstrumentIdList: []) => {
       try {
@@ -560,7 +540,24 @@ export default defineComponent({
 
     onMounted(async () => {
       state.loading = true
-      initInstrumentList();
+      // 获取乐器信息
+      {
+        if (state.instrumentList && state.instrumentList.length > 0) {
+          return
+        }
+        try {
+          const {data} = await musicalInstrumentPage({page: 1, rows: 999})
+          const tempList = data.rows || []
+          state.instrumentData = tempList
+          tempList.forEach((item: any) => {
+            item.label = item.name
+            item.value = item.id + ''
+            item.disabled = !item.enableFlag
+          })
+          state.instrumentList = tempList
+        } catch {
+        }
+      }
       state.subjectList = deepClone(props.subjectList)
       state.subjectList.forEach((subject: any) => {
         subject.disabled = !subject.enableFlag
@@ -669,7 +666,7 @@ export default defineComponent({
                 <NInput
                     v-model:value={forms.name}
                     placeholder="请输入曲目名称"
-                    maxlength={120}
+                    maxlength={25}
                     showCount
                 />
               </NFormItemGi>
@@ -931,7 +928,7 @@ export default defineComponent({
                       path="musicSheetAccompanimentList"
                       rule={[
                         {
-                          required: true,
+                          required: false,
                           message: '请选择上传.mp3'
                         }
                       ]}
@@ -1006,7 +1003,7 @@ export default defineComponent({
                     v-model:fileList={forms.xmlFileUrl}
                     tips="仅支持上传.xml格式文件"
                     listType="image"
-                    accept=".xml"
+                    accept=".xml,.mxml"
                     bucketName="cloud-coach"
                     text="点击上传XML文件"
                     onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer}

+ 1 - 1
src/views/music-library/music-sheet/modal/save-categroy-dialog.tsx

@@ -29,7 +29,6 @@ export default defineComponent({
     const onSubmit = async () => {
       formRef.value?.validate(async (errors: any) => {
         if (errors) {
-          message.error(errors)
           return;
         }
         try {
@@ -93,6 +92,7 @@ export default defineComponent({
                   v-model:value={forms.name}
                   placeholder="请输入分类名称"
                   maxlength={25}
+                  showCount
                   clearable
               ></NInput>
             </NFormItem>

+ 0 - 178
src/views/system-manage/instrument-manage/index.tsx

@@ -1,178 +0,0 @@
-import Pagination from '@/components/pagination'
-import { NButton, NDataTable, NImage, NModal, NSpace, NTag, useDialog, useMessage } from 'naive-ui'
-import { defineComponent, onMounted, reactive } from 'vue'
-import { subjectPage, subjectUpdate } from '../api'
-import SongOperation from './instrument-operation'
-
-export default defineComponent({
-  name: 'instrument-manage',
-  setup() {
-    const state = reactive({
-      loading: false,
-      pagination: {
-        page: 1,
-        rows: 10,
-        pageTotal: 0
-      },
-      searchForm: {
-        keyword: null,
-        status: null
-      },
-      dataList: [] as any,
-      visiableSong: false,
-      songOperation: 'add',
-      songData: {} as any
-    })
-    const dialog = useDialog()
-    const message = useMessage()
-
-    const columns = () => {
-      return [
-        {
-          title: '编号',
-          key: 'id'
-        },
-        {
-          title: '图片',
-          key: 'img',
-          render(row: any) {
-            return <NImage width={70} src={row.img} />
-          }
-        },
-        {
-          title: '所属声部',
-          key: 'name'
-        },
-        {
-          title: '乐器名称',
-          key: 'name'
-        },
-        {
-          title: '乐器编码',
-          key: 'code'
-        },
-        // {
-        //   title: '状态',
-        //   key: 'delFlag',
-        //   render(row: any) {
-        //     return !row.delFlag ? <NTag type="primary">启用</NTag> : <NTag type="error">停用</NTag>
-        //   }
-        // },
-        {
-          title: '操作',
-          key: 'operation',
-          render(row: any) {
-            return (
-              <NSpace>
-                <NButton
-                  type="primary"
-                  size="small"
-                  text
-                  //v-auth="subject/update1598205405598932994"
-                  onClick={() => {
-                    state.visiableSong = true
-                    state.songOperation = 'edit'
-                    state.songData = row
-                  }}
-                >
-                  修改
-                </NButton>
-
-                {/* <NButton
-                  type="primary"
-                  size="small"
-                  text
-                  v-auth="subject/update1668958388100288514"
-                  onClick={() => onOperation(row)}
-                >
-                  {row.delFlag ? '启用' : '停用'}
-                </NButton> */}
-              </NSpace>
-            )
-          }
-        }
-      ]
-    }
-
-    // const onOperation = async (row: any) => {
-    //   const content = row.delFlag ? `您是否启用“${row.name}”?` : `您是否停用“${row.name}”?`
-    //   dialog.warning({
-    //     title: '提示',
-    //     content,
-    //     positiveText: '确定',
-    //     negativeText: '取消',
-    //     onPositiveClick: async () => {
-    //       try {
-    //         await subjectUpdate({ id: row.id, delFlag: !row.delFlag })
-    //         message.success(`${row.delFlag ? '启用' : '停用'}成功`)
-    //         getList()
-    //       } catch {}
-    //     }
-    //   })
-    // }
-
-    const getList = async () => {
-      try {
-        state.loading = true
-        const { data } = await subjectPage({ ...state.pagination, ...state.searchForm })
-        state.loading = false
-        state.pagination.pageTotal = Number(data.total)
-        state.dataList = data.rows || []
-      } catch {
-        state.loading = false
-      }
-    }
-
-    onMounted(() => {
-      getList()
-    })
-    return () => (
-      <div class="system-menu-container">
-        <h2>乐器管理</h2>
-
-        <div class={['section-container']}>
-          <NSpace style={{ paddingBottom: '12px' }}>
-            <NButton
-              type="primary"
-              //v-auth="subject/save1598205342327857154"
-              onClick={() => {
-                state.visiableSong = true
-                state.songOperation = 'add'
-                state.songData = {}
-              }}
-            >
-              添加乐器
-            </NButton>
-          </NSpace>
-
-          <NDataTable
-            loading={state.loading}
-            columns={columns()}
-            data={state.dataList}
-          ></NDataTable>
-          <Pagination
-            v-model:page={state.pagination.page}
-            v-model:pageSize={state.pagination.rows}
-            v-model:pageTotal={state.pagination.pageTotal}
-            onList={getList}
-            sync
-          ></Pagination>
-        </div>
-        <NModal
-          v-model:show={state.visiableSong}
-          preset="dialog"
-          showIcon={false}
-          title={state.songOperation === 'add' ? '新增声部' : '修改声部'}
-          style={{ width: '500px' }}
-        >
-          <SongOperation
-            type={state.songOperation}
-            data={state.songData}
-            onClose={() => (state.visiableSong = false)}
-            onGetList={getList}
-          />
-        </NModal>
-      </div>
-    )
-  }
-})

+ 0 - 142
src/views/system-manage/instrument-manage/instrument-operation.tsx

@@ -1,142 +0,0 @@
-import UploadFile from '@/components/upload-file'
-import deepClone from '@/utils/deep.clone'
-import {NForm, NInput, NSpace, NButton, useMessage, NFormItem, NSelect} from 'naive-ui'
-import {defineComponent, onMounted, PropType, reactive, ref} from 'vue'
-import {subjectSave, subjectUpdate} from '../api'
-import {platformArr} from "@views/system-manage/app-version/operation";
-
-export default defineComponent({
-  name: 'role-operation',
-  props: {
-    type: {
-      type: String,
-      default: 'add'
-    },
-    applyList: {
-      type: Array as PropType<any>,
-      default: () => []
-    },
-    data: {
-      type: Object as PropType<any>,
-      default: () => {
-      }
-    }
-  },
-  emits: ['close', 'getList'],
-  setup(props, {slots, attrs, emit}) {
-    const forms = reactive({
-      name: null,
-      code: null,
-      img: null,
-      parentId: 0
-    })
-    const btnLoading = ref(false)
-    const formsRef = ref()
-    const message = useMessage()
-
-    const onSubmit = async () => {
-      formsRef.value.validate(async (error: any) => {
-        if (error) return false
-        try {
-          btnLoading.value = true
-
-          if (props.type === 'add') {
-            await subjectSave({...forms})
-            message.success('添加成功')
-          } else if (props.type === 'edit') {
-            await subjectUpdate({
-              ...forms,
-              id: props.data.id
-            })
-            message.success('修改成功')
-          }
-
-          emit('close')
-          emit('getList')
-        } catch {
-        }
-        btnLoading.value = false
-      })
-    }
-
-    onMounted(async () => {
-      if (props.type === 'edit') {
-        const data = props.data
-        forms.img = data.img
-        forms.name = data.name
-        forms.code = data.code
-      }
-    })
-
-    return () => (
-        <div style="background: #fff; padding-top: 12px">
-          <NForm model={forms} ref={formsRef} label-placement="left" label-width="auto">
-            <NFormItem
-                label="乐器图片"
-                path="img"
-                rule={[
-                  {
-                    required: true,
-                    message: '请输入声部图片'
-                  }
-                ]}
-            >
-              <UploadFile
-                  size={2}
-                  cropper
-                  v-model:fileList={forms.img}
-                  bucketName="gyt"
-                  path="basic/"
-                  tips="图片大小2M以内"
-              />
-            </NFormItem>
-            <NFormItem
-                label="所属声部"
-                path="name"
-                rule={[
-                  {
-                    required: true
-                  }
-                ]}
-            >
-              <NSelect
-                  // v-model:value={state.searchForm.platform}
-                  placeholder="请选择声部"
-                  // options={platformArr}
-                  clearable
-              />
-            </NFormItem>
-            <NFormItem
-                label="乐器名称"
-                path="name"
-                rule={[
-                  {
-                    required: true,
-                    message: '请输入声部名称'
-                  }
-                ]}
-            >
-              <NInput
-                  v-model:value={forms.name}
-                  placeholder="请输入声部名称"
-                  clearable
-                  maxlength={100}
-              ></NInput>
-            </NFormItem>
-            <NFormItem label="乐器编码" path="code">
-              <NInput v-model:value={forms.code} placeholder="请输入乐器编码" clearable></NInput>
-            </NFormItem>
-          </NForm>
-
-          <NSpace justify="end">
-            <NButton type="default" onClick={() => emit('close')}>
-              取消
-            </NButton>
-            <NButton type="primary" onClick={() => onSubmit()} loading={btnLoading.value}>
-              保存
-            </NButton>
-          </NSpace>
-        </div>
-    )
-  }
-})

+ 0 - 12
src/views/system-manage/subject-manage/instrument/instrument-list.tsx

@@ -29,7 +29,6 @@ export default defineComponent({
         defaultScore: null, //默认谱面
         code: null, //编码
         operatorKeyword: null, //操作人
-        hz: null, //评测频率
       },
       dataList: [] as any,
       showSave: false,
@@ -83,10 +82,6 @@ export default defineComponent({
           key: 'code'
         },
         {
-          title: '评测频率',
-          key: 'hz'
-        },
-        {
           title: '声部',
           key: 'subjectName'
         },
@@ -192,13 +187,6 @@ export default defineComponent({
                     clearable
                 />
               </NFormItem>
-              <NFormItem path="rate" label="评测频率">
-                <NInput
-                    v-model:value={state.searchForm.hz}
-                    placeholder="请输入评测频率"
-                    clearable
-                />
-              </NFormItem>
               <NFormItem path="defaultScore" label="默认谱面">
                 <NSelect
                     options={getSelectDataFromObj(defaultScore)}

+ 4 - 21
src/views/system-manage/subject-manage/instrument/modal/instrument-save.tsx

@@ -65,8 +65,7 @@ export default defineComponent({
         forms.name = data.name
         forms.defaultScore = data.defaultScore
         forms.code = data.code
-        forms.hz = data.hz
-        forms.isConvertibleScore = data.isConvertibleScore
+        forms.isConvertibleScore = !!forms.defaultScore
       }
     })
 
@@ -79,13 +78,13 @@ export default defineComponent({
                 rule={[
                   {
                     required: true,
-                    message: '请输入声部名称'
+                    message: '请输入乐器名称'
                   }
                 ]}
             >
               <NInput
                   v-model:value={forms.name}
-                  placeholder="请输入声部名称"
+                  placeholder="请输入乐器名称"
                   clearable
                   maxlength={10}
                   showCount
@@ -115,7 +114,7 @@ export default defineComponent({
                       }
                     ] as any
                   }
-                  placeholder="请输入声部名称"
+                  placeholder="请选择是否支持转简谱"
                   clearable
               ></NSelect>
             </NFormItem>
@@ -150,22 +149,6 @@ export default defineComponent({
             >
               <NInput v-model:value={forms.code} placeholder="请输入乐器编码" clearable></NInput>
             </NFormItem>
-            <NFormItem
-                label="评测频率"
-                path="hz"
-                rule={[
-                  {
-                    required: true,
-                    message: '请输入评测频率'
-                  }
-                ]}
-            >
-              <NInput
-                  v-model:value={forms.hz}
-                  placeholder="请输入评测频率"
-                  clearable
-              ></NInput>
-            </NFormItem>
           </NForm>
 
           <NSpace justify="end">

+ 18 - 18
src/views/system-manage/subject-manage/subject-categorize/categorize-list.tsx

@@ -50,15 +50,15 @@ export default defineComponent({
             )
           }
         },
-        {
-          title: '状态',
-          key: 'enableFlag',
-          render(row: any) {
-            return (
-                <NTag type={row.enableFlag ? 'primary' : 'default'}>{row.enableFlag ? '启用' : '停用'}</NTag>
-            )
-          }
-        },
+        // {
+        //   title: '状态',
+        //   key: 'enableFlag',
+        //   render(row: any) {
+        //     return (
+        //         <NTag type={row.enableFlag ? 'primary' : 'default'}>{row.enableFlag ? '启用' : '停用'}</NTag>
+        //     )
+        //   }
+        // },
         {
           title: '操作',
           key: 'operation',
@@ -79,15 +79,15 @@ export default defineComponent({
                   >
                     修改
                   </NButton>
-                  <NButton
-                      type="primary"
-                      size="small"
-                      text
-                      //v-auth="sysNotice/status1599959101026455553"
-                      onClick={() => onChangeStatus(row)}
-                  >
-                    {row.enableFlag ? '停用' : '启用'}
-                  </NButton>
+                  {/*<NButton*/}
+                  {/*    type="primary"*/}
+                  {/*    size="small"*/}
+                  {/*    text*/}
+                  {/*    //v-auth="sysNotice/status1599959101026455553"*/}
+                  {/*    onClick={() => onChangeStatus(row)}*/}
+                  {/*>*/}
+                  {/*  {row.enableFlag ? '停用' : '启用'}*/}
+                  {/*</NButton>*/}
                 </NSpace>
             )
           }

+ 2 - 8
src/views/system-manage/subject-manage/subject-categorize/modal/categorize-save.tsx

@@ -23,10 +23,6 @@ export default defineComponent({
   setup(props, {slots, attrs, emit}) {
     const forms = reactive({
       name: null,
-      defaultScore: null,
-      code: null,
-      img: null,
-      hz: null,
       parentId: 0
     })
     const btnLoading = ref(false)
@@ -40,7 +36,7 @@ export default defineComponent({
           btnLoading.value = true
 
           if (props.type === 'add') {
-            await subjectCategorySave({...forms})
+            await subjectCategorySave({...forms, enableFlag: true})
             message.success('添加成功')
           } else if (props.type === 'edit') {
             await subjectCategoryUpdate({
@@ -61,9 +57,7 @@ export default defineComponent({
     onMounted(async () => {
       if (props.type === 'edit') {
         const data = props.data
-        forms.img = data.img
         forms.name = data.name
-        forms.code = data.code
       }
     })
 
@@ -82,7 +76,7 @@ export default defineComponent({
             >
               <NInput
                   v-model:value={forms.name}
-                  placeholder="请输入声部名称"
+                  placeholder="请输入分类名称"
                   clearable
                   maxlength={10}
                   showCount

+ 19 - 9
src/views/system-manage/subject-manage/subject/modal/subject-save.tsx

@@ -2,6 +2,7 @@ import {NButton, NForm, NFormItem, NInput, NSelect, NSpace, useMessage} from 'na
 import {defineComponent, onMounted, PropType, reactive, ref} from 'vue'
 import {subjectUpdate, subjectSave} from "@views/system-manage/subject-manage/api";
 import UploadFile from "@components/upload-file";
+import deepClone from "@/utils/deep.clone";
 
 export default defineComponent({
   name: 'role-operation',
@@ -74,6 +75,14 @@ export default defineComponent({
     }
 
     onMounted(async () => {
+      state.categoryList = deepClone(props.categoryList)
+      state.instrumentList = deepClone(props.instrumentList)
+      state.categoryList.forEach((next: any) => {
+        next.disabled = !next.enableFlag
+      })
+      // state.instrumentList.forEach((next: any) => {
+      //   next.disabled = !next.enableFlag
+      // })
       if (props.type === 'edit') {
         const data = props.data
         state.forms.categoryId = data.categoryId
@@ -81,14 +90,15 @@ export default defineComponent({
         state.forms.img = data.img
         state.forms.code = data.code
         state.forms.musicalInstrumentIds = data.musicalInstrumentIds?.split(',') || [];
+      } else {
+        state.categoryList = state.categoryList.filter((next: any) => {
+          return next.enableFlag == true
+        })
+        // state.instrumentList = state.instrumentList.filter((next: any) => {
+        //   return next.enableFlag == true
+        // })
       }
-      console.log("pca", props.categoryList)
-      props.categoryList.forEach((next: any) => {
-        next.disabled = !next.enableFlag
-      })
-      props.instrumentList.forEach((next: any) => {
-        next.disabled = !next.enableFlag
-      })
+
     })
 
     return () => (
@@ -112,7 +122,7 @@ export default defineComponent({
                   clearable
                   v-model:value={state.forms.categoryId}
                   placeholder="请选择声部分类"
-                  options={props.categoryList as any}
+                  options={state.categoryList as any}
                   filterable
               />
             </NFormItem>
@@ -194,7 +204,7 @@ export default defineComponent({
                   clearable
                   v-model:value={state.forms.musicalInstrumentIds}
                   placeholder="请选择关联乐器"
-                  options={props.instrumentList as any}
+                  options={state.instrumentList as any}
               />
             </NFormItem>
           </NForm>