From f9e437ce29d163fa8a05451e9115cf7b899752ff Mon Sep 17 00:00:00 2001 From: luojiayi <1712054227@qq.com> Date: Fri, 18 Apr 2025 16:47:57 +0800 Subject: [PATCH] =?UTF-8?q?2025=E5=B9=B404=E6=9C=8818=E6=97=A516:47:55?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iconfont.json | 10 --- jsconfig.json | 3 +- package.json | 1 - src/app.js | 2 +- src/app.less | 9 +- src/assets/cancel.png | Bin 0 -> 1129 bytes src/assets/chromaticCircle.png | Bin 0 -> 11720 bytes src/assets/confirm.png | Bin 0 -> 1286 bytes src/assets/history.png | Bin 0 -> 1569 bytes src/assets/sliding.png | Bin 0 -> 7410 bytes src/components/color-diy/index.jsx | 40 +++------ src/components/color-diy/index.less | 72 ++++++++++------ src/pages/index copy/index.config.js | 3 + src/pages/index copy/index.jsx | 62 ++++++++++++++ src/pages/index copy/index.less | 24 ++++++ src/pages/index/index.jsx | 74 ++++++---------- src/pages/index/index.less | 122 +++++++++++++++++++++++---- 17 files changed, 290 insertions(+), 132 deletions(-) delete mode 100644 iconfont.json create mode 100644 src/assets/cancel.png create mode 100644 src/assets/chromaticCircle.png create mode 100644 src/assets/confirm.png create mode 100644 src/assets/history.png create mode 100644 src/assets/sliding.png create mode 100644 src/pages/index copy/index.config.js create mode 100644 src/pages/index copy/index.jsx create mode 100644 src/pages/index copy/index.less diff --git a/iconfont.json b/iconfont.json deleted file mode 100644 index 68a1a3b..0000000 --- a/iconfont.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "symbol_url": "http://at.alicdn.com/t/c/font_4676378_sj2smiyxso7.js", - "save_dir": "./src/components/iconfont", - "use_typescript": false, - "platforms": ["weapp"], - "use_rpx": true, - "trim_icon_prefix": "", - "default_icon_size": 18, - "design_width": 750 -} diff --git a/jsconfig.json b/jsconfig.json index 50ba04a..1695c86 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -8,8 +8,7 @@ "@/images/*": ["./src/images/*"], "@/api/*": ["./src/api/*"], "@/store/*": ["./src/store/*"], - "@/baseRouter/*": ["./src/baseRouter/*"], - "@/src/*": ["./src/*"], + "@/src/*": ["./src/*"] } } } diff --git a/package.json b/package.json index 9394952..ca99c89 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,6 @@ "postcss": "^8.4.18", "react-refresh": "^0.11.0", "stylelint": "^14.4.0", - "taro-iconfont-cli": "^3.3.0", "ts-node": "^10.9.1", "webpack": "5.78.0" } diff --git a/src/app.js b/src/app.js index cb19051..600559e 100644 --- a/src/app.js +++ b/src/app.js @@ -5,7 +5,7 @@ import BLESDK from './utils/ble' function App({ children }) { useLaunch(() => { - BLESDK.openBluetoothAdapter() + // BLESDK.openBluetoothAdapter() }) // children 是将要会渲染的页面 diff --git a/src/app.less b/src/app.less index cb02dfe..615ed30 100644 --- a/src/app.less +++ b/src/app.less @@ -1,10 +1,17 @@ .index { + flex: 1; +} + +page { + margin: 0; + padding: 0; position: absolute; left: 0; right: 0; bottom: 0; top: 0; + overflow: hidden; display: flex; flex-direction: column; - align-items: center; + } diff --git a/src/assets/cancel.png b/src/assets/cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..ae5e07b005615ec936553469b04033e5cb3fda07 GIT binary patch literal 1129 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 literal 0 HcmV?d00001 diff --git a/src/components/color-diy/index.jsx b/src/components/color-diy/index.jsx index 1c3697a..6026fff 100644 --- a/src/components/color-diy/index.jsx +++ b/src/components/color-diy/index.jsx @@ -4,7 +4,7 @@ import './index.less' import { useEffect, useState } from 'react' import Taro from '@tarojs/taro' -export default function Index() { +export default function Index({ open, handleColorPicker }) { const [data, setData] = useState({ boundaryData: [], // 元素边界信息 gradient: '', @@ -37,10 +37,6 @@ export default function Index() { }) useEffect(() => { - show() - }, []) - - const show = () => { setData((state) => { state.hsb = rgbToHsb(data.rgba) state.hex = '#' + rgbToHex(data.rgba) @@ -50,7 +46,7 @@ export default function Index() { wx.nextTick(() => { getBoundaryData(); }) - } + }, []) // 获取元素边界值 const getBoundaryData = () => { @@ -67,15 +63,11 @@ export default function Index() { } const confirm = () => { - const { rgba, hex } = data - console.log({ - rgba: [rgba.r, rgba.g, rgba.b, rgba.a], - hex - }); + handleColorPicker({ rgba: [data.rgba.r, data.rgba.g, data.rgba.b, data.rgba.a], hex: data.hex }) } const close = () => { - + handleColorPicker() } const touchstart = (e) => { @@ -94,6 +86,7 @@ export default function Index() { pageX, pageY } = e.touches[0]; + console.log(pageX, pageY, index); setPointAndColor(pageX, pageY, index); } @@ -350,17 +343,17 @@ export default function Index() { }; } const { bgcolor, point, rgba } = data + useEffect(() => { + }, []) return ( - - - + + - 取消 - 确认 + + 颜色选取 + - - @@ -370,7 +363,7 @@ export default function Index() { - + {data.hex} @@ -378,15 +371,10 @@ export default function Index() { - - - - - - + ) } diff --git a/src/components/color-diy/index.less b/src/components/color-diy/index.less index 126f9c6..ffb9ed8 100644 --- a/src/components/color-diy/index.less +++ b/src/components/color-diy/index.less @@ -6,17 +6,33 @@ right: 0; overflow: hidden; box-sizing: border-box; + z-index: -100; + background: rgba(0, 0, 0, 0.4); + transition: all 0.3s; + opacity: 0; +} + +.wrapper_show { + opacity: 1; z-index: 9999; } + .cp-box { width: 100%; position: absolute; bottom: 0; - padding: 30rpx 0; + padding: 30rpx 0 50rpx; padding-top: 0; background: #fff; transition: all 0.3s; + transform: translate(0, 100%); + border-radius: 16rpx 16rpx 0 0; + overflow: hidden; +} + +.dialog_show { + transform: translate(0, 0); } .cp-header { @@ -24,47 +40,45 @@ justify-content: space-between; align-items: center; height: 100rpx; - border-bottom: 1px #eee solid; box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); background: #fff; padding-left: 20rpx; padding-right: 20rpx; } -.cp-header-button { +.cp-header-icon { display: flex; align-items: center; justify-content: center; - width: 150rpx; - height: 80rpx; - font-size: 30rpx; - color: #666; - border: 2rpx solid #3963bc; - border-radius: 15rpx; + width: 50rpx; + height: 50rpx; +} + +.cancel { + background: url('../../assets/cancel.png') no-repeat center center; + background-size: 30rpx; +} + +.confirm { + background: url('../../assets/confirm.png') no-repeat center center; + background-size: 30rpx; +} + +.cp-header-title { + text-align: center; } .cp-button-confirm { - background-color: #3963bc; + background-color: #5F93FA; color: #fff; } -.cp-mask { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(0, 0, 0, 0.6); - z-index: -1; - transition: all 0.3s; -} .cp-color-box { position: relative; height: 400rpx; background: rgb(255, 0, 0); overflow: hidden; - box-sizing: border-box; margin: 0 20rpx; margin-top: 20rpx; box-sizing: border-box; @@ -77,6 +91,7 @@ right: 0; bottom: 0; background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0)); + } .cp-color-mask { @@ -116,9 +131,9 @@ .cp-control-color { flex-shrink: 0; - width: 100rpx; - height: 100rpx; - border-radius: 50%; + width: 170rpx; + height: 60rpx; + border-radius: 90rpx; background-color: #fff; background-image: linear-gradient(45deg, #eee 25%, transparent 25%, transparent 75%, #eee 75%, #eee), linear-gradient(45deg, #eee 25%, transparent 25%, transparent 75%, #eee 75%, #eee); @@ -130,12 +145,16 @@ .cp-control-color-content { width: 100%; height: 100%; + text-align: center; + line-height: 60rpx; + font-size: 26rpx; + color: #fff; } .cp-control-box-item { display: flex; - flex-direction: column; - justify-content: space-between; + justify-content: center; + align-items: center; width: 100%; padding: 0 30rpx; } @@ -154,6 +173,7 @@ .cp-hue { width: 100%; height: 100%; + border-radius: 30px; background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%); } diff --git a/src/pages/index copy/index.config.js b/src/pages/index copy/index.config.js new file mode 100644 index 0000000..932c2d2 --- /dev/null +++ b/src/pages/index copy/index.config.js @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: "首页", +}); diff --git a/src/pages/index copy/index.jsx b/src/pages/index copy/index.jsx new file mode 100644 index 0000000..138e1fd --- /dev/null +++ b/src/pages/index copy/index.jsx @@ -0,0 +1,62 @@ +import { View } from '@tarojs/components' +import './index.less' +import { Button } from "@taroify/core" +import BLESDK from '../../utils/ble' +import Taro, { useDidShow } from '@tarojs/taro' +import { useState } from 'react' +import { getInitData } from '@/utils/sendOrder' + +export default function Index() { + const [deviceInfo, setDeviceInfo] = useState(BLESDK.deviceInfo) + const [disabled, setDisabled] = useState(!!BLESDK.deviceInfo.state) + const [loading, setLoading] = useState(false) + const deviceCallBack = () => { + setDeviceInfo({ ...BLESDK.deviceInfo }) + if (BLESDK.deviceInfo.state) { + setDisabled(true) + } + } + const lookSleep = () => { + // if (!BLESDK.deviceInfo.state) return Taro.showToast({ title: '请先连接设备', icon: 'none' }) + Taro.navigateTo({ url: '/pages/funList/index' }) + } + + useDidShow(() => { + BLESDK.deviceCallBack(deviceCallBack) + setDeviceInfo({ ...BLESDK.deviceInfo }) + setDisabled(!!BLESDK.deviceInfo.state) + }) + + const searchBluetooth = () => { + BLESDK.startBluetoothDevicesDiscovery() + setLoading(true) + setDisabled(true) + setTimeout(() => { + BLESDK.stopBluetoothDevicesDiscovery(); + setLoading(false) + setDisabled(!!BLESDK.deviceInfo.state) + }, 6000) + } + + return ( + + + + NAME: + {deviceInfo.name || '--'} + + + MAC: + {deviceInfo.mac || '--'} + + + 连接状态: + {deviceInfo.name ? deviceInfo.state ? '已连接' : '未连接' : '--'} + + + + + + + ) +} diff --git a/src/pages/index copy/index.less b/src/pages/index copy/index.less new file mode 100644 index 0000000..4ff1320 --- /dev/null +++ b/src/pages/index copy/index.less @@ -0,0 +1,24 @@ +.btn { + width: 80%; + margin-top: 20rpx; +} + +.device { + .item { + width: 500rpx; + display: flex; + align-items: center; + font-size: 28rpx; + margin-bottom: 10rpx; + + .item-label { + width: 160rpx; + text-align: right; + } + } +} + +.connect { + position: fixed; + bottom: 60px; +} diff --git a/src/pages/index/index.jsx b/src/pages/index/index.jsx index 138e1fd..652c3e1 100644 --- a/src/pages/index/index.jsx +++ b/src/pages/index/index.jsx @@ -1,62 +1,38 @@ -import { View } from '@tarojs/components' +import { View, Image } from '@tarojs/components' import './index.less' -import { Button } from "@taroify/core" -import BLESDK from '../../utils/ble' -import Taro, { useDidShow } from '@tarojs/taro' -import { useState } from 'react' -import { getInitData } from '@/utils/sendOrder' +import ColorPicker from "@/components/color-diy"; +import { useEffect, useState } from 'react'; +import history from "../../assets/history.png"; export default function Index() { - const [deviceInfo, setDeviceInfo] = useState(BLESDK.deviceInfo) - const [disabled, setDisabled] = useState(!!BLESDK.deviceInfo.state) - const [loading, setLoading] = useState(false) - const deviceCallBack = () => { - setDeviceInfo({ ...BLESDK.deviceInfo }) - if (BLESDK.deviceInfo.state) { - setDisabled(true) - } - } - const lookSleep = () => { - // if (!BLESDK.deviceInfo.state) return Taro.showToast({ title: '请先连接设备', icon: 'none' }) - Taro.navigateTo({ url: '/pages/funList/index' }) - } + const list = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',] + const [open, setOpen] = useState(false) - useDidShow(() => { - BLESDK.deviceCallBack(deviceCallBack) - setDeviceInfo({ ...BLESDK.deviceInfo }) - setDisabled(!!BLESDK.deviceInfo.state) - }) - const searchBluetooth = () => { - BLESDK.startBluetoothDevicesDiscovery() - setLoading(true) - setDisabled(true) - setTimeout(() => { - BLESDK.stopBluetoothDevicesDiscovery(); - setLoading(false) - setDisabled(!!BLESDK.deviceInfo.state) - }, 6000) + const handleColorPicker = (e) => { + setOpen(false) } + useEffect(() => { + }, []) return ( - - - NAME: - {deviceInfo.name || '--'} - - - MAC: - {deviceInfo.mac || '--'} - - - 连接状态: - {deviceInfo.name ? deviceInfo.state ? '已连接' : '未连接' : '--'} - + + 像素跳动 + 历史记录 - - - + + {list.map((item, index) => )} + + + + + #EDEDED + + setOpen(true)}>传输画面到音响屏幕 + *点击上方小格子并选取颜色 + + ) } diff --git a/src/pages/index/index.less b/src/pages/index/index.less index 4ff1320..9fad78e 100644 --- a/src/pages/index/index.less +++ b/src/pages/index/index.less @@ -1,24 +1,114 @@ -.btn { - width: 80%; - margin-top: 20rpx; -} +.index { + background: #F7F7F7; -.device { - .item { - width: 500rpx; + // overflow-y: scroll; + .head { display: flex; align-items: center; - font-size: 28rpx; - margin-bottom: 10rpx; + justify-content: space-between; + padding: 0 32rpx; + margin-top: 32rpx; + box-sizing: border-box; - .item-label { - width: 160rpx; - text-align: right; + .head-left { + color: #5F93FA; + font-size: 32rpx; + display: flex; + align-items: center; + + &::before { + content: ''; + width: 6rpx; + height: 36rpx; + border-radius: 4rpx; + background: #5F93FA; + display: inline-block; + margin-right: 12rpx; + } + } + + .head-right { + width: 184rpx; + height: 50rpx; + border-radius: 44rpx; + background: #DEE9FF; + text-indent: 58rpx; + font-size: 26rpx; + color: #5F93FA; + display: flex; + align-items: center; + justify-content: center; + + .icon { + width: 26rpx; + height: 26rpx; + margin-right: 10rpx; + } } } -} -.connect { - position: fixed; - bottom: 60px; + .grid { + display: grid; + grid-template-columns: repeat(9, 1fr); + gap: 8rpx; + padding: 32rpx; + box-sizing: border-box; + + .grid-item { + width: 64px; + height: 64px; + border-radius: 8px; + background: #FAFAFA; + border: 1px solid #999999; + + &.active { + border: 1px solid #5F93FA; + } + } + } + + .hint { + color: #999999; + font-size: 26rpx; + margin: 24rpx; + } + + .colorbox { + display: flex; + align-items: center; + justify-content: center; + + .colorbox-icon { + width: 54rpx; + height: 54rpx; + background: url('../../assets/chromaticCircle.png') no-repeat; + background-size: 100% 100%; + } + + .colorbox-btn { + width: 180rpx; + height: 64rpx; + border-radius: 90rpx; + background: #38F1E5; + border: 2rpx solid #EDEDED; + text-align: center; + line-height: 64rpx; + font-size: 26rpx; + color: #fff; + } + } + + .btn { + width: 686rpx; + height: 80rpx; + border-radius: 50rpx; + background: #5F93FA; + text-align: center; + line-height: 80rpx; + color: #FFFFFF; + font-size: 30rpx; + margin: 24rpx auto; + } + + }