|
|
- <template>
- <view>
- <view class="home-pages">
- <view
- style="position: absolute;top: 0; left: 0; height: 188rpx; width: 100%; z-index: 100; background-color: #FFFFFF; box-shadow: 0px 15px 10px -15px #E8E8E8;">
- <view style="margin: 28rpx 24rpx; display: flex;" @click="newDetail()">
- <image :showLoading="true" :src="userInfo?userInfo.headImage : morenSrc"
- style="width: 148rpx;height: 148rpx;border-radius: 50%;"></image>
- <view style="padding: 28rpx;">
- <view style="font-size: 32rpx;font-weight: 600">{{userInfo?userInfo.nickName: '点击登录'}}</view>
- <view style="margin-top: 30rpx;font-size: 28rpx;font-weight: 500">不积跬步 无以至千里</view>
- </view>
- <view style="padding: 28rpx;">
- <view style="font-size: 30rpx;font-weight: 500">订阅记录 ></view>
- </view>
- </view>
- </view>
-
- <view class="home-content">
- <view class="pay-btn-2" @click="seeDetail()">
- <view style="margin-right: 110rpx;">刊物介绍</view>
- <!-- <span ></span> -->
-
- </view>
- <view style="margin: 10rpx; font-weight: 200;">
- <span>订阅申请</span>
- </view>
-
- <view class="from">
-
- <view class="from-line">
- <span class="label-class" style="margin-top: 20rpx;">姓名:</span>
- <view><input style="margin-top: 20rpx;border-bottom: 1px solid #ccc;" v-model="release.userName" placeholder="请输入学生姓名" /></view>
- </view>
- <view class="from-line">
- <span class="label-class">电话:</span>
- <view><input type="number" style="border-bottom: 1px solid #ccc;" v-model="release.mobilePhone" placeholder="请输入手机号码" /></view>
- </view>
-
-
-
-
- <view class="from-line" >
- <span class="label-class">省份:</span>
- <view class="uni-list-cell-left" >
- <picker @change="selectedSf" :range="provinceNames" range-key="name" >
- <!-- {{release.provinceName ? release.provinceName:"请选择省份"}} -->
- <view style="font-weight: bold;font-size: 20;color: #000;margin-top: 20rpx;">
- <spen >{{release.provinceName?release.provinceName:'请选择省份'}}</spen>
- </view>
- <!-- <spen :readonly="true" v-model="release.provinceName" style="font-weight: bold;font-size: 20;color: #000;" placeholder="请选择省份" >
-
- </spen> -->
- </picker>
- </view>
- </view>
- <view class="from-line">
- <span class="label-class">区域:</span>
- <view class="uni-list-cell-left">
- <picker @change="selectedQy" :range="regionNames" range-key="name">
- <view style="font-weight: bold;font-size: 20;color: #000;margin-top: 20rpx;">
- <spen >{{release.regionName?release.regionName:'请选择区域'}}</spen>
- </view>
- <!-- <input :readonly="true" v-model="release.regionName" style="font-weight: bold;font-size: 20;color: #000;" placeholder="请选择区域" /> -->
- </picker>
- </view>
- </view>
-
- <view class="from-line">
- <span class="label-class">学历:</span>
- <view class="uni-list-cell-left">
- <picker @change="selectedXl" :range="schoolTypes">
- <view style="font-weight: bold;font-size: 20;color: #000;margin-top: 20rpx;">
- <spen >{{release.schoolType?release.schoolType:'请选择学历'}}</spen>
- </view>
- <!-- <input :readonly="true" v-model="release.schoolType" style="font-weight: bold;font-size: 20;color: #000;" placeholder="请选择学历" /> -->
- </picker>
- </view>
- </view>
-
-
- <view class="from-line">
- <span class="label-class">学校:</span>
- <view class="uni-list-cell-left">
- <picker @change="selectedXx" :range="schoolNames" range-key="name">
- <view style="font-weight: bold;font-size: 20;color: #000;margin-top: 20rpx;">
- <spen >{{release.schoolName?release.schoolName:'请选择学校'}}</spen>
- </view>
- <!-- <input :readonly="true" v-model="release.schoolName" style="font-weight: bold;font-size: 20;color: #000;" placeholder="请选择学校" /> -->
- </picker>
- </view>
-
-
-
- <!-- <view><input v-model="release.schoolName" placeholder="请选择学校" /></view> -->
- </view>
- <view class="from-line">
- <span class="label-class">年级:</span>
- <view class="uni-list-cell-left">
- <picker @change="selectedNj" :range="gradeNames" range-key="name">
- <view style="font-weight: bold;font-size: 20;color: #000;margin-top: 20rpx;">
- <spen >{{release.gradeName?release.gradeName:'请选择年级'}}</spen>
- </view>
- <!-- <input :readonly="true" v-model="release.gradeName" style="font-weight: bold;font-size: 20;color: #000;" placeholder="请选择年级 " /> -->
- </picker>
- </view>
- <!-- <view><input v-model="release.gradeName" placeholder="请选择年级" /></view> -->
- </view>
- <view class="from-line">
- <span class="label-class">班级:</span>
- <view class="uni-list-cell-left">
- <picker @change="selectedBj" :range="classNames" range-key="name">
- <view style="font-weight: bold;font-size: 20;color: #000;margin-top: 20rpx;">
- <spen >{{release.className?release.className:'请选择班级'}}</spen>
- </view>
- <!-- <input :readonly="true" v-model="release.className" style="font-weight: bold;font-size: 20;color: #000;" placeholder="请选择班级" /> -->
- </picker>
- </view>
- <!-- <view><input v-model="release.className" placeholder="请选择班级" /></view> -->
- </view>
-
- <view class="home-modal" v-show="showj == true">
- <!-- :class="{'active': release.topid === item.id}" -->
- <view class="title">订阅项目</view>
- <view v-for="(item,index) in dianList" @click='clickLable(index)' class="label-class" :class="{'active': item.selected === true}">
- ¥{{item.price}} {{item.name}}</view>
- </view>
-
- </view>
- <view class="pay-btn" @click="getCreteClick()">
- 提交申请
- </view>
- </view>
-
-
-
- </view>
- </view>
- </template>
-
- <script>
- export default {
- data() {
- return {
- isChecked: false,
- morenSrc: require('@/static/img/logon-icon.png'),
- userInfo: null,
- showj: false,
- provinceNames:[],
- regionNames:[],
- schoolTypes: ['小学', '初中', '高中'],
- schoolNames:[],
- dianList:[],
- selectId: [],
- gradeNames:[],
- classNames:[],
- clicked:false,
-
-
-
- vsc: [
- ['广东省', '湖南省'],
- ['怀山区', '广州区']
- ],
- release: {
- userName: "",
- mobilePhone: "",
- vsClass: "",
- provinceName:"",
- regionName:"",
- schoolType: "",
- schoolName: "",
- gradeName: "",
- className: "",
- items: "",
- totalPrice: 0.00,
- schoolType: "",
- topid: ""
- }
- }
- },
- onShow() {
- this.getmyInfo();
- this.getProvinceNameList();
- // this.getYerList();
- this.getClassList();
- },
- onLoad() {
-
- },
- // 隐藏微信h5的标题栏
- onReady() {
- this.$com.displayNav()
- },
- methods: {
- // stopKeyborad () {
- // this.$refs.scanTextbox.setAttribute('readonly', 'readonly');
- // setTimeout(() => {
- // this.$refs.scanTextbox.removeAttribute('readonly');
- // }, 200);
- // },
- //获取省
- getProvinceNameList(){
- this.$api('getProvinceNameList', {}).then(res => {
- if(res.code == 200){
- this.provinceNames =res.result;
- }
- })
- },
- //获取区域
- getRegionNameList(provinceName){
- this.$api('getRegionNameList', {"provinceName":provinceName}).then(res => {
- console.log("---")
- console.log(res)
- if(res.code == 200){
- this.regionNames = res.result;
- console.log("regionNames2")
- console.log(this.regionNames)
- }
- })
- console.log("regionNames")
- console.log(this.regionNames)
- },
- //获取学校
- getSchoolList(provinceName,regionName,schoolType){
- this.$api('getSchoolList',
- {
- "provinceName":provinceName,
- "regionName":regionName,
- "schoolType":schoolType,
- }).then(res => {
- if(res.code == 200){
- this.schoolNames =res.result;
- }
- })
- },
- //获取订阅信息
- getDinList(provinceName,regionName,schoolType,schoolName,gradeName){
-
- this.$api('getDinList',
- {
- "provinceName":provinceName,
- "regionName":regionName,
- "schoolType":schoolType,
- "schoolName":schoolName,
- "gradeName":gradeName,
- }).then(res => {
- if(res.code == 200){
- this.dianList =res.result;
- }
- })
- },
- //获取订阅信息
- getYerList(schoolType){
- this.$api('getYerList',
- {
- "schoolType":schoolType,
- }).then(res => {
- if(res.code == 200){
- this.gradeNames =res.result;
- }
- })
- },
- //获取订阅信息
- getClassList(){
- this.$api('getClassList',
- {
-
- }).then(res => {
- if(res.code == 200){
- this.classNames =res.result;
- }
- })
- },
-
-
-
-
- // 单个复选框事件
- checkboxChange(e) {
- let values = e.detail.value;
- if (values[0] == 1) {
- this.isChecked = true;
- } else {
- this.isChecked = false;
- }
- },
- //提交创建订单
- createOrder() {
-
- },
-
- getmyInfo() {
- this.$api('myInfo')
- .then(res => {
- if (res.code == 200) {
- this.role = res.result.role;
- this.userInfo = res.result;
- this.$store.commit('set_userInfo', res.result)
- } else {
- this.userInfo = null
- }
- if (!this.userInfo) {
- uni.navigateTo({
- url: "/pages/my/login-kehu"
- })
- }
- })
- },
- //跳转刊物介绍
- seeDetail() {
- if (!this.userInfo) {
- uni.navigateTo({
- url: "/pages/my/login-kehu"
- })
- } else {
- uni.navigateTo({
- url: "/pages/my/kanwus"
- })
- }
- },
- getCreteClick() {
- let that = this;
- if(that.clicked == true){
- this.$Toast('请不要重复提交!');
- setTimeout(()=>{
- that.clicked = false;
- },1500)
- return
- }
- that.clicked = true;
-
-
- this.$api('createShopOrder', {
- "userName": this.release.userName,
- "mobilePhone": this.release.mobilePhone,
- "provinceName": this.release.provinceName,
- "regionName": this.release.regionName,
- "schoolType": this.release.schoolType,
- "schoolName": this.release.schoolName,
- "gradeName": this.release.gradeName,
- "className": this.release.className,
- "items": this.release.items,
- // "totalPrice": this.release.totalPrice,
- })
- .then(res => {
- if(res.code == 500){
- this.$Toast(res.message)
- }
- if (res.code == 200) {
-
- that.$api('create', {
- id: res.result.id
- })
- .then(res => {
-
- console.log(res)
- that.$jweixin.config({
- debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
- appId: 'wx77fe1fcd6471ecbe', // 必填,公众号的唯一标识
- timestamp: res.result.timestamp, // 必填,生成签名的时间戳
- nonceStr: res.result.noncestr, // 必填,生成签名的随机串
- signature: res.result.sgture, // 必填,签名
- jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData',
- 'onMenuShareTimeline', 'onMenuShareAppMessage',
- 'chooseWXPay'
- ]
- });
-
- that.$jweixin.chooseWXPay({
- appId: 'wx77fe1fcd6471ecbe',
- timestamp: res.result
- .timeStamp, // 支付签名时间戳,注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符
- nonceStr: res.result.nonceStr, // 支付签名随机串,不长于 32 位
- package: res.result
- .packageValue, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
- signType: res.result
- .signType, // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致
- paySign: res.result.paySign, // 支付签名
- success: function(res) {
- that.erop = true;
- that.clicked = false;
- uni.navigateTo({
- url: "/pages/my/orders"
- })
- }
- });
- })
-
-
-
- }
- })
-
- },
- //跳转订阅记录
- newDetail() {
- console.log(":============订阅")
- if (!this.userInfo) {
- uni.navigateTo({
- url: "/pages/my/login-kehu"
- })
- } else {
- console.log(":============订阅订单")
- uni.navigateTo({
- url: "/pages/my/orders"
- })
- }
-
- },
- lower() {
-
- },
-
- //省份
- selectedSf(event) {
- console.log(event.detail.value)
- // if (event.detail.value) {
- this.release.provinceName = this.provinceNames[event.detail.value].name
- // }
- //清空值
- this.release.regionName = "";
- this.release.schoolType = "";
- this.release.schoolName = "";
- this.release.gradeName = "";
- //得到区域
- this.getRegionNameList(this.release.provinceName);
-
- },
- //区域
- selectedQy(event) {
- // if (event.detail.value) {
- this.release.regionName = this.regionNames[event.detail.value].name
-
- this.release.schoolType = "";
- this.release.schoolName = "";
- this.release.gradeName = "";
- // }
- },
- //学历
- selectedXl(event) {
- // if (event.detail.value) {
- this.release.schoolType = this.schoolTypes[event.detail.value]
- this.getSchoolList(this.release.provinceName,this.release.regionName,this.release.schoolType);
- this.getYerList(this.release.schoolType);
-
-
- this.release.schoolName = "";
- this.release.gradeName = "";
-
- // }
- },
- //学校
- selectedXx(event) {
- // if (event.detail.value) {
- this.release.schoolName = this.schoolNames[event.detail.value].name
- // }
- },
-
-
-
-
-
-
-
-
- selectedNj(event) {
- // if (event.detail.value) {
- this.release.gradeName = this.gradeNames[event.detail.value].name
- this.getDinList(this.release.provinceName,this.release.regionName,this.release.schoolType,this.release.schoolName,this.release.gradeName);
- this.showj = true
- // }
- },
-
- selectedBj(event) {
- console.log(event.detail.value)
- // if (event.detail.value) {
- this.release.className = this.classNames[event.detail.value].name
- // }
- },
-
-
- selectedVs(event) {
- if (event.type === 'columnchange') {
- if (event.detail.column === 0) {
- const value = this.vsc[event.detail.column][event.detail.value];
- console.log("选中:" + value);
- if (1 === event.detail.value) {
- this.vsc[1] = ["永州教育区", "长沙教育区"]
- }
- }
- } else {
- if (event.detail) {
- this.release.vsClass = ""
- event.detail.value.forEach((v, k) => {
- this.release.vsClass += (this.vsc[k][v] + " ");
- })
- }
- }
- },
- clickLable(index) {
- // this.release.topid = item.id
- // this.release.subItems = item.name
- // this.release.totalPrice = item.price
- let ids = "";
- if (this.dianList[index].selected == true) {
- this.dianList[index].selected = false;
- //取消选中时删除数组中的值
- for (var i = 0; i < this.selectId.length; i++) {
- if (this.selectId[i] === this.dianList[index].id) {
- this.selectId.splice(i, 1);
-
- }
- }
- console.log("选中的值", this.selectId)
- } else {
- this.dianList[index].selected = true;
- this.selectId.push(this.dianList[index].id)
-
- console.log("选中的值", this.selectId)
- }
- this.release.items = this.selectId;
- }
-
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .home-content {
- .from {
- margin-top: 20rpx;
- background-color: #F7F7F7;
- }
-
- .from-line {
- height: 108rpx;
- display: flex;
- background-color: #FFFFFF;
-
- .label-class {
- text-align: justify;
- text-align-last: justify;
- line-height: 68rpx;
- width: 138rpx;
- padding: 0 24rpx;
- }
-
- input {
- padding-left: 10rpx;
- height: 68rpx;
- }
- }
-
- .from-line-box {
- background-color: #FFFFFF;
- height: 328rpx;
- margin-right: 50rpx;
- display: flex;
-
- .label-class {
- text-align: justify;
- text-align-last: justify;
- line-height: 128rpx;
- width: 168rpx;
- padding: 0 24rpx;
- }
-
- input {
- padding-left: 20rpx;
- }
- }
-
- .pay-btn {
- text-align: center;
- border-radius: 12rpx;
- line-height: 78rpx;
- background-color: #00CCCC;
- color: #FFFFFF;
- }
-
- .pay-btn-2 {
- margin: 10rpx auto;
- text-align: left;
- border-radius: 12rpx;
- height: 78rpx;
- font-weight: 200rpx;
- line-height: 78rpx;
- font-size: 48;
- background-color: #FFFFFF;
- }
- }
-
- .home-pages {
- padding: 188rpx 10rpx 0;
- background-color: #F7F7F7;
-
- .scroll-Y {
- height: calc(100vh - 200rpx);
- padding-top: 20rpx;
- }
- }
-
- .home-modal {
- width: 100vw;
- min-height: 20vh;
-
- .title {
- line-height: 100rpx;
- margin-top: 40rpx;
- background-color: #FFF;
- }
-
- .label-class {
- line-height: 100rpx;
- padding: 0 26rpx;
- background-color: #FFF;
- position: relative;
- }
-
- .label-class::after {
- content: "";
- width: 30rpx;
- height: 30rpx;
- border-radius: 50%;
- border: 1rpx solid #888;
-
- position: absolute;
- right: 36rpx;
- top: calc((100rpx - 32rpx) / 2);
- }
-
- .label-class.active::after {
- background-color: #544AFF;
- border-color: #544AFF;
- }
-
- .label-class.active::before {
- background-color: #FFF;
- border: none;
- content: ' ';
- width: 12rpx;
- height: 12rpx;
- border-radius: 50%;
- z-index: 1;
-
- position: absolute;
- top: calc((100rpx - 12rpx) / 2);
- right: 46rpx;
- }
-
- }
- </style>
|