|
@@ -4,7 +4,7 @@
|
|
|
<div class="mt-5 color-777">将下面的公共邀请链接通过微信、00等任何方式发给同事,即可点击加入公司。请注意,用户同意后将自动加入到团队中,您需确保添加到的同事为同一公司招聘人员</div>
|
|
|
<div class="mt-5 d-flex align-center">
|
|
|
<div class="mr-5 shareUrlTxt">
|
|
|
- {{ accessUrl + '/groupAccount/add?code=' + props.code }}
|
|
|
+ {{ shareUrlTxt }}
|
|
|
</div>
|
|
|
<v-btn color="primary" class="mr-3" @click="copy()">{{ $t('common.copy') }}</v-btn>
|
|
|
<v-btn color="green" variant="outlined" @click="refresh()">{{ $t('common.refresh') }}</v-btn>
|
|
@@ -14,24 +14,76 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
+import Snackbar from '@/plugins/snackbar'
|
|
|
+import {
|
|
|
+ enterpriseInviteGenerateCode,
|
|
|
+ enterpriseInviteGetCode,
|
|
|
+ enterpriseInviteRefresh,
|
|
|
+} from '@/api/recruit/enterprise/enterpriseInvite.js'
|
|
|
+import { computed, ref } from 'vue'
|
|
|
defineOptions({name: 'groupAccount-component-invite'})
|
|
|
const props = defineProps({
|
|
|
- code: {
|
|
|
+ inviteType: {
|
|
|
type: String,
|
|
|
- default: '123'
|
|
|
+ default: '0' // 类型(0 邀请同事 | 1 邀请子公司),示例值(2)
|
|
|
}
|
|
|
})
|
|
|
|
|
|
-const day = '30'
|
|
|
-const copy = () => {
|
|
|
-
|
|
|
+const day = 30
|
|
|
+const code = ref('')
|
|
|
+const accessUrl = import.meta.env.VITE_ACCESS_BASE_URL
|
|
|
+// const shareUrlTxt = ref(accessUrl + '/groupAccount/add?code=' + code.value )
|
|
|
+const shareUrlTxt = computed(() => {
|
|
|
+ return accessUrl + '/invite?code=' + code.value
|
|
|
+})
|
|
|
+
|
|
|
+// 逻辑:
|
|
|
+// 1.页面加载时: 是否已有-> 有:直接调用获取邀请码。 没有:有生成邀请码标识->获取邀请码
|
|
|
+// 2.刷新: 调用刷新邀请码接口->生成邀请码标识->获取邀请码
|
|
|
+
|
|
|
+// 获取邀请码
|
|
|
+const getCode = async (type) => {
|
|
|
+ try {
|
|
|
+ const data = await enterpriseInviteGetCode({ type: props.inviteType })
|
|
|
+ if (!data) getGenerateCode()
|
|
|
+ code.value = data
|
|
|
+ if (type === 'refresh') Snackbar.success('刷新成功')
|
|
|
+ } catch (err) {
|
|
|
+ console.err(err)
|
|
|
+ }
|
|
|
}
|
|
|
-const refresh = () => {
|
|
|
+getCode()
|
|
|
|
|
|
+// 生成邀请码标识
|
|
|
+const getGenerateCode = async (type) => {
|
|
|
+ try {
|
|
|
+ const data = await enterpriseInviteGenerateCode({ type: props.inviteType, expireDay: 30 })
|
|
|
+ if (!data) console.err('生成邀请码标识失败')
|
|
|
+ getCode(type)
|
|
|
+ } catch (err) {
|
|
|
+ console.err(err)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 刷新邀请码
|
|
|
+const refresh = async () => {
|
|
|
+ try {
|
|
|
+ await enterpriseInviteRefresh({ code: code.value })
|
|
|
+ getGenerateCode('refresh')
|
|
|
+ } catch (err) {
|
|
|
+ console.err(err)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const copy = async () => {
|
|
|
+ try {
|
|
|
+ await navigator.clipboard.writeText(shareUrlTxt.value)
|
|
|
+ Snackbar.success('复制成功')
|
|
|
+ } catch (err) {
|
|
|
+ Snackbar.error('复制失败,请手动复制。')
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-const accessUrl = import.meta.env.VITE_ACCESS_BASE_URL
|
|
|
-debugger
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
.shareUrlTxt {
|