+
@@ -74,8 +74,8 @@ function remoteSearch(params: string) {
}
}
-function clear() {
- state.selectId = null
- getOptions()
-}
+// function clear() {
+// state.selectId = null
+// getOptions()
+// }
diff --git a/src/components/TreeMultipleSelect/index.vue b/src/components/TreeMultipleSelect/index.vue
index c55fe7c..5f73a16 100644
--- a/src/components/TreeMultipleSelect/index.vue
+++ b/src/components/TreeMultipleSelect/index.vue
@@ -14,6 +14,7 @@
@node-click="handleNodeClick"
@check="handleCheck"
@visible-change="(e) => e && getOptions()"
+ filterable
clearable
highlight-current
default-expand-all
diff --git a/src/components/index.ts b/src/components/index.ts
index 07d5514..28fa17f 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -15,17 +15,21 @@ import PreviewImage from "/@/components/PreviewImage/index.vue"
import DraggableDepTree from "/@/components/DraggableDepTree/index.vue"
// 业务组件
+import TreeMultipleSelect from "/@/components/TreeMultipleSelect/index.vue"
+
import SelectUser from "/@/components/Select/SelectUser.vue"
import SelectWalletType from "/@/components/Select/SelectWalletType.vue"
import SelectMch from "/@/components/Select/SelectMch.vue"
import SelectDept from "/@/components/Select/SelectDept.vue"
import SelectCtcg from "/@/components/Select/SelectCtcg.vue"
import SelectCtcgol from "/@/components/Select/SelectCtcgol.vue"
-import SelectHardGroup from "/@/components/Select/selectHardGroup.vue"
import SelectHandlerUser from "/@/components/Select/SelectHandlerUser.vue"
import SelectSupplier from "/@/components/Select/SelectSupplier.vue"
import SelectMchRule from "/@/components/Select/SelectMchRule.vue"
-import TreeMultipleSelect from "/@/components/TreeMultipleSelect/index.vue"
+import SelectHardSpuCategory from "/@/components/Select/SelectHardSpuCategory.vue"
+import SelectHard from "/@/components/Select/SelectHard.vue"
+import SelectHardSpu from "/@/components/Select/SelectHardSpu.vue"
+import SelectHardGroup from "/@/components/Select/selectHardGroup.vue"
// 第三方组件
import ElementPlus from "element-plus"
@@ -63,6 +67,9 @@ export default {
app.component("PreviewImage", PreviewImage)
app.component("DraggableDepTree", DraggableDepTree)
app.component("TreeMultipleSelect", TreeMultipleSelect)
+ app.component("SelectHard", SelectHard)
+ app.component("SelectHardSpuCategory", SelectHardSpuCategory)
+ app.component("SelectHardSpu", SelectHardSpu)
app.component("SelectUser", SelectUser)
app.component("SelectWalletType", SelectWalletType)
diff --git a/src/views/admin/system/user/index.vue b/src/views/admin/system/user/index.vue
index 9b12ad1..150607c 100644
--- a/src/views/admin/system/user/index.vue
+++ b/src/views/admin/system/user/index.vue
@@ -35,7 +35,6 @@
导入
-
删除
-
+
+ 审批
+
@@ -116,7 +126,7 @@
v-auths="['sys_user_edit', 'userFace_sysUserFace_view', 'sys_user_del']"
label="操作"
min-width="300"
- width="400"
+ width="300"
fixed="right"
>
@@ -149,7 +159,9 @@
>
人脸管理
- 开始处理
+
+ 开始处理
+
@@ -223,6 +235,7 @@ const multiple = ref(true)
// 定义表格查询、后台调用的API
const state: BasicTableProps = reactive({
+ dataList: [],
queryForm: {
deptId: "",
username: "",
@@ -268,6 +281,21 @@ const deal = (row: any) => {
processDrawerRef.value.openProcessDrawer(row)
}
+// 批量开始处理
+const doBatchDeal = () => {
+ if (!selectObjs.value.length) return useMessage().warning("流程id不存在")
+ const processIds = []
+ for (const i of selectObjs.value) {
+ for (const j of state.dataList!) {
+ if (i == j.id) {
+ processIds.push(j.processId)
+ break
+ }
+ }
+ }
+ if (!processIds.length) return useMessage().warning("流程id不存在")
+}
+
// 审批提交事件
const taskSubmitEvent = () => {
getDataList()
diff --git a/src/views/hard/hard-sh/index.vue b/src/views/hard/hard-sh/index.vue
index 9401d43..d6cad2f 100644
--- a/src/views/hard/hard-sh/index.vue
+++ b/src/views/hard/hard-sh/index.vue
@@ -17,6 +17,12 @@
+
+
+
+
+
+
diff --git a/src/views/hard/hard-spu-category/form.vue b/src/views/hard/hard-spu-category/form.vue
new file mode 100644
index 0000000..060accb
--- /dev/null
+++ b/src/views/hard/hard-spu-category/form.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 排序
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/hard/hard-spu-category/index.vue b/src/views/hard/hard-spu-category/index.vue
new file mode 100644
index 0000000..3fcde0f
--- /dev/null
+++ b/src/views/hard/hard-spu-category/index.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+ {{ $t("common.queryBtn") }}
+
+ {{ $t("common.resetBtn") }}
+
+
+
+
+
+
+ 新 增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+ {{ row.merchantName }}
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/hard/hard-spu-repertory/form.vue b/src/views/hard/hard-spu-repertory/form.vue
new file mode 100644
index 0000000..34034c8
--- /dev/null
+++ b/src/views/hard/hard-spu-repertory/form.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/hard/hard-spu-repertory/index.vue b/src/views/hard/hard-spu-repertory/index.vue
new file mode 100644
index 0000000..4a2f989
--- /dev/null
+++ b/src/views/hard/hard-spu-repertory/index.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+ 更新库存
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/hard/hard-spu/form.vue b/src/views/hard/hard-spu/form.vue
new file mode 100644
index 0000000..f4b8625
--- /dev/null
+++ b/src/views/hard/hard-spu/form.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 商品层数
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 排序
+
+
+
+
+
+
+
+
+
+ {{ v.label }}
+
+
+
+
+
+
+
+ 是否标品
+
+
+
+
+ {{ v.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/hard/hard-spu/index.vue b/src/views/hard/hard-spu/index.vue
new file mode 100644
index 0000000..485dfc5
--- /dev/null
+++ b/src/views/hard/hard-spu/index.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+ 新 增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.merchantName }}
+
+
+
+
+ {{ row.hardName }}
+
+
+
+
+ {{ displayPrice(row.price) }}
+
+
+
+
+ {{ row.salesCount }}
+
+
+
+
+ {{ row.repertoryCount }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue b/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue
index 53bf2e2..4203256 100644
--- a/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue
+++ b/src/views/supermarketerp/purchaseManagement/smErpCgInventory/form.vue
@@ -290,7 +290,7 @@ const svg = `
-
+
diff --git a/src/views/supermarketerp/retailManagement/smErpRetailBack/form.vue b/src/views/supermarketerp/retailManagement/smErpRetailBack/form.vue
index ff2df87..fe3814c 100644
--- a/src/views/supermarketerp/retailManagement/smErpRetailBack/form.vue
+++ b/src/views/supermarketerp/retailManagement/smErpRetailBack/form.vue
@@ -28,20 +28,15 @@
:disabled="disabled"
/>
-
-
-
-
-
-
-
-
+
+
+
@@ -336,7 +331,7 @@ const receiveAmountForm = reactive<{ receiveAmount: number }>({
const dataRules = ref({
inventoryCode: [{ required: true, message: "出入库记录表编号不能为空", trigger: "blur" }],
inventoryDate: [{ required: true, message: "出入库记录表单据日期不能为空", trigger: "blur" }],
- handlerUserId: [{ required: true, message: "经办人不能为空", trigger: "blur" }],
+ // handlerUserId: [{ required: true, message: "经办人不能为空", trigger: "blur" }],
supplierId: [{ required: true, message: "货商不能为空", trigger: "blur" }],
})
diff --git a/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue b/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue
index a451e73..5082a95 100644
--- a/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue
+++ b/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue
@@ -28,20 +28,15 @@
:disabled="disabled"
/>
-
-
-
-
-
-
-
-
+
+
+
@@ -326,7 +321,7 @@ const receiveAmountForm = reactive<{ receiveAmount: number }>({
const dataRules = ref({
inventoryCode: [{ required: true, message: "出入库记录表编号不能为空", trigger: "blur" }],
inventoryDate: [{ required: true, message: "出入库记录表单据日期不能为空", trigger: "blur" }],
- handlerUserId: [{ required: true, message: "经办人不能为空", trigger: "blur" }],
+ // handlerUserId: [{ required: true, message: "经办人不能为空", trigger: "blur" }],
supplierId: [{ required: true, message: "货商不能为空", trigger: "blur" }],
})
diff --git a/src/views/supermarketerp/supermarketSpu/components/productInventory.vue b/src/views/supermarketerp/supermarketSpu/components/productInventory.vue
index e5d5ad0..7b0eef0 100644
--- a/src/views/supermarketerp/supermarketSpu/components/productInventory.vue
+++ b/src/views/supermarketerp/supermarketSpu/components/productInventory.vue
@@ -1,7 +1,7 @@
-
+
diff --git a/src/views/supermarketerp/supermarketSpu/index.vue b/src/views/supermarketerp/supermarketSpu/index.vue
index 0368be5..4a780ac 100644
--- a/src/views/supermarketerp/supermarketSpu/index.vue
+++ b/src/views/supermarketerp/supermarketSpu/index.vue
@@ -50,7 +50,7 @@
/>
-
+
diff --git a/src/views/thirdparty/thirdPartyLog/form.vue b/src/views/thirdparty/thirdPartyLog/form.vue
index 8a58a62..447fe70 100644
--- a/src/views/thirdparty/thirdPartyLog/form.vue
+++ b/src/views/thirdparty/thirdPartyLog/form.vue
@@ -10,8 +10,8 @@
-
-
+
+
@@ -79,6 +79,7 @@ const form = reactive({
responseBody: '',
errorCode: '',
errorMsg: '',
+ requestParameter:'',
});
// 定义校验规则
diff --git a/src/views/thirdparty/thirdPartyLog/index.vue b/src/views/thirdparty/thirdPartyLog/index.vue
index b049f96..d689cb1 100644
--- a/src/views/thirdparty/thirdPartyLog/index.vue
+++ b/src/views/thirdparty/thirdPartyLog/index.vue
@@ -23,7 +23,7 @@
-
+
diff --git a/src/views/wallet/wallet-manage/index.vue b/src/views/wallet/wallet-manage/index.vue
index 790392a..ef127f0 100644
--- a/src/views/wallet/wallet-manage/index.vue
+++ b/src/views/wallet/wallet-manage/index.vue
@@ -109,7 +109,11 @@
label="操作"
fixed="right"
width="250"
- v-auths="['wallet_walletManage_edit', 'wallet_walletTransaction_update_balance']"
+ v-auths="[
+ 'wallet_walletManage_edit',
+ 'wallet_walletTransaction_update_balance',
+ 'wallet_walletRuleTransaction_transfer_accounts',
+ ]"
>
@@ -134,7 +138,7 @@
icon="SwitchFilled"
text
type="primary"
- v-auth="'wallet_walletTransaction_update_balance'"
+ v-auth="'wallet_walletRuleTransaction_transfer'"
@click="doTransferAccounts(row)"
>
转账
diff --git a/src/views/wallet/wallet-manage/transfer-accounts.vue b/src/views/wallet/wallet-manage/transfer-accounts.vue
index 56a7451..17540b5 100644
--- a/src/views/wallet/wallet-manage/transfer-accounts.vue
+++ b/src/views/wallet/wallet-manage/transfer-accounts.vue
@@ -1,7 +1,7 @@
-
+
{{ errorMsg }}
请配置
@@ -14,18 +14,46 @@
{{ userConfigDetail.userMobile }}
-
+
- {{ walletDetail.walletTypeName }}
+ {{ userConfigDetail.sourceWalletTypeName }}
-
- {{ displayPrice(walletDetail.balance) }}
+
+ {{ displayPrice(userConfigDetail.sourceWalletBalance) }}
- {{ walletDetail.username }}
+ {{ userConfigDetail.targetWalletTypeName }}
-
- {{ walletDetail.username }}
+
+ {{ displayPrice(userConfigDetail.targetWalletBalance) }}
+
+
+
+
+ {{ userConfigDetail.sourceWalletTypeName }}
+
+
+ {{ displayPrice(userConfigDetail.sourceWalletBalance - form.balance * 100) }}
+
+
+ {{ userConfigDetail.targetWalletTypeName }}
+
+
+ {{ displayPrice(userConfigDetail.targetWalletBalance + form.balance * 100) }}
+
+
+
+
+ {{ userConfigDetail.balanceMultiple }}%
+
+
+ {{ displayPrice(userConfigDetail.totalTopUpBalance) }}
+
+
+ {{ displayPrice(userConfigDetail.maxTransferBalance) }}
+
+ {{ displayPrice(userConfigDetail.totalTransferBalance) }}
@@ -33,7 +61,7 @@
用户
{{ walletDetail.username }}
将
-
+
元从
{{ walletDetail.walletTypeName }}
转到
@@ -61,7 +89,7 @@
import { useMessage } from "/@/hooks/message"
import * as walletApi from "/@/api/wallet/wallet-manage"
import * as walletRuleJoin from "/@/api/wallet/wallet-rule-join"
-import * as walletTransactionApi from "/@/api/wallet/wallet-transaction"
+import * as walletRuleTransactionApi from "/@/api/wallet/wallet-rule-transaction"
import { displayPrice } from "/@/utils/formatMoney"
import { convertToInteger } from "/@/utils/convert"
const emit = defineEmits(["refresh"])
@@ -83,7 +111,7 @@ const walletDetail = reactive({})
const userConfigDetail = reactive({})
-const errorMsg = ref("")
+const errorMsg = ref(" ")
/** 变动后的余额 */
const balanceResult = computed(() => displayPrice(convertToInteger(form.balance) + convertToInteger(form.changeBalance) * form.changeType))
@@ -108,28 +136,19 @@ const openDialog = (userId: string, id: string) => {
// 提交
const onSubmit = async () => {
- const valid = await dataFormRef.value.validate().catch(() => {})
- if (!valid) return false
- if (form.changeBalance <= 0) {
- useMessage().error("变动余额不能为零")
- return
- }
- if (convertToInteger(balanceResult.value) < 0) {
- useMessage().error("变动后的余额不能小于 0")
+ if (form.balance <= 0) {
+ useMessage().error("转账余额不能为0")
return
}
try {
loading.value = true
const pa = {
- ...form,
- userId: form.id,
- walletId: form.walletId,
- balance: form.changeBalance * 100,
+ userId: userConfigDetail.userId,
+ sourceWalletTypeId: userConfigDetail.sourceWalletTypeId,
+ targetWalletTypeId: userConfigDetail.targetWalletTypeId,
+ balance: Math.abs(form.balance * 100),
}
- if (pa.changeType == -1) {
- pa.balance = -1 * pa.balance
- }
- await walletTransactionApi.updateBalance(pa)
+ await walletRuleTransactionApi.transferAccounts(pa)
useMessage().success("操作成功")
visible.value = false
emit("refresh")
@@ -168,7 +187,8 @@ const getUserConfig = async (userId: any, sourceWalletId: any, targetWalletId: a
try {
const { data } = await walletRuleJoin.userConfig(_pa)
if (!data) return
- Object.assign(data, userConfigDetail)
+ Object.assign(userConfigDetail, data)
+ errorMsg.value = ""
} catch (e: any) {
errorMsg.value = e.msg
useMessage().error(e.msg)
@@ -187,7 +207,7 @@ defineExpose({
}
.el-descriptions__cell.is-bordered-label {
- width: 100px;
+ width: 150px;
}
.el-descriptions__cell.is-bordered-content {
diff --git a/src/views/wallet/wallet-rule-transaction/index.vue b/src/views/wallet/wallet-rule-transaction/index.vue
index 1366546..a680c77 100644
--- a/src/views/wallet/wallet-rule-transaction/index.vue
+++ b/src/views/wallet/wallet-rule-transaction/index.vue
@@ -12,6 +12,18 @@
:nodeClickable="false"
>
+
+
+
+
+
+
+
+
+
+
+
+
@@ -46,29 +58,75 @@
>
+
+
+
+
+
-
-
+
+
+
+
{{ row.sourceWalletTypeName }}
+
+
+
+
+
+
+
+
+ {{ displayPrice(row.sourceWalletBalance) }}
+
+
-
-
+
+
+
+
{{ row.targetWalletTypeName }}
+
+
+
+
+
+
+
+
+ {{ displayPrice(row.targetWalletBalance) }}
+
+
-
-
-
+
+
+ {{ displayPrice(row.balance) }}
+
+
+
+
+ {{ displayPrice(row.afterBalance) }}
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
退回
@@ -89,11 +147,12 @@ import { BasicTableProps, useTable } from "/@/hooks/table"
import * as walletRuleTransactionApi from "/@/api/wallet/wallet-rule-transaction"
import { useMessage, useMessageBox } from "/@/hooks/message"
import { useDict } from "/@/hooks/dict"
+import { displayPrice } from "/@/utils/formatMoney"
// 引入组件
const FormDialog = defineAsyncComponent(() => import("./form.vue"))
// 定义查询字典
-
+const { wallet_type, yes_no_type } = useDict("wallet_type", "yes_no_type")
// 定义变量内容
const formDialogRef = ref()
// 搜索变量
@@ -106,7 +165,7 @@ const multiple = ref(true)
const state: BasicTableProps = reactive({
queryForm: {},
- pageList: walletRuleTransactionApi.fetchList,
+ pageList: walletRuleTransactionApi.pageJoin,
})
// table hook
@@ -117,6 +176,22 @@ const exportExcel = () => {
downBlobFile("/wallet/walletRuleTransaction/export", Object.assign(state.queryForm, { ids: selectObjs }), "walletRuleTransaction.xlsx")
}
+// 退款
+const doRefund = async (row: any) => {
+ try {
+ await useMessageBox().confirm(`是否退回用户从${row.sourceWalletTypeName}转到${row.targetWalletTypeName}的${displayPrice(row.balance)}`)
+ } catch {
+ return
+ }
+ try {
+ await walletRuleTransactionApi.refund({ id: row.id })
+ getDataList()
+ useMessage().success("退回成功")
+ } catch (err: any) {
+ useMessage().error(err.msg)
+ }
+}
+
// 多选事件
const selectionChangHandle = (objs: { id: string }[]) => {
selectObjs.value = objs.map(({ id }) => id)
diff --git a/src/views/wallet/wallet-setting/components/recharge-package/form.vue b/src/views/wallet/wallet-setting/components/recharge-package/form.vue
index f9bfd8f..15fbbf9 100644
--- a/src/views/wallet/wallet-setting/components/recharge-package/form.vue
+++ b/src/views/wallet/wallet-setting/components/recharge-package/form.vue
@@ -1,130 +1,130 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
- {{ v.label }}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ v.label }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
+ openDialog,
+})
+