修改
This commit is contained in:
1 parent
3a378bba2f
commit
af0cf2bbb3
9 files changed
+135
-561
No files matched your search
@@ -1,7 +1,16 @@
|
||||
import request from "/@/utils/request"
|
||||
|
||||
// 库存盘点新增
|
||||
export function stockTakingAdd(data?: object) {
|
||||
export function addObj(data?: object) {
|
||||
return request({
|
||||
url: "/supermarket/smErpInventoryRecords/savePD",
|
||||
method: "post",
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 库存盘点修改
|
||||
export function putObj(data?: object) {
|
||||
return request({
|
||||
url: "/supermarket/smErpInventoryRecords/savePD",
|
||||
method: "post",
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
import { Ref } from "vue"
|
||||
import { useMessage } from "./message"
|
||||
|
||||
export function useSmProcessFormAction() {
|
||||
// 校验 成功返回true 失败返回false
|
||||
const formValidate = async (baseDataFormRef: any, editableTableRef: any, editableTableData: any) => {
|
||||
const valid = await baseDataFormRef.value.validate().catch(() => {})
|
||||
if (!valid) return false
|
||||
|
||||
if (editableTableData.length <= 0) {
|
||||
useMessage().warning("请选择商品")
|
||||
return false
|
||||
}
|
||||
|
||||
const $table = editableTableRef.value
|
||||
if ($table) {
|
||||
const errMap = await $table.validate(true)
|
||||
if (errMap) {
|
||||
console.log("全量校验失败!")
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// 提交数据 成功返回 true 失败返回 false
|
||||
const submitData = async (baseDataForm: any, cgPlanSpuItems: Ref<any[]>, loading: Ref<boolean>, putObj: any, addObj: any) => {
|
||||
try {
|
||||
loading.value = true
|
||||
|
||||
const _pa = {
|
||||
...baseDataForm,
|
||||
items: cgPlanSpuItems.value,
|
||||
}
|
||||
|
||||
console.log("提交的数据:", _pa)
|
||||
|
||||
const res = baseDataForm.id ? await putObj(_pa) : await addObj(_pa)
|
||||
if (res.code == 0) {
|
||||
useMessage().success(baseDataForm.id ? "修改成功" : "添加成功")
|
||||
return true
|
||||
} else {
|
||||
useMessage().error(res.msg)
|
||||
return false
|
||||
}
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg)
|
||||
loading.value = false
|
||||
return false
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
return {
|
||||
formValidate,
|
||||
submitData,
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-loading="loading" :element-loading-svg="svg" element-loading-svg-view-box="-10, -10, 50, 50" class="w-full h-full">
|
||||
<div v-loading="loading" class="w-full h-full">
|
||||
<div v-if="baseDataForm.inventoryCode" class="layout-padding-auto layout-padding-view" style="overflow: scroll">
|
||||
<div v-if="disabled" ref="baseDataInfoRef">
|
||||
<div style="margin-bottom: 8px; padding: 8px 16px; color: #606279; display: flex; flex-wrap: wrap">
|
||||
@@ -192,7 +192,6 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from "vue"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { getObj, addObj, putObj } from "/@/api/supermarketerp/smErpInventoryRecords"
|
||||
import { getPlanCode, getErpSpuSimpleAll, getCgInventoryPage } from "/@/api/supermarketerp/common"
|
||||
import { VxeTableEvents, VxeTablePropTypes, type VxeTableInstance } from "vxe-table"
|
||||
@@ -201,6 +200,7 @@ import { Search } from "@element-plus/icons-vue"
|
||||
import linkCodeDialog from "/@/views/supermarketerp/components/linkCodeDialog.vue"
|
||||
import { displayPrice } from "/@/utils/formatMoney"
|
||||
import { tablePrint } from "../../supermarketUtils"
|
||||
import { useSmProcessFormAction } from "/@/hooks/smProcessFormAction"
|
||||
|
||||
const SelectDialog = defineAsyncComponent(() => import("/@/views/supermarketerp/components/erpSpuSelectDialog.vue"))
|
||||
|
||||
@@ -258,14 +258,6 @@ const state = reactive<{
|
||||
erpSpuSelectDialogVisible: false, // 商品选择对话框开关
|
||||
linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
|
||||
})
|
||||
const svg = `<path class="path" d="
|
||||
M 30 15
|
||||
L 28 17
|
||||
M 25.61 25.61
|
||||
A 15 15, 0, 0, 1, 15 30
|
||||
A 15 15, 0, 1, 1, 27.99 7.5
|
||||
L 15 15
|
||||
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>`
|
||||
|
||||
// 基本信息表单校验规则
|
||||
const dataRules = ref({
|
||||
@@ -414,86 +406,27 @@ const cgPlanSpuItems = computed(() => {
|
||||
})
|
||||
})
|
||||
|
||||
const { formValidate, submitData } = useSmProcessFormAction()
|
||||
|
||||
// 点击继续添加
|
||||
const onContinueAdd = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) && checkSelectSpu() && (await editableTableValidate()) && (await submitData()) && clearData()
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData()
|
||||
}
|
||||
|
||||
// 点击保存
|
||||
const onSave = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) &&
|
||||
checkSelectSpu() &&
|
||||
(await editableTableValidate()) &&
|
||||
(await submitData()) &&
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData() &&
|
||||
emit("close")
|
||||
}
|
||||
|
||||
// 校验基本数据表单 成功返回 true 失败返回 undefined
|
||||
const baseDataFormValidate = async () => {
|
||||
const valid = await baseDataFormRef.value.validate().catch(() => {})
|
||||
return valid
|
||||
}
|
||||
|
||||
// 校验是否选择了商品 成功返回 true 失败返回 false
|
||||
const checkSelectSpu = () => {
|
||||
if (state.editableTableData.length <= 0) {
|
||||
useMessage().warning("请选择商品")
|
||||
return false
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// 校验可编辑表格 成功返回 true 失败返回 false
|
||||
const editableTableValidate = async () => {
|
||||
// 全量校验
|
||||
const $table = editableTableRef.value
|
||||
if ($table) {
|
||||
const errMap = await $table.validate(true)
|
||||
if (errMap) {
|
||||
console.log("全量校验失败!")
|
||||
return false
|
||||
} else {
|
||||
console.log("全量校验成功!")
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 提交数据 成功返回 true 失败返回 false
|
||||
const submitData = async () => {
|
||||
try {
|
||||
loading.value = true
|
||||
|
||||
const _pa = {
|
||||
...baseDataForm,
|
||||
items: cgPlanSpuItems.value,
|
||||
}
|
||||
|
||||
console.log("提交的数据:", _pa)
|
||||
|
||||
const res = baseDataForm.id
|
||||
? await putObj(_pa).finally(() => (loading.value = false))
|
||||
: await addObj(_pa).finally(() => (loading.value = false))
|
||||
if (res.code === 0) {
|
||||
useMessage().success(baseDataForm.id ? "修改成功" : "添加成功")
|
||||
return true
|
||||
} else {
|
||||
useMessage().error(res.msg)
|
||||
return false
|
||||
}
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg)
|
||||
loading.value = false
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// 清空填写的数据 返回 true
|
||||
const clearData = () => {
|
||||
for (const key in baseDataForm) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-loading="loading" :element-loading-svg="svg" element-loading-svg-view-box="-10, -10, 50, 50" class="w-full h-full">
|
||||
<div v-loading="loading" class="w-full h-full">
|
||||
<div v-if="baseDataForm.code" class="layout-padding-auto layout-padding-view" style="overflow: scroll">
|
||||
<div v-if="disabled" ref="baseDataInfoRef">
|
||||
<div style="margin-bottom: 8px; padding: 8px 16px; color: #606279; display: flex; flex-wrap: wrap">
|
||||
@@ -197,7 +197,6 @@
|
||||
|
||||
<script setup lang="ts" name="smErpCgDd">
|
||||
import { ref, reactive, computed, onMounted } from "vue"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { getObj, addObj, putObj } from "/@/api/supermarketerp/smErpCgDd"
|
||||
import { getPlanCode, getErpSpuSimpleAll, getCgsqPage } from "/@/api/supermarketerp/common"
|
||||
import { VxeTableEvents, VxeTablePropTypes, type VxeTableInstance } from "vxe-table"
|
||||
@@ -206,6 +205,7 @@ import { Search } from "@element-plus/icons-vue"
|
||||
import linkCodeDialog from "/@/views/supermarketerp/components/linkCodeDialog.vue"
|
||||
import { displayPrice } from "/@/utils/formatMoney"
|
||||
import { tablePrint } from "../../supermarketUtils"
|
||||
import { useSmProcessFormAction } from "/@/hooks/smProcessFormAction"
|
||||
|
||||
const SelectDialog = defineAsyncComponent(() => import("/@/views/supermarketerp/components/erpSpuSelectDialog.vue"))
|
||||
|
||||
@@ -263,14 +263,6 @@ const state = reactive<{
|
||||
erpSpuSelectDialogVisible: false, // 商品选择对话框开关
|
||||
linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
|
||||
})
|
||||
const svg = `<path class="path" d="
|
||||
M 30 15
|
||||
L 28 17
|
||||
M 25.61 25.61
|
||||
A 15 15, 0, 0, 1, 15 30
|
||||
A 15 15, 0, 1, 1, 27.99 7.5
|
||||
L 15 15
|
||||
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>`
|
||||
|
||||
// 基本信息表单校验规则
|
||||
const dataRules = ref({
|
||||
@@ -419,86 +411,27 @@ const cgPlanSpuItems = computed(() => {
|
||||
})
|
||||
})
|
||||
|
||||
const { formValidate, submitData } = useSmProcessFormAction()
|
||||
|
||||
// 点击继续添加
|
||||
const onContinueAdd = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) && checkSelectSpu() && (await editableTableValidate()) && (await submitData()) && clearData()
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData()
|
||||
}
|
||||
|
||||
// 点击保存
|
||||
const onSave = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) &&
|
||||
checkSelectSpu() &&
|
||||
(await editableTableValidate()) &&
|
||||
(await submitData()) &&
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData() &&
|
||||
emit("close")
|
||||
}
|
||||
|
||||
// 校验基本数据表单 成功返回 true 失败返回 undefined
|
||||
const baseDataFormValidate = async () => {
|
||||
const valid = await baseDataFormRef.value.validate().catch(() => {})
|
||||
return valid
|
||||
}
|
||||
|
||||
// 校验是否选择了商品 成功返回 true 失败返回 false
|
||||
const checkSelectSpu = () => {
|
||||
if (state.editableTableData.length <= 0) {
|
||||
useMessage().warning("请选择商品")
|
||||
return false
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// 校验可编辑表格 成功返回 true 失败返回 false
|
||||
const editableTableValidate = async () => {
|
||||
// 全量校验
|
||||
const $table = editableTableRef.value
|
||||
if ($table) {
|
||||
const errMap = await $table.validate(true)
|
||||
if (errMap) {
|
||||
console.log("全量校验失败!")
|
||||
return false
|
||||
} else {
|
||||
console.log("全量校验成功!")
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 提交数据 成功返回 true 失败返回 false
|
||||
const submitData = async () => {
|
||||
try {
|
||||
loading.value = true
|
||||
|
||||
const _pa = {
|
||||
...baseDataForm,
|
||||
items: cgPlanSpuItems.value,
|
||||
}
|
||||
|
||||
console.log("提交的数据:", _pa)
|
||||
|
||||
const res = baseDataForm.id
|
||||
? await putObj(_pa).finally(() => (loading.value = false))
|
||||
: await addObj(_pa).finally(() => (loading.value = false))
|
||||
if (res.code === 0) {
|
||||
useMessage().success(baseDataForm.id ? "修改成功" : "添加成功")
|
||||
return true
|
||||
} else {
|
||||
useMessage().error(res.msg)
|
||||
return false
|
||||
}
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg)
|
||||
loading.value = false
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// 清空填写的数据 返回 true
|
||||
const clearData = () => {
|
||||
for (const key in baseDataForm) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-loading="loading" :element-loading-svg="svg" element-loading-svg-view-box="-10, -10, 50, 50" class="w-full h-full">
|
||||
<div v-loading="loading" class="w-full h-full">
|
||||
<div v-if="baseDataForm.inventoryCode" class="layout-padding-auto layout-padding-view" style="overflow: scroll">
|
||||
<div v-if="disabled" ref="baseDataInfoRef">
|
||||
<div style="margin-bottom: 8px; padding: 8px 16px; color: #606279; display: flex; flex-wrap: wrap">
|
||||
@@ -198,7 +198,6 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from "vue"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { getObj, addObj, putObj } from "/@/api/supermarketerp/smErpInventoryRecords"
|
||||
import { getPlanCode, getErpSpuSimpleAll, getCgddPage } from "/@/api/supermarketerp/common"
|
||||
import { VxeTableEvents, VxeTablePropTypes, type VxeTableInstance } from "vxe-table"
|
||||
@@ -207,6 +206,7 @@ import { Search } from "@element-plus/icons-vue"
|
||||
import linkCodeDialog from "/@/views/supermarketerp/components/linkCodeDialog.vue"
|
||||
import { displayPrice, storePrice } from "/@/utils/formatMoney"
|
||||
import { tablePrint } from "../../supermarketUtils"
|
||||
import { useSmProcessFormAction } from "/@/hooks/smProcessFormAction"
|
||||
|
||||
const SelectDialog = defineAsyncComponent(() => import("/@/views/supermarketerp/components/erpSpuSelectDialog.vue"))
|
||||
|
||||
@@ -264,14 +264,6 @@ const state = reactive<{
|
||||
erpSpuSelectDialogVisible: false, // 商品选择对话框开关
|
||||
linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
|
||||
})
|
||||
const svg = `<path class="path" d="
|
||||
M 30 15
|
||||
L 28 17
|
||||
M 25.61 25.61
|
||||
A 15 15, 0, 0, 1, 15 30
|
||||
A 15 15, 0, 1, 1, 27.99 7.5
|
||||
L 15 15
|
||||
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>`
|
||||
|
||||
// 基本信息表单校验规则
|
||||
const dataRules = ref({
|
||||
@@ -423,86 +415,27 @@ const cgPlanSpuItems = computed(() => {
|
||||
})
|
||||
})
|
||||
|
||||
const { formValidate, submitData } = useSmProcessFormAction()
|
||||
|
||||
// 点击继续添加
|
||||
const onContinueAdd = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) && checkSelectSpu() && (await editableTableValidate()) && (await submitData()) && clearData()
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData()
|
||||
}
|
||||
|
||||
// 点击保存
|
||||
const onSave = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) &&
|
||||
checkSelectSpu() &&
|
||||
(await editableTableValidate()) &&
|
||||
(await submitData()) &&
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData() &&
|
||||
emit("close")
|
||||
}
|
||||
|
||||
// 校验基本数据表单 成功返回 true 失败返回 undefined
|
||||
const baseDataFormValidate = async () => {
|
||||
const valid = await baseDataFormRef.value.validate().catch(() => {})
|
||||
return valid
|
||||
}
|
||||
|
||||
// 校验是否选择了商品 成功返回 true 失败返回 false
|
||||
const checkSelectSpu = () => {
|
||||
if (state.editableTableData.length <= 0) {
|
||||
useMessage().warning("请选择商品")
|
||||
return false
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// 校验可编辑表格 成功返回 true 失败返回 false
|
||||
const editableTableValidate = async () => {
|
||||
// 全量校验
|
||||
const $table = editableTableRef.value
|
||||
if ($table) {
|
||||
const errMap = await $table.validate(true)
|
||||
if (errMap) {
|
||||
console.log("全量校验失败!")
|
||||
return false
|
||||
} else {
|
||||
console.log("全量校验成功!")
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 提交数据 成功返回 true 失败返回 false
|
||||
const submitData = async () => {
|
||||
try {
|
||||
loading.value = true
|
||||
|
||||
const _pa = {
|
||||
...baseDataForm,
|
||||
items: cgPlanSpuItems.value,
|
||||
}
|
||||
|
||||
console.log("提交的数据:", _pa)
|
||||
|
||||
const res = baseDataForm.id
|
||||
? await putObj(_pa).finally(() => (loading.value = false))
|
||||
: await addObj(_pa).finally(() => (loading.value = false))
|
||||
if (res.code === 0) {
|
||||
useMessage().success(baseDataForm.id ? "修改成功" : "添加成功")
|
||||
return true
|
||||
} else {
|
||||
useMessage().error(res.msg)
|
||||
return false
|
||||
}
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg)
|
||||
loading.value = false
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// 清空填写的数据 返回 true
|
||||
const clearData = () => {
|
||||
for (const key in baseDataForm) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-loading="loading" :element-loading-svg="svg" element-loading-svg-view-box="-10, -10, 50, 50" class="w-full h-full">
|
||||
<div v-loading="loading" class="w-full h-full">
|
||||
<div v-if="baseDataForm.planCode" class="layout-padding-auto layout-padding-view" style="overflow: scroll">
|
||||
<div v-if="disabled" ref="baseDataInfoRef">
|
||||
<div style="margin-bottom: 8px; padding: 8px 16px; color: #606279; display: flex; flex-wrap: wrap">
|
||||
@@ -106,11 +106,6 @@
|
||||
>
|
||||
<vxe-column type="checkbox" width="40" fixed="left" />
|
||||
<vxe-column type="seq" width="50" fixed="left" />
|
||||
<!-- <vxe-column field="planId" title="采购" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }">
|
||||
<template #edit="{ row }">
|
||||
<el-input v-model="row.planId" />
|
||||
</template>
|
||||
</vxe-column> -->
|
||||
<vxe-column field="productName" title="库存商品">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.productName">{{ row.productName }}</span>
|
||||
@@ -139,35 +134,11 @@
|
||||
<el-input v-model="row.quantity" />
|
||||
</template>
|
||||
</vxe-column>
|
||||
<!-- <vxe-column field="unitPrice" title="进价">
|
||||
<template #default="{ row }">
|
||||
{{ row.erpUnitVos?.find((item: any) => item.id == row.unitId)?.purchasePrice }}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="totalAmount" title="累计总金额">
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
row.unitId && row.quantity
|
||||
? Number(row.erpUnitVos?.find((item: any) => item.id == row.unitId)?.purchasePrice) * row.quantity
|
||||
: ""
|
||||
}}
|
||||
</template>
|
||||
</vxe-column> -->
|
||||
<vxe-column field="remark" title="备注" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }">
|
||||
<template #edit="{ row }">
|
||||
<el-input v-model="row.remark" />
|
||||
</template>
|
||||
</vxe-column>
|
||||
<!-- <vxe-column field="merchantId" title="商户编号" :edit-render="{ autoFocus: 'input', placeholder: '请选择' }">-->
|
||||
<!-- <template #edit="{ row }">-->
|
||||
<!-- <select-mch v-model="row.merchantId" />-->
|
||||
<!-- </template>-->
|
||||
<!-- </vxe-column>-->
|
||||
<!-- <vxe-column field="deptId" title="部门id" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }">-->
|
||||
<!-- <template #edit="{ row }">-->
|
||||
<!-- <el-input v-model="row.deptId" />-->
|
||||
<!-- </template>-->
|
||||
<!-- </vxe-column>-->
|
||||
</vxe-table>
|
||||
|
||||
<el-row class="my-3">
|
||||
@@ -198,12 +169,12 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from "vue"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { VxeTableEvents, VxeTablePropTypes, type VxeTableInstance } from "vxe-table"
|
||||
import { getObj, addObj, putObj } from "/@/api/supermarketerp/smErpCgPlan"
|
||||
import { getPlanCode, getErpSpuSimpleAll } from "/@/api/supermarketerp/common"
|
||||
import { formatDate } from "/@/utils/formatTime"
|
||||
import { tablePrint } from "../../supermarketUtils"
|
||||
import { useSmProcessFormAction } from "/@/hooks/smProcessFormAction"
|
||||
|
||||
const SelectDialog = defineAsyncComponent(() => import("/@/views/supermarketerp/components/erpSpuSelectDialog.vue"))
|
||||
|
||||
@@ -248,14 +219,6 @@ const state = reactive<{
|
||||
erpSpuSimpleAll: [], // 简要商品列表
|
||||
erpSpuSelectDialogVisible: false, // 商品选择对话框开关
|
||||
})
|
||||
const svg = `<path class="path" d="
|
||||
M 30 15
|
||||
L 28 17
|
||||
M 25.61 25.61
|
||||
A 15 15, 0, 0, 1, 15 30
|
||||
A 15 15, 0, 1, 1, 27.99 7.5
|
||||
L 15 15
|
||||
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>`
|
||||
|
||||
// 基本信息表单校验规则
|
||||
const dataRules = ref({
|
||||
@@ -433,86 +396,27 @@ const cgPlanSpuItems = computed(() => {
|
||||
})
|
||||
})
|
||||
|
||||
const { formValidate, submitData } = useSmProcessFormAction()
|
||||
|
||||
// 点击继续添加
|
||||
const onContinueAdd = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) && checkSelectSpu() && (await editableTableValidate()) && (await submitData()) && clearData()
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData()
|
||||
}
|
||||
|
||||
// 点击保存
|
||||
const onSave = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) &&
|
||||
checkSelectSpu() &&
|
||||
(await editableTableValidate()) &&
|
||||
(await submitData()) &&
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData() &&
|
||||
emit("close")
|
||||
}
|
||||
|
||||
// 校验基本数据表单 成功返回 true 失败返回 undefined
|
||||
const baseDataFormValidate = async () => {
|
||||
const valid = await baseDataFormRef.value.validate().catch(() => {})
|
||||
return valid
|
||||
}
|
||||
|
||||
// 校验是否选择了商品 成功返回 true 失败返回 false
|
||||
const checkSelectSpu = () => {
|
||||
if (state.editableTableData.length <= 0) {
|
||||
useMessage().warning("请选择商品")
|
||||
return false
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// 校验可编辑表格 成功返回 true 失败返回 false
|
||||
const editableTableValidate = async () => {
|
||||
// 全量校验
|
||||
const $table = editableTableRef.value
|
||||
if ($table) {
|
||||
const errMap = await $table.validate(true)
|
||||
if (errMap) {
|
||||
console.log("全量校验失败!")
|
||||
return false
|
||||
} else {
|
||||
console.log("全量校验成功!")
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 提交数据 成功返回 true 失败返回 false
|
||||
const submitData = async () => {
|
||||
try {
|
||||
loading.value = true
|
||||
|
||||
const _pa = {
|
||||
...baseDataForm,
|
||||
items: cgPlanSpuItems.value,
|
||||
}
|
||||
|
||||
console.log("提交的数据:", _pa)
|
||||
|
||||
const res = baseDataForm.id
|
||||
? await putObj(_pa).finally(() => (loading.value = false))
|
||||
: await addObj(_pa).finally(() => (loading.value = false))
|
||||
if (res.code === 0) {
|
||||
useMessage().success(baseDataForm.id ? "修改成功" : "添加成功")
|
||||
return true
|
||||
} else {
|
||||
useMessage().error(res.msg)
|
||||
return false
|
||||
}
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg)
|
||||
loading.value = false
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// 清空填写的数据 返回 true
|
||||
const clearData = () => {
|
||||
for (const key in baseDataForm) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-loading="loading" :element-loading-svg="svg" element-loading-svg-view-box="-10, -10, 50, 50" class="w-full h-full">
|
||||
<div v-loading="loading" class="w-full h-full">
|
||||
<div v-if="baseDataForm.inventoryCode" class="layout-padding-auto layout-padding-view" style="overflow: scroll">
|
||||
<div v-if="disabled" ref="baseDataInfoRef">
|
||||
<div style="margin-bottom: 8px; padding: 8px 16px; color: #606279; display: flex; flex-wrap: wrap">
|
||||
@@ -224,7 +224,6 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from "vue"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { getObj, addObj, putObj } from "/@/api/supermarketerp/smErpInventoryRecords"
|
||||
import { getPlanCode, getErpSpuSimpleAll, getCgInventoryPage } from "/@/api/supermarketerp/common"
|
||||
import { VxeTableEvents, VxeTablePropTypes, type VxeTableInstance } from "vxe-table"
|
||||
@@ -233,6 +232,7 @@ import { Search } from "@element-plus/icons-vue"
|
||||
import linkCodeDialog from "/@/views/supermarketerp/components/linkCodeDialog.vue"
|
||||
import { displayPrice, storePrice } from "/@/utils/formatMoney"
|
||||
import { tablePrint } from "../../supermarketUtils"
|
||||
import { useSmProcessFormAction } from "/@/hooks/smProcessFormAction"
|
||||
|
||||
const SelectDialog = defineAsyncComponent(() => import("/@/views/supermarketerp/components/erpSpuSelectDialog.vue"))
|
||||
|
||||
@@ -291,14 +291,7 @@ const state = reactive<{
|
||||
erpSpuSelectDialogVisible: false, // 商品选择对话框开关
|
||||
linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
|
||||
})
|
||||
const svg = `<path class="path" d="
|
||||
M 30 15
|
||||
L 28 17
|
||||
M 25.61 25.61
|
||||
A 15 15, 0, 0, 1, 15 30
|
||||
A 15 15, 0, 1, 1, 27.99 7.5
|
||||
L 15 15
|
||||
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>`
|
||||
|
||||
// 合计金额表单数据
|
||||
const receiveAmountForm = reactive<{ receiveAmount: number }>({
|
||||
receiveAmount: 0,
|
||||
@@ -462,86 +455,27 @@ const cgPlanSpuItems = computed(() => {
|
||||
// 计算单据金额
|
||||
const totalAmount = computed(() => cgPlanSpuItems.value.reduce((pre, cur) => pre + cur.totalAmount, 0))
|
||||
|
||||
const { formValidate, submitData } = useSmProcessFormAction()
|
||||
|
||||
// 点击继续添加
|
||||
const onContinueAdd = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) && checkSelectSpu() && (await editableTableValidate()) && (await submitData()) && clearData()
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData()
|
||||
}
|
||||
|
||||
// 点击保存
|
||||
const onSave = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) &&
|
||||
checkSelectSpu() &&
|
||||
(await editableTableValidate()) &&
|
||||
(await submitData()) &&
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData() &&
|
||||
emit("close")
|
||||
}
|
||||
|
||||
// 校验基本数据表单 成功返回 true 失败返回 undefined
|
||||
const baseDataFormValidate = async () => {
|
||||
const valid = await baseDataFormRef.value.validate().catch(() => {})
|
||||
return valid
|
||||
}
|
||||
|
||||
// 校验是否选择了商品 成功返回 true 失败返回 false
|
||||
const checkSelectSpu = () => {
|
||||
if (state.editableTableData.length <= 0) {
|
||||
useMessage().warning("请选择商品")
|
||||
return false
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// 校验可编辑表格 成功返回 true 失败返回 false
|
||||
const editableTableValidate = async () => {
|
||||
// 全量校验
|
||||
const $table = editableTableRef.value
|
||||
if ($table) {
|
||||
const errMap = await $table.validate(true)
|
||||
if (errMap) {
|
||||
console.log("全量校验失败!")
|
||||
return false
|
||||
} else {
|
||||
console.log("全量校验成功!")
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 提交数据 成功返回 true 失败返回 false
|
||||
const submitData = async () => {
|
||||
try {
|
||||
loading.value = true
|
||||
|
||||
const _pa = {
|
||||
...baseDataForm,
|
||||
items: cgPlanSpuItems.value,
|
||||
}
|
||||
|
||||
console.log("提交的数据:", _pa)
|
||||
|
||||
const res = baseDataForm.id
|
||||
? await putObj(_pa).finally(() => (loading.value = false))
|
||||
: await addObj(_pa).finally(() => (loading.value = false))
|
||||
if (res.code === 0) {
|
||||
useMessage().success(baseDataForm.id ? "修改成功" : "添加成功")
|
||||
return true
|
||||
} else {
|
||||
useMessage().error(res.msg)
|
||||
return false
|
||||
}
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg)
|
||||
loading.value = false
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// 清空填写的数据 返回 true
|
||||
const clearData = () => {
|
||||
for (const key in baseDataForm) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-loading="loading" :element-loading-svg="svg" element-loading-svg-view-box="-10, -10, 50, 50" class="w-full h-full">
|
||||
<div v-loading="loading" class="w-full h-full">
|
||||
<div v-if="baseDataForm.inventoryCode" class="layout-padding-auto layout-padding-view" style="overflow: scroll">
|
||||
<div v-if="disabled" ref="baseDataInfoRef">
|
||||
<div style="margin-bottom: 8px; padding: 8px 16px; color: #606279; display: flex; flex-wrap: wrap">
|
||||
@@ -216,7 +216,6 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from "vue"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { getObj, addObj, putObj } from "/@/api/supermarketerp/smErpInventoryRecords"
|
||||
import { getPlanCode, getErpSpuSimpleAll, getCgddPage } from "/@/api/supermarketerp/common"
|
||||
import { VxeTableEvents, VxeTablePropTypes, type VxeTableInstance } from "vxe-table"
|
||||
@@ -225,6 +224,7 @@ import { Search } from "@element-plus/icons-vue"
|
||||
import linkCodeDialog from "/@/views/supermarketerp/components/linkCodeDialog.vue"
|
||||
import { displayPrice, storePrice } from "/@/utils/formatMoney"
|
||||
import { tablePrint } from "../../supermarketUtils"
|
||||
import { useSmProcessFormAction } from "/@/hooks/smProcessFormAction"
|
||||
|
||||
const SelectDialog = defineAsyncComponent(() => import("/@/views/supermarketerp/components/erpSpuSelectDialog.vue"))
|
||||
|
||||
@@ -283,14 +283,7 @@ const state = reactive<{
|
||||
erpSpuSelectDialogVisible: false, // 商品选择对话框开关
|
||||
linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
|
||||
})
|
||||
const svg = `<path class="path" d="
|
||||
M 30 15
|
||||
L 28 17
|
||||
M 25.61 25.61
|
||||
A 15 15, 0, 0, 1, 15 30
|
||||
A 15 15, 0, 1, 1, 27.99 7.5
|
||||
L 15 15
|
||||
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>`
|
||||
|
||||
// 合计金额表单数据
|
||||
const receiveAmountForm = reactive<{ receiveAmount: number }>({
|
||||
receiveAmount: 0,
|
||||
@@ -454,86 +447,27 @@ const cgPlanSpuItems = computed(() => {
|
||||
// 计算单据金额
|
||||
const totalAmount = computed(() => cgPlanSpuItems.value.reduce((pre, cur) => pre + cur.totalAmount, 0))
|
||||
|
||||
const { formValidate, submitData } = useSmProcessFormAction()
|
||||
|
||||
// 点击继续添加
|
||||
const onContinueAdd = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) && checkSelectSpu() && (await editableTableValidate()) && (await submitData()) && clearData()
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData()
|
||||
}
|
||||
|
||||
// 点击保存
|
||||
const onSave = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) &&
|
||||
checkSelectSpu() &&
|
||||
(await editableTableValidate()) &&
|
||||
(await submitData()) &&
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
|
||||
clearData() &&
|
||||
emit("close")
|
||||
}
|
||||
|
||||
// 校验基本数据表单 成功返回 true 失败返回 undefined
|
||||
const baseDataFormValidate = async () => {
|
||||
const valid = await baseDataFormRef.value.validate().catch(() => {})
|
||||
return valid
|
||||
}
|
||||
|
||||
// 校验是否选择了商品 成功返回 true 失败返回 false
|
||||
const checkSelectSpu = () => {
|
||||
if (state.editableTableData.length <= 0) {
|
||||
useMessage().warning("请选择商品")
|
||||
return false
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// 校验可编辑表格 成功返回 true 失败返回 false
|
||||
const editableTableValidate = async () => {
|
||||
// 全量校验
|
||||
const $table = editableTableRef.value
|
||||
if ($table) {
|
||||
const errMap = await $table.validate(true)
|
||||
if (errMap) {
|
||||
console.log("全量校验失败!")
|
||||
return false
|
||||
} else {
|
||||
console.log("全量校验成功!")
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 提交数据 成功返回 true 失败返回 false
|
||||
const submitData = async () => {
|
||||
try {
|
||||
loading.value = true
|
||||
|
||||
const _pa = {
|
||||
...baseDataForm,
|
||||
items: cgPlanSpuItems.value,
|
||||
}
|
||||
|
||||
console.log("提交的数据:", _pa)
|
||||
|
||||
const res = baseDataForm.id
|
||||
? await putObj(_pa).finally(() => (loading.value = false))
|
||||
: await addObj(_pa).finally(() => (loading.value = false))
|
||||
if (res.code === 0) {
|
||||
useMessage().success(baseDataForm.id ? "修改成功" : "添加成功")
|
||||
return true
|
||||
} else {
|
||||
useMessage().error(res.msg)
|
||||
return false
|
||||
}
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg)
|
||||
loading.value = false
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// 清空填写的数据 返回 true
|
||||
const clearData = () => {
|
||||
for (const key in baseDataForm) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-loading="loading" :element-loading-svg="svg" element-loading-svg-view-box="-10, -10, 50, 50" class="w-full h-full">
|
||||
<div v-loading="loading" class="w-full h-full">
|
||||
<div v-if="baseDataForm.inventoryCode" class="layout-padding-auto layout-padding-view" style="overflow: scroll">
|
||||
<div v-if="disabled" ref="baseDataInfoRef">
|
||||
<div style="margin-bottom: 8px; padding: 8px 16px; color: #606279; display: flex; flex-wrap: wrap">
|
||||
@@ -203,14 +203,14 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from "vue"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { getPlanCode, getErpSpuSimpleAll } from "/@/api/supermarketerp/common"
|
||||
import { getStockTakingDeatil, stockTakingAdd } from "/@/api/supermarketerp/stockTaking"
|
||||
import { getStockTakingDeatil, addObj, putObj } from "/@/api/supermarketerp/stockTaking"
|
||||
import { VxeTableEvents, VxeTablePropTypes, type VxeTableInstance } from "vxe-table"
|
||||
import { formatDate } from "/@/utils/formatTime"
|
||||
import barCodeEnter from "./barCodeEnter.vue"
|
||||
import { displayPrice } from "/@/utils/formatMoney"
|
||||
import { tablePrint } from "../supermarketUtils"
|
||||
import { useSmProcessFormAction } from "/@/hooks/smProcessFormAction"
|
||||
|
||||
const SelectDialog = defineAsyncComponent(() => import("/@/views/supermarketerp/components/erpSpuSelectDialog.vue"))
|
||||
|
||||
@@ -263,14 +263,6 @@ const state = reactive<{
|
||||
erpSpuSelectDialogVisible: false, // 商品选择对话框开关
|
||||
linkCgPlanDialogVisible: false, // 关联采购申请单对话框开关
|
||||
})
|
||||
const svg = `<path class="path" d="
|
||||
M 30 15
|
||||
L 28 17
|
||||
M 25.61 25.61
|
||||
A 15 15, 0, 0, 1, 15 30
|
||||
A 15 15, 0, 1, 1, 27.99 7.5
|
||||
L 15 15
|
||||
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>`
|
||||
|
||||
// 基本信息表单校验规则
|
||||
const dataRules = ref({
|
||||
@@ -472,84 +464,27 @@ const pdPlanItems = computed(() => {
|
||||
})
|
||||
})
|
||||
|
||||
const { formValidate, submitData } = useSmProcessFormAction()
|
||||
|
||||
// 点击继续添加
|
||||
const onContinueAdd = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) && checkSelectSpu() && (await editableTableValidate()) && (await submitData()) && clearData()
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, pdPlanItems, loading, putObj, addObj)) &&
|
||||
clearData()
|
||||
}
|
||||
|
||||
// 点击保存
|
||||
const onSave = async () => {
|
||||
console.log("baseDataForm", baseDataForm)
|
||||
console.log("state.editableTableData", state.editableTableData)
|
||||
;(await baseDataFormValidate()) &&
|
||||
checkSelectSpu() &&
|
||||
(await editableTableValidate()) &&
|
||||
(await submitData()) &&
|
||||
;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData)) &&
|
||||
(await submitData(baseDataForm, pdPlanItems, loading, putObj, addObj)) &&
|
||||
clearData() &&
|
||||
emit("close")
|
||||
}
|
||||
|
||||
// 校验基本数据表单 成功返回 true 失败返回 undefined
|
||||
const baseDataFormValidate = async () => {
|
||||
const valid = await baseDataFormRef.value.validate().catch(() => {})
|
||||
return valid
|
||||
}
|
||||
|
||||
// 校验是否选择了商品 成功返回 true 失败返回 false
|
||||
const checkSelectSpu = () => {
|
||||
if (state.editableTableData.length <= 0) {
|
||||
useMessage().warning("请选择商品")
|
||||
return false
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// 校验可编辑表格 成功返回 true 失败返回 false
|
||||
const editableTableValidate = async () => {
|
||||
// 全量校验
|
||||
const $table = editableTableRef.value
|
||||
if ($table) {
|
||||
const errMap = await $table.validate(true)
|
||||
if (errMap) {
|
||||
console.log("全量校验失败!")
|
||||
return false
|
||||
} else {
|
||||
console.log("全量校验成功!")
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 提交数据 成功返回 true 失败返回 false
|
||||
const submitData = async () => {
|
||||
try {
|
||||
loading.value = true
|
||||
|
||||
const _pa = {
|
||||
...baseDataForm,
|
||||
items: pdPlanItems.value,
|
||||
}
|
||||
|
||||
console.log("提交的数据:", _pa)
|
||||
|
||||
const res = baseDataForm.id ? await putObj(_pa) : await stockTakingAdd(_pa)
|
||||
if (res.code === 0) {
|
||||
useMessage().success(baseDataForm.id ? "修改成功" : "添加成功")
|
||||
return true
|
||||
} else {
|
||||
useMessage().error(res.msg)
|
||||
return false
|
||||
}
|
||||
} catch (err: any) {
|
||||
useMessage().error(err.msg)
|
||||
loading.value = false
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// 清空填写的数据 返回 true
|
||||
const clearData = () => {
|
||||
for (const key in baseDataForm) {
|
||||
|
||||
Reference in new issue
Block a user