From cf1ee9d413456f37d1abc5d8ed23a9875aa15bb1 Mon Sep 17 00:00:00 2001 From: 张诺 <zhang_12370@163.com> Date: 星期一, 26 五月 2025 15:11:26 +0800 Subject: [PATCH] 销售管理>销售台站=》设置新增数据默认日期,添加子产品添加搜索逻辑更改为tree树形式,根据登录的账号匹配用户昵称默认选择当前用户昵称 --- src/views/procurementManagement/procurementLedger/index.vue | 7 +++ src/views/procurementManagement/paymentEntry/index.vue | 2 src/views/salesManagement/salesLedger/index.vue | 106 ++++++++++++++++++++++++++++++++++++++++++++++++----- src/views/procurementManagement/paymentLedger/index.vue | 1 4 files changed, 104 insertions(+), 12 deletions(-) diff --git a/src/views/procurementManagement/paymentEntry/index.vue b/src/views/procurementManagement/paymentEntry/index.vue index 0c2365d..03a7343 100644 --- a/src/views/procurementManagement/paymentEntry/index.vue +++ b/src/views/procurementManagement/paymentEntry/index.vue @@ -22,7 +22,7 @@ <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="閲囪喘鍚堝悓鍙�11111锛�" prop="purchaseLedgerId"> + <el-form-item label="閲囪喘鍚堝悓鍙凤細" prop="purchaseLedgerId"> <el-select v-model="form.purchaseLedgerId" placeholder="璇烽�夋嫨" clearable @change="setInfo" :disabled="operationType === 'edit'"> <el-option v-for="item in purchaseLedgerList" :key="item.id" :label="item.purchaseContractNumber" diff --git a/src/views/procurementManagement/paymentLedger/index.vue b/src/views/procurementManagement/paymentLedger/index.vue index 18c0176..f720960 100644 --- a/src/views/procurementManagement/paymentLedger/index.vue +++ b/src/views/procurementManagement/paymentLedger/index.vue @@ -65,7 +65,6 @@ <PIMTable :column="tableColumnSon" :tableData="tableDataSon" - :page="pageSon" :isSelection="false" :tableLoading="tableLoadingSon" :isShowSummary="isShowSummarySon" diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue index f04b8f2..b836cde 100644 --- a/src/views/procurementManagement/procurementLedger/index.vue +++ b/src/views/procurementManagement/procurementLedger/index.vue @@ -378,6 +378,13 @@ page.current = 1 getList() } +// 瀛愯〃鍚堣鏂规硶 +const summarizeChildrenTable = (param) => { + return proxy.summarizeTable(param, ['taxInclusiveUnitPrice', 'taxInclusiveTotalPrice', 'taxExclusiveTotalPrice', 'ticketsNum', 'ticketsAmount', 'futureTickets', 'futureTicketsAmount'], { + ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + }); +}; const paginationChange = ({ current, limit }) => { page.current = current; page.size = limit; diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue index 78f84e0..d58321b 100644 --- a/src/views/salesManagement/salesLedger/index.vue +++ b/src/views/salesManagement/salesLedger/index.vue @@ -104,7 +104,7 @@ </el-col> <el-col :span="12"> <el-form-item label="褰曞叆浜猴細" prop="entryPerson"> - <el-select v-model="form.entryPerson" placeholder="璇烽�夋嫨" clearable> + <el-select v-model="form.entryPerson" placeholder="璇烽�夋嫨" clearable @change="changs"> <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"/> </el-select> </el-form-item> @@ -121,6 +121,7 @@ type="date" placeholder="璇烽�夋嫨" clearable + disabled /> </el-form-item> </el-col> @@ -193,17 +194,27 @@ <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="浜у搧澶х被锛�" prop="productCategory"> - <el-select v-model="productForm.productCategory" placeholder="璇烽�夋嫨" clearable> + <!-- <el-select v-model="productForm.productCategory" placeholder="璇烽�夋嫨" clearable> <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/> - </el-select> + </el-select> --> + <el-tree-select + v-model="productForm.productCategory" + placeholder="璇烽�夋嫨" clearable + check-strictly + @change="getModels" + :data="productOptions" + :render-after-expand="false" + style="width: 100%" + /> + </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="24"> - <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="specificationModel"> - <el-select v-model="productForm.specificationModel" placeholder="璇烽�夋嫨" clearable> - <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/> + <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="productModelId"> + <el-select v-model="productForm.productModelId" placeholder="璇烽�夋嫨" clearable @change="getProductModel"> + <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id"/> </el-select> </el-form-item> </el-col> @@ -275,6 +286,7 @@ import { ref } from 'vue' import {Search} from "@element-plus/icons-vue"; import {ElMessageBox } from "element-plus"; +import useUserStore from '@/store/modules/user' import {userListNoPage} from "@/api/system/user.js"; import { ledgerList, @@ -283,6 +295,8 @@ addOrUpdateSalesLedger, getSalesLedgerWithProducts, delLedger, addOrUpdateSalesLedgerProduct, delProduct, delLedgerFile } from "@/api/salesManagement/salesLedger.js"; +import {modelList, productTreeList} from "@/api/basicData/product.js"; +const userStore = useUserStore() const { proxy } = getCurrentInstance() const tableData = ref([]) const productData = ref([]) @@ -290,6 +304,8 @@ const productSelectedRows = ref([]) const userList = ref([]) const customerOption = ref([]) +const productOptions = ref([]) +const modelOptions = ref([]) const tableLoading = ref(false) const page = reactive({ current: 1, @@ -386,6 +402,55 @@ tableLoading.value = false }) } +// 鑾峰彇浜у搧澶х被tree鏁版嵁 +const getProductOptions = () => { + productTreeList().then(res => { + productOptions.value = convertIdToValue(res) + }) +} +// 鑾峰彇tree瀛愭暟鎹� +const getModels =(value) => { + productForm.value.productCategory = findNodeById(productOptions.value, value) + modelList({id: value}).then(res => { + modelOptions.value = res + }) +} +const getProductModel =(value) => { + const index = modelOptions.value.findIndex(item => item.id === value); + if (index !== -1) { + productForm.value.specificationModel = modelOptions.value[index].model; + } else { + productForm.value.specificationModel = null; + } +} +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 +}; +function convertIdToValue(data) { + return data.map(item => { + const { id, children, ...rest } = item; + const newItem = { + ...rest, + value: id // 灏� id 鏀逛负 value + }; + if (children && children.length > 0) { + newItem.children = convertIdToValue(children); + } + + return newItem; + }); +} // 琛ㄦ牸閫夋嫨鏁版嵁 const handleSelectionChange = (selection) => { selectedRows.value = selection @@ -460,13 +525,12 @@ return sums; } // 鎵撳紑寮规 -const openForm = (type, row) => { +const openForm = async (type, row) => { operationType.value = type form.value = {} productData.value = [] - userListNoPage().then(res => { - userList.value = res.data - }) + let userLists = await userListNoPage() + userList.value = userLists.data customerList().then(res => { customerOption.value = res }) @@ -478,7 +542,17 @@ 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 +} +function changs(val){ + console.log(val); } // 涓婁紶鍓嶆牎妫� function handleBeforeUpload(file) { @@ -554,6 +628,7 @@ productForm.value = {...row} } productFormVisible.value = true + getProductOptions() } // 鎻愪氦浜у搧琛ㄥ崟 const submitProduct = () => { @@ -662,6 +737,17 @@ proxy.$modal.msg("宸插彇娑�") }) } +// 鑾峰彇褰撳墠鏃ユ湡骞舵牸寮忓寲涓� YYYY-MM-DD +function getCurrentDate() { + const today = new Date(); + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮� + const day = String(today.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} +const mathNum = (val) => { + productForm.value.taxExclusiveTotalPrice = proxy.calculateTaxExclusiveTotalPrice(val, productForm.value.taxRate) +} getList() </script> -- Gitblit v1.9.3