|
@@ -210,9 +210,15 @@
|
|
|
<el-form-item label="转账标题" prop="order_title">
|
|
<el-form-item label="转账标题" prop="order_title">
|
|
|
<el-input v-model="transferForm.order_title" placeholder="请输入转账标题" />
|
|
<el-input v-model="transferForm.order_title" placeholder="请输入转账标题" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+ <el-form-item label="转账场景" prop="transfer_scene_name">
|
|
|
|
|
+ <el-select v-model="transferForm.transfer_scene_name" placeholder="请选择转账场景">
|
|
|
|
|
+ <el-option v-for="s in TRANSFER_SCENE_OPTIONS" :key="s.value" :label="s.label" :value="s.value" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="收款方类型" prop="payee_info.identity_type">
|
|
<el-form-item label="收款方类型" prop="payee_info.identity_type">
|
|
|
<el-select v-model="transferForm.payee_info.identity_type" placeholder="请选择收款方类型">
|
|
<el-select v-model="transferForm.payee_info.identity_type" placeholder="请选择收款方类型">
|
|
|
- <el-option label="支付宝账户" value="ALIPAY_USER_ID" />
|
|
|
|
|
|
|
+ <el-option label="支付宝账户(UID)" value="ALIPAY_USER_ID" />
|
|
|
|
|
+ <el-option label="支付宝账户(手机号/邮箱)" value="ALIPAY_LOGON_ID" />
|
|
|
<el-option label="银行卡" value="BANKCARD_ACCOUNT" />
|
|
<el-option label="银行卡" value="BANKCARD_ACCOUNT" />
|
|
|
<!-- <el-option label="资金专户" value="book" /> -->
|
|
<!-- <el-option label="资金专户" value="book" /> -->
|
|
|
</el-select>
|
|
</el-select>
|
|
@@ -230,25 +236,30 @@
|
|
|
<el-option label="个人账户" value="2" />
|
|
<el-option label="个人账户" value="2" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="银行名称" prop="payee_info.bankcard_ext_info.inst_name">
|
|
|
|
|
|
|
+ <el-form-item label="银行名称" prop="payee_info.bankcard_ext_info.inst_name" :required="isCorporate">
|
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.inst_name" placeholder="请输入银行名称" />
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.inst_name" placeholder="请输入银行名称" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="开户省份" prop="payee_info.bankcard_ext_info.inst_province">
|
|
|
|
|
|
|
+ <template v-if="isCorporate">
|
|
|
|
|
+ <el-alert type="warning" :closable="false" show-icon style="margin-bottom:12px">
|
|
|
|
|
+ 对公账户必须填写省市支行信息 或 联行号
|
|
|
|
|
+ </el-alert>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <el-form-item label="开户省份" prop="payee_info.bankcard_ext_info.inst_province" :required="isCorporate">
|
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.inst_province" placeholder="请输入开户省份" />
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.inst_province" placeholder="请输入开户省份" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="开户城市" prop="payee_info.bankcard_ext_info.inst_city">
|
|
|
|
|
|
|
+ <el-form-item label="开户城市" prop="payee_info.bankcard_ext_info.inst_city" :required="isCorporate">
|
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.inst_city" placeholder="请输入开户城市" />
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.inst_city" placeholder="请输入开户城市" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="支行名称" prop="payee_info.bankcard_ext_info.inst_branch_name">
|
|
|
|
|
|
|
+ <el-form-item label="支行名称" prop="payee_info.bankcard_ext_info.inst_branch_name" :required="isCorporate">
|
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.inst_branch_name"
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.inst_branch_name"
|
|
|
placeholder="请输入支行名称" />
|
|
placeholder="请输入支行名称" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="联行号" prop="payee_info.bankcard_ext_info.bank_code">
|
|
|
|
|
|
|
+ <el-form-item label="联行号" prop="payee_info.bankcard_ext_info.bank_code" :required="isCorporate">
|
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.bank_code" placeholder="请输入联行号" />
|
|
<el-input v-model="transferForm.payee_info.bankcard_ext_info!.bank_code" placeholder="请输入联行号" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</template>
|
|
</template>
|
|
|
- <el-form-item label="备注" prop="remark">
|
|
|
|
|
- <el-input v-model="transferForm.remark" type="textarea" placeholder="请输入备注" />
|
|
|
|
|
|
|
+ <el-form-item label="备注" prop="remark" required>
|
|
|
|
|
+ <el-input v-model="transferForm.remark" type="textarea" :placeholder="remarkPlaceholder" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-button v-hasPerm="['module_payment:account:transfer']" type="primary" :loading="transferLoading"
|
|
<el-button v-hasPerm="['module_payment:account:transfer']" type="primary" :loading="transferLoading"
|
|
@@ -802,7 +813,9 @@ const consumeFormRef = ref<FormInstance>();
|
|
|
const overviewRef = ref<InstanceType<typeof AccountOverview>>();
|
|
const overviewRef = ref<InstanceType<typeof AccountOverview>>();
|
|
|
|
|
|
|
|
const currentEnterpriseId = computed(() => enterpriseStore.getCurrentEnterprise?.enterprise_id);
|
|
const currentEnterpriseId = computed(() => enterpriseStore.getCurrentEnterprise?.enterprise_id);
|
|
|
-const hasTransferPermission = computed(() => enterpriseStore.getCurrentEnterprise?.transfer_enabled === true);
|
|
|
|
|
|
|
+const hasTransferPermission = computed(() =>
|
|
|
|
|
+ userStore.is_platform_user || enterpriseStore.getCurrentEnterprise?.transfer_enabled === true
|
|
|
|
|
+);
|
|
|
const cureentEnterprise = computed(() => enterpriseStore.getCurrentEnterprise);
|
|
const cureentEnterprise = computed(() => enterpriseStore.getCurrentEnterprise);
|
|
|
|
|
|
|
|
const accountInfo = ref<{
|
|
const accountInfo = ref<{
|
|
@@ -1055,6 +1068,7 @@ const transferForm = reactive({
|
|
|
amount: 0,
|
|
amount: 0,
|
|
|
order_title: "",
|
|
order_title: "",
|
|
|
remark: "",
|
|
remark: "",
|
|
|
|
|
+ transfer_scene_name: "佣金报酬",
|
|
|
payee_info: {
|
|
payee_info: {
|
|
|
identity_type: "ALIPAY_USER_ID",
|
|
identity_type: "ALIPAY_USER_ID",
|
|
|
name: "",
|
|
name: "",
|
|
@@ -1077,8 +1091,36 @@ const transferRules: FormRules = {
|
|
|
"payee_info.identity_type": [{ required: true, message: "请选择收款方类型", trigger: "change" }],
|
|
"payee_info.identity_type": [{ required: true, message: "请选择收款方类型", trigger: "change" }],
|
|
|
"payee_info.name": [{ required: true, message: "请输入收款方姓名", trigger: "blur" }],
|
|
"payee_info.name": [{ required: true, message: "请输入收款方姓名", trigger: "blur" }],
|
|
|
"payee_info.identity": [{ required: true, message: "请输入收款方账号", trigger: "blur" }],
|
|
"payee_info.identity": [{ required: true, message: "请输入收款方账号", trigger: "blur" }],
|
|
|
|
|
+ remark: [{ required: true, message: "请填写备注,说明转账事由", trigger: "blur" }],
|
|
|
|
|
+ "payee_info.bankcard_ext_info.inst_name": [{
|
|
|
|
|
+ validator: (_r: any, _v: any, cb: any) => {
|
|
|
|
|
+ if (isCorporate.value && !transferForm.payee_info.bankcard_ext_info?.inst_name)
|
|
|
|
|
+ cb(new Error("对公账户银行名称不能为空"));
|
|
|
|
|
+ else cb();
|
|
|
|
|
+ }, trigger: "blur"
|
|
|
|
|
+ }],
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+const isCorporate = computed(() =>
|
|
|
|
|
+ transferForm.payee_info.identity_type === "BANKCARD_ACCOUNT"
|
|
|
|
|
+ && transferForm.payee_info.bankcard_ext_info?.account_type === "1"
|
|
|
|
|
+);
|
|
|
|
|
+
|
|
|
|
|
+const TRANSFER_SCENE_OPTIONS = [
|
|
|
|
|
+ { value: "佣金报酬", label: "佣金报酬" },
|
|
|
|
|
+ { value: "业务结算", label: "业务结算" },
|
|
|
|
|
+ { value: "二手回收", label: "二手回收" },
|
|
|
|
|
+];
|
|
|
|
|
+
|
|
|
|
|
+const remarkPlaceholder = computed(() => {
|
|
|
|
|
+ const map: Record<string, string> = {
|
|
|
|
|
+ "佣金报酬": "请填写佣金报酬说明,如:8月家政服务报酬",
|
|
|
|
|
+ "业务结算": "请填写结算款项名称,如:材料货款",
|
|
|
|
|
+ "二手回收": "请填写回收商品名称,如:旧衣服",
|
|
|
|
|
+ };
|
|
|
|
|
+ return map[transferForm.transfer_scene_name] || "请填写转账事由";
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
const isAlipayPayee = computed(() =>
|
|
const isAlipayPayee = computed(() =>
|
|
|
transferForm.payee_info.identity_type === "ALIPAY_USER_ID"
|
|
transferForm.payee_info.identity_type === "ALIPAY_USER_ID"
|
|
|
|| transferForm.payee_info.identity_type === "ALIPAY_LOGON_ID"
|
|
|| transferForm.payee_info.identity_type === "ALIPAY_LOGON_ID"
|
|
@@ -1605,12 +1647,13 @@ async function handleTransfer() {
|
|
|
amount: transferForm.amount,
|
|
amount: transferForm.amount,
|
|
|
order_title: transferForm.order_title,
|
|
order_title: transferForm.order_title,
|
|
|
remark: transferForm.remark,
|
|
remark: transferForm.remark,
|
|
|
|
|
+ transfer_scene_name: transferForm.transfer_scene_name,
|
|
|
payee_info: {
|
|
payee_info: {
|
|
|
identity_type: transferForm.payee_info.identity_type,
|
|
identity_type: transferForm.payee_info.identity_type,
|
|
|
name: transferForm.payee_info.name,
|
|
name: transferForm.payee_info.name,
|
|
|
identity: transferForm.payee_info.identity,
|
|
identity: transferForm.payee_info.identity,
|
|
|
bankcard_ext_info:
|
|
bankcard_ext_info:
|
|
|
- transferForm.payee_info.identity_type === "bank"
|
|
|
|
|
|
|
+ transferForm.payee_info.identity_type === "BANKCARD_ACCOUNT"
|
|
|
? transferForm.payee_info.bankcard_ext_info
|
|
? transferForm.payee_info.bankcard_ext_info
|
|
|
: undefined,
|
|
: undefined,
|
|
|
},
|
|
},
|