From cec42fd188b00a2f8fe8f6902ccfc58381d2a481 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 04 十二月 2025 14:45:29 +0800
Subject: [PATCH] 1.润泰生物、安佑农牧-生产管控:生产派工需要新增派工产线及生产人

---
 src/views/productionManagement/operationScheduling/components/formDia.vue           |   35 +
 src/views/basicData/product/index.vue                                               |   44 +-
 src/views/productionManagement/productionCosting/index.vue                          |   12 
 src/views/inventoryManagement/issueManagement/index.vue                             |  104 ++--
 src/views/productionManagement/productionDispatching/components/formDia.vue         |   73 ++
 src/views/productionManagement/productionDispatching/index.vue                      |   62 +-
 src/views/salesManagement/salesLedger/index.vue                                     |   16 
 src/views/productionManagement/operationScheduling/index.vue                        |   20 
 src/views/productionManagement/LineManagement/index.vue                             |  412 +++++++++++++++++++
 src/views/productionManagement/productionDispatching/components/autoDispatchDia.vue |    2 
 src/views/productionManagement/productionReporting/index.vue                        |   20 
 src/views/inventoryManagement/receiptManagement/index.vue                           |  108 ++--
 src/api/lavorissce/issue.js                                                         |   45 ++
 src/views/inventoryManagement/stockManagement/index.vue                             |  110 ++--
 src/views/inventoryManagement/dispatchLog/index.vue                                 |  134 +++---
 src/views/productionManagement/productionReporting/components/formDia.vue           |    4 
 16 files changed, 873 insertions(+), 328 deletions(-)

diff --git a/src/api/lavorissce/issue.js b/src/api/lavorissce/issue.js
new file mode 100644
index 0000000..bb4d34d
--- /dev/null
+++ b/src/api/lavorissce/issue.js
@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+// 鑾峰彇浜х嚎鏍戝舰缁撴瀯
+export function getDeptPositionTree() {
+  return request({
+    url: '/productionLine/listTree',
+    method: 'get'
+  })
+}
+
+// 鏂板浜х嚎鎴栧伐搴�
+export function addDeptPosition(data) {
+  return request({
+    url: '/productionLine/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼浜х嚎鎴栧伐搴�
+export function updateDeptPosition(data) {
+  return request({
+    url: '/productionLine/update',
+    method: 'post',
+    data: data
+  })
+}
+
+// 鍒犻櫎浜х嚎鎴栧伐搴�
+export function deleteDeptPosition(id) {
+  return request({
+    url: '/productionLine/delete',
+    method: 'delete',
+    data: id
+  })
+}
+
+// 鏌ヨ宸ュ簭鍒楄〃锛堟牴鎹畃arentId锛�
+export function laborConfListPage(query) {
+    return request({
+        url: '/productionLine/pageList',
+        method: 'get',
+        params: query
+    })
+}
\ No newline at end of file
diff --git a/src/views/basicData/product/index.vue b/src/views/basicData/product/index.vue
index db5f096..a6e1e6a 100644
--- a/src/views/basicData/product/index.vue
+++ b/src/views/basicData/product/index.vue
@@ -165,24 +165,24 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="缁戝畾鏈哄櫒锛�" prop="speculativeTradingName">
-              <el-select
-                v-model="modelForm.speculativeTradingName"
-                placeholder="璇烽�夋嫨缁戝畾鏈哄櫒"
-                multiple
-                clearable
-                style="width: 100%"
-              >
-                <el-option label="鐐掓満1" value="鐐掓満1" />
-                <el-option label="鐐掓満2" value="鐐掓満2" />
-                <el-option label="鐐掓満3" value="鐐掓満3" />
-                <el-option label="鐐掓満4" value="鐐掓満4" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
+<!--        <el-row>-->
+<!--          <el-col :span="24">-->
+<!--            <el-form-item label="缁戝畾鏈哄櫒锛�" prop="speculativeTradingName">-->
+<!--              <el-select-->
+<!--                v-model="modelForm.speculativeTradingName"-->
+<!--                placeholder="璇烽�夋嫨缁戝畾鏈哄櫒"-->
+<!--                multiple-->
+<!--                clearable-->
+<!--                style="width: 100%"-->
+<!--              >-->
+<!--                <el-option label="鐐掓満1" value="鐐掓満1" />-->
+<!--                <el-option label="鐐掓満2" value="鐐掓満2" />-->
+<!--                <el-option label="鐐掓満3" value="鐐掓満3" />-->
+<!--                <el-option label="鐐掓満4" value="鐐掓満4" />-->
+<!--              </el-select>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -230,10 +230,10 @@
     label: "鍗曚綅",
     prop: "unit",
   },
-  {
-    label: "缁戝畾鏈哄櫒",
-    prop: "speculativeTradingName",
-  },
+  // {
+  //   label: "缁戝畾鏈哄櫒",
+  //   prop: "speculativeTradingName",
+  // },
   {
     dataType: "action",
     label: "鎿嶄綔",
diff --git a/src/views/inventoryManagement/dispatchLog/index.vue b/src/views/inventoryManagement/dispatchLog/index.vue
index 80e706b..d0ae409 100644
--- a/src/views/inventoryManagement/dispatchLog/index.vue
+++ b/src/views/inventoryManagement/dispatchLog/index.vue
@@ -1,7 +1,7 @@
 <template>
 	<div class="app-container">
 		<el-tabs v-model="activeTab" @tab-change="handleTabChange">
-			<el-tab-pane label="鐢熶骇鍑哄簱" name="production">
+			<el-tab-pane label="鎴愬搧鍑哄簱" name="production">
 				<div class="search_form">
 					<div>
 <!--						<span class="search_title">瀹㈡埛鍚嶇О锛�</span>-->
@@ -137,74 +137,74 @@
 				</div>
 			</el-tab-pane>
 
-			<el-tab-pane label="鑷畾涔夊嚭搴�" name="manual">
-				<div class="search_form">
-					<div>
-<!--						<span class="search_title">渚涘簲鍟嗗悕绉帮細</span>-->
-<!--						<el-input-->
-<!--							v-model="searchForm.supplierName"-->
-<!--							style="width: 240px"-->
-<!--							placeholder="璇疯緭鍏�"-->
-<!--							@change="handleQuery"-->
+<!--			<el-tab-pane label="鑷畾涔夊嚭搴�" name="manual">-->
+<!--				<div class="search_form">-->
+<!--					<div>-->
+<!--&lt;!&ndash;						<span class="search_title">渚涘簲鍟嗗悕绉帮細</span>&ndash;&gt;-->
+<!--&lt;!&ndash;						<el-input&ndash;&gt;-->
+<!--&lt;!&ndash;							v-model="searchForm.supplierName"&ndash;&gt;-->
+<!--&lt;!&ndash;							style="width: 240px"&ndash;&gt;-->
+<!--&lt;!&ndash;							placeholder="璇疯緭鍏�"&ndash;&gt;-->
+<!--&lt;!&ndash;							@change="handleQuery"&ndash;&gt;-->
+<!--&lt;!&ndash;							clearable&ndash;&gt;-->
+<!--&lt;!&ndash;							prefix-icon="Search"&ndash;&gt;-->
+<!--&lt;!&ndash;						/>&ndash;&gt;-->
+<!--						<span class="search_title ml10">鍑哄簱鏃ユ湡锛�</span>-->
+<!--						<el-date-picker-->
+<!--							v-model="searchForm.timeStr"-->
+<!--							type="date"-->
+<!--							placeholder="璇烽�夋嫨鏃ユ湡"-->
+<!--							value-format="YYYY-MM-DD"-->
+<!--							format="YYYY-MM-DD"-->
 <!--							clearable-->
-<!--							prefix-icon="Search"-->
+<!--							@change="handleQuery"-->
 <!--						/>-->
-						<span class="search_title ml10">鍑哄簱鏃ユ湡锛�</span>
-						<el-date-picker
-							v-model="searchForm.timeStr"
-							type="date"
-							placeholder="璇烽�夋嫨鏃ユ湡"
-							value-format="YYYY-MM-DD"
-							format="YYYY-MM-DD"
-							clearable
-							@change="handleQuery"
-						/>
-						<el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
-					</div>
-					<div>
-						<el-button @click="handleOut">瀵煎嚭</el-button>
-						<el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-						<el-button type="primary" plain @click="handlePrint">鎵撳嵃</el-button>
-					</div>
-				</div>
-				<div class="table_list">
-					<el-table
-						:data="tableData"
-						border
-						v-loading="tableLoading"
-						@selection-change="handleSelectionChange"
-						:expand-row-keys="expandedRowKeys"
-						:row-key="(row) => row.id"
-						show-summary
-						style="width: 100%"
-						:summary-method="summarizeMainTable"
-						height="calc(100vh - 18.5em)"
-					>
-						<el-table-column align="center" type="selection" width="55" />
-						<el-table-column align="center" label="搴忓彿" type="index" width="60" />
-						<el-table-column label="鍑哄簱鏃ユ湡" prop="createTime" show-overflow-tooltip />
-						<!-- <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="250" show-overflow-tooltip /> -->
-						<el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />
-						<el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />
-						<el-table-column label="鍗曚綅" prop="unit" show-overflow-tooltip />
-						<el-table-column label="鐗╁搧绫诲瀷" prop="itemType" show-overflow-tooltip />
-						<el-table-column label="鍑哄簱鏁伴噺" prop="inboundNum" show-overflow-tooltip />
-<!--						<el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
-<!--						<el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
-<!--						<el-table-column label="绋庣巼(%)" prop="taxRate" width="100" show-overflow-tooltip />-->
-<!--						<el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" width="180" show-overflow-tooltip />-->
-						<el-table-column label="鍑哄簱浜�" prop="createBy" show-overflow-tooltip />
-					</el-table>
-					<pagination
-						v-show="total > 0"
-						:total="total"
-						layout="total, sizes, prev, pager, next, jumper"
-						:page="page.current"
-						:limit="page.size"
-						@pagination="paginationChange"
-					/>
-				</div>
-			</el-tab-pane>
+<!--						<el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>-->
+<!--					</div>-->
+<!--					<div>-->
+<!--						<el-button @click="handleOut">瀵煎嚭</el-button>-->
+<!--						<el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>-->
+<!--						<el-button type="primary" plain @click="handlePrint">鎵撳嵃</el-button>-->
+<!--					</div>-->
+<!--				</div>-->
+<!--				<div class="table_list">-->
+<!--					<el-table-->
+<!--						:data="tableData"-->
+<!--						border-->
+<!--						v-loading="tableLoading"-->
+<!--						@selection-change="handleSelectionChange"-->
+<!--						:expand-row-keys="expandedRowKeys"-->
+<!--						:row-key="(row) => row.id"-->
+<!--						show-summary-->
+<!--						style="width: 100%"-->
+<!--						:summary-method="summarizeMainTable"-->
+<!--						height="calc(100vh - 18.5em)"-->
+<!--					>-->
+<!--						<el-table-column align="center" type="selection" width="55" />-->
+<!--						<el-table-column align="center" label="搴忓彿" type="index" width="60" />-->
+<!--						<el-table-column label="鍑哄簱鏃ユ湡" prop="createTime" show-overflow-tooltip />-->
+<!--						&lt;!&ndash; <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="250" show-overflow-tooltip /> &ndash;&gt;-->
+<!--						<el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />-->
+<!--						<el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />-->
+<!--						<el-table-column label="鍗曚綅" prop="unit" show-overflow-tooltip />-->
+<!--						<el-table-column label="鐗╁搧绫诲瀷" prop="itemType" show-overflow-tooltip />-->
+<!--						<el-table-column label="鍑哄簱鏁伴噺" prop="inboundNum" show-overflow-tooltip />-->
+<!--&lt;!&ndash;						<el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;						<el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;						<el-table-column label="绋庣巼(%)" prop="taxRate" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;						<el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" width="180" show-overflow-tooltip />&ndash;&gt;-->
+<!--						<el-table-column label="鍑哄簱浜�" prop="createBy" show-overflow-tooltip />-->
+<!--					</el-table>-->
+<!--					<pagination-->
+<!--						v-show="total > 0"-->
+<!--						:total="total"-->
+<!--						layout="total, sizes, prev, pager, next, jumper"-->
+<!--						:page="page.current"-->
+<!--						:limit="page.size"-->
+<!--						@pagination="paginationChange"-->
+<!--					/>-->
+<!--				</div>-->
+<!--			</el-tab-pane>-->
 		</el-tabs>
 		
 		<!-- 鎵撳嵃棰勮寮圭獥 -->
diff --git a/src/views/inventoryManagement/issueManagement/index.vue b/src/views/inventoryManagement/issueManagement/index.vue
index d2b709c..e3d45fd 100644
--- a/src/views/inventoryManagement/issueManagement/index.vue
+++ b/src/views/inventoryManagement/issueManagement/index.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-tabs v-model="activeTab" @tab-change="handleTabChange">
-      <el-tab-pane label="鐢熶骇鍑哄簱" name="production">
+      <el-tab-pane label="鎴愬搧鍑哄簱" name="production">
         <div class="search_form">
           <div>
 <!--            <span class="search_title">瀹㈡埛鍚嶇О锛�</span>-->
@@ -102,57 +102,57 @@
         </div>
       </el-tab-pane>
 
-      <el-tab-pane label="鑷畾涔夊嚭搴�" name="manual">
-        <div class="search_form">
-          <div>
-<!--            <span class="search_title">渚涘簲鍟嗗悕绉帮細</span>-->
-<!--            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="璇疯緭鍏�" @change="handleQuery"-->
-<!--              clearable prefix-icon="Search" />-->
-            <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>
-            <el-date-picker
-              v-model="searchForm.timeStr"
-              type="date"
-              placeholder="璇烽�夋嫨鏃ユ湡"
-              value-format="YYYY-MM-DD"
-              format="YYYY-MM-DD"
-              clearable
-              @change="handleQuery"
-            />
-            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
-          </div>
-          <div>
-            <el-button @click="handleOut">瀵煎嚭</el-button>
-          </div>
-        </div>
-        <div class="table_list">
-          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
-            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
-            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
-            <el-table-column align="center" type="selection" width="55" />
-            <el-table-column align="center" label="搴忓彿" type="index" width="60" />
-            <el-table-column label="鍏ュ簱鏃堕棿" prop="inboundDate" width="100" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" width="160" show-overflow-tooltip />
-            <!-- <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip /> -->
-            <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />
-            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />
-            <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />
-            <el-table-column label="鐗╁搧绫诲瀷" prop="itemType" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" show-overflow-tooltip />
-<!--            <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
-<!--            <el-table-column label="鍚◣鎬讳环" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
-<!--            <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" show-overflow-tooltip />-->
-<!--            <el-table-column label="涓嶅惈绋庢�讳环" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />-->
-            <el-table-column label="鍏ュ簱浜�" prop="createBy" show-overflow-tooltip />
-            <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">
-              <template #default="scope">
-                <el-button link type="primary" size="small" @click="openForm(scope.row);">棰嗙敤</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
-            :page="page.current" :limit="page.size" @pagination="paginationChange" />
-        </div>
-      </el-tab-pane>
+<!--      <el-tab-pane label="鑷畾涔夊嚭搴�" name="manual">-->
+<!--        <div class="search_form">-->
+<!--          <div>-->
+<!--&lt;!&ndash;            <span class="search_title">渚涘簲鍟嗗悕绉帮細</span>&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="璇疯緭鍏�" @change="handleQuery"&ndash;&gt;-->
+<!--&lt;!&ndash;              clearable prefix-icon="Search" />&ndash;&gt;-->
+<!--            <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>-->
+<!--            <el-date-picker-->
+<!--              v-model="searchForm.timeStr"-->
+<!--              type="date"-->
+<!--              placeholder="璇烽�夋嫨鏃ユ湡"-->
+<!--              value-format="YYYY-MM-DD"-->
+<!--              format="YYYY-MM-DD"-->
+<!--              clearable-->
+<!--              @change="handleQuery"-->
+<!--            />-->
+<!--            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>-->
+<!--          </div>-->
+<!--          <div>-->
+<!--            <el-button @click="handleOut">瀵煎嚭</el-button>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div class="table_list">-->
+<!--          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"-->
+<!--            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"-->
+<!--            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">-->
+<!--            <el-table-column align="center" type="selection" width="55" />-->
+<!--            <el-table-column align="center" label="搴忓彿" type="index" width="60" />-->
+<!--            <el-table-column label="鍏ュ簱鏃堕棿" prop="inboundDate" width="100" show-overflow-tooltip />-->
+<!--            <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" width="160" show-overflow-tooltip />-->
+<!--            &lt;!&ndash; <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip /> &ndash;&gt;-->
+<!--            <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />-->
+<!--            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />-->
+<!--            <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />-->
+<!--            <el-table-column label="鐗╁搧绫诲瀷" prop="itemType" show-overflow-tooltip />-->
+<!--            <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" show-overflow-tooltip />-->
+<!--&lt;!&ndash;            <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-table-column label="鍚◣鎬讳环" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-table-column label="涓嶅惈绋庢�讳环" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--            <el-table-column label="鍏ュ簱浜�" prop="createBy" show-overflow-tooltip />-->
+<!--            <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">-->
+<!--              <template #default="scope">-->
+<!--                <el-button link type="primary" size="small" @click="openForm(scope.row);">棰嗙敤</el-button>-->
+<!--              </template>-->
+<!--            </el-table-column>-->
+<!--          </el-table>-->
+<!--          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"-->
+<!--            :page="page.current" :limit="page.size" @pagination="paginationChange" />-->
+<!--        </div>-->
+<!--      </el-tab-pane>-->
     </el-tabs>
     <el-dialog v-model="dialogFormVisible" :title="'鏂板鍑哄簱'" width="40%" @close="closeDia">
       <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
diff --git a/src/views/inventoryManagement/receiptManagement/index.vue b/src/views/inventoryManagement/receiptManagement/index.vue
index 0795f7e..e8c4b48 100644
--- a/src/views/inventoryManagement/receiptManagement/index.vue
+++ b/src/views/inventoryManagement/receiptManagement/index.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-tabs v-model="activeTab" @tab-change="handleTabChange">
-      <el-tab-pane label="鐢熶骇鍏ュ簱" name="production">
+      <el-tab-pane label="鎴愬搧鍏ュ簱" name="production">
         <div class="search_form">
           <div>
 <!--            <span class="search_title">瀹㈡埛鍚嶇О锛�</span>-->
@@ -99,59 +99,59 @@
         </div>
       </el-tab-pane>
       
-      <el-tab-pane label="鑷畾涔夊叆搴�" name="manual">
-        <div class="search_form">
-          <div>
-<!--            <span class="search_title">渚涘簲鍟嗗悕绉帮細</span>-->
-<!--            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="璇疯緭鍏�" @change="handleQuery"-->
-<!--              clearable prefix-icon="Search" />-->
-            <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>
-            <el-date-picker
-              v-model="searchForm.timeStr"
-              type="date"
-              placeholder="璇烽�夋嫨鏃ユ湡"
-              value-format="YYYY-MM-DD"
-              format="YYYY-MM-DD"
-              clearable
-              @change="handleQuery"
-            />
-            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
-          </div>
-          <div>
-            <el-button type="primary" @click="openForm('add', 'manual')">鏂板鍏ュ簱</el-button>
-            <el-button @click="handleOut">瀵煎嚭</el-button>
-            <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-          </div>
-        </div>
-        <div class="table_list">
-          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
-            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
-            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
-            <el-table-column align="center" type="selection" width="55" />
-            <el-table-column align="center" label="搴忓彿" type="index" width="60" />
-            <el-table-column label="鍏ュ簱鏃堕棿" prop="inboundDate" width="100" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" show-overflow-tooltip />
-            <!-- <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip /> -->
-            <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />
-            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />
-            <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />
-            <el-table-column label="鐗╁搧绫诲瀷" prop="itemType" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" show-overflow-tooltip />
-<!--            <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
-<!--            <el-table-column label="鍚◣鎬讳环" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
-<!--            <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" show-overflow-tooltip />-->
-<!--            <el-table-column label="涓嶅惈绋庢�讳环" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />-->
-            <el-table-column label="鍏ュ簱浜�" prop="createBy" width="80" show-overflow-tooltip />
-            <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">
-              <template #default="scope">
-                <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'manual');">缂栬緫</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
-            :page="page.current" :limit="page.size" @pagination="paginationChange" />
-        </div>
-      </el-tab-pane>
+<!--      <el-tab-pane label="鑷畾涔夊叆搴�" name="manual">-->
+<!--        <div class="search_form">-->
+<!--          <div>-->
+<!--&lt;!&ndash;            <span class="search_title">渚涘簲鍟嗗悕绉帮細</span>&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="璇疯緭鍏�" @change="handleQuery"&ndash;&gt;-->
+<!--&lt;!&ndash;              clearable prefix-icon="Search" />&ndash;&gt;-->
+<!--            <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>-->
+<!--            <el-date-picker-->
+<!--              v-model="searchForm.timeStr"-->
+<!--              type="date"-->
+<!--              placeholder="璇烽�夋嫨鏃ユ湡"-->
+<!--              value-format="YYYY-MM-DD"-->
+<!--              format="YYYY-MM-DD"-->
+<!--              clearable-->
+<!--              @change="handleQuery"-->
+<!--            />-->
+<!--            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>-->
+<!--          </div>-->
+<!--          <div>-->
+<!--            <el-button type="primary" @click="openForm('add', 'manual')">鏂板鍏ュ簱</el-button>-->
+<!--            <el-button @click="handleOut">瀵煎嚭</el-button>-->
+<!--            <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div class="table_list">-->
+<!--          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"-->
+<!--            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"-->
+<!--            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">-->
+<!--            <el-table-column align="center" type="selection" width="55" />-->
+<!--            <el-table-column align="center" label="搴忓彿" type="index" width="60" />-->
+<!--            <el-table-column label="鍏ュ簱鏃堕棿" prop="inboundDate" width="100" show-overflow-tooltip />-->
+<!--            <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" show-overflow-tooltip />-->
+<!--            &lt;!&ndash; <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip /> &ndash;&gt;-->
+<!--            <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />-->
+<!--            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />-->
+<!--            <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />-->
+<!--            <el-table-column label="鐗╁搧绫诲瀷" prop="itemType" show-overflow-tooltip />-->
+<!--            <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" show-overflow-tooltip />-->
+<!--&lt;!&ndash;            <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-table-column label="鍚◣鎬讳环" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-table-column label="涓嶅惈绋庢�讳环" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--            <el-table-column label="鍏ュ簱浜�" prop="createBy" width="80" show-overflow-tooltip />-->
+<!--            <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">-->
+<!--              <template #default="scope">-->
+<!--                <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'manual');">缂栬緫</el-button>-->
+<!--              </template>-->
+<!--            </el-table-column>-->
+<!--          </el-table>-->
+<!--          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"-->
+<!--            :page="page.current" :limit="page.size" @pagination="paginationChange" />-->
+<!--        </div>-->
+<!--      </el-tab-pane>-->
     </el-tabs>
 
     <form-dia ref="formDia" @close="handleQuery" @success="handleQuery"></form-dia>
diff --git a/src/views/inventoryManagement/stockManagement/index.vue b/src/views/inventoryManagement/stockManagement/index.vue
index 85602dc..3b01344 100644
--- a/src/views/inventoryManagement/stockManagement/index.vue
+++ b/src/views/inventoryManagement/stockManagement/index.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-tabs v-model="activeTab" @tab-change="handleTabChange">
-      <el-tab-pane label="鐢熶骇鍏ュ簱" name="production">
+      <el-tab-pane label="鎴愬搧鍏ュ簱" name="production">
         <div class="search_form">
           <div>
 <!--            <span class="search_title">瀹㈡埛鍚嶇О锛�</span>-->
@@ -110,60 +110,60 @@
         </div>
       </el-tab-pane>
 
-      <el-tab-pane label="鑷畾涔夊叆搴�" name="manual">
-        <div class="search_form">
-          <div>
-<!--            <span class="search_title">渚涘簲鍟嗗悕绉帮細</span>-->
-<!--            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="璇疯緭鍏�" @change="handleQuery"-->
-<!--              clearable prefix-icon="Search" />-->
-            <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>
-            <el-date-picker
-              v-model="searchForm.timeStr"
-              type="date"
-              placeholder="璇烽�夋嫨鏃ユ湡"
-              value-format="YYYY-MM-DD"
-              format="YYYY-MM-DD"
-              clearable
-              @change="handleQuery"
-            />
-            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
-          </div>
-          <div>
-            <el-button @click="handleOut">瀵煎嚭</el-button>
-            <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-          </div>
-        </div>
-        <div class="table_list">
-          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
-            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
-            :row-class-name="tableRowClassName"
-            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
-            <el-table-column align="center" type="selection" width="55" />
-            <el-table-column align="center" label="搴忓彿" type="index" width="60" />
-            <el-table-column label="鍏ュ簱鏃ユ湡" prop="createTime" width="100" show-overflow-tooltip />
-<!--            <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip />-->
-            <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />
-            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />
-            <el-table-column label="鍗曚綅" prop="unit" width="80" show-overflow-tooltip />
-            <el-table-column label="鐗╁搧绫诲瀷" prop="itemType" width="120" show-overflow-tooltip />
-						<el-table-column label="搴撳瓨鏁伴噺" prop="inboundNum" width="100" show-overflow-tooltip />
-						<el-table-column label="宸插嚭搴撴暟閲�" prop="totalInboundNum" width="100" show-overflow-tooltip />
-						<el-table-column label="寰呭嚭搴撴暟閲�" prop="inboundNum0" width="100" show-overflow-tooltip />
-<!--            <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
-<!--            <el-table-column label="鍚◣鎬讳环" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
-<!--            <el-table-column label="绋庣巼(%)" prop="taxRate" width="100" show-overflow-tooltip />-->
-<!--            <el-table-column label="涓嶅惈绋庢�讳环" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />-->
-            <el-table-column label="鍏ュ簱浜�" prop="createBy" width="80" show-overflow-tooltip />
-            <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">
-              <template #default="scope">
-                <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">缂栬緫</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
-            :page="page.current" :limit="page.size" @pagination="paginationChange" />
-        </div>
-      </el-tab-pane>
+<!--      <el-tab-pane label="鑷畾涔夊叆搴�" name="manual">-->
+<!--        <div class="search_form">-->
+<!--          <div>-->
+<!--&lt;!&ndash;            <span class="search_title">渚涘簲鍟嗗悕绉帮細</span>&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="璇疯緭鍏�" @change="handleQuery"&ndash;&gt;-->
+<!--&lt;!&ndash;              clearable prefix-icon="Search" />&ndash;&gt;-->
+<!--            <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>-->
+<!--            <el-date-picker-->
+<!--              v-model="searchForm.timeStr"-->
+<!--              type="date"-->
+<!--              placeholder="璇烽�夋嫨鏃ユ湡"-->
+<!--              value-format="YYYY-MM-DD"-->
+<!--              format="YYYY-MM-DD"-->
+<!--              clearable-->
+<!--              @change="handleQuery"-->
+<!--            />-->
+<!--            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>-->
+<!--          </div>-->
+<!--          <div>-->
+<!--            <el-button @click="handleOut">瀵煎嚭</el-button>-->
+<!--            <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div class="table_list">-->
+<!--          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"-->
+<!--            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"-->
+<!--            :row-class-name="tableRowClassName"-->
+<!--            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">-->
+<!--            <el-table-column align="center" type="selection" width="55" />-->
+<!--            <el-table-column align="center" label="搴忓彿" type="index" width="60" />-->
+<!--            <el-table-column label="鍏ュ簱鏃ユ湡" prop="createTime" width="100" show-overflow-tooltip />-->
+<!--&lt;!&ndash;            <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip />&ndash;&gt;-->
+<!--            <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />-->
+<!--            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />-->
+<!--            <el-table-column label="鍗曚綅" prop="unit" width="80" show-overflow-tooltip />-->
+<!--            <el-table-column label="鐗╁搧绫诲瀷" prop="itemType" width="120" show-overflow-tooltip />-->
+<!--						<el-table-column label="搴撳瓨鏁伴噺" prop="inboundNum" width="100" show-overflow-tooltip />-->
+<!--						<el-table-column label="宸插嚭搴撴暟閲�" prop="totalInboundNum" width="100" show-overflow-tooltip />-->
+<!--						<el-table-column label="寰呭嚭搴撴暟閲�" prop="inboundNum0" width="100" show-overflow-tooltip />-->
+<!--&lt;!&ndash;            <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-table-column label="鍚◣鎬讳环" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-table-column label="绋庣巼(%)" prop="taxRate" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--&lt;!&ndash;            <el-table-column label="涓嶅惈绋庢�讳环" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
+<!--            <el-table-column label="鍏ュ簱浜�" prop="createBy" width="80" show-overflow-tooltip />-->
+<!--            <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">-->
+<!--              <template #default="scope">-->
+<!--                <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">缂栬緫</el-button>-->
+<!--              </template>-->
+<!--            </el-table-column>-->
+<!--          </el-table>-->
+<!--          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"-->
+<!--            :page="page.current" :limit="page.size" @pagination="paginationChange" />-->
+<!--        </div>-->
+<!--      </el-tab-pane>-->
     </el-tabs>
     <el-dialog v-model="dialogFormVisible" :title="operationType === 'add' ? '鏂板搴撳瓨' : '缂栬緫搴撳瓨'" width="70%"
       @close="closeDia">
diff --git a/src/views/productionManagement/LineManagement/index.vue b/src/views/productionManagement/LineManagement/index.vue
new file mode 100644
index 0000000..706d2d2
--- /dev/null
+++ b/src/views/productionManagement/LineManagement/index.vue
@@ -0,0 +1,412 @@
+<template>
+	<div class="app-container line-management">
+		<div class="config-wrap">
+			<div class="left">
+				<div class="header">
+					<div>浜х嚎绠$悊</div>
+					<div>
+						<el-button size="small" type="primary" @click="addLine">鏂板浜х嚎</el-button>
+					</div>
+				</div>
+				<el-tree
+						:data="lineTree"
+						node-key="id"
+						:props="{ label: 'name' }"
+						@node-click="onNodeClick"
+						highlight-current
+						class="tree"
+					>
+						<template #default="{ data }">
+                <span>
+                  <el-tag size="small" type="warning" effect="plain" style="margin-right:4px;">
+                    浜х嚎
+                  </el-tag>
+                  {{ data.name }}
+                </span>
+							<span class="ops">
+                  <el-button link size="small" type="primary" @click.stop="openRenameDialog(data)">閲嶅懡鍚�</el-button>
+                  <el-button link size="small" type="danger" @click.stop="confirmRemoveNode(data)">鍒犻櫎</el-button>
+                </span>
+						</template>
+					</el-tree>
+			</div>
+			<div class="right">
+					<div v-if="currentLine" class="process-config">
+						<div class="title">
+							<span>宸ュ簭绠$悊锛歿{ currentLine.label }}</span>
+						</div>
+						<div class="q-toolbar">
+							<el-button size="small" type="primary" @click="openAddProcessDialog">鏂板宸ュ簭</el-button>
+						</div>
+						<el-table :data="processList" border size="small" v-loading="processLoading">
+						<el-table-column label="宸ュ簭鍚嶇О" prop="name" />
+						<el-table-column label="鎿嶄綔" width="160" align="center">
+							<template #default="scope">
+								<el-button link type="primary" size="small" @click="openEditProcessDialog(scope.row)">缂栬緫</el-button>
+								<el-button link type="danger" size="small" @click="onDeleteProcess(scope.row)">鍒犻櫎</el-button>
+							</template>
+						</el-table-column>
+					</el-table>
+					<div class="pagination-container">
+						<el-pagination
+							v-model:current-page="processQueryParams.current"
+							v-model:page-size="processQueryParams.size"
+							:page-sizes="[10, 20, 50, 100]"
+							:layout="'total, sizes, prev, pager, next, jumper'"
+							:total="total"
+							@size-change="handleProcessSizeChange"
+							@current-change="handleProcessCurrentChange"
+						/>
+					</div>
+					</div>
+					<div v-else class="empty">璇烽�夋嫨宸︿晶浜х嚎杩涜宸ュ簭閰嶇疆</div>
+				</div>
+		</div>
+		<!-- 鏂板浜х嚎寮圭獥 -->
+		<el-dialog v-model="addDialogVisible" :title="addDialogTitle" width="420px">
+			<el-form :model="addForm" :rules="addRules" ref="addFormRef" label-width="80px">
+				<el-form-item label="浜х嚎鍚嶇О" prop="name">
+					<el-input v-model="addForm.name" placeholder="璇疯緭鍏ヤ骇绾垮悕绉�" />
+				</el-form-item>
+			</el-form>
+			<template #footer>
+				<el-button @click="onCancelAdd">鍙� 娑�</el-button>
+				<el-button type="primary" @click="onConfirmAdd" :loading="addLoading">纭� 璁�</el-button>
+			</template>
+		</el-dialog>
+		<!-- 閲嶅懡鍚嶅脊绐� -->
+		<el-dialog v-model="renameDialogVisible" :title="renameDialogTitle" width="420px">
+			<el-form :model="renameForm" :rules="addRules" ref="renameFormRef" label-width="80px">
+				<el-form-item label="浜х嚎鍚嶇О" prop="name">
+					<el-input v-model="renameForm.name" placeholder="璇疯緭鍏ヤ骇绾垮悕绉�" />
+				</el-form-item>
+			</el-form>
+			<template #footer>
+				<el-button @click="onCancelRename">鍙� 娑�</el-button>
+				<el-button type="primary" @click="onConfirmRename" :loading="renameLoading">纭� 璁�</el-button>
+			</template>
+		</el-dialog>
+		
+		<!-- 鏂板/缂栬緫宸ュ簭寮圭獥 -->
+		<el-dialog v-model="addProcessDialogVisible" :title="addProcessDialogTitle" width="420px">
+			<el-form :model="addProcessForm" label-width="80px">
+				<el-form-item label="宸ュ簭鍚嶇О" prop="name">
+					<el-input v-model="addProcessForm.name" placeholder="璇疯緭鍏ュ伐搴忓悕绉�" />
+				</el-form-item>
+			</el-form>
+			<template #footer>
+				<el-button @click="onCancelAddProcess">鍙� 娑�</el-button>
+				<el-button type="primary" :loading="addProcessSaving" @click="onConfirmAddProcess">淇� 瀛�</el-button>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script setup>
+import { ref, reactive, computed, watch, onMounted } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { getDeptPositionTree, addDeptPosition, updateDeptPosition, deleteDeptPosition, laborConfListPage } from '@/api/lavorissce/issue'
+
+// 缁撴瀯锛氫骇绾垮垪琛�
+const lines = reactive([]) // [{id,name,processes:[{id,processName,processCode,standardTime,status}]}]
+
+// 鍔犺浇浜х嚎鍒楄〃
+async function loadLineTree() {
+	try {
+		const res = await getDeptPositionTree()
+		const data = res.data
+		lines.splice(0, lines.length, ...data)
+	} catch (e) {
+		// 闈欓粯澶辫触锛屼繚鐣欐湰鍦扮ず渚嬫暟鎹�
+	}
+}
+
+const lineTree = computed(() => lines)
+
+const currentLine = ref(null)
+// 鍙充晶锛氬綋鍓嶄骇绾跨殑宸ュ簭鍒楄〃
+const processList = ref([])
+const processLoading = ref(false)
+
+// 宸ュ簭鍒嗛〉鍙傛暟
+const processQueryParams = reactive({
+	current: 1,
+	size: 10
+})
+const total = ref(0)
+
+// 鍔犺浇宸ュ簭鍒楄〃
+async function loadProcessList(lineId) {
+	if (!lineId) {
+		if (!currentLine.value) return
+		lineId = currentLine.value.id
+	}
+	
+	try {
+		processLoading.value = true
+		const res = await laborConfListPage({
+			id: lineId,
+			current: processQueryParams.current,
+			size: processQueryParams.size
+		})
+		// 鏂版帴鍙h繑鍥炵殑鏄爲褰㈢粨鏋勶紝鐩存帴浣跨敤杩斿洖鐨勬暟鎹�
+		processList.value = res.data.records.map(it => ({
+			...it,
+			id: it.id,
+			name: it.name
+		}))
+		total.value = res.data.total
+	} finally {
+		processLoading.value = false
+	}
+}
+
+// 宸ュ簭鍒嗛〉浜嬩欢澶勭悊
+function handleProcessSizeChange(val) {
+	processQueryParams.size = val
+	processQueryParams.current = 1
+	loadProcessList()
+}
+
+function handleProcessCurrentChange(val) {
+	processQueryParams.current = val
+	loadProcessList()
+}
+
+// 鏂板宸ュ簭寮圭獥鐘舵�佷笌閫昏緫锛堜緵妯℃澘浣跨敤锛�
+const addProcessDialogVisible = ref(false)
+const addProcessDialogTitle = ref('鏂板宸ュ簭')
+const addProcessSaving = ref(false)
+const addProcessForm = reactive({ id: undefined, name: '' })
+
+function openAddProcessDialog() {
+	if (!currentLine.value) return
+	addProcessDialogTitle.value = '鏂板宸ュ簭'
+	addProcessForm.id = undefined
+	addProcessForm.name = ''
+	addProcessDialogVisible.value = true
+}
+
+function openEditProcessDialog(row) {
+	if (!currentLine.value || !row) return
+	addProcessDialogTitle.value = '缂栬緫宸ュ簭'
+	addProcessForm.id = row.id
+	addProcessForm.name = row.name
+	addProcessDialogVisible.value = true
+}
+
+function onCancelAddProcess() {
+	addProcessDialogVisible.value = false
+}
+
+async function onConfirmAddProcess() {
+	if (!currentLine.value.id) {
+		ElMessage.error('璇峰厛閫夋嫨浜х嚎')
+		return
+	}
+	addProcessSaving.value = true
+	try {
+		if (addProcessForm.id) {
+			// 缂栬緫宸ュ簭
+			await updateDeptPosition({
+				id: addProcessForm.id,
+				name: addProcessForm.name,
+				type: 2 // 宸ュ簭绫诲瀷
+			})
+		} else {
+			// 鏂板宸ュ簭
+			await addDeptPosition({
+				parentId: currentLine.value.id,
+				name: addProcessForm.name,
+				type: 2 // 宸ュ簭绫诲瀷
+			})
+		}
+		
+		// 閲嶆柊鍔犺浇宸ュ簭鍒楄〃
+		await loadProcessList()
+		
+		addProcessDialogVisible.value = false
+		ElMessage.success('淇濆瓨鎴愬姛')
+	} catch (e) {
+		ElMessage.error((e && (e.msg || e.message)) || '淇濆瓨澶辫触')
+	} finally {
+		addProcessSaving.value = false
+	}
+}
+
+async function onDeleteProcess(row) {
+	if (!currentLine.value || !row) return
+	try {
+		await ElMessageBox.confirm('纭畾鍒犻櫎璇ュ伐搴忓悧锛�', '鎻愮ず', { type: 'warning' })
+	} catch {
+		return
+	}
+	try {
+		await deleteDeptPosition([row.id])
+		// 閲嶆柊鍔犺浇宸ュ簭鍒楄〃
+		await loadProcessList()
+		ElMessage.success('鍒犻櫎鎴愬姛')
+	} catch (e) {
+		ElMessage.error((e && (e.msg || e.message)) || '鍒犻櫎澶辫触')
+	}
+}
+
+// 鏂板浜х嚎寮圭獥鐘舵��
+const addDialogVisible = ref(false)
+const addDialogTitle = ref('鏂板浜х嚎')
+const addLoading = ref(false)
+const addFormRef = ref()
+const addForm = reactive({ name: '', type: 1, parentId: undefined })
+const addRules = { name: [{ required: true, message: '璇疯緭鍏ヤ骇绾垮悕绉�', trigger: 'blur' }] }
+
+// 閲嶅懡鍚嶄骇绾垮脊绐楃姸鎬�
+const renameDialogVisible = ref(false)
+const renameLoading = ref(false)
+const renameFormRef = ref()
+const renameForm = reactive({ id: undefined, type: 1, name: '' })
+const renameDialogTitle = ref('閲嶅懡鍚嶄骇绾�')
+
+function newLine() {
+	return {
+		id: Date.now(),
+		label: '鏂颁骇绾�',
+		hrPositionId: undefined,
+		processes: []
+	}
+}
+
+async function addLine() {
+	openAddDialog()
+}
+
+function openAddDialog() {
+	addForm.name = ''
+	addForm.type = 1
+	addForm.parentId = undefined
+	addDialogTitle.value = '鏂板浜х嚎'
+	addDialogVisible.value = true
+}
+
+function onCancelAdd() {
+	addDialogVisible.value = false
+}
+
+async function onConfirmAdd() {
+	addFormRef.value?.validate(async (valid) => {
+		if (!valid) return
+		try {
+			addLoading.value = true
+			const payload = { name: addForm.name, type: addForm.type, parentId: 0 }
+			await addDeptPosition(payload)
+			addDialogVisible.value = false
+			await loadLineTree()
+		} finally {
+			addLoading.value = false
+		}
+	})
+}
+
+function onNodeClick(node) {
+	console.log(node);
+	
+	currentLine.value = node
+		// 閫夋嫨浜х嚎鏃讹紝鍔犺浇宸ュ簭鍒楄〃
+		loadProcessList()
+}
+
+function openRenameDialog(node) {
+	renameForm.id = node.id
+	renameForm.type = 1
+	renameForm.name = node.name
+	renameDialogTitle.value = '閲嶅懡鍚嶄骇绾�'
+	renameDialogVisible.value = true
+}
+
+function onCancelRename() {
+	renameDialogVisible.value = false
+}
+
+async function onConfirmRename() {
+	renameFormRef.value?.validate(async (valid) => {
+		if (!valid) return
+		try {
+			renameLoading.value = true
+			await updateDeptPosition({ id: renameForm.id, name: renameForm.name, type: renameForm.type })
+			renameDialogVisible.value = false
+			await loadLineTree()
+		} finally {
+			renameLoading.value = false
+		}
+	})
+}
+
+async function confirmRemoveNode(node) {
+	const id = node.id
+	// 绠�鍗曠‘璁�
+	try {
+		await deleteDeptPosition([id])
+		await loadLineTree()
+	} catch (e) {
+		// ignore errors
+	}
+}
+
+
+
+onMounted(() => {
+	loadLineTree()
+})
+</script>
+
+<style scoped>
+.labor-issue {
+	display: flex;
+	flex-direction: column;
+	gap: 12px;
+}
+.config-wrap {
+	display: flex;
+	gap: 16px;
+	align-items: stretch;
+}
+.left, .right {
+	background: #fff;
+	border: 1px solid var(--el-border-color, #ebeef5);
+	border-radius: 8px;
+	box-shadow: var(--el-box-shadow-light, 0 2px 12px 0 rgba(0,0,0,.1));
+}
+.left { width: 340px; padding: 12px; }
+.right { flex: 1; padding: 14px; }
+.header {
+	display: flex;
+	align-items: flex-start;
+	margin-bottom: 10px;
+	flex-direction: column;
+}
+.header :deep(.el-button+.el-button) { margin-left: 8px; }
+.tree {
+	max-height: calc(100vh - 300px);
+	overflow: auto;
+	padding: 6px;
+	border-radius: 6px;
+	background: #fafafa;
+}
+.ops { margin-left: 8px; opacity: 0.6; transition: opacity .2s; }
+:deep(.el-tree-node__content):hover .ops { opacity: 1; }
+
+.q-toolbar { margin-bottom: 10px; }
+.empty { color: #999; padding: 48px; text-align: center; }
+
+.summary-wrap { display: flex; flex-direction: column; gap: 16px; }
+.people, .summary {
+	background: #fff;
+	border: 1px solid var(--el-border-color, #ebeef5);
+	border-radius: 8px;
+	padding: 12px;
+	box-shadow: var(--el-box-shadow-light, 0 2px 12px 0 rgba(0,0,0,.06));
+}
+.summary .header {
+	font-weight: 600;
+	margin-bottom: 12px;
+}
+</style>
diff --git a/src/views/productionManagement/operationScheduling/components/formDia.vue b/src/views/productionManagement/operationScheduling/components/formDia.vue
index b2f283d..542e4f5 100644
--- a/src/views/productionManagement/operationScheduling/components/formDia.vue
+++ b/src/views/productionManagement/operationScheduling/components/formDia.vue
@@ -21,7 +21,20 @@
         </el-table-column>
         <el-table-column label="宸ュ簭" prop="process" width="150">
           <template #default="scope">
-						<el-input v-model="scope.row.process" placeholder="璇疯緭鍏ュ伐搴�" />
+							<el-select
+								v-model="scope.row.process"
+								placeholder="閫夋嫨宸ュ簭"
+								style="width: 100%;"
+                filterable
+                clearable
+							>
+								<el-option
+									v-for="process in processList"
+									:key="process.id"
+									:label="process.name"
+									:value="process.name"
+								/>
+							</el-select>
           </template>
         </el-table-column>
         <el-table-column label="鍗曚綅" prop="unit" width="90">
@@ -47,7 +60,7 @@
 						/>
           </template>
         </el-table-column>
-        <el-table-column label="宸ユ椂瀹氶" width="200" prop="workHours">
+        <el-table-column label="宸ヨ祫" width="200" prop="workHours">
           <template #default="scope">
 						<el-input-number
 							v-model="scope.row.workHours"
@@ -109,6 +122,7 @@
 import {ref, getCurrentInstance} from "vue";
 import {userListNoPageByTenantId} from "@/api/system/user.js";
 import {processScheduling} from "@/api/productionManagement/operationScheduling.js";
+import {laborConfListPage} from "@/api/lavorissce/issue.js";
 const { proxy } = getCurrentInstance()
 const { work_step } = proxy.useDict("work_step")
 const emit = defineEmits(['close'])
@@ -121,7 +135,10 @@
 const specificationModelFromRow = ref('');
 const pendingNum = ref(0);
 const userList = ref([])
+const processList = ref([])
 const receive = ref('')
+const productionLineIdFromRow = ref('');
+const productionUserIdFromRow = ref('');
 
 // 鎵撳紑寮规
 const openDialog = (type, row) => {
@@ -130,10 +147,18 @@
 	userListNoPageByTenantId().then((res) => {
 		userList.value = res.data;
 	});
+	// 鏍规嵁閫変腑鏁版嵁鐨刾roductionLineId鏌ヨ宸ュ簭鍒楄〃
+	if (row?.productionLineId) {
+		laborConfListPage({ id: row.productionLineId, current: -1, size: -1 }).then((res) => {
+			processList.value = res.data.records || [];
+		});
+	}
 	pendingNum.value = row?.pendingNum ?? 0;
 	unitFromRow.value = row?.unit ?? '';
 	idFromRow.value = row?.id ?? '';
 	specificationModelFromRow.value = row?.specificationModel ?? '';
+	productionLineIdFromRow.value = row?.productionLineId ?? '';
+	productionUserIdFromRow.value = row?.productionUserId ?? '';
 	tableData.value = [createRow()];
 }
 
@@ -173,12 +198,14 @@
 		proxy.$modal.msgError('鎺掍骇鏁伴噺鍚堣涓嶈兘瓒呰繃寰呮帓浜ф暟閲�');
 		return;
 	}
-	// 3. 灏� receive 瀛楁娣诲姞鍒版瘡鏉℃暟鎹腑锛屽苟绉婚櫎 loss 瀛楁
+	// 3. 灏� receive銆乸roductionLineId銆乸roductionUserId 瀛楁娣诲姞鍒版瘡鏉℃暟鎹腑锛屽苟绉婚櫎 loss 瀛楁
 	const submitData = tableData.value.map(row => {
 		const { loss, ...rest } = row;
 		return {
 			...rest,
-			receive: receive.value
+			receive: receive.value,
+			productionLineId: productionLineIdFromRow.value,
+			productionUserId: productionUserIdFromRow.value
 		};
 	});
 	processScheduling(submitData).then((res) => {
diff --git a/src/views/productionManagement/operationScheduling/index.vue b/src/views/productionManagement/operationScheduling/index.vue
index 4c3e0bd..129ccf9 100644
--- a/src/views/productionManagement/operationScheduling/index.vue
+++ b/src/views/productionManagement/operationScheduling/index.vue
@@ -92,6 +92,16 @@
 		},
 	},
 	{
+		label: "浜х嚎",
+		prop: "productionLineName",
+		width: 120,
+	},
+	{
+		label: "鐢熶骇浜�",
+		prop: "productionUserName",
+		width: 120,
+	},
+	{
 		label: "娲惧伐鏃ユ湡",
 		prop: "schedulingDate",
 		width: 120,
@@ -130,11 +140,11 @@
 		prop: "specificationModel",
 		width: 150,
 	},
-	{
-		label: "缁戝畾鏈哄櫒",
-		prop: "speculativeTradingName",
-		width: 220,
-	},
+	// {
+	// 	label: "缁戝畾鏈哄櫒",
+	// 	prop: "speculativeTradingName",
+	// 	width: 220,
+	// },
 	{
 		label: "鍗曚綅",
 		prop: "unit",
diff --git a/src/views/productionManagement/productionCosting/index.vue b/src/views/productionManagement/productionCosting/index.vue
index 76e7414..13e73a2 100644
--- a/src/views/productionManagement/productionCosting/index.vue
+++ b/src/views/productionManagement/productionCosting/index.vue
@@ -100,15 +100,15 @@
 		width: 100,
 	},
 	{
-		label: "宸ユ椂瀹氶",
+		label: "宸ヨ祫",
 		prop: "workHours",
 		width: 100,
 	},
-	{
-		label: "宸ヨ祫",
-		prop: "wages",
-		width: 100,
-	},
+	// {
+	// 	label: "宸ヨ祫",
+	// 	prop: "wages",
+	// 	width: 100,
+	// },
 ]);
 const tableData = ref([]);
 const tableLoading = ref(false);
diff --git a/src/views/productionManagement/productionDispatching/components/autoDispatchDia.vue b/src/views/productionManagement/productionDispatching/components/autoDispatchDia.vue
index 9944600..6a81a87 100644
--- a/src/views/productionManagement/productionDispatching/components/autoDispatchDia.vue
+++ b/src/views/productionManagement/productionDispatching/components/autoDispatchDia.vue
@@ -21,7 +21,7 @@
           <el-table-column label="椤圭洰鍚嶇О" prop="projectName" width="250" />
           <el-table-column label="浜у搧澶х被" prop="productCategory" width="150" />
           <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="200" />
-          <el-table-column label="缁戝畾鏈哄櫒" prop="speculativeTradingName" width="120" />
+<!--          <el-table-column label="缁戝畾鏈哄櫒" prop="speculativeTradingName" width="120" />-->
           <el-table-column label="鎬绘暟閲�" prop="quantity" width="100" align="right" />
           <el-table-column label="宸叉帓浜�" prop="schedulingNum" width="100" align="right" fixed="right" />
           <el-table-column label="寰呮帓浜�" prop="pendingQuantity" width="100" align="right" fixed="right" />
diff --git a/src/views/productionManagement/productionDispatching/components/formDia.vue b/src/views/productionManagement/productionDispatching/components/formDia.vue
index 1e23daf..da0c8c8 100644
--- a/src/views/productionManagement/productionDispatching/components/formDia.vue
+++ b/src/views/productionManagement/productionDispatching/components/formDia.vue
@@ -25,26 +25,24 @@
               <el-input v-model="form.specificationModel" placeholder="璇疯緭鍏�" clearable disabled/>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="缁戝畾鏈哄櫒锛�" prop="speculativeTradingName">
-              <el-input v-model="form.speculativeTradingName" placeholder="鑷姩鑾峰彇" clearable disabled/>
-            </el-form-item>
-          </el-col>
+<!--          <el-col :span="12">-->
+<!--            <el-form-item label="缁戝畾鏈哄櫒锛�" prop="speculativeTradingName">-->
+<!--              <el-input v-model="form.speculativeTradingName" placeholder="鑷姩鑾峰彇" clearable disabled/>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+					<el-col :span="12">
+						<el-form-item label="鎬绘暟閲忥細" prop="quantity">
+							<el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable disabled/>
+						</el-form-item>
+					</el-col>
         </el-row>
         <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鎬绘暟閲忥細" prop="quantity">
-              <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable disabled/>
-            </el-form-item>
-          </el-col>
           <el-col :span="12">
 						<el-form-item label="寰呮帓浜ф暟閲忥細" prop="pendingQuantity">
 							<el-input v-model="form.pendingQuantity" placeholder="璇疯緭鍏�" clearable disabled/>
 						</el-form-item>
           </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
+					<el-col :span="12">
 						<el-form-item label="鏈鎺掍骇鏁伴噺锛�" prop="schedulingNum">
 							<el-input-number
 								v-model="form.schedulingNum"
@@ -57,6 +55,46 @@
 								style="width: 100%"
 							/>
 						</el-form-item>
+					</el-col>
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="12">
+            <el-form-item label="浜х嚎锛�" prop="lineId">
+              <el-select
+                v-model="form.lineId"
+                placeholder="閫夋嫨浜х嚎"
+                style="width: 100%;"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="line in lineList"
+                  :key="line.id"
+                  :label="line.name"
+                  :value="line.id"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鐢熶骇浜猴細" prop="productionUserId">
+              <el-select
+                v-model="form.productionUserId"
+                placeholder="閫夋嫨鐢熶骇浜�"
+                style="width: 100%;"
+                filterable
+                default-first-option
+                :reserve-keyword="false"
+                clearable
+              >
+                <el-option
+                  v-for="user in userList"
+                  :key="user.userId"
+                  :label="user.nickName"
+                  :value="user.userId"
+                />
+              </el-select>
+            </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
@@ -109,6 +147,7 @@
 import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
 import {userListNoPageByTenantId} from "@/api/system/user.js";
 import {productionDispatch} from "@/api/productionManagement/productionOrder.js";
+import {getDeptPositionTree} from "@/api/lavorissce/issue.js";
 import useUserStore from "@/store/modules/user.js";
 import dayjs from "dayjs";
 const { proxy } = getCurrentInstance()
@@ -127,15 +166,20 @@
 		schedulingDate: "",
 		pendingQuantity: "",
 		speculativeTradingName: "", // 缁戝畾鏈哄櫒鍚嶇О
+		lineId: "", // 浜х嚎ID
+		productionUserId: "", // 鐢熶骇浜篒D
   },
   rules: {
 		schedulingNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
 		schedulingUserId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
 		schedulingDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
+		lineId: [{ required: true, message: "璇烽�夋嫨浜х嚎", trigger: "change" },],
+		productionUserId: [{ required: true, message: "璇烽�夋嫨鐢熶骇浜�", trigger: "change" },],
   },
 });
 const { form, rules } = toRefs(data);
 const userList = ref([])
+const lineList = ref([])
 const userStore = useUserStore()
 
 
@@ -146,6 +190,9 @@
 	userListNoPageByTenantId().then((res) => {
 		userList.value = res.data;
 	});
+	getDeptPositionTree().then((res) => {
+		lineList.value = res.data;
+	});
 	form.value = {...row}
 	form.value.schedulingNum = 0
 	form.value.schedulingUserId = userStore.id
diff --git a/src/views/productionManagement/productionDispatching/index.vue b/src/views/productionManagement/productionDispatching/index.vue
index 0732740..5f99906 100644
--- a/src/views/productionManagement/productionDispatching/index.vue
+++ b/src/views/productionManagement/productionDispatching/index.vue
@@ -1,32 +1,32 @@
 <template>
 	<div class="app-container">
 		<!-- 鐐掓満1-4 灞曠ず锛堟�婚噺 / 姝e湪鐢熶骇閲� / 绌轰綑閲忥級 -->
-		<div class="machines-grid">
-			<div v-for="machine in machines" :key="machine.id" class="machine-card">
-				<div class="machine-title">{{ machine.name }}</div>
-				<div class="machine-metrics">
-				<div class="machine-control">
-					<span>鎬婚噺(kg)锛�</span>
-					<el-input-number v-model="machineData[machine.name].workLoad" :min="0" :step="1" size="small" />
-				</div>
-				<div><span> 棰勮鎶曞叆閲�(kg)锛�</span><span>{{ machineData[machine.name].currentWorkLoad }}</span></div>
-				<div><span>绌轰綑宸ヤ綔閲�(kg)锛�</span><span>{{ machineData[machine.name].vacant }}</span></div>
-			</div>
-			</div>
-			<div class="save-button-container">
-				<div class="loss-rate-container">
-					<span class="loss-rate-label">鎹熻�楃巼(%)锛�</span>
-					<el-select v-model="rate" placeholder="璇烽�夋嫨鎹熻�楃巼" style="width: 120px" size="small">
-						<el-option label="6" :value="6" />
-						<el-option label="7" :value="7" />
-						<el-option label="8" :value="8" />
-						<el-option label="9" :value="9" />
-						<el-option label="10" :value="10" />
-					</el-select>
-				</div>
-				<el-button type="primary" @click="saveMachineTotals" size="small">淇濆瓨璁剧疆</el-button>
-			</div>
-		</div>
+<!--		<div class="machines-grid">-->
+<!--			<div v-for="machine in machines" :key="machine.id" class="machine-card">-->
+<!--				<div class="machine-title">{{ machine.name }}</div>-->
+<!--				<div class="machine-metrics">-->
+<!--				<div class="machine-control">-->
+<!--					<span>鎬婚噺(kg)锛�</span>-->
+<!--					<el-input-number v-model="machineData[machine.name].workLoad" :min="0" :step="1" size="small" />-->
+<!--				</div>-->
+<!--				<div><span> 棰勮鎶曞叆閲�(kg)锛�</span><span>{{ machineData[machine.name].currentWorkLoad }}</span></div>-->
+<!--				<div><span>绌轰綑宸ヤ綔閲�(kg)锛�</span><span>{{ machineData[machine.name].vacant }}</span></div>-->
+<!--			</div>-->
+<!--			</div>-->
+<!--			<div class="save-button-container">-->
+<!--				<div class="loss-rate-container">-->
+<!--					<span class="loss-rate-label">鎹熻�楃巼(%)锛�</span>-->
+<!--					<el-select v-model="rate" placeholder="璇烽�夋嫨鎹熻�楃巼" style="width: 120px" size="small">-->
+<!--						<el-option label="6" :value="6" />-->
+<!--						<el-option label="7" :value="7" />-->
+<!--						<el-option label="8" :value="8" />-->
+<!--						<el-option label="9" :value="9" />-->
+<!--						<el-option label="10" :value="10" />-->
+<!--					</el-select>-->
+<!--				</div>-->
+<!--				<el-button type="primary" @click="saveMachineTotals" size="small">淇濆瓨璁剧疆</el-button>-->
+<!--			</div>-->
+<!--		</div>-->
 		<div class="search_form">
 			<div>
 				<span class="search_title">瀹㈡埛鍚嶇О锛�</span>
@@ -126,11 +126,11 @@
 		prop: "specificationModel",
 		width: 120,
 	},
-	{
-		label: "缁戝畾鏈哄櫒",
-		prop: "speculativeTradingName",
-		width: 220,
-	},
+	// {
+	// 	label: "缁戝畾鏈哄櫒",
+	// 	prop: "speculativeTradingName",
+	// 	width: 220,
+	// },
 	{
 		label: "鍗曚綅",
 		prop: "unit",
diff --git a/src/views/productionManagement/productionReporting/components/formDia.vue b/src/views/productionManagement/productionReporting/components/formDia.vue
index e5adbc2..617ca4a 100644
--- a/src/views/productionManagement/productionReporting/components/formDia.vue
+++ b/src/views/productionManagement/productionReporting/components/formDia.vue
@@ -113,6 +113,10 @@
 		userList.value = res.data;
 	});
 	form.value = {...row}
+	// 浼樺厛浣跨敤閫変腑鏁版嵁鐨刾roductionUserId浣滀负鐢熶骇浜�
+	if (row?.productionUserId) {
+		form.value.schedulingUserId = row.productionUserId;
+	}
 }
 
 const changeNum = (value) => {
diff --git a/src/views/productionManagement/productionReporting/index.vue b/src/views/productionManagement/productionReporting/index.vue
index bbe8f77..789c097 100644
--- a/src/views/productionManagement/productionReporting/index.vue
+++ b/src/views/productionManagement/productionReporting/index.vue
@@ -228,11 +228,11 @@
 		prop: "specificationModel",
 		width: 150,
 	},
-	{
-		label: "缁戝畾鏈哄櫒",
-		prop: "speculativeTradingName",
-		width: 220,
-	},
+	// {
+	// 	label: "缁戝畾鏈哄櫒",
+	// 	prop: "speculativeTradingName",
+	// 	width: 220,
+	// },
 	{
 		label: "鍗曚綅",
 		prop: "unit",
@@ -246,11 +246,11 @@
 	// 	prop: "type",
 	// 	width: 150,
 	// },
-	{
-		label: "鎹熻��",
-		prop: "loss",
-		width: 150,
-	},
+	// {
+	// 	label: "鎹熻��",
+	// 	prop: "loss",
+	// 	width: 150,
+	// },
 	{
 		label: "鎺掍骇鏁伴噺",
 		prop: "schedulingNum",
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index eeebec6..9ceb99d 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -169,7 +169,7 @@
           <el-table-column align="center" label="搴忓彿" type="index" width="60" />
           <el-table-column label="浜у搧澶х被" prop="productCategory" />
           <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
-          <el-table-column label="缁戝畾鏈哄櫒" prop="speculativeTradingName" />
+<!--          <el-table-column label="缁戝畾鏈哄櫒" prop="speculativeTradingName" />-->
           <el-table-column label="鍗曚綅" prop="unit" />
           <el-table-column label="鏁伴噺" prop="quantity" />
           <el-table-column label="绋庣巼(%)" prop="taxRate" />
@@ -237,13 +237,13 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
-          <el-col :span="24">
-            <el-form-item label="缁戝畾鏈哄櫒锛�">
-              <el-input v-model="productForm.speculativeTradingName" placeholder="璇峰厛閫夋嫨瑙勬牸鍨嬪彿" clearable disabled />
-            </el-form-item>
-          </el-col>
-        </el-row>
+<!--        <el-row :gutter="30">-->
+<!--          <el-col :span="24">-->
+<!--            <el-form-item label="缁戝畾鏈哄櫒锛�">-->
+<!--              <el-input v-model="productForm.speculativeTradingName" placeholder="璇峰厛閫夋嫨瑙勬牸鍨嬪彿" clearable disabled />-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="鍗曚綅锛�" prop="unit">

--
Gitblit v1.9.3