Commit 2aa3458d by 柳士祥

冬奥会车辆

parent f5efc5ec
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -11,13 +11,14 @@ ...@@ -11,13 +11,14 @@
"coverView": true, "coverView": true,
"nodeModules": true, "nodeModules": true,
"autoAudits": true, "autoAudits": true,
"showShadowRootInWxmlPanel": false, "showShadowRootInWxmlPanel": true,
"scopeDataCheck": false, "scopeDataCheck": false,
"uglifyFileName": true, "uglifyFileName": true,
"checkInvalidKey": true, "checkInvalidKey": true,
"checkSiteMap": true, "checkSiteMap": true,
"uploadWithSourceMap": true, "uploadWithSourceMap": true,
"compileHotReLoad": false, "compileHotReLoad": false,
"lazyloadPlaceholderEnable": false,
"useMultiFrameRuntime": true, "useMultiFrameRuntime": true,
"useApiHook": true, "useApiHook": true,
"useApiHostProcess": true, "useApiHostProcess": true,
...@@ -28,20 +29,22 @@ ...@@ -28,20 +29,22 @@
}, },
"enableEngineNative": false, "enableEngineNative": false,
"useIsolateContext": true, "useIsolateContext": true,
"useCompilerModule": true,
"userConfirmedUseCompilerModuleSwitch": false,
"userConfirmedBundleSwitch": false, "userConfirmedBundleSwitch": false,
"packNpmManually": false, "packNpmManually": false,
"packNpmRelationList": [], "packNpmRelationList": [],
"minifyWXSS": true "minifyWXSS": true,
"disableUseStrict": false,
"showES6CompileOption": false,
"useCompilerPlugins": false,
"minifyWXML": true
}, },
"miniprogramRoot": "dist/wx/", "miniprogramRoot": "dist/wx/",
"compileType": "miniprogram", "compileType": "miniprogram",
"appid": "wx8a509d2f2ac15903", "appid": "wx937625b28b7f85fd",
"projectname": "mayi-mp-shop", "projectname": "mayi-mp-shop",
"simulatorType": "wechat", "simulatorType": "wechat",
"simulatorPluginLibVersion": {}, "simulatorPluginLibVersion": {},
"libVersion": "2.19.1", "libVersion": "2.21.1",
"condition": { "condition": {
"plugin": { "plugin": {
"list": [] "list": []
......
{
"setting": {},
"condition": {
"plugin": {
"list": []
},
"game": {
"list": []
},
"gamePlugin": {
"list": []
},
"miniprogram": {
"list": [
{
"id": 0,
"name": "pages/index/main",
"pathName": "pages/index/main",
"query": "",
"scene": null
},
{
"id": -1,
"name": "pages/login/main",
"pathName": "pages/login/main",
"query": "",
"scene": null
},
{
"id": 2,
"name": "pages/index/main",
"pathName": "pages/index/main",
"query": "scene=pid_6141",
"scene": 1047
},
{
"name": "pages/tabBar1/main",
"pathName": "pages/tabBar1/main",
"query": "",
"scene": null
},
{
"name": "pages/tabBar4/main",
"pathName": "pages/tabBar4/main",
"query": "",
"scene": null
},
{
"name": "pages/home/main",
"pathName": "pages/home/main",
"query": "",
"scene": null
},
{
"name": "pages/wo/writeInformation/main",
"pathName": "pages/wo/writeInformation/main",
"query": "",
"scene": null
},
{
"name": "pages/wo/showPassCheck/main",
"pathName": "pages/wo/showPassCheck/main",
"query": "",
"scene": null
},
{
"name": "pages/wo/verification/main",
"pathName": "pages/wo/verification/main",
"query": "",
"scene": null
},
{
"name": "pages/wo/vehicleApplication/main",
"pathName": "pages/wo/vehicleApplication/main",
"query": "",
"scene": null
},
{
"name": "pages/wo/fillInformation/main",
"pathName": "pages/wo/fillInformation/main",
"query": "",
"scene": null
},
{
"name": "pages/contact/main",
"pathName": "pages/contact/main",
"query": "",
"scene": null
}
]
}
}
}
\ No newline at end of file
...@@ -80,6 +80,10 @@ console.log(process.env,'-----------------config------') ...@@ -80,6 +80,10 @@ console.log(process.env,'-----------------config------')
get_oss_config() { get_oss_config() {
return requestPOST(`${process.env.OLSHOP_URL}/common/getAliyunSign.htm`) return requestPOST(`${process.env.OLSHOP_URL}/common/getAliyunSign.htm`)
}, },
// 获取车牌号
getVehicleNumber(number) {
return requestGET(`${process.env.OLSHOP_URL}/user/generatorUniqueCodeByCarDynamic?numberPlate=${encodeURIComponent(number)}`)
},
} }
\ No newline at end of file
import { requestGET } from "@/utils/request.js";
// 添加商品
export function getWxContact() {
return requestGET(`${process.env.OLSHOP_URL}/shop/get_shop_customer_service_config`);
}
\ No newline at end of file
...@@ -23,6 +23,8 @@ ...@@ -23,6 +23,8 @@
"pages/wo/diningPlace/main", "pages/wo/diningPlace/main",
"pages/wo/reportTheLoss/main", "pages/wo/reportTheLoss/main",
"pages/wo/verification/main", "pages/wo/verification/main",
"pages/wo/vehicleApplication/main",
"pages/wo/fillInformation/main",
"pages/wxArticle/main" "pages/wxArticle/main"
], ],
"usingComponents": {}, "usingComponents": {},
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="contact-img"> <div class="contact-img">
<img src="https://mayi-newshop.oss-cn-shanghai.aliyuncs.com/product/HCe2iRXHsP.png" alt="" /> <img src="https://mayi-newshop.oss-cn-shanghai.aliyuncs.com/product/HCe2iRXHsP.png" alt="" />
</div> </div>
<div class="btn-wrap"> <div class="btn-wrap" v-if="defaultContact == true">
<button open-type="contact" show-message-card :session-from="sessionFrom"> <button open-type="contact" show-message-card :session-from="sessionFrom">
<div class="btn-main"> <div class="btn-main">
<div class="main-img"> <div class="main-img">
...@@ -14,15 +14,30 @@ ...@@ -14,15 +14,30 @@
<img class="btn-next" src="../../../static/images/next.png" alt="" /> <img class="btn-next" src="../../../static/images/next.png" alt="" />
</button> </button>
</div> </div>
<div class="btn-wrap" v-else-if="defaultContact == false" @click="myOpeChat">
<button>
<div class="btn-main">
<div class="main-img">
<img src="../../../static/images/wx.png" alt="" />
</div>
<div class="main-text">官方微信客服</div>
</div>
<img class="btn-next" src="../../../static/images/next.png" alt="" />
</button>
</div>
</div> </div>
</template> </template>
<script> <script>
import { getUserLocation } from "../../utils/wxIndex.js"; import { getUserLocation } from "../../utils/wxIndex.js";
import { getWxContact } from "@/api/wxContact.js";
export default { export default {
data() { data() {
return { return {
sessionFrom: "", sessionFrom: "",
defaultContact: null,
result: null
}; };
}, },
onLoad(options) { onLoad(options) {
...@@ -30,10 +45,58 @@ export default { ...@@ -30,10 +45,58 @@ export default {
options.longitude = res.longitude; options.longitude = res.longitude;
options.latitude = res.latitude; options.latitude = res.latitude;
this.sessionFrom = JSON.stringify(options); this.sessionFrom = JSON.stringify(options);
console.log('sessionFrom',this.sessionFrom) console.log('sessionFrom', this.sessionFrom)
}); });
}, },
onShow() {
getWxContact().then(res => {
if (res.data.code == 200) {
const result = res.data.data
if (result.whetherOpenCustomerChannel == 0) {
this.defaultContact = true
} else if (result.whetherOpenCustomerChannel == 1) {
this.defaultContact = false
this.result = result
}
}
})
},
methods: {
myOpeChat() {
console.log('okokok', this.result.whetherOpenCustomerUrl, this.result.whetherOpenCustomerSuiteId);
if (this.result.whetherOpenCustomerService == 0) {
wx.showModal({
title: '提示',
content: '您未开通企业微信客服,请开通后重试'
})
} else if (this.result.whetherOpenCustomerService == 1) {
if (wx.openCustomerServiceChat) {
wx.openCustomerServiceChat({
extInfo: {
url: this.result.whetherOpenCustomerUrl
},
corpId: this.result.whetherOpenCustomerSuiteId,
success(res) {
console.log(res);
},
fail(res) {
wx.showModal({
title: '提示',
content: '系统繁忙,请稍后重试'
})
}
})
} else {
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
})
}
}
}
}
}; };
</script> </script>
......
<template>
<div>
<div class="topCard">
<div class="topCardText">请输入车牌号以申请临时通行证</div>
<input type="text" class="topCardInput" v-model="topCardInputValue">
</div>
<div class="contentCard" v-if="tag.length != 0">
<span class="contentCardText">最近使用</span>
<span class="contentCardTag" @click="changeValue">{{tag}}</span>
</div>
<div class="bottomBtn" @click="bindVehicleNumber">绑定车牌</div>
</div>
</template>
<script>
import index from "@/api/index";
export default {
data() {
return {
topCardInputValue: "",
// tag: '京B10200F',
tag: ''
}
},
onReady() {
console.log("---onready");
wx.setNavigationBarTitle({ title: "填报资料" });
},
onShow() {
this.topCardInputValue = ''
let licensePlateNumber = wx.getStorageSync('licensePlateNumber');
if (licensePlateNumber && licensePlateNumber.trim().length != 0) {
this.tag = licensePlateNumber
}
},
methods: {
changeValue() {
this.topCardInputValue = this.tag
},
bindVehicleNumber() {
if (this.topCardInputValue.trim().length != 0) {
wx.showLoading({
title: "加载中...",
});
index.getVehicleNumber(this.topCardInputValue).then((res) => {
wx.hideLoading();
if (res.data.code == 300) {
wx.showModal({
title: '提示',
content: '您未登录请先登录',
showCancel: true,
cancelText: '取消',
cancelColor: '#000000',
confirmText: '确定',
confirmColor: '#3CC51F',
success: (result) => {
if (result.confirm) {
wx.reLaunch({
url: '/pages/login/main',
});
}
},
});
} else if (res.data.data == null) {
wx.showToast({
title: res.data.msg,
icon: 'none',
duration: 1500,
mask: false,
});
}else if(!res.data.data.uniqueCode || res.data.data.uniqueCode == undefined){
wx.showToast({
title: '系统繁忙',
icon: 'none',
duration: 1500,
mask: false,
});
}else if(res.data.code == 200 && res.data.data.uniqueCode.length != 0){
wx.showToast({
title: '绑定成功',
icon: 'none',
duration: 1500,
mask: false,
});
wx.setStorageSync('licensePlateNumber',this.topCardInputValue)
wx.navigateTo({
url: '/pages/wo/vehicleApplication/main',
});
}
});
} else {
wx.showToast({
title: '前填写车牌号',
icon: 'none',
duration: 1500,
mask: false,
});
}
}
}
}
</script>
<style lang="scss" scoped>
.topCard {
border-top: 1px solid #f6f6f6;
border-bottom: 1px solid #f6f6f6;
padding: 10px 13px;
box-sizing: border-box;
.topCardText {
font-size: 13px;
}
.topCardInput {
margin-top: 17px;
border:1px solid #c0c0c0;
padding: 5px 8px;
}
}
.contentCard {
padding: 10px 13px;
box-sizing: border-box;
.contentCardText {
color: #c0c0c0;
font-size: 12px;
}
.contentCardTag {
font-size: 12px;
padding: 4px 6px;
box-sizing: border-box;
margin-left: 8px;
border: 1px solid #f6f6f6;
}
}
.bottomBtn {
background: #219df1;
color: #fff;
border-radius: 20px;
height: 33px;
text-align: center;
line-height: 33px;
width: 90%;
font-size: 14px;
margin: 6px auto;
}
</style>
\ No newline at end of file
import Vue from 'vue'
import App from './index'
const app = new Vue(App)
app.$mount()
{
}
\ No newline at end of file
<template>
<!-- 车辆通行证 -->
<div class="showPassCheck" v-if="licensePlateNumber.length != 0">
<div class="bg">
<img src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/23b825e3-4dfb-4d6b-9b19-8e3764c476ed.png" alt="" />
</div>
<div class="cont">
<div class="main flex">
<div class="title flex">
<div class="img">
<image mode="widthFix" src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/9462ce53-792c-4607-ab7c-1875bed2d3ba.png" alt=""></image>
</div>
<p>{{ userInfo.company }}</p>
</div>
<div class="userImg">
<image mode="aspectFill" src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/22b4fd78-49c6-4596-86a0-5974f46a3805.png" alt=""></image>
</div>
<span class="cardNumber">{{licensePlateNumber}}</span>
<div class="qrCode">
<canvas class="canvas-code" canvas-id="myQrcode" :style="{background: '#fff', width: '308rpx', height: '308rpx',}" />
</div>
<div class="time" v-if="updateTime">{{ updateTime }}</div>
</div>
<div class="changeVehicleText" @click="changeVehicle">更换车辆</div>
<div class="explain">相约北京系列冬季体育赛事张家口赛区组委会</div>
</div>
</div>
</template>
<script type="text/ecmascript-6">
import index from "@/api/index";
import QRCode from "@/utils/weapp-qrcode.js";
export default {
name: "showPassCheck",
data() {
return {
// 十秒更新一次
updateTime: "",
TimeOut: "",
qrCode: "",
qrCodeImg: "",
userInfo: {},
currentBrightness: 0,
licensePlateNumber:''
};
},
components: {},
computed: {},
onReady() {
console.log("---onready");
wx.setNavigationBarTitle({ title: "测试赛通行证" });
},
onLoad() {
console.log("---onLoad");
},
onShow() {
let licensePlateNumber = wx.getStorageSync('licensePlateNumber');
this.licensePlateNumber = licensePlateNumber
console.log('licensePlateNumber',licensePlateNumber);
if (licensePlateNumber && licensePlateNumber.trim().length != 0) {
let _this = this;
wx.getScreenBrightness({
success: (res) => {
console.log('res.value',res.value);
_this.currentBrightness = res.value
},
fail: (res) => {
console.log(res, '-------getScreenBrightness--fail')
}
});
console.log(this.currentBrightness, '---currentBrightness');
console.log("---onShow");
this.setScreenBrightness(1);
this.getQrCode();
this.TimeOut = null;
this.TimeOut = setInterval(() => {
this.getQrCode();
}, 1000 * 10);
this.init();
} else {
wx.reLaunch({
url: '/pages/wo/fillInformation/main',
});
}
},
onHide() {
this.setScreenBrightness(this.currentBrightness);
clearInterval(this.TimeOut);
},
onUnload() {
this.setScreenBrightness(this.currentBrightness);
clearInterval(this.TimeOut);
},
mounted() { },
methods: {
setScreenBrightness(val = 0.7) {
if (wx.setScreenBrightness) {
console.log('微信版本111',val)
//设置屏幕亮度 参数值:0-1,越大越亮
wx.setScreenBrightness({
value: val
});
} else {
console.log("------微信版本过低------")
}
},
init() {
wx.showLoading({
title: "加载中...",
});
index.getVehicleNumber().then((res) => {
wx.hideLoading();
if (res.data.ok == "true") {
console.log(res.data);
this.userInfo = res.data.data;
}
});
},
getQrCode() {
index.generatorUniqueCodeByDynamic(this.licensePlateNumber).then((res) => {
if (res.data.ok == "true") {
this.qrCode = res.data.data.uniqueCode;
this.updateTime = res.data.data.createDatetime;
this.getQrcodeImg();
}
});
},
getQrcodeImg() {
let _this = this;
const systemInfo = wx.getSystemInfoSync();
const width = (154 * systemInfo.windowWidth) / 375;
const height = width;
new QRCode("myQrcode", {
text: _this.qrCode,
width,
height,
padding: 4, // 生成二维码四周自动留边宽度,不传入默认为0
correctLevel: QRCode.CorrectLevel.L, // 二维码可辨识度
callback: (res) => {
console.log(res.path, "---res.path");
_this.qrCodeImg = res.path;
// 接下来就可以直接调用微信小程序的api保存到本地或者将这张二维码直接画在海报上面去,看各自需求
},
});
},
getTime() {
let year = new Date().getFullYear();
let month =
new Date().getMonth() + 1 < 10
? "0" + (new Date().getMonth() + 1)
: new Date().getMonth() + 1;
let day =
new Date().getDate() < 10
? "0" + new Date().getDate()
: new Date().getDate();
let hours =
new Date().getHours() < 10
? "0" + new Date().getHours()
: new Date().getHours();
let minutes =
new Date().getMinutes() < 10
? "0" + new Date().getMinutes()
: new Date().getMinutes();
let seconds =
new Date().getSeconds() < 10
? "0" + new Date().getSeconds()
: new Date().getSeconds();
let today = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
console.log(today);
return today;
},
changeVehicle() {
wx.navigateTo({
url: '/pages/wo/fillInformation/main',
});
}
},
};
</script>
<style lang="scss" scoped>
.showPassCheck {
.bg {
position: absolute;
top: 0;
left: 0;
width: 100vw;
img {
width: 100%;
}
}
.cont {
position: relative;
z-index: 1;
image {
width: 100%;
height: 100%;
}
.main {
width: 80%;
margin: 0 auto;
margin-top: 60px;
padding: 20px 22px;
background: #fff;
box-shadow: 0px 6px 24px 8px rgba(0, 0, 0, 0.03),
0px 5px 14px 0px rgba(0, 0, 0, 0.05),
0px 3px 8px -4px rgba(0, 0, 0, 0.08);
border-radius: 4px;
flex-direction: column;
align-items: center;
}
.changeVehicleText {
color: #69b7f5;
text-decoration: underline;
font-size: 15px;
text-align: center;
margin-top: 20px;
}
.explain {
margin-top: 50px;
text-align: center;
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
}
.title {
align-items: center;
width: 100%;
.img {
width: 30px;
height: 36px;
}
p {
margin-left: 10px;
font-size: 15px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
}
}
.userImg {
margin-top: 10px;
width: 87px;
height: 33px;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.cardNumber {
height: 23px;
font-size: 16px;
font-weight: 500;
color: #333333;
line-height: 23px;
letter-spacing: 1px;
margin-top: 16px;
}
.userName {
margin-top: 14px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
}
.userWork {
margin-top: 6px;
font-size: 13px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
}
.qrCode {
// width: 154px;
// height: 154px;
border: 2px solid #229df1;
margin-top: 16px;
}
.time {
margin-top: 18px;
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
}
}
}
</style>
import Vue from 'vue'
import App from './index'
const app = new Vue(App)
app.$mount()
{
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment