Merge pull request 'old' (#1) from old into master

Reviewed-on: #1
This commit is contained in:
mkm 2023-09-25 14:25:44 +08:00
commit bb6a3b207b
44 changed files with 1962 additions and 1055 deletions

28
App.vue
View File

@ -10,7 +10,7 @@
// +----------------------------------------------------------------------
// #ifdef APP-PLUS
let jpushModule = uni.requireNativePlugin("JG-JPush");
const mp = uni.requireNativePlugin('uniMP');
import { initEvent } from "@/utils/uniMPevent.js";
// #endif
import {
checkLogin
@ -86,17 +86,24 @@
}
// #ifdef APP-PLUS
//uni
mp.onUniMPEventReceive(ret => {
console.log('小程序事件: ', ret);
if (ret.event == 'closeApp') {
mp.closeUniMP(ret.fromAppid, (ret) => {
console.log('closeUniMP: ' + JSON.stringify(ret));
});
}
});
//uniMP
initEvent();
// #endif
// uni.getLocation({
// type: 'gcj02',
// geocode: true,
// isHighAccuracy: true,
// // altitude: true,
// // accuracy: 'best',
// success: (res)=> {
// console.log(res);
// },
// fail(e) {
// console.log(e);
// }
// });
let that = this;
// #ifdef MP
if (HTTP_REQUEST_URL == '') {
@ -157,6 +164,7 @@
// console.log("jpush", connectEnable)
})
//
// jpushModule.setAlias({
// 'alias': uni.getStorageSync('userId'),

View File

@ -290,4 +290,18 @@ export function village(data) {
*/
export function brigade(data) {
return request.get('v2/system/brigade', data, { noAuth: true });
}
}
/*
生产 -- 获取商户保证金信息支付接口
*/
export function paymerchant() {
return request.post(`user/margin`,{});
}
/*
生产 -- 获取商户保证金信息接口
*/
export function merchant(data) {
return request.get(`store/merchant/margin`, data);
}

View File

@ -303,8 +303,8 @@ export function getDeliveryType(merId) {
/*
商品 -- 获取交易协议内容
*/
export function business() {
return request.get(`business/agree?type=business_apply_agree`, {}, {
export function business(data) {
return request.get(`business/agree`, data, {
noAuth: true
});
}
@ -319,5 +319,5 @@ export function intention(data) {
商品 -- 同意提交申请
*/
export function intentionbus(data) {
return request.post(`intention/business`, {});
return request.post(`intention/business`, data);
}

View File

@ -577,6 +577,9 @@ export function vicinityStoreApi(data) {
/*
商家入驻 -- 获取商户入驻申请协议内容
*/
export function agreeiness() {
return request.get(`business/agree?type=sys_intention_agree`, {}, { noAuth: true });
}
export function agreeiness(data) {
return request.get(`business/agree`, data, { noAuth: true });
}

View File

@ -8,6 +8,8 @@
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from "@/utils/request.js";
import request1 from "@/utils/requestb.js";
import Cache from '@/utils/cache'
/**
* 获取版本信息
@ -721,3 +723,10 @@ export function getBillDetil() {
return request.get(`mer/financial_record`)
}
//获取商户入驻所签署公司
export function merstreet(data) {
return request1.get(`company/street_company`, data);
}

View File

@ -108,7 +108,6 @@
type = 'alipayQr';
// #endif
} else if (paytype == 'creditBuy') {
console.log('123123');
type = 'creditBuy'
}
if (!that.order_id) return that.$util.Tips({
@ -371,6 +370,10 @@
break;
// #endif
}
}).catch(err => {
uni.hideLoading();
return that.$util.Tips({

View File

@ -6,31 +6,59 @@ let openPlantGrass = '-openPlantGrass-'
let httpApi
let httpApiTwo
let httpApiThree
// 网络接口修改此字符 小程序域名要求https
// let httpApi = 'http://192.168.31.110:8324' // 测试
if (process.env.NODE_ENV === "development") {
// httpApi = 'https://shop.lihaink.cn' // 生产
httpApi = "https://crmeb-test.shop.lihaink.cn"
// httpApi = "http://192.168.0.222"
// httpApi = "http://192.168.0.108:8325"
// httpApi = 'http://192.168.0.108:8325'
// #ifdef MP-WEIXIN
httpApiTwo = "https://nk.lihaink.cn"
httpApiThree = 'http://ceshi-oa.lihaink.cn'
// #endif
// #ifdef H5
// httpApiTwo = "baseUrl" // h5跨域配置
httpApiTwo = "https://nk.lihaink.cn" // h5跨域配置
// httpApiThree = 'baseUrlTest' // h5跨域配置
// #endif
} else if (process.env.NODE_ENV === 'production') {
httpApi = 'https://shop.lihaink.cn' // 生产
// httpApi = "https://crmeb-test.shop.lihaink.cn"
httpApiTwo = 'https://nk.lihaink.cn' // 生产
httpApiThree = 'http://ceshi-oa.lihaink.cn' //生产
// 在打包之前请检查当前环境是否正确
const env = 'dev'; // 开发
// const env = 'prod'; // 生产
// const env = 'prew'; // 预上线
switch (env) {
case 'prod':
httpApi = 'https://shop.lihaink.cn' // 生产
httpApiTwo = 'https://nk.lihaink.cn'
httpApiThree = 'http://ceshi-oa.lihaink.cn'
break;
case 'prew':
httpApi = 'https://test.shop.lihaink.cn' //预发布环境
httpApiTwo = "https://nk.lihaink.cn"
httpApiThree = 'http://ceshi-oa.lihaink.cn'
break;
default:
httpApi = "https://crmeb-test.shop.lihaink.cn" // 生产
httpApiTwo = "https://nk.lihaink.cn"
httpApiThree = 'http://ceshi-oa.lihaink.cn'
}
// // 网络接口修改此字符 小程序域名要求https
// // let httpApi = 'http://192.168.31.110:8324' // 测试
// if (process.env.NODE_ENV === "development") {
// httpApi = 'https://shop.lihaink.cn' // 生产
// // httpApi = 'https://test.shop.lihaink.cn' //预发布环境
// // httpApi = "https://crmeb-test.shop.lihaink.cn"
// // httpApi = "http://192.168.0.222"
// // httpApi = "http://192.168.0.108:8325"
// // httpApi = 'http://192.168.0.108:8325'
// // #ifdef MP-WEIXIN
// httpApiTwo = "https://nk.lihaink.cn"
// httpApiThree = 'http://ceshi-oa.lihaink.cn'
// // #endif
// // #ifdef H5
// // httpApiTwo = "baseUrl" // h5跨域配置
// httpApiTwo = "https://nk.lihaink.cn" // h5跨域配置
// // httpApiThree = 'baseUrlTest' // h5跨域配置
// // #endif
// } else if (process.env.NODE_ENV === 'production') {
// httpApi = 'https://shop.lihaink.cn' // 生产
// // httpApi ='https://test.shop.lihaink.cn' //预发布环境
// // httpApi = "https://crmeb-test.shop.lihaink.cn"
// httpApiTwo = 'https://nk.lihaink.cn' // 生产
// httpApiThree = 'http://ceshi-oa.lihaink.cn' //生产
// }
// httpApi = 'https://shop.lihaink.cn' // 生产
// httpApiTwo = 'https://nk.lihaink.cn' // 生产

View File

@ -95,8 +95,8 @@
"sdkConfigs" : {
"maps" : {
"amap" : {
"appkey_ios" : "048d9f3f323eea894b49c3a7edbc8d87",
"appkey_android" : "048d9f3f323eea894b49c3a7edbc8d87"
"appkey_ios" : "82af93ec51139c712c4118d84ba684ee",
"appkey_android" : "0799f37420c0784f1e6cba230a68bdb1"
}
},
"payment" : {
@ -113,8 +113,10 @@
}
},
"geolocation" : {
"system" : {
"__platform__" : [ "ios", "android" ]
"amap" : {
"__platform__" : [ "ios", "android" ],
"appkey_ios" : "82af93ec51139c712c4118d84ba684ee",
"appkey_android" : "0799f37420c0784f1e6cba230a68bdb1"
}
},
"oauth" : {},

View File

@ -1,32 +1,32 @@
{
"pages": [
//#ifdef APP-PLUS
//
{
"path": "pages/guide/judge",
"style": {
"enablePullDownRefresh": false,
"onReachBottomDistance": 100,
"navigationStyle": "custom",
"app-plus": {
"contentAdjust": false,
"bounce": "none"
//#ifdef APP-PLUS
//
{
"path": "pages/guide/judge",
"style": {
"enablePullDownRefresh": false,
"onReachBottomDistance": 100,
"navigationStyle": "custom",
"app-plus": {
"contentAdjust": false,
"bounce": "none"
}
}
}
},
{
"path": "pages/guide/guide",
"style": {
"enablePullDownRefresh": false,
"onReachBottomDistance": 100,
"navigationStyle": "custom",
"app-plus": {
"contentAdjust": false,
"bounce": "none"
},
{
"path": "pages/guide/guide",
"style": {
"enablePullDownRefresh": false,
"onReachBottomDistance": 100,
"navigationStyle": "custom",
"app-plus": {
"contentAdjust": false,
"bounce": "none"
}
}
}
},
// #endif
},
// #endif
//pageshttps://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
@ -128,26 +128,34 @@
"enablePullDownRefresh": false
}
}, {
"path": "uni_modules/guyue-updater/pages/updater",
"style": {
"app-plus": {
"animationDuration": 200,
"animationType": "fade-in",
"background": "transparent",
"backgroundColorTop": "transparent",
"bounce": "none",
"popGesture": "none",
"scrollIndicator": false,
"titleNView": false
},
"backgroundColor": "transparent",
"disableScroll": true,
"navigationStyle": "custom"
}
}
,{
"path": "uni_modules/guyue-updater/pages/updater",
"style": {
"app-plus": {
"animationDuration": 200,
"animationType": "fade-in",
"background": "transparent",
"backgroundColorTop": "transparent",
"bounce": "none",
"popGesture": "none",
"scrollIndicator": false,
"titleNView": false
},
"backgroundColor": "transparent",
"disableScroll": true,
"navigationStyle": "custom"
}
}
],
,{
"path" : "pages/margin/margin",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
],
"subPackages": [{
"root": "pages/goods_cate",
"name": "goods_cate",
@ -1123,18 +1131,6 @@
"navigationBarTitleText": "商品管理",
"enablePullDownRefresh": true
}
},{
"path": "transactionApplication/index",
"style": {
"navigationBarTitleText": "交易申请",
"enablePullDownRefresh": false
}
},{
"path": "transactionApplication/application",
"style": {
"navigationBarTitleText": "申请记录",
"enablePullDownRefresh": false
}
},
{
"path": "goodsOnSale/index",
@ -1637,7 +1633,7 @@
"iconPath": "static/tabbar_icon/c.png",
"selectedIconPath": "static/tabbar_icon/c-a.png",
"text": "发布"
},
{
"pagePath": "pages/supply_chains/supply_chains",
@ -1653,7 +1649,7 @@
"text": "我的"
}
]

View File

@ -30,7 +30,7 @@
<zbpSwiper :isSelectPlace="true" :location_Arr="locationArr" :town="street" @kkchange="kkchange"></zbpSwiper>
<zbpSwiper :isSelectPlace="true" :location_Arr="locationArr" :town="street" ></zbpSwiper>
<u-empty :show="jurisdiction" mode="permission" :text="emptyText"
icon="http://cdn.uviewui.com/uview/empty/permission.png"></u-empty>
<view class="business com special_work" v-if="jurisdiction == false">
@ -141,7 +141,7 @@
},
prefix: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/11/',
isShow: false,
bgColor: '',
isFshow: false,
street: '',
//
@ -164,7 +164,7 @@
street: '',
showPicker: false,
columnData: [],
bgColor: '',
isFshow: false,
backColor: 'rgba(252, 252, 252, 0)'
};
@ -291,6 +291,7 @@
this.getUniMp(data);
break;
case 2:
this.navigator(data);
break;
}
@ -408,10 +409,6 @@
},
kkchange(e) {
this.bgColor = e
},
navigator(url, t) {
// if (this.userInfoData.is_wsxx === 0 && t != '') return Toast("");
uni.navigateTo({

256
pages/margin/margin.vue Normal file
View File

@ -0,0 +1,256 @@
<template>
<view class="">
<view class="info">
<view class="bg"></view>
<view class="card">
<view class="title">店铺保证金信息</view>
<view class="item">
<text>已缴纳保证金</text>
<text>{{merchant_Data.margin}}</text>
</view>
<view class="item">
<text>缴纳店铺账户</text>
<text>{{merchant_Data.mer_name}}</text>
</view>
</view>
</view>
<view class="price">
<view class="title">缴纳金额</view>
<view class="tab">
<view class="item active" style="margin: 0;">{{merchant_Data.recharge_margin}}</view>
</view>
<button class="btn" @click="paydecimal">缴纳</button>
</view>
<!-- <view class="tip">
<view class="title">注意事项</view>
<view class="text">充值后帐户的金额不能提现可用于商城消费使用佣金导入账户之后不能再次导出不可提现账户充值出现问题可联系商城客服也可拨打商城客服热线<text @click="copyPhone('4008888888')">4008888888</text>
</view>
</view> -->
</view>
</template>
<script>
import {
merchant,
paymerchant
} from '@/api/api.js'
export default {
data() {
return {
mer_id:0,
merchant_Data: {},
}
},
onLoad(e) {
this.mer_id = e.mer_id
this.decimal()
},
methods: {
//
decimal() {
merchant({
id: this.mer_id
}).then((res) => {
this.merchant_Data = res.data
});
},
//
paydecimal() {
if (this.merchant_Data.is_margin != 1) {
this.$util.Tips({
title: '暂时无需缴纳保证金'
});
} else {
uni.showModal({
title: '提示',
content: '商户' + this.merchant_Data.mer_name + '是否同意缴纳保证金',
success: function(res) {
if (res.confirm) {
// console.log('');
paymerchant().then((res) => {
console.log(res.data)
uni.requestPayment({
provider: 'wxpay',
orderInfo: res.data
.config, //
success: function(res) {
console.log('success:' + JSON.stringify(res));
},
fail: function(err) {
console.log('fail:' + JSON.stringify(err));
}
});
}).catch((err) => {
console.log(err)
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
},
}
}
</script>
<style>
</style>
<style lang="scss">
page {
background-color: #fff;
}
.info {
display: flex;
flex-direction: column;
align-items: center;
position: relative;
height: 250rpx;
.bg {
background-color: #FF5C2D;
height: 170rpx;
width: 100vw;
border-radius: 0rpx 0rpx 28rpx 28rpx;
position: absolute;
top: 0;
left: 0;
}
.card {
width: 694rpx;
min-height: 180rpx;
background: #FFFFFF;
margin-top: 38.55rpx;
box-shadow: 0rpx 0rpx 18rpx 2rpx rgba(50, 116, 249, 0.1);
border-radius: 14rpx 14rpx 14rpx 14rpx;
opacity: 1;
padding: 31.5rpx 28rpx;
display: flex;
flex-direction: column;
justify-content: space-around;
position: absolute;
top: 0;
.title {
font-size: 32rpx;
font-weight: 600;
color: #333333;
padding-bottom: 10rpx;
}
.item {
display: flex;
justify-content: space-between;
font-size: 32rpx;
font-weight: 400;
color: #333333;
margin-bottom: 10rpx;
text:nth-child(1){
flex-shrink: 0;
margin-right: 18rpx;
}
}
}
}
.price {
display: flex;
flex-direction: column;
padding: 0 28rpx;
margin-top: 50rpx;
.title {
font-size: 32rpx;
font-weight: 600;
color: #333333;
line-height: 39rpx;
margin-bottom: 42rpx;
}
.tab {
display: flex;
flex-wrap: wrap;
justify-content: left;
width: 694rpx;
.item {
width: 217rpx;
height: 131rpx;
margin: 0 auto;
margin-bottom: 20rpx;
border-radius: 7rpx 7rpx 7rpx 7rpx;
border: 2rpx solid #F5F5F5;
display: flex;
justify-content: center;
align-items: center;
font-size: 32rpx;
font-weight: 500;
line-height: 32rpx;
}
.active {
border: 2rpx solid #FF5C2D;
color: #FF5C2D;
}
}
.input {
width: 100%;
height: 112rpx;
background: #F5F5F5;
border-radius: 56rpx 56rpx 56rpx 56rpx;
opacity: 1;
padding: 0 45.56rpx;
box-sizing: border-box;
font-size: 28rpx;
font-weight: 400;
color: #333;
line-height: 35rpx;
}
.btn {
width: 694rpx;
height: 84rpx;
margin-top: 73.6rpx;
background: #FF5C2D;
box-shadow: 0rpx 14rpx 44rpx 2rpx #E9EFF5;
border-radius: 42rpx 42rpx 42rpx 42rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 32rpx;
font-weight: 400;
color: #FFFFFF;
}
}
.tip {
display: flex;
flex-direction: column;
padding: 0 28rpx;
margin-top: 84rpx;
.title {
font-size: 32rpx;
font-weight: 500;
color: #FF5C2D;
line-height: 32rpx;
margin-bottom: 21rpx;
}
.text {
font-size: 28rpx;
font-weight: 400;
color: rgba(0, 0, 0, 0.6);
line-height: 42rpx;
-webkit-background-clip: text;
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -35,7 +35,9 @@
</view>
<view class="" style="display: flex;align-items: center;">
<view style="display: flex;align-items: center;z-index: 999999;">
<u--image :showLoading="true" src="/static/images/LHYC/DWB.png" width="50.82rpx"
<u--image :showLoading="true" v-if="cloudList.length>0"
src="/static/images/LHYC/DWB.png" width="50.82rpx" height="50.82rpx"></u--image>
<u--image :showLoading="true" v-else src="/static/images/LHYC/DWB1.png" width="50.82rpx"
height="50.82rpx"></u--image>
<view class="town_name" :style="{color:cloudList.length>0?'':'black'}"
@click="showpick">{{street}}</view>
@ -43,9 +45,8 @@
<view class="head_r" @click="showPop=true">
<u--image v-if="cloudList.length>0" :showLoading="true" src="/static/images/LHYC/QB.png"
width="50.82rpx" height="50.82rpx"></u--image>
<u--image v-else :showLoading="true" src="/static/images/LHYC/QB.png" width="50.82rpx"
<u--image v-else :showLoading="true" src="/static/images/LHYC/QB1.png" width="50.82rpx"
height="50.82rpx"></u--image>
<text :style="{color:cloudList.length>0?'':'black'}">全部</text>
</view>
</view>
@ -87,13 +88,13 @@
<view style="position: relative;width: 289.14rpx;">
<u-search borderColor="#FF6D20" bgColor="white" :showAction="false" placeholder="请输入..."
v-model="keyword" class="serch_cls"></u-search>
<u--image class="img_cls" :showLoading="true" src="/static/images/GXSC/SS.png"
<u--image class="img_cls" :showLoading="true" src="/static/images/GXSC/SSBT.png"
width="115.65rpx" height="56.82rpx" @click="serch"></u--image>
</view>
<view class='head_r' @click="showPop=true">
<u--image :showLoading="true" src="/static/images/LHYC/QB.png" width="50.82rpx"
height="50.82rpx"></u--image>
<text class="">全部</text>
<text class="" style="height: 5px;"></text>
<view class="flags">
</view>
@ -483,13 +484,7 @@
this.Area()
let that = this
setTimeout(() => {
uni.createSelectorQuery()
.in(this)
.select('.flags')
.boundingClientRect(rect => {
that.headtop = rect.top
})
.exec();
uni.createSelectorQuery()
.in(this)
.select('.flags')
@ -502,7 +497,8 @@
.select('.cart')
.boundingClientRect(rect => {
// console.log(this.cartTagInfo, 6666)
this.cartTagInfo = rect
that.cartTagInfo = rect
console.log(rect)
})
.exec();
// console.log(that.headtop)
@ -571,6 +567,15 @@
}
})
.exec();
uni.createSelectorQuery()
.in(this)
.select('.cart')
.boundingClientRect(rect => {
// console.log(this.cartTagInfo, 6666)
that.cartTagInfo = rect
// console.log(rect)
})
.exec();
},
onPullDownRefresh() {
this.getCloundShop()
@ -824,9 +829,10 @@
spread_id: "",
}
let that = this
uni.createSelectorQuery().in(this).select(`.act_class${i}`).boundingClientRect(data1 => {
that.trnList[i].left = this.cartTagInfo.left - data1.left;
that.trnList[i].bottom = this.cartTagInfo.top - data1.top;
that.trnList[i].left = that.cartTagInfo.left - data1.left;
that.trnList[i].bottom = that.cartTagInfo.top - data1.top;
let timer = setTimeout(() => {
that.trnList[i].left = 0

View File

@ -11,7 +11,7 @@
<view class="back" @click='backjJump()' style="margin-right:17rpx ;">
<view class="iconfont icon-xiangzuo" style="color: #333333;"></view>
</view>
<view style="font-size: 40rpx;font-weight: 700;transform: skewX(-10deg);">
<view style="font-size: 40rpx;">
<!-- {{titName}} -->
当地美食
</view>
@ -24,7 +24,7 @@
<u-search borderColor="#FF6D20" bgColor="white" :showAction="false" placeholder="搜索店铺名称"
v-model="sotreParam.keyword" class="serch_cls"></u-search>
<u--image @tap="searchSubmit" class="img_cls" :showLoading="true"
src="/static/images/GXSC/SS.png" width="115.65rpx" height="56.82rpx"></u--image>
src="/static/images/GXSC/SSBT.png" width="115.65rpx" height="56.82rpx"></u--image>
</view>
</view>

View File

@ -11,7 +11,7 @@
<view class="back" @click='backjJump()' style="margin-right: 17rpx;">
<view class="iconfont icon-xiangzuo" style="color: #333333;"></view>
</view>
<view style="font-size: 40rpx;font-weight: 700;transform: skewX(-10deg);">
<view style="font-size: 40rpx;">
<!-- {{titName}} -->
名优特产
</view>
@ -27,7 +27,7 @@
<u-search borderColor="#FF6D20" bgColor="white" :showAction="false" placeholder="搜索店铺名称"
v-model="sotreParam.keyword" class="serch_cls"></u-search>
<u--image @tap="searchSubmit" class="img_cls" :showLoading="true"
src="/static/images/GXSC/SS.png" width="115.65rpx" height="56.82rpx"></u--image>
src="/static/images/GXSC/SSBT.png" width="115.65rpx" height="56.82rpx"></u--image>
</view>
</view>

View File

@ -14,7 +14,7 @@
<view class="back" @click='backjJump()' style="margin-right: 17rpx;">
<view class="iconfont icon-xiangzuo" style="color: #333333;"></view>
</view>
<view class="" style="font-size: 40rpx;font-weight: 700;">
<view class="" style="font-size: 40rpx;">
供销综合云市场
</view>
<view style="margin-left: 20rpx;transition: 0.3s;" @click="showSelect=!showSelect"

View File

@ -15,7 +15,7 @@
<view class="back" @click='backjJump()' style="margin-right: 17rpx;">
<view class="iconfont icon-xiangzuo" style="color: #333333;"></view>
</view>
<view class="" style="font-size: 40rpx;font-weight: 700;transform: skewX(-10deg);">
<view class="" style="font-size: 40rpx;">
{{titName}}
</view>
</view>
@ -26,7 +26,7 @@
<u-search borderColor="#FF6D20" bgColor="white" :showAction="false" placeholder="搜索店铺名称"
v-model="sotreParam.keyword" class="serch_cls"></u-search>
<u--image @tap="searchSubmit" class="img_cls" :showLoading="true"
src="/static/images/GXSC/SS.png" width="115.65rpx" height="56.82rpx"></u--image>
src="/static/images/GXSC/SSBT.png" width="115.65rpx" height="56.82rpx"></u--image>
</view>
</view>

View File

@ -11,7 +11,7 @@
<view class="back" @click='backjJump()' style="margin-right: 17rpx;">
<view class="iconfont icon-xiangzuo" style="color: #333333;"></view>
</view>
<view style="font-size: 40rpx;font-weight: 700;transform: skewX(-10deg);">
<view style="font-size: 40rpx;">
<!-- {{titName}} -->
特色文旅
</view>
@ -27,7 +27,7 @@
<u-search borderColor="#FF6D20" bgColor="white" :showAction="false" placeholder="搜索店铺名称"
v-model="sotreParam.keyword" class="serch_cls"></u-search>
<u--image @tap="searchSubmit" class="img_cls" :showLoading="true"
src="/static/images/GXSC/SS.png" width="115.65rpx" height="56.82rpx"></u--image>
src="/static/images/GXSC/SSBT.png" width="115.65rpx" height="56.82rpx"></u--image>
</view>
</view>

View File

@ -173,7 +173,7 @@
<script>
import {
navigateBack,
Toast
} from '@/libs/uniApi.js'
import {
@ -396,15 +396,20 @@
merchantUpdateAPI(data).then(res => {
Toast(res.message)
setTimeout(() => {
// uni.switchTab({
// url: '/pages/moreProject/moreProject',
// fail: (err) => {
// // console.log('err', err);
// }
// });
// uni.navigateTo({
// url:'/pages/moreProject/moreProject'
// })
uni.redirectTo({
url:'/pages/moreProject/moreProject'
})
uni.switchTab({
url: '/pages/moreProject/moreProject',
fail: (err) => {
// console.log('err', err);
}
});
}, 2000)
}, 1000)
}).catch(err => {
Toast(err)
})

View File

@ -47,12 +47,12 @@
<swiper-item :class="{ active: 1 == swiperCur }">
<view class="slide-navigator">
<!-- 隐藏暂时不需要 -->
<!-- <navigator class="item" :url="`/pages/product/addGoods/freightTemplate?mer_id=${mer_id}`"
<navigator class="item" :url="`/pages/product/addGoods/freightTemplate?mer_id=${mer_id}`"
hover-class='none'>
<image mode='widthFix' class="image" src="../static/images/product_freight.png">
</image>
<text class="text">运费模板</text>
</navigator> -->
</navigator>
<navigator class="item"
:url="`/pages/product/addGoods/mulSpecification?mer_id=${mer_id}`"
hover-class='none'>
@ -60,12 +60,12 @@
src="../static/images/product_specification.png"></image>
<text class="text">规格模板</text>
</navigator>
<!-- <navigator class="item"
<navigator class="item"
:url="`/pages/users/online_warehousing/index?mer_id=${mer_id}&product_id=${data.product_id}&unique=${data.unique}`"
hover-class='none'>
<image mode='widthFix' class="image" src="@/static/images/daoru.png"></image>
<text class="text">商品导入</text>
</navigator> -->
</navigator>
</view>
</swiper-item>
</block>
@ -124,9 +124,9 @@
</view>
<view class="operation acea-row row-between-wrapper">
<view class="acea-row row-middle">
<!-- <view class="" class="bnt" @click="Fonline(item)" style="width:150rpx">
<view class="" class="bnt" @click="Fonline(item)" style="width:150rpx">
线上入库
</view> -->
</view>
<view class="" class="bnt" @click="Fline(item)" style="width:150rpx">
线下入库
</view>

View File

@ -1,164 +0,0 @@
<template>
<view class="content">
<view class="">
<view class="content_con" v-for="(item,index) in datalist" :key='index'>
<view class="content_title">
<view class="content_title_a" v-if="item.status==1">
已通过
</view>
<view class="content_title_c" v-else-if="item.status==2">
申请拒绝
</view>
<view class="content_title_b" v-else-if="item.status==0">
审核中
</view>
<view class="content_title_d">
{{item.type_name}}
</view>
</view>
<view class="" v-if="item.fail_msg" style="margin-top: -50rpx;color: red;">
拒绝原因{{item.fail_msg}}
</view>
<view class="content_detail">
<view class="" style="display: flex;">
<view style="width:150rpx;"> 申请人</view>
<span>{{item.name}}</span><text style="margin-left: 20rpx;">{{item.phone}}</text>
</view>
<view class="" style="display: flex;">
<view style="width:150rpx;"> 申请时间</view>
<span>{{item.create_time}}</span>
</view>
</view>
</view>
</view>
<view class="" style="padding-top: 1px;" v-if='datalist.length==0'>
<emptyPage title="暂无申请信息"></emptyPage>
</view>
</view>
</template>
<script>
import emptyPage from '@/components/emptyPage.vue';
import {
intention
} from "@/api/product"
export default {
components: {
emptyPage
},
data() {
return {
datalist: [],
where: {
type: 2,
page: 1,
limit: 10
},
}
},
onLoad() {
this.list()
},
methods: {
list() {
intention(this.where).then(res => {
this.datalist = res.data.list
})
}
}
}
</script>
<style lang="scss">
.content {
padding: 12rpx 12rpx;
}
.content_con {
padding: 42rpx 32rpx;
height: 294rpx;
background: #FFFFFF;
border-radius: 21rpx 21rpx;
margin-top: 20rpx;
}
.content_title {
display: flex;
margin-bottom: 70rpx;
}
.content_title_a {
width: 89rpx;
height: 37rpx;
line-height: 37rpx;
text-align: center;
background: #16C295;
font-size: 23rpx;
font-family: DingTalk JinBuTi-Regular, DingTalk JinBuTi;
font-weight: 400;
color: #FFFFFF;
border-radius: 15rpx 0 15rpx 0;
}
.content_title_b {
width: 89rpx;
height: 37rpx;
line-height: 37rpx;
text-align: center;
background: #3274F9;
font-size: 23rpx;
font-family: DingTalk JinBuTi-Regular, DingTalk JinBuTi;
font-weight: 400;
color: #FFFFFF;
border-radius: 15rpx 0 15rpx 0;
}
.content_title_c {
width: 89rpx;
height: 37rpx;
line-height: 37rpx;
text-align: center;
background: #ff0000;
font-size: 23rpx;
font-family: DingTalk JinBuTi-Regular, DingTalk JinBuTi;
font-weight: 400;
color: #FFFFFF;
border-radius: 15rpx 0 15rpx 0;
}
.content_title_d {
font-size: 33rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
margin-left: 20rpx;
margin-top: -7rpx;
}
.content_detail {
font-size: 30rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
view {
margin-bottom: 10rpx;
}
}
</style>

View File

@ -1,241 +0,0 @@
<template>
<view v-if="!successful" class="content">
<view class="content-detail">
<view class="content-title">
<view class="content-title-a">
交易申请协议
</view>
<view class="content-title-b" @click="navation">
申请记录
</view>
</view>
<view class="">
<view v-html="detail.business_apply_agree">
</view>
</view>
</view>
<view class="content-bottom" v-if="type==0">
<view class="bottombtn_no" @click="noagree">拒绝</view>
<view class="bottom_agree" @click="agree">同意</view>
</view>
<view class="content-bottom" v-if="type==1||type==3">
<view class="bottom_agree" @click="agree">重新申请</view>
</view>
</view>
<view class="settledSuccessMain" v-else>
<view class="settledSuccessful">
<image class="image" src="@/pages/store/static/images/settledSuccessful.svg">
<view class="title">恭喜您的资料提交成功</view>
<view class="info">预计15个工作日内审核完毕平台客服会及时与您联系</view>
<view class="goHome" hover-class="none" @click="goHome">
返回首页
</view>
</view>
</view>
</template>
<script>
import {
business,
intentionbus
} from "@/api/product"
export default {
data() {
return {
detail: {},
type: 0,
successful: false
}
},
onLoad(e) {
this.type = e.business_status
this.list()
},
methods: {
//
list() {
business().then(res => {
this.detail = res.data
})
},
//
goHome() {
uni.switchTab({
url: '/pages/index/index'
});
},
//
navation() {
uni.navigateTo({
url: '/pages/product/transactionApplication/application'
})
},
//
noagree() {
uni.navigateTo({
url: '/pages/moreProject/moreProject'
})
},
//
agree() {
intentionbus().then(res => {
if (res.status == 200) {
this.$util.Tips({
title: res.message,
icon: 'success',
})
this.successful=true
}
}).catch((err) => {
this.$util.Tips({
title: err,
icon: 'error',
})
})
},
}
}
</script>
<style lang="scss" scoped>
.content {
position: relative;
}
.content-detail {
padding: 20rpx 20rpx;
color: #333333;
font-size: 28rpx;
margin-bottom: 155rpx;
.content-title {
color: #333333;
font-size: 32rpx;
text-align: center;
margin-top: 40rpx;
margin-bottom: 40rpx;
.content-title-b {
width: 165rpx;
height: 70rpx;
font-size: 26rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
text-align: center;
line-height: 70rpx;
background: linear-gradient(90deg, #F84221 0%, #FF6D20 100%);
box-shadow: 0px 4rpx 11rpx 2rpx rgba(252, 89, 32, 0.49);
border-radius: 37rpx 0px 0px 37rpx;
opacity: 1;
position: absolute;
top: 40rpx;
right: 0;
}
}
}
.content-bottom {
position: absolute;
width: 100%;
bottom: 0;
position: fixed;
height: 175rpx;
background: #FFFFFF;
display: flex;
justify-content: space-around;
.bottombtn_no {
margin-top: 42rpx;
width: 249rpx;
height: 84rpx;
text-align: center;
line-height: 84rpx;
border-radius: 46rpx 46rpx;
opacity: 1;
border: 2rpx solid #B3B3B3;
font-size: 33rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #737373;
}
.bottom_agree {
margin-top: 42rpx;
width: 249rpx;
height: 84rpx;
text-align: center;
line-height: 84rpx;
background: linear-gradient(270deg, #FF6D20 0%, #F84221 100%);
border-radius: 46rpx 46rpx;
opacity: 1;
font-size: 33rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #fff;
}
}
.settledSuccessMain {
height: 100vh;
display: flex;
flex-direction: column;
background: #fff;
}
.settledSuccessful {
flex: 1;
width: 100%;
padding: 0 56px;
height: auto;
background: #fff;
text-align: center;
}
.settledSuccessful .image {
width: 189px;
height: 157px;
margin-top: 66px;
}
.settledSuccessful .title {
color: #333333;
font-size: 16px;
font-weight: bold;
margin-top: 35px;
}
.settledSuccessful .info {
color: #A0A0A0;
font-size: 13px;
margin-top: 12px;
}
.settledSuccessful .goHome {
margin: 60px auto 0;
line-height: 43px;
color: #282828;
font-size: 15px;
border: 1px solid #B4B4B4;
border-radius: 60px;
}
</style>

View File

@ -618,6 +618,12 @@
value: 2,
}
],
tabs5: [{
icon: 'icon-yizhan_o',
name: '云商品',
value: 7,
}
],
tabs: [],
storeScroll: true,
storeTop: 0,
@ -627,7 +633,8 @@
service_open: false,
type: 3,
statusBarHeight: 0,
isLihaiYun: ''
isLihaiYun: '',
business_status:0
}
},
computed: {
@ -768,8 +775,15 @@
this.storeHeight = data.height;
this.storeTop = data.top;
}).exec();
this.userinfo()
},
methods: {
userinfo(){
getUserInfo().then(res => {
this.business_status=res.data.mer_info.business_status
})
},
getProductSpu() {
let that = this;
if (that.loadend) return;
@ -954,7 +968,12 @@
// this.tabs = this.tabs2
// this.service_open = false
// }
this.isLihaiYun === 'Lihai' ? this.tabs = this.tabs4 : this.tabs = this.tabs3
if(this.business_status==2){
this.isLihaiYun === 'Lihai' ? this.tabs = this.tabs4 : this.tabs = this.tabs3
}else{
this.tabs = this.tabs5
}
this.tab(this.type)
// #ifdef H5
this.ShareInfo();

View File

@ -126,8 +126,8 @@
<view class="item">
<view class="acea-row row-middle">
<text class="item-name">法人名称</text>
<input type="text" placeholder="请输入法人名称" v-model="merchantData.user_name" @input="validateBtn"
placeholder-class='placeholder' />
<input type="text" placeholder="请输入法人名称" v-model="merchantData.user_name"
@input="validateBtn" placeholder-class='placeholder' />
</view>
</view>
<view class="item">
@ -192,11 +192,14 @@
</view>
</view>
<view class="settlementAgreement" v-if="isshow">
<view class="setAgCount">
<i class="icon iconfont icon-cha" @click="recuo"></i>
<div class="title">商户入驻协议</div>
<view class="setAgCount" style="width: 100%;height: 100%;">
<!-- <i class="icon iconfont icon-cha" @click="recuo"></i> -->
<div class="title">{{detail.title}}</div>
<view style="margin: 20rpx 0;">甲方公司:{{company?company:"暂无公司信息"}}</view>
<view style="margin: 20rpx 0;">机构代码:{{organization_code?organization_code:"暂无公司信息"}}</view>
<view class="contenta">
<jyf-parser :html="detail.sys_intention_agree" ref="article" :tag-style="tagStyle"></jyf-parser>
<jyf-parser :html="detail.mer_services_agree" ref="article" :tag-style="tagStyle"></jyf-parser>
</view>
<view class="setAgCountbtn">
@ -204,8 +207,7 @@
拒绝
</button>
<button :class="num>0?'setAgCountbtnb':'setAgCountbtnc'" :disabled="num!=0" @click="isshow=false">
<button :class="num>0?'setAgCountbtnb':'setAgCountbtnc'" :disabled="num!=0" @click="formSubmit">
<text v-if="num>0">请仔细阅读协议{{num}}S</text>
<text v-else>同意</text>
@ -253,7 +255,8 @@
} from '@/api/store.js';
import {
getCaptcha,
getAgreementApi
getAgreementApi,
merstreet
} from "@/api/user";
import {
getStreet,
@ -281,6 +284,8 @@
},
data() {
return {
company: '',
organization_code:'',
domain: HTTP_REQUEST_URL,
cartId: '', //id
pinkId: 0, //id
@ -343,7 +348,7 @@
},
mer_i_id: null, // id
isType: false,
num: 30,
num: 10,
detail: {}
};
},
@ -374,16 +379,18 @@
this.getArea()
this.shoplist()
},
onShow() {},
onShow() {
},
onReady() {},
methods: {
//
recuo() {
if (this.num > 0) {
this.num = 30
this.num = 10
this.isshow = false
} else {
this.num = 0
this.num = 10
this.isshow = false
}
},
@ -409,7 +416,7 @@
return
}
if (this.isshow == false && this.num > 0) {
this.num = 30
this.num = 10
return
}
this.countDown();
@ -420,8 +427,9 @@
//
shoplist() {
agreeiness().then(res => {
// console.log(res)
agreeiness({
type: 'mer_services_agree'
}).then(res => {
this.detail = res.data
})
},
@ -488,6 +496,8 @@
that.isType = true
getAgreementApi('sys_merchant_type').then(res => {
that.protocol = res.data.sys_merchant_type
})
},
//
@ -550,12 +560,27 @@
},
bindPickerChange2: function(e) {
// console.log(e.detail)
this.index2 = e.detail.value
this.business_name =
`${this.business[0][this.index2[0]].name} ${this.business[1][this.index2[1]].name} ${this.business[2][this.index2[2]].name}`
this.area_id = this.business[0][this.index2[0]].code
this.street_id = this.business[1][this.index2[1]].code
this.village_id = this.business[2][this.index2[2]].id
merstreet({
street_code: this.street_id
}).then((res) => {
if(res.code==0){
this.$util.Tips({
title: res.msg
});
return false;
}
this.company=res.data.title
this.organization_code=res.data.organization_code
}).catch(res=>{
console.log(res)
})
},
//
getClassfication: function() {
@ -716,6 +741,9 @@
this.isAgree = !this.isAgree;
this.validateBtn();
},
//
//
showxy() {
this.isshow = true
@ -723,6 +751,7 @@
formSubmit: function(e) {
if (this.num == 0) {
let that = this;
@ -756,6 +785,7 @@
}, 1000)
}
}).catch(res => {
this.isshow = false
that.validate = true;
that.$util.Tips({
title: res
@ -838,6 +868,7 @@
if (!value.classification) return that.$util.Tips({
title: '请选择商户分类'
});
if (!this.mer_storeType) return that.$util.Tips({
title: '请选择商户类型'
})
@ -850,6 +881,11 @@
if (that.isShowCode && !that.codeVal) return that.$util.Tips({
title: '请填写图片验证码'
});
if (that.pics.length == 0) return that.$util.Tips({
title: '请上传一张或者多张图片'
});
that.validate = true;
return true;
},
@ -1229,8 +1265,7 @@
position: absolute;
top: 50%;
left: 50%;
border-radius: 12rpx;
-webkit-border-radius: 12rpx;
padding: 52rpx;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
@ -1286,14 +1321,7 @@
line-height: 22px;
text-align: justify;
text-justify: distribute-all-lines;
/*#ifdef H5*/
height: 600rpx;
/*#endif*/
/*#ifdef APP-PLUS*/
height: 530rpx;
/*#endif*/
height: 1000rpx;
overflow-y: scroll;
@ -1305,7 +1333,7 @@
.setAgCountbtna {
margin-top: 40rpx;
width: 150rpx;
width: 200rpx;
height: 74rpx;
text-align: center;
line-height: 74rpx;
@ -1326,7 +1354,7 @@
height: 74rpx;
text-align: center;
line-height: 74rpx;
background:#cecece;
background: #cecece;
border-radius: 46rpx 46rpx;
opacity: 1;
@ -1339,7 +1367,7 @@
.setAgCountbtnc {
margin-top: 40rpx;
width: 150rpx;
width: 200rpx;
height: 74rpx;
text-align: center;
line-height: 74rpx;

View File

@ -196,10 +196,14 @@
<view v-if="copyright.status !== -1" class="copy-right">
<image class="img-copyright" :src="copyright.image" mode="widthFix"></image>
<view class="text">{{copyright.Copyright}}</view>
<view class="">备案号:蜀ICP备2022030133号-2A</view>
<view class="">增值电信营业许可证号:川B2-20221250</view>
</view>
<view v-else class="copy-right">
<view class="iconfont icon-crmeb"></view>
<view class="text">众邦科技提供技术支持</view>
</view>
<view style="height: 50rpx;"></view>
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"

View File

@ -14,7 +14,7 @@
{{ item }}
</div>
</div>
<div class="list" :hidden="current !== 0">
<div class="list" :hidden="current !== 1">
<form @submit.prevent="submit">
<div class="item">
<div class="acea-row row-middle">
@ -39,7 +39,7 @@
</div>
</div>
<div class="list" :hidden="current !== 1">
<div class="list" :hidden="current !== 0">
<div class="item">
<div class="acea-row row-middle">
<image src="/static/images/phone_1.png"></image>
@ -70,8 +70,8 @@
</div>
</div>
<div class="logon" @click="loginMobile" :hidden="current !== 1">登录</div>
<div class="logon" @click="submit" :hidden="current === 1">登录</div>
<div class="logon" @click="loginMobile" :hidden="current !== 0">登录</div>
<div class="logon" @click="submit" :hidden="current === 0">登录</div>
<div class="protocol acea-row row-between-wrapper">
<checkbox-group class="checkgroup" @change='isAgree=!isAgree'>
<checkbox class="checkbox" :checked="isAgree ? true : false" />
@ -260,7 +260,7 @@
},
data: function() {
return {
navList: ["账号登录", "快速登录"],
navList: ["快速登录","账号登录"],
current: 0,
account: "",
password: "",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
static/images/LHYC/DWB1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
static/images/LHYC/K.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
static/images/LHYC/QB1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
static/images/SFFF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
static/images/SFZZ.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
static/images/YHKF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
static/images/YHKZ.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
static/images/de1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 B

BIN
static/images/de2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 997 B

BIN
static/images/de3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

BIN
static/images/ti1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -120,51 +120,38 @@ const actions = {
Appversion({
version: os.appWgtVersion,
type: apptype,
phone_brand: os.brand
phone_brand:os.brand
}).then((res) => {
if (Object.keys(res.data.appInfo).length > 0) {
// if(res.data.appInfo.version) uni.showLoading({
// if(res.data.appInfo.version) uni.showLoading({
// title: '检查更新中'
// })
if (res.data.appInfo.phone_brand.length > 0) {
if (plus.os.name == "Android") {
// 跳转安卓应用市场
let appurl = res.data.appInfo.dow_url //这个是通用应用市场如果想指定某个应用商店需要单独查这个应用商店的包名或scheme及参数
plus.runtime.openURL(appurl)
} else {
// 跳转AppStore
plus.runtime.launchApplication({
action: res.data.appInfo.dow_url,
})
}
} else {
// 版本更新
if (compareVersions(res.data.appInfo.version, os.appWgtVersion || wgt_v) == 1 &&
compareVersions(res.data.appInfo.version,
wgt_v) == 1) {
try {
let info = res.data.appInfo || {};
let version = {
title: info.title || '发现新版本',
content: info.content || '修复了部分BUG',
versionName: info.version || '1.0.1',
downUrl: info.dow_url || '',
force: info.force == 1 ? true : false, // 是否强制更新
quiet: info.quiet == 1 ? true : false // 是否静默更新
}
Updater.update(version);
} catch (e) {
console.log(e);
// 版本更新
if (compareVersions(res.data.appInfo.version, os.appWgtVersion || wgt_v) == 1 &&
compareVersions(res.data.appInfo.version,
wgt_v) == 1) {
try {
let info = res.data.appInfo || {};
let version = {
title: info.title || '发现新版本',
content: info.content || '修复了部分BUG',
versionName: info.version || '1.0.1',
brand:res.data.appInfo.phone_brand,
downUrl: info.dow_url || '',
force: info.force == 1 ? true : false, // 是否强制更新
quiet: info.quiet == 1 ? true : false // 是否静默更新
}
// uni.hideLoading();
Updater.update(version,res.data.appInfo);
} catch (e) {
console.log(e);
}
// uni.hideLoading();
}
}
}).catch((err) => {
// console.log(err)

View File

@ -1,315 +1,348 @@
<template>
<view class="container">
<view class="container">
<view class="main" @click.stop="">
<view class="header">
<image src="../assets/bg1.png" class="bg1" />
<image src="../assets/bg2.png" class="bg2" />
<view class="version-title">{{ updateParams.title }}</view>
<view class="version-name" v-if="updateParams.versionName">V{{ updateParams.versionName }}</view>
</view>
<view class="title">更新内容</view>
<view class="content" >
<rich-text :nodes="content" />
</view>
<view class="main" @click.stop="">
<view class="header">
<image src="../assets/bg1.png" class="bg1" />
<image src="../assets/bg2.png" class="bg2" />
<view class="version-title">{{ updateParams.title }}</view>
<view class="version-name" v-if="updateParams.versionName">V{{ updateParams.versionName }}</view>
</view>
<view class="title">更新内容</view>
<view class="content">
<rich-text :nodes="content" />
</view>
<view class="progress" v-if="downloading">
<view class="slider">
<view class="active-slider" :style="{ width: `${progress}%` }">
<view class="bar" />
<view class="dot">
<view class="text">{{ progress }}%</view>
<view class="circle" />
</view>
</view>
</view>
</view>
<view class="button" :class="{'active': !downloading || downloadError}" @click="handleButton">
{{ downloadText }}
</view>
</view>
<view class="bottom" v-if="!updateParams.force" @click="back">
<view class="line"/>
<image src="../assets/close.png" class="close" />
</view>
</view>
<view class="progress" v-if="downloading">
<view class="slider">
<view class="active-slider" :style="{ width: `${progress}%` }">
<view class="bar" />
<view class="dot">
<view class="text">{{ progress }}%</view>
<view class="circle" />
</view>
</view>
</view>
</view>
<view class="button" :class="{'active': !downloading || downloadError}" @click="handleButton">
{{ downloadText }}
</view>
</view>
<view class="bottom" v-if="!updateParams.force" @click="back">
<view class="line" />
<image src="../assets/close.png" class="close" />
</view>
</view>
</template>
<script>
import { download, install } from "../updater";
import {
download,
install
} from "../updater";
export default {
data() {
const data = {
updateParams: {},
progress: 0,
downloading: false,
downloadSucc: false,
downloadError: false,
};
return data;
},
computed: {
content() {
return (this.updateParams.content || '').replace(/[\r\n]/gim, '<br/>');
},
downloadText () {
if (this.downloadSucc) {
return this.updateParams.downSucTip;
}
if (this.downloadError) {
return this.updateParams.downErrorTip;
}
if (this.downloading) {
return this.updateParams.downMsgTip;
}
return this.updateParams.updateBtnText;
},
},
onLoad(params) {
const data = {
title: '发现新版本',
updateBtnText: '立即升级',
downMsgTip: '下载中,请稍后',
downSucTip: '下载完成,安装中',
downErrorTip: '下载失败,请重试',
quiet: false,
force: false,
...(JSON.parse(decodeURIComponent(params.data)))
};
this.updateParams = data;
},
onBackPress() {
return this.updateParams.force;
},
methods: {
back() {
if (!this.updateParams.force) {
uni.navigateBack();
}
},
//
start() {
if (!this.updateParams.downUrl) {
return;
}
export default {
data() {
const data = {
updateParams: {},
progress: 0,
downloading: false,
downloadSucc: false,
downloadError: false,
};
return data;
},
computed: {
content() {
return (this.updateParams.content || '').replace(/[\r\n]/gim, '<br/>');
},
downloadText() {
if (this.downloadSucc) {
return this.updateParams.downSucTip;
}
if (this.downloadError) {
return this.updateParams.downErrorTip;
}
if (this.downloading) {
return this.updateParams.downMsgTip;
}
return this.updateParams.updateBtnText;
},
},
onLoad(params) {
// ios appstore.apk.wgt
const isResource = ['.apk', '.wgt'].some(ext => this.updateParams.downUrl.toLocaleLowerCase().includes(ext));
if (plus.os.name !== "Android" || !isResource) {
plus.runtime.openURL(this.updateParams.downUrl);
return;
}
const data = {
title: '发现新版本',
updateBtnText: '立即升级',
downMsgTip: '下载中,请稍后',
downSucTip: '下载完成,安装中',
downErrorTip: '下载失败,请重试',
quiet: false,
force: false,
...(JSON.parse(decodeURIComponent(params.data)))
};
this.updateParams = data;
},
onBackPress() {
return this.updateParams.force;
},
methods: {
this.downloading = true;
const self = this;
back() {
if (!this.updateParams.force) {
uni.navigateBack();
}
},
//
start() {
if (!this.updateParams.downUrl) {
return;
}
download({
url: self.updateParams.downUrl,
onProgress(progress) {
self.progress = progress;
},
onSuccess(filePath) {
self.downloadSucc = true;
self.downloadError = false;
install(filePath, true);
},
onFail() {
self.downloading = false;
self.downloadSucc = false;
self.downloadError = true;
},
});
},
handleButton() {
if (!this.downloading) {
return this.start();
}
if (this.downloadError) {
this.progress = 0;
this.downloading = false;
this.downloadSucc = false;
this.downloadError = true;
return this.start();
}
},
},
};
// ios appstore.apk.wgt
const isResource = ['.apk', '.wgt'].some(ext => this.updateParams.downUrl.toLocaleLowerCase().includes(
ext));
if (plus.os.name !== "Android" || !isResource) {
plus.runtime.openURL(this.updateParams.downUrl);
return;
}
this.downloading = true;
const self = this;
download({
url: self.updateParams.downUrl,
onProgress(progress) {
self.progress = progress;
},
onSuccess(filePath) {
self.downloadSucc = true;
self.downloadError = false;
install(filePath, true);
},
onFail() {
self.downloading = false;
self.downloadSucc = false;
self.downloadError = true;
},
});
},
handleButton() {
if (this.updateParams.brand.length > 0) {
if (plus.os.name == "Android") {
//
let appurl = this.updateParams.downUrl //scheme
plus.runtime.openURL(appurl)
setTimeout((res) => {
this.back()
}, 1000)
} else {
// AppStore
plus.runtime.launchApplication({
action: this.updateParams.downUrl,
})
setTimeout((res) => {
this.back()
}, 1000)
}
} else {
if (!this.downloading) {
return this.start();
}
if (this.downloadError) {
this.progress = 0;
this.downloading = false;
this.downloadSucc = false;
this.downloadError = true;
return this.start();
}
}
},
},
};
</script>
<style lang="less">
page {
width: 100vw;
height: 100vh;
background: transparent;
}
page {
width: 100vw;
height: 100vh;
background: transparent;
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.3);
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.3);
}
.main {
width: 75%;
background-color: #fff;
border-radius: 8rpx;
padding-bottom: 10rpx;
}
.main {
width: 75%;
background-color: #fff;
border-radius: 8rpx;
padding-bottom: 10rpx;
}
.header {
position: relative;
.header {
position: relative;
.bg1 {
width: 100%;
height: calc(100vw * 0.375);
border-top-left-radius: 8rpx;
border-top-right-radius: 8rpx;
}
.bg1 {
width: 100%;
height: calc(100vw * 0.375);
border-top-left-radius: 8rpx;
border-top-right-radius: 8rpx;
}
.bg2 {
position: absolute;
top: -40%;
right: 13%;
width: 35.9%;
height: calc(100vw * 0.5441);
}
.bg2 {
position: absolute;
top: -40%;
right: 13%;
width: 35.9%;
height: calc(100vw * 0.5441);
}
.version-title {
position: absolute;
top: 13%;
left: 8%;
color: #961c00;
font-size: 40rpx;
}
.version-title {
position: absolute;
top: 13%;
left: 8%;
color: #961c00;
font-size: 40rpx;
}
.version-name {
position: absolute;
top: 36%;
left: 24%;
background-color: #e54139;
color: #fff;
font-size: 26rpx;
line-height: 26rpx;
padding: 8rpx 20rpx;
border-radius: 20rpx;
}
}
.version-name {
position: absolute;
top: 36%;
left: 24%;
background-color: #e54139;
color: #fff;
font-size: 26rpx;
line-height: 26rpx;
padding: 8rpx 20rpx;
border-radius: 20rpx;
}
}
.title {
background-color: #ff6d42;
color: #fff;
display: inline-block;
margin-top: 12rpx;
margin-left: 30rpx;
font-size: 26rpx;
line-height: 26rpx;
padding: 8rpx 20rpx;
border-radius: 8rpx;
}
.title {
background-color: #ff6d42;
color: #fff;
display: inline-block;
margin-top: 12rpx;
margin-left: 30rpx;
font-size: 26rpx;
line-height: 26rpx;
padding: 8rpx 20rpx;
border-radius: 8rpx;
}
.content {
margin-top: 12rpx;
margin-left: 30rpx;
font-size: 28rpx;
line-height: 2;
max-height: 240rpx;
overflow-y: auto;
}
.content {
margin-top: 12rpx;
margin-left: 30rpx;
font-size: 28rpx;
line-height: 2;
max-height: 240rpx;
overflow-y: auto;
}
.button {
margin: 20rpx 30rpx;
background-color: #ffaa00;
color: #fff;
font-size: 30rpx;
text-align: center;
padding: 20rpx 0;
border-radius: 14rpx;
opacity: 0.5;
pointer-events: none;
.button {
margin: 20rpx 30rpx;
background-color: #ffaa00;
color: #fff;
font-size: 30rpx;
text-align: center;
padding: 20rpx 0;
border-radius: 14rpx;
opacity: 0.5;
pointer-events: none;
&:active {
opacity: 0.6;
}
&.active {
opacity: 1;
pointer-events: initial;
}
}
&:active {
opacity: 0.6;
}
.progress {
padding: 50rpx 50rpx 18rpx;
&.active {
opacity: 1;
pointer-events: initial;
}
}
.slider {
position: relative;
width: 100%;
height: 10rpx;
border-radius: 5rpx;
background-color: #e2e2e2;
.progress {
padding: 50rpx 50rpx 18rpx;
.active-slider {
display: flex;
flex-direction: row;
align-items: center;
position: absolute;
left: 0;
top: 0;
width: 0%;
height: 10rpx;
border-radius: 5rpx;
.slider {
position: relative;
width: 100%;
height: 10rpx;
border-radius: 5rpx;
background-color: #e2e2e2;
.bar {
flex: 1;
height: 100%;
background-color: #e84116;
border-top-left-radius: 5rpx;
border-bottom-left-radius: 5rpx;
}
.active-slider {
display: flex;
flex-direction: row;
align-items: center;
position: absolute;
left: 0;
top: 0;
width: 0%;
height: 10rpx;
border-radius: 5rpx;
.dot {
position: relative;
margin-left: -12rpx;
.bar {
flex: 1;
height: 100%;
background-color: #e84116;
border-top-left-radius: 5rpx;
border-bottom-left-radius: 5rpx;
}
.text {
position: absolute;
top: -34rpx;
left: -50%;
color: #e84116;
font-size: 24rpx;
font-weight: 500;
}
.dot {
position: relative;
margin-left: -12rpx;
.circle {
width: 12rpx;
height: 12rpx;
border: 6rpx solid #e84116;
border-radius: 50%;
background-color: #fff;
}
}
}
}
}
.text {
position: absolute;
top: -34rpx;
left: -50%;
color: #e84116;
font-size: 24rpx;
font-weight: 500;
}
.bottom {
display: flex;
flex-direction: column;
align-items: center;
.line {
width: 3rpx;
height: 50rpx;
background-color: #fff;
}
.close {
width: 64rpx;
height: 64rpx;
margin-top: -4rpx;
}
}
</style>
.circle {
width: 12rpx;
height: 12rpx;
border: 6rpx solid #e84116;
border-radius: 50%;
background-color: #fff;
}
}
}
}
}
.bottom {
display: flex;
flex-direction: column;
align-items: center;
.line {
width: 3rpx;
height: 50rpx;
background-color: #fff;
}
.close {
width: 64rpx;
height: 64rpx;
margin-top: -4rpx;
}
}
</style>

View File

@ -2,9 +2,9 @@
const version = '2.0.36'
// 开发环境才提示,生产环境不会提示
if (process.env.NODE_ENV === 'development') {
if (process.env.NODE_ENV == 'development') {
// console.log(`\n %c uView V${version} %c https://uviewui.com/ \n\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0; border-radius: 5px;');
console.log('当前属于测试环境')
console.log(process.env.NODE_ENV,'当前属于开发环境')
}
export default {

81
utils/requestb.js Normal file
View File

@ -0,0 +1,81 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import {
HTTP_REQUEST_URL,
HEADER,
TOKENNAME
} from '@/config/app';
import {
checkLogin
} from '../libs/login';
import store from '../store';
/**
* 发送请求
*/
function baseRequest(url, method, data, {
noAuth = false,
noVerify = false
}) {
let Url = 'https://preview-worker-task.lihaink.cn',
header = HEADER;
if (store.state.app.token) header[TOKENNAME] = 'Bearer ' + store.state.app.token;
return new Promise((reslove, reject) => {
uni.request({
url: Url + '/api/' + url,
method: method || 'GET',
// header: header,
data: data || {},
success: (res) => {
// #ifdef APP-PLUS
// console.log('app', Url + '/api/' + url, res.data);
// #endif
console.log(res.data.code)
if (noVerify)
reslove(res.data, res);
else if (res.data.status == 200)
reslove(res.data, res);
else if ([410000, 410001, 410002, 40000].indexOf(res.data.status) !== -1) {
reject(res.data);
} else if (res.data.status == 501) {
uni.reLaunch({
url: '/pages/error/index'
})
reject(res.data);
} else if (res.statusCode==200) {
console.log(res)
reslove(res.data,res.data);
} else
reject(res.data.message || '系统错误');
},
fail: (message) => {
reject('请求失败');
}
})
});
}
const request = {};
['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => {
request[method] = (api, data, opt) => baseRequest(api, method, data, opt || {})
});
export default request;

54
utils/uniMPevent.js Normal file
View File

@ -0,0 +1,54 @@
const mp = uni.requireNativePlugin('uniMP');
import {
uniMPgetLocation,
test
} from "@/utils/uniMPfunction.js"
export const initEvent = () => {
mp.onUniMPEventReceive(async (ret) => {
console.log('小程序事件: ', ret);
if (ret.event == 'closeApp') {
mp.closeUniMP(ret.fromAppid, (ret) => {
console.log('closeUniMP: ' + JSON.stringify(ret));
});
}
if (ret.event == 'getLocation') {
try {
console.log('获取定位');
let res = await uniMPgetLocation();
console.log(res);
// plus.geolocation.getCurrentPosition(function(position) {
// console.log('经度:' + position.coords.longitude);
// console.log('纬度:' + position.coords.latitude);
// // that.markers[1].latitude = position.coords.longitude;
// // that.markers[1].longitude = position.coords.longitude;
// mp.sendUniMPEvent(
// ret.fromAppid,
// 'getLocation', {...position.coords},
// (ret) => {
// console.log('Host sendEvent: ' + JSON.stringify(ret));
// });
// }, function(error) {
// console.error('获取位置失败:', error.message);
// }, {provider:'gps'});
mp.sendUniMPEvent(
ret.fromAppid,
'getLocation', {...res},
(ret) => {
console.log('Host sendEvent: ' + JSON.stringify(ret));
});
} catch (e) {
console.log(e);
}
}
if (ret.event == 'test') {
console.log('测试');
mp.sendUniMPEvent(
ret.fromAppid,
'test', { 'key': 'value', 'name': 'data' },
(ret) => {
console.log('Host sendEvent: ' + JSON.stringify(ret));
});
}
});
}

21
utils/uniMPfunction.js Normal file
View File

@ -0,0 +1,21 @@
export const test = () => {
return '测试'
}
export const uniMPgetLocation = () => {
return new Promise((resolve, reject) => {
uni.getLocation({
type: 'gcj02',
geocode: true,
isHighAccuracy: true,
// altitude: true,
// accuracy: 'best',
success: (res) => {
resolve(res)
},
fail(e) {
resolve(e)
}
});
})
}