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/EmergencyAndAttachmentSection.vue |  148 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 148 insertions(+), 0 deletions(-)

diff --git a/src/views/personnelManagement/employeeRecord/components/EmergencyAndAttachmentSection.vue b/src/views/personnelManagement/employeeRecord/components/EmergencyAndAttachmentSection.vue
new file mode 100644
index 0000000..b57656b
--- /dev/null
+++ b/src/views/personnelManagement/employeeRecord/components/EmergencyAndAttachmentSection.vue
@@ -0,0 +1,148 @@
+<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.emergencyContacts" border>
+        <el-table-column label="绱ф�ヨ仈绯讳汉濮撳悕" prop="name" min-width="160">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.name"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="50"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="绱ф�ヨ仈绯讳汉鍏崇郴" prop="relation" min-width="140">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.relation"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="20"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="绱ф�ヨ仈绯讳汉鎵嬫満" prop="phone" width="160">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.phone"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="11"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="绱ф�ヨ仈绯讳汉浣忓潃" prop="address" min-width="220">
+          <template #default="{ row }">
+            <el-input
+              v-model="row.address"
+              placeholder="璇疯緭鍏�"
+              clearable
+              maxlength="50"
+              show-word-limit
+            />
+          </template>
+        </el-table-column>
+        <el-table-column label="鎿嶄綔" width="80" align="center">
+          <template #default="scope">
+            <el-button
+              v-if="form.emergencyContacts.length > 1"
+              type="primary"
+              link
+              @click="removeEmergencyRow(scope.$index)"
+            >
+              鍒犻櫎
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="table-add-row" @click="addEmergencyRow">鏂板缓涓�琛�</div>
+    </el-card>
+
+    <!-- 鏉愭枡闄勪欢 -->
+    <el-card class="form-card" shadow="never">
+      <template #header>
+        <div class="card-title">
+          <span class="card-title-line">|</span>
+          <span>鏉愭枡闄勪欢</span>
+          <span class="upload-tip">
+            鍥剧墖鏀寔jpeg銆乯pg銆乸ng绛夋牸寮忥紝闄勪欢鏂囦欢鏀寔pdf銆乺ar銆亃ip銆乨oc銆乨ocx鏍煎紡銆�
+          </span>
+        </div>
+      </template>
+      <el-form-item label="闄勪欢">
+        <el-upload
+          v-model:file-list="form.attachments"
+          action="#"
+          :auto-upload="false"
+          multiple
+          list-type="picture-card"
+        >
+          <el-icon>
+            <Plus />
+          </el-icon>
+        </el-upload>
+      </el-form-item>
+    </el-card>
+  </div>
+</template>
+
+<script setup>
+import { toRefs } from "vue";
+import { Plus } from "@element-plus/icons-vue";
+
+const props = defineProps({
+  form: { type: Object, required: true },
+});
+
+const { form } = toRefs(props);
+
+const addEmergencyRow = () => {
+  form.value.emergencyContacts.push({
+    name: "",
+    relation: "",
+    phone: "",
+    address: "",
+  });
+};
+
+const removeEmergencyRow = (index) => {
+  if (form.value.emergencyContacts.length <= 1) return;
+  form.value.emergencyContacts.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;
+}
+
+.upload-tip {
+  margin-left: 12px;
+  font-size: 12px;
+  color: #909399;
+}
+</style>
+

--
Gitblit v1.9.3