diff --git a/src/api/modules/mer_admin.js b/src/api/modules/mer_admin.js index cd63596..f06c096 100644 --- a/src/api/modules/mer_admin.js +++ b/src/api/modules/mer_admin.js @@ -142,9 +142,23 @@ export const mer_admin = { params: data, }); }, - //添加商家端银行卡 + //添加商家端私账银行卡 bankCardAdd: (data) => { - return $http.post(`/merchant-api/bank/com-create`, data); + return $http.post(`/merchant-api/bank/pri-create`, data); + }, + //添加商家端公账银行卡 + publicAccountBankCardAdd: (data) => { + return $http.post(`/merchant-api/bank/pub-create`, data); + }, + //删除银行卡 + bankCardDelete: (data) => { + return $http.post(`/merchant-api/bank/delete?id=${data}`); + }, + //设置默认银行卡 + defaultBank: (data) => { + return $http.post( + `/merchant-api/bank/default-bank?linkId=${data.linkId}&bankId=${data.bankId}` + ); }, //获取银行卡详情 bankCardDetail: (id) => { diff --git a/src/router/full-routers.js b/src/router/full-routers.js index d94ab43..5a0a63c 100644 --- a/src/router/full-routers.js +++ b/src/router/full-routers.js @@ -92,6 +92,7 @@ export default { orderNum: 0, open: null, list: [], + hideInMenu: true, }, { menuId: getUUID(), diff --git a/src/router/index.js b/src/router/index.js index 1e746d0..038d70c 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -105,19 +105,19 @@ router.beforeEach((to, from, next) => { .then(({ data }) => { const filterTreeData = (data, permissions) => { return data; //临时性返回所有菜单方便调试 - return data.reduce((filtered, node) => { - // 如果节点的权限在权限数组中 - if (permissions.includes(node.url)) { - // 递归过滤子节点 - const list = filterTreeData(node.list || [], permissions); - // 创建一个新的节点,包含过滤后的子节点 - filtered.push({ - ...node, - list, - }); - } - return filtered; - }, []); + // return data.reduce((filtered, node) => { + // // 如果节点的权限在权限数组中 + // if (permissions.includes(node.url)) { + // // 递归过滤子节点 + // const list = filterTreeData(node.list || [], permissions); + // // 创建一个新的节点,包含过滤后的子节点 + // filtered.push({ + // ...node, + // list, + // }); + // } + // return filtered; + // }, []); }; console.log(data); if (data.data.markets?.length > 0) { diff --git a/src/views/main-sidebar.vue b/src/views/main-sidebar.vue index 3dce11f..bf261f5 100644 --- a/src/views/main-sidebar.vue +++ b/src/views/main-sidebar.vue @@ -87,7 +87,7 @@ } let filterMenu=filterMethod(JSON.parse(JSON.stringify(this.menuList)),this.keyWord); console.log(filterMenu); - return filterMenu; + return filterMenu.filter(item=>item.hideInMenu!=true); }, //是否展示菜单搜索界面 showSearchInput(){ diff --git a/src/views/modules/bank-card/index.vue b/src/views/modules/bank-card/index.vue index 80471d5..1abb680 100644 --- a/src/views/modules/bank-card/index.vue +++ b/src/views/modules/bank-card/index.vue @@ -135,10 +135,23 @@ export default { align: "center", field: "cardNo", }, + { + title: "账户类型", + align: "center", + field: "bankAcctType", + type: "jsx", + render: ({ row }) => { + if (row.bankAcctType == 2) { + return 对私; + } else { + return 对公; + } + }, + }, { title: "手机号", align: "center", - field: "telNo", + field: "legalMp", }, { title: "企业名称", @@ -160,13 +173,65 @@ export default { } }, }, + { + title: "默认银行卡", + align: "center", + field: "status", + type: "jsx", + render: ({ row }) => { + let defaultBank = () => { + if (row.default) { + this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + this.$api.mer_admin + .defaultBank({ + linkId: row.linkId, + bankId: row.id, + }) + .then((res) => { + this.$refs.oTable.reload(); + }) + .catch((err) => { + this.$refs.oTable.reload(); + }); + }) + .catch(() => { + this.$refs.oTable.reload(); + }); + } + }; + return ( + + ); + }, + }, + { + title: "创建时间", + align: "center", + field: "createTime", + }, { title: "操作", fixed: "right", type: "jsx", align: "center", - width: "140px", + width: "160px", render: (row) => { + let deleteBank = () => { + this.$api.mer_admin.bankCardDelete(row.row.id).then((res) => { + this.$refs.oTable.reload(); + }); + }; let edit = () => { this.$refs.viewDetails.toggle(row).update(); }; @@ -175,6 +240,13 @@ export default { 详情 + + + + 删除 + + + ); }, diff --git a/src/views/modules/bank-card/popup/add-or-update.vue b/src/views/modules/bank-card/popup/add-or-update.vue index e132c04..221e783 100644 --- a/src/views/modules/bank-card/popup/add-or-update.vue +++ b/src/views/modules/bank-card/popup/add-or-update.vue @@ -8,8 +8,8 @@ :modalHandles="modalHandles" > - - + + - - + - - + - - + + @@ -324,7 +295,7 @@ --> - + - + - + - + 19) { + callback(new Error("银行卡号长度必须在12到19之间")); + } else if (strBin.indexOf(value.substring(0, 2)) === -1) { + callback(new Error("银行卡号开头6位不符合规范")); + } else { + callback(); + } + }, + trigger: "blur", + }, + ], + //私卡 + cardId: [ + { required: true, message: "请输入银行卡号", trigger: "blur" }, + { + validator: function (rule, value, callback) { + const strBin = + "10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99"; + if (!value) { + return callback(new Error("请输入银行卡号")); + } else if (!Number.isInteger(+value)) { + callback(new Error("银行卡号必须全为数字")); + } else if (value.trim().length < 12 || value.trim().length > 19) { + callback(new Error("银行卡号长度必须在12到19之间")); + } else if (strBin.indexOf(value.substring(0, 2)) === -1) { + callback(new Error("银行卡号开头6位不符合规范")); + } else { + callback(); + } + }, + trigger: "blur", + }, + ], + certId: [ + { required: true, message: "请输入身份证号", trigger: "blur" }, + { + validator: function (rule, value, callback) { + const pattern = + /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/; + if (pattern.test(value)) { + callback(); + } else { + callback(new Error("身份证格式错误")); + } + }, + trigger: "blur", + }, + ], + telNo: [ + { + required: true, + message: "请输入手机号", + trigger: "blur", + }, + { + validator: function (rule, value, callback) { + if (/^1[3456789]\d{9}$/.test(value) == false) { + callback(new Error("请输入正确的手机号")); + } else { + callback(); + } + }, + trigger: "blur", + }, + ], + socialCreditCode: [ + { + required: true, + message: "请输入统一社会信用码", + trigger: ["blur", "change"], + }, + ], + socialCreditCodeExpires: [ + { + required: true, + message: "请输入统一社会信用码有效期", + trigger: ["blur", "change"], + }, + ], + name: [{ required: true, message: "请输入企业名称", trigger: "blur" }], + prov: [ + { + required: true, + message: "请选择省份", + trigger: ["blur", "change"], + }, + ], + area: [{ required: true, message: "请输入地级市", trigger: "blur" }], + businessScope: [ + { required: true, message: "请输入经营范围", trigger: "blur" }, + ], + legalPerson: [ + { required: true, message: "请输入法人姓名", trigger: "blur" }, + ], + legalCertId: [ + { required: true, message: "请输入法人身份证号", trigger: "blur" }, + { + validator: function (rule, value, callback) { + const pattern = + /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/; + if (pattern.test(value)) { + callback(); + } else { + callback(new Error("身份证格式错误")); + } + }, + trigger: "blur", + }, + ], + legalCertIdExpires: [ + { + required: true, + message: "请输入法人身份证有效期", + trigger: "change", + }, + ], + legalMp: [ + { + required: true, + message: "请输入法人手机号", + trigger: "blur", + }, + { + validator: function (rule, value, callback) { + if (/^1[3456789]\d{9}$/.test(value) == false) { + callback(new Error("请输入正确的手机号")); + } else { + callback(); + } + }, + trigger: "blur", + }, + ], + address: [ + { required: true, message: "请输入详细企业地址", trigger: "blur" }, + ], + bankCode: [ + { + required: true, + message: "请输入银行名称", + trigger: "change", + }, + ], + licenseNumber: [ + { required: true, message: "请输入营业执照号", trigger: "blur" }, + ], + licensePicture: [ + { required: true, message: "请输入营业执照", trigger: "blur" }, + ], + bankLicense: [ + { + required: true, + message: "请上传开户银行许可证照", + trigger: "blur", + }, + ], + idCardFront: [ + { required: true, message: "请上传身份证正面", trigger: "blur" }, + ], + idCardBack: [ + { required: true, message: "请上传身份证反面", trigger: "blur" }, + ], + }, }; }, + watch: { + "modalConfig.show"(newVal) { + if (!newVal) { + //关闭弹窗清空校验 + setTimeout(() => { + this.$refs.modalForm?.resetFields(); + }); + } + }, + }, methods: { queryTableData(pageNo, pageSize) {}, toggle(e) { @@ -649,7 +827,6 @@ export default { linkId: JSON.parse(sessionStorage.getItem("userInfo")).managerId ? JSON.parse(sessionStorage.getItem("userInfo")).managerId : JSON.parse(sessionStorage.getItem("userInfo")).merchantId, - bankType: "", name: "", prov: "", area: "", @@ -673,7 +850,7 @@ export default { bankAcctType: 1, licenseNumber: "", }; - this.$refs.modal.resetFields(); + this.$refs.modalForm?.resetFields(); }); this.isAdd = true; }, @@ -686,18 +863,22 @@ export default { handleAvatarSuccess(res) { console.log(res); this.modalData.licensePicture = res.data; + this.$refs.modalForm.validate(); }, idCardFrontImg(res) { console.log(res); this.modalData.idCardFront = res.data; + this.$refs.modalForm.validate(); }, idCardBackImg(res) { console.log(res); this.modalData.idCardBack = res.data; + this.$refs.modalForm.validate(); }, bankLicenseImg(res) { console.log(res); this.modalData.bankLicense = res.data; + this.$refs.modalForm.validate(); }, handIdCardFrontImg(res) { console.log(res); @@ -713,7 +894,6 @@ export default { linkId: JSON.parse(sessionStorage.getItem("userInfo")).managerId ? JSON.parse(sessionStorage.getItem("userInfo")).managerId : JSON.parse(sessionStorage.getItem("userInfo")).merchantId, - bankType: "", name: "", prov: "", area: "", @@ -743,7 +923,6 @@ export default { linkId: JSON.parse(sessionStorage.getItem("userInfo")).managerId ? JSON.parse(sessionStorage.getItem("userInfo")).managerId : JSON.parse(sessionStorage.getItem("userInfo")).merchantId, - bankType: "", cardId: "", cardName: "", certId: "", @@ -752,6 +931,7 @@ export default { idCardBack: "", bankAcctType: 2, }; + this.$refs.modalForm?.resetFields(); } }, }, @@ -778,16 +958,24 @@ export default { label: this.process == 1 ? "下一步" : "确认添加", type: "primary", handle: () => { - if (this.process == 1) { - this.process = 2; - } else { - console.log(this.modalData); - this.$api.mer_admin.bankCardAdd(this.modalData).then((res) => { - console.log(res); - this.$emit("queryList"); - this.toggle(); - }); - } + console.log(this.modalData); + + this.$refs.modalForm.validate((valid) => { + if (valid) { + if (this.process == 1) { + this.process = 2; + } else { + console.log(this.modalData); + this.$api.mer_admin + .publicAccountBankCardAdd(this.modalData) + .then((res) => { + console.log(res); + this.$emit("queryList"); + this.toggle(); + }); + } + } + }); }, }, ]; @@ -804,10 +992,16 @@ export default { type: "primary", handle: () => { console.log(this.modalData); - this.$api.mer_admin.bankCardAdd(this.modalData).then((res) => { - console.log(res); - this.$emit("queryList"); - this.toggle(); + this.$refs.modalForm.validate((valid) => { + if (valid) { + this.$api.mer_admin + .bankCardAdd(this.modalData) + .then((res) => { + console.log(res); + this.$emit("queryList"); + this.toggle(); + }); + } }); }, }, diff --git a/src/views/modules/wallet/index.vue b/src/views/modules/wallet/index.vue index 3c7aff3..644d1ef 100644 --- a/src/views/modules/wallet/index.vue +++ b/src/views/modules/wallet/index.vue @@ -11,9 +11,17 @@ > 用户名:{{ userInfo.userName }} - 发起提现 + + 绑定银行卡 + 发起提现 + @@ -44,6 +52,8 @@ > @@ -83,6 +93,8 @@ - 查询 - 重置 + 查询 + 重置 @@ -136,7 +152,82 @@ - 2 + + + + + + + + + 查询 + + + + + + + 总收入 + + ¥{{ + userInfo.availableAmount ? userInfo.availableAmount : "0" + }} + + + + 总支出 + + ¥{{ + userInfo.availableAmount ? userInfo.availableAmount : "0" + }} + + + + + + + 钱包账单 + + + + 12月06日 周五 + + 收入 + +666 + + + 转账 + 余额:427 + + + + + + @@ -203,7 +294,7 @@ export default { }) .then((res) => { if (res.data.data.data.length > 0) { - this.$refs.withdrawal.toggle().add(); + this.$refs.withdrawal.toggle().add(this.userInfo.availableAmount); } else { this.$message.error("请先绑定银行卡"); } @@ -276,4 +367,19 @@ export default { right: 20px; font-size: 16px; } +.box-cardTwo { + margin-bottom: 30px; + height: 200px; + border-radius: 10px; +} +.cardTwo-item { + display: flex; + align-items: center; + justify-content: space-evenly; +} +.wallet-item { + margin: 10px 0; + display: flex; + justify-content: space-between; +} \ No newline at end of file diff --git a/src/views/modules/wallet/popup/withdrawal.vue b/src/views/modules/wallet/popup/withdrawal.vue index dd4688f..caf5948 100644 --- a/src/views/modules/wallet/popup/withdrawal.vue +++ b/src/views/modules/wallet/popup/withdrawal.vue @@ -15,13 +15,17 @@ label-width="150px" class="demo-ruleForm" > - - + + + + + 可提现金额:{{ amountSum }} @@ -43,6 +47,7 @@ export default { show: false, width: "600px", }, + amountSum: 0, modalData: {}, ruleForm: { amount: "", @@ -54,6 +59,16 @@ export default { message: "请输入提现金额", trigger: ["blur", "change"], }, + { + validator: (rule, value, callback) => { + if (value > this.amountSum) { + callback(new Error("提现金额不能大于可提现金额")); + } else { + callback(); + } + }, + trigger: ["blur", "change"], + }, ], }, }; @@ -80,7 +95,8 @@ export default { this.init(cloneDeep(e)); } return { - add: () => { + add: (row) => { + this.amountSum = row ? row : 0; this.modalConfig.title = "提现金额"; this.isAdd = true; },