| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 | <template>	<dm-pop-view ref='popView' :isShowClose="false" :isShowTitle="false" :maskTapHide='maskTapHide' :isShowConfirm='false'>		<view class="titleDiv">			<view class="title">补全录入号码</view>			<image class="pop-close" src="../../static/icons/icon_close@2x.png" mode="" @click="handleCancel"></image>		</view>		<view class="content_options" v-if="isShowComplet">			<text class="options_title">补充客户完整号码后,系统将判定是否补录成功,并实时反馈补充结果。</text>			<input class="input-info" placeholder="请输入完整号码" type="number" maxlength="11" @input="setInputPhone" />			<view class="confirm" @click="upload" :style="{background: themeColor}">提交</view>			<view class="think_again" @click="thinkAgain">我再想想</view>		</view>		<view v-else>			<view class="content_options" v-if="isSuccess==1">				<image src="../../static/icons/complete_success.png" mode="" class="icon_complete"></image>				<text style="font-size: 36rpx;font-family: Verdana, Verdana-Bold;font-weight: 700;text-align: center;color: #333333;">补充成功</text>				<text style="margin-top: 10rpx;font-size: 24rpx;font-family: Verdana, Verdana-Regular;font-weight: 400;text-align: center;color: #333333;">该客户全号码补充成功,点击确认刷新报备列表。</text>				<view class="success_confirm" @click="successConfirm" :style="{background: themeColor}">确认</view>			</view>			<view class="content_options" v-if="isSuccess==2">				<image src="../../static/icons/complete_failure.png" mode="" class="icon_complete"></image>				<text style="font-size: 36rpx;font-family: Verdana, Verdana-Bold;font-weight: 700;text-align: center;color: #333333;">补充失败</text>				<text style="margin-top: 10rpx;font-size: 24rpx;font-family: Verdana, Verdana-Regular;font-weight: 400;text-align: center;color: #333333; width: 504rpx;">{{message}}</text>				<view class="success_confirm" @click="failureConfirm" :style="{background: themeColor}">确认</view>			</view>		</view>	</dm-pop-view></template><script>	import dmPopView from './dmPopView.vue'	export default {		props: {			maskTapHide: {				type: Boolean,				default: true			},			options:{				type:Object			}		},		data() {			return {				themeColor: "",				fuzhuClolor: "",				themeColor25: "",				themeColor50: "",				isSuccess: -1,				isShowComplet: true,				completionPhone: "",				completePhoneParam: null,				message: "",				brandId:"",				userMobile:""							}		},		mounted() {			let app = getApp();			this.themeColor = app.globalData.themeColor;			this.fuzhuClolor = app.globalData.fuzhuColor;			this.themeColor25 = app.globalData.themeColor25;			this.themeColor50 = app.globalData.themeColor50;			uni.getStorage({				//获得保存在本地的用户信息				key: 'userInfo',				success: res => {					if (res.data) {						this.brandId = res.data.brandId;						this.userMobile = res.data.mobile;					}				}			});		},		methods: {			setInputPhone(event) {				this.completionPhone = event.detail.value			},						handleCancel() {				this.$refs.popView.hide()			},			show() {				this.isSuccess = -1				this.isShowComplet = true				this.$refs.popView.show()			},			thinkAgain() {				this.$refs.popView.handleCancel();			},			failureConfirm() {				this.$emit('updataDataPage','')				this.$refs.popView.handleConfirm();			},			successConfirm() {				this.$emit('updataDataPage','')				this.$refs.popView.handleConfirm();			},			upload() {				let item = this.options;				let hiddenMobile = item.userMobile;				let userId = item.userId;				let name = item.userName;				let reportTime =  item.reportTime;				let houseId = item.houseId;				let reportId = item.id;				let terminal = item.terminal;				let reporterMobile = item.reporterMobile;				this.completePhoneParam = {				      hiddenMobile,				      userId,				      houseId,				      reportId,				      name,				      reportTime,					  terminal,					  reporterMobile				   }				if (this.completionPhone != '') { //输入了手机号					if (this.completionPhone.length == 11) {						let startPhone3 = this.completionPhone.slice(0, 3)						let endPhone4 = this.completionPhone.slice(7)						let start3 = this.completePhoneParam.hiddenMobile.slice(0, 3)						let end4 = this.completePhoneParam.hiddenMobile.slice(7)						if (startPhone3 == start3 && endPhone4 == end4) {							if (this.faSongFangLJ) {								return							}							this.faSongFangLJ = true;							this.commitReport();						} else {							uni.showToast({								title: '请输入与前三后四号码相匹配的手机号码',								icon: "none",								duration: 2000							})						}					} else {						uni.showToast({							title: '请输入完整的手机号码',							icon: "none",							duration: 2000						})					}				} else {					uni.showToast({						title: '请输入手机号码',						icon: "none",						duration: 2000					})				}			},			dateFormat(fmt, date) {				date = new Date(date);			    let ret;			    const opt = {			        "Y+": date.getFullYear().toString(),        // 年			        "m+": (date.getMonth() + 1).toString(),     // 月			        "d+": date.getDate().toString(),            // 日			        "H+": date.getHours().toString(),           // 时			        "M+": date.getMinutes().toString(),         // 分			        "S+": date.getSeconds().toString()          // 秒			        // 有其他格式化字符需求可以继续添加,必须转化成字符串			    };			    for (let k in opt) {			        ret = new RegExp("(" + k + ")").exec(fmt);			        if (ret) {			            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))			        };			    };			    return fmt;			},			/**			 * 补全号码			 */			async commitReport() {				let data = {					brandId: this.brandId,					hiddenMobile: this.completePhoneParam.hiddenMobile,					houseId: this.completePhoneParam.houseId,					mobile: this.completionPhone,					name: this.completePhoneParam.name,					reportId: this.completePhoneParam.reportId,					reportTime:  this.dateFormat("YYYY-mm-dd HH:MM:SS",this.completePhoneParam.reportTime),					reporterMobile: this.completePhoneParam.reporterMobile,					terminal: this.completePhoneParam.terminal,					userId: this.completePhoneParam.userId,				};				let res = await this.$myRequest({					url: "/elab-marketing-user/pre3post4/completePhone",					data: data				});				if (res.data.success) {					this.isSuccess = 1					this.isShowComplet = false					this.faSongFangLJ = false;				} else {					this.isSuccess = 2					this.isShowComplet = false					this.faSongFangLJ = false;					this.message = res.data.message				}			},		},		components: {			dmPopView		}	}</script><style scoped lang="scss">		.titleDiv {		width: 100%;		padding: 56rpx 30rpx 10rpx 40rpx;		box-sizing: border-box;		display: flex; 		justify-content: space-between;				.title {			font-size: 36rpx; 			font-weight: bold;		}				.pop-close {			position: absolute;			top: 64rpx;			right: 30rpx;			width: 40rpx;			height: 40rpx;		}	}		.content_options {		width: 100%;		display: flex;		height: 700rpx;		align-items: center;		flex-direction: column;		overflow-y: scroll;		overflow-x: hidden;		.options_title {			font-size: 24rpx;			font-family: Verdana, 'Verdana-Regular';			font-weight: 400;			text-align: left;			color: #333333;			margin-left: 40rpx;			margin-right: 40rpx;			margin-top: 20rpx;		}		.input-info {			width: calc(100% - 60rpx);			height: 96rpx;			background: #f1f5f9;			border-radius: 16rpx;			padding-left: 30rpx;			box-sizing: border-box;			line-height: 96rpx;			margin-top: 50rpx;			margin-bottom: 140rpx;		}		.confirm {			width: 260rpx;			height: 84rpx;			border-radius: 42rpx;			display: flex;			justify-content: center;			align-items: center;			font-size: 32rpx;			font-family: Verdana, Verdana-Regular;			font-weight: 400;			text-align: center;			color: #ffffff;		}		.think_again {			font-size: 32rpx;			font-family: Verdana, Verdana-Regular;			font-weight: 400;			text-align: center;			color: #666666;			margin-top: 50rpx;		}		.icon_complete {			width: 118rpx;			height: 118rpx;			margin-top: 100rpx;			margin-bottom: 30rpx;		}		.success_confirm {			width: 280rpx;			height: 84rpx;			border-radius: 42rpx;			display: flex;			justify-content: center;			align-items: center;			font-size: 32rpx;			font-family: Verdana, Verdana-Regular;			font-weight: 400;			text-align: center;			color: #ffffff;			margin-top: 160rpx;		}	}</style>
 |