Browse Source

对接接口

master
岳鹏龙 10 months ago
parent
commit
4287244f76
  1. 78
      src/api/shop.ts
  2. 44
      src/api/votingElection.ts
  3. 23
      src/components/zh-scroll/zh-scroll.vue
  4. 147
      src/mock/good.ts
  5. 45
      src/pages/index/index.vue
  6. 111
      src/pages/index/shoppage/financialAssistance.vue
  7. 20
      src/pages/index/shoppage/jrbDetail.vue
  8. 32
      src/pages/index/shoppage/mediaDetail.vue
  9. 115
      src/pages/index/shoppage/mediaHelp.vue
  10. 151
      src/pages/index/shoppage/mtbmakeMessage.vue
  11. 32
      src/pages/index/shoppage/shopHelp.vue
  12. 50
      src/pages/index/shoppage/shophelpDetail.vue
  13. 1
      src/pages/memberCenter/index.vue
  14. 12
      src/pages/memberCenter/inpart.vue
  15. 2
      src/pages/mine/completeInformation.vue
  16. 21
      src/pages/mine/porsonalinfo.vue
  17. BIN
      src/static/img/Frame.png
  18. BIN
      src/static/img/image.png
  19. BIN
      src/static/img/sl4.png
  20. BIN
      src/static/img/sl5.png
  21. BIN
      src/static/logo.png

78
src/api/shop.ts

@ -0,0 +1,78 @@
import { request } from '@/utils/http'
//开店帮分类
export function storeCategoryAll() {
return request.http({
url: '/api/huiqitong/store_category_all',
method: 'GET'
})
}
//开店帮内容
export function storeList(data:any) {
return request.http({
url: '/api/huiqitong/store_list',
method: 'GET',
data
})
}
//开店帮内容详情
export function storeInfo(id:string) {
return request.http({
url: '/api/huiqitong/store_info/'+id,
method: 'GET',
})
}
//金融帮信息列表
export function financeList(data:any) {
return request.http({
url: '/api/huiqitong/finance_list',
method: 'GET',
data
})
}
//金融帮信息详情
export function financeInfo(id:string) {
return request.http({
url: '/api/huiqitong/finance_info/'+id,
method: 'GET'
})
}
//媒体帮列表
export function mediumList(data:any) {
return request.http({
url: '/api/huiqitong/medium_list',
method: 'GET',
data
})
}
//媒体帮内容详情
export function mediumInfo(id:string) {
return request.http({
url: '/api/huiqitong/medium_info/'+id,
method: 'GET'
})
}
//发布需求
export function mediumAdd(data:any) {
return request.http({
url: '/api/huiqitong/medium/add',
method: 'POST',
data
})
}
//我发布的媒体需求
export function myMedium() {
return request.http({
url: '/api/huiqitong/my_medium',
method: 'POST'
})
}

44
src/api/votingElection.ts

@ -1,44 +0,0 @@
import { request } from '@/utils/http'
// 获取投票选举(正在进行)
export function getVoteprogress(id: string) {
return request.http({
url: '/api/vote_progress?meetId='+ id,
method: 'GET'
})
}
//用户投票
export function voteMember(data: any) {
return request.http({
url: '/api/vote_member',
data
})
}
// 获取我的选举
export function getMyvote(data: any) {
return request.http({
url: '/api/my_vote',
method: 'GET',
data
})
}
// 手机号获取用户信息
export function getMember_mobile(data: any) {
return request.http({
url: '/api/member_mobile',
method: 'GET',
data
})
}
// 判断用户是否签到
export function getIs_sign(data: any) {
return request.http({
url: '/api/is_sign',
method: 'GET',
data
})
}

23
src/components/zh-scroll/zh-scroll.vue

@ -18,16 +18,19 @@
<!-- category begin -->
<view class="category" v-for="(item, index) in goods" :key="index" :id="`cate-${item.id}`">
<view class="title">
<image :src="item.icon" class="icon"></image>
<image :src="baseurl+item.icon_path" class="icon"></image>
<text class="fristtitle">{{ item.name }}</text>
</view>
<view class="items">
<!-- 商品 begin -->
<view class="good" v-for="(good, key) in item.goods_list" :key="key" @click="goxdbdetail(good.id)">
<view class="good" v-for="(good, key) in item.children" :key="key" @click="goxdbdetail(good.id)">
<slot name="custom" :data="good">
<!-- <image :src="good.images" class="image"></image> -->
<text class="name">{{ good.name }}</text>
<image class="icon" src="@/static/img/icon2.png" mode=""></image>
<view class="title">
<image :src="baseurl+good.icon_path" class="icon"></image>
<text class="name">{{ good.name }}</text>
</view>
<image class="lefticon" src="@/static/img/icon2.png" mode=""></image>
<!-- <view class="right"> -->
<!-- <text class="tips">{{ good.content }}</text> -->
<!-- </view> -->
@ -46,6 +49,7 @@
<script setup lang="ts">
import { ref, nextTick, getCurrentInstance, watch } from "vue";
import { ICateItem } from "./interface";
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL+'/')
const props = defineProps<{
scrollList: ICateItem[],
searchVal: string,
@ -90,7 +94,7 @@
function fuzzyMatchGoods(goodsArray, searchTerm) {
const term = searchTerm.trim().toLowerCase();
return goodsArray.filter(goodsItem =>
goodsItem.goods_list.some(child =>
goodsItem.children.some(child =>
(child.name?.toLowerCase() ?? '').includes(term)
)
);
@ -251,7 +255,7 @@
width: 100%;
.title {
padding: 30rpx 0;
padding: 10rpx 0;
display: flex;
align-items: center;
color: #0C092A;
@ -261,6 +265,7 @@
height: 38rpx;
}
.fristtitle {
margin-left: 20rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 530;
@ -283,7 +288,9 @@
align-items: center;
justify-content: space-between;
margin-bottom: 30rpx;
padding-left: 40rpx;
.name {
margin-left: 10rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 300;
@ -294,6 +301,10 @@
color: #606266;
}
.icon {
width: 38rpx;
height: 38rpx;
}
.lefticon {
width: 16rpx;
height: 28rpx;
margin-right: 6rpx;

147
src/mock/good.ts

@ -1,147 +0,0 @@
export default [
{
"id": 6905,
"goods_list": [
{
"id": 65825,
"name": "晨间套餐",
}
],
"name": "早晨的享受",
"icon": '/static/img/cbz.png'
},
{
"id": 6906,
"goods_list": [
{
"id": 65826,
"name": "午后小食",
},
{
"id": 65827,
"name": "中午套餐",
}
],
"name": "午间时光"
},
{
"id": 6907,
"goods_list": [
{
"id": 65828,
"name": "早餐优惠",
},
{
"id": 65829,
"name": "下午茶特惠",
},
{
"id": 65830,
"name": "晚间美食",
}
],
"name": "欢乐时光"
},
{
"id": 6908,
"goods_list": [
{
"id": 65831,
"name": "清晨套餐",
}
],
"name": "幸福早餐"
},
{
"id": 6909,
"goods_list": [
{
"id": 65832,
"name": "午餐精选",
},
{
"id": 65833,
"name": "下午茶时光",
}
],
"name": "愉快午餐"
},
{
"id": 6910,
"goods_list": [
{
"id": 65834,
"name": "美好早餐",
},
{
"id": 65835,
"name": "美味早晨",
},
{
"id": 65836,
"name": "愉快下午",
},
{
"id": 65837,
"name": "健康午餐",
}
],
"name": "欢乐午后"
},
{
"id": 6911,
"goods_list": [
{
"id": 65838,
"name": "健康早餐",
},
{
"id": 65839,
"name": "经典早晨",
}
],
"name": "阳光早餐"
},
{
"id": 6912,
"goods_list": [
{
"id": 65840,
"name": "舒适午后",
},
{
"id": 65841,
"name": "下午茶优惠",
}
],
"name": "午后悠闲"
},
{
"id": 6913,
"goods_list": [
{
"id": 65842,
"name": "下午茶特惠",
}
],
"name": "茶歇时光"
},
{
"id": 6914,
"goods_list": [
{
"id": 65843,
// "content": "购买全麦面包,享水果茶半价",
"name": "活力早餐",
// "images": "https://img-shop.qmimg.cn/s23107/2020/04/19/fda6dd99c83af02353.jpg?imageView2/2/w/400/h/400"
},
{
"id": 65844,
// "content": "购买鸡蛋饼,享橙汁半价",
"name": "早安时光",
// "images": "https://img-shop.qmimg.cn/s23107/2020/04/19/fda6dd99c83af02353.jpg?imageView2/2/w/400/h/400"
}
],
"name": "晨间时光"
}
]

45
src/pages/index/index.vue

@ -46,8 +46,7 @@
<view class="smallshop">
<text class="xdb">小店帮</text>
<view class="bangCart">
<view class="bangone1" @click="kfz">
<!-- <view class="bangone1" @click="gokdb"> -->
<view class="bangone1" @click="gokdb">
<text class="btext">开店帮</text>
<image style="height: 100%;width: 140rpx;" src="@/static/img/kdb.png" mode=""></image>
</view>
@ -55,12 +54,10 @@
<text class="btext">企业帮</text>
<image style="height: 100%;width: 140rpx;" src="@/static/img/qyb.png" mode=""></image>
</view>
<!-- <view class="bangone3" @click="gojrb"> -->
<view class="bangone3" @click="kfz">
<view class="bangone3" @click="gojrb">
<text class="btext">金融帮</text>
<image style="height: 100%;width: 140rpx;" src="@/static/img/jrb.png" mode=""></image>
</view>
<!-- <view class="bangone4" @click="kfz"> -->
<view class="bangone4" @click="gomtb">
<text class="btext">媒体帮</text>
<image style="height: 100%;width: 140rpx;" src="@/static/img/mtb.png" mode=""></image>
@ -100,7 +97,8 @@
<view class="hylist">
<tabsComm :tabsData="filterTabs" @tabChange="handleTabSelect" />
<scroll-view scroll-y="auto" class="hyonne">
<view class="hyCard" v-for="(item,index) in hyList.slice(0,6)" :key="index" @click="kfz">
<view class="hyCard" v-for="(item,index) in hyList.slice(0,6)" :key="index"
@click="gohydetail(item.id)">
<view class="left">
<u-avatar :src="url+ '/' +item.head_pic" size="64"></u-avatar>
<view class="textpart">
@ -254,6 +252,12 @@
})
}
const gohydetail = (id) => {
uni.navigateTo({
url: '/pages/index/shoppage/mediaDetail?id=' + id
})
}
const getbqlist = async () => {
filterTabs.value = []
await memberTagList().then((res) => {
@ -297,9 +301,11 @@
//
await getbqlist()
//
currentTab.value = ''
await getMemberCenter(currentTab.value)
})
const kfz = () => {
uni.showToast({
title: '开发中。。。',
@ -307,31 +313,9 @@
})
}
onLoad(() => {
// wx.getSetting({
// success(res) {
// if (!res.authSetting['scope.userLocation']) {
// wx.authorize({
// scope: 'scope.userLocation',
// success() {
// //
// getLocation();
// },
// fail() {
// //
// wx.openSetting({
// success(res) {
// console.log(res.authSetting)
// }
// })
// }
// })
// } else {
// //
// getLocation();
// }
// }
// })
})
</script>
@ -618,7 +602,6 @@
.biaoq {
padding: 10rpx;
width: 110rpx;
height: 40.5rpx;
border-radius: 0rpx 4rpx 20rpx 0rpx;
margin-left: 16rpx;

111
src/pages/index/shoppage/financialAssistance.vue

@ -2,28 +2,29 @@
<u-navbar title="金融帮" placeholder="true" bgColor="#F1F3F9" :autoBack="true">
</u-navbar>
<view class="container">
<u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容"
<u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容"
placeholderColor="#2a98ff" v-model="keyword" searchIcon="/static/img/search.png" searchIconSize="14"
:showAction="false" height="40" margin="40rpx 24rpx 24rpx 24rpx" bgColor="#FFFFFF"></u-search>
<view class="main">
<view class="ztone" v-for="(item,index) in ztList" :key="index" @click="godetail(item.id)">
<image style="width: 150rpx;height: 150rpx;border-radius: 28rpx;flex: 1;" :src="item.img" mode="">
</image>
<view class="rightpart">
<view class="splace">
{{item.splace}}
</view>
<view class="titlepart">
<text class="title">{{item.title}}</text>
<image style="width: 32rpx;height: 44rpx;" src="@/static/img/Icon.png" mode="aspectFill">
</image>
</view>
<view class="ms">
{{item.ms}}
<scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore">
<view class="ztone" v-for="(item,index) in ztList" :key="index" @click="godetail(item.id)">
<image style="width: 150rpx;height: 150rpx;border-radius: 28rpx;flex: 1;" :src="baseurl+item.index_pic" mode="">
</image>
<view class="rightpart">
<view class="splace">
{{item.bank}}
</view>
<view class="titlepart">
<text class="title">{{item.name}}</text>
<image style="width: 32rpx;height: 44rpx;" src="@/static/img/Icon.png" mode="aspectFill">
</image>
</view>
<view class="ms">
{{item.branch}}
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
<image class="hdzq" src="@/static/img/hdzq.png" mode="" @click="gohdzq"></image>
@ -33,38 +34,37 @@
import {
ref
} from 'vue';
import {
financeList
} from '@/api/shop'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
//
const keyword = ref('');
const page = ref(1)
const pagesize = ref(6)
const search = (val) => {
console.log(val);
const search = async (val) => {
page.value = 1
pagesize.value = 6
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const clickIcon = () => {
console.log(keyword.value);
const clickIcon = async () => {
page.value = 1
pagesize.value = 6
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const ztList = ref([{
id: 0,
img: '/static/img/image.png',
title: '这是一个标题',
time: '2025-04-16',
splace: '内蒙古数心科技',
ms: '描述描述描述描述描述描述'
},
{
id: 1,
img: '/static/img/image.png',
title: '这是一个标题',
time: '2025-04-16',
splace: '内蒙古数心科技',
ms: '描述描述描述描述描述描述'
}
])
const clear = async () => {
page.value = 1
pagesize.value = 6
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const ztList = ref([])
const godetail = (id) => {
uni.navigateTo({
@ -78,8 +78,31 @@
})
}
onMounted(() => {
const getfinanceList = async (name, page, limit) => {
let params = {
'keyword': name,
'page': page,
'limit': limit
}
await financeList(params).then((res) => {
ztList.value = res.data.data
})
}
const onloadmore = async () => {
page.value++
let params = {
'keyword': keyword.value,
'page': page.value,
'limit': pagesize.value
}
await financeList(params).then((res) => {
ztList.value = [...ztList.value, ...res.data.data]
})
}
onShow(async() => {
await getfinanceList('',1,6)
})
</script>
@ -89,15 +112,17 @@
height: calc(100vh - 178rpx);
width: 100%;
overflow-y: hidden;
.hyonne {
max-height: calc(100vh - 350rpx);
overflow-y: auto;
}
.main {
margin-top: 10rpx;
width: 100%;
height: 100%;
padding: 0 24rpx;
box-sizing: border-box;
max-height: 79vh;
overflow-y: auto;
overflow-y: hidden;
.ztone {
display: flex;

20
src/pages/index/shoppage/jrbDetail.vue

@ -5,20 +5,20 @@
<view class="icon"></view>
<text class="title">产品说明</text>
</view>
<image style="width: 100%;height: 286rpx;margin-top: 40rpx;" src="@/static/img/Bitmap.png" mode=""></image>
<text class="message">说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明</text>
<image style="width: 100%;height: 286rpx;margin-top: 40rpx;" :src="baseurl + listdata.index_pic" mode=""></image>
<u-parse :content="listdata.content"></u-parse>
<view class="titlepart">
<view class="icon"></view>
<text class="title">联系方式</text>
</view>
<view class="people">
<text class="text">大聪明 13012345678</text>
<text class="text">{{listdata.listdata}} {{listdata.tel}}</text>
</view>
<view class="titlepart">
<view class="icon"></view>
<text class="title">微信二维码</text>
</view>
<image style="width: 338rpx;height: 338rpx;margin-top: 28rpx;margin-left: 24%;" src="@/static/img/lj1.png" mode=""></image>
<image style="width: 338rpx;height: 338rpx;margin-top: 28rpx;margin-left: 24%;" :src="baseurl+listdata.code_pic" mode=""></image>
</view>
</template>
@ -29,10 +29,18 @@
import {
ref
} from 'vue';
import {
financeInfo
} from '@/api/shop'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const listdata = ref({})
onLoad((param) => {
console.log(param);
onLoad(async(param) => {
await financeInfo(param.id).then((res) => {
listdata.value = res.data
})
})
</script>

32
src/pages/index/shoppage/mediaDetail.vue

@ -6,26 +6,27 @@
<view class="head">
<image class="toux" :src="baseurl + userData.head_pic" mode=""></image>
<text class="name">{{userData.name}}</text>
<text class="type">{{userData.member_tag_title}}</text>
<text class="type">{{userData.member_tag_title || userData.tag_name}}</text>
</view>
<view class="content">
<view class="titlepart">
<view class="icon"></view>
<text class="title">{{userData.introduce?'个人介绍':'助企案例'}}</text>
</view>
<text class="message">{{userData.introduce}}</text>
<text class="message">{{userData.introduce||userData.content}}</text>
<view class="titlepart">
<view class="icon"></view>
<text class="title">联系方式</text>
</view>
<view class="people">
<text class="text">{{userData.moblie}}</text>
<text class="text">{{userData.moblie||userData.tel}}</text>
</view>
<view class="titlepart">
<view class="icon"></view>
<text class="title">微信二维码</text>
</view>
<image style="width: 338rpx;height: 338rpx;margin-top: 28rpx;margin-left: 24%;" :src="baseurl + userData.wx_code" mode=""></image>
<image style="width: 338rpx;height: 338rpx;margin-top: 28rpx;margin-left: 24%;" v-if="userData.wx_code" :src="baseurl + userData.wx_code" mode=""></image>
<image style="width: 338rpx;height: 338rpx;margin-top: 28rpx;margin-left: 24%;" v-if="userData.code_pic" :src="baseurl + userData.code_pic" mode=""></image>
</view>
</view>
</view>
@ -39,18 +40,29 @@
ref
} from 'vue';
import { memberCenterInfo } from '@/api/memberCenter'
import {
mediumInfo
} from '@/api/shop'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const userData = ref({})
onLoad(async(param) => {
await memberCenterInfo(param.id).then((res)=> {
console.log(res);
if(res.code === 1) {
userData.value = res.data
}
})
if(param.type === 'mt') {
await mediumInfo(param.id).then((res)=> {
if(res.code === 1) {
userData.value = res.data
}
})
} else {
await memberCenterInfo(param.id).then((res)=> {
console.log(res);
if(res.code === 1) {
userData.value = res.data
}
})
}
})
</script>

115
src/pages/index/shoppage/mediaHelp.vue

@ -2,33 +2,34 @@
<view class="container">
<u-navbar title="媒体帮" placeholder="true" bgColor="#F1F3F9" :autoBack="true">
</u-navbar>
<u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容"
<u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容"
placeholderColor="#a4c7ff" v-model="keyword" searchIcon="/static/img/search.png" searchIconSize="14"
:showAction="false" height="40" margin="40rpx 24rpx 24rpx 24rpx"></u-search>
<view class="mtlist">
<view class="mtone" v-for="(item,index) in mtList" :key="index" @click="gomtbdetail(item.name)">
<scroll-view scroll-y="auto" class="mtlist" @scrolltolower="onloadmore">
<view class="mtone" v-for="(item,index) in mtList" :key="index" @click="gomtbdetail(item.id)">
<view class="headpart">
<u-avatar :src="item.img" size="44"></u-avatar>
<u-avatar :src="baseurl+item.head_pic" size="44"></u-avatar>
<view class="right">
<text class="name">{{item.name}}</text>
<image style="width: 110rpx;height: 40rpx;margin-top: 8rpx;" src="@/static/img/mtype.png"
mode=""></image>
<view class="tab">
{{item.tag_name}}
</view>
</view>
</view>
<image style="width: 100%;height: 400rpx;margin-top: 30rpx;" src="@/static/img/Bitmap.png" mode="">
<image style="width: 100%;height: 400rpx;margin-top: 30rpx;" :src="baseurl+item.publicize_pic" mode="">
</image>
<view class="bottompart">
<view class="part">
<image style="width: 22rpx;height: 24rpx;" src="@/static/img/dh.png" mode=""></image>
<text class="text">{{item.number}}</text>
<text class="text">{{item.tel}}</text>
</view>
<view class="part">
<image style="width: 22rpx;height: 24rpx;" src="@/static/img/yx.png" mode=""></image>
<text class="text">{{item.emil}}</text>
<text class="text">{{item.email}}</text>
</view>
</view>
</view>
</view>
</scroll-view>
<view class="fbxxbutton">
<view class="button" @click="gofbxx">
发布信息
@ -42,19 +43,36 @@
import {
ref
} from 'vue';
import {
mediumList
} from '@/api/shop'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
//
const keyword = ref('');
const page = ref(1)
const pagesize = ref(2)
const search = (val) => {
console.log(val);
const search = async (val) => {
page.value = 1
pagesize.value = 2
await getmediumList(keyword.value, page.value, pagesize.value)
}
const clickIcon = async () => {
page.value = 1
pagesize.value = 2
await getmediumList(keyword.value, page.value, pagesize.value)
}
const clickIcon = () => {
console.log(keyword.value);
const clear = async () => {
page.value = 1
pagesize.value = 2
await getmediumList(keyword.value, page.value, pagesize.value)
}
const gohdzq = () => {
@ -63,35 +81,11 @@
})
}
const mtList = ref([{
img: '/static/img/Bitmap.png',
name: '多余和毛毛姐',
number: '+86 13012345678',
emil: 'sxkjqq.com'
},
{
img: '/static/img/Bitmap.png',
name: '多余和毛毛姐',
number: '+86 13012345678',
emil: 'sxkjqq.com'
},
{
img: '/static/img/Bitmap.png',
name: '多余和毛毛姐',
number: '+86 13012345678',
emil: 'sxkjqq.com'
},
{
img: '/static/img/Bitmap.png',
name: '多余和毛毛姐',
number: '+86 13012345678',
emil: 'sxkjqq.com'
}
])
const mtList = ref([])
const gomtbdetail = (id) => {
uni.navigateTo({
url: '/pages/index/shoppage/mediaDetail?id='+id
url: '/pages/index/shoppage/mediaDetail?id='+id +'&type='+'mt'
})
}
@ -101,8 +95,31 @@
})
}
onMounted(() => {
const getmediumList = async (name, page, limit) => {
let params = {
'name': name,
'page': page,
'limit': limit
}
await mediumList(params).then((res) => {
mtList.value = res.data.data
})
}
const onloadmore = async () => {
page.value++
let params = {
'name': keyword.value,
'page': page.value,
'limit': pagesize.value
}
await mediumList(params).then((res) => {
mtList.value = [...mtList.value, ...res.data.data]
})
}
onShow(async() => {
await getmediumList('',1,2)
})
</script>
@ -137,7 +154,7 @@
.right {
margin-left: 16rpx;
display: grid;
justify-items: baseline;
.name {
font-family: Source Han Sans;
font-size: 32rpx;
@ -149,6 +166,20 @@
letter-spacing: normal;
color: #0C092A;
}
.tab {
margin-top: 8rpx;
padding: 6rpx 20rpx;
border-radius: 0rpx 4rpx 20rpx 0rpx;
background: linear-gradient(70deg, #312984 -45%, #867BF5 99%);
font-family: YouSheBiaoTiHei;
font-size: 24rpx;
font-weight: normal;
display: flex;
align-items: center;
justify-content: center;
color: #FFFFFF;
text-shadow: 0rpx 4rpx 4rpx rgba(0, 0, 0, 0.2);
}
}
}

151
src/pages/index/shoppage/mtbmakeMessage.vue

@ -3,33 +3,55 @@
<view class="container">
<view class="formlist">
<u-form :model="form" ref="uFormRef" labelPosition="top" :rules="rules">
<u-form-item label="头像" prop="head_pic">
<u-upload class="uploadbox" @afterRead="txafterRead" :maxCount="1" :imageMode="'heightFix'"
:width="auto" :height="144">
<view class="yyzz" v-if="form.head_pic === ''">
<image style="width: 40rpx;height: 40rpx;" src="@/static/img/yyzz.png" mode=""></image>
上传头像
</view>
<image v-else style="width: 100%;height: 288rpx;margin-top: 12rpx;"
:src="baseurl+ '/' + form.head_pic" mode="scaleToFill"></image>
</u-upload>
</u-form-item>
<u-form-item label="姓名" prop="name">
<u-input v-model="form.name" placeholder="请输入真实姓名" placeholderStyle="color: #D3D3D3;" />
</u-form-item>
<u-form-item label="标签" prop="type">
<u-input v-model="form.type" placeholder="请选择" placeholderStyle="color: #D3D3D3;"
suffixIcon="arrow-down" @focus="show=true" />
<u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="show=false"></u-picker>
<u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="show=false" keyName="name"></u-picker>
</u-form-item>
<u-form-item label="联系方式" prop="tel">
<u-input v-model="form.tel" placeholder="请输入联系方式" placeholderStyle="color: #D3D3D3;" />
</u-form-item>
<u-form-item label="联系方式" prop="number">
<u-input v-model="form.number" placeholder="请输入联系方式" placeholderStyle="color: #D3D3D3;" />
<u-form-item label="微信二维码" prop="code_pic">
<u-upload class="uploadbox" @afterRead="codeafterRead" :maxCount="1" :imageMode="'heightFix'"
:width="auto" :height="144">
<view class="yyzz" v-if="form.code_pic === ''">
<image style="width: 40rpx;height: 40rpx;" src="@/static/img/yyzz.png" mode=""></image>
上传微信二维码
</view>
<image v-else style="width: 100%;height: 288rpx;margin-top: 12rpx;"
:src="baseurl+ '/' + form.code_pic" mode="scaleToFill"></image>
</u-upload>
</u-form-item>
<u-form-item label="邮箱" prop="emil">
<u-input v-model="form.emil" placeholder="请输入邮箱地址" placeholderStyle="color: #D3D3D3;" />
<u-form-item label="邮箱" prop="email">
<u-input v-model="form.email" placeholder="请输入邮箱地址" placeholderStyle="color: #D3D3D3;" />
</u-form-item>
<u-form-item label="宣传封面" prop="img">
<u-form-item label="宣传封面" prop="publicize_pic">
<u-upload class="uploadbox" @afterRead="afterRead" :maxCount="1" :imageMode="'heightFix'"
:width="auto" :height="144">
<view class="yyzz" v-if="form.img === ''">
<view class="yyzz" v-if="form.publicize_pic === ''">
<image style="width: 40rpx;height: 40rpx;" src="@/static/img/yyzz.png" mode=""></image>
上传营业执照
上传宣传封面
</view>
<image v-else style="width: 100%;height: 288rpx;margin-top: 12rpx;"
:src="baseurl+ '/' + form.img" mode="scaleToFill"></image>
:src="baseurl+ '/' + form.publicize_pic" mode="scaleToFill"></image>
</u-upload>
</u-form-item>
<u-form-item label="助企案例" prop="case">
<u-input v-model="form.case" placeholder="请输入真实案例" placeholderStyle="color: #D3D3D3;" />
<u-form-item label="助企案例" prop="content">
<u-input v-model="form.content" placeholder="请输入真实案例" placeholderStyle="color: #D3D3D3;" />
</u-form-item>
</u-form>
</view>
@ -45,6 +67,9 @@
import {
ref
} from 'vue';
import {
mediumAdd
} from '@/api/shop'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL)
@ -52,16 +77,37 @@
const form = ref({
name: '',
type: '',
number: '',
emil: '',
img: '',
case: ''
tag: '',
tel: '',
email: '',
publicize_pic: '',
content: '',
code_pic: '',
head_pic: '',
});
const show = ref(false);
const columns = reactive([
['中国', '美国', '日本']
const columns = reactive([[{
'id': 1,
'name': '自媒体'
},
{
'id': 2,
'name': '达人'
},
{
'id': 3,
'name': '网红'
},
{
'id': 4,
'name': '孵化机构'
},
{
'id': 5,
'name': '陪跑机构'
}]
]);
//
@ -76,22 +122,32 @@
message: '请输入标签',
trigger: ['blur', 'change'],
}, ],
number: [{
tel: [{
required: true,
message: '请输入联系方式',
trigger: ['blur', 'change'],
}, ],
emil: [{
email: [{
required: true,
message: '请输入邮箱地址',
trigger: ['blur', 'change'],
}, ],
img: [{
publicize_pic: [{
required: true,
message: '请上传宣传封面',
trigger: ['blur', 'change'],
}, ],
case: [{
code_pic: [{
required: true,
message: '请上传微信二维码',
trigger: ['blur', 'change'],
}, ],
head_pic: [{
required: true,
message: '请上传头像',
trigger: ['blur', 'change'],
}, ],
content: [{
required: true,
message: '请输入真实案例',
trigger: ['blur', 'change'],
@ -110,6 +166,47 @@
success: async (val) => {
if (JSON.parse(val.data).data.url) {
console.log(JSON.parse(val.data).data.url);
form.value.publicize_pic = JSON.parse(val.data).data.url
}
},
fail: (res) => {
console.log('失败', res);
}
})
}
const txafterRead = async (e) => {
uni.uploadFile({
url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image',
filePath: e.file.url,
name: 'file',
header: {
'token': uni.getStorageSync('access_token')
},
success: async (val) => {
if (JSON.parse(val.data).data.url) {
console.log(JSON.parse(val.data).data.url);
form.value.head_pic = JSON.parse(val.data).data.url
}
},
fail: (res) => {
console.log('失败', res);
}
})
}
const codeafterRead = async (e) => {
uni.uploadFile({
url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image',
filePath: e.file.url,
name: 'file',
header: {
'token': uni.getStorageSync('access_token')
},
success: async (val) => {
if (JSON.parse(val.data).data.url) {
console.log(JSON.parse(val.data).data.url);
form.value.code_pic = JSON.parse(val.data).data.url
}
},
fail: (res) => {
@ -123,7 +220,8 @@
const confirm = (val) => {
console.log(val.value[0]);
form.value.type = val.value[0]
form.value.type = val.value[0].name
form.value.tag = val.value[0].id
show.value = false
}
@ -132,6 +230,14 @@
uFormRef.value.validate().then(valid => {
if (valid) {
uni.$u.toast('校验通过')
delete form.value.type
mediumAdd(form.value).then((res)=> {
if(res.code === 1) {
uni.navigateTo({
url: '/pages/index/shoppage/mediaHelp'
})
}
})
} else {
uni.$u.toast('请填写完整')
}
@ -190,6 +296,7 @@
}
}
}
.yyzz {
margin-top: 12rpx;
width: 100%;

32
src/pages/index/shoppage/shopHelp.vue

@ -7,7 +7,7 @@
:showAction="false" height="40" margin="40rpx 24rpx 24rpx 24rpx"></u-search>
<zh-scroll ref="zhscrollRel" :scrollList="goods" :searchVal="keyword"></zh-scroll>
</view>
<image class="hdzq" src="@/static/img/hdzq.png" mode="" @click="gohdzq"></image>
<image class="hdzq" src="@/static/img/hdzq.png" mode=""></image>
</template>
<script setup>
@ -16,47 +16,31 @@
} from 'vue';
import zhScroll from '@/components/zh-scroll/zh-scroll.vue';
import goodsList from "@/mock/good.ts";
import { storeCategoryAll } from '@/api/shop'
const zhscrollRel = ref(null)
//
const keyword = ref('');
const goods = ref([]);
const goods = ref([]);
const search = (val) => {
console.log(val);
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const clickIcon = () => {
console.log(keyword.value);
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone'
})
}
onMounted(() => {
queryList().then(res => {
goods.value = res;
onShow(async() => {
await storeCategoryAll().then((res)=> {
goods.value = res.data
})
})
function queryList() {
return new Promise(resolve => {
setTimeout(() => {
resolve(goodsList);
}, 400)
})
}
</script>
<style scoped lang="scss">
@ -64,10 +48,12 @@
background-color: #FFFFFF;
height: calc(100vh - 254rpx);
width: 100%;
.cate-tab {
height: calc(100vh - 254rpx);
height: calc(100vh - 254rpx);
}
}
.hdzq {
width: 182rpx;
height: 80rpx;

50
src/pages/index/shoppage/shophelpDetail.vue

@ -1,31 +1,20 @@
<template>
<u-navbar :title="'小店帮'" placeholder="true" bgColor="#F1F3F9" :autoBack="true"/>
<u-navbar :title="'小店帮'" placeholder="true" bgColor="#F1F3F9" :autoBack="true" />
<view class="container">
<text class="title">个体工商户变更</text>
<text class="fbr">发布人:杭州市民个协会</text>
<text class="title">{{xdbData.title}}</text>
<text class="fbr">发布人{{xdbData.publisher}}</text>
<view class="readtime">
<text class="time">2024-08-29 20:27</text>
<text class="time">{{xdbData.create_time}}</text>
<view class="readnum">
阅读量<text class="num">2</text>
阅读量<text class="num">{{xdbData.count}}</text>
</view>
</view>
<view class="nrxq">
<view class="icon">
</view>
<text class="nrtitle">内容详情</text>
</view>
<view class="message">
线上办理
1办理流程:
申请人通过浙江省政务服务网浙里办"APP中请,浙江政务服务网一登陆后申报-选择所在区县搜索"个体工商户变更登记关键词并提交相关电子申请材料进行办理
2需提交材料:
(1)经营者签署的个体工商户变更登记申请书原件及经营者身份证明复印件;
(2)营业执照正副本原件
线下办理
1办理流程:
(1)申请:申请人向登记(发照)机关窗口提交申请材料;
</view>
<u-parse :content="xdbData.content"></u-parse>
</view>
</template>
@ -36,12 +25,18 @@
import {
ref
} from 'vue';
import {
storeInfo
} from '@/api/shop'
const titletxt = ref('名特优新')
const xdbData = ref({})
onLoad((param) => {
console.log(param);
onLoad(async (param) => {
await storeInfo(param.id).then((res) => {
if (res.code === 1) {
xdbData.value = res.data
}
})
})
</script>
@ -52,6 +47,7 @@
width: 100%;
padding: 60rpx 40rpx 0 40rpx;
box-sizing: border-box;
.title {
font-family: Source Han Sans;
font-size: 36rpx;
@ -62,6 +58,7 @@
letter-spacing: normal;
color: #0C092A;
}
.fbr {
margin-top: 28rpx;
font-family: Source Han Sans;
@ -73,12 +70,14 @@
letter-spacing: normal;
color: #858494;
}
.readtime {
margin-top: 28rpx;
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.time {
font-family: Source Han Sans;
font-size: 28rpx;
@ -89,6 +88,7 @@
letter-spacing: normal;
color: #858494;
}
.readnum {
display: flex;
font-family: Source Han Sans;
@ -116,10 +116,13 @@
}
}
}
.nrxq {
display: flex;
align-items: center;
margin-top: 60rpx;
margin-bottom: 40rpx;
.icon {
width: 12rpx;
height: 32rpx;
@ -127,19 +130,22 @@
/* 蓝色渐变 */
background: linear-gradient(0deg, #007FFF 0%, #99CCFF 100%);
}
.nrtitle {
margin-left: 20rpx;
font-family: Source Han Sans;
font-size: 30rpx;
font-weight: 350;
line-height: 32rpx;
text-align: justify; /* 浏览器可能不支持 */
text-align: justify;
/* 浏览器可能不支持 */
display: flex;
align-items: center;
letter-spacing: normal;
color: #0072FF;
}
}
.message {
margin-top: 40rpx;
}

1
src/pages/memberCenter/index.vue

@ -205,7 +205,6 @@
.biaoq {
padding: 10rpx;
width: 110rpx;
height: 40.5rpx;
border-radius: 0rpx 4rpx 20rpx 0rpx;
margin-left: 16rpx;

12
src/pages/memberCenter/inpart.vue

@ -6,14 +6,14 @@
<u-input v-model="form.name" placeholder="请输入真实姓名" placeholderStyle="color: #D3D3D3;" />
</u-form-item>
<u-form-item label="会员标签" prop="member_tag_id">
<u-input v-model="member_tag_name" placeholder="请选择" placeholderStyle="color: #D3D3D3;"
suffixIcon="arrow-down" @focus="show=true" />
<u-input v-model="member_tag_name" placeholder="请选择" placeholderStyle="color: #D3D3D3;" disabled disabledColor="#ffffff"
suffixIcon="arrow-down" @tap="show=true"/>
<u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="show=false"
keyName="title"></u-picker>
</u-form-item>
<u-form-item label="身份类型" prop="identity">
<u-input v-model="identityname" placeholder="请选择" placeholderStyle="color: #D3D3D3;"
suffixIcon="arrow-down" @focus="idshow=true" />
<u-input v-model="identityname" placeholder="请选择" placeholderStyle="color: #D3D3D3;" disabled disabledColor="#ffffff"
suffixIcon="arrow-down" @tap="idshow=true" />
<u-picker :show="idshow" :columns="idcolumns" @confirm="idconfirm"
@cancel="idshow=false"></u-picker>
</u-form-item>
@ -21,9 +21,9 @@
<view v-for="(group, index) in inputGroups" :key="index" class="input-group">
<view class="inputs" @click="beforeRead(index)">
公司性质
<input class="inputclass" placeholder-class="inputplacla"
<input class="inputclass" placeholder-class="inputplacla" disabled disabledColor="#ffffff"
:value="group.type==1 ? '其他(自由职业者等)' : (group.type===2 ? '个体工商户' : (group.type===3 ? '民营企业' : '') )"
placeholder="民营企业、个体工商户、其它(自由职业者等)" @click="qyshow = true" />
placeholder="民营企业、个体工商户、其它(自由职业者等)" @tap="qyshow = true" />
<u-action-sheet :actions="qylist" title="请选择关联企业类型" :show="qyshow" @select="qyClick"
@close="qyshow = false"></u-action-sheet>
公司名称

2
src/pages/mine/completeInformation.vue

@ -5,7 +5,7 @@
<view class="inputs" @click="beforeRead(index)">
公司性质
<input class="inputclass" placeholder-class="inputplacla" :value="group.type==1 ? '其他(自由职业者等)' : (group.type===2 ? '个体工商户' : (group.type===3 ? '民营企业' : '') )"
placeholder="民营企业、个体工商户、其它(自由职业者等)" @click="qyshow = true" />
placeholder="民营企业、个体工商户、其它(自由职业者等)" disabled disabledColor="#ffffff" @tap="qyshow = true" />
<u-action-sheet :actions="qylist" title="请选择关联企业类型" :show="qyshow" @select="qyClick"
@close="qyshow = false"></u-action-sheet>
公司名称

21
src/pages/mine/porsonalinfo.vue

@ -20,7 +20,7 @@
<image style="width: 32rpx;height: 32rpx;" src="@/static/img/yhm.png" mode=""></image>
<text class="txt">用户名</text>
</view>
<view class="right">
<view class="right" @click="openpopup('用户名')">
<u-popup :show="usershow" @close="usershow = false">
<view class="popupbox">
<text class="title">{{popupTitle}}</text>
@ -37,7 +37,7 @@
</u-popup>
<text class="value">{{userStore.userInfo.nickname}}</text>
<image style="width: 18rpx;height: 18rpx;margin-left: 16rpx;" src="@/static/img/Group13.png" mode=""
@click="openpopup('用户名')"></image>
></image>
</view>
</view>
<view class="editone">
@ -45,12 +45,12 @@
<image style="width: 32rpx;height: 32rpx;" src="@/static/img/xb.png" mode=""></image>
<text class="txt">性别</text>
</view>
<view class="right">
<view class="right" @click="sexshow = true">
<text class="value">{{userStore.userInfo.sex_name}}</text>
<u-action-sheet :actions="sexlist" title="请选择性别" :show="sexshow" @select="selectClick"
@close="sexshow = false"></u-action-sheet>
<image style="width: 18rpx;height: 18rpx;margin-left: 16rpx;" src="@/static/img/Group13.png" mode=""
@click="sexshow = true"></image>
></image>
</view>
</view>
<view class="editone">
@ -58,10 +58,10 @@
<image style="width: 32rpx;height: 32rpx;" src="@/static/img/sjh.png" mode=""></image>
<text class="txt">绑定手机号</text>
</view>
<view class="right">
<view class="right" @click="openpopup('手机号')">
<text class="value">{{userStore.userInfo.moblie}}</text>
<image style="width: 18rpx;height: 18rpx;margin-left: 16rpx;" src="@/static/img/Group13.png" mode=""
@click="openpopup('手机号')"></image>
></image>
</view>
</view>
<view class="editone">
@ -69,10 +69,10 @@
<image style="width: 32rpx;height: 32rpx;" src="@/static/img/zsxm.png" mode=""></image>
<text class="txt">真实姓名</text>
</view>
<view class="right">
<view class="right" @click="openpopup('姓名')">
<text class="value">{{userStore.userInfo.name}}</text>
<image style="width: 18rpx;height: 18rpx;margin-left: 16rpx;" src="@/static/img/Group13.png" mode=""
@click="openpopup('姓名')"></image>
></image>
</view>
</view>
<view class="editone">
@ -80,12 +80,12 @@
<image style="width: 32rpx;height: 32rpx;" src="@/static/img/szqy.png" mode=""></image>
<text class="txt">关联企业</text>
</view>
<view class="right">
<view class="right" @click="qyshow = true">
<text class="value">{{userStore.userInfo.identity_name}}</text>
<u-action-sheet :actions="qylist" title="请选择关联企业类型" :show="qyshow" @select="qyClick"
@close="qyshow = false"></u-action-sheet>
<image style="width: 18rpx;height: 18rpx;margin-left: 16rpx;" src="@/static/img/Group13.png" mode=""
@click="qyshow = true"></image>
></image>
</view>
</view>
</view>
@ -321,6 +321,7 @@
display: grid;
align-items: center;
justify-items: center;
padding-bottom: 60rpx;
.title {
font-family: Source Han Sans;

BIN
src/static/img/Frame.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

BIN
src/static/img/image.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

BIN
src/static/img/sl4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

BIN
src/static/img/sl5.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

BIN
src/static/logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Loading…
Cancel
Save