合并代码
This commit is contained in:
parent
27cf489cbc
commit
4da270f860
|
@ -47,7 +47,7 @@ const api = {
|
||||||
getArticle(param) {
|
getArticle(param) {
|
||||||
return util.request({
|
return util.request({
|
||||||
url: '/user/protocol/inquire',
|
url: '/user/protocol/inquire',
|
||||||
path: param.path,
|
query: param.query,
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -62,6 +62,29 @@ const api = {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取省市区
|
||||||
|
* @param {Object} param
|
||||||
|
*/
|
||||||
|
getRegion() {
|
||||||
|
return util.request({
|
||||||
|
url: '/shopify/region/all',
|
||||||
|
method: 'GET',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分类字典数据
|
||||||
|
* @param {Object} param
|
||||||
|
*/
|
||||||
|
getDict(param) {
|
||||||
|
return util.request({
|
||||||
|
url: '/system/dict/data/type',
|
||||||
|
path: param.path,
|
||||||
|
method: 'GET',
|
||||||
|
})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export default api
|
export default api
|
|
@ -3,6 +3,72 @@ import util from '@/common/js/util.js'
|
||||||
|
|
||||||
// 商品
|
// 商品
|
||||||
const shop = {
|
const shop = {
|
||||||
|
/**
|
||||||
|
* 商家入驻状态
|
||||||
|
* @param {Object} param
|
||||||
|
*/
|
||||||
|
getShopStatus(param) {
|
||||||
|
return util.request({
|
||||||
|
url: `/shopify/appDeposits/settleStatus`,
|
||||||
|
method: 'GET',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 商家缴纳押金
|
||||||
|
* @param {Object} param
|
||||||
|
*/
|
||||||
|
depositsPay(param) {
|
||||||
|
return util.request({
|
||||||
|
url: `/shopify/appDeposits/depositsPay`,
|
||||||
|
method: 'POST',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商户分类
|
||||||
|
* @param {Object} param
|
||||||
|
*/
|
||||||
|
categoryAll(param) {
|
||||||
|
return util.request({
|
||||||
|
url: `/shopify/merchantCategory/categoryAll`,
|
||||||
|
method: 'GET',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商家申请
|
||||||
|
* @param {Object} param
|
||||||
|
*/
|
||||||
|
application(param) {
|
||||||
|
return util.request({
|
||||||
|
url: `/shopify/appApplication/saveApplication`,
|
||||||
|
data: param.data,
|
||||||
|
method: 'POST',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取商家申请信息
|
||||||
|
* @param {Object} param
|
||||||
|
*/
|
||||||
|
getStoreDetail(param) {
|
||||||
|
return util.request({
|
||||||
|
url: `/shopify/appApplication/getDetail`,
|
||||||
|
method: 'GET',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取商家申请信息
|
||||||
|
* @param {Object} param
|
||||||
|
*/
|
||||||
|
outDepositsPay(param) {
|
||||||
|
return util.request({
|
||||||
|
url: `/shopify/appDeposits/outDepositsPay`,
|
||||||
|
method: 'POST',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品列表
|
* 商品列表
|
||||||
* @param {Object} param
|
* @param {Object} param
|
||||||
|
@ -16,7 +82,7 @@ const shop = {
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品列表
|
* 商品分类列表
|
||||||
* @param {Object} param
|
* @param {Object} param
|
||||||
*/
|
*/
|
||||||
getCategory(param) {
|
getCategory(param) {
|
||||||
|
|
|
@ -614,15 +614,8 @@ const util = {
|
||||||
file: item.path,
|
file: item.path,
|
||||||
mode: 'img',
|
mode: 'img',
|
||||||
success(res) {
|
success(res) {
|
||||||
// 上传成功
|
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
const result = res.data.url;
|
const result = res.data.url;
|
||||||
// 补全路径赋值
|
|
||||||
if (obj.type == 2) {
|
|
||||||
obj.value.push(result);
|
|
||||||
} else if (obj.type == 1) {
|
|
||||||
obj.value = result;
|
|
||||||
}
|
|
||||||
obj.success && obj.success({
|
obj.success && obj.success({
|
||||||
value: result,
|
value: result,
|
||||||
});
|
});
|
||||||
|
|
|
@ -102,13 +102,21 @@
|
||||||
let result = []
|
let result = []
|
||||||
|
|
||||||
// 验证登录
|
// 验证登录
|
||||||
if (userinfo.value.userId) {
|
if (userinfo.value.id) {
|
||||||
result.push({
|
result.push({
|
||||||
name: '发布视频',
|
name: '发布视频',
|
||||||
img: '/static/footerMenu1.png',
|
img: '/static/footerMenu1.png',
|
||||||
url: '/pages/release/video',
|
url: '/pages/release/video',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 1是商家
|
||||||
|
if(userinfo.value.isShop == 1) {
|
||||||
|
result.push({
|
||||||
|
name: '发布商品',
|
||||||
|
img: '/static/footerMenu1.png',
|
||||||
|
url: '/pages/release/commodity',
|
||||||
|
})
|
||||||
|
}
|
||||||
// 追加
|
// 追加
|
||||||
// result.push({
|
// result.push({
|
||||||
// name: '打车',
|
// name: '打车',
|
||||||
|
|
|
@ -0,0 +1,231 @@
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
getCurrentInstance,
|
||||||
|
reactive,
|
||||||
|
computed,
|
||||||
|
defineEmits,
|
||||||
|
defineExpose,
|
||||||
|
} from 'vue'
|
||||||
|
// 工具
|
||||||
|
import util from '@/common/js/util.js';
|
||||||
|
import {
|
||||||
|
onLoad
|
||||||
|
} from '@dcloudio/uni-app'
|
||||||
|
// api
|
||||||
|
import api from '@/api/index.js';
|
||||||
|
|
||||||
|
// 代理
|
||||||
|
const {
|
||||||
|
proxy
|
||||||
|
} = getCurrentInstance()
|
||||||
|
const emit = defineEmits(['change'])
|
||||||
|
// 传参
|
||||||
|
const props = defineProps({
|
||||||
|
province: {
|
||||||
|
type: [String,Number],
|
||||||
|
},
|
||||||
|
city: {
|
||||||
|
type: [String,Number],
|
||||||
|
},
|
||||||
|
area: {
|
||||||
|
type: [String,Number],
|
||||||
|
},
|
||||||
|
})
|
||||||
|
// 地区
|
||||||
|
const region = reactive([])
|
||||||
|
// 地区下标
|
||||||
|
const regionIndex = reactive([0, 0, 0])
|
||||||
|
// 上次选择的地区下标
|
||||||
|
const regionIndexLast = reactive([0, 0, 0])
|
||||||
|
// 省份
|
||||||
|
const province = computed(() => {
|
||||||
|
return region[regionIndex[0]]
|
||||||
|
})
|
||||||
|
// 区县
|
||||||
|
const city = computed(() => {
|
||||||
|
return province.value && province.value.children[regionIndex[1]]
|
||||||
|
})
|
||||||
|
// 地区
|
||||||
|
const area = computed(() => {
|
||||||
|
return city.value && city.value.children[regionIndex[2]]
|
||||||
|
})
|
||||||
|
// 加载状态
|
||||||
|
const loading = ref(false);
|
||||||
|
|
||||||
|
onLoad(() => {
|
||||||
|
// 获取数据
|
||||||
|
getRegion()
|
||||||
|
})
|
||||||
|
|
||||||
|
// 初始化地区下标
|
||||||
|
function initRegionIndex() {
|
||||||
|
console.log('props', props)
|
||||||
|
if (props.province) {
|
||||||
|
const provinceIndex = region.findIndex(item => item.id == props.province);
|
||||||
|
regionIndex[0] = provinceIndex;
|
||||||
|
|
||||||
|
if (props.city) {
|
||||||
|
const cityIndex = region[provinceIndex].children.findIndex(item => item.id == props.city);
|
||||||
|
regionIndex[1] = cityIndex;
|
||||||
|
|
||||||
|
if (props.area) {
|
||||||
|
const areaIndex = region[provinceIndex].children[cityIndex].children.findIndex(item => item.id ==
|
||||||
|
props.area);
|
||||||
|
regionIndex[2] = areaIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取数据
|
||||||
|
function getRegion() {
|
||||||
|
loading.value = true;
|
||||||
|
try {
|
||||||
|
//
|
||||||
|
api.getRegion().then(res => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
region.length = 0
|
||||||
|
region.push(...res.data)
|
||||||
|
loading.value = false;
|
||||||
|
// 初始化下标
|
||||||
|
initRegionIndex()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
util.alert({
|
||||||
|
content: res.msg,
|
||||||
|
showCancel: false,
|
||||||
|
})
|
||||||
|
loading.value = false;
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error occurred while fetching region data:', error);
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 切换
|
||||||
|
* @param {Object} value 具体的值
|
||||||
|
* @param {Object} index 下标
|
||||||
|
*/
|
||||||
|
function handleIndex(value, index) {
|
||||||
|
if (index >= 0 && index < regionIndex.length) {
|
||||||
|
regionIndex[index] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开启弹窗
|
||||||
|
function open() {
|
||||||
|
console.log('open', proxy.$refs)
|
||||||
|
proxy.$refs.selection.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭弹窗
|
||||||
|
function close() {
|
||||||
|
proxy.$refs.selection.close()
|
||||||
|
setTimeout(() => {
|
||||||
|
// 恢复上一次选择的值
|
||||||
|
Object.assign(regionIndex, regionIndexLast.slice());
|
||||||
|
// 恢复上一次选择的值
|
||||||
|
regionIndexLast = regionIndex.slice();
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 取消
|
||||||
|
function handleCancel() {
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 选择
|
||||||
|
function handleSubmit() {
|
||||||
|
Object.assign(regionIndexLast, regionIndex.slice());
|
||||||
|
if (province.value && city.value && area.value) {
|
||||||
|
emit('change', {
|
||||||
|
province: province.value,
|
||||||
|
city: city.value,
|
||||||
|
area: area.value,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
proxy.$refs.selection.close()
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
defineExpose({
|
||||||
|
open,
|
||||||
|
close,
|
||||||
|
initRegionIndex,
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<template v-if="province">
|
||||||
|
<text>{{province.regionName}}</text>
|
||||||
|
<text>{{city.regionName}}</text>
|
||||||
|
<text>{{area.regionName}}</text>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<text class="placeholderStyle">请选择产品所在地</text>
|
||||||
|
</template>
|
||||||
|
<uni-popup ref="selection" type="bottom">
|
||||||
|
<view class="selectionAlt popBot bfff">
|
||||||
|
<view class="header rows plr30">
|
||||||
|
<view class="option ptb30 f28" @click="handleCancel">取消</view>
|
||||||
|
<view class="title f32">选择省市区</view>
|
||||||
|
<view class="option ptb30 f28" @click="handleSubmit">确认</view>
|
||||||
|
</view>
|
||||||
|
<view class="main df plr10 plr10">
|
||||||
|
<scroll-view scroll-y="true" class="scroll province">
|
||||||
|
<view class="list">
|
||||||
|
<view class="item ptb20 tac" v-for="(item, index) in region" :key="index"
|
||||||
|
:class="{'active': index == regionIndex[0]}" @click="handleIndex(index,0)">
|
||||||
|
{{ item.regionName }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
<scroll-view scroll-y="true" class="scroll city" v-if="province">
|
||||||
|
<view class="list">
|
||||||
|
<view class="item ptb20 tac" v-for="(item, index) in province.children" :key="index"
|
||||||
|
:class="{'active': index == regionIndex[1]}" @click="handleIndex(index,1)">
|
||||||
|
{{ item.regionName }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
<scroll-view scroll-y="true" class="scroll area" v-if="city">
|
||||||
|
<view class="list">
|
||||||
|
<view class="item ptb20 tac" v-for="(item, index) in city.children" :key="index"
|
||||||
|
:class="{'active': index == regionIndex[2]}" @click="handleIndex(index,2)">
|
||||||
|
{{ item.regionName }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
<view v-if="loading" class="loading">Loading...</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</uni-popup>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
// 选择器弹窗
|
||||||
|
.selectionAlt {
|
||||||
|
|
||||||
|
//
|
||||||
|
.main {
|
||||||
|
height: 500rpx;
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
color: #999;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading {
|
||||||
|
text-align: center;
|
||||||
|
padding: 20rpx;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -30,7 +30,9 @@
|
||||||
// 获取详情
|
// 获取详情
|
||||||
function getDetail() {
|
function getDetail() {
|
||||||
api.getArticle({
|
api.getArticle({
|
||||||
path: [wrapId.value]
|
query: {
|
||||||
|
agreementId: 4,
|
||||||
|
},
|
||||||
}).then(rs => {
|
}).then(rs => {
|
||||||
if (rs.code == 200) {
|
if (rs.code == 200) {
|
||||||
Object.assign(wrap, rs.data)
|
Object.assign(wrap, rs.data)
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
else showHeader.value = false
|
else showHeader.value = false
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 跳转
|
||||||
function link(url) {
|
function link(url) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url,
|
url,
|
||||||
|
@ -170,7 +171,7 @@
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<view class="item ver" @click="link('/pages/shop/settle')">
|
<view class="item ver" @click="link('/pages/shop/settle')" >
|
||||||
<image src="/static/mine-ruzhushangjia.png" mode="aspectFit" class="wh50" />
|
<image src="/static/mine-ruzhushangjia.png" mode="aspectFit" class="wh50" />
|
||||||
<text class="txt mt10 wsn">店铺管理</text>
|
<text class="txt mt10 wsn">店铺管理</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
@ -161,7 +161,8 @@
|
||||||
<view class="searchBox ptb20 bfff">
|
<view class="searchBox ptb20 bfff">
|
||||||
<view class="search rows mlr20 ptb10 plr30 bar">
|
<view class="search rows mlr20 ptb10 plr30 bar">
|
||||||
<uni-icons type="search" />
|
<uni-icons type="search" />
|
||||||
<input type="text" v-model="keyword" placeholder="输入手机号/账号" class="f1 ml10" confirm-type="search" />
|
<input type="text" focus="true" v-model="keyword" placeholder="输入手机号/账号" class="f1 ml10"
|
||||||
|
confirm-type="search" />
|
||||||
<view class="btn bar sm colourful w120" @click="refreshFriendList">搜索</view>
|
<view class="btn bar sm colourful w120" @click="refreshFriendList">搜索</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
<script setup>
|
|
||||||
/**
|
|
||||||
* 选择好友
|
|
||||||
*/
|
|
||||||
import {
|
|
||||||
useStore,
|
|
||||||
} from 'vuex'
|
|
||||||
import {
|
|
||||||
ref,
|
|
||||||
computed,
|
|
||||||
reactive,
|
|
||||||
onMounted,
|
|
||||||
inject,
|
|
||||||
getCurrentInstance,
|
|
||||||
watch,
|
|
||||||
} from 'vue'
|
|
||||||
// 工具库
|
|
||||||
import util from '@/common/js/util.js'
|
|
||||||
// 腾讯云聊天
|
|
||||||
import TencentCloudChat from '@tencentcloud/chat';
|
|
||||||
//
|
|
||||||
import api from '@/api/index.js'
|
|
||||||
//
|
|
||||||
const props = defineProps({
|
|
||||||
// 列表数据
|
|
||||||
list: {
|
|
||||||
type: Array,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const {
|
|
||||||
proxy
|
|
||||||
} = getCurrentInstance();
|
|
||||||
|
|
||||||
// 已选择的视频id
|
|
||||||
const ids = defineModel('ids')
|
|
||||||
//
|
|
||||||
const store = useStore()
|
|
||||||
const userinfo = computed(() => {
|
|
||||||
let result = store.state.userinfo
|
|
||||||
return result
|
|
||||||
})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 点击用户
|
|
||||||
* @param {Object} item 当前用户信息
|
|
||||||
*/
|
|
||||||
function handleUser(item) {
|
|
||||||
console.log('handleUser', item)
|
|
||||||
const findIndex = ids.value.findIndex(node => node == item.userID)
|
|
||||||
if (findIndex >= 0) ids.value.splice(findIndex, 1)
|
|
||||||
else ids.value.push(item.userID)
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<view class="firendBox pr">
|
|
||||||
<view class="list bfff">
|
|
||||||
<view class="li" v-for="(item, index) in list" :key="index" @click="handleUser(item)">
|
|
||||||
<view class="item rows ptb20 pl30 pr50">
|
|
||||||
<image class="wh80 avatar cir" :src="item.profile.avatar" mode="aspectFill" />
|
|
||||||
<view class="name thd f1 ml20 c333 f32">{{item.remark || item.profile.nick}}</view>
|
|
||||||
<uni-icons type="circle-filled" size="40rpx" color="#20D200" v-if="ids.includes(item.userID)" />
|
|
||||||
<uni-icons type="circle" size="40rpx" color="#ccc" v-else />
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="mtb20 nomore">到底啦~</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
// 朋友列表
|
|
||||||
.firendBox {
|
|
||||||
height: 100%;
|
|
||||||
|
|
||||||
.scroll {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 列表项
|
|
||||||
.li {
|
|
||||||
.letter {
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 子集
|
|
||||||
.child {
|
|
||||||
.item+.item {
|
|
||||||
border-top: 2rpx solid #eee;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -15,12 +15,12 @@
|
||||||
} from '@dcloudio/uni-app'
|
} from '@dcloudio/uni-app'
|
||||||
// 工具库
|
// 工具库
|
||||||
import util from '@/common/js/util.js'
|
import util from '@/common/js/util.js'
|
||||||
// 通讯录
|
|
||||||
import book from './book'
|
|
||||||
// 头部
|
// 头部
|
||||||
import apex from '@/components/header/apex.vue'
|
import apex from '@/components/header/apex.vue'
|
||||||
// 腾讯云聊天
|
// 腾讯云聊天
|
||||||
import TencentCloudChat from '@tencentcloud/chat';
|
import TencentCloudChat from '@tencentcloud/chat';
|
||||||
|
// api
|
||||||
|
import api from '@/api/index.js'
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
// 已选择的用户id
|
// 已选择的用户id
|
||||||
|
@ -42,25 +42,31 @@
|
||||||
|
|
||||||
// 获取朋友列表
|
// 获取朋友列表
|
||||||
function getFriendList() {
|
function getFriendList() {
|
||||||
// 验证sdk是否准备完毕
|
api.news.getFriendList().then(rs => {
|
||||||
let isReady = uni.$chat.isReady();
|
if (rs.code == 200) {
|
||||||
|
|
||||||
if (!isReady) {
|
|
||||||
setTimeout(function() {
|
|
||||||
getFriendList()
|
|
||||||
}, 200);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
uni.$chat.getFriendList().then(rs => {
|
|
||||||
if (rs.code == 0) {
|
|
||||||
const result = rs.data
|
const result = rs.data
|
||||||
|
list.length = 0
|
||||||
//
|
//
|
||||||
list.push(...result)
|
list.push(...result)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
util.alert({
|
||||||
|
content: rs.msg,
|
||||||
|
showCancel: false,
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 点击用户
|
||||||
|
* @param {Object} item 当前用户信息
|
||||||
|
*/
|
||||||
|
function handleUser(item) {
|
||||||
|
const findIndex = ids.value.findIndex(node => node == item.userId)
|
||||||
|
if (findIndex >= 0) ids.value.splice(findIndex, 1)
|
||||||
|
else ids.value.push(item.userId)
|
||||||
|
}
|
||||||
|
|
||||||
// 新建群组
|
// 新建群组
|
||||||
function handleCreateGroup() {
|
function handleCreateGroup() {
|
||||||
if (!name.value) {
|
if (!name.value) {
|
||||||
|
@ -101,7 +107,21 @@
|
||||||
<uni-search-bar placeholder="请输入群聊名称" v-model="name" style="background: #fff;" />
|
<uni-search-bar placeholder="请输入群聊名称" v-model="name" style="background: #fff;" />
|
||||||
|
|
||||||
<view class="jy-chat-box mt30">
|
<view class="jy-chat-box mt30">
|
||||||
<book :list="list" v-model:ids="ids" />
|
<view class="firendBox pr">
|
||||||
|
<view class="list bfff">
|
||||||
|
<view class="li" v-for="(item, index) in list" :key="index" @click="handleUser(item)">
|
||||||
|
<view class="item rows ptb20 pl30 pr50">
|
||||||
|
<image class="wh80 avatar cir" :src="item.avatar" mode="aspectFill" />
|
||||||
|
<view class="name thd f1 ml20 c333 f32">{{item.remark || item.userNickname}}</view>
|
||||||
|
<uni-icons type="circle-filled" size="40rpx" color="#20D200"
|
||||||
|
v-if="ids.includes(item.userID)" />
|
||||||
|
<uni-icons type="circle" size="40rpx" color="#ccc" v-else />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="mtb20 nomore">到底啦~</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="fill" style="height: 120rpx;"></view>
|
<view class="fill" style="height: 120rpx;"></view>
|
||||||
|
@ -113,5 +133,26 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
//
|
// 朋友列表
|
||||||
|
.firendBox {
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.scroll {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 列表项
|
||||||
|
.li {
|
||||||
|
.letter {
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 子集
|
||||||
|
.child {
|
||||||
|
.item+.item {
|
||||||
|
border-top: 2rpx solid #eee;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
|
@ -1,5 +1,28 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
// 发布商品
|
// 发布商品
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
reactive
|
||||||
|
} from 'vue'
|
||||||
|
//
|
||||||
|
import {
|
||||||
|
onLoad
|
||||||
|
} from '@dcloudio/uni-app'
|
||||||
|
// 表单
|
||||||
|
const form = reactive({
|
||||||
|
//
|
||||||
|
})
|
||||||
|
|
||||||
|
onLoad((options) => {
|
||||||
|
//
|
||||||
|
})
|
||||||
|
|
||||||
|
// 发布商品
|
||||||
|
function handleSubmit() {
|
||||||
|
const data = {
|
||||||
|
...form
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -57,18 +80,24 @@
|
||||||
<input type="text" placeholder="输入时间" placeholder-class="placeholderStyle" />
|
<input type="text" placeholder="输入时间" placeholder-class="placeholderStyle" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="line rows ptb20">
|
|
||||||
<view class="title w150">运费</view>
|
|
||||||
<view class="col f1">
|
|
||||||
<input type="text" placeholder="输入价格" placeholder-class="placeholderStyle" />
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="line rows ptb20">
|
<view class="line rows ptb20">
|
||||||
<view class="title w150">所在地</view>
|
<view class="title w150">所在地</view>
|
||||||
<view class="col f1">
|
<view class="col f1">
|
||||||
<input type="text" placeholder="输入所在地" placeholder-class="placeholderStyle" />
|
<input type="text" placeholder="输入所在地" placeholder-class="placeholderStyle" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="line rows ptb20">
|
||||||
|
<view class="title w150">详细所在地</view>
|
||||||
|
<view class="col f1">
|
||||||
|
<input type="text" placeholder="输入详细所在地" placeholder-class="placeholderStyle" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="line rows ptb20">
|
||||||
|
<view class="title w150">出让佣金</view>
|
||||||
|
<view class="col f1">
|
||||||
|
<input type="text" placeholder="输入价格" placeholder-class="placeholderStyle" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="main area">
|
<view class="main area">
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
function getDetail() {
|
function getDetail() {
|
||||||
api.shop.productDetail({
|
api.shop.productDetail({
|
||||||
query: {
|
query: {
|
||||||
|
// 产品id
|
||||||
productionId: id.value
|
productionId: id.value
|
||||||
}
|
}
|
||||||
}).then(rs => {
|
}).then(rs => {
|
||||||
|
|
|
@ -9,30 +9,203 @@
|
||||||
*/
|
*/
|
||||||
import {
|
import {
|
||||||
ref,
|
ref,
|
||||||
reactive
|
reactive,
|
||||||
|
computed,
|
||||||
|
getCurrentInstance,
|
||||||
} from 'vue';
|
} from 'vue';
|
||||||
import durianapi from '@/api/durian.js';
|
import {
|
||||||
// 工具裤脚
|
onLoad,
|
||||||
|
onReady,
|
||||||
|
} from '@dcloudio/uni-app';
|
||||||
|
// vuex
|
||||||
|
import {
|
||||||
|
useStore
|
||||||
|
} from 'vuex'
|
||||||
|
//
|
||||||
|
import api from '@/api/index.js';
|
||||||
|
// 工具库
|
||||||
import util from '@/common/js/util.js'
|
import util from '@/common/js/util.js'
|
||||||
|
// 选择省市区
|
||||||
|
import regionSelection from '@/components/public/regionSelection/regionSelection.vue';
|
||||||
|
//
|
||||||
|
const store = useStore()
|
||||||
|
const {
|
||||||
|
proxy
|
||||||
|
} = getCurrentInstance();
|
||||||
// 表单
|
// 表单
|
||||||
const form = reactive({
|
const form = reactive({
|
||||||
shopHeader: '',
|
rectangleLogo: '',
|
||||||
shopName: '',
|
qualificationPicture: [],
|
||||||
contact: '',
|
idCardFront: '',
|
||||||
productLocation: '',
|
idCardBack: '',
|
||||||
productCategory: '',
|
|
||||||
customer: '',
|
|
||||||
idcard: '',
|
|
||||||
idcard2: '',
|
|
||||||
businessLicense: [],
|
|
||||||
status: 3
|
|
||||||
})
|
})
|
||||||
// 当前模式 notice入驻须知 wait审核中 fail驳回 form表单 success成功
|
// 当前模式 code 0待缴纳1待申请2待审核3已通过4已拒绝 form表单
|
||||||
const mode = ref('notice')
|
const mode = reactive({
|
||||||
// 测试文本
|
code: 0,
|
||||||
const text = ref(
|
})
|
||||||
`<p>会员可选择从九亿平台入驻申请成为商家</p><br><p>1. 押金,在成为商家前需要先缴纳押金才可以申请成为商家,如果不想成为商家,可以选择退回押金取消商家分身,如果作为商家并且有进行中的订单,则需要等待订单完成才可以进行退回押金。</p><br><p>2. 申请,填写商家身份信息,商家头像,名称,联系方式,发货地点,商品分类,负责人身份信息作为材料申请,需经过九亿平台审核,才可以选择成为商家。</p><br><p>3. 审核,为保护平台公平性竞争,创造美好合作共赢的平台,九亿有权对您提交的店铺信息,发布的商品信息做审核,驳回,下架等行为,并且会及时通知到会员。</p><p>会员通过审核成为商家后,仍可以对自己的店铺信息做修改,并且平台会重新审核您的店铺信息,不得允许虚假等不良行为出现。</p><br><p>4. 商品,成为商家后,会员可以选在在平台发布自己的商品,可以发布视频对自己的商品做链接并进行投流推广,别人浏览到您的视频,可以选择点赞,评论等行为,增加您的视频热度,也可以通过收藏您的视频,对您的视频进行投流推广,让您的商品和视频可以受到更多人的关注,请会员尽情发挥想法,让自己的视频内容更受欢迎</p><br><p>5. 钱包,商家的商品产生订单后,其他会员付款会产生待入账的资金和榴莲果到您的钱包,当订单取消或平台申诉退款等行为,您的待入账的资产会原路退回到该订单用户中,当您的订单结束,已完成且无售后问题,您订单对应的待入账的信息将会进入到进的钱包中</p><br><p>6. 客服,您可以选择联系九亿平台咨询您想了解的任何问题,也可以通过消息联系用户通过店铺发起的订单咨询,以便于您更好的了解平台以及和其他会员的联系。</p><br><p>7. 运营,为保证平台公平、公正、公开,平台会不定期的复查,审核您的商户信息,请会员完善正确的信息,不得出现虚假,欺骗,等不良行为对平台或其他会员造成损失,否则平台有权对您的行为做出对应的行为。</p><p>平台会不定期更新商户的规则,请会员及时阅读。</p><br><p>平台祝每一位会员生活美满~</p>`
|
// 文本内容
|
||||||
)
|
const content = ref({})
|
||||||
|
// 字典列表
|
||||||
|
const dictList = reactive([])
|
||||||
|
// 选择下标分类
|
||||||
|
const dictIndex = ref('')
|
||||||
|
// 用户信息
|
||||||
|
const userinfo = computed(() => {
|
||||||
|
return store.state.userinfo
|
||||||
|
})
|
||||||
|
|
||||||
|
onLoad(() => {
|
||||||
|
// 获取商家入驻状态
|
||||||
|
getShopStatus()
|
||||||
|
})
|
||||||
|
|
||||||
|
onReady(() => {
|
||||||
|
// proxy.$refs.regionSelectionRef.open()
|
||||||
|
})
|
||||||
|
|
||||||
|
// 获取表单信息
|
||||||
|
function getForm() {
|
||||||
|
Promise.all([getDetail(), getDict()]).then(rs => {
|
||||||
|
// 获取详情
|
||||||
|
const detail = rs[0]
|
||||||
|
// 获取字典分类
|
||||||
|
const dict = rs[1]
|
||||||
|
if (!detail) return
|
||||||
|
form.id = detail.id
|
||||||
|
form.rectangleLogo = detail.rectangleLogo
|
||||||
|
form.qualificationPicture = detail.qualificationPicture.split(',')
|
||||||
|
form.idCardFront = detail.idCardFront
|
||||||
|
form.idCardBack = detail.idCardBack
|
||||||
|
form.name = detail.name
|
||||||
|
form.phone = detail.phone
|
||||||
|
form.addressDetail = detail.addressDetail
|
||||||
|
form.categoryId = detail.categoryId
|
||||||
|
form.province = detail.province
|
||||||
|
form.city = detail.city
|
||||||
|
form.district = detail.district
|
||||||
|
// 赋值
|
||||||
|
dictIndex.value = dict.findIndex(item => item.id == detail.categoryId)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取申请信息
|
||||||
|
function getDetail() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
api.shop.getStoreDetail().then(rs => {
|
||||||
|
if (rs.code == 200) {
|
||||||
|
resolve(rs.data)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
util.alert({
|
||||||
|
showCancel: false,
|
||||||
|
content: rs.msg,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 切换模式code
|
||||||
|
function handleModeCode(code) {
|
||||||
|
// 模式
|
||||||
|
mode.code = code
|
||||||
|
switch (code) {
|
||||||
|
case 0:
|
||||||
|
// 获取文章
|
||||||
|
getarticle()
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
// 获取文章
|
||||||
|
getarticle()
|
||||||
|
break;
|
||||||
|
case 'form':
|
||||||
|
// 获取表单信息
|
||||||
|
getForm()
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取字典分类
|
||||||
|
function getDict() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
api.shop.categoryAll({}).then(rs => {
|
||||||
|
if (rs.code == 200) {
|
||||||
|
resolve(rs.data)
|
||||||
|
dictList.length = 0
|
||||||
|
dictList.push(...rs.data)
|
||||||
|
resolve()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
util.alert({
|
||||||
|
showCancel: false,
|
||||||
|
content: rs.msg,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取商家入驻状态
|
||||||
|
function getShopStatus() {
|
||||||
|
api.shop.getShopStatus().then(rs => {
|
||||||
|
if (rs.code == 200) {
|
||||||
|
Object.assign(mode, rs.data)
|
||||||
|
handleModeCode(mode.code)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
util.alert({
|
||||||
|
showCancel: false,
|
||||||
|
content: rs.msg,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 商家缴纳押金
|
||||||
|
function depositsPay() {
|
||||||
|
api.shop.depositsPay().then(rs => {
|
||||||
|
if (rs.code == 200) {
|
||||||
|
// 修改状态 变为已缴纳
|
||||||
|
mode.code = 1
|
||||||
|
return
|
||||||
|
}
|
||||||
|
util.alert({
|
||||||
|
showCancel: false,
|
||||||
|
content: rs.msg,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 商家取消押金
|
||||||
|
function depositsCancel() {
|
||||||
|
api.shop.depositsCancel().then(rs => {
|
||||||
|
if (rs.code == 200) {
|
||||||
|
// 修改状态 变为待缴纳
|
||||||
|
mode.code = 0
|
||||||
|
return
|
||||||
|
}
|
||||||
|
util.alert({
|
||||||
|
showCancel: false,
|
||||||
|
content: rs.msg,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取文章
|
||||||
|
function getarticle() {
|
||||||
|
|
||||||
|
api.getArticle({
|
||||||
|
query: {
|
||||||
|
agreementId: 4,
|
||||||
|
},
|
||||||
|
}).then(rs => {
|
||||||
|
if (rs.code == 200) {
|
||||||
|
content.value = rs.data
|
||||||
|
return
|
||||||
|
}
|
||||||
|
util.alert({
|
||||||
|
showCancel: false,
|
||||||
|
content: rs.msg,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传图片
|
* 上传图片
|
||||||
|
@ -42,11 +215,18 @@
|
||||||
function uploadImg(key, type) {
|
function uploadImg(key, type) {
|
||||||
util.upload_image({
|
util.upload_image({
|
||||||
value: form[key],
|
value: form[key],
|
||||||
type: type || 1,
|
|
||||||
success: rs => {
|
success: rs => {
|
||||||
// 根据条件追加
|
switch (type) {
|
||||||
if (type != 2) form[key] = rs.value
|
case 1:
|
||||||
}
|
form[key] = rs.value
|
||||||
|
break
|
||||||
|
case 2:
|
||||||
|
console.log('form[key]', form[key])
|
||||||
|
form[key].push(rs.value)
|
||||||
|
console.log('form[key]', form[key])
|
||||||
|
break
|
||||||
|
}
|
||||||
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,71 +243,81 @@
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 提交
|
/**
|
||||||
|
* 选择省市区
|
||||||
|
* @param {Object} ev
|
||||||
|
*/
|
||||||
|
function handleRegion(ev) {
|
||||||
|
console.log('handleRegion', ev)
|
||||||
|
form.province = ev.province.id
|
||||||
|
form.city = ev.city.id
|
||||||
|
form.district = ev.area.id
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 切换产品分类
|
||||||
|
* @param {Object} ev 默认事件
|
||||||
|
*/
|
||||||
|
function handleDict(ev) {
|
||||||
|
if (!ev || typeof ev.detail.value === 'undefined') {
|
||||||
|
console.error('Invalid event object or missing value');
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const index = ev.detail.value;
|
||||||
|
if (index === dictIndex.value) return;
|
||||||
|
if (index >= 0 && index < dictList.length) {
|
||||||
|
dictIndex.value = index;
|
||||||
|
form.categoryId = dictList[index].id;
|
||||||
|
} else {
|
||||||
|
console.error('Invalid index:', index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 商家入驻
|
||||||
function handleSubmit() {
|
function handleSubmit() {
|
||||||
const data = {
|
const data = {
|
||||||
...form
|
...form
|
||||||
}
|
}
|
||||||
|
console.log('data', data)
|
||||||
|
|
||||||
// 验证必填项
|
// 验证必填项
|
||||||
if (!data.shopHeader) {
|
if (!data.rectangleLogo) {
|
||||||
util.alert('商家头像不能为空')
|
util.alert('商家头像不能为空')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!data.shopName) {
|
if (!data.name) {
|
||||||
util.alert('商家名称不能为空')
|
util.alert('商家名称不能为空')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!data.contact) {
|
if (!data.phone) {
|
||||||
util.alert('联系方式不能为空')
|
util.alert('联系方式不能为空')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!data.productLocation) {
|
if (!data.province) {
|
||||||
util.alert('产品所在地不能为空')
|
util.alert('产品所在地不能为空')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!data.productCategory) {
|
if (!data.categoryId) {
|
||||||
util.alert('产品类别不能为空')
|
util.alert('产品类别不能为空')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!data.customer) {
|
if (!data.qualificationPicture[0]) {
|
||||||
util.alert('客服电话不能为空')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!data.businessLicense[0]) {
|
|
||||||
util.alert('营业执照不能为空')
|
util.alert('营业执照不能为空')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!data.idcard) {
|
if (!data.idCardFront) {
|
||||||
util.alert('身份证正面不能为空')
|
util.alert('身份证正面不能为空')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!data.idcard2) {
|
if (!data.idCardBack) {
|
||||||
util.alert('身份证反面不能为空')
|
util.alert('身份证反面不能为空')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
// 营业执照
|
||||||
|
data.qualificationPicture = data.qualificationPicture.join(',')
|
||||||
|
|
||||||
// 格式化
|
api.shop.application({
|
||||||
data.shopHeader = util.replace_url(data.shopHeader)
|
data: data,
|
||||||
data.businessLicense = data.businessLicense.map(node => {
|
|
||||||
return util.replace_url(node)
|
|
||||||
}).join(',')
|
|
||||||
data.idcard = util.replace_url(data.idcard)
|
|
||||||
data.idcard2 = util.replace_url(data.idcard2)
|
|
||||||
|
|
||||||
durianapi.shopApply({
|
|
||||||
data: {
|
|
||||||
shopHeader: data.shopHeader,
|
|
||||||
shopName: data.shopName,
|
|
||||||
contact: data.contact,
|
|
||||||
productLocation: data.productLocation,
|
|
||||||
productCategory: data.productCategory,
|
|
||||||
customer: data.customer,
|
|
||||||
idcard: data.idcard,
|
|
||||||
idcard2: data.idcard2,
|
|
||||||
businessLicense: data.businessLicense,
|
|
||||||
status: 3
|
|
||||||
}
|
|
||||||
}).then(rs => {
|
}).then(rs => {
|
||||||
if (rs.code === 200) {
|
if (rs.code === 200) {
|
||||||
util.alert({
|
util.alert({
|
||||||
|
@ -144,40 +334,60 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 退出缴纳押金
|
||||||
|
function outDepositsPay() {
|
||||||
|
util.alert({
|
||||||
|
content: '确认缴纳押金并放弃商家身份?',
|
||||||
|
}).then(rs => {
|
||||||
|
if (rs.confirm) return
|
||||||
|
api.shop.outDepositsPay().then(rs => {
|
||||||
|
if (rs.code == 200) {
|
||||||
|
// 修改状态 变为待缴纳
|
||||||
|
handleModeCode(0)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
util.alert({
|
||||||
|
showCancel: false,
|
||||||
|
content: rs.msg,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<!-- 须知 -->
|
<!-- 须知 -->
|
||||||
<template v-if="mode == 'notice'">
|
<template v-if="[0,1].includes(mode.code)">
|
||||||
<view class="app">
|
<view class="app">
|
||||||
<view class="notice oh mtb30 mlr30 plr30 ptb20 bfff br20">
|
<view class="notice oh mtb30 mlr30 plr30 ptb20 bfff br20">
|
||||||
<view class="title tac f34 c333 b">商家入驻须知</view>
|
<view class="title tac f34 c333 b">商家入驻须知</view>
|
||||||
<view class="content mtb50">
|
<view class="content mtb50">
|
||||||
<rich-text :nodes="text"></rich-text>
|
<rich-text :nodes="content.content"></rich-text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="tac c666 f28">继续即代表同意《商家入驻须知》</view>
|
<view class="tac c666 f28">继续即代表同意《商家入驻须知》</view>
|
||||||
|
|
||||||
<view class="fill" style="height: 160rpx;"></view>
|
<view class="fill" style="height: 160rpx;" />
|
||||||
|
|
||||||
<view class="footer plr30 bfff shadow">
|
<view class="footer plr30 bfff shadow">
|
||||||
<!-- 未缴纳押金 -->
|
<!-- 未缴纳押金 -->
|
||||||
<template v-if="0">
|
<template v-if="mode.code == 0">
|
||||||
<view class="btn black">缴纳押金</view>
|
<view class="btn black" @click="depositsPay">缴纳押金</view>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<view class="rows">
|
<view class="rows">
|
||||||
<view class="btn cancel plr30">退回押金</view>
|
<view class="btn cancel plr30" @click="outDepositsPay">退回押金</view>
|
||||||
<view class="btn colourful f1" @click="mode = 'form'">申请入驻</view>
|
<view class="btn colourful f1" @click="handleModeCode('form')">申请入驻</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 审核中 -->
|
<!-- 待审核 -->
|
||||||
<template v-else-if="mode == 'wait'">
|
<template v-else-if="mode.code == 2">
|
||||||
<view class="app">
|
<view class="app">
|
||||||
<view class="result ver">
|
<view class="result ver">
|
||||||
<uni-icons type="checkbox-filled" color="#20D200" size="160rpx" />
|
<uni-icons type="checkbox-filled" color="#20D200" size="160rpx" />
|
||||||
|
@ -190,20 +400,20 @@
|
||||||
<view class="fill" style="height: 160rpx;"></view>
|
<view class="fill" style="height: 160rpx;"></view>
|
||||||
|
|
||||||
<view class="footer rows plr30 bfff shadow">
|
<view class="footer rows plr30 bfff shadow">
|
||||||
<view class="btn cancel f1">取消申请并退回押金</view>
|
<view class="btn cancel f1" @click="outDepositsPay">取消申请并退回押金</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 审核驳回 -->
|
<!-- 审核驳回 -->
|
||||||
<template v-else-if="mode == 'fail'">
|
<template v-else-if="mode.code == 4">
|
||||||
<view class="app">
|
<view class="app">
|
||||||
<view class="result ver">
|
<view class="result ver">
|
||||||
<uni-icons type="clear" color="#ff0000" size="160rpx" />
|
<uni-icons type="clear" color="#ff0000" size="160rpx" />
|
||||||
<view class="title mtb30 f34">审核驳回</view>
|
<view class="title mtb30 f34">审核驳回</view>
|
||||||
<view class="value f30">
|
<view class="value f30">
|
||||||
<text class="c666">驳回原因:</text>
|
<text class="c666">驳回原因:</text>
|
||||||
<text class="c333">身份证照片不清晰</text>
|
<text class="c333">{{mode.msg}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="reject mtb30 c666 f28">
|
<view class="reject mtb30 c666 f28">
|
||||||
<view>驳回结果异议? 可在个人中心-设置里面联系我们</view>
|
<view>驳回结果异议? 可在个人中心-设置里面联系我们</view>
|
||||||
|
@ -213,46 +423,35 @@
|
||||||
<view class="fill" style="height: 160rpx;"></view>
|
<view class="fill" style="height: 160rpx;"></view>
|
||||||
|
|
||||||
<view class="footer rows plr30 bfff shadow">
|
<view class="footer rows plr30 bfff shadow">
|
||||||
<view class="btn cancel plr30">退回押金</view>
|
<view class="btn cancel plr30" @click="outDepositsPay">退回押金</view>
|
||||||
<view class="btn colourful f1" @click="mode = 'form'">修改信息</view>
|
<view class="btn colourful f1" @click="handleModeCode('form')">修改信息</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 申请成功 -->
|
<!-- 申请成功 -->
|
||||||
<template v-else-if="mode == 'success'">
|
<template v-else-if="mode.code == 3">
|
||||||
<view class="app">
|
<view class="app">
|
||||||
<view class="result ver">
|
<view class="result ver">
|
||||||
<uni-icons type="checkbox-filled" color="#20D200" size="160rpx" />
|
<uni-icons type="checkbox-filled" color="#20D200" size="160rpx" />
|
||||||
<view class="title mtb30 f34">恭喜您,您已成为商家</view>
|
<view class="title mtb30 f34">恭喜您,您已成为商家</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- <view class="menu oh mtb30 mlr30 plr20 c333 f30 bfff br10">
|
<view class="fill" style="height: 160rpx;"></view>
|
||||||
<view class="line rows">
|
|
||||||
<view class="key">商家主页</view>
|
|
||||||
<uni-icons type="right"></uni-icons>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="line rows">
|
<view class="footer plr30 bfff shadow">
|
||||||
<view class="key">发布产品</view>
|
<view class="btn cancel plr30" @click="outDepositsPay">退回押金并放弃商家身份</view>
|
||||||
<uni-icons type="right"></uni-icons>
|
</view>
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="line rows">
|
|
||||||
<view class="key">修改信息</view>
|
|
||||||
<uni-icons type="right"></uni-icons>
|
|
||||||
</view>
|
|
||||||
</view> -->
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 表单申请 -->
|
<!-- 表单申请 -->
|
||||||
<template v-else-if="mode == 'form'">
|
<template v-else-if="mode.code == 'form'">
|
||||||
<view class="appbw plr30">
|
<view class="appbw plr30">
|
||||||
<!-- 头像 -->
|
<!-- 头像 -->
|
||||||
<view class="avatarBox ver mt50">
|
<view class="avatarBox ver mt50">
|
||||||
<view class="avatar oh pr wh220 br20" @click="uploadImg('shopHeader')">
|
<view class="avatar oh pr wh220 br20" @click="uploadImg('rectangleLogo',1)">
|
||||||
<image class="img br20" :src="form.shopHeader" mode="aspectFill" v-if="form.shopHeader" />
|
<image class="img br20" :src="form.rectangleLogo" mode="aspectFill" v-if="form.rectangleLogo" />
|
||||||
<view class="pfull fmid" v-else>
|
<view class="pfull fmid" v-else>
|
||||||
<uni-icons type="plusempty" color="#999" size="80rpx" />
|
<uni-icons type="plusempty" color="#999" size="80rpx" />
|
||||||
</view>
|
</view>
|
||||||
|
@ -267,48 +466,55 @@
|
||||||
<view class="item rows ptb20">
|
<view class="item rows ptb20">
|
||||||
<view class="key c666">店铺名称</view>
|
<view class="key c666">店铺名称</view>
|
||||||
<view class="value f1 ml20 tar">
|
<view class="value f1 ml20 tar">
|
||||||
<input v-model="form.shopName" type="text" placeholder="请输入店铺名称" />
|
<input v-model="form.name" type="text" placeholder="请输入店铺名称" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="item rows ptb20">
|
<view class="item rows ptb20">
|
||||||
<view class="key c666">联系方式</view>
|
<view class="key c666">联系方式</view>
|
||||||
<view class="value f1 ml20 tar">
|
<view class="value f1 ml20 tar">
|
||||||
<input v-model="form.contact" type="text" placeholder="请输入联系方式" />
|
<input v-model="form.phone" type="number" placeholder="请输入联系方式" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="item rows ptb20">
|
<view class="item rows ptb20" @click="$refs.regionSelectionRef.open()">
|
||||||
<view class="key c666">产品所在地</view>
|
<view class="key c666">产品所在地</view>
|
||||||
<view class="value f1 ml20 tar">
|
<view class="value f1 ml20 tar">
|
||||||
<input v-model="form.productLocation" type="text" placeholder="请选择产品所在地" />
|
<!-- 省市区选择 -->
|
||||||
|
<regionSelection ref="regionSelectionRef" :province="form.province" :city="form.city"
|
||||||
|
:area="form.district" @change="handleRegion" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="item rows ptb20">
|
<view class="item rows ptb20">
|
||||||
<view class="key c666">产品类别</view>
|
<view class="key c666">详细所在地</view>
|
||||||
<view class="value f1 ml20 tar">
|
<view class="value f1 ml20 tar">
|
||||||
<input v-model="form.productCategory" type="text" placeholder="请选择产品类别" />
|
<input v-model="form.addressDetail" type="text" placeholder="请选择产品所在地" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="item rows ptb20">
|
<view class="item ptb20">
|
||||||
<view class="key c666">客服联系电话</view>
|
<picker :range="dictList" range-key="name" :vlaue="dictIndex" @change="handleDict">
|
||||||
<view class="value f1 ml20 tar">
|
<view class="rows">
|
||||||
<input v-model="form.customer" type="text" placeholder="请输入客服联系电话" />
|
<view class="key c666">产品类别</view>
|
||||||
</view>
|
<view class="value f1 ml20 tar">
|
||||||
|
<text class="placeholderStyle" v-if="dictIndex === ''">请选择产品类别</text>
|
||||||
|
<text v-else>{{dictList[dictIndex].name}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="item ptb20">
|
<view class="item ptb20">
|
||||||
<view class="key c666">营业执照</view>
|
<view class="key c666">营业执照</view>
|
||||||
<view class="value imgList f1 mt20 tar">
|
<view class="value imgList f1 mt20 tar">
|
||||||
<view class="imgs wh200" v-for="(item, index) in form.businessLicense" :key="index">
|
<view class="imgs wh200" v-for="(item, index) in form.qualificationPicture" :key="index">
|
||||||
<image class="img br10" :src="item" mode="aspectFill" />
|
<image class="img br10" :src="item" mode="aspectFill" />
|
||||||
<view class="close" @click="removeMedia(index,'businessLicense')">
|
<view class="close" @click="removeMedia(index,'qualificationPicture')">
|
||||||
<uni-icons type="clear" size="50rpx" color="#f00" />
|
<uni-icons type="clear" size="50rpx" color="#f00" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="upload imgs fmid wh200 br10" @click="uploadImg('businessLicense',2)">
|
<view class="upload imgs fmid wh200 br10" @click="uploadImg('qualificationPicture',2)">
|
||||||
<uni-icons type="plusempty" color="#E8E8E8" size="80rpx" />
|
<uni-icons type="plusempty" color="#E8E8E8" size="80rpx" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -317,10 +523,10 @@
|
||||||
<view class="item ptb20">
|
<view class="item ptb20">
|
||||||
<view class="key c666">身份证正面</view>
|
<view class="key c666">身份证正面</view>
|
||||||
<view class="value imgList f1 mt20 tar">
|
<view class="value imgList f1 mt20 tar">
|
||||||
<view class="imgs wh200" v-if="form.idcard" @click="uploadImg('idcard',1)">
|
<view class="imgs wh200" v-if="form.idCardFront" @click="uploadImg('idCardFront',1)">
|
||||||
<image class="img br10" :src="form.idcard" mode="aspectFill" />
|
<image class="img br10" :src="form.idCardFront" mode="aspectFill" />
|
||||||
</view>
|
</view>
|
||||||
<view class="upload imgs fmid wh200 br10" v-else @click="uploadImg('idcard',1)">
|
<view class="upload imgs fmid wh200 br10" v-else @click="uploadImg('idCardFront',1)">
|
||||||
<uni-icons type="plusempty" color="#E8E8E8" size="80rpx" />
|
<uni-icons type="plusempty" color="#E8E8E8" size="80rpx" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -329,10 +535,10 @@
|
||||||
<view class="item ptb20">
|
<view class="item ptb20">
|
||||||
<view class="key c666">身份证反面</view>
|
<view class="key c666">身份证反面</view>
|
||||||
<view class="value imgList f1 mt20 tar">
|
<view class="value imgList f1 mt20 tar">
|
||||||
<view class="imgs wh200" v-if="form.idcard2" @click="uploadImg('idcard2')">
|
<view class="imgs wh200" v-if="form.idCardBack" @click="uploadImg('idCardBack',1)">
|
||||||
<image class="img br10" :src="form.idcard2" mode="aspectFill" />
|
<image class="img br10" :src="form.idCardBack" mode="aspectFill" />
|
||||||
</view>
|
</view>
|
||||||
<view class="upload imgs fmid wh200 br10" v-else @click="uploadImg('idcard2')">
|
<view class="upload imgs fmid wh200 br10" v-else @click="uploadImg('idCardBack',1)">
|
||||||
<uni-icons type="plusempty" color="#E8E8E8" size="80rpx" />
|
<uni-icons type="plusempty" color="#E8E8E8" size="80rpx" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -344,11 +550,10 @@
|
||||||
|
|
||||||
<view class="footer plr30 bfff shadow">
|
<view class="footer plr30 bfff shadow">
|
||||||
<view class="rows">
|
<view class="rows">
|
||||||
<view class="btn cancel plr30">退回押金</view>
|
<view class="btn cancel plr30" @click="outDepositsPay">退回押金</view>
|
||||||
<view class="btn colourful f1" @click="handleSubmit">申请入驻</view>
|
<view class="btn colourful f1" @click="handleSubmit">申请入驻</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -377,5 +377,7 @@ call_type 通话类型 2为视频,1是音频
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
0 非好友
|
||||||
|
1 好友
|
||||||
|
|
||||||
|
|
|
@ -9,32 +9,34 @@ export default defineConfig({
|
||||||
host: "0.0.0.0",
|
host: "0.0.0.0",
|
||||||
port: 5173,
|
port: 5173,
|
||||||
proxy: {
|
proxy: {
|
||||||
|
"/system": {
|
||||||
|
// target: "http://192.168.0.104:8080",
|
||||||
|
target: "http://192.168.0.107:8080",
|
||||||
|
changeOrigin: true,
|
||||||
|
},
|
||||||
"/shopify": {
|
"/shopify": {
|
||||||
target: "https://3w823u8516.vicp.fun",
|
// target: "http://192.168.0.104:8080",
|
||||||
|
target: "http://192.168.0.107:8080",
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
},
|
},
|
||||||
"/user": {
|
"/user": {
|
||||||
// target: "http://192.168.0.129:8080",
|
// target: "http://192.168.0.104:8080",
|
||||||
// target: "http://192.168.1.199:8080",
|
target: "http://192.168.0.107:8080",
|
||||||
target: "http://192.168.0.133:8080",
|
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
},
|
},
|
||||||
"/coreplay": {
|
"/coreplay": {
|
||||||
// target: "http://192.168.0.129:8080",
|
// target: "http://192.168.0.104:8080",
|
||||||
// target: "http://192.168.1.199:8080",
|
target: "http://192.168.0.107:8080",
|
||||||
target: "http://192.168.0.133:8080",
|
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
},
|
},
|
||||||
"/file": {
|
"/file": {
|
||||||
// target: "http://192.168.0.129:8080",
|
// target: "http://192.168.0.104:8080",
|
||||||
// target: "http://192.168.1.199:8080",
|
target: "http://192.168.0.107:8080",
|
||||||
target: "http://192.168.0.133:8080",
|
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
},
|
},
|
||||||
"/video": {
|
"/video": {
|
||||||
// target: "http://192.168.0.129:8080",
|
// target: "http://192.168.0.104:8080",
|
||||||
// target: "http://192.168.1.199:8080",
|
target: "http://192.168.0.107:8080",
|
||||||
target: "http://192.168.0.133:8080",
|
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue