From 4b9dfff19ff70db47f99cb93070d0650267c6896 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期四, 06 三月 2025 16:22:19 +0800 Subject: [PATCH] 检验任务-添加查看工时功能 --- src/api/business/inspectionTask.js | 16 ++++ src/views/business/inspectionTask/components/viewManHourDia.vue | 179 ++++++++++++++++++++++++++++++++++++++++++++ src/views/business/inspectionTask/index.vue | 21 ++++ 3 files changed, 213 insertions(+), 3 deletions(-) diff --git a/src/api/business/inspectionTask.js b/src/api/business/inspectionTask.js index 4187ad6..d4b8158 100644 --- a/src/api/business/inspectionTask.js +++ b/src/api/business/inspectionTask.js @@ -287,3 +287,19 @@ params: query, }); } +// 鏌ヨ宸ユ椂 +export function getWorkingHoursByOrderId(query) { + return request({ + url: "/insOrderPlan/getWorkingHoursByOrderId", + method: "get", + params: query, + }); +} +// 淇敼宸ユ椂璇︽儏 +export function updateWorkingHours(query) { + return request({ + url: "/insOrderPlan/updateWorkingHours", + method: "post", + data: query, + }); +} diff --git a/src/views/business/inspectionTask/components/viewManHourDia.vue b/src/views/business/inspectionTask/components/viewManHourDia.vue new file mode 100644 index 0000000..c5dc4ca --- /dev/null +++ b/src/views/business/inspectionTask/components/viewManHourDia.vue @@ -0,0 +1,179 @@ +<template> + <div> + <el-dialog + :visible.sync="editInspectionDia" + title="鏌ョ湅宸ユ椂" + width="80%" + @close="editInspectionDia = false" + > + <lims-table :tableData="tableData0" :column="column0" + :page="page0" :tableLoading="tableLoading" + height="560" @pagination="pagination0"></lims-table> + </el-dialog> + <el-dialog :visible.sync="editAskDia" title="淇敼" width="50%"> + <el-form ref="form" :model="editForm" label-width="100px"> + <el-form-item label="妫�娴嬩汉" prop="name"> + <el-select v-model="editForm.name" clearable size="small"> + <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="浜ч噺宸ユ椂" prop="outputWorkTime"> + <el-input v-model="editForm.outputWorkTime" clearable size="small"></el-input> + </el-form-item> + <el-form-item label="鏃ユ湡" prop="dateTime"> + <el-date-picker + v-model="editForm.dateTime" + placeholder="閫夋嫨鏃ユ湡" + size="small" + style="width: 100%;" + type="date" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd"> + </el-date-picker> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="editAskDia = false">鍙� 娑�</el-button> + <el-button + :loading="handleEditLoading" + type="primary" + @click="handleEdit" + >纭� 瀹�</el-button + > + </span> + </el-dialog> + </div> +</template> + +<script> +import limsTable from "@/components/Table/lims-table.vue"; +import { + getWorkingHoursByOrderId, updateWorkingHours, +} from "@/api/business/inspectionTask.js"; +import {selectUserCondition} from "@/api/system/user"; +export default { + name: "EditInspectionItem", + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: { limsTable }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + editInspectionDia: false, + entity: { + orderId: 0, + }, + tableData0: [], + tableLoading: false, + column0: [ + { label: "妫�娴嬩汉", prop: "name" }, + { label: "妫�娴嬮」鍒嗙被", prop: "inspectionItemClass" }, + { label: "妫�娴嬮」", prop: "inspectionItem", width: 110 }, + { label: "妫�娴嬪瓙椤�", prop: "inspectionItemSubclass", width: 110 }, + { label: "鏍峰搧缂栧彿", prop: "sample", width: 160 }, + { label: "濮旀墭鍗曞彿", prop: "orderNo", width: 160 }, + { label: "鐢电紗鏍囪瘑", prop: "cableTag" }, + { label: "浜ч噺宸ユ椂", prop: "outputWorkTime" }, + { label: "宸ユ椂鍒嗙粍", prop: "manHourGroup" }, + { label: "鍗曚环", prop: "price" }, + { label: "鏃ユ湡", prop: "dateTime" }, + { label: "鍛ㄦ", prop: "week" }, + { label: "鏄熸湡", prop: "weekDay" }, + { + dataType: "action", + width: "80px", + label: "鎿嶄綔", + fixed: "right", + operation: [ + { + name: "缂栬緫", + type: "text", + clickFun: (row) => { + this.editIns(row); + }, + }, + ], + }, + ], + page0: { + total: 0, + size: 10, + current: 1, + }, + editAskDia: false, + editForm: { + id: "", + name: "", + outputWorkTime: "", + inspectionValueType: "", + }, + handleEditLoading: false, + inspectionValueType: [], + responsibleOptions: [] + }; + }, + mounted() { + + }, + // 鏂规硶闆嗗悎 + methods: { + showDialog(id) { + this.editInspectionDia = true; + this.entity.orderId = id; + this.getList0(); + }, + getList0() { + this.tableLoading = true; + getWorkingHoursByOrderId({ ...this.entity, ...this.page0 }) + .then((res) => { + this.tableLoading = false; + if (res.code === 200) { + this.tableData0 = res.data.records; + this.page0.total = res.data.total; + } + }) + .catch((err) => { + this.tableLoading = false; + }); + }, + // 淇敼寮规 + editIns(row) { + this.editAskDia = true; + this.editForm = { ...row }; + this.getUserList() + }, + // 鎻愪氦淇敼 + handleEdit() { + this.handleEditLoading = true; + updateWorkingHours({...this.editForm}) + .then((res) => { + this.handleEditLoading = false; + this.$message.success("淇敼鎴愬姛"); + this.editAskDia = false; + this.getList0(); + }) + .catch(() => { + this.handleEditLoading = false; + }); + }, + pagination0({ page, limit }) { + this.page0.current = page; + this.page0.size = limit; + this.getList0(); + }, + // 鑾峰彇璐熻矗浜轰俊鎭帴鍙� + getUserList() { + selectUserCondition({ type: 1 }).then((res) => { + this.responsibleOptions = res.data; + }) + } + }, +}; +</script> + +<style scoped> +.pagination { + display: flex; + justify-content: space-between; +} +</style> diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue index 01fc535..b514734 100644 --- a/src/views/business/inspectionTask/index.vue +++ b/src/views/business/inspectionTask/index.vue @@ -232,7 +232,10 @@ ref="showInfoDialog" :showInfoDialog="showInfoDialog" ></ShowInfo> --> + <!--淇敼妫�楠屽�煎脊妗�--> <edit-inspection-item ref="editInspectionItem"></edit-inspection-item> + <!--鏌ョ湅宸ユ椂寮规--> + <viewManHourDia ref="viewManHourDia"></viewManHourDia> </div> </template> @@ -240,6 +243,7 @@ import { getYearAndMonthAndDays } from "@/utils/date"; import EditInspectionItem from "./components/EditInspectionItem.vue"; import limsTable from "@/components/Table/lims-table.vue"; +import viewManHourDia from "./components/viewManHourDia.vue" import { claimInsOrderPlan, upPlanUser2, @@ -258,6 +262,7 @@ components: { EditInspectionItem, limsTable, + viewManHourDia }, dicts: ["urgency_level", "inspection_task_state"], computed: { @@ -429,6 +434,16 @@ }, disabled: (row) => { return (row.userName == null || row.insState == 3 || row.insState == 5) && this.checkPermi(['update:product:onPlan']) + }, + }, + { + name: "鏌ョ湅宸ユ椂", + type: "text", + clickFun: (row) => { + this.viewManHour(row); + }, + showHide: (row) => { + return this.checkPermi(['get:working:hours:byOrder']) }, }, { @@ -629,9 +644,9 @@ editInspection(row) { this.$refs.editInspectionItem.showDialog(row.id); }, - // 鍒锋柊椤甸潰 - refreshView() { - this.getList(); + // 鏌ョ湅宸ユ椂 + viewManHour(row) { + this.$refs.viewManHourDia.showDialog(row.id); }, // 鏁版嵁鏌ョ湅 handleDataLook(row) { -- Gitblit v1.9.3