Gqingci 4 днів тому
батько
коміт
9e5ca637ab
2 змінених файлів з 20 додано та 8 видалено
  1. 2 0
      src/api/main/postManage/types.ts
  2. 18 8
      src/views/postManage/index.vue

+ 2 - 0
src/api/main/postManage/types.ts

@@ -38,6 +38,8 @@ export interface MainPostApplyVO extends BaseEntity {
   postId?: number | string;
   rejectReason?: string;
   applyCount?: number;
+  postTypeLabel?: string;
+  postLevelLabel?: string;
 }
 
 export interface MainPostApplyForm {

+ 18 - 8
src/views/postManage/index.vue

@@ -21,12 +21,12 @@
             </el-form-item>
             <el-form-item prop="postType" class="search-form-item search-select-item">
               <el-select v-model="queryParams.postType" placeholder="岗位类型" clearable>
-                <el-option v-for="item in postTypeOptions" :key="item" :label="item" :value="item" />
+                <el-option v-for="item in postTypeOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
               </el-select>
             </el-form-item>
             <el-form-item prop="postLevel" class="search-form-item search-select-item">
               <el-select v-model="queryParams.postLevel" placeholder="岗位级别" clearable>
-                <el-option v-for="item in postCategoryOptions" :key="item" :label="item" :value="item" />
+                <el-option v-for="item in postCategoryOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
               </el-select>
             </el-form-item>
           </el-form>
@@ -48,12 +48,12 @@
           <el-table-column label="岗位名称" align="center" prop="postName" min-width="140" />
           <el-table-column label="岗位类型" align="center" prop="postType" min-width="120">
             <template #default="scope">
-              <span>{{ scope.row.postType || '--' }}</span>
+              <span>{{ scope.row.postTypeLabel || '--' }}</span>
             </template>
           </el-table-column>
           <el-table-column label="岗位级别" align="center" prop="postLevel" min-width="120">
             <template #default="scope">
-              <span>{{ scope.row.postLevel || '--' }}</span>
+              <span>{{ scope.row.postLevelLabel || '--' }}</span>
             </template>
           </el-table-column>
           <el-table-column label="审核状态" align="center" min-width="180">
@@ -168,6 +168,7 @@ import { getMainAudit, listMainAudit } from '@/api/main/audit';
 import PageShell from '@/components/PageShell/index.vue';
 import { delPostManage, listPostManage, publishPostManage, unpublishPostManage } from '@/api/main/postManage';
 import { MainPostApplyQuery, MainPostApplyVO } from '@/api/main/postManage/types';
+import { getDicts } from '@/api/system/dict/data';
 import { globalHeaders } from '@/utils/request';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@@ -187,8 +188,8 @@ const ids = ref<Array<number | string>>([]);
 const multiple = ref(true);
 const total = ref(0);
 const publishLoadingMap = reactive<Record<string, boolean>>({});
-const postCategoryOptions = ref<string[]>([]);
-const postTypeOptions = ref<string[]>([]);
+const postCategoryOptions = ref<any[]>([]);
+const postTypeOptions = ref<any[]>([]);
 const queryFormRef = ref<ElFormInstance>();
 const auditStatusOptions = [
   { label: '待审核', value: 0 },
@@ -273,8 +274,6 @@ const getList = async () => {
     const res = await listPostManage(queryParams);
     postList.value = res.rows;
     total.value = res.total;
-    postTypeOptions.value = Array.from(new Set(res.rows.map((item) => item.postType).filter(Boolean) as string[]));
-    postCategoryOptions.value = Array.from(new Set(res.rows.map((item) => item.postLevel).filter(Boolean) as string[]));
   } finally {
     loading.value = false;
   }
@@ -409,7 +408,18 @@ const handleDownloadImportTemplate = () => {
   proxy?.download('main/postApply/importTemplate', {}, `post_template_${new Date().getTime()}.xlsx`);
 };
 
+/** 加载字典数据 */
+const loadDictOptions = async () => {
+  const [typeRes, levelRes] = await Promise.all([
+    getDicts('main_position_type'),
+    getDicts('main_position_level')
+  ]);
+  postTypeOptions.value = typeRes.data || [];
+  postCategoryOptions.value = levelRes.data || [];
+};
+
 onMounted(() => {
+  loadDictOptions();
   getList();
 });
 </script>