CRM_26-06-04#story#8753,增加潜在供应商招募的H5链接中的信息填写

This commit is contained in:
2026-06-04 10:49:17 +08:00
parent 3c1f238163
commit 0483c2d0a7
8 changed files with 301 additions and 13 deletions

View 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>