Bläddra i källkod

fix:编译报错解决

lizhi 3 månader sedan
förälder
incheckning
6c367662e6

+ 2 - 2
index.html

@@ -9,8 +9,8 @@
       content="逐趣CRM - A modern admin dashboard template built with Vue 3, TypeScript, and Element Plus."
     />
     <link rel="shortcut icon" type="image/x-icon" href="/assets/favicon-B33nFcrs.ico" />
-    <script type="module" crossorigin src="/assets/index-CNubFkuS.js"></script>
-    <link rel="modulepreload" crossorigin href="/assets/vendor-qzIqKK2b.js">
+    <script type="module" crossorigin src="/assets/index-CqSuyBOQ.js"></script>
+    <link rel="modulepreload" crossorigin href="/assets/vendor-LgZUvht8.js">
     <link rel="stylesheet" crossorigin href="/assets/index-D7z-dQEN.css">
   </head>
 

+ 28 - 18
web/src/components/custom/FollowDialog.vue

@@ -7,7 +7,7 @@
   >
     <ElForm ref="formRef" :model="formData" :rules="rules" label-width="auto">
       <ElFormItem :label="selectLabelArr[0]" prop="first_id">
-        <ElSelect v-model="formData.first_id">
+        <ElSelect v-model="formData.first_id" :empty-values="[0]">
           <ElOption
             v-for="item in selectList"
             :key="item.id"
@@ -73,16 +73,25 @@
   import {computed, ref} from 'vue'
   import { useUserStore } from '@/store/modules/user'
   import { Plus } from '@element-plus/icons-vue'
-  import {ElMessage, ElMessageBox, UploadProps, UploadUserFile} from 'element-plus'
+  import {
+    ElMessage,
+    ElMessageBox,
+    UploadFile,
+    UploadFiles,
+    UploadProps,
+    UploadRawFile,
+    UploadUserFile
+  } from 'element-plus'
   import type { FormInstance, FormRules } from 'element-plus'
   import {commonApi} from "@/api/commonApi";
+  import {followApi} from "@/api/followApi";
 
   interface Props {
     visible: boolean
     type:Api.FollowTye
     userData?: any
-    first_id?: number
-    second_id?: number
+    first_id: number
+    second_id: number
     selectList: Api.Common.SelectRelationInfo[]
   }
 
@@ -118,8 +127,8 @@
   const formRef = ref<FormInstance>()
 
   let defalutValue = {
-    first_id: null,
-    second_id: null,
+    first_id: 0,
+    second_id: 0,
     chat_imgs: [],
     detail: '',
     type: props.type
@@ -140,8 +149,9 @@
     ],
   }
 
-  const handleRemove: UploadProps['onRemove'] = (uploadFile) => {
-    let upName = uploadFile.response ? uploadFile.response.data.name : uploadFile.name
+  const handleRemove: UploadProps['onRemove'] = (uploadFile: UploadFile) => {
+    const response = uploadFile.response as {data:any}
+    let upName = response.data.name ? response.data.name : uploadFile.name
     commonApi.delImg(upName)
     for (let i = 0; i < formData.chat_imgs.length; i++) {
       if (formData.chat_imgs[i] === upName) {
@@ -153,19 +163,19 @@
   }
   const maxFileSizeMB = 3
 
-  const beforeUpload: UploadProps['onChange'] = (uploadFile) => {
-    if (uploadFile.size && uploadFile.size > 1024 * 1024 * maxFileSizeMB) {
-      ElMessage.error('上传图片大小不能超过2M')
+  const beforeUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile):boolean => {
+    if (rawFile.size && rawFile.size > 1024 * 1024 * maxFileSizeMB) {
+      ElMessage.error(`上传图片大小不能超过${maxFileSizeMB}M`)
       return false
     }
-    if (!uploadFile.type.startsWith('image/')) {
+    if (!rawFile.type.startsWith('image/')) {
       ElMessage.error('只能上传图片文件')
       return false
     }
     return true
   }
 
-  const handleSuccess = (response:any, uploadFile: UploadFile) => {
+  const handleSuccess: UploadProps['onSuccess'] = (response, uploadFile) => {
     if (response.code === 200) {
       formData.chat_imgs.push(response.data.name)
       ElMessage.success('上传成功!')
@@ -185,12 +195,12 @@
       let tmp = props.selectList.find(item => item.id === formData.first_id)
       if (tmp && tmp.children) {
         if (!tmp.children.find(item => item.id === formData.second_id)) {
-          formData.second_id = null
+          formData.second_id = 0
         }
         return tmp.children
       }
     }
-    formData.second_id = null
+    formData.second_id = 0
     return []
   })
 
@@ -199,8 +209,8 @@
       () => [props.visible, props.type, props.userData],
       ([visible]) => {
         if (visible) {
-          formData.first_id = props.first_id || null
-          formData.second_id = props.second_id || null
+          formData.first_id = props.first_id || 0
+          formData.second_id = props.second_id || 0
         }
       },
       { immediate: true }
@@ -211,7 +221,7 @@
     if (!formRef.value) return
     await formRef.value.validate((valid) => {
       if (valid) {
-        commonApi.follow(formData).then(() => {
+        followApi.follow(formData).then(() => {
           ElMessage.success('提交成功')
           Object.assign(formData, defalutValue)
           formData.chat_imgs = [];

+ 1 - 0
web/src/typings/api.d.ts

@@ -224,6 +224,7 @@ declare namespace Api {
       first_name: string //
       second_name: string //
       user_name: string //
+      avatar:string
       phone: string // 手机号,
       weixin: string // 微信号,
       position: string // 职位,

+ 2 - 2
web/src/typings/form.d.ts

@@ -55,8 +55,8 @@ declare namespace Form {
   }
 
   interface Follow {
-    first_id: ?number,
-    second_id: ?number,
+    first_id: number,
+    second_id: number,
     chat_imgs: string[],
     detail: string,
     type: string

+ 1 - 1
web/src/views/examples/tables/tree.vue

@@ -9,7 +9,7 @@
       </div>
 
       <div class="right-content art-full-height">
-        <UserSearch v-model="defaultFilter" />
+        <UserSearch v-model="defaultFilter" :role-list="[]" />
 
         <ElCard class="art-table-card" shadow="never">
           <ArtTableHeader v-model:columns="columnChecks" @refresh="refreshData">

+ 2 - 1
web/src/views/school/list/index.vue

@@ -194,7 +194,8 @@
       v-model:visible="followDialogVisible"
       :user-data="currentRow"
       :type="'school'"
-      :first_id="currentRow.id"
+      :first_id="currentRow.id || 0"
+      :second_id="0"
       :selectList="selectList"
       @submit="handleDialogSubmit"
   />

+ 2 - 2
web/src/views/school/relation/index.vue

@@ -46,8 +46,8 @@
         v-model:visible="followDialogVisible"
         :user-data="currentUserData"
         :type="'school'"
-        :first_id="currentUserData.school_id"
-        :second_id="currentUserData.id"
+        :first_id="currentUserData.school_id || 0"
+        :second_id="currentUserData.id || 0"
         :selectList="selectList"
         @submit="handleDialogSubmit"
       />

+ 4 - 4
web/src/views/school/relation/modules/user-dialog.vue

@@ -10,7 +10,7 @@
         <ElInput v-model="formData.name" maxlength="20" type="text" />
       </ElFormItem>
       <ElFormItem label="学校" prop="school_id">
-        <ElSelect v-model="formData.school_id">
+        <ElSelect v-model="formData.school_id" :empty-values="[0]">
           <ElOption
             v-for="item in selectList"
             :key="item.id"
@@ -72,10 +72,10 @@
   const formRef = ref<FormInstance>()
 
   // 表单数据
-  const formData = reactive({
+  const formData = reactive<Form.SchoolContact>({
     id: 0,
     name: '', // 关系人,
-    school_id: null, // 学校ID,
+    school_id: 0, // 学校ID,
     phone: '', // 手机号,
     weixin: '', // 微信号,
     position: '', // 职位,
@@ -113,7 +113,7 @@
       id: props.userData.id,
       name: isEdit.value ? row.name || '' : '',
       phone: isEdit.value ? row.phone || '' : '',
-      school_id: isEdit.value ? row.school_id : null,
+      school_id: isEdit.value ? row.school_id : 0,
       weixin: isEdit.value ? row.weixin || '' : '',
       position: isEdit.value ? row.position || '' : '',
       memo: isEdit.value ? row.memo || '' : ''