zhuf il y a 1 an
Parent
commit
91a759685f

+ 3 - 0
components.d.ts

@@ -8,10 +8,12 @@ declare module '@vue/runtime-core' {
     AppLink: typeof import('./src/components/AppLink/index.vue')['default']
     ElButton: typeof import('element-plus/es')['ElButton']
     ElCascader: typeof import('element-plus/es')['ElCascader']
+    ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
     ElDialog: typeof import('element-plus/es')['ElDialog']
     ElDivider: typeof import('element-plus/es')['ElDivider']
+    ElEmpty: typeof import('element-plus/es')['ElEmpty']
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
     ElInput: typeof import('element-plus/es')['ElInput']
@@ -24,6 +26,7 @@ declare module '@vue/runtime-core' {
     ElProgress: typeof import('element-plus/es')['ElProgress']
     ElRadio: typeof import('element-plus/es')['ElRadio']
     ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
+    ElRate: typeof import('element-plus/es')['ElRate']
     ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
     ElSelect: typeof import('element-plus/es')['ElSelect']
     ElSubMenu: typeof import('element-plus/es')['ElSubMenu']

+ 1 - 1
plop/example/routes/xdjy.mjs

@@ -39,7 +39,7 @@ export default [
         }
       },
     ],
-    meta: { title: "区教研管理" },
+    meta: { title: "校本资源库" },
   },
   {
     path: "/wljy",

+ 1 - 1
src/components/FileLink/index.vue

@@ -11,7 +11,7 @@ const props = defineProps<{
 const files = ref(props.file.split(";").map(str => {
     const [part, name] = str.split("|")
     return {
-        url: window.GLOBAL_CONFIG.oss + '/' + part,
+        url: window.GLOBAL_CONFIG.oss + '/' + part + '/' + name,
         name: name ?? part
     }
 }))

+ 26 - 17
src/pages/xdjy/qjygl/zyxxlb/index.vue

@@ -6,6 +6,7 @@ import { pick } from 'lodash-es';
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
 import type { AxiosRequestConfig } from 'axios'
+import { user } from '~/store/user'
 
 // #region (constant)
 const TABLE_KEY = 'xqz_id'
@@ -72,15 +73,15 @@ const handleTableRowBtn_import = async ({ file }: { file: File }) => {
   }
 }
 const handleTableRowBtn_export = () => {
-  if(multipleSelection.value.length===0) return ElMessage.info('请先勾选导出文件');exportApi({[TABLE_KEY]:multipleSelection.value.map((item: TYPE_TABLE_FIELD)=>item[TABLE_KEY])?.join()})
+  if (multipleSelection.value.length === 0) return ElMessage.info('请先勾选导出文件'); exportApi({ [TABLE_KEY]: multipleSelection.value.map((item: TYPE_TABLE_FIELD) => item[TABLE_KEY])?.join() })
 }
 const handleTableRowBtn_add = () => {
   whichDialogSubmit = 'add'
-  dialogForm_Data.value = {}
+  dialogForm_Data.value = { xqz_scr: user.user_realname }
   dialogVisible_addOrEdit.value = true
 }
 const handleTableRowBtn_delete = async () => {
-  if(multipleSelection.value.length===0) return ElMessage.info('请先勾选文件');const resp = await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD) => item[TABLE_KEY]));if(resp.code!=='1')return;ElMessage.success('删除成功');
+  if (multipleSelection.value.length === 0) return ElMessage.info('请先勾选文件'); const resp = await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD) => item[TABLE_KEY])); if (resp.code !== '1') return; ElMessage.success('删除成功');
   queryApi()
 }
 // #endregion
@@ -105,7 +106,7 @@ const handleTableColBtn_detail = (scope: { row: TYPE_TABLE_FIELD }) => {
   router.push({ name: DetailName, params: { [DetailParam]: scope.row[TABLE_KEY] } })
 }
 const handleTableColBtn_delete = async (scope: { row: TYPE_TABLE_FIELD }) => {
-  const resp = await deleteApi(scope.row[TABLE_KEY]);if(resp.code!=='1')return;ElMessage.success('删除成功');
+  const resp = await deleteApi(scope.row[TABLE_KEY]); if (resp.code !== '1') return; ElMessage.success('删除成功');
   queryApi()
 }
 const handleTableColBtn_download = (scope: { row: TYPE_TABLE_FIELD }) => {
@@ -135,7 +136,7 @@ const handleDialogFormBtn_submit = async (formRefKey: string, extendData?: Parti
   const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid: boolean) => valid)
   if (isValid) {
     const resp = await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({ ...dialogForm_Data.value, ...extendData }))
-    if(resp.code!=='1')return;ElMessage.success('操作成功');handleDialogFormBtn_cancel()
+    if (resp.code !== '1') return; ElMessage.success('操作成功'); handleDialogFormBtn_cancel()
     queryApi()
   }
 }
@@ -164,8 +165,8 @@ const dialogForm_Rules_addOrEdit = reactive({
   'grade_name': { required: true, message: '年级名称不能为空', trigger: 'submit' },
   'subject_id': { required: true, message: '学科编号不能为空', trigger: 'submit' },
   'subject_name': { required: true, message: '学科名称不能为空', trigger: 'submit' },
-  // 'sub_cate_id': { required: true, message: '章节名称不能为空', trigger: 'submit' },
-  'sub_cate_name': { required: true, message: '章节名称不能为空', trigger: 'submit' },
+  'sub_cate_id': { required: true, message: '章节名称不能为空', trigger: 'submit' },
+  // 'sub_cate_name': { required: true, message: '章节名称不能为空', trigger: 'submit' },
 
 })
 // #endregion
@@ -276,7 +277,7 @@ function importApi(data: { file: File }) {
 }
 
 function exportApi(d) {
-  return download(URL_CUT + '/index', {...queryForm_Data.value,...d})
+  return download(URL_CUT + '/index', { ...queryForm_Data.value, ...d })
 }
 
 const API_MAP = {
@@ -344,7 +345,10 @@ const xqz_nm = ref()
         <remote-select to="subject" v-model="queryForm_Data.subject_id"></remote-select>
       </el-form-item>
       <el-form-item label="章节">
-        <remote-cascader url="/book/store/tree" v-model="queryForm_Data.sub_cate_id"></remote-cascader>
+        <!-- <remote-cascader url="/book/store/tree" v-model="queryForm_Data.sub_cate_id"></remote-cascader> -->
+        <el-select v-model="queryForm_Data.sub_cate_id" clearable>
+          <el-option v-for="item in 50" :key="item" :label="'第' + item + '章'" :value="item.toString()" />
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button @click="handleQueryFormBtn_search" type="primary">搜索</el-button>
@@ -371,7 +375,11 @@ const xqz_nm = ref()
         <!-- <el-table-column prop="grade_name" label="年级名称" width="auto" show-overflow-tooltip></el-table-column> -->
         <!-- <el-table-column prop="subject_id" label="学科编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="subject_name" label="学科名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="sub_cate_name" label="章节" width="auto" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="sub_cate_name" label="章节" width="auto" show-overflow-tooltip>
+          <template #="scope">
+            <span>第{{ scope.row.sub_cate_id }}章</span>
+          </template>
+        </el-table-column>
         <el-table-column prop="xqz_zydx" label="资源大小" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="xqz_scr" label="上传人" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="xqz_scsj" label="上传时间" width="auto" show-overflow-tooltip></el-table-column>
@@ -442,13 +450,15 @@ const xqz_nm = ref()
       </el-form-item> -->
       <el-form-item label="学科名称" prop="subject_name">
         <!-- <el-input v-model="dialogForm_Data.subject_name" clearable /> -->
-        <remote-select to="subject" v-model="dialogForm_Data.subject_id"
-          v-model:modelName="dialogForm_Data.subject_name">
+        <remote-select to="subject" v-model="dialogForm_Data.subject_id" v-model:modelName="dialogForm_Data.subject_name">
         </remote-select>
       </el-form-item>
-      <el-form-item label="章节" prop="sub_cate_name">
-        <remote-cascader url="/book/store/tree" v-model="dialogForm_Data.sub_cate_id"
-          v-model:modelName="dialogForm_Data.sub_cate_name"></remote-cascader>
+      <el-form-item label="章节" prop="sub_cate_id">
+        <!-- <remote-cascader url="/book/store/tree" v-model="dialogForm_Data.sub_cate_id"
+          v-model:modelName="dialogForm_Data.sub_cate_name"></remote-cascader> -->
+        <el-select v-model="dialogForm_Data.sub_cate_id" clearable>
+          <el-option v-for="item in 50" :key="item" :label="'第' + item + '章'" :value="item.toString()" />
+        </el-select>
       </el-form-item>
       <!-- <el-form-item label="资源大小" prop="xqz_zydx">
         <el-input v-model="dialogForm_Data.xqz_zydx" clearable />
@@ -500,8 +510,7 @@ const xqz_nm = ref()
   </el-dialog>
 
   <el-dialog v-model="dialogVisible_comment" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_comment" :rules="dialogForm_Rules_comment"
-      label-width="120px">
+    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_comment" :rules="dialogForm_Rules_comment" label-width="120px">
 
       <el-form-item label="资源评分" prop="xqz_zypf">
         <str-to-num v-model="dialogForm_Data.xqz_zypf">

+ 2 - 2
src/router/index.ts

@@ -2,8 +2,8 @@ import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
 import { app_ready, app_routes } from '~/store/app';
 import { RouteRecordDetailRaw } from './routes.d';
 
-import localRoutes, { title } from './routes/xdjx';
-// import localRoutes, { title } from './routes/xdjy';
+// import localRoutes, { title } from './routes/xdjx';
+import localRoutes, { title } from './routes/xdjy';
 // import localRoutes, { title } from './routes/xdhq';
 
 document.title = title

+ 14 - 14
src/router/routes/xdjy.ts

@@ -10,7 +10,7 @@ export default <RouteRecordDetailRaw[]>[
       "hidden": false,
       "breadcrumb": false,
       "sort": 0,
-      "title": "区教研管理"
+      "title": "校本资源库"
     },
     "component": () => import('~/pages/xdjy/qjygl.vue'),
     "children": [
@@ -130,19 +130,19 @@ export default <RouteRecordDetailRaw[]>[
           "name": "-WLJY-KCLB-INDEX"
         }
       },
-      {
-        "path": "jpklmgl",
-        "name": "-WLJY-JPKLMGL",
-        "props": false,
-        "meta": {
-          "hidden": false,
-          "breadcrumb": false,
-          "sort": 1,
-          "title": "精品课栏目管理"
-        },
-        "component": () => import('~/pages/xdjy/wljy/jpklmgl.vue'),
-        "redirect": null
-      },
+      // {
+      //   "path": "jpklmgl",
+      //   "name": "-WLJY-JPKLMGL",
+      //   "props": false,
+      //   "meta": {
+      //     "hidden": false,
+      //     "breadcrumb": false,
+      //     "sort": 1,
+      //     "title": "精品课栏目管理"
+      //   },
+      //   "component": () => import('~/pages/xdjy/wljy/jpklmgl.vue'),
+      //   "redirect": null
+      // },
       {
         "path": "jpkc",
         "name": "-WLJY-JPKC",