From 037a7112a2bc9e38bb2f398ff5ca740ac01a8fb2 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期四, 20 二月 2025 10:21:05 +0800 Subject: [PATCH] 检验任务搬迁30% --- src/views/performance/manHour/workTimeConfig.vue | 249 +++++++++++++++++++++++++++++++------------------ 1 files changed, 156 insertions(+), 93 deletions(-) diff --git a/src/views/performance/manHour/workTimeConfig.vue b/src/views/performance/manHour/workTimeConfig.vue index 590c182..5364c89 100644 --- a/src/views/performance/manHour/workTimeConfig.vue +++ b/src/views/performance/manHour/workTimeConfig.vue @@ -4,97 +4,108 @@ <div class="search_thing"> <div class="search_label">缂栧彿锛�</div> <div class="search_input"> - <el-input - size="small" - placeholder="璇疯緭鍏�" - clearable - v-model="queryParams.number" - @keyup.enter.native="refreshTable()" - ></el-input> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.number" + @keyup.enter.native="refreshTable()"></el-input> </div> </div> <div class="search_thing"> <div class="search_label">瀹為獙瀹わ細</div> - <el-select - v-model="queryParams.laboratory" - placeholder="鍏ㄩ儴" - size="small" - @change="refreshTable()" - clearable - > - <el-option - v-for="item in laboratoryList" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-select v-model="queryParams.laboratory" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()" clearable> + <el-option v-for="item in laboratoryList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </div> <div class="search_thing"> <div class="search_label">閮ㄩ棬锛�</div> <div class="search_input"> - <el-input - size="small" - placeholder="璇疯緭鍏�" - clearable - v-model="queryParams.department" - @keyup.enter.native="refreshTable()" - ></el-input> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.department" + @keyup.enter.native="refreshTable()"></el-input> </div> </div> <div class="search_thing" style="padding-left: 30px"> <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> - <el-button - size="small" - type="primary" - style="position: absolute; right: 50px" - @click="openAdd" - >鏂� 澧�</el-button - > + <el-button size="small" type="primary" style="position: absolute; right: 50px" @click="openAdd('鏂板')" + v-if="checkPermi(['performance:manHour:workTimeConfig:add'])">鏂� 澧�</el-button> </div> <div class="table"> - <lims-table - :tableData="tableData" - :column="column" - :page="page" - :tableLoading="tableLoading" - :height="'calc(100vh - 150px)'" - @pagination="pagination" - ></lims-table> + <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" + :height="'calc(100vh - 290px)'" @pagination="pagination"></lims-table> </div> + <!-- 鏂板/缂栬緫 --> + <el-dialog :title="title" :visible.sync="timeDia" width="500px"> + <el-form :model="timeForm" ref="timeForm" :rules="timeRules" label-position="right" label-width="120px"> + <el-form-item label="缂栧彿" prop="number"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="timeForm.number"></el-input> + </el-form-item> + <el-form-item label="杈呭姪椤圭洰鍚嶇О" prop="auxiliaryProject"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="timeForm.auxiliaryProject"> + </el-input> + </el-form-item> + <el-form-item label="閮ㄩ棬" prop="department"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="timeForm.department"> + </el-input> + </el-form-item> + <el-form-item label="瀹為獙瀹�" prop="laboratory"> + <el-select v-model="timeForm.laboratory" size="small" clearable placeholder="璇烽�夋嫨" style="width: 100%"> + <el-option v-for="item in laboratoryList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鍗曚綅" prop="unit"> + <el-select v-model="timeForm.unit" size="small" clearable placeholder="璇烽�夋嫨" style="width: 100%"> + <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鏍稿噯宸ユ椂" prop="approvedWorkingHour"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="timeForm.approvedWorkingHour"> + </el-input> + </el-form-item> + <el-form-item label="澶囨敞" prop="remarks"> + <el-input size="small" placeholder="璇疯緭鍏�" type="textarea" :rows="2" clearable v-model="timeForm.remarks"> + </el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="timeDia = false">鍙� 娑�</el-button> + <el-button :loading="uploading" type="primary" @click="submitProduct('timeForm')">纭� 璁�</el-button> + </span> + </el-dialog> </div> </template> <script> -import ValueTable from "@/components/Table/value-table.vue"; import limsTable from "@/components/Table/lims-table.vue"; -import { checkPermi } from "@/utils/permission"; // 鏉冮檺鍒ゆ柇鍑芥暟 import { selectAuxiliaryWorkingHours, - insertAuxiliaryWorkingHoursDay, + insertAuxiliaryWorkingHours, obtainItemParameterList, + upAuxiliaryWorkingHours, + deleteAuxiliaryWorkingHours, } from "@/api/performance/manHour"; export default { components: { - ValueTable, limsTable, }, + dicts: ["sys_unit"], data() { return { laboratoryList: [], - partList: [], - addPower: true, queryParams: {}, tableData: [], column: [ { label: "缂栧彿", prop: "number" }, { label: "杈呭姪椤圭洰鍚嶇О", prop: "auxiliaryProject", width: "120px" }, - { label: "瀹為獙瀹�", prop: "laboratory" }, + { + label: "瀹為獙瀹�", + prop: "laboratory", + dataType: "tag", + formatData: (params) => { + return this.laboratoryList.find((m) => m.value == params).label; + }, + }, { label: "鍗曚綅", prop: "unit" }, { label: "鏍稿噯宸ユ椂", prop: "approvedWorkingHour" }, { label: "閮ㄩ棬", prop: "department" }, @@ -103,16 +114,17 @@ dataType: "action", fixed: "right", label: "鎿嶄綔", - width: "160px", operation: [ { name: "缂栬緫", type: "text", clickFun: (row) => { - this.handleEdit(row); + this.openAdd("缂栬緫", row); }, showHide: (row) => { - return this.checkPermi(["standard:model:edit"]); + return this.checkPermi([ + "performance:manHour:workTimeConfig:edit", + ]); }, }, { @@ -122,7 +134,9 @@ this.handleDelete(row); }, showHide: (row) => { - return this.checkPermi(["standard:model:del"]); + return this.checkPermi([ + "performance:manHour:workTimeConfig:del", + ]); }, }, ], @@ -135,16 +149,31 @@ }, tableLoading: false, unitList: [], + title: "鏂板", + timeDia: false, + timeForm: {}, + timeRules: { + number: [{ required: true, message: "璇疯緭鍏ョ紪鍙�", trigger: "blur" }], + auxiliaryProject: [ + { required: true, message: "璇疯緭鍏ヨ緟鍔╅」鐩悕绉�", trigger: "blur" }, + ], + laboratory: [ + { required: true, message: "璇烽�夋嫨瀹為獙瀹�", trigger: "change" }, + ], + unit: [{ required: true, message: "璇烽�夋嫨鍗曚綅", trigger: "change" }], + approvedWorkingHour: [ + { required: true, message: "璇疯緭鍏ユ牳鍑嗗伐鏃�", trigger: "blur" }, + ], + }, + uploading: false, }; }, mounted() { - this.entityCopy = this.HaveJson(this.componentData.entity); - this.getPower(); this.obtainItemParameterList(); this.selectEnumByCategoryForUnit(); + this.getList(); }, methods: { - checkPermi, getList() { this.tableLoading = true; let param = { ...this.queryParams, ...this.page }; @@ -161,8 +190,9 @@ this.tableLoading = false; }); }, - pagination(current, size) { - this.page.current = current; + pagination({ page, limit }) { + this.page.current = page; + this.page.size = limit; this.getList(); }, refresh() { @@ -174,34 +204,15 @@ this.page.current = 1; this.getList(); }, - getPower(radio) { - let power = JSON.parse(sessionStorage.getItem("power")); - let up = false; - let del = false; - let add = false; - for (var i = 0; i < power.length; i++) { - if (power[i].menuMethod == "upDeviceParameter") { - up = true; - } - if (power[i].menuMethod == "delDeviceParameter") { - del = true; - } - if (power[i].menuMethod == "addDeviceParameter") { - add = true; - } + openAdd(title, row) { + this.title = title; + if (row) { + this.timeForm = row; + this.timeForm.laboratory = Number(this.timeForm.laboratory); + } else { + this.timeForm = {}; } - if (!up) { - this.componentData.do.splice(1, 1); - } - if (!del) { - this.componentData.do.splice(0, 1); - } - this.addPower = add; - }, - openAdd() { - // this.$refs.ValueTable0.openAddDia( - // this.$api.auxiliaryWorkingHours.insertAuxiliaryWorkingHours - // ); + this.timeDia = true; }, obtainItemParameterList() { obtainItemParameterList().then((res) => { @@ -220,6 +231,59 @@ this.unitList = response.data; }); }, + submitProduct(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + this.uploading = true; + if (this.title == "鏂板") { + insertAuxiliaryWorkingHours(this.timeForm) + .then((res) => { + this.uploading = false; + if (res.code != 200) { + return; + } + this.$message.success("鎻愪氦鎴愬姛"); + this.refresh(); + this.timeDia = false; + }) + .catch((err) => { + this.uploading = false; + }); + } else { + upAuxiliaryWorkingHours(this.timeForm) + .then((res) => { + this.uploading = false; + if (res.code != 200) { + return; + } + this.$message.success("鎻愪氦鎴愬姛"); + this.refresh(); + this.timeDia = false; + }) + .catch((err) => { + this.uploading = false; + }); + } + } else { + return false; + } + }); + }, + handleDelete(row) { + this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + deleteAuxiliaryWorkingHours({ id: row.id }).then((res) => { + if (res.code == 201) return; + this.$message.success("鍒犻櫎鎴愬姛"); + this.refresh(); + }); + }) + .catch(() => { }); + }, }, }; </script> @@ -228,6 +292,7 @@ .work-time-config { height: 100%; } + .search { background-color: #fff; height: 80px; @@ -250,11 +315,9 @@ .search_input { width: calc(100% - 70px); } + .table { - margin-top: 10px; - background-color: #fff; - width: calc(100% - 40px); - height: calc(100% - 60px - 80px - 10px - 24px); - padding: 20px; + padding: 10px; + padding-top: 0; } </style> -- Gitblit v1.9.3