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