From 1bd2ba3a8e6542c56a64fcb45f9354a8dc70a7ed Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Thu, 26 Mar 2026 11:04:37 +0800
Subject: [PATCH] =?UTF-8?q?feat:=E9=A2=9D=E5=A4=96=E6=94=B6=E8=B4=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/thirdparty/third-pay-order.ts | 40 ++++
src/components/Select/SelectHard.vue | 20 +-
src/utils/formatMoney.ts | 6 +
src/utils/other.ts | 2 +-
src/views/admin/system/menu/index.vue | 71 +++----
.../purchaseManagement/smErpCgDd/form.vue | 121 +++++-------
.../smErpCgInventory/form.vue | 115 +++++------
src/views/thirdparty/third-pay-order/form.vue | 187 ++++++++++++++++++
.../thirdparty/third-pay-order/index.vue | 126 ++++++++++++
.../xfj/components/xfj-edit-table.vue | 99 ++++++++++
.../wallet-setting/components/xfj/index.vue | 143 ++++++++++++++
src/views/wallet/wallet-setting/index.vue | 28 ++-
12 files changed, 749 insertions(+), 209 deletions(-)
create mode 100644 src/api/thirdparty/third-pay-order.ts
create mode 100644 src/views/thirdparty/third-pay-order/form.vue
create mode 100644 src/views/thirdparty/third-pay-order/index.vue
create mode 100644 src/views/wallet/wallet-setting/components/xfj/components/xfj-edit-table.vue
create mode 100644 src/views/wallet/wallet-setting/components/xfj/index.vue
diff --git a/src/api/thirdparty/third-pay-order.ts b/src/api/thirdparty/third-pay-order.ts
new file mode 100644
index 0000000..a0f007e
--- /dev/null
+++ b/src/api/thirdparty/third-pay-order.ts
@@ -0,0 +1,40 @@
+import request from "/@/utils/request"
+
+export function fetchList(query?: Object) {
+ return request({
+ url: "/third/third-pay-order/page",
+ method: "get",
+ params: query,
+ })
+}
+
+export function addObj(obj?: Object) {
+ return request({
+ url: "/third/third-pay-order",
+ method: "post",
+ data: obj,
+ })
+}
+
+export function getObj(id?: string) {
+ return request({
+ url: "/third/third-pay-order/" + id,
+ method: "get",
+ })
+}
+
+export function delObjs(ids?: Object) {
+ return request({
+ url: "/third/third-pay-order",
+ method: "delete",
+ data: ids,
+ })
+}
+
+export function putObj(obj?: Object) {
+ return request({
+ url: "/third/third-pay-order",
+ method: "put",
+ data: obj,
+ })
+}
diff --git a/src/components/Select/SelectHard.vue b/src/components/Select/SelectHard.vue
index 50cea9c..7d57e39 100644
--- a/src/components/Select/SelectHard.vue
+++ b/src/components/Select/SelectHard.vue
@@ -1,18 +1,8 @@
- e && getOptions()"
- @change="change"
- >
+ e && getOptions()"
+ :multiple="multiple" @change="change">
{{ v.name }}
@@ -40,6 +30,7 @@ const props = withDefaults(
clearable?: boolean
autoFirst?: boolean
apiParams?: any
+ multiple?: boolean
}>(),
{
placeholder: "请选择",
@@ -47,6 +38,7 @@ const props = withDefaults(
clearable: true,
autoFirst: false,
apiParams: {},
+ multiple: false,
},
)
diff --git a/src/utils/formatMoney.ts b/src/utils/formatMoney.ts
index cf21e1b..fc54c07 100644
--- a/src/utils/formatMoney.ts
+++ b/src/utils/formatMoney.ts
@@ -9,6 +9,12 @@ export function displayPrice(price: any, suffix: string = "元", fixed = 2) {
return (parsedNumber / 100.0).toFixed(fixed) + suffix
}
+export function displayYuanToYuan(price: any, suffix: string = "元", fixed = 2) {
+ if (typeof price === "undefined") return "0.00" + suffix
+ const parsedNumber = typeof price === "string" ? parseFloat(price) : price
+ return parsedNumber.toFixed(fixed) + suffix
+}
+
export function displayWeight(price: any, fixed = 2) {
if (typeof price === "undefined") return "0"
const parsedNumber = typeof price === "string" ? parseFloat(price) : price
diff --git a/src/utils/other.ts b/src/utils/other.ts
index f95ff58..7ffb98c 100644
--- a/src/utils/other.ts
+++ b/src/utils/other.ts
@@ -391,7 +391,7 @@ export function handleBlobFile(response: any, fileName: string) {
}
}
if (typeof (blob as any).text === "function") {
- ;(blob as any).text().then((t: string) => handleText(t))
+ (blob as any).text().then((t: string) => handleText(t))
} else {
const reader = new FileReader()
reader.onload = () => handleText(String(reader.result || ""))
diff --git a/src/views/admin/system/menu/index.vue b/src/views/admin/system/menu/index.vue
index 1c44795..7d0ff0f 100644
--- a/src/views/admin/system/menu/index.vue
+++ b/src/views/admin/system/menu/index.vue
@@ -4,7 +4,8 @@
-
+
@@ -16,34 +17,22 @@
-
+
{{ $t("common.addBtn") }}
-
+
-
-
-
+
+
+
@@ -63,26 +52,23 @@
关闭
-
+
-
+
{{ $t("common.addBtn") }}
- {{ $t("common.editBtn") }}
+ {{ $t("common.editBtn") }}
-
+
-
+
{{ $t("common.delBtn") }}
@@ -210,7 +196,7 @@ const tableList = computed(() => {
const restoreExpandedRows = async () => {
await nextTick()
if (!tableRef.value || expandedRowIds.value.size === 0) return
-
+
// 递归加载并展开节点
const loadAndExpandRows = async (list: any[]) => {
for (const row of list || []) {
@@ -228,7 +214,7 @@ const restoreExpandedRows = async () => {
console.error('加载子节点失败:', error)
}
}
-
+
// 展开该节点
try {
tableRef.value.toggleRowExpansion(row, true)
@@ -237,7 +223,7 @@ const restoreExpandedRows = async () => {
} catch (error) {
console.error('展开节点失败:', error)
}
-
+
// 如果有子节点,递归处理
if (row.children && row.children.length > 0) {
await loadAndExpandRows(row.children)
@@ -245,7 +231,7 @@ const restoreExpandedRows = async () => {
}
}
}
-
+
await loadAndExpandRows(state.dataList)
}
@@ -291,6 +277,7 @@ const handleDelete = async (row: any) => {
:v-deep(.el-table .el-table__row .cell) {
display: flex;
}
+
:v-deep(.el-table .el-table__row .cell .el-table__expand-icon .el-icon) {
width: 20px;
height: 20px;
diff --git a/src/views/supermarketerp/purchaseManagement/smErpCgDd/form.vue b/src/views/supermarketerp/purchaseManagement/smErpCgDd/form.vue
index d6d2fa8..59db56b 100644
--- a/src/views/supermarketerp/purchaseManagement/smErpCgDd/form.vue
+++ b/src/views/supermarketerp/purchaseManagement/smErpCgDd/form.vue
@@ -13,12 +13,8 @@
经办人:
-
+
关联补货申请:
@@ -26,7 +22,8 @@
货商:
-
+
备注:
@@ -43,90 +40,65 @@
-
+
-
+
-
+
-
+
商品选择
- 删除选中
+ 删除选中
清空数据
-
+
{{ row.productName }}
- {{ row.erpSpuId && state.erpSpuSimpleAll.find((item: any) => item.id === row.erpSpuId)?.productName }}
+ {{row.erpSpuId && state.erpSpuSimpleAll.find((item: any) => item.id ===
+ row.erpSpuId)?.productName }}
-
+
- {{ row.unit ?? row.erpUnitVos?.find((item: any) => item.id == row.unitId)?.unit }}
+ {{row.unit ?? row.erpUnitVos?.find((item: any) => item.id ==
+ row.unitId)?.unit }}
请选择
@@ -150,7 +122,8 @@
{{ displayPrice(row.quantity * parseFloat(row.purchasePrice)) }}
- {{ displayPrice(Number(row.erpUnitVos?.find((item: any) => item.id == row.unitId)?.purchasePrice) * row.quantity) }}
+ {{displayPrice(Number(row.erpUnitVos?.find((item: any) => item.id ==
+ row.unitId)?.purchasePrice) * row.quantity) }}
@@ -179,12 +152,8 @@
-
+
@@ -403,19 +372,19 @@ const { formValidate, submitData } = useSmProcessFormAction()
const onContinueAdd = async () => {
console.log("baseDataForm", baseDataForm)
console.log("state.editableTableData", state.editableTableData)
- ;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData.length)) &&
- (await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
- clearData()
+ ; (await formValidate(baseDataFormRef, editableTableRef, state.editableTableData.length)) &&
+ (await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
+ clearData()
}
// 点击保存
const onSave = async () => {
console.log("baseDataForm", baseDataForm)
console.log("state.editableTableData", state.editableTableData)
- ;(await formValidate(baseDataFormRef, editableTableRef, state.editableTableData.length)) &&
- (await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
- clearData() &&
- emit("close")
+ ; (await formValidate(baseDataFormRef, editableTableRef, state.editableTableData.length)) &&
+ (await submitData(baseDataForm, cgPlanSpuItems, loading, putObj, addObj)) &&
+ clearData() &&
+ emit("close")
}
// 清空填写的数据 返回 true
diff --git a/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue b/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue
index cb31019..0cb7204 100644
--- a/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue
+++ b/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue
@@ -22,7 +22,8 @@
-->
货商:
-
+
备注:
@@ -33,10 +34,12 @@
-
+
-
+
-
+
-
+
@@ -72,32 +77,20 @@
清空数据
-
+ ]" :merge-footer-items="[{ row: 0, col: 2, rowspan: 1, colspan: 4 }]" @checkbox-all="" @checkbox-change=""
+ size="mini" align="center">
{{ row.productName }}
- {{ row.erpSpuId && erpSpuSimpleAll.find((item: any) => item.id === row.erpSpuId)?.productName }}
+ {{row.erpSpuId && erpSpuSimpleAll.find((item: any) => item.id ===
+ row.erpSpuId)?.productName }}
- {{ supermarket_nature.find((item: any) => item.value == row.productNature)?.label || "" }}
+ {{supermarket_nature.find((item: any) => item.value == row.productNature)?.label || ""}}
-
-
+
+
@@ -148,14 +134,10 @@
-
-
+
+
@@ -190,13 +172,8 @@
{{ row?.selectedUnitObj?.totalAmount }}
-
+
{{ total.totalAmount }}元
@@ -433,19 +410,19 @@ const { formValidate, submitData } = useSmProcessFormAction()
const onContinueAdd = async () => {
console.log("baseDataForm", baseDataForm)
console.log("vxeTableData.value", vxeTableData.value)
- ;(await formValidate(baseFormRef, vxeTableRef, vxeTableData.value.length)) &&
- (await submitData(baseDataForm, settledTableItems.value, loading, putObj, addObj)) &&
- clearData()
+ ; (await formValidate(baseFormRef, vxeTableRef, vxeTableData.value.length)) &&
+ (await submitData(baseDataForm, settledTableItems.value, loading, putObj, addObj)) &&
+ clearData()
}
// 点击保存
const onSave = async () => {
console.log("baseDataForm", baseDataForm)
console.log("vxeTableData.value", vxeTableData.value)
- ;(await formValidate(baseFormRef, vxeTableRef, vxeTableData.value.length)) &&
- (await submitData(baseDataForm, settledTableItems.value, loading, putObj, addObj)) &&
- clearData() &&
- emit("close")
+ ; (await formValidate(baseFormRef, vxeTableRef, vxeTableData.value.length)) &&
+ (await submitData(baseDataForm, settledTableItems.value, loading, putObj, addObj)) &&
+ clearData() &&
+ emit("close")
}
// 清空数据
diff --git a/src/views/thirdparty/third-pay-order/form.vue b/src/views/thirdparty/third-pay-order/form.vue
new file mode 100644
index 0000000..651ab6b
--- /dev/null
+++ b/src/views/thirdparty/third-pay-order/form.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/thirdparty/third-pay-order/index.vue b/src/views/thirdparty/third-pay-order/index.vue
new file mode 100644
index 0000000..1ad23a6
--- /dev/null
+++ b/src/views/thirdparty/third-pay-order/index.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+ 新 增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/wallet/wallet-setting/components/xfj/components/xfj-edit-table.vue b/src/views/wallet/wallet-setting/components/xfj/components/xfj-edit-table.vue
new file mode 100644
index 0000000..c154e79
--- /dev/null
+++ b/src/views/wallet/wallet-setting/components/xfj/components/xfj-edit-table.vue
@@ -0,0 +1,99 @@
+
+
+
{{ title }}配置
+
+
+
+
+ {{ row.name }}
+
+
+
+
+ {{ displayYuanToYuan(row.basePrice) }}
+
+
+
+
+
+
+
+ {{ row.extraPer }}倍
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 用户在
+ {{ title }}
+ 购买
+ 所有菜品
+ (不包含特色菜)
+ 超过
+ {{ displayYuanToYuan(row.basePrice) }}
+ 超过部分
+
+
+ 所有菜品
+ (不包含特色菜)
+
+
将收取
+
{{ row.extraPer }}倍
+
额外金额
+
+
+ 不额外收费
+
+
+
+
+
+
+
+
diff --git a/src/views/wallet/wallet-setting/components/xfj/index.vue b/src/views/wallet/wallet-setting/components/xfj/index.vue
new file mode 100644
index 0000000..a8d75ed
--- /dev/null
+++ b/src/views/wallet/wallet-setting/components/xfj/index.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确认
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/wallet/wallet-setting/index.vue b/src/views/wallet/wallet-setting/index.vue
index c536aa1..eaea42c 100644
--- a/src/views/wallet/wallet-setting/index.vue
+++ b/src/views/wallet/wallet-setting/index.vue
@@ -1,14 +1,12 @@
@@ -31,6 +30,7 @@ const ExtraPrice = defineAsyncComponent(() => import("./components/extra-price/i
const ThirdZy = defineAsyncComponent(() => import("./components/third-zy/index.vue"))
const UserSetting = defineAsyncComponent(() => import("./components/user/index.vue"))
const WalletRecharge = defineAsyncComponent(() => import("./components/wallet-recharge/index.vue"))
+const Xfj = defineAsyncComponent(() => import("./components/xfj/index.vue"))
const data = {
tabList: [
@@ -42,8 +42,22 @@ const data = {
{ id: 60, label: "正元同步配置" },
{ id: 70, label: "用户同步配置" },
{ id: 80, label: "批量申请/扣款发票配置" },
+ { id: 90, label: "消费机配置" },
],
}
const activeName = ref(data.tabList[0].id)
+
+