This commit is contained in:
weiwei committed 2025-03-07 17:20:54 +08:00
1 parent 4d10c86446
commit 3499ec6dbb
5 files changed
+85 -71

No files matched your search

+33 -25
View File
@@ -1,41 +1,49 @@
import request from "/@/utils/request"
export function fetchList(query?: Object) {
return request({
url: '/wallet/walletType/page',
method: 'get',
params: query
})
return request({
url: "/wallet/walletType/page",
method: "get",
params: query,
})
}
// 获取钱包类型下拉列表
export function getWalletTypeSimple(query?: Object) {
return request({
url: "/wallet/walletType/list",
method: "get",
params: query,
})
}
export function addObj(obj?: Object) {
return request({
url: '/wallet/walletType',
method: 'post',
data: obj
})
return request({
url: "/wallet/walletType",
method: "post",
data: obj,
})
}
export function getObj(id?: string) {
return request({
url: '/wallet/walletType/' + id,
method: 'get'
})
return request({
url: "/wallet/walletType/" + id,
method: "get",
})
}
export function delObjs(ids?: Object) {
return request({
url: '/wallet/walletType',
method: 'delete',
data: ids
})
return request({
url: "/wallet/walletType",
method: "delete",
data: ids,
})
}
export function putObj(obj?: Object) {
return request({
url: '/wallet/walletType',
method: 'put',
data: obj
})
return request({
url: "/wallet/walletType",
method: "put",
data: obj,
})
}
+2 -2
View File
@@ -26,8 +26,8 @@
<script setup lang="ts" name="select-wallet-type">
import { reactive } from "vue"
import * as walletTypeApi from "/@/api/wallet/wallet-type"
import { useDict } from "/@/hooks/dict"
import { getWalletTypeSimple } from "/@/api/wallet/wallet-type"
const selectId = defineModel()
@@ -67,7 +67,7 @@ async function getOptions() {
const _pa = {
...queryForm,
}
const { data } = await walletTypeApi.fetchList(_pa)
const { data } = await getWalletTypeSimple(_pa)
state.options = data.records ?? []
const { wallet_type } = useDict("wallet_type")
@@ -11,18 +11,17 @@
:data="linkCodeTableData"
@radio-change="radioChangeEvent"
>
<vxe-column type="radio" width="60" align="center"></vxe-column>
<!-- <vxe-column field="id" title="id" align="center" width="200"></vxe-column>-->
<vxe-column field="planCode" title="编号" align="center" width="200"></vxe-column>
<vxe-column field="planDate" title="单据日期" align="center" width="200"></vxe-column>
<vxe-column field="productName" title="商品名称" align="center" width="200"></vxe-column>
<vxe-column field="handlerUserName" title="经办人" align="center" width="100"></vxe-column>
<!-- <vxe-column field="checkStatus" title="审批状态" align="center" width="100">-->
<!-- <template #default="{ row }">-->
<!-- <dict-tag :options="check_status" :value="row.checkStatus" />-->
<!-- </template>-->
<!-- </vxe-column>-->
<vxe-column field="remark" title="备注" show-overflow align="center" min-width="100"></vxe-column>
<vxe-column type="radio" width="60" align="center" />
<vxe-column field="planCode" title="编号" align="center" width="200" />
<vxe-column field="planDate" title="单据日期" align="center" width="200" />
<vxe-column field="productName" title="商品名称" align="center" width="200" />
<vxe-column field="handlerUserName" title="经办人" align="center" width="100" />
<!-- <vxe-column field="checkStatus" title="审批状态" align="center" width="100">-->
<!-- <template #default="{ row }">-->
<!-- <dict-tag :options="check_status" :value="row.checkStatus" />-->
<!-- </template>-->
<!-- </vxe-column>-->
<vxe-column field="remark" title="备注" show-overflow align="center" min-width="100" />
</vxe-table>
<!-- <pagination
@size-change="sizeChangeHandle"
@@ -40,7 +39,6 @@
:data="currRadioRowItems"
>
<vxe-column type="checkbox" width="60" align="center"></vxe-column>
<!-- <vxe-column field="erpSpuId" title="erpSpuId" align="center" width="200"></vxe-column>-->
<vxe-column field="unit" title="包装单位" align="center" width="200"></vxe-column>
<vxe-column field="quantity" title="数量" align="center" width="100"></vxe-column>
<vxe-column field="purchasePrice" title="进价" align="center" width="100"></vxe-column>
@@ -61,9 +59,7 @@
<script setup lang="ts" name="linkCgCodeDialog">
import { ref } from "vue"
import { VxeTableEvents } from "vxe-table"
import { useDict } from "/@/hooks/dict"
const { check_status } = useDict("check_status")
const linkCodeDialogVisible = defineModel()
const emit = defineEmits(["getSelectedLinkCode"])
const props = withDefaults(
@@ -33,20 +33,23 @@
<vxe-column field="unit" title="单位" :edit-render="{}">
<template #edit="{ row }">
<el-select v-model="row.unitId">
<div v-for="item in smErpUnitEntityList">
<div v-for="item in computedSmErpUnitEntityList">
<el-option :label="item.unit" :value="item.id" />
</div>
</el-select>
</template>
<template #default="{ row }">
<span v-if="row.unitId">{{ smErpUnitEntityList?.find((item) => item.id === row.unitId)?.unit }}</span>
<span v-if="row.unitId">{{ computedSmErpUnitEntityList?.find((item: rowVU) => item.id === row.unitId)?.unit }}</span>
<span v-else style="color: #c0c4cf">请选择</span>
</template>
</vxe-column>
<vxe-column field="barCode" title="条码">
<template #default="{ row }">
{{ smErpUnitEntityList?.find((item) => item.id == row.unitId)?.barCode }}
<vxe-column field="barCode" title="辅助条码" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }">
<template #edit="{ row }">
<el-input v-model.trim="row.barCode" />
</template>
<!-- <template #default="{ row }">
{{ computedSmErpUnitEntityList?.find((item) => item.id == row.unitId)?.barCode }}
</template> -->
</vxe-column>
</vxe-table>
</div>
@@ -55,7 +58,7 @@
<script setup lang="ts">
import { nanoid } from "nanoid"
import { useMessage } from "/@/hooks/message"
import { rowVU } from "./packageUnit.vue"
import { type rowVU } from "./packageUnit.vue"
export interface rowVC {
id: string
@@ -109,6 +112,19 @@ const pushEvent = () => {
})
}
// 包装单位行删除时清除辅助条码中选择该包装单位的行
watch(
() => props.smErpUnitEntityList?.length,
() => {
auxiliaryCodeList.value = auxiliaryCodeList.value.filter((codeItem: rowVC) =>
props.smErpUnitEntityList?.some((item: rowVU) => codeItem.unitId === item.id),
)
},
)
// 计算辅助条码中可选择的包装单位下拉菜单
const computedSmErpUnitEntityList = computed(() => props.smErpUnitEntityList?.filter((item: rowVU) => item.unit))
// 删除选中的行
const removeSelectRowEvent = () => {
const $table = editableTableRef.value
@@ -25,7 +25,7 @@
<el-button @click="visible = false">取消</el-button>
<el-button v-if="currentTabPaneIndex != 0" type="primary" @click="currentTabPaneIndex--" :disabled="loading">上一步</el-button>
<el-button v-if="currentTabPaneIndex != 3" type="primary" @click="currentTabPaneIndex++">下一步</el-button>
<el-button v-if="currentTabPaneIndex == 3" type="primary" @click="onSubmit" :disabled="loading">确 认</el-button>
<el-button v-if="currentTabPaneIndex == 3" type="primary" @click="onSubmit" :disabled="loading">提 交</el-button>
</template>
</el-dialog>
</template>
@@ -34,7 +34,7 @@
import baseInfo from "./components/baseInfo.vue"
import packageUnit, { type rowVU } from "./components/packageUnit.vue"
import productInventory from "./components/productInventory.vue"
import auxiliaryCode, { rowVC } from "./components/auxiliaryCode.vue"
import auxiliaryCode, { type rowVC } from "./components/auxiliaryCode.vue"
import { getObj, addObj, putObj } from "/@/api/supermarketerp/supermarketSpu"
import { TabPaneName } from "element-plus"
import { useMessage } from "/@/hooks/message"
@@ -161,10 +161,10 @@ const resetForm = () => {
// tab栏切换
const handleTabChange = (name: TabPaneName) => (currentTabPaneIndex.value = tabPaneEnum.findIndex((item) => item === name))
// 整理包装单位列表
const usePackageUnitList = () => {
// 计算包装单位列表
const usePackageUnitList = computed(() => {
const curRadioRowUnit = packageUnitRef.value.getRadioEvent()
return form.smErpUnitEntityList.map((item: rowVU) => {
return [...form.smErpUnitEntityList].map((item: rowVU) => {
if (item.id === curRadioRowUnit.id) {
item.isBase = true
} else {
@@ -180,23 +180,23 @@ const usePackageUnitList = () => {
}
return item
})
}
})
// 整理辅助条码列表
const useAuxiliaryCode = () => {
// 计算辅助条码列表
const useAuxiliaryCode = computed(() => {
return form.smErpAuxiliaryCodeEntityList
.filter((item: rowVC) => item.unitId)
.map((item: rowVC) => {
const curAuxiliaryCodeItem = form.smErpUnitEntityList.find((unitItem: any) => unitItem.id === item.unitId)
if (curAuxiliaryCodeItem.barCode) item.barCode = curAuxiliaryCodeItem.barCode
// const curAuxiliaryCodeItem = form.smErpUnitEntityList.find((unitItem: any) => unitItem.id === item.unitId)
// if (curAuxiliaryCodeItem.barCode) item.barCode = curAuxiliaryCodeItem.barCode
if (item.isNew) {
item.id = ""
if (curAuxiliaryCodeItem.isNew) item.unitId = ""
// if (curAuxiliaryCodeItem.isNew) item.unitId = ""
delete item.isNew
}
return item
})
}
})
// 提交
const onSubmit = async () => {
@@ -210,23 +210,17 @@ const onSubmit = async () => {
// if (!form.smErpAuxiliaryCodeEntityList || form.smErpAuxiliaryCodeEntityList.length <= 0) return useMessage().warning("请添加辅助条码")
// if (!(await auxiliaryCodeRef.value.editableTableValidate())) return useMessage().warning("辅助条码必填项未填写完整")
const handleAuxiliaryCode = useAuxiliaryCode()
const handlePackageUnit = usePackageUnitList()
console.log("提交的数据", {
...form,
grossMargin: storePrice(form.grossMargin),
smErpUnitEntityList: handlePackageUnit,
smErpAuxiliaryCodeEntityList: handleAuxiliaryCode,
})
try {
loading.value = true
const _pa = {
...form,
grossMargin: storePrice(form.grossMargin),
smErpUnitEntityList: handlePackageUnit,
smErpAuxiliaryCodeEntityList: handleAuxiliaryCode,
smErpUnitEntityList: usePackageUnitList.value,
smErpAuxiliaryCodeEntityList: useAuxiliaryCode.value,
}
console.log("提交的数据", _pa)
const res = form.id ? await putObj(_pa) : await addObj(_pa)
if (res.code === 0) {
useMessage().success(form.id ? "修改成功" : "添加成功")