Browse Source

佣金设置

Xiao_123 10 tháng trước cách đây
mục cha
commit
fe1139d220

+ 15 - 0
src/api/recruit/public/commission/index.js

@@ -0,0 +1,15 @@
+import request from '@/config/axios'
+
+// 获取佣金比例
+export const getHireCommissionRatio = async () => {
+  return await request.get({
+    url: '/app-admin-api/menduner/system/hire-commission-ratio/get'
+  })
+}
+
+// 修改佣金比例
+export const updateHireCommissionRatio = async (rate) => {
+  return await request.post({
+    url: `/app-admin-api/menduner/system/hire-commission-ratio/update?rate=${rate}`
+  })
+}

+ 41 - 2
src/views/recruit/enterprise/publicRecruitmentManagement/commission/index.vue

@@ -5,7 +5,7 @@
     </div>
     <div class="d-flex flex-column align-center justify-center" style="height: 350px;">
       <CtForm ref="formPageRef" :items="items" style="width: 500px;"></CtForm>
-      <v-btn class="buttons" color="primary">提 交</v-btn>
+      <v-btn class="buttons" color="primary" @click="handleSubmit">{{ $t('common.submit') }}</v-btn>
     </div>
   </v-card>
 </template>
@@ -13,19 +13,58 @@
 <script setup>
 defineOptions({ name: 'public-recruitment-commission'})
 import { ref } from 'vue'
+import { useI18n } from '@/hooks/web/useI18n'
+import { getHireCommissionRatio, updateHireCommissionRatio } from '@/api/recruit/public/commission'
+import Snackbar from '@/plugins/snackbar'
 
+const { t } = useI18n()
 const formPageRef = ref()
 const items = ref({
   options: [
     {
       type: 'number',
-      key: 'moneyReward',
+      key: 'rate',
       value: null,
+      suffix: '%',
       label: '推荐人佣金比例 *',
       rules: [v => !!v || '请填写推荐人佣金比例']
     }
   ]
 })
+
+// 效验数值
+const validateNumber = (input) => {
+  let number = parseFloat(input)
+  if (isNaN(number) || !isFinite(number)) {
+    return false
+  }
+  if (number < 0.01 || number > 100.00) {
+    return false
+  }
+  let parts = input.split('.')
+  if (parts.length > 1 && parts[1].length > 2) {
+    return false
+  }
+  return true
+}
+
+// 获取佣金比例
+const getData = async () => {
+  const data = await getHireCommissionRatio()
+  if (!data) return
+  items.value.options.find(e => e.key === 'rate').value = data.rate
+}
+getData()
+
+const handleSubmit = async () => {
+  const { valid } = await formPageRef.value.formRef.validate()
+  if (!valid) return
+  const rate = items.value.options.find(e => e.key === 'rate').value
+  if (!validateNumber(rate)) return Snackbar.warning('请填写正确格式的数值')
+  await updateHireCommissionRatio(rate)
+  Snackbar.success(t('common.submittedSuccessfully'))
+  getData()
+}
 </script>
 
 <style scoped lang="scss">

+ 0 - 1
src/views/recruit/enterprise/systemManagement/postManagement/save.vue

@@ -10,7 +10,6 @@
 
 <script setup>
 defineOptions({ name: 'system-post-add'})
-import CtForm from '@/components/CtForm'
 import { reactive, ref } from 'vue'
 import { useRouter, useRoute } from 'vue-router'
 import { useI18n } from '@/hooks/web/useI18n'