fix:kyc界面图片处理和搜索条件修改
This commit is contained in:
137
src/views/user-center/kyc/modules/kyc-search.vue
Normal file
137
src/views/user-center/kyc/modules/kyc-search.vue
Normal file
@@ -0,0 +1,137 @@
|
||||
<template>
|
||||
<ACard :bordered="false" class="search-card">
|
||||
<AForm
|
||||
ref="formRef"
|
||||
:model="formModel"
|
||||
layout="inline"
|
||||
class="flex flex-wrap gap-16px items-center"
|
||||
>
|
||||
<AFormItem label="提交时间">
|
||||
<ARangePicker
|
||||
v-model:value="queryRangePicker"
|
||||
show-time
|
||||
:placeholder="['开始时间', '结束时间']"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
class="w-400px"
|
||||
@change="handleTimeChange"
|
||||
/>
|
||||
</AFormItem>
|
||||
<AFormItem label="状态">
|
||||
<ASelect
|
||||
v-model:value="formModel.status"
|
||||
placeholder="请选择状态"
|
||||
allow-clear
|
||||
class="w-200px"
|
||||
>
|
||||
<ASelectOption value="PENDING">待审核</ASelectOption>
|
||||
<ASelectOption value="APPROVED">已通过</ASelectOption>
|
||||
<ASelectOption value="REJECTED">已拒绝</ASelectOption>
|
||||
</ASelect>
|
||||
</AFormItem>
|
||||
<AFormItem class="flex-1 justify-end">
|
||||
<ASpace>
|
||||
<AButton @click="handleReset">重置</AButton>
|
||||
<AButton type="primary" @click="handleSearch">查询</AButton>
|
||||
</ASpace>
|
||||
</AFormItem>
|
||||
</AForm>
|
||||
</ACard>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, computed, watch } from 'vue';
|
||||
import {
|
||||
Form as AForm,
|
||||
FormItem as AFormItem,
|
||||
Select as ASelect,
|
||||
SelectOption as ASelectOption,
|
||||
Button as AButton,
|
||||
Space as ASpace,
|
||||
Card as ACard,
|
||||
DatePicker
|
||||
} from 'ant-design-vue';
|
||||
import type { FormInstance } from 'ant-design-vue';
|
||||
const ARangePicker = DatePicker.RangePicker;
|
||||
import dayjs, { Dayjs } from 'dayjs';
|
||||
|
||||
interface SearchModel {
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
startTime?: string;
|
||||
endTime?: string;
|
||||
status?: string;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
model: SearchModel;
|
||||
}>(), {
|
||||
model: () => ({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
startTime: undefined,
|
||||
endTime: undefined,
|
||||
status: undefined
|
||||
})
|
||||
});
|
||||
|
||||
const emit = defineEmits<{
|
||||
'update:model': [value: SearchModel];
|
||||
'search': [];
|
||||
'reset': [];
|
||||
}>();
|
||||
|
||||
const formRef = ref<FormInstance>();
|
||||
const { resetFields } = AForm.useForm(props.model);
|
||||
|
||||
const formModel = computed({
|
||||
get: () => props.model,
|
||||
set: (val: SearchModel) => emit('update:model', val)
|
||||
});
|
||||
|
||||
const queryRangePicker = ref<[string, string]>(['', '']);
|
||||
|
||||
const handleTimeChange = (dates: any, dateStrings: [string, string]) => {
|
||||
formModel.value.startTime = dateStrings[0] || undefined;
|
||||
formModel.value.endTime = dateStrings[1] || undefined;
|
||||
};
|
||||
|
||||
function handleSearch() {
|
||||
emit('search');
|
||||
}
|
||||
|
||||
function handleReset() {
|
||||
queryRangePicker.value = ['', ''];
|
||||
resetFields();
|
||||
formModel.value = {
|
||||
...formModel.value,
|
||||
startTime: undefined,
|
||||
endTime: undefined,
|
||||
status: undefined,
|
||||
pageNum: 1
|
||||
};
|
||||
emit('reset');
|
||||
}
|
||||
|
||||
watch(
|
||||
() => [props.model.startTime, props.model.endTime],
|
||||
([start, end]) => {
|
||||
queryRangePicker.value = [start || '', end || ''];
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.search-card {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.w-200px {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.w-400px {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user