124 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import type { VbenFormSchema } from '#/adapter/form';
 | |
| import type { OnActionClickFn, VxeTableGridOptions } from '#/adapter/vxe-table';
 | |
| import type { SystemSocialUserApi } from '#/api/system/social/user';
 | |
| 
 | |
| import { useAccess } from '@vben/access';
 | |
| import { DICT_TYPE } from '@vben/constants';
 | |
| import { getDictOptions } from '@vben/hooks';
 | |
| 
 | |
| import { getRangePickerDefaultProps } from '#/utils';
 | |
| 
 | |
| const { hasAccessByCodes } = useAccess();
 | |
| 
 | |
| /** 列表的搜索表单 */
 | |
| export function useGridFormSchema(): VbenFormSchema[] {
 | |
|   return [
 | |
|     {
 | |
|       fieldName: 'type',
 | |
|       label: '社交平台',
 | |
|       component: 'Select',
 | |
|       componentProps: {
 | |
|         options: getDictOptions(DICT_TYPE.SYSTEM_SOCIAL_TYPE, 'number'),
 | |
|         placeholder: '请选择社交平台',
 | |
|         clearable: true,
 | |
|       },
 | |
|     },
 | |
|     {
 | |
|       fieldName: 'nickname',
 | |
|       label: '用户昵称',
 | |
|       component: 'Input',
 | |
|       componentProps: {
 | |
|         placeholder: '请输入用户昵称',
 | |
|         clearable: true,
 | |
|       },
 | |
|     },
 | |
|     {
 | |
|       fieldName: 'openid',
 | |
|       label: '社交 openid',
 | |
|       component: 'Input',
 | |
|       componentProps: {
 | |
|         placeholder: '请输入社交 openid',
 | |
|         clearable: true,
 | |
|       },
 | |
|     },
 | |
|     {
 | |
|       fieldName: 'createTime',
 | |
|       label: '创建时间',
 | |
|       component: 'RangePicker',
 | |
|       componentProps: {
 | |
|         ...getRangePickerDefaultProps(),
 | |
|         clearable: true,
 | |
|       },
 | |
|     },
 | |
|   ];
 | |
| }
 | |
| 
 | |
| /** 列表的字段 */
 | |
| export function useGridColumns<T = SystemSocialUserApi.SocialUser>(
 | |
|   onActionClick: OnActionClickFn<T>,
 | |
| ): VxeTableGridOptions['columns'] {
 | |
|   return [
 | |
|     {
 | |
|       field: 'type',
 | |
|       title: '社交平台',
 | |
|       minWidth: 120,
 | |
|       cellRender: {
 | |
|         name: 'CellDict',
 | |
|         props: { type: DICT_TYPE.SYSTEM_SOCIAL_TYPE },
 | |
|       },
 | |
|     },
 | |
|     {
 | |
|       field: 'openid',
 | |
|       title: '社交 openid',
 | |
|       minWidth: 180,
 | |
|     },
 | |
|     {
 | |
|       field: 'nickname',
 | |
|       title: '用户昵称',
 | |
|       minWidth: 120,
 | |
|     },
 | |
|     {
 | |
|       field: 'avatar',
 | |
|       title: '用户头像',
 | |
|       minWidth: 80,
 | |
|       cellRender: {
 | |
|         name: 'CellImage',
 | |
|       },
 | |
|     },
 | |
|     {
 | |
|       field: 'createTime',
 | |
|       title: '创建时间',
 | |
|       minWidth: 180,
 | |
|       formatter: 'formatDateTime',
 | |
|     },
 | |
|     {
 | |
|       field: 'updateTime',
 | |
|       title: '更新时间',
 | |
|       minWidth: 180,
 | |
|       formatter: 'formatDateTime',
 | |
|     },
 | |
|     {
 | |
|       field: 'operation',
 | |
|       title: '操作',
 | |
|       minWidth: 100,
 | |
|       align: 'center',
 | |
|       fixed: 'right',
 | |
|       cellRender: {
 | |
|         attrs: {
 | |
|           nameField: 'nickname',
 | |
|           nameTitle: '社交用户',
 | |
|           onClick: onActionClick,
 | |
|         },
 | |
|         name: 'CellOperation',
 | |
|         options: [
 | |
|           {
 | |
|             code: 'detail',
 | |
|             text: '详情',
 | |
|             show: hasAccessByCodes(['system:social-user:query']),
 | |
|           },
 | |
|         ],
 | |
|       },
 | |
|     },
 | |
|   ];
 | |
| }
 |