已修改10个文件
273 ■■■■■ 文件已修改
src/api/inventoryManagement/receiptManagement.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/index.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/inventoryManagement/dispatchLog/index.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/inventoryManagement/issueManagement/index.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/inventoryManagement/receiptManagement/edit.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/inventoryManagement/receiptManagement/index.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/inventoryManagement/receiptManagement/procurement-edit.vue 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/inventoryManagement/stockManagement/index.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/procurementManagement/procurementLedger/detail.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/sales/salesAccount/detail.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/receiptManagement.js
@@ -89,4 +89,11 @@
    data: query,
  });
}
export function updateCustom(query) {
  return request({
    url: "/stockin/updateCustom",
    method: "post",
    data: query,
  });
}
src/pages/index.vue
@@ -602,7 +602,7 @@
    show.value = false;
    const factoryId = factoryListTem.value[arr.indexs[0]].deptId
    const loginForm = {
        username: userStore.name,
        userName: userStore.name,
        password: uni.getStorageSync('remembered_password'),
        factoryId: factoryId,
    }
@@ -674,7 +674,23 @@
        return
    }
    detailApi({id:barcodeId}).then((resp) => {
        if(resp.code!=200||!resp.data)return
        if(resp.code!=200){
            uni.showToast({
                title:resp.msg,
                icon:"none",
                duration: 1500
            })
            return
        }
        if(!resp.data){
            uni.showToast({
                title:'商品不存在',
                icon:"none",
                duration: 1500
            })
            return
        }
        // barcodeDetail.value = resp.data
        refGoodsDetailPopup.value.open({
            type: type,
src/pages/inventoryManagement/dispatchLog/index.vue
@@ -4,13 +4,7 @@
        <view class="search-section">
            <view class="search-bar">
                <view class="search-input">
                    <up-input
                        class="search-text"
                        placeholder="请输入产品名称搜索"
                        v-model="productCategoryValue"
                        @change="reloadPage"
                        clearable
                    />
                    <up-input class="search-text" placeholder="请输入产品名称搜索" v-model="productCategoryValue" clearable @change="reloadPage" />
                </view>
                <view class="filter-button" @click="reloadPage">
                    <up-icon name="search" size="24" color="#999"></up-icon>
@@ -46,8 +40,12 @@
                            <view class="value">{{ item.boxNum }}</view>
                        </view>
                        <view class="item">
                            <view class="label">单价(元)/支</view>
                            <view class="label">单价(元)/件</view>
                            <view class="value">{{ item.taxInclusiveUnitPrice }}</view>
                        </view>
                        <view class="item">
                            <view class="label">单价(美元)/件</view>
                            <view class="value">{{ item.dollarPrice }}</view>
                        </view>
                        <view class="item">
                            <view class="label">纸箱规格</view>
@@ -58,7 +56,8 @@
                            <view class="value">{{ item.createBy }}</view>
                        </view>
                        <view class="item" style="justify-content: flex-end;">
                            <button class="mini-btn" type="warn" size="mini" style="margin-left: 0;margin-right: 0;" @click="deleteGoods(item)">删除</button>
                            <button class="mini-btn" type="warn" size="mini" style="margin-left: 0;margin-right: 0;"
                                @click="deleteGoods(item)">删除</button>
                        </view>
                    </view>
                </block>
@@ -70,7 +69,8 @@
                        <view class="item">
                            <view class="label">产品图片</view>
                            <view class="value">
                                <image class="img" :src="baseUrl + item.url" mode="aspectFill‌" lazy-load></image>
                                <image class="img" :src="baseUrl + item.url" mode="aspectFill‌" lazy-load
                                    @click="previewImg(baseUrl + item.url)"></image>
                            </view>
                        </view>
                        <view class="item">
@@ -94,8 +94,12 @@
                            <view class="value">{{ item.boxNum }}</view>
                        </view>
                        <view class="item">
                            <view class="label">单价(元)/支</view>
                            <view class="label">单价(元)/件</view>
                            <view class="value">{{ item.taxInclusiveUnitPrice }}</view>
                        </view>
                        <view class="item">
                            <view class="label">单价(美元)/件</view>
                            <view class="value">{{ item.dollarPrice }}</view>
                        </view>
                        <view class="item">
                            <view class="label">纸箱规格</view>
@@ -106,7 +110,8 @@
                            <view class="value">{{ item.createBy }}</view>
                        </view>
                        <view class="item" style="justify-content: flex-end;">
                            <button class="mini-btn" type="warn" size="mini" style="margin-left: 0;margin-right: 0;" @click="deleteGoods(item)">删除</button>
                            <button class="mini-btn" type="warn" size="mini" style="margin-left: 0;margin-right: 0;"
                                @click="deleteGoods(item)">删除</button>
                        </view>
                    </view>
                </block>
@@ -120,8 +125,8 @@
</template>
<script setup>
import { ref, reactive, computed } from 'vue'
import { listPage, listPageByCustom,stockmanagementDel } from '@/api/inventoryManagement/dispatchLog.js'
import { ref, reactive, computed, nextTick } from 'vue'
import { listPage, listPageByCustom, stockmanagementDel } from '@/api/inventoryManagement/dispatchLog.js'
import { onShow, onReachBottom, onPullDownRefresh } from '@dcloudio/uni-app'
import config from '@/config'
const productCategoryValue = ref('')
@@ -137,12 +142,15 @@
    productCategoryValue.value = ''
    reloadPage()
}
// 返回上一页
const goBack = () => {
    uni.navigateBack()
}
const previewImg = (url) => {
    uni.previewImage({
        urls: [url]
    })
}
// 分页相关
const pageParams = reactive({
    size: 10,
@@ -170,12 +178,13 @@
    pageParams.current += 1
    getList()
}
const reloadPage = () => {
const reloadPage = async() => {
    await nextTick()
    pageParams.current = 1
    contentList.value = []
    getList()
}
const deleteGoods = async (goods) => {
const deleteGoods = async (goods) => {
    uni.showModal({
        title: '提示',
        content: '确定要删除该商品的出库台账吗?',
@@ -184,7 +193,7 @@
                uni.showLoading({
                    title: '删除中...'
                })
                let params = {ids:[goods.id]}
                let params = { ids: [goods.id] }
                stockmanagementDel(params).then(res => {
                    uni.hideLoading()
                    reloadPage()
@@ -201,8 +210,8 @@
        getListApi = listPage
    }
    loading.value = true
    let params = pageParams
    if(productCategoryValue.value){
    let params = {...pageParams}
    if (productCategoryValue.value) {
        params.productCategory = productCategoryValue.value
    }
    let resp = await getListApi(params)
@@ -242,7 +251,8 @@
    color: #999;
    font-size: 14px;
}
.item-box{
.item-box {
    box-sizing: border-box;
    margin: 20rpx;
    padding: 20rpx;
@@ -266,6 +276,7 @@
        }
    }
}
// 浮动按钮样式
.fab-button {
    position: fixed;
@@ -281,5 +292,6 @@
    box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
    z-index: 1000;
}
@import '@/styles/sales-common.scss';
</style>
src/pages/inventoryManagement/issueManagement/index.vue
@@ -4,13 +4,7 @@
        <view class="search-section">
            <view class="search-bar">
                <view class="search-input">
                    <up-input
                        class="search-text"
                        placeholder="请输入产品名称搜索"
                        v-model="productCategoryValue"
                        @change="reloadPage"
                        clearable
                    />
                    <up-input class="search-text" placeholder="请输入产品名称搜索" v-model="productCategoryValue" clearable @change="reloadPage" />
                </view>
                <view class="filter-button" @click="reloadPage">
                    <up-icon name="search" size="24" color="#999"></up-icon>
@@ -26,7 +20,7 @@
                    <view class="item-box item-box0">
                        <view class="item">
                            <view class="label">入库时间</view>
                            <view class="value">{{ item.inboundDate }}</view>
                            <view class="value">{{ item.createTime }}</view>
                        </view>
                        <view class="item">
                            <view class="label">产品名称</view>
@@ -65,7 +59,7 @@
                            <view class="value">{{ item.createBy }}</view>
                        </view>
                        <view class="item" style="justify-content: flex-end;">
                            <button class="mini-btn" type="primary" size="mini" style="margin-left: 0;margin-right: 0;"
                            <button class="mini-btn" type="primary" size="mini" style="margin-left: 0;margin-right: 0;" :disabled="!item.inboundNum0"
                                @click="openForm(item, 'edit')">领用</button>
                        </view>
                    </view>
@@ -78,12 +72,13 @@
                        <view class="item">
                            <view class="label">产品图片</view>
                            <view class="value">
                                <image class="img" :src="baseUrl + item.url" mode="aspectFill‌" lazy-load></image>
                                <image class="img" :src="baseUrl + item.url" mode="aspectFill‌" lazy-load
                                    @click="previewImg(baseUrl + item.url)"></image>
                            </view>
                        </view>
                        <view class="item">
                            <view class="label">入库时间</view>
                            <view class="value">{{ item.inboundDate }}</view>
                            <view class="value">{{ item.createTime }}</view>
                        </view>
                        <view class="item">
                            <view class="label">产品名称</view>
@@ -122,7 +117,7 @@
                            <view class="value">{{ item.createBy }}</view>
                        </view>
                        <view class="item" style="justify-content: flex-end;">
                            <button class="mini-btn" type="primary" size="mini" style="margin-left: 0;margin-right: 0;"
                            <button class="mini-btn" type="primary" size="mini" style="margin-left: 0;margin-right: 0;" :disabled="!item.inboundNum0"
                                @click="openForm(item, 'edit')">领用</button>
                        </view>
                    </view>
@@ -137,7 +132,7 @@
</template>
<script setup>
import { ref, reactive, computed } from 'vue'
import { ref, reactive, computed, nextTick } from 'vue'
import { listPage, listPageByCustom } from '@/api/inventoryManagement/issueManagement.js'
import { onShow, onReachBottom, onPullDownRefresh } from '@dcloudio/uni-app'
import config from '@/config'
@@ -194,7 +189,8 @@
    pageParams.current += 1
    getList()
}
const reloadPage = () => {
const reloadPage = async() => {
    await nextTick()
    pageParams.current = 1
    contentList.value = []
    getList()
@@ -207,8 +203,8 @@
        getListApi = listPage
    }
    loading.value = true
    let params = pageParams
    if(productCategoryValue.value){
    let params = {...pageParams}
    if (productCategoryValue.value) {
        params.productCategory = productCategoryValue.value
    }
    let resp = await getListApi(params)
@@ -219,8 +215,12 @@
        return
    }
    contentList.value = [...contentList.value, ...resp.data.records]
    console.log(resp.data.records)
    totalSize.value = resp.data.total
}
const previewImg = (url) => {
    uni.previewImage({
        urls: [url]
    })
}
onReachBottom(() => {
@@ -289,5 +289,6 @@
    box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
    z-index: 1000;
}
@import '@/styles/sales-common.scss';
</style>
src/pages/inventoryManagement/receiptManagement/edit.vue
@@ -59,9 +59,10 @@
<script setup>
import { onMounted, ref } from 'vue'
import { getToken } from "@/utils/auth";
import { addCustom } from '@/api/inventoryManagement/receiptManagement.js'
import { addCustom,updateCustom } from '@/api/inventoryManagement/receiptManagement.js'
import config from '@/config'
const baseUrl = config.imgUrl
const requirUrl = config.baseUrl
const pageTitle = ref('新增自定义入库')
const goodsList = ref([])
const type = ref('add')
@@ -146,7 +147,21 @@
      }
      
    }
    let res = await addCustom(goodsList.value)
    let requirApi = ''
    if(type.value=='add'){
        requirApi = addCustom
    }else{
        requirApi = updateCustom
    }
    let parames = null
    if(type.value=='add'){
        parames = goodsList.value
    }else{
        parames = {...goodsList.value[0]}
        delete parames.createTime
        delete parames.updateTime
    }
    let res = await requirApi(parames)
    if(res.code !== 200){
        uni.showToast({
            title: res.msg,
@@ -204,16 +219,16 @@
    })
}
const delItem = (index)=>{
    console.log('xxxx')
    goodsList.value.splice(index,1)
}
const UploadImage = (url, index) => {
    uni.uploadFile({
        url: baseUrl + '/file/upload', // 替换为实际的上传接口
        url: requirUrl + '/file/upload', // 替换为实际的上传接口
        filePath: url,
        name: 'file',
        header: { Authorization: 'Bearer ' + getToken() },
        success: (res) => {
            console.log(res,res.data)
            const data = JSON.parse(res.data)
            if (data.code === 200) {
                goodsList.value[index].url = data.data.tempPath
src/pages/inventoryManagement/receiptManagement/index.vue
@@ -4,13 +4,7 @@
        <view class="search-section">
            <view class="search-bar">
                <view class="search-input">
                    <up-input
                        class="search-text"
                        placeholder="请输入产品名称搜索"
                        v-model="productCategoryValue"
                        @change="reloadPage"
                        clearable
                    />
                    <up-input class="search-text" placeholder="请输入产品名称搜索" v-model="productCategoryValue" clearable @change="reloadPage"/>
                </view>
                <view class="filter-button" @click="reloadPage">
                    <up-icon name="search" size="24" color="#999"></up-icon>
@@ -77,7 +71,8 @@
                        <view class="item">
                            <view class="label">产品图片</view>
                            <view class="value">
                                <image class="img" :src="baseUrl + item.url" mode="aspectFill‌" lazy-load></image>
                                <image class="img" :src="baseUrl + item.url" mode="aspectFill‌" lazy-load
                                    @click="previewImg(baseUrl + item.url)"></image>
                            </view>
                        </view>
                        <view class="item">
@@ -137,8 +132,8 @@
</template>
<script setup>
import { ref, reactive, computed } from 'vue'
import { listPage, listPageByCustom, deleteCustom,stockinDel } from '@/api/inventoryManagement/receiptManagement.js'
import { ref, reactive, computed, nextTick } from 'vue'
import { listPage, listPageByCustom, deleteCustom, stockinDel } from '@/api/inventoryManagement/receiptManagement.js'
import { onShow, onReachBottom, onPullDownRefresh } from '@dcloudio/uni-app'
import config from '@/config'
const productCategoryValue = ref('')
@@ -200,10 +195,17 @@
    pageParams.current += 1
    getList()
}
const reloadPage = () => {
const reloadPage = async() => {
    await nextTick()
    pageParams.current = 1
    contentList.value = []
    getList()
}
const previewImg = (url) => {
    uni.previewImage({
        urls: [url]
    })
}
const deleteGoods = async (goods) => {
    uni.showModal({
@@ -216,13 +218,13 @@
                })
                let params = {}
                let deleteApi = ''
                if(tabCurrent.value == 0){
                if (tabCurrent.value == 0) {
                    deleteApi = stockinDel
                    params = {
                        ids:[goods.id],
                        ids: [goods.id],
                        type: 1
                    }
                }else{
                } else {
                    deleteApi = deleteCustom
                    params = [goods.id]
                }
@@ -235,6 +237,7 @@
        }
    })
}
const getList = async () => {
    let getListApi = null
    if (tabCurrent.value == 1) {
@@ -243,10 +246,11 @@
        getListApi = listPage
    }
    loading.value = true
    let params = pageParams
    if(productCategoryValue.value){
    let params = {...pageParams}
    if (productCategoryValue.value) {
        params.productCategory = productCategoryValue.value
    }
    console.log('params',params)
    let resp = await getListApi(params)
    loading.value = false
    if (resp.code != 200 || !resp.data) {
@@ -255,7 +259,7 @@
        return
    }
    contentList.value = [...contentList.value, ...resp.data.records]
    console.log(resp.data.records)
    console.log('records',resp.data.records)
    totalSize.value = resp.data.total
}
@@ -325,5 +329,6 @@
    box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
    z-index: 1000;
}
@import '@/styles/sales-common.scss';
</style>
src/pages/inventoryManagement/receiptManagement/procurement-edit.vue
@@ -4,7 +4,7 @@
        <view class="box">
            <view style="margin-bottom: 20rpx;">
                <uni-data-select v-model="ledgerVlaue" :localdata="ledgerList" placeholder="请选择采购订单号"
                    :disabled="type == 'edit'" @change="switchLedger"></uni-data-select>
                    :disabled="type == 'edit'" @change="switchLedger" :clear="type=='add'"></uni-data-select>
            </view>
            <view v-for="(item, index) in goodsList" class="form-box" :key="index">
                <checkbox-group v-if="type == 'add'" @change="switchCheck(index)">
@@ -23,7 +23,7 @@
                        <uni-easyinput v-model="item.productCategory" placeholder="请输入名称" disabled />
                    </uni-forms-item>
                    <uni-forms-item label="高度" required>
                        <uni-easyinput v-model="item.specificationModel" type="number" placeholder="请输入高度" disabled />
                        <uni-easyinput v-model="item.specificationModel" placeholder="请输入高度" disabled />
                    </uni-forms-item>
                    <uni-forms-item label="高度单位" required>
                        <uni-easyinput v-model="item.unit" placeholder="请输入高度单位" disabled />
@@ -36,7 +36,7 @@
                        <uni-number-box v-model="item.quantity0" :min="0" disabled></uni-number-box>
                    </uni-forms-item>
                    <uni-forms-item label="入库数量/件" required>
                        <uni-number-box v-model="item.quantityStock" :min="0" :max="item.quantity0"></uni-number-box>
                        <uni-number-box v-model="item.quantityStock" :min="0" :max="item.quantity0+(type=='add'?0:item.inboundNum)"></uni-number-box>
                    </uni-forms-item>
                    <uni-forms-item label="每件数量/支" required>
                        <uni-number-box v-model="item.boxNum" :min="0" :disabled="type == 'edit'"></uni-number-box>
@@ -102,9 +102,46 @@
            _list.push(item)
        }
        if (type.value == 'edit') {
            _list.push({ ...item, quantityStock: item.inboundNum })
            _list.push({ ...item })
        }
    })
    let isVerify = _list.some((item,itemIndex)=>{
        let _index = itemIndex+1
        if(!item.quantityStock){
            uni.showToast({
                title:`第${_index}行入库数量/件不能为0`,
                icon:'none',
                duration: 1500
            })
            return true
        }
        if(!item.cartonSpecifications){
            uni.showToast({
                title:`第${_index}行纸箱规格不能为空`,
                icon:'none',
                duration: 1500
            })
            return true
        }
        if(!item.boxNum){
            uni.showToast({
                title:`第${_index}每件数量/支不能为0`,
                icon:'none',
                duration: 1500
            })
            return true
        }
        if(!item.dollarPrice){
            uni.showToast({
                title:`第${_index}单价(美元)/件不能为0`,
                icon:'none',
                duration: 1500
            })
            return true
        }
    })
    if(isVerify)return
    if (_list.length === 0) {
        uni.showToast({
            title: '请选择要入库的产品',
@@ -224,7 +261,7 @@
        })
    } else {
        goodsList.value = res.data.map(item => {
            return { ...defaultGoods, ...item }
            return { ...defaultGoods, ...item,quantityStock:0 }
        })
    }
@@ -234,7 +271,7 @@
    if (_goods.id) {
        pageTitle.value = '编辑自定义入库'
        type.value = 'edit'
        goodsList.value.push({ ...defaultGoods, ..._goods })
        goodsList.value.push({ ...defaultGoods, ..._goods,quantityStock:_goods.inboundNum })
    }
    getLedgerList(_goods)
    userStore.getInfo()
src/pages/inventoryManagement/stockManagement/index.vue
@@ -4,13 +4,7 @@
        <view class="search-section">
            <view class="search-bar">
                <view class="search-input">
                    <up-input
                        class="search-text"
                        placeholder="请输入产品名称搜索"
                        v-model="productCategoryValue"
                        @change="reloadPage"
                        clearable
                    />
                    <up-input class="search-text" placeholder="请输入产品名称搜索" v-model="productCategoryValue" clearable @change="reloadPage"/>
                </view>
                <view class="filter-button" @click="reloadPage">
                    <up-icon name="search" size="24" color="#999"></up-icon>
@@ -26,7 +20,7 @@
                    <view class="item-box item-box0">
                        <view class="item">
                            <view class="label">入库时间</view>
                            <view class="value">{{ item.inboundDate }}</view>
                            <view class="value">{{ item.createTime }}</view>
                        </view>
                        <view class="item">
                            <view class="label">产品名称</view>
@@ -49,8 +43,12 @@
                            <view class="value">{{ item.boxNum }}</view>
                        </view>
                        <view class="item">
                            <view class="label">单价(元)/支</view>
                            <view class="label">单价(元)/件</view>
                            <view class="value">{{ item.taxInclusiveUnitPrice }}</view>
                        </view>
                        <view class="item">
                            <view class="label">单价(美元)/件</view>
                            <view class="value">{{ item.dollarPrice }}</view>
                        </view>
                        <view class="item">
                            <view class="label">纸箱规格</view>
@@ -74,12 +72,13 @@
                        <view class="item">
                            <view class="label">产品图片</view>
                            <view class="value">
                                <image class="img" :src="baseUrl + item.url" mode="aspectFill‌" lazy-load></image>
                                <image class="img" :src="baseUrl + item.url" mode="aspectFill‌" lazy-load
                                    @click="previewImg(baseUrl + item.url)"></image>
                            </view>
                        </view>
                        <view class="item">
                            <view class="label">入库时间</view>
                            <view class="value">{{ item.inboundDate }}</view>
                            <view class="value">{{ item.createTime }}</view>
                        </view>
                        <view class="item">
                            <view class="label">产品名称</view>
@@ -102,8 +101,12 @@
                            <view class="value">{{ item.boxNum }}</view>
                        </view>
                        <view class="item">
                            <view class="label">单价(元)/支</view>
                            <view class="label">单价(元)/件</view>
                            <view class="value">{{ item.taxInclusiveUnitPrice }}</view>
                        </view>
                        <view class="item">
                            <view class="label">单价(美元)/件</view>
                            <view class="value">{{ item.dollarPrice }}</view>
                        </view>
                        <view class="item">
                            <view class="label">纸箱规格</view>
@@ -129,7 +132,7 @@
</template>
<script setup>
import { ref, reactive, computed } from 'vue'
import { ref, reactive, computed, nextTick } from 'vue'
import { listPage, listPageByCustom } from '@/api/inventoryManagement/stockManagement.js'
import { onShow, onReachBottom, onPullDownRefresh } from '@dcloudio/uni-app'
import config from '@/config'
@@ -150,6 +153,11 @@
// 返回上一页
const goBack = () => {
    uni.navigateBack()
}
const previewImg = (url) => {
    uni.previewImage({
        urls: [url]
    })
}
// 打开编辑/新增
@@ -186,7 +194,8 @@
    pageParams.current += 1
    getList()
}
const reloadPage = () => {
const reloadPage = async() => {
    await nextTick()
    pageParams.current = 1
    contentList.value = []
    getList()
@@ -199,8 +208,8 @@
        getListApi = listPage
    }
    loading.value = true
    let params = pageParams
    if(productCategoryValue.value){
    let params = {...pageParams}
    if (productCategoryValue.value) {
        params.productCategory = productCategoryValue.value
    }
    let resp = await getListApi(params)
@@ -281,5 +290,6 @@
    box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
    z-index: 1000;
}
@import '@/styles/sales-common.scss';
</style>
src/pages/procurementManagement/procurementLedger/detail.vue
@@ -558,6 +558,7 @@
    if (selectedCategoryNode.value) {
        // 设置选中的产品大类
        productData.value[currentProductIndex.value].productCategory = selectedCategoryNode.value.label;
        productData.value[currentProductIndex.value].productId = selectedCategoryNode.value.id;
        const id = selectedCategoryNode.value.id
        // 重置选中的节点
        selectedCategoryNode.value = null;
src/pages/sales/salesAccount/detail.vue
@@ -587,6 +587,7 @@
    if (selectedCategoryNode.value) {
        // 设置选中的产品大类
        productData.value[currentProductIndex.value].productCategory = selectedCategoryNode.value.label;
        productData.value[currentProductIndex.value].productId = selectedCategoryNode.value.id;
        const id = selectedCategoryNode.value.id
        // 重置选中的节点
        selectedCategoryNode.value = null;