zhuf hai 1 ano
pai
achega
9fd4e49a3c
Modificáronse 3 ficheiros con 20 adicións e 18 borrados
  1. 8 8
      src/pages/teacher/indey/create.vue
  2. 11 9
      src/pages/teacher/indey/edit.vue
  3. 1 1
      tsconfig.json

+ 8 - 8
src/pages/teacher/indey/create.vue

@@ -1,8 +1,8 @@
 <script setup lang='ts'>
-import { useRouter, RouteLocationRaw } from 'vue-router'
-import type { FormInstance, FormRules } from 'element-plus'
-import { ref, reactive } from 'vue'
 import { Plus } from '@element-plus/icons-vue'
+import type { FormInstance, FormRules } from 'element-plus'
+import { reactive, ref } from 'vue'
+import { RouteLocationRaw, useRouter } from 'vue-router'
 import { Grade, Subject } from '~/store/info'
 import user from '~/store/user'
 const token = user.token
@@ -30,10 +30,10 @@ const ruleForm = reactive({
 })
 
 const rules = reactive<FormRules>({
-  dc_title: [{ required: true, message: '标题不能为空', trigger: 'blur', }],
+  dc_title: [{ required: true, message: '标题不能为空', trigger: 'blur', }, { max: 20, message: '长度在 20 个字符以内', trigger: ['change','blur'], }],
   dc_grade_id: [{ required: true, message: '年级不能为空', trigger: 'blur', }],
   dc_subject_id: [{ required: true, message: '科目不能为空', trigger: 'blur', }],
-  dc_keyword: [{ required: true, message: '关键字不能为空', trigger: 'blur', }],
+  dc_keyword: [{ required: true, message: '关键字不能为空', trigger: 'blur', }, { max: 10, message: '长度在 10 个字符以内', trigger: ['change','blur'], }],
 })
 
 const submit_loading = ref(false)
@@ -122,7 +122,7 @@ function translateString(str: string) {
 
     <el-form class="mt-8" ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="120px" size="large" status-icon>
       <el-form-item label="标题" prop="dc_title">
-        <el-input v-model="ruleForm.dc_title" maxlength="20" show-word-limit />
+        <el-input v-model="ruleForm.dc_title" show-word-limit clearable />
       </el-form-item>
       <el-form-item label="年级" prop="dc_grade_id">
         <el-select clearable v-model="ruleForm.dc_grade_id">
@@ -136,7 +136,7 @@ function translateString(str: string) {
         </el-select>
       </el-form-item>
       <el-form-item label="关键字" prop="dc_keyword">
-        <el-input v-model="ruleForm.dc_keyword" maxlength="10" show-word-limit />
+        <el-input v-model="ruleForm.dc_keyword" show-word-limit clearable />
       </el-form-item>
       <el-form-item label="内容" prop="dc_content">
         <el-input v-model="ruleForm.dc_content" type="textarea" :autosize="{ minRows: 3, maxRows: 4 }" />
@@ -154,7 +154,7 @@ function translateString(str: string) {
         </el-dialog>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" @click="submitForm(ruleFormRef)" :loading="submit_loading" >
+        <el-button type="primary" @click="submitForm(ruleFormRef)" :loading="submit_loading">
           完成
         </el-button>
         <el-button @click="resetForm(ruleFormRef)">重置</el-button>

+ 11 - 9
src/pages/teacher/indey/edit.vue

@@ -1,8 +1,8 @@
 <script setup lang='ts'>
-import { useRouter, RouteLocationRaw } from 'vue-router'
-import type { FormInstance, FormRules } from 'element-plus'
-import { ref, reactive } from 'vue'
 import { Plus } from '@element-plus/icons-vue'
+import type { FormInstance, FormRules } from 'element-plus'
+import { reactive, ref } from 'vue'
+import { RouteLocationRaw, useRouter } from 'vue-router'
 import { Grade, Subject } from '~/store/info'
 import user from '~/store/user'
 const token = user.token
@@ -43,8 +43,8 @@ await request({
     if (res.code === "1") {
       const detail = res.data.one_info
       Object.keys(ruleForm).forEach(key => {
-        if(key === 'dc_files'){
-          ruleForm[key] = detail[key].split(';').map((p_url: string) => {
+        if (key === 'dc_files') {
+          ruleForm[key] = !detail[key] ? [] : detail[key].split(';').map((p_url: string) => {
             return {
               name: p_url,
               url: window.GLOBAL_CONFIG.oss + p_url,
@@ -60,10 +60,10 @@ await request({
 )
 
 const rules = reactive<FormRules>({
-  dc_title: [{ required: true, message: '标题不能为空', trigger: 'blur', }],
+  dc_title: [{ required: true, message: '标题不能为空', trigger: 'blur', }, { max: 20, message: '长度在 20 个字符以内', trigger: ['change', 'blur'], }],
   dc_grade_id: [{ required: true, message: '年级不能为空', trigger: 'blur', }],
   dc_subject_id: [{ required: true, message: '科目不能为空', trigger: 'blur', }],
-  dc_keyword: [{ required: true, message: '关键字不能为空', trigger: 'blur', }],
+  dc_keyword: [{ required: true, message: '关键字不能为空', trigger: 'blur', }, { max: 10, message: '长度在 10 个字符以内', trigger: ['change', 'blur'], }],
 })
 
 const submit_loading = ref(false)
@@ -79,6 +79,8 @@ const submitForm = async (formEl: FormInstance | undefined) => {
         dc_subject_name: Subject.find((item) => item.subject_id === ruleForm.dc_subject_id)?.subject_name,
         dc_files: ruleForm.dc_files.map((item) => item.p_url).join(';'),
         create_user_realname: user.user_realname,
+        dc_check: '0',
+        dc_check_desc: '',
       })
 
       request({
@@ -153,7 +155,7 @@ function translateString(str: string) {
 
     <el-form class="mt-8" ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="120px" size="large" status-icon>
       <el-form-item label="标题" prop="dc_title">
-        <el-input v-model="ruleForm.dc_title" maxlength="20" show-word-limit />
+        <el-input v-model="ruleForm.dc_title" clearable show-word-limit />
       </el-form-item>
       <el-form-item label="年级" prop="dc_grade_id">
         <el-select clearable v-model="ruleForm.dc_grade_id">
@@ -167,7 +169,7 @@ function translateString(str: string) {
         </el-select>
       </el-form-item>
       <el-form-item label="关键字" prop="dc_keyword">
-        <el-input v-model="ruleForm.dc_keyword" maxlength="10" show-word-limit />
+        <el-input v-model="ruleForm.dc_keyword" clearable show-word-limit />
       </el-form-item>
       <el-form-item label="内容" prop="dc_content">
         <el-input v-model="ruleForm.dc_content" type="textarea" :autosize="{ minRows: 3, maxRows: 4 }" />

+ 1 - 1
tsconfig.json

@@ -2,7 +2,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "module": "ESNext",
-    "target": "es2016",
+    "target": "ES2022",
     "lib": ["DOM", "ESNext"],
     "strict": true,
     "esModuleInterop": true,