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

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

lifanagju_citu 9 месяцев назад
Родитель
Сommit
63b32b0a37

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

@@ -121,7 +121,7 @@ import textareaUI from './../FormUI/textArea'
 import nestedListGroupUI from './../FormUI/nestedListGroup'
 import datePickerUI from './../FormUI/datePicker'
 import DatePicker from '@/components/DatePicker'
-import { ref, defineExpose } from 'vue'
+import { ref } from 'vue'
 const emit = defineEmits(['change', 'inputUpdateAutocomplete'])// 定义一个或多个自定义事件
 const props = defineProps({items: Object})
 const valid = ref(false)

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

@@ -40,7 +40,7 @@
 
 <script setup>
 defineOptions({ name: 'verification-code' })
-import { ref, reactive, defineExpose } from 'vue'
+import { ref, reactive } from 'vue'
 import { setCodeTime } from '@/utils/code'
 import { sendSmsCode } from '@/api/common/index'
 import { useI18n } from '@/hooks/web/useI18n'

+ 1 - 1
src/views/headhunting/components/form.vue

@@ -6,7 +6,7 @@
 
 <script setup>
 defineOptions({name: 'headhunting-form'})
-import { reactive, ref, defineExpose } from 'vue'
+import { reactive, ref } from 'vue'
 
 const formPageRef = ref()
 let query = reactive({})

+ 1 - 1
src/views/login/components/passwordPage.vue

@@ -35,7 +35,7 @@
 </template>
 
 <script setup name="passwordPage">
-import { ref, reactive, defineExpose } from 'vue'
+import { ref, reactive } from 'vue'
 defineOptions({ name: 'password-form' })
 import { useI18n } from '@/hooks/web/useI18n'
 const { t } = useI18n()

+ 37 - 7
src/views/recruit/enterprise/informationSetting/index.vue

@@ -20,6 +20,9 @@
     </CtForm>
     <v-btn class="buttons mt-5" color="primary" @click.stop="handleSubmit">{{ $t('common.save') }}</v-btn>
   </v-card>
+
+  <Loading :visible="overlay"></Loading>
+  <ImgCropper :visible="isShowCopper" :image="selectPic" :cropBoxResizable="true" @close="handleHideCopper" :aspectRatio="1 / 1"></ImgCropper>
 </template>
 
 <script setup>
@@ -36,6 +39,12 @@ import { getUserAvatar } from '@/utils/avatar'
 const { t } = useI18n()
 const userStore = useUserStore()
 const showIcon = ref(false)
+
+// 图片裁剪
+const overlay = ref(false)
+const selectPic = ref('')
+const isShowCopper = ref(false)
+
 const CtFormRef = ref()
 const formItems = ref({
   options: [
@@ -111,23 +120,44 @@ const openFileInput = () => {
 // 上传头像
 const handleUploadFile = async (e) => {
   const file = e.target.files[0]
-  const formData = new FormData()
-  formData.append('file', file)
-  const { data } = await uploadFile(formData)
-  if (!data) return
-  formItems.value.options.find(e => e.key === 'avatar').value = data
+  if (!file) return
+  const reader = new FileReader()
+  reader.readAsDataURL(file)
+  reader.onload = () => {
+    selectPic.value = String(reader.result)
+    isShowCopper.value = true
+  }
+}
+
+const handleHideCopper = (data) => {
+  isShowCopper.value = false
+  if (data) {
+    const { file } = data
+    if (!file) return
+
+    const formData = new FormData()
+    formData.append('file', file)
+    uploadFile(formData).then(async ({ data }) => {
+      if (!data) return
+      formItems.value.options.find(e => e.key === 'avatar').value = data
+    })
+  }
 }
 
 // 提交
 const handleSubmit = async () => {
   const { valid } = await CtFormRef.value.formRef.validate()
   if (!valid) return
+  overlay.value = true
   formItems.value.options.forEach(item => {
     query.value[item.key] = item.value
   })
   await saveUserInfo(query.value)
-  Snackbar.success(t('common.submittedSuccessfully'))
-  await userStore.getEnterpriseInfo()
+  setTimeout(async () => {
+    await userStore.getEnterpriseInfo()
+    Snackbar.success(t('common.submittedSuccessfully'))
+    overlay.value = false
+  }, 1000)
 }
 </script>
 

+ 1 - 1
src/views/recruit/enterprise/positionManagement/components/baseInfo.vue

@@ -61,7 +61,7 @@
 <script setup>
 defineOptions({ name: 'position-add-baseInfo'})
 import CtForm from '@/components/CtForm'
-import { reactive, ref, defineExpose, watch } from 'vue'
+import { reactive, ref, watch } from 'vue'
 import textUI from '@/components/FormUI/TextInput'
 import jobTypeCard from '@/components/jobTypeCard'
 import RulePage from './rule.vue'

+ 1 - 1
src/views/recruit/enterprise/positionManagement/components/jobRequirements.vue

@@ -7,7 +7,7 @@
 <script setup>
 defineOptions({ name: 'position-add-job-requirements'})
 import CtForm from '@/components/CtForm'
-import { reactive, ref, defineExpose, watch } from 'vue'
+import { reactive, ref, watch } from 'vue'
 import { getDict } from '@/hooks/web/useDictionaries'
 import { cityToProvince } from '@/utils/areaDeal'
 

+ 1 - 1
src/views/recruit/enterprise/systemManagement/groupAccount/components/simplePageForm.vue

@@ -7,7 +7,7 @@
 <script setup>
 import { getDict } from '@/hooks/web/useDictionaries'
 defineOptions({name: 'inviteConfirm-simplePageForm'})
-import { reactive, ref, defineExpose } from 'vue'
+import { reactive, ref } from 'vue'
 
 const formPageRef = ref()
 let query = reactive({})

+ 1 - 1
src/views/recruit/personal/position/components/conditionFilter.vue

@@ -19,7 +19,7 @@ import payScope from './conditionFilter/payScope.vue'
 import educationType from './conditionFilter/educationType.vue'
 import scale from './conditionFilter/scale.vue'
 import financingStatus from './conditionFilter/financingStatus.vue'
-import { defineExpose, ref } from 'vue'
+import { ref } from 'vue'
 defineOptions({name: 'retrieval-components-conditionFilter'})
 const emits = defineEmits(['change'])
 const ids = ref({

+ 1 - 1
src/views/recruit/personal/shareJob/form/simpleInfo.vue

@@ -7,7 +7,7 @@
 <script setup>
 import { getDict } from '@/hooks/web/useDictionaries'
 defineOptions({name: 'shareJob-form-baseInfo'})
-import { reactive, ref, defineExpose } from 'vue'
+import { reactive, ref } from 'vue'
 
 const formPageRef = ref()
 let query = reactive({})

+ 1 - 1
src/views/recruit/personal/shareJob/form/upload.vue

@@ -7,7 +7,7 @@
 
 <script setup>
 defineOptions({name: 'shareJob-form-upload'})
-import { reactive, ref, defineExpose } from 'vue'
+import { reactive, ref } from 'vue'
 import { useI18n } from '@/hooks/web/useI18n'
 import { uploadFile } from '@/api/common'
 import Snackbar from '@/plugins/snackbar'