From e4897e8a61146a1e7a5418373e31375a16366c46 Mon Sep 17 00:00:00 2001 From: yaowanxin <3588231647@qq.com> Date: 星期一, 11 八月 2025 15:26:25 +0800 Subject: [PATCH] 添加附件,调整数据 --- src/views/personnelManagement/contractManagement/index.vue | 159 +++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 124 insertions(+), 35 deletions(-) diff --git a/src/views/personnelManagement/contractManagement/index.vue b/src/views/personnelManagement/contractManagement/index.vue index f1fe264..b52e083 100644 --- a/src/views/personnelManagement/contractManagement/index.vue +++ b/src/views/personnelManagement/contractManagement/index.vue @@ -3,51 +3,89 @@ <div class="search_form"> <div> <span class="search_title">濮撳悕锛�</span> - <el-input - v-model="searchForm.staffName" - style="width: 240px" - placeholder="璇疯緭鍏ュ鍚嶆悳绱�" - @change="handleQuery" - clearable - :prefix-icon="Search" - /> - <el-button type="primary" @click="handleQuery" style="margin-left: 10px" - >鎼滅储</el-button - > + <el-input v-model="searchForm.staffName" style="width: 240px" placeholder="璇疯緭鍏ュ鍚嶆悳绱�" @change="handleQuery" + clearable :prefix-icon="Search" /> + <span style="margin-left: 10px" class="search_title">鍚堝悓缁撴潫鏃ユ湡锛�</span> + <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange" + placeholder="璇烽�夋嫨" clearable @change="changeDaterange" /> + <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button> </div> <div> <!-- <el-button type="primary" @click="openForm('add')">鏂板鍏ヨ亴</el-button>--> + <el-button type="info" @click="handleImport">瀵煎叆</el-button> <el-button @click="handleOut">瀵煎嚭</el-button> <!-- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>--> </div> </div> <div class="table_list"> - <PIMTable - rowKey="id" - :column="tableColumn" - :tableData="tableData" - :page="page" - :isSelection="true" - @selection-change="handleSelectionChange" - :tableLoading="tableLoading" - @pagination="pagination" - :total="total" - ></PIMTable> + <PIMTable rowKey="id" :column="tableColumn" :tableData="tableData" :page="page" :isSelection="true" + @selection-change="handleSelectionChange" :tableLoading="tableLoading" @pagination="pagination" + :total="page.total"></PIMTable> </div> <form-dia ref="formDia" @close="handleQuery"></form-dia> + + <!-- 鍚堝悓瀵煎叆瀵硅瘽妗� --> + <el-dialog + :title="upload.title" + v-model="upload.open" + width="400px" + append-to-body + > + <el-upload + ref="uploadRef" + :limit="1" + accept=".xlsx, .xls" + :headers="upload.headers" + :action="upload.url + '?updateSupport=' + upload.updateSupport" + :disabled="upload.isUploading" + :on-progress="handleFileUploadProgress" + :on-success="handleFileSuccess" + :auto-upload="false" + drag + > + <el-icon class="el-icon--upload"><upload-filled /></el-icon> + <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> + <template #tip> + <div class="el-upload__tip text-center"> + <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span> + <!-- <el-link + type="primary" + :underline="false" + style="font-size: 12px; vertical-align: baseline" + @click="importTemplate" + >涓嬭浇妯℃澘</el-link + > --> + </div> + </template> + </el-upload> + <template #footer> + <div class="dialog-footer"> + <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button> + <el-button @click="upload.open = false">鍙� 娑�</el-button> + </div> + </template> + </el-dialog> </div> </template> <script setup> import { Search } from "@element-plus/icons-vue"; -import {onMounted, ref} from "vue"; +import { onMounted, ref } from "vue"; import FormDia from "@/views/personnelManagement/contractManagement/components/formDia.vue"; -import {ElMessageBox} from "element-plus"; -import {staffOnJobListPage} from "@/api/personnelManagement/employeeRecord.js"; +import { ElMessageBox } from "element-plus"; +import { staffOnJobListPage } from "@/api/personnelManagement/employeeRecord.js"; +import dayjs from "dayjs"; +import { getToken } from "@/utils/auth.js"; const data = reactive({ searchForm: { staffName: "", + entryDate: [ + dayjs().format("YYYY-MM-DD"), + dayjs().add(1, "day").format("YYYY-MM-DD"), + ], // 褰曞叆鏃ユ湡 + entryDateStart: dayjs().format("YYYY-MM-DD"), + entryDateEnd: dayjs().add(1, "day").format("YYYY-MM-DD"), }, }); const { searchForm } = toRefs(data); @@ -98,6 +136,7 @@ { label: "瀹跺涵浣忓潃", prop: "adress", + width: 200 }, { label: "绗竴瀛﹀巻", @@ -106,10 +145,12 @@ { label: "涓撲笟", prop: "profession", + width: 100 }, { label: "韬唤璇佸彿", prop: "identityCard", + width: 200 }, { label: "骞撮緞", @@ -118,6 +159,7 @@ { label: "鑱旂郴鐢佃瘽", prop: "phone", + width: 150 }, { label: "绱ф�ヨ仈绯讳汉", @@ -125,8 +167,9 @@ width: 120 }, { - label: "鑱旂郴鐢佃瘽", + label: "绱ф�ヨ仈绯讳汉鐢佃瘽", prop: "emergencyContactPhone", + width: 150 }, { label: "鍚堝悓骞撮檺", @@ -164,11 +207,20 @@ const page = reactive({ current: 1, size: 100, + total: 0, }); -const total = ref(0); const formDia = ref() const { proxy } = getCurrentInstance() +const changeDaterange = (value) => { + searchForm.value.entryDateStart = undefined; + searchForm.value.entryDateEnd = undefined; + if (value) { + searchForm.value.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD"); + searchForm.value.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD"); + } + getList(); +}; // 鏌ヨ鍒楄〃 /** 鎼滅储鎸夐挳鎿嶄綔 */ const handleQuery = () => { @@ -182,10 +234,12 @@ }; const getList = () => { tableLoading.value = true; - staffOnJobListPage({...page, ...searchForm.value,}).then(res => { + const params = { ...searchForm.value, ...page }; + params.entryDate = undefined + staffOnJobListPage(params).then(res => { tableLoading.value = false; tableData.value = res.data.records - total.value = res.data.total; + page.total = res.data.total; }).catch(err => { tableLoading.value = false; }) @@ -208,12 +262,47 @@ cancelButtonText: "鍙栨秷", type: "warning", }) - .then(() => { - proxy.download("/staff/staffOnJob/export", {}, "鍚堝悓绠$悊.xlsx"); - }) - .catch(() => { - proxy.$modal.msg("宸插彇娑�"); - }); + .then(() => { + proxy.download("/staff/staffOnJob/export", {}, "鍚堝悓绠$悊.xlsx"); + }) + .catch(() => { + proxy.$modal.msg("宸插彇娑�"); + }); +}; +const upload = reactive({ + // 鏄惁鏄剧ず寮瑰嚭灞傦紙鍚堝悓瀵煎叆锛� + open: false, + // 寮瑰嚭灞傛爣棰橈紙鍚堝悓瀵煎叆锛� + title: "", + // 鏄惁绂佺敤涓婁紶 + isUploading: false, + // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹� + updateSupport: 1, + // 璁剧疆涓婁紶鐨勮姹傚ご閮� + headers: { Authorization: "Bearer " + getToken() }, + // 涓婁紶鐨勫湴鍧� + url: import.meta.env.VITE_APP_BASE_API + "/staff/staffOnJob/import", +}); +/** 瀵煎叆鎸夐挳鎿嶄綔 */ +function handleImport() { + upload.title = "鍚堝悓瀵煎叆"; + upload.open = true; +} +/** 鎻愪氦涓婁紶鏂囦欢 */ +function submitFileForm() { + console.log(upload.url + '?updateSupport=' + upload.updateSupport) + proxy.$refs["uploadRef"].submit(); +} +/**鏂囦欢涓婁紶涓鐞� */ +const handleFileUploadProgress = (event, file, fileList) => { + upload.isUploading = true; +}; +/** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */ +const handleFileSuccess = (response, file, fileList) => { + upload.open = false; + upload.isUploading = false; + proxy.$refs["uploadRef"].handleRemove(file); + getList(); }; onMounted(() => { getList(); -- Gitblit v1.9.3