Ver código fonte

添加联系人增删改查的接口调用

lm 1 mês atrás
pai
commit
94c9d7da6c

+ 3 - 5
src/api/highSeasCustomer.ts

@@ -76,17 +76,15 @@ export const getHighSeasCustomerDetailApi = (data:any) => {
 
 
 // 公海客户查询联系人数据接口
-export const getContactPeopleListApi = (params:any) => {
+export const getContactPeopleListApi = (data:any) => {
     return request({
         url: `${adminPrefix}/api/v1/public/customer/person/query`,
-        method: 'get',
-        params
+        method: 'post',
+        data
     })
 }
 
 
-
-
 // 公海客户添加联系人数据接口
 export const addContactPeopleApi = (data:any) => {
     return request({

+ 3 - 10
src/components/ConcactPeopleFormDialog/formDialog.ts

@@ -13,19 +13,12 @@ export const formItemList = ref([
     key: 'position',
     label: '职务',
     type: 'radio',
-    selectList: [
-      { label: '校长', value: 'principal' },
-      { label: '副校长', value: 'vice_principal' },
-      { label: '教务主任', value: 'teaching_director' },
-      { label: '信息中心主任', value: 'info_center_director' },
-      { label: '年级组长', value: 'grade_leader' },
-      { label: '其他', value: 'other' }
-    ],
+    selectList: [],
     rules:[{required:true,trigger:'blur',message:'请填写信息'}],
     style: {  }
   },
   {
-    key: 'mobilePhone',
+    key: 'phoneNo',
     label: '手机号',
     type: 'input',
     placeholder: '请输入手机号',
@@ -33,7 +26,7 @@ export const formItemList = ref([
     style: {}
   },
   {
-    key: 'officePhone',
+    key: 'officePhoneNo',
     label: '办公电话',
     type: 'input',
     placeholder: '请输入办公电话',

+ 26 - 6
src/components/ConcactPeopleFormDialog/index.vue

@@ -2,7 +2,7 @@
      <FormDialog width="640px" :title="title" 
         :visible="editFormDialogVisible" 
         :submitLoading="editFormDialogSubmitLoading"
-        :defaultFormData="{...defaultFormData}"
+        :defaultFormData="defaultFormData"
         :formItemList="formItemList"
         @close="CloseFormDialog"
         @confirm="HandleConfirmFormDialog">
@@ -11,8 +11,8 @@
 
 
 <script setup lang="ts">
-import {  ref } from 'vue';
-
+import {  onMounted, ref } from 'vue';
+import { useStore } from 'vuex';
 import FormDialog from '@/baseComponents/FormDialog.vue';
 import {formItemList} from './formDialog'
 
@@ -26,16 +26,36 @@ const props = defineProps({
         default:'标题'
     }
 })
+const emit = defineEmits(['confirm'])
 const editFormDialogVisible = defineModel('visible')
-const editFormDialogSubmitLoading = ref(false)
+const editFormDialogSubmitLoading = defineModel('submitLoading')
+
+
+const store = useStore()
 
 const CloseFormDialog = ()=>{
     editFormDialogVisible.value = false
 }
-const HandleConfirmFormDialog = ()=>{
-    CloseFormDialog()
+const HandleConfirmFormDialog = (params:any)=>{
+    emit('confirm',params)
+    // CloseFormDialog()
 }
 
+
+// 获取职位列表信息
+const GetPositionList = async ()=>{
+    await store.dispatch('updatePositionList')
+    let positionOption = store.state.positionList
+    formItemList.value = formItemList.value.map(item=>{
+        if(item.key == 'position'){
+            item.selectList = positionOption
+        }
+        return item
+    })
+}
+onMounted(()=>{
+    GetPositionList()
+})
 </script>
 
 

+ 13 - 2
src/layout/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="layout">
     <Header :horizontalNavList="[]"></Header>
-    <el-watermark :font="font" :content="[waterText]" :z-index="9999">
+    <el-watermark class="water_mark" :font="font" :content="[waterText]" :z-index="9999">
       <AppMain :menuItems="menuList"/>
     </el-watermark>
 
@@ -35,4 +35,15 @@ const waterText = computed(()=>{
   let userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}')
   return userInfo.username + ' ' + userInfo.phoneNo
 })
-</script>
+</script>
+
+<style lang="scss" scoped>
+.water_mark {
+  flex: 1 1;
+  display: flex;
+  flex-direction: column;
+  overflow: auto;
+  box-sizing: border-box;
+  width: 100vw;
+}
+</style>

+ 34 - 2
src/store/index.ts

@@ -2,12 +2,14 @@ import { createStore } from 'vuex'
 // import { ActionContext } from 'vuex'
 import type { App } from 'vue'
 
+import {getFieldListExcludeAreaApi} from '@/api/parameterConfig'
 
 // 定义 RootState 接口(可扩展)
 interface RootState {
   count: number,
   managerHorizontalMenuItems:any[],
-  siderNav:any[]
+  siderNav:any[],
+  positionList:any[]
 }
 
 
@@ -50,17 +52,47 @@ const store = createStore<RootState>({
         route: '/main/userPrivilegeManagement',
         svgIcon:undefined,
       },
-    ]
+    ],
+    positionList:JSON.parse(sessionStorage.getItem('positionList') || '[]'),
   }),
   mutations: {
     increment(state: RootState) {
       state.count++
     },
+    updatePositionList(state,data){
+      sessionStorage.setItem('positionList',JSON.stringify(data))
+      state.positionList = data
+    }
   },
   actions: {
     increment({ commit }) {
       commit('increment')
     },
+    async updatePositionList({commit,state},data){
+      if(data){
+        commit('updatePositionList')
+      }else{
+        if(state.positionList?.length > 0){
+          return
+        }
+        let positionOption = []
+        let res = await getFieldListExcludeAreaApi(2)
+        if(res?.code == 200){
+            positionOption = res.data?.map(item=>{
+                return{
+                    label:item.title,
+                    value:JSON.stringify({
+                        label:item.title,
+                        value:item.id
+                    })
+                }
+            }) || []
+            commit('updatePositionList',positionOption)
+        }else{
+            commit('updatePositionList',[])
+        }
+      }
+    }
   },
   getters: {
     count: (state: RootState) => state.count,

+ 153 - 57
src/views/highSeasCustomer/highSeasCustomerDetail/contactDetail/index.vue

@@ -1,21 +1,25 @@
 <template>
     <div class="end_item">
-        <SearchBlock :searchList="blockSearchList" class="search_block">
+        <SearchBlock :searchList="blockSearchList" class="search_block" @searchChange="HandleSearchChange">
             <template #position>
-                <FormSearchGroup  :searchList="formSearchList" />
+                <FormSearchGroup  :searchList="formSearchList" @searchChange="HandleSearchChange" />
             </template>
         </SearchBlock>
-        <Table :currentPage="currentPage" 
-            :pageSize="pageSize" :totalNum="totalNum" 
+       
+        <Table  
+            :hidePagination="true"
             :tableColumns="tableColumns" 
             :tableData="tableData">
             <template #num="{currentIndex}">
-                {{ (currentPage - 1) * pageSize + currentIndex }}
+                {{ currentIndex }}
+            </template>
+            <template #lastFollowDate="{row}">
+                {{ row.lastFollowDate ? row.lastFollowDate : '-' }}
             </template>
             <template #operation="{row}">
                 <div class="table_row_option">
                     <span class="option_button_editor" @click="OpenCactPeopleFormDialog(row)">编辑</span>
-                    <span class="el_button_delete">删除</span>
+                    <span class="el_button_delete" @click="OpenDeleteDialog(row)">删除</span>
                 </div>
             </template>
         </Table>
@@ -24,81 +28,173 @@
 
     <!-- 修改联系人弹窗 -->
     <ConcactPeopleFormDialog 
+        v-if="concactPeopleVisible"
         title="修改联系人"
         v-model:visible="concactPeopleVisible" 
-        :defaultFormData="defaultConcactPeopleFormData">
+        v-model:submitLoading="concactPeopleSubmitLoading"
+        :defaultFormData="defaultConcactPeopleFormData"
+        @confirm="HandleUpdateConcactPeople">
     </ConcactPeopleFormDialog>
 
+    <Dialog :visible="deleteDialogVisible" 
+        :submitLoading="deleteDialogSubmitLoading"
+        @close="CloseDeleteDialog"
+        @confirm="HandleDeleteConfirm">
+    </Dialog>
 
 </template>
 
 
 <script setup lang="ts">
-import { ref } from 'vue';
-
+import { onMounted, ref } from 'vue';
+import { useStore } from 'vuex';
+import { useRoute } from 'vue-router';
 import SearchBlock from '@/baseComponents/SearchBlock.vue';
 import {blockSearchList} from'./searchBlock'
 import FormSearchGroup from '@/baseComponents/FormSearchGroup.vue';
 import {formSearchList} from './formSearchGroup'
 import Table from '@/baseComponents/Table.vue';
 import {tableColumns} from './table'
+import ConcactPeopleFormDialog from '@/components/ConcactPeopleFormDialog/index.vue'
+import {
+    getContactPeopleListApi,
+    deleteContactPeopleApi,
+    updateContactPeopleApi,
+} from '@/api/highSeasCustomer'
+import Dialog from '@/baseComponents/Dialog.vue';
+
+
+const store = useStore()
+const route  =  useRoute ()
+
+
+/**
+ * 1. 获取职位列表信息
+*/
+const GetPositionList = async ()=>{
+    await store.dispatch('updatePositionList')
+    let positionOption = store.state.positionList
+    blockSearchList.value = blockSearchList.value.map(item=>{
+        if(item.key == 'position'){
+            item.options = [
+                {
+                    label:'全部',
+                    value:'all'
+                },
+                ...positionOption
+            ]
+        }
+        return item
+    })
+}
 
 
-import ConcactPeopleFormDialog from '@/components/ConcactPeopleFormDialog/index.vue'
+/**
+ * 2. 查询联系人详情 及有关数据操作
+*/
+const tableData = ref([]);
+const searchParams = ref({
+    position:'all',
+    queryStr:'',
+})
+//处理筛选参数的变更
+const HandleSearchChange = async (params,key)=>{
+    console.log('职位信息的变更-----',params)
+    searchParams.value = {
+        ...searchParams.value,
+        ...params
+    }
+    await GetConcactPeopleList()
+}
+// 获取联系人列表
+const GetConcactPeopleList = async ()=>{
+    console.log('当前筛选的职位信息-----',searchParams.value.position)
+    let params = {
+        customerId:route.query.id,
+        queryStr:searchParams.value.queryStr,
+        positionId:searchParams.value?.position == 'all' ? ''  : JSON.parse(searchParams.value.position || '{}')?.value,
+    }
+    let res = await getContactPeopleListApi(params)
+    if(res.code == 200){
+        tableData.value = res.data
+    }
+}
 
 
-const currentPage = ref(1)
-const pageSize = ref(20)
-const totalNum = ref(0)
-
-
-const tableData = ref([
-  {
-    id: '1',
-    name: '严谨',
-    position:'principal',
-    positionName: '校长',
-    mobilePhone: '172****9908',
-    officePhone: '17287889908',
-    remark: '备注文案',
-    lastFollowUpTime: '26-08-19 19:00',
-    creator: '李四',
-    createTime: '26-08-19 17:00'
-  },
-  {
-    id: '2',
-    name: '王诗雅',
-    position:'principal',
-    positionName: '校长',
-    mobilePhone: '172****9908',
-    officePhone: '-', // 图片中显示为横杠
-    remark: '备注文案',
-    lastFollowUpTime: '26-08-19 19:00',
-    creator: '李四',
-    createTime: '26-08-19 17:00'
-  },
-  {
-    id: '3',
-    name: '赵子涵',
-    position:'principal',
-    positionName: '教学校长',
-    mobilePhone: '172****9908',
-    officePhone: '172****9908', // 图片中该号码也进行了脱敏处理
-    remark: '备注文案',
-    lastFollowUpTime: '26-08-19 19:00',
-    creator: '李四',
-    createTime: '26-08-19 17:00'
-  }
-]);
-
-
-/** 修改联系人弹窗 有关数据及操作 */
+/** 3. 修改联系人弹窗 有关数据及操作 */
 const concactPeopleVisible = ref(false)
 const defaultConcactPeopleFormData = ref({})
+const concactPeopleSubmitLoading = ref(false)
 const OpenCactPeopleFormDialog = (row)=>{
     concactPeopleVisible.value = true
-    defaultConcactPeopleFormData.value = row
+    defaultConcactPeopleFormData.value = {
+        ...row,
+        position:JSON.stringify({
+            label:row.positionName,
+            value:row.positionId
+        })
+    }
+}
+const CloseCactPeopleFormDialog =()=>{
+    concactPeopleSubmitLoading.value = false
+    concactPeopleVisible.value = false
+    defaultConcactPeopleFormData.value = {}
+}
+const HandleUpdateConcactPeople = async (params)=>{
+    concactPeopleSubmitLoading.value = true
+    const {formData,formRef} = params
+    let transferParams = {
+        id:formData.id,
+        customerId: route.query.id, //
+        name: formData.name,
+        positionId: JSON.parse(formData.position || '{}')?.value,
+        positionName: JSON.parse(formData.position || '{}')?.label,
+        phoneNo: formData.phoneNo,
+        officePhoneNo: formData.officePhoneNo,
+        remark: formData.remark,
+    }
+    let res = undefined
+    res = await updateContactPeopleApi(transferParams)
+    if(res?.code == 200){
+        CloseCactPeopleFormDialog()
+        await GetConcactPeopleList()
+    }else{
+        concactPeopleSubmitLoading.value = false
+    }
+}
+/**
+ * 4. 删除联系人弹窗有关操作
+ */
+const deleteDialogVisible = ref(false)
+const deleteDialogSubmitLoading = ref(false)
+const currentDeleteRow = ref()
+const OpenDeleteDialog = (row)=>{
+    deleteDialogVisible.value = true
+    currentDeleteRow.value = row
 }
+const CloseDeleteDialog = ()=>{
+    deleteDialogSubmitLoading.value = false
+    deleteDialogVisible.value = false
+}
+const HandleDeleteConfirm = async ()=>{
+    deleteDialogSubmitLoading.value = true
+    let res = undefined
+    try{
+        res = await deleteContactPeopleApi(currentDeleteRow.value.id)
+    }catch{}
+    if(res?.code == 200){
+        CloseDeleteDialog()
+        await GetConcactPeopleList()
+    }else{
+        deleteDialogSubmitLoading.value = false
+    }
+}
+
+onMounted(async ()=>{
+    await GetPositionList()
+    await GetConcactPeopleList()
+
+})
 
 </script>
 

+ 1 - 7
src/views/highSeasCustomer/highSeasCustomerDetail/contactDetail/searchBlock.ts

@@ -5,13 +5,7 @@ export const blockSearchList = ref([
         label: '职务',
         key: 'position',
         type: 'single',
-        options: [
-            { label: '全部', value: 'all' },
-            { label: '校长', value: 'schoolMaster' },
-            { label: '教学校长', value: 'principalOfTheSchool' },
-            { label: '教务主任', value: 'deanOfStudies' },
-            { label: '信息主任', value: 'informationDirector' },
-        ],
+        options: [],
         defaultValue: 'all'
     }
 ])

+ 6 - 6
src/views/highSeasCustomer/highSeasCustomerDetail/contactDetail/table.ts

@@ -26,7 +26,7 @@ export const tableColumns = ref([
     hidden: false
   },
   {
-    name: 'mobilePhone',
+    name: 'phoneNo',
     label: '手机号',
     width: '140',
     align: 'center',
@@ -34,7 +34,7 @@ export const tableColumns = ref([
     hidden: false
   },
   {
-    name: 'officePhone',
+    name: 'officePhoneNo',
     label: '办公电话',
     width: '140',
     align: 'center',
@@ -50,15 +50,15 @@ export const tableColumns = ref([
     hidden: false
   },
   {
-    name: 'lastFollowUpTime',
+    name: 'lastFollowDate',
     label: '上次跟进时间',
     width: '180',
     align: 'center',
-    custom: false,
+    custom: true,
     hidden: false
   },
   {
-    name: 'creator',
+    name: 'createdBy',
     label: '创建人',
     width: '100',
     align: 'center',
@@ -66,7 +66,7 @@ export const tableColumns = ref([
     hidden: false
   },
   {
-    name: 'createTime',
+    name: 'createdAt',
     label: '创建时间',
     width: '180',
     align: 'center',

+ 84 - 4
src/views/highSeasCustomer/highSeasCustomerDetail/index.vue

@@ -66,15 +66,19 @@
         <ConcactPeopleFormDialog 
             v-if="concactPeopleVisible"
             v-model:visible="concactPeopleVisible" 
+            v-model:submitLoading="concactPeopleSubmitLoading"
             title="新增联系人"
-            :default-form-data="concactPeopleDefaultFormData">
+            :defaultFormData="concactPeopleDefaultFormData"
+            @confirm="HandleAddPeoplelConfirm">
         </ConcactPeopleFormDialog>
     </div>
 
 </template>
 
 <script setup lang="ts">
-import { ref, computed } from 'vue';
+import { ref, computed, onMounted } from 'vue';
+import { useRoute } from 'vue-router';
+
 import TopBackNav from '@/baseComponents/TopBackNav.vue';
 import addIcon from '@/assets/icon/add.svg';
 import peopleAuthenticationIcon from '@/assets/icon/people_authentication.png'
@@ -90,12 +94,23 @@ import SearchBlock from '@/baseComponents/SearchBlock.vue';
 import {operationRecordSearchList} from './searchBlock'
 import FollowCard from '@/components/FollowCard.vue';
 import Pagination from '@/baseComponents/Pagination.vue';
-
 import SchoolFormDialog from '@/components/SchoolFormDialog/index.vue'
-
 import ConcactPeopleFormDialog from '@/components/ConcactPeopleFormDialog/index.vue'
 
 
+import {
+    getHighSeasCustomerDetailApi,
+    addContactPeopleApi,
+    claimHighSeasCustomerApi,
+    updateHighSeasCustomerApi,
+    deleteHighSeasCustomerApi,
+    getOperationLogApi,
+} from '@/api/highSeasCustomer'
+import { ElMessage } from 'element-plus';
+
+
+const route = useRoute()
+
 const customerBaseMsg = ref({
   schoolName: '北京市第一零九中学',
   educationStage: '九年一贯',
@@ -189,6 +204,20 @@ const currentPage = ref(1)
 const pageSize = ref(20)
 const totalNum = ref(0)
 
+const GetOperationList = async ()=>{
+    let params = {
+        "customerId": 0,
+        "operUserId": 0,
+        "groupId": 0,
+        "startDate": "",
+        "endDate": "",
+        "pageNum": 0,
+        "pageSize": 0
+    }
+    await getOperationLogApi()
+
+}
+
 
 /**  编辑学校 有关数据 及操作 */
 const schoolVisible = ref(false)
@@ -217,14 +246,65 @@ const OpenSchoolFormDialog = ()=>{
 /** 新增联系人有关数据  及操作 */
 const concactPeopleVisible = ref(false)
 const concactPeopleDefaultFormData = ref({})
+const concactPeopleSubmitLoading = ref(false)
 const OpenConcactPeoplelFormDialog = ()=>{
     concactPeopleVisible.value = true
+}
+const CloseConcactPeoplelFormDialog = ()=>{
+    concactPeopleSubmitLoading.value = false
+    concactPeopleVisible.value = false
     concactPeopleDefaultFormData.value = {}
 }
+const HandleAddPeoplelConfirm = async (params:any)=>{
+    concactPeopleSubmitLoading.value = true
+    const {formData,formRef} = params
+    let transferParams = {
+        customerId: route.query.id, //
+        name: formData.name,
+        positionId: JSON.parse(formData.position || '{}')?.value,
+        positionName: JSON.parse(formData.position || '{}')?.label,
+        phoneNo: formData.phoneNo,
+        officePhoneNo: formData.officePhoneNo,
+        remark: formData.remark,
+    }
+    let res = undefined
+    try{
+        res = await addContactPeopleApi(transferParams)
+    }catch{}
+    if(res?.code == 200){
+        ElMessage.success(res?.msg)
+
+        CloseConcactPeoplelFormDialog()
+        // 重新查询
+        await GetHighSeasCustomerDetail()
+    }
+}
+
+
 
+// 获取联系人详情页面的有关数据————
+const GetHighSeasCustomerDetail = async ()=>{
 
+    let params = {
+        "startDatetime": "", //信息概览 跟进记录筛选参数
+        "endDatetime": "",   //  信息概览 跟进记录筛选参数
+        "customerId": route.query.id,     // 主id
+        "positionId": 0,     // 联系人/信息概览 的筛选参数 —— 职位id
+        "productId": 0,      // 产品id —— 信息概览 的筛选参数
+        "followId": 0,
+        "userId": 0,
+        "pageNum": 0,
+        "pageSize": 0
+    }
+
+    await getHighSeasCustomerDetailApi(params)
+}
 
 
+onMounted(async ()=>{
+    await GetHighSeasCustomerDetail()
+})
+
 </script>
 
 

+ 1 - 1
src/views/highSeasCustomer/index.vue

@@ -282,6 +282,7 @@ const OpenSchoolFormDialog = (row?:any)=>{
 const CloseSchoolFormDialog = ()=>{
     editFormDialogSubmitLoading.value = false
     schoolVisible.value = false
+    schoolDefaultFormData.value = {}
 }
 
 const HandleSchoolDialogConfirm = async (params:any)=>{
@@ -311,7 +312,6 @@ const HandleSchoolDialogConfirm = async (params:any)=>{
     }catch{}
 
     if(res?.code == 200){
-        schoolDefaultFormData.value = {}
         CloseSchoolFormDialog()
         await GetTableData()
     }else{

+ 8 - 8
src/views/highSeasCustomer/table.ts

@@ -3,15 +3,15 @@ import { ref } from "vue";
 // 公海科目默认列表页的表头数据
 export const publicSeasTableColumns = ref([
   {
-    name: 'index',
+    name: 'num',
     label: '序号',
     width: '80',
     align: 'center',
-    custom: false,
+    custom: true,
     hidden: false
   },
   {
-    name: 'schoolName',
+    name: 'name',
     label: '学校名称',
     width: '200',
     align: 'center',
@@ -19,7 +19,7 @@ export const publicSeasTableColumns = ref([
     hidden: false
   },
   {
-    name: 'schoolStageName',
+    name: 'stageName',
     label: '学段',
     width: '120',
     align: 'center',
@@ -27,7 +27,7 @@ export const publicSeasTableColumns = ref([
     hidden: false
   },
   {
-    name: 'province',
+    name: 'provinceName',
     label: '省份',
     width: '120',
     align: 'center',
@@ -35,7 +35,7 @@ export const publicSeasTableColumns = ref([
     hidden: false
   },
   {
-    name: 'district',
+    name: 'cityName',
     label: '地区',
     width: '120',
     align: 'center',
@@ -43,7 +43,7 @@ export const publicSeasTableColumns = ref([
     hidden: false
   },
   {
-    name: 'poolTime',
+    name: 'resetDatetime',
     label: '进入公海时间',
     width: '150',
     align: 'center',
@@ -51,7 +51,7 @@ export const publicSeasTableColumns = ref([
     hidden: false
   },
   {
-    name: 'idleDays',
+    name: 'unUsedDayCount',
     label: '闲置天数',
     width: '120',
     align: 'center',

+ 0 - 33
src/views/parameterConfig/index.vue

@@ -104,8 +104,6 @@ import SettingCard from '@/components/settingCard/SettingCard.vue';
 import {
     getParameterConfigApi,
     updatePublicSeasConfigApi,
-    getFieldListExcludeAreaApi,
-    getProvinceConfigListApi,
     getUnusedProvinceListApi,
 } from '@/api/parameterConfig'
 
@@ -208,42 +206,11 @@ const HandleRegionDialogOpen = async ()=>{
 
 
 // 字段设置
-
 const stageList = ref([]);
 const productList = ref([]);
 const statusList = ref([]);
 const jobList = ref([]);
 
-
-
-
-// 获取地区管理列表配置
-const GetProvinceConfigList = async ()=>{
-    let res = await getProvinceConfigListApi()
-}
-
-// 获取 学段管理 配置列表
-const GetPhaseOfStudyingList = async ()=>{
-    let res = await getFieldListExcludeAreaApi(0)
-}
-
-// 获取 产品管理 配置列表 
-const GetProductManageConfigList = async ()=>{
-    let res = await getFieldListExcludeAreaApi(1)
-}
-
-// 获取 跟进状态 配置列表 
-const GetFollowStatusList = async ()=>{
-    let res = await getFieldListExcludeAreaApi(3)
-}
-
-// 获取 职务管理 配置列表
-const GetPositionManageList = async ()=>{
-    let res = await getFieldListExcludeAreaApi(2)
-}
-
-
-
 onMounted( async()=>{
     GetPublicSeasConfig()