From 86d49bfd45dff8e89b7a102eeeff3e2fe86b7871 Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期四, 08 一月 2026 18:08:47 +0800
Subject: [PATCH] 1、华玺砂浆采购代码移植至军泰伟业 2、华玺砂浆发货和发货审核代码移植至军泰伟业 3、华玺砂浆报修和报修审核代码移植至军泰伟业
---
src/views/inventoryManagement/issueManagement/index.vue | 195 ++++++++++++++++++++++--------------------------
1 files changed, 91 insertions(+), 104 deletions(-)
diff --git a/src/views/inventoryManagement/issueManagement/index.vue b/src/views/inventoryManagement/issueManagement/index.vue
index d283332..57ac9be 100644
--- a/src/views/inventoryManagement/issueManagement/index.vue
+++ b/src/views/inventoryManagement/issueManagement/index.vue
@@ -1,19 +1,9 @@
<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 ml10">鍏ュ簱鏃ユ湡锛�</span>
- <el-date-picker
- v-model="searchForm.timeStr"
- type="date"
- placeholder="璇烽�夋嫨鏃ユ湡"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- clearable
- @change="handleQuery"
- />
<span class="search_title ml10">浜у搧澶х被锛�</span>
<el-input
v-model="searchForm.productCategory"
@@ -32,36 +22,25 @@
: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" label="搴忓彿" type="index" width="60" />
- <el-table-column label="鍏ュ簱鏃堕棿" prop="createTime" width="100" show-overflow-tooltip />
+ <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" width="180" 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="inboundNum" width="90" show-overflow-tooltip />
<el-table-column label="鍓╀綑搴撳瓨" prop="inboundNum0" width="90" show-overflow-tooltip />
<el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center">
<template #default="scope">
- <el-button link type="primary" size="small" @click="openForm(scope.row);">棰嗙敤</el-button>
+ <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>
- <el-tab-pane label="閲囪喘鍑哄簱" name="purchase">
+ <el-tab-pane label="鍘熸枡鍑哄簱" name="purchase">
<div class="search_form">
<div>
- <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"
- />
<span class="search_title ml10">浜у搧澶х被锛�</span>
<el-input
v-model="searchForm.productCategory"
@@ -81,22 +60,16 @@
: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="productCategory" show-overflow-tooltip />
- <el-table-column label="浜у搧楂樺害" prop="specificationModel" width="100" show-overflow-tooltip>
- <template #default="scope">
- <div>{{ scope.row.specificationModel }}{{ scope.row.unit }}</div>
- </template>
- </el-table-column>
- <el-table-column label="鍏ュ簱鏁伴噺/浠�" prop="inboundNum" width="100" show-overflow-tooltip />
- <el-table-column label="姣忎欢鏁伴噺/鏀�" prop="boxNum" width="100" show-overflow-tooltip />
- <el-table-column label="鍓╀綑搴撳瓨" prop="inboundNum0" width="90" show-overflow-tooltip />
- <el-table-column label="鍗曚环(鍏�)/浠�" prop="taxInclusiveUnitPrice" width="150"></el-table-column>
- <el-table-column label="绾哥瑙勬牸" prop="cartonSpecifications" width="150"></el-table-column>
- <el-table-column label="鍏ュ簱浜�" prop="createBy" width="80" show-overflow-tooltip />
+ <el-table-column label="閲囪喘鍚堝悓鍙�" prop="purchaseContractNumber" width="180" 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="inboundNum0" width="90" show-overflow-tooltip />
+ <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" width="150"></el-table-column>
+ <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" width="150"></el-table-column>
<el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center">
<template #default="scope">
- <el-button link type="primary" size="small" @click="openForm(scope.row);" :disabled="!scope.row.inboundNum0">棰嗙敤</el-button>
+ <el-button link type="primary" size="small" @click="openForm(scope.row);">棰嗙敤</el-button>
</template>
</el-table-column>
</el-table>
@@ -105,22 +78,9 @@
</div>
</el-tab-pane>
- <el-tab-pane label="鎴愬搧鍑哄簱" name="manual">
+ <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"
- />
<span class="search_title ml10">浜у搧澶х被锛�</span>
<el-input
v-model="searchForm.productCategory"
@@ -138,29 +98,17 @@
<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" type="selection" width="55" />
<el-table-column align="center" label="搴忓彿" type="index" width="60" />
- <el-table-column label="浜у搧鍥剧墖" width="100" align="center">
- <template #default="scope">
- <img class="barcode-img" :src="javaApiUrl+scope.row.url"></img>
- </template>
- </el-table-column>
- <el-table-column label="鍏ュ簱鏃堕棿" prop="inboundDate" width="100" show-overflow-tooltip />
- <el-table-column label="浜у搧鍚嶇О" prop="productCategory" show-overflow-tooltip />
- <el-table-column label="浜у搧楂樺害" prop="specificationModel" width="100" show-overflow-tooltip>
- <template #default="scope">
- <div>{{ scope.row.specificationModel }}{{ scope.row.unit }}</div>
- </template>
- </el-table-column>
- <el-table-column label="鍏ュ簱鏁伴噺/浠�" prop="inboundNum" width="100" show-overflow-tooltip />
- <el-table-column label="姣忎欢鏁伴噺/鏀�" prop="boxNum" width="100" show-overflow-tooltip />
- <el-table-column label="鍓╀綑搴撳瓨" prop="inboundNum0" width="90" show-overflow-tooltip />
- <el-table-column label="鍗曚环(缇庡厓)/浠�" prop="taxInclusiveUnitPrice" width="150"></el-table-column>
- <el-table-column label="绾哥瑙勬牸" prop="cartonSpecifications" width="150"></el-table-column>
- <el-table-column label="鍏ュ簱浜�" prop="createBy" width="150" show-overflow-tooltip />
+ <el-table-column label="鎵规鍙�" prop="code" width="130" 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="inboundNum0" width="90" 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);" :disabled="!scope.row.inboundNum0">棰嗙敤</el-button>
+ <el-button link type="primary" size="small" @click="openForm(scope.row);">棰嗙敤</el-button>
</template>
</el-table-column>
</el-table>
@@ -169,17 +117,17 @@
</div>
</el-tab-pane>
</el-tabs>
- <el-dialog v-model="dialogFormVisible" :title="'鏂板鍑哄簱'" width="40%" @close="closeDia">
+ <el-dialog v-model="dialogFormVisible" :title="getDialogTitle()" width="40%" @close="closeDia">
<el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
- <div>鍙嚭搴撴暟閲�:{{currentRowNum}}</div>
- <el-form-item label="鍑哄簱鏁伴噺锛�" prop="salesContractNo">
- <el-input-number :step="1" :min="0" :max="currentRowNum" style="width: 100%" v-model="form.inboundQuantity" placeholder="璇疯緭鍏�" clearable />
+ <div>{{getAvailableQuantityText()}}:{{currentRowNum}}</div>
+ <el-form-item :label="getQuantityLabel()" prop="salesContractNo">
+ <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.inboundQuantity" placeholder="璇疯緭鍏�" clearable />
</el-form-item>
- <el-form-item label="鍑哄簱鏃ユ湡锛�" prop="projectName">
+ <el-form-item :label="getDateLabel()" prop="projectName">
<el-date-picker style="width: 100%" v-model="form.inboundTime" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
type="date" placeholder="璇烽�夋嫨" clearable />
</el-form-item>
- <el-form-item label="鍑哄簱浜猴細" prop="entryPerson">
+ <el-form-item :label="getPersonLabel()" prop="entryPerson">
<el-select v-model="form.nickName" filterable
default-first-option
:reserve-keyword="false" placeholder="璇烽�夋嫨" clearable>
@@ -213,7 +161,6 @@
delStockManage,
stockOut,
} from "@/api/inventoryManagement/stockManage.js";
-const javaApiUrl = __BASE_API__;
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
@@ -230,12 +177,12 @@
// 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
const dialogFormVisible = ref(false)
-const activeTab = ref('purchase')
+const activeTab = ref('production')
const data = reactive({
searchForm: {
supplierName: '',
customerName: '',
- inboundQuantity:0,
+ inboundQuantity:'',
inboundTime:'',
nickName: '',
userId: '',
@@ -296,7 +243,7 @@
page.current = 1
searchForm.value.supplierName = ''
searchForm.value.customerName = ''
- searchForm.value.timeStr = getCurrentDate() // 閲嶇疆涓哄綋鍓嶆棩鏈�
+ searchForm.value.timeStr = ''
selectedRows.value = []
searchForm.value.productCategory = ''
getList()
@@ -343,7 +290,7 @@
// 鍒濆鍖栬〃鍗曟暟鎹�
form.value = {
productrecordId: '',
- inboundQuantity: 0, // 鍑哄簱鏁伴噺娓呯┖
+ inboundQuantity: '', // 鍑哄簱鏁伴噺娓呯┖
inboundTime: getCurrentDate(), // 榛樿褰撳墠鏃ユ湡
nickName: '', // 榛樿褰撳墠鐢ㄦ埛
}
@@ -361,13 +308,7 @@
const submitForm = () => {
let num = Number(form.value.inboundQuantity)
if(num <= 0 || num > currentRowNum.value){
- return proxy.$modal.msgWarning("璇峰~鍐欏嚭搴撴暟閲�")
- }
- if(!form.value.nickName){
- return proxy.$modal.msgWarning("璇烽�夋嫨鍑哄簱浜�")
- }
- if(!form.value.inboundTime){
- return proxy.$modal.msgWarning("璇烽�夋嫨鍑哄簱鏃堕棿")
+ return proxy.$modal.msgWarning("璇峰~鍏ユ湁鏁堟暟瀛�")
}
proxy.$refs["formRef"].validate(valid => {
if (valid && currentRowId.value) {
@@ -409,13 +350,13 @@
}
).then(() => {
// 鏍规嵁涓嶅悓鐨� tab 绫诲瀷璋冪敤涓嶅悓鐨勫鍑烘帴鍙�
- let exportUrl = "/stockmanagement/export"
+ let exportUrl = "/stockin/export"
if (activeTab.value === 'production') {
- exportUrl = "/stockmanagement/exportOne"
+ exportUrl = "/stockin/exportOne"
} else if (activeTab.value === 'manual') {
- exportUrl = "/stockmanagement/exportTwo"
+ exportUrl = "/stockin/exportTwo"
}
- proxy.download(exportUrl, {}, '鍑哄簱鍙拌处.xlsx')
+ proxy.download(exportUrl, {}, '鍏ュ簱鍙拌处.xlsx')
}).catch(() => {
proxy.$modal.msg("宸插彇娑�")
})
@@ -453,16 +394,62 @@
const day = String(today.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
+
+// 鏍规嵁tab绫诲瀷鑾峰彇寮规鏍囬
+const getDialogTitle = () => {
+ const titleMap = {
+ production: '鏂板鍙戣揣',
+ purchase: '鏂板棰嗙敤',
+ manual: '鏂板棰嗙敤'
+ };
+ return titleMap[activeTab.value] || '鏂板鍑哄簱';
+};
+
+// 鏍规嵁tab绫诲瀷鑾峰彇鍙嚭搴撴暟閲忔枃鏈�
+const getAvailableQuantityText = () => {
+ const textMap = {
+ production: '鍙彂璐ф暟閲�',
+ purchase: '鍙鐢ㄦ暟閲�',
+ manual: '鍙鐢ㄦ暟閲�'
+ };
+ return textMap[activeTab.value] || '鍙嚭搴撴暟閲�';
+};
+
+// 鏍规嵁tab绫诲瀷鑾峰彇鏁伴噺瀛楁鏍囩
+const getQuantityLabel = () => {
+ const labelMap = {
+ production: '鍙戣揣鏁伴噺锛�',
+ purchase: '棰嗙敤鏁伴噺锛�',
+ manual: '棰嗙敤鏁伴噺锛�'
+ };
+ return labelMap[activeTab.value] || '鍑哄簱鏁伴噺锛�';
+};
+
+// 鏍规嵁tab绫诲瀷鑾峰彇鏃ユ湡瀛楁鏍囩
+const getDateLabel = () => {
+ const labelMap = {
+ production: '鍙戣揣鏃ユ湡锛�',
+ purchase: '棰嗙敤鏃ユ湡锛�',
+ manual: '棰嗙敤鏃ユ湡锛�'
+ };
+ return labelMap[activeTab.value] || '鍑哄簱鏃ユ湡锛�';
+};
+
+// 鏍规嵁tab绫诲瀷鑾峰彇浜哄憳瀛楁鏍囩
+const getPersonLabel = () => {
+ const labelMap = {
+ production: '鍙戣揣浜猴細',
+ purchase: '棰嗙敤浜猴細',
+ manual: '棰嗙敤浜猴細'
+ };
+ return labelMap[activeTab.value] || '鍑哄簱浜猴細';
+};
+
onMounted(() => {
getList()
})
</script>
-<style scoped lang="scss">
- .barcode-img{
- width: 80px;
- height: 80px;
- border-radius: 5px;
- background-color: #F5F5F5;
- }
-</style>
+<style scoped lang="scss"></style>
+
+
--
Gitblit v1.9.3