From 38f01dc619fb9b7326abc345a216793750758c9a Mon Sep 17 00:00:00 2001
From: lxp <1928192722@qq.com>
Date: 星期五, 14 三月 2025 20:09:45 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev
---
src/views/performance/manHour/work-time-config.vue | 469 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 469 insertions(+), 0 deletions(-)
diff --git a/src/views/performance/manHour/work-time-config.vue b/src/views/performance/manHour/work-time-config.vue
new file mode 100644
index 0000000..abe1b42
--- /dev/null
+++ b/src/views/performance/manHour/work-time-config.vue
@@ -0,0 +1,469 @@
+<template>
+ <div class="work-time-config bg-1">
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">缂栧彿锛�</div>
+ <div class="search_input">
+ <el-input
+ size="small"
+ placeholder="璇疯緭鍏�"
+ clearable
+ v-model="entity.number"
+ @keyup.enter.native="refreshTable()"
+ ></el-input>
+ </div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">瀹為獙瀹わ細</div>
+ <el-select
+ v-model="entity.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="entity.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
+ >
+ </div>
+ <el-button
+ size="small"
+ type="primary"
+ style="position: absolute; right: 50px"
+ @click="openAdd()"
+ >鏂� 澧�</el-button
+ >
+ </div>
+ <div class="table">
+ <!-- <ValueTable ref="ValueTable0"
+ :url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours" :upUrl="$api.auxiliaryWorkingHours.upAuxiliaryWorkingHours"
+ :delUrl="$api.auxiliaryWorkingHours.deleteAuxiliaryWorkingHours" :componentData="componentData" :key="upIndex" /> -->
+ <lims-table
+ :tableData="tableData"
+ :column="column"
+ :tableLoading="tableLoading"
+ :height="'calc(100vh - 270px)'"
+ :page="page"
+ @pagination="pagination"
+ ></lims-table>
+ </div>
+
+ <!-- 鏂板 缂栬緫-->
+ <el-dialog
+ :title="title"
+ :visible.sync="dialogVisible"
+ width="30%"
+ :before-close="handleClose"
+ >
+ <el-form
+ :model="formData"
+ label-position="right"
+ :rules="rules"
+ ref="form"
+ label-width="120px"
+ class="demo-form"
+ >
+ <el-form-item label="缂栧彿" prop="number">
+ <el-input
+ v-model="formData.number"
+ size="mini"
+ style="width: 100%"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="杈呭姪椤圭洰鍚嶇О" prop="auxiliaryProject">
+ <el-input
+ v-model="formData.auxiliaryProject"
+ size="mini"
+ style="width: 100%"
+ ></el-input>
+ </el-form-item>
+
+ <el-form-item label="瀹為獙瀹�" prop="laboratory">
+ <el-select
+ v-model="formData.laboratory"
+ clearable
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ 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="formData.unit"
+ clearable
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="item in utilList"
+ :key="item.dictValue"
+ :label="item.dictLabel"
+ :value="item.dictValue"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="鏍稿噯宸ユ椂" prop="approvedWorkingHour">
+ <el-input
+ v-model="formData.approvedWorkingHour"
+ size="mini"
+ style="width: 100%"
+ ></el-input>
+ </el-form-item>
+
+ <el-form-item label="澶囨敞">
+ <el-input
+ v-model="formData.remarks"
+ size="mini"
+ style="width: 100%"
+ ></el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="submitForm('form')"
+ >鎻愪氦</el-button
+ >
+ <el-button @click="handleClose">鍙栨秷</el-button>
+ </el-form-item>
+ </el-form>
+ </el-dialog>
+ </div>
+</template>
+
+ <script>
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+ selectAuxiliaryWorkingHours,
+ obtainItemParameterList,
+ deleteAuxiliaryWorkingHours,
+ upAuxiliaryWorkingHours,
+ insertAuxiliaryWorkingHours
+} from "../../../api/business/manHour";
+import { getYearAndMonthAndDays } from "../../../utils/date";
+
+import { getDicts } from "@/api/system/dict/data";
+import { number } from "echarts";
+export default {
+ components: {
+ limsTable,
+ },
+ data() {
+ return {
+ rules: {
+ 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" },
+ ],
+ },
+ dialogVisible: false,
+ formData: {
+ id: null,
+ number: null,
+ auxiliaryProject: null,
+ laboratory: '',
+ unit: '',
+ approvedWorkingHour: null,
+ remarks: null,
+ },
+ title: "",
+ utilList: [],
+ tableData: [],
+ column: [
+ {
+ label: "缂栧彿",
+ prop: "number",
+ },
+ {
+ label: "杈呭姪椤圭洰鍚嶇О",
+ prop: "auxiliaryProject",
+ },
+ {
+ dataType: "tag",
+ label: "瀹為獙瀹�",
+ prop: "laboratory",
+ formatData: (params) => {
+ let farmat = "";
+ let list = this.laboratoryList.filter(
+ (item) => item.value == Number(params)
+ );
+ if (list.length > 0) {
+ farmat = list[0].label;
+ }
+ return farmat;
+ },
+ formatType: () => {
+ return "success";
+ },
+ },
+ {
+ label: "鍗曚綅",
+ prop: "unit",
+ dataType: "tag",
+ formatData: (params) => {
+ let farmat = "";
+ let list = this.utilList.filter((item) => item.dictValue == params);
+ if (list.length > 0) {
+ farmat = list[0].dictLabel;
+ }
+ return farmat;
+ },
+ formatType: () => {
+ return "primary";
+ },
+ },
+ {
+ label: "鏍稿噯宸ユ椂",
+ prop: "approvedWorkingHour",
+ },
+ {
+ label: "閮ㄩ棬",
+ prop: "department",
+ },
+ {
+ label: "澶囨敞",
+ prop: "remarks",
+ },
+ {
+ dataType: "action",
+ fixed: "right",
+ label: "鎿嶄綔",
+ operation: [
+ {
+ name: "缂栬緫",
+ type: "text",
+ clickFun: (row) => {
+ this.openAdd(row);
+ },
+ },
+ {
+ name: "鍒犻櫎",
+ type: "text",
+ clickFun: (row) => {
+ this.del(row);
+ },
+ },
+ ],
+ },
+ ],
+ tableLoading: false,
+ page: {
+ current: 1,
+ size: 20,
+ total: 0,
+ },
+ entity: {
+ number: null,
+ department: null,
+ laboratory: null,
+ },
+ entityCopy: {},
+ upIndex: 0,
+ laboratoryList: [],
+ partList: [],
+ addPower: true,
+ };
+ },
+ created() {},
+ mounted() {
+ this.entityCopy = this.HaveJson(this.entity);
+ this.obtainItemParameterList();
+ this.selectEnumByCategoryForUnit();
+ this.getData();
+ },
+ methods: {
+ getData() {
+ this.tableLoading = true;
+ this.page.total = 0;
+ selectAuxiliaryWorkingHours({ ...this.page, ...this.entity }).then(
+ (res) => {
+ this.tableData = res.data.records;
+ this.page.total = res.data.total;
+ this.tableLoading = false;
+ }
+ );
+ },
+ submitForm(formName) {
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ if (this.formData.id) {
+ upAuxiliaryWorkingHours(this.formData).then((res) => {
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!",
+ });
+ this.refreshTable();
+ this.dialogVisible = false;
+ });
+ this.dialogVisible = false;
+ } else {
+ insertAuxiliaryWorkingHours(this.formData).then((res) => {
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!",
+ });
+ this.refreshTable();
+ this.dialogVisible = false;
+ });
+ }
+ } else {
+ return false;
+ }
+ });
+ },
+ resetForm(formName) {
+ this.$refs[formName].resetFields();
+ },
+ del(row) {
+ console.log(row);
+ this.$confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎, 鏄惁缁х画?", "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ }).then(() => {
+ deleteAuxiliaryWorkingHours({id:row.id}).then((res) => {
+ this.$message({
+ type: "success",
+ message: "鍒犻櫎鎴愬姛!",
+ });
+ this.refreshTable();
+ });
+ });
+ },
+ refresh() {
+ this.entity = this.HaveJson(this.entityCopy);
+ this.upIndex++;
+ },
+ refreshTable() {
+ this.getData();
+ },
+ pagination({ page, limit }) {
+ this.page.current = page;
+ this.page.size = limit;
+ this.refreshTable();
+ },
+ openAdd(row) {
+ console.log(row);
+ console.log(this.laboratoryList);
+ if (row) {
+ this.title = "缂栬緫";
+ this.formData.id = row.id;
+ this.formData.number = row.number;
+ this.formData.auxiliaryProject = row.auxiliaryProject;
+ this.formData.laboratory = row.laboratory;
+ this.formData.unit = row.unit;
+ this.formData.approvedWorkingHour = row.approvedWorkingHour;
+ this.formData.remarks = row.remarks;
+ } else {
+ this.title = "鏂板";
+ }
+ this.dialogVisible = true;
+ },
+ obtainItemParameterList() {
+ obtainItemParameterList().then((res) => {
+ let data = [];
+ res.data.forEach((a) => {
+ data.push({
+ label: a.laboratoryName,
+ value: a.id,
+ });
+ });
+ this.laboratoryList = data;
+ });
+ },
+ handleClose() {
+ this.formData = {
+ id: null,
+ number: null,
+ auxiliaryProject: null,
+ laboratory: '',
+ unit: '',
+ approvedWorkingHour: null,
+ remarks: null,
+ };
+ this.resetForm("form");
+ this.dialogVisible = false;
+ console.log(7898,this.formData);
+ },
+ selectEnumByCategoryForUnit() {
+ getDicts("sys_unit").then((res) => {
+ this.utilList = res.data;
+ });
+ },
+ },
+};
+</script>
+
+ <style scoped>
+.work-time-config {
+ height: 100%;
+}
+.search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+}
+
+.search_thing {
+ width: 250px;
+ display: flex;
+ align-items: center;
+}
+
+.search_label {
+ width: 70px;
+ font-size: 14px;
+ text-align: right;
+}
+
+.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;
+}
+</style>
+
\ No newline at end of file
--
Gitblit v1.9.3