From a4d0446d7c1c1e56641fd4e887ad4d0ecd0534ca Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期四, 05 三月 2026 17:43:55 +0800
Subject: [PATCH] 排班管理页面完成70%

---
 src/views/personnelManagement/employeeRecord/components/EducationWorkSection.vue |  263 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 263 insertions(+), 0 deletions(-)

diff --git a/src/views/personnelManagement/employeeRecord/components/EducationWorkSection.vue b/src/views/personnelManagement/employeeRecord/components/EducationWorkSection.vue
new file mode 100644
index 0000000..10ed6ac
--- /dev/null
+++ b/src/views/personnelManagement/employeeRecord/components/EducationWorkSection.vue
@@ -0,0 +1,263 @@
+<template>
+  <div>
+    <!-- 鏁欒偛缁忓巻 -->
+    <el-card class="form-card" shadow="never">
+      <template #header>
+        <span class="card-title">
+          <span class="card-title-line">|</span>
+          鏁欒偛缁忓巻
+        </span>
+      </template>
+      <el-table :data="form.educationList" border>
+        <el-table-column label="瀛﹀巻" prop="degree" width="120">
+          <template #default="{ row }">
+            <el-select
+              v-model="row.degree"
+              placeholder="璇烽�夋嫨"
+              clearable
+              style="width: 100%"
+            >
+              <el-option label="涓笓鍙婁互涓�" value="secondary" />
+              <el-option label="澶т笓" value="junior_college" />
+              <el-option label="鏈" value="bachelor" />
+              <el-option label="纭曞+" value="master" />
+              <el-option label="鍗氬+鍙婁互涓�" value="doctor" />
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column label="姣曚笟闄㈡牎" prop="school" min-width="160">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.school"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="30"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="鍏ュ鏃堕棿" prop="admissionDate" width="150">
+          <template #default="{ row }">
+            <el-date-picker
+              v-model="row.admissionDate"
+              type="date"
+              value-format="YYYY-MM-DD"
+              format="YYYY-MM-DD"
+              placeholder="璇烽�夋嫨"
+              style="width: 100%"
+              clearable
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="姣曚笟鏃堕棿" prop="graduationDate" width="150">
+          <template #default="{ row }">
+            <el-date-picker
+              v-model="row.graduationDate"
+              type="date"
+              value-format="YYYY-MM-DD"
+              format="YYYY-MM-DD"
+              placeholder="璇烽�夋嫨"
+              style="width: 100%"
+              clearable
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="涓撲笟" prop="major" min-width="140">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.major"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="20"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="瀛︿綅" prop="academicDegree" width="140">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.academicDegree"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="20"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="鎿嶄綔" width="80" align="center">
+          <template #default="scope">
+            <el-button
+              v-if="form.educationList.length > 1"
+              type="primary"
+              link
+              @click="removeEducationRow(scope.$index)"
+            >
+              鍒犻櫎
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="table-add-row" @click="addEducationRow">鏂板缓涓�琛�</div>
+    </el-card>
+
+    <!-- 宸ヤ綔缁忓巻 -->
+    <el-card class="form-card" shadow="never">
+      <template #header>
+        <span class="card-title">
+          <span class="card-title-line">|</span>
+          宸ヤ綔缁忓巻
+        </span>
+      </template>
+      <el-table :data="form.workExperienceList" border>
+        <el-table-column label="鍓嶅叕鍙�" prop="company" min-width="180">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.company"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="30"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="鍓嶅叕鍙搁儴闂�" prop="department" min-width="140">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.department"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="20"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="鍓嶅叕鍙歌亴浣�" prop="position" min-width="140">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.position"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="20"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="寮�濮嬫棩鏈�" prop="startDate" width="150">
+          <template #default="{ row }">
+            <el-date-picker
+              v-model="row.startDate"
+              type="date"
+              value-format="YYYY-MM-DD"
+              format="YYYY-MM-DD"
+              placeholder="璇烽�夋嫨"
+              style="width: 100%"
+              clearable
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="缁撴潫鏃ユ湡" prop="endDate" width="150">
+          <template #default="{ row }">
+            <el-date-picker
+              v-model="row.endDate"
+              type="date"
+              value-format="YYYY-MM-DD"
+              format="YYYY-MM-DD"
+              placeholder="璇烽�夋嫨"
+              style="width: 100%"
+              clearable
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="宸ヤ綔鎻忚堪" prop="description" min-width="220">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.description"
+              type="textarea"
+              :rows="2"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="500"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="鎿嶄綔" width="80" align="center">
+          <template #default="scope">
+            <el-button
+              v-if="form.workExperienceList.length > 1"
+              type="primary"
+              link
+              @click="removeWorkRow(scope.$index)"
+            >
+              鍒犻櫎
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="table-add-row" @click="addWorkRow">鏂板缓涓�琛�</div>
+    </el-card>
+  </div>
+</template>
+
+<script setup>
+import { toRefs } from "vue";
+
+const props = defineProps({
+  form: { type: Object, required: true },
+});
+
+const emit = defineEmits(["update:form"]);
+
+const { form } = toRefs(props);
+
+const addEducationRow = () => {
+  form.value.educationList.push({
+    degree: "",
+    school: "",
+    admissionDate: "",
+    graduationDate: "",
+    major: "",
+    academicDegree: "",
+  });
+};
+
+const removeEducationRow = (index) => {
+  if (form.value.educationList.length <= 1) return;
+  form.value.educationList.splice(index, 1);
+};
+
+const addWorkRow = () => {
+  form.value.workExperienceList.push({
+    company: "",
+    department: "",
+    position: "",
+    startDate: "",
+    endDate: "",
+    description: "",
+  });
+};
+
+const removeWorkRow = (index) => {
+  if (form.value.workExperienceList.length <= 1) return;
+  form.value.workExperienceList.splice(index, 1);
+};
+</script>
+
+<style scoped>
+.form-card {
+  margin-bottom: 16px;
+}
+
+.card-title-line {
+  color: #f56c6c;
+  margin-right: 4px;
+}
+
+.table-add-row {
+  margin-top: 8px;
+  color: #409eff;
+  cursor: pointer;
+  font-size: 14px;
+}
+</style>
+

--
Gitblit v1.9.3