zhanghui 2 سال پیش
والد
کامیت
907769aed0

+ 0 - 144
myPages/systemSwitch/index.rpx.scss

@@ -1,144 +0,0 @@
-.page{
-  background: #F7F7F7;
-}
-.content{
-  width: 750rpx;
-  position: relative;
-}
-.stepImg{
-  width: 592rpx;
-  height: 112rpx;
-  margin-top: 32rpx;
-}
-.formView{
-  width: 638rpx;
-  height: 672rpx;
-  background: #FFFFFF;
-  border-radius: 20rpx;
-  margin-top: 40rpx;
-  padding: 0 24rpx;
-}
-
-.selectButton{
-  width: 686rpx;
-  height: 84rpx;
-  background: #FFE05C;
-  border-radius: 54rpx;
-  text-align: center;
-  font-size: 28rpx;
-  font-weight: 400;
-  color: #333333;
-  line-height: 84rpx;
-  margin-top: 60rpx;
-}
-.userMsg{
-  width: 686rpx;
-  height: 404rpx;
-  background: #FFFFFF;
-  border-radius: 20rpx;
-  margin-top: 40rpx;
-}
-.key{
-  width: 112rpx;
-  font-size: 28rpx;
-  font-weight: 400;
-  color: #999999;
-  margin-left: 24rpx;
-  display: block;
-}
-.value{
-  font-size: 28rpx;
-  font-weight: 400;
-  color: #333333;
-  margin-left: 32rpx;
-}
-.list{
-  margin-top: 24rpx;
-}
-.step2Button{
-  width: 750rpx;
-  background: #FFFFFF;
-}
-.last{
-  width: 240rpx;
-  height: 84rpx;
-  background: #EEEEEE;
-  border-radius: 54rpx;
-  text-align: center;
-  line-height: 84rpx;
-  font-size: 28rpx;
-  font-weight: 400;
-  color: #333333;
-  margin: 24rpx 22rpx 24rpx 32rpx;
-}
-.next{
-  width: 424rpx;
-  height: 84rpx;
-  background: #FFE05C;
-  border-radius: 54rpx;
-  text-align: center;
-  line-height: 84rpx;
-  font-size: 28rpx;
-  font-weight: 400;
-  color: #333333;
-  margin: 24rpx 0;
-}
-.recordView{
-  width: 686rpx;
-  height: 80rpx;
-  background: #FFFFFF;
-  border-radius: 10rpx;
-}
-.selectRecord{
-  width: 335rpx;
-  height: 64rpx;
-  background: #FFE05C;
-  border-radius: 6rpx;
-  text-align: center;
-  font-size: 28rpx;
-  font-weight: 500;
-  color: #333333;
-  line-height: 64rpx;
-  margin-top: 8rpx;
-
-}
-.record{
-  width: 335rpx;
-  height: 64rpx;
-  background: #FFFFFF;
-  border-radius: 6rpx;
-  text-align: center;
-  font-size: 28rpx;
-  font-weight: 500;
-  color: #757A85;
-  line-height: 64rpx;
-  margin-top: 8rpx;
-}
-.successImg{
-  width: 160rpx;
-  height: 160rpx;
-  border-radius: 80rpx;
-  margin-top: 248rpx;
-}
-.successText{
-
-  height: 44rpx;
-  font-size: 28rpx;
-  font-weight: 400;
-  color: #666666;
-  line-height: 44rpx;
-  margin-top: 40rpx;
-
-}
-.endButton{
-  width: 638rpx;
-  height: 84rpx;
-  background: #FFE05C;
-  border-radius: 54rpx;
-  text-align: center;
-  font-size: 28rpx;
-  font-weight: 400;
-  color: #333333;
-  line-height: 84rpx;
-  margin-top: 160rpx;
-}

+ 826 - 239
myPages/systemSwitch/index.vue

@@ -1,247 +1,834 @@
 <template>
-	<view class="page flex-row justify-center" :style="{'width':sysWidth,'height':sysHeight}">
-		<view class="content">
-			<swiper :style="{'height':sysHeight}" :duration="0" :current="pageIndex">
-				<swiper-item @touchmove.stop>
-					<view class="flex-row justify-center">
-						<image class="stepImg" src="/static/me/step1.png"></image>
-					</view>
-					<u--form labelPosition="top" :model="userInfo" :rules="rules" ref="uForm" :labelStyle="labelStyle">
-						<view class="flex-row justify-center">
-							<view class="formView flex-col justify-around">
-								<view>
-									<u-form-item labelWidth="auto" label="老系统手机号" prop="phone" borderBottom>
-										<u--input v-model="userInfo.phone" border="none" placeholder="填写老系统电话"></u--input>
-									</u-form-item>
-								</view>
-								<view>
-									<u-form-item labelWidth="auto" label="老系统会员姓名" prop="memberName" borderBottom>
-										<u--input v-model="userInfo.memberName" border="none" placeholder="填写姓名"></u--input>
-									</u-form-item>
-								</view>
-								<view>
-									<u-form-item labelWidth="auto" label="当前手机号" prop="phonenumber" borderBottom>
-										<u--input v-model="userInfo.phonenumber" border="none" placeholder="填写当前手机号"></u--input>
-									</u-form-item>
-								</view>
-								<view>
-									<u-form-item labelWidth="auto" label="验证码" prop="smsCode">
-										<view class="flex-row">
-											<u--input v-model="userInfo.smsCode" border="none" placeholder="请输入验证码"></u--input>
-											<view class="flex-col justify-center" @click="getCode">{{tips}}</view>
-										</view>
-									</u-form-item>
-								</view>
-							</view>
-						</view>
-					</u--form>
-					<view class="flex-row justify-center">
-						<view class="selectButton" @click="selectUserMsg">
-							<text>查询</text>
-						</view>
-					</view>
-					<u-code ref="uCode" @change="codeChange" seconds="60" @start="disabled1 = true" @end="disabled1 = false"></u-code>
-				</swiper-item>
-				<swiper-item @touchmove.stop>
-
-					<scroll-view scroll-y="true" class="scroll-Y" :style="{'height':scrollHeight}">
-						<view class="flex-row justify-center">
-							<image class="stepImg" src="/static/me/step2.png"></image>
-						</view>
-						<view class="flex-row justify-center">
-							<view class="userMsg flex-col justify-around">
-								<view class="flex-row"><text class="key">会员姓名</text><text class="value">张三</text></view>
-								<view class="flex-row"><text class="key">手机号码</text><text class="value">17365224542</text></view>
-								<view class="flex-row"><text class="key">会员卡号</text><text class="value">SSS000001</text></view>
-								<view class="flex-row"><text class="key">会员编号</text><text class="value">SSS000001</text></view>
-								<view class="flex-row"><text class="key">积分</text><text class="value">366666</text></view>
-								<view class="flex-row"><text class="key">账户余额</text><text class="value">¥22222</text></view>
-								<view class="flex-row"><text class="key">赠送余额</text><text class="value">¥22222</text></view>
-							</view>
-						</view>
-						<view class="list" :style="{'height':scrollHeight}">
-							<view class="flex-row justify-center">
-								<view class="flex-row justify-center  recordView">
-									<view :class="recordIndex === 0? 'selectRecord':'record'" @click="clickRecord(0)">
-										<text>充值记录</text>
-									</view>
-									<view :class="recordIndex === 1? 'selectRecord':'record'" @click="clickRecord(1)">
-										<text>消费记录</text>
-									</view>
-								</view>
-							</view>
-							<swiper :style="{'height':swiperHeight}" :current="recordIndex"
-								@change="recordSwiperChange">
-								<swiper-item v-for="(item,index) in 2" :key="index">
-									<mescroll-item ref="MescrollItem" :i="index" :index="recordIndex"
-										:height="swiperHeight">
-									</mescroll-item>
-								</swiper-item>
-							</swiper>
-						</view>
-					</scroll-view>
-					<view class="step2Button flex-row">
-						<view class="last" @click="lastStep"><text>上一步</text></view>
-						<view class="next" @click="migration"><text>下一步</text></view>
-					</view>
-				</swiper-item>
-				<swiper-item @touchmove.stop>
-					<view class="flex-row justify-center">
-						<image class="stepImg" src="/static/me/step3.png"></image>
-					</view>
-					<view class="flex-row justify-center">
-						<image class="successImg" src="/static/me/success.png"></image>
-					</view>
-					<view class="flex-row justify-center successText">
-						<text>账户迁移成功</text>
-					</view>
-					<view class="flex-row justify-center ">
-						<view class="endButton" @click="migrationEnd">
-							<text>确认</text>
-						</view>
-					</view>
-				</swiper-item>
-			</swiper>
-
-
-		</view>
-	</view>
+  <view class="container">
+    <view class="step-bar">
+      <view >
+        <view class="h-num">
+          <view class="head-ball" :style="currentStep == 0 ? 'background-color: #fbe362;':'background-color: #91d224;color:#FFFFFF' " >
+            <text>1</text>
+          </view>
+        </view>
+        <view class="">账号查询</view>
+      </view>
+      <view>
+        <u-icon name="more-dot-fill" color="#cccccc" size="28"></u-icon>
+      </view>
+      <view >
+        <view class="h-num">
+          <view class="head-ball" :style="currentStep == 1 ? 'background-color: #fbe362;':(currentStep == 0? 'background-color: #FFFFFF' :'background-color: #91d224;color:#FFFFFF' )  " >
+            <text>2</text>
+          </view>
+        </view>
+        <view class="">信息确认</view>
+      </view>
+      <view>
+        <u-icon name="more-dot-fill" color="#cccccc" size="28"></u-icon>
+      </view>
+      <view >
+        <view class="h-num">
+          <view class="head-ball" :style="currentStep == 2 ? 'background-color: #fbe362;':'background-color: #FFFFFF' " >
+            <text>3</text>
+          </view>
+        </view>
+        <view class="">账号迁移</view>
+      </view>
+    </view>
+    <view class="form">
+      <view v-if="currentStep === 0" class="h-content-wrap">
+        <u--form labelPosition="top" :model="userInfo" :rules="rules" ref="form1">
+          <u-form-item labelWidth="auto" labelAlign="right" label="老系统手机号" prop="phone">
+            <u--input v-model="userInfo.phone" disabledColor="#ffffff" placeholder="填写老系统电话" border="bottom"
+                      maxlength="11"></u--input>
+          </u-form-item>
+          <u-form-item label="老系统会员姓名" prop="memberName" labelPosition="top" labelWidth="auto" labelAlign="right">
+            <u--input v-model="userInfo.memberName" disabledColor="#ffffff" placeholder="填写姓名" border="bottom"
+                      maxlength="16"></u--input>
+          </u-form-item>
+          <u-form-item label="当前手机号" prop="phonenumber" labelWidth="auto" labelAlign="right">
+            <u--input v-model="userInfo.phonenumber" disabledColor="#ffffff" placeholder="填写当前手机号"
+                      border="bottom" maxlength="11"></u--input>
+          </u-form-item>
+          <u-form-item labelWidth="auto" labelAlign="right" label="验证码" prop="smsCode" width="120">
+            <u--input v-model="userInfo.smsCode" disabledColor="#ffffff" placeholder="请输入验证码" border="bottom"
+                      maxlength="6"></u--input>
+            <template #right>
+              <view class="identifying-code">
+                <u-code ref="uCode2" @change="codeChange2" keep-running start-text="获取验证码"></u-code>
+                <text @tap="getCode2" :text="tips2" class="u-page__code-text">{{ tips2 }}</text>
+              </view>
+            </template>
+          </u-form-item>
+        </u--form>
+      </view>
+      <view v-if="currentStep === 1">
+        <view class="h-content">
+          <view class="h-basic-info">
+            <view class="h-value">
+              <view class="h-name">会员编号</view>
+              <view class="h-text">{{ userMemberInfo.memberNo }}</view>
+            </view>
+            <view class="h-value">
+              <view class="h-name">会员卡号</view>
+              <view class="h-text">{{ userMemberInfo.memberCard }}</view>
+            </view>
+            <view class="h-value">
+              <view class="h-name">会员姓名</view>
+              <view class="h-text">{{ userMemberInfo.memberName }}</view>
+            </view>
+            <view class="h-value">
+              <view class="h-name">手机号码</view>
+              <view class="h-text">{{ userMemberInfo.phone }}</view>
+            </view>
+
+            <view class="h-value">
+              <view class="h-name">积分</view>
+              <view class="h-text">{{ userMemberInfo.integral }}</view>
+            </view>
+            <view class="h-value">
+              <view class="h-name">账户余额</view>
+              <view class="h-text">¥{{ userMemberInfo.nowBalance }}</view>
+            </view>
+          </view>
+          <view class="h-record">
+            <!-- 导航-->
+            <view class="service-order-tab-bar">
+              <view class="service-order-tab-item" :class="{ active: currentServiceTab === 'orderTab1' }"
+                    @click="changeServiceTab('orderTab1')">
+                <text :class="{ underline: currentServiceTab === 'orderTab1' }">充值记录</text>
+              </view>
+              <view class="service-order-tab-item" :class="{ active: currentServiceTab === 'orderTab2' }"
+                    @click="changeServiceTab('orderTab2')">
+                <text :class="{ underline: currentServiceTab === 'orderTab2' }">消费记录</text>
+              </view>
+            </view>
+            <view class="custom-line"></view>
+            <!-- order -->
+            <view v-if="currentServiceTab == 'orderTab1' " class="store-order-wrap">
+              <view v-for="(item, index) in memberInfoRecords" class="store-order">
+                <view class="h-content">
+                  <view class="h-row">
+                    <view class="h-value">
+                      <text>储值记录</text>
+                    </view>
+                    <view class="h-value">
+                      <text>+ ¥{{ item.rechargeAmount }}</text>
+                    </view>
+                  </view>
+                  <view class="h-row">
+                    <view class="h-value">
+                      <text class="h-text">{{ item.rechargeTime }}</text>
+                    </view>
+                    <view class="h-value h-name">
+                      <text class="h-text">账户余额:¥{{ item.nowBalance }}</text>
+                    </view>
+                  </view>
+                </view>
+                <view class="custom-line"></view>
+              </view>
+            </view>
+            <view v-if="currentServiceTab == 'orderTab2'" class="store-order-wrap">
+              <view v-for="(item, index) in memberInfoRecords" class="store-order">
+                <view class="h-content">
+                  <view class="h-row">
+                    <view class="h-value">
+                      <text>消费记录</text>
+                    </view>
+                    <view class="h-value">
+                      <text>- ¥{{ item.consumeAmount }}</text>
+                    </view>
+                  </view>
+                  <view class="h-row">
+                    <view class="h-value">
+                      <text class="h-text">{{ item.consumeTime }}</text>
+                    </view>
+<!--                    <view class="h-value h-name">-->
+<!--                      <text class="h-text">账户余额:¥{{ item.nowBalance }}</text>-->
+<!--                    </view>-->
+                  </view>
+                </view>
+                <view class="custom-line"></view>
+              </view>
+            </view>
+          </view>
+        </view>
+      </view>
+      <!--      <view v-if="currentStep === 2" class="">-->
+      <!--        <view class="letter-commitment">-->
+      <!--          <view class="h-title">-->
+      <!--            <text>个人信息真实承诺书</text>-->
+      <!--          </view>-->
+      <!--          <view class="">-->
+      <!--            <text>会员姓名:{{ userInfo.memberName }}</text>-->
+      <!--          </view>-->
+      <!--          <view class="">-->
+      <!--            <text>老系统手机号: {{ userInfo.phone }}</text>-->
+      <!--          </view>-->
+      <!--          <view class="">-->
+      <!--            <text>当前手机号: {{ userInfo.phonenumber }}</text>-->
+      <!--          </view>-->
+      <!--          <view class="">-->
+      <!--            <text>为系统迁移: 本人郑重承诺</text>-->
+      <!--          </view>-->
+      <!--          <view class="h-content">-->
+      <!--            <view class="" v-html="termOfService.aboutContent"></view>-->
+      <!--          </view>-->
+
+      <!--        </view>-->
+
+      <!--      </view>-->
+    </view>
+    <view v-if="currentStep === 2" class="">
+      <view class="h-content-step-end">
+        <view class="h-success">
+          <u-icon name="checkmark" color="#5dac17" size="70"></u-icon>
+        </view>
+        <view class="h-name">
+          <text>账户迁移成功</text>
+          !
+        </view>
+        <view @click="nextStep(3)" class="h-btn">
+          <text>确认</text>
+        </view>
+      </view>
+    </view>
+    <view v-if="currentStep == 0" class="button-group">
+      <!-- <button @click="prevStep" :disabled="currentStep === 0">上一步</button> -->
+      <button class="h-btn" @click="nextStep(0)" :disabled="currentStep === steps.length - 1">开始查询</button>
+    </view>
+
+
+    <view v-if="currentStep == 1" class="button-group">
+      <button @click="prevStep" :disabled="currentStep === 0">上一步</button>
+      <view class="h-btn" @click="nextStep(2)" :disabled="currentStep === steps.length - 1">
+        <text>确认并迁移</text>
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
-	import MescrollItem from "./module/mescrollUni-item.vue";
-	export default {
-		components: {
-			MescrollItem
-		},
-		data() {
-			return {
-				pageIndex: 0,
-				sysWidth: '',
-				sysHeight: '',
-				scrollHeight: '',
-				swiperHeight: '',
-				recordIndex: 0,
-				tips: '',
-				re:'^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-9])|(18[0-9])|166|195|198|199|191|(147))\\d{8}$', //手机号正则表达式
-				labelStyle: {
-					fontSize: '28rpx',
-					color: '#333333',
-					fontWeight: 'bold'
-				},
-				userInfo: {
-					phone:'',
-					memberName:'',
-					phonenumber:'',
-					smsCode:''
-				},
-				rules: {
-					phone: {
-						type: 'string',
-						required: true,
-						message: '请输入11位电话号码',
-						trigger: ['blur', 'change']
-					},
-					memberName: {
-						type: 'string',
-						min: 1,
-						required: true,
-						message: '请输入名字',
-						trigger: ['blur', 'change']
-					},
-					phonenumber: {
-						type: 'string',
-						min: 11,
-						max: 11,
-						required: true,
-						message: '请输入11位电话号码',
-						trigger: ['blur', 'change']
-					},
-					smsCode: {
-						type: 'string',
-						min: 4,
-						max: 6,
-						required: true,
-						message: '请输入验证码',
-						trigger: ['blur', 'change']
-					},
-				},
-			};
-		},
-		onLoad() {
-			let sysInfo = uni.getSystemInfoSync()
-			this.sysWidth = sysInfo.windowWidth + 'px'
-			this.sysHeight = sysInfo.windowHeight + 'px'
-			this.scrollHeight = sysInfo.windowHeight - (sysInfo.windowWidth / 750) * 132 + 'px'
-			this.swiperHeight = (750 / sysInfo.windowWidth) * sysInfo.windowHeight - 80 - 132 + 'rpx'
-		},
-
-		methods: {
-
-
-			selectUserMsg() {
-				//查询个人信息 todo
-				this.$refs.uForm.validate().then(res => {
-					this.$api.getOldMember(this.userInfo).then((res) => {
-						console.log(res.data.data)
-
-						if (res.data.data){
-							this.pageIndex = 1
-						}
-
-					})
-
-				}).catch(errors => {
-				})
-			},
-			lastStep() {
-				this.pageIndex = 0
-			},
-			migration() {
-				//数据迁移 todo
-				this.pageIndex = 2
-			},
-			migrationEnd() {
-				uni.switchTab({
-					url: '/pages/my/index'
-				})
-			},
-			recordSwiperChange(e) {
-				this.recordIndex = e.detail.current
-			},
-			clickRecord(num) {
-				this.recordIndex = num
-			},
-			codeChange(text) {
-				this.tips = text;
-			},
-			getCode() {
-				let regExp=new RegExp(this.re);
-				let b= regExp.test(this.userInfo.phonenumber)
-				if (!b){
-					uni.$u.toast('请输入正确的手机号')
-					return
-				}
-				if (this.$refs.uCode.canGetCode) {
-					// 模拟向后端请求验证码
-					uni.showLoading({
-						title: '正在获取验证码'
-					})
-					this.$api.getSmsCode({phonenumber: this.userInfo.phonenumber}).then(res=>{
-						uni.$u.toast('验证码已发送');
-						// 通知验证码组件内部开始倒计时
-						this.$refs.uCode.start();
-					})
-
-				} else {
-					uni.$u.toast('倒计时结束后再发送');
-				}
-			},
-		}
-
-	};
+import signature from '../components/sign/sign';
+
+export default {
+  components: {
+    signature
+  },
+  data() {
+    return {
+      showCanvas: false,
+      currentStep: 0,
+      steps: ['账户查询', '信息确认', '账户迁移'], // 步骤条的文字内容
+      step1Value: '',
+      step2Value: '',
+      step3Value: '',
+      userInfo: {
+        auth: true,
+        phone: '18231041846',
+        memberName: '赵梓熠-测试',
+        phonenumber: '18231041846',
+        smsCode: '',
+        memberNo: "18902",
+        type: 7,
+        requstForm: true
+      },
+      // 服务条款对象信息
+      termOfService: {
+        aboutContent: "<p>会员协议会员协议会员协议会员协议会员协议会员协议</p>",
+        aboutType: "1",
+        createBy: "admin",
+        createTime: "2023-07-30 08:53:17",
+        id: "1685574269874098178",
+        status: "0",
+        updateBy: "admin",
+        updateTime: "2023-07-30 21:04:51"
+      },
+      userMemberInfo: {
+        memberNo: "string",
+        pingYinCode: "string",
+        memberName: "string",
+        integral: 0,
+        sex: 0,
+        birthday: "string",
+        phone: "string",
+        memberPassword: "string",
+        height: "string",
+        weight: "string",
+        memberCard: "string",
+        address: "string",
+        nowBalance: 0,
+        totalConsumeAmount: 0,
+        debt: 0,
+        remarks: "string",
+        joinTime: "string",
+        memberStatus: 0,
+        referencesNo: "string",
+        consumeCycle: "string",
+        otherInfo: "string",
+        photoUrl: "string"
+      },
+      memberInfoRecords: [{
+        orderNo: "string",
+        memberNo: "string",
+        memberName: "string",
+        phone: "string",
+        consumeAmount: 0,
+        realPayAmount: 0,
+        profit: 0,
+        integral: 0,
+        remainDebt: 0,
+        consumeTime: "string",
+        remarks: "string",
+        consumeStore: "string",
+        consumeType: "string",
+        discountAmount: 0,
+        bedName: "string",
+        payInfo: "string",
+        memberStore: "string",
+        payType: "string"
+      }],
+      show: false,
+      currentTab: 'tab1', // 当前选中的 Tab
+      currentServiceTab: 'orderTab1', // 当前选中的 Tab
+      defaultColor: '#CCCCCC',
+      currentColor: '#FF0000',
+      completedColor: '#00FF00',
+      content: '一、本人所提供的个人信息 证明材料、证件',
+      signType: '',
+      signImg1: '',
+      tips2: '',
+      rules: {
+        phone: [
+          {
+            required: true,
+            min: 10,
+            max: 12,
+            message: '请输入11位电话号码',
+            trigger: ['blur', 'change'],
+          },
+          {
+            // 此为同步验证,可以直接返回true或者false,如果是异步验证,稍微不同,见下方说明
+            validator: (rule, value, callback) => {
+              // 调用uView自带的js验证规则,详见:https://www.uviewui.com/js/test.html
+              return !this.$isDataEmpty(value);
+            },
+            message: "请认真填写电话号码",
+            trigger: ['blur', 'change'],
+          }
+        ],
+        memberName: [
+          {
+            required: true,
+            message: '请输入名字',
+            trigger: ['blur', 'change'],
+          },
+        ],
+        phonenumber: [
+          {
+            required: true,
+            min: 10,
+            max: 12,
+            message: '请输入11位电话号码',
+            trigger: ['blur', 'change'],
+          },
+          {
+            // 此为同步验证,可以直接返回true或者false,如果是异步验证,稍微不同,见下方说明
+            validator: (rule, value, callback) => {
+              // 调用uView自带的js验证规则,详见:https://www.uviewui.com/js/test.html
+              return !this.$isDataEmpty(value);
+            },
+            message: "请认真填写电话号码",
+            trigger: ['blur', 'change'],
+          }
+        ],
+        // smsCode: {
+        //   required: true,
+        //   min: 4,
+        //   max: 6,
+        //   message: '请认真填写验证码',
+        //   trigger: ['blur', 'change'],
+        // },
+      },
+
+    };
+  },
+  computed: {
+    itemObject(num) {
+      return (num) => ({
+        backgroundColor: item.background,
+        gridColumnStart: item.columnStart,
+        gridColumnEnd: item.columnEnd,
+        gridRowStart: item.rowStart,
+        gridRowEnd: item.rowEnd
+      })
+    }
+  },
+
+  onLoad() {
+    // 获取服务条款数据
+    // this.getTermOfServiceByType();
+  },
+
+  onUnload() {
+    if (this.timer) {
+      clearTimeout(this.timer);
+      this.timer = null;
+    }
+  },
+
+  onReady() {
+    this.$refs.form1.setRules(this.rules)
+  },
+
+  methods: {
+    // 关闭签名框
+    closeCanvas() {
+      this.showCanvas = false;
+    },
+    // 选择签名类型
+    personSing(type) {
+      this.showCanvas = true;
+      this.signType = type;
+    },
+    // 保存签名信息
+    saveCanvasImg(path) {
+      console.log(path)
+      let that = this;
+      uni.uploadFile({
+        url: this.$host + '/resource/oss/upload', //仅为示例,非真实的接口地址
+        filePath: path,
+        name: 'file',
+        header: {
+          'Authorization': 'Bearer ' + that.$store.state.loginState.accessToken,
+        },
+        success: (uploadFileRes) => {
+          let res = JSON.parse(uploadFileRes.data)
+          console.log(res)
+          that.showCanvas = false;
+        }
+      });
+    },
+    codeChange2(text) {
+      this.tips2 = text;
+    },
+    getCode2() {
+      if (this.$refs.uCode2.canGetCode) {
+        this.getSmsCode();
+      } else {
+        uni.$u.toast('倒计时结束后再发送');
+      }
+    },
+    // 获取手机验证码
+    getSmsCode() {
+      // 模拟向后端请求验证码
+      uni.showLoading({
+        title: '正在获取验证码'
+      })
+      this.$api.getSmsCode({phonenumber: this.userInfo.phone, auth: true}).then((res) => {
+        uni.hideLoading();
+        // 这里此提示会被this.start()方法中的提示覆盖
+        uni.$u.toast('验证码已发送');
+        // 通知验证码组件内部开始倒计时
+        this.$refs.uCode2.start();
+      }).catch(() => {
+        uni.showToast({
+          title: "操作失败"
+        })
+      });
+    },
+    getStepClass(index) {
+      if (index < this.currentStep) {
+        return 'step';
+      } else if (index === this.currentStep) {
+        return ['step', 'active'];
+      } else {
+        return ['step', 'default'];
+      }
+    },
+    // 查询老会员系统数据
+    getOldMember() {
+      // this.$api.getOldMember(this.userInfo).then((res) => {
+      //   if (!!res) {
+      //     this.userMemberInfo = res.data.data;
+      //     this.userInfo.memberNo = res.data.data.memberNo;
+      //   } else {
+      //     uni.$u.toast('未查询到数据');
+      //   }
+        // 查询充值记录
+        this.getOrderRechargeOldList();
+
+        this.timer = setTimeout(() => {
+          if (this.currentStep < this.steps.length - 1) {
+            this.currentStep++;
+          }
+        }, 0)
+      // }).catch((res) => {
+      //   uni.showToast({
+      //     title: "操作失败"
+      //   })
+      // });
+    },
+    // 查询会员消费记录
+    getOrderConsumeLogOld() {
+      this.$api.getOrderConsumeLogOld(this.userInfo).then((res) => {
+        this.memberInfoRecords = res.data.data;
+      }).catch(() => {
+        uni.showToast({
+          title: "操作失败"
+        })
+      });
+    },
+    // 查询叶会员充值记录
+    getOrderRechargeOldList() {
+      this.$api.getOrderRechargeOldList(this.userInfo).then((res) => {
+        this.memberInfoRecords = res.data.data;
+      }).catch(() => {
+        uni.showToast({
+          title: "操作失败"
+        })
+      });
+    },
+    // 提交保存
+    submitOldData() {
+      console.log(this.userInfo.memberNo)
+      this.userInfo.memberNo = '18902'
+      this.$api.submitOldData(this.userInfo).then((res) => {
+        console.log(res)
+        if (this.currentStep < this.steps.length - 1) {
+          this.currentStep++;
+        }
+      }).catch(() => {
+        uni.showToast({
+          title: "操作失败"
+        })
+      });
+    },
+    nextStep(idx) {
+      if (idx == 0) { // 查询数据
+        console.log(this.$refs.form1.validate(), '2222222222')
+        this.$refs.form1.validate().then(res => {
+          this.getOldMember();
+        }).catch(errors => {
+          uni.$u.toast('校验失败,请认真填写')
+        })
+      }
+
+      if (idx == 1) { // 显示查询数据
+        if (this.currentStep < this.steps.length - 1) {
+          this.currentStep++;
+        }
+      }
+
+      if (idx == 2) { // 用户签名确认
+        this.submitOldData();
+      }
+
+      if (idx == 3) { // 迁移成功,重新设置用户数据
+        uni.switchTab({
+          url: '/pages/index/index',
+        })
+      }
+    },
+    prevStep() {
+      if (this.currentStep > 0) {
+        this.currentStep--;
+      }
+    },
+    changeTab(tab) {
+      this.currentTab = tab;
+    },
+    // 服务订单
+    changeServiceTab(tab) {
+      if (tab == 'orderTab1') {
+        this.getOrderRechargeOldList();
+      } else if (tab == 'orderTab2') {
+        this.getOrderConsumeLogOld();
+      }
+      this.currentServiceTab = tab;
+    },
+    // 获取服务条款信息
+    getTermOfServiceByType() {
+      // 获取数据
+      this.$api.getTermOfServiceByType({data: this.userInfo}).then((res) => {
+        if (res.aboutContent) {
+          this.termOfService.aboutContent = res.aboutContent
+        } else {
+          this.termOfService.aboutContent = "暂无信息!!!"
+        }
+      }).catch(() => {
+        uni.showToast({
+          title: "操作失败"
+        })
+      });
+    },
+  }
+};
 </script>
 
 <style scoped lang="scss">
-	@import './index.rpx.scss';
+.h-content-step-end {
+  height: 300px;
+  text-align: center;
+  padding-top: 60px;
+  font-family: PingFangSC-Regular, PingFang SC;
+
+  .h-success {
+    margin: 0 auto;
+    display: flex;
+    justify-content: center;
+    height: 80px;
+    width: 80px;
+    background: #f7fbf3;
+    border-radius: 40px;
+  }
+
+  .h-name {
+    margin-top: 20px;
+    height: 22px;
+    font-size: 14px;
+    font-weight: 400;
+    color: #666666;
+    line-height: 22px;
+  }
+
+  .h-btn {
+    margin: 0 auto;
+    margin-top: 40px;
+    width: 319px;
+    height: 42px;
+    background: #FFE05C;
+    border-radius: 27px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    font-size: 14px;
+  }
+}
+
+.letter-commitment {
+  padding: 12px;
+  background: #fff;
+
+  .h-title {
+    text-align: center;
+    font-size: 14px;
+  }
+}
+
+.col-border-2 {
+  margin-top: 12px;
+
+  .sign-wrap {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    height: 120px;
+    background: #FFFFFF;
+  }
+}
+
+.sign-agree {
+  font-size: 14px;
+  font-weight: 400;
+  color: #666666;
+  line-height: 50px;
+  text-align: center;
+}
+
+.h-content-wrap {
+  background: #fff;
+  border-radius: 20rpx;
+  padding-left: 12px;
+  padding-right: 12px;
+}
+
+.h-content {
+  margin-bottom: 12px;
+  background-color: #fff;
+
+  .h-basic-info {
+    padding: 12px;
+    background: whitesmoke;
+    border-radius: 6px;
+    margin: 20rpx;
+    .h-value {
+      display: flex;
+      font-family: PingFangSC-Regular, PingFang SC;
+      font-size: 14px;
+      font-weight: 400;
+
+      .h-name {
+        width: 56px;
+        height: 22px;
+        color: #999999;
+        line-height: 22px;
+        margin-right: 12px;
+      }
+
+      .h-text {
+        height: 22px;
+        color: #333333;
+        line-height: 22px;
+      }
+    }
+  }
+
+  .h-record {
+    margin-top: 24rpx;
+
+    /* 服务订单内容*/
+    .service-order-tab-bar {
+      background: #FAFAFA;
+      display: flex;
+      justify-content: space-around;
+      height: 50px;
+
+
+      .service-order-tab-item {
+        flex: 1;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        font-size: 16px;
+        color: #333;
+        line-height: 26px;
+        margin: 10rpx;
+        border-radius: 10rpx;
+      }
+
+      .service-order-tab-item.active {
+        background-color: #fbe262;
+
+      }
+
+
+    }
+  }
+}
+
+.store-order-wrap {
+  padding: 12px;
+  .store-order {
+    background: #fff;
+    padding: 10px;
+    border-radius: 3px;
+    font-family: PingFangSC-Regular, PingFang SC;
+
+    .h-content {
+      .h-row {
+        display: flex;
+        justify-content: space-between;
+      }
+
+      .h-text {
+        font-size: 12px;
+        font-weight: 400;
+        color: #999999;
+        line-height: 20px;
+      }
+    }
+  }
+}
+
+.h-footer {
+  text-align: right;
+}
+
+
+.signature-wrap {
+  height: 120px;
+  width: 300px;
+}
+
+.step-bar {
+  padding: 12px;
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 20px;
+}
+
+.step {
+  position: relative;
+  /* width: 100%; */
+  // height: 40px;
+  /* background-color: #ccc; */
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: #fff;
+
+  height: 30px;
+  width: 30px;
+  background: green;
+  border-radius: 15px;
+  margin: 0 auto;
+}
+
+.h-num {
+  margin: 0 auto;
+}
+
+.head-ball {
+  transform: translateX(50%);
+  width: 60rpx;
+  height: 60rpx;
+  line-height: 60rpx;
+  border-radius: 30rpx;
+  background-color: #fbe362;
+  text-align: center;
+}
+
+.step.default {
+  color: #333;
+  background: #fff;
+}
+
+.step.active {
+  color: #333;
+  background: #FFE05C;
+}
+
+.separator {
+  position: absolute;
+  top: 50%;
+  left: 130%;
+  transform: translateY(-50%);
+  width: 50px;
+  height: 2px;
+  border: 1px dashed #000;
+}
+
+.form {
+  margin-bottom: 20px;
+  border-radius: 6px;
+}
+
+.button-group {
+  height: 60px;
+  position: fixed;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  display: flex;
+  justify-content: space-between;
+  background: #fff;
+
+  .h-btn {
+    margin: 0 auto;
+    margin-top: 8px;
+    width: 200px;
+    height: 42px;
+    background: #FFE05C;
+    border-radius: 27px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    font-size: 14px;
+  }
+}
+
+.identifying-code {
+  image {
+    width: 80px;
+    height: 30px;
+  }
+}
 </style>

+ 0 - 25
myPages/systemSwitch/module/index.rpx.css

@@ -1,25 +0,0 @@
-.layOut1{
-    width: 686rpx;
-    height: 190rpx;
-    margin-left: 32rpx;
-    border-bottom: 2px solid #EEEEEE;
-}
-.layOut2{
-    width: 686rpx;
-    height: 156rpx;
-    margin-left: 32rpx;
-    border-bottom: 2px solid #EEEEEE;
-}
-.boldText{
-    font-size: 28rpx;
-    font-weight: 400;
-    color: #333333;
-    margin-top: 32rpx;
-}
-.noBoldText{
-    font-size: 24rpx;
-    font-weight: 400;
-    color: #999999;
-    margin-top: 18rpx;
-}
-

+ 0 - 166
myPages/systemSwitch/module/mescrollUni-item.vue

@@ -1,166 +0,0 @@
-<template>
-	<!--
-    swiper中的transfrom会使fixed失效,此时用height固定高度;
-    swiper中无法触发mescroll-mixins.js的onPageScroll和onReachBottom方法,只能用mescroll-uni,不能用mescroll-body
-    -->
-	<!-- ref动态生成: 字节跳动小程序编辑器不支持一个页面存在相同的ref (如不考虑字节跳动小程序可固定值为 ref="mescrollRef") -->
-	<!-- top的高度等于悬浮菜单tabs的高度 -->
-	<mescroll-uni :ref="'mescrollRef' + i" @init="mescrollInit" :height="height" :down="downOption" @down="downCallback"
-		:up="upOption" @up="upCallback" @emptyclick="emptyClick">
-			<view v-if="index === 0">
-				<view class="flex-col layOut1" v-for="i in 10">
-					<view class="flex-row justify-between">
-						<text class="boldText">储值记录</text>
-						<text class="boldText">+&nbsp;&nbsp;&nbsp;¥2014.12</text>
-					</view>
-					<view class="flex-row justify-between">
-						<text class="noBoldText">2023-12-05 15:30:20</text>
-					</view>
-					<view class="flex-row justify-between">
-						<text class="noBoldText">赠送金额:¥200.22</text>
-						<text class="noBoldText">账户余额:¥200.22</text>
-					</view>
-				</view>
-			</view>
-
-			<view  v-if="index === 1">
-				<view class="flex-col layOut2" v-for="i in 10">
-					<view class="flex-row justify-between">
-						<text class="boldText">消费记录</text>
-						<text class="boldText">-&nbsp;&nbsp;&nbsp;¥2014.12</text>
-					</view>
-					<view class="flex-row justify-between">
-						<text class="noBoldText">2023-12-05 15:30:20</text>
-						<text class="noBoldText">账户余额:¥200.22</text>
-					</view>
-				</view>
-			</view>
-
-	</mescroll-uni>
-</template>
-
-<script>
-	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
-	import MescrollMoreItemMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js"
-	export default {
-		mixins: [MescrollMixin, MescrollMoreItemMixin], // 注意此处还需使用MescrollMoreItemMixin (必须写在MescrollMixin后面)
-		components: {},
-
-		data() {
-			return {
-				downOption: {
-					auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)
-				},
-				upOption: {
-					auto: false, // 不自动加载
-					// page: {
-					// 	num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
-					// 	size: 10 // 每页数据的数量
-					// },
-					noMoreSize: 4, //如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看; 默认5
-					empty: {
-						icon: '/static/imageIcon/empty.png',
-						tip: '暂无内容', // 提示
-						// btnText: '去看看'
-					},
-					textNoMore: '没有更多了'
-				},
-				list: [],
-
-			}
-		},
-		props: {
-			i: Number, // 每个tab页的专属下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)
-			index: { // 当前tab的下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)
-				type: Number,
-				default () {
-					return 0
-				}
-			},
-			dataTime: {
-				type: String,
-				default () {
-					return ''
-				}
-			},
-
-			tabs: { // 为了请求数据,演示用,可根据自己的项目判断是否要传
-				type: Array,
-				default () {
-					return []
-				}
-			},
-			height: [Number, String], // mescroll的高度
-
-		},
-		watch: {
-
-		},
-
-		created() {
-
-		},
-
-
-		methods: {
-
-			/*下拉刷新的回调 */
-			downCallback() {
-				// 这里加载你想下拉刷新的数据, 比如刷新轮播数据
-				// loadSwiper();
-				// 下拉刷新的回调,默认重置上拉加载列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 )
-				this.mescroll.resetUpScroll()
-			},
-			/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
-			upCallback(page) {
-
-				let status = this.index
-				if (this.index === 3){
-					status = 4
-				}
-
-				//联网加载数据
-				let httpData = {
-					pageNum: page.num,
-					pageSize: 10,
-					orderType:'SERVICE',
-					status:status
-				}
-
-				this.$api.getOrderList(httpData).then((res) => {
-					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
-					this.mescroll.endSuccess(res.data.rows.length, res.data.rows.length === 10);
-					//设置列表数据
-					if (page.num === 1) this.list = []; //如果是第一页需手动制空列表
-					this.list = this.list.concat(res.data.rows); //追加新数据
-					console.log(this.list)
-				}).catch((err) => {
-					//联网失败, 结束加载
-					this.mescroll.endErr();
-				})
-
-
-			},
-
-
-
-			//点击空布局按钮的回调
-			emptyClick() {
-				uni.showToast({
-					title: '点击了按钮,具体逻辑自行实现'
-				})
-			},
-			// 搜索
-			doSearch() {
-				this.list = []; // 先清空列表,显示加载进度
-				this.mescroll.resetUpScroll();
-			},
-
-
-
-		}
-	}
-</script>
-<style>
-	@import './index.rpx.css';
-</style>

BIN
static/me/step1.png


BIN
static/me/step2.png


BIN
static/me/step3.png


BIN
static/me/success.png