From 6a973bf9be9b0ba2dd5f81b37a74b07b18781016 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期四, 13 三月 2025 16:42:15 +0800 Subject: [PATCH] 工时管理-查询参数修改 --- src/views/performance/manHour/workTimeManagement.vue | 420 +++++++++++++---------------------------------------------- 1 files changed, 94 insertions(+), 326 deletions(-) diff --git a/src/views/performance/manHour/workTimeManagement.vue b/src/views/performance/manHour/workTimeManagement.vue index bf8ffec..c32c29e 100644 --- a/src/views/performance/manHour/workTimeManagement.vue +++ b/src/views/performance/manHour/workTimeManagement.vue @@ -4,308 +4,148 @@ <div class="search"> <div class="search_thing" style="width: 200px"> <div class="search_label">鏄熸湡锛�</div> - <el-select - v-model="entity.weekDay" - clearable - placeholder="鍏ㄩ儴" - size="small" - @change="refreshTable()" - > - <el-option - v-for="item in weekList" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-select v-model="entity.weekDay" clearable placeholder="鍏ㄩ儴" size="small" @change="refreshTable()"> + <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </div> <div class="search_thing" style="width: 390px"> <div class="search_label" style="width: 90px">鏃堕棿鑼冨洿锛�</div> <div class="search_input"> - <el-date-picker - v-model="entity.dateTime" - clearable - end-placeholder="缁撴潫鏃ユ湡" - format="yyyy-MM-dd" - range-separator="鑷�" - size="small" - start-placeholder="寮�濮嬫棩鏈�" - style="width: 100%" - type="daterange" - value-format="yyyy-MM-dd" - @change="refreshTable()" - > + <el-date-picker v-model="entity.dateTime" clearable end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" + range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" style="width: 100%" type="daterange" + value-format="yyyy-MM-dd" @change="refreshTable()"> </el-date-picker> </div> </div> <!-- 浠ヤ笅杩欎袱涓负缁勯暱瑙掕壊鐗规湁鐨� --> <div class="search_thing" style="width: 200px"> <div class="search_label">鍚嶅瓧锛�</div> - <el-input - v-model="entity.name" - clearable - placeholder="璇疯緭鍏�" - size="small" - @keyup.enter.native="refreshTable()" - ></el-input> + <el-input v-model="entity.name" clearable placeholder="璇疯緭鍏�" size="small" + @keyup.enter.native="refreshTable()"></el-input> </div> - <div - v-if="currentTable == 'ValueTable1'" - class="search_thing" - style="width: 250px" - > + <div v-if="currentTable == 'ValueTable1'" class="search_thing" style="width: 250px"> <div class="search_label" style="width: 120px">鏍峰搧缂栧彿锛�</div> - <el-input - v-model="entity.sample" - clearable - placeholder="璇疯緭鍏�" - size="small" - @keyup.enter.native="refreshTable()" - ></el-input> + <el-input v-model="entity.sample" clearable placeholder="璇疯緭鍏�" size="small" + @keyup.enter.native="refreshTable()"></el-input> </div> - <div - v-if="currentTable == 'ValueTable0'" - class="search_thing" - style="width: 200px" - > + <div v-if="currentTable == 'ValueTable0'" class="search_thing" style="width: 200px"> <div class="search_label">鐘舵�侊細</div> - <el-select - v-model="entity.state" - placeholder="鍏ㄩ儴" - size="small" - @change="refreshTable()" - clearable - > - <el-option - v-for="item in stateList" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-select v-model="entity.state" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()" clearable> + <el-option v-for="item in stateList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </div> <div class="search_thing" style="padding-left: 30px; width: 100px"> <el-button size="small" @click="refresh()">閲� 缃�</el-button> - <el-button size="small" type="primary" @click="refreshTable()" - >鏌� 璇�</el-button - > + <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> </div> </div> - <div - style="display: flex; align-items: center; justify-content: space-between" - > - <el-radio-group :key="'111'" v-model="currentTable" size="small"> + <div style="display: flex; align-items: center; justify-content: space-between"> + <el-radio-group :key="'111'" v-model="currentTable" size="small" @change="searchList"> <el-radio-button label="ValueTable0"> 杈呭姪宸ユ椂 </el-radio-button> <el-radio-button label="ValueTable1"> 浜ч噺宸ユ椂 </el-radio-button> </el-radio-group> <div style="display: flex; align-items: center"> <p style="font-size: 14px; margin-right: 30px"> - 鎬诲伐鏃舵眹鎬伙細<span - v-if="totalInfo" - style="font-size: 16px; color: #3a7bfa" - >{{ - totalInfo["浜ч噺宸ユ椂姹囨��"] + totalInfo["杈呭姪宸ユ椂姹囨��"] - ? Number( - totalInfo["浜ч噺宸ユ椂姹囨��"] + totalInfo["杈呭姪宸ユ椂姹囨��"] - ).tofixed(4) - : 0 - }}</span - > 浜ч噺宸ユ椂姹囨�伙細<span - v-if="totalInfo" - style="font-size: 16px; color: #3a7bfa" - >{{ + 鎬诲伐鏃舵眹鎬伙細<span v-if="totalInfo" style="font-size: 16px; color: #3a7bfa">{{ + totalInfo["浜ч噺宸ユ椂姹囨��"] + totalInfo["杈呭姪宸ユ椂姹囨��"] + ? Number( + totalInfo["浜ч噺宸ユ椂姹囨��"] + totalInfo["杈呭姪宸ユ椂姹囨��"] + ).tofixed(4) + : 0 + }}</span> 浜ч噺宸ユ椂姹囨�伙細<span v-if="totalInfo" style="font-size: 16px; color: #3a7bfa">{{ totalInfo["浜ч噺宸ユ椂姹囨��"] ? Number(totalInfo["浜ч噺宸ユ椂姹囨��"]).tofixed(4) : 0 - }}</span - > 杈呭姪宸ユ椂姹囨�伙細<span - v-if="totalInfo" - style="font-size: 16px; color: #3a7bfa" - >{{ + }}</span> 杈呭姪宸ユ椂姹囨�伙細<span v-if="totalInfo" style="font-size: 16px; color: #3a7bfa">{{ totalInfo["杈呭姪宸ユ椂姹囨��"] ? Number(totalInfo["杈呭姪宸ユ椂姹囨��"]).tofixed(4) : 0 - }}</span - > + }}</span> </p> - <el-button - v-show=" - currentTable == 'ValueTable0' && - checkPermi(['performance:manHour:workTimeManagement:add']) - " - size="small" - type="primary" - @click="openAdd" - >褰曞叆鏁版嵁</el-button - > - <el-button - v-if="down && currentTable === 'ValueTable0'" - :loading="outLoading" - size="small" - type="primary" - @click="handleOut" - >瀵� 鍑�</el-button - > - <el-button - v-if="down && currentTable === 'ValueTable1'" - :loading="outLoading" - size="small" - type="primary" - @click="handleOut1" - >瀵� 鍑�</el-button - > - <el-button - v-show=" - currentTable == 'ValueTable0' && - checkPermi(['performance:manHour:workTimeManagement:add']) - " - size="small" - type="primary" - @click="openBatchCheck(1)" - >鎵归噺鎵瑰噯</el-button - > + <el-button v-show="currentTable == 'ValueTable0' && + checkPermi(['performance:manHour:workTimeManagement:add']) + " size="small" type="primary" @click="openAdd">褰曞叆鏁版嵁</el-button> + <el-button v-if="down && currentTable === 'ValueTable0'" :loading="outLoading" size="small" type="primary" + @click="handleOut">瀵� 鍑�</el-button> + <el-button v-if="down && currentTable === 'ValueTable1'" :loading="outLoading" size="small" type="primary" + @click="handleOut1">瀵� 鍑�</el-button> + <el-button v-show="currentTable == 'ValueTable0' && + checkPermi(['performance:manHour:workTimeManagement:add']) + " size="small" type="primary" @click="openBatchCheck(1)">鎵归噺鎵瑰噯</el-button> </div> </div> <div class="table"> - <lims-table - :tableData="tableData" - :column="column" - :page="page" - :tableLoading="tableLoading" - :height="'calc(100vh - 350px)'" - :isSelection="true" - v-if="currentTable == 'ValueTable0'" - @pagination="pagination" - :handleSelectionChange="handleSelectionChange" - ></lims-table> - <lims-table - :tableData="tableData0" - :column="column0" - :page="page0" - :tableLoading="tableLoading" - :height="'calc(100vh - 350px)'" - v-if="currentTable == 'ValueTable1'" - @pagination="pagination0" - ></lims-table> + <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" + key="tableData" + :height="'calc(100vh - 350px)'" :isSelection="true" v-if="currentTable == 'ValueTable0'" + @pagination="pagination" :handleSelectionChange="handleSelectionChange"></lims-table> + <lims-table :tableData="tableData0" :column="column0" :page="page0" :tableLoading="tableLoading" + key="tableData0" + :height="'calc(100vh - 350px)'" v-if="currentTable == 'ValueTable1'" @pagination="pagination0"></lims-table> </div> - <el-dialog - :before-close="handleClose" - :title="formData.id ? '缂栬緫' : '褰曞叆鏁版嵁'" - :visible.sync="addVisible" - width="600px" - > + <el-dialog :before-close="handleClose" :title="formData.id ? '缂栬緫' : '褰曞叆鏁版嵁'" :visible.sync="addVisible" + width="600px"> <el-row style="display: flex; justify-content: space-around"> <el-col :span="12"> <el-form :model="formData" label-width="90px"> <el-form-item label="褰曞叆鏃堕棿:"> <el-radio-group v-model="formData.dateTime" size="small"> - <el-radio :label="getYearAndMonthAndDays() + ' 00:00:00'" - >浠婂ぉ</el-radio - > - <el-radio - :label=" - getYearAndMonthAndDays( - new Date(new Date().getTime() - 24 * 60 * 60 * 1000) - ) + ' 00:00:00' - " - >鏄ㄥぉ</el-radio - > + <el-radio :label="getYearAndMonthAndDays() + ' 00:00:00'">浠婂ぉ</el-radio> + <el-radio :label="getYearAndMonthAndDays( + new Date(new Date().getTime() - 24 * 60 * 60 * 1000) + ) + ' 00:00:00' + ">鏄ㄥぉ</el-radio> </el-radio-group> </el-form-item> <el-form-item label="骞翠唤:"> - <el-input - v-model="formData.year" - disabled - size="small" - ></el-input> + <el-input v-model="formData.year" disabled size="small"></el-input> </el-form-item> <el-form-item label="鍛ㄦ:"> - <el-input - v-model="formData.week" - disabled - size="small" - ></el-input> + <el-input v-model="formData.week" disabled size="small"></el-input> </el-form-item> <el-form-item label="鏄熸湡:"> <!-- <el-input v-model="formData.weekDay" size="small" disabled></el-input> --> - <el-select - v-model="formData.weekDay" - disabled - placeholder="璇烽�夋嫨" - size="small" - > - <el-option - v-for="item in weekList" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-select v-model="formData.weekDay" disabled placeholder="璇烽�夋嫨" size="small"> + <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="鐝:"> - <el-input - v-model="formData.shift" - disabled - size="small" - ></el-input> + <el-input v-model="formData.shift" disabled size="small"></el-input> </el-form-item> </el-form> </el-col> <el-col :span="12"> <el-form :model="formData" label-width="90px"> <el-form-item label="缂栧彿:" required> - <el-input - v-model="formData.number" - size="small" - @blur="getInfoByCode" - ></el-input> + <el-input v-model="formData.number" size="small" @blur="getInfoByCode"></el-input> </el-form-item> <el-form-item label="鏁伴噺:" required> <el-input v-model="formData.amount" size="small"></el-input> </el-form-item> <el-form-item label="鏍稿噯宸ユ椂:"> - <el-input - v-model="formData.approvedWorkingHour" - disabled - size="small" - ></el-input> + <el-input v-model="formData.approvedWorkingHour" disabled size="small"></el-input> </el-form-item> <el-form-item label="杈呭姪宸ユ椂:"> - <el-input - v-model="formData.nonproductiveTime" - disabled - size="small" - ></el-input> + <el-input v-model="formData.nonproductiveTime" disabled size="small"></el-input> </el-form-item> <el-form-item label="杈呭姪椤圭洰:"> - <el-input - v-model="formData.auxiliaryProject" - disabled - size="small" - ></el-input> + <el-input v-model="formData.auxiliaryProject" disabled size="small"></el-input> </el-form-item> </el-form> </el-col> </el-row> <el-form :model="formData" label-width="90px"> <el-form-item label="杈呭姪璇存槑:"> - <el-input - v-model="formData.remarks" - :rows="3" - size="small" - type="textarea" - ></el-input> + <el-input v-model="formData.remarks" :rows="3" size="small" type="textarea"></el-input> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> <el-row> <el-button @click="handleClose">鍙� 娑�</el-button> - <el-button :loading="addLoad" type="primary" @click="submitAdd" - >纭� 瀹�</el-button - > + <el-button :loading="addLoad" type="primary" @click="submitAdd">纭� 瀹�</el-button> </el-row> </span> </el-dialog> @@ -315,134 +155,63 @@ <el-col :span="12"> <el-form :model="formData0" label-width="90px"> <el-form-item label="骞翠唤:"> - <el-input - v-model="formData0.year" - :disabled="title == '鎵瑰噯'" - size="small" - ></el-input> + <el-input v-model="formData0.year" :disabled="title == '鎵瑰噯'" size="small"></el-input> </el-form-item> <el-form-item label="鍛ㄦ:"> - <el-input - v-model="formData0.week" - :disabled="title == '鎵瑰噯'" - size="small" - ></el-input> + <el-input v-model="formData0.week" :disabled="title == '鎵瑰噯'" size="small"></el-input> </el-form-item> <el-form-item label="鏄熸湡:"> - <el-select - v-model="formData0.weekDay" - :disabled="title == '鎵瑰噯'" - placeholder="璇烽�夋嫨" - size="small" - > - <el-option - v-for="item in weekList" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-select v-model="formData0.weekDay" :disabled="title == '鎵瑰噯'" placeholder="璇烽�夋嫨" size="small"> + <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="濮撳悕:"> - <el-input - v-model="formData0.name" - disabled - size="small" - ></el-input> + <el-input v-model="formData0.name" disabled size="small"></el-input> </el-form-item> <el-form-item label="鐝:"> - <el-select - v-model="formData0.shift" - :disabled="title == '鎵瑰噯'" - placeholder="璇烽�夋嫨" - size="small" - > - <el-option - v-for="item in classType" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-select v-model="formData0.shift" :disabled="title == '鎵瑰噯'" placeholder="璇烽�夋嫨" size="small"> + <el-option v-for="item in classType" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="澶嶆牳璇存槑:"> - <el-input - v-model="formData0.reviewerRemark" - :rows="3" - size="small" - type="textarea" - ></el-input> + <el-input v-model="formData0.reviewerRemark" :rows="3" size="small" type="textarea"></el-input> </el-form-item> </el-form> </el-col> <el-col :span="12"> <el-form :model="formData0" label-width="90px"> <el-form-item label="缂栧彿:" required> - <el-input - v-model="formData0.number" - :disabled="title == '鎵瑰噯'" - size="small" - ></el-input> + <el-input v-model="formData0.number" :disabled="title == '鎵瑰噯'" size="small"></el-input> </el-form-item> <el-form-item label="鏁伴噺:" required> - <el-input - v-model="formData0.amount" - :disabled="title == '鎵瑰噯'" - size="small" - ></el-input> + <el-input v-model="formData0.amount" :disabled="title == '鎵瑰噯'" size="small"></el-input> </el-form-item> <el-form-item label="澶嶆牳鏁伴噺:" required> - <el-input - v-model="formData0.reviewerNumber" - size="small" - ></el-input> + <el-input v-model="formData0.reviewerNumber" size="small"></el-input> </el-form-item> <el-form-item label="鏍稿噯宸ユ椂:"> - <el-input - v-model="formData0.approvedWorkingHour" - disabled - size="small" - ></el-input> + <el-input v-model="formData0.approvedWorkingHour" disabled size="small"></el-input> </el-form-item> <el-form-item label="澶嶆牳宸ユ椂:"> - <el-input - v-model="formData0.reviewerNonproductiveTime" - disabled - size="small" - ></el-input> + <el-input v-model="formData0.reviewerNonproductiveTime" disabled size="small"></el-input> </el-form-item> <el-form-item label="杈呭姪椤圭洰:"> - <el-input - v-model="formData0.auxiliaryProject" - disabled - size="small" - ></el-input> + <el-input v-model="formData0.auxiliaryProject" disabled size="small"></el-input> </el-form-item> </el-form> </el-col> </el-row> <span slot="footer" class="dialog-footer"> <el-row> - <el-button :loading="checkLoadN" @click="submitCheck(0)" - >涓嶆壒鍑�</el-button - > - <el-button - :loading="checkLoadY" - type="primary" - @click="submitCheck(1)" - >鎵� 鍑�</el-button - > + <el-button :loading="checkLoadN" @click="submitCheck(0)">涓嶆壒鍑�</el-button> + <el-button :loading="checkLoadY" type="primary" @click="submitCheck(1)">鎵� 鍑�</el-button> </el-row> </span> </el-dialog> - <el-dialog - :before-close="closeBatchCheckDialog" - :title="batchCheckTitle" - :visible.sync="batchCheckDialog" - width="30%" - > + <el-dialog :before-close="closeBatchCheckDialog" :title="batchCheckTitle" :visible.sync="batchCheckDialog" + width="30%"> <span>{{ batchCheckDialogMessage }}</span> <span slot="footer" class="dialog-footer"> <el-button @click="batchCheck(0)">涓嶆壒鍑�</el-button> @@ -453,7 +222,6 @@ </template> <script> -import ValueTable from "@/components/Table/value-table.vue"; import { getYearAndMonthAndDays } from "@/utils/date"; import { selectAuxiliaryWorkingHoursDay, @@ -471,7 +239,6 @@ import limsTable from "@/components/Table/lims-table.vue"; export default { components: { - ValueTable, limsTable, }, dicts: ["sys_class_type"], @@ -597,7 +364,6 @@ dataType: "action", fixed: "right", label: "鎿嶄綔", - width: "160px", operation: [ { name: "缂栬緫", @@ -741,10 +507,17 @@ this.getCurrentWeekNumber(); this.collectWorkingHours(); this.selectshiftByUser(); - this.getList(); - this.getList0(); + this.searchList() }, methods: { + searchList() { + if (this.currentTable == 'ValueTable0') { + this.getList(); + } else { + this.getList0(); + } + }, + // 鏌ヨ杈呭姪宸ユ椂鍒楄〃 getList(entity) { this.tableLoading = true; let param = {}; @@ -752,7 +525,7 @@ param = { ...entity, ...this.page }; } else { param = { ...this.entity, ...this.page }; - param.dateTime = JSON.stringify(param.dateTime); + param.dateTime = param.dateTime?.length > 0 ? JSON.stringify(param.dateTime) : null; } delete param.total; selectAuxiliaryWorkingHoursDay({ ...param }) @@ -767,6 +540,7 @@ this.tableLoading = false; }); }, + // 鏌ヨ浜ч噺宸ユ椂鍒楄〃 getList0(entity) { this.tableLoading = true; let param = {}; @@ -774,9 +548,10 @@ param = { ...entity, ...this.page0 }; } else { param = { ...this.entity, ...this.page0 }; - param.dateTime = JSON.stringify(param.dateTime); + param.dateTime = param.dateTime?.length > 0 ? JSON.stringify(param.dateTime) : null } delete param.total; + delete param.state; selectAuxiliaryOutputWorkingHours({ ...param }) .then((res) => { this.tableLoading = false; @@ -871,12 +646,11 @@ }) .then(() => { deleteAuxiliaryWorkingHoursDay({ id: row.id }).then((res) => { - if (res.code == 201) return; this.$message.success("鍒犻櫎鎴愬姛"); this.refreshTable("page"); }); }) - .catch(() => {}); + .catch(() => { }); }, handleClose() { this.addVisible = false; @@ -894,7 +668,6 @@ if (!this.formData.id) { insertAuxiliaryWorkingHoursDay(this.formData).then((res) => { this.addLoad = false; - if (res.code == 201) return; this.$message.success("宸叉彁浜�"); this.formData.number = ""; this.formData.amount = ""; @@ -909,7 +682,6 @@ } else { updateAuxiliaryWorkingHoursDay(this.formData).then((res) => { this.addLoad = false; - if (res.code == 201) return; this.$message.success("鎿嶄綔鎴愬姛"); this.formData.number = ""; this.formData.amount = ""; @@ -962,9 +734,6 @@ }); approve({ auxiliaryWorkingHoursDays: auxiliaryWorkingHoursDays }).then( (res) => { - if (res.code === 201) { - return; - } this.submitBatchCheckDialog(); this.$message.success("鎿嶄綔鎴愬姛"); } @@ -1001,7 +770,6 @@ } else { this.checkLoadY = false; } - if (res.code == 201) return; this.$message.success("鎿嶄綔鎴愬姛"); this.checkVisible = false; this.refreshTable("page"); @@ -1057,6 +825,7 @@ } entity.weekDay = this.entity.weekDay; entity.name = this.entity.name; + entity.state = this.entity.state; collectWorkingHours(entity).then((res) => { this.totalInfo = res.data; }); @@ -1097,7 +866,6 @@ exportAssistantHours({ entity: entity }) .then((res) => { this.outLoading = false; - this.$message.success("瀵煎嚭鎴愬姛"); const blob = new Blob([res]); this.$download.saveAs(blob, "杈呭姪宸ユ椂淇℃伅瀵煎嚭.xlsx"); }) @@ -1116,7 +884,6 @@ exportOutputHours({ entity: entity }) .then((res) => { this.outLoading = false; - this.$message.success("瀵煎嚭鎴愬姛"); const blob = new Blob([res]); this.$download.saveAs(blob, "浜ч噺宸ユ椂淇℃伅瀵煎嚭.xlsx"); }) @@ -1140,6 +907,7 @@ padding-top: 0; /* scrollbar-width: none; */ } + /* .work-time-management::-webkit-scrollbar { display: none; } */ -- Gitblit v1.9.3