Reviewed-on: daoyoucloud/tachycode#738 Co-authored-by: wjh <wwwjh0710@163.com> Co-committed-by: wjh <wwwjh0710@163.com>
This commit is contained in:
		
							parent
							
								
									c7c497659d
								
							
						
					
					
						commit
						9d1d490f6e
					
				
							
								
								
									
										5
									
								
								.changeset/cyan-papayas-peel.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.changeset/cyan-papayas-peel.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
"@hera/plugin-mobile": patch
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
优化筛选组件在文本框情况时候延迟2s,轮播图组件没有数据添加提示
 | 
			
		||||
@ -2,38 +2,54 @@ import { BlockItem, css, useDesignable, useRequest, withDynamicSchemaProps } fro
 | 
			
		||||
import { useFieldSchema } from '@nocobase/schema';
 | 
			
		||||
import { Swiper } from 'antd-mobile';
 | 
			
		||||
import React, { useEffect, useState } from 'react';
 | 
			
		||||
import { useNavigate } from 'react-router-dom';
 | 
			
		||||
 | 
			
		||||
export const SwiperBlock = withDynamicSchemaProps((props) => {
 | 
			
		||||
  const { fieldValue, data, changeNav } = props;
 | 
			
		||||
  if (!data) return;
 | 
			
		||||
  const items = data['data']
 | 
			
		||||
    ?.map((imgItem, index) => {
 | 
			
		||||
      return imgItem[fieldValue] ? (
 | 
			
		||||
        <Swiper.Item key={index}>
 | 
			
		||||
  const items = data['data'].length
 | 
			
		||||
    ? data['data']
 | 
			
		||||
        .map((imgItem, index) => {
 | 
			
		||||
          return imgItem[fieldValue][0]?.url ? (
 | 
			
		||||
            <Swiper.Item key={index}>
 | 
			
		||||
              <div
 | 
			
		||||
                className={swiperStyle}
 | 
			
		||||
                style={{
 | 
			
		||||
                  backgroundImage: `url(${imgItem[fieldValue][0]?.url})`,
 | 
			
		||||
                  backgroundSize: '100% 100%',
 | 
			
		||||
                  backgroundAttachment: 'fixed',
 | 
			
		||||
                }}
 | 
			
		||||
                onClick={() => {
 | 
			
		||||
                  changeNav(imgItem);
 | 
			
		||||
                }}
 | 
			
		||||
              ></div>
 | 
			
		||||
            </Swiper.Item>
 | 
			
		||||
          ) : (
 | 
			
		||||
            <Swiper.Item key={index}>
 | 
			
		||||
              <div
 | 
			
		||||
                className={swiperStyle}
 | 
			
		||||
                style={{
 | 
			
		||||
                  backgroundColor: '#e0e0e0',
 | 
			
		||||
                }}
 | 
			
		||||
              >
 | 
			
		||||
                无法加载此内容
 | 
			
		||||
              </div>
 | 
			
		||||
            </Swiper.Item>
 | 
			
		||||
          );
 | 
			
		||||
        })
 | 
			
		||||
        .filter(Boolean)
 | 
			
		||||
    : [
 | 
			
		||||
        <Swiper.Item key={0}>
 | 
			
		||||
          <div
 | 
			
		||||
            className={css`
 | 
			
		||||
              height: 20vh;
 | 
			
		||||
              color: #ffffff;
 | 
			
		||||
              display: flex;
 | 
			
		||||
              justify-content: center;
 | 
			
		||||
              align-items: center;
 | 
			
		||||
              font-size: 48px;
 | 
			
		||||
              user-select: none;
 | 
			
		||||
            `}
 | 
			
		||||
            className={swiperStyle}
 | 
			
		||||
            style={{
 | 
			
		||||
              backgroundImage: `url(${imgItem[fieldValue][0].url})`,
 | 
			
		||||
              backgroundSize: '100% 100%',
 | 
			
		||||
              backgroundAttachment: 'fixed',
 | 
			
		||||
              backgroundColor: '#e0e0e0',
 | 
			
		||||
            }}
 | 
			
		||||
            onClick={() => {
 | 
			
		||||
              changeNav(imgItem);
 | 
			
		||||
            }}
 | 
			
		||||
          ></div>
 | 
			
		||||
        </Swiper.Item>
 | 
			
		||||
      ) : null;
 | 
			
		||||
    })
 | 
			
		||||
    .filter(Boolean);
 | 
			
		||||
          >
 | 
			
		||||
            当前区块没有可加载数据
 | 
			
		||||
          </div>
 | 
			
		||||
        </Swiper.Item>,
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <BlockItem>
 | 
			
		||||
      <Swiper loop autoplay>
 | 
			
		||||
@ -42,3 +58,13 @@ export const SwiperBlock = withDynamicSchemaProps((props) => {
 | 
			
		||||
    </BlockItem>
 | 
			
		||||
  );
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const swiperStyle = css`
 | 
			
		||||
  height: 20vh;
 | 
			
		||||
  color: #ffffff;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  font-size: 25px;
 | 
			
		||||
  user-select: none;
 | 
			
		||||
`;
 | 
			
		||||
 | 
			
		||||
@ -8,6 +8,7 @@ import {
 | 
			
		||||
import React from 'react';
 | 
			
		||||
import { createGridCardBlockSchema } from '../../schma-block/schema-create/createGridCardBlockSchma';
 | 
			
		||||
import { ISchema } from '@nocobase/schema';
 | 
			
		||||
import { Toast } from 'antd-mobile';
 | 
			
		||||
 | 
			
		||||
export const SwiperBlockInitializer = () => {
 | 
			
		||||
  const { insert } = useSchemaInitializer();
 | 
			
		||||
@ -17,7 +18,10 @@ export const SwiperBlockInitializer = () => {
 | 
			
		||||
  const onCreateBlockSchema = async ({ item }) => {
 | 
			
		||||
    const collection = cm.getCollection(item.name);
 | 
			
		||||
    const value = collection.fields.find((field) => field.interface === 'attachment');
 | 
			
		||||
    if (!value) return;
 | 
			
		||||
    if (!value) {
 | 
			
		||||
      Toast.show({ content: '当前数据源暂无可加载数据' });
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    const schema: ISchema = {
 | 
			
		||||
      type: 'void',
 | 
			
		||||
      name: item.name,
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { useMemo, useState } from 'react';
 | 
			
		||||
import { useMemo, useRef, useState } from 'react';
 | 
			
		||||
import { useFieldSchema } from '@nocobase/schema';
 | 
			
		||||
import { useCollection, useCollectionManager, useDesignable, useDesigner } from '@nocobase/client';
 | 
			
		||||
import {
 | 
			
		||||
@ -79,10 +79,14 @@ export const useTabSearchCollapsibleInputItemAction = (props) => {
 | 
			
		||||
    setCustomLabelKey(label as string);
 | 
			
		||||
  };
 | 
			
		||||
  const onInputChange = (v) => {
 | 
			
		||||
    const timeout = { current: null };
 | 
			
		||||
    clearTimeout(timeout.current);
 | 
			
		||||
    const inputValue = v.target?.value || v;
 | 
			
		||||
    setValue(inputValue);
 | 
			
		||||
    if (inputValue === '') {
 | 
			
		||||
      onSelect(inputValue);
 | 
			
		||||
      timeout.current = setTimeout(() => {
 | 
			
		||||
        onSelect(inputValue);
 | 
			
		||||
      }, 2000);
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
  const onButtonClick = () => {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user