Переглянути джерело

任务中心接口更换&注册信息自动保存回显

Xiao_123 7 місяців тому
батько
коміт
ef2ee3c6fd

+ 4 - 3
src/api/integral.js

@@ -30,8 +30,9 @@ export const getUserRewardPointPage = async (params) => {
 }
 
 // 获取每日任务&推荐任务
-export const getTaskList = async (mark) => {
-  return await request.post({
-    url: '/admin-api/menduner/reward/event-track/get/mark/task?mark=' + mark
+export const getTaskList = async (params) => {
+  return await request.get({
+    url: '/admin-api/menduner/reward/event-track/get/mark/task',
+    params
   })
 }

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

@@ -56,6 +56,7 @@
                 v-if="item.type === 'textarea'"
                 v-model="item.value"
                 :item="item"
+                @blur="item.blur"
                 @change="handleChange(item)"
               ></textareaUI>
               <cascadeUI

+ 3 - 1
src/components/FormUI/textArea/index.vue

@@ -19,6 +19,8 @@
       :clearable="item.clearable || false"
       clear-icon="mdi-close-circle"
       @update:modelValue="modelValueUpDate"
+      @blur="emit('blur', item, value)"
+      @focus="emit('focus', item, value)"
     ></v-textarea>
   </div>
 </template>
@@ -27,7 +29,7 @@ import { ref, watch } from 'vue';
 defineOptions({ name:'FormUI-v-textarea'})
 
 const props = defineProps({item: Object, modelValue: [String, Number]})
-const emit = defineEmits(['update:modelValue', 'change'])
+const emit = defineEmits(['update:modelValue', 'change', 'blur', 'focus'])
 const item = props.item
 const value = ref(props.modelValue)
 

+ 57 - 20
src/views/recruit/entRegister/register.vue

@@ -79,6 +79,8 @@ const loginLoading = ref(false)
 const loading = ref(false)
 const showPreview = ref(false)
 const current = ref(0)
+const business = ref({})
+let licenseUrl = ref('')
 const email = localStorage.getItem('loginAccount') || ''
 
 // 组件挂载后添加事件监听器
@@ -88,19 +90,9 @@ onMounted(() => {
   isMobile.value = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(userAgent)
 })
 
-
 import { useRoute } from 'vue-router'; const route = useRoute()
 const pageType = route?.query?.type || '' // type: noLoginToRegister:->登录页注册企业
 
-// 是否筹建中
-const isPrepareChange = () => {
-  const code = formItems.value.options.find(e => e.key === 'code')
-  if (code) {
-    code.label = prepareValue.value ? '企业统一社会信用代码' : '企业统一社会信用代码 *'
-    code.rules = prepareValue.value ? [] : [v => !!v || '请输入企业统一社会信用代码']
-  }
-}
-
 const handleSecondConfirm = () => {
   const obj = formItems.value.options.find(e => e.key === 'passwordConfirm')
   obj.type = obj.type === 'password' ? 'text' : 'password'
@@ -113,6 +105,29 @@ const handlePassword = () => {
   obj.appendInnerIcon = obj.type === 'password' ? 'mdi-eye-off-outline' : 'mdi-eye-outline'
 }
 
+// 注册信息保存
+const enterpriseRegisterInfo = ref(localStorage.getItem('enterpriseRegisterInfo') ? JSON.parse(localStorage.getItem('enterpriseRegisterInfo')) : {})
+const saveRegisterInfo = () => {
+  const obj = {
+    licenseUrl: licenseUrl.value,
+    ocr: business.value
+  }
+  formItems.value.options.forEach(e => {
+    if (e.key) obj[e.key] = e.value
+  })
+  localStorage.setItem('enterpriseRegisterInfo', JSON.stringify(obj))
+}
+
+// 是否筹建中
+const isPrepareChange = () => {
+  const code = formItems.value.options.find(e => e.key === 'code')
+  if (code) {
+    code.label = prepareValue.value ? '企业统一社会信用代码' : '企业统一社会信用代码 *'
+    code.rules = prepareValue.value ? [] : [v => !!v || '请输入企业统一社会信用代码']
+  }
+  saveRegisterInfo()
+}
+
 const formItems = ref({
   options: [
     {
@@ -136,7 +151,8 @@ const formItems = ref({
       value: '',
       label: '企业名称(需要与营业执照完全一致)*',
       counter: 50,
-      rules: [v => !!v || '请输入企业名称']
+      rules: [v => !!v || '请输入企业名称'],
+      blur: saveRegisterInfo
     },
     {
       type: 'text',
@@ -144,21 +160,24 @@ const formItems = ref({
       value: '',
       counter: 18,
       label: '企业统一社会信用代码 *',
-      rules: [v => !!v || '请输入企业统一社会信用代码']
+      rules: [v => !!v || '请输入企业统一社会信用代码'],
+      blur: saveRegisterInfo
     },
     {
       type: 'text',
       key: 'contactName',
       value: '',
       label: '联系人姓名 *',
-      rules: [v => !!v || '请输入联系人姓名']
+      rules: [v => !!v || '请输入联系人姓名'],
+      blur: saveRegisterInfo
     },
     {
       type: 'phoneNumber',
       key: 'phone',
       value: '',
       label: '联系电话 *',
-      rules: [v => !!v || '请输入联系电话']
+      rules: [v => !!v || '请输入联系电话'],
+      blur: saveRegisterInfo
     },
     {
       type: 'text',
@@ -174,7 +193,8 @@ const formItems = ref({
           if (checkEmail(value)) return true
           return '请输入正确的企业邮箱'
         }
-      ]
+      ],
+      blur: saveRegisterInfo
     },
     {
       type: 'password',
@@ -193,7 +213,8 @@ const formItems = ref({
           if (/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,16}$/.test(value)) return true
           return '请输入8-16位数由数字、大小写字母组成的密码'
         }
-      ]
+      ],
+      blur: saveRegisterInfo
     },
     {
       type: 'password',
@@ -212,7 +233,8 @@ const formItems = ref({
           if (value === formItems.value.options.find(e => e.key === 'password').value) return true
           return '两次输入密码不一致'
         }
-      ]
+      ],
+      blur: saveRegisterInfo
     },
     {
       type: 'textarea',
@@ -223,6 +245,7 @@ const formItems = ref({
       counter: 500,
       rows: 2,
       label: '备注/说明',
+      blur: saveRegisterInfo
     },
   ]
 })
@@ -233,7 +256,6 @@ const prepareValue = computed(() => {
 })
 
 // 识别营业执照图片
-const business = ref({})
 const getOcr = async () => {
   loading.value = true
   try {
@@ -242,6 +264,7 @@ const getOcr = async () => {
       formItems.value.options.find(e => e.key === 'code').value = data.code
       formItems.value.options.find(e => e.key === 'name').value = data.name
       business.value = data
+      saveRegisterInfo()
     }
   } finally {
     loading.value = false
@@ -249,7 +272,6 @@ const getOcr = async () => {
 }
 
 // 上传
-let licenseUrl = ref('')
 const handleUploadImg = (url) => {
   licenseUrl.value = url
   if (licenseUrl.value) getOcr()
@@ -260,6 +282,7 @@ const handleDeleteImg = () => {
   business.value = {}
   formItems.value.options.find(e => e.key === 'code').value = ''
   formItems.value.options.find(e => e.key === 'name').value = ''
+  saveRegisterInfo()
 }
 
 // 提交 企业注册
@@ -273,11 +296,14 @@ const handleCommit = async () => {
     businessLicenseUrl,
     prepare: prepareValue.value,
   }
-  formItems.value.options.forEach(e => { params[e.key] = e.value })
+  formItems.value.options.forEach(e => { 
+    if (e.key) params[e.key] = e.value
+  })
   if (business.value && Object.keys(business.value).length) params.ocr = business.value
 
   await enterpriseRegisterApply(params)
   localStorage.removeItem('loginAccount')
+  localStorage.removeItem('enterpriseRegisterInfo')
   Snackbar.success(t('common.submittedSuccessfully'))
   router.push({ path: '/recruit/entRegister/inReview' })
 }
@@ -295,6 +321,17 @@ if (info && Object.keys(info).length && info.status === '2') {
     else e.value = info[e.key]
   })
   isPrepareChange()
+} else {
+  // 表单信息保存
+  if (enterpriseRegisterInfo.value && Object.keys(enterpriseRegisterInfo.value).length) {
+    licenseUrl.value = enterpriseRegisterInfo.value.licenseUrl
+    business.value = enterpriseRegisterInfo.value?.ocr
+    formItems.value.options.forEach(e => {
+      if (e.key === 'passwordConfirm') e.value = enterpriseRegisterInfo.value.password
+      else e.value = enterpriseRegisterInfo.value[e.key]
+      if (e?.change) e.change()
+    })
+  }
 }
 
 </script>

+ 1 - 1
src/views/recruit/personal/PersonalCenter/memberBenefits/taskCenter/components/daily.vue

@@ -34,7 +34,7 @@ const list = ref([])
 const getDailyTaskList = async () => {
   loading.value = true
   try {
-    const data = await getTaskList('每日任务')
+    const data = await getTaskList({ mark: '每日任务', type: 1 })
     list.value = data
   } finally {
     loading.value = false

+ 1 - 1
src/views/recruit/personal/PersonalCenter/memberBenefits/taskCenter/components/suggest.vue

@@ -34,7 +34,7 @@ const list = ref([])
 const getRecommendTaskList = async () => {
   loading.value = true
   try {
-    const data = await getTaskList('推荐任务')
+    const data = await getTaskList({ mark: '推荐任务', type: 0 })
     list.value = data
   } finally {
     loading.value = false