From 2a964829b423b880b7c0206b96bbe3fa4152e627 Mon Sep 17 00:00:00 2001 From: xuan Date: Thu, 1 Sep 2022 19:19:57 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E2=9C=A8=20feat(=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89tabbar):=20=E5=AE=8C=E5=96=84=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89tabbbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc | 2 +- README.md | 154 ++++++++++ app.json | 5 + config/dev.js | 3 +- config/index.js | 1 + config/pre.js | 2 +- iconfont.json | 7 + package.json | 2 + src/app.config.ts | 13 +- src/app.scss | 16 +- src/components/iconfont/iconfont.js | 63 ++++ src/components/iconfont/iconfont.json | 4 + src/components/iconfont/iconfont.wxml | 77 +++++ src/components/iconfont/iconfont.wxss | 3 + src/custom-tab-bar/index.module.scss | 39 +++ src/custom-tab-bar/index.tsx | 80 +++++ src/pages/user/index.tsx | 9 +- src/styles/iconfont.scss | 406 +++++++++++++------------- src/styles/iconfont.ttf | Bin 17500 -> 12328 bytes src/styles/tabbar/list.png | Bin 4132 -> 0 bytes src/styles/tabbar/list_on.png | Bin 4089 -> 0 bytes src/styles/tabbar/my.png | Bin 7752 -> 0 bytes src/styles/tabbar/my_on.png | Bin 7374 -> 0 bytes src/styles/tabbar/order.png | Bin 4142 -> 0 bytes src/styles/tabbar/order_on.png | Bin 4010 -> 0 bytes yarn.lock | 54 +++- 26 files changed, 712 insertions(+), 228 deletions(-) create mode 100644 README.md create mode 100644 app.json create mode 100644 iconfont.json create mode 100644 src/components/iconfont/iconfont.js create mode 100644 src/components/iconfont/iconfont.json create mode 100644 src/components/iconfont/iconfont.wxml create mode 100644 src/components/iconfont/iconfont.wxss create mode 100644 src/custom-tab-bar/index.module.scss create mode 100644 src/custom-tab-bar/index.tsx delete mode 100644 src/styles/tabbar/list.png delete mode 100644 src/styles/tabbar/list_on.png delete mode 100644 src/styles/tabbar/my.png delete mode 100644 src/styles/tabbar/my_on.png delete mode 100644 src/styles/tabbar/order.png delete mode 100644 src/styles/tabbar/order_on.png diff --git a/.eslintrc b/.eslintrc index ec9427d..430d6ac 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,5 +1,5 @@ { - "extends": ["taro/react"], + "extends": ["taro/react","plugin:react-hooks/recommended"], "rules": { "react/jsx-uses-react": "off", "react/react-in-jsx-scope": "off" diff --git a/README.md b/README.md new file mode 100644 index 0000000..f3bdece --- /dev/null +++ b/README.md @@ -0,0 +1,154 @@ +# 阿里图标库 iconfont 使用 Symbol 我们使用了 mini-program-iconfont-cli 这个库 + +用法如下: + +# Step 1 +安装插件 +```bash +# Yarn +yarn add mini-program-iconfont-cli --dev + +# Npm +npm install mini-program-iconfont-cli --save-dev +``` + +# Step 2 +生成配置文件 +```bash +npx iconfont-init + +# 可传入配置文件输出路径 +# npx iconfont-init --output iconfont.json +``` + +此时项目根目录会生成一个`iconfont.json`的文件,内容如下: +```json +{ + "symbol_url": "请参考README.md,复制 http://iconfont.cn 官网提供的JS链接", + "save_dir": "./iconfont", + "use_rpx": false, + "trim_icon_prefix": "icon", + "default_icon_size": 18 +} +``` + +### 配置参数说明: +#### symbol_url +请直接复制[iconfont](http://iconfont.cn)官网提供的项目链接。请务必看清是`.js`后缀而不是`.css`后缀。如果你现在还没有创建iconfont的仓库,那么可以填入这个链接去测试:`http://at.alicdn.com/t/font_1373348_kk9y3jk2omq.js`。 + +![](https://github.com/fwh1990/mini-program-iconfont-cli/blob/master/images/symbol-url.png?raw=true) + +#### save_dir +根据iconfont图标生成的组件存放的位置。每次生成组件之前,该文件夹都会被清空。 + +#### use_rpx +使用微信提供的[尺寸单位rpx](https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxss.html#%E5%B0%BA%E5%AF%B8%E5%8D%95%E4%BD%8D)还是普通的像素单位`px`。默认值为false,即使用`px`。 + +#### trim_icon_prefix +如果你的图标有通用的前缀,而你在使用的时候又不想重复去写,那么可以通过配置这个选项把前缀统一去掉。 + +#### default_icon_size +我们将为每个生成的图标组件加入默认的字体大小,当然,你也可以通过传入props的方式改变这个size值。 + +# Step 3 +生成小程序标准组件 +```bash +# 可传入配置文件路径 +# npx iconfont-XXXXX --config iconfont.json + +# 微信小程序 +npx iconfont-wechat + +# 支付宝小程序 +npx iconfont-alipay + +# 百度小程序 +npx iconfont-baidu + +# 头条小程序 +npx iconfont-toutiao + +# 快手小程序 +npx iconfont-kuaishou + +# QQ小程序 +npx iconfont-qq +``` +生成后查看您设置的保存目录中是否含有所有的图标 + +------- + +在生成代码之前,你可以顺便参考[snapshots目录](https://github.com/iconfont-cli/mini-program-iconfont-cli/tree/master/snapshots)自动生成的快照文件。 + +# Step 4 +#### 微信小程序 | QQ小程序 +在根目录的`app.json`文件中引入全局图标组件,避免每个page都引入(麻烦)。 +```json5 +// 绝对路径 +{ + "usingComponents": { + "iconfont": "/iconfont/iconfont" + } +} +``` + +#### 支付宝小程序 | 百度小程序 | 头条小程序 | 快手小程序 +不支持全局引入,您需要在各自page的`.json`文件中引入。 +```json5 +// 绝对路径 +{ + "usingComponents": { + "iconfont": "/iconfont/iconfont" + } +} +``` + +# 使用 +在page中使用图标。 +```jsx harmony +// 原色彩 + + +// 单色:红色 + + +// 多色:红色+橘色 + + +// 不同格式的颜色写法 + + +// 与文字对齐 + + Hello + + +``` + +# 更新图标 +当您在iconfont.cn中的图标有变更时,只需更改配置`symbol_url`,然后再次执行`Step 3`即可生成最新的图标组件。 +```bash +# 修改 symbol_url 配置后执行: + +# 微信小程序 +npx iconfont-wechat + +# 支付宝小程序 +npx iconfont-alipay + +# 百度小程序 +npx iconfont-baidu + +# 头条小程序 +npx iconfont-toutiao + +# 快手小程序 +npx iconfont-kuaishou + +# QQ小程序 +npx iconfont-qq +``` + +-------- + +欢迎使用,并给我一些反馈和建议,让这个库做的更好。 diff --git a/app.json b/app.json new file mode 100644 index 0000000..873c66f --- /dev/null +++ b/app.json @@ -0,0 +1,5 @@ +{ + "usingComponents": { + "iconfont": "/src/components/iconfont/iconfont" + } +} diff --git a/config/dev.js b/config/dev.js index e3a0d8a..4e1656f 100644 --- a/config/dev.js +++ b/config/dev.js @@ -37,8 +37,9 @@ module.exports = { alias: { '@': path.resolve(__dirname, '..', 'src'), }, + sass: { - resource: path.resolve(__dirname, '..', 'src/styles/common.scss'), + resource: [path.resolve(__dirname, '..', 'src/styles/common.scss'), path.resolve(__dirname, '..', 'src/styles/iconfont.scss')], }, // plugins: [ // '@tarojs/plugin-react-devtools' diff --git a/config/index.js b/config/index.js index 87d9bca..fbb6e6d 100644 --- a/config/index.js +++ b/config/index.js @@ -19,6 +19,7 @@ const CURRENT_VERSION = `Version: ${JSON.stringify(process.env.CODE_BRANCH || ve ) const config = { + appid: 'wx64fe67f111d52457', // 测试/体验环境 projectName: 'SpiderSteward', date: '2022-4-6', designWidth: 750, diff --git a/config/pre.js b/config/pre.js index 232a1c5..ce69a73 100644 --- a/config/pre.js +++ b/config/pre.js @@ -38,6 +38,6 @@ module.exports = { '@': path.resolve(__dirname, '..', 'src'), }, sass: { - resource: path.resolve(__dirname, '..', 'src/styles/common.scss'), + resource: [path.resolve(__dirname, '..', 'src/styles/common.scss'), path.resolve(__dirname, '..', 'src/styles/iconfont.scss')], }, } diff --git a/iconfont.json b/iconfont.json new file mode 100644 index 0000000..489795a --- /dev/null +++ b/iconfont.json @@ -0,0 +1,7 @@ +{ + "symbol_url": "//at.alicdn.com/t/c/font_3619513_mrvpsyqxmzr.js", + "save_dir": "./src/components/iconfont", + "use_rpx": false, + "trim_icon_prefix": "icon", + "default_icon_size": 18 +} diff --git a/package.json b/package.json index af1d38f..b9a9717 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "@tarojs/runtime": "3.5.4", "@tarojs/taro": "3.5.4", "big.js": "^6.2.1", + "classname": "^0.0.0", "dayjs": "^1.11.3", "qs": "^6.10.3", "react": "^18.2.0", @@ -73,6 +74,7 @@ "eslint-plugin-import": "^2.12.0", "eslint-plugin-react": "^7.8.2", "eslint-plugin-react-hooks": "^4.2.0", + "mini-program-iconfont-cli": "^0.6.1", "react-refresh": "0.11.0", "stylelint": "9.3.0", "typescript": "^4.1.0", diff --git a/src/app.config.ts b/src/app.config.ts index 9636b70..32008ba 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -15,30 +15,23 @@ export default defineAppConfig({ backgroundColor: '#ffffff', }, tabBar: { + custom: true, list: [ { pagePath: 'pages/index/index', text: '首页', - iconPath: './styles/tabbar/list.png', - selectedIconPath: './styles/tabbar/list_on.png', }, { pagePath: 'pages/shopping/index', text: '购物', - iconPath: './styles/tabbar/order.png', - selectedIconPath: './styles/tabbar/order_on.png', }, { pagePath: 'pages/order/index', text: '订单', - iconPath: './styles/tabbar/order.png', - selectedIconPath: './styles/tabbar/order_on.png', }, { pagePath: 'pages/user/index', text: '我的', - iconPath: './styles/tabbar/my.png', - selectedIconPath: './styles/tabbar/my_on.png', }, ], color: '#707070', @@ -46,5 +39,9 @@ export default defineAppConfig({ backgroundColor: '#fff', borderStyle: 'white', }, + usingComponents: { + 'custom-wrapper': '/custom-wrapper', + + }, subPackages: [], }) diff --git a/src/app.scss b/src/app.scss index c393d5e..3e7323b 100644 --- a/src/app.scss +++ b/src/app.scss @@ -1,6 +1,14 @@ @import './styles/common.scss'; @import './styles/iconfont.scss'; -page{ - height: 100%; - -} \ No newline at end of file + +/** + 由于Cover-view标签并不支持iconfont 所以需要把 .ttf 转成 base64 之后得到的 stylesheet.css 文件覆盖掉 iconfont.css 里的 @font-face 即可 + [转换工具](https://transfonter.org/) + [教程](https://blog.csdn.net/VoidLuffy/article/details/123530341) + [相关说明](https://developers.weixin.qq.com/community/develop/doc/000a60f7d58a982f08d7ddfc456000) +*/ + +page { + height: 100%; +} + diff --git a/src/components/iconfont/iconfont.js b/src/components/iconfont/iconfont.js new file mode 100644 index 0000000..1b0dc5a --- /dev/null +++ b/src/components/iconfont/iconfont.js @@ -0,0 +1,63 @@ +Component({ + properties: { + // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + name: { + type: String, + }, + // string | string[] + color: { + type: null, + observer: function(color) { + this.setData({ + colors: this.fixColor(), + isStr: typeof color === 'string', + }); + } + }, + size: { + type: Number, + value: 18, + observer: function(size) { + this.setData({ + svgSize: size, + }); + }, + }, + }, + data: { + colors: '', + svgSize: 18, + quot: '"', + isStr: true, + }, + methods: { + fixColor: function() { + var color = this.data.color; + var hex2rgb = this.hex2rgb; + + if (typeof color === 'string') { + return color.indexOf('#') === 0 ? hex2rgb(color) : color; + } + + return color.map(function (item) { + return item.indexOf('#') === 0 ? hex2rgb(item) : item; + }); + }, + hex2rgb: function(hex) { + var rgb = []; + + hex = hex.substr(1); + + if (hex.length === 3) { + hex = hex.replace(/(.)/g, '$1$1'); + } + + hex.replace(/../g, function(color) { + rgb.push(parseInt(color, 0x10)); + return color; + }); + + return 'rgb(' + rgb.join(',') + ')'; + } + } +}); diff --git a/src/components/iconfont/iconfont.json b/src/components/iconfont/iconfont.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/components/iconfont/iconfont.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/components/iconfont/iconfont.wxml b/src/components/iconfont/iconfont.wxml new file mode 100644 index 0000000..18c9e0b --- /dev/null +++ b/src/components/iconfont/iconfont.wxml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/iconfont/iconfont.wxss b/src/components/iconfont/iconfont.wxss new file mode 100644 index 0000000..9f68d1a --- /dev/null +++ b/src/components/iconfont/iconfont.wxss @@ -0,0 +1,3 @@ +.icon { + background-repeat: no-repeat; +} diff --git a/src/custom-tab-bar/index.module.scss b/src/custom-tab-bar/index.module.scss new file mode 100644 index 0000000..2f58e23 --- /dev/null +++ b/src/custom-tab-bar/index.module.scss @@ -0,0 +1,39 @@ +.customTabBar { + position: fixed; + left: 0; + bottom: 0; + width: 100%; + height: 100px; + display: flex; + flex-flow: row nowrap; + padding-bottom: env(safe-area-inset-bottom); + background-color: #fff; + &-line { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 1px; + transform: scaleY(0.5); + } + &-item { + flex: 1; + text-align: center; + display: flex; + justify-content: center; + align-items: center; + flex-flow: column nowrap; + &-icon { + width: 56px; + height: 56px; + font-size: 60px; + } + &-title { + margin-top: 10px; + font-size: 20px; + } + } +} +.selected { + color: $color_main; +} diff --git a/src/custom-tab-bar/index.tsx b/src/custom-tab-bar/index.tsx new file mode 100644 index 0000000..0b5c8a7 --- /dev/null +++ b/src/custom-tab-bar/index.tsx @@ -0,0 +1,80 @@ +import { CoverImage, View } from '@tarojs/components' +import { FC, useMemo, useState } from 'react' +import styles from './index.module.scss' +import classname from 'classname' +type TabBarIndexMap = { + [Property: number]: { + id: number + pagePath: string + text: string + iconPath: string + selectedIconPath: string + } +} + +const CustomTabBar: FC = () => { + const [tabItem, setTabItem] = useState([ + { + id: 1, + pagePath: 'pages/index/index', + text: '首页', + iconPath: 'icon-shouye1', + selectedIconPath: 'icon-shouye', + }, + { + id: 2, + pagePath: 'pages/shopping/index', + text: '购物', + iconPath: 'icon-gouwu1', + selectedIconPath: 'icon-gouwu', + }, + { + id: 3, + pagePath: 'pages/order/index', + text: '订单', + iconPath: 'icon-dingdan1', + selectedIconPath: 'icon-dingdan', + }, + { + id: 4, + pagePath: 'pages/user/index', + text: '我的', + iconPath: 'icon-gerenzhongxin1', + selectedIconPath: 'icon-gerenzhongxin', + }, + ]) + + const tabBarIndexMap = useMemo(() => { + let map: TabBarIndexMap = {} + for (let i = 0; i < tabItem.length; i++) { + map[tabItem[i].id] = tabItem[i] + } + return map + }, [tabItem]) + + const [selectedId, setSelectedId] = useState(1) + + const handleSelectTabItem = () => { + return () => {} + } + + return ( + + + {tabItem.map((item, index) => { + return ( + + + {item.text} + + ) + })} + + ) +} +export default CustomTabBar diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index ebf4f98..e24a9aa 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -5,6 +5,12 @@ import styles from './index.module.scss' const SonComp: FC = memo(() => { return 我改变了吗{new Date().getTime()} }) +// 用户信息 +const UserInfo:FC = () => { + return + sdfasdf + +} // 我的 const User = () => { @@ -19,7 +25,8 @@ const User = () => { return ( <> - sdfasdfasdf {count} + + sdfasdfasdf {count} diff --git a/src/styles/iconfont.scss b/src/styles/iconfont.scss index e08c56e..5da1113 100644 --- a/src/styles/iconfont.scss +++ b/src/styles/iconfont.scss @@ -1,8 +1,9 @@ +/* CDN 服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用并做好备份。 */ @font-face { - font-family: "iconfont"; - /* Project id 2987621 */ - src: url('iconfont.ttf?t=1661926630273') format('truetype'); - + font-family: 'iconfont'; /* Project id 3619513 */ + src: url('//at.alicdn.com/t/c/font_3619513_g8r6ax9bp1n.woff2?t=1662609560991') format('woff2'), + url('//at.alicdn.com/t/c/font_3619513_g8r6ax9bp1n.woff?t=1662609560991') format('woff'), + url('//at.alicdn.com/t/c/font_3619513_g8r6ax9bp1n.ttf?t=1662609560991') format('truetype'); } .iconfont { @@ -13,222 +14,219 @@ -moz-osx-font-smoothing: grayscale; } -.icon-A:before { - content: "\e6ea"; +.icon-yewuyuanqizi:before { + content: "\e639"; } -.icon-erweima:before { - content: "\e7b5"; +.icon-chakanquanbukehu:before { + content: "\e638"; } -.icon-xtianzhangqi:before { - content: "\e66a"; -} - -.icon-yucunkuan:before { - content: "\e66c"; -} - -.icon-a-tuikuanshouhou:before { - content: "\e65c"; -} - -.icon-yifahuo:before { - content: "\e65b"; -} - -.icon-daipeibu:before { - content: "\e662"; -} - -.icon-guanbi:before { - content: "\e641"; -} - -.icon-a-saoyisao2:before { - content: "\e613"; -} - -.icon-guanyuquse:before { - content: "\e635"; -} - -.icon-yangpinduibi:before { - content: "\e631"; -} - -.icon-lingquseka:before { - content: "\e632"; -} - -.icon-sehaochazhao:before { - content: "\e633"; -} - -.icon-jichuguanli:before { - content: "\e634"; -} - -.icon-yuncangkucun:before { - content: "\e630"; -} - -.icon-shangchuanzhaopian:before { - content: "\e62f"; -} - -.icon-zhushi:before { - content: "\e62d"; -} - -.icon-shenqingtuihuo:before { - content: "\e62e"; -} - -.icon-quxiaodingdanxiao:before { - content: "\e62c"; -} - -.icon-tuihuo1:before { - content: "\e62a"; -} - -.icon-a-fenqishangchengyifahuo:before { - content: "\e62b"; -} - -.icon-peibu:before { - content: "\e626"; -} - -.icon-dingdanbishu:before { - content: "\e627"; -} - -.icon-guanyufahuo:before { - content: "\e628"; -} - -.icon-tuihuo:before { - content: "\e629"; -} - -.icon-rili:before { - content: "\e625"; -} - -.icon-jiangpai:before { - content: "\e624"; -} - -.icon-xiaoshou:before { - content: "\e623"; -} - -.icon-cangkuguanli:before { - content: "\e61f"; -} - -.icon-zhibiaoduizhang:before { - content: "\e620"; -} - -.icon-a-tongji1:before { - content: "\e621"; -} - -.icon-shaixuan:before { - content: "\e622"; -} - -.icon-xiangxiagengduo:before { - content: "\e61e"; -} - -.icon-gongnengdingyi:before { - content: "\e61a"; -} - -.icon-rukuguanli:before { - content: "\e61b"; -} - -.icon-shenqing:before { - content: "\e61c"; -} - -.icon-kehuguanli:before { - content: "\e61d"; -} - -.icon-a-phone1:before { - content: "\e619"; -} - -.icon-a-saoyisao2:before { - content: "\e613"; -} - -.icon-ico_zhongyaofangguanli_zhongyaopandian:before { - content: "\e615"; -} - -.icon-seka:before { - content: "\e616"; -} - -.icon-xiaoshoutongji:before { - content: "\e617"; -} - -.icon-gengduo:before { - content: "\e618"; -} - -.icon-lajitong:before { - content: "\e60c"; -} - -.icon-jian:before { - content: "\e60b"; -} - -.icon-jia:before { - content: "\e60a"; -} - -.icon-a-tick1:before { - content: "\e609"; -} - -.icon-a-cuowuwrong:before { - content: "\e608"; -} - -.icon-more:before { - content: "\e606"; +.icon-biyan:before { + content: "\e637"; } .icon-bianji:before { - content: "\e607"; + content: "\e61e"; } -.icon-wode:before { - content: "\e602"; +.icon-daikuan:before { + content: "\e61f"; } -.icon-shangpinguanli:before { - content: "\e603"; +.icon-cangku:before { + content: "\e620"; } -.icon-dingdan:before { +.icon-guanlidingdan:before { + content: "\e621"; +} + +.icon-mima:before { + content: "\e622"; +} + +.icon-guanbi:before { + content: "\e623"; +} + +.icon-jianshao:before { + content: "\e624"; +} + +.icon-dingwei:before { + content: "\e625"; +} + +.icon-saomiao:before { + content: "\e626"; +} + +.icon-peihuo:before { + content: "\e627"; +} + +.icon-shaixuan:before { + content: "\e628"; +} + +.icon-paiming:before { + content: "\e629"; +} + +.icon-shanchusousuoxinxi:before { + content: "\e62a"; +} + +.icon-shijian:before { + content: "\e62b"; +} + +.icon-sousuo:before { + content: "\e62c"; +} + +.icon-shouhou:before { + content: "\e62d"; +} + +.icon-sousuofanhui:before { + content: "\e62e"; +} + +.icon-sousuoshanchu:before { + content: "\e62f"; +} + +.icon-tuikuan:before { + content: "\e630"; +} + +.icon-tishi:before { + content: "\e631"; +} + +.icon-xianxiahuizong:before { + content: "\e632"; +} + +.icon-xinzeng:before { + content: "\e633"; +} + +.icon-yonghuming:before { + content: "\e634"; +} + +.icon-yanjing:before { + content: "\e635"; +} + +.icon-yufukuan:before { + content: "\e636"; +} + +.icon-wodekefu:before { + content: "\e60c"; +} + +.icon-dizhi:before { + content: "\e60d"; +} + +.icon-shouhouzhongxin:before { + content: "\e60e"; +} + +.icon-wodeshoucang:before { + content: "\e60f"; +} + +.icon-shoukuanliebiao:before { + content: "\e610"; +} + +.icon-madanguanli:before { + content: "\e611"; +} + +.icon-qusechazhao:before { + content: "\e612"; +} + +.icon-pandiansaoma:before { + content: "\e613"; +} + +.icon-yaoqingma:before { + content: "\e614"; +} + +.icon-duizhang:before { + content: "\e615"; +} + +.icon-tihuoliebiao:before { + content: "\e616"; +} + +.icon-yangpinduibi:before { + content: "\e617"; +} + +.icon-yansequyang:before { + content: "\e618"; +} + +.icon-fahuoliebiao:before { + content: "\e619"; +} + +.icon-yuncangkucun:before { + content: "\e61a"; +} + +.icon-xiaoshou:before { + content: "\e61b"; +} + +.icon-qianzhicangkucun:before { + content: "\e61c"; +} + +.icon-lingquseka:before { + content: "\e61d"; +} + +.icon-gouwu1:before { + content: "\e608"; +} + +.icon-dingdan1:before { + content: "\e609"; +} + +.icon-gerenzhongxin1:before { + content: "\e60a"; +} + +.icon-shouye1:before { + content: "\e60b"; +} + +.icon-gerenzhongxin:before { content: "\e604"; } -.icon-fenlei:before { +.icon-dingdan:before { content: "\e605"; } -.icon-a-sousuo1:before { - content: "\e601"; -} \ No newline at end of file +.icon-shouye:before { + content: "\e606"; +} + +.icon-gouwu:before { + content: "\e607"; +} + diff --git a/src/styles/iconfont.ttf b/src/styles/iconfont.ttf index 598c57d7e819124db2e5c2a98160910d8449fb07..baa548bbf299b381a5628f7fd7315cccdd538a58 100644 GIT binary patch literal 12328 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 MU!O3`F(g+1FJ3xr%K!iX literal 17500 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 T=&_Me4FA}~^s(s)Se*YCcaB1$ diff --git a/src/styles/tabbar/list.png b/src/styles/tabbar/list.png deleted file mode 100644 index 4f29b956736c54394776c443d8176c0f40c490c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4132 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 Yg)1M}89f{Z?EXQfhL)Hr1LxR(0E6Var2qf` diff --git a/src/styles/tabbar/list_on.png b/src/styles/tabbar/list_on.png deleted file mode 100644 index 5d116c891fcc4fe6df2034011cb6b739c55eb36e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4089 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 diff --git a/src/styles/tabbar/my_on.png b/src/styles/tabbar/my_on.png deleted file mode 100644 index f987eb6b08bdec12dcf63269a43d0638566c07af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7374 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 Au>b%7 diff --git a/src/styles/tabbar/order.png b/src/styles/tabbar/order.png deleted file mode 100644 index 72ea1c9707fc9474832fcadf429e3fb5a5aa77ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4142 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 a$SE46iReqOb_D(da9AVlEo#iX2>%6`LY{;G diff --git a/src/styles/tabbar/order_on.png b/src/styles/tabbar/order_on.png deleted file mode 100644 index 9a32e1f08fabd15c6da6f879027c724bf760f7a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4010 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 Date: Fri, 2 Sep 2022 09:03:43 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=F0=9F=94=A7=20build(iconfont):=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9Etaro-iconfont-cli=20=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 5 - iconfont.json | 7 +- package.json | 2 +- src/app.config.ts | 3 +- .../{iconfont.wxss => alipay/alipay.acss} | 0 src/components/iconfont/alipay/alipay.axml | 77 ++++++++++++ src/components/iconfont/alipay/alipay.js | 77 ++++++++++++ src/components/iconfont/alipay/alipay.json | 3 + src/components/iconfont/h5/IconDingdan.js | 27 ++++ src/components/iconfont/h5/IconDingdan1.js | 27 ++++ src/components/iconfont/h5/IconDizhi.js | 32 +++++ src/components/iconfont/h5/IconDuizhang.js | 32 +++++ .../iconfont/h5/IconFahuoliebiao.js | 32 +++++ .../iconfont/h5/IconGerenzhongxin.js | 27 ++++ .../iconfont/h5/IconGerenzhongxin1.js | 27 ++++ src/components/iconfont/h5/IconGouwu.js | 27 ++++ src/components/iconfont/h5/IconGouwu1.js | 27 ++++ src/components/iconfont/h5/IconLingquseka.js | 37 ++++++ src/components/iconfont/h5/IconMadanguanli.js | 45 +++++++ .../iconfont/h5/IconPandiansaoma.js | 32 +++++ .../iconfont/h5/IconQianzhicangkucun.js | 32 +++++ src/components/iconfont/h5/IconQusechazhao.js | 32 +++++ .../iconfont/h5/IconShouhouzhongxin.js | 32 +++++ .../iconfont/h5/IconShoukuanliebiao.js | 32 +++++ src/components/iconfont/h5/IconShouye.js | 27 ++++ src/components/iconfont/h5/IconShouye1.js | 27 ++++ .../iconfont/h5/IconTihuoliebiao.js | 32 +++++ src/components/iconfont/h5/IconWodekefu.js | 32 +++++ .../iconfont/h5/IconWodeshoucang.js | 32 +++++ src/components/iconfont/h5/IconXiaoshou.js | 32 +++++ .../iconfont/h5/IconYangpinduibi.js | 32 +++++ src/components/iconfont/h5/IconYansequyang.js | 32 +++++ src/components/iconfont/h5/IconYaoqingma.js | 32 +++++ .../iconfont/h5/IconYuncangkucun.js | 32 +++++ src/components/iconfont/h5/helper.js | 17 +++ src/components/iconfont/h5/index.js | 117 +++++++++++++++++ src/components/iconfont/helper.d.ts | 2 + src/components/iconfont/helper.js | 9 ++ src/components/iconfont/index.alipay.js | 16 +++ src/components/iconfont/index.d.ts | 13 ++ src/components/iconfont/index.h5.js | 17 +++ src/components/iconfont/index.js | 7 ++ src/components/iconfont/index.qq.js | 16 +++ src/components/iconfont/index.rn.js | 17 +++ src/components/iconfont/index.swan.js | 16 +++ src/components/iconfont/index.tt.js | 16 +++ src/components/iconfont/index.weapp.js | 16 +++ src/components/iconfont/qq/qq.js | 31 +++++ .../iconfont/{iconfont.json => qq/qq.json} | 0 src/components/iconfont/qq/qq.qml | 77 ++++++++++++ src/components/iconfont/qq/qq.qss | 3 + src/components/iconfont/rn/IconDingdan.js | 24 ++++ src/components/iconfont/rn/IconDingdan1.js | 24 ++++ src/components/iconfont/rn/IconDizhi.js | 29 +++++ src/components/iconfont/rn/IconDuizhang.js | 29 +++++ .../iconfont/rn/IconFahuoliebiao.js | 29 +++++ .../iconfont/rn/IconGerenzhongxin.js | 24 ++++ .../iconfont/rn/IconGerenzhongxin1.js | 24 ++++ src/components/iconfont/rn/IconGouwu.js | 24 ++++ src/components/iconfont/rn/IconGouwu1.js | 24 ++++ src/components/iconfont/rn/IconLingquseka.js | 34 +++++ src/components/iconfont/rn/IconMadanguanli.js | 42 +++++++ .../iconfont/rn/IconPandiansaoma.js | 29 +++++ .../iconfont/rn/IconQianzhicangkucun.js | 29 +++++ src/components/iconfont/rn/IconQusechazhao.js | 29 +++++ .../iconfont/rn/IconShouhouzhongxin.js | 29 +++++ .../iconfont/rn/IconShoukuanliebiao.js | 29 +++++ src/components/iconfont/rn/IconShouye.js | 24 ++++ src/components/iconfont/rn/IconShouye1.js | 24 ++++ .../iconfont/rn/IconTihuoliebiao.js | 29 +++++ src/components/iconfont/rn/IconWodekefu.js | 29 +++++ .../iconfont/rn/IconWodeshoucang.js | 29 +++++ src/components/iconfont/rn/IconXiaoshou.js | 29 +++++ .../iconfont/rn/IconYangpinduibi.js | 29 +++++ src/components/iconfont/rn/IconYansequyang.js | 29 +++++ src/components/iconfont/rn/IconYaoqingma.js | 29 +++++ .../iconfont/rn/IconYuncangkucun.js | 29 +++++ src/components/iconfont/rn/helper.js | 17 +++ src/components/iconfont/rn/index.js | 119 ++++++++++++++++++ src/components/iconfont/swan/swan.css | 3 + src/components/iconfont/swan/swan.js | 64 ++++++++++ src/components/iconfont/swan/swan.json | 4 + src/components/iconfont/swan/swan.swan | 77 ++++++++++++ src/components/iconfont/tt/tt.js | 64 ++++++++++ src/components/iconfont/tt/tt.json | 3 + src/components/iconfont/tt/tt.ttml | 77 ++++++++++++ src/components/iconfont/tt/tt.ttss | 3 + .../iconfont/{iconfont.js => weapp/weapp.js} | 4 +- src/components/iconfont/weapp/weapp.json | 4 + .../{iconfont.wxml => weapp/weapp.wxml} | 0 src/components/iconfont/weapp/weapp.wxss | 3 + src/pages/user/index.tsx | 6 +- yarn.lock | 59 ++++++++- 93 files changed, 2596 insertions(+), 17 deletions(-) delete mode 100644 app.json rename src/components/iconfont/{iconfont.wxss => alipay/alipay.acss} (100%) create mode 100644 src/components/iconfont/alipay/alipay.axml create mode 100644 src/components/iconfont/alipay/alipay.js create mode 100644 src/components/iconfont/alipay/alipay.json create mode 100644 src/components/iconfont/h5/IconDingdan.js create mode 100644 src/components/iconfont/h5/IconDingdan1.js create mode 100644 src/components/iconfont/h5/IconDizhi.js create mode 100644 src/components/iconfont/h5/IconDuizhang.js create mode 100644 src/components/iconfont/h5/IconFahuoliebiao.js create mode 100644 src/components/iconfont/h5/IconGerenzhongxin.js create mode 100644 src/components/iconfont/h5/IconGerenzhongxin1.js create mode 100644 src/components/iconfont/h5/IconGouwu.js create mode 100644 src/components/iconfont/h5/IconGouwu1.js create mode 100644 src/components/iconfont/h5/IconLingquseka.js create mode 100644 src/components/iconfont/h5/IconMadanguanli.js create mode 100644 src/components/iconfont/h5/IconPandiansaoma.js create mode 100644 src/components/iconfont/h5/IconQianzhicangkucun.js create mode 100644 src/components/iconfont/h5/IconQusechazhao.js create mode 100644 src/components/iconfont/h5/IconShouhouzhongxin.js create mode 100644 src/components/iconfont/h5/IconShoukuanliebiao.js create mode 100644 src/components/iconfont/h5/IconShouye.js create mode 100644 src/components/iconfont/h5/IconShouye1.js create mode 100644 src/components/iconfont/h5/IconTihuoliebiao.js create mode 100644 src/components/iconfont/h5/IconWodekefu.js create mode 100644 src/components/iconfont/h5/IconWodeshoucang.js create mode 100644 src/components/iconfont/h5/IconXiaoshou.js create mode 100644 src/components/iconfont/h5/IconYangpinduibi.js create mode 100644 src/components/iconfont/h5/IconYansequyang.js create mode 100644 src/components/iconfont/h5/IconYaoqingma.js create mode 100644 src/components/iconfont/h5/IconYuncangkucun.js create mode 100644 src/components/iconfont/h5/helper.js create mode 100644 src/components/iconfont/h5/index.js create mode 100644 src/components/iconfont/helper.d.ts create mode 100644 src/components/iconfont/helper.js create mode 100644 src/components/iconfont/index.alipay.js create mode 100644 src/components/iconfont/index.d.ts create mode 100644 src/components/iconfont/index.h5.js create mode 100644 src/components/iconfont/index.js create mode 100644 src/components/iconfont/index.qq.js create mode 100644 src/components/iconfont/index.rn.js create mode 100644 src/components/iconfont/index.swan.js create mode 100644 src/components/iconfont/index.tt.js create mode 100644 src/components/iconfont/index.weapp.js create mode 100644 src/components/iconfont/qq/qq.js rename src/components/iconfont/{iconfont.json => qq/qq.json} (100%) create mode 100644 src/components/iconfont/qq/qq.qml create mode 100644 src/components/iconfont/qq/qq.qss create mode 100644 src/components/iconfont/rn/IconDingdan.js create mode 100644 src/components/iconfont/rn/IconDingdan1.js create mode 100644 src/components/iconfont/rn/IconDizhi.js create mode 100644 src/components/iconfont/rn/IconDuizhang.js create mode 100644 src/components/iconfont/rn/IconFahuoliebiao.js create mode 100644 src/components/iconfont/rn/IconGerenzhongxin.js create mode 100644 src/components/iconfont/rn/IconGerenzhongxin1.js create mode 100644 src/components/iconfont/rn/IconGouwu.js create mode 100644 src/components/iconfont/rn/IconGouwu1.js create mode 100644 src/components/iconfont/rn/IconLingquseka.js create mode 100644 src/components/iconfont/rn/IconMadanguanli.js create mode 100644 src/components/iconfont/rn/IconPandiansaoma.js create mode 100644 src/components/iconfont/rn/IconQianzhicangkucun.js create mode 100644 src/components/iconfont/rn/IconQusechazhao.js create mode 100644 src/components/iconfont/rn/IconShouhouzhongxin.js create mode 100644 src/components/iconfont/rn/IconShoukuanliebiao.js create mode 100644 src/components/iconfont/rn/IconShouye.js create mode 100644 src/components/iconfont/rn/IconShouye1.js create mode 100644 src/components/iconfont/rn/IconTihuoliebiao.js create mode 100644 src/components/iconfont/rn/IconWodekefu.js create mode 100644 src/components/iconfont/rn/IconWodeshoucang.js create mode 100644 src/components/iconfont/rn/IconXiaoshou.js create mode 100644 src/components/iconfont/rn/IconYangpinduibi.js create mode 100644 src/components/iconfont/rn/IconYansequyang.js create mode 100644 src/components/iconfont/rn/IconYaoqingma.js create mode 100644 src/components/iconfont/rn/IconYuncangkucun.js create mode 100644 src/components/iconfont/rn/helper.js create mode 100644 src/components/iconfont/rn/index.js create mode 100644 src/components/iconfont/swan/swan.css create mode 100644 src/components/iconfont/swan/swan.js create mode 100644 src/components/iconfont/swan/swan.json create mode 100644 src/components/iconfont/swan/swan.swan create mode 100644 src/components/iconfont/tt/tt.js create mode 100644 src/components/iconfont/tt/tt.json create mode 100644 src/components/iconfont/tt/tt.ttml create mode 100644 src/components/iconfont/tt/tt.ttss rename src/components/iconfont/{iconfont.js => weapp/weapp.js} (92%) create mode 100644 src/components/iconfont/weapp/weapp.json rename src/components/iconfont/{iconfont.wxml => weapp/weapp.wxml} (100%) create mode 100644 src/components/iconfont/weapp/weapp.wxss diff --git a/app.json b/app.json deleted file mode 100644 index 873c66f..0000000 --- a/app.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "usingComponents": { - "iconfont": "/src/components/iconfont/iconfont" - } -} diff --git a/iconfont.json b/iconfont.json index 489795a..fc9a1c0 100644 --- a/iconfont.json +++ b/iconfont.json @@ -1,7 +1,10 @@ { "symbol_url": "//at.alicdn.com/t/c/font_3619513_mrvpsyqxmzr.js", "save_dir": "./src/components/iconfont", - "use_rpx": false, + "use_typescript": false, + "platforms": "*", + "use_rpx": true, "trim_icon_prefix": "icon", - "default_icon_size": 18 + "default_icon_size": 18, + "design_width": 750 } diff --git a/package.json b/package.json index b9a9717..5464206 100644 --- a/package.json +++ b/package.json @@ -74,9 +74,9 @@ "eslint-plugin-import": "^2.12.0", "eslint-plugin-react": "^7.8.2", "eslint-plugin-react-hooks": "^4.2.0", - "mini-program-iconfont-cli": "^0.6.1", "react-refresh": "0.11.0", "stylelint": "9.3.0", + "taro-iconfont-cli": "^3.3.0", "typescript": "^4.1.0", "webpack": "^5.74.0" } diff --git a/src/app.config.ts b/src/app.config.ts index 32008ba..86146b4 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -1,3 +1,4 @@ +import { useGlobalIconFont } from './components/iconfont/helper' export default defineAppConfig({ pages: ['pages/user/index', 'pages/index/index', @@ -41,7 +42,7 @@ export default defineAppConfig({ }, usingComponents: { 'custom-wrapper': '/custom-wrapper', - + ...useGlobalIconFont(), }, subPackages: [], }) diff --git a/src/components/iconfont/iconfont.wxss b/src/components/iconfont/alipay/alipay.acss similarity index 100% rename from src/components/iconfont/iconfont.wxss rename to src/components/iconfont/alipay/alipay.acss diff --git a/src/components/iconfont/alipay/alipay.axml b/src/components/iconfont/alipay/alipay.axml new file mode 100644 index 0000000..1e3e325 --- /dev/null +++ b/src/components/iconfont/alipay/alipay.axml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/iconfont/alipay/alipay.js b/src/components/iconfont/alipay/alipay.js new file mode 100644 index 0000000..03d7167 --- /dev/null +++ b/src/components/iconfont/alipay/alipay.js @@ -0,0 +1,77 @@ +Component({ + props: { + // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + name: null, + // string | string[] + color: '', + size: 18, + }, + data: { + colors: '', + quot: '"', + svgSize: 18, + isStr: true, + }, + didMount() { + const size = this.props.size; + const color = this.props.color; + + this.setData({ + colors: this.fixColor(color), + isStr: typeof color === 'string', + }); + + if (size !== this.data.svgSize) { + this.setData({ + svgSize: size / 750 * my.getSystemInfoSync().windowWidth, + }); + } + }, + disUpdate(prevProps) { + const size = this.props.size; + const color = this.props.color; + + if (color !== prevProps.color) { + this.setData({ + colors: this.fixColor(color), + isStr: typeof color === 'string', + }); + } + + if (size !== prevProps.size) { + this.setData({ + svgSize: size / 750 * my.getSystemInfoSync().windowWidth, + }); + } + }, + methods: { + fixColor: function() { + var color = this.props.color; + var hex2rgb = this.hex2rgb; + + if (typeof color === 'string') { + return color.indexOf('#') === 0 ? hex2rgb(color) : color; + } + + return color.map(function (item) { + return item.indexOf('#') === 0 ? hex2rgb(item) : item; + }); + }, + hex2rgb: function(hex) { + var rgb = []; + + hex = hex.substr(1); + + if (hex.length === 3) { + hex = hex.replace(/(.)/g, '$1$1'); + } + + hex.replace(/../g, function(color) { + rgb.push(parseInt(color, 0x10)); + return color; + }); + + return 'rgb(' + rgb.join(',') + ')'; + } + } +}); diff --git a/src/components/iconfont/alipay/alipay.json b/src/components/iconfont/alipay/alipay.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/components/iconfont/alipay/alipay.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/components/iconfont/h5/IconDingdan.js b/src/components/iconfont/h5/IconDingdan.js new file mode 100644 index 0000000..ed26299 --- /dev/null +++ b/src/components/iconfont/h5/IconDingdan.js @@ -0,0 +1,27 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconDingdan = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + ); +}; + +IconDingdan.defaultProps = { + size: 18, +}; + +export default IconDingdan; diff --git a/src/components/iconfont/h5/IconDingdan1.js b/src/components/iconfont/h5/IconDingdan1.js new file mode 100644 index 0000000..6646be2 --- /dev/null +++ b/src/components/iconfont/h5/IconDingdan1.js @@ -0,0 +1,27 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconDingdan1 = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + ); +}; + +IconDingdan1.defaultProps = { + size: 18, +}; + +export default IconDingdan1; diff --git a/src/components/iconfont/h5/IconDizhi.js b/src/components/iconfont/h5/IconDizhi.js new file mode 100644 index 0000000..d13f9ac --- /dev/null +++ b/src/components/iconfont/h5/IconDizhi.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconDizhi = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconDizhi.defaultProps = { + size: 18, +}; + +export default IconDizhi; diff --git a/src/components/iconfont/h5/IconDuizhang.js b/src/components/iconfont/h5/IconDuizhang.js new file mode 100644 index 0000000..1c054ec --- /dev/null +++ b/src/components/iconfont/h5/IconDuizhang.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconDuizhang = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconDuizhang.defaultProps = { + size: 18, +}; + +export default IconDuizhang; diff --git a/src/components/iconfont/h5/IconFahuoliebiao.js b/src/components/iconfont/h5/IconFahuoliebiao.js new file mode 100644 index 0000000..6186db7 --- /dev/null +++ b/src/components/iconfont/h5/IconFahuoliebiao.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconFahuoliebiao = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconFahuoliebiao.defaultProps = { + size: 18, +}; + +export default IconFahuoliebiao; diff --git a/src/components/iconfont/h5/IconGerenzhongxin.js b/src/components/iconfont/h5/IconGerenzhongxin.js new file mode 100644 index 0000000..0e0396a --- /dev/null +++ b/src/components/iconfont/h5/IconGerenzhongxin.js @@ -0,0 +1,27 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconGerenzhongxin = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + ); +}; + +IconGerenzhongxin.defaultProps = { + size: 18, +}; + +export default IconGerenzhongxin; diff --git a/src/components/iconfont/h5/IconGerenzhongxin1.js b/src/components/iconfont/h5/IconGerenzhongxin1.js new file mode 100644 index 0000000..e2048e9 --- /dev/null +++ b/src/components/iconfont/h5/IconGerenzhongxin1.js @@ -0,0 +1,27 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconGerenzhongxin1 = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + ); +}; + +IconGerenzhongxin1.defaultProps = { + size: 18, +}; + +export default IconGerenzhongxin1; diff --git a/src/components/iconfont/h5/IconGouwu.js b/src/components/iconfont/h5/IconGouwu.js new file mode 100644 index 0000000..acd351f --- /dev/null +++ b/src/components/iconfont/h5/IconGouwu.js @@ -0,0 +1,27 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconGouwu = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + ); +}; + +IconGouwu.defaultProps = { + size: 18, +}; + +export default IconGouwu; diff --git a/src/components/iconfont/h5/IconGouwu1.js b/src/components/iconfont/h5/IconGouwu1.js new file mode 100644 index 0000000..710069f --- /dev/null +++ b/src/components/iconfont/h5/IconGouwu1.js @@ -0,0 +1,27 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconGouwu1 = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + ); +}; + +IconGouwu1.defaultProps = { + size: 18, +}; + +export default IconGouwu1; diff --git a/src/components/iconfont/h5/IconLingquseka.js b/src/components/iconfont/h5/IconLingquseka.js new file mode 100644 index 0000000..a910c42 --- /dev/null +++ b/src/components/iconfont/h5/IconLingquseka.js @@ -0,0 +1,37 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconLingquseka = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + + ); +}; + +IconLingquseka.defaultProps = { + size: 18, +}; + +export default IconLingquseka; diff --git a/src/components/iconfont/h5/IconMadanguanli.js b/src/components/iconfont/h5/IconMadanguanli.js new file mode 100644 index 0000000..03d55ed --- /dev/null +++ b/src/components/iconfont/h5/IconMadanguanli.js @@ -0,0 +1,45 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconMadanguanli = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + + + + ); +}; + +IconMadanguanli.defaultProps = { + size: 18, +}; + +export default IconMadanguanli; diff --git a/src/components/iconfont/h5/IconPandiansaoma.js b/src/components/iconfont/h5/IconPandiansaoma.js new file mode 100644 index 0000000..cedaa00 --- /dev/null +++ b/src/components/iconfont/h5/IconPandiansaoma.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconPandiansaoma = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconPandiansaoma.defaultProps = { + size: 18, +}; + +export default IconPandiansaoma; diff --git a/src/components/iconfont/h5/IconQianzhicangkucun.js b/src/components/iconfont/h5/IconQianzhicangkucun.js new file mode 100644 index 0000000..6f58e2d --- /dev/null +++ b/src/components/iconfont/h5/IconQianzhicangkucun.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconQianzhicangkucun = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconQianzhicangkucun.defaultProps = { + size: 18, +}; + +export default IconQianzhicangkucun; diff --git a/src/components/iconfont/h5/IconQusechazhao.js b/src/components/iconfont/h5/IconQusechazhao.js new file mode 100644 index 0000000..95db3db --- /dev/null +++ b/src/components/iconfont/h5/IconQusechazhao.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconQusechazhao = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconQusechazhao.defaultProps = { + size: 18, +}; + +export default IconQusechazhao; diff --git a/src/components/iconfont/h5/IconShouhouzhongxin.js b/src/components/iconfont/h5/IconShouhouzhongxin.js new file mode 100644 index 0000000..097a48a --- /dev/null +++ b/src/components/iconfont/h5/IconShouhouzhongxin.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconShouhouzhongxin = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconShouhouzhongxin.defaultProps = { + size: 18, +}; + +export default IconShouhouzhongxin; diff --git a/src/components/iconfont/h5/IconShoukuanliebiao.js b/src/components/iconfont/h5/IconShoukuanliebiao.js new file mode 100644 index 0000000..58aee55 --- /dev/null +++ b/src/components/iconfont/h5/IconShoukuanliebiao.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconShoukuanliebiao = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconShoukuanliebiao.defaultProps = { + size: 18, +}; + +export default IconShoukuanliebiao; diff --git a/src/components/iconfont/h5/IconShouye.js b/src/components/iconfont/h5/IconShouye.js new file mode 100644 index 0000000..eab00c2 --- /dev/null +++ b/src/components/iconfont/h5/IconShouye.js @@ -0,0 +1,27 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconShouye = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + ); +}; + +IconShouye.defaultProps = { + size: 18, +}; + +export default IconShouye; diff --git a/src/components/iconfont/h5/IconShouye1.js b/src/components/iconfont/h5/IconShouye1.js new file mode 100644 index 0000000..ccceea2 --- /dev/null +++ b/src/components/iconfont/h5/IconShouye1.js @@ -0,0 +1,27 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconShouye1 = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + ); +}; + +IconShouye1.defaultProps = { + size: 18, +}; + +export default IconShouye1; diff --git a/src/components/iconfont/h5/IconTihuoliebiao.js b/src/components/iconfont/h5/IconTihuoliebiao.js new file mode 100644 index 0000000..e406a31 --- /dev/null +++ b/src/components/iconfont/h5/IconTihuoliebiao.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconTihuoliebiao = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconTihuoliebiao.defaultProps = { + size: 18, +}; + +export default IconTihuoliebiao; diff --git a/src/components/iconfont/h5/IconWodekefu.js b/src/components/iconfont/h5/IconWodekefu.js new file mode 100644 index 0000000..2b23a1f --- /dev/null +++ b/src/components/iconfont/h5/IconWodekefu.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconWodekefu = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconWodekefu.defaultProps = { + size: 18, +}; + +export default IconWodekefu; diff --git a/src/components/iconfont/h5/IconWodeshoucang.js b/src/components/iconfont/h5/IconWodeshoucang.js new file mode 100644 index 0000000..4c13ed5 --- /dev/null +++ b/src/components/iconfont/h5/IconWodeshoucang.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconWodeshoucang = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconWodeshoucang.defaultProps = { + size: 18, +}; + +export default IconWodeshoucang; diff --git a/src/components/iconfont/h5/IconXiaoshou.js b/src/components/iconfont/h5/IconXiaoshou.js new file mode 100644 index 0000000..cdd6508 --- /dev/null +++ b/src/components/iconfont/h5/IconXiaoshou.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconXiaoshou = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconXiaoshou.defaultProps = { + size: 18, +}; + +export default IconXiaoshou; diff --git a/src/components/iconfont/h5/IconYangpinduibi.js b/src/components/iconfont/h5/IconYangpinduibi.js new file mode 100644 index 0000000..6844d9f --- /dev/null +++ b/src/components/iconfont/h5/IconYangpinduibi.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconYangpinduibi = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconYangpinduibi.defaultProps = { + size: 18, +}; + +export default IconYangpinduibi; diff --git a/src/components/iconfont/h5/IconYansequyang.js b/src/components/iconfont/h5/IconYansequyang.js new file mode 100644 index 0000000..4139fe7 --- /dev/null +++ b/src/components/iconfont/h5/IconYansequyang.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconYansequyang = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconYansequyang.defaultProps = { + size: 18, +}; + +export default IconYansequyang; diff --git a/src/components/iconfont/h5/IconYaoqingma.js b/src/components/iconfont/h5/IconYaoqingma.js new file mode 100644 index 0000000..aadc7cf --- /dev/null +++ b/src/components/iconfont/h5/IconYaoqingma.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconYaoqingma = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconYaoqingma.defaultProps = { + size: 18, +}; + +export default IconYaoqingma; diff --git a/src/components/iconfont/h5/IconYuncangkucun.js b/src/components/iconfont/h5/IconYuncangkucun.js new file mode 100644 index 0000000..25db8f7 --- /dev/null +++ b/src/components/iconfont/h5/IconYuncangkucun.js @@ -0,0 +1,32 @@ +/* eslint-disable */ + +import React from 'react'; +import { getIconColor } from './helper'; + +const DEFAULT_STYLE = { + display: 'block', +}; + +const IconYuncangkucun = ({ size, color, style: _style, ...rest }) => { + const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE; + + return ( + + + + + ); +}; + +IconYuncangkucun.defaultProps = { + size: 18, +}; + +export default IconYuncangkucun; diff --git a/src/components/iconfont/h5/helper.js b/src/components/iconfont/h5/helper.js new file mode 100644 index 0000000..b566c4c --- /dev/null +++ b/src/components/iconfont/h5/helper.js @@ -0,0 +1,17 @@ +/* eslint-disable */ + +/** + * @param {string | string[] | undefined} color + * @param {number} index + * @param {string} defaultColor + * @return {string} + */ +export const getIconColor = (color, index, defaultColor) => { + return color + ? ( + typeof color === 'string' + ? color + : color[index] || defaultColor + ) + : defaultColor; +}; diff --git a/src/components/iconfont/h5/index.js b/src/components/iconfont/h5/index.js new file mode 100644 index 0000000..e252820 --- /dev/null +++ b/src/components/iconfont/h5/index.js @@ -0,0 +1,117 @@ +/* eslint-disable */ + +import React from 'react'; +import IconWodekefu from './IconWodekefu'; +import IconDizhi from './IconDizhi'; +import IconShouhouzhongxin from './IconShouhouzhongxin'; +import IconWodeshoucang from './IconWodeshoucang'; +import IconShoukuanliebiao from './IconShoukuanliebiao'; +import IconMadanguanli from './IconMadanguanli'; +import IconQusechazhao from './IconQusechazhao'; +import IconPandiansaoma from './IconPandiansaoma'; +import IconYaoqingma from './IconYaoqingma'; +import IconDuizhang from './IconDuizhang'; +import IconTihuoliebiao from './IconTihuoliebiao'; +import IconYangpinduibi from './IconYangpinduibi'; +import IconYansequyang from './IconYansequyang'; +import IconFahuoliebiao from './IconFahuoliebiao'; +import IconYuncangkucun from './IconYuncangkucun'; +import IconXiaoshou from './IconXiaoshou'; +import IconQianzhicangkucun from './IconQianzhicangkucun'; +import IconLingquseka from './IconLingquseka'; +import IconGouwu1 from './IconGouwu1'; +import IconDingdan1 from './IconDingdan1'; +import IconGerenzhongxin1 from './IconGerenzhongxin1'; +import IconShouye1 from './IconShouye1'; +import IconGerenzhongxin from './IconGerenzhongxin'; +import IconDingdan from './IconDingdan'; +import IconShouye from './IconShouye'; +import IconGouwu from './IconGouwu'; +export { default as IconWodekefu } from './IconWodekefu'; +export { default as IconDizhi } from './IconDizhi'; +export { default as IconShouhouzhongxin } from './IconShouhouzhongxin'; +export { default as IconWodeshoucang } from './IconWodeshoucang'; +export { default as IconShoukuanliebiao } from './IconShoukuanliebiao'; +export { default as IconMadanguanli } from './IconMadanguanli'; +export { default as IconQusechazhao } from './IconQusechazhao'; +export { default as IconPandiansaoma } from './IconPandiansaoma'; +export { default as IconYaoqingma } from './IconYaoqingma'; +export { default as IconDuizhang } from './IconDuizhang'; +export { default as IconTihuoliebiao } from './IconTihuoliebiao'; +export { default as IconYangpinduibi } from './IconYangpinduibi'; +export { default as IconYansequyang } from './IconYansequyang'; +export { default as IconFahuoliebiao } from './IconFahuoliebiao'; +export { default as IconYuncangkucun } from './IconYuncangkucun'; +export { default as IconXiaoshou } from './IconXiaoshou'; +export { default as IconQianzhicangkucun } from './IconQianzhicangkucun'; +export { default as IconLingquseka } from './IconLingquseka'; +export { default as IconGouwu1 } from './IconGouwu1'; +export { default as IconDingdan1 } from './IconDingdan1'; +export { default as IconGerenzhongxin1 } from './IconGerenzhongxin1'; +export { default as IconShouye1 } from './IconShouye1'; +export { default as IconGerenzhongxin } from './IconGerenzhongxin'; +export { default as IconDingdan } from './IconDingdan'; +export { default as IconShouye } from './IconShouye'; +export { default as IconGouwu } from './IconGouwu'; + +const IconFont = ({ name, ...rest }) => { + switch (name) { + case 'wodekefu': + return ; + case 'dizhi': + return ; + case 'shouhouzhongxin': + return ; + case 'wodeshoucang': + return ; + case 'shoukuanliebiao': + return ; + case 'madanguanli': + return ; + case 'qusechazhao': + return ; + case 'pandiansaoma': + return ; + case 'yaoqingma': + return ; + case 'duizhang': + return ; + case 'tihuoliebiao': + return ; + case 'yangpinduibi': + return ; + case 'yansequyang': + return ; + case 'fahuoliebiao': + return ; + case 'yuncangkucun': + return ; + case 'xiaoshou': + return ; + case 'qianzhicangkucun': + return ; + case 'lingquseka': + return ; + case 'gouwu1': + return ; + case 'dingdan1': + return ; + case 'gerenzhongxin1': + return ; + case 'shouye1': + return ; + case 'gerenzhongxin': + return ; + case 'dingdan': + return ; + case 'shouye': + return ; + case 'gouwu': + return ; + + } + + return null; +}; + +export default IconFont; diff --git a/src/components/iconfont/helper.d.ts b/src/components/iconfont/helper.d.ts new file mode 100644 index 0000000..24a9a53 --- /dev/null +++ b/src/components/iconfont/helper.d.ts @@ -0,0 +1,2 @@ +/* eslint-disable */ +export declare var useGlobalIconFont: () => { iconfont: string }; diff --git a/src/components/iconfont/helper.js b/src/components/iconfont/helper.js new file mode 100644 index 0000000..2caa692 --- /dev/null +++ b/src/components/iconfont/helper.js @@ -0,0 +1,9 @@ +/* eslint-disable */ +const useGlobalIconFont = () => { + return { + iconfont: `components/iconfont/${process.env.TARO_ENV}/${process.env.TARO_ENV}`, + }; +}; + +// es modules is unavaiable. +module.exports.useGlobalIconFont = useGlobalIconFont; diff --git a/src/components/iconfont/index.alipay.js b/src/components/iconfont/index.alipay.js new file mode 100644 index 0000000..731305b --- /dev/null +++ b/src/components/iconfont/index.alipay.js @@ -0,0 +1,16 @@ +/* eslint-disable */ + +import React from 'react'; +import Taro from '@tarojs/taro'; + +const IconFont = (props) => { + const { name, size, color, style } = props; + + return ; +}; + +IconFont.defaultProps = { + size: 18, +}; + +export default IconFont; diff --git a/src/components/iconfont/index.d.ts b/src/components/iconfont/index.d.ts new file mode 100644 index 0000000..f128c62 --- /dev/null +++ b/src/components/iconfont/index.d.ts @@ -0,0 +1,13 @@ +/* eslint-disable */ +import React, { FunctionComponent } from 'react'; + +interface Props { + name: 'wodekefu' | 'dizhi' | 'shouhouzhongxin' | 'wodeshoucang' | 'shoukuanliebiao' | 'madanguanli' | 'qusechazhao' | 'pandiansaoma' | 'yaoqingma' | 'duizhang' | 'tihuoliebiao' | 'yangpinduibi' | 'yansequyang' | 'fahuoliebiao' | 'yuncangkucun' | 'xiaoshou' | 'qianzhicangkucun' | 'lingquseka' | 'gouwu1' | 'dingdan1' | 'gerenzhongxin1' | 'shouye1' | 'gerenzhongxin' | 'dingdan' | 'shouye' | 'gouwu'; + size?: number; + color?: string | string[]; + style?: React.CSSProperties; +} + +declare const IconFont: FunctionComponent; + +export default IconFont; diff --git a/src/components/iconfont/index.h5.js b/src/components/iconfont/index.h5.js new file mode 100644 index 0000000..80b208b --- /dev/null +++ b/src/components/iconfont/index.h5.js @@ -0,0 +1,17 @@ +/* eslint-disable */ + +import React from 'react'; +import Taro from '@tarojs/taro'; +import Icon from './h5'; + +const IconFont = (props) => { + const { name, size, color, style } = props; + + return ; +}; + +IconFont.defaultProps = { + size: 18, +}; + +export default IconFont; diff --git a/src/components/iconfont/index.js b/src/components/iconfont/index.js new file mode 100644 index 0000000..9236f4b --- /dev/null +++ b/src/components/iconfont/index.js @@ -0,0 +1,7 @@ +/* eslint-disable */ + +const IconFont = () => { + return null; +}; + +export default IconFont; diff --git a/src/components/iconfont/index.qq.js b/src/components/iconfont/index.qq.js new file mode 100644 index 0000000..731305b --- /dev/null +++ b/src/components/iconfont/index.qq.js @@ -0,0 +1,16 @@ +/* eslint-disable */ + +import React from 'react'; +import Taro from '@tarojs/taro'; + +const IconFont = (props) => { + const { name, size, color, style } = props; + + return ; +}; + +IconFont.defaultProps = { + size: 18, +}; + +export default IconFont; diff --git a/src/components/iconfont/index.rn.js b/src/components/iconfont/index.rn.js new file mode 100644 index 0000000..5375b4a --- /dev/null +++ b/src/components/iconfont/index.rn.js @@ -0,0 +1,17 @@ +/* eslint-disable */ + +import React from 'react'; +import Taro from '@tarojs/taro'; +import Icon from './rn'; + +const IconFont = (props) => { + const { name, size, color, style } = props; + + return ; +}; + +IconFont.defaultProps = { + size: 18, +}; + +export default IconFont; diff --git a/src/components/iconfont/index.swan.js b/src/components/iconfont/index.swan.js new file mode 100644 index 0000000..731305b --- /dev/null +++ b/src/components/iconfont/index.swan.js @@ -0,0 +1,16 @@ +/* eslint-disable */ + +import React from 'react'; +import Taro from '@tarojs/taro'; + +const IconFont = (props) => { + const { name, size, color, style } = props; + + return ; +}; + +IconFont.defaultProps = { + size: 18, +}; + +export default IconFont; diff --git a/src/components/iconfont/index.tt.js b/src/components/iconfont/index.tt.js new file mode 100644 index 0000000..731305b --- /dev/null +++ b/src/components/iconfont/index.tt.js @@ -0,0 +1,16 @@ +/* eslint-disable */ + +import React from 'react'; +import Taro from '@tarojs/taro'; + +const IconFont = (props) => { + const { name, size, color, style } = props; + + return ; +}; + +IconFont.defaultProps = { + size: 18, +}; + +export default IconFont; diff --git a/src/components/iconfont/index.weapp.js b/src/components/iconfont/index.weapp.js new file mode 100644 index 0000000..731305b --- /dev/null +++ b/src/components/iconfont/index.weapp.js @@ -0,0 +1,16 @@ +/* eslint-disable */ + +import React from 'react'; +import Taro from '@tarojs/taro'; + +const IconFont = (props) => { + const { name, size, color, style } = props; + + return ; +}; + +IconFont.defaultProps = { + size: 18, +}; + +export default IconFont; diff --git a/src/components/iconfont/qq/qq.js b/src/components/iconfont/qq/qq.js new file mode 100644 index 0000000..106e505 --- /dev/null +++ b/src/components/iconfont/qq/qq.js @@ -0,0 +1,31 @@ +Component({ + properties: { + // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + name: { + type: String, + }, + // string | string[] + color: { + type: null, + observer: function(color) { + this.setData({ + isStr: typeof color === 'string', + }); + } + }, + size: { + type: Number, + value: 18, + observer: function(size) { + this.setData({ + svgSize: size / 750 * qq.getSystemInfoSync().windowWidth, + }); + }, + }, + }, + data: { + svgSize: 18 / 750 * qq.getSystemInfoSync().windowWidth, + quot: '"', + isStr: true, + }, +}); diff --git a/src/components/iconfont/iconfont.json b/src/components/iconfont/qq/qq.json similarity index 100% rename from src/components/iconfont/iconfont.json rename to src/components/iconfont/qq/qq.json diff --git a/src/components/iconfont/qq/qq.qml b/src/components/iconfont/qq/qq.qml new file mode 100644 index 0000000..e5ce604 --- /dev/null +++ b/src/components/iconfont/qq/qq.qml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/iconfont/qq/qq.qss b/src/components/iconfont/qq/qq.qss new file mode 100644 index 0000000..9f68d1a --- /dev/null +++ b/src/components/iconfont/qq/qq.qss @@ -0,0 +1,3 @@ +.icon { + background-repeat: no-repeat; +} diff --git a/src/components/iconfont/rn/IconDingdan.js b/src/components/iconfont/rn/IconDingdan.js new file mode 100644 index 0000000..28998fd --- /dev/null +++ b/src/components/iconfont/rn/IconDingdan.js @@ -0,0 +1,24 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconDingdan = ({ size, color, ...rest }) => { + return ( + + + + ); +}; + +IconDingdan.defaultProps = { + size: 18, +}; + +IconDingdan = React.memo ? React.memo(IconDingdan) : IconDingdan; + +export default IconDingdan; diff --git a/src/components/iconfont/rn/IconDingdan1.js b/src/components/iconfont/rn/IconDingdan1.js new file mode 100644 index 0000000..98be064 --- /dev/null +++ b/src/components/iconfont/rn/IconDingdan1.js @@ -0,0 +1,24 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconDingdan1 = ({ size, color, ...rest }) => { + return ( + + + + ); +}; + +IconDingdan1.defaultProps = { + size: 18, +}; + +IconDingdan1 = React.memo ? React.memo(IconDingdan1) : IconDingdan1; + +export default IconDingdan1; diff --git a/src/components/iconfont/rn/IconDizhi.js b/src/components/iconfont/rn/IconDizhi.js new file mode 100644 index 0000000..5f8e1b2 --- /dev/null +++ b/src/components/iconfont/rn/IconDizhi.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconDizhi = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconDizhi.defaultProps = { + size: 18, +}; + +IconDizhi = React.memo ? React.memo(IconDizhi) : IconDizhi; + +export default IconDizhi; diff --git a/src/components/iconfont/rn/IconDuizhang.js b/src/components/iconfont/rn/IconDuizhang.js new file mode 100644 index 0000000..5691cb6 --- /dev/null +++ b/src/components/iconfont/rn/IconDuizhang.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconDuizhang = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconDuizhang.defaultProps = { + size: 18, +}; + +IconDuizhang = React.memo ? React.memo(IconDuizhang) : IconDuizhang; + +export default IconDuizhang; diff --git a/src/components/iconfont/rn/IconFahuoliebiao.js b/src/components/iconfont/rn/IconFahuoliebiao.js new file mode 100644 index 0000000..a72bce1 --- /dev/null +++ b/src/components/iconfont/rn/IconFahuoliebiao.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconFahuoliebiao = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconFahuoliebiao.defaultProps = { + size: 18, +}; + +IconFahuoliebiao = React.memo ? React.memo(IconFahuoliebiao) : IconFahuoliebiao; + +export default IconFahuoliebiao; diff --git a/src/components/iconfont/rn/IconGerenzhongxin.js b/src/components/iconfont/rn/IconGerenzhongxin.js new file mode 100644 index 0000000..f2e1b32 --- /dev/null +++ b/src/components/iconfont/rn/IconGerenzhongxin.js @@ -0,0 +1,24 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconGerenzhongxin = ({ size, color, ...rest }) => { + return ( + + + + ); +}; + +IconGerenzhongxin.defaultProps = { + size: 18, +}; + +IconGerenzhongxin = React.memo ? React.memo(IconGerenzhongxin) : IconGerenzhongxin; + +export default IconGerenzhongxin; diff --git a/src/components/iconfont/rn/IconGerenzhongxin1.js b/src/components/iconfont/rn/IconGerenzhongxin1.js new file mode 100644 index 0000000..8679204 --- /dev/null +++ b/src/components/iconfont/rn/IconGerenzhongxin1.js @@ -0,0 +1,24 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconGerenzhongxin1 = ({ size, color, ...rest }) => { + return ( + + + + ); +}; + +IconGerenzhongxin1.defaultProps = { + size: 18, +}; + +IconGerenzhongxin1 = React.memo ? React.memo(IconGerenzhongxin1) : IconGerenzhongxin1; + +export default IconGerenzhongxin1; diff --git a/src/components/iconfont/rn/IconGouwu.js b/src/components/iconfont/rn/IconGouwu.js new file mode 100644 index 0000000..2eb69f2 --- /dev/null +++ b/src/components/iconfont/rn/IconGouwu.js @@ -0,0 +1,24 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconGouwu = ({ size, color, ...rest }) => { + return ( + + + + ); +}; + +IconGouwu.defaultProps = { + size: 18, +}; + +IconGouwu = React.memo ? React.memo(IconGouwu) : IconGouwu; + +export default IconGouwu; diff --git a/src/components/iconfont/rn/IconGouwu1.js b/src/components/iconfont/rn/IconGouwu1.js new file mode 100644 index 0000000..db0f795 --- /dev/null +++ b/src/components/iconfont/rn/IconGouwu1.js @@ -0,0 +1,24 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconGouwu1 = ({ size, color, ...rest }) => { + return ( + + + + ); +}; + +IconGouwu1.defaultProps = { + size: 18, +}; + +IconGouwu1 = React.memo ? React.memo(IconGouwu1) : IconGouwu1; + +export default IconGouwu1; diff --git a/src/components/iconfont/rn/IconLingquseka.js b/src/components/iconfont/rn/IconLingquseka.js new file mode 100644 index 0000000..268b6eb --- /dev/null +++ b/src/components/iconfont/rn/IconLingquseka.js @@ -0,0 +1,34 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconLingquseka = ({ size, color, ...rest }) => { + return ( + + + + + + ); +}; + +IconLingquseka.defaultProps = { + size: 18, +}; + +IconLingquseka = React.memo ? React.memo(IconLingquseka) : IconLingquseka; + +export default IconLingquseka; diff --git a/src/components/iconfont/rn/IconMadanguanli.js b/src/components/iconfont/rn/IconMadanguanli.js new file mode 100644 index 0000000..c89af2d --- /dev/null +++ b/src/components/iconfont/rn/IconMadanguanli.js @@ -0,0 +1,42 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconMadanguanli = ({ size, color, ...rest }) => { + return ( + + + + + + + + ); +}; + +IconMadanguanli.defaultProps = { + size: 18, +}; + +IconMadanguanli = React.memo ? React.memo(IconMadanguanli) : IconMadanguanli; + +export default IconMadanguanli; diff --git a/src/components/iconfont/rn/IconPandiansaoma.js b/src/components/iconfont/rn/IconPandiansaoma.js new file mode 100644 index 0000000..307b85d --- /dev/null +++ b/src/components/iconfont/rn/IconPandiansaoma.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconPandiansaoma = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconPandiansaoma.defaultProps = { + size: 18, +}; + +IconPandiansaoma = React.memo ? React.memo(IconPandiansaoma) : IconPandiansaoma; + +export default IconPandiansaoma; diff --git a/src/components/iconfont/rn/IconQianzhicangkucun.js b/src/components/iconfont/rn/IconQianzhicangkucun.js new file mode 100644 index 0000000..658ea97 --- /dev/null +++ b/src/components/iconfont/rn/IconQianzhicangkucun.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconQianzhicangkucun = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconQianzhicangkucun.defaultProps = { + size: 18, +}; + +IconQianzhicangkucun = React.memo ? React.memo(IconQianzhicangkucun) : IconQianzhicangkucun; + +export default IconQianzhicangkucun; diff --git a/src/components/iconfont/rn/IconQusechazhao.js b/src/components/iconfont/rn/IconQusechazhao.js new file mode 100644 index 0000000..0d0bd23 --- /dev/null +++ b/src/components/iconfont/rn/IconQusechazhao.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconQusechazhao = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconQusechazhao.defaultProps = { + size: 18, +}; + +IconQusechazhao = React.memo ? React.memo(IconQusechazhao) : IconQusechazhao; + +export default IconQusechazhao; diff --git a/src/components/iconfont/rn/IconShouhouzhongxin.js b/src/components/iconfont/rn/IconShouhouzhongxin.js new file mode 100644 index 0000000..49e8f23 --- /dev/null +++ b/src/components/iconfont/rn/IconShouhouzhongxin.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconShouhouzhongxin = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconShouhouzhongxin.defaultProps = { + size: 18, +}; + +IconShouhouzhongxin = React.memo ? React.memo(IconShouhouzhongxin) : IconShouhouzhongxin; + +export default IconShouhouzhongxin; diff --git a/src/components/iconfont/rn/IconShoukuanliebiao.js b/src/components/iconfont/rn/IconShoukuanliebiao.js new file mode 100644 index 0000000..52dbda4 --- /dev/null +++ b/src/components/iconfont/rn/IconShoukuanliebiao.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconShoukuanliebiao = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconShoukuanliebiao.defaultProps = { + size: 18, +}; + +IconShoukuanliebiao = React.memo ? React.memo(IconShoukuanliebiao) : IconShoukuanliebiao; + +export default IconShoukuanliebiao; diff --git a/src/components/iconfont/rn/IconShouye.js b/src/components/iconfont/rn/IconShouye.js new file mode 100644 index 0000000..18c0ee1 --- /dev/null +++ b/src/components/iconfont/rn/IconShouye.js @@ -0,0 +1,24 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconShouye = ({ size, color, ...rest }) => { + return ( + + + + ); +}; + +IconShouye.defaultProps = { + size: 18, +}; + +IconShouye = React.memo ? React.memo(IconShouye) : IconShouye; + +export default IconShouye; diff --git a/src/components/iconfont/rn/IconShouye1.js b/src/components/iconfont/rn/IconShouye1.js new file mode 100644 index 0000000..019fe55 --- /dev/null +++ b/src/components/iconfont/rn/IconShouye1.js @@ -0,0 +1,24 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconShouye1 = ({ size, color, ...rest }) => { + return ( + + + + ); +}; + +IconShouye1.defaultProps = { + size: 18, +}; + +IconShouye1 = React.memo ? React.memo(IconShouye1) : IconShouye1; + +export default IconShouye1; diff --git a/src/components/iconfont/rn/IconTihuoliebiao.js b/src/components/iconfont/rn/IconTihuoliebiao.js new file mode 100644 index 0000000..9dda212 --- /dev/null +++ b/src/components/iconfont/rn/IconTihuoliebiao.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconTihuoliebiao = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconTihuoliebiao.defaultProps = { + size: 18, +}; + +IconTihuoliebiao = React.memo ? React.memo(IconTihuoliebiao) : IconTihuoliebiao; + +export default IconTihuoliebiao; diff --git a/src/components/iconfont/rn/IconWodekefu.js b/src/components/iconfont/rn/IconWodekefu.js new file mode 100644 index 0000000..af01d12 --- /dev/null +++ b/src/components/iconfont/rn/IconWodekefu.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconWodekefu = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconWodekefu.defaultProps = { + size: 18, +}; + +IconWodekefu = React.memo ? React.memo(IconWodekefu) : IconWodekefu; + +export default IconWodekefu; diff --git a/src/components/iconfont/rn/IconWodeshoucang.js b/src/components/iconfont/rn/IconWodeshoucang.js new file mode 100644 index 0000000..71492c6 --- /dev/null +++ b/src/components/iconfont/rn/IconWodeshoucang.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconWodeshoucang = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconWodeshoucang.defaultProps = { + size: 18, +}; + +IconWodeshoucang = React.memo ? React.memo(IconWodeshoucang) : IconWodeshoucang; + +export default IconWodeshoucang; diff --git a/src/components/iconfont/rn/IconXiaoshou.js b/src/components/iconfont/rn/IconXiaoshou.js new file mode 100644 index 0000000..677d6ec --- /dev/null +++ b/src/components/iconfont/rn/IconXiaoshou.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconXiaoshou = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconXiaoshou.defaultProps = { + size: 18, +}; + +IconXiaoshou = React.memo ? React.memo(IconXiaoshou) : IconXiaoshou; + +export default IconXiaoshou; diff --git a/src/components/iconfont/rn/IconYangpinduibi.js b/src/components/iconfont/rn/IconYangpinduibi.js new file mode 100644 index 0000000..24019a2 --- /dev/null +++ b/src/components/iconfont/rn/IconYangpinduibi.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconYangpinduibi = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconYangpinduibi.defaultProps = { + size: 18, +}; + +IconYangpinduibi = React.memo ? React.memo(IconYangpinduibi) : IconYangpinduibi; + +export default IconYangpinduibi; diff --git a/src/components/iconfont/rn/IconYansequyang.js b/src/components/iconfont/rn/IconYansequyang.js new file mode 100644 index 0000000..f18a5f3 --- /dev/null +++ b/src/components/iconfont/rn/IconYansequyang.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconYansequyang = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconYansequyang.defaultProps = { + size: 18, +}; + +IconYansequyang = React.memo ? React.memo(IconYansequyang) : IconYansequyang; + +export default IconYansequyang; diff --git a/src/components/iconfont/rn/IconYaoqingma.js b/src/components/iconfont/rn/IconYaoqingma.js new file mode 100644 index 0000000..afcc8c9 --- /dev/null +++ b/src/components/iconfont/rn/IconYaoqingma.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconYaoqingma = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconYaoqingma.defaultProps = { + size: 18, +}; + +IconYaoqingma = React.memo ? React.memo(IconYaoqingma) : IconYaoqingma; + +export default IconYaoqingma; diff --git a/src/components/iconfont/rn/IconYuncangkucun.js b/src/components/iconfont/rn/IconYuncangkucun.js new file mode 100644 index 0000000..429f875 --- /dev/null +++ b/src/components/iconfont/rn/IconYuncangkucun.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { getIconColor } from './helper'; + +let IconYuncangkucun = ({ size, color, ...rest }) => { + return ( + + + + + ); +}; + +IconYuncangkucun.defaultProps = { + size: 18, +}; + +IconYuncangkucun = React.memo ? React.memo(IconYuncangkucun) : IconYuncangkucun; + +export default IconYuncangkucun; diff --git a/src/components/iconfont/rn/helper.js b/src/components/iconfont/rn/helper.js new file mode 100644 index 0000000..b566c4c --- /dev/null +++ b/src/components/iconfont/rn/helper.js @@ -0,0 +1,17 @@ +/* eslint-disable */ + +/** + * @param {string | string[] | undefined} color + * @param {number} index + * @param {string} defaultColor + * @return {string} + */ +export const getIconColor = (color, index, defaultColor) => { + return color + ? ( + typeof color === 'string' + ? color + : color[index] || defaultColor + ) + : defaultColor; +}; diff --git a/src/components/iconfont/rn/index.js b/src/components/iconfont/rn/index.js new file mode 100644 index 0000000..cde4094 --- /dev/null +++ b/src/components/iconfont/rn/index.js @@ -0,0 +1,119 @@ +/* eslint-disable */ + +import React from 'react'; + +import IconWodekefu from './IconWodekefu'; +import IconDizhi from './IconDizhi'; +import IconShouhouzhongxin from './IconShouhouzhongxin'; +import IconWodeshoucang from './IconWodeshoucang'; +import IconShoukuanliebiao from './IconShoukuanliebiao'; +import IconMadanguanli from './IconMadanguanli'; +import IconQusechazhao from './IconQusechazhao'; +import IconPandiansaoma from './IconPandiansaoma'; +import IconYaoqingma from './IconYaoqingma'; +import IconDuizhang from './IconDuizhang'; +import IconTihuoliebiao from './IconTihuoliebiao'; +import IconYangpinduibi from './IconYangpinduibi'; +import IconYansequyang from './IconYansequyang'; +import IconFahuoliebiao from './IconFahuoliebiao'; +import IconYuncangkucun from './IconYuncangkucun'; +import IconXiaoshou from './IconXiaoshou'; +import IconQianzhicangkucun from './IconQianzhicangkucun'; +import IconLingquseka from './IconLingquseka'; +import IconGouwu1 from './IconGouwu1'; +import IconDingdan1 from './IconDingdan1'; +import IconGerenzhongxin1 from './IconGerenzhongxin1'; +import IconShouye1 from './IconShouye1'; +import IconGerenzhongxin from './IconGerenzhongxin'; +import IconDingdan from './IconDingdan'; +import IconShouye from './IconShouye'; +import IconGouwu from './IconGouwu'; +export { default as IconWodekefu } from './IconWodekefu'; +export { default as IconDizhi } from './IconDizhi'; +export { default as IconShouhouzhongxin } from './IconShouhouzhongxin'; +export { default as IconWodeshoucang } from './IconWodeshoucang'; +export { default as IconShoukuanliebiao } from './IconShoukuanliebiao'; +export { default as IconMadanguanli } from './IconMadanguanli'; +export { default as IconQusechazhao } from './IconQusechazhao'; +export { default as IconPandiansaoma } from './IconPandiansaoma'; +export { default as IconYaoqingma } from './IconYaoqingma'; +export { default as IconDuizhang } from './IconDuizhang'; +export { default as IconTihuoliebiao } from './IconTihuoliebiao'; +export { default as IconYangpinduibi } from './IconYangpinduibi'; +export { default as IconYansequyang } from './IconYansequyang'; +export { default as IconFahuoliebiao } from './IconFahuoliebiao'; +export { default as IconYuncangkucun } from './IconYuncangkucun'; +export { default as IconXiaoshou } from './IconXiaoshou'; +export { default as IconQianzhicangkucun } from './IconQianzhicangkucun'; +export { default as IconLingquseka } from './IconLingquseka'; +export { default as IconGouwu1 } from './IconGouwu1'; +export { default as IconDingdan1 } from './IconDingdan1'; +export { default as IconGerenzhongxin1 } from './IconGerenzhongxin1'; +export { default as IconShouye1 } from './IconShouye1'; +export { default as IconGerenzhongxin } from './IconGerenzhongxin'; +export { default as IconDingdan } from './IconDingdan'; +export { default as IconShouye } from './IconShouye'; +export { default as IconGouwu } from './IconGouwu'; + +let IconFont = ({ name, ...rest }) => { + switch (name) { + case 'wodekefu': + return ; + case 'dizhi': + return ; + case 'shouhouzhongxin': + return ; + case 'wodeshoucang': + return ; + case 'shoukuanliebiao': + return ; + case 'madanguanli': + return ; + case 'qusechazhao': + return ; + case 'pandiansaoma': + return ; + case 'yaoqingma': + return ; + case 'duizhang': + return ; + case 'tihuoliebiao': + return ; + case 'yangpinduibi': + return ; + case 'yansequyang': + return ; + case 'fahuoliebiao': + return ; + case 'yuncangkucun': + return ; + case 'xiaoshou': + return ; + case 'qianzhicangkucun': + return ; + case 'lingquseka': + return ; + case 'gouwu1': + return ; + case 'dingdan1': + return ; + case 'gerenzhongxin1': + return ; + case 'shouye1': + return ; + case 'gerenzhongxin': + return ; + case 'dingdan': + return ; + case 'shouye': + return ; + case 'gouwu': + return ; + } + + return null; +}; + +IconFont = React.memo ? React.memo(IconFont) : IconFont; + +export default IconFont; diff --git a/src/components/iconfont/swan/swan.css b/src/components/iconfont/swan/swan.css new file mode 100644 index 0000000..9f68d1a --- /dev/null +++ b/src/components/iconfont/swan/swan.css @@ -0,0 +1,3 @@ +.icon { + background-repeat: no-repeat; +} diff --git a/src/components/iconfont/swan/swan.js b/src/components/iconfont/swan/swan.js new file mode 100644 index 0000000..a4ef6af --- /dev/null +++ b/src/components/iconfont/swan/swan.js @@ -0,0 +1,64 @@ +Component({ + properties: { + // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + name: { + type: String, + }, + // string | string[] + color: { + type: null, + value: '', + observer: function(color) { + this.setData({ + colors: this.fixColor(color), + isStr: typeof color === 'string', + }); + } + }, + size: { + type: Number, + value: 18, + observer: function(size) { + this.setData({ + svgSize: size / 750 * swan.getSystemInfoSync().windowWidth, + }); + }, + }, + }, + data: { + colors: '', + svgSize: 18 / 750 * swan.getSystemInfoSync().windowWidth, + quot: '"', + isStr: true, + }, + methods: { + fixColor: function() { + var color = this.data.color; + var hex2rgb = this.hex2rgb; + + if (typeof color === 'string') { + return color.indexOf('#') === 0 ? hex2rgb(color) : color; + } + + return color.map(function (item) { + return item.indexOf('#') === 0 ? hex2rgb(item) : item; + }); + }, + hex2rgb: function(hex) { + var rgb = []; + + hex = hex.substr(1); + + if (hex.length === 3) { + hex = hex.replace(/(.)/g, '$1$1'); + } + + hex.replace(/../g, function(color) { + rgb.push(parseInt(color, 0x10)); + return color; + }); + + return 'rgb(' + rgb.join(',') + ')'; + } + } +}); diff --git a/src/components/iconfont/swan/swan.json b/src/components/iconfont/swan/swan.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/components/iconfont/swan/swan.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/components/iconfont/swan/swan.swan b/src/components/iconfont/swan/swan.swan new file mode 100644 index 0000000..03cd6df --- /dev/null +++ b/src/components/iconfont/swan/swan.swan @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/iconfont/tt/tt.js b/src/components/iconfont/tt/tt.js new file mode 100644 index 0000000..0c7dfb1 --- /dev/null +++ b/src/components/iconfont/tt/tt.js @@ -0,0 +1,64 @@ +Component({ + properties: { + // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + name: { + type: String, + }, + // string | string[] + color: { + type: null, + value: '', + observer: function(color) { + this.setData({ + colors: this.fixColor(), + isStr: typeof color === 'string', + }); + } + }, + size: { + type: Number, + value: 18, + observer: function(size) { + this.setData({ + svgSize: size / 750 * tt.getSystemInfoSync().windowWidth, + }); + }, + }, + }, + data: { + colors: '', + svgSize: 18 / 750 * tt.getSystemInfoSync().windowWidth, + quot: '"', + isStr: true, + }, + methods: { + fixColor: function() { + var color = this.data.color; + var hex2rgb = this.hex2rgb; + + if (typeof color === 'string') { + return color.indexOf('#') === 0 ? hex2rgb(color) : color; + } + + return color.map(function (item) { + return item.indexOf('#') === 0 ? hex2rgb(item) : item; + }); + }, + hex2rgb: function(hex) { + var rgb = []; + + hex = hex.substr(1); + + if (hex.length === 3) { + hex = hex.replace(/(.)/g, '$1$1'); + } + + hex.replace(/../g, function(color) { + rgb.push(parseInt(color, 0x10)); + return color; + }); + + return 'rgb(' + rgb.join(',') + ')'; + } + } +}); diff --git a/src/components/iconfont/tt/tt.json b/src/components/iconfont/tt/tt.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/src/components/iconfont/tt/tt.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/src/components/iconfont/tt/tt.ttml b/src/components/iconfont/tt/tt.ttml new file mode 100644 index 0000000..03e4c24 --- /dev/null +++ b/src/components/iconfont/tt/tt.ttml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/iconfont/tt/tt.ttss b/src/components/iconfont/tt/tt.ttss new file mode 100644 index 0000000..9f68d1a --- /dev/null +++ b/src/components/iconfont/tt/tt.ttss @@ -0,0 +1,3 @@ +.icon { + background-repeat: no-repeat; +} diff --git a/src/components/iconfont/iconfont.js b/src/components/iconfont/weapp/weapp.js similarity index 92% rename from src/components/iconfont/iconfont.js rename to src/components/iconfont/weapp/weapp.js index 1b0dc5a..89c17f5 100644 --- a/src/components/iconfont/iconfont.js +++ b/src/components/iconfont/weapp/weapp.js @@ -19,14 +19,14 @@ Component({ value: 18, observer: function(size) { this.setData({ - svgSize: size, + svgSize: size / 750 * wx.getSystemInfoSync().windowWidth, }); }, }, }, data: { colors: '', - svgSize: 18, + svgSize: 18 / 750 * wx.getSystemInfoSync().windowWidth, quot: '"', isStr: true, }, diff --git a/src/components/iconfont/weapp/weapp.json b/src/components/iconfont/weapp/weapp.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/components/iconfont/weapp/weapp.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/components/iconfont/iconfont.wxml b/src/components/iconfont/weapp/weapp.wxml similarity index 100% rename from src/components/iconfont/iconfont.wxml rename to src/components/iconfont/weapp/weapp.wxml diff --git a/src/components/iconfont/weapp/weapp.wxss b/src/components/iconfont/weapp/weapp.wxss new file mode 100644 index 0000000..9f68d1a --- /dev/null +++ b/src/components/iconfont/weapp/weapp.wxss @@ -0,0 +1,3 @@ +.icon { + background-repeat: no-repeat; +} diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index e24a9aa..6c8c64a 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -1,6 +1,7 @@ import { isEmptyObject } from '@/common/common' import { Button, View } from '@tarojs/components' import { FC, memo, useState } from 'react' +import IconFont from '../components/iconfont' import styles from './index.module.scss' const SonComp: FC = memo(() => { return 我改变了吗{new Date().getTime()} @@ -25,10 +26,11 @@ const User = () => { return ( <> - - sdfasdfasdf {count} + + sdfasdfasdf {count} + ) diff --git a/yarn.lock b/yarn.lock index 7ef2562..174e4d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4948,7 +4948,7 @@ colorette@^2.0.10: resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== -colors@^1.3.3: +colors@^1.3.3, colors@^1.4.0: version "1.4.0" resolved "https://registry.npmmirror.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -7525,6 +7525,16 @@ human-signals@^2.1.0: resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +iconfont-parser@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/iconfont-parser/-/iconfont-parser-1.0.0.tgz#1fa61be02677005a9a014653ef2eeb7503c3538a" + integrity sha512-3RJceYHEjaqYyeDdfSAb1vP1x1Eb7ZtC9Xwetj+axm85sBlJU7HMvdNLVpwm/3g5eghYOdkQK+epUITZGAIqKQ== + dependencies: + axios "^0.19.0" + colors "^1.4.0" + tslib "^1.10.0" + xml2js "^0.4.22" + iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -9047,7 +9057,7 @@ mini-css-extract-plugin@2.4.6: dependencies: schema-utils "^4.0.0" -mini-program-iconfont-cli@^0.6.1: +mini-program-iconfont-cli@0.6.1: version "0.6.1" resolved "https://registry.npmmirror.com/mini-program-iconfont-cli/-/mini-program-iconfont-cli-0.6.1.tgz#61d08cf05bf5a51c82a75c4afcf77224e20ed06c" integrity sha512-69FsU+tSevwmHBiL55535Hfh1q0ciRpNyYtiTBZw2bvw9lvW3N/SCTg395P0rkisWMqf1Ki9VYIWeaONvNWy2Q== @@ -10648,6 +10658,19 @@ react-dom@^18.2.0: loose-envify "^1.1.0" scheduler "^0.23.0" +react-iconfont-cli@2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/react-iconfont-cli/-/react-iconfont-cli-2.0.2.tgz#547d872e5d76796230877176e397bc6ed3337467" + integrity sha512-43NP+dsk08XwJf8oXfrDwHk1WeE76vy1Xzbd2zz7WjjxsdblF9h/oalFMPclZSibIirwsckz3L0IV+42Yu//iQ== + dependencies: + colors "^1.3.3" + glob "^7.1.4" + iconfont-parser "^1.0.0" + lodash "^4.17.15" + minimist "^1.2.5" + mkdirp "^0.5.1" + tslib "^1.10.0" + react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -10658,6 +10681,19 @@ react-is@^18.0.0: resolved "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react-native-iconfont-cli@2.2.4: + version "2.2.4" + resolved "https://registry.npmmirror.com/react-native-iconfont-cli/-/react-native-iconfont-cli-2.2.4.tgz#9bc3b18653105950646f8e5f5fcde9f8835d76f3" + integrity sha512-qTjfHG2f/sc3/YKWZJvIJk/SwiTu8C9/SvtoLxRX+GM/6pvOJq0ge6rcV3vTh4s3QJDuNDOD6+a4hGD6vv2vSg== + dependencies: + colors "^1.3.3" + glob "^7.1.4" + iconfont-parser "^1.0.0" + lodash "^4.17.15" + minimist "^1.2.5" + mkdirp "^0.5.1" + tslib "^1.10.0" + react-reconciler@0.27.0: version "0.27.0" resolved "https://registry.npmmirror.com/react-reconciler/-/react-reconciler-0.27.0.tgz#360124fdf2d76447c7491ee5f0e04503ed9acf5b" @@ -12242,6 +12278,21 @@ taro-css-to-react-native@3.3.10: css-mediaquery "^0.1.2" postcss-value-parser "^3.3.0" +taro-iconfont-cli@^3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/taro-iconfont-cli/-/taro-iconfont-cli-3.3.0.tgz#b4d3f83598099d84bdc61435cadf4a8a584a29d7" + integrity sha512-lkZE/zaL0J3a6ymlUp1sMBiM8krJkDh0ZsrzB5FM2IGdgQO1/4Vs7N2hzTEVZ7EZoV/6hBqL0YwzTXg4MpuJMg== + dependencies: + colors "^1.4.0" + fs-extra "^8.1.0" + iconfont-parser "^1.0.0" + mini-program-iconfont-cli "0.6.1" + minimist "^1.2.5" + mkdirp "^0.5.1" + react-iconfont-cli "2.0.2" + react-native-iconfont-cli "2.2.4" + tslib "^2.3.1" + tarojs@^2.1.1: version "2.1.1" resolved "https://registry.npmmirror.com/tarojs/-/tarojs-2.1.1.tgz#d56b50608b01de4efd6f245ecbf8cc3cd632173f" @@ -12442,7 +12493,7 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.3.0: +tslib@^2.0.3, tslib@^2.3.0, tslib@^2.3.1: version "2.4.0" resolved "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -13186,7 +13237,7 @@ xml-parse-from-string@^1.0.0: resolved "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" integrity sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g== -xml2js@^0.4.19, xml2js@^0.4.5: +xml2js@^0.4.19, xml2js@^0.4.22, xml2js@^0.4.5: version "0.4.23" resolved "https://registry.npmmirror.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== From fb2a20728642216728a7ffbca1d7080441401d8d Mon Sep 17 00:00:00 2001 From: xuan Date: Fri, 2 Sep 2022 19:22:50 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=F0=9F=8E=88=20perf(=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89tabbar):=20=E4=BC=98=E5=8C=96=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89tabbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 188 +++++++++++---------- iconfont.json | 2 +- src/app.scss | 1 + src/components/iconfont/alipay/alipay.axml | 104 ++++++------ src/components/iconfont/alipay/alipay.js | 2 +- src/components/iconfont/h5/index.js | 52 +++--- src/components/iconfont/index.d.ts | 2 +- src/components/iconfont/qq/qq.js | 2 +- src/components/iconfont/qq/qq.qml | 104 ++++++------ src/components/iconfont/rn/index.js | 52 +++--- src/components/iconfont/swan/swan.js | 2 +- src/components/iconfont/swan/swan.swan | 104 ++++++------ src/components/iconfont/tt/tt.js | 2 +- src/components/iconfont/tt/tt.ttml | 104 ++++++------ src/components/iconfont/weapp/weapp.js | 2 +- src/components/iconfont/weapp/weapp.wxml | 104 ++++++------ src/constants/common.ts | 2 +- src/constants/tabbar.ts | 3 + src/custom-tab-bar/index.config.ts | 3 + src/custom-tab-bar/index.module.scss | 2 + src/custom-tab-bar/index.tsx | 88 +++++----- src/pages/index/index.tsx | 4 +- src/pages/order/index.tsx | 12 ++ src/pages/shopping/index.tsx | 4 + src/pages/user/index.tsx | 19 ++- src/reducers/hooks.ts | 10 +- src/reducers/index.ts | 18 +- src/reducers/tabBar.ts | 72 ++++++++ 28 files changed, 597 insertions(+), 467 deletions(-) create mode 100644 src/constants/tabbar.ts create mode 100644 src/custom-tab-bar/index.config.ts create mode 100644 src/reducers/tabBar.ts diff --git a/README.md b/README.md index f3bdece..7f863a5 100644 --- a/README.md +++ b/README.md @@ -1,154 +1,168 @@ -# 阿里图标库 iconfont 使用 Symbol 我们使用了 mini-program-iconfont-cli 这个库 +# 阿里图标库 iconfont 使用 Symbol 我们使用了 taro-iconfont-cli 这个库 用法如下: +# 支持平台 + +* 微信小程序 +* 支付宝小程序 +* 百度小程序 +* 头条小程序 +* QQ小程序 +* H5 + +# 特性 +1、一键生成标准组件,多端支持 +
+2、使用方便,import即可 +
+3、支持多色彩 +
+4、支持自定义颜色 +
+5、支持es6和typescript两种模式 + # Step 1 安装插件 + +**如果您使用Taro2.x,请安装 `taro-iconfont-cli@2.1.0`,并阅读旧版的[README.md](https://github.com/iconfont-cli/taro-iconfont-cli/blob/v2.1.0/README.md)** + ```bash # Yarn -yarn add mini-program-iconfont-cli --dev +yarn add taro-iconfont-cli --dev # Npm -npm install mini-program-iconfont-cli --save-dev +npm install taro-iconfont-cli --save-dev ``` + # Step 2 生成配置文件 ```bash npx iconfont-init -# 可传入配置文件输出路径 +# 可传入配置输出路径 # npx iconfont-init --output iconfont.json ``` - 此时项目根目录会生成一个`iconfont.json`的文件,内容如下: ```json { "symbol_url": "请参考README.md,复制 http://iconfont.cn 官网提供的JS链接", - "save_dir": "./iconfont", - "use_rpx": false, + "save_dir": "./src/components/iconfont", + "use_typescript": false, + "platforms": "*", + "use_rpx": true, "trim_icon_prefix": "icon", - "default_icon_size": 18 + "default_icon_size": 18, + "design_width": 750 } ``` - ### 配置参数说明: -#### symbol_url -请直接复制[iconfont](http://iconfont.cn)官网提供的项目链接。请务必看清是`.js`后缀而不是`.css`后缀。如果你现在还没有创建iconfont的仓库,那么可以填入这个链接去测试:`http://at.alicdn.com/t/font_1373348_kk9y3jk2omq.js`。 +### symbol_url +请直接复制[iconfont](http://iconfont.cn)官网提供的项目链接。请务必看清是`.js`后缀而不是.css后缀。如果你现在还没有创建iconfont的仓库,那么可以填入这个链接去测试:`http://at.alicdn.com/t/font_1373348_kk9y3jk2omq.js` + +
![](https://github.com/fwh1990/mini-program-iconfont-cli/blob/master/images/symbol-url.png?raw=true) -#### save_dir +### save_dir 根据iconfont图标生成的组件存放的位置。每次生成组件之前,该文件夹都会被清空。 -#### use_rpx -使用微信提供的[尺寸单位rpx](https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxss.html#%E5%B0%BA%E5%AF%B8%E5%8D%95%E4%BD%8D)还是普通的像素单位`px`。默认值为false,即使用`px`。 +### use_typescript +如果您的项目使用Typescript编写,请设置为true。这个选项将决定生成的图标组件是`.tsx`还是`.js`后缀。 -#### trim_icon_prefix -如果你的图标有通用的前缀,而你在使用的时候又不想重复去写,那么可以通过配置这个选项把前缀统一去掉。 +当该值为false时,我们会为您的图标生成`.js`和`.d.ts`两个文件,以便您能享受到最好的开发体验。 -#### default_icon_size +### platforms +选择需要支持的平台,默认是`*`,意味着所有平台都需要支持(如果有)。如果你只想支持部分平台,也可以设置成数组: +```json5 +{ + // 选择你需要的平台 + // 说明 => weapp: 微信 | swan: 百度 | alipay: 支付宝 | tt: 字节跳动 + "platforms": ["weapp", "swan", "alipay", "h5", "tt", "qq"] +} +``` + +### use_rpx +是否使用[尺寸单位rpx](https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxss.html#%E5%B0%BA%E5%AF%B8%E5%8D%95%E4%BD%8D)还是普通的像素单位`px`。默认值为true,与Taro保持一致的缩放。您也可以设置为false,强制使用`px` + +### design_width +若 `use_rpx: true` 且当前设计图尺寸不为 750 时,可以通过修改这个字段来修改设计尺寸。 + +### trim_icon_prefix +如果你的图标有通用的前缀,而你在使用的时候又不想重复去写,那么可以通过这种配置这个选项把前缀统一去掉。 + +### default_icon_size 我们将为每个生成的图标组件加入默认的字体大小,当然,你也可以通过传入props的方式改变这个size值。 + # Step 3 -生成小程序标准组件 +开始生成Taro标准组件 ```bash +npx iconfont-taro + # 可传入配置文件路径 -# npx iconfont-XXXXX --config iconfont.json - -# 微信小程序 -npx iconfont-wechat - -# 支付宝小程序 -npx iconfont-alipay - -# 百度小程序 -npx iconfont-baidu - -# 头条小程序 -npx iconfont-toutiao - -# 快手小程序 -npx iconfont-kuaishou - -# QQ小程序 -npx iconfont-qq +# npx iconfont-taro --config iconfont.json ``` 生成后查看您设置的保存目录中是否含有所有的图标 ------- -在生成代码之前,你可以顺便参考[snapshots目录](https://github.com/iconfont-cli/mini-program-iconfont-cli/tree/master/snapshots)自动生成的快照文件。 +在生成代码之前,你可以顺便参考[snapshots目录](https://github.com/iconfont-cli/taro-iconfont-cli/tree/master/snapshots)自动生成的快照文件。 # Step 4 -#### 微信小程序 | QQ小程序 -在根目录的`app.json`文件中引入全局图标组件,避免每个page都引入(麻烦)。 -```json5 -// 绝对路径 -{ - "usingComponents": { - "iconfont": "/iconfont/iconfont" - } +由于Taro3.0的架构变更,您需要在`src/app.config.js`下填写一次`usingComponents`。 +```typescript +// src/app.config.js +import { useGlobalIconFont } from './components/iconfont/helper'; + +export default { + usingComponents: Object.assign(useGlobalIconFont()), } ``` -#### 支付宝小程序 | 百度小程序 | 头条小程序 | 快手小程序 -不支持全局引入,您需要在各自page的`.json`文件中引入。 -```json5 -// 绝对路径 -{ - "usingComponents": { - "iconfont": "/iconfont/iconfont" - } -} -``` +这并不是一个多好的方案,毕竟还需要开发者关注这个细节。也许能用webpack的plugin解决或者等官方推出更好的方案,有任何更好的idea欢迎提供。 # 使用 -在page中使用图标。 +在Page中使用图标 +```jsx harmony +import React, { Component } from 'react'; +import IconFont from '../components/iconfont'; + +class App extends Component { + render() { + return ; + } +} + +export default App; +``` +更多用法: ```jsx harmony // 原色彩 - + // 单色:红色 - + // 多色:红色+橘色 - + // 不同格式的颜色写法 - + + // 与文字对齐 - - Hello - - + + Hello + + ``` # 更新图标 -当您在iconfont.cn中的图标有变更时,只需更改配置`symbol_url`,然后再次执行`Step 3`即可生成最新的图标组件。 +当您在iconfont.cn中的图标有变更时,只需更改配置`symbol_url`,然后再次执行`Step 3`即可生成最新的图标组件 ```bash # 修改 symbol_url 配置后执行: - -# 微信小程序 -npx iconfont-wechat - -# 支付宝小程序 -npx iconfont-alipay - -# 百度小程序 -npx iconfont-baidu - -# 头条小程序 -npx iconfont-toutiao - -# 快手小程序 -npx iconfont-kuaishou - -# QQ小程序 -npx iconfont-qq +npx iconfont-taro ``` --------- - -欢迎使用,并给我一些反馈和建议,让这个库做的更好。 diff --git a/iconfont.json b/iconfont.json index fc9a1c0..86cb06b 100644 --- a/iconfont.json +++ b/iconfont.json @@ -4,7 +4,7 @@ "use_typescript": false, "platforms": "*", "use_rpx": true, - "trim_icon_prefix": "icon", + "trim_icon_prefix": "", "default_icon_size": 18, "design_width": 750 } diff --git a/src/app.scss b/src/app.scss index 3e7323b..2ff25c6 100644 --- a/src/app.scss +++ b/src/app.scss @@ -10,5 +10,6 @@ page { height: 100%; + background-color: #f7f7f7; } diff --git a/src/components/iconfont/alipay/alipay.axml b/src/components/iconfont/alipay/alipay.axml index 1e3e325..b684879 100644 --- a/src/components/iconfont/alipay/alipay.axml +++ b/src/components/iconfont/alipay/alipay.axml @@ -1,77 +1,77 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - \ No newline at end of file + + \ No newline at end of file diff --git a/src/components/iconfont/alipay/alipay.js b/src/components/iconfont/alipay/alipay.js index 03d7167..ba7a316 100644 --- a/src/components/iconfont/alipay/alipay.js +++ b/src/components/iconfont/alipay/alipay.js @@ -1,6 +1,6 @@ Component({ props: { - // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + // icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu name: null, // string | string[] color: '', diff --git a/src/components/iconfont/h5/index.js b/src/components/iconfont/h5/index.js index e252820..52377bf 100644 --- a/src/components/iconfont/h5/index.js +++ b/src/components/iconfont/h5/index.js @@ -56,57 +56,57 @@ export { default as IconGouwu } from './IconGouwu'; const IconFont = ({ name, ...rest }) => { switch (name) { - case 'wodekefu': + case 'icon-wodekefu': return ; - case 'dizhi': + case 'icon-dizhi': return ; - case 'shouhouzhongxin': + case 'icon-shouhouzhongxin': return ; - case 'wodeshoucang': + case 'icon-wodeshoucang': return ; - case 'shoukuanliebiao': + case 'icon-shoukuanliebiao': return ; - case 'madanguanli': + case 'icon-madanguanli': return ; - case 'qusechazhao': + case 'icon-qusechazhao': return ; - case 'pandiansaoma': + case 'icon-pandiansaoma': return ; - case 'yaoqingma': + case 'icon-yaoqingma': return ; - case 'duizhang': + case 'icon-duizhang': return ; - case 'tihuoliebiao': + case 'icon-tihuoliebiao': return ; - case 'yangpinduibi': + case 'icon-yangpinduibi': return ; - case 'yansequyang': + case 'icon-yansequyang': return ; - case 'fahuoliebiao': + case 'icon-fahuoliebiao': return ; - case 'yuncangkucun': + case 'icon-yuncangkucun': return ; - case 'xiaoshou': + case 'icon-xiaoshou': return ; - case 'qianzhicangkucun': + case 'icon-qianzhicangkucun': return ; - case 'lingquseka': + case 'icon-lingquseka': return ; - case 'gouwu1': + case 'icon-gouwu1': return ; - case 'dingdan1': + case 'icon-dingdan1': return ; - case 'gerenzhongxin1': + case 'icon-gerenzhongxin1': return ; - case 'shouye1': + case 'icon-shouye1': return ; - case 'gerenzhongxin': + case 'icon-gerenzhongxin': return ; - case 'dingdan': + case 'icon-dingdan': return ; - case 'shouye': + case 'icon-shouye': return ; - case 'gouwu': + case 'icon-gouwu': return ; } diff --git a/src/components/iconfont/index.d.ts b/src/components/iconfont/index.d.ts index f128c62..ff53197 100644 --- a/src/components/iconfont/index.d.ts +++ b/src/components/iconfont/index.d.ts @@ -2,7 +2,7 @@ import React, { FunctionComponent } from 'react'; interface Props { - name: 'wodekefu' | 'dizhi' | 'shouhouzhongxin' | 'wodeshoucang' | 'shoukuanliebiao' | 'madanguanli' | 'qusechazhao' | 'pandiansaoma' | 'yaoqingma' | 'duizhang' | 'tihuoliebiao' | 'yangpinduibi' | 'yansequyang' | 'fahuoliebiao' | 'yuncangkucun' | 'xiaoshou' | 'qianzhicangkucun' | 'lingquseka' | 'gouwu1' | 'dingdan1' | 'gerenzhongxin1' | 'shouye1' | 'gerenzhongxin' | 'dingdan' | 'shouye' | 'gouwu'; + name: 'icon-wodekefu' | 'icon-dizhi' | 'icon-shouhouzhongxin' | 'icon-wodeshoucang' | 'icon-shoukuanliebiao' | 'icon-madanguanli' | 'icon-qusechazhao' | 'icon-pandiansaoma' | 'icon-yaoqingma' | 'icon-duizhang' | 'icon-tihuoliebiao' | 'icon-yangpinduibi' | 'icon-yansequyang' | 'icon-fahuoliebiao' | 'icon-yuncangkucun' | 'icon-xiaoshou' | 'icon-qianzhicangkucun' | 'icon-lingquseka' | 'icon-gouwu1' | 'icon-dingdan1' | 'icon-gerenzhongxin1' | 'icon-shouye1' | 'icon-gerenzhongxin' | 'icon-dingdan' | 'icon-shouye' | 'icon-gouwu'; size?: number; color?: string | string[]; style?: React.CSSProperties; diff --git a/src/components/iconfont/qq/qq.js b/src/components/iconfont/qq/qq.js index 106e505..e614032 100644 --- a/src/components/iconfont/qq/qq.js +++ b/src/components/iconfont/qq/qq.js @@ -1,6 +1,6 @@ Component({ properties: { - // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + // icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu name: { type: String, }, diff --git a/src/components/iconfont/qq/qq.qml b/src/components/iconfont/qq/qq.qml index e5ce604..4931e1e 100644 --- a/src/components/iconfont/qq/qq.qml +++ b/src/components/iconfont/qq/qq.qml @@ -1,77 +1,77 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - \ No newline at end of file + + \ No newline at end of file diff --git a/src/components/iconfont/rn/index.js b/src/components/iconfont/rn/index.js index cde4094..393fff9 100644 --- a/src/components/iconfont/rn/index.js +++ b/src/components/iconfont/rn/index.js @@ -57,57 +57,57 @@ export { default as IconGouwu } from './IconGouwu'; let IconFont = ({ name, ...rest }) => { switch (name) { - case 'wodekefu': + case 'icon-wodekefu': return ; - case 'dizhi': + case 'icon-dizhi': return ; - case 'shouhouzhongxin': + case 'icon-shouhouzhongxin': return ; - case 'wodeshoucang': + case 'icon-wodeshoucang': return ; - case 'shoukuanliebiao': + case 'icon-shoukuanliebiao': return ; - case 'madanguanli': + case 'icon-madanguanli': return ; - case 'qusechazhao': + case 'icon-qusechazhao': return ; - case 'pandiansaoma': + case 'icon-pandiansaoma': return ; - case 'yaoqingma': + case 'icon-yaoqingma': return ; - case 'duizhang': + case 'icon-duizhang': return ; - case 'tihuoliebiao': + case 'icon-tihuoliebiao': return ; - case 'yangpinduibi': + case 'icon-yangpinduibi': return ; - case 'yansequyang': + case 'icon-yansequyang': return ; - case 'fahuoliebiao': + case 'icon-fahuoliebiao': return ; - case 'yuncangkucun': + case 'icon-yuncangkucun': return ; - case 'xiaoshou': + case 'icon-xiaoshou': return ; - case 'qianzhicangkucun': + case 'icon-qianzhicangkucun': return ; - case 'lingquseka': + case 'icon-lingquseka': return ; - case 'gouwu1': + case 'icon-gouwu1': return ; - case 'dingdan1': + case 'icon-dingdan1': return ; - case 'gerenzhongxin1': + case 'icon-gerenzhongxin1': return ; - case 'shouye1': + case 'icon-shouye1': return ; - case 'gerenzhongxin': + case 'icon-gerenzhongxin': return ; - case 'dingdan': + case 'icon-dingdan': return ; - case 'shouye': + case 'icon-shouye': return ; - case 'gouwu': + case 'icon-gouwu': return ; } diff --git a/src/components/iconfont/swan/swan.js b/src/components/iconfont/swan/swan.js index a4ef6af..75a01f1 100644 --- a/src/components/iconfont/swan/swan.js +++ b/src/components/iconfont/swan/swan.js @@ -1,6 +1,6 @@ Component({ properties: { - // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + // icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu name: { type: String, }, diff --git a/src/components/iconfont/swan/swan.swan b/src/components/iconfont/swan/swan.swan index 03cd6df..02f4681 100644 --- a/src/components/iconfont/swan/swan.swan +++ b/src/components/iconfont/swan/swan.swan @@ -1,77 +1,77 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - \ No newline at end of file + + \ No newline at end of file diff --git a/src/components/iconfont/tt/tt.js b/src/components/iconfont/tt/tt.js index 0c7dfb1..29fea52 100644 --- a/src/components/iconfont/tt/tt.js +++ b/src/components/iconfont/tt/tt.js @@ -1,6 +1,6 @@ Component({ properties: { - // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + // icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu name: { type: String, }, diff --git a/src/components/iconfont/tt/tt.ttml b/src/components/iconfont/tt/tt.ttml index 03e4c24..ff0d6cf 100644 --- a/src/components/iconfont/tt/tt.ttml +++ b/src/components/iconfont/tt/tt.ttml @@ -1,77 +1,77 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - \ No newline at end of file + + \ No newline at end of file diff --git a/src/components/iconfont/weapp/weapp.js b/src/components/iconfont/weapp/weapp.js index 89c17f5..54b2aaf 100644 --- a/src/components/iconfont/weapp/weapp.js +++ b/src/components/iconfont/weapp/weapp.js @@ -1,6 +1,6 @@ Component({ properties: { - // wodekefu | dizhi | shouhouzhongxin | wodeshoucang | shoukuanliebiao | madanguanli | qusechazhao | pandiansaoma | yaoqingma | duizhang | tihuoliebiao | yangpinduibi | yansequyang | fahuoliebiao | yuncangkucun | xiaoshou | qianzhicangkucun | lingquseka | gouwu1 | dingdan1 | gerenzhongxin1 | shouye1 | gerenzhongxin | dingdan | shouye | gouwu + // icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu name: { type: String, }, diff --git a/src/components/iconfont/weapp/weapp.wxml b/src/components/iconfont/weapp/weapp.wxml index 18c9e0b..9d62d6c 100644 --- a/src/components/iconfont/weapp/weapp.wxml +++ b/src/components/iconfont/weapp/weapp.wxml @@ -1,77 +1,77 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - \ No newline at end of file + + \ No newline at end of file diff --git a/src/constants/common.ts b/src/constants/common.ts index d14b9fd..2a5c78b 100644 --- a/src/constants/common.ts +++ b/src/constants/common.ts @@ -1,3 +1,3 @@ export const SET_SHOPCOUNT = 'set_shopCount' export const CLEAR_SHOPCOUNT = 'clear_shopCount' -export const STORAGE_SHOPCOUNT = 'storage_shopcount' \ No newline at end of file +export const STORAGE_SHOPCOUNT = 'storage_shopcount' diff --git a/src/constants/tabbar.ts b/src/constants/tabbar.ts new file mode 100644 index 0000000..0c30219 --- /dev/null +++ b/src/constants/tabbar.ts @@ -0,0 +1,3 @@ +export enum TabBarType { + SET_SELECTED = 'setSelected' +} diff --git a/src/custom-tab-bar/index.config.ts b/src/custom-tab-bar/index.config.ts new file mode 100644 index 0000000..6d6cc11 --- /dev/null +++ b/src/custom-tab-bar/index.config.ts @@ -0,0 +1,3 @@ +export default { + component: true, +} diff --git a/src/custom-tab-bar/index.module.scss b/src/custom-tab-bar/index.module.scss index 2f58e23..9a301ff 100644 --- a/src/custom-tab-bar/index.module.scss +++ b/src/custom-tab-bar/index.module.scss @@ -8,6 +8,8 @@ flex-flow: row nowrap; padding-bottom: env(safe-area-inset-bottom); background-color: #fff; + z-index: 9999; + box-shadow: 0 11px 7px 8px #c2c2c2; &-line { position: absolute; left: 0; diff --git a/src/custom-tab-bar/index.tsx b/src/custom-tab-bar/index.tsx index 0b5c8a7..59fcca1 100644 --- a/src/custom-tab-bar/index.tsx +++ b/src/custom-tab-bar/index.tsx @@ -1,49 +1,36 @@ import { CoverImage, View } from '@tarojs/components' import { FC, useMemo, useState } from 'react' import styles from './index.module.scss' +import IconFont from '@/components/iconfont' import classname from 'classname' +import Taro, { useDidShow, useRouter } from '@tarojs/taro' +import { useSelector } from '@/reducers/hooks' +import { useDispatch } from 'react-redux' +import { Dispatch } from 'redux' +import { TabBarType } from '@/constants/tabbar' +import { TabBarAction } from '@/reducers/tabBar' + +type IconfontName = Parameters['0']['name'] + type TabBarIndexMap = { [Property: number]: { id: number pagePath: string text: string - iconPath: string - selectedIconPath: string + iconPath: IconfontName + selectedIconPath: IconfontName } } const CustomTabBar: FC = () => { - const [tabItem, setTabItem] = useState([ - { - id: 1, - pagePath: 'pages/index/index', - text: '首页', - iconPath: 'icon-shouye1', - selectedIconPath: 'icon-shouye', - }, - { - id: 2, - pagePath: 'pages/shopping/index', - text: '购物', - iconPath: 'icon-gouwu1', - selectedIconPath: 'icon-gouwu', - }, - { - id: 3, - pagePath: 'pages/order/index', - text: '订单', - iconPath: 'icon-dingdan1', - selectedIconPath: 'icon-dingdan', - }, - { - id: 4, - pagePath: 'pages/user/index', - text: '我的', - iconPath: 'icon-gerenzhongxin1', - selectedIconPath: 'icon-gerenzhongxin', - }, - ]) + console.log('重新渲染') + + + const { selectedId, tabItem } = useSelector((state) => { + console.log('sdfasdfa', state) + return state.tabBarData + }) const tabBarIndexMap = useMemo(() => { let map: TabBarIndexMap = {} for (let i = 0; i < tabItem.length; i++) { @@ -51,26 +38,41 @@ const CustomTabBar: FC = () => { } return map }, [tabItem]) + console.log('selectedId', selectedId) - const [selectedId, setSelectedId] = useState(1) + const dispatch = useDispatch>() - const handleSelectTabItem = () => { - return () => {} + const handleSelectTabItem = (id: TabBarIndexMap[number]['id']) => { + return () => { + setSelected(id) + Taro.switchTab({ url: tabItem.find(item=>item.id === id)?.pagePath! }) + } } + const setSelected = (id: TabBarIndexMap[number]['id']) => { + dispatch({ type: TabBarType.SET_SELECTED, data: { tabItem, selectedId: id } }) + } + + // const router = useRouter() + // console.log('getCurrentPages==>', router) + + // handleSelectTabItem(tabItem.find((item) => item.pagePath === router.path)?.id!)() + + // useDidShow(() => { + // console.log('getCurrentPages==>', router) + // }) return ( {tabItem.map((item, index) => { return ( - - - {item.text} + + + + {item.text} ) })} diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index 523b94b..dd843ce 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -6,7 +6,7 @@ import MoveBtn from '@/components/moveBtn' import ShopCart from '@/components/shoppingCart' import { goLink } from '@/common/common' import styles from './index.module.scss' -import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' +import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { kindListApi, ProductListApi } from '@/api/index' // import useLogin from '@/use/useLogin' import { mpproductcolorlist, mpsaleOrderpreView } from "@/api/order" @@ -296,4 +296,4 @@ export default () => { // ) } -// oninputEvent={(e, item) => { oninputEvent(e, item) }} \ No newline at end of file +// oninputEvent={(e, item) => { oninputEvent(e, item) }} diff --git a/src/pages/order/index.tsx b/src/pages/order/index.tsx index 8d378d8..459bcc3 100644 --- a/src/pages/order/index.tsx +++ b/src/pages/order/index.tsx @@ -1,3 +1,4 @@ +<<<<<<< HEAD import { View, ScrollView, Input, Button } from '@tarojs/components' import { useCallback, useEffect, useMemo, useRef, useState, } from 'react' import { mpenumsaleorderstatus, OrderListApi } from '@/api/order' @@ -10,6 +11,17 @@ import Popup from '@/components/popup' import InfiniteScroll from '@/components/infiniteScroll' import { compose } from 'redux' import Taro, { useDidShow } from '@tarojs/taro' +======= +import { View } from '@tarojs/components' +import Taro, { useDidShow } from '@tarojs/taro' +import { useMemo, useState } from 'react' +const Order = () => { + + + const [count, setCount] = useState(0) + return {count} +} +>>>>>>> d851d6d (🎈 perf(自定义tabbar): 优化自定义tabbar) export default () => { //页码和页数 diff --git a/src/pages/shopping/index.tsx b/src/pages/shopping/index.tsx index 2ae0ef7..2558ab4 100644 --- a/src/pages/shopping/index.tsx +++ b/src/pages/shopping/index.tsx @@ -1,9 +1,13 @@ import { isEmptyObject } from '@/common/common' import { View } from '@tarojs/components' +import Taro, { useDidShow } from '@tarojs/taro' +import { useMemo } from 'react' const User = () => { const obj = {} console.log(isEmptyObject(obj)) + + return sdfasdfasdf } export default User diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index 6c8c64a..3efd58b 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -1,16 +1,13 @@ import { isEmptyObject } from '@/common/common' import { Button, View } from '@tarojs/components' -import { FC, memo, useState } from 'react' -import IconFont from '../components/iconfont' +import { FC, memo, useMemo, useState } from 'react' import styles from './index.module.scss' const SonComp: FC = memo(() => { return 我改变了吗{new Date().getTime()} }) // 用户信息 -const UserInfo:FC = () => { - return - sdfasdf - +const UserInfo: FC = () => { + return sdfasdf } // 我的 @@ -23,6 +20,15 @@ const User = () => { return prev + 1 }) } + + // const page = useMemo(() => Taro.getCurrentInstance().page, []) + // console.log('page', page) + // useDidShow(async () => { + // const tabbar = await Taro.getTabBar(page) + // console.log('tabbar==>', tabbar) + // tabbar?.setSelected(4) + // }) + return ( <> @@ -30,7 +36,6 @@ const User = () => { sdfasdfasdf {count} - ) diff --git a/src/reducers/hooks.ts b/src/reducers/hooks.ts index e2f3457..ccc4573 100644 --- a/src/reducers/hooks.ts +++ b/src/reducers/hooks.ts @@ -1,10 +1,12 @@ //该方法纯粹只是个Ts类型定义文件 import { useSelector as useReduxSelector, TypedUseSelectorHook } from 'react-redux'; -import { DataParam } from './userInfo'; +import { DataParam as userInfoParam } from './userInfo'; import { DataParam as commonDataParam } from './commonData'; +import { TabBarData as tabbarDataParam } from './tabBar'; type Params = { - userInfo: DataParam, - commonData: commonDataParam + userInfo: userInfoParam + commonData: commonDataParam + tabBarData: tabbarDataParam } -export const useSelector: TypedUseSelectorHook = useReduxSelector; \ No newline at end of file +export const useSelector: TypedUseSelectorHook = useReduxSelector; diff --git a/src/reducers/index.ts b/src/reducers/index.ts index 1b859e6..f5294cc 100644 --- a/src/reducers/index.ts +++ b/src/reducers/index.ts @@ -1,8 +1,18 @@ import { combineReducers } from 'redux' import userInfo from './userInfo' import commonData from './commonData' +import tabBarReducer from './tabBar' -export default combineReducers({ - userInfo, - commonData -}) \ No newline at end of file +export type Reducers = { + userInfo: typeof userInfo + commonData: typeof commonData + tabBarData: typeof tabBarReducer +} + +export type ReducersKey = keyof Reducers + +export default combineReducers({ + userInfo, + commonData, + tabBarData: tabBarReducer, +}) diff --git a/src/reducers/tabBar.ts b/src/reducers/tabBar.ts new file mode 100644 index 0000000..638bc96 --- /dev/null +++ b/src/reducers/tabBar.ts @@ -0,0 +1,72 @@ +import { TabBarType } from '../constants/tabbar' +import IconFont from '@/components/iconfont' + +type IconfontName = Parameters['0']['name'] + +type TabBarIndexMap = { + [Property: number]: { + id: number + pagePath: string + text: string + iconPath: IconfontName + selectedIconPath: IconfontName + } +} + + +const INITIAL_STATE = { + selectedId: 1, + tabItem: [ + { + id: 1, + pagePath: '/pages/index/index', + text: '首页', + iconPath: 'icon-shouye1', + selectedIconPath: 'icon-shouye', + }, + { + id: 2, + pagePath: '/pages/shopping/index', + text: '购物', + iconPath: 'icon-gouwu1', + selectedIconPath: 'icon-gouwu', + }, + { + id: 3, + pagePath: '/pages/order/index', + text: '订单', + iconPath: 'icon-dingdan1', + selectedIconPath: 'icon-dingdan', + }, + { + id: 4, + pagePath: '/pages/user/index', + text: '我的', + iconPath: 'icon-gerenzhongxin1', + selectedIconPath: 'icon-gerenzhongxin', + }, + ], +} + +export type TabBarData = { + selectedId: number + tabItem: TabBarIndexMap[number][] +} + +export type TabBarAction = { + type: TabBarType + data: TabBarData +} +// TabBarReducer +export default (state = INITIAL_STATE, action: TabBarAction) => { + const { type, data } = action + switch (type) { + case TabBarType.SET_SELECTED: + return { + ...state, + selectedId: data.selectedId, + } + default: + return state + } +} From e9e8864c9576da1092fba551ef71a89ee3f49273 Mon Sep 17 00:00:00 2001 From: xuan Date: Mon, 5 Sep 2022 10:21:54 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E2=9C=A8=20feat(=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89tabbar):=20=E6=96=B0=E5=A2=9E=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89tabbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iconfont.json | 2 +- package.json | 8 +- src/components/iconfont/alipay/alipay.acss | 3 - src/components/iconfont/alipay/alipay.axml | 77 ------------ src/components/iconfont/alipay/alipay.js | 77 ------------ src/components/iconfont/alipay/alipay.json | 3 - src/components/iconfont/index.alipay.js | 16 --- src/components/iconfont/index.qq.js | 16 --- src/components/iconfont/index.rn.js | 17 --- src/components/iconfont/index.swan.js | 16 --- src/components/iconfont/index.tt.js | 16 --- src/components/iconfont/qq/qq.js | 31 ----- src/components/iconfont/qq/qq.json | 4 - src/components/iconfont/qq/qq.qml | 77 ------------ src/components/iconfont/qq/qq.qss | 3 - src/components/iconfont/rn/IconDingdan.js | 24 ---- src/components/iconfont/rn/IconDingdan1.js | 24 ---- src/components/iconfont/rn/IconDizhi.js | 29 ----- src/components/iconfont/rn/IconDuizhang.js | 29 ----- .../iconfont/rn/IconFahuoliebiao.js | 29 ----- .../iconfont/rn/IconGerenzhongxin.js | 24 ---- .../iconfont/rn/IconGerenzhongxin1.js | 24 ---- src/components/iconfont/rn/IconGouwu.js | 24 ---- src/components/iconfont/rn/IconGouwu1.js | 24 ---- src/components/iconfont/rn/IconLingquseka.js | 34 ----- src/components/iconfont/rn/IconMadanguanli.js | 42 ------- .../iconfont/rn/IconPandiansaoma.js | 29 ----- .../iconfont/rn/IconQianzhicangkucun.js | 29 ----- src/components/iconfont/rn/IconQusechazhao.js | 29 ----- .../iconfont/rn/IconShouhouzhongxin.js | 29 ----- .../iconfont/rn/IconShoukuanliebiao.js | 29 ----- src/components/iconfont/rn/IconShouye.js | 24 ---- src/components/iconfont/rn/IconShouye1.js | 24 ---- .../iconfont/rn/IconTihuoliebiao.js | 29 ----- src/components/iconfont/rn/IconWodekefu.js | 29 ----- .../iconfont/rn/IconWodeshoucang.js | 29 ----- src/components/iconfont/rn/IconXiaoshou.js | 29 ----- .../iconfont/rn/IconYangpinduibi.js | 29 ----- src/components/iconfont/rn/IconYansequyang.js | 29 ----- src/components/iconfont/rn/IconYaoqingma.js | 29 ----- .../iconfont/rn/IconYuncangkucun.js | 29 ----- src/components/iconfont/rn/helper.js | 17 --- src/components/iconfont/rn/index.js | 119 ------------------ src/components/iconfont/swan/swan.css | 3 - src/components/iconfont/swan/swan.js | 64 ---------- src/components/iconfont/swan/swan.json | 4 - src/components/iconfont/swan/swan.swan | 77 ------------ src/components/iconfont/tt/tt.js | 64 ---------- src/components/iconfont/tt/tt.json | 3 - src/components/iconfont/tt/tt.ttml | 77 ------------ src/components/iconfont/tt/tt.ttss | 3 - 51 files changed, 5 insertions(+), 1524 deletions(-) delete mode 100644 src/components/iconfont/alipay/alipay.acss delete mode 100644 src/components/iconfont/alipay/alipay.axml delete mode 100644 src/components/iconfont/alipay/alipay.js delete mode 100644 src/components/iconfont/alipay/alipay.json delete mode 100644 src/components/iconfont/index.alipay.js delete mode 100644 src/components/iconfont/index.qq.js delete mode 100644 src/components/iconfont/index.rn.js delete mode 100644 src/components/iconfont/index.swan.js delete mode 100644 src/components/iconfont/index.tt.js delete mode 100644 src/components/iconfont/qq/qq.js delete mode 100644 src/components/iconfont/qq/qq.json delete mode 100644 src/components/iconfont/qq/qq.qml delete mode 100644 src/components/iconfont/qq/qq.qss delete mode 100644 src/components/iconfont/rn/IconDingdan.js delete mode 100644 src/components/iconfont/rn/IconDingdan1.js delete mode 100644 src/components/iconfont/rn/IconDizhi.js delete mode 100644 src/components/iconfont/rn/IconDuizhang.js delete mode 100644 src/components/iconfont/rn/IconFahuoliebiao.js delete mode 100644 src/components/iconfont/rn/IconGerenzhongxin.js delete mode 100644 src/components/iconfont/rn/IconGerenzhongxin1.js delete mode 100644 src/components/iconfont/rn/IconGouwu.js delete mode 100644 src/components/iconfont/rn/IconGouwu1.js delete mode 100644 src/components/iconfont/rn/IconLingquseka.js delete mode 100644 src/components/iconfont/rn/IconMadanguanli.js delete mode 100644 src/components/iconfont/rn/IconPandiansaoma.js delete mode 100644 src/components/iconfont/rn/IconQianzhicangkucun.js delete mode 100644 src/components/iconfont/rn/IconQusechazhao.js delete mode 100644 src/components/iconfont/rn/IconShouhouzhongxin.js delete mode 100644 src/components/iconfont/rn/IconShoukuanliebiao.js delete mode 100644 src/components/iconfont/rn/IconShouye.js delete mode 100644 src/components/iconfont/rn/IconShouye1.js delete mode 100644 src/components/iconfont/rn/IconTihuoliebiao.js delete mode 100644 src/components/iconfont/rn/IconWodekefu.js delete mode 100644 src/components/iconfont/rn/IconWodeshoucang.js delete mode 100644 src/components/iconfont/rn/IconXiaoshou.js delete mode 100644 src/components/iconfont/rn/IconYangpinduibi.js delete mode 100644 src/components/iconfont/rn/IconYansequyang.js delete mode 100644 src/components/iconfont/rn/IconYaoqingma.js delete mode 100644 src/components/iconfont/rn/IconYuncangkucun.js delete mode 100644 src/components/iconfont/rn/helper.js delete mode 100644 src/components/iconfont/rn/index.js delete mode 100644 src/components/iconfont/swan/swan.css delete mode 100644 src/components/iconfont/swan/swan.js delete mode 100644 src/components/iconfont/swan/swan.json delete mode 100644 src/components/iconfont/swan/swan.swan delete mode 100644 src/components/iconfont/tt/tt.js delete mode 100644 src/components/iconfont/tt/tt.json delete mode 100644 src/components/iconfont/tt/tt.ttml delete mode 100644 src/components/iconfont/tt/tt.ttss diff --git a/iconfont.json b/iconfont.json index 86cb06b..33de02e 100644 --- a/iconfont.json +++ b/iconfont.json @@ -2,7 +2,7 @@ "symbol_url": "//at.alicdn.com/t/c/font_3619513_mrvpsyqxmzr.js", "save_dir": "./src/components/iconfont", "use_typescript": false, - "platforms": "*", + "platforms": ["weapp","h5"], "use_rpx": true, "trim_icon_prefix": "", "default_icon_size": 18, diff --git a/package.json b/package.json index 5464206..6900c26 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "css": "sass" }, "scripts": { - "build:weapp": "taro build --type weapp", + "build:weapp": "npx iconfont-taro && taro build --type weapp", "build:swan": "taro build --type swan", "build:alipay": "taro build --type alipay", "build:tt": "taro build --type tt", @@ -18,7 +18,7 @@ "build:qq": "taro build --type qq", "build:jd": "taro build --type jd", "build:quickapp": "taro build --type quickapp", - "dev:weapp": "npm run build:weapp -- --watch", + "dev:weapp": "npx iconfont-taro && npm run build:weapp -- --watch", "dev:swan": "npm run build:swan -- --watch", "dev:alipay": "npm run build:alipay -- --watch", "dev:tt": "npm run build:tt -- --watch", @@ -27,8 +27,8 @@ "dev:qq": "npm run build:qq -- --watch", "dev:jd": "npm run build:jd -- --watch", "dev:quickapp": "npm run build:quickapp -- --watch", - "build:weapp:pre": "cross-env NODE_ENV=pre taro build --type weapp", - "dev:weapp:pre": "cross-env NODE_ENV=pre npm run build:weapp -- --watch" + "build:weapp:pre": "npx iconfont-taro && cross-env NODE_ENV=pre taro build --type weapp", + "dev:weapp:pre": "npx iconfont-taro && cross-env NODE_ENV=pre npm run build:weapp -- --watch" }, "browserslist": [ "last 3 versions", diff --git a/src/components/iconfont/alipay/alipay.acss b/src/components/iconfont/alipay/alipay.acss deleted file mode 100644 index 9f68d1a..0000000 --- a/src/components/iconfont/alipay/alipay.acss +++ /dev/null @@ -1,3 +0,0 @@ -.icon { - background-repeat: no-repeat; -} diff --git a/src/components/iconfont/alipay/alipay.axml b/src/components/iconfont/alipay/alipay.axml deleted file mode 100644 index b684879..0000000 --- a/src/components/iconfont/alipay/alipay.axml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/components/iconfont/alipay/alipay.js b/src/components/iconfont/alipay/alipay.js deleted file mode 100644 index ba7a316..0000000 --- a/src/components/iconfont/alipay/alipay.js +++ /dev/null @@ -1,77 +0,0 @@ -Component({ - props: { - // icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu - name: null, - // string | string[] - color: '', - size: 18, - }, - data: { - colors: '', - quot: '"', - svgSize: 18, - isStr: true, - }, - didMount() { - const size = this.props.size; - const color = this.props.color; - - this.setData({ - colors: this.fixColor(color), - isStr: typeof color === 'string', - }); - - if (size !== this.data.svgSize) { - this.setData({ - svgSize: size / 750 * my.getSystemInfoSync().windowWidth, - }); - } - }, - disUpdate(prevProps) { - const size = this.props.size; - const color = this.props.color; - - if (color !== prevProps.color) { - this.setData({ - colors: this.fixColor(color), - isStr: typeof color === 'string', - }); - } - - if (size !== prevProps.size) { - this.setData({ - svgSize: size / 750 * my.getSystemInfoSync().windowWidth, - }); - } - }, - methods: { - fixColor: function() { - var color = this.props.color; - var hex2rgb = this.hex2rgb; - - if (typeof color === 'string') { - return color.indexOf('#') === 0 ? hex2rgb(color) : color; - } - - return color.map(function (item) { - return item.indexOf('#') === 0 ? hex2rgb(item) : item; - }); - }, - hex2rgb: function(hex) { - var rgb = []; - - hex = hex.substr(1); - - if (hex.length === 3) { - hex = hex.replace(/(.)/g, '$1$1'); - } - - hex.replace(/../g, function(color) { - rgb.push(parseInt(color, 0x10)); - return color; - }); - - return 'rgb(' + rgb.join(',') + ')'; - } - } -}); diff --git a/src/components/iconfont/alipay/alipay.json b/src/components/iconfont/alipay/alipay.json deleted file mode 100644 index 467ce29..0000000 --- a/src/components/iconfont/alipay/alipay.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "component": true -} diff --git a/src/components/iconfont/index.alipay.js b/src/components/iconfont/index.alipay.js deleted file mode 100644 index 731305b..0000000 --- a/src/components/iconfont/index.alipay.js +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import Taro from '@tarojs/taro'; - -const IconFont = (props) => { - const { name, size, color, style } = props; - - return ; -}; - -IconFont.defaultProps = { - size: 18, -}; - -export default IconFont; diff --git a/src/components/iconfont/index.qq.js b/src/components/iconfont/index.qq.js deleted file mode 100644 index 731305b..0000000 --- a/src/components/iconfont/index.qq.js +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import Taro from '@tarojs/taro'; - -const IconFont = (props) => { - const { name, size, color, style } = props; - - return ; -}; - -IconFont.defaultProps = { - size: 18, -}; - -export default IconFont; diff --git a/src/components/iconfont/index.rn.js b/src/components/iconfont/index.rn.js deleted file mode 100644 index 5375b4a..0000000 --- a/src/components/iconfont/index.rn.js +++ /dev/null @@ -1,17 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import Taro from '@tarojs/taro'; -import Icon from './rn'; - -const IconFont = (props) => { - const { name, size, color, style } = props; - - return ; -}; - -IconFont.defaultProps = { - size: 18, -}; - -export default IconFont; diff --git a/src/components/iconfont/index.swan.js b/src/components/iconfont/index.swan.js deleted file mode 100644 index 731305b..0000000 --- a/src/components/iconfont/index.swan.js +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import Taro from '@tarojs/taro'; - -const IconFont = (props) => { - const { name, size, color, style } = props; - - return ; -}; - -IconFont.defaultProps = { - size: 18, -}; - -export default IconFont; diff --git a/src/components/iconfont/index.tt.js b/src/components/iconfont/index.tt.js deleted file mode 100644 index 731305b..0000000 --- a/src/components/iconfont/index.tt.js +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import Taro from '@tarojs/taro'; - -const IconFont = (props) => { - const { name, size, color, style } = props; - - return ; -}; - -IconFont.defaultProps = { - size: 18, -}; - -export default IconFont; diff --git a/src/components/iconfont/qq/qq.js b/src/components/iconfont/qq/qq.js deleted file mode 100644 index e614032..0000000 --- a/src/components/iconfont/qq/qq.js +++ /dev/null @@ -1,31 +0,0 @@ -Component({ - properties: { - // icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu - name: { - type: String, - }, - // string | string[] - color: { - type: null, - observer: function(color) { - this.setData({ - isStr: typeof color === 'string', - }); - } - }, - size: { - type: Number, - value: 18, - observer: function(size) { - this.setData({ - svgSize: size / 750 * qq.getSystemInfoSync().windowWidth, - }); - }, - }, - }, - data: { - svgSize: 18 / 750 * qq.getSystemInfoSync().windowWidth, - quot: '"', - isStr: true, - }, -}); diff --git a/src/components/iconfont/qq/qq.json b/src/components/iconfont/qq/qq.json deleted file mode 100644 index a89ef4d..0000000 --- a/src/components/iconfont/qq/qq.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "component": true, - "usingComponents": {} -} diff --git a/src/components/iconfont/qq/qq.qml b/src/components/iconfont/qq/qq.qml deleted file mode 100644 index 4931e1e..0000000 --- a/src/components/iconfont/qq/qq.qml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/components/iconfont/qq/qq.qss b/src/components/iconfont/qq/qq.qss deleted file mode 100644 index 9f68d1a..0000000 --- a/src/components/iconfont/qq/qq.qss +++ /dev/null @@ -1,3 +0,0 @@ -.icon { - background-repeat: no-repeat; -} diff --git a/src/components/iconfont/rn/IconDingdan.js b/src/components/iconfont/rn/IconDingdan.js deleted file mode 100644 index 28998fd..0000000 --- a/src/components/iconfont/rn/IconDingdan.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconDingdan = ({ size, color, ...rest }) => { - return ( - - - - ); -}; - -IconDingdan.defaultProps = { - size: 18, -}; - -IconDingdan = React.memo ? React.memo(IconDingdan) : IconDingdan; - -export default IconDingdan; diff --git a/src/components/iconfont/rn/IconDingdan1.js b/src/components/iconfont/rn/IconDingdan1.js deleted file mode 100644 index 98be064..0000000 --- a/src/components/iconfont/rn/IconDingdan1.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconDingdan1 = ({ size, color, ...rest }) => { - return ( - - - - ); -}; - -IconDingdan1.defaultProps = { - size: 18, -}; - -IconDingdan1 = React.memo ? React.memo(IconDingdan1) : IconDingdan1; - -export default IconDingdan1; diff --git a/src/components/iconfont/rn/IconDizhi.js b/src/components/iconfont/rn/IconDizhi.js deleted file mode 100644 index 5f8e1b2..0000000 --- a/src/components/iconfont/rn/IconDizhi.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconDizhi = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconDizhi.defaultProps = { - size: 18, -}; - -IconDizhi = React.memo ? React.memo(IconDizhi) : IconDizhi; - -export default IconDizhi; diff --git a/src/components/iconfont/rn/IconDuizhang.js b/src/components/iconfont/rn/IconDuizhang.js deleted file mode 100644 index 5691cb6..0000000 --- a/src/components/iconfont/rn/IconDuizhang.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconDuizhang = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconDuizhang.defaultProps = { - size: 18, -}; - -IconDuizhang = React.memo ? React.memo(IconDuizhang) : IconDuizhang; - -export default IconDuizhang; diff --git a/src/components/iconfont/rn/IconFahuoliebiao.js b/src/components/iconfont/rn/IconFahuoliebiao.js deleted file mode 100644 index a72bce1..0000000 --- a/src/components/iconfont/rn/IconFahuoliebiao.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconFahuoliebiao = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconFahuoliebiao.defaultProps = { - size: 18, -}; - -IconFahuoliebiao = React.memo ? React.memo(IconFahuoliebiao) : IconFahuoliebiao; - -export default IconFahuoliebiao; diff --git a/src/components/iconfont/rn/IconGerenzhongxin.js b/src/components/iconfont/rn/IconGerenzhongxin.js deleted file mode 100644 index f2e1b32..0000000 --- a/src/components/iconfont/rn/IconGerenzhongxin.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconGerenzhongxin = ({ size, color, ...rest }) => { - return ( - - - - ); -}; - -IconGerenzhongxin.defaultProps = { - size: 18, -}; - -IconGerenzhongxin = React.memo ? React.memo(IconGerenzhongxin) : IconGerenzhongxin; - -export default IconGerenzhongxin; diff --git a/src/components/iconfont/rn/IconGerenzhongxin1.js b/src/components/iconfont/rn/IconGerenzhongxin1.js deleted file mode 100644 index 8679204..0000000 --- a/src/components/iconfont/rn/IconGerenzhongxin1.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconGerenzhongxin1 = ({ size, color, ...rest }) => { - return ( - - - - ); -}; - -IconGerenzhongxin1.defaultProps = { - size: 18, -}; - -IconGerenzhongxin1 = React.memo ? React.memo(IconGerenzhongxin1) : IconGerenzhongxin1; - -export default IconGerenzhongxin1; diff --git a/src/components/iconfont/rn/IconGouwu.js b/src/components/iconfont/rn/IconGouwu.js deleted file mode 100644 index 2eb69f2..0000000 --- a/src/components/iconfont/rn/IconGouwu.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconGouwu = ({ size, color, ...rest }) => { - return ( - - - - ); -}; - -IconGouwu.defaultProps = { - size: 18, -}; - -IconGouwu = React.memo ? React.memo(IconGouwu) : IconGouwu; - -export default IconGouwu; diff --git a/src/components/iconfont/rn/IconGouwu1.js b/src/components/iconfont/rn/IconGouwu1.js deleted file mode 100644 index db0f795..0000000 --- a/src/components/iconfont/rn/IconGouwu1.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconGouwu1 = ({ size, color, ...rest }) => { - return ( - - - - ); -}; - -IconGouwu1.defaultProps = { - size: 18, -}; - -IconGouwu1 = React.memo ? React.memo(IconGouwu1) : IconGouwu1; - -export default IconGouwu1; diff --git a/src/components/iconfont/rn/IconLingquseka.js b/src/components/iconfont/rn/IconLingquseka.js deleted file mode 100644 index 268b6eb..0000000 --- a/src/components/iconfont/rn/IconLingquseka.js +++ /dev/null @@ -1,34 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconLingquseka = ({ size, color, ...rest }) => { - return ( - - - - - - ); -}; - -IconLingquseka.defaultProps = { - size: 18, -}; - -IconLingquseka = React.memo ? React.memo(IconLingquseka) : IconLingquseka; - -export default IconLingquseka; diff --git a/src/components/iconfont/rn/IconMadanguanli.js b/src/components/iconfont/rn/IconMadanguanli.js deleted file mode 100644 index c89af2d..0000000 --- a/src/components/iconfont/rn/IconMadanguanli.js +++ /dev/null @@ -1,42 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconMadanguanli = ({ size, color, ...rest }) => { - return ( - - - - - - - - ); -}; - -IconMadanguanli.defaultProps = { - size: 18, -}; - -IconMadanguanli = React.memo ? React.memo(IconMadanguanli) : IconMadanguanli; - -export default IconMadanguanli; diff --git a/src/components/iconfont/rn/IconPandiansaoma.js b/src/components/iconfont/rn/IconPandiansaoma.js deleted file mode 100644 index 307b85d..0000000 --- a/src/components/iconfont/rn/IconPandiansaoma.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconPandiansaoma = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconPandiansaoma.defaultProps = { - size: 18, -}; - -IconPandiansaoma = React.memo ? React.memo(IconPandiansaoma) : IconPandiansaoma; - -export default IconPandiansaoma; diff --git a/src/components/iconfont/rn/IconQianzhicangkucun.js b/src/components/iconfont/rn/IconQianzhicangkucun.js deleted file mode 100644 index 658ea97..0000000 --- a/src/components/iconfont/rn/IconQianzhicangkucun.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconQianzhicangkucun = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconQianzhicangkucun.defaultProps = { - size: 18, -}; - -IconQianzhicangkucun = React.memo ? React.memo(IconQianzhicangkucun) : IconQianzhicangkucun; - -export default IconQianzhicangkucun; diff --git a/src/components/iconfont/rn/IconQusechazhao.js b/src/components/iconfont/rn/IconQusechazhao.js deleted file mode 100644 index 0d0bd23..0000000 --- a/src/components/iconfont/rn/IconQusechazhao.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconQusechazhao = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconQusechazhao.defaultProps = { - size: 18, -}; - -IconQusechazhao = React.memo ? React.memo(IconQusechazhao) : IconQusechazhao; - -export default IconQusechazhao; diff --git a/src/components/iconfont/rn/IconShouhouzhongxin.js b/src/components/iconfont/rn/IconShouhouzhongxin.js deleted file mode 100644 index 49e8f23..0000000 --- a/src/components/iconfont/rn/IconShouhouzhongxin.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconShouhouzhongxin = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconShouhouzhongxin.defaultProps = { - size: 18, -}; - -IconShouhouzhongxin = React.memo ? React.memo(IconShouhouzhongxin) : IconShouhouzhongxin; - -export default IconShouhouzhongxin; diff --git a/src/components/iconfont/rn/IconShoukuanliebiao.js b/src/components/iconfont/rn/IconShoukuanliebiao.js deleted file mode 100644 index 52dbda4..0000000 --- a/src/components/iconfont/rn/IconShoukuanliebiao.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconShoukuanliebiao = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconShoukuanliebiao.defaultProps = { - size: 18, -}; - -IconShoukuanliebiao = React.memo ? React.memo(IconShoukuanliebiao) : IconShoukuanliebiao; - -export default IconShoukuanliebiao; diff --git a/src/components/iconfont/rn/IconShouye.js b/src/components/iconfont/rn/IconShouye.js deleted file mode 100644 index 18c0ee1..0000000 --- a/src/components/iconfont/rn/IconShouye.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconShouye = ({ size, color, ...rest }) => { - return ( - - - - ); -}; - -IconShouye.defaultProps = { - size: 18, -}; - -IconShouye = React.memo ? React.memo(IconShouye) : IconShouye; - -export default IconShouye; diff --git a/src/components/iconfont/rn/IconShouye1.js b/src/components/iconfont/rn/IconShouye1.js deleted file mode 100644 index 019fe55..0000000 --- a/src/components/iconfont/rn/IconShouye1.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconShouye1 = ({ size, color, ...rest }) => { - return ( - - - - ); -}; - -IconShouye1.defaultProps = { - size: 18, -}; - -IconShouye1 = React.memo ? React.memo(IconShouye1) : IconShouye1; - -export default IconShouye1; diff --git a/src/components/iconfont/rn/IconTihuoliebiao.js b/src/components/iconfont/rn/IconTihuoliebiao.js deleted file mode 100644 index 9dda212..0000000 --- a/src/components/iconfont/rn/IconTihuoliebiao.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconTihuoliebiao = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconTihuoliebiao.defaultProps = { - size: 18, -}; - -IconTihuoliebiao = React.memo ? React.memo(IconTihuoliebiao) : IconTihuoliebiao; - -export default IconTihuoliebiao; diff --git a/src/components/iconfont/rn/IconWodekefu.js b/src/components/iconfont/rn/IconWodekefu.js deleted file mode 100644 index af01d12..0000000 --- a/src/components/iconfont/rn/IconWodekefu.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconWodekefu = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconWodekefu.defaultProps = { - size: 18, -}; - -IconWodekefu = React.memo ? React.memo(IconWodekefu) : IconWodekefu; - -export default IconWodekefu; diff --git a/src/components/iconfont/rn/IconWodeshoucang.js b/src/components/iconfont/rn/IconWodeshoucang.js deleted file mode 100644 index 71492c6..0000000 --- a/src/components/iconfont/rn/IconWodeshoucang.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconWodeshoucang = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconWodeshoucang.defaultProps = { - size: 18, -}; - -IconWodeshoucang = React.memo ? React.memo(IconWodeshoucang) : IconWodeshoucang; - -export default IconWodeshoucang; diff --git a/src/components/iconfont/rn/IconXiaoshou.js b/src/components/iconfont/rn/IconXiaoshou.js deleted file mode 100644 index 677d6ec..0000000 --- a/src/components/iconfont/rn/IconXiaoshou.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconXiaoshou = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconXiaoshou.defaultProps = { - size: 18, -}; - -IconXiaoshou = React.memo ? React.memo(IconXiaoshou) : IconXiaoshou; - -export default IconXiaoshou; diff --git a/src/components/iconfont/rn/IconYangpinduibi.js b/src/components/iconfont/rn/IconYangpinduibi.js deleted file mode 100644 index 24019a2..0000000 --- a/src/components/iconfont/rn/IconYangpinduibi.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconYangpinduibi = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconYangpinduibi.defaultProps = { - size: 18, -}; - -IconYangpinduibi = React.memo ? React.memo(IconYangpinduibi) : IconYangpinduibi; - -export default IconYangpinduibi; diff --git a/src/components/iconfont/rn/IconYansequyang.js b/src/components/iconfont/rn/IconYansequyang.js deleted file mode 100644 index f18a5f3..0000000 --- a/src/components/iconfont/rn/IconYansequyang.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconYansequyang = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconYansequyang.defaultProps = { - size: 18, -}; - -IconYansequyang = React.memo ? React.memo(IconYansequyang) : IconYansequyang; - -export default IconYansequyang; diff --git a/src/components/iconfont/rn/IconYaoqingma.js b/src/components/iconfont/rn/IconYaoqingma.js deleted file mode 100644 index afcc8c9..0000000 --- a/src/components/iconfont/rn/IconYaoqingma.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconYaoqingma = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconYaoqingma.defaultProps = { - size: 18, -}; - -IconYaoqingma = React.memo ? React.memo(IconYaoqingma) : IconYaoqingma; - -export default IconYaoqingma; diff --git a/src/components/iconfont/rn/IconYuncangkucun.js b/src/components/iconfont/rn/IconYuncangkucun.js deleted file mode 100644 index 429f875..0000000 --- a/src/components/iconfont/rn/IconYuncangkucun.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { getIconColor } from './helper'; - -let IconYuncangkucun = ({ size, color, ...rest }) => { - return ( - - - - - ); -}; - -IconYuncangkucun.defaultProps = { - size: 18, -}; - -IconYuncangkucun = React.memo ? React.memo(IconYuncangkucun) : IconYuncangkucun; - -export default IconYuncangkucun; diff --git a/src/components/iconfont/rn/helper.js b/src/components/iconfont/rn/helper.js deleted file mode 100644 index b566c4c..0000000 --- a/src/components/iconfont/rn/helper.js +++ /dev/null @@ -1,17 +0,0 @@ -/* eslint-disable */ - -/** - * @param {string | string[] | undefined} color - * @param {number} index - * @param {string} defaultColor - * @return {string} - */ -export const getIconColor = (color, index, defaultColor) => { - return color - ? ( - typeof color === 'string' - ? color - : color[index] || defaultColor - ) - : defaultColor; -}; diff --git a/src/components/iconfont/rn/index.js b/src/components/iconfont/rn/index.js deleted file mode 100644 index 393fff9..0000000 --- a/src/components/iconfont/rn/index.js +++ /dev/null @@ -1,119 +0,0 @@ -/* eslint-disable */ - -import React from 'react'; - -import IconWodekefu from './IconWodekefu'; -import IconDizhi from './IconDizhi'; -import IconShouhouzhongxin from './IconShouhouzhongxin'; -import IconWodeshoucang from './IconWodeshoucang'; -import IconShoukuanliebiao from './IconShoukuanliebiao'; -import IconMadanguanli from './IconMadanguanli'; -import IconQusechazhao from './IconQusechazhao'; -import IconPandiansaoma from './IconPandiansaoma'; -import IconYaoqingma from './IconYaoqingma'; -import IconDuizhang from './IconDuizhang'; -import IconTihuoliebiao from './IconTihuoliebiao'; -import IconYangpinduibi from './IconYangpinduibi'; -import IconYansequyang from './IconYansequyang'; -import IconFahuoliebiao from './IconFahuoliebiao'; -import IconYuncangkucun from './IconYuncangkucun'; -import IconXiaoshou from './IconXiaoshou'; -import IconQianzhicangkucun from './IconQianzhicangkucun'; -import IconLingquseka from './IconLingquseka'; -import IconGouwu1 from './IconGouwu1'; -import IconDingdan1 from './IconDingdan1'; -import IconGerenzhongxin1 from './IconGerenzhongxin1'; -import IconShouye1 from './IconShouye1'; -import IconGerenzhongxin from './IconGerenzhongxin'; -import IconDingdan from './IconDingdan'; -import IconShouye from './IconShouye'; -import IconGouwu from './IconGouwu'; -export { default as IconWodekefu } from './IconWodekefu'; -export { default as IconDizhi } from './IconDizhi'; -export { default as IconShouhouzhongxin } from './IconShouhouzhongxin'; -export { default as IconWodeshoucang } from './IconWodeshoucang'; -export { default as IconShoukuanliebiao } from './IconShoukuanliebiao'; -export { default as IconMadanguanli } from './IconMadanguanli'; -export { default as IconQusechazhao } from './IconQusechazhao'; -export { default as IconPandiansaoma } from './IconPandiansaoma'; -export { default as IconYaoqingma } from './IconYaoqingma'; -export { default as IconDuizhang } from './IconDuizhang'; -export { default as IconTihuoliebiao } from './IconTihuoliebiao'; -export { default as IconYangpinduibi } from './IconYangpinduibi'; -export { default as IconYansequyang } from './IconYansequyang'; -export { default as IconFahuoliebiao } from './IconFahuoliebiao'; -export { default as IconYuncangkucun } from './IconYuncangkucun'; -export { default as IconXiaoshou } from './IconXiaoshou'; -export { default as IconQianzhicangkucun } from './IconQianzhicangkucun'; -export { default as IconLingquseka } from './IconLingquseka'; -export { default as IconGouwu1 } from './IconGouwu1'; -export { default as IconDingdan1 } from './IconDingdan1'; -export { default as IconGerenzhongxin1 } from './IconGerenzhongxin1'; -export { default as IconShouye1 } from './IconShouye1'; -export { default as IconGerenzhongxin } from './IconGerenzhongxin'; -export { default as IconDingdan } from './IconDingdan'; -export { default as IconShouye } from './IconShouye'; -export { default as IconGouwu } from './IconGouwu'; - -let IconFont = ({ name, ...rest }) => { - switch (name) { - case 'icon-wodekefu': - return ; - case 'icon-dizhi': - return ; - case 'icon-shouhouzhongxin': - return ; - case 'icon-wodeshoucang': - return ; - case 'icon-shoukuanliebiao': - return ; - case 'icon-madanguanli': - return ; - case 'icon-qusechazhao': - return ; - case 'icon-pandiansaoma': - return ; - case 'icon-yaoqingma': - return ; - case 'icon-duizhang': - return ; - case 'icon-tihuoliebiao': - return ; - case 'icon-yangpinduibi': - return ; - case 'icon-yansequyang': - return ; - case 'icon-fahuoliebiao': - return ; - case 'icon-yuncangkucun': - return ; - case 'icon-xiaoshou': - return ; - case 'icon-qianzhicangkucun': - return ; - case 'icon-lingquseka': - return ; - case 'icon-gouwu1': - return ; - case 'icon-dingdan1': - return ; - case 'icon-gerenzhongxin1': - return ; - case 'icon-shouye1': - return ; - case 'icon-gerenzhongxin': - return ; - case 'icon-dingdan': - return ; - case 'icon-shouye': - return ; - case 'icon-gouwu': - return ; - } - - return null; -}; - -IconFont = React.memo ? React.memo(IconFont) : IconFont; - -export default IconFont; diff --git a/src/components/iconfont/swan/swan.css b/src/components/iconfont/swan/swan.css deleted file mode 100644 index 9f68d1a..0000000 --- a/src/components/iconfont/swan/swan.css +++ /dev/null @@ -1,3 +0,0 @@ -.icon { - background-repeat: no-repeat; -} diff --git a/src/components/iconfont/swan/swan.js b/src/components/iconfont/swan/swan.js deleted file mode 100644 index 75a01f1..0000000 --- a/src/components/iconfont/swan/swan.js +++ /dev/null @@ -1,64 +0,0 @@ -Component({ - properties: { - // icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu - name: { - type: String, - }, - // string | string[] - color: { - type: null, - value: '', - observer: function(color) { - this.setData({ - colors: this.fixColor(color), - isStr: typeof color === 'string', - }); - } - }, - size: { - type: Number, - value: 18, - observer: function(size) { - this.setData({ - svgSize: size / 750 * swan.getSystemInfoSync().windowWidth, - }); - }, - }, - }, - data: { - colors: '', - svgSize: 18 / 750 * swan.getSystemInfoSync().windowWidth, - quot: '"', - isStr: true, - }, - methods: { - fixColor: function() { - var color = this.data.color; - var hex2rgb = this.hex2rgb; - - if (typeof color === 'string') { - return color.indexOf('#') === 0 ? hex2rgb(color) : color; - } - - return color.map(function (item) { - return item.indexOf('#') === 0 ? hex2rgb(item) : item; - }); - }, - hex2rgb: function(hex) { - var rgb = []; - - hex = hex.substr(1); - - if (hex.length === 3) { - hex = hex.replace(/(.)/g, '$1$1'); - } - - hex.replace(/../g, function(color) { - rgb.push(parseInt(color, 0x10)); - return color; - }); - - return 'rgb(' + rgb.join(',') + ')'; - } - } -}); diff --git a/src/components/iconfont/swan/swan.json b/src/components/iconfont/swan/swan.json deleted file mode 100644 index a89ef4d..0000000 --- a/src/components/iconfont/swan/swan.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "component": true, - "usingComponents": {} -} diff --git a/src/components/iconfont/swan/swan.swan b/src/components/iconfont/swan/swan.swan deleted file mode 100644 index 02f4681..0000000 --- a/src/components/iconfont/swan/swan.swan +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/components/iconfont/tt/tt.js b/src/components/iconfont/tt/tt.js deleted file mode 100644 index 29fea52..0000000 --- a/src/components/iconfont/tt/tt.js +++ /dev/null @@ -1,64 +0,0 @@ -Component({ - properties: { - // icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu - name: { - type: String, - }, - // string | string[] - color: { - type: null, - value: '', - observer: function(color) { - this.setData({ - colors: this.fixColor(), - isStr: typeof color === 'string', - }); - } - }, - size: { - type: Number, - value: 18, - observer: function(size) { - this.setData({ - svgSize: size / 750 * tt.getSystemInfoSync().windowWidth, - }); - }, - }, - }, - data: { - colors: '', - svgSize: 18 / 750 * tt.getSystemInfoSync().windowWidth, - quot: '"', - isStr: true, - }, - methods: { - fixColor: function() { - var color = this.data.color; - var hex2rgb = this.hex2rgb; - - if (typeof color === 'string') { - return color.indexOf('#') === 0 ? hex2rgb(color) : color; - } - - return color.map(function (item) { - return item.indexOf('#') === 0 ? hex2rgb(item) : item; - }); - }, - hex2rgb: function(hex) { - var rgb = []; - - hex = hex.substr(1); - - if (hex.length === 3) { - hex = hex.replace(/(.)/g, '$1$1'); - } - - hex.replace(/../g, function(color) { - rgb.push(parseInt(color, 0x10)); - return color; - }); - - return 'rgb(' + rgb.join(',') + ')'; - } - } -}); diff --git a/src/components/iconfont/tt/tt.json b/src/components/iconfont/tt/tt.json deleted file mode 100644 index 467ce29..0000000 --- a/src/components/iconfont/tt/tt.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "component": true -} diff --git a/src/components/iconfont/tt/tt.ttml b/src/components/iconfont/tt/tt.ttml deleted file mode 100644 index ff0d6cf..0000000 --- a/src/components/iconfont/tt/tt.ttml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/components/iconfont/tt/tt.ttss b/src/components/iconfont/tt/tt.ttss deleted file mode 100644 index 9f68d1a..0000000 --- a/src/components/iconfont/tt/tt.ttss +++ /dev/null @@ -1,3 +0,0 @@ -.icon { - background-repeat: no-repeat; -} From 81ca19ee0b7c074676f1eba2262a33edc40debbf Mon Sep 17 00:00:00 2001 From: xuan Date: Mon, 5 Sep 2022 10:40:18 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E2=9C=A8=20feat(=E5=A2=9E=E5=8A=A0script?= =?UTF-8?q?=E5=91=BD=E4=BB=A4):=20=E9=99=90=E5=88=B6=E6=80=A7init:iconfont?= =?UTF-8?q?=E5=86=8D=E6=89=A7=E8=A1=8Cdev:weapp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/pre.js | 1 + config/prod.js | 1 + package.json | 11 ++++++----- src/app.config.ts | 3 ++- src/custom-tab-bar/index.tsx | 23 +++++++---------------- 5 files changed, 17 insertions(+), 22 deletions(-) diff --git a/config/pre.js b/config/pre.js index ce69a73..6238010 100644 --- a/config/pre.js +++ b/config/pre.js @@ -3,6 +3,7 @@ module.exports = { env: { NODE_ENV: '"pre"', }, + outputRoot: 'build', defineConstants: { CURRENT_BASE_URL: '"https://pre.zzfzyc.com/lymarket"', }, diff --git a/config/prod.js b/config/prod.js index 4e3a20d..507a409 100644 --- a/config/prod.js +++ b/config/prod.js @@ -3,6 +3,7 @@ module.exports = { env: { NODE_ENV: '"production"', }, + outputRoot: 'build', defineConstants: { CURRENT_BASE_URL: '"https://www.zzfzyc.com/lymarket"', }, diff --git a/package.json b/package.json index 6900c26..97bb42b 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "css": "sass" }, "scripts": { - "build:weapp": "npx iconfont-taro && taro build --type weapp", + "init:iconfont": "npx iconfont-taro", + "build:weapp": "taro build --type weapp", "build:swan": "taro build --type swan", "build:alipay": "taro build --type alipay", "build:tt": "taro build --type tt", @@ -18,17 +19,17 @@ "build:qq": "taro build --type qq", "build:jd": "taro build --type jd", "build:quickapp": "taro build --type quickapp", - "dev:weapp": "npx iconfont-taro && npm run build:weapp -- --watch", + "dev:weapp": "npm run init:iconfont && npm run build:weapp -- --watch", "dev:swan": "npm run build:swan -- --watch", "dev:alipay": "npm run build:alipay -- --watch", "dev:tt": "npm run build:tt -- --watch", - "dev:h5": "npm run build:h5 -- --watch", + "dev:h5": "npm run init:iconfont && npm run build:h5 -- --watch", "dev:rn": "npm run build:rn -- --watch", "dev:qq": "npm run build:qq -- --watch", "dev:jd": "npm run build:jd -- --watch", "dev:quickapp": "npm run build:quickapp -- --watch", - "build:weapp:pre": "npx iconfont-taro && cross-env NODE_ENV=pre taro build --type weapp", - "dev:weapp:pre": "npx iconfont-taro && cross-env NODE_ENV=pre npm run build:weapp -- --watch" + "build:weapp:pre": "npm run init:iconfont && cross-env NODE_ENV=pre taro build --type weapp", + "dev:weapp:pre": "npm run init:iconfont && cross-env NODE_ENV=pre npm run build:weapp -- --watch" }, "browserslist": [ "last 3 versions", diff --git a/src/app.config.ts b/src/app.config.ts index 86146b4..4465e1c 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -1,12 +1,13 @@ import { useGlobalIconFont } from './components/iconfont/helper' export default defineAppConfig({ - pages: ['pages/user/index', + pages: [ 'pages/index/index', 'pages/order/index', 'pages/shopping/index', 'pages/searchPage/index', 'pages/customerPage/index', 'pages/saleuserPage/index', + 'pages/user/index' ], window: { backgroundTextStyle: 'light', diff --git a/src/custom-tab-bar/index.tsx b/src/custom-tab-bar/index.tsx index 59fcca1..539b268 100644 --- a/src/custom-tab-bar/index.tsx +++ b/src/custom-tab-bar/index.tsx @@ -31,13 +31,13 @@ const CustomTabBar: FC = () => { console.log('sdfasdfa', state) return state.tabBarData }) - const tabBarIndexMap = useMemo(() => { - let map: TabBarIndexMap = {} - for (let i = 0; i < tabItem.length; i++) { - map[tabItem[i].id] = tabItem[i] - } - return map - }, [tabItem]) + // const tabBarIndexMap = useMemo(() => { + // let map: TabBarIndexMap = {} + // for (let i = 0; i < tabItem.length; i++) { + // map[tabItem[i].id] = tabItem[i] + // } + // return map + // }, [tabItem]) console.log('selectedId', selectedId) const dispatch = useDispatch>() @@ -52,15 +52,6 @@ const CustomTabBar: FC = () => { dispatch({ type: TabBarType.SET_SELECTED, data: { tabItem, selectedId: id } }) } - // const router = useRouter() - // console.log('getCurrentPages==>', router) - - // handleSelectTabItem(tabItem.find((item) => item.pagePath === router.path)?.id!)() - - // useDidShow(() => { - // console.log('getCurrentPages==>', router) - // }) - return ( From 908bd653b301948c6752cadd7204cc93b586fa9c Mon Sep 17 00:00:00 2001 From: xuan Date: Mon, 5 Sep 2022 16:32:20 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E2=9C=A8=20feat(=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E7=BB=84=E4=BB=B6):=20=E6=B7=BB=E5=8A=A0=20Tag=20?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/normalButton/index.module.scss | 37 +++++++++ src/components/normalButton/index.tsx | 43 +++++++++++ src/components/tag/index.module.scss | 33 ++++++++ src/components/tag/index.tsx | 43 +++++++++++ src/pages/user/index.module.scss | 72 ++++++++++++++++- src/pages/user/index.tsx | 73 ++++++++++++------ src/styles/common.scss | 45 ++++++----- src/styles/image/defaultAvatar.png | Bin 0 -> 5504 bytes 8 files changed, 301 insertions(+), 45 deletions(-) create mode 100644 src/components/normalButton/index.module.scss create mode 100644 src/components/normalButton/index.tsx create mode 100644 src/components/tag/index.module.scss create mode 100644 src/components/tag/index.tsx create mode 100644 src/styles/image/defaultAvatar.png diff --git a/src/components/normalButton/index.module.scss b/src/components/normalButton/index.module.scss new file mode 100644 index 0000000..f5beb07 --- /dev/null +++ b/src/components/normalButton/index.module.scss @@ -0,0 +1,37 @@ +.button { + display: flex; + padding: 0 40px; + height: 36PX; + border: 1px solid $color_main; + background-color: #fff; + text-align: center; + flex-flow: row nowrap; + justify-content: center; + align-items: center; + &--normal { + height: 36PX; + font-size: $font_size_medium; + } + &--small { + height: 30PX; + font-size: $font_size_min; + } + &--disabled { + opacity: $opacity-disabled; + } + &--primary { + border: 1px solid $color_main; + color: $color_main; + } + &--danger { + border: 1px solid $color_danger; + color: $color_danger; + } + &--warning { + border: 1px solid $color_warning; + color: $color_warning; + } + &--circle { + border-radius: 50px; + } +} diff --git a/src/components/normalButton/index.tsx b/src/components/normalButton/index.tsx new file mode 100644 index 0000000..89a22a3 --- /dev/null +++ b/src/components/normalButton/index.tsx @@ -0,0 +1,43 @@ +import { View } from '@tarojs/components' +import { FC, ReactNode } from 'react' +import classnames from 'classnames' +import styles from './index.module.scss' + +type ButtonType = 'primary' | 'danger' | 'warning' +type ButtonSize = 'normal' | 'small' + +interface PropsType { + size?: ButtonSize + type?: ButtonType + circle?: boolean + disabled?: boolean + children?: ReactNode + onClick?: Function +} + +const NormalButton: FC = ({ type = 'primary', size = 'normal', circle = false, disabled = false, children, onClick }) => { + const getClassName = () => { + const classObject = { + [styles[`button--disabled`]]: disabled, + [styles[`button--${size}`]]: size, + [styles[`button--${type}`]]: type, + [styles['button--circle']]: circle, + } + console.log('classObj==>button', classObject) + return classObject + } + + const handleClick = (event) => { + if (disabled) { + return + } + onClick && onClick(event) + } + + return ( + + {children} + + ) +} +export default NormalButton diff --git a/src/components/tag/index.module.scss b/src/components/tag/index.module.scss new file mode 100644 index 0000000..d39f25b --- /dev/null +++ b/src/components/tag/index.module.scss @@ -0,0 +1,33 @@ +.tag { + display: inline-flex; + flex-flow: row nowrap; + padding: 0 20px; + height: 60px; + color: #fff; + text-align: center; + justify-content: center; + align-items: center; + &--normal { + font-size: $font_size_medium; + height: 40px; + } + &--small{ + font-size: $font_size_min; + height: 30px; + } + &--circle{ + border-radius: 8PX; + } + &--danger { + background-color: $color_danger; + } + &--primary{ + background-color: $color_main; + } + &--warning{ + background-color: $color_warning; + } + &--disabled { + opacity: $opacity-disabled; + } +} diff --git a/src/components/tag/index.tsx b/src/components/tag/index.tsx new file mode 100644 index 0000000..3b9485b --- /dev/null +++ b/src/components/tag/index.tsx @@ -0,0 +1,43 @@ +import { View } from '@tarojs/components' +import { FC, ReactNode } from 'react' +import classnames from 'classnames' +import styles from './index.module.scss' + +type TagSize = 'small' | 'normal' +type TagType = 'primary' | 'danger' | 'warning' + +interface PropsType { + type?: TagType + disabled?: boolean + size?: TagSize + children?: ReactNode + onClick?: Function + circle?: boolean + customStyle?: React.CSSProperties +} + +const Tag: FC = ({ type = 'primary', size = 'normal', disabled = false, children, onClick, circle = false, customStyle = {} }) => { + const handleClick = (event) => { + if (disabled) { + return + } + onClick && onClick(event) + } + + const getClassName = () => { + const classObject = { + [styles['tag--disabled']]: disabled, + [styles[`tag--${size}`]]: size, + [styles[`tag--${type}`]]: type, + [styles['tag--circle']]: circle, + } + console.log('classObj==>', classObject) + return classObject + } + return ( + + {children} + + ) +} +export default Tag diff --git a/src/pages/user/index.module.scss b/src/pages/user/index.module.scss index c4c3e5e..24e5279 100644 --- a/src/pages/user/index.module.scss +++ b/src/pages/user/index.module.scss @@ -1,5 +1,75 @@ -.main{ +.main { width: 100%; min-height: 100vh; background: linear-gradient(to bottom, $color_main 25%, $color_bg_one 42%); + padding: 12PX; + box-sizing: border-box; +} +.userAvatar { + position: relative; + width: 62PX; + height: 62PX; + border-radius: 50%; + background-color: #fff; + overflow: hidden; + &-text { + display: block; + width: 100%; + position: absolute; + left: 0; + bottom: 0; + height: 15PX; + color: #fff; + text-align: center; + line-height: 15PX; + font-size: 22px; + background-color: rgba($color: #000000, $alpha: 0.33); + } +} +.userInfo { + background-color: #fff; + border-radius: 20px; + padding: 32px; + display: flex; + flex-flow: column nowrap; + justify-content: space-between; + .topBar { + display: flex; + flex-flow: row nowrap; + justify-content: space-between; + align-items: center; + .left { + } + .middle { + margin: 0 40px; + flex: 1 1 auto; + } + .right { + } + } + .bottomBar { + display: flex; + flex-flow: row nowrap; + align-items: center; + border-radius: 10PX; + background-color: #f6f6f6; + margin-top: 20px; + padding: 15px; + } +} +.username { + display: block; + font-size: 36px; + font-weight: 600; +} +.userno { + display: block; + font-size: 28px; + color: $color_font_two; +} +.userTitle{ + color: #626262; + font-weight: 600; + font-size: $font_size_medium; + margin-left: 20px; } diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index 3efd58b..ab77c56 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -1,41 +1,64 @@ import { isEmptyObject } from '@/common/common' -import { Button, View } from '@tarojs/components' +import { Button, View, Image, Text } from '@tarojs/components' import { FC, memo, useMemo, useState } from 'react' import styles from './index.module.scss' -const SonComp: FC = memo(() => { - return 我改变了吗{new Date().getTime()} -}) +import defaultAvatar from '../../styles/image/defaultAvatar.png' +import NormalButton from '@/components/normalButton' +import Tag from '@/components/tag' +import Divider from '@/components/Divider' // 用户信息 const UserInfo: FC = () => { - return sdfasdf + const [userInfo, setUserInfo] = useState({ + avatarUrl: '', + username: '', + userno: '', + }) + + const handleLogout = () => {} + + return ( + + + + + + + 杨子杰 + 064 + + + + 退出登录 + + + + + + IT部门 + + + IT-开发总监 + + + ) +} +// 用户头像 +const UserAvatar = ({ src }) => { + return ( + + + {src ? null : 编辑} + + ) } // 我的 const User = () => { - const obj = {} - console.log(isEmptyObject(obj)) - const [count, setCount] = useState(0) - const handleCount = () => { - setCount((prev) => { - return prev + 1 - }) - } - - // const page = useMemo(() => Taro.getCurrentInstance().page, []) - // console.log('page', page) - // useDidShow(async () => { - // const tabbar = await Taro.getTabBar(page) - // console.log('tabbar==>', tabbar) - // tabbar?.setSelected(4) - // }) return ( <> - + - sdfasdfasdf {count} - - ) diff --git a/src/styles/common.scss b/src/styles/common.scss index 11655cf..5549c46 100644 --- a/src/styles/common.scss +++ b/src/styles/common.scss @@ -1,9 +1,15 @@ - -$color_bg_one: #F8F8F8; -$color_font_one: #3C3C3C; -$color_font_two: #ABABAB; +$color_bg_one: #f8f8f8; +$color_font_one: #3c3c3c; +$color_font_two: #ababab; $color_font_three: #707070; -$color_main: #4581FF; +$color_main: #4581ff; + +$color_danger: #e64340; +$color_warning: #e6a23c; + +$opacity-disabled: 0.3; +$borderStyle: solid; +$borderColor: #ebebeb; $font_size_big: 32px; $font_size: 28px; @@ -12,22 +18,23 @@ $font_size_min: 22px; //安全底部距离 .common_safe_area_y { - width: 100%; - height: constant(safe-area-inset-bottom); /* 兼容 iOS < 11.2 */ - height: env(safe-area-inset-bottom); /* 兼容 iOS >= 11.2 */ + width: 100%; + height: constant(safe-area-inset-bottom); /* 兼容 iOS < 11.2 */ + height: env(safe-area-inset-bottom); /* 兼容 iOS >= 11.2 */ } //省略号 -@mixin common_ellipsis($params:1) { - overflow: hidden; - display: -webkit-box; - white-space:normal; - text-overflow:ellipsis; - word-break:break-all; - -webkit-box-orient: vertical; - -webkit-line-clamp: $params; - - +@mixin common_ellipsis($params: 1) { + overflow: hidden; + display: -webkit-box; + white-space: normal; + text-overflow: ellipsis; + word-break: break-all; + -webkit-box-orient: vertical; + -webkit-line-clamp: $params; } - +.full-100 { + width: 100%; + height: 100%; +} diff --git a/src/styles/image/defaultAvatar.png b/src/styles/image/defaultAvatar.png new file mode 100644 index 0000000000000000000000000000000000000000..d55d148d8655cc095c68de6da0c9c13a8fcf5c86 GIT binary patch literal 5504 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 Date: Mon, 5 Sep 2022 16:43:04 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=F0=9F=90=9E=20fix(=E9=AB=98=E5=BA=A6):?= =?UTF-8?q?=20=E8=B0=83=E6=95=B4page=E9=AB=98=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.scss | 5 +++-- src/custom-tab-bar/index.module.scss | 2 +- src/styles/common.scss | 3 +++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app.scss b/src/app.scss index 2ff25c6..e4f700b 100644 --- a/src/app.scss +++ b/src/app.scss @@ -8,8 +8,9 @@ [相关说明](https://developers.weixin.qq.com/community/develop/doc/000a60f7d58a982f08d7ddfc456000) */ +// 总高度 - 自定义tabbar高度 - apple小黑条高度 page { - height: 100%; + height: calc(100% - #{$customTabBarHeight} - constant(safe-area-inset-bottom)); + height: calc(100% - #{$customTabBarHeight} - env(safe-area-inset-bottom)); background-color: #f7f7f7; } - diff --git a/src/custom-tab-bar/index.module.scss b/src/custom-tab-bar/index.module.scss index 9a301ff..3075c58 100644 --- a/src/custom-tab-bar/index.module.scss +++ b/src/custom-tab-bar/index.module.scss @@ -3,7 +3,7 @@ left: 0; bottom: 0; width: 100%; - height: 100px; + height: $customTabBarHeight; display: flex; flex-flow: row nowrap; padding-bottom: env(safe-area-inset-bottom); diff --git a/src/styles/common.scss b/src/styles/common.scss index 5549c46..50eed22 100644 --- a/src/styles/common.scss +++ b/src/styles/common.scss @@ -16,6 +16,9 @@ $font_size: 28px; $font_size_medium: 24px; $font_size_min: 22px; +$customTabBarHeight: 100px; + + //安全底部距离 .common_safe_area_y { width: 100%; From 7b9226b01783a2e92ca484553444a3d99244f3ef Mon Sep 17 00:00:00 2001 From: xuan Date: Mon, 5 Sep 2022 17:51:37 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E2=9C=A8=20feat(=E7=BB=84=E4=BB=B6):=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20iconCard=20=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- global.d.ts | 2 +- src/components/iconCard/index.module.scss | 6 + src/components/iconCard/index.tsx | 26 ++++ src/components/layoutBlock/index.module.scss | 16 +++ src/components/layoutBlock/index.tsx | 29 +++++ src/pages/user/index.module.scss | 56 ++++---- src/pages/user/index.tsx | 130 +++++++++++++++---- 7 files changed, 210 insertions(+), 55 deletions(-) create mode 100644 src/components/iconCard/index.module.scss create mode 100644 src/components/iconCard/index.tsx create mode 100644 src/components/layoutBlock/index.module.scss create mode 100644 src/components/layoutBlock/index.tsx diff --git a/global.d.ts b/global.d.ts index 947366a..f8ba444 100644 --- a/global.d.ts +++ b/global.d.ts @@ -19,4 +19,4 @@ declare namespace NodeJS { declare const CURRENT_VERSION: string declare const CURRENT_GITHASH: string -declare const CURRENT_ENV: string \ No newline at end of file +declare const CURRENT_ENV: string diff --git a/src/components/iconCard/index.module.scss b/src/components/iconCard/index.module.scss new file mode 100644 index 0000000..7641bf9 --- /dev/null +++ b/src/components/iconCard/index.module.scss @@ -0,0 +1,6 @@ +.iconCard { + display: flex; + flex-flow: column nowrap; + justify-content: center; + align-items: center; +} diff --git a/src/components/iconCard/index.tsx b/src/components/iconCard/index.tsx new file mode 100644 index 0000000..1ae1ef1 --- /dev/null +++ b/src/components/iconCard/index.tsx @@ -0,0 +1,26 @@ +import { View } from "@tarojs/components" +import { FC, ReactNode } from "react" +import IconFont from "../iconfont" +import styles from './index.module.scss' + +type IconfontName = Parameters['0']['name'] + +interface PropsType { + iconName: IconfontName + title: string + children?: ReactNode + onClick?: Function +} +const IconCard: FC = (props) => { + const { iconName, title, onClick } = props + const handleClick = (event) => { + onClick && onClick(event) + } + return ( + + + {title} + + ) +} +export default IconCard diff --git a/src/components/layoutBlock/index.module.scss b/src/components/layoutBlock/index.module.scss new file mode 100644 index 0000000..0e3b807 --- /dev/null +++ b/src/components/layoutBlock/index.module.scss @@ -0,0 +1,16 @@ +.layoutBlock { + display: flex; + flex-flow: row nowrap; + background-color: #fff; + padding: 32px; + margin-bottom: 20px; + &--row { + flex-flow: row nowrap; + } + &--col { + flex-flow: column nowrap; + } + &--circle { + border-radius: 20px; + } +} diff --git a/src/components/layoutBlock/index.tsx b/src/components/layoutBlock/index.tsx new file mode 100644 index 0000000..49c7f87 --- /dev/null +++ b/src/components/layoutBlock/index.tsx @@ -0,0 +1,29 @@ +import { View } from '@tarojs/components' +import { FC, ReactNode } from 'react' +import classnames from 'classname' +import styles from './index.module.scss' + +type FlexDirection = 'row' | 'col' + +interface PropsType { + flexDirection?: FlexDirection + + circle?: boolean + children?: ReactNode + customStyle?: React.CSSProperties +} + +const LayoutBlock: FC = (props) => { + const { flexDirection = 'col', circle = false, children } = props + + const getClassName = () => { + const classObject = { + [styles['layoutBlock--circle']]: circle, + [styles[`layoutBlock--${flexDirection}`]]: flexDirection, + } + return classObject + } + + return {children} +} +export default LayoutBlock diff --git a/src/pages/user/index.module.scss b/src/pages/user/index.module.scss index 24e5279..7ab6540 100644 --- a/src/pages/user/index.module.scss +++ b/src/pages/user/index.module.scss @@ -2,13 +2,13 @@ width: 100%; min-height: 100vh; background: linear-gradient(to bottom, $color_main 25%, $color_bg_one 42%); - padding: 12PX; + padding: 24px; box-sizing: border-box; } .userAvatar { position: relative; - width: 62PX; - height: 62PX; + width: 124px; + height: 124px; border-radius: 50%; background-color: #fff; overflow: hidden; @@ -18,44 +18,36 @@ position: absolute; left: 0; bottom: 0; - height: 15PX; + height: 30px; color: #fff; text-align: center; - line-height: 15PX; + line-height: 30px; font-size: 22px; background-color: rgba($color: #000000, $alpha: 0.33); } } -.userInfo { - background-color: #fff; - border-radius: 20px; - padding: 32px; +.topBar { display: flex; - flex-flow: column nowrap; + flex-flow: row nowrap; justify-content: space-between; - .topBar { - display: flex; - flex-flow: row nowrap; - justify-content: space-between; - align-items: center; - .left { - } - .middle { - margin: 0 40px; - flex: 1 1 auto; - } - .right { - } + align-items: center; + .left { } - .bottomBar { - display: flex; - flex-flow: row nowrap; - align-items: center; - border-radius: 10PX; - background-color: #f6f6f6; - margin-top: 20px; - padding: 15px; + .middle { + margin: 0 40px; + flex: 1 1 auto; } + .right { + } +} +.bottomBar { + display: flex; + flex-flow: row nowrap; + align-items: center; + border-radius: 10px; + background-color: #f6f6f6; + margin-top: 20px; + padding: 15px; } .username { display: block; @@ -67,7 +59,7 @@ font-size: 28px; color: $color_font_two; } -.userTitle{ +.userTitle { color: #626262; font-weight: 600; font-size: $font_size_medium; diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index ab77c56..23a37a9 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -6,6 +6,9 @@ import defaultAvatar from '../../styles/image/defaultAvatar.png' import NormalButton from '@/components/normalButton' import Tag from '@/components/tag' import Divider from '@/components/Divider' +import LayoutBlock from '@/components/layoutBlock' +import IconCard from '@/components/iconCard' + // 用户信息 const UserInfo: FC = () => { const [userInfo, setUserInfo] = useState({ @@ -14,32 +17,116 @@ const UserInfo: FC = () => { userno: '', }) + const feature = [ + { + iconName: 'icon-lingquseka', + name: '领取色卡', + path: '', + }, + { + iconName: 'icon-pandiansaoma', + name: '盘点扫码', + path: '', + }, + { + iconName: 'icon-fahuoliebiao', + name: '发货列表', + path: '', + }, + { + iconName: 'icon-yaoqingma', + name: '邀请码', + path: '', + }, + { + iconName: 'icon-tihuoliebiao', + name: '提货列表', + path: '', + }, + { + iconName: 'icon-shouhouzhongxin', + name: '退货退款', + path: '', + }, + { + iconName: 'icon-shoukuanliebiao', + name: '收款列表', + path: '', + }, + ] + + const fabric = [ + { + iconName: 'icon-yansequyang', + name: '颜色取样', + path: '', + }, + { + iconName: 'icon-qusechazhao', + name: '取色查找', + path: '', + }, + { + iconName: 'icon-yangpinduibi', + name: '样品对比', + path: '', + }, + ] + + const statisticAnalysis = [ + { + iconName: 'icon-xiaoshou', + name: '销售', + path: '', + }, + { + iconName: 'icon-duizhang', + name: '对账', + path: '', + }, + { + iconName: 'icon-yuncangkucun', + name: '云仓库存', + path: '', + }, + { + iconName: 'icon-qianzhicangkucun', + name: '前置仓库存', + path: '', + }, + ] + const handleLogout = () => {} return ( - - - - + <> + + + + + + + 杨子杰 + 064 + + + + 退出登录 + + - - 杨子杰 - 064 + + + IT部门 + + + IT-开发总监 - - - 退出登录 - - - - - - IT部门 - - - IT-开发总监 - - + + + {/* */} + + ) } // 用户头像 @@ -54,7 +141,6 @@ const UserAvatar = ({ src }) => { // 我的 const User = () => { - return ( <> From 6197754310ba1deae0d5651e9c5190cea726b8df Mon Sep 17 00:00:00 2001 From: xuan Date: Wed, 7 Sep 2022 19:15:01 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E2=9C=A8=20feat(=E6=88=91=E7=9A=84):=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=88=91=E7=9A=84=E9=A1=B5=E9=9D=A2UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/iconCard/index.module.scss | 5 +++ src/components/iconCard/index.tsx | 2 +- src/components/layoutBlock/index.tsx | 7 +++- src/components/tag/index.module.scss | 2 +- src/pages/user/index.module.scss | 39 ++++++++++++++++---- src/pages/user/index.tsx | 45 +++++++++++++++++++++-- src/styles/common.scss | 1 + 7 files changed, 86 insertions(+), 15 deletions(-) diff --git a/src/components/iconCard/index.module.scss b/src/components/iconCard/index.module.scss index 7641bf9..751e275 100644 --- a/src/components/iconCard/index.module.scss +++ b/src/components/iconCard/index.module.scss @@ -3,4 +3,9 @@ flex-flow: column nowrap; justify-content: center; align-items: center; + &-name{ + font-size: 28px; + color: #333; + margin-top: 16px; + } } diff --git a/src/components/iconCard/index.tsx b/src/components/iconCard/index.tsx index 1ae1ef1..14a8fee 100644 --- a/src/components/iconCard/index.tsx +++ b/src/components/iconCard/index.tsx @@ -19,7 +19,7 @@ const IconCard: FC = (props) => { return ( - {title} + {title} ) } diff --git a/src/components/layoutBlock/index.tsx b/src/components/layoutBlock/index.tsx index 49c7f87..057c0fe 100644 --- a/src/components/layoutBlock/index.tsx +++ b/src/components/layoutBlock/index.tsx @@ -11,6 +11,7 @@ interface PropsType { circle?: boolean children?: ReactNode customStyle?: React.CSSProperties + } const LayoutBlock: FC = (props) => { @@ -24,6 +25,10 @@ const LayoutBlock: FC = (props) => { return classObject } - return {children} + return + + {children} + + } export default LayoutBlock diff --git a/src/components/tag/index.module.scss b/src/components/tag/index.module.scss index d39f25b..b4ac861 100644 --- a/src/components/tag/index.module.scss +++ b/src/components/tag/index.module.scss @@ -16,7 +16,7 @@ height: 30px; } &--circle{ - border-radius: 8PX; + border-radius: 10px; } &--danger { background-color: $color_danger; diff --git a/src/pages/user/index.module.scss b/src/pages/user/index.module.scss index 7ab6540..737373a 100644 --- a/src/pages/user/index.module.scss +++ b/src/pages/user/index.module.scss @@ -1,14 +1,12 @@ .main { - width: 100%; - min-height: 100vh; background: linear-gradient(to bottom, $color_main 25%, $color_bg_one 42%); padding: 24px; box-sizing: border-box; } .userAvatar { position: relative; - width: 124px; - height: 124px; + width: 122px; + height: 122px; border-radius: 50%; background-color: #fff; overflow: hidden; @@ -18,13 +16,14 @@ position: absolute; left: 0; bottom: 0; - height: 30px; + height: 31px; color: #fff; text-align: center; - line-height: 30px; - font-size: 22px; + line-height: 31px; + font-size: 20px; background-color: rgba($color: #000000, $alpha: 0.33); } + } .topBar { display: flex; @@ -44,7 +43,7 @@ display: flex; flex-flow: row nowrap; align-items: center; - border-radius: 10px; + border-radius: 16px; background-color: #f6f6f6; margin-top: 20px; padding: 15px; @@ -65,3 +64,27 @@ font-size: $font_size_medium; margin-left: 20px; } +.grid-container{ + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; + grid-column-gap: 32px; + grid-row-gap: 32px; +} +.layoutTabBar { + display: flex; + flex-flow: row nowrap; + justify-content: space-between; + align-items: center; +} +.layoutTitle { + font-size: 32px; + font-weight: 600; + color: #333; + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + margin-bottom: 20px; + +} +.layoutDescription { + font-size: 24px; + color: $color_main; +} diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index 23a37a9..832611e 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -8,6 +8,14 @@ import Tag from '@/components/tag' import Divider from '@/components/Divider' import LayoutBlock from '@/components/layoutBlock' import IconCard from '@/components/iconCard' +import IconFont from '@/components/iconfont' + +type IconfontName = Parameters['0']['name'] +type IconCardType = { + iconName: IconfontName, + name: string, + path: string +} // 用户信息 const UserInfo: FC = () => { @@ -16,8 +24,9 @@ const UserInfo: FC = () => { username: '', userno: '', }) + - const feature = [ + const feature: IconCardType[] = [ { iconName: 'icon-lingquseka', name: '领取色卡', @@ -55,7 +64,7 @@ const UserInfo: FC = () => { }, ] - const fabric = [ + const fabric: IconCardType[] = [ { iconName: 'icon-yansequyang', name: '颜色取样', @@ -73,7 +82,7 @@ const UserInfo: FC = () => { }, ] - const statisticAnalysis = [ + const statisticAnalysis: IconCardType[] = [ { iconName: 'icon-xiaoshou', name: '销售', @@ -124,7 +133,35 @@ const UserInfo: FC = () => { - {/* */} + 功能特色 + + {feature.map((item) => { + return + })} + + + + 布料取色 + + {fabric.map((item) => { + return + })} + + + + 统计分析 + + {statisticAnalysis.map((item) => { + return + })} + + + + + 客户列表 + 查看全部客户 ▶ + + asdfasdfasdfas ) diff --git a/src/styles/common.scss b/src/styles/common.scss index 50eed22..9f2f08b 100644 --- a/src/styles/common.scss +++ b/src/styles/common.scss @@ -41,3 +41,4 @@ $customTabBarHeight: 100px; width: 100%; height: 100%; } + From bc3eb9dad3aff1824656f5e1c61197ba9add29a1 Mon Sep 17 00:00:00 2001 From: xuan Date: Thu, 8 Sep 2022 11:39:16 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E2=9C=A8=20feat(=E6=88=91=E7=9A=84):=20?= =?UTF-8?q?=E5=B7=B2=E5=AE=8C=E6=88=90=E6=88=91=E7=9A=84UI=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/index.js | 4 +++- src/components/iconCard/index.module.scss | 2 +- src/pages/order/index.tsx | 12 ------------ src/pages/user/index.config.ts | 2 +- src/pages/user/index.module.scss | 7 +++++++ src/pages/user/index.tsx | 9 +++++++-- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/config/index.js b/config/index.js index fbb6e6d..3b436bc 100644 --- a/config/index.js +++ b/config/index.js @@ -44,7 +44,9 @@ const config = { postcss: { pxtransform: { enable: true, - config: {}, + config: { + onePxTransform: false, + }, }, url: { enable: true, diff --git a/src/components/iconCard/index.module.scss b/src/components/iconCard/index.module.scss index 751e275..d36c6aa 100644 --- a/src/components/iconCard/index.module.scss +++ b/src/components/iconCard/index.module.scss @@ -4,7 +4,7 @@ justify-content: center; align-items: center; &-name{ - font-size: 28px; + font-size: 26px; color: #333; margin-top: 16px; } diff --git a/src/pages/order/index.tsx b/src/pages/order/index.tsx index 459bcc3..8d378d8 100644 --- a/src/pages/order/index.tsx +++ b/src/pages/order/index.tsx @@ -1,4 +1,3 @@ -<<<<<<< HEAD import { View, ScrollView, Input, Button } from '@tarojs/components' import { useCallback, useEffect, useMemo, useRef, useState, } from 'react' import { mpenumsaleorderstatus, OrderListApi } from '@/api/order' @@ -11,17 +10,6 @@ import Popup from '@/components/popup' import InfiniteScroll from '@/components/infiniteScroll' import { compose } from 'redux' import Taro, { useDidShow } from '@tarojs/taro' -======= -import { View } from '@tarojs/components' -import Taro, { useDidShow } from '@tarojs/taro' -import { useMemo, useState } from 'react' -const Order = () => { - - - const [count, setCount] = useState(0) - return {count} -} ->>>>>>> d851d6d (🎈 perf(自定义tabbar): 优化自定义tabbar) export default () => { //页码和页数 diff --git a/src/pages/user/index.config.ts b/src/pages/user/index.config.ts index 90ec98a..5531ea2 100644 --- a/src/pages/user/index.config.ts +++ b/src/pages/user/index.config.ts @@ -4,5 +4,5 @@ export default definePageConfig({ navigationBarBackgroundColor: '#4581FF', backgroundColor: '#4581FF', backgroundColorTop: '#4581FF', - enablePullDownRefresh: true + enablePullDownRefresh: true, }) diff --git a/src/pages/user/index.module.scss b/src/pages/user/index.module.scss index 737373a..a1f1daf 100644 --- a/src/pages/user/index.module.scss +++ b/src/pages/user/index.module.scss @@ -1,7 +1,14 @@ +page{ + position: relative; + +} .main { background: linear-gradient(to bottom, $color_main 25%, $color_bg_one 42%); padding: 24px; + padding-bottom: 0; box-sizing: border-box; + overflow-y: scroll; + height: 100%; } .userAvatar { position: relative; diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index 832611e..74a38c7 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -62,6 +62,11 @@ const UserInfo: FC = () => { name: '收款列表', path: '', }, + { + iconName: 'icon-shoukuanliebiao', + name: '客户列表', + path: '', + }, ] const fabric: IconCardType[] = [ @@ -156,13 +161,13 @@ const UserInfo: FC = () => { })} - + {/* 客户列表 查看全部客户 ▶ asdfasdfasdfas - + */} ) }