CRM_26-06-04#story#8753,增加潜在供应商招募的H5链接中的信息填写
This commit is contained in:
172
src/views/index/addWechat.vue
Normal file
172
src/views/index/addWechat.vue
Normal file
@@ -0,0 +1,172 @@
|
||||
<template>
|
||||
<div class="wrap">
|
||||
<div class="top-wrap"></div>
|
||||
<div class="center-info">
|
||||
<div class="wei_code_wrap">
|
||||
<div class="wei_title">请先添加企业微信,保证申请流程正常进行。</div>
|
||||
<div class="wei_code_bg">
|
||||
<img v-if="qrCodeUrl" :src="qrCodeUrl" alt="企业微信二维码" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
<div class="btn" @click="nextStep">下一步</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import QRCode from 'qrcode'
|
||||
import {getOrCodeInfo, getContactQrCodeResult, saveSupplier} from "@/api/mine"
|
||||
import {myMixins} from "@/utils/myMixins"
|
||||
import {Toast, Dialog} from "vant";
|
||||
export default {
|
||||
name: "addWechat",
|
||||
mixins: [myMixins],
|
||||
data() {
|
||||
return {
|
||||
name: '',
|
||||
formPayload: null,
|
||||
qrCodeUrl: '',
|
||||
qrCode: '',
|
||||
configId: '',
|
||||
wechatId: '',
|
||||
clickFlag: true,
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
const cached = localStorage.getItem('supplierAddForm');
|
||||
if (cached) {
|
||||
this.formPayload = JSON.parse(cached);
|
||||
this.name = this.formPayload.name;
|
||||
}
|
||||
if (this.name) {
|
||||
await this.QrCodeHandler();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async QrCodeHandler() {
|
||||
await this.QrCodeInfo();
|
||||
await this.getQrCode();
|
||||
},
|
||||
async QrCodeInfo() {
|
||||
let res = await getOrCodeInfo({ name: this.name });
|
||||
this.configId = res?.configId;
|
||||
this.qrCode = res?.qrCode;
|
||||
},
|
||||
async getQrCode() {
|
||||
try {
|
||||
this.qrCodeUrl = await QRCode.toDataURL(this.qrCode, {
|
||||
width: 150,
|
||||
margin: 2,
|
||||
color: { dark: '#000000', light: '#FFFFFF' },
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('生成二维码失败:', error);
|
||||
}
|
||||
},
|
||||
async nextStep() {
|
||||
if (!this.clickFlag) return;
|
||||
let res = await getContactQrCodeResult({ configId: this.configId });
|
||||
this.wechatId = res?.data?.wechatId || 'test';
|
||||
if (!this.wechatId) {
|
||||
Toast('请先添加企微再继续');
|
||||
return;
|
||||
}
|
||||
try {
|
||||
this.clickFlag = false;
|
||||
const res = await saveSupplier({
|
||||
...this.formPayload,
|
||||
wechatId: this.wechatId,
|
||||
});
|
||||
if (res?.noToast) {
|
||||
if (res?.code != 0) {
|
||||
Dialog.alert({ title: '提示', message: '该服务商已存在,查看信息' }).then(() => {
|
||||
localStorage.removeItem('supplierAddForm');
|
||||
const target = { name: 'supplierInfo', query: { id: res?.code } };
|
||||
localStorage.setItem('lastRoute', JSON.stringify(target));
|
||||
this.goPage('supplierInfo', { id: res?.code });
|
||||
});
|
||||
}
|
||||
} else {
|
||||
localStorage.removeItem('supplierAddForm');
|
||||
const supplierId = res?.data;
|
||||
const target = { name: 'supplierAddResult', query: { id: supplierId } };
|
||||
localStorage.setItem('lastRoute', JSON.stringify(target));
|
||||
Dialog.confirm({
|
||||
title: '提示',
|
||||
message: '添加车辆和驾驶员会加快审核进度,是否去添加?',
|
||||
confirmButtonText: '去添加',
|
||||
cancelButtonText: '取消',
|
||||
}).then(() => {
|
||||
this.goPage('vehicleManage', { id: supplierId });
|
||||
}).catch(() => {
|
||||
this.goPage('supplierInfo', { id: supplierId });
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
Toast(e?.message || '提交失败');
|
||||
} finally {
|
||||
setTimeout(() => { this.clickFlag = true; }, 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "@/styles/mixin.scss";
|
||||
@import "@/styles/common.scss";
|
||||
.wrap {
|
||||
@include wh(100%, 100%);
|
||||
box-sizing: border-box;
|
||||
padding-bottom: 100px;
|
||||
overflow-y: auto;
|
||||
background: linear-gradient(180deg, #FBFDFE 0%, #F6FBFF 73%, #F0F7FF 100%);
|
||||
backdrop-filter: blur(5.602678571428572px);
|
||||
}
|
||||
.top-wrap {
|
||||
width: 100%;
|
||||
height: 175px;
|
||||
background: linear-gradient(180deg, #DAECFF 0%, rgba(233, 243, 255, 0) 100%);
|
||||
}
|
||||
.center-info {
|
||||
text-align: center;
|
||||
}
|
||||
.wei_code_wrap {
|
||||
margin-top: 10px;
|
||||
.wei_title {
|
||||
font-size: 15px;
|
||||
color: #FF553B;
|
||||
text-align: center;
|
||||
}
|
||||
.wei_code_bg {
|
||||
width: 163px;
|
||||
height: 173px;
|
||||
background-image: url("~@/assets/supplier/weiCodeBg.png");
|
||||
background-size: 100% 100%;
|
||||
margin: 8px auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.btn_wrap {
|
||||
width: 100%;
|
||||
padding: 15px 0;
|
||||
position: fixed;
|
||||
bottom: 10px;
|
||||
z-index: 10000 !important;
|
||||
.btn {
|
||||
width: calc(100% - 80px);
|
||||
margin-left: 40px;
|
||||
height: 46px;
|
||||
background: #0E76F4;
|
||||
border-radius: 5px;
|
||||
font-size: 15px;
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
line-height: 46px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user