From 0f18c4e3a4943dd27e2eeb381e3c00e46218077b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 19 二月 2025 17:54:47 +0800
Subject: [PATCH] 铜材料下单-联调
---
src/views/performance/manHour/workTimeConfig.vue | 256 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 206 insertions(+), 50 deletions(-)
diff --git a/src/views/performance/manHour/workTimeConfig.vue b/src/views/performance/manHour/workTimeConfig.vue
index 590c182..71eac7d 100644
--- a/src/views/performance/manHour/workTimeConfig.vue
+++ b/src/views/performance/manHour/workTimeConfig.vue
@@ -53,7 +53,8 @@
size="small"
type="primary"
style="position: absolute; right: 50px"
- @click="openAdd"
+ @click="openAdd('鏂板')"
+ v-if="checkPermi(['performance:manHour:workTimeConfig:add'])"
>鏂� 澧�</el-button
>
</div>
@@ -63,38 +64,143 @@
:column="column"
:page="page"
:tableLoading="tableLoading"
- :height="'calc(100vh - 150px)'"
+ :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 +209,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 +229,9 @@
this.handleDelete(row);
},
showHide: (row) => {
- return this.checkPermi(["standard:model:del"]);
+ return this.checkPermi([
+ "performance:manHour:workTimeConfig:del",
+ ]);
},
},
],
@@ -135,16 +244,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 +285,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 +299,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) => {
@@ -219,6 +325,59 @@
this.getDicts("sys_unit").then((response) => {
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(() => {});
},
},
};
@@ -251,10 +410,7 @@
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