Bläddra i källkod

添加参数配置默认列表接口调用、以及公海设置和地区管理的接口调用

lm 1 månad sedan
förälder
incheckning
16f5a50b89

+ 106 - 0
src/api/parameterConfig.ts

@@ -0,0 +1,106 @@
+import request from '../utils/request.js'
+let adminPrefix = import.meta.env.VITE_API_ADMIN_PRE
+
+// 查询参数配置
+export const getParameterConfigApi = () => {
+    return request({
+        url: `${adminPrefix}/api/v1/param/queryParams`,
+        method: 'get',
+    })
+}
+
+// 修改公海设置
+export const updatePublicSeasConfigApi = (data:any) => {
+    return request({
+        url: `${adminPrefix}/api/v1/param/updateParams`,
+        method: 'post',
+        data
+    })
+}
+
+
+// 获取已经配置的省份列表
+export const getProvinceConfigListApi = ()=>{
+     return request({
+        url: `${adminPrefix}/api/v1/region/listUsed`,
+        method: 'get',
+    })
+}
+
+// 获取未配置的省份列表
+export const getUnusedProvinceListApi = ()=>{
+     return request({
+        url: `${adminPrefix}/api/v1/region/listAll`,
+        method: 'get',
+    })
+}
+
+// 新增/修改 配置省份
+export const addOrUpdateProvinceConfigApi = (data:any)=>{
+     return request({
+        url: `${adminPrefix}/api/v1/region/modify`,
+        method: 'post',
+        data
+    })
+}
+
+// 删除配置省份
+export const deleteProvinceConfigApi = (id:any)=>{
+     return request({
+        url: `${adminPrefix}/api/v1/region/delete/${id}`,
+        method: 'get',
+    })
+}
+
+
+//  省份排序 接口
+export const provinceSortApi = (data:any)=>{
+     return request({
+        url: `${adminPrefix}/api/v1/region/sort`,
+        method: 'post',
+        data
+    })
+}
+
+
+
+
+
+
+
+
+
+// 获取学段,产品,职务,跟进状态列表
+// type类型:0-学段,1-产品,2-职务,3-跟进
+export const getFieldListExcludeAreaApi = (type:any)=>{
+     return request({
+        url: `${adminPrefix}/api/v1/param/listParams/${type}`,
+        method: 'get',
+    })
+}
+
+// 新增学段,产品,职务,跟进状态数据
+export const addFieldListExcludeAreaApi = (data:any)=>{
+     return request({
+        url: `${adminPrefix}/api/v1/param/addParams`,
+        method: 'post',
+        data
+    })
+}
+
+// 修改学段,产品,职务,跟进状态数据
+export const updateFieldListExcludeAreaApi = (data:any)=>{
+     return request({
+        url: `${adminPrefix}/api/v1/param/modifyParams`,
+        method: 'post',
+        data
+    })
+}
+
+// 删除学段,产品,职务,跟进状态
+export const deleteFieldListExcludeAreaApi = (id:any)=>{
+     return request({
+        url: `${adminPrefix}/api/v1/param/deleteParams/${id}`,
+        method: 'get',
+    })
+}

BIN
src/assets/icon/edit_light.png


+ 1 - 1
src/baseComponents/TableRowDragUpDown.vue

@@ -76,7 +76,7 @@ const HandleDragEnd = (e,row,currentIndex)=>{
 }
 
 watch(()=>props.defaultTableData,(newVal)=>{
-    tableData.value = newVal
+    tableData.value = [...(newVal || [])]
 },{immediate:true,deep:true})
 </script>
 

+ 24 - 9
src/baseComponents/formTableEdit/index.vue

@@ -43,8 +43,8 @@
                                         (disabledEditRowScene(row,currentIndex,tableData)  ? 'editor_disable' : 'el_button_editor') : 
                                         'el_button_editor'" 
                                     @click="disabledEditRowScene ?
-                                            (disabledEditRowScene(row,currentIndex,tableData)  ? '' : HandleConfigEditOrSave(row)) : 
-                                            HandleConfigEditOrSave(row)"
+                                            (disabledEditRowScene(row,currentIndex,tableData)  ? '' : HandleConfigEditOrSave(row,currentIndex)) : 
+                                            HandleConfigEditOrSave(row,currentIndex)"
                             >{{row.tmpId ? '保存' : '编辑'}}</span>
 
                             <span v-if="row.tmpId" class="el_button_editor" @click="HandleConfigCancel(row)">取消</span>
@@ -99,6 +99,16 @@ interface MiddleColumnItm {
     label:string
 }
 
+
+// 
+
+
+interface TableItem {
+    editFlag:string,     //  存在 则 行 处于编辑-待保存状态  优先级最高
+    tmpId:string,        // 存在 则 行 处于新增-待保存状态
+    [key:string]:string    
+}
+
 const props = defineProps({
     startDragIndex:{  
         type:Function,
@@ -138,24 +148,27 @@ const emit = defineEmits([
     'editConfirm',  // 执行到最后要添加 row.editFlag = ''
     'addConfirm',  // 执行到最后要添加 row.tmpId = ''
     'deleteConfirm',
-    'entiretyConfirm'])
+    'entiretyConfirm',
+    'tableDrag',
+])
 
 /**
  * 1. 参数配置: 表单弹窗信息
  */
 const formVisible = defineModel('formVisible')  //
 const deleteFlag = defineModel('deleteFlag') // 当下 删除弹窗确认 是否成功的标识  // success | fail | none
-const formDialogConfirmFlag = defineModel('formDialogConfirmFlag')
+const formDialogConfirmFlag = defineModel('formDialogConfirmFlag')  //当下表单是否成功执行操作的标识      // success | fail | none
 const formSubmitLoading = ref(false)
 
 
 const finalTableColumns = ref([...tableColumns.value])  //最终渲染的表头
-const tableData = ref<any[]>([])  //表数据
+const tableData = ref<TableItem[]>([])  //表数据
 const configTableDom = ref()
 
 // 处理表行的上下移动
 const HandleRowMove = (val)=>{
-    tableData.value = val
+    emit('tableDrag',val)
+    // tableData.value = val
 }
 
 // 处理参数配置的增删改查
@@ -183,8 +196,10 @@ const HandleAddConfig = async ()=>{
     configTableDom.value.setScrollTop(configTableDom.value.layout.table.refs.bodyWrapper.firstElementChild.firstElementChild.scrollHeight)
 }
 
+
+
 // 配置项保存 /编辑 
-const HandleConfigEditOrSave = async (row)=>{
+const HandleConfigEditOrSave = async (row,sortCode)=>{
     // 初次新增确认 或者 准备变成编辑状态
     if(!row.editFlag){
         if(row.tmpId){
@@ -197,7 +212,7 @@ const HandleConfigEditOrSave = async (row)=>{
                 [props.middleColumnItm.name]:row?.[props?.middleColumnItm?.name],
             }
             // 调用新增接口
-            emit('addConfirm',row,params)
+            emit('addConfirm',row,params,sortCode)
         }else{
             // 准备变成编辑状态
             row.editFlag = 'edit'
@@ -213,7 +228,7 @@ const HandleConfigEditOrSave = async (row)=>{
             id:row.id,
             [props.middleColumnItm.name]:row?.[props?.middleColumnItm?.name],
         }
-        emit('editConfirm',row,params)
+        emit('editConfirm',row,params,sortCode)
     }
 }
 // 取消配置项操作

+ 138 - 26
src/components/settingCard/SettingCard.vue

@@ -7,7 +7,7 @@
                 :key="'region_' + index"
             >{{ item?.[middleColumnItm?.name] }}</span>
         </div>
-        <span class="button_editor" @click="formVisible= true">编辑</span>
+        <span class="button_editor" @click="OpenFormDialog">编辑</span>
     </div>
 
     <!-- 参数配置弹窗 -->
@@ -26,20 +26,17 @@
         @editConfirm="HandleEditConfirm"
         @addConfirm="HandleAddConfirm"
         @deleteConfirm="HandleDeleteConfirm"
-        @entiretyConfirm="HandleEntiretyConfirm">
+        @entiretyConfirm="formDialogConfirmFlag = 'success'"
+        @tableDrag="HandleDragOperation">
+
 
         <template v-slot:[middleColumnItm?.name]="{row}">
             <!-- 地区管理的下拉为省份 -->
             <template v-if="middleColumnItm?.label == '省份'">
                 <el-select filterable v-model="row[middleColumnItm.name]" v-if="row.tmpId">
-                    <el-option
-                        label="输入框"
-                        :value="1"
-                    />
-                    <el-option
-                        label="单选"
-                        :value="2"
-                    />
+                    <el-option v-for="item in customSelectList" 
+                        :key="item.value" 
+                        :label="item.label" :value="item.value"/>
                 </el-select>
                 <span v-else>{{ row?.[middleColumnItm?.name] }}</span>
             </template>
@@ -56,10 +53,34 @@
 import { ref,watch } from 'vue';
 import FormTableEdit from '@/baseComponents/formTableEdit/index.vue';
 
+
+import {
+    getParameterConfigApi,
+    updatePublicSeasConfigApi,
+    getFieldListExcludeAreaApi,
+    addFieldListExcludeAreaApi,
+    updateFieldListExcludeAreaApi,
+    deleteFieldListExcludeAreaApi,
+    getProvinceConfigListApi,
+    getUnusedProvinceListApi,
+    addOrUpdateProvinceConfigApi,
+    deleteProvinceConfigApi,
+    provinceSortApi,
+} from '@/api/parameterConfig'
+import { ElMessage } from 'element-plus';
+import jsPDF from 'jspdf';
+
+
 interface MiddleColumnItm {
     name:string,
     label:string
 }
+
+interface OptionSelect {
+    label:string,
+    value:string
+}
+
 const props = defineProps({
     cardItems:{
         type:Array,
@@ -76,8 +97,18 @@ const props = defineProps({
         type:Array,
         default:()=>[]
     },
+    customSelectList:{
+        type:Array<OptionSelect>,
+        default:()=>[]
+    }
 })
 
+const emit = defineEmits([
+    'openDialog',  //弹窗打开后触发的一些操作
+    'deleteSuccess',  //删除行数据后触发的一些操作
+    'addOrUpdateSuccess',  //新增行数据后触发的一些操作
+])
+
 
 /**
  * 1. 参数配置: 表单弹窗信息
@@ -109,34 +140,115 @@ const disabledDeleteRowScene = (row,currentIndex,newTableData)=>{
             ([1,newTableData.length, newTableData.length-1, newTableData.length-2].includes(currentIndex) || row[props.middleColumnItm.name] == '方案演示') 
 }
 
+// 表单弹窗打开操作
+const OpenFormDialog = ()=>{
+    formVisible.value = true
+    emit('openDialog')
+}
+
 // 表格行 编辑确认
-const HandleEditConfirm = (row,params)=>{
+const HandleEditConfirm = async (row,params,sortCode)=>{
     console.log('')
-    // row?.[props?.middleColumnItm?.name] =  editRes?.data?.[props?.middleColumnItm?.name]
-    row.editFlag = ''
+    let finalVal = params[props.middleColumnItm.name]
+    let res= undefined
+
+    switch(props.cardTitle){
+        case '地区管理':
+            let params = {
+                id:finalVal,
+                oldId:row.id,
+                sortCode:sortCode,
+            }
+            res = await addOrUpdateProvinceConfigApi(params)
+            break
+        default:
+            break
+    }
+
+    if(res?.code == 200){
+        row.editFlag = ''
+        ElMessage.success(res?.msg)
+        emit('addOrUpdateSuccess')
+    }
 }
 // 表格行 新增确认
-const HandleAddConfirm = (row,params)=>{
+const HandleAddConfirm = async (row,params,sortCode)=>{
     console.log('新增确认')
-    // ElMessage.success(res.msg)
-    // row.id = res?.data?.id
-    // row?.[props?.middleColumnItm?.name] =  editRes?.data?.[props?.middleColumnItm?.name]
-    row.tmpId = ''
+    let finalVal = params[props.middleColumnItm.name]
+    let res= undefined
+
+    switch(props.cardTitle){
+        case '地区管理':
+            let params = {
+                id:finalVal,
+                sortCode:sortCode,
+            }
+            res = await addOrUpdateProvinceConfigApi(params)
+            break
+        default:
+            break
+    }
+
+    if(res?.code == 200){
+        row.tmpId = ''
+        ElMessage.success(res?.msg)
+        emit('addOrUpdateSuccess')
+    }
 }
 // 表格行 删除确认
-const HandleDeleteConfirm = (row)=>{
+const HandleDeleteConfirm = async (row)=>{
     console.log('删除确认')
-    tableData.value = tableData.value.filter(item=>{
-        return item.id !== row.id
-    })
+
+    let res = undefined
+
+    switch(props.cardTitle){
+        case '地区管理':
+            res = await deleteProvinceConfigApi(row.id)
+            break
+        default:
+            break
+    }
+
+    if(res?.code == 200){
+        ElMessage.success(res?.msg)
+        tableData.value = tableData.value.filter(item=>{
+            return item.id !== row.id
+        })
+        emit('deleteSuccess')
+    }
     deleteFlag.value = 'success'
 }
 
 // 表单整体确认
-const HandleEntiretyConfirm = (params)=>{
-    setTimeout(()=>{
-        formDialogConfirmFlag.value = 'fail'
-    },1000)
+const HandleDragOperation = async (params)=>{
+    // 整体点击确认前,要保证单条编辑已经全部完成
+    let result = params.find(item=>{
+        return (item.editFlag || item.tmpId)
+    })
+    if(result){
+        ElMessage.warning('请先保存未保存的数据')
+        return
+    }
+
+    tableData.value = JSON.parse(JSON.stringify(params))
+    
+    let res = undefined
+    switch(props.cardTitle){
+        case '地区管理':
+            let transferData = params.map((item,index)=>{
+                return {
+                    id: item?.id,
+                    sortCode: index + 1
+                }
+            })
+            res = await provinceSortApi(transferData)
+            break
+    }
+
+    if(res?.code == 200){
+        ElMessage.success(res?.msg)
+        emit('addOrUpdateSuccess')
+    }
 }
 
 // 动态变更表数据

+ 4 - 4
src/utils/request.ts

@@ -32,11 +32,11 @@ service.interceptors.response.use(
   (response: AxiosResponse) => {
     const res = response.data
 
-    if(res.code !== 200){
-      if(res.code == 406 && res.data.message){
-          ElMessage.warning(res.data.message)
+    if(res?.code !== 200){
+      if(res?.code == 406 && res.data?.message){
+        ElMessage.warning(res.data?.message)
       }else{
-        ElMessage.warning(res.msg)
+        ElMessage.warning(res?.msg)
       }
     }
 

+ 209 - 90
src/views/parameterConfig/index.vue

@@ -1,36 +1,54 @@
 <template>
     <div class="main_container">
-        <div class="page_item end_item">
+        <div class="page_item public_seas_top">
             <!-- 顶部公海设置 -->
-            <div class="page_search">
+            <div class="page_search public_seas">
                 <div class="search_content">
                     <div class="content_left">
                         <div class="grade_title">公海设置</div>
                     </div>
+                    <div class="content_right">
+                        <el-button v-if="!isCurrentEdit" class="button_border" @click="HandleEditOrSave('edit')">
+                            <img :src="editIcon" alt="">编辑
+                        </el-button>
+                        <template v-else>
+                            <el-button  class="button_refresh" @click="HandleEditOrSave('cancel')">
+                                <img :src="closeIcon" alt=""> 取消
+                            </el-button>
+                            <el-button class="button_background" @click="HandleEditOrSave('save')">
+                                <img :src="saveIcon" alt=""> 保存
+                            </el-button>
+                        </template>
+                    </div>
                 </div>
             </div>
+        </div>
 
+        <div class="page_item public_seas_bottom">
             <!-- 公海设置的具体表单内容 -->
             <div class="high_seas_config">
                 <div class="config_item">
                     <span class="label_text">客户持有上限:</span>
-                    <el-input type="number" value="100"  />
+                    <el-input :disabled="!isCurrentEdit" type="number" v-model="publicSeasConfig.holdLimit"  />
                     <span>个</span>
                 </div>
                 <div class="config_item">
                     <span class="label_text">每日手动退回公海上限:</span>
-                    <el-input type="number" value="15"  />
+                    <el-input  :disabled="!isCurrentEdit" type="number"  v-model="publicSeasConfig.dayBackLimit"  />
                     <span>个</span>
                 </div>
                 <div class="config_item">
                     <span class="label_text">无跟进自动退回公海天数:</span>
-                    <el-input type="number" value="15" />
+                    <el-input :disabled="!isCurrentEdit" type="number" v-model="publicSeasConfig.autoBackLimitDay"  />
                     <span>天</span>
                 </div>
             </div>
+        </div>
 
+        <div class="page_jg_20" style="flex-shrink: 0 !important;"></div>
 
-            <div class="page_search">
+        <div class="page_item end_item">
+            <div class="page_search field_setting" >
                 <div class="search_content">
                     <div class="content_left">
                         <div class="grade_title">字段设置</div>
@@ -40,21 +58,25 @@
 
             <!-- 字段设置区域 -->
             <div class="field_settings_area">
-                <SettingCard cardTitle="地区管理" :cardItems="region_list"
-                    :middleColumnItm="{name:'province',label:'省份'}"
-                    :defaultTableData="region_list"/>
-                <SettingCard cardTitle="学段管理" :cardItems="stage_list"
-                    :middleColumnItm="{name:'phaseOfStudyingName',label:'学段名称'}"
-                    :defaultTableData="stage_list"/>
-                <SettingCard cardTitle="产品管理" :cardItems="product_list"
-                    :middleColumnItm="{name:'productName',label:'产品名称'}"
-                    :defaultTableData="product_list"/>
-                <SettingCard cardTitle="跟进状态" :cardItems="status_list" 
-                    :middleColumnItm="{name:'followUpStatus',label:'跟进状态'}"
-                    :defaultTableData="status_list"/>
-                <SettingCard cardTitle="职务管理" :cardItems="job_list"
-                    :middleColumnItm="{name:'positionName',label:'职务名称'}"
-                    :defaultTableData="job_list"/>
+                <SettingCard cardTitle="地区管理" :cardItems="regionList"
+                    :middleColumnItm="{name:'name',label:'省份'}"
+                    :customSelectList="regionSelectList"
+                    :defaultTableData="regionList" 
+                    @openDialog="HandleRegionDialogOpen"
+                    @deleteSuccess="GetPublicSeasConfig"
+                    @addOrUpdateSuccess="GetPublicSeasConfig"/>
+                <SettingCard cardTitle="学段管理" :cardItems="stageList"
+                    :middleColumnItm="{name:'title',label:'学段名称'}"
+                    :defaultTableData="stageList"/>
+                <SettingCard cardTitle="产品管理" :cardItems="productList"
+                    :middleColumnItm="{name:'title',label:'产品名称'}"
+                    :defaultTableData="productList"/>
+                <SettingCard cardTitle="跟进状态" :cardItems="statusList" 
+                    :middleColumnItm="{name:'title',label:'跟进状态'}"
+                    :defaultTableData="statusList"/>
+                <SettingCard cardTitle="职务管理" :cardItems="jobList"
+                    :middleColumnItm="{name:'title',label:'职务名称'}"
+                    :defaultTableData="jobList"/>
             </div>
         </div>
     </div>
@@ -62,88 +84,185 @@
 
 
 <script setup lang="ts">
-import { ref } from 'vue';
+import { ElMessage } from 'element-plus';
+import { onMounted, reactive, ref } from 'vue';
 import SettingCard from '@/components/settingCard/SettingCard.vue';
 
-// 模拟图片中的数据
-const region_list = ref([
-    { province: '北京市',id:1 },
-    { province: '上海市',id:2 },
-    { province: '天津市',id:3 },
-    { province: '广东', id:4 },
-    { province: '辽宁', id:5 },
-    { province: '河南', id:6 },
-    { province: '河北', id:7 },
-    { province: '湖南', id:8 },
-    { province: '湖北', id:9 },
-    { province: '云南', id:10 },
-    { province: '福建', id:11 },
-    { province: '海南', id:12 },
-    { province: '四川', id:13 },
-    { province: '初中', id:14 },
-    { province: '初中', id:15 },
-    { province: '初中', id:16 },
-    { province: '初中', id:17 }
-]);
-const stage_list = ref([
-    { phaseOfStudyingName: '幼儿园', id:1 },
-    { phaseOfStudyingName: '小学', id:2 },
-    { phaseOfStudyingName: '初中', id:3 },
-    { phaseOfStudyingName: '高中', id:4 },
-    { phaseOfStudyingName: '完中', id:5 },
-    { phaseOfStudyingName: '九年一贯', id:6 },
-    { phaseOfStudyingName: '十二年一贯', id:7 },
-    { phaseOfStudyingName: '职高', id:8 },
-    { phaseOfStudyingName: '大学', id:9 },
-    { phaseOfStudyingName: '初中', id:10 }
-]);
-const product_list = ref([
-    { productName: '大数据精准教学诊断平台', id:1 },
-    { productName: '选择题智能判分', id:2 },
-    { productName: '教学材料采集', id:3 },
-    { productName: '教师校本研修', id:4},
-    { productName: '学生校本课程学习', id:5 },
-    { productName: '智能校本选课', id:6 },
-    { productName: '教师专业发展', id:7 },
-    { productName: '协同教研备课', id:8 },
-    { productName: '校园信息发布', id:9 },
-    { productName: '智能评教评学', id:10 },
-    { productName: '智能考场编排', id:11 },
-    { productName: '智能听课评课', id:12 },
-    { productName: '基础数据管理', id:13 }
-]);
-const status_list = ref([
-    { followUpStatus: '线索建立', id:1 },
-    { followUpStatus: '需求调研', id:2 },
-    { followUpStatus: '方案演示', id:3 },
-    { followUpStatus: '试用测试', id:4 },
-    { followUpStatus: '项目搁置', id:5 },
-    { followUpStatus: '输单', id:6 },
-    { followUpStatus: '赢单', id: 7}
-]);
-
-const job_list = ref([
-    { positionName: '校长', id:1 },
-    { positionName: '副校长', id:2 },
-    { positionName: '执行校长', id:3 },
-    { positionName: '教学主任', id:4 },
-    { positionName: '教务主任', id:5 },
-    { positionName: '信息主任', id:6 }
-]);
+import {
+    getParameterConfigApi,
+    updatePublicSeasConfigApi,
+    getFieldListExcludeAreaApi,
+    addFieldListExcludeAreaApi,
+    updateFieldListExcludeAreaApi,
+    deleteFieldListExcludeAreaApi,
+    getProvinceConfigListApi,
+    getUnusedProvinceListApi,
+    addOrUpdateProvinceConfigApi,
+    deleteProvinceConfigApi
+} from '@/api/parameterConfig'
+
+import editIcon from '@/assets/icon/edit_light.png'
+import closeIcon from '@/assets/icon/delete.svg'
+import saveIcon from '@/assets/icon/save_icon.png'
+
+/** 1.  参数配置列表整体数据  */
+// 获取公海设置
+const GetPublicSeasConfig = async ()=>{
+    let res = await getParameterConfigApi()
+    if(res?.code == 200){
+        const {
+            stageData, productData, 
+            positionData, followStatusData, regionData,
+            holdTopCount, dayBackTopCount, backPublicDayCount, id
+        } = res.data
+
+        // 公海配置
+        publicSeasConfig.holdLimit = holdTopCount
+        publicSeasConfig.dayBackLimit = dayBackTopCount
+        publicSeasConfig.autoBackLimitDay = backPublicDayCount
+        publicSeasConfig.id = id
+
+        stageList.value = stageData
+        productList.value = productData
+        statusList.value = followStatusData
+        jobList.value = positionData
+        regionList.value = regionData
+    }
+}
+
+
+
+/** 2. 公海设置 */
+const publicSeasConfig = reactive({
+    holdLimit:0,    //客户持有上限
+    dayBackLimit:0,  //每日退回上限
+    autoBackLimitDay:0,  //无跟进自动退回天数
+    id:'', //唯一id
+})
+const isCurrentEdit = ref(false) //公海设置当前的编辑状态
+// 公海设置 编辑/保存 状态切换
+const HandleEditOrSave = async (type)=>{
+    switch(type){
+        case 'edit':
+            isCurrentEdit.value = true
+            break
+        case 'save':{
+            let params = {
+                holdTopCount: publicSeasConfig.holdLimit,
+                dayBackTopCount: publicSeasConfig.dayBackLimit,
+                backPublicDayCount: publicSeasConfig.autoBackLimitDay,
+                id:publicSeasConfig.id
+            }
+            let res = await updatePublicSeasConfigApi(params)
+            if(res?.code == 200){
+                ElMessage.success(res?.msg)
+                isCurrentEdit.value = false
+                await GetPublicSeasConfig()
+            }
+            break
+        }
+        case 'cancel':
+            isCurrentEdit.value = false
+            break
+    }
+}
+
+
+/** 3. 地区管理 */
+const regionList = ref([]);
+// 省份下拉配置
+const regionSelectList = ref([])
+// 获取省份下拉列表
+const GetProvinceSelectList = async ()=>{
+    let res = await getUnusedProvinceListApi()
+    if(res.code == 200){
+        regionSelectList.value = res.data.map(item=>{
+            return {
+                label:item.name,
+                value:item.id
+            }
+        })
+    }
+}
+// 执行地区弹窗打开后的操作
+const HandleRegionDialogOpen = async ()=>{
+    await GetProvinceSelectList()
+}
+
+
+
+
+// 字段设置
+
+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()
+
+})
 </script>
 
 
 <style lang="scss" scoped>
-.grade_title{
-    margin-bottom: 16px;
+.public_seas_top{
+    padding:12px 20px;
+    border-bottom: solid #E9E9E9 1px;
+    border-radius: 10px 10px 0 0;
+    .content_right{
+        .el-button{
+            min-width: 72px !important ;
+        }
+    }
+}
+.public_seas_bottom{
+    border-radius:  0 0 10px 10px;
+}
+.page_search{
+    &.field_setting{
+        margin-bottom: 16px;
+    }
 }
+
+
 /* 公海配置行 */
 .high_seas_config {
     display: flex;
     flex-wrap: wrap;
     gap:20px 100px;
 
-    margin-bottom: 48px;
     font-size: 14px;
     color: #333;
 

+ 7 - 19
src/views/userPrivilegeManagement/userManage/table.ts

@@ -7,27 +7,24 @@ export const tableColumns = ref([
         name: 'num',
         label: '序号',
         width: '80',
-        fixed: '',
+        fixed: 'left',
         align: 'center',
-        minWidth: '',
         custom: true,
     },
     {
         name: 'account',
         label: '账号',
-        width: '',
-        fixed: '',
+        width: '120',
+        fixed: 'left',
         align: 'center', 
-        minWidth: '120',
         custom: false,
     },
     {
         name: 'username',
         label: '姓名',
-        width: '',
-        fixed: '',
+        width: '100',
+        fixed: 'left',
         align: 'center',
-        minWidth: '100',
         custom: false,
     },
     {
@@ -36,16 +33,14 @@ export const tableColumns = ref([
         width: '80',
         fixed: '',
         align: 'center',
-        minWidth: '',
         custom: true,
     },
     {
         name: 'phoneNo',
         label: '手机号',
-        width: '',
+        width: '120',
         fixed: '',
         align: 'center',
-        minWidth: '120',
         custom: false,
     },
     {
@@ -54,7 +49,6 @@ export const tableColumns = ref([
         width: '100',
         fixed: '',
         align: 'center',
-        minWidth: '',
         custom: true,
     },
     {
@@ -63,7 +57,6 @@ export const tableColumns = ref([
         width: '100',
         fixed: '',
         align: 'center',
-        minWidth: '',
         custom: true,
     },
     {
@@ -72,7 +65,6 @@ export const tableColumns = ref([
         width: '100',
         fixed: '',
         align: 'center',
-        minWidth: '',
         custom: true,
     },
     {
@@ -81,7 +73,6 @@ export const tableColumns = ref([
         width: '100',
         fixed: '',
         align: 'center',
-        minWidth: '',
         custom: false,
     },
     {
@@ -90,7 +81,6 @@ export const tableColumns = ref([
         width: '100',
         fixed: '',
         align: 'center',
-        minWidth: '',
         custom: false,
     },
     {
@@ -99,16 +89,14 @@ export const tableColumns = ref([
         width: '120',
         fixed: '',
         align: 'center',
-        minWidth: '',
         custom: false,
     },
     {
         name: 'operation',
         label: '操作',
-        width: '260',
+        width: '200',
         fixed: 'right', 
         align: 'center',
-        minWidth: '',
         custom: true,
     },
 ])