From fb33ed0dcc183db8d72fcdfc831a137150797ee2 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期四, 03 七月 2025 17:09:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/inventoryManagement/receiptManagement/index.vue | 139 ++++++---------- src/views/inventoryManagement/issueManagement/index.vue | 12 src/views/inventoryManagement/stockManagement/index.vue | 8 src/views/inventoryManagement/dispatchLog/index.vue | 262 +------------------------------- 4 files changed, 74 insertions(+), 347 deletions(-) diff --git a/src/views/inventoryManagement/dispatchLog/index.vue b/src/views/inventoryManagement/dispatchLog/index.vue index 7ad8196..8d4a600 100644 --- a/src/views/inventoryManagement/dispatchLog/index.vue +++ b/src/views/inventoryManagement/dispatchLog/index.vue @@ -16,7 +16,7 @@ > </div> <div> - <el-button type="primary" @click="openForm('add')">鏂板</el-button> + <!-- <el-button type="primary" @click="openForm('add')">鏂板</el-button> --> <el-button @click="handleOut">瀵煎嚭</el-button> <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button> </div> @@ -73,27 +73,27 @@ show-overflow-tooltip /> <el-table-column - label="鍚◣鍗曚环" + label="鍚◣鍗曚环(鍏�)" prop="entryDate" width="100" show-overflow-tooltip /> <el-table-column - label="鍚◣鎬讳环" + label="鍚◣鎬讳环(鍏�)" prop="executionDate" width="100" show-overflow-tooltip /> <el-table-column - label="绋庣巼" + label="绋庣巼(%)" prop="executionDate" width="100" show-overflow-tooltip /> <el-table-column - label="涓嶅惈绋庢�讳环" + label="涓嶅惈绋庢�讳环(鍏�)" prop="executionDate" - width="100" + width="180" show-overflow-tooltip /> <el-table-column @@ -102,7 +102,7 @@ width="80" show-overflow-tooltip /> - <el-table-column + <!-- <el-table-column fixed="right" label="鎿嶄綔" min-width="60" @@ -117,7 +117,7 @@ >缂栬緫</el-button > </template> - </el-table-column> + </el-table-column> --> </el-table> <pagination v-show="total > 0" @@ -128,152 +128,6 @@ @pagination="paginationChange" /> </div> - <el-dialog - v-model="dialogFormVisible" - :title="operationType === 'add' ? '鏂板鍑哄簱' : '缂栬緫鍑哄簱'" - width="70%" - @close="closeDia" - > - <el-form - :model="form" - label-width="140px" - label-position="top" - :rules="rules" - ref="formRef" - > - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="渚涘簲鍟嗗悕绉帮細" prop="salesContractNo"> - <el-input - v-model="form.salesContractNo" - placeholder="璇疯緭鍏�" - clearable - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="浜у搧澶х被锛�" prop="salesman"> - <el-select v-model="form.salesman" placeholder="璇烽�夋嫨" clearable> - <el-option - v-for="item in userList" - :key="item.nickName" - :label="item.nickName" - :value="item.nickName" - /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="customerContractNo"> - <el-input - v-model="form.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鍗曚綅锛�" prop="customerId"> - <el-input - v-model="form.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="鍑哄簱鏃堕棿锛�" prop="projectName"> - <el-date-picker - style="width: 100%" - v-model="form.entryDate" - value-format="YYYY-MM-DD" - format="YYYY-MM-DD" - type="date" - placeholder="璇烽�夋嫨" - clearable - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鍑哄簱鏁伴噺锛�" prop="customerContractNo"> - <el-input - v-model="form.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="鍚◣鍗曚环锛�" prop="customerId"> - <el-input - v-model="form.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鍚◣鎬讳环锛�" prop="customerContractNo"> - <el-input - v-model="form.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="绋庣巼锛�" prop="customerId"> - <el-input - v-model="form.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="涓嶅惈绋庢�讳环锛�" prop="entryDate"> - <el-input - v-model="form.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="鍑哄簱浜猴細" prop="entryPerson"> - <el-select - v-model="form.entryPerson" - placeholder="璇烽�夋嫨" - clearable - > - <el-option - v-for="item in userList" - :key="item.userId" - :label="item.nickName" - :value="item.userId" - /> - </el-select> - </el-form-item> - </el-col> - </el-row> - </el-form> - <template #footer> - <div class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭</el-button> - <el-button @click="closeDia">鍙栨秷</el-button> - </div> - </template> - </el-dialog> </div> </template> @@ -312,31 +166,8 @@ searchForm: { customerName: "", }, - form: { - salesContractNo: "", - salesman: "", - customerContractNo: "", - customerId: "", - projectName: "", - entryPerson: "", - entryDate: "", - maintenanceTime: "", - productData: [], - executionDate: "", - }, - rules: { - salesman: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], - customerContractNo: [ - { required: true, message: "璇疯緭鍏�", trigger: "blur" }, - ], - customerId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], - projectName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], - entryPerson: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], - entryDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], - executionDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], - }, }); -const { searchForm, form, rules } = toRefs(data); +const { searchForm } = toRefs(data); // 鏌ヨ鍒楄〃 /** 鎼滅储鎸夐挳鎿嶄綔 */ @@ -364,20 +195,6 @@ tableLoading.value = false; }); }; -const findNodeById = (nodes, productId) => { - for (let i = 0; i < nodes.length; i++) { - if (nodes[i].value === productId) { - return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣 - } - if (nodes[i].children && nodes[i].children.length > 0) { - const foundNode = findNodeById(nodes[i].children, productId); - if (foundNode) { - return foundNode.label; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐� - } - } - } - return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull -}; // 琛ㄦ牸閫夋嫨鏁版嵁 const handleSelectionChange = (selection) => { // 杩囨护鎺夊瓙鏁版嵁 @@ -393,67 +210,6 @@ "taxInclusiveTotalPrice", "taxExclusiveTotalPrice", ]); -}; - -// 鎵撳紑寮规 -const openForm = async (type, row) => { - operationType.value = type; - form.value = {}; - productData.value = []; - let userLists = await userListNoPage(); - userList.value = userLists.data; - customerList().then((res) => { - customerOption.value = res; - }); - console.log("userStore.id", userStore.id); - form.value.entryPerson = userStore.id; - if (type === "edit") { - currentId.value = row.id; - getSalesLedgerWithProducts({ id: row.id, type: 1 }).then((res) => { - form.value = { ...res }; - form.value.entryPerson = Number(res.entryPerson); - productData.value = form.value.productData; - fileList.value = form.value.salesLedgerFiles; - }); - } - // let userAll = await userStore.getInfo() - // userList.value.forEach(element => { - // if(userAll.user.nickName === element.nickName && userAll.user.userName === element.userName) { - // form.value.entryPerson = userAll.user.userId // 璁剧疆榛樿涓氬姟鍛樹负褰撳墠鐢ㄦ埛 - // } - // }); - form.value.entryDate = getCurrentDate(); // 璁剧疆榛樿褰曞叆鏃ユ湡涓哄綋鍓嶆棩鏈� - dialogFormVisible.value = true; -}; - -// 鎻愪氦琛ㄥ崟 -const submitForm = () => { - proxy.$refs["formRef"].validate((valid) => { - if (valid) { - if (productData.value.length > 0) { - form.value.productData = proxy.HaveJson(productData.value); - } else { - proxy.$modal.msgWarning("璇锋坊鍔犱骇鍝佷俊鎭�"); - return; - } - let tempFileIds = []; - if (fileList.value.length > 0) { - tempFileIds = fileList.value.map((item) => item.tempId); - } - form.value.tempFileIds = tempFileIds; - form.value.type = 1; - addOrUpdateSalesLedger(form.value).then((res) => { - proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); - closeDia(); - getList(); - }); - } - }); -}; -// 鍏抽棴寮规 -const closeDia = () => { - proxy.resetForm("formRef"); - dialogFormVisible.value = false; }; // 瀵煎嚭 diff --git a/src/views/inventoryManagement/issueManagement/index.vue b/src/views/inventoryManagement/issueManagement/index.vue index 5b1088a..d7f5216 100644 --- a/src/views/inventoryManagement/issueManagement/index.vue +++ b/src/views/inventoryManagement/issueManagement/index.vue @@ -10,7 +10,7 @@ <div> <!-- <el-button type="primary" @click="openForm('add')">鏂板鍑哄簱</el-button> --> <el-button @click="handleOut">瀵煎嚭</el-button> - <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button> + <!-- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button> --> </div> </div> <div class="table_list"> @@ -26,21 +26,21 @@ <el-table-column label="瑙勬牸鍨嬪彿" prop="projectName" width="160" show-overflow-tooltip /> <el-table-column label="鍗曚綅" prop="contractAmount" width="70" show-overflow-tooltip /> <el-table-column label="鍏ュ簱鏁伴噺" prop="entryPersonName" width="90" show-overflow-tooltip /> - <el-table-column label="鍚◣鍗曚环" prop="entryDate" width="100" show-overflow-tooltip /> - <el-table-column label="鍚◣鎬讳环" prop="executionDate" width="100" show-overflow-tooltip /> + <el-table-column label="鍚◣鍗曚环(鍏�)" prop="entryDate" width="100" show-overflow-tooltip /> + <el-table-column label="鍚◣鎬讳环(鍏�)" prop="executionDate" width="100" show-overflow-tooltip /> <el-table-column label="绋庣巼(%)" prop="executionDate" width="80" show-overflow-tooltip /> - <el-table-column label="涓嶅惈绋庢�讳环" prop="executionDate" width="100" show-overflow-tooltip /> + <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="executionDate" width="180" show-overflow-tooltip /> <el-table-column label="鍏ュ簱浜�" prop="executionDate" width="80" 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-dialog v-model="dialogFormVisible" :title="'鏂板鍑哄簱'" width="40%" @close="closeDia"> + <el-dialog v-model="dialogFormVisible" :title="'棰嗙敤'" width="40%" @close="closeDia"> <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef"> <el-form-item label="鍑哄簱鏁伴噺锛�" prop="salesContractNo"> <el-input v-model="form.salesContractNo" placeholder="璇疯緭鍏�" clearable /> diff --git a/src/views/inventoryManagement/receiptManagement/index.vue b/src/views/inventoryManagement/receiptManagement/index.vue index 7d5caec..8f492ad 100644 --- a/src/views/inventoryManagement/receiptManagement/index.vue +++ b/src/views/inventoryManagement/receiptManagement/index.vue @@ -26,10 +26,10 @@ <el-table-column label="瑙勬牸鍨嬪彿" prop="projectName" width="160" show-overflow-tooltip /> <el-table-column label="鍗曚綅" prop="contractAmount" width="70" show-overflow-tooltip /> <el-table-column label="鍏ュ簱鏁伴噺" prop="entryPersonName" width="90" show-overflow-tooltip /> - <el-table-column label="鍚◣鍗曚环" prop="entryDate" width="100" show-overflow-tooltip /> - <el-table-column label="鍚◣鎬讳环" prop="executionDate" width="100" show-overflow-tooltip /> + <el-table-column label="鍚◣鍗曚环(鍏�)" prop="entryDate" width="100" show-overflow-tooltip /> + <el-table-column label="鍚◣鎬讳环(鍏�)" prop="executionDate" width="100" show-overflow-tooltip /> <el-table-column label="绋庣巼(%)" prop="executionDate" width="80" show-overflow-tooltip /> - <el-table-column label="涓嶅惈绋庢�讳环" prop="executionDate" width="100" show-overflow-tooltip /> + <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="executionDate" width="180" show-overflow-tooltip /> <el-table-column label="鍏ュ簱浜�" prop="executionDate" width="80" show-overflow-tooltip /> <el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center"> <template #default="scope"> @@ -43,84 +43,51 @@ <el-dialog v-model="dialogFormVisible" :title="operationType === 'add' ? '鏂板鍏ュ簱' : '缂栬緫鍏ュ簱'" width="70%" @close="closeDia"> <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef"> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="渚涘簲鍟嗗悕绉帮細" prop="salesContractNo"> + <el-form-item label="閲囪喘璁㈠崟鍙�" prop="salesContractNo"> <el-input v-model="form.salesContractNo" placeholder="璇疯緭鍏�" clearable /> </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="浜у搧澶х被锛�" prop="salesman"> - <el-select v-model="form.salesman" placeholder="璇烽�夋嫨" clearable> - <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" - :value="item.nickName" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="customerContractNo"> - <el-input v-model="form.customerContractNo" placeholder="璇疯緭鍏�" clearable /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鍗曚綅锛�" prop="customerId"> - <el-input v-model="form.customerContractNo" placeholder="璇疯緭鍏�" clearable /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="鍏ュ簱鏃堕棿锛�" prop="projectName"> - <el-date-picker style="width: 100%" v-model="form.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" - type="date" placeholder="璇烽�夋嫨" clearable /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鍏ュ簱鎵规锛�" prop="entryPerson"> - <el-input v-model="form.customerContractNo" placeholder="璇疯緭鍏�" clearable /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="鍏ュ簱鏁伴噺锛�" prop="customerContractNo"> - <el-input v-model="form.customerContractNo" placeholder="璇疯緭鍏�" clearable /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鍚◣鍗曚环锛�" prop="customerId"> - <el-input v-model="form.customerContractNo" placeholder="璇疯緭鍏�" clearable /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="鍚◣鎬讳环锛�" prop="customerContractNo"> - <el-input v-model="form.customerContractNo" placeholder="璇疯緭鍏�" clearable /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="绋庣巼锛�" prop="customerId"> - <el-input v-model="form.customerContractNo" placeholder="璇疯緭鍏�" clearable /> - </el-form-item> - </el-col> - </el-row> - <el-row :gutter="30"> - <el-col :span="12"> - <el-form-item label="涓嶅惈绋庢�讳环锛�" prop="entryDate"> - <el-input v-model="form.customerContractNo" placeholder="璇疯緭鍏�" clearable /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鍏ュ簱浜猴細" prop="entryPerson"> - <el-select v-model="form.entryPerson" placeholder="璇烽�夋嫨" clearable> - <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" /> - </el-select> - </el-form-item> - </el-col> - </el-row> + <el-table + :data="productData" + border + @selection-change="productSelected" + > + <el-table-column align="center" type="selection" width="55" /> + <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="unit" width="70" /> + <el-table-column label="閲囪喘鏁伴噺" prop="quantity" width="100" /> + <el-table-column label="寰呭叆搴撴暟閲�" prop="quantity0" width="100" /> + <el-table-column label="鏈鍏ュ簱鏁伴噺" prop="quantityStock" width="120"> + <template #default="scope"> + <el-input v-model="scope.row.quantityStock" type="number" :min="0" :max="scope.row.quantity0" /> + </template> + </el-table-column> + <el-table-column label="绋庣巼(%)" prop="taxRate" width="120" /> + <el-table-column + label="鍚◣鍗曚环(鍏�)" + prop="taxInclusiveUnitPrice" + :formatter="formattedNumber" + width="150" + /> + <el-table-column + label="鍚◣鎬讳环(鍏�)" + prop="taxInclusiveTotalPrice" + :formatter="formattedNumber" + width="150" + /> + <el-table-column + label="涓嶅惈绋庢�讳环(鍏�)" + prop="taxExclusiveTotalPrice" + :formatter="formattedNumber" + width="150" + /> + </el-table> </el-form> <template #footer> <div class="dialog-footer"> @@ -157,7 +124,6 @@ size: 100, }) const total = ref(0) -const fileList = ref([]) // 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁 const operationType = ref('') @@ -260,7 +226,6 @@ form.value = { ...res } form.value.entryPerson = Number(res.entryPerson) productData.value = form.value.productData - fileList.value = form.value.salesLedgerFiles }) } // let userAll = await userStore.getInfo() @@ -284,9 +249,6 @@ return } let tempFileIds = [] - if (fileList.value.length > 0) { - tempFileIds = fileList.value.map(item => item.tempId) - } form.value.tempFileIds = tempFileIds form.value.type = 1 addOrUpdateSalesLedger(form.value).then(res => { @@ -351,6 +313,15 @@ const day = String(today.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; } + +const productSelectedRows = ref([]) +const productSelected = (selectedRows) => { + productSelectedRows.value = selectedRows; +}; + +const formattedNumber = (row, column, cellValue) => { + return parseFloat(cellValue).toFixed(2); +}; onMounted(() => { getList() }) diff --git a/src/views/inventoryManagement/stockManagement/index.vue b/src/views/inventoryManagement/stockManagement/index.vue index cc7df7d..ec95b99 100644 --- a/src/views/inventoryManagement/stockManagement/index.vue +++ b/src/views/inventoryManagement/stockManagement/index.vue @@ -8,7 +8,7 @@ <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button> </div> <div> - <el-button type="primary" @click="openForm('add')">鏂板</el-button> + <!-- <el-button type="primary" @click="openForm('add')">鏂板</el-button> --> <el-button @click="handleOut">瀵煎嚭</el-button> <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button> </div> @@ -26,10 +26,10 @@ <el-table-column label="瑙勬牸鍨嬪彿" prop="projectName" width="100" show-overflow-tooltip /> <el-table-column label="鍗曚綅" prop="contractAmount" width="80" show-overflow-tooltip /> <el-table-column label="鍑哄簱鏁伴噺" prop="entryPersonName" width="100" show-overflow-tooltip /> - <el-table-column label="鍚◣鍗曚环" prop="entryDate" width="100" show-overflow-tooltip /> - <el-table-column label="鍚◣鎬讳环" prop="executionDate" width="100" show-overflow-tooltip /> + <el-table-column label="鍚◣鍗曚环(鍏�)" prop="entryDate" width="100" show-overflow-tooltip /> + <el-table-column label="鍚◣鎬讳环(鍏�)" prop="executionDate" width="100" show-overflow-tooltip /> <el-table-column label="绋庣巼(%)" prop="executionDate" width="100" show-overflow-tooltip /> - <el-table-column label="涓嶅惈绋庢�讳环" prop="executionDate" width="100" show-overflow-tooltip /> + <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="executionDate" width="180" show-overflow-tooltip /> <el-table-column label="鍏ュ簱浜�" prop="executionDate" width="80" show-overflow-tooltip /> <el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center"> <template #default="scope"> -- Gitblit v1.9.3