From e61eb3be4fc933c67cbe3a1a9d08d41ac2d26a1b Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期三, 18 三月 2026 11:48:13 +0800
Subject: [PATCH] Merge branch 'dev_衡阳_鹏创电子' of http://114.132.189.42:9002/r/product-inventory-management into dev_衡阳_鹏创电子
---
src/views/productionManagement/productionOrder/index.vue | 152 ++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 122 insertions(+), 30 deletions(-)
diff --git a/src/views/productionManagement/productionOrder/index.vue b/src/views/productionManagement/productionOrder/index.vue
index b1d5ab1..7018d63 100644
--- a/src/views/productionManagement/productionOrder/index.vue
+++ b/src/views/productionManagement/productionOrder/index.vue
@@ -1,24 +1,25 @@
+<!-- 鐢熶骇璁㈠崟 -->
<template>
<div class="app-container">
<div class="search_form">
<el-form :model="searchForm"
:inline="true">
- <el-form-item label="瀹㈡埛鍚嶇О:">
+ <!-- <el-form-item label="瀹㈡埛鍚嶇О:">
<el-input v-model="searchForm.customerName"
placeholder="璇疯緭鍏�"
clearable
prefix-icon="Search"
style="width: 160px;"
@change="handleQuery" />
- </el-form-item>
- <el-form-item label="鍚堝悓鍙�:">
+ </el-form-item> -->
+ <!-- <el-form-item label="鍚堝悓鍙�:">
<el-input v-model="searchForm.salesContractNo"
placeholder="璇疯緭鍏�"
clearable
prefix-icon="Search"
style="width: 160px;"
@change="handleQuery" />
- </el-form-item>
+ </el-form-item> -->
<el-form-item label="浜у搧鍚嶇О:">
<el-input v-model="searchForm.productCategory"
placeholder="璇疯緭鍏�"
@@ -41,6 +42,8 @@
</el-form-item>
</el-form>
<div>
+ <el-button type="primary" @click="isShowNewModal = true">鏂板</el-button>
+ <el-button type="danger" @click="handleDelete">鍒犻櫎</el-button>
<el-button @click="handleOut">瀵煎嚭</el-button>
</div>
</div>
@@ -51,13 +54,17 @@
:page="page"
:tableLoading="tableLoading"
:row-class-name="tableRowClassName"
+ :isSelection="true"
+ @selection-change="handleSelectionChange"
@pagination="pagination">
<template #completionStatus="{ row }">
- <el-progress
- :percentage="toProgressPercentage(row?.completionStatus)"
- :color="progressColor(toProgressPercentage(row?.completionStatus))"
- :status="toProgressPercentage(row?.completionStatus) >= 100 ? 'success' : ''"
- />
+ <div class="progress-link" @click="goProductionDetail(row)">
+ <el-progress
+ :percentage="toProgressPercentage(row?.completionStatus)"
+ :color="progressColor(toProgressPercentage(row?.completionStatus))"
+ :status="toProgressPercentage(row?.completionStatus) >= 100 ? 'success' : ''"
+ />
+ </div>
</template>
</PIMTable>
</div>
@@ -86,6 +93,10 @@
</span>
</template>
</el-dialog>
+
+ <new-product-order v-if="isShowNewModal"
+ v-model:visible="isShowNewModal"
+ @completed="handleQuery" />
</div>
</template>
@@ -98,29 +109,54 @@
productOrderListPage,
listProcessRoute,
bindingRoute,
- listProcessBom,
+ listProcessBom, delProductOrder,
} from "@/api/productionManagement/productionOrder.js";
import { listMain as getOrderProcessRouteMain } from "@/api/productionManagement/productProcessRoute.js";
+ import {fileDel} from "@/api/financialManagement/revenueManagement.js";
+ import PIMTable from "@/components/PIMTable/PIMTable.vue";
+ const NewProductOrder = defineAsyncComponent(() => import("@/views/productionManagement/productionOrder/New.vue"));
+
const { proxy } = getCurrentInstance();
+ const { priority_type } = proxy.useDict("priority_type");
const router = useRouter();
+ const isShowNewModal = ref(false);
const tableColumn = ref([
+ {
+ label: "浼樺厛绾�",
+ prop: "priority",
+ width: '100px',
+ dataType: "tag",
+ formatData: val => proxy.selectDictLabel(priority_type.value, val),
+ formatType: val => {
+ const v = Number(val);
+ if (v === 0) return "danger"; // 绾㈣壊
+ if (v === 1) return "warning"; // 榛勮壊
+ if (v === 2) return "success"; // 缁胯壊
+ return "";
+ },
+ },
+ {
+ label: "鐢熶骇鎵瑰彿",
+ prop: "lotNo",
+ width: '120px',
+ },
{
label: "鐢熶骇璁㈠崟鍙�",
prop: "npsNo",
width: '120px',
},
- {
- label: "閿�鍞悎鍚屽彿",
- prop: "salesContractNo",
- width: '150px',
- },
- {
- label: "瀹㈡埛鍚嶇О",
- prop: "customerName",
- width: '200px',
- },
+ // {
+ // label: "閿�鍞悎鍚屽彿",
+ // prop: "salesContractNo",
+ // width: '150px',
+ // },
+ // {
+ // label: "瀹㈡埛鍚嶇О",
+ // prop: "customerName",
+ // width: '200px',
+ // },
{
label: "浜у搧鍚嶇О",
prop: "productCategory",
@@ -179,6 +215,7 @@
{
name: "宸ヨ壓璺嚎",
type: "text",
+ showHide: row => row.processRouteCode,
clickFun: row => {
showRouteItemModal(row);
},
@@ -208,6 +245,7 @@
size: 100,
total: 0,
});
+ const selectedRows = ref([]);
const data = reactive({
searchForm: {
@@ -239,13 +277,18 @@
// 娣诲姞琛ㄨ绫诲悕鏂规硶
const tableRowClassName = ({ row }) => {
- switch (row.deliveryDaysDiff) {
- case 15:
- return 'yellow'
- case 10:
- return 'red'
- case 2:
- return 'purple'
+ if (!row.deliveryDate) return '';
+ if (row.isFh) return '';
+
+ const diff = row.deliveryDaysDiff;
+ if (diff === 15) {
+ return 'yellow';
+ } else if (diff === 10) {
+ return 'pink';
+ } else if (diff === 2) {
+ return 'purple';
+ } else if (diff < 2) {
+ return 'red';
}
};
@@ -382,6 +425,47 @@
});
};
+ const goProductionDetail = (row) => {
+ if (!row) return;
+ router.push({
+ path: "/productionManagement/productionOrder/detail",
+ query: {
+ orderId: row.id,
+ npsNo: row.npsNo || "",
+ lotNo: row.lotNo || "",
+ productCategory: row.productCategory || "",
+ specificationModel: row.specificationModel || "",
+ },
+ });
+ };
+
+ // 琛ㄦ牸閫夋嫨鏁版嵁
+ const handleSelectionChange = (selection) => {
+ selectedRows.value = selection;
+ };
+
+ const handleDelete = () => {
+ let ids = [];
+ if (selectedRows.value.length > 0) {
+ ids = selectedRows.value.map((item) => item.id);
+ } else {
+ proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
+ return;
+ }
+ ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ }).then(() => {
+ delProductOrder(ids).then((res) => {
+ proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ getList();
+ });
+ }).catch(() => {
+ proxy.$modal.msg("宸插彇娑�");
+ });
+ };
+
// 瀵煎嚭
const handleOut = () => {
ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
@@ -410,14 +494,22 @@
}
::v-deep .yellow {
- background-color: #e8b183;
+ background-color: #FAF0DE;
+}
+
+::v-deep .pink {
+ background-color: #FAE1DE;
}
::v-deep .red {
- background-color: #e35050;
+ background-color: #f80202;
}
::v-deep .purple{
- background-color: #c484dd;
+ background-color: #F4DEFA;
}
+.progress-link {
+ cursor: pointer;
+}
+
</style>
--
Gitblit v1.9.3