commit f529129c9350e14dd064732c0d103eff5c242db6 Author: PC-202306242200\Administrator <1648263436@qq.com> Date: Tue Mar 31 10:53:43 2026 +0800 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..99057ba --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +unpackage/ \ No newline at end of file diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..ee5be77 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,20 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "app-plus" : + { + "launchtype" : "local" + }, + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..10b731c --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..fe49063 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/云充电.iml b/.idea/云充电.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/云充电.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..19d2e01 --- /dev/null +++ b/App.vue @@ -0,0 +1,25 @@ + + + diff --git a/api/api.js b/api/api.js new file mode 100644 index 0000000..b5b2c0d --- /dev/null +++ b/api/api.js @@ -0,0 +1,150 @@ +import { + http +} from '@/request/index.js' + +// 登录 +export const loginApi = (params, config = {}) => http('/api/v0/login/loginByWx', params) +export const loginCodeApi = (params, config = {}) => http('/api/v0/login/loginByWxCode', params) +export const loginByZfbCode = (params, config = {}) => http('/api/v0/login/loginByZfbCode', params) + + +// 首页 +// 获取附近站点 +export const aroundAreaApi = (params, config = {}) => http('/api/v0/stations/aroundArea', params, 'GET') +export const infoAroundApi = (params, config = {}) => http('/api/v0/stations/info', params, 'GET') +export const listByStationId = (params, config = {}) => http('/api/v0/device/gun/listByStationId', params, 'GET') + +// 开始充电 +export const startCharging = (params, config = {}) => http('/api/v0/orders/startCharging', params) +//获取电枪详情 +export const gunInfo = (params, config = {}) => http('/api/v0/device/gun/info', params, 'GET') + +//用户信息 +export const userInfo = (params, config = {}) => http('/api/v0/user/info', params, 'GET') + + +//订单 +export const ordersList = (params, config = {}) => http('/api/v0/orders/list', params, 'GET') + + +// 开始充电-钱包 +export const startChargingByWallet = (params, config = {}) => http('/api/v0/orders/startChargingByWallet', params) +// 开始充电-电卡 +export const startChargingByCard = (params, config = {}) => http('/api/v0/orders/startChargingByCard', params) +// 开始充电-预付款-上海汇付 +export const startChargingByAdaPay = (params, config = {}) => http('/api/v0/orders/startChargingByAdaPay', params) + + + +// 结束停止充电 +export const stopCharging = (params, config = {}) => http('/api/v0/orders/stopCharging', params) +// 轮播图 +export const bannerList = (params, config = {}) => http('/api/v0/banner/list', params, 'GET') +// 修改用户昵称 +export const updateNickName = (params, config = {}) => http('/api/v0/user/updateNickName', params) +// 修改用户头像 +export const updateAvatar = (params, config = {}) => http('/api/v0/user/updateAvatar', params) +// 获取OSS +export const getOssUploadParams = (params, config = {}) => http('/api/v0/user/getOssUploadParams', params, 'GET') +// 实时充电详情 +export const realtimeInfo = (params, config = {}) => http('/api/v0/orders/realtimeInfo', params, 'GET') +// 钱包记录 +export const walletRecord = (params, config = {}) => http('/api/v0/wallet/record', params, 'GET') + +export const userCardList = (params, config = {}) => http('/api/v0/card/userCardList', params, 'GET') +export const userCardRecord = (params, config = {}) => http('/api/v0/card/userCardRecord', params, 'GET') + +// 充值 +export const jqbPay = (params, config = {}) => http('/api/v0/wallet/charge/jqbPay', params) +// 汇付 +export const adaPay = (params, config = {}) => http('/api/v0/wallet/charge/adaPay', params) + + + + +// 地图获取附近站点 +export const aroundAreaMap = (params, config = {}) => http('/api/v0/stations/aroundAreaMap', params, 'GET') + + +// 协议详情获取 +export const selectProtocolInfo = (params, config = {}) => http('/api/v0/protocol/info', params, 'GET') +//发票列表 +export const invoiceList = (params, config = {}) => http('/api/v0/invoice/list', params, 'GET') +// 可开发票列表 +export const orderList = (params, config = {}) => http('/api/v0/invoice/orderList', params, 'GET') +// 申请开具发票列表 +export const preApply = (params, config = {}) => http('/api/v0/invoice/preApply', params) +// 申请开具发票请求 +export const apply = (params, config = {}) => http('/api/v0/invoice/apply', params) +// 查询可用电卡 +export const userCardUsableList = (params, config = {}) => http('/api/v0/card/userCardUsableList', params, 'GET') +// 退款 +export const refund = (params, config = {}) => http('/api/v0/wallet/refund', params) +// 订单详情 +export const ordersInfo = (params, config = {}) => http('/api/v0/orders/info', params, 'GET') + + +export const findSignInRecord = (params, config = {}) => http('/api/v0/user/findSignInRecord', params, 'GET') +export const signIn = (params, config = {}) => http('/api/v0/user/signIn') + + +export const getMerchantSelect = (params, config = {}) => http('/user/article/getMerchantSelect', params, 'POST') + +export const articleAdd = (params, config = {}) => http('/user/article/add', params, 'POST') +// 文章编辑 +export const articleUpdate = (params, config = {}) => http('/user/article/update', params,'POST') +// 文章详情 +export const articleDetails = (params, config = {}) => http('/user/article/details', params,'GET') +// 删除文章 +export const articleDelete = (params, config = {}) => http('/user/article/deleteBatchByIds', params,'POST') +// 获取用户新闻列表 +export const getUserArticleList = (params, config = {}) => http('/user/article/getUserArticleList', params,'GET') + + +export const carAdd = (params, config = {}) => http('/user/car/add', params, 'POST') +export const carList = (params, config = {}) => http('/user/car/list', params, 'POST') +export const carDel = (params, config = {}) => http(`/user/car/deleteById?id=${params}`, params, 'DELETE') + +export const shareMiniProgram = (params, config = {}) => http('/api/v0/user/fenxiangGetPoint', params,'POST') + + +// ========================= +// 投资者平台 +// ========================= +// 商品列表 +export const goodsList = (params, config = {}) => http('/user/goods/list', params, 'GET') +export const categoryList = (params, config = {}) => http('/user/goods/categoryList', params, 'GET') +export const shopInfo = (params, config = {}) => http('/user/goods/details', params, 'GET') +export const addGoodsOrders = (params, config = {}) => http('/api/invest/orders/submit', params) + +export const orderPage = (params, config = {}) => http('/api/invest/orders/list', params, 'GET') +export const payAllinPay = (params, config = {}) => http('/api/v0/payment/order/pay/allinPay', params) +export const payMoney = (params, config = {}) => http('/api/v0/payment/order/pay/money', params) +export const handleSubmit = (params, config = {}) => http('/api/invest/orders/handleSubmit', params) +export const getDeviceInfo = (params, config = {}) => http('/invest/user/device/query/user/deviceInfo', params, 'GET') + + +export const addUsersAccountInfo = (params, config = {}) => http('/api/v0/extract/account/add', params) +export const getUsersAccountInfo = (params, config = {}) => http('/api/v0/extract/account/list', params, 'GET') + +// 用户提现 +export const pointsExtract = (params, config = {}) => http('/api/v0/extract/pointsExtract', params,'POST') +// 提现列表 +export const extractList = (params, config = {}) => http('/api/v0/extract/list', params,'GET') +// 用户收益记录 +export const extractRecordList = (params, config = {}) => http('/api/v0/extract/recordList', params,'GET') +// 配置列表 +export const getAppConfig = (params, config = {}) => http('/api/v0/config/list', params,'GET') + +export const loginByPassword = (params, config = {}) => http('/api/v0/invest/user/loginByPassword', params) +export const saveOpenIdByWxCode = (params, config = {}) => http('/api/v0/invest/user/saveOpenIdByWxCode', params) +export const registerApi = (params, config = {}) => http('/api/v0/invest/user/register', params) +export const findUserName = (params, config = {}) => http('/api/v0/invest/user/findUserName', params) +export const findPassword = (params, config = {}) => http('/api/v0/invest/user/findPassword', params) +export const smsCode = (params, config = {}) => http('/api/v0/invest/user/sendSmsCode', params) + +export const userInfoIsInvest = (params, config = {}) => http('/api/v0/invest/user/info', params, 'GET') + +export const rechargeAllinPay = (params, config = {}) => http('/api/v0/payment/money/recharge/allinPay', params) + +export const investUserModify = (params, config = {}) => http('/api/v0/invest/user/modify', params, 'POST') diff --git a/common/index.scss b/common/index.scss new file mode 100644 index 0000000..6385c00 --- /dev/null +++ b/common/index.scss @@ -0,0 +1,21 @@ +view { + box-sizing: border-box; +} +page { + background: #f7f7f7; +} +.p30 { + padding: 0 30rpx; +} +.mt10 { + margin-bottom: 10rpx; +} +.flex-acsb { + display: flex; + align-items: center; + justify-content: space-between; +} + +.flex1 { + flex: 1; +} diff --git a/common/js/user.js b/common/js/user.js new file mode 100644 index 0000000..8d12d9d --- /dev/null +++ b/common/js/user.js @@ -0,0 +1,122 @@ +import { + loginApi, + loginCodeApi, + loginByZfbCode +} from "@/api/api.js" +import { + init +} from '@/utils/sok.js'; + + +export const login = async (params, type = 1) => { + if (type == 1) { + var { + code: loginCode + } = await uni.login({ + provider: 'weixin' + }); + try { + let { + token, + userInfo + } = await loginCodeApi({ + loginCode + }) + uni.setStorageSync('token', token); + uni.setStorageSync('user', userInfo); + uni.setStorageSync('isInvest', false); + } catch (err) { + if (err.code == 10) { + uni.setStorageSync('token', false); + } + } + } else if (type == 2) { + + + + var { + code: phoneCode + } = params.detail; + var { + code: loginCode + } = await uni.login({ + provider: 'alipay' + }); + try { + // #ifdef MP-WEIXIN + let { + token, + user + } = await loginApi({ + phoneCode, + loginCode + }); + // #endif + // #ifdef MP-ALIPAY + let { + token, + user + } = await loginByZfbCode({ + phoneCode, + loginCode + }); + // #endif + + + uni.setStorageSync('token', token); + uni.setStorageSync('user', user); + uni.setStorageSync('isInvest', false); + + uni.reLaunch({ + url: '/pages/home/home' + }); + + // uni.navigateBack() + // uni.navigateBack() + init() + } catch (err) { + console.log(err); + } + } +} + + +const download = (e, type) => { + const base64 = uni.arrayBufferToBase64(e.data); + const fs = wx.getFileSystemManager() + var imgPath = ''11 + if (type == 'video') { + imgPath = wx.env.USER_DATA_PATH + '/base64Video' + '.mp4' //自定义下载图片的名称 + } else { + imgPath = wx.env.USER_DATA_PATH + '/base64img' + '.png' //自定义下载图片的名称 + } + fs.writeFile({ + filePath: imgPath, //设置下载图片的地址 + data: base64, //slice(22)的目的是去掉data:image/png;base64,如果本身就不带的话,就直接this.data.codeImg就好了 + encoding: 'base64', + success: function(res) { + //读取文件 + wx.getImageInfo({ + src: imgPath, + success: function(ret) { + console.log("请求到了"); + var path = ret.path; + wx.saveImageToPhotosAlbum({ + filePath: imgPath, //设置下载图片的地址 + success(result) { + console.log("保存成功"); //保存成功 + } + }) + } + }) + // console.log(res); + // console.log("请求到了"); + // wx.saveImageToPhotosAlbum({ + // filePath: imgPath, //设置下载图片的地址 + // success: function() { + // console.log("保存成功"); //保存成功 + // } + // }) + } + }) +} \ No newline at end of file diff --git a/common/money.json b/common/money.json new file mode 100644 index 0000000..7641fa4 --- /dev/null +++ b/common/money.json @@ -0,0 +1,105 @@ +[{ + "name": "充值", + "id": 1100 + }, + { + "name": "后台充值", + "id": 1200 + }, + { + "name": "后台划扣", + "id": 1201 + }, + { + "name": "购买商品", + "id": 2100 + }, + { + "name": "商品推广", + "id": 2110 + }, + { + "name": "商品培育津贴", + "id": 2120 + }, + { + "name": "商品服务津贴", + "id": 2130 + }, + { + "name": "购买商品-退单", + "id": 2200 + }, + { + "name": "商品推广-退单", + "id": 2210 + }, + { + "name": "商品培育津贴-退单", + "id": 2220 + }, + { + "name": "商品服务津贴-退单", + "id": 2230 + }, + { + "name": "充电桩收益", + "id": 3100 + }, + { + "name": "充电桩推广", + "id": 3110 + }, + { + "name": "充电桩培育津贴", + "id": 3120 + }, + { + "name": "充电桩服务津贴", + "id": 3130 + }, + { + "name": "充电桩收益-退单", + "id": 3200 + }, + { + "name": "充电桩推广-退单", + "id": 3210 + }, + { + "name": "充电桩培育津贴-退单", + "id": 3220 + }, + { + "name": "充电桩服务津贴-退单", + "id": 3230 + }, + { + "name": "提现", + "id": 4100 + }, + { + "name": "提现失败", + "id": 4200 + }, + { + "name": "转赠付款", + "id": 5100 + }, + { + "name": "转赠收款", + "id": 5200 + }, + { + "name": "转换减少", + "id": 6100 + }, + { + "name": "转换增加", + "id": 6200 + }, + { + "name": "转账-星梦", + "id": 7100 + } +] \ No newline at end of file diff --git a/components/.DS_Store b/components/.DS_Store new file mode 100644 index 0000000..2dc85a4 Binary files /dev/null and b/components/.DS_Store differ diff --git a/components/orange-user/.DS_Store b/components/orange-user/.DS_Store new file mode 100644 index 0000000..1c743eb Binary files /dev/null and b/components/orange-user/.DS_Store differ diff --git a/components/orange-user/user/index.vue b/components/orange-user/user/index.vue new file mode 100644 index 0000000..a6320ca --- /dev/null +++ b/components/orange-user/user/index.vue @@ -0,0 +1,378 @@ + + + + + \ No newline at end of file diff --git a/components/orderList/orderList.vue b/components/orderList/orderList.vue new file mode 100644 index 0000000..93aef45 --- /dev/null +++ b/components/orderList/orderList.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/components/search/search.vue b/components/search/search.vue new file mode 100644 index 0000000..02b64bd --- /dev/null +++ b/components/search/search.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/components/slide-filter/index.vue b/components/slide-filter/index.vue new file mode 100644 index 0000000..9477f48 --- /dev/null +++ b/components/slide-filter/index.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/components/static/.DS_Store b/components/static/.DS_Store new file mode 100644 index 0000000..b3e1a5b Binary files /dev/null and b/components/static/.DS_Store differ diff --git a/components/static/style/color-ui.css b/components/static/style/color-ui.css new file mode 100644 index 0000000..1ea1aa3 --- /dev/null +++ b/components/static/style/color-ui.css @@ -0,0 +1,3233 @@ +page { + font-size: 28rpx; + color: #333; + font-family: Helvetica Neue, Helvetica, sans-serif; +} + +view, text, scroll-view, swiper, button, form, input, textarea, label, navigator, +image { + box-sizing: border-box; +} + +.round { + border-radius: 5000rpx; + +} + +.radius { + border-radius: 10rpx; +} +image { + max-width: 100%; + display: inline-block; + position: relative; + z-index: 0; +} +image.loading::before { + content: ""; + background: #f5f5f5; + display: block; + position: absolute; + width: 100%; + height: 100%; + z-index: -2; +} +image.loading::after { + content: "\e7f1"; + font-family: "iconfont"; + position: absolute; + top: 0; + left: 0; + width: 32rpx; + height: 32rpx; + line-height: 32rpx; + right: 0; + bottom: 0; + z-index: -1; + font-size: 32rpx; + margin: auto; + color: #ccc; + -webkit-animation: icon-spin 2s infinite linear; + animation: icon-spin 2s infinite linear; + display: block; +} + +.response { + width: 100%; +} +.solid, .solid-top, .solid-right, .solid-bottom, .solid-left, .solids, +.solids-top, .solids-right, .solids-bottom, .solids-left, .dashed, .dashed-top, +.dashed-right, .dashed-bottom, .dashed-left { + position: relative; +} + +.solid::after, .solid-top::after, .solid-right::after, .solid-bottom::after, +.solid-left::after, .solids::after, .solids-top::after, .solids-right::after, +.solids-bottom::after, .solids-left::after, .dashed::after, .dashed-top::after, +.dashed-right::after, .dashed-bottom::after, .dashed-left::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; +} + +.solid::after { + border: 1rpx solid rgba(0, 0, 0, 0.1); +} + +.solid-top::after { + border-top: 1rpx solid rgba(0, 0, 0, 0.1); +} + +.solid-right::after { + border-right: 1rpx solid rgba(0, 0, 0, 0.1); +} + +.solid-bottom::after { + border-bottom: 1rpx solid rgba(0, 0, 0, 0.1); +} + +.solid-left::after { + border-left: 1rpx solid rgba(0, 0, 0, 0.1); +} + +.solids::after { + border: 4rpx solid #eee; +} + +.solids-top::after { + border-top: 4rpx solid #eee; +} + +.solids-right::after { + border-right: 4rpx solid #eee; +} + +.solids-bottom::after { + border-bottom: 4rpx solid #eee; +} + +.solids-left::after { + border-left: 4rpx solid #eee; +} + +.dashed::after { + border: 1rpx dashed #ddd; +} + +.dashed-top::after { + border-top: 1rpx dashed #ddd; +} + +.dashed-right::after { + border-right: 1rpx dashed #ddd; +} + +.dashed-bottom::after { + border-bottom: 1rpx dashed #ddd; +} + +.dashed-left::after { + border-left: 1rpx dashed #ddd; +} + +.shadow { + box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.1); +} + +.shadow-lg { + box-shadow: 0rpx 40rpx 100rpx 0rpx rgba(0, 0, 0, 0.07); +} + +.shadow-warp { + position: relative; + box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.1); +} + +.shadow-warp:before, .shadow-warp:after { + position: absolute; + content: ""; + top: 20rpx; + bottom: 30rpx; + left: 20rpx; + width: 50%; + box-shadow: 0 30rpx 20rpx rgba(0, 0, 0, 0.2); + transform: rotate(-3deg); + z-index: -1; +} + +.shadow-warp:after { + right: 20rpx; + left: auto; + transform: rotate(3deg); +} + +.shadow-blur { + position: relative; +} + +.shadow-blur::before { + content: ""; + display: block; + background: inherit; + filter: blur(10rpx); + position: absolute; + width: 100%; + height: 100%; + top: 10rpx; + left: 10rpx; + z-index: -1; + opacity: 0.4; + transform-origin: 0 0; + border-radius: inherit; + transform: scale(1, 1); +} + +.cu-btn { + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + padding: 0 30rpx; + font-size: 28rpx; + height: 64rpx; + line-height: 1; + text-align: center; + text-decoration: none; + overflow: visible; + margin-left: initial; + transform: translate(0rpx, 0rpx); + margin-right: initial; +} + +.cu-btn::after { + display: none; +} + +.cu-btn:not([class*="bg-"]) { + background-color: #f0f0f0; +} + +.cu-btn[class*="line"] { + background-color: transparent; +} + +.cu-btn[class*="line"]::after { + content: " "; + display: block; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border: 1rpx solid currentColor; + transform: scale(0.5); + transform-origin: 0 0; + box-sizing: border-box; + border-radius: 24rpx; + z-index: 1; + pointer-events: none; +} + +.cu-btn.round[class*="line"]::after { + border-radius: 1000rpx; +} + +.cu-btn[class*="lines"]::after { + border: 6rpx solid currentColor; +} + +.cu-btn[class*="bg-"]::after { + display: none; +} + +.cu-btn.sm { + padding: 0 20rpx; + font-size: 20rpx; + height: 48rpx; +} + +.cu-btn.lg { + padding: 0 40rpx; + font-size: 32rpx; + height: 80rpx; +} + +.cu-btn.icon.sm { + width: 48rpx; + height: 48rpx; +} + +.cu-btn.icon { + width: 64rpx; + height: 64rpx; + border-radius: 500rpx; + padding: 0; +} + + + +button.icon.lg { + width: 80rpx; + height: 80rpx; +} + +.cu-btn.shadow-blur::before { + top: 4rpx; + left: 4rpx; + filter: blur(6rpx); + opacity: 0.6; +} + +.cu-btn.button-hover { + transform: translate(1rpx, 1rpx); +} + +.block { + display: block; +} + +.cu-btn.block { + display: flex; +} + +.cu-btn[disabled] { + opacity: 0.6; + color: #fff; +} + + +.cu-tag { + font-size: 24rpx; + vertical-align: middle; + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + padding: 0rpx 16rpx; + height: 48rpx; + font-family: Helvetica Neue, Helvetica, sans-serif; +} + +.cu-tag:not([class*="bg"]):not([class*="line"]) { + background-color: #f1f1f1; +} + +.cu-tag[class*="line-"]::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border: 1rpx solid currentColor; + transform: scale(0.5); + transform-origin: 0 0; + box-sizing: border-box; + border-radius: inherit; + pointer-events: none; +} + +.cu-btn.mid{ + padding: 0 25rpx; + font-size: 24rpx; + height: 58rpx; +} + +.cu-tag.radius[class*="line"]::after { + border-radius: 12rpx; +} + +.cu-tag.round[class*="line"]::after { + border-radius: 1000rpx; +} + +.cu-tag[class*="line-"]::after { + border-radius: 0; +} + +.cu-tag+.cu-tag { + margin-left: 10rpx; +} + +.cu-tag.sm { + font-size: 20rpx; + padding: 0rpx 12rpx; + height: 32rpx; +} + +.cu-capsule { + display: inline-flex; + vertical-align: middle; +} + +.cu-capsule+.cu-capsule { + margin-left: 10rpx; +} + +.cu-capsule .cu-tag { + margin: 0; +} + +.cu-capsule .cu-tag[class*="line-"]:last-child::after { + border-left: 0rpx solid transparent; +} + +.cu-capsule .cu-tag[class*="line-"]:first-child::after { + border-right: 0rpx solid transparent; +} + +.cu-capsule.radius .cu-tag:first-child { + border-top-left-radius: 6rpx; + border-bottom-left-radius: 6rpx; +} + +.cu-capsule.radius .cu-tag:last-child::after, +.cu-capsule.radius .cu-tag[class*="line-"] { + border-top-right-radius: 12rpx; + border-bottom-right-radius: 12rpx; +} + +.cu-capsule.round .cu-tag:first-child { + border-top-left-radius: 200rpx; + border-bottom-left-radius: 200rpx; + text-indent: 4rpx; +} + +.cu-capsule.round .cu-tag:last-child::after, +.cu-capsule.round .cu-tag:last-child { + border-top-right-radius: 200rpx; + border-bottom-right-radius: 200rpx; + text-indent: -4rpx; +} + +.cu-tag.badge { + border-radius: 200rpx; + position: absolute; + top: -10rpx; + right: -10rpx; + font-size: 20rpx; + padding: 0rpx 10rpx; + height: 28rpx; + color: #fff; +} + +.cu-tag.badge:not([class*="bg-"]) { + background: #dd514c; +} + +.cu-tag:empty:not([class*="icon"]) { + padding: 0rpx; + width: 16rpx; + height: 16rpx; + top: -4rpx; + right: -4rpx; +} + +.cu-tag[class*="icon"] { + width: 32rpx; + height: 32rpx; + top: -4rpx; + right: -4rpx; +} + +.cu-avatar { + font-variant: small-caps; + margin: 0; + padding: 0; + display: inline-flex; + text-align: center; + justify-content: center; + align-items: center; + background: #ccc; + color: #fff; + white-space: nowrap; + position: relative; + background-size: cover; + background-position: center; + vertical-align: middle; + font-size: 1.5em; +} + +.cu-avatar.sm { + width: 48rpx; + height: 48rpx; + font-size: 1em; +} + +.cu-avatar.lg { + width: 96rpx; + height: 96rpx; + font-size: 2em; +} + +.cu-avatar.xl { + width: 128rpx; + height: 128rpx; + font-size: 2.5em; +} + +.cu-avatar .avatar-text { + font-size: 0.4em; +} + +.cu-avatar-group { + direction: rtl; + unicode-bidi: bidi-override; + padding: 0 10rpx 0 40rpx; + display: inline-block; +} + +.cu-avatar-group .cu-avatar { + margin-left: -30rpx; + border: 4rpx solid #f1f1f1; + vertical-align: middle; +} + +.cu-avatar-group .cu-avatar.sm { + margin-left: -20rpx; + border: 1rpx solid #f1f1f1; +} +.cu-progress { + overflow: hidden; + height: 28rpx; + background-color: #ebeef5; + display: inline-flex; + align-items: center; + width: 100%; +} + +.cu-progress+view, .cu-progress+text { + line-height: 1; +} + +.cu-progress.xs { + height: 10rpx; +} + +.cu-progress.sm { + height: 20rpx; +} + +.cu-progress view { + width: 0; + height: 100%; + align-items: center; + display: flex; + justify-items: flex-end; + justify-content: space-around; + font-size: 20rpx; + color: #fff; + transition: width 0.6s ease; +} + +.cu-progress text { + align-items: center; + display: flex; + font-size: 20rpx; + color: #666; + text-indent: 10rpx; +} + +.cu-progress.text-progress { + padding-right: 60rpx; +} + +.cu-progress.striped view { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 72rpx 72rpx; +} + +.cu-progress.active view { + animation: progress-stripes 2s linear infinite; +} + +@keyframes progress-stripes { + from { + background-position: 72rpx 0; + } + + to { + background-position: 0 0; + } +} +.cu-load { + display: block; + line-height: 3em; + text-align: center; +} + +.cu-load::before { + font-family: "iconfont"; + display: inline-block; + margin-right: 6rpx; +} + +.cu-load.loading::before { + content: "\e67a"; + animation: icon-spin 2s infinite linear; +} + +.cu-load.loading::after { + content: "加载中..."; +} + +.cu-load.over::before { + content: "\e64a"; +} + +.cu-load.over::after { + content: "没有更多了"; +} + +.cu-load.erro::before { + content: "\e658"; +} + +.cu-load.erro::after { + content: "加载失败"; +} + +.cu-load.load-icon::before { + font-size: 32rpx; +} + +.cu-load.load-icon::after { + display: none; +} + +.cu-load.load-icon.over { + display: none; +} + +.cu-load.load-modal { + position: fixed; + top: 0; + right: 0; + bottom: 140rpx; + left: 0; + margin: auto; + width: 260rpx; + height: 260rpx; + background: #fff; + border-radius: 10rpx; + box-shadow: 0 0 0rpx 2000rpx rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + font-size: 28rpx; + z-index: 9999; + line-height: 2.4em; +} + +.cu-load.load-modal [class*="icon"] { + font-size: 60rpx; +} + +.cu-load.load-modal image { + width: 70rpx; + height: 70rpx; +} + +.cu-load.load-modal::after { + content: ""; + position: absolute; + background: #fff; + border-radius: 50%; + width: 200rpx; + height: 200rpx; + font-size: 10px; + border-top: 6rpx solid rgba(0, 0, 0, 0.05); + border-right: 6rpx solid rgba(0, 0, 0, 0.05); + border-bottom: 6rpx solid rgba(0, 0, 0, 0.05); + border-left: 6rpx solid #f37b1d; + animation: icon-spin 1s infinite linear; + z-index: -1; +} + +.load-progress { + pointer-events: none; + top: 0; + position: fixed; + width: 100%; + left: 0; + z-index: 2000; +} + +.load-progress.hide { + display: none; +} + +.load-progress .load-progress-bar { + position: relative; + width: 100%; + height: 4rpx; + overflow: hidden; + transition: all 200ms ease 0s; +} + +.load-progress .load-progress-spinner { + position: absolute; + top: 10rpx; + right: 10rpx; + z-index: 2000; + display: block; +} + +.load-progress .load-progress-spinner::after { + content: ""; + display: block; + width: 24rpx; + height: 24rpx; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: solid 4rpx transparent; + border-top-color: inherit; + border-left-color: inherit; + border-radius: 50%; + -webkit-animation: load-progress-spinner 0.4s linear infinite; + animation: load-progress-spinner 0.4s linear infinite; +} + +@-webkit-keyframes load-progress-spinner { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes load-progress-spinner { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +.cu-list.menu { + display: block; + overflow: hidden; +} + +.cu-list+.cu-list { + margin-top: 30rpx; +} + +.cu-list.menu>.cu-item { + position: relative; + display: flex; + justify-content: space-between; + align-items: center; + min-height: 100rpx; + background: #fff; + padding: 0 30rpx; +} + +.cu-list.menu>.my-item { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + min-height: 100rpx; + padding: 0 30rpx; +} + +.cu-list.menu>.cu-item::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + border-bottom: 1rpx solid #ddd; +} + +.cu-list.menu.sm-border>.cu-item::after { + width: calc(200% - 120rpx); + left: 30rpx; +} + +.cu-list.menu>.cu-item:last-child::after { + border: none; +} + +.cu-list.menu>.cu-item.cur { + background-color: #fcf7e9; +} + +.cu-list.menu-avatar>.cu-item { + padding-left: 140rpx; +} + +.cu-list.menu-avatar>.cu-item .cu-avatar { + left: 30rpx; +} + +.cu-list.menu>.cu-item .content { + line-height: 1.6em; + flex: 1; + font-size: 30rpx; +} + +.cu-list.menu>.cu-item button.content { + padding: 0; + justify-content: flex-start; + background-color: transparent; +} + +.cu-list.menu>.cu-item button.content::after { + display: none; +} + +.cu-list.menu>.cu-item .content>text[class*="icon"] { + margin-right: 10rpx; + display: inline-block; + width: 1.6em; + text-align: center; +} + +.cu-list.menu>.cu-item .content>image { + margin-right: 10rpx; + display: inline-block; + width: 1.6em; + height: 1.6em; + vertical-align: middle; +} + +.cu-list.menu-avatar>.cu-item .action { + text-align: center; +} + +.cu-list.menu-avatar>.cu-item .action view + view { + margin-top: 10rpx; +} + +.cu-list.menu>.cu-item .action .cu-tag:empty { + right: 10rpx; +} + +.cu-list.menu>.cu-item.arrow { + padding-right: 90rpx; +} + +.cu-list.menu>.cu-item.arrow::before { + font-family: "iconfont"; + display: block; + content: "\e6a3"; + position: absolute; + font-size: 34rpx; + color: #aaa; + line-height: 30rpx; + height: 30rpx; + width: 30rpx; + text-align: center; + top: 0rpx; + bottom: 0; + right: 30rpx; + margin: auto; +} + +.cu-list.menu>.cu-item .cu-avatar-group .cu-avatar { + border-color: #fff; +} + +.cu-list.card-menu { + margin-left: 30rpx; + margin-right: 30rpx; + border-radius: 20rpx; + overflow: hidden; +} + +.cu-list.menu-avatar>.cu-item { + padding-left: 140rpx; + height: 140rpx; +} + +.cu-list.menu-avatar>.cu-item>.cu-avatar { + position: absolute; + left: 30rpx; +} + +.cu-list.menu-avatar.comment>.cu-item { + height: auto; + padding-top: 30rpx; + padding-bottom: 30rpx; + padding-left: 120rpx; +} + +.cu-list.menu-avatar.comment .cu-avatar { + align-self: flex-start; +} + +.cu-list.menu>.cu-item .content .cu-tag.sm { + font-size: 16rpx; + line-height: 80%; + padding: 8rpx 6rpx 4rpx; + margin-top: -6rpx; +} + +.cu-list.grid { + text-align: center; + background: #fff; +} + +.cu-list.grid>.cu-item { + display: flex; + flex-direction: column; + padding: 20rpx 0 30rpx; + position: relative; + transition-duration: 0s; +} + +.cu-list.grid>.cu-item [class*="icon"] { + display: block; + width: 100%; + position: relative; + font-size: 48rpx; + margin-top: 20rpx; +} + +.cu-list.grid>.cu-item text { + display: block; + color: #888; + margin-top: 10rpx; + line-height: 40rpx; + font-size: 26rpx; +} + +.cu-list.grid>.cu-item .cu-tag { + left: 50%; + right: auto; + margin-left: 20rpx; +} + +.cu-list.grid>.cu-item::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + border-right: 1px solid rgba(0, 0, 0, 0.1); + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.cu-list.grid.col-3>.cu-item:nth-child(3n)::after { + border-right-width: 0px; +} + +.cu-list.grid.col-4>.cu-item:nth-child(4n)::after { + border-right-width: 0px; +} + +.cu-list.grid.col-5>.cu-item:nth-child(5n)::after { + border-right-width: 0px; +} + +.cu-list.grid.no-border { + padding: 20rpx 10rpx; +} + +.cu-list.grid.no-border>.cu-item { + padding-top: 10rpx; + padding-bottom: 20rpx; +} + +.cu-list.grid.no-border>.cu-item::after { + border: none; +} + +.cu-list>.cu-item { + transform: translateX(0rpx); + transition: all 0.6s ease-in-out 0s; +} + +.cu-list>.cu-item .move { + display: flex; + width: 260rpx; + height: 100%; + position: absolute; + right: 0; + transform: translateX(100%); +} + +.cu-list>.cu-item.move-cur { + transform: translateX(-260rpx); +} + +.cu-list>.cu-item .move view { + flex: 1; + display: flex; + justify-content: center; + align-items: center; +} + +.cu-bar { + display: flex; + position: relative; + align-items: center; + min-height: 100rpx; + justify-content: space-between; +} + +.cu-bar .action { + display: flex; + align-items: center; + height: 100%; + justify-content: center; + max-width: 100%; +} + +.cu-bar .action.border-title { + position: relative; + top: -10rpx; +} + +.cu-bar .action.border-title text[class*="bg-"]:last-child { + position: absolute; + bottom: -0.5rem; + min-width: 2rem; + height: 6rpx; + left: 0; +} + +.cu-bar .action.sub-title { + position: relative; + top: -0.2rem; +} + +.cu-bar .action.sub-title text { + position: relative; + z-index: 1; +} + +.cu-bar .action.sub-title text[class*="bg-"]:last-child { + position: absolute; + display: inline-block; + bottom: -0.2rem; + border-radius: 6rpx; + width: 100%; + height: 0.6rem; + left: 0.6rem; + opacity: 0.3; + z-index: 0; +} + +.cu-bar .action.sub-title text[class*="text-"]:last-child { + position: absolute; + display: inline-block; + bottom: -0.7rem; + left: 0.5rem; + opacity: 0.2; + z-index: 0; + text-align: right; + font-weight: 900; + font-size: 36rpx; +} + +.cu-bar.justify-center .action.border-title text:last-child, +.cu-bar.justify-center .action.sub-title text:last-child { + left: 0; + right: 0; + margin: auto; + text-align: center; +} + +.cu-bar .action:first-child { + margin-left: 30rpx; + font-size: 30rpx; +} + +.cu-bar .action text.text-cut { + text-align: left; + width: 100%; +} + +.cu-bar .cu-avatar:first-child { + margin-left: 20rpx; +} + +.cu-bar .action:first-child>text[class*="icon"] { + margin-left: -0.3em; + margin-right: 0.3em; +} + +.cu-bar .action:last-child { + margin-right: 30rpx; +} + +.cu-bar .action > text[class*="icon"], .cu-bar .action > view[class*="icon"] { + font-size: 36rpx; +} + +.cu-bar .action>text[class*="icon"]+text[class*="icon"] { + margin-left: 0.5em; +} + +.cu-bar .content { + position: absolute; + text-align: center; + width: calc(100% - 340rpx); + left: 0; + right: 0; + bottom: 0; + top: 0; + margin: auto; + height: 60rpx; + font-size: 32rpx; + line-height: 60rpx; + cursor: none; + pointer-events: none; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.cu-bar.ios .content { + bottom: 7px; + height: 30px; + font-size: 32rpx; + line-height: 30px; +} + +.cu-bar.btn-group { + justify-content: space-around; +} + +.cu-bar.btn-group button { + padding: 20rpx 32rpx; +} + +.cu-bar.btn-group button { + flex: 1; + margin: 0 20rpx; + max-width: 50%; +} + +.cu-bar .search-form { + background: #f5f5f5; + line-height: 64rpx; + height: 64rpx; + font-size: 24rpx; + color: #666; + flex: 1; + display: flex; + align-items: center; + margin: 0 20rpx; +} + +.cu-bar .search-form+.action { + margin-right: 20rpx; +} + +.cu-bar .search-form input { + flex: 1; + padding-right: 20rpx; + height: 64rpx; + line-height: 64rpx; + font-size: 26rpx; +} + +.cu-bar .search-form [class*="icon"] { + margin: 0 0.5em 0 0.8em; +} + +.cu-bar .search-form [class*="icon"]::before { + top: 0rpx; +} + +.cu-bar.fixed, .nav.fixed { + position: fixed; + width: 100%; + top: 0; + z-index: 1024; + box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.1); +} + +.cu-bar.foot { + position: fixed; + width: 100%; + bottom: 0; + z-index: 1024; + box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1); +} + +.cu-bar.tabbar { + padding: 0; + z-index: 0; + height: calc(100rpx + env(safe-area-inset-bottom) / 2); + padding-bottom: calc(env(safe-area-inset-bottom) / 2); +} + +.cu-tabbar-height { + min-height: 100rpx; + height: calc(100rpx + env(safe-area-inset-bottom) / 2); +} + +.cu-bar.tabbar.shadow { + box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1); +} + +.cu-bar.tabbar .action { + font-size: 22rpx; + position: relative; + flex: 1; + text-align: center; + padding: 0; + display: block; + height: auto; + line-height: 1; + margin: 0; + background-color: inherit; + overflow: initial; +} + +.cu-bar.tabbar.shop .action { + width: 140rpx; + flex: initial; +} + +.cu-bar.tabbar .action.add-action { + position: relative; + z-index: 2; + padding-top: 50rpx; +} + +.cu-bar.tabbar .action.add-action [class*="icon"] { + position: absolute; + width: 70rpx; + z-index: 2; + height: 70rpx; + border-radius: 50%; + line-height: 70rpx; + font-size: 50rpx; + top: -35rpx; + left: 0; + right: 0; + margin: auto; + padding: 0; +} + +.cu-bar.tabbar .action.add-action::after { + content: ""; + position: absolute; + width: 100rpx; + height: 100rpx; + top: -50rpx; + left: 0; + right: 0; + margin: auto; + box-shadow: 0 -3rpx 8rpx rgba(0, 0, 0, 0.08); + border-radius: 50rpx; + background-color: inherit; + z-index: 0; +} + +.cu-bar.tabbar .action.add-action::before { + content: ""; + position: absolute; + width: 100rpx; + height: 30rpx; + bottom: 30rpx; + left: 0; + right: 0; + margin: auto; + background-color: inherit; + z-index: 1; +} + +.cu-bar.tabbar .btn-group { + flex: 1; + display: flex; + justify-content: space-around; + align-items: center; + padding: 0 10rpx; +} + +.cu-bar.tabbar button.action::after { + border: 0; +} + +.cu-bar.tabbar .action [class*="icon"] { + width: 100rpx; + position: relative; + display: block; + height: auto; + margin: 0 auto 10rpx; + text-align: center; + font-size: 40rpx; +} + +.cu-bar.tabbar .action .icon-cu-image { + margin: 0 auto; +} + +.cu-bar.tabbar .action .icon-cu-image image { + width: 50rpx; + height: 50rpx; + display: inline-block; +} + +.cu-bar.tabbar .submit { + align-items: center; + display: flex; + justify-content: center; + text-align: center; + position: relative; + flex: 2; + align-self: stretch; +} + +.cu-bar.tabbar .submit:last-child { + flex: 2.6; +} + +.cu-bar.tabbar .submit+.submit { + flex: 2; +} + +.cu-bar.tabbar.border .action::before { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + transform: scale(0.5); + transform-origin: 0 0; + border-right: 1rpx solid rgba(0, 0, 0, 0.1); + z-index: 3; +} + +.cu-bar.tabbar.border .action:last-child:before { + display: none; +} + +.cu-bar.input { + padding-right: 20rpx; + background-color: #fff; +} + +.cu-bar.input input { + overflow: initial; + line-height: 64rpx; + height: 64rpx; + min-height: 64rpx; + flex: 1; + font-size: 30rpx; + margin: 0 20rpx; +} + +.cu-bar.input .action { + margin-left: 20rpx; +} + +.cu-bar.input .action [class*="icon"] { + font-size: 48rpx; +} + +.cu-bar.input input+.action { + margin-right: 20rpx; + margin-left: 0rpx; +} + +.cu-bar.input .action:first-child [class*="icon"] { + margin-left: 0rpx; +} + +.cu-custom { + display: block; + position: relative; +} + +.cu-custom .cu-bar .content { + width: calc(100% - 440rpx); +} + +.cu-custom .cu-bar { + min-height: 0px; +} + +.cu-custom .cu-bar { + padding-right: 220rpx; + box-shadow: 0rpx 0rpx 0rpx; +} + +.cu-custom .cu-bar .border-custom { + position: relative; + background: rgba(0, 0, 0, 0.15); + border-radius: 1000rpx; + height: 30px; +} + +.cu-custom .cu-bar .border-custom::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + border: 1rpx solid #fff; + opacity: 0.5; +} + +.cu-custom .cu-bar .border-custom::before { + content: " "; + width: 1rpx; + height: 110%; + position: absolute; + top: 22.5%; + left: 0; + right: 0; + margin: auto; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + opacity: 0.6; + background-color: #fff; +} + +.cu-custom .cu-bar .border-custom text { + display: block; + flex: 1; + margin: auto !important; + text-align: center; + font-size: 34rpx; +} + +.nav { + white-space: nowrap; +} + +::-webkit-scrollbar { + display: none; +} + +.nav .cu-item { + height: 90rpx; + display: inline-block; + line-height: 90rpx; + margin: 0 10rpx; + padding: 0 20rpx; +} + +.nav .cu-item.cur { + border-bottom: 4rpx solid; +} +.cu-timeline { + display: block; + background: #fff; +} + +.cu-timeline .cu-time { + width: 120rpx; + text-align: center; + padding: 20rpx 0; + font-size: 26rpx; + color: #888; + display: block; +} + +.cu-timeline>.cu-item { + padding: 30rpx 30rpx 30rpx 120rpx; + position: relative; + display: block; + z-index: 0; +} + +.cu-timeline>.cu-item:not([class*="text-"]) { + color: #ccc; +} + +.cu-timeline>.cu-item::after { + content: ""; + display: block; + position: absolute; + width: 1rpx; + background: #ddd; + left: 60rpx; + height: 100%; + top: 0; + z-index: 8; +} + +.cu-timeline>.cu-item::before { + font-family: "iconfont"; + display: block; + position: absolute; + top: 36rpx; + z-index: 9; + background: #fff; + width: 50rpx; + height: 50rpx; + text-align: center; + border: none; + line-height: 50rpx; + left: 36rpx; +} + +.cu-timeline>.cu-item:not([class*="icon-"])::before { + content: "\e763"; +} + +.cu-timeline>.cu-item[class*="icon"]::before { + background: #fff; + width: 50rpx; + height: 50rpx; + text-align: center; + border: none; + line-height: 50rpx; + left: 36rpx; +} + +.cu-timeline>.cu-item>.content { + padding: 30rpx; + border-radius: 6rpx; + display: block; + line-height: 1.6; +} + +.cu-timeline>.cu-item>.content:not([class*="bg-"]) { + background: #f1f1f1; + color: #666; +} + +.cu-timeline>.cu-item>.content+.content { + margin-top: 20rpx; +} + +.cu-chat { + display: flex; + flex-direction: column; +} + +.cu-chat .cu-item { + display: flex; + padding: 30rpx 30rpx 70rpx; + position: relative; +} + +.cu-chat .cu-item>.cu-avatar { + width: 80rpx; + height: 80rpx; +} + +.cu-chat .cu-item>.main { + max-width: calc(100% - 260rpx); + margin: 0 40rpx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item>image { + height: 320rpx; +} + +.cu-chat .cu-item>.main .content { + padding: 20rpx; + border-radius: 6rpx; + display: inline-flex; + max-width: 100%; + align-items: center; + font-size: 30rpx; + position: relative; + min-height: 80rpx; + line-height: 40rpx; + text-align: left; +} + +.cu-chat .cu-item>.main .content:not([class*="bg-"]) { + background: #fff; + color: #666; +} + +.cu-chat .cu-item .date { + position: absolute; + font-size: 24rpx; + color: #aaa; + width: calc(100% - 320rpx); + bottom: 20rpx; + left: 160rpx; +} + +.cu-chat .cu-item .action { + padding: 0 30rpx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item>.main .content::after { + content: ""; + top: 27rpx; + transform: rotate(45deg); + position: absolute; + z-index: 100; + display: inline-block; + overflow: hidden; + width: 24rpx; + height: 24rpx; + left: -12rpx; + right: initial; + background-color: inherit; +} + +.cu-chat .cu-item.self>.main .content::after { + left: auto; + right: -12rpx; +} + +.cu-chat .cu-item>.main .content::before { + content: ""; + top: 30rpx; + transform: rotate(45deg); + position: absolute; + z-index: -1; + display: inline-block; + overflow: hidden; + width: 24rpx; + height: 24rpx; + left: -12rpx; + right: initial; + background-color: inherit; + filter: blur(5rpx); + opacity: 0.3; +} + +.cu-chat .cu-item>.main .content:not([class*="bg-"])::before { + background-color: #333; + opacity: 0.1; +} + +.cu-chat .cu-item.self>.main .content::before { + left: auto; + right: -12rpx; +} + +.cu-chat .cu-item.self { + justify-content: flex-end; + text-align: right; +} + +.cu-chat .cu-info { + display: inline-block; + margin: 20rpx auto; + font-size: 24rpx; + padding: 8rpx 12rpx; + background-color: rgba(0, 0, 0, 0.2); + border-radius: 6rpx; + color: #fff; + max-width: 400rpx; + line-height: 1.4; +} +.cu-card { + display: block; + overflow: hidden; +} + +.cu-card>.cu-item { + display: block; + background-color: #fff; + overflow: hidden; + border-radius: 10rpx; + margin-left: 30rpx; + margin-right: 30rpx; +} + +.cu-card>.cu-item.shadow-blur { + overflow: initial; +} + +.cu-card.no-card>.cu-item { + margin: 0rpx; + border-radius: 0rpx; +} + +.cu-card .grid.grid-square { + margin-bottom: -20rpx; +} + +.cu-card.case .image { + position: relative; +} + +.cu-card.case .image image { + width: 100%; +} + +.cu-card.case .image .cu-tag { + position: absolute; + right: 0; + top: 0; +} + +.cu-card.case .image .cu-bar { + position: absolute; + bottom: 0; + width: 100%; + background-color: transparent; + padding: 0rpx 30rpx; + word-wrap: normal; + text-overflow: ellipsis; + white-space: nowrap; +} + +.cu-card.case.no-card .image { + margin: 30rpx 30rpx 0; + overflow: hidden; + border-radius: 10rpx; +} + +.cu-card.dynamic { + display: block; +} + +.cu-card.dynamic>.cu-item { + display: block; + background-color: #fff; + overflow: hidden; +} + +.cu-card.dynamic>.cu-item>.text-content { + padding: 0 30rpx 0; + max-height: 6.4em; + overflow: hidden; + font-size: 30rpx; + margin-bottom: 20rpx; +} + +.cu-card.dynamic>.cu-item .square-img { + width: 100%; + height: 200rpx; + border-radius: 6rpx; +} + +.cu-card.dynamic>.cu-item .only-img { + width: 100%; + height: 240rpx; + border-radius: 6rpx; +} + +.cu-card.article { + display: block; +} + +.cu-card.article>.cu-item { + padding-bottom: 30rpx; +} + +.cu-card.article>.cu-item .title { + font-size: 30rpx; + font-weight: 900; + word-wrap: normal; + text-overflow: ellipsis; + white-space: nowrap; + color: #333; + line-height: 100rpx; + padding: 0 30rpx; +} + +.cu-card.article>.cu-item .content { + display: flex; + padding: 0 30rpx; +} + +.cu-card.article>.cu-item .content>image { + width: 240rpx; + height: 6.4em; + margin-right: 20rpx; + border-radius: 6rpx; +} + +.cu-card.article>.cu-item .content .desc { + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.cu-card.article>.cu-item .content .text-content { + font-size: 28rpx; + color: #888; + height: 4.8em; + overflow: hidden; +} + +.cu-form-group { + background: #fff; + padding: 1rpx 30rpx; + display: flex; + align-items: center; + min-height: 100rpx; + justify-content: space-between; +} + +.cu-form-group+.cu-form-group { + border-top: 1rpx solid #eee; +} + +.cu-form-group .title { + text-align: justify; + padding-right: 30rpx; + font-size: 30rpx; + position: relative; + height: 60rpx; + line-height: 60rpx; +} + +.cu-form-group.top { + align-items: baseline; +} + +.cu-form-group input { + flex: 1; + font-size: 30rpx; + color: #555; + padding-right: 20rpx; +} + +.cu-form-group>text[class*="icon"] { + font-size: 36rpx; + padding: 0; + box-sizing: border-box; +} + +.cu-form-group textarea, .cu-form-group textarea textarea { + margin: 32rpx 0 30rpx; + height: 4.8em; + width: 100%; + line-height: 1.2em; + flex: 1; + font-size: 28rpx; + padding: 0; + box-sizing: content-box; + display: inline-block; + vertical-align: top; +} + +.cu-form-group textarea::after { + content: "测试文字"; + opacity: 0; +} + +.cu-form-group .grid-square { + margin: 20rpx 0 0; +} + +.cu-form-group picker { + flex: 1; + padding-right: 40rpx; + overflow: hidden; + position: relative; +} + +.cu-form-group picker .picker { + line-height: 100rpx; + font-size: 28rpx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + width: 100%; + text-align: right; +} + +.cu-form-group picker::after { + font-family: iconfont; + display: block; + content: "\e6a3"; + position: absolute; + font-size: 34rpx; + color: #aaa; + line-height: 100rpx; + width: 60rpx; + text-align: center; + top: 0; + bottom: 0; + right: -20rpx; + margin: auto; +} + +.cu-form-group textarea[disabled], +.cu-form-group textarea[disabled] .placeholder { + color: transparent; +} + +.cu-modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1110; + opacity: 0; + outline: 0; + text-align: center; + -ms-transform: scale(1.185); + transform: scale(1.185); + backface-visibility: hidden; + perspective: 2000rpx; + background: rgba(0, 0, 0, 0.6); + transition: all 0.3s ease-in-out 0s; + pointer-events: none; +} + +.cu-modal::before { + content: "\200B"; + display: inline-block; + height: 100%; + vertical-align: middle; +} + +.cu-modal.show { + opacity: 1; + transition-duration: 0.3s; + -ms-transform: scale(1); + transform: scale(1); + overflow-x: hidden; + overflow-y: auto; + pointer-events: auto; +} + +.cu-dialog { + position: relative; + display: inline-block; + vertical-align: middle; + margin-left: auto; + margin-right: auto; + width: 680rpx; + max-width: 100%; + background: #f8f8f8; + border-radius: 10rpx; + overflow: hidden; +} + +.cu-modal.bottom-modal::before { + vertical-align: bottom; +} + +.cu-modal.bottom-modal .cu-dialog { + width: 100%; + border-radius: 0; +} + +.cu-modal.bottom-modal { + margin-bottom: -1000rpx; +} + +.cu-modal.bottom-modal.show { + margin-bottom: 0; +} + +.cu-modal.drawer-modal { + transform: scale(1); + display: flex; +} + +.cu-modal.drawer-modal .cu-dialog { + height: 100%; + min-width: 200rpx; + border-radius: 0; + margin: initial; + transition-duration: 0.3s; +} + +.cu-modal.drawer-modal.justify-start .cu-dialog { + transform: translateX(-100%); +} + +.cu-modal.drawer-modal.justify-end .cu-dialog { + transform: translateX(100%); +} + +.cu-modal.drawer-modal.show .cu-dialog { + transform: translateX(0%); +} +swiper.square-dot .wx-swiper-dot { + background: #fff; + opacity: 0.4; + width: 10rpx; + height: 10rpx; + border-radius: 20rpx; + transition: all 0.3s ease-in-out 0s; +} + +swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active { + opacity: 1; + width: 30rpx; +} + +swiper.round-dot .wx-swiper-dot { + width: 10rpx; + height: 10rpx; + top: -4rpx; + transition: all 0.3s ease-in-out 0s; + position: relative; +} + +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after { + content: ""; + position: absolute; + width: 10rpx; + height: 10rpx; + top: 0rpx; + left: 0rpx; + right: 0; + bottom: 0; + margin: auto; + background: #fff; + border-radius: 20rpx; +} + +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active { + width: 18rpx; + height: 18rpx; + top: 0rpx; +} + +.screen-swiper { + min-height: 375rpx; +} + +.screen-swiper image { + width: 100%; + display: block; + height: 100%; + margin: 0; +} + +.card-swiper { + height: 420rpx; +} + +.card-swiper swiper-item { + width: 610rpx !important; + left: 70rpx; + box-sizing: border-box; + padding: 40rpx 0rpx 70rpx; + overflow: initial; +} + +.card-swiper swiper-item .bg-img { + width: 100%; + display: block; + height: 100%; + border-radius: 10rpx; + transform: scale(0.9); + transition: all 0.2s ease-in 0s; +} + +.card-swiper swiper-item.cur .bg-img { + transform: none; + transition: all 0.2s ease-in 0s; +} + +.tower-swiper { + height: 420rpx; + position: relative; +} + +.tower-swiper .tower-item { + position: absolute; + width: 300rpx; + height: 380rpx; + top: 0; + bottom: 0; + left: 50%; + margin: auto; + transition: all 0.3s ease-in 0s; + opacity: 1; +} + +.tower-swiper .tower-item.none { + opacity: 0; +} + +.tower-swiper .tower-item .bg-img { + width: 100%; + height: 100%; + border-radius: 6rpx; +} +.cu-steps { + display: flex; +} + +scroll-view.cu-steps { + display: block; + white-space: nowrap; +} + +scroll-view.cu-steps .cu-item { + display: inline-block; +} + +.cu-steps .cu-item { + flex: 1; + text-align: center; + position: relative; + min-width: 100rpx; +} + +.cu-steps .cu-item:not([class*="text-"]) { + color: #aaa; +} + +.cu-steps .cu-item [class*="icon"], .cu-steps .cu-item .num { + display: block; + font-size: 40rpx; + line-height: 80rpx; +} + +.cu-steps .cu-item::before, .cu-steps .cu-item::after, +.cu-steps.steps-arrow .cu-item::before, .cu-steps.steps-arrow .cu-item::after { + content: ""; + display: block; + position: absolute; + height: 0px; + width: calc(100% - 80rpx); + border-bottom: 1px solid #ccc; + left: calc(0px - (100% - 80rpx) / 2); + top: 40rpx; + z-index: 0; +} + +.cu-steps.steps-arrow .cu-item::before, .cu-steps.steps-arrow .cu-item::after { + content: "\e6a3"; + font-family: 'iconfont'; + height: 30rpx; + border-bottom-width: 0px; + line-height: 30rpx; + top: 0; + bottom: 0; + margin: auto; + color: #ccc; +} + +.cu-steps.steps-bottom .cu-item::before, .cu-steps.steps-bottom .cu-item::after { + bottom: 40rpx; + top: initial; +} + +.cu-steps .cu-item::after { + border-bottom: 1px solid currentColor; + width: 0px; + transition: all 0.3s ease-in-out 0s; +} + +.cu-steps .cu-item[class*="text-"]::after { + width: calc(100% - 80rpx); + color: currentColor; +} + +.cu-steps .cu-item:first-child::before, .cu-steps .cu-item:first-child::after { + display: none; +} + +.cu-steps .cu-item .num { + width: 40rpx; + height: 40rpx; + border-radius: 50%; + line-height: 40rpx; + margin: 20rpx auto; + font-size: 24rpx; + border: 1px solid currentColor; + position: relative; + overflow: hidden; +} + +.cu-steps .cu-item[class*="text-"] .num { + background-color: currentColor; +} + +.cu-steps .cu-item .num::before, .cu-steps .cu-item .num::after { + content: attr(data-index); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + transition: all 0.3s ease-in-out 0s; + transform: translateY(0rpx); +} + +.cu-steps .cu-item[class*="text-"] .num::before { + transform: translateY(-40rpx); + color: #fff; +} + +.cu-steps .cu-item .num::after { + transform: translateY(40rpx); + color: #fff; + transition: all 0.3s ease-in-out 0s; +} + +.cu-steps .cu-item[class*="text-"] .num::after { + content: "\e645"; + font-family: 'iconfont'; + color: #fff; + transform: translateY(0rpx); +} + +.cu-steps .cu-item[class*="text-"] .num.err::after { + content: "\e646"; +} + +.flex { + display: flex; +} + +.basis-xs { + flex-basis: 20%; +} + +.basis-sm { + flex-basis: 40%; +} + +.basis-df { + flex-basis: 50%; +} + +.basis-lg { + flex-basis: 60%; +} + +.basis-xl { + flex-basis: 80%; +} + +.flex-sub { + flex: 1; +} + +.flex-twice { + flex: 2; +} + +.flex-treble { + flex: 3; +} + +.flex-direction { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.align-start { + align-items: flex-start; +} + +.align-end { + align-items: flex-end; +} + +.align-center { + align-items: center; +} + +.align-stretch { + align-items: stretch; +} + +.self-start { + align-self: flex-start; +} + +.self-center { + align-self: flex-center; +} + +.self-end { + align-self: flex-end; +} + +.self-stretch { + align-self: stretch; +} + +.align-stretch { + align-items: stretch; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.justify-around { + justify-content: space-around; +} + + +.grid { + display: flex; + flex-wrap: wrap; +} + +.grid.grid-square { + overflow: hidden; +} + +.grid.grid-square .cu-tag { + position: absolute; + right: 0; + top: 0; + border-bottom-left-radius: 6rpx; +} + +.grid.grid-square >view>text[class*="icon"] { + font-size: 52rpx; + position: absolute; + color: #aaa; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} + +.grid.grid-square > view { + margin-right: 20rpx; + margin-bottom: 20rpx; + border-radius: 6rpx; + position: relative; + overflow: hidden; +} + +.grid.col-1.grid-square > view { + padding-bottom: 100%; + height: 0; + margin-right: 0; +} + +.grid.col-2.grid-square > view { + padding-bottom: calc((100% - 20rpx)/2); + height: 0; + width: calc((100% - 20rpx)/2); +} + +.grid.col-2.grid-square > view:nth-child(2n) { + margin-right: 0; +} + +.grid.col-3.grid-square > view { + padding-bottom: calc((100% - 40rpx)/3); + height: 0; + width: calc((100% - 40rpx)/3); +} + +.grid.col-3.grid-square > view:nth-child(3n) { + margin-right: 0; +} + +.grid.col-4.grid-square > view { + padding-bottom: calc((100% - 60rpx)/4); + height: 0; + width: calc((100% - 60rpx)/4); +} + +.grid.col-4.grid-square > view:nth-child(4n) { + margin-right: 0; +} + +.grid.col-5.grid-square > view { + padding-bottom: calc((100% - 80rpx)/5); + height: 0; + width: calc((100% - 80rpx)/5); +} + +.grid.col-1>view { + width: 100%; +} + +.grid.col-2>view { + width: 50%; +} + +.grid.col-3>view { + width: 33.33%; +} + +.grid.col-4>view { + width: 25%; +} + +.grid.col-5>view { + width: 20%; +} + +.margin-0 { + margin: 0; +} + +.margin-xs { + margin: 10rpx; +} + +.margin-sm { + margin: 20rpx; +} + +.margin { + margin: 30rpx; +} + +.margin-lg { + margin: 40rpx; +} + +.margin-xl { + margin: 50rpx; +} + +.margin-top-xs { + margin-top: 10rpx; +} + +.margin-top-sm { + margin-top: 20rpx; +} + +.margin-top { + margin-top: 30rpx; +} + +.margin-top-lg { + margin-top: 40rpx; +} + +.margin-top-xl { + margin-top: 50rpx; +} + +.margin-right-xs { + margin-right: 10rpx; +} + +.margin-right-sm { + margin-right: 20rpx; +} + +.margin-right { + margin-right: 30rpx; +} + +.margin-right-lg { + margin-right: 40rpx; +} + +.margin-right-xl { + margin-right: 50rpx; +} + +.margin-bottom-xs { + margin-bottom: 10rpx; +} + +.margin-bottom-sm { + margin-bottom: 20rpx; +} + +.margin-bottom { + margin-bottom: 30rpx; +} + +.margin-bottom-lg { + margin-bottom: 40rpx; +} + +.margin-bottom-xl { + margin-bottom: 50rpx; +} + +.margin-left-xs { + margin-left: 10rpx; +} + +.margin-left-sm { + margin-left: 20rpx; +} + +.margin-left { + margin-left: 30rpx; +} + +.margin-left-lg { + margin-left: 40rpx; +} + +.margin-left-xl { + margin-left: 50rpx; +} + +.margin-lr-xs { + margin-left: 10rpx; + margin-right: 10rpx; +} + +.margin-lr-sm { + margin-left: 20rpx; + margin-right: 20rpx; +} + +.margin-lr { + margin-left: 30rpx; + margin-right: 30rpx; +} + +.margin-lr-lg { + margin-left: 40rpx; + margin-right: 40rpx; +} + +.margin-lr-xl { + margin-left: 50rpx; + margin-right: 50rpx; +} + +.margin-tb-xs { + margin-top: 10rpx; + margin-bottom: 10rpx; +} + +.margin-tb-sm { + margin-top: 20rpx; + margin-bottom: 20rpx; +} + +.margin-tb { + margin-top: 30rpx; + margin-bottom: 30rpx; +} + +.margin-tb-lg { + margin-top: 40rpx; + margin-bottom: 40rpx; +} + +.margin-tb-xl { + margin-top: 50rpx; + margin-bottom: 50rpx; +} + +.padding-0 { + padding: 0; +} + +.padding-xs { + padding: 10rpx; +} + +.padding-sm { + padding: 20rpx; +} + +.padding { + padding: 30rpx; +} + +.padding-lg { + padding: 40rpx; +} + +.padding-xl { + padding: 50rpx; +} + +.padding-top-xs { + padding-top: 10rpx; +} + +.padding-top-sm { + padding-top: 20rpx; +} + +.padding-top { + padding-top: 30rpx; +} + +.padding-top-lg { + padding-top: 40rpx; +} + +.padding-top-xl { + padding-top: 50rpx; +} + +.padding-right-xs { + padding-right: 10rpx; +} + +.padding-right-sm { + padding-right: 20rpx; +} + +.padding-right { + padding-right: 30rpx; +} + +.padding-right-lg { + padding-right: 40rpx; +} + +.padding-right-xl { + padding-right: 50rpx; +} + +.padding-bottom-xs { + padding-bottom: 10rpx; +} + +.padding-bottom-sm { + padding-bottom: 20rpx; +} + +.padding-bottom { + padding-bottom: 30rpx; +} + +.padding-bottom-lg { + padding-bottom: 40rpx; +} + +.padding-bottom-xl { + padding-bottom: 50rpx; +} + +.padding-left-xs { + padding-left: 10rpx; +} + +.padding-left-sm { + padding-left: 20rpx; +} + +.padding-left { + padding-left: 30rpx; +} + +.padding-left-lg { + padding-left: 40rpx; +} + +.padding-left-xl { + padding-left: 50rpx; +} + +.padding-lr-xs { + padding-left: 10rpx; + padding-right: 10rpx; +} + +.padding-lr-sm { + padding-left: 20rpx; + padding-right: 20rpx; +} + +.padding-lr { + padding-left: 30rpx; + padding-right: 30rpx; +} + +.padding-lr-lg { + padding-left: 40rpx; + padding-right: 40rpx; +} + +.padding-lr-xl { + padding-left: 50rpx; + padding-right: 50rpx; +} + +.padding-tb-xs { + padding-top: 10rpx; + padding-bottom: 10rpx; +} + +.padding-tb-sm { + padding-top: 20rpx; + padding-bottom: 20rpx; +} + +.padding-tb { + padding-top: 30rpx; + padding-bottom: 30rpx; +} + +.padding-tb-lg { + padding-top: 40rpx; + padding-bottom: 40rpx; +} + +.padding-tb-xl { + padding-top: 50rpx; + padding-bottom: 50rpx; +} + +.cf::after, .cf::before { + content: " "; + display: table; +} + +.cf::after { + clear: both; +} + +.fl { + float: left; +} + +.fr { + float: right; +} +.line-red::after, .lines-red::after { + border-color: #e54d42; +} + +.line-orange::after, .lines-orange::after { + border-color: #f37b1d; +} + +.line-yellow::after, .lines-yellow::after { + border-color: #ffe300; +} + +.line-olive::after, .lines-olive::after { + border-color: #8dc63f; +} + +.line-green::after, .lines-green::after { + border-color: #39b54a; +} + +.line-cyan::after, .lines-cyan::after { + border-color: #1cbbb4; +} + +.line-blue::after, .lines-blue::after { + border-color: #0081ff; +} + +.line-purple::after, .lines-purple::after { + border-color: #6739b6; +} + +.line-mauve::after, .lines-mauve::after { + border-color: #9c26b0; +} + +.line-pink::after, .lines-pink::after { + border-color: #e03997; +} + +.line-brown::after, .lines-brown::after { + border-color: #a5673f; +} + +.line-grey::after, .lines-grey::after { + border-color: #8799a3; +} + +.line-gray::after, .lines-gray::after { + border-color: #aaa; +} + +.line-black::after, .lines-black::after { + border-color: #333; +} + +.line-white::after, .lines-white::after { + border-color: #fff; +} + +.bg-red { + background-color: #e54d42; + color: #fff; +} + +.bg-orange { + background-color: #f37b1d; + color: #fff; +} + +.bg-yellow { + background-color: #ffe300; + color: #333; +} + +.bg-olive { + background-color: #8dc63f; + color: #fff; +} + +.bg-green { + background-color: #39b54a; + color: #fff; +} + +.bg-cyan { + background-color: #1cbbb4; + color: #fff; +} + +.bg-blue { + background-color: #0081ff; + color: #fff; +} + +.bg-purple { + background-color: #6739b6; + color: #fff; +} + +.bg-mauve { + background-color: #9c26b0; + color: #fff; +} + +.bg-pink { + background-color: #e03997; + color: #fff; +} + +.bg-brown { + background-color: #a5673f; + color: #fff; +} + +.bg-grey { + background-color: #8799a3; + color: #fff; +} + +.bg-gray { + background-color: #f0f0f0; + color: #666; +} + +.bg-black { + background-color: #333; + color: #fff; +} + +.bg-white { + background-color: #fff; + color: #666; +} + +.bg-shadeTop { + background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01)); + color: #fff; +} + +.bg-shadeBottom { + background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1)); + color: #fff; +} + +.bg-red.light { + color: #e54d42; + background: #fadbd9; +} + +.bg-orange.light { + color: #f37b1d; + background: #fde6d2; +} + +.bg-yellow.light { + color: #fbbd08; + background: #fef2ce; +} + +.bg-olive.light { + color: #8dc63f; + background: #e8f4d9; +} + +.bg-green.light { + color: #39b54a; + background: #d7f0db; +} + +.bg-cyan.light { + color: #1cbbb4; + background: #d2f1f0; +} + +.bg-blue.light { + color: #0081ff; + background: #cce6ff; +} + +.bg-purple.light { + color: #6739b6; + background: #e1d7f0; +} + +.bg-mauve.light { + color: #9c26b0; + background: #ebd4ef; +} + +.bg-pink.light { + color: #e03997; + background: #f9d7ea; +} + +.bg-brown.light { + color: #a5673f; + background: #ede1d9; +} + +.bg-grey.light { + color: #8799a3; + background: #e7ebed; +} + +.bg-gray.light { + color: #666; + background: #fadbd9; +} + +.bg-gray.light { + color: #888; + background: #f1f1f1; +} + +.bg-gradual-red { + background-image: linear-gradient(45deg, #f43f3b, #ec008c); + color: #fff; +} + +.bg-gradual-orange { + background-image: linear-gradient(45deg, #ff9700, #ed1c24); + color: #fff; +} + +.bg-gradual-green { + background-image: linear-gradient(45deg, #39b54a, #8dc63f); + color: #fff; +} + +.bg-gradual-purple { + background-image: linear-gradient(45deg, #9000ff, #5e00ff); + color: #fff; +} + +.bg-gradual-pink { + background-image: linear-gradient(45deg, #ec008c, #6739b6); + color: #fff; +} + +.bg-gradual-blue { + background-image: linear-gradient(45deg, #0081ff, #1cbbb4); + color: #fff; +} + +.shadow[class*="-red"] { + box-shadow: 6rpx 6rpx 8rpx rgba(204, 69, 59, 0.2); +} + +.shadow[class*="-orange"] { + box-shadow: 6rpx 6rpx 8rpx rgba(217, 109, 26, 0.2); +} + +.shadow[class*="-yellow"] { + box-shadow: 6rpx 6rpx 8rpx rgba(224, 170, 7, 0.2); +} + +.shadow[class*="-olive"] { + box-shadow: 6rpx 6rpx 8rpx rgba(124, 173, 55, 0.2); +} + +.shadow[class*="-green"] { + box-shadow: 6rpx 6rpx 8rpx rgba(48, 156, 63, 0.2); +} + +.shadow[class*="-cyan"] { + box-shadow: 6rpx 6rpx 8rpx rgba(28, 187, 180, 0.2); +} + +.shadow[class*="-blue"] { + box-shadow: 6rpx 6rpx 8rpx rgba(0, 102, 204, 0.2); +} + +.shadow[class*="-purple"] { + box-shadow: 6rpx 6rpx 8rpx rgba(88, 48, 156, 0.2); +} + +.shadow[class*="-mauve"] { + box-shadow: 6rpx 6rpx 8rpx rgba(133, 33, 150, 0.2); +} + +.shadow[class*="-pink"] { + box-shadow: 6rpx 6rpx 8rpx rgba(199, 50, 134, 0.2); +} + +.cu-btn.shadow[class*="-brown"] { + box-shadow: 6rpx 6rpx 8rpx rgba(140, 88, 53, 0.2); +} + +.cu-btn.shadow[class*="-grey"] { + box-shadow: 6rpx 6rpx 8rpx rgba(114, 130, 138, 0.2); +} + +.cu-btn.shadow[class*="-gray"] { + box-shadow: 6rpx 6rpx 8rpx rgba(114, 130, 138, 0.2); +} + +.cu-btn.shadow[class*="-black"] { + box-shadow: 6rpx 6rpx 8rpx rgba(26, 26, 26, 0.2); +} + +.bg-img { + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} + +.bg-mask { + background-color: #333; + position: relative; +} + +.bg-mask::after { + content: ""; + border-radius: inherit; + width: 100%; + height: 100%; + display: block; + background-color: rgba(0, 0, 0, 0.5); + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; +} + +.bg-mask view, .bg-mask cover-view { + z-index: 5; + position: relative; +} + +.bg-mask>cover-view { + background-color: rgba(0, 0, 0, 0.5); +} + +.bg-video { + position: relative; +} + +.bg-video video { + display: block; + height: 100%; + width: 100%; + -o-object-fit: cover; + object-fit: cover; + position: absolute; + top: 0; + z-index: 0; + pointer-events: none; +} + +.text-xs { + font-size: 20rpx; +} + +.text-sm { + font-size: 24rpx; +} +.text-df { + font-size: 28rpx; +} + +.text-lg { + font-size: 32rpx; +} + +.text-xl { + font-size: 36rpx; +} + +.text-xxl { + font-size: 44rpx; +} + +.text-sl { + font-size: 80rpx; +} + +.text-xsl { + font-size: 120rpx; +} + +.text-Abc { + text-transform: Capitalize; +} + +.text-ABC { + text-transform: Uppercase; +} + +.text-abc { + text-transform: Lowercase; +} + +.text-price::before { + content: "¥"; + font-size: 80%; + margin-right: 4rpx; +} + +.text-cut { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.text-2-cut { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; +} + +.text3-cut { + text-overflow: ellipsis; + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} + +.text-bold { + font-weight: bold; +} + +.text-center { + text-align: center; +} + +.text-content { + line-height: 1.6; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-red, .line-red, .lines-red { + color: #e54d42; +} + +.text-orange, .line-orange, .lines-orange { + color: #f37b1d; +} + +.text-yellow, .line-yellow, .lines-yellow { + color: #ffe300; +} + +.text-olive, .line-olive, .lines-olive { + color: #8dc63f; +} + +.text-green, .line-green, .lines-green { + color: #39b54a; +} + +.text-cyan, .line-cyan, .lines-cyan { + color: #1cbbb4; +} + +.text-blue, .line-blue, .lines-blue { + color: #0081ff; +} + +.text-purple, .line-purple, .lines-purple { + color: #6739b6; +} + +.text-mauve, .line-mauve, .lines-mauve { + color: #9c26b0; +} + +.text-pink, .line-pink, .lines-pink { + color: #e03997; +} + +.text-brown, .line-brown, .lines-brown { + color: #a5673f; +} + +.text-grey, .line-grey, .lines-grey { + color: #8799a3; +} + +.text-gray, .line-gray, .lines-gray { + color: #aaa; +} + +.text-black, .line-black, .lines-black { + color: #333; +} + +.text-white, .line-white, .lines-white { + color: #fff; +} diff --git a/components/static/style/icon.css b/components/static/style/icon.css new file mode 100644 index 0000000..80615c3 --- /dev/null +++ b/components/static/style/icon.css @@ -0,0 +1,1228 @@ +@keyframes icon-spin { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +.iconfont-spin { + -webkit-animation: icon-spin 2s infinite linear; + animation: icon-spin 2s infinite linear; + display: inline-block; +} + +.iconfont-pulse { + -webkit-animation: icon-spin 1s infinite steps(8); + animation: icon-spin 1s infinite steps(8); + display: inline-block; +} + +text[class*="icon-"], +view[class*="icon-"], +button[class*="icon-"] { + font-family: "cuIcon"; + font-size: inherit; + font-style: normal; +} + +@font-face { + font-family: "cuIcon"; + src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831'); + + src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831#iefix') format('embedded-opentype'), + + url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), + url('//at.alicdn.com/t/font_533566_yfq2d9wdij.ttf?t=1545239985831') format('truetype'), + + url('//at.alicdn.com/t/font_533566_yfq2d9wdij.svg?t=1545239985831#iconfont') format('svg'); + +} + +.icon-appreciate:before { + content: "\e644"; +} + +.icon-check:before { + content: "\e645"; +} + +.icon-close:before { + content: "\e646"; +} + +.icon-edit:before { + content: "\e649"; +} + +.icon-emoji:before { + content: "\e64a"; +} + +.icon-favorfill:before { + content: "\e64b"; +} + +.icon-favor:before { + content: "\e64c"; +} + +.icon-loading:before { + content: "\e64f"; +} + +.icon-locationfill:before { + content: "\e650"; +} + +.icon-location:before { + content: "\e651"; +} + +.icon-phone:before { + content: "\e652"; +} + +.icon-roundcheckfill:before { + content: "\e656"; +} + +.icon-roundcheck:before { + content: "\e657"; +} + +.icon-roundclosefill:before { + content: "\e658"; +} + +.icon-roundclose:before { + content: "\e659"; +} + +.icon-roundrightfill:before { + content: "\e65a"; +} + +.icon-roundright:before { + content: "\e65b"; +} + +.icon-search:before { + content: "\e65c"; +} + +.icon-taxi:before { + content: "\e65d"; +} + +.icon-timefill:before { + content: "\e65e"; +} + +.icon-time:before { + content: "\e65f"; +} + +.icon-unfold:before { + content: "\e661"; +} + +.icon-warnfill:before { + content: "\e662"; +} + +.icon-warn:before { + content: "\e663"; +} + +.icon-camerafill:before { + content: "\e664"; +} + +.icon-camera:before { + content: "\e665"; +} + +.icon-commentfill:before { + content: "\e666"; +} + +.icon-comment:before { + content: "\e667"; +} + +.icon-likefill:before { + content: "\e668"; +} + +.icon-like:before { + content: "\e669"; +} + +.icon-notificationfill:before { + content: "\e66a"; +} + +.icon-notification:before { + content: "\e66b"; +} + +.icon-order:before { + content: "\e66c"; +} + +.icon-samefill:before { + content: "\e66d"; +} + +.icon-same:before { + content: "\e66e"; +} + +.icon-deliver:before { + content: "\e671"; +} + +.icon-evaluate:before { + content: "\e672"; +} + +.icon-pay:before { + content: "\e673"; +} + +.icon-send:before { + content: "\e675"; +} + +.icon-shop:before { + content: "\e676"; +} + +.icon-ticket:before { + content: "\e677"; +} + +.icon-back:before { + content: "\e679"; +} + +.icon-cascades:before { + content: "\e67c"; +} + +.icon-discover:before { + content: "\e67e"; +} + +.icon-list:before { + content: "\e682"; +} + +.icon-more:before { + content: "\e684"; +} + +.icon-scan:before { + content: "\e689"; +} + +.icon-settings:before { + content: "\e68a"; +} + +.icon-questionfill:before { + content: "\e690"; +} + +.icon-question:before { + content: "\e691"; +} + +.icon-shopfill:before { + content: "\e697"; +} + +.icon-form:before { + content: "\e699"; +} + +.icon-pic:before { + content: "\e69b"; +} + +.icon-filter:before { + content: "\e69c"; +} + +.icon-footprint:before { + content: "\e69d"; +} + +.icon-top:before { + content: "\e69e"; +} + +.icon-pulldown:before { + content: "\e69f"; +} + +.icon-pullup:before { + content: "\e6a0"; +} + +.icon-right:before { + content: "\e6a3"; +} + +.icon-refresh:before { + content: "\e6a4"; +} + +.icon-moreandroid:before { + content: "\e6a5"; +} + +.icon-deletefill:before { + content: "\e6a6"; +} + +.icon-refund:before { + content: "\e6ac"; +} + +.icon-cart:before { + content: "\e6af"; +} + +.icon-qrcode:before { + content: "\e6b0"; +} + +.icon-remind:before { + content: "\e6b2"; +} + +.icon-delete:before { + content: "\e6b4"; +} + +.icon-profile:before { + content: "\e6b7"; +} + +.icon-home:before { + content: "\e6b8"; +} + +.icon-cartfill:before { + content: "\e6b9"; +} + +.icon-discoverfill:before { + content: "\e6ba"; +} + +.icon-homefill:before { + content: "\e6bb"; +} + +.icon-message:before { + content: "\e6bc"; +} + +.icon-addressbook:before { + content: "\e6bd"; +} + +.icon-link:before { + content: "\e6bf"; +} + +.icon-lock:before { + content: "\e6c0"; +} + +.icon-unlock:before { + content: "\e6c2"; +} + +.icon-vip:before { + content: "\e6c3"; +} + +.icon-weibo:before { + content: "\e6c4"; +} + +.icon-activity:before { + content: "\e6c5"; +} + +.icon-friendaddfill:before { + content: "\e6c9"; +} + +.icon-friendadd:before { + content: "\e6ca"; +} + +.icon-friendfamous:before { + content: "\e6cb"; +} + +.icon-friend:before { + content: "\e6cc"; +} + +.icon-goods:before { + content: "\e6cd"; +} + +.icon-selection:before { + content: "\e6ce"; +} + +.icon-explore:before { + content: "\e6d2"; +} + +.icon-present:before { + content: "\e6d3"; +} + +.icon-squarecheckfill:before { + content: "\e6d4"; +} + +.icon-square:before { + content: "\e6d5"; +} + +.icon-squarecheck:before { + content: "\e6d6"; +} + +.icon-round:before { + content: "\e6d7"; +} + +.icon-roundaddfill:before { + content: "\e6d8"; +} + +.icon-roundadd:before { + content: "\e6d9"; +} + +.icon-add:before { + content: "\e6da"; +} + +.icon-notificationforbidfill:before { + content: "\e6db"; +} + +.icon-explorefill:before { + content: "\e6dd"; +} + +.icon-fold:before { + content: "\e6de"; +} + +.icon-game:before { + content: "\e6df"; +} + +.icon-redpacket:before { + content: "\e6e0"; +} + +.icon-selectionfill:before { + content: "\e6e1"; +} + +.icon-similar:before { + content: "\e6e2"; +} + +.icon-appreciatefill:before { + content: "\e6e3"; +} + +.icon-infofill:before { + content: "\e6e4"; +} + +.icon-info:before { + content: "\e6e5"; +} + +.icon-forwardfill:before { + content: "\e6ea"; +} + +.icon-forward:before { + content: "\e6eb"; +} + +.icon-rechargefill:before { + content: "\e6ec"; +} + +.icon-recharge:before { + content: "\e6ed"; +} + +.icon-vipcard:before { + content: "\e6ee"; +} + +.icon-voice:before { + content: "\e6ef"; +} + +.icon-voicefill:before { + content: "\e6f0"; +} + +.icon-friendfavor:before { + content: "\e6f1"; +} + +.icon-wifi:before { + content: "\e6f2"; +} + +.icon-share:before { + content: "\e6f3"; +} + +.icon-wefill:before { + content: "\e6f4"; +} + +.icon-we:before { + content: "\e6f5"; +} + +.icon-lightauto:before { + content: "\e6f6"; +} + +.icon-lightforbid:before { + content: "\e6f7"; +} + +.icon-lightfill:before { + content: "\e6f8"; +} + +.icon-camerarotate:before { + content: "\e6f9"; +} + +.icon-light:before { + content: "\e6fa"; +} + +.icon-barcode:before { + content: "\e6fb"; +} + +.icon-flashlightclose:before { + content: "\e6fc"; +} + +.icon-flashlightopen:before { + content: "\e6fd"; +} + +.icon-searchlist:before { + content: "\e6fe"; +} + +.icon-service:before { + content: "\e6ff"; +} + +.icon-sort:before { + content: "\e700"; +} + +.icon-down:before { + content: "\e703"; +} + +.icon-mobile:before { + content: "\e704"; +} + +.icon-mobilefill:before { + content: "\e705"; +} + +.icon-copy:before { + content: "\e706"; +} + +.icon-countdownfill:before { + content: "\e707"; +} + +.icon-countdown:before { + content: "\e708"; +} + +.icon-noticefill:before { + content: "\e709"; +} + +.icon-notice:before { + content: "\e70a"; +} + +.icon-upstagefill:before { + content: "\e70e"; +} + +.icon-upstage:before { + content: "\e70f"; +} + +.icon-babyfill:before { + content: "\e710"; +} + +.icon-baby:before { + content: "\e711"; +} + +.icon-brandfill:before { + content: "\e712"; +} + +.icon-brand:before { + content: "\e713"; +} + +.icon-choicenessfill:before { + content: "\e714"; +} + +.icon-choiceness:before { + content: "\e715"; +} + +.icon-clothesfill:before { + content: "\e716"; +} + +.icon-clothes:before { + content: "\e717"; +} + +.icon-creativefill:before { + content: "\e718"; +} + +.icon-creative:before { + content: "\e719"; +} + +.icon-female:before { + content: "\e71a"; +} + +.icon-keyboard:before { + content: "\e71b"; +} + +.icon-male:before { + content: "\e71c"; +} + +.icon-newfill:before { + content: "\e71d"; +} + +.icon-new:before { + content: "\e71e"; +} + +.icon-pullleft:before { + content: "\e71f"; +} + +.icon-pullright:before { + content: "\e720"; +} + +.icon-rankfill:before { + content: "\e721"; +} + +.icon-rank:before { + content: "\e722"; +} + +.icon-bad:before { + content: "\e723"; +} + +.icon-cameraadd:before { + content: "\e724"; +} + +.icon-focus:before { + content: "\e725"; +} + +.icon-friendfill:before { + content: "\e726"; +} + +.icon-cameraaddfill:before { + content: "\e727"; +} + +.icon-apps:before { + content: "\e729"; +} + +.icon-paintfill:before { + content: "\e72a"; +} + +.icon-paint:before { + content: "\e72b"; +} + +.icon-picfill:before { + content: "\e72c"; +} + +.icon-refresharrow:before { + content: "\e72d"; +} + +.icon-colorlens:before { + content: "\e6e6"; +} + +.icon-markfill:before { + content: "\e730"; +} + +.icon-mark:before { + content: "\e731"; +} + +.icon-presentfill:before { + content: "\e732"; +} + +.icon-repeal:before { + content: "\e733"; +} + +.icon-album:before { + content: "\e734"; +} + +.icon-peoplefill:before { + content: "\e735"; +} + +.icon-people:before { + content: "\e736"; +} + +.icon-servicefill:before { + content: "\e737"; +} + +.icon-repair:before { + content: "\e738"; +} + +.icon-file:before { + content: "\e739"; +} + +.icon-repairfill:before { + content: "\e73a"; +} + +.icon-taoxiaopu:before { + content: "\e73b"; +} + +.icon-weixin:before { + content: "\e612"; +} + +.icon-attentionfill:before { + content: "\e73c"; +} + +.icon-attention:before { + content: "\e73d"; +} + +.icon-commandfill:before { + content: "\e73e"; +} + +.icon-command:before { + content: "\e73f"; +} + +.icon-communityfill:before { + content: "\e740"; +} + +.icon-community:before { + content: "\e741"; +} + +.icon-read:before { + content: "\e742"; +} + +.icon-calendar:before { + content: "\e74a"; +} + +.icon-cut:before { + content: "\e74b"; +} + +.icon-magic:before { + content: "\e74c"; +} + +.icon-backwardfill:before { + content: "\e74d"; +} + +.icon-playfill:before { + content: "\e74f"; +} + +.icon-stop:before { + content: "\e750"; +} + +.icon-tagfill:before { + content: "\e751"; +} + +.icon-tag:before { + content: "\e752"; +} + +.icon-group:before { + content: "\e753"; +} + +.icon-all:before { + content: "\e755"; +} + +.icon-backdelete:before { + content: "\e756"; +} + +.icon-hotfill:before { + content: "\e757"; +} + +.icon-hot:before { + content: "\e758"; +} + +.icon-post:before { + content: "\e759"; +} + +.icon-radiobox:before { + content: "\e75b"; +} + +.icon-rounddown:before { + content: "\e75c"; +} + +.icon-upload:before { + content: "\e75d"; +} + +.icon-writefill:before { + content: "\e760"; +} + +.icon-write:before { + content: "\e761"; +} + +.icon-radioboxfill:before { + content: "\e763"; +} + +.icon-punch:before { + content: "\e764"; +} + +.icon-shake:before { + content: "\e765"; +} + +.icon-move:before { + content: "\e768"; +} + +.icon-safe:before { + content: "\e769"; +} + +.icon-activityfill:before { + content: "\e775"; +} + +.icon-crownfill:before { + content: "\e776"; +} + +.icon-crown:before { + content: "\e777"; +} + +.icon-goodsfill:before { + content: "\e778"; +} + +.icon-messagefill:before { + content: "\e779"; +} + +.icon-profilefill:before { + content: "\e77a"; +} + +.icon-sound:before { + content: "\e77b"; +} + +.icon-sponsorfill:before { + content: "\e77c"; +} + +.icon-sponsor:before { + content: "\e77d"; +} + +.icon-upblock:before { + content: "\e77e"; +} + +.icon-weblock:before { + content: "\e77f"; +} + +.icon-weunblock:before { + content: "\e780"; +} + +.icon-my:before { + content: "\e78b"; +} + +.icon-myfill:before { + content: "\e78c"; +} + +.icon-emojifill:before { + content: "\e78d"; +} + +.icon-emojiflashfill:before { + content: "\e78e"; +} + +.icon-flashbuyfill:before { + content: "\e78f"; +} + +.icon-text:before { + content: "\e791"; +} + +.icon-goodsfavor:before { + content: "\e794"; +} + +.icon-musicfill:before { + content: "\e795"; +} + +.icon-musicforbidfill:before { + content: "\e796"; +} + +.icon-card:before { + content: "\e624"; +} + +.icon-triangledownfill:before { + content: "\e79b"; +} + +.icon-triangleupfill:before { + content: "\e79c"; +} + +.icon-roundleftfill-copy:before { + content: "\e79e"; +} + +.icon-font:before { + content: "\e76a"; +} + +.icon-title:before { + content: "\e82f"; +} + +.icon-recordfill:before { + content: "\e7a4"; +} + +.icon-record:before { + content: "\e7a6"; +} + +.icon-cardboardfill:before { + content: "\e7a9"; +} + +.icon-cardboard:before { + content: "\e7aa"; +} + +.icon-formfill:before { + content: "\e7ab"; +} + +.icon-coin:before { + content: "\e7ac"; +} + +.icon-cardboardforbid:before { + content: "\e7af"; +} + +.icon-circlefill:before { + content: "\e7b0"; +} + +.icon-circle:before { + content: "\e7b1"; +} + +.icon-attentionforbid:before { + content: "\e7b2"; +} + +.icon-attentionforbidfill:before { + content: "\e7b3"; +} + +.icon-attentionfavorfill:before { + content: "\e7b4"; +} + +.icon-attentionfavor:before { + content: "\e7b5"; +} + +.icon-titles:before { + content: "\e701"; +} + +.icon-icloading:before { + content: "\e67a"; +} + +.icon-full:before { + content: "\e7bc"; +} + +.icon-mail:before { + content: "\e7bd"; +} + +.icon-peoplelist:before { + content: "\e7be"; +} + +.icon-goodsnewfill:before { + content: "\e7bf"; +} + +.icon-goodsnew:before { + content: "\e7c0"; +} + +.icon-medalfill:before { + content: "\e7c1"; +} + +.icon-medal:before { + content: "\e7c2"; +} + +.icon-newsfill:before { + content: "\e7c3"; +} + +.icon-newshotfill:before { + content: "\e7c4"; +} + +.icon-newshot:before { + content: "\e7c5"; +} + +.icon-news:before { + content: "\e7c6"; +} + +.icon-videofill:before { + content: "\e7c7"; +} + +.icon-video:before { + content: "\e7c8"; +} + +.icon-exit:before { + content: "\e7cb"; +} + +.icon-skinfill:before { + content: "\e7cc"; +} + +.icon-skin:before { + content: "\e7cd"; +} + +.icon-moneybagfill:before { + content: "\e7ce"; +} + +.icon-usefullfill:before { + content: "\e7cf"; +} + +.icon-usefull:before { + content: "\e7d0"; +} + +.icon-moneybag:before { + content: "\e7d1"; +} + +.icon-redpacket_fill:before { + content: "\e7d3"; +} + +.icon-subscription:before { + content: "\e7d4"; +} + +.icon-loading1:before { + content: "\e633"; +} + +.icon-github:before { + content: "\e692"; +} + +.icon-global:before { + content: "\e7eb"; +} + +.icon-settingsfill:before { + content: "\e6ab"; +} + +.icon-back_android:before { + content: "\e7ed"; +} + +.icon-expressman:before { + content: "\e7ef"; +} + +.icon-evaluate_fill:before { + content: "\e7f0"; +} + +.icon-group_fill:before { + content: "\e7f5"; +} + +.icon-play_forward_fill:before { + content: "\e7f6"; +} + +.icon-deliver_fill:before { + content: "\e7f7"; +} + +.icon-notice_forbid_fill:before { + content: "\e7f8"; +} + +.icon-fork:before { + content: "\e60c"; +} + +.icon-pick:before { + content: "\e7fa"; +} + +.icon-wenzi:before { + content: "\e6a7"; +} + +.icon-ellipse:before { + content: "\e600"; +} + +.icon-qr_code:before { + content: "\e61b"; +} + +.icon-dianhua:before { + content: "\e64d"; +} + +.icon-icon:before { + content: "\e602"; +} + +.icon-loading2:before { + content: "\e7f1"; +} + +.icon-btn:before { + content: "\e601"; +} diff --git a/components/static/user/logo-active.png b/components/static/user/logo-active.png new file mode 100644 index 0000000..303ce9b Binary files /dev/null and b/components/static/user/logo-active.png differ diff --git a/components/static/user/logo.png b/components/static/user/logo.png new file mode 100644 index 0000000..73cdc79 Binary files /dev/null and b/components/static/user/logo.png differ diff --git a/components/statusBar/statusBar.vue b/components/statusBar/statusBar.vue new file mode 100644 index 0000000..ac53a6e --- /dev/null +++ b/components/statusBar/statusBar.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/config.js b/config.js new file mode 100644 index 0000000..54c17df --- /dev/null +++ b/config.js @@ -0,0 +1,10 @@ +export default { + // baseUrl: 'http://192.168.1.63:1017', + baseUrl: 'https://dianxr.com', + sok: 'dianxr.com', + // sok: '192.168.1.63:1017', + // baseUrl: 'http://192.168.1.63:1017', + + + isInvest: true +} \ No newline at end of file diff --git a/hooks/useNav.js b/hooks/useNav.js new file mode 100644 index 0000000..ce79835 --- /dev/null +++ b/hooks/useNav.js @@ -0,0 +1,73 @@ +import { + ref, + watch +} from 'vue'; + + +export function useNav() { + + + + const nav = (e) => { + if (e.call) { + uni.makePhoneCall({ + phoneNumber: '4008005326' //仅为示例 + }); + return + } + if (!uni.getStorageSync('token')) { + uni.showModal({ + title: '提示', + content: '为提供更好的服务,请前往登录', + success: (res) => { + if (res.confirm) { + uni.navigateTo({ + url: '/pages/login/login' + }) + } else if (res.cancel) { + console.log('用户点击取消'); + } + } + }) + return + } + uni[e.type == 'nav' || !e.type ? 'navigateTo' : e.type == 'switchTab' ? 'switchTab' : 'navigateTo']({ + url: e.path + }) + } + + const relTo = (path, token, call) => { + uni.reLaunch({ + url: path + }) + } + + const navTo = (path, token, call) => { + // if (!uni.getStorageSync('token')) { + // uni.showModal({ + // title: '提示', + // content: '为提供更好的服务,请前往登录', + // success: (res) => { + // if (res.confirm) { + // uni.navigateTo({ + // url: '/pages/login/login' + // }) + // } else if (res.cancel) { + // console.log('用户点击取消'); + // } + // } + // }) + // return + // } + uni.navigateTo({ + url: path + }) + } + return { + nav, + navTo, + relTo + } +} + +export default useNav \ No newline at end of file diff --git a/hooks/userInfo.js b/hooks/userInfo.js new file mode 100644 index 0000000..d0bb636 --- /dev/null +++ b/hooks/userInfo.js @@ -0,0 +1,127 @@ +import { + userInfo, + userInfoIsInvest +} from '@/api/api.js'; +import config from '@/config' +import { + onShow, + onLoad +} from '@dcloudio/uni-app'; +import { + reactive, + ref, + onMounted +} from 'vue'; + +export function userHook() { + const user = reactive({}); + const isInvest = ref(false) + const tabbar = ref([]) + + + const fetchUserData = async () => { + if (!uni.getStorageSync('token')) { + return + } + + + try { + const data = isInvest.value ? await userInfoIsInvest() : await userInfo(); + Object.assign(user, data); + } catch (error) { + console.log(error); + } + }; + const tabbarData = async () => { + // let isInvest = uni.getStorageSync('isInvest') || false; + tabbar.value = isInvest.value ? [{ + index: 0, + name: '首页', + img: '/static/tabbar/select_home.png', + acImg: '/static/tabbar/home.png' + }, + { + index: 1, + name: '订单', + img: '/static/tabbar/orderIs1.png', + acImg: '/static/tabbar/orderIs.png' + }, + { + index: 2, + name: '充电桩', + img: '/static/tabbar/cds.png', + acImg: '/static/tabbar/cd.png' + }, + { + index: 3, + name: '我的', + img: '/static/tabbar/select_my.png', + acImg: '/static/tabbar/my.png' + } + ] : [{ + index: 0, + name: '首页', + img: '/static/tabbar/select_home.png', + acImg: '/static/tabbar/home.png' + }, + { + index: 1, + name: '地图', + img: '/static/tabbar/select_sq.png', + acImg: '/static/tabbar/sq.png' + }, + { + index: 2, + name: '扫一扫', + img: '/static/tabbar/find.png', + acImg: '/static/tabbar/find.png', + type: 'big' + }, + { + index: 3, + name: '发现', + img: '/static/tabbar/select_order.png', + acImg: '/static/tabbar/order.png' + }, + { + index: 4, + name: '我的', + img: '/static/tabbar/select_my.png', + acImg: '/static/tabbar/my.png' + } + ]; + }; + + // onMounted(() => { + // console.log('onMounted-Hook'); + // tabbarData() + // }) + + onLoad(() => { + console.log('onLoad-Hook'); + isInvest.value = uni.getStorageSync('isInvest'); + if (isInvest.value === '') { + isInvest.value = config.isInvest; + } + + + + tabbarData() + }) + + onShow(async () => { + console.log('onShow Hook'); + isInvest.value = uni.getStorageSync('isInvest'); + if (isInvest.value === '') { + isInvest.value = config.isInvest; + } + await fetchUserData(); + }); + + return { + user, + isInvest, + fetchUserData, + tabbar + }; +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..c3ff205 --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/main.js b/main.js new file mode 100644 index 0000000..4f3e7ed --- /dev/null +++ b/main.js @@ -0,0 +1,34 @@ +import App from './App' + +import store from './store/index.js' +import uviewPlus from '@/uni_modules/uview-plus' +// 引入uview-plus对小程序分享的mixin封装 +import mpShare from '@/uni_modules/uview-plus/libs/mixin/mpShare' +// #ifndef VUE3 +import Vue from 'vue' +import './uni.promisify.adaptor' +Vue.config.productionTip = false +App.mpType = 'app' +const app = new Vue({ + ...App +}) +app.$mount() + +// #endif + + + +// #ifdef VUE3 +import { + createSSRApp +} from 'vue' +export function createApp() { + const app = createSSRApp(App) + app.mixin(mpShare) + app.use(uviewPlus) + app.use(store) + return { + app, + } +} +// #endif \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..ef83437 --- /dev/null +++ b/manifest.json @@ -0,0 +1,79 @@ +{ + "name" : "电小芮", + "appid" : "__UNI__334883D", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "wx9c307554d0e5edb0", + "setting" : { + "urlCheck" : false + }, + "usingComponents" : true, + "permission" : { + "scope.userLocation" : { + "desc" : "你的位置信息将用于小程序位置接口的效果展示" + } + }, + "requiredPrivateInfos" : [ "getLocation" ] + }, + "mp-alipay" : { + "usingComponents" : true, + "appid" : "2021004150609395" + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "3" +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a436e10 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "id": "itsse-20230104", + "name": "顶部导航栏滚动渐变", + "displayName": "顶部导航栏滚动渐变", + "version": "1.0", + "description": "顶部导航栏滚动渐变,适用于微信小程序,其他小程序APP没有测试过", + "keywords": [ + "滚动渐变", + "导航栏滚动渐变" + ], + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ] + } +} \ No newline at end of file diff --git a/pageInvest/facility/facility.vue b/pageInvest/facility/facility.vue new file mode 100644 index 0000000..a6472cf --- /dev/null +++ b/pageInvest/facility/facility.vue @@ -0,0 +1,213 @@ + + + + + \ No newline at end of file diff --git a/pageInvest/login/getBack.vue b/pageInvest/login/getBack.vue new file mode 100644 index 0000000..80d0986 --- /dev/null +++ b/pageInvest/login/getBack.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/pageInvest/login/getBackAccout.vue b/pageInvest/login/getBackAccout.vue new file mode 100644 index 0000000..d083e5f --- /dev/null +++ b/pageInvest/login/getBackAccout.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/pageInvest/login/login.vue b/pageInvest/login/login.vue new file mode 100644 index 0000000..953c07d --- /dev/null +++ b/pageInvest/login/login.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/pageInvest/login/register.vue b/pageInvest/login/register.vue new file mode 100644 index 0000000..7594eb4 --- /dev/null +++ b/pageInvest/login/register.vue @@ -0,0 +1,192 @@ + + + + + + + diff --git a/pageInvest/money/recharge.vue b/pageInvest/money/recharge.vue new file mode 100644 index 0000000..9fd05a5 --- /dev/null +++ b/pageInvest/money/recharge.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/pageInvest/money/wallet.vue b/pageInvest/money/wallet.vue new file mode 100644 index 0000000..5090a15 --- /dev/null +++ b/pageInvest/money/wallet.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/pageInvest/money/withdraw.vue b/pageInvest/money/withdraw.vue new file mode 100644 index 0000000..9455e59 --- /dev/null +++ b/pageInvest/money/withdraw.vue @@ -0,0 +1,267 @@ + + + + + diff --git a/pageInvest/shop/affirm.vue b/pageInvest/shop/affirm.vue new file mode 100644 index 0000000..fa4a900 --- /dev/null +++ b/pageInvest/shop/affirm.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/pageInvest/shop/details.vue b/pageInvest/shop/details.vue new file mode 100644 index 0000000..cb15238 --- /dev/null +++ b/pageInvest/shop/details.vue @@ -0,0 +1,139 @@ + + + + + + + \ No newline at end of file diff --git a/pageInvest/shop/order.vue b/pageInvest/shop/order.vue new file mode 100644 index 0000000..1100943 --- /dev/null +++ b/pageInvest/shop/order.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/pageInvest/shop/pay.vue b/pageInvest/shop/pay.vue new file mode 100644 index 0000000..65a8068 --- /dev/null +++ b/pageInvest/shop/pay.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/pageInvest/shop/shop.vue b/pageInvest/shop/shop.vue new file mode 100644 index 0000000..71d4055 --- /dev/null +++ b/pageInvest/shop/shop.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/pageMake/invoice/applyFor.vue b/pageMake/invoice/applyFor.vue new file mode 100644 index 0000000..1d4f4be --- /dev/null +++ b/pageMake/invoice/applyFor.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/pageMake/invoice/applyForDay.vue b/pageMake/invoice/applyForDay.vue new file mode 100644 index 0000000..95af129 --- /dev/null +++ b/pageMake/invoice/applyForDay.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/pageMake/invoice/invoice.vue b/pageMake/invoice/invoice.vue new file mode 100644 index 0000000..d1a2f5a --- /dev/null +++ b/pageMake/invoice/invoice.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/pageMake/invoice/makeInvoice.vue b/pageMake/invoice/makeInvoice.vue new file mode 100644 index 0000000..a8aded8 --- /dev/null +++ b/pageMake/invoice/makeInvoice.vue @@ -0,0 +1,296 @@ + + + + + + + diff --git a/pageMake/refund/refund.vue b/pageMake/refund/refund.vue new file mode 100644 index 0000000..223de58 --- /dev/null +++ b/pageMake/refund/refund.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/pageOrder/recharge/recharge.vue b/pageOrder/recharge/recharge.vue new file mode 100644 index 0000000..616be11 --- /dev/null +++ b/pageOrder/recharge/recharge.vue @@ -0,0 +1,285 @@ + + + + + + + diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..caee605 --- /dev/null +++ b/pages.json @@ -0,0 +1,379 @@ +{ + "easycom": { + "autoscan": true, + // 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question/131175 + "custom": { + "^u--(.*)": "@/uni_modules/uview-plus/components/u-$1/u-$1.vue", + "^up-(.*)": "@/uni_modules/uview-plus/components/u-$1/u-$1.vue", + "^u-([^-].*)": "@/uni_modules/uview-plus/components/u-$1/u-$1.vue" + } + }, + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/home/home", + "style": { + "navigationBarTitleText": "电小芮", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom", + "mp-alipay": { + "transparentTitle": "always", + "titlePenetrate": "YES" + } + } + }, + { + "path": "pages/mine/mine", + "style": { + "navigationBarTitleText": "个人中心", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/order/order", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "mp-alipay": { + "transparentTitle": "always", + "titlePenetrate": "YES" + } + } + }, + { + "path": "pages/sweep/sweep", + "style": { + "navigationBarTitleText": "扫码充电", + "navigationStyle": "custom", + "mp-alipay": { + "transparentTitle": "always", + "titlePenetrate": "YES" + } + } + }, + { + "path": "pages/order/detail", + "style": { + "navigationBarTitleText": "" + } + }, + { + "path": "pages/home/detail", + "style": { + "navigationBarTitleText": "电站详情", + "navigationStyle": "custom", + "mp-alipay": { + "transparentTitle": "always", + "titlePenetrate": "YES" + } + } + }, + { + "path": "pages/login/login", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom", + "mp-alipay": { + "transparentTitle": "always", + "titlePenetrate": "YES" + } + } + }, + { + "path": "pages/home/star", + "style": { + "navigationBarTitleText": "开始充电" + } + }, + { + "path": "pages/mine/earnings", + "style": { + "navigationBarTitleText": "收益" + } + }, + { + "path": "pages/mine/sett", + "style": { + "navigationBarTitleText": "" + } + }, + { + "path": "pages/mine/incomeList", + "style": { + "navigationBarTitleText": "余额明细" + } + }, + { + "path": "pages/mine/card", + "style": { + "navigationBarTitleText": "我的电卡" + } + }, + { + "path": "pages/mine/cardList", + "style": { + "navigationBarTitleText": "电卡记录" + } + }, + { + "path": "pages/money/recharge", + "style": { + "navigationBarTitleText": "充值" + } + }, + { + "path": "pages/agreement/agreement", + "style": { + "navigationBarTitleText": "" + } + }, + { + "path": "pages/mine/car/car", + "style": { + "navigationBarTitleText": "我的爱车" + } + }, + { + "path": "pages/mine/car/add", + "style": { + "navigationBarTitleText": "绑定爱车" + } + }, + { + "path": "pages/find/find", + "style": { + "navigationBarTitleText": "电小芮" + } + }, + { + "path": "pages/find/myArticle", + "style": { + "navigationBarTitleText": "我的文章" + } + }, + { + "path": "pages/find/detail", + "style": { + "navigationBarTitleText": "详情" + } + }, + { + "path": "pages/mine/multipleNumbers", + "style": { + "navigationBarTitleText": "" + } + }, + { + "path": "pages/bank/bank", + "style": { + "navigationBarTitleText": "银行卡" + } + }, + { + "path": "pages/bank/addBankCard", + "style": { + "navigationBarTitleText": "添加银行卡" + } + }, + { + "path": "pages/mine/signIn", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom", + "mp-alipay": { + "transparentTitle": "always", + "titlePenetrate": "YES" + } + } + }, + { + "path": "pages/find/add", + "style": { + "navigationBarTitleText": "发布" + } + }, + { + "path": "pages/protocol/buy", + "style": { + "navigationBarTitleText": "" + } + }, + { + "path": "pages/protocol/trusteeship", + "style": { + "navigationBarTitleText": "发布" + } + } + ], + "subPackages": [{ + "root": "pageOrder", + "pages": [{ + "path": "recharge/recharge", + "style": { + "navigationBarTitleText": "充电中", + "navigationBarBackgroundColor": "#000", + "navigationBarTextStyle": "white", + "mp-alipay": { + "transparentTitle": "always", + "titlePenetrate": "YES" + } + } + }] + }, { + "root": "pageMake", + "pages": [{ + "path": "invoice/invoice", + "style": { + "navigationBarTitleText": "开票记录" + } + }, + { + "path": "invoice/applyFor", + "style": { + "navigationBarTitleText": "申请开票" + } + }, + { + "path": "invoice/makeInvoice", + "style": { + "navigationBarTitleText": "申请开票" + } + }, + { + "path": "invoice/applyForDay", + "style": { + "navigationBarTitleText": "申请开票" + } + }, + { + "path": "refund/refund", + "style": { + "navigationBarTitleText": "退款申请" + } + } + ] + }, { + "root": "pageInvest", + "pages": [{ + "path": "shop/shop", + "style": { + "navigationBarTitleText": "商城" + } + }, + { + "path": "facility/facility", + "style": { + "navigationBarTitleText": "我的充电桩" + } + }, + { + "path": "login/login", + "style": { + "navigationBarTitleText": "登录", + "navigationStyle": "custom" + } + }, + { + "path": "login/register", + "style": { + "navigationBarTitleText": "注册", + "navigationStyle": "custom" + } + }, + { + "path": "login/getBack", + "style": { + "navigationBarTitleText": "找回密码", + "navigationStyle": "custom" + } + }, + { + "path": "login/getBackAccout", + "style": { + "navigationBarTitleText": "找回账号", + "navigationStyle": "custom" + } + }, + { + "path": "shop/details", + "style": { + "navigationBarTitleText": "商品详情" + } + }, + { + "path": "shop/affirm", + "style": { + "navigationBarTitleText": "确认订单" + } + }, + { + "path": "shop/pay", + "style": { + "navigationBarTitleText": "订单支付" + } + }, + { + "path": "shop/order", + "style": { + "navigationBarTitleText": "订单列表" + } + }, + { + "path": "money/wallet", + "style": { + "navigationBarTitleText": "余额" + } + }, + { + "path": "money/withdraw", + "style": { + "navigationBarTitleText": "提现" + } + }, + { + "path": "money/recharge", + "style": { + "navigationBarTitleText": "充值" + } + } + ] + }], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "", + "navigationBarBackgroundColor": "#fff", + "backgroundColor": "#fff" + }, + "uniIdRouter": {} + // "tabBar": { + // "color": "#999999", + // "selectedColor": "#999999", + // "borderStyle": "black", + // "backgroundColor": "#ffffff", + // "height": "60px", + // "list": [ + // { + // "pagePath": "pages/home/home", + // "text": "首页" + // }, { + // "pagePath": "pages/index/index", + // "text": "地图" + // }, { + // "pagePath": "pages/sweep/sweep", + // "text": "扫码充电" + // }, { + // "pagePath": "pages/find/find", + // "text": "发现" + // }, { + // "pagePath": "pages/mine/mine", + // "text": "我的" + // }] + // } +} \ No newline at end of file diff --git a/pages/agreement/agreement.vue b/pages/agreement/agreement.vue new file mode 100644 index 0000000..1c45235 --- /dev/null +++ b/pages/agreement/agreement.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/pages/bank/addBankCard.vue b/pages/bank/addBankCard.vue new file mode 100644 index 0000000..e6573a8 --- /dev/null +++ b/pages/bank/addBankCard.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/pages/bank/bank.vue b/pages/bank/bank.vue new file mode 100644 index 0000000..9c3d767 --- /dev/null +++ b/pages/bank/bank.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/pages/find/add.vue b/pages/find/add.vue new file mode 100644 index 0000000..782d255 --- /dev/null +++ b/pages/find/add.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/pages/find/detail.vue b/pages/find/detail.vue new file mode 100644 index 0000000..f16e681 --- /dev/null +++ b/pages/find/detail.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/pages/find/find.vue b/pages/find/find.vue new file mode 100644 index 0000000..029e0bd --- /dev/null +++ b/pages/find/find.vue @@ -0,0 +1,122 @@ + + + + diff --git a/pages/find/myArticle.vue b/pages/find/myArticle.vue new file mode 100644 index 0000000..ed1814e --- /dev/null +++ b/pages/find/myArticle.vue @@ -0,0 +1,186 @@ + + + + + \ No newline at end of file diff --git a/pages/home/components/Invest/facility.vue b/pages/home/components/Invest/facility.vue new file mode 100644 index 0000000..06fe4bb --- /dev/null +++ b/pages/home/components/Invest/facility.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/pages/home/components/Invest/order.vue b/pages/home/components/Invest/order.vue new file mode 100644 index 0000000..74a5053 --- /dev/null +++ b/pages/home/components/Invest/order.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/pages/home/components/Invest/shop.vue b/pages/home/components/Invest/shop.vue new file mode 100644 index 0000000..722c774 --- /dev/null +++ b/pages/home/components/Invest/shop.vue @@ -0,0 +1,349 @@ + + + + + diff --git a/pages/home/components/user/find.vue b/pages/home/components/user/find.vue new file mode 100644 index 0000000..3b57b9e --- /dev/null +++ b/pages/home/components/user/find.vue @@ -0,0 +1,138 @@ + + + + diff --git a/pages/home/components/user/home.vue b/pages/home/components/user/home.vue new file mode 100644 index 0000000..acb154e --- /dev/null +++ b/pages/home/components/user/home.vue @@ -0,0 +1,389 @@ + + + + + + + diff --git a/pages/home/components/user/index.vue b/pages/home/components/user/index.vue new file mode 100644 index 0000000..e2425f9 --- /dev/null +++ b/pages/home/components/user/index.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/pages/home/components/user/mine.vue b/pages/home/components/user/mine.vue new file mode 100644 index 0000000..67629b9 --- /dev/null +++ b/pages/home/components/user/mine.vue @@ -0,0 +1,373 @@ + + + + + diff --git a/pages/home/components/user/sweep.vue b/pages/home/components/user/sweep.vue new file mode 100644 index 0000000..b2261d7 --- /dev/null +++ b/pages/home/components/user/sweep.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/pages/home/detail.vue b/pages/home/detail.vue new file mode 100644 index 0000000..9c02aed --- /dev/null +++ b/pages/home/detail.vue @@ -0,0 +1,445 @@ + + + + + diff --git a/pages/home/home - 副本.vue b/pages/home/home - 副本.vue new file mode 100644 index 0000000..f46062b --- /dev/null +++ b/pages/home/home - 副本.vue @@ -0,0 +1,261 @@ + + + + + + + diff --git a/pages/home/home.vue b/pages/home/home.vue new file mode 100644 index 0000000..68c7837 --- /dev/null +++ b/pages/home/home.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/pages/home/star.vue b/pages/home/star.vue new file mode 100644 index 0000000..9874e10 --- /dev/null +++ b/pages/home/star.vue @@ -0,0 +1,561 @@ + + + + + diff --git a/pages/index/components/Invest/shop.vue b/pages/index/components/Invest/shop.vue new file mode 100644 index 0000000..71d4055 --- /dev/null +++ b/pages/index/components/Invest/shop.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/pages/index/components/user/find.vue b/pages/index/components/user/find.vue new file mode 100644 index 0000000..52fa9f5 --- /dev/null +++ b/pages/index/components/user/find.vue @@ -0,0 +1,140 @@ + + + + diff --git a/pages/index/components/user/home.vue b/pages/index/components/user/home.vue new file mode 100644 index 0000000..f46062b --- /dev/null +++ b/pages/index/components/user/home.vue @@ -0,0 +1,261 @@ + + + + + + + diff --git a/pages/index/components/user/index.vue b/pages/index/components/user/index.vue new file mode 100644 index 0000000..4dd626c --- /dev/null +++ b/pages/index/components/user/index.vue @@ -0,0 +1,265 @@ + + + + + diff --git a/pages/index/components/user/mine.vue b/pages/index/components/user/mine.vue new file mode 100644 index 0000000..6b75201 --- /dev/null +++ b/pages/index/components/user/mine.vue @@ -0,0 +1,321 @@ + + + + + diff --git a/pages/index/components/user/sweep.vue b/pages/index/components/user/sweep.vue new file mode 100644 index 0000000..7964744 --- /dev/null +++ b/pages/index/components/user/sweep.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/pages/index/index - 副本.vue b/pages/index/index - 副本.vue new file mode 100644 index 0000000..2e1a017 --- /dev/null +++ b/pages/index/index - 副本.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100644 index 0000000..07b4e2e --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/pages/login/login.vue b/pages/login/login.vue new file mode 100644 index 0000000..41293a5 --- /dev/null +++ b/pages/login/login.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/pages/mine/car/add.vue b/pages/mine/car/add.vue new file mode 100644 index 0000000..6880da8 --- /dev/null +++ b/pages/mine/car/add.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/pages/mine/car/car.vue b/pages/mine/car/car.vue new file mode 100644 index 0000000..d15770a --- /dev/null +++ b/pages/mine/car/car.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/pages/mine/card.vue b/pages/mine/card.vue new file mode 100644 index 0000000..e1e0f65 --- /dev/null +++ b/pages/mine/card.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/pages/mine/cardList.vue b/pages/mine/cardList.vue new file mode 100644 index 0000000..ea4bc9b --- /dev/null +++ b/pages/mine/cardList.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/pages/mine/earnings.vue b/pages/mine/earnings.vue new file mode 100644 index 0000000..cf25be3 --- /dev/null +++ b/pages/mine/earnings.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/pages/mine/incomeList.vue b/pages/mine/incomeList.vue new file mode 100644 index 0000000..c84d7e4 --- /dev/null +++ b/pages/mine/incomeList.vue @@ -0,0 +1,225 @@ + + + + + \ No newline at end of file diff --git a/pages/mine/mine.vue b/pages/mine/mine.vue new file mode 100644 index 0000000..94c92e0 --- /dev/null +++ b/pages/mine/mine.vue @@ -0,0 +1,322 @@ + + + + + diff --git a/pages/mine/multipleNumbers.vue b/pages/mine/multipleNumbers.vue new file mode 100644 index 0000000..34048d5 --- /dev/null +++ b/pages/mine/multipleNumbers.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/pages/mine/sett.vue b/pages/mine/sett.vue new file mode 100644 index 0000000..1aa98c5 --- /dev/null +++ b/pages/mine/sett.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/pages/mine/signIn.vue b/pages/mine/signIn.vue new file mode 100644 index 0000000..5a63375 --- /dev/null +++ b/pages/mine/signIn.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/pages/money/recharge.vue b/pages/money/recharge.vue new file mode 100644 index 0000000..7a17afd --- /dev/null +++ b/pages/money/recharge.vue @@ -0,0 +1,341 @@ + + + + + diff --git a/pages/order/detail.vue b/pages/order/detail.vue new file mode 100644 index 0000000..90e711a --- /dev/null +++ b/pages/order/detail.vue @@ -0,0 +1,362 @@ + + + + + diff --git a/pages/order/order.vue b/pages/order/order.vue new file mode 100644 index 0000000..d74080e --- /dev/null +++ b/pages/order/order.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/pages/protocol/buy.vue b/pages/protocol/buy.vue new file mode 100644 index 0000000..2bb3043 --- /dev/null +++ b/pages/protocol/buy.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/pages/protocol/trusteeship.vue b/pages/protocol/trusteeship.vue new file mode 100644 index 0000000..c3e7c78 --- /dev/null +++ b/pages/protocol/trusteeship.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/pages/sweep/sweep.vue b/pages/sweep/sweep.vue new file mode 100644 index 0000000..7964744 --- /dev/null +++ b/pages/sweep/sweep.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/request/index.js b/request/index.js new file mode 100644 index 0000000..c1716c1 --- /dev/null +++ b/request/index.js @@ -0,0 +1,136 @@ +import config from '@/config' +import { + toast +} from '@/uni_modules/uview-plus' + +export const http = (url, params, method) => { + return new Promise((resolve, reject) => { + let Authorization = uni.getStorageSync('token') || '' + let version = uni.getStorageSync('version') || uni.getSystemInfoSync() + let isInvest = uni.getStorageSync('isInvest') || config.isInvest; + + if (!uni.getStorageSync('version')) uni.setStorageSync('version', version); + let { + deviceId, + deviceBrand, + deviceModel, + osVersion, + } = version + let header = { + deviceId, + deviceBrand, + deviceModel, + osVersion, + platform: 1, + Authorization + } + uni.request({ + url: config.baseUrl + url, + data: params || {}, + params: {}, + method: method || 'POST', + header: header, + success: (res) => { + // uni.hideLoading() + if (res.statusCode == 401) { + uni.removeStorageSync('token'); + uni.removeStorageSync('user'); + uni.hideLoading() + uni.showModal({ + title: '提示', + content: '为提供更好的服务,请前往登录', + success: (res) => { + if (res.confirm) { + if(isInvest){ + uni.navigateTo({ + url: '/pageInvest/login/login' + }) + }else{ + uni.navigateTo({ + url: '/pages/login/login' + }) + } + + } else if (res.cancel) { + console.log('用户点击取消'); + } + } + }) + return + } + const data = res.data + if (data.code == 10 && !data.success) { + reject(data) + return + } + if (data.code !== 1 && !data.success) { + toast(data.msg) + reject(data) + return + } + resolve(data.data || null) + }, + fail: (err) => { + if (err.statusCode == 401) { + uni.removeStorageSync('token'); + uni.removeStorageSync('user'); + uni.hideLoading() + uni.showModal({ + title: '提示', + content: '为提供更好的服务,请前往登录', + success: (res) => { + if (res.confirm) { + + + + if(isInvest){ + uni.navigateTo({ + url: '/pageInvest/login/login' + }) + }else{ + uni.navigateTo({ + url: '/pages/login/login' + }) + } + + + } else if (res.cancel) { + console.log('用户点击取消'); + } + } + }) + return + } + const data = err.data + if (data.code !== 1 && !data.success) { + toast(data.msg) + reject(data) + return + } + uni.hideLoading() + reject(err) + } + }) + }); +}; + + + + + +// import {requestInterceptors,responseInterceptors} from './interceptors.js' +// // 引入luch-request +// import { http } from '@/uni_modules/uview-plus' +// // 初始化请求配置 +// const initRequest=(vm)=>{ +// http.setConfig((defaultConfig) => { +// /* defaultConfig 为默认全局配置 */ +// defaultConfig.baseURL = config.baseUrl /* 根域名 */ +// return defaultConfig +// }) +// requestInterceptors() +// responseInterceptors() +// } +// export { +// initRequest +// } \ No newline at end of file diff --git a/static/address.png b/static/address.png new file mode 100644 index 0000000..0668759 Binary files /dev/null and b/static/address.png differ diff --git a/static/all.png b/static/all.png new file mode 100644 index 0000000..b636bf0 Binary files /dev/null and b/static/all.png differ diff --git a/static/gps.png b/static/gps.png new file mode 100644 index 0000000..a51d0d8 Binary files /dev/null and b/static/gps.png differ diff --git a/static/icon/9you.png b/static/icon/9you.png new file mode 100644 index 0000000..fe303ef Binary files /dev/null and b/static/icon/9you.png differ diff --git a/static/icon/b1.png b/static/icon/b1.png new file mode 100644 index 0000000..83cab65 Binary files /dev/null and b/static/icon/b1.png differ diff --git a/static/icon/b2.png b/static/icon/b2.png new file mode 100644 index 0000000..16081f3 Binary files /dev/null and b/static/icon/b2.png differ diff --git a/static/icon/cd.png b/static/icon/cd.png new file mode 100644 index 0000000..ce76539 Binary files /dev/null and b/static/icon/cd.png differ diff --git a/static/icon/cd_mine.png b/static/icon/cd_mine.png new file mode 100644 index 0000000..bd2069d Binary files /dev/null and b/static/icon/cd_mine.png differ diff --git a/static/icon/copy.png b/static/icon/copy.png new file mode 100644 index 0000000..6f27145 Binary files /dev/null and b/static/icon/copy.png differ diff --git a/static/icon/dati.png b/static/icon/dati.png new file mode 100644 index 0000000..d85d493 Binary files /dev/null and b/static/icon/dati.png differ diff --git a/static/icon/dd.png b/static/icon/dd.png new file mode 100644 index 0000000..0ecac5d Binary files /dev/null and b/static/icon/dd.png differ diff --git a/static/icon/dk_mine.png b/static/icon/dk_mine.png new file mode 100644 index 0000000..28919f9 Binary files /dev/null and b/static/icon/dk_mine.png differ diff --git a/static/icon/dw.png b/static/icon/dw.png new file mode 100644 index 0000000..ef20ede Binary files /dev/null and b/static/icon/dw.png differ diff --git a/static/icon/eleclist-terminal.png b/static/icon/eleclist-terminal.png new file mode 100644 index 0000000..afa0be3 Binary files /dev/null and b/static/icon/eleclist-terminal.png differ diff --git a/static/icon/ic-copy1.png b/static/icon/ic-copy1.png new file mode 100644 index 0000000..dc26e99 Binary files /dev/null and b/static/icon/ic-copy1.png differ diff --git a/static/icon/icon-copy.png b/static/icon/icon-copy.png new file mode 100644 index 0000000..0ee15ac Binary files /dev/null and b/static/icon/icon-copy.png differ diff --git a/static/icon/icon-delete.png b/static/icon/icon-delete.png new file mode 100644 index 0000000..8bfc0fd Binary files /dev/null and b/static/icon/icon-delete.png differ diff --git a/static/icon/icon-eidt.png b/static/icon/icon-eidt.png new file mode 100644 index 0000000..6f894d4 Binary files /dev/null and b/static/icon/icon-eidt.png differ diff --git a/static/icon/icon-eye.png b/static/icon/icon-eye.png new file mode 100644 index 0000000..074307e Binary files /dev/null and b/static/icon/icon-eye.png differ diff --git a/static/icon/icon-filter.png b/static/icon/icon-filter.png new file mode 100644 index 0000000..156ceb5 Binary files /dev/null and b/static/icon/icon-filter.png differ diff --git a/static/icon/ka.png b/static/icon/ka.png new file mode 100644 index 0000000..2a74527 Binary files /dev/null and b/static/icon/ka.png differ diff --git a/static/icon/kc.png b/static/icon/kc.png new file mode 100644 index 0000000..9daebfe Binary files /dev/null and b/static/icon/kc.png differ diff --git a/static/icon/kf.png b/static/icon/kf.png new file mode 100644 index 0000000..4f54a79 Binary files /dev/null and b/static/icon/kf.png differ diff --git a/static/icon/kf_mine.png b/static/icon/kf_mine.png new file mode 100644 index 0000000..d8ed394 Binary files /dev/null and b/static/icon/kf_mine.png differ diff --git a/static/icon/kj.png b/static/icon/kj.png new file mode 100644 index 0000000..527ae2b Binary files /dev/null and b/static/icon/kj.png differ diff --git a/static/icon/kp.png b/static/icon/kp.png new file mode 100644 index 0000000..59fb984 Binary files /dev/null and b/static/icon/kp.png differ diff --git a/static/icon/lie1.png b/static/icon/lie1.png new file mode 100644 index 0000000..9f476b9 Binary files /dev/null and b/static/icon/lie1.png differ diff --git a/static/icon/lie2.png b/static/icon/lie2.png new file mode 100644 index 0000000..5bd4ccd Binary files /dev/null and b/static/icon/lie2.png differ diff --git a/static/icon/location-marker-icon.png b/static/icon/location-marker-icon.png new file mode 100644 index 0000000..714951b Binary files /dev/null and b/static/icon/location-marker-icon.png differ diff --git a/static/icon/marker-pointer.png b/static/icon/marker-pointer.png new file mode 100644 index 0000000..b32ed07 Binary files /dev/null and b/static/icon/marker-pointer.png differ diff --git a/static/icon/mc.png b/static/icon/mc.png new file mode 100644 index 0000000..f9a2d3b Binary files /dev/null and b/static/icon/mc.png differ diff --git a/static/icon/mine/boost.png b/static/icon/mine/boost.png new file mode 100644 index 0000000..2126c28 Binary files /dev/null and b/static/icon/mine/boost.png differ diff --git a/static/icon/mine/charging.png b/static/icon/mine/charging.png new file mode 100644 index 0000000..fee883e Binary files /dev/null and b/static/icon/mine/charging.png differ diff --git a/static/icon/mine/energy.png b/static/icon/mine/energy.png new file mode 100644 index 0000000..abd9686 Binary files /dev/null and b/static/icon/mine/energy.png differ diff --git a/static/icon/mine/location.png b/static/icon/mine/location.png new file mode 100644 index 0000000..4e8711a Binary files /dev/null and b/static/icon/mine/location.png differ diff --git a/static/icon/mine/logout.png b/static/icon/mine/logout.png new file mode 100644 index 0000000..c742d18 Binary files /dev/null and b/static/icon/mine/logout.png differ diff --git a/static/icon/mine/multi.png b/static/icon/mine/multi.png new file mode 100644 index 0000000..8ecb7f1 Binary files /dev/null and b/static/icon/mine/multi.png differ diff --git a/static/icon/mine/network.png b/static/icon/mine/network.png new file mode 100644 index 0000000..c1e6aaa Binary files /dev/null and b/static/icon/mine/network.png differ diff --git a/static/icon/mine/order.png b/static/icon/mine/order.png new file mode 100644 index 0000000..4de7639 Binary files /dev/null and b/static/icon/mine/order.png differ diff --git a/static/icon/mine/parking.png b/static/icon/mine/parking.png new file mode 100644 index 0000000..6404a66 Binary files /dev/null and b/static/icon/mine/parking.png differ diff --git a/static/icon/mine/privacy.png b/static/icon/mine/privacy.png new file mode 100644 index 0000000..29b688c Binary files /dev/null and b/static/icon/mine/privacy.png differ diff --git a/static/icon/mine/service.png b/static/icon/mine/service.png new file mode 100644 index 0000000..7a4ae31 Binary files /dev/null and b/static/icon/mine/service.png differ diff --git a/static/icon/mine/shcode.png b/static/icon/mine/shcode.png new file mode 100644 index 0000000..afbed8f Binary files /dev/null and b/static/icon/mine/shcode.png differ diff --git a/static/icon/mine/shop.png b/static/icon/mine/shop.png new file mode 100644 index 0000000..25cbaeb Binary files /dev/null and b/static/icon/mine/shop.png differ diff --git a/static/icon/mine/station.png b/static/icon/mine/station.png new file mode 100644 index 0000000..b09cce3 Binary files /dev/null and b/static/icon/mine/station.png differ diff --git a/static/icon/mine/switch.png b/static/icon/mine/switch.png new file mode 100644 index 0000000..236959f Binary files /dev/null and b/static/icon/mine/switch.png differ diff --git a/static/icon/mine/travel.png b/static/icon/mine/travel.png new file mode 100644 index 0000000..2fb941d Binary files /dev/null and b/static/icon/mine/travel.png differ diff --git a/static/icon/money.png b/static/icon/money.png new file mode 100644 index 0000000..ffb575c Binary files /dev/null and b/static/icon/money.png differ diff --git a/static/icon/my-location-default.png b/static/icon/my-location-default.png new file mode 100644 index 0000000..3a3c2bc Binary files /dev/null and b/static/icon/my-location-default.png differ diff --git a/static/icon/publish-article.png b/static/icon/publish-article.png new file mode 100644 index 0000000..f04c1e8 Binary files /dev/null and b/static/icon/publish-article.png differ diff --git a/static/icon/qiehuan.png b/static/icon/qiehuan.png new file mode 100644 index 0000000..1edf30b Binary files /dev/null and b/static/icon/qiehuan.png differ diff --git a/static/icon/search.png b/static/icon/search.png new file mode 100644 index 0000000..fe2f757 Binary files /dev/null and b/static/icon/search.png differ diff --git a/static/icon/sett.png b/static/icon/sett.png new file mode 100644 index 0000000..6db6b2c Binary files /dev/null and b/static/icon/sett.png differ diff --git a/static/icon/tc.png b/static/icon/tc.png new file mode 100644 index 0000000..4c385a9 Binary files /dev/null and b/static/icon/tc.png differ diff --git a/static/icon/tixian.png b/static/icon/tixian.png new file mode 100644 index 0000000..4155702 Binary files /dev/null and b/static/icon/tixian.png differ diff --git a/static/icon/weixin.png b/static/icon/weixin.png new file mode 100644 index 0000000..a94e281 Binary files /dev/null and b/static/icon/weixin.png differ diff --git a/static/icon/xai.png b/static/icon/xai.png new file mode 100644 index 0000000..154c634 Binary files /dev/null and b/static/icon/xai.png differ diff --git a/static/icon/ye_mine.png b/static/icon/ye_mine.png new file mode 100644 index 0000000..3bfb346 Binary files /dev/null and b/static/icon/ye_mine.png differ diff --git a/static/icon/youjin.png b/static/icon/youjin.png new file mode 100644 index 0000000..28496f1 Binary files /dev/null and b/static/icon/youjin.png differ diff --git a/static/icon/zfb.png b/static/icon/zfb.png new file mode 100644 index 0000000..e811816 Binary files /dev/null and b/static/icon/zfb.png differ diff --git a/static/image/Multiple_numbers.png b/static/image/Multiple_numbers.png new file mode 100644 index 0000000..f0d9154 Binary files /dev/null and b/static/image/Multiple_numbers.png differ diff --git a/static/image/car-image.png b/static/image/car-image.png new file mode 100644 index 0000000..369081d Binary files /dev/null and b/static/image/car-image.png differ diff --git a/static/image/carNum.png b/static/image/carNum.png new file mode 100644 index 0000000..5507937 Binary files /dev/null and b/static/image/carNum.png differ diff --git a/static/image/cardel.png b/static/image/cardel.png new file mode 100644 index 0000000..6bebcf6 Binary files /dev/null and b/static/image/cardel.png differ diff --git a/static/image/cs.png b/static/image/cs.png new file mode 100644 index 0000000..8bd6e42 Binary files /dev/null and b/static/image/cs.png differ diff --git a/static/image/djk.png b/static/image/djk.png new file mode 100644 index 0000000..d7e0b2f Binary files /dev/null and b/static/image/djk.png differ diff --git a/static/image/djs.png b/static/image/djs.png new file mode 100644 index 0000000..198a678 Binary files /dev/null and b/static/image/djs.png differ diff --git a/static/image/fawen.png b/static/image/fawen.png new file mode 100644 index 0000000..7c70283 Binary files /dev/null and b/static/image/fawen.png differ diff --git a/static/image/login26_bg.png b/static/image/login26_bg.png new file mode 100644 index 0000000..79668be Binary files /dev/null and b/static/image/login26_bg.png differ diff --git a/static/image/mine-vip-bg.png b/static/image/mine-vip-bg.png new file mode 100644 index 0000000..bb84c6d Binary files /dev/null and b/static/image/mine-vip-bg.png differ diff --git a/static/image/order/bg_charging_turn.png b/static/image/order/bg_charging_turn.png new file mode 100644 index 0000000..1d9a890 Binary files /dev/null and b/static/image/order/bg_charging_turn.png differ diff --git a/static/image/order/order-real-time-car-bg.png b/static/image/order/order-real-time-car-bg.png new file mode 100644 index 0000000..9674243 Binary files /dev/null and b/static/image/order/order-real-time-car-bg.png differ diff --git a/static/image/order/order-real-time-car-bg1.png b/static/image/order/order-real-time-car-bg1.png new file mode 100644 index 0000000..fb71fad Binary files /dev/null and b/static/image/order/order-real-time-car-bg1.png differ diff --git a/static/image/order/order-real-time-charged-amount.png b/static/image/order/order-real-time-charged-amount.png new file mode 100644 index 0000000..599e1e4 Binary files /dev/null and b/static/image/order/order-real-time-charged-amount.png differ diff --git a/static/image/order/order-real-time-charged-power.png b/static/image/order/order-real-time-charged-power.png new file mode 100644 index 0000000..eecd2b3 Binary files /dev/null and b/static/image/order/order-real-time-charged-power.png differ diff --git a/static/image/order/order-real-time-charged-time.png b/static/image/order/order-real-time-charged-time.png new file mode 100644 index 0000000..9647992 Binary files /dev/null and b/static/image/order/order-real-time-charged-time.png differ diff --git a/static/image/order/order-realtime-pile-number-bg.png b/static/image/order/order-realtime-pile-number-bg.png new file mode 100644 index 0000000..d889532 Binary files /dev/null and b/static/image/order/order-realtime-pile-number-bg.png differ diff --git a/static/logo.png b/static/logo.png new file mode 100644 index 0000000..f5680f7 Binary files /dev/null and b/static/logo.png differ diff --git a/static/logoB.png b/static/logoB.png new file mode 100644 index 0000000..634d313 Binary files /dev/null and b/static/logoB.png differ diff --git a/static/tabbar/cd.png b/static/tabbar/cd.png new file mode 100644 index 0000000..249bab4 Binary files /dev/null and b/static/tabbar/cd.png differ diff --git a/static/tabbar/cds.png b/static/tabbar/cds.png new file mode 100644 index 0000000..cd844f3 Binary files /dev/null and b/static/tabbar/cds.png differ diff --git a/static/tabbar/find.png b/static/tabbar/find.png new file mode 100644 index 0000000..802f3cd Binary files /dev/null and b/static/tabbar/find.png differ diff --git a/static/tabbar/home.png b/static/tabbar/home.png new file mode 100644 index 0000000..fa01cf1 Binary files /dev/null and b/static/tabbar/home.png differ diff --git a/static/tabbar/my.png b/static/tabbar/my.png new file mode 100644 index 0000000..a1cd4c3 Binary files /dev/null and b/static/tabbar/my.png differ diff --git a/static/tabbar/news.png b/static/tabbar/news.png new file mode 100644 index 0000000..08e5d97 Binary files /dev/null and b/static/tabbar/news.png differ diff --git a/static/tabbar/order.png b/static/tabbar/order.png new file mode 100644 index 0000000..eac14f2 Binary files /dev/null and b/static/tabbar/order.png differ diff --git a/static/tabbar/orderIs.png b/static/tabbar/orderIs.png new file mode 100644 index 0000000..dbbffe5 Binary files /dev/null and b/static/tabbar/orderIs.png differ diff --git a/static/tabbar/orderIs1.png b/static/tabbar/orderIs1.png new file mode 100644 index 0000000..a1ef854 Binary files /dev/null and b/static/tabbar/orderIs1.png differ diff --git a/static/tabbar/select_find.png b/static/tabbar/select_find.png new file mode 100644 index 0000000..7945468 Binary files /dev/null and b/static/tabbar/select_find.png differ diff --git a/static/tabbar/select_home.png b/static/tabbar/select_home.png new file mode 100644 index 0000000..ef0fb4a Binary files /dev/null and b/static/tabbar/select_home.png differ diff --git a/static/tabbar/select_my.png b/static/tabbar/select_my.png new file mode 100644 index 0000000..da55609 Binary files /dev/null and b/static/tabbar/select_my.png differ diff --git a/static/tabbar/select_news.png b/static/tabbar/select_news.png new file mode 100644 index 0000000..a40db88 Binary files /dev/null and b/static/tabbar/select_news.png differ diff --git a/static/tabbar/select_order.png b/static/tabbar/select_order.png new file mode 100644 index 0000000..b3aad5c Binary files /dev/null and b/static/tabbar/select_order.png differ diff --git a/static/tabbar/select_sq.png b/static/tabbar/select_sq.png new file mode 100644 index 0000000..d721ad1 Binary files /dev/null and b/static/tabbar/select_sq.png differ diff --git a/static/tabbar/sq.png b/static/tabbar/sq.png new file mode 100644 index 0000000..5002e56 Binary files /dev/null and b/static/tabbar/sq.png differ diff --git a/store/index.js b/store/index.js new file mode 100644 index 0000000..fbb1286 --- /dev/null +++ b/store/index.js @@ -0,0 +1,34 @@ +import { + createStore +} from "vuex"; + +export default createStore({ + state: { + token: "", + command: null, + dataObj: null, + transactionNo: null, + insertStatus: null, + sokStatus: null + }, + mutations: { + setToken(state, data) { + state.token = data; + }, + setCommand(state, data) { + state.command = data; + }, + setDataObj(state, data) { + state.dataObj = data; + }, + setTransactionNo(state, data) { + state.transactionNo = data; + }, + setInsertStatus(state, data) { + state.insertStatus = data; + }, + setSokStatus(state, data) { + state.sokStatus = data; + }, + } +}); \ No newline at end of file diff --git a/uni.promisify.adaptor.js b/uni.promisify.adaptor.js new file mode 100644 index 0000000..47fbce1 --- /dev/null +++ b/uni.promisify.adaptor.js @@ -0,0 +1,10 @@ +uni.addInterceptor({ + returnValue (res) { + if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) { + return res; + } + return new Promise((resolve, reject) => { + res.then((res) => res[0] ? reject(res[0]) : resolve(res[1])); + }); + }, +}); \ No newline at end of file diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..58ef78e --- /dev/null +++ b/uni.scss @@ -0,0 +1,9 @@ +@import '@/uni_modules/uview-plus/theme.scss'; +@mixin flex($direction: row, $space: start) { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + align-items: center; + flex-direction: $direction; + justify-content: $space; +} \ No newline at end of file diff --git a/uni_modules/car-number-input/changelog.md b/uni_modules/car-number-input/changelog.md new file mode 100644 index 0000000..15131ca --- /dev/null +++ b/uni_modules/car-number-input/changelog.md @@ -0,0 +1,9 @@ +## 1.0.4(2022-10-13) +修复支付宝小程序图标显示问题 +## 1.0.3(2022-10-08) +修复图标显示问题,图片改用base64编码 +## 1.0.2(2022-09-21) +修复微信小程序新能源图标显示问题 +## 1.0.1(2022-09-19) +1.修复输入返回值赋值给默认值的问题 +2.修复新能源字体在谷歌浏览器展示问题 diff --git a/uni_modules/car-number-input/components/car-number-input/car-number-input.vue b/uni_modules/car-number-input/components/car-number-input/car-number-input.vue new file mode 100644 index 0000000..fd90f02 --- /dev/null +++ b/uni_modules/car-number-input/components/car-number-input/car-number-input.vue @@ -0,0 +1,319 @@ + + + + + diff --git a/uni_modules/car-number-input/package.json b/uni_modules/car-number-input/package.json new file mode 100644 index 0000000..d174580 --- /dev/null +++ b/uni_modules/car-number-input/package.json @@ -0,0 +1,26 @@ +{ + "id": "car-number-input", + "displayName": "车牌选择组件+键盘(包含新能源车牌)", + "version": "1.0.4", + "description": "车牌输入组件+键盘,包含新能源车牌", + "keywords": [ + "车牌", + "车牌选择器", + "键盘", + "车牌键盘", + "车牌选择" + ], + "dcloudext": { + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "", + "type": "component-vue" + }, + "repository": "" +} \ No newline at end of file diff --git a/uni_modules/cc-myTabbar/changelog.md b/uni_modules/cc-myTabbar/changelog.md new file mode 100644 index 0000000..956a011 --- /dev/null +++ b/uni_modules/cc-myTabbar/changelog.md @@ -0,0 +1,12 @@ +## 2.2.4(2024-10-03) +组件优化 +## 2.2.2(2024-07-13) +组件优化 +## 2.2(2024-06-27) +优化 +## 2.0(2024-05-16) +组件优化 +## 1.0.1(2023-06-22) +组件使用说明优化 +## 1.0.0(2023-06-22) +组件初始化 diff --git a/uni_modules/cc-myTabbar/components/cc-myTabbar/cc-myTabbar.scss b/uni_modules/cc-myTabbar/components/cc-myTabbar/cc-myTabbar.scss new file mode 100644 index 0000000..7549b87 --- /dev/null +++ b/uni_modules/cc-myTabbar/components/cc-myTabbar/cc-myTabbar.scss @@ -0,0 +1,42 @@ +/* 主要颜色 */ +$base: #232323; // 基础颜色 +.page-total { + position: fixed; + left: 0; + bottom: 0; + width: 100%; + // height: 100rpx; +} +.tab-list { + display: flex; + justify-content: space-between; + align-items: end; + width: 100%; + height: 120rpx; + padding-bottom: 10px; + background-color: #ffffff; + // padding: 0 50rpx; + + .list { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + // width: 20%; + height: 120rpx; + image { + width: 48rpx; + height: 48rpx; + background-color: white; + } + text { + color: #333333; + font-size: 24rpx; + margin-top: 10rpx; + } + .action { + color: $base; + } + } +} diff --git a/uni_modules/cc-myTabbar/components/cc-myTabbar/cc-myTabbar.vue b/uni_modules/cc-myTabbar/components/cc-myTabbar/cc-myTabbar.vue new file mode 100644 index 0000000..8b79ea5 --- /dev/null +++ b/uni_modules/cc-myTabbar/components/cc-myTabbar/cc-myTabbar.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/uni_modules/cc-myTabbar/package.json b/uni_modules/cc-myTabbar/package.json new file mode 100644 index 0000000..dfb3c1a --- /dev/null +++ b/uni_modules/cc-myTabbar/package.json @@ -0,0 +1,86 @@ +{ + "id": "cc-myTabbar", + "displayName": "自定义tabbar底部tabbar凸起tabbar兼容苹果刘海屏小程序和APP", + "version": "2.2.4", + "description": "自定义tabbar底部tabbar凸起tabbar兼容苹果刘海屏Home键小程序和APP 可自定义tabbar图片文字大小及位置", + "keywords": [ + "tabbar", + "自定义tabbar", + "底部导航", + "自定义", + "凸起导航" +], + "repository": "", + "engines": { + "HBuilderX": "^3.8.0" + }, + "dcloudext": { + "type": "component-vue", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y", + "alipay": "n" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "钉钉": "y", + "快手": "y", + "飞书": "y", + "京东": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/cc-myTabbar/readme.md b/uni_modules/cc-myTabbar/readme.md new file mode 100644 index 0000000..46e05e5 --- /dev/null +++ b/uni_modules/cc-myTabbar/readme.md @@ -0,0 +1,89 @@ +# cc-myTabbar + + +##uniapp专属精品组件页面模板(由前端组件开发出品)精品组件页面模板 + +###●组件模板规划: +由前端组件开发出品的精品组件页面模板,将陆续发布,预计高达约几百种供您使用,是快速快发项目、创业的必备精品。 + +合集地址: uni-app模板合集地址:(https://ext.dcloud.net.cn/publisher?id=274945) 如查看全部页面模板,请前往上述uniapp插件市场合集地址; + +###●组件模板效果图: +可下载项目后预览,效果图见右侧图片; + +###●组件模板费用: +学习:免费下载,进行学习,无费用; + +使用/商用:本页面地址赞赏10元后,可终身商用; + +###●组件模板使用版权/商用: +本组件模板免费下载可供学习,如需使用及商用,请在本组件页面模板进行赞赏10元 + +(仅需10元获取精品页面模板代码-物有所值,1个组件页面市场价100元 ) + +赞赏10后(当前项目产生赞赏订单可追溯)即可终身商用当前本地址下载的页面模版代码,不同下载地址需进行不同的赞赏。(不赞赏就进行商用使用者,面临侵权!保留追究知识产权法律责任!后果自负!) + + + +### 我的技术公众号(私信可加前端技术交流群) + +群内气氛挺不错的,应该或许可能大概,算是为数不多的,专搞技术的前端群,偶尔聊天摸鱼 + +![图片](https://i.postimg.cc/RZ0sjnYP/front-End-Component.jpg) + + +#### 使用方法 +```使用方法 + + + + +onReady() { + uni.hideTabBar() +} + + +page { + padding-bottom: 140rpx; +} +``` + +#### HTML代码实现部分 +```html + + + + + + + + +``` diff --git a/uni_modules/custom-waterfalls-flow/changelog.md b/uni_modules/custom-waterfalls-flow/changelog.md new file mode 100644 index 0000000..67cd423 --- /dev/null +++ b/uni_modules/custom-waterfalls-flow/changelog.md @@ -0,0 +1,17 @@ +## 1.0.7(2022-05-26) +1. 优化局部改变数据更新问题,避免重新加载数据,只改变局部 +## 1.0.6(2022-04-18) +1. 修改tab快速切换时会出现的BUG +## 1.0.5(2022-04-18) +1. 修复可能存在数据错误的BUG; +2. 兼容,今后可以无需调用refresh()就可以更新数据; +## 1.0.4(2022-04-18) +1. 修复BUG; +## 1.0.3(2022-04-15) +1. 优化代码; +2. 修改懒加载数据存在的BUG; +## 1.0.1(2022-03-11) +1. 增加隐藏图片字段的键名字段hideImageKey,默认hide +2. 支持在列表中配置hide参数进行隐藏图片 +## 1.0.0(2022-03-09) +使用最简单的思想实现瀑布流 diff --git a/uni_modules/custom-waterfalls-flow/components/custom-waterfalls-flow/custom-waterfalls-flow.vue b/uni_modules/custom-waterfalls-flow/components/custom-waterfalls-flow/custom-waterfalls-flow.vue new file mode 100644 index 0000000..310cdf9 --- /dev/null +++ b/uni_modules/custom-waterfalls-flow/components/custom-waterfalls-flow/custom-waterfalls-flow.vue @@ -0,0 +1,323 @@ + + + diff --git a/uni_modules/custom-waterfalls-flow/package.json b/uni_modules/custom-waterfalls-flow/package.json new file mode 100644 index 0000000..5861272 --- /dev/null +++ b/uni_modules/custom-waterfalls-flow/package.json @@ -0,0 +1,80 @@ +{ + "id": "custom-waterfalls-flow", + "displayName": "瀑布流 灵活配置 简单易用 兼容vue2vue3小程序、H5、app等多端", + "version": "1.0.7", + "description": "瀑布流,根据内容自动计算进行流式布局,简单参数配置,实现兼容多端及vue2和vue3的瀑布流布局;uv-ui发布https://ext.dcloud.net.cn/plugin?name=uv-ui", + "keywords": [ + "瀑布流", + "瀑布流式布局" +], + "repository": "https://gitee.com/my_dear_li_pan/my-uni-modules.git", +"engines": { + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "插件不采集任何数据", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "u", + "Edge": "u", + "Firefox": "y", + "Safari": "u" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "y", + "字节跳动": "y", + "QQ": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/custom-waterfalls-flow/readme.md b/uni_modules/custom-waterfalls-flow/readme.md new file mode 100644 index 0000000..5ac9f19 --- /dev/null +++ b/uni_modules/custom-waterfalls-flow/readme.md @@ -0,0 +1,445 @@ +- 概要 +- 支持的平台 +- 使用方式 +- 属性说明 +- 事件说明 +- 组件方法 +- refresh的使用示例 +- 隐藏单项图片示例 +- 完整示例 +- 温馨提示 +- 关注我,不迷路 +- 个人作品展示 + +
+ +#### 概要 + +custom-waterfalls-flow是一个瀑布流插件,灵活配置、简单易用、兼容多端、同时兼容vue2和vue3。 + +最近在做项目的时候需要用到瀑布流,于是在插件市场找了一些,下载量最高的是用了定位来做的,我认为瀑布流可以不用定位去实现,于是我就自己写了该插件。经过反复的测试优化,最终搞定! + +**设置列数:** 瀑布流的列数可以通过参数直接控制,实时监听,随改随生效。列数最小为2,最大默认为5,可以通过maxColumn参数去控制最大列数,理论上可以设置无限大,具体值自己拿捏。 + +**更新数据:** 瀑布流的每项数据,可以直接通过修改value,随改随生效,这样可以实现加载更多数据。已经渲染过的数据不会再次渲染,每次只会渲染新增的数据,这样避免了数据越多渲染越慢的情况。可以调用组件的```refresh()```方法进行数据刷新,注意vue2和vue3中调用子组件的方法有区别,也会在下面进行说明。 + +**展示方式:** 瀑布流可以是纯图片,可以使用插槽自定义文字描述,微信小程序与app、h5使用会有些区别,也会在下面具体说明。内容高度及排序都不用担心,会根据每项的内容高度自动计算。 + +**实现思路:** 通过配置列数,先渲染出每列,再计算每列的高度,最小的那列就加入一条数据进行渲染,然后再重复计算每列,高度小的加入数据...其实思路是很简单的。 + +uniapp插件市场地址:[https://ext.dcloud.net.cn/plugin?id=7594](https://ext.dcloud.net.cn/plugin?id=7594) + +
+ +#### 支持的平台 + +H5、app、微信小程序(这三个平台经过反复测试优化,兼容vue2和vue3)。 + +百度小程序:由于插槽不能循环渲染的限制,只支持纯图片瀑布流。 + +其他小程序:暂未测试,需要的可以自己测试和修改,思路肯定是没错的,主要是兼容插槽的问题。 + +nvue:暂不支持,后期可能会支持,目前需要的可以自己修改源码。 + +
+ +#### 使用方式 + +**1、导入插件** + +该组件符合uni_modules规范,使用Hbuilderx导入插件,导入到项目根目录中的uni_modules文件夹中。 + +**2、template中使用** + +uni_modules规范在项目页面中直接使用,不需要单独引入注册组件。 + +***纯图片瀑布流使用*** + +``` + +``` + +***微信小程序自定义内容使用*** + +微信小程序没有动态模板,使用for循环的方式进行渲染。 + +``` + +``` + +***h5、app端自定义内容使用*** + +使用作用域插槽实现 + +``` + +``` + +***小程序、h5、app等多端自定义内容使用*** + +条件渲染-多端同时兼容 + +``` + +``` + +
+ +#### 属性说明 + +参数|说明|类型|是否必填|可选值|默认值 +-|-|-|-|-|-| +value|渲染的列表|Array|是|-|- +column|列数|Number|否|2-maxColumn|2 +maxColumn|最大列数|Number|否|>2|5 +columnSpace|列之间的间距(单位是百分比)|Number|否|-|2 +imageKey|列表中的图片字段的键名|String|否|-|image +hideImageKey|隐藏图片字段的键名|String|否|-|hide +seat|自定义文字的位置,1-图片上方,2-图片下方|Number|否|1/2|2 +listStyle|单个展示项的样式|Object|否|示例:```{'background':'red'}```|- + +
+ +#### 事件说明 + +事件名称|说明|回调参数 +-|-|-| +@loaded|图片加载完成事件|- +@wapperClick|单项点击事件|单项对应参数 +@imageClick|图片点击事件|单项对应参数 + +
+ +#### 组件方法 + +事件名称|说明|参数|使用场景 +-|-|-|- +refresh|刷新数据,数据初始化,vue2中使用:```this.$refs.waterfallsFlowRef.refresh();```;vue3中使用:```const waterfallsFlowRef = ref(null);waterfallsFlowRef.value.refresh();```|-|下拉刷新等 + +
+ +#### refresh的使用示例 + +***vue2中使用*** + +``` + + +``` + +***vue3中使用*** + +``` + + +``` + +
+ +#### 隐藏单项图片示例 + +在数据列表中配置```hide:true```或者```hide:1```,就可以达到不显示图片的效果。支持使用参数hideImageKey自定义键名称,那就使用:```定义的键名称:true```或者```定义的键名称:1```。 + +``` + + +``` + +
+ +#### 完整示例 + +``` + + + + + +``` + +
+ +#### 温馨提示 + +1、该插件反复测试过微信小程序、h5、app-vue三个端,vue2和vue3都兼容,其他端可能需要测试改进。 + +2、该插件的使用hbuilderx版本最好升级到较新版本,我开发的版本是hbuilderx3.3.11.20220209。 + +3、对此插件或相关问题有好的建议,可以直接在评论区进行讨论。 + +4、希望遇到问题不要喷,也不要骂人,其实这种心情我能理解,写该插件也不是一时半会就完成了的,所以希望互相理解。只要有问题,我会第一时间回复解决。 + +5、对此插件有任何问题的可以在下方留言,我会第一时间回复和解决问题。还可以加QQ群进行前端技术交流 568984539,加群备注‘地区-名字-技术类型’。 + +#### 最后我想说:认为该插件对你有帮助的,记得收藏、好评,这样可以帮助到更多人哟! + +--- + +
+ +#### 关注我,不迷路 + +如果任何疑问的可以在评论区留言,还可以加QQ群交流:568984539,加群备注‘地区-名字-技术类型’。 + +更多前端等相关知识可关注我个人博客:https://blog.csdn.net/qq_42961150?spm=1011.2124.3001.5343 + +
+ +#### 个人作品展示 + +uniapp+vue3.2+unicloud开发微信小程序:**皮皮虎去水印**。 + +关注下方公众号:【**全网免费网盘资源**】、【**美团外卖饿了么天天领红包**】、【**去水印**】 + +![image](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-bb657efd-fece-483e-a715-5daea480fde8/6e029310-aec8-46e9-9883-1c88dc1925ad.jpg) \ No newline at end of file diff --git a/uni_modules/gb-qiandao/changelog.md b/uni_modules/gb-qiandao/changelog.md new file mode 100644 index 0000000..408ee28 --- /dev/null +++ b/uni_modules/gb-qiandao/changelog.md @@ -0,0 +1,2 @@ +## 1.0.0(2024-04-13) +首次上传,助力快速开发 diff --git a/uni_modules/gb-qiandao/components/gb-qiandao/common.css b/uni_modules/gb-qiandao/components/gb-qiandao/common.css new file mode 100644 index 0000000..ecd66ce --- /dev/null +++ b/uni_modules/gb-qiandao/components/gb-qiandao/common.css @@ -0,0 +1,1338 @@ +/* ------------------------------------------------flex */ + +.dflex{ + display: flex; +} + +.flex-column { + flex-direction: column; +} + +.flex-column-reverse { + flex-direction: column-reverse; +} + +.flex-row { + flex-direction: row; +} + +.flex-row-reverse { + flex-direction: row-reverse; +} + +.flex-nowrap { + flex-wrap: nowrap; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse; +} + +.justify-center { + justify-content: center; +} + +.justify-space-between { + justify-content: space-between; +} + +.justify-space-around { + justify-content: space-around; +} + +.justify-flex-start { + justify-content: flex-start; +} + +.justify-flex-end { + justify-content: flex-end; +} + +.align-center { + align-items: center; +} + +.align-stretch { + align-items: stretch; +} + +.align-flex-start { + align-items: flex-start; +} + +.align-flex-end { + align-items: flex-end; +} + +.flex-1 { + flex: 1 +} + +.flex-2 { + flex: 2 +} + +.flex-3 { + flex: 3 +} + +.flex-4 { + flex: 4 +} + +/* ---------------------------------------宽高 */ +.wh-w750 { + width: 750rpx; +} + +.wh-w375 { + width: 375rpx; +} + +.wh-w250 { + width: 250rpx; +} + +.wh-w500 { + width: 500rpx; +} + +.wh-h80 { + height: 80rpx; +} + +.wh-h130 { + height: 150rpx; +} + +.wh-15 { + width: 15rpx; + height: 15rpx; +} + +.wh-20 { + width: 20rpx; + height: 20rpx; +} + +.wh-25 { + width: 25rpx; + height: 25rpx; +} + +.wh-30 { + width: 30rpx; + height: 30rpx; +} + +.wh-33 { + width: 33rpx; + height: 33rpx; +} + +.wh-35 { + width: 35rpx; + height: 35rpx; +} + +.wh-40 { + width: 40rpx; + height: 40rpx; +} + +.wh-45 { + width: 45rpx; + height: 45rpx; +} + +.wh-50 { + width: 50rpx; + height: 50rpx; +} + +.wh-55 { + width: 55rpx; + height: 55rpx; +} + +.wh-60 { + width: 60rpx; + height: 60rpx; +} + +.wh-65 { + width: 65rpx; + height: 65rpx; +} + +.wh-70 { + width: 70rpx; + height: 70rpx; +} + +.wh-80 { + width: 80rpx; + height: 80rpx; +} + +.wh-85 { + width: 85rpx; + height: 85rpx; +} + +.wh-90 { + width: 90rpx; + height: 90rpx; +} + +.wh-95 { + width: 95rpx; + height: 95rpx; +} + +.wh-100 { + width: 100rpx; + height: 100rpx; +} + +.wh-110 { + width: 110rpx; + height: 110rpx; +} + +.wh-h20 { + height: 20rpx; +} + +.wh-h60 { + height: 60rpx; +} + +.wh-h70 { + height: 70rpx; +} + +.wh-h110 { + height: 110rpx; +} + +.wh-120 { + width: 120rpx; + height: 120rpx; +} + +.wh-130 { + width: 130rpx; + height: 130rpx; +} + +.wh-140 { + width: 140rpx; + height: 140rpx; +} + +.wh-150 { + width: 150rpx; + height: 150rpx; +} + +.wh-170 { + width: 170rpx; + height: 170rpx; +} + +.wh-250 { + width: 250rpx; + height: 250rpx; +} + +.wh-300 { + width: 280rpx; + height: 280rpx; +} + +.wh-120-60 { + width: 120rpx; + height: 60rpx; +} + +.wh-130-60 { + width: 130rpx; + height: 60rpx; +} + +.wh-700-80 { + width: 700rpx; + height: 80rpx; +} + +.wh-700-85 { + width: 700rpx; + height: 85rpx; +} + +.wh-70-350 { + width: 350rpx; + height: 70rpx; +} + +.wh-70-450 { + width: 450rpx; + height: 70rpx; +} + +.wh-70-400 { + width: 400rpx; + height: 70rpx; +} + +.wh-50-450 { + width: 450rpx; + height: 50rpx; +} + +.wh-80-500 { + width: 500rpx; + height: 80rpx; +} + +.wh-50-250 { + width: 250rpx; + height: 50rpx; +} + +.wh-80-450 { + width: 450rpx; + height: 80rpx; +} + +.wh-85-450 { + width: 450rpx; + height: 85rpx; +} + + +.wh-80-550 { + width: 550rpx; + height: 80rpx; +} + +.wh-80-550 { + width: 550rpx; + height: 80rpx; +} + +.wh-80-600 { + width: 600rpx; + height: 80rpx; +} + +.wh-80-120 { + width: 120rpx; + height: 80rpx; +} + +.wh-60-200 { + width: 200rpx; + height: 60rpx; +} + +.wh-80-650 { + width: 650rpx; + height: 80rpx; +} + +.wh-85-600 { + width: 600rpx; + height: 85rpx; +} + +.wh-85-650 { + width: 650rpx; + height: 85rpx; +} + +.wh-80-200 { + width: 200rpx; + height: 80rpx; +} + +.wh-85-200 { + width: 200rpx; + height: 85rpx; +} + + +.wh-70-200 { + width: 200rpx; + height: 70rpx; +} + +.wh-200-400 { + width: 200rpx; + height: 400rpx; + border-radius: 5rpx; +} + +.wh-300-600 { + width: 300rpx; + height: 600rpx; +} + +/* ----------------------------------------------------- padding*/ +.pa-5 { + padding: 5rpx; +} + +.pa-10 { + padding: 10rpx; +} + +.pa-15 { + padding: 15rpx; +} + +.pa-20 { + padding: 20rpx; +} + +.pa-23 { + padding: 23rpx; +} + +.pa-25 { + padding: 25rpx; +} + +.pa-30 { + padding: 30rpx; +} + +.pa-35 { + padding: 35rpx; +} + +.pa-40 { + padding: 40rpx; +} + +.pa-50 { + padding: 50rpx; +} + +.pa-0-10 { + padding-top: 0; + padding-bottom: 0; + padding-right: 10rpx; + padding-left: 10rpx; +} + +.pa-tb40 { + padding-top: 40rpx; + padding-bottom: 40rpx; +} + +.pa-50-30-0-30 { + padding-top: 50rpx; + padding-bottom: 30rpx; + padding-right: 30rpx; + padding-left: 30rpx; +} + +.pa-0-20 { + padding-top: 0; + padding-bottom: 0; + padding-right: 20rpx; + padding-left: 20rpx; +} + +.pa-40-0 { + padding-top: 40rpx; + padding-bottom: 40rpx; + padding-right: 0; + padding-left: 0; +} + +.pa-20-0 { + padding-top: 20rpx; + padding-bottom: 20rpx; + padding-right: 0; + padding-left: 0; +} + +.pa-30-0 { + padding-top: 30rpx; + padding-bottom: 30rpx; + padding-right: 0; + padding-left: 0; +} + +.pa-0-30 { + padding-top: 0; + padding-bottom: 0; + padding-right: 30rpx; + padding-left: 30rpx; +} + +.pa-0-40 { + padding-top: 0; + padding-bottom: 0; + padding-right: 40rpx; + padding-left: 40rpx; +} + + +.pa-6-12 { + padding-top: 6rpx; + padding-bottom: 6rpx; + padding-right: 12rpx; + padding-left: 12rpx; +} + +.pa-15-30 { + padding-top: 15rpx; + padding-bottom: 15rpx; + padding-right: 30rpx; + padding-left: 30rpx; +} +.pa-15-20 { + padding-top: 15rpx; + padding-bottom: 15rpx; + padding-right: 20rpx; + padding-left: 20rpx; +} +.pa-10-20 { + padding-top: 10rpx; + padding-bottom: 10rpx; + padding-right: 20rpx; + padding-left: 20rpx; +} + +.pa-30-20 { + padding-top: 30rpx; + padding-bottom: 30rpx; + padding-right: 20rpx; + padding-left: 20rpx; +} + +.pa-20-30 { + padding-top: 20rpx; + padding-bottom: 20rpx; + padding-right: 30rpx; + padding-left: 30rpx; +} + +.pa-40-30 { + padding-top: 40rpx; + padding-bottom: 40rpx; + padding-right: 30rpx; + padding-left: 30rpx; +} + +.pa-40-50 { + padding-top: 40rpx; + padding-bottom: 40rpx; + padding-right: 50rpx; + padding-left: 50rpx; +} + +.pa-30-50 { + padding-top: 30rpx; + padding-bottom: 30rpx; + padding-right: 50rpx; + padding-left: 50rpx; +} + +.pa-30-40 { + padding-top: 30rpx; + padding-bottom: 30rpx; + padding-right: 40rpx; + padding-left: 40rpx; +} + +.pa-50-30 { + padding-top: 50rpx; + padding-bottom: 50rpx; + padding-right: 30rpx; + padding-left: 30rpx; +} + +/* ----------------------------------------------------margin */ +.mar-10 { + margin: 10rpx; +} + +.mar-10-20 { + margin-top: 15rpx; + margin-bottom: 15rpx; + margin-left: 20rpx; + margin-right: 20rpx; +} + +.mar-20 { + margin: 20rpx; +} + +.mar-30 { + margin: 30rpx; +} + +.mar-40 { + margin: 40rpx; +} + +.mar-50 { + margin: 50rpx; +} + +.mar-r10-l10 { + margin-left: 10rpx; + margin-right: 10rpx; +} + +.mar-tb0-20 { + margin-top: 0; + margin-bottom: 0; + margin-left: 20rpx; + margin-right: 20rpx; +} + +.mar-t0-20 { + margin-top: 0; + margin-bottom: 20rpx; + margin-left: 20rpx; + margin-right: 20rpx; +} + +.mar-b0-20 { + margin-top: 20rpx; + margin-bottom: 0; + margin-left: 20rpx; + margin-right: 20rpx; +} + +.mar-l30 { + margin-left: 30rpx; +} + +.mar-l10 { + margin-left: 10rpx; +} + +.mar-l15 { + margin-left: 15rpx; +} + +.mar-l20 { + margin-left: 20rpx; +} + +.mar-l5 { + margin-left: 5rpx; +} + +.mar-r10 { + margin-right: 10rpx; +} + +.mar-r15 { + margin-right: 15rpx; +} + +.mar-r30 { + margin-right: 30rpx; +} + +.mar-t5 { + margin-top: 5rpx; +} + +.mar-t10 { + margin-top: 10rpx; +} + +.mar-t15 { + margin-top: 15rpx; +} +.mar-t22 { + margin-top: 22rpx; +} + +.mar-t25 { + margin-top: 25rpx; +} + +.mar-t30 { + margin-top: 30rpx; +} + +.mar-t60 { + margin-top: 60rpx; +} + +.mar-t80 { + margin-top: 80rpx; +} + +.mar-t300 { + margin-top: 300rpx; +} + +.mar-b30 { + margin-bottom: 30rpx; +} + +.mar-t80 { + margin-top: 80rpx; +} + +.mar--t30 { + margin-top: -30rpx; +} + +.mar-t150 { + margin-top: 150rpx; +} + +.mar--t200 { + margin-top: -200rpx; +} + +.mar--t400 { + margin-top: -400rpx; +} + +.mar--t5 { + margin-top: -5rpx; +} + +/* -------------------------------------------字体大小 */ +.fs-15 { + font-size: 15rpx; +} + +.fs-18 { + font-size: 18rpx; +} + +.fs-20 { + font-size: 20rpx; +} + +.fs-21 { + font-size: 21rpx; +} + +.fs-23 { + font-size: 23rpx; +} + +.fs-24 { + font-size: 24rpx; +} + +.fs-25 { + font-size: 25rpx; +} + +.fs-26 { + font-size: 26rpx; +} +.fs-27 { + font-size: 27rpx; +} + +.fs-28 { + font-size: 28rpx; +} + +.fs-29 { + font-size: 29rpx; +} +.fs-30 { + font-size: 30rpx; +} + +.fs-31 { + font-size: 31rpx; +} + +.fs-32 { + font-size: 32rpx; +} + +.fs-33 { + font-size: 33rpx; +} + +.fs-35 { + font-size: 35rpx; +} + +.fs-40 { + font-size: 40rpx; +} + +.fs-45 { + font-size: 45rpx; +} + +.fs-50 { + font-size: 50rpx; +} + +.fs-55 { + font-size: 55rpx; +} + +.fs-60 { + font-size: 60rpx; +} + +.fs-120 { + font-size: 120rpx; +} + +.f-w { + font-weight: 700; + color: #000000; + +} + +.f-w1 { + font-weight: bold; +} + + + + +.text-overflow { + text-overflow: ellipsis; +} + +.lines-1 { + lines: 1; +} + +/* -----------------------------------------------------文字颜色 */ +.fcolor-while { + color: #FFFFFF; +} + +.fcolor-black { + color: #333333; +} + +.fcolor-dark { + color: #cccccc; +} + +.fcolor-dark1 { + color: #969696; +} + +.fcolor-dark2 { + color: #535353; +} + +.fcolor-f1f1f1 { + color: #f1f1f1; +} + +.fcolor-blue { + color: #5982FC; +} + +.fcolor-blue1 { + color: #23B0FF; +} + +.fcolor-yellow { + color: #FEE610; +} + +.fcolor-green { + color: #58CEB0; +} + +.fcolor-red { + color: #F91305; +} + +.fcolor-yellow1 { + color: #de8c17; +} + +.fcolor-yellow2 { + color: #FD4D01; +} + +/* ------------------------------------------------------------背景颜色 */ +.zcolor-yellow { + background-color: #FEE610; +} + +.zcolor-black { + background-color: #000000; +} + +.zcolor-yellow1 { + background-color: #fffbe8; +} + +.zcolor-while { + background-color: #FFFFFF; +} + +.zcolor-while1 { + background-color: #EDEDED; +} + +.zcolor-red { + background-color: #F91305; +} + +.zcolor-green { + background-color: #58CEB0; +} + +.zcolor-black { + background-color: #000000; +} + +.zcolor-dark { + background-color: #cccccc; +} + +.zcolor-blue { + background-color: #23B0FF; +} + +.zcolor-blue1 { + background-color: #40C7FC; +} + +.zcolor-bluew { + background-color: #EBF4FF; +} + +.zcolor-f1f1f1 { + background-color: #F8F8F8; +} + +/* 渐变 */ +.gradient-red { + background: linear-gradient(to bottom right, #F35B3A, #F80320); +} + +.gradient-blue { + background-image: linear-gradient(to bottom right, #23B0FF, #527FF8); +} + +.gradient-green { + background-image: linear-gradient(to right, #F5EA43, #97F343); +} +.gradient-blue1 { + background-image: linear-gradient(to bottom right, #1B7BFB,#40C7FC); +} + +.gradient-black { + background-image: linear-gradient(to bottom, #60615A, #21231E); +} + +.gradient-yellow-while { + background: linear-gradient(to bottom, #FEE610, #ffffff); +} + +.gradient-while-yellow6 { + background: linear-gradient(to bottom, #FFD835, #FEE610); +} + +.gradient-yellow-while1 { + background: linear-gradient(to bottom, #FEE610, #F3F5FA); +} + +.gradient-yellow { + background: linear-gradient(to bottom right, #EAFFA4,#fee610); +} +.gradient-green-while { + background: linear-gradient(to bottom, #F5FDEB, #ffffff); +} + +.gradient-blue-while { + background: linear-gradient(to bottom, #E9F9FC, #ffffff); +} + +.gradient-red-while { + background: linear-gradient(to bottom, #FA8282, #ffffff); +} + +.gradient-while-red { + background: linear-gradient(to bottom, #ffffff, #F7D0C9); +} + +.gradient-yellow1-while { + background: linear-gradient(to bottom, #FFD835, #F3F5FA); +} + +.gradient-yellow2-while { + background: linear-gradient(to bottom, #FBFBE8, #ffffff); +} + +.gradient-yellow3-while { + background: linear-gradient(to bottom right, #FBFBE8, #ffffff); +} + +.gradient-while-blue { + background: linear-gradient(to bottom, #ffffff, #CEE0FF); +} + +.gradient-dack-while { + background: linear-gradient(to bottom, #F3F5FA, #ffffff); +} + +.gradient-while-dack { + background: linear-gradient(to bottom, #ffffff, #F3F5FA); +} + +.gradient-while-yellow { + background: linear-gradient(to bottom right, #ffffff, #FEE610); +} + +.gradient-yellow-black { + background: linear-gradient(to bottom right, #F91305, #FFF000); +} + +.gradient-yellow-org { + background: linear-gradient(to bottom right, #FD4D01, #FFB331); +} + +.gradient-org-yellow { + background: linear-gradient(to bottom right, #FFB331,#FD4D01); +} + +.gradient-red-red { + background: linear-gradient(to bottom right, #F85C09, #F7000A); +} + +/* 边框 */ +.bor-blue { + border-width: 1px; + border-style: solid; + border-color: #23B0FF; + border-radius: 5rpx; +} + +/* 边框 */ +.bor-blue1 { + border-width: 1px; + border-style: solid; + border-color: #23B0FF; + border-radius: 50rpx; +} + +.bor-red { + border-width: 5rpx; + border-style: solid; + border-color: #F1F1F1; + border-radius: 50rpx; +} + +.bor-yellow { + border-width: 1rpx; + border-style: dashed; + border-color: #FFD835; +} + +.bor-dack { + border-width: 1px; + border-style: solid; + border-color: #F8F8F8; +} + +.bor-dack1 { + border-width: 1px; + border-top-style: dashed; + border-right-style: dashed; + border-bottom-style: dashed; + border-left-style: dashed; + border-color: #F1F1F1; +} + +.bor-white { + border-width: 5rpx; + border-style: solid; + border-color: #FFFFFF; + border-radius: 30rpx; +} + +.bor-red-l { + border-width: 10rpx; + border-style: solid; + border-color: #F9C7C3; + border-radius: 10rpx; +} + +.bor-dack-l { + border-width: 2rpx; + border-style: solid; + border-color: #969696; + border-radius: 100rpx; +} + + +.bor-bottom { + border-bottom: 1rpx solid #f8f8f8; +} + +.bor-right-dark { + border-right: 1rpx solid #f1f1f1; +} + +.bor-bottom-dark { + border-bottom: 1rpx solid #f8f8f8; +} + +.bor-bottom-blue { + border-bottom: 5rpx solid #23B0FF; +} + +.bor-bottom-yellow { + border-bottom: 5rpx solid #FEE610; +} + +.bor-bottom-black { + border-bottom: 6rpx solid #000000; +} + +/* 圆角 */ +.bor-r5 { + border-radius: 5rpx; +} + +.bor-r10 { + border-radius: 10rpx; +} + +.bor-r20 { + border-radius: 20rpx; +} + +.bor-r30 { + border-radius: 30rpx; +} + +.bor-r50 { + border-radius: 50rpx; +} + +.bor-r100 { + border-radius: 100rpx; +} + +.bor-r300 { + border-radius: 300rpx; +} + +.bor-r0-8 { + border-top-right-radius: 8rpx; + border-bottom-left-radius: 8rpx; +} + +.bor-rb10 { + border-bottom-left-radius: 10rpx; + border-bottom-right-radius: 10rpx; +} + +.bor-trl20 { + border-top-right-radius: 20rpx; + border-top-left-radius: 20rpx; +} + +.bor-r0-15 { + border-top-right-radius: 15rpx; + border-bottom-left-radius: 15rpx; +} + +.bor-r0-20 { + border-top-right-radius: 20rpx; + border-bottom-left-radius: 20rpx; +} + +.bor-r0-30 { + border-top-right-radius: 30rpx; + border-bottom-left-radius: 30rpx; +} +.bor-r20-0 { + border-top-left-radius: 20rpx; + border-bottom-right-radius: 20rpx; +} + + +/* 分割线 */ +.fgx { + height: 20rpx; +} + +.position-flex-right { + position: fixed; + bottom: 80rpx; + right: 50rpx; + width: 110rpx; + height: 110rpx; + border-radius: 100rpx; +} + +.text-r { + text-align: right; +} + +.text-l { + text-align: left; +} + +.text-c { + text-align: center; +} + +.iconfont-nvue { + font-family: myIconfont; +} + +.position-t-r-b-l { + position: fixed; + top: 0; + right: 0; + left: 0; + bottom: 0; +} + +.position-r-b-l { + position: fixed; + bottom: -5rpx; + right: 0; + left: 0; +} + +.men-ban { + position: fixed; + bottom: 0; + right: 0; + left: 0; + top: 0; + background-color: rgba(0, 0, 0, 0.5); +} + +.height-130 { + height: 130rpx; +} + +.p-sticky{ + position: -webkit-sticky; + position: sticky; + top: var(--window-top); + z-index: 99; + } + + +/* 抽奖 */ +.CellItem { + width: 150rpx; + height: 158rpx; + border-radius: 30rpx; + margin: 5rpx; +} + +.CellItemContent { + width: 150rpx; + height: 138rpx; + border-radius: 30rpx; +} + +.white { + background-color: #fdf2ee; +} + +.WhiteBackground { + background-color: #f8d0c3; +} + +.Yellow { + background-color: #fee610; +} + +.YellowBackground { + background-color: #EFCD22; +} +.target { + transform: translate(-500, 0); + transition: transform 1s; +} + +.origin { + transform: translateX(0px); + transition-property: transform; + transition-duration: 1s; +} + +.ellipsis { + white-space: nowrap; /* 确保文本在一行内显示 */ + overflow: hidden; /* 超出容器部分的文本将被隐藏 */ + text-overflow: ellipsis; /* 使用省略号表示被截断的文本 */ + width: 300rpx; /* 定义容器宽度 */ +} + + +/* 闪动 */ +.scale { + transform: scale(1); +} + +.scalef { + transform: scale(0.9); +} + +.scaleg { + transform: scale(0.98); +} + + +.box { + position: relative; + overflow: hidden; + cursor: pointer +} + +@-webkit-keyframes changeImg { + from { + left: -100%; + } + + 100% { + left: 150%; + } +} + +.shan { + position: absolute; + -webkit-animation: changeImg 3s ease 0s; + -o-animation: changeImg 3s ease 0s; + animation: changeImg 3s ease 0s; + top: 0; + width: 30%; + height: 100%; + content: ""; + background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, 0) 100%); + background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, 0) 100%); + background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, 0) 100%); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, 0) 100%); + transform: skewX(-45deg); + animation-iteration-count: infinite; + -moz-animation-iteration-count: infinite; + -webkit-animation-iteration-count: infinite; +} + diff --git a/uni_modules/gb-qiandao/components/gb-qiandao/gb-qiandao.vue b/uni_modules/gb-qiandao/components/gb-qiandao/gb-qiandao.vue new file mode 100644 index 0000000..cfea2c5 --- /dev/null +++ b/uni_modules/gb-qiandao/components/gb-qiandao/gb-qiandao.vue @@ -0,0 +1,173 @@ + + + + diff --git a/uni_modules/gb-qiandao/components/static/fx.png b/uni_modules/gb-qiandao/components/static/fx.png new file mode 100644 index 0000000..4f2d342 Binary files /dev/null and b/uni_modules/gb-qiandao/components/static/fx.png differ diff --git a/uni_modules/gb-qiandao/components/static/hbbs.png b/uni_modules/gb-qiandao/components/static/hbbs.png new file mode 100644 index 0000000..9cd98da Binary files /dev/null and b/uni_modules/gb-qiandao/components/static/hbbs.png differ diff --git a/uni_modules/gb-qiandao/components/static/kgg.png b/uni_modules/gb-qiandao/components/static/kgg.png new file mode 100644 index 0000000..66b92b8 Binary files /dev/null and b/uni_modules/gb-qiandao/components/static/kgg.png differ diff --git a/uni_modules/gb-qiandao/components/static/swa.png b/uni_modules/gb-qiandao/components/static/swa.png new file mode 100644 index 0000000..d741266 Binary files /dev/null and b/uni_modules/gb-qiandao/components/static/swa.png differ diff --git a/uni_modules/gb-qiandao/components/static/yx.png b/uni_modules/gb-qiandao/components/static/yx.png new file mode 100644 index 0000000..5b251e5 Binary files /dev/null and b/uni_modules/gb-qiandao/components/static/yx.png differ diff --git a/uni_modules/gb-qiandao/components/static/zl.png b/uni_modules/gb-qiandao/components/static/zl.png new file mode 100644 index 0000000..63a91c8 Binary files /dev/null and b/uni_modules/gb-qiandao/components/static/zl.png differ diff --git a/uni_modules/gb-qiandao/package.json b/uni_modules/gb-qiandao/package.json new file mode 100644 index 0000000..02edb6e --- /dev/null +++ b/uni_modules/gb-qiandao/package.json @@ -0,0 +1,83 @@ +{ + "id": "gb-qiandao", + "displayName": "每日签到页面模板组件,简单好用,用了会上瘾的那种", + "version": "1.0.0", + "description": "全网最简单好用的每日签到模板,主打就是简单容易上手,巨好用", + "keywords": [ + "每日签到" +], + "repository": "", + "engines": { + "HBuilderX": "^3.6.12" + }, + "dcloudext": { + "type": "component-vue", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y", + "alipay": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y", + "app-uvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "钉钉": "y", + "快手": "y", + "飞书": "y", + "京东": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/gb-qiandao/readme.md b/uni_modules/gb-qiandao/readme.md new file mode 100644 index 0000000..d9e2f40 --- /dev/null +++ b/uni_modules/gb-qiandao/readme.md @@ -0,0 +1,110 @@ +##简单粗暴的签到系统,非常简单使用 + +##步骤 + +1.导入 + +2.使用示例 +```html + + + + + + + +``` diff --git a/uni_modules/liu-waterfall/changelog.md b/uni_modules/liu-waterfall/changelog.md new file mode 100644 index 0000000..9778590 --- /dev/null +++ b/uni_modules/liu-waterfall/changelog.md @@ -0,0 +1,16 @@ +## 1.0.7(2023-06-08) +增加预览二维码 +## 1.0.6(2023-05-31) +增加license +## 1.0.5(2023-05-20) +优化 +## 1.0.4(2023-05-16) +增加示例 +## 1.0.3(2023-05-15) +超级好用版本发布 +## 1.0.2(2023-04-14) +增加示例 +## 1.0.1(2023-04-04) +更新文档 +## 1.0.0(2023-04-04) +初版发布 diff --git a/uni_modules/liu-waterfall/components/liu-waterfall/liu-waterfall.vue b/uni_modules/liu-waterfall/components/liu-waterfall/liu-waterfall.vue new file mode 100644 index 0000000..b47404b --- /dev/null +++ b/uni_modules/liu-waterfall/components/liu-waterfall/liu-waterfall.vue @@ -0,0 +1,195 @@ + + + + + \ No newline at end of file diff --git a/uni_modules/liu-waterfall/license.md b/uni_modules/liu-waterfall/license.md new file mode 100644 index 0000000..029bf39 --- /dev/null +++ b/uni_modules/liu-waterfall/license.md @@ -0,0 +1,6 @@ +### 1、本插件可免费下载使用; +### 2、未经许可,严禁复制本插件派生同类插件上传插件市场; +### 3、未经许可,严禁在插件市场恶意复制抄袭本插件进行违规获利; +### 4、对本软件的任何使用都必须遵守这些条款,违反这些条款的个人或组织将面临法律追究。 + + diff --git a/uni_modules/liu-waterfall/package.json b/uni_modules/liu-waterfall/package.json new file mode 100644 index 0000000..459df87 --- /dev/null +++ b/uni_modules/liu-waterfall/package.json @@ -0,0 +1,85 @@ +{ + "id": "liu-waterfall", + "displayName": "瀑布流、自定义瀑布流、超级好用的瀑布流组件", + "version": "1.0.7", + "description": "(超级好用)瀑布流,根据内容自动计算进行流式布局,简单参数配置,支持多列布局(走过路过不要错过)", + "keywords": [ + "瀑布流", + "自定义瀑布流", + "瀑布流式布局", + "瀑布流布局", + "瀑布" + ], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "type": "component-vue", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "u" + }, + "App": { + "app-vue": "u", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "u", + "IE": "u", + "Edge": "u", + "Firefox": "u", + "Safari": "u" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "u", + "字节跳动": "u", + "QQ": "u", + "钉钉": "u", + "快手": "u", + "飞书": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/liu-waterfall/readme.md b/uni_modules/liu-waterfall/readme.md new file mode 100644 index 0000000..61780fa --- /dev/null +++ b/uni_modules/liu-waterfall/readme.md @@ -0,0 +1,156 @@ +# liu-waterfall适用于uni-app项目的瀑布流组件 +### 本组件目前兼容微信小程序、H5 +### 本组件是超级好用的瀑布流,根据内容自动计算进行流式布局,简单参数配置,支持多列布局(走过路过不要错过) +# --- 扫码预览、关注我们 --- + +## 扫码关注公众号,查看更多插件信息,预览插件效果! + +![](https://uni.ckapi.pro/uniapp/publicize.png) + +### 使用示例 +``` + + + + + +``` + +### 属性说明 +| 名称 | 类型 | 默认值 | 描述 | +| ----------------------------|--------------- | ---------------------- | ---------------| +| dataList | Array | [] | 数据源 +| column | Number | 2 | 显示列数 +| margin | Number | 10 | 卡片margin(rpx) +| radius | Number | 8 | 卡片圆角(rpx) +| bgColor | String | #edeef2 | 页面背景颜色 +| cardBgColor | String | #FFFFFF | 卡片背景颜色 +| @click | Function | | 点击卡片回调事件 + diff --git a/uni_modules/mp-html/README.md b/uni_modules/mp-html/README.md new file mode 100644 index 0000000..7626289 --- /dev/null +++ b/uni_modules/mp-html/README.md @@ -0,0 +1,194 @@ +## 为减小组件包的大小,默认组件包中不包含编辑、latex 公式等扩展功能,需要使用扩展功能的请参考下方的 插件扩展 栏的说明 + +## 功能介绍 +- 全端支持(含 `v3、NVUE`) +- 支持丰富的标签(包括 `table`、`video`、`svg` 等) +- 支持丰富的事件效果(自动预览图片、链接处理等) +- 支持设置占位图(加载中、出错时、预览时) +- 支持锚点跳转、长按复制等丰富功能 +- 支持大部分 *html* 实体 +- 丰富的插件(关键词搜索、内容编辑、`latex` 公式等) +- 效率高、容错性强且轻量化 + +查看 [功能介绍](https://jin-yufeng.gitee.io/mp-html/#/overview/feature) 了解更多 + +## 使用方法 +- `uni_modules` 方式 + 1. 点击右上角的 `使用 HBuilder X 导入插件` 按钮直接导入项目或点击 `下载插件 ZIP` 按钮下载插件包并解压到项目的 `uni_modules/mp-html` 目录下 + 2. 在需要使用页面的 `(n)vue` 文件中添加 + ```html + + + ``` + ```javascript + export default { + data() { + return { + html: '
Hello World!
' + } + } + } + ``` + 3. 需要更新版本时在 `HBuilder X` 中右键 `uni_modules/mp-html` 目录选择 `从插件市场更新` 即可 + +- 源码方式 + 1. 从 [github](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 或 [gitee](https://gitee.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 下载源码 + 插件市场的 **非 uni_modules 版本** 无法更新,不建议从插件市场获取 + 2. 在需要使用页面的 `(n)vue` 文件中添加 + ```html + + ``` + ```javascript + import mpHtml from '@/components/mp-html/mp-html' + export default { + // HBuilderX 2.5.5+ 可以通过 easycom 自动引入 + components: { + mpHtml + }, + data() { + return { + html: '
Hello World!
' + } + } + } + ``` + +- npm 方式 + 1. 在项目根目录下执行 + ```bash + npm install mp-html + ``` + 2. 在需要使用页面的 `(n)vue` 文件中添加 + ```html + + ``` + ```javascript + import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html' + export default { + // 不可省略 + components: { + mpHtml + }, + data() { + return { + html: '
Hello World!
' + } + } + } + ``` + 3. 需要更新版本时执行以下命令即可 + ```bash + npm update mp-html + ``` + + 使用 *cli* 方式运行的项目,通过 *npm* 方式引入时,需要在 *vue.config.js* 中配置 *transpileDependencies*,详情可见 [#330](https://github.com/jin-yufeng/mp-html/issues/330#issuecomment-913617687) + 如果在 **nvue** 中使用还要将 `dist/uni-app/static` 目录下的内容拷贝到项目的 `static` 目录下,否则无法运行 + +查看 [快速开始](https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart) 了解更多 + +## 组件属性 + +| 属性 | 类型 | 默认值 | 说明 | +|:---:|:---:|:---:|---| +| container-style | String | | 容器的样式([2.1.0+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v210)) | +| content | String | | 用于渲染的 html 字符串 | +| copy-link | Boolean | true | 是否允许外部链接被点击时自动复制 | +| domain | String | | 主域名(用于链接拼接) | +| error-img | String | | 图片出错时的占位图链接 | +| lazy-load | Boolean | false | 是否开启图片懒加载 | +| loading-img | String | | 图片加载过程中的占位图链接 | +| pause-video | Boolean | true | 是否在播放一个视频时自动暂停其他视频 | +| preview-img | Boolean | true | 是否允许图片被点击时自动预览 | +| scroll-table | Boolean | false | 是否给每个表格添加一个滚动层使其能单独横向滚动 | +| selectable | Boolean | false | 是否开启文本长按复制 | +| set-title | Boolean | true | 是否将 title 标签的内容设置到页面标题 | +| show-img-menu | Boolean | true | 是否允许图片被长按时显示菜单 | +| tag-style | Object | | 设置标签的默认样式 | +| use-anchor | Boolean | false | 是否使用锚点链接 | + +查看 [属性](https://jin-yufeng.gitee.io/mp-html/#/basic/prop) 了解更多 + +## 组件事件 + +| 名称 | 触发时机 | +|:---:|---| +| load | dom 树加载完毕时 | +| ready | 图片加载完毕时 | +| error | 发生渲染错误时 | +| imgtap | 图片被点击时 | +| linktap | 链接被点击时 | +| play | 音视频播放时 | + +查看 [事件](https://jin-yufeng.gitee.io/mp-html/#/basic/event) 了解更多 + +## api +组件实例上提供了一些 `api` 方法可供调用 + +| 名称 | 作用 | +|:---:|---| +| in | 将锚点跳转的范围限定在一个 scroll-view 内 | +| navigateTo | 锚点跳转 | +| getText | 获取文本内容 | +| getRect | 获取富文本内容的位置和大小 | +| setContent | 设置富文本内容 | +| imgList | 获取所有图片的数组 | +| pauseMedia | 暂停播放音视频([2.2.2+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v222)) | +| setPlaybackRate | 设置音视频播放速率([2.4.0+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v240)) | + +查看 [api](https://jin-yufeng.gitee.io/mp-html/#/advanced/api) 了解更多 + +## 插件扩展 +除基本功能外,本组件还提供了丰富的扩展,可按照需要选用 + +| 名称 | 作用 | +|:---:|---| +| audio | 音乐播放器 | +| editable | 富文本 **编辑**([示例项目](https://mp-html.oss-cn-hangzhou.aliyuncs.com/editable.zip)) | +| emoji | 解析 emoji | +| highlight | 代码块高亮显示 | +| markdown | 渲染 markdown | +| search | 关键词搜索 | +| style | 匹配 style 标签中的样式 | +| txv-video | 使用腾讯视频 | +| img-cache | 图片缓存 by [@PentaTea](https://github.com/PentaTea) | +| latex | 渲染 latex 公式 by [@Zeng-J](https://github.com/Zeng-J) | + +从插件市场导入的包中 **不含有** 扩展插件,使用插件需通过微信小程序 `富文本插件` 获取或参考以下方法进行打包: +1. 获取完整组件包 + ```bash + npm install mp-html + ``` +2. 编辑 `tools/config.js` 中的 `plugins` 项,选择需要的插件 +3. 生成新的组件包 + 在 `node_modules/mp-html` 目录下执行 + ```bash + npm install + npm run build:uni-app + ``` +4. 拷贝 `dist/uni-app` 中的内容到项目根目录 + +查看 [插件](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin) 了解更多 + +## 关于 nvue +`nvue` 使用原生渲染,不支持部分 `css` 样式,为实现和 `html` 相同的效果,组件内部通过 `web-view` 进行渲染,性能上差于原生,根据 `weex` 官方建议,`web` 标签仅应用在非常规的降级场景。因此,如果通过原生的方式(如 `richtext`)能够满足需要,则不建议使用本组件,如果有较多的富文本内容,则可以直接使用 `vue` 页面 +由于渲染方式与其他端不同,有以下限制: +1. 不支持 `lazy-load` 属性 +2. 视频不支持全屏播放 +3. 如果在 `flex-direction: row` 的容器中使用,需要给组件设置宽度或设置 `flex: 1` 占满剩余宽度 + +纯 `nvue` 模式下,[此问题](https://ask.dcloud.net.cn/question/119678) 修复前,不支持通过 `uni_modules` 引入,需要本地引入(将 [dist/uni-app](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 中的内容拷贝到项目根目录下) + +## 立即体验 +![富文本插件](https://mp-html.oss-cn-hangzhou.aliyuncs.com/qrcode.jpg) + +## 问题反馈 +遇到问题时,请先查阅 [常见问题](https://jin-yufeng.gitee.io/mp-html/#/question/faq) 和 [issue](https://github.com/jin-yufeng/mp-html/issues) 中是否已有相同的问题 +可通过 [issue](https://github.com/jin-yufeng/mp-html/issues/new/choose) 、插件问答或发送邮件到 [mp_html@126.com](mailto:mp_html@126.com) 提问,不建议在评论区提问(不方便回复) +提问请严格按照 [issue 模板](https://github.com/jin-yufeng/mp-html/issues/new/choose) ,描述清楚使用环境、`html` 内容或可复现的 `demo` 项目以及复现方式,对于 **描述不清**、**无法复现** 或重复的问题将不予回复 + +欢迎加入 `QQ` 交流群: +群1(已满):`699734691` +群2(已满):`778239129` +群3:`960265313` + +查看 [问题反馈](https://jin-yufeng.gitee.io/mp-html/#/question/feedback) 了解更多 diff --git a/uni_modules/mp-html/changelog.md b/uni_modules/mp-html/changelog.md new file mode 100644 index 0000000..6fd03eb --- /dev/null +++ b/uni_modules/mp-html/changelog.md @@ -0,0 +1,150 @@ +## v2.5.0(2024-04-22) +1. `U` `play` 事件增加返回 `src` 等信息 [详细](https://github.com/jin-yufeng/mp-html/issues/526) +2. `U` `preview-img` 属性支持设置为 `all` 开启 `base64` 图片预览 [详细](https://github.com/jin-yufeng/mp-html/issues/536) +3. `U` `editable` 插件增加简易模式(点击文字直接编辑) +4. `U` `latex` 插件支持块级公式 [详细](https://github.com/jin-yufeng/mp-html/issues/582) +5. `F` 修复了表格部分情况下背景丢失的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/587) +6. `F` 修复了部分 `svg` 无法显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/591) +7. `F` 修复了 `h5` 和 `app` 端部分情况下样式无法识别的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/518) +8. `F` 修复了 `latex` 插件部分情况下显示不正确的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/580) +9. `F` 修复了 `editable` 插件表格无法删除的问题 +10. `F` 修复了 `editable` 插件 `vue3` `h5` 端点击图片报错的问题 +11. `F` 修复了 `editable` 插件点击表格没有菜单栏的问题 +## v2.4.3(2024-01-21) +1. `A` 增加 [card](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#card) 插件 [详细](https://github.com/jin-yufeng/mp-html/pull/533) by [@whoooami](https://github.com/whoooami) +2. `F` 修复了 `svg` 中包含 `foreignobject` 可能不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/523) +3. `F` 修复了合并单元格的表格部分情况下显示不正确的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/561) +4. `F` 修复了 `img` 标签设置 `object-fit` 无效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/567) +5. `F` 修复了 `latex` 插件公式会换行的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/540) +6. `F` 修复了 `editable` 和 `audio` 插件共用时点击 `audio` 无法编辑的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/529) by [@whoooami](https://github.com/whoooami) +7. `F` 修复了微信小程序部分情况下图片会报错 `replace of undefined` 的问题 +8. `F` 修复了快手小程序图片不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/571) +## v2.4.2(2023-05-14) +1. `A` `editable` 插件支持修改文字颜色 [详细](https://github.com/jin-yufeng/mp-html/issues/254) +2. `F` 修复了 `svg` 中有 `style` 不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/505) +3. `F` 修复了使用旧版编译器可能报错 `Bad attr nodes` 的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/472) +4. `F` 修复了 `app` 端可能出现无法读取 `lazyLoad` 的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/513) +5. `F` 修复了 `editable` 插件在点击换图时未拼接 `domain` 的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/497) by [@TwoKe945](https://github.com/TwoKe945) +6. `F` 修复了 `latex` 插件部分情况下不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/515) +7. `F` 修复了 `editable` 插件点击音视频时其他标签框不消失的问题 +## v2.4.1(2022-12-25) +1. `F` 修复了没有图片时 `ready` 事件可能不触发的问题 +2. `F` 修复了加载过程中可能出现 `Root label not found` 错误的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/470) +3. `F` 修复了 `audio` 插件退出页面可能会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/457) +4. `F` 修复了 `vue3` 运行到 `app` 在 `HBuilder X 3.6.10` 以上报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/480) +5. `F` 修复了 `nvue` 端链接中包含 `%22` 时可能无法显示的问题 +6. `F` 修复了 `vue3` 使用 `highlight` 插件可能报错的问题 +## v2.4.0(2022-08-27) +1. `A` 增加了 [setPlaybackRate](https://jin-yufeng.gitee.io/mp-html/#/advanced/api#setPlaybackRate) 的 `api`,可以设置音视频的播放速率 [详细](https://github.com/jin-yufeng/mp-html/issues/452) +2. `A` 示例小程序代码开源 [详细](https://github.com/jin-yufeng/mp-html-demo) +3. `U` 优化 `ready` 事件触发时机,未设置懒加载的情况下基本可以准确触发 [详细](https://github.com/jin-yufeng/mp-html/issues/195) +4. `U` `highlight` 插件在编辑状态下不进行高亮处理,便于编辑 +5. `F` 修复了 `flex` 布局下图片大小可能不正确的问题 +6. `F` 修复了 `selectable` 属性没有设置 `force` 也可能出现渲染异常的问题 +7. `F` 修复了表格中的图片大小可能不正确的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/448) +8. `F` 修复了含有合并单元格的表格可能无法设置竖直对齐的问题 +9. `F` 修复了 `editable` 插件在 `scroll-view` 中使用时工具条位置可能不正确的问题 +10. `F` 修复了 `vue3` 使用 [search](advanced/plugin#search) 插件可能导致错误换行的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/449) +## v2.3.2(2022-08-13) +1. `A` 增加 [latex](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#latex) 插件,可以渲染数学公式 [详细](https://github.com/jin-yufeng/mp-html/pull/447) by [@Zeng-J](https://github.com/Zeng-J) +2. `U` 优化根节点下有很多标签的长内容渲染速度 +3. `U` `highlight` 插件适配 `lang-xxx` 格式 +4. `F` 修复了 `table` 标签设置 `border` 属性后可能无法修改边框样式的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/439) by [@zouxingjie](https://github.com/zouxingjie) +5. `F` 修复了 `editable` 插件输入连续空格无效的问题 +6. `F` 修复了 `vue3` 图片设置 `inline` 会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/438) +7. `F` 修复了 `vue3` 使用 `table` 可能报错的问题 +## v2.3.1(2022-05-20) +1. `U` `app` 端支持使用本地图片 +2. `U` 优化了微信小程序 `selectable` 属性在 `ios` 端的处理 [详细](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#selectable) +3. `F` 修复了 `editable` 插件不在顶部时 `tooltip` 位置可能错误的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/430) +4. `F` 修复了 `vue3` 运行到微信小程序可能报错丢失内容的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/414) +5. `F` 修复了 `vue3` 部分标签可能被错误换行的问题 +6. `F` 修复了 `editable` 插件 `app` 端插入视频无法预览的问题 +## v2.3.0(2022-04-01) +1. `A` 增加了 `play` 事件,音视频播放时触发,可用于与页面其他音视频进行互斥播放 [详细](basic/event#play) +2. `U` `show-img-menu` 属性支持控制预览时是否长按弹出菜单 +3. `U` 优化 `wxs` 处理,提高渲染性能 [详细](https://developers.weixin.qq.com/community/develop/article/doc/0006cc2b204740f601bd43fa25a413) +4. `U` `video` 标签支持 `object-fit` 属性 +5. `U` 增加支持一些常用实体编码 [详细](https://github.com/jin-yufeng/mp-html/issues/418) +6. `F` 修复了图片仅设置高度可能不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/410) +7. `F` 修复了 `video` 标签高度设置为 `auto` 不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/411) +8. `F` 修复了使用 `grid` 布局时可能样式错误的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/413) +9. `F` 修复了含有合并单元格的表格部分情况下显示异常的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/417) +10. `F` 修复了 `editable` 插件连续插入内容时顺序不正确的问题 +11. `F` 修复了 `uni-app` 包 `vue3` 使用 `audio` 插件报错的问题 +12. `F` 修复了 `uni-app` 包 `highlight` 插件使用自定义的 `prism.min.js` 报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/416) +## v2.2.2(2022-02-26) +1. `A` 增加了 [pauseMedia](https://jin-yufeng.gitee.io/mp-html/#/advanced/api#pauseMedia) 的 `api`,可用于暂停播放音视频 [详细](https://github.com/jin-yufeng/mp-html/issues/317) +2. `U` 优化了长内容的加载速度 +3. `U` 适配 `vue3` [#389](https://github.com/jin-yufeng/mp-html/issues/389)、[#398](https://github.com/jin-yufeng/mp-html/pull/398) by [@zhouhuafei](https://github.com/zhouhuafei)、[#400](https://github.com/jin-yufeng/mp-html/issues/400) +4. `F` 修复了小程序端图片高度设置为百分比时可能不显示的问题 +5. `F` 修复了 `highlight` 插件部分情况下可能显示不完整的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/403) +## v2.2.1(2021-12-24) +1. `A` `editable` 插件增加上下移动标签功能 +2. `U` `editable` 插件支持在文本中间光标处插入内容 +3. `F` 修复了 `nvue` 端设置 `margin` 后可能导致高度不正确的问题 +4. `F` 修复了 `highlight` 插件使用压缩版的 `prism.css` 可能导致背景失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/367) +5. `F` 修复了编辑状态下使用 `emoji` 插件内容为空时可能报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/371) +6. `F` 修复了使用 `editable` 插件后将 `selectable` 属性设置为 `force` 不生效的问题 +## v2.2.0(2021-10-12) +1. `A` 增加 `customElements` 配置项,便于添加自定义功能性标签 [详细](https://github.com/jin-yufeng/mp-html/issues/350) +2. `A` `editable` 插件增加切换音视频自动播放状态的功能 [详细](https://github.com/jin-yufeng/mp-html/pull/341) by [@leeseett](https://github.com/leeseett) +3. `A` `editable` 插件删除媒体标签时触发 `remove` 事件,便于删除已上传的文件 +4. `U` `editable` 插件 `insertImg` 方法支持同时插入多张图片 [详细](https://github.com/jin-yufeng/mp-html/issues/342) +5. `U` `editable` 插入图片和音视频时支持拼接 `domian` 主域名 +6. `F` 修复了内部链接参数中包含 `://` 时被认为是外部链接的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/356) +7. `F` 修复了部分 `svg` 标签名或属性名大小写不正确时不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/351) +8. `F` 修复了 `nvue` 页面运行到非 `app` 平台时可能样式错误的问题 +## v2.1.5(2021-08-13) +1. `A` 增加支持标签的 `dir` 属性 +2. `F` 修复了 `ruby` 标签文字与拼音没有居中对齐的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/325) +3. `F` 修复了音视频标签内有 `a` 标签时可能无法播放的问题 +4. `F` 修复了 `externStyle` 中的 `class` 名包含下划线或数字时可能失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/326) +5. `F` 修复了 `h5` 端引入 `externStyle` 可能不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/326) +## v2.1.4(2021-07-14) +1. `F` 修复了 `rt` 标签无法设置样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/318) +2. `F` 修复了表格中有单元格同时合并行和列时可能显示不正确的问题 +3. `F` 修复了 `app` 端无法关闭图片长按菜单的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/322) +4. `F` 修复了 `editable` 插件只能添加图片链接不能修改的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/312) by [@leeseett](https://github.com/leeseett) +## v2.1.3(2021-06-12) +1. `A` `editable` 插件增加 `insertTable` 方法 +2. `U` `editable` 插件支持编辑表格中的空白单元格 [详细](https://github.com/jin-yufeng/mp-html/issues/310) +3. `F` 修复了 `externStyle` 中使用伪类可能失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/298) +4. `F` 修复了多个组件同时使用时 `tag-style` 属性时可能互相影响的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/305) by [@woodguoyu](https://github.com/woodguoyu) +5. `F` 修复了包含 `linearGradient` 的 `svg` 可能无法显示的问题 +6. `F` 修复了编译到头条小程序时可能报错的问题 +7. `F` 修复了 `nvue` 端不触发 `click` 事件的问题 +8. `F` 修复了 `editable` 插件尾部插入时无法撤销的问题 +9. `F` 修复了 `editable` 插件的 `insertHtml` 方法只能在末尾插入的问题 +10. `F` 修复了 `editable` 插件插入音频不显示的问题 +## v2.1.2(2021-04-24) +1. `A` 增加了 [img-cache](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#img-cache) 插件,可以在 `app` 端缓存图片 [详细](https://github.com/jin-yufeng/mp-html/issues/292) by [@PentaTea](https://github.com/PentaTea) +2. `U` 支持通过 `container-style` 属性设置 `white-space` 来保留连续空格和换行符 [详细](https://jin-yufeng.gitee.io/mp-html/#/question/faq#space) +3. `U` 代码风格符合 [standard](https://standardjs.com) 标准 +4. `U` `editable` 插件编辑状态下支持预览视频 [详细](https://github.com/jin-yufeng/mp-html/issues/286) +5. `F` 修复了 `svg` 标签内嵌 `svg` 时无法显示的问题 +6. `F` 修复了编译到支付宝和头条小程序时部分区域不可复制的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/291) +## v2.1.1(2021-04-09) +1. 修复了对 `p` 标签设置 `tag-style` 可能不生效的问题 +2. 修复了 `svg` 标签中的文本无法显示的问题 +3. 修复了使用 `editable` 插件编辑表格时可能报错的问题 +4. 修复了使用 `highlight` 插件运行到头条小程序时可能没有样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/280) +5. 修复了使用 `editable` 插件 `editable` 属性为 `false` 时会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/284) +6. 修复了 `style` 插件连续子选择器失效的问题 +7. 修复了 `editable` 插件无法修改图片和字体大小的问题 +## v2.1.0.2(2021-03-21) +修复了 `nvue` 端使用可能报错的问题 +## v2.1.0(2021-03-20) +1. `A` 增加了 [container-style](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#container-style) 属性 [详细](https://gitee.com/jin-yufeng/mp-html/pulls/1) +2. `A` 增加支持 `strike` 标签 +3. `A` `editable` 插件增加 `placeholder` 属性 [详细](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#editable) +4. `A` `editable` 插件增加 `insertHtml` 方法 [详细](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#editable) +5. `U` 外部样式支持标签名选择器 [详细](https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart#setting) +6. `F` 修复了 `nvue` 端部分情况下可能不显示的问题 +## v2.0.5(2021-03-12) +1. `U` [linktap](https://jin-yufeng.gitee.io/mp-html/#/basic/event#linktap) 事件增加返回内部文本内容 `innerText` [详细](https://github.com/jin-yufeng/mp-html/issues/271) +2. `U` [selectable](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#selectable) 属性设置为 `force` 时能够在微信 `iOS` 端生效(文本块会变成 `inline-block`) [详细](https://github.com/jin-yufeng/mp-html/issues/267) +3. `F` 修复了部分情况下竖向无法滚动的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/182) +4. `F` 修复了多次修改富文本数据时部分内容可能不显示的问题 +5. `F` 修复了 [腾讯视频](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#txv-video) 插件可能无法播放的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/265) +6. `F` 修复了 [highlight](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#highlight) 插件没有设置高亮语言时没有应用默认样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/276) by [@fuzui](https://github.com/fuzui) diff --git a/uni_modules/mp-html/components/mp-html/mp-html.vue b/uni_modules/mp-html/components/mp-html/mp-html.vue new file mode 100644 index 0000000..5d1d36d --- /dev/null +++ b/uni_modules/mp-html/components/mp-html/mp-html.vue @@ -0,0 +1,498 @@ + + + + + diff --git a/uni_modules/mp-html/components/mp-html/node/node.vue b/uni_modules/mp-html/components/mp-html/node/node.vue new file mode 100644 index 0000000..09252fd --- /dev/null +++ b/uni_modules/mp-html/components/mp-html/node/node.vue @@ -0,0 +1,587 @@ +