yujialong 11 months ago
parent 2e65e574c4
commit 4a3790dd3b
  1. 3
      apis/modules/user.js
  2. 1
      components/sideSelect/sideSelect.vue
  3. 2
      config/request.js
  4. 89
      other/addGoods/addGoods.vue
  5. 17
      other/clue/clue.vue
  6. 98
      other/goods/goods.vue
  7. 155
      other/goodsDetail/goodsDetail.vue
  8. 23
      other/procureDetail/procureDetail.vue
  9. 1
      other/registeredActivity/registeredActivity.vue
  10. 52
      other/supplierDetail/supplierDetail.vue
  11. 20
      other/vouchers/vouchers.vue
  12. 9
      pages.json
  13. 20
      pages/index/index.vue
  14. 21
      pages/login/login.vue
  15. 20
      pages/person/person.vue
  16. 57
      pages/supplier/supplier.vue
  17. 3
      styles/common.scss
  18. 30
      team/info/info.vue
  19. 21
      team/infoEdit/infoEdit.vue
  20. 6
      team/qrcode/qrcode.vue

@ -7,6 +7,9 @@ export const login = (data) => {
export const kindergartenWeChatApplication = (data) => {
return post('nakadai/kindergarten/platformTeamAccount/kindergartenWeChatApplication', data)
}
export const loginWithPhoneNumber = (data) => {
return post('nakadai/kindergarten/platformTeamAccount/loginWithPhoneNumber', data)
}
export const realNameAuthentication = (data) => {
return post(`nakadai/users/autonym/realNameAuthentication`, data)
}

@ -32,6 +32,7 @@
min-width: 200rpx;
font-size: 28rpx;
text-align: center;
background-color: #fff;
.item {
padding: 20rpx 0;
}

@ -5,7 +5,7 @@
*/
export default {
// baseURL: 'http://192.168.31.217:10010/',
// baseURL: 'http://192.168.31.51:10010/',
baseURL: 'http://124.71.79.122/',
headers: {
'Content-Type': 'application/json;charset=UTF-8'

@ -31,7 +31,7 @@
</view>
<view class="title">产品规格</view>
<view v-for="(item, i) in form.skuList" :key="i" class="block">
<view v-for="(item, i) in form.skuList" :key="i" class="block sku-item">
<view class="form-list edit-form">
<view class="line">
<view class="name">规格名称</view>
@ -39,13 +39,18 @@
</view>
<view class="line">
<view class="name">价格</view>
<view class="price-select" @click="showPrice(item)">{{ item.price || '请选择' }}</view>
<view class="prices" @click="showPrice(item)">
<view v-if="item.price">售价{{ item.price }}</view>
<view v-if="item.oriPrice" class="oriPrice">市场价{{ item.oriPrice }}</view>
<template v-if="!item.price && !item.oriPrice">面议</template>
</view>
</view>
<view class="line">
<view class="name">库存</view>
<uni-number-box v-model.number="item.stocks" :max="100" :min="1"></uni-number-box>
</view>
</view>
<uni-icons class="del" type="closeempty" size="18" color="#b3b3b3" @click="delSku(i)"></uni-icons>
</view>
<view class="plus-sku">
<uni-icons class="icon" type="plus" size="30" color="#007eff" @click="addSku"></uni-icons>
@ -56,12 +61,12 @@
<view class="btn publish" @click="submit(1)">发布</view>
</view>
<uni-popup ref="popup" background-color="#fff" type="bottom">
<uni-popup ref="popup" background-color="#fff" type="bottom" @change="popupChange">
<view class="block">
<view class="form-list edit-form">
<view class="line">
<view class="name">售价</view>
<input type="text" placeholder="请输入售价" v-model="curSku.price" />
<input ref="price" :focus="showPopup" type="text" placeholder="请输入售价" v-model="curSku.price" />
</view>
<view class="line">
<view class="name">市场价</view>
@ -96,8 +101,8 @@
status: 1,
oriPrice: '',
price: '',
skuName: '',
stocks: 0,
skuName: '默认',
stocks: 9999,
}
],
},
@ -108,6 +113,7 @@
submiting: false,
uploading: false,
classifications: [],
showPopup: false,
}
},
onShow() {
@ -179,6 +185,13 @@
this.curSku = item
this.$refs.popup.open()
},
popupChange(e) {
this.showPopup = e.show
},
// sku
delSku(i) {
this.form.skuList.splice(i, 1)
},
// sku
addSku() {
this.form.skuList.push(this.originSku)
@ -188,30 +201,32 @@
if (this.submiting) return false
const form = JSON.parse(JSON.stringify((this.form)))
if (!form.prodName) return this.$util.errMsg(`请输入商品名称!`)
if (!this.pic.length) return this.$util.errMsg(`请上传封面图片!`)
if (!form.brief) return this.$util.errMsg(`请输入商品描述!`)
form.skuList = form.skuList.filter(e => e.skuName)
if (!form.skuList.length) return this.$util.errMsg(`请输入产品规格!`)
let invalid = 0
for (const e of form.skuList) {
if (!e.skuName) {
this.$util.errMsg(`请输入规格名称!`)
invalid = 1
}
if (!e.price) {
this.$util.errMsg(`请输入售价!`)
invalid = 1
}
if (!e.oriPrice) {
this.$util.errMsg(`请输入市场价!`)
invalid = 1
}
if (!e.stocks) {
this.$util.errMsg(`请输入库存!`)
invalid = 1
if (status === 1) {
if (!this.pic.length) return this.$util.errMsg(`请上传封面图片!`)
// if (!form.brief) return this.$util.errMsg(``)
form.skuList = form.skuList.filter(e => e.skuName)
if (!form.skuList.length) return this.$util.errMsg(`请输入产品规格!`)
let invalid = 0
for (const e of form.skuList) {
if (!e.skuName) {
this.$util.errMsg(`请输入规格名称!`)
invalid = 1
}
// if (!e.price) {
// this.$util.errMsg(``)
// invalid = 1
// }
// if (!e.oriPrice) {
// this.$util.errMsg(``)
// invalid = 1
// }
if (!e.stocks) {
this.$util.errMsg(`请输入库存!`)
invalid = 1
}
}
if (invalid) return false
}
if (invalid) return false
this.submiting = true
form.pic = this.pic.map(e => e.url).join()
form.imgs = this.imgs.map(e => e.url).join()
@ -257,9 +272,14 @@
padding: 0;
}
}
.price-select {
font-size: 24rpx;
.prices {
display: inline-flex;
align-items: center;
font-size: 28rpx;
color: #333;
.oriPrice {
margin-left: 20rpx;
}
}
.title {
margin: 40rpx 24rpx 24rpx;
@ -267,6 +287,15 @@
font-weight: 600;
color: #333;
}
.sku-item {
position: relative;
.del {
z-index: 10;
position: absolute;
top: 15rpx;
right: 15rpx;
}
}
.plus-sku {
text-align: center;
}

@ -2,7 +2,7 @@
<view>
<view class="page">
<view class="search-wrap">
<uni-search-bar class="search" radius="30" placeholder="请输入幼儿园名称、订单编号" v-model="keyword" clearButton="auto" cancelButton="none" @confirm="initList" />
<uni-search-bar class="search" radius="30" placeholder="请输入客户名称、线索编号进行搜索" v-model="keyword" clearButton="auto" cancelButton="none" @confirm="initList" />
<view>
<uni-icons type="notification" size="20"></uni-icons>
</view>
@ -19,13 +19,14 @@
<view class="date">提交时间{{ item.createTime }}</view>
</view> -->
<view class="pro-name">
<image class="icon" :src="item.logo ? item.logo : Common.shopIcon"></image>
<image v-if="item.logo" class="icon logo" :src="item.logo"></image>
<image v-else class="icon" :src="Common.shopIcon"></image>
{{ item.purchasingPerson }}
</view>
<view class="info">
<view class="texts">
<view class="meta">采购内容{{ item.content || '' }}</view>
<view class="meta">数量{{ item.num || 0 }}</view>
<view class="meta">数量{{ item.num ? item.num + '个' : '待沟通' }}</view>
<view class="meta">编号{{ item.orderNumber }}</view>
<view class="meta">提交时间{{ item.createTime }}</view>
</view>
@ -181,11 +182,13 @@
color: #333;
border-bottom: 1px solid #E6E8ED;
.icon {
width: 66rpx;
min-width: 66rpx;
height: 66rpx;
width: 80rpx;
min-width: 80rpx;
height: 80rpx;
margin-right: 20rpx;
border-radius: 4px;
}
.logo {
border-radius: 50%;
}
}
.meta {

@ -1,51 +1,52 @@
<template>
<view>
<view class="page">
<ul class="tab">
<li :class="{active: curTab === ''}" @click="tabChange('')">全部</li>
<li :class="{active: curTab === 1}" @click="tabChange(0)">已上架({{ status1 }})</li>
<li :class="{active: curTab === 2}" @click="tabChange(2)">已下架({{ status2 }})</li>
<li :class="{active: curTab === 3}" @click="tabChange(3)">草稿({{ status3 }})</li>
<li :class="{active: curTab === 4}" @click="tabChange(4)">审核中({{ status4 }})</li>
</ul>
<view class="page">
<view class="search-wrap">
<uni-search-bar class="search" radius="30" placeholder="请输入产品名称" v-model="keyword" clearButton="auto" cancelButton="none" @confirm="initList" @clear="clearKeyword" />
</view>
<ul class="tab">
<li :class="{active: curTab === ''}" @click="tabChange('')">全部</li>
<li :class="{active: curTab === 1}" @click="tabChange(0)">已上架({{ status1 }})</li>
<li :class="{active: curTab === 2}" @click="tabChange(2)">已下架({{ status2 }})</li>
<li :class="{active: curTab === 3}" @click="tabChange(3)">草稿({{ status3 }})</li>
<!-- <li :class="{active: curTab === 4}" @click="tabChange(4)">审核中({{ status4 }})</li> -->
<li class="disabled">审核中({{ status4 }})</li>
</ul>
<template v-if="list.length">
<view class="list">
<view class="item" v-for="item in list" @click="toDetail(item)">
<view class="metas">
<view class="time">{{ item.putawayTime }}</view>
<view :class="['status', {grounding: item.status === 1}]">{{ Goods.goodsStatus.find(e => e.id === item.status).name }}</view>
</view>
<view class="info">
<image class="pic" :src="item.pic"></image>
<view class="texts">
<view class="name">{{ item.prodName }}</view>
<view class="meta">
市场价{{ item.oriPrice || 0 }}
<text class="sell">售价{{ item.price || 0 }}</text>
</view>
<view class="meta">
库存{{ item.totalStocks || 0 }}&emsp;
<!-- 已售500 -->
</view>
<view class="btns">
<!-- <view class="btn" @click.stop="toDetail(item)">查看</view> -->
<template v-if="item.status === 2 || item.status === 3">
<view class="btn del" @click.stop="del(item)">删除</view>
<view class="btn" @click.stop="toEdit(item)">编辑</view>
</template>
<view v-else-if="item.status === 1" class="btn off" @click.stop="changeStatus(item)">下架</view>
</view>
<template v-if="list.length">
<view class="list">
<view class="item" v-for="item in list" @click="toDetail(item)">
<view class="metas">
<view class="time">{{ item.putawayTime }}</view>
<view :class="['status', {grounding: item.status === 1}]">{{ Goods.goodsStatus.find(e => e.id === item.status).name }}</view>
</view>
<view class="info">
<image class="pic" :src="item.pic"></image>
<view class="texts">
<view class="name">{{ item.prodName }}</view>
<view class="meta">
市场价{{ item.oriPrice || 0 }}
<text class="sell">售价{{ item.price || 0 }}</text>
</view>
<view class="meta">
库存{{ item.totalStocks || 0 }}&emsp;
<!-- 已售500 -->
</view>
<view class="btns">
<template v-if="item.status === 2 || item.status === 3">
<view class="btn del" @click.stop="del(item)">删除</view>
<view class="btn" @click.stop="toEdit(item)">编辑</view>
</template>
<view v-else-if="item.status === 1" class="btn off" @click.stop="changeStatus(item)">下架</view>
</view>
</view>
</view>
</view>
<uni-load-more :status="status" />
</template>
<empty v-else text="暂无商品"></empty>
</view>
<uni-load-more :status="status" />
</template>
<empty v-else text="暂无商品"></empty>
<uni-icons class="plus" type="plus-filled" size="60" color="#007eff" @click="$util.to('../addGoods/addGoods')"></uni-icons>
</view>
<uni-icons class="plus" type="plus-filled" size="60" color="#007eff" @click="$util.to('../addGoods/addGoods')"></uni-icons>
</view>
</template>
@ -111,6 +112,7 @@
page({
status: this.curTab,
current: this.page,
prodName: this.keyword,
}).then(({ page, productCount }) => {
//
const status1 = productCount.find(e => e.status === 1)
@ -146,6 +148,11 @@
this.reachBottom = 0
this.getList()
},
// keyword
clearKeyword() {
this.keyword = ''
this.initList()
},
// tab
tabChange(id) {
this.curTab = id
@ -182,7 +189,7 @@
},
//
toDetail(item) {
this.$util.to(`../addGoods/addGoods?prodId=${item.prodId}&show=1`)
this.$util.to(`../goodsDetail/goodsDetail?prodId=${item.prodId}`)
},
//
toEdit(item) {
@ -193,9 +200,6 @@
</script>
<style scoped lang="scss">
.page {
padding-bottom: 90px;
}
.list {
margin-top: 20rpx;
padding: 20rpx;
@ -208,7 +212,9 @@
.metas {
display: flex;
justify-content: space-between;
margin-bottom: 20rpx;
padding-bottom: 10rpx;
margin-bottom: 10rpx;
border-bottom: 1px dashed #eaeaea;
}
.time {
font-size: 24rpx;

@ -0,0 +1,155 @@
<template>
<view class="wrap">
<view class="banner">
<uni-swiper-dot class="swiper" v-if="pic.length" :current="curPic" :info="pic" field="id" mode="round" :dotsStyles="dotsStyles">
<swiper class="swiper-box" autoplay @change="picChange">
<swiper-item v-for="(item, i) in pic" :key="i">
<image class="pic" :src="item"></image>
</swiper-item>
</swiper>
</uni-swiper-dot>
</view>
<view class="detail">
<view class="prices">
<text class="price">售价 {{ info.price }}</text>
<text class="oriPrice">市场价 {{ info.oriPrice }}</text>
</view>
<view class="name">{{ info.prodName }}</view>
<view class="sku">
<view class="item">
<text></text>
</view>
</view>
</view>
<view class="detail">
<view class="title">商品详情</view>
<mp-html :content="info.brief"/>
</view>
</view>
</template>
<script>
import { info } from '@/apis/modules/goods.js'
import Util from '@/libs/util'
export default {
data() {
return {
prodId: '',
curPic: 0,
pic: [],
imgs: [],
dotsStyles: {
backgroundColor: 'rgba(83, 200, 249,0.3)',
border: '1px rgba(83, 200, 249,0.3) solid',
color: '#fff',
selectedBackgroundColor: 'rgba(83, 200, 249,0.9)',
selectedBorder: '1px rgba(83, 200, 249,0.9) solid'
},
info: {
brief: '',
categoryId: '',
content: '',
pic: '',
imgs: '',
price: '',
prodName: '',
skuList: [
{
prodName: '',
status: 1,
oriPrice: '',
price: '',
skuName: '默认',
stocks: 9999,
}
],
},
coverUrl: [],
mpStyle: {
p: 'font-size: 25rpx !important;font-family: Microsoft Yahei !important;font-weight: 400 !important;color: #333 !important;',
span: 'font-size: 25rpx !important;font-family: Microsoft Yahei !important;font-weight: 400 !important;color: #333 !important;'
},
}
},
onShow() {
const pages = getCurrentPages()
const { options } = pages[pages.length - 1]
this.prodId = options.prodId
this.getInfo()
},
methods: {
//
async getInfo() {
uni.showLoading({
title: '加载中'
})
const { data } = await info({
prodId: this.prodId
})
if (data) {
if (data.pic) {
this.pic = data.pic.split(',')
}
if (data.imgs) {
this.imgs = data.imgs.split(',')
}
this.info = data
}
uni.hideLoading()
},
//
picChange(e) {
this.curBanner = e.detail.current;
},
}
}
</script>
<style scoped lang="scss">
.banner {
position: relative;
.pic {
width: 100%;
height: 420rpx;
}
swiper {
height: 420rpx;
}
}
.detail {
padding: 34rpx 32rpx;
margin: 20rpx;
border-radius: 20px;
background-color: #fff;
.title {
margin-bottom: 20rpx;
font-size: 30rpx;
font-weight: 600;
color: #333;
}
.prices {
display: flex;
justify-content: space-between;
align-items: center;
.price {
font-size: 38rpx;
font-weight: 600;
color: #f70000;
}
.oriPrice {
font-size: 24rpx;
color: #a0a0a0;
text-decoration: line-through;
}
}
.name {
margin: 20rpx 0;
font-size: 32rpx;
font-weight: 600;
color: #333;
}
}
</style>

@ -3,7 +3,9 @@
<view class="block">
<view class="title">编号{{ id }}</view>
<view class="shop">
<image class="logo" :src="info.shopLogo ? info.shopLogo : Common.shopIcon"></image>
<image v-if="item.shopLogo" class="icon logo" :src="item.shopLogo"></image>
<image v-else class="icon" :src="Common.shopIcon"></image>
{{ info.shopName }}
<view class="status">{{ info.authentication }}</view>
</view>
@ -23,7 +25,7 @@
</view>
<view v-if="info.remarks" class="block">
<view class="title">备注</view>
<view class="title">客户留言</view>
<view class="remarks">{{ info.remarks }}</view>
</view>
@ -51,7 +53,7 @@
<text>{{ info.createTime }}</text>
</view>
<view class="line">
<text class="field">幼儿园是否已认证/是否已实名</text>
<text class="field">{{ info.orderType === 1 ? '个人是否已实名' : '是否已认证' }}</text>
<text>{{ info.authentication }}</text>
</view>
</view>
@ -113,6 +115,7 @@
.title {
margin-bottom: 20rpx;
font-size: 30rpx;
font-weight: 600;
color: #333;
}
.shop {
@ -121,13 +124,16 @@
align-items: center;
font-size: 28rpx;
color: #333;
.logo {
width: 66rpx;
min-width: 66rpx;
height: 66rpx;
.icon {
width: 80rpx;
min-width: 80rpx;
height: 80rpx;
margin-right: 20rpx;
border-radius: 4px;
}
.logo {
border-radius: 50%;
}
.status {
position: absolute;
bottom: 0;
@ -148,6 +154,9 @@
align-items: center;
padding-bottom: 10rpx;
margin-bottom: 20rpx;
&:last-child {
margin-bottom: 0;
}
}
.prod {
max-width: 70%;

@ -62,6 +62,7 @@
export default {
data() {
return {
openId: uni.getStorageSync('openId'),
tabs: [],
popup: false,
curTab: '',

@ -4,6 +4,11 @@
<view class="name">{{ form.classificationName }}</view>
<image class="logo" :src="form.logoUrl ? form.logoUrl : Common.shopIcon"></image>
<view v-if="form.slogan" class="slogan">{{ form.slogan }}</view>
<view class="star" @click.stop="collect">
<uni-icons class="star-icon" color="#ffcf47" :type="collectInfo.whetherAttention ? 'star-filled' : 'star'" size="25"></uni-icons>
{{ collectInfo.whetherAttention ? '取消关注' : '关注' }}
</view>
</view>
<ul class="tab">
@ -60,6 +65,7 @@
</template>
<script>
import { collect, cancelCollection } from '@/apis/modules/supplier.js'
import { queryTeamInfo } from '@/apis/modules/user.js'
import { page } from '@/apis/modules/goods.js'
import Common from '@/config/common'
@ -68,8 +74,12 @@
return {
Common,
teamId: '',
accountId: '',
curTab: 0,
form: {
collectionInformation: {
whetherAttention: 0
},
classificationName: '',
slogan: '',
briefIntroduction: '',
@ -95,6 +105,8 @@
page: 1,
pageSize: 5,
total: 0,
submiting: false,
collectInfo: {},
}
},
//
@ -116,6 +128,7 @@
const pages = getCurrentPages()
const { options } = pages[pages.length - 1]
this.teamId = options.teamId
this.accountId = options.accountId
this.getInfo()
this.getGoods()
},
@ -135,6 +148,7 @@
this.desPics = data.pictureUrl.split(',')
}
}
this.collectInfo = res.collectionInformation
this.form = data
uni.hideLoading()
},
@ -160,6 +174,33 @@
tabChange(id) {
this.curTab = id
},
//
async collect() {
if (this.submiting) return false
this.submiting = true
if (this.collectInfo.whetherAttention) {
const that = this
uni.showModal({
title: '提示',
content: '确定要取消关注吗?',
async success(res) {
if (res.confirm) {
await cancelCollection(that.collectInfo.attentionId)
that.submiting = false
that.$util.sucMsg('取消关注成功')
that.getInfo()
}
}
})
} else {
const res = await collect({
supplierAccountId: this.accountId
})
this.submiting = false
this.getInfo()
}
},
}
}
</script>
@ -196,6 +237,17 @@
font-size: 28rpx;
color: #333;
}
.star {
display: flex;
justify-content: flex-end;
align-items: center;
margin-top: 20rpx;
font-size: 28rpx;
color: #333;
.star-icon {
margin-right: 10rpx;
}
}
}
.detail {
padding: 40rpx;

@ -10,9 +10,9 @@
<view v-for="(item, i) in list" :key="i" class="item">
<view class="texts">
<view class="name">{{ item.competitionName }}</view>
<view class="meta">有效期 {{ item.playEndTime.substr(0, 16) }}</view>
<view class="meta">{{ item.status === 1 ? '未生效 |' : '' }} 有效期 {{ item.playEndTime.substr(0, 16) }}</view>
</view>
<view :class="['use', {ing: item.playing}]" @click.stop="use(item)">使用</view>
<view :class="['use', {ing: item.status}]" @click.stop="use(item)">{{ item.status === 1 ? '电子入场券' : '使用' }}</view>
</view>
</view>
@ -124,15 +124,17 @@
},
//
handleStatus (item) {
let playing = 0
let status = 0
const playStartTime = new Date(item.playStartTime) //
const playEndTime = new Date(item.playEndTime) //
const { now } = this
// (whetherToSignUp 0 1)
if (now > playStartTime && now < playEndTime) {
playing = 1
if (now < playStartTime) { //
status = 1
} else if (now < playEndTime) { //
status = 2
}
this.$set(item, 'playing', playing)
this.$set(item, 'status', status)
},
initList() {
this.page = 1
@ -155,7 +157,7 @@
},
//
use(row) {
if (row.playing) {
if (row.status) {
this.curRow = row
this.$refs.popup.open()
}
@ -220,7 +222,7 @@
.sign-popup {
position: relative;
width: 80vw;
padding: 40rpx 0 20rpx;
padding: 40rpx 0;
text-align: center;
box-sizing: border-box;
background-color: #fff;

@ -12,6 +12,7 @@
"path" : "pages/index/index",
"style" :
{
"navigationStyle": "custom",
"enablePullDownRefresh": true
}
},
@ -140,6 +141,14 @@
"navigationBarTitleText" : "我的关注",
"enablePullDownRefresh" : true
}
},
{
"path" : "goodsDetail/goodsDetail",
"style" :
{
"navigationBarTitleText" : "商品详情",
"enablePullDownRefresh" : false
}
}
]
},

@ -1,11 +1,9 @@
<template>
<view :class="[{oh: !per}]">
<view class="page">
<view class="search-wrap">
<!-- <view class="bg"></view> -->
<view class="search-wrap" :style="{paddingRight: menuBtnInfo.width + 8 + 'px', paddingTop: menuBtnInfo.top + 'px'}">
<uni-search-bar class="search" radius="30" placeholder="请输入" v-model="keyword" clearButton="auto" cancelButton="none" @confirm="initList" />
<view>
<uni-icons type="notification" size="20"></uni-icons>
</view>
</view>
<view class="banner">
@ -115,6 +113,8 @@
submiting: false,
tabs: [],
scrollLeft: 0,
headerTop: 0,
menuBtnInfo: {},
}
},
//
@ -133,6 +133,11 @@
}
},
onShow() {
// #ifdef MP-WEIXIN
console.log(33, uni.getMenuButtonBoundingClientRect())
this.menuBtnInfo = uni.getMenuButtonBoundingClientRect()
// .top + 8 + 'px'
// #endif
// uni.setStorageSync('token', 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiaWF0IjoxNzA0Nzg1NDg5LCJleHAiOjE3MDU2NDk0ODksImFjY291bnRJZCI6IjQ5ODMiLCJzaG9wSWQiOjYsInBsYXRmb3JtSWQiOjV9.B0gXKl9gOEi9oSNZl8M_gGcqFXf9hAYbqtVHygDoYxM')
// uni.setStorageSync('openId', 'o3hKk60jbhAuLm4K3weIgQGFmv2g')
this.keyword = ''
@ -344,6 +349,13 @@
border-top-left-radius: 16px;
border-top-right-radius: 16px;
}
/deep/.search-wrap {
padding-bottom: 30rpx;
background-color: $uni-primary;
.uni-searchbar {
padding: 0 10rpx !important;
}
}
.banner {
position: relative;
.pic {

@ -56,7 +56,7 @@
</template>
<script>
import { login, userBinding, getSessionKey, kindergartenWeChatApplication, saveCertification } from '@/apis/modules/user.js'
import { login, userBinding, getSessionKey, kindergartenWeChatApplication, saveCertification, loginWithPhoneNumber } from '@/apis/modules/user.js'
import WXBizDataCrypt from '@/libs/WXBizDataCrypt'
export default {
data() {
@ -150,7 +150,7 @@
}
},
//
onGetPhoneNumber(e){
async onGetPhoneNumber(e){
if (this.submiting) return false
const { encryptedData, iv } = e.detail
// 1.使js2.使
@ -162,8 +162,21 @@
const phone = data.phoneNumber
this.phone = phone
if (this.isReg) { //
this.submiting = false
this.$refs.popup.open('bottom')
//
const res = await loginWithPhoneNumber({
code: this.code,
openId: this.openid,
phone
})
if (res.data && res.data.platformId) {
uni.setStorageSync('token', res.data.token)
uni.setStorageSync('platformId', +res.data.platformId)
uni.setStorageSync('openId', res.data.openId)
// uni.setStorageSync('teamId', data.teamId)
} else {
this.submiting = false
this.$refs.popup.open('bottom')
}
} else { //
userBinding({
openid: this.openid,

@ -90,7 +90,10 @@
<view class="title">我是{{ platformName }}</view>
<view v-if="!isMember" class="badge">{{ platformName }}负责人</view>
</view>
<view class="auth">{{ auditStatus }}</view>
<view class="auth">
{{ auditStatus }}
<uni-icons class="icon" type="right" size="16" color="#4876f9"></uni-icons>
</view>
</view>
<view class="identity-bg">
<image v-if="isPreschool" class="pic" src="http://124.71.79.122/images/miniProgram/preschool1.png" mode="widthFix" />
@ -101,8 +104,6 @@
</view>
</view>
<view class="title">工作台</view>
<ul class="func">
<li @click="toEnterAuth(platformId)">
<image src="http://124.71.79.122/images/miniProgram/icon7.png" />
@ -450,7 +451,6 @@
.func {
display: flex;
flex-wrap: wrap;
margin-top: 15rpx;
li {
width: 25%;
margin-bottom: 30rpx;
@ -487,8 +487,18 @@
border-radius: 10px;
}
.auth {
display: inline-flex;
align-items: center;
padding: 4rpx 16rpx;
margin-left: 20rpx;
font-size: 24rpx;
color: #9c9c9c;
color: $uni-primary;
white-space: nowrap;
border: 1px solid #8ca5eb;
border-radius: 20px;
.icon {
color: $uni-primary;
}
}
}
.company-name {

@ -11,21 +11,22 @@
<view class="list">
<view class="item" v-for="(item, i) in list" :key="i" @click.stop="toDetail(item)">
<view class="pro-name">
<image class="icon" :src="item.logoUrl ? item.logoUrl : Common.shopIcon"></image>
<image v-if="item.logoUrl" class="icon logo" :src="item.logoUrl"></image>
<image v-else class="icon" :src="Common.shopIcon"></image>
{{ item.companyName }}
</view>
<view class="info">
<view v-if="item.briefIntroduction" class="intro">
<image class="icon" src="http://124.71.79.122/images/miniProgram/intro.png" mode="widthFix" />
<image class="icon" src="http://124.71.79.122/images/miniProgram/intro1.png" mode="widthFix" />
<view class="text ell">{{ item.briefIntroduction }}</view>
</view>
<view v-if="item.province || item.city" class="meta">
<image class="icon" src="http://124.71.79.122/images/miniProgram/address1.png" mode="widthFix" />
<image class="icon" src="http://124.71.79.122/images/miniProgram/address2.png" mode="widthFix" />
{{ item.province }}-{{ item.city }}
</view>
<view class="actions">
<view class="star" @click.stop="collect(item)">
<uni-icons class="star-icon" color="#ffcf47" :type="item.whetherAttention ? 'star' : 'star-filled'" size="25" @click.stop="collect(item)"></uni-icons>
<uni-icons class="star-icon" color="#ffcf47" :type="item.whetherAttention ? 'star-filled' : 'star'" size="25"></uni-icons>
{{ item.whetherAttention ? '取消关注' : '关注' }}
</view>
<view class="order" @click.stop="toOrder(item)">我想采购</view>
@ -68,40 +69,6 @@
per: true, //
teamId: uni.getStorageSync('teamId') || '',
platformId: uni.getStorageSync('platformId'),
menus: [
{
id: '',
name: '全部'
},
{
id: 1,
name: '服装'
},
{
id: 2,
name: '教具'
},
{
id: 3,
name: '课程'
},
{
id: 4,
name: '家具'
},
{
id: 5,
name: '设备'
},
{
id: 6,
name: '服务'
},
{
id: 7,
name: '其它'
},
],
list: [],
reachBottom: 0, // 0->,1->,-1->
status: 'more', // more|loading|noMore
@ -136,7 +103,7 @@
this.active = ''
this.keyword = ''
this.typeVisible = false
this.per = this.platformId !== 6 //
// this.per = this.platformId !== 6 //
this.per && this.initList()
},
methods: {
@ -199,7 +166,7 @@
},
//
toDetail(item) {
this.$util.to('/other/supplierDetail/supplierDetail?teamId=' + item.teamId)
this.$util.to(`/other/supplierDetail/supplierDetail?teamId=${item.teamId}&accountId=${item.accountId}`)
},
//
menuClick(tab) {
@ -275,11 +242,13 @@
color: #333;
border-bottom: 1px solid #E6E8ED;
.icon {
width: 66rpx;
min-width: 66rpx;
height: 66rpx;
width: 80rpx;
min-width: 80rpx;
height: 80rpx;
margin-right: 20rpx;
border-radius: 4px;
}
.logo {
border-radius: 50%;
}
}
.info {

@ -185,6 +185,9 @@ ul {
.sort {
@include sort;
}
.disabled {
color: #a9a9a9;
}
}
.plus {
position: fixed;

@ -43,29 +43,29 @@
<view class="py">
<image v-for="(item, i) in pictureUrl" :key="i" class="pic" :src="item"></image>
</view>
<view class="line">
<view class="name">二维码描述</view>
<view v-if="info.qrCodeOneName" class="line">
<view class="name">二维码描述1</view>
<view class="val">{{ info.qrCodeOneName }}</view>
</view>
<view class="line">
<view class="name">二维码</view>
<image v-if="info.qrCodeOneUrl" class="qrcode" :src="info.qrCodeOneUrl" mode="widthFix"></image>
<view v-if="info.qrCodeOneUrl" class="line">
<view class="name">二维码1</view>
<image class="qrcode" :src="info.qrCodeOneUrl" mode="widthFix"></image>
</view>
<view class="line">
<view class="name">二维码描述</view>
<view v-if="info.qrCodeTwoName" class="line">
<view class="name">二维码描述2</view>
<view class="val">{{ info.qrCodeTwoName }}</view>
</view>
<view class="line">
<view class="name">二维码</view>
<image v-if="info.qrCodeTwoUrl" class="qrcode" :src="info.qrCodeTwoUrl" mode="widthFix"></image>
<view v-if="info.qrCodeTwoUrl" class="line">
<view class="name">二维码2</view>
<image class="qrcode" :src="info.qrCodeTwoUrl" mode="widthFix"></image>
</view>
<view class="line">
<view class="name">二维码描述</view>
<view v-if="info.qrCodeThreeName" class="line">
<view class="name">二维码描述3</view>
<view class="val">{{ info.qrCodeThreeName }}</view>
</view>
<view class="line">
<view class="name">二维码</view>
<image v-if="info.qrCodeThreeUrl" class="qrcode" :src="info.qrCodeThreeUrl" mode="widthFix"></image>
<view v-if="info.qrCodeThreeUrl" class="line">
<view class="name">二维码3</view>
<image class="qrcode" :src="info.qrCodeThreeUrl" mode="widthFix"></image>
</view>
</view>
</view>

@ -54,12 +54,11 @@
<view class="block">
<view class="form-list edit-form">
<view class="line with-arrow no-bd">
<view class="name">二维码描述一</view>
<input type="text" placeholder="输入二维码描述一" v-model="form.qrCodeOneName" />
<uni-icons type="right" size="18" color="#ababab"></uni-icons>
<view class="name">二维码描述1</view>
<input type="text" placeholder="请输入二维码描述" v-model="form.qrCodeOneName" />
</view>
<view class="py">
<uni-file-picker v-model="qrCodeOne" limit="1" title="上传二维码一" :auto-upload="false" @select="e => uploadQrcode(e, 'qrCodeOne')" ></uni-file-picker>
<uni-file-picker v-model="qrCodeOne" limit="1" title="二维码1" :auto-upload="false" @select="e => uploadQrcode(e, 'qrCodeOne')" ></uni-file-picker>
</view>
</view>
</view>
@ -67,12 +66,11 @@
<view class="block">
<view class="form-list edit-form">
<view class="line with-arrow no-bd">
<view class="name">二维码描述二</view>
<input type="text" placeholder="输入二维码描述二" v-model="form.qrCodeTwoName" />
<uni-icons type="right" size="18" color="#ababab"></uni-icons>
<view class="name">二维码描述2</view>
<input type="text" placeholder="请输入二维码描述" v-model="form.qrCodeTwoName" />
</view>
<view class="py">
<uni-file-picker v-model="qrCodeTwo" limit="1" title="上传二维码二" :auto-upload="false" @select="e => uploadQrcode(e, 'qrCodeTwo')" ></uni-file-picker>
<uni-file-picker v-model="qrCodeTwo" limit="1" title="二维码2" :auto-upload="false" @select="e => uploadQrcode(e, 'qrCodeTwo')" ></uni-file-picker>
</view>
</view>
</view>
@ -80,12 +78,11 @@
<view class="block">
<view class="form-list edit-form">
<view class="line with-arrow no-bd">
<view class="name">二维码描述三</view>
<input type="text" placeholder="输入二维码描述三" v-model="form.qrCodeThreeName" />
<uni-icons type="right" size="18" color="#ababab"></uni-icons>
<view class="name">二维码描述3</view>
<input type="text" placeholder="请输入二维码描述" v-model="form.qrCodeThreeName" />
</view>
<view class="py">
<uni-file-picker v-model="qrCodeThree" limit="1" title="上传二维码三" :auto-upload="false" @select="e => uploadQrcode(e, 'qrCodeThree')" ></uni-file-picker>
<uni-file-picker v-model="qrCodeThree" limit="1" title="二维码3" :auto-upload="false" @select="e => uploadQrcode(e, 'qrCodeThree')" ></uni-file-picker>
</view>
</view>
</view>

@ -6,7 +6,7 @@
<image class="avatar" :src="info.userAvatars" mode=""></image>
<view class="text">
<view class="invite">
<text class="name">{{ my.info.userName }}</text> 邀请你加入城市合伙人计划
<text class="name">{{ my.info.userName }}</text> 邀请你加入组织
</view>
</view>
</view>
@ -61,8 +61,8 @@
generateInvitationCode(this.platformId).then(({ expireTime }) => {
const date = new Date(Date.now() + expireTime * 1000) // *1000
this.expireTime = `${date.getFullYear()}-${this.$util.preZero(date.getMonth() + 1)}-${this.$util.preZero(date.getDate())} ${this.$util.preZero(date.getHours())}:${this.$util.preZero(date.getMinutes())}:${this.$util.preZero(date.getMinutes())}`
// this.link = `https://huorantech.cn/#/join?accountId=${team.accountId}&id=${this.teamId}&isTeam=0&teamName=${this.info.userName}`
this.link = `http://192.168.31.125:8098/#/join?accountId=${team.accountId}&id=${this.teamId}&isTeam=0&teamName=${this.info.userName}`
this.link = `http://124.71.79.122/#/join?accountId=${team.accountId}&id=${this.teamId}&isTeam=0&teamName=${this.info.userName}&platformId=${this.platformId}`
// this.link = `http://192.168.31.125:8098/#/join?accountId=${team.accountId}&id=${this.teamId}&isTeam=0&teamName=${this.info.userName}&platformId=${this.platformId}`
}).catch(e => {})
},
// imageimage

Loading…
Cancel
Save