2 次代碼提交 ef42f93a3e ... c764694e62

作者 SHA1 備註 提交日期
  Sunny ma c764694e62 Merge branch 'master' of http://114.55.67.98:8070/Natural_p1/zjugis_OA 1 年之前
  Sunny ma 6030128d35 fix: 项目/合同搜索框样式修改,员工档案搜索数据配置化 1 年之前

+ 167 - 4
client/src/views/OaSystem/personnelManagement/ygdaPage/index.ts

@@ -213,7 +213,9 @@ export const formConfigList = [
   }
 ]
 
-export const formRules = { name: [{ required: true, message: '应用名不能为空', trigger: 'blur' }] }
+export const formRules = {
+  nickname: [{ required: true, message: '名称不能为空', trigger: 'blur' }]
+}
 
 export const tableColumnConfigList = [
   {
@@ -343,13 +345,174 @@ export const tableColumnConfigList = [
     type: 'time'
   },
   {
-    name: 'yyxs',
+    name: 'pyxs',
     title: '聘用形式',
-    type: 'time'
+    type: 'select',
+    options: [
+      {
+        value: 1,
+        label: '劳动合同'
+      },
+      {
+        value: 2,
+        label: '劳务合同'
+      },
+      {
+        value: 3,
+        label: '临时合同'
+      }
+    ]
   },
   {
     name: 'sfytd',
     title: '是否已调档',
-    type: 'time'
+    type: 'select',
+    options: [
+      {
+        value: 1,
+        label: '是'
+      },
+      {
+        value: 2,
+        label: '否'
+      }
+    ]
+  }
+]
+
+//搜索
+
+export const searchConfigList = [
+  {
+    name: 'nickname',
+    title: '员工名称'
+  },
+  {
+    name: 'ssbm',
+    title: '所属部门',
+    type: 'select'
+  },
+  {
+    name: 'state',
+    title: '状态',
+    type: 'select',
+    options: [
+      {
+        value: 1,
+        label: '实习'
+      },
+      {
+        value: 2,
+        label: '试用'
+      },
+      {
+        value: 3,
+        label: '正式'
+      },
+      {
+        value: 4,
+        label: '离职'
+      }
+    ]
+  },
+  {
+    name: 'zzmm',
+    title: '政治面貌',
+    type: 'select',
+    options: [
+      {
+        value: 1,
+        label: '群众'
+      },
+      {
+        value: 2,
+        label: '团员'
+      },
+      {
+        value: 3,
+        label: '党员'
+      }
+    ]
+  },
+  {
+    name: 'hkxz',
+    title: '户口性质',
+    type: 'select',
+    options: [
+      {
+        value: 1,
+        label: '城镇'
+      },
+      {
+        value: 2,
+        label: '农村'
+      }
+    ]
+  },
+
+  {
+    name: 'zgxl',
+    title: '最高学历',
+    type: 'select',
+    options: [
+      {
+        value: 1,
+        label: '高中'
+      },
+      {
+        value: 2,
+        label: '中专'
+      },
+      {
+        value: 3,
+        label: '大专'
+      },
+      {
+        value: 4,
+        label: '本科'
+      },
+      {
+        value: 5,
+        label: '硕士'
+      },
+      {
+        value: 6,
+        label: '博士'
+      }
+    ]
+  },
+  {
+    name: 'pyxs',
+    title: '聘用形式',
+    type: 'select',
+    options: [
+      {
+        value: 1,
+        label: '劳动合同'
+      },
+      {
+        value: 2,
+        label: '劳务合同'
+      },
+      {
+        value: 3,
+        label: '临时合同'
+      }
+    ]
+  },
+  {
+    name: 'sfytd',
+    title: '是否调档',
+    type: 'select',
+    options: [
+      {
+        value: 1,
+        label: '是'
+      },
+      {
+        value: 2,
+        label: '否'
+      }
+    ]
   }
 ]

+ 28 - 41
client/src/views/OaSystem/personnelManagement/ygdaPage/index.vue

@@ -1,48 +1,26 @@
 <template>
   <ListLayout>
     <template #oaSearchSlot>
-      <div class="form">
-        <span class="formSpan">员工姓名:</span>
-        <el-input v-model="queryParams.nickname" placeholder="请输入员工姓名" />
-      </div>
-      <div class="form">
-        <span class="formSpan">所属部门:</span>
-        <el-select v-model="queryParams.deptId" placeholder="请选择部门">
+      <div class="form" v-for="child in searchConfigList" :key="child.name">
+        <span class="formSpan">{{ child.title }}:</span>
+        <el-select
+          v-if="child.type === 'select'"
+          v-model="queryParams[child?.name]"
+          placeholder=""
+          clearable
+        >
           <el-option
-            v-for="item in industryListAll"
+            v-for="item in child.options"
             :key="item.value"
             :label="item.label"
             :value="item.value"
           />
         </el-select>
-      </div>
-      <div class="form">
-        <span class="formSpan">状态:</span>
-        <el-input v-model="queryParams.state" />
-      </div>
-      <div class="form">
-        <span class="formSpan">政治面貌:</span>
-        <el-input v-model="queryParams.zzmm" />
-      </div>
-      <div class="form">
-        <span class="formSpan">户口性质:</span>
-        <el-input v-model="queryParams.hkxz" />
-      </div>
-      <div class="form">
-        <span class="formSpan">最高学历:</span>
-        <el-input v-model="queryParams.zgxl" />
-      </div>
-      <div class="form">
-        <span class="formSpan">专业:</span>
-        <el-input v-model="queryParams.major" />
-      </div>
-      <div class="form">
-        <span class="formSpan">聘用形式:</span>
-        <el-input v-model="queryParams.pyxs" />
-      </div>
-      <div class="form">
-        <span class="formSpan">是否调档:</span>
-        <el-input v-model="queryParams.sfytd" />
+        <el-input
+          v-if="child?.type === undefined"
+          v-model="queryParams[child?.name]"
+          placeholder=""
+        />
       </div>
       <div class="from">
         <div class="btnBox">
@@ -54,6 +32,10 @@
             <img src="@/assets/imgs/OA/open.png" class="mr-8px" alt="" />
             导出</el-button
           >
+          <el-button type="primary" color="#05CE9E">
+            <img src="@/assets/imgs/OA/open.png" class="mr-8px" alt="" />
+            <span style="color: #fff">导入</span>
+          </el-button>
         </div>
       </div>
     </template>
@@ -63,19 +45,18 @@
           v-loading="loading"
           :data="list"
           style="width: 100%; height: 100%"
-          :style="{ height: tableHeight + 'px' }"
+          :style="{ maxHeight: tableHeight + 'px' }"
           stripe
           :header-cell-style="{
             background: '#E5F0FB',
             color: '#233755',
             height: '50px'
           }"
-          table-layout="auto"
         >
-          <el-table-column fixed type="index" label="序号" width="80" />
+          <el-table-column fixed align="center" type="index" label="序号" width="80" />
           <el-table-column fixed align="center" prop="nickname" label="员工姓名" width="120" />
 
-          <template v-for="(item, index) in tableColumnConfigList" :key="index">
+          <template v-for="item in tableColumnConfigList" :key="item.name">
             <el-table-column
               v-if="item.type === undefined"
               align="center"
@@ -140,7 +121,7 @@
 import * as StaffRecordsApi from '@/api/oa/staffRecords'
 import { dateFormatter2 } from '@/utils/formatTime'
 import ListLayout from '../../oaViews/layout/ListLayout.vue'
-import { tableColumnConfigList } from './index'
+import { tableColumnConfigList, searchConfigList } from './index'
 
 defineOptions({ name: 'Ygda' })
 const queryParams = reactive({
@@ -207,4 +188,10 @@ onMounted(() => {
 :deep(.el-input) {
   width: 160px;
 }
+
+:deep(.el-table) {
+  tr {
+    height: 50px;
+  }
+}
 </style>

+ 6 - 6
client/src/views/OaSystem/personnelManagement/ygdaPage/staffDetail.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-defineOptions({ name: 'staffDetail' })
+defineOptions({ name: 'StaffDetail' })
 
 import { useQuery, useMutation } from '@tanstack/vue-query'
 import { getRecordsDetail, editRecordsDetail } from '@/api/oa/staffRecords'
@@ -110,13 +110,13 @@ const isEdit = computed(() => {
                     v-if="child.type === 'select'"
                     v-model="formData[child?.name]"
                     style="width: 100%"
-                    placeholder=""
+                    :placeholder="isEdit ? child.title : '-'"
                   >
                     <el-option
-                      v-for="item in child.options"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
+                      v-for="opt in child.options"
+                      :key="opt.value"
+                      :label="opt.label"
+                      :value="opt.value"
                     />
                   </el-select>
 

+ 4 - 10
client/src/views/OaSystem/projectCenter/projectBook/deptProject.vue

@@ -26,13 +26,7 @@
       </div>
       <div class="form">
         <span class="formSpan">行业:</span>
-        <el-select
-          width="160px"
-          v-model="queryParams.hyId"
-          class="m-2"
-          placeholder="请选择行业"
-          size="large"
-        >
+        <el-select width="160px" v-model="queryParams.hyId" class="m-2" placeholder="请选择行业">
           <el-option
             v-for="item in industryListAll"
             :key="item.value"
@@ -41,7 +35,7 @@
           />
         </el-select>
       </div>
-      <div class="form">
+      <div class="form" style="width: 300px">
         <span class="formSpan">立项时间:</span>
         <el-date-picker
           v-model="lxsjObj"
@@ -52,7 +46,7 @@
           end-placeholder="结束日期"
         />
       </div>
-      <div class="form" style="margin-right: 80px">
+      <div class="form" style="width: unset">
         <span class="formSpan">合同:</span>
         <el-radio-group v-model="queryParams.isSign">
           <el-radio>全部</el-radio>
@@ -60,7 +54,7 @@
           <el-radio label="0">未签订</el-radio>
         </el-radio-group>
       </div>
-      <div class="form">
+      <div class="form" style="width: unset">
         <span class="formSpan">项目状态:</span>
         <el-radio-group v-model="queryParams.xmzt">
           <el-radio :label="1">进行中(10)</el-radio>

+ 3 - 3
client/src/views/OaSystem/projectCenter/projectBook/myProject.vue

@@ -35,7 +35,7 @@
           />
         </el-select>
       </div>
-      <div class="form">
+      <div class="form" style="width: 300px">
         <span class="formSpan">立项时间:</span>
         <el-date-picker
           v-model="lxsjObj"
@@ -46,7 +46,7 @@
           end-placeholder="结束日期"
         />
       </div>
-      <div class="form" style="margin-right: 80px">
+      <div class="form" style="width: unset">
         <span class="formSpan">合同:</span>
         <el-radio-group v-model="queryParams.isSign">
           <el-radio>全部</el-radio>
@@ -54,7 +54,7 @@
           <el-radio label="0">未签订</el-radio>
         </el-radio-group>
       </div>
-      <div class="form">
+      <div class="form" style="width: unset">
         <span class="formSpan">项目状态:</span>
         <el-radio-group v-model="queryParams.xmzt">
           <el-radio :label="1">进行中(10)</el-radio>

+ 7 - 2
client/src/views/OaSystem/projectCenter/projectBook/projectBook.scss

@@ -12,16 +12,21 @@
     display: flex;
     align-items: center;
     flex-wrap: wrap;
-    padding: 10px 30px;
+    padding: 10px 25px;
     box-sizing: border-box;
 
     .form {
       display: flex;
       align-items: center;
-      margin-right: 20px;
+      margin: 5px 0;
+      margin-right: 16px;
+      width: 240px;
+      padding: 0 5px;
 
       .formSpan {
         font-size: 16px;
+        width: 90px;
+        white-space: nowrap;
       }
 
       .btnBox {

+ 3 - 3
client/src/views/OaSystem/projectCenter/projectBook/projectBook.vue

@@ -35,7 +35,7 @@
           />
         </el-select>
       </div>
-      <div class="form">
+      <div class="form" style="width: 300px">
         <span class="formSpan">立项时间:</span>
         <el-date-picker
           v-model="lxsjObj"
@@ -46,7 +46,7 @@
           end-placeholder="结束日期"
         />
       </div>
-      <div class="form" style="margin-right: 80px">
+      <div class="form" style="width: unset">
         <span class="formSpan">合同:</span>
         <el-radio-group v-model="queryParams.isSign">
           <el-radio>全部</el-radio>
@@ -54,7 +54,7 @@
           <el-radio label="0">未签订</el-radio>
         </el-radio-group>
       </div>
-      <div class="form">
+      <div class="form" style="width: unset">
         <span class="formSpan">项目状态:</span>
         <el-radio-group v-model="queryParams.xmzt">
           <el-radio :label="1">进行中(10)</el-radio>

+ 2 - 16
client/src/views/OaSystem/projectCenter/purchaseContract/deptContract.vue

@@ -15,13 +15,7 @@
       </div>
       <div class="form">
         <span class="formSpan">签订状态:</span>
-        <el-select
-          width="160px"
-          v-model="queryParams.isSign"
-          class="m-2"
-          placeholder="请选择行业"
-          size="large"
-        >
+        <el-select width="160px" v-model="queryParams.isSign" class="m-2" placeholder="请选择行业">
           <el-option
             v-for="item in isSignListAll"
             :key="item.value"
@@ -32,13 +26,7 @@
       </div>
       <div class="form">
         <span class="formSpan">签订方式:</span>
-        <el-select
-          width="160px"
-          v-model="queryParams.signWay"
-          class="m-2"
-          placeholder="请选择行业"
-          size="large"
-        >
+        <el-select width="160px" v-model="queryParams.signWay" class="m-2" placeholder="请选择行业">
           <el-option
             v-for="item in signWayAllList"
             :key="item.value"
@@ -54,7 +42,6 @@
           v-model="queryParams.mainType"
           class="m-2"
           placeholder="请选择行业"
-          size="large"
         >
           <el-option
             v-for="item in mainTypeAllList"
@@ -71,7 +58,6 @@
           v-model="queryParams.secondType"
           class="m-2"
           placeholder="请选择行业"
-          size="large"
         >
           <el-option
             v-for="item in secondTypeAllList"

+ 7 - 2
client/src/views/OaSystem/projectCenter/purchaseContract/purchaseContract.scss

@@ -12,16 +12,21 @@
     display: flex;
     align-items: center;
     flex-wrap: wrap;
-    padding: 10px 30px;
+    padding: 10px 25px;
     box-sizing: border-box;
 
     .form {
       display: flex;
       align-items: center;
-      margin-right: 20px;
+      margin: 5px 0;
+      margin-right: 16px;
+      width: 240px;
+      padding: 0 5px;
 
       .formSpan {
         font-size: 16px;
+        width: 90px;
+        white-space: nowrap;
       }
 
       .btnBox {

+ 6 - 30
client/src/views/OaSystem/projectCenter/purchaseContract/purchaseContract.vue

@@ -3,7 +3,7 @@
     <div class="searchBox">
       <div class="form">
         <span class="formSpan">合同名称:</span>
-        <el-input v-model="queryParams.name" placeholder="请输入合同名称" style="width: 210px" />
+        <el-input v-model="queryParams.name" placeholder="请输入合同名称" style="width: 160px" />
       </div>
       <div class="form">
         <span class="formSpan">合同编号:</span>
@@ -15,13 +15,7 @@
       </div>
       <div class="form">
         <span class="formSpan">签订状态:</span>
-        <el-select
-          width="160px"
-          v-model="queryParams.isSign"
-          class="m-2"
-          placeholder="请选择行业"
-          size="large"
-        >
+        <el-select width="160px" v-model="queryParams.isSign" placeholder="请选择行业">
           <el-option
             v-for="item in isSignListAll"
             :key="item.value"
@@ -32,13 +26,7 @@
       </div>
       <div class="form">
         <span class="formSpan">签订方式:</span>
-        <el-select
-          width="160px"
-          v-model="queryParams.signWay"
-          class="m-2"
-          placeholder="请选择行业"
-          size="large"
-        >
+        <el-select width="160px" v-model="queryParams.signWay" placeholder="请选择行业">
           <el-option
             v-for="item in signWayAllList"
             :key="item.value"
@@ -49,13 +37,7 @@
       </div>
       <div class="form">
         <span class="formSpan">合同主类型:</span>
-        <el-select
-          width="160px"
-          v-model="queryParams.mainType"
-          class="m-2"
-          placeholder="请选择行业"
-          size="large"
-        >
+        <el-select width="160px" v-model="queryParams.mainType" placeholder="请选择行业">
           <el-option
             v-for="item in mainTypeAllList"
             :key="item.value"
@@ -66,13 +48,7 @@
       </div>
       <div class="form">
         <span class="formSpan">合同次类型:</span>
-        <el-select
-          width="160px"
-          v-model="queryParams.secondType"
-          class="m-2"
-          placeholder="请选择行业"
-          size="large"
-        >
+        <el-select width="160px" v-model="queryParams.secondType" placeholder="请选择行业">
           <el-option
             v-for="item in secondTypeAllList"
             :key="item.value"
@@ -81,7 +57,7 @@
           />
         </el-select>
       </div>
-      <div class="form">
+      <div class="form" style="width: 300px">
         <span class="formSpan">拿回时间:</span>
         <el-date-picker
           v-model="lxsjObj"