Merge branch 'main' of http://1.117.67.95:3000/team/ycc-proxy-admin
This commit is contained in:
@@ -18,6 +18,8 @@ export namespace OrderQueryApi {
|
|||||||
create_time: string;
|
create_time: string;
|
||||||
update_time: string;
|
update_time: string;
|
||||||
query_state: string;
|
query_state: string;
|
||||||
|
agent_user_name: string;
|
||||||
|
agent_user_mobile: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface GetQueryDetailRequest {
|
export interface GetQueryDetailRequest {
|
||||||
@@ -34,6 +36,8 @@ export namespace OrderQueryApi {
|
|||||||
create_time: string;
|
create_time: string;
|
||||||
update_time: string;
|
update_time: string;
|
||||||
query_state: string;
|
query_state: string;
|
||||||
|
agent_user_name: string;
|
||||||
|
agent_user_mobile: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 清理日志相关接口定义
|
// 清理日志相关接口定义
|
||||||
|
|||||||
@@ -6,21 +6,20 @@ import type {
|
|||||||
} from '#/adapter/vxe-table';
|
} from '#/adapter/vxe-table';
|
||||||
import type { AgentApi } from '#/api/agent';
|
import type { AgentApi } from '#/api/agent';
|
||||||
|
|
||||||
import { computed } from 'vue';
|
import { computed, ref } from 'vue';
|
||||||
import { useRoute, useRouter } from 'vue-router';
|
import { useRoute, useRouter } from 'vue-router';
|
||||||
|
|
||||||
import { Page, useVbenDrawer, useVbenModal } from '@vben/common-ui';
|
import { Page, useVbenDrawer, useVbenModal } from '@vben/common-ui';
|
||||||
|
|
||||||
import { Button, Card, Dropdown, Menu } from 'ant-design-vue';
|
import { Button, Card, Dropdown, Form, Input, Menu, Modal, message } from 'ant-design-vue';
|
||||||
|
|
||||||
import { useVbenVxeGrid } from '#/adapter/vxe-table';
|
import { useVbenVxeGrid } from '#/adapter/vxe-table';
|
||||||
import { getAgentList } from '#/api/agent';
|
import { getAgentList, updateAgentMobile } from '#/api/agent';
|
||||||
|
|
||||||
import { useColumns, useGridFormSchema } from './data';
|
import { useColumns, useGridFormSchema } from './data';
|
||||||
import CommissionModal from './modules/commission-modal.vue';
|
import CommissionModal from './modules/commission-modal.vue';
|
||||||
import Form from './modules/form.vue';
|
import FormDrawerContent from './modules/form.vue';
|
||||||
import LinkModal from './modules/link-modal.vue';
|
import LinkModal from './modules/link-modal.vue';
|
||||||
import MobileEditModal from './modules/mobile-edit-modal.vue';
|
|
||||||
import OrderModal from './modules/order-modal.vue';
|
import OrderModal from './modules/order-modal.vue';
|
||||||
import RebateModal from './modules/rebate-modal.vue';
|
import RebateModal from './modules/rebate-modal.vue';
|
||||||
import DowngradeModal from './modules/downgrade-modal.vue';
|
import DowngradeModal from './modules/downgrade-modal.vue';
|
||||||
@@ -32,7 +31,7 @@ const router = useRouter();
|
|||||||
|
|
||||||
// 表单抽屉
|
// 表单抽屉
|
||||||
const [FormDrawer, formDrawerApi] = useVbenDrawer({
|
const [FormDrawer, formDrawerApi] = useVbenDrawer({
|
||||||
connectedComponent: Form,
|
connectedComponent: FormDrawerContent,
|
||||||
destroyOnClose: true,
|
destroyOnClose: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -72,11 +71,48 @@ const [WithdrawalModalComponent, withdrawalModalApi] = useVbenModal({
|
|||||||
destroyOnClose: true,
|
destroyOnClose: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
// 修改手机号弹窗
|
// 修改手机号:本页 Modal + 表单
|
||||||
const [MobileEditModalComponent, mobileEditModalApi] = useVbenModal({
|
const mobileEditVisible = ref(false);
|
||||||
connectedComponent: MobileEditModal,
|
const mobileEditRow = ref<AgentApi.AgentListItem | null>(null);
|
||||||
destroyOnClose: true,
|
const mobileEditNewMobile = ref('');
|
||||||
});
|
const mobileEditLoading = ref(false);
|
||||||
|
|
||||||
|
function openMobileEdit(row: AgentApi.AgentListItem) {
|
||||||
|
mobileEditRow.value = row;
|
||||||
|
mobileEditNewMobile.value = row.mobile ?? '';
|
||||||
|
mobileEditVisible.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeMobileEdit() {
|
||||||
|
mobileEditVisible.value = false;
|
||||||
|
mobileEditRow.value = null;
|
||||||
|
mobileEditNewMobile.value = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
async function submitMobileEdit() {
|
||||||
|
const row = mobileEditRow.value;
|
||||||
|
if (!row) return;
|
||||||
|
const mobile = mobileEditNewMobile.value?.trim();
|
||||||
|
if (!mobile) {
|
||||||
|
message.warning('请输入新手机号');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!/^1[3-9]\d{9}$/.test(mobile)) {
|
||||||
|
message.warning('请输入正确的11位手机号');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mobileEditLoading.value = true;
|
||||||
|
try {
|
||||||
|
await updateAgentMobile({ agent_id: String(row.id), mobile });
|
||||||
|
message.success('手机号修改成功');
|
||||||
|
closeMobileEdit();
|
||||||
|
onRefresh();
|
||||||
|
} catch {
|
||||||
|
message.error('手机号修改失败');
|
||||||
|
} finally {
|
||||||
|
mobileEditLoading.value = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 代理降级弹窗
|
// 代理降级弹窗
|
||||||
const [DowngradeModalComponent, downgradeModalApi] = useVbenModal({
|
const [DowngradeModalComponent, downgradeModalApi] = useVbenModal({
|
||||||
@@ -196,10 +232,6 @@ function onActionClick(
|
|||||||
onViewCommission(e.row);
|
onViewCommission(e.row);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'edit-mobile': {
|
|
||||||
onEditMobile(e.row);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'edit': {
|
case 'edit': {
|
||||||
onEdit(e.row);
|
onEdit(e.row);
|
||||||
break;
|
break;
|
||||||
@@ -295,7 +327,6 @@ function onRefresh() {
|
|||||||
<Page auto-content-height>
|
<Page auto-content-height>
|
||||||
<FormDrawer @success="onRefresh" />
|
<FormDrawer @success="onRefresh" />
|
||||||
<LinkModalComponent />
|
<LinkModalComponent />
|
||||||
<MobileEditModalComponent @success="onRefresh" />
|
|
||||||
<DowngradeModalComponent @success="onRefresh" />
|
<DowngradeModalComponent @success="onRefresh" />
|
||||||
<CommissionModalComponent />
|
<CommissionModalComponent />
|
||||||
<RebateModalComponent />
|
<RebateModalComponent />
|
||||||
@@ -320,6 +351,9 @@ function onRefresh() {
|
|||||||
<Button type="link" @click="onActionClick({ code: 'view-sub-agent', row })">
|
<Button type="link" @click="onActionClick({ code: 'view-sub-agent', row })">
|
||||||
查看下级
|
查看下级
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button type="link" @click="openMobileEdit(row)">
|
||||||
|
修改手机号
|
||||||
|
</Button>
|
||||||
<!-- <Button
|
<!-- <Button
|
||||||
type="link"
|
type="link"
|
||||||
@click="onActionClick({ code: 'order-record', row })"
|
@click="onActionClick({ code: 'order-record', row })"
|
||||||
@@ -329,15 +363,33 @@ function onRefresh() {
|
|||||||
<Dropdown>
|
<Dropdown>
|
||||||
<Button type="link">更多操作</Button>
|
<Button type="link">更多操作</Button>
|
||||||
<template #overlay>
|
<template #overlay>
|
||||||
<Menu
|
<Menu :items="getMoreMenuItems(row)" @click="(e) => onActionClick({ code: String(e.key), row })" />
|
||||||
:items="getMoreMenuItems(row)"
|
|
||||||
@click="(e) => onActionClick({ code: String(e.key), row })"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
<!-- 修改手机号弹窗:直接表单 -->
|
||||||
|
<Modal v-model:open="mobileEditVisible" title="修改手机号" width="420px" :footer="null" destroy-on-close
|
||||||
|
@cancel="closeMobileEdit">
|
||||||
|
<Form layout="vertical" class="pt-2">
|
||||||
|
<Form.Item label="当前手机号">
|
||||||
|
<Input :value="mobileEditRow?.mobile" disabled />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item label="新手机号" required>
|
||||||
|
<Input v-model:value="mobileEditNewMobile" placeholder="请输入11位手机号" :maxlength="11" allow-clear />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item class="mb-0">
|
||||||
|
<div class="flex justify-end gap-2">
|
||||||
|
<Button @click="closeMobileEdit">取消</Button>
|
||||||
|
<Button type="primary" :loading="mobileEditLoading" @click="submitMobileEdit">
|
||||||
|
确定
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</Form.Item>
|
||||||
|
</Form>
|
||||||
|
</Modal>
|
||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -143,6 +143,21 @@ export function useColumns<T = OrderApi.Order>(
|
|||||||
|
|
||||||
export function useGridFormSchema(): VbenFormSchema[] {
|
export function useGridFormSchema(): VbenFormSchema[] {
|
||||||
return [
|
return [
|
||||||
|
{
|
||||||
|
component: 'Input',
|
||||||
|
fieldName: 'query_subject_name',
|
||||||
|
label: '被查询人姓名',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
component: 'Input',
|
||||||
|
fieldName: 'query_subject_mobile',
|
||||||
|
label: '被查询人手机号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
component: 'Input',
|
||||||
|
fieldName: 'query_subject_id_card',
|
||||||
|
label: '被查询人身份证',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
component: 'Input',
|
component: 'Input',
|
||||||
fieldName: 'order_no',
|
fieldName: 'order_no',
|
||||||
|
|||||||
@@ -194,6 +194,12 @@ async function handleConfirmDelete() {
|
|||||||
<Descriptions.Item label="更新时间">
|
<Descriptions.Item label="更新时间">
|
||||||
{{ queryDetail.update_time }}
|
{{ queryDetail.update_time }}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label="代理用户姓名">
|
||||||
|
{{ queryDetail.agent_user_name || '--' }}
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label="代理用户手机号">
|
||||||
|
{{ queryDetail.agent_user_mobile || '--' }}
|
||||||
|
</Descriptions.Item>
|
||||||
</Descriptions>
|
</Descriptions>
|
||||||
</template>
|
</template>
|
||||||
</Card>
|
</Card>
|
||||||
|
|||||||
Reference in New Issue
Block a user