From dada35abe48b4c59210fda4a8e7f1373d302dd2a Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 05 一月 2026 16:14:54 +0800
Subject: [PATCH] 生产报工列表

---
 src/views/productionManagement/productionReporting/index.vue |  200 ++++++++++++++++++++-----------------------------
 src/api/productionManagement/production_product_main.js      |   11 ++
 2 files changed, 92 insertions(+), 119 deletions(-)

diff --git a/src/api/productionManagement/production_product_main.js b/src/api/productionManagement/production_product_main.js
new file mode 100644
index 0000000..0493f8b
--- /dev/null
+++ b/src/api/productionManagement/production_product_main.js
@@ -0,0 +1,11 @@
+// 鐢熶骇鎶ュ伐椤甸潰鎺ュ彛
+import request from "@/utils/request";
+
+// 鍒嗛〉鏌ヨ
+export function productionProductMainListPage(query) {
+    return request({
+        url: "/productionProductMain/listPage",
+        method: "get",
+        params: query,
+    });
+}
diff --git a/src/views/productionManagement/productionReporting/index.vue b/src/views/productionManagement/productionReporting/index.vue
index c7ed057..c254d23 100644
--- a/src/views/productionManagement/productionReporting/index.vue
+++ b/src/views/productionManagement/productionReporting/index.vue
@@ -2,30 +2,22 @@
 	<div class="app-container">
 		<div class="search_form">
 			<el-form :model="searchForm" :inline="true">
-				<el-form-item label="瀹㈡埛鍚嶇О:">
-					<el-input v-model="searchForm.customerName" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
+				<el-form-item label="鎶ュ伐浜哄憳鍚嶇О:">
+					<el-input v-model="searchForm.nickName" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
 										style="width: 200px;"
 										@change="handleQuery" />
 				</el-form-item>
-				<el-form-item label="鍚堝悓鍙�:">
-					<el-input v-model="searchForm.salesContractNo" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
+				<el-form-item label="宸ュ崟鍙�:">
+					<el-input v-model="searchForm.workOrderNo" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
 										style="width: 200px;"
 										@change="handleQuery" />
 				</el-form-item>
-<!--				<el-form-item label="椤圭洰鍚嶇О:">-->
-<!--					<el-input v-model="searchForm.projectName" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"-->
-<!--										style="width: 200px;"-->
-<!--										@change="handleQuery" />-->
-<!--				</el-form-item>-->
-				<el-form-item label="鎺掍骇鏃ユ湡:">
-					<el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
-													placeholder="璇烽�夋嫨" clearable @change="changeDaterange" />
-				</el-form-item>
-				<el-form-item label="鐘舵��:">
-					<el-select v-model="searchForm.status" placeholder="璇烽�夋嫨鐘舵��" style="width: 140px" clearable>
-						<el-option label="寰呯敓浜�" :value="1"></el-option>
-						<el-option label="宸叉姤宸�" :value="3"></el-option>
-						<el-option label="鐢熶骇涓�" :value="2"></el-option>
+				<el-form-item label="宸ュ崟鐘舵��:">
+					<el-select v-model="searchForm.workOrderStatus" placeholder="璇烽�夋嫨宸ュ崟鐘舵��" style="width: 140px" clearable>
+						<el-option label="寰呯‘璁�" :value="1"></el-option>
+            <el-option label="寰呯敓浜�" :value="2"></el-option>
+            <el-option label="鐢熶骇涓�" :value="3"></el-option>
+            <el-option label="宸茬敓浜�" :value="4"></el-option>
 					</el-select>
 				</el-form-item>
 				<el-form-item>
@@ -146,20 +138,18 @@
 import dayjs from "dayjs";
 import {
 	productionReportUpdate,
-	workListPage,
 	workListPageById
 } from "@/api/productionManagement/productionReporting.js";
+import {
+  productionProductMainListPage,
+} from "@/api/productionManagement/production_product_main.js";
 import {userListNoPageByTenantId} from "@/api/system/user.js";
 
 const data = reactive({
 	searchForm: {
-		customerName: "",
-		salesContractNo: "",
-		projectName: "",
-		status: "",
-		entryDate: [dayjs().format("YYYY-MM-DD"), dayjs().format("YYYY-MM-DD")], // 褰曞叆鏃ユ湡锛岄粯璁ゅ綋澶�
-		entryDateStart: dayjs().format("YYYY-MM-DD"),
-		entryDateEnd: dayjs().format("YYYY-MM-DD"),
+    nickName: "",
+    workOrderNo: "",
+    workOrderStatus: "",
 	},
 });
 const { searchForm } = toRefs(data);
@@ -167,13 +157,23 @@
 const expandData = ref([]);
 const userList = ref([])
 const tableColumn = ref([
+  {
+    label: "鎶ュ伐鍗曞彿",
+    prop: "productNo",
+    width: 120,
+  },
+  {
+    label: "鎶ュ伐浜哄憳",
+    prop: "nickName",
+    width: 120,
+  },
+  {
+    label: "宸ュ崟缂栧彿",
+    prop: "workOrderNo",
+    width: 120,
+  },
 	{
-		type: "expand",
-		dataType: "slot",
-		slot: "expand",
-	},
-	{
-		label: "鐘舵��",
+		label: "鎶ュ伐鐘舵��",
 		prop: "status",
 		dataType: "tag",
 		formatData: (params) => {
@@ -195,92 +195,54 @@
 			}
 		},
 	},
-	{
-		label: "鎺掍骇鏃ユ湡",
-		prop: "schedulingDate",
-		width: 120,
-	},
-	{
-		label: "鎺掍骇浜�",
-		prop: "schedulingUserName",
-	},
-	{
-		label: "浜х嚎",
-		prop: "productionLine",
-	},
-	{
-		label: "鍚堝悓鍙�",
-		prop: "salesContractNo",
-		width: 200,
-	},
-	// {
-	// 	label: "瀹㈡埛鍚堝悓鍙�",
-	// 	prop: "customerContractNo",
-	// 	width: 200,
-	// },
-	{
-		label: "瀹㈡埛鍚嶇О",
-		prop: "customerName",
-		width: 200,
-	},
-	// {
-	// 	label: "椤圭洰鍚嶇О",
-	// 	prop: "projectName",
-	// 	width:300
-	// },
-	{
-		label: "浜у搧澶х被",
-		prop: "productCategory",
-		width: 150,
-	},
-	{
-		label: "瑙勬牸鍨嬪彿",
-		prop: "specificationModel",
-		width: 150,
-	},
-	{
-		label: "缁戝畾鏈哄櫒",
-		prop: "speculativeTradingName",
-		width: 220,
-	},
-	{
-		label: "鍗曚綅",
-		prop: "unit",
-	},
-	{
-		label: "宸ュ簭",
-		prop: "process",
-	},
-	// {
-	// 	label: "鍙e懗鍒嗙被",
-	// 	prop: "type",
-	// 	width: 150,
-	// },
-	{
-		label: "鎹熻��",
-		prop: "loss",
-		width: 150,
-	},
-	{
-		label: "鎺掍骇鏁伴噺",
-		prop: "schedulingNum",
-		width: 100,
-	},
-	{
-		label: "鐢熶骇鏁伴噺",
-		prop: "finishedNum",
-		width: 100,
-	},
-	{
-		label: "寰呯敓浜ф暟閲�",
-		prop: "pendingFinishNum",
-		width: 100,
-	},
-	{
-		label: "澶囨敞",
-		prop: "remark",
-		width: 200,
-	},
+  {
+    label: "宸ュ崟鐘舵��",
+    prop: "workOrderStatus",
+    dataType: "tag",
+    formatData: (params) => {
+      switch (params) {
+        case "1":
+          return "寰呯‘璁�";
+        case "2":
+          return "寰呯敓浜�";
+        case "3":
+          return "鐢熶骇涓�";
+        case "4":
+          return "宸茬敓浜�";
+        default:
+          return "";
+      }
+    },
+    formatType: (params) => {
+      switch (params) {
+        case "1":
+          return "primary";
+        case "2":
+          return "info";
+        case "3":
+          return "warning";
+        case "4":
+          return "success";
+        default:
+          return "";
+      }
+    },
+  },
+  {
+    dataType: "action",
+    label: "鎿嶄綔",
+    align: "center",
+    fixed: "right",
+    width: 200,
+    operation: [
+      {
+        name: "鏌ョ湅",
+        type: "text",
+        clickFun: (row) => {
+        }
+      },
+    ]
+  }
 ]);
 const tableData = ref([]);
 const selectedRows = ref([]);
@@ -320,7 +282,7 @@
 	const params = { ...searchForm.value, ...page };
 	params.entryDate = undefined
 	expandedRowKeys.value = []
-	workListPage(params).then(res => {
+	productionProductMainListPage(params).then(res => {
 		tableLoading.value = false;
 		tableData.value = res.data.records.map(item => ({
 			...item,

--
Gitblit v1.9.3