diff --git a/src/components/Select/SelectSupermarketSupplier.vue b/src/components/Select/SelectSupermarketSupplier.vue
index d267f95..dba3e01 100644
--- a/src/components/Select/SelectSupermarketSupplier.vue
+++ b/src/components/Select/SelectSupermarketSupplier.vue
@@ -10,13 +10,30 @@
:loading="state.loading"
@visible-change="handleVisibleChange"
@change="handleChange"
+ popper-class="supplier-select-dropdown"
>
+
+ 加载中...
+
+
+ 没有更多数据了
+
+
+
diff --git a/src/views/supermarketerp/components/linkCodeDialog.vue b/src/views/supermarketerp/components/link-code-dialog.vue
similarity index 100%
rename from src/views/supermarketerp/components/linkCodeDialog.vue
rename to src/views/supermarketerp/components/link-code-dialog.vue
diff --git a/src/views/supermarketerp/components/select-dialog.vue b/src/views/supermarketerp/components/select-dialog.vue
index 817b7dd..86e056d 100644
--- a/src/views/supermarketerp/components/select-dialog.vue
+++ b/src/views/supermarketerp/components/select-dialog.vue
@@ -1,5 +1,5 @@
-
+
@@ -24,8 +24,7 @@
v-loading="loading"
:row-key="(row:any) => row.id"
:reserve-selection="true"
- @row-click="rowClick"
- :row-style="{ cursor: 'pointer' }"
+ @selection-change="handleSelectionChange"
>
@@ -35,20 +34,30 @@
-
-
-
@@ -75,6 +84,7 @@ import { ref } from "vue"
import { getErpSpuPage } from "/@/api/supermarketerp/common"
import { getSupermarketCategory, getSupermarketBrand } from "/@/api/supermarketerp/supermarketSpu"
import { useDict } from "/@/hooks/dict"
+import { displayPrice } from "/@/utils/formatMoney"
const emit = defineEmits(["getSelectedRows"])
const props = withDefaults(
@@ -100,10 +110,29 @@ const total = ref(0)
const dataList = ref([]) // 对话框多选表格数据
const supermarketCategory = ref([]) // 商品分类
const supermarketBrand = ref([]) // 商品品牌
+const selectedRowsWithUnit = ref([]) // 记录选中行及其包装单位
+const currentSelectedRows = ref([]) // 当前选中的商品行
+
+// 格式化价格显示
+const formatPrice = (price: number) => {
+ return displayPrice(price, "")
+}
+
+// 判断行是否被选中
+const isRowSelected = (row: any) => {
+ return currentSelectedRows.value.some((selectedRow: any) => selectedRow.id === row.id)
+}
+
+// 处理商品选择变化
+const handleSelectionChange = (selection: any[]) => {
+ currentSelectedRows.value = selection
+}
// 打开弹窗
const openDialog = async () => {
dialogVisible.value = true
+ selectedRowsWithUnit.value = []
+ currentSelectedRows.value = []
getDataListAndSelect()
}
@@ -113,21 +142,24 @@ const getDataListAndSelect = async () => {
try {
const { code, data } = await getErpSpuPage(queryForm)
if (code === 0) {
- dataList.value = data.records.map((item: any) => ({ ...item, erpSpuId: item.id }))
+ dataList.value = data.records.map((item: any) => {
+ return {
+ ...item,
+ erpSpuId: item.id
+ }
+ })
total.value = data.total
- // 保存当前已选中的行
- // const currentSelectedRows = tableRef.value?.getSelectionRows() || []
- // 清空表格数据后重新设置
+ // 恢复之前的选择状态
nextTick(() => {
- // 合并当前页面数据中的已选行和之前保存的已选行
- const rowsToSelect = [...props.selectedRows.filter((row) => dataList.value.some((item) => item.erpSpuId === row.erpSpuId))]
- // 去重
- // const uniqueRowsToSelect = Array.from(new Map(rowsToSelect.map((row) => [row.erpSpuId, row])).values())
- // 为匹配的行设置选中状态
- rowsToSelect.forEach((row) => {
+ const rowsToRestore = props.selectedRows.filter((row) => dataList.value.some((item) => item.erpSpuId === row.erpSpuId))
+
+ // 恢复商品选择状态
+ rowsToRestore.forEach((row) => {
const targetRow = dataList.value.find((item) => item.erpSpuId === row.erpSpuId)
- targetRow && tableRef.value?.toggleRowSelection(targetRow, true)
+ if (targetRow) {
+ tableRef.value?.toggleRowSelection(targetRow, true)
+ }
})
})
}
@@ -153,24 +185,22 @@ const resetQuery = () => {
getDataListAndSelect()
}
-// 点击商品列表表格行
-const rowClick = (row: any) => {
- console.log("clicked-row", row)
- tableRef.value.toggleRowSelection(row)
-}
-
// 商品选择对话框确认
const dialogConfirm = () => {
const $table = tableRef.value
if ($table) {
- // 获取所有选中的行,包括其他页面的选择
+ // 获取当前选中的商品
const currentSelectedRows = $table.getSelectionRows()
+
// 合并当前选中的行和之前已选的行(排除当前页面的行)
const allSelectedRows = [
...currentSelectedRows,
...props.selectedRows.filter((row) => !dataList.value.some((item) => item.erpSpuId === row.erpSpuId)),
]
+
dialogVisible.value = false
+ selectedRowsWithUnit.value = []
+ currentSelectedRows.value = []
emit("getSelectedRows", allSelectedRows)
}
}
diff --git a/src/views/supermarketerp/purchaseManagement/smErpCgBack/form.vue b/src/views/supermarketerp/purchaseManagement/smErpCgBack/form.vue
index d9df6c5..baddbff 100644
--- a/src/views/supermarketerp/purchaseManagement/smErpCgBack/form.vue
+++ b/src/views/supermarketerp/purchaseManagement/smErpCgBack/form.vue
@@ -174,9 +174,8 @@
- >() // 可编辑表格ref
const baseDataInfoRef = ref() // 基本信息ref
@@ -238,16 +237,11 @@ const state = reactive<{
erpSpuItemsMemo: any[]
selectedRowsErpSpuIds: string[]
erpSpuSimpleAll: any
- linkCodeVisible: boolean
- linkCgPlanDialogVisible: boolean
}>({
editableTableData: [], // 可编辑表格数据
erpSpuItemsMemo: [], // 请求到的可编辑表格商品数据的缓存
selectedRowsErpSpuIds: [], // 可编辑表格已选行的ErpSpuId
erpSpuSimpleAll: [], // 简要商品列表
-
- linkCodeVisible: false, // 关联采购申请单对话框开关
- linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
})
// 基本信息表单校验规则
@@ -299,7 +293,7 @@ const getInitData = async () => {
}
// 点击关联采购申请编号
-const handleClickLinkCode = () => linkCgPlanDialogRef.value.openLinkCodeDialog(3)
+const handleClickLinkCode = () => linkCodeDialogRef.value.openLinkCodeDialog(3)
// 获取选择的采购申请
const getSelectedLinkCode = (selectionRows: any) => {
@@ -308,7 +302,6 @@ const getSelectedLinkCode = (selectionRows: any) => {
baseDataForm.linkCode = selectionRows.inventoryCode
state.editableTableData = selectionRows.items
state.erpSpuItemsMemo = selectionRows.items
- state.linkCgPlanDialogVisible = false
}
// 删除选中的行
diff --git a/src/views/supermarketerp/purchaseManagement/smErpCgDd/form.vue b/src/views/supermarketerp/purchaseManagement/smErpCgDd/form.vue
index b26fc2b..04bbd7c 100644
--- a/src/views/supermarketerp/purchaseManagement/smErpCgDd/form.vue
+++ b/src/views/supermarketerp/purchaseManagement/smErpCgDd/form.vue
@@ -179,9 +179,8 @@
- >() // 可编辑表格ref
const baseDataInfoRef = ref() // 基本信息ref
@@ -244,15 +243,11 @@ const state = reactive<{
erpSpuItemsMemo: any[]
selectedRowsErpSpuIds: string[]
erpSpuSimpleAll: any
- linkCodeVisible: boolean
- linkCgPlanDialogVisible: boolean
}>({
editableTableData: [], // 可编辑表格数据
erpSpuItemsMemo: [], // 请求到的可编辑表格商品数据的缓存
selectedRowsErpSpuIds: [], // 可编辑表格已选行的ErpSpuId
erpSpuSimpleAll: [], // 简要商品列表
- linkCodeVisible: false, // 关联采购申请单对话框开关
- linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
})
// 基本信息表单校验规则
@@ -304,7 +299,7 @@ const getInitData = async () => {
}
// 点击关联采购申请编号
-const handleClickLinkCode = () => linkCgPlanDialogRef.value.openLinkCodeDialog(1)
+const handleClickLinkCode = () => linkCodeDialogRef.value.openLinkCodeDialog(1)
// 获取选择的采购申请
const getSelectedLinkCode = (selectionRows: any) => {
@@ -313,7 +308,6 @@ const getSelectedLinkCode = (selectionRows: any) => {
baseDataForm.linkCode = selectionRows.planCode
state.editableTableData = selectionRows.items
state.erpSpuItemsMemo = selectionRows.items
- state.linkCgPlanDialogVisible = false
}
// 删除选中的行
diff --git a/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue b/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue
index 04bffaa..fb751c1 100644
--- a/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue
+++ b/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue
@@ -180,9 +180,8 @@
- >() // 可编辑表格ref
const baseDataInfoRef = ref() // 基本信息ref
@@ -244,16 +243,11 @@ const state = reactive<{
erpSpuItemsMemo: any[]
selectedRowsErpSpuIds: string[]
erpSpuSimpleAll: any
- linkCodeVisible: boolean
- linkCgPlanDialogVisible: boolean
}>({
editableTableData: [], // 可编辑表格数据
erpSpuItemsMemo: [], // 请求到的可编辑表格商品数据的缓存
selectedRowsErpSpuIds: [], // 可编辑表格已选行的ErpSpuId
erpSpuSimpleAll: [], // 简要商品列表
-
- linkCodeVisible: false, // 关联采购申请单对话框开关
- linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
})
// 基本信息表单校验规则
@@ -317,7 +311,7 @@ const getInitData = async () => {
}
// 点击关联采购申请编号
-const handleClickLinkCode = () => linkCgPlanDialogRef.value.openLinkCodeDialog(2)
+const handleClickLinkCode = () => linkCodeDialogRef.value.openLinkCodeDialog(2)
// 获取选择的采购申请
const getSelectedLinkCode = (selectionRows: any) => {
@@ -334,7 +328,6 @@ const getSelectedLinkCode = (selectionRows: any) => {
unitObj: {},
realPrice: displayPrice(item.purchasePrice, ""),
}))
- state.linkCgPlanDialogVisible = false
}
// 删除选中的行
diff --git a/src/views/supermarketerp/retailManagement/smErpRetailBack/form.vue b/src/views/supermarketerp/retailManagement/smErpRetailBack/form.vue
index 33bbb90..d20bc18 100644
--- a/src/views/supermarketerp/retailManagement/smErpRetailBack/form.vue
+++ b/src/views/supermarketerp/retailManagement/smErpRetailBack/form.vue
@@ -206,9 +206,8 @@
- >() // 可编辑表格ref
const baseDataInfoRef = ref() // 基本信息ref
@@ -271,16 +270,11 @@ const state = reactive<{
erpSpuItemsMemo: any[]
selectedRowsErpSpuIds: string[]
erpSpuSimpleAll: any
- linkCodeVisible: boolean
- linkCgPlanDialogVisible: boolean
}>({
editableTableData: [], // 可编辑表格数据
erpSpuItemsMemo: [], // 请求到的可编辑表格商品数据的缓存
selectedRowsErpSpuIds: [], // 可编辑表格已选行的ErpSpuId
erpSpuSimpleAll: [], // 简要商品列表
-
- linkCodeVisible: false, // 关联采购申请单对话框开关
- linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
})
// 合计金额表单数据
@@ -345,7 +339,7 @@ const getInitData = async () => {
}
// 点击关联采购申请编号
-const handleClickLinkCode = () => linkCgPlanDialogRef.value.openLinkCodeDialog(3)
+const handleClickLinkCode = () => linkCodeDialogRef.value.openLinkCodeDialog(3)
// 获取选择的采购申请
const getSelectedLinkCode = (selectionRows: any) => {
@@ -354,7 +348,6 @@ const getSelectedLinkCode = (selectionRows: any) => {
baseDataForm.linkCode = selectionRows.inventoryCode
state.editableTableData = selectionRows.items
state.erpSpuItemsMemo = selectionRows.items
- state.linkCgPlanDialogVisible = false
}
// 删除选中的行
diff --git a/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue b/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue
index fe1e86a..e41f801 100644
--- a/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue
+++ b/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue
@@ -198,9 +198,8 @@
- >() // 可编辑表格ref
const baseDataInfoRef = ref() // 基本信息ref
@@ -263,16 +262,11 @@ const state = reactive<{
erpSpuItemsMemo: any[]
selectedRowsErpSpuIds: string[]
erpSpuSimpleAll: any
- linkCodeVisible: boolean
- linkCgPlanDialogVisible: boolean
}>({
editableTableData: [], // 可编辑表格数据
erpSpuItemsMemo: [], // 请求到的可编辑表格商品数据的缓存
selectedRowsErpSpuIds: [], // 可编辑表格已选行的ErpSpuId
erpSpuSimpleAll: [], // 简要商品列表
-
- linkCodeVisible: false, // 关联采购申请单对话框开关
- linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
})
// 合计金额表单数据
@@ -337,7 +331,7 @@ const getInitData = async () => {
}
// 点击关联采购申请编号
-const handleClickLinkCode = () => linkCgPlanDialogRef.value.openLinkCodeDialog(2)
+const handleClickLinkCode = () => linkCodeDialogRef.value.openLinkCodeDialog(2)
// 获取选择的采购申请
const getSelectedLinkCode = (selectionRows: any) => {
@@ -346,7 +340,6 @@ const getSelectedLinkCode = (selectionRows: any) => {
baseDataForm.linkCode = selectionRows.code
state.editableTableData = selectionRows.items
state.erpSpuItemsMemo = selectionRows.items
- state.linkCgPlanDialogVisible = false
}
// 删除选中的行
diff --git a/src/views/supermarketerp/stockTaking/barCodeEnter.vue b/src/views/supermarketerp/stockTaking/barCodeEnter.vue
index bf00215..8c2fc6e 100644
--- a/src/views/supermarketerp/stockTaking/barCodeEnter.vue
+++ b/src/views/supermarketerp/stockTaking/barCodeEnter.vue
@@ -51,10 +51,8 @@
-
+ 取消
+ 确认
@@ -85,10 +83,11 @@ const form = reactive({
salesCount: "",
erpSpuName: "",
})
+const dialogVisible = ref(false)
// 定义校验规则
const dataRules = ref({
- // sliderPicUrls: [{ required: true, message: "请上传轮播图", trigger: "blur" }],
+ sliderPicUrls: [{ required: true, message: "请上传轮播图", trigger: "blur" }],
})
// 打开弹窗
@@ -143,29 +142,29 @@ const state: BasicTableProps = reactive({
const { getDataList, currentChangeHandle, sizeChangeHandle, sortChangeHandle, downBlobFile, tableStyle } = useTable(state)
-// const resetQuery = () => {
-// getDataList()
-// }
+const resetQuery = () => {
+ getDataList()
+}
// 点击选择库存商品
-// const handleClickSelectSpu = () => {
-// loading.value = true
-// resetQuery()
-// spuSelectDialogVisible.value = true
-// try {
-// getDataList()
-// } catch (error) {
-// state.dataList = []
-// loading.value = false
-// }
-// loading.value = false
-// }
+const handleClickSelectSpu = () => {
+ loading.value = true
+ resetQuery()
+ dialogVisible.value = true
+ try {
+ getDataList()
+ } catch (error) {
+ state.dataList = []
+ loading.value = false
+ }
+ loading.value = false
+}
// 线上商品列表表格行点击
const handleRowClick = (row: any) => {
- // spuSelectDialogVisible.value = false
- // form.erpSpuId = row.id
- // form.erpSpuName = row.productName
+ dialogVisible.value = false
+ form.erpSpuId = row.id
+ form.erpSpuName = row.productName
}
// 暴露变量
diff --git a/src/views/supermarketerp/stockTaking/form.vue b/src/views/supermarketerp/stockTaking/form.vue
index 166f83e..b06b1ee 100644
--- a/src/views/supermarketerp/stockTaking/form.vue
+++ b/src/views/supermarketerp/stockTaking/form.vue
@@ -243,16 +243,11 @@ const state = reactive<{
erpSpuItemsMemo: any[]
selectedRowsErpSpuIds: string[]
erpSpuSimpleAll: any
- linkCodeVisible: boolean
- linkCgPlanDialogVisible: boolean
}>({
editableTableData: [], // 可编辑表格数据
erpSpuItemsMemo: [], // 请求到的可编辑表格商品数据的缓存
selectedRowsErpSpuIds: [], // 可编辑表格已选行的ErpSpuId
erpSpuSimpleAll: [], // 简要商品列表
-
- linkCodeVisible: false, // 关联采购申请单对话框开关
- linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
})
// 基本信息表单校验规则