Merge branch 'master' of https://gitea.zianxin.com/zax/biz-mobile-react-cloud
# Conflicts: # .env
This commit is contained in:
commit
2f7a9d55a2
23 files changed
+345
-203
No files matched your search
@@ -19,16 +19,16 @@ VITE_OAUTH2_APP_CLIENT='mini:mini'
|
||||
# --------------------------- 开发环境 api地址 ----------------------------------
|
||||
# VITE_APP_DEV_SERVICE = https://stgl.pj.gov.cn/api # 域名线上
|
||||
#VITE_APP_DEV_SERVICE = http://59.202.170.152:81/api # 信创线上
|
||||
# VITE_APP_DEV_SERVICE = http://192.168.101.174:9999 # 邓-本地
|
||||
VITE_APP_DEV_SERVICE = http://127.0.0.1:9999 # 邓-本地
|
||||
VITE_APP_DEV_SERVICE = https://dzc-test-1.fy.takin.cc # 邓-本地
|
||||
# VITE_APP_DEV_SERVICE = http://127.0.0.1:9999 # 邓-本地
|
||||
# VITE_APP_DEV_SERVICE = http://123.157.250.162:8089/api # 测试线上
|
||||
|
||||
# --------------------------- 开发环境 图片访问基础地址 ---------------------------
|
||||
# VITE_IMAGE_DEV_PATH = https://stgl.pj.gov.cn/api # 域名线上
|
||||
#VITE_IMAGE_DEV_PATH = http://59.202.170.152:81/api # 信创线上
|
||||
# VITE_IMAGE_DEV_PATH = http://192.168.101.174:9999 # 邓-本地
|
||||
VITE_IMAGE_DEV_PATH = http://127.0.0.1:9999
|
||||
#VITE_IMAGE_DEV_PATH = http://123.157.250.162:8089/api # 测试线上
|
||||
VITE_IMAGE_DEV_PATH = https://dzc-test-1.fy.takin.cc # 邓-本地
|
||||
#VITE_IMAGE_DEV_PATH = http://127.0.0.1:9999
|
||||
# VITE_IMAGE_DEV_PATH = http://123.157.250.162:8089/api # 测试线上
|
||||
|
||||
# --------------------------- 生产环境 api地址 ----------------------------------
|
||||
VITE_APP_PROD_SERVICE = https://stgl.pj.gov.cn/api # 域名线上
|
||||
|
||||
+10
-1
@@ -53,6 +53,7 @@ const tabbar: TabbarItem[] = [
|
||||
launchParam: ["coopMerchant"],
|
||||
auth: ["user"],
|
||||
},
|
||||
// 在线商城(商品展示)
|
||||
{
|
||||
pagePath: "pages/tabbar/onlineShop",
|
||||
text: "在线商城",
|
||||
@@ -69,6 +70,14 @@ const tabbar: TabbarItem[] = [
|
||||
launchParam: ["prosperityShop"],
|
||||
auth: ["user"],
|
||||
},
|
||||
{
|
||||
pagePath: "pages/tabbar/prosperityShopMchList",
|
||||
text: "共富商城",
|
||||
iconPath: "/static/tabbar/prosperity-shop.png",
|
||||
selectedIconPath: "/static/tabbar/prosperity-shop-select.png",
|
||||
launchParam: ["prosperityShopMchList"],
|
||||
auth: ["user"],
|
||||
},
|
||||
{
|
||||
pagePath: "pages/tabbar/cabinet",
|
||||
text: "智能柜",
|
||||
@@ -114,7 +123,7 @@ const tabbar: TabbarItem[] = [
|
||||
text: "我的",
|
||||
iconPath: "/static/tabbar/my.png",
|
||||
selectedIconPath: "/static/tabbar/my-select.png",
|
||||
launchParam: ["canteen", "selfMerchant", "onlineShop", "coopMerchant", "integrated", "prosperityShop"],
|
||||
launchParam: ["canteen", "selfMerchant", "onlineShop", "coopMerchant", "integrated", "prosperityShop", "prosperityShopMchList"],
|
||||
auth: ["user", "merchant", "doorAdmin"],
|
||||
},
|
||||
]
|
||||
|
||||
@@ -51,6 +51,13 @@
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/tabbar/prosperityShopMchList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "共富商城",
|
||||
"disableScroll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/tabbar/coopMerchant",
|
||||
"style": {
|
||||
@@ -688,6 +695,12 @@
|
||||
"iconPath": "",
|
||||
"selectedIconPath": ""
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/tabbar/prosperityShopMchList",
|
||||
"text": "",
|
||||
"iconPath": "",
|
||||
"selectedIconPath": ""
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/tabbar/cabinet",
|
||||
"text": "",
|
||||
|
||||
@@ -20,10 +20,21 @@ const doVisibleQrcode = () => {
|
||||
<template>
|
||||
<view class="coupon-item">
|
||||
<!-- 左侧主体 -->
|
||||
<view class="coupon-left">
|
||||
<view class="coupon-left relative">
|
||||
<view class="size-140rpx rounded-8rpx flex-row-center flex-shrink-0 bg-#f0f0f0 m-r-10rpx">
|
||||
<image class="size-110rpx" src="/static/icon/act_cancel.png" mode="aspectFill" />
|
||||
</view>
|
||||
<view class="absolute top-0rpx right-80rpx">
|
||||
<!-- 未使用 -->
|
||||
<view v-if="detail.actStatus == 1"
|
||||
class="iconfont icon-weishiyong absolute font-size-80rpx! color-blue" />
|
||||
<!-- 已使用 -->
|
||||
<view v-if="detail.actStatus == 2"
|
||||
class="iconfont icon-weishiyong1 absolute font-size-80rpx! color-#cccccc" />
|
||||
<!-- 已过期 -->
|
||||
<view v-if="detail.actStatus == 3"
|
||||
class="iconfont icon-yiguoqi absolute font-size-80rpx! color-#cccccc" />
|
||||
</view>
|
||||
<view class="info-box">
|
||||
<view class="price-row">
|
||||
<view v-if="detail.faceValue" class="flex items-center">
|
||||
@@ -49,7 +60,9 @@ const doVisibleQrcode = () => {
|
||||
</view>
|
||||
<!-- 右侧按钮 -->
|
||||
<view class="coupon-right">
|
||||
<view class="action-btn" @tap="doVisibleQrcode">核销码</view>
|
||||
<view v-if="detail.actStatus == 1" class="action-btn" @tap="doVisibleQrcode">核销码</view>
|
||||
<view v-if="detail.actStatus == 2" class="action-btn disabled">已使用</view>
|
||||
<view v-if="detail.actStatus == 3" class="action-btn disabled">已过期</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@@ -194,5 +207,9 @@ const doVisibleQrcode = () => {
|
||||
padding: 10rpx 24rpx;
|
||||
border-radius: 30rpx;
|
||||
font-weight: 500;
|
||||
|
||||
&.disabled {
|
||||
background: #cccccc;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -20,9 +20,20 @@ const doVisibleQrcode = () => {
|
||||
<template>
|
||||
<view class="coupon-item">
|
||||
<!-- 左侧主体 -->
|
||||
<view class="coupon-left">
|
||||
<view class="coupon-left relative">
|
||||
<image class="size-140rpx rounded-8rpx flex-shrink-0 m-r-10rpx bg-#f0f0f0" src="/static/icon/act_coupon.png"
|
||||
mode="aspectFill" />
|
||||
<view class="absolute top-0rpx right-80rpx">
|
||||
<!-- 未使用 -->
|
||||
<view v-if="detail.status == 1" class="iconfont icon-weishiyong absolute font-size-80rpx! color-blue" />
|
||||
<!-- 已使用 -->
|
||||
<view v-if="detail.status == 2"
|
||||
class="iconfont icon-weishiyong1 absolute font-size-80rpx! color-#cccccc" />
|
||||
<!-- 已过期 -->
|
||||
<view v-if="detail.status == 3" class="iconfont icon-yiguoqi absolute font-size-80rpx! color-#cccccc" />
|
||||
<!-- 已核销 -->
|
||||
<view v-if="detail.status == 4" class="iconfont icon-yiguoqi absolute font-size-80rpx! color-#cccccc" />
|
||||
</view>
|
||||
<view class="info-box">
|
||||
<view class="price-row">
|
||||
<view v-if="detail.faceValue" class="flex items-center">
|
||||
@@ -48,7 +59,9 @@ const doVisibleQrcode = () => {
|
||||
</view>
|
||||
<!-- 右侧按钮 -->
|
||||
<view class="coupon-right">
|
||||
<view class="action-btn" @tap="doVisibleQrcode">核销码</view>
|
||||
<view v-if="detail.status == 1" class="action-btn" @tap="doVisibleQrcode">核销码</view>
|
||||
<view v-if="detail.status == 2" class="action-btn disabled">已使用</view>
|
||||
<view v-if="detail.status == 3" class="action-btn disabled">已过期</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@@ -193,5 +206,9 @@ const doVisibleQrcode = () => {
|
||||
padding: 10rpx 24rpx;
|
||||
border-radius: 30rpx;
|
||||
font-weight: 500;
|
||||
|
||||
&.disabled {
|
||||
background: #cccccc;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -19,8 +19,6 @@
|
||||
</view>
|
||||
<view class="absolute bottom-40 left-60 text-28 bg-#eeeeee44 c-#fff px-2 rounded-full">限量领取 先领先得</view>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="card relative rounded-lb-0! rounded-rb-0! w-full activity-sr-card overflow-hidden"
|
||||
v-if="state.actType == 'COUPON_ACT' && state.actDetail.uniqueCode === '1qRgFo'">
|
||||
<image class="w-full block" src="/static/page/act_li_quan.jpg" mode="widthFix" />
|
||||
|
||||
@@ -56,6 +56,7 @@ const toDetail = async (v: any) => {
|
||||
if (isLogin) {
|
||||
if (v.supType && v.supType == "10") return router.jump("/pages/merchant/brandDetail", { parentId: v.id })
|
||||
if (v.supType && v.supType == "20") return router.jump("/pages/merchant/detail", { id: v.id })
|
||||
if (v.supType && v.supType == "50") return router.jump("/pages/merchant/brandDetail", { parentId: v.id })
|
||||
uni.showToast({ title: "合作商家类型未知", icon: "none" })
|
||||
}
|
||||
}
|
||||
@@ -63,37 +64,16 @@ const toDetail = async (v: any) => {
|
||||
|
||||
<template>
|
||||
<crud-layout bg="/static/page/blue-bg.png">
|
||||
<z-paging
|
||||
ref="pageRef"
|
||||
height="100%"
|
||||
:fixed="false"
|
||||
v-model="pageHook.list"
|
||||
:default-page-size="10"
|
||||
safe-area-inset-bottom
|
||||
:loading-more-enabled="true"
|
||||
:show-scrollbar="false"
|
||||
@query="query"
|
||||
:auto-clean-list-when-reload="false"
|
||||
:auto-scroll-to-top-when-reload="false"
|
||||
@scroll="pageHook.scroll"
|
||||
>
|
||||
<z-paging ref="pageRef" height="100%" :fixed="false" v-model="pageHook.list" :default-page-size="10"
|
||||
safe-area-inset-bottom :loading-more-enabled="true" :show-scrollbar="false" @query="query"
|
||||
:auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" @scroll="pageHook.scroll">
|
||||
<template #top>
|
||||
<view class="h-30rpx" />
|
||||
<view class="flex w-full">
|
||||
<tm-input
|
||||
class="flex-1"
|
||||
v-model="state.pa.name"
|
||||
type="text"
|
||||
height="72"
|
||||
minHeight="72"
|
||||
fontSize="28"
|
||||
:showClear="true"
|
||||
:focus="false"
|
||||
placeholder="请输入商家名称"
|
||||
style="border: 4rpx solid #0779fd; border-radius: 14rpx"
|
||||
:focus-highlight="false"
|
||||
color="#ECF4F9"
|
||||
>
|
||||
<tm-input class="flex-1" v-model="state.pa.name" type="text" height="72" minHeight="72"
|
||||
fontSize="28" :showClear="true" :focus="false" placeholder="请输入商家名称"
|
||||
style="border: 4rpx solid #0779fd; border-radius: 14rpx" :focus-highlight="false"
|
||||
color="#ECF4F9">
|
||||
<template v-slot:rightIcon>
|
||||
<tm-button class="mr-1 px-3 py-26rpx text-30rpx!" size="xs" @click="search">搜 索</tm-button>
|
||||
</template>
|
||||
@@ -119,7 +99,9 @@ const toDetail = async (v: any) => {
|
||||
<view class="second-text-28 ml-1">{{ v.phone }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<tm-tag class="max-w-160rpx" size="xs">{{ v.deptName.length > 5 ? v.deptName.substring(0, 5) + "..." : v.deptName }}</tm-tag>
|
||||
<tm-tag class="max-w-160rpx" size="xs">{{ v.deptName.length > 5 ? v.deptName.substring(0, 5)
|
||||
+ "..." :
|
||||
v.deptName }}</tm-tag>
|
||||
</view>
|
||||
<view class="second-text-24">
|
||||
<view v-if="v.jobTime != ',,'" class="second-text-28">营业时间:</view>
|
||||
|
||||
@@ -24,16 +24,22 @@ const moduleList = [
|
||||
},
|
||||
{
|
||||
pagePath: "/pages/tabbar/onlineShop",
|
||||
text: "在线商城",
|
||||
text: "在线商城(商品展示)",
|
||||
iconPath: "/static/tabbar/online-shop-select.png",
|
||||
launchParam: "onlineShop",
|
||||
},
|
||||
{
|
||||
pagePath: "/pages/tabbar/prosperityShop",
|
||||
text: "共富商城",
|
||||
text: "共富商城(店铺商品模式)",
|
||||
iconPath: "/static/tabbar/prosperity-shop-select.png",
|
||||
launchParam: "prosperityShop",
|
||||
},
|
||||
{
|
||||
pagePath: "/pages/tabbar/prosperityShopMchList",
|
||||
text: "共富商城(商家模式)",
|
||||
iconPath: "/static/tabbar/prosperity_shop_mch_list.png",
|
||||
launchParam: "prosperityShopMchList",
|
||||
},
|
||||
{
|
||||
pagePath: "/pages/tabbar/cabinet",
|
||||
text: "智能柜",
|
||||
@@ -90,6 +96,10 @@ const jumpByParam = async () => {
|
||||
uni.setStorageSync("launchParam", launchParam)
|
||||
uni.switchTab({ url: "/pages/tabbar/prosperityShop" })
|
||||
break
|
||||
case "prosperityShopMchList": // 共富商城(商家模式)
|
||||
uni.setStorageSync("launchParam", launchParam)
|
||||
uni.switchTab({ url: "/pages/tabbar/prosperityShopMchList" })
|
||||
break
|
||||
default:
|
||||
uni.hideTabBar()
|
||||
break
|
||||
@@ -120,6 +130,10 @@ const jumpByParam = async () => {
|
||||
uni.setStorageSync("launchParam", launchParam)
|
||||
return uni.reLaunch({ url: "/pages/tabbar/prosperityShop" })
|
||||
}
|
||||
if (launchParam === "prosperityShopMchList") {
|
||||
uni.setStorageSync("launchParam", launchParam)
|
||||
return uni.reLaunch({ url: "/pages/tabbar/prosperityShopMchList" })
|
||||
}
|
||||
if (launchParam === "coopMerchant") {
|
||||
uni.setStorageSync("launchParam", launchParam)
|
||||
return uni.reLaunch({ url: "/pages/tabbar/coopMerchant" })
|
||||
@@ -147,8 +161,10 @@ const doModuleJump = (item: any) => {
|
||||
<view class="w-full h-full flex-col-center">
|
||||
<tm-sheet v-if="isDevEnv()" :margin="[0]">
|
||||
<view class="flex-row items-center justify-center flex-wrap">
|
||||
<view class="w-half flex justify-center py-2 rounded-1" v-for="(item, index) in moduleList" :key="index">
|
||||
<view class="w-half text-center rounded-1 active:bg-#e8e8e8 duration-200" @tap="doModuleJump(item)">
|
||||
<view class="w-half flex justify-center py-2 rounded-1" v-for="(item, index) in moduleList"
|
||||
:key="index">
|
||||
<view class="w-half text-center rounded-1 active:bg-#e8e8e8 duration-200"
|
||||
@tap="doModuleJump(item)">
|
||||
<image class="w-80 h-80 px-2 pt-2" :src="item.iconPath" />
|
||||
<tm-text font-size="32">{{ item.text }}</tm-text>
|
||||
</view>
|
||||
|
||||
@@ -9,20 +9,29 @@
|
||||
<div v-for="item in services" :key="item.name" class="service-item" @click="goPage(item)">
|
||||
<div class="service-icon-wrapper">
|
||||
<image :src="item.icon" class="service-icon" />
|
||||
<view v-if="item.name === 'todo' && todoCount > 0" class="badge">{{ todoCount > 99 ? "99+" : todoCount }}</view>
|
||||
<view v-if="item.name === 'todo' && todoCount > 0" class="badge">{{ todoCount > 99 ? "99+" :
|
||||
todoCount }}</view>
|
||||
</div>
|
||||
<div class="service-label">{{ item.label }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<view class="position-absolute bottom-20rpx left-0 right-0 second-text-26 text-center">
|
||||
<text>联系热线:</text>
|
||||
<text @click="doPhone('18367908152')">18367908152</text>
|
||||
|
||||
<text @click="doPhone('15657370065')">15657370065</text>
|
||||
</view>
|
||||
</crud-layout>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onLoad } from "@dcloudio/uni-app"
|
||||
import { ref, onMounted } from "vue"
|
||||
|
||||
import integratedApi from "@/sheep/api/integrated"
|
||||
import { hooks } from "@@/index"
|
||||
|
||||
const todoCount = ref(0)
|
||||
|
||||
@@ -109,6 +118,11 @@ function goPage(item) {
|
||||
uni.navigateTo({ url: item.url })
|
||||
}
|
||||
}
|
||||
|
||||
// 联系客服
|
||||
const doPhone = (phone: string) => {
|
||||
hooks.useMakePhoneCall(phone)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@@ -119,6 +133,7 @@ function goPage(item) {
|
||||
margin: 32rpx 24rpx 0 24rpx;
|
||||
padding: 0 0 8rpx 0;
|
||||
}
|
||||
|
||||
.integrated-title {
|
||||
font-size: 38rpx;
|
||||
font-weight: bold;
|
||||
@@ -127,6 +142,7 @@ function goPage(item) {
|
||||
padding: 36rpx 0 24rpx 0;
|
||||
letter-spacing: 2rpx;
|
||||
}
|
||||
|
||||
.service-container-card {
|
||||
background: #fff;
|
||||
border-radius: 24rpx;
|
||||
@@ -134,17 +150,20 @@ function goPage(item) {
|
||||
margin: 24rpx;
|
||||
padding-bottom: 32rpx;
|
||||
}
|
||||
|
||||
.service-container {
|
||||
padding: 32rpx 0 0 0;
|
||||
background: transparent;
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
|
||||
.service-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
padding: 0 24rpx;
|
||||
}
|
||||
|
||||
.service-item {
|
||||
width: 25%;
|
||||
margin-bottom: 40rpx;
|
||||
@@ -153,10 +172,12 @@ function goPage(item) {
|
||||
align-items: center;
|
||||
transition: transform 0.2s;
|
||||
}
|
||||
|
||||
.service-item:hover {
|
||||
transform: translateY(-6rpx) scale(1.06);
|
||||
box-shadow: 0 2rpx 12rpx rgba(25, 118, 210, 0.08);
|
||||
}
|
||||
|
||||
.service-icon-wrapper {
|
||||
position: relative;
|
||||
margin-bottom: 14rpx;
|
||||
@@ -195,19 +216,23 @@ function goPage(item) {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.service-label {
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
text-align: center;
|
||||
letter-spacing: 1rpx;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #f5f6fa;
|
||||
}
|
||||
|
||||
@@ -1,20 +1,9 @@
|
||||
<template>
|
||||
<crud-layout bg="/static/page/blue-bg.png">
|
||||
<z-paging
|
||||
ref="pageRef"
|
||||
height="100%"
|
||||
:fixed="false"
|
||||
v-model="pageHook.list"
|
||||
:default-page-size="10"
|
||||
safe-area-inset-bottom
|
||||
:loading-more-enabled="true"
|
||||
:show-scrollbar="false"
|
||||
@query="query"
|
||||
:auto-clean-list-when-reload="false"
|
||||
:auto-scroll-to-top-when-reload="false"
|
||||
@scroll="pageHook.scroll"
|
||||
:auto="false"
|
||||
>
|
||||
<z-paging ref="pageRef" height="100%" :fixed="false" v-model="pageHook.list" :default-page-size="10"
|
||||
safe-area-inset-bottom :loading-more-enabled="true" :show-scrollbar="false" @query="query"
|
||||
:auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" @scroll="pageHook.scroll"
|
||||
:auto="false">
|
||||
<template #top>
|
||||
<view class="flex justify-between items-center my-1">
|
||||
<tm-text font-size="40" color="#0779FD" class="font-bold">欢迎选购</tm-text>
|
||||
@@ -25,23 +14,13 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="w-full flex items-center">
|
||||
<tm-input
|
||||
class="flex-1"
|
||||
v-model="state.params.keyword"
|
||||
type="text"
|
||||
height="72"
|
||||
minHeight="72"
|
||||
fontSize="28"
|
||||
:showClear="true"
|
||||
:focus="false"
|
||||
placeholder="请输入商品名称"
|
||||
style="border: 4rpx solid #0779fd; border-radius: 14rpx"
|
||||
:focus-highlight="false"
|
||||
color="#ECF4F9"
|
||||
@clear="inputClear"
|
||||
>
|
||||
<tm-input class="flex-1" v-model="state.params.keyword" type="text" height="72" minHeight="72"
|
||||
fontSize="28" :showClear="true" :focus="false" placeholder="请输入商品名称"
|
||||
style="border: 4rpx solid #0779fd; border-radius: 14rpx" :focus-highlight="false"
|
||||
color="#ECF4F9" @clear="inputClear">
|
||||
<template v-slot:rightIcon>
|
||||
<tm-button class="mr-1 px-3 py-26rpx text-30rpx!" size="xs" @click="searchProduct">搜 索</tm-button>
|
||||
<tm-button class="mr-1 px-3 py-26rpx text-30rpx!" size="xs" @click="searchProduct">搜
|
||||
索</tm-button>
|
||||
</template>
|
||||
</tm-input>
|
||||
<tm-badge bg-color="red" :offset="[8, 4]" :label="cartStore.totalCount">
|
||||
@@ -56,29 +35,18 @@
|
||||
<view
|
||||
class="mr-2 sub-text-28 py-1 px-2 rounded-1 bg-#fff border border-solid border-transparent whitespace-nowrap"
|
||||
:class="{ 'bg-#0779FD22! c-#0779FD! border-#0779FD33!': state.params.categoryId === v.id }"
|
||||
v-for="(v, i) in state.categaryList"
|
||||
:key="i"
|
||||
@tap="changeCategary(v.id)"
|
||||
>
|
||||
v-for="(v, i) in state.categaryList" :key="i" @tap="changeCategary(v.id)">
|
||||
{{ v.name }}
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</template>
|
||||
|
||||
<Waterfall
|
||||
:list="pageHook.list"
|
||||
:gutter="10"
|
||||
:breakpoints="{
|
||||
1800: { rowPerView: 4 },
|
||||
1400: { rowPerView: 3 },
|
||||
975: { rowPerView: 2 },
|
||||
}"
|
||||
:hasAroundGutter="false"
|
||||
backgroundColor="#ffffff00"
|
||||
:crossOrigin="false"
|
||||
:animationCancel="false"
|
||||
>
|
||||
<Waterfall :list="pageHook.list" :gutter="10" :breakpoints="{
|
||||
1800: { rowPerView: 4 },
|
||||
1400: { rowPerView: 3 },
|
||||
975: { rowPerView: 2 },
|
||||
}" :hasAroundGutter="false" backgroundColor="#ffffff00" :crossOrigin="false" :animationCancel="false">
|
||||
<template #default="{ item, url, index }">
|
||||
<view class="card" @click="goDetail(item)">
|
||||
<LazyImg class="rounded-2" :url="filePath(item.picUrl)" />
|
||||
@@ -96,26 +64,16 @@
|
||||
</template>
|
||||
</Waterfall>
|
||||
|
||||
<tm-drawer
|
||||
title="切换超市"
|
||||
:showClose="true"
|
||||
:showFooter="true"
|
||||
size="50%"
|
||||
v-model:show="state.shopDrawerShow"
|
||||
:duration="100"
|
||||
zIndex="1200"
|
||||
>
|
||||
<tm-drawer title="切换超市" :showClose="true" :showFooter="true" size="50%" v-model:show="state.shopDrawerShow"
|
||||
:duration="100" zIndex="1200">
|
||||
<tm-radio-group v-model="state.curMerchantRadioId" direction="column">
|
||||
<tm-radio
|
||||
v-for="(item, index) in state.merchantList"
|
||||
:key="index"
|
||||
<tm-radio v-for="(item, index) in state.merchantList" :key="index"
|
||||
class="w-full flex items-center p-2 rounded-3"
|
||||
:class="[state.curMerchantRadioId == item.id ? 'bg-#e8e8e8' : '']"
|
||||
:value="item.id"
|
||||
>
|
||||
:class="[state.curMerchantRadioId == item.id ? 'bg-#e8e8e8' : '']" :value="item.id">
|
||||
<template v-slot:label="checked">
|
||||
<view class="flex items-center">
|
||||
<image class="size-80rpx rounded-2 mr-2" :src="filePath(item.logoPic)" mode="aspectFill" />
|
||||
<image class="size-80rpx rounded-2 mr-2" :src="filePath(item.logoPic)"
|
||||
mode="aspectFill" />
|
||||
<tm-text font-size="30">{{ item.name }}</tm-text>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -106,7 +106,7 @@ const doRefund = (v: any) => {
|
||||
<view>
|
||||
<text>下单时间</text>
|
||||
<text class="ml-10rpx">{{ hooks.useTime(v.createTime, "{y}-{m}-{d} {h}:{i}:{s}")
|
||||
}}</text>
|
||||
}}</text>
|
||||
</view>
|
||||
<view>{{ hooks.useEnum("hardwareRefundStatusEnum", v.refundStatus) }}</view>
|
||||
</view>
|
||||
|
||||
@@ -1,39 +1,18 @@
|
||||
<template>
|
||||
<crud-layout bg="/static/page/blue-bg.png">
|
||||
<z-paging
|
||||
ref="pageRef"
|
||||
height="100%"
|
||||
:fixed="false"
|
||||
v-model="pageHook.list"
|
||||
:default-page-size="10"
|
||||
safe-area-inset-bottom
|
||||
:loading-more-enabled="true"
|
||||
:show-scrollbar="false"
|
||||
@query="query"
|
||||
:auto-clean-list-when-reload="false"
|
||||
:auto-scroll-to-top-when-reload="false"
|
||||
@scroll="pageHook.scroll"
|
||||
>
|
||||
<z-paging ref="pageRef" height="100%" :fixed="false" v-model="pageHook.list" :default-page-size="10"
|
||||
safe-area-inset-bottom :loading-more-enabled="true" :show-scrollbar="false" @query="query"
|
||||
:auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" @scroll="pageHook.scroll">
|
||||
<template #top>
|
||||
<view class="flex justify-between items-center my-1">
|
||||
<tm-text font-size="40" color="#0779FD" class="font-bold">共富商城</tm-text>
|
||||
<tm-text font-size="30" color="#0779FD">优质商户,品质商品,欢迎联系购买</tm-text>
|
||||
</view>
|
||||
<view class="w-full flex items-center mb-2">
|
||||
<tm-input
|
||||
class="flex-1"
|
||||
v-model="state.params.keyword"
|
||||
type="text"
|
||||
height="72"
|
||||
minHeight="72"
|
||||
fontSize="28"
|
||||
:showClear="true"
|
||||
:focus="false"
|
||||
placeholder="请输入超市名称"
|
||||
style="border: 4rpx solid #0779fd; border-radius: 14rpx"
|
||||
:focus-highlight="false"
|
||||
color="#ECF4F9"
|
||||
>
|
||||
<tm-input class="flex-1" v-model="state.params.keyword" type="text" height="72" minHeight="72"
|
||||
fontSize="28" :showClear="true" :focus="false" placeholder="请输入超市名称"
|
||||
style="border: 4rpx solid #0779fd; border-radius: 14rpx" :focus-highlight="false"
|
||||
color="#ECF4F9">
|
||||
<template v-slot:rightIcon>
|
||||
<tm-button class="mr-1 px-3 py-26rpx text-30rpx!" size="xs" @click="search">搜 索</tm-button>
|
||||
</template>
|
||||
@@ -57,7 +36,8 @@
|
||||
|
||||
<view class="card p-20rpx mb-20rpx" v-for="(v, i) in pageHook.list" :key="i" @tap="toDetail(v)">
|
||||
<view class="flex">
|
||||
<image class="w-160rpx h-160rpx bg-#eeeeee rounded-12rpx" :src="filePath(v.images)" mode="aspectFill" />
|
||||
<image class="w-160rpx h-160rpx bg-#eeeeee rounded-12rpx" :src="filePath(v.images)"
|
||||
mode="aspectFill" />
|
||||
<view class="ml-20rpx flex-1 overflow-hidden">
|
||||
<view class="sub-text-32 truncate">{{ v.name }}</view>
|
||||
<view class="second-text-26 flex justify-between my-6rpx">
|
||||
@@ -75,13 +55,17 @@
|
||||
</view>
|
||||
<scroll-view scroll-x>
|
||||
<view class="flex mt-2">
|
||||
<view class="w-180rpx flex-col items-center mr-20rpx" v-for="(pV, pI) in v.featuredProducts" :key="pI">
|
||||
<image class="size-180rpx rounded-12rpx bg-#eeeeee" :src="filePath(pV.coverImage)" mode="aspectFill" />
|
||||
<view class="w-180rpx flex-col items-center mr-20rpx" v-for="(pV, pI) in v.featuredProducts"
|
||||
:key="pI">
|
||||
<image class="size-180rpx rounded-12rpx bg-#eeeeee" :src="filePath(pV.coverImage)"
|
||||
mode="aspectFill" />
|
||||
<view class="w-full mt-4rpx sub-text-24 truncate">{{ pV.title }}</view>
|
||||
<view class="w-full flex justify-between">
|
||||
<text class="text-26 color-red!">
|
||||
<text class="text-22rpx">¥</text>
|
||||
<text>{{ pV.priceType == "1" ? displayPrice(pV.minPrice, "") : displayPrice(pV.spuPrice, "") }}</text>
|
||||
<text>{{ pV.priceType == "1" ? displayPrice(pV.minPrice, "") :
|
||||
displayPrice(pV.spuPrice, "")
|
||||
}}</text>
|
||||
</text>
|
||||
<!-- <text class="second-text-24 line-through">
|
||||
<template v-if="pV.priceType == '2'">
|
||||
@@ -148,10 +132,10 @@ const search = () => {
|
||||
const doPhone = async (item: string) => {
|
||||
if (isEmpty(item)) return uni.showToast({ title: "该商户没有预留电话", icon: "none" })
|
||||
if ((await getAppInfo()) == APPENV.ZZD) {
|
||||
;(window as any).dd
|
||||
; (window as any).dd
|
||||
.callPhone({ phoneNum: item.trim() })
|
||||
.then((res) => {})
|
||||
.catch((err) => {})
|
||||
.then((res) => { })
|
||||
.catch((err) => { })
|
||||
return
|
||||
}
|
||||
if ((await getAppInfo()) == APPENV.SH) {
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive } from "vue"
|
||||
import { onLoad, onShow } from "@dcloudio/uni-app"
|
||||
import { merchantApi } from "@@/api"
|
||||
import { hooks, router } from "@@/index"
|
||||
import { filePath } from "@@/utils/file"
|
||||
import zTabs from "@@/components/other/z-tabs/z-tabs.vue"
|
||||
|
||||
const pageRef = ref<any>(null)
|
||||
const state = reactive<any>({
|
||||
pa: {
|
||||
pagesize: 10,
|
||||
// 0-其他食堂
|
||||
// 1-自营食堂
|
||||
// 2-合作商家
|
||||
// 3-自营商家
|
||||
// 4-第三方应用
|
||||
// 5-共富商城(助农)
|
||||
type: "5",
|
||||
name: "",
|
||||
catgoryId: null,
|
||||
},
|
||||
tabs: [{ id: null, name: "全部", disabled: false }],
|
||||
})
|
||||
const pageHook = hooks.usePage(pageRef, merchantApi.page, null, "data.records")
|
||||
|
||||
const query = (page: number, pagesize: number) => {
|
||||
pageHook.startPage(page, pagesize, false, state.pa)
|
||||
}
|
||||
|
||||
onLoad(async () => {
|
||||
const app = getApp()
|
||||
app._initTabbar()
|
||||
|
||||
try {
|
||||
const res: any = await merchantApi.selectCatgory({ current: 1, size: 99999 })
|
||||
if (res.code == 0) {
|
||||
state.tabs = state.tabs.concat(res.data)
|
||||
} else {
|
||||
state.tabs = [{ id: null, name: "全部", disabled: false }]
|
||||
}
|
||||
} catch (error: any) {
|
||||
uni.showToast({ title: error, icon: "none" })
|
||||
}
|
||||
})
|
||||
onShow(() => {
|
||||
pageRef.value && pageRef.value.reload(false)
|
||||
})
|
||||
|
||||
const search = () => {
|
||||
pageRef.value && pageRef.value.reload(true)
|
||||
}
|
||||
|
||||
const doTab = (e: any) => {
|
||||
const target = state.tabs[e]
|
||||
state.pa.catgoryId = target.id
|
||||
pageRef.value.reload(true)
|
||||
}
|
||||
|
||||
const toDetail = async (v: any) => {
|
||||
const isLogin = await hooks.useCheckLogin()
|
||||
if (isLogin) {
|
||||
if (!v.supType) {
|
||||
router.jump("/pages/merchant/detail", { id: v.id })
|
||||
return
|
||||
}
|
||||
if (v.supType && v.supType == "10") return router.jump("/pages/merchant/brandDetail", { parentId: v.id })
|
||||
if (v.supType && v.supType == "20") return router.jump("/pages/merchant/detail", { id: v.id })
|
||||
uni.showToast({ title: "合作商家类型未知", icon: "none" })
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<crud-layout bg="/static/page/blue-bg.png">
|
||||
<z-paging ref="pageRef" height="100%" :fixed="false" v-model="pageHook.list" :default-page-size="10"
|
||||
safe-area-inset-bottom :loading-more-enabled="true" :show-scrollbar="false" @query="query"
|
||||
:auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" @scroll="pageHook.scroll">
|
||||
<template #top>
|
||||
<view class="h-30rpx" />
|
||||
<view class="flex w-full">
|
||||
<tm-input class="flex-1" v-model="state.pa.name" type="text" height="72" minHeight="72"
|
||||
fontSize="28" :showClear="true" :focus="false" placeholder="请输入商家名称"
|
||||
style="border: 4rpx solid #0779fd; border-radius: 14rpx" :focus-highlight="false"
|
||||
color="#ECF4F9">
|
||||
<template v-slot:rightIcon>
|
||||
<tm-button class="mr-1 px-3 py-26rpx text-30rpx!" size="xs" @click="search">搜 索</tm-button>
|
||||
</template>
|
||||
</tm-input>
|
||||
</view>
|
||||
<view class="bg-white rounded-16rpx px-20rpx my-20rpx">
|
||||
<z-tabs :list="state.tabs" @change="doTab" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<view class="flex-row card p-20rpx m-b-20rpx" v-for="(v, i) in pageHook.list" :key="i" @tap="toDetail(v)">
|
||||
<image class="w-180rpx h-180rpx rounded-12rpx my-auto" :src="filePath(v.logoPic)" mode="aspectFill" />
|
||||
<view class="flex-1 flex-col m-l-20rpx">
|
||||
<view class="sub-text-34">
|
||||
<text class="mr-2">{{ v.name }}</text>
|
||||
<!-- <tm-tag v-if="v.supType == '10' && Number(v.mchCount) > 0" size="xs" skin="thin">共{{ v.mchCount }}家</tm-tag> -->
|
||||
</view>
|
||||
<view class="m-t-10rpx">
|
||||
<view class="flex justify-between items-center">
|
||||
<view class="flex-1">
|
||||
<view v-if="v.phone" class="flex items-center">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/phone.svg" />
|
||||
<view class="second-text-28 ml-1">{{ v.phone }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<tm-tag class="max-w-160rpx" size="xs">{{ v.deptName.length > 5 ? v.deptName.substring(0, 5)
|
||||
+ "..." :
|
||||
v.deptName }}</tm-tag>
|
||||
</view>
|
||||
<view class="second-text-24">
|
||||
<view v-if="v.jobTime != ',,'" class="second-text-28">营业时间:</view>
|
||||
<view>{{ v.jobTime?.split(",")[0] ? "早:" + v.jobTime?.split(",")[0] : "" }}</view>
|
||||
<view>{{ v.jobTime?.split(",")[1] ? "中:" + v.jobTime?.split(",")[1] : "" }}</view>
|
||||
<view>{{ v.jobTime?.split(",")[2] ? "晚:" + v.jobTime?.split(",")[2] : "" }}</view>
|
||||
</view>
|
||||
<view v-if="v.addressDes" class="second-text-28">
|
||||
<image class="w-24rpx h-24rpx" src="@/static/page/address.svg" />
|
||||
<text class="ml-1">地址:</text>
|
||||
<text class="m-l-10rpx">{{ v.addressDes }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</z-paging>
|
||||
</crud-layout>
|
||||
</template>
|
||||
@@ -36,20 +36,9 @@ const toDetail = async (v: any) => {
|
||||
|
||||
<template>
|
||||
<crud-layout bg="/static/page/blue-bg.png">
|
||||
<z-paging
|
||||
ref="pageRef"
|
||||
height="100%"
|
||||
:fixed="false"
|
||||
v-model="pageHook.list"
|
||||
:default-page-size="10"
|
||||
safe-area-inset-bottom
|
||||
:loading-more-enabled="true"
|
||||
:show-scrollbar="false"
|
||||
@query="query"
|
||||
:auto-clean-list-when-reload="false"
|
||||
:auto-scroll-to-top-when-reload="false"
|
||||
@scroll="pageHook.scroll"
|
||||
>
|
||||
<z-paging ref="pageRef" height="100%" :fixed="false" v-model="pageHook.list" :default-page-size="10"
|
||||
safe-area-inset-bottom :loading-more-enabled="true" :show-scrollbar="false" @query="query"
|
||||
:auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" @scroll="pageHook.scroll">
|
||||
<view class="h-20rpx" />
|
||||
<view class="flex-row card p-20rpx m-b-20rpx" v-for="(v, i) in pageHook.list" :key="i" @tap="toDetail(v)">
|
||||
<image class="w-180rpx h-180rpx rounded-12rpx" :src="filePath(v.logoPic)" mode="aspectFill" />
|
||||
|
||||
@@ -47,18 +47,8 @@
|
||||
<tm-button @click="show = true">继续跳转</tm-button>
|
||||
</view>
|
||||
|
||||
<tm-modal
|
||||
v-model:show="show"
|
||||
:overlayClick="false"
|
||||
title="注意"
|
||||
position="bottom"
|
||||
height="auto"
|
||||
:showCancel="true"
|
||||
cancelText="取消"
|
||||
confirmText="继续访问"
|
||||
@confirm="thirdAppJump()"
|
||||
@cancel="show = false"
|
||||
>
|
||||
<tm-modal v-model:show="show" :overlayClick="false" title="注意" position="bottom" height="auto"
|
||||
:showCancel="true" cancelText="取消" confirmText="继续访问" @confirm="thirdAppJump()" @cancel="show = false">
|
||||
<tm-text font-size="30" color="#999999">
|
||||
您即将离开智慧后勤应用并跳转到第三方应用,请注意个人隐私和账号财产安全。您通过第三方服务页面主动提供给第三方商户的个人信息,相关信息保护责任由第三方商户承担。
|
||||
</tm-text>
|
||||
|
||||
@@ -154,7 +154,7 @@ const doTransferMoney = (v: any) => {
|
||||
<view class="second-text-50">
|
||||
<text v-if="v.cardNumber" class="iconfont icon-fuzhi"
|
||||
@tap.stop="hooks.useCopy(v.cardNumber)" />
|
||||
<text v-if="v.walletTypeUniqueCode != '2'" class="m-l-20rpx iconfont icon-erweima"
|
||||
<text v-if="v.walletTypeUniqueCode == '1'" class="m-l-20rpx iconfont icon-erweima"
|
||||
@tap.stop="doPreviewQrCode(v)" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -1,18 +1,10 @@
|
||||
<template>
|
||||
<view class="tabbar">
|
||||
<view
|
||||
class="tabbar-item"
|
||||
:class="{ active: activeTab === 'home' }"
|
||||
@tap="goHome"
|
||||
>
|
||||
<view class="tabbar-item" :class="{ active: activeTab === 'home' }" @tap="goHome">
|
||||
<image src="/static/icons/home.png" class="tabbar-icon" />
|
||||
<text>首页</text>
|
||||
</view>
|
||||
<view
|
||||
class="tabbar-item"
|
||||
:class="{ active: activeTab === 'mine' }"
|
||||
@tap="goMine"
|
||||
>
|
||||
<view class="tabbar-item" :class="{ active: activeTab === 'mine' }" @tap="goMine">
|
||||
<image src="/static/icons/mine.png" class="tabbar-icon" />
|
||||
<text>我的</text>
|
||||
</view>
|
||||
@@ -45,6 +37,7 @@ function goMine() {
|
||||
border-top: 1px solid #eee;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.tabbar-item {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
@@ -54,11 +47,13 @@ function goMine() {
|
||||
color: #888;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.tabbar-icon {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
margin-bottom: 4rpx;
|
||||
}
|
||||
|
||||
.tabbar-item.active {
|
||||
color: #1777FF;
|
||||
}
|
||||
|
||||
@@ -1,27 +1,17 @@
|
||||
<template>
|
||||
<tm-modal
|
||||
:show="show"
|
||||
:overlayClick="false"
|
||||
position="bottom"
|
||||
:showCancel="showCancel"
|
||||
title="您的设备需要验证"
|
||||
height="650rpx"
|
||||
zIndex="999"
|
||||
cancelText="取消"
|
||||
confirmText="确认"
|
||||
@confirm=""
|
||||
@cancel=""
|
||||
@close="close"
|
||||
>
|
||||
<tm-modal :show="show" :overlayClick="false" position="bottom" :showCancel="showCancel" title="您的设备需要验证"
|
||||
height="650rpx" zIndex="999" cancelText="取消" confirmText="确认" @confirm="" @cancel="" @close="close">
|
||||
<tm-form ref="formRef" v-model="form" :rules="formRules" direction="vertical">
|
||||
<tm-form-item name="mobilePhone" label="手机号">
|
||||
<tm-input v-model.trim="form.mobilePhone" :maxlength="11" placeholder="请输入手机号" />
|
||||
</tm-form-item>
|
||||
<view class="h-10rpx" />
|
||||
<tm-form-item name="code" label="验证码">
|
||||
<tm-input v-model.trim="form.code" :maxlength="6" placeholder="请输入验证码" :disabled="form.mobilePhone.length != 11">
|
||||
<tm-input v-model.trim="form.code" :maxlength="6" placeholder="请输入验证码"
|
||||
:disabled="form.mobilePhone.length != 11">
|
||||
<template v-slot:right>
|
||||
<tm-button class="ml-1 px-2" color="primary" size="m" @click="getCode" :disabled="state.codeBtnDisabled">
|
||||
<tm-button class="ml-1 px-2" color="primary" size="m" @click="getCode"
|
||||
:disabled="state.codeBtnDisabled">
|
||||
<text>获取验证码</text><text v-if="state.isTiming">{{ state.countDown }} s</text>
|
||||
</tm-button>
|
||||
</template>
|
||||
|
||||
@@ -75,7 +75,7 @@ const actUserReceiveEnum = {
|
||||
"1": "活动不在进行中",
|
||||
"2": "活动不存在",
|
||||
"3": "活动未开启",
|
||||
"4": "用户参加活动已达上限",
|
||||
"4": "已领取,核销码在我的礼券中",
|
||||
"5": "用户不能参加此活动",
|
||||
"6": "其他错误",
|
||||
"99": "用户可以参加活动",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
@font-face {
|
||||
font-family: "iconfont";
|
||||
/* Project id 4740692 */
|
||||
src: url('//at.alicdn.com/t/c/font_4740692_dlzhw41ofij.woff2?t=1731448556379') format('woff2'),
|
||||
url('//at.alicdn.com/t/c/font_4740692_dlzhw41ofij.woff?t=1731448556379') format('woff'),
|
||||
url('//at.alicdn.com/t/c/font_4740692_dlzhw41ofij.ttf?t=1731448556379') format('truetype');
|
||||
src: url('//at.alicdn.com/t/c/font_4740692_uwg9mtj0d0p.woff2?t=1770172172940') format('woff2'),
|
||||
url('//at.alicdn.com/t/c/font_4740692_uwg9mtj0d0p.woff?t=1770172172940') format('woff'),
|
||||
url('//at.alicdn.com/t/c/font_4740692_uwg9mtj0d0p.ttf?t=1770172172940') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
@@ -14,6 +14,34 @@
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-yiguoqi:before {
|
||||
content: "\e642";
|
||||
}
|
||||
|
||||
.icon-weishiyong:before {
|
||||
content: "\e60c";
|
||||
}
|
||||
|
||||
.icon-weishiyong1:before {
|
||||
content: "\e623";
|
||||
}
|
||||
|
||||
.icon-icon-phone:before {
|
||||
content: "\e657";
|
||||
}
|
||||
|
||||
.icon-saoyisao:before {
|
||||
content: "\e658";
|
||||
}
|
||||
|
||||
.icon-wode:before {
|
||||
content: "\f0b4";
|
||||
}
|
||||
|
||||
.icon-a-kefu3x:before {
|
||||
content: "\e62e";
|
||||
}
|
||||
|
||||
.icon-fuzhi:before {
|
||||
content: "\e8b0";
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 9.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
Reference in new issue
Block a user