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