|
@@ -1,7 +1,44 @@
|
|
|
// index.ts
|
|
|
|
|
|
import { api_shopInstruments, api_shopProduct } from "../../api/login";
|
|
|
-import { debounce, formatPrice } from '../../utils/util'
|
|
|
+import { api_schoolAreaDetail, api_schoolAreaList, api_sysAreaQueryAllProvince, api_userBeneficiarySave, api_userBeneficiaryUpdate } from "../../api/new";
|
|
|
+import { debounce, formatPrice, GRADE_ENUM } from '../../utils/util'
|
|
|
+
|
|
|
+const classList: any = [];
|
|
|
+for (let i = 1; i <= 40; i++) {
|
|
|
+ classList.push({ text: i + '班', value: i });
|
|
|
+}
|
|
|
+
|
|
|
+/** 获取年级 */
|
|
|
+const getGradeList = (gradeYear?: string, instrumentCode?: string) => {
|
|
|
+ let tempList: any = [];
|
|
|
+ const five = [
|
|
|
+ { text: '一年级', value: 1, instrumentCode },
|
|
|
+ { text: '二年级', value: 2, instrumentCode },
|
|
|
+ { text: '三年级', value: 3, instrumentCode },
|
|
|
+ { text: '四年级', value: 4, instrumentCode },
|
|
|
+ { text: '五年级', value: 5, instrumentCode }
|
|
|
+ ];
|
|
|
+ const one = [{ text: '六年级', value: 6, instrumentCode }];
|
|
|
+ const three = [
|
|
|
+ { text: '七年级', value: 7, instrumentCode },
|
|
|
+ { text: '八年级', value: 8, instrumentCode },
|
|
|
+ { text: '九年级', value: 9, instrumentCode }
|
|
|
+ ];
|
|
|
+ if (gradeYear === 'FIVE_YEAR_SYSTEM') {
|
|
|
+ tempList.push(...[...five]);
|
|
|
+ } else if (gradeYear === 'SIX_YEAR_SYSTEM') {
|
|
|
+ tempList.push(...[...five, ...one]);
|
|
|
+ } else if (gradeYear === 'THREE_YEAR_SYSTEM') {
|
|
|
+ tempList.push(...[...three]);
|
|
|
+ } else if (gradeYear === 'FORE_YEAR_SYSTEM') {
|
|
|
+ tempList.push(...[...one, ...three]);
|
|
|
+ } else {
|
|
|
+ tempList.push(...[...five, ...one, ...three]);
|
|
|
+ }
|
|
|
+ return tempList;
|
|
|
+};
|
|
|
+
|
|
|
|
|
|
// 获取应用实例
|
|
|
const app = getApp<IAppOption>()
|
|
@@ -55,14 +92,72 @@ Page({
|
|
|
} as any, // 格式化所有选中的数据
|
|
|
showService: false,
|
|
|
isFromPreviewImage: false,
|
|
|
- showBuyer: true, // 收益人
|
|
|
+ showBuyer: false, // 收益人
|
|
|
+
|
|
|
+ phone: '',
|
|
|
+ name: '',
|
|
|
+ gender: '',
|
|
|
+ schoolAreaId: '',
|
|
|
+ schoolAreaName: '',
|
|
|
+ currentClassTxt: '', // 班级
|
|
|
+ currentClass: null,
|
|
|
+ currentGradeTxt: '', // 年级
|
|
|
+ currentGradeNum: null,
|
|
|
+ cityCode: null,
|
|
|
+ cityName: "",
|
|
|
+ provinceCode: null,
|
|
|
+ provinceName: "",
|
|
|
+ regionCode: null,
|
|
|
+ regionName: "",
|
|
|
+
|
|
|
+ showGender: false,
|
|
|
+ genderList: [{
|
|
|
+ name: '男',
|
|
|
+ value: '1',
|
|
|
+ className: 'one-gender cancel-gender'
|
|
|
+ }, {
|
|
|
+ name: '女',
|
|
|
+ value: '0',
|
|
|
+ className: 'two-gender cancel-gender'
|
|
|
+ }],
|
|
|
+ userBeneficiaryId: '', // 选中用户的编号
|
|
|
+ userBeneficiaryInfo: {
|
|
|
+ name: '',
|
|
|
+ phoneNumber: '',
|
|
|
+ schoolInfo: ''
|
|
|
+ },
|
|
|
+ showArea: false,
|
|
|
+ areaList: [] as any,
|
|
|
+ showSchool: false,
|
|
|
+ showSchoolAfterLeave: false, // 离开后
|
|
|
+ /** 学校列表 */
|
|
|
+ schoolAreaList: [] as any,
|
|
|
+ schoolAreaIndex: 0,
|
|
|
+ /** 临时切换时选择的学校编号 */
|
|
|
+ tempChangeSchoolAreaId: '',
|
|
|
+ schoolLoading: false,
|
|
|
+ /** 搜索学校 */
|
|
|
+ searchName: '',
|
|
|
+ /** 学校类型 */
|
|
|
+ schoolInstrumentSetType: '',
|
|
|
+ /** 年级 */
|
|
|
+ gradeGradeList: [] as any,
|
|
|
+ gradeGradeIndex: 0,
|
|
|
+ showGradeClass: false,
|
|
|
+ showGradeClassAfterLeave: false, // 离开后
|
|
|
+ /** 班级 */
|
|
|
+ classList: [] as any,
|
|
|
+ classIndex: 0,
|
|
|
+ showClass: false,
|
|
|
+ showClassAfterLeave: false, // 离开后
|
|
|
+ buyerLoading: false,
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面加载
|
|
|
*/
|
|
|
onLoad() {
|
|
|
- this.onInit()
|
|
|
+ // this.onInit()
|
|
|
},
|
|
|
/**
|
|
|
* 获取基础信息
|
|
@@ -71,7 +166,7 @@ Page({
|
|
|
try {
|
|
|
const result = await api_shopInstruments({ appId: app.globalData.appId })
|
|
|
const instrumentList = result.data.data || []
|
|
|
- instrumentList.forEach((item: any) => {
|
|
|
+ instrumentList?.forEach((item: any) => {
|
|
|
item.showSalePrice = formatPrice(item.salePrice || 0, 'ALL')
|
|
|
})
|
|
|
const { data } = await api_shopProduct({ appId: app.globalData.appId });
|
|
@@ -100,7 +195,7 @@ Page({
|
|
|
}
|
|
|
|
|
|
// 获取最小金额
|
|
|
- if(smallGoods?.salePrice) {
|
|
|
+ if (smallGoods?.salePrice) {
|
|
|
smallGoods = smallGoods.salePrice <= item.salePrice ? smallGoods : item
|
|
|
} else {
|
|
|
smallGoods = item
|
|
@@ -284,15 +379,49 @@ Page({
|
|
|
onSubmit() {
|
|
|
// 判断是否登录
|
|
|
const that = this
|
|
|
+ if (!this.data.userBeneficiaryId) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请填写享用者信息',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
debounce(function () {
|
|
|
if (!that.isLogin()) {
|
|
|
return
|
|
|
}
|
|
|
+ const params = [] as any
|
|
|
+ const selected = that.data.selected
|
|
|
+ if (selected.id) {
|
|
|
+ params.push({
|
|
|
+ pic: selected.pic,
|
|
|
+ name: selected.name,
|
|
|
+ originalPrice: selected.originalPrice,
|
|
|
+ salePrice: selected.salePrice,
|
|
|
+ shopId: selected.shopId,
|
|
|
+ id: selected.id,
|
|
|
+ goodsType: 'ACTIVATION_CODE', // INSTRUMENTS
|
|
|
+ })
|
|
|
+ }
|
|
|
+ const selectedInstrument = that.data.selectedInstrument
|
|
|
+ if (selectedInstrument.id) {
|
|
|
+ params.push({
|
|
|
+ pic: selectedInstrument.pic,
|
|
|
+ name: selectedInstrument.name,
|
|
|
+ originalPrice: selectedInstrument.originalPrice,
|
|
|
+ salePrice: selectedInstrument.salePrice,
|
|
|
+ shopId: selectedInstrument.shopId,
|
|
|
+ id: selectedInstrument.id,
|
|
|
+ goodsType: 'INSTRUMENTS', // INSTRUMENTS
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
let info = JSON.stringify({
|
|
|
- ...that.data.selected
|
|
|
+ ...params
|
|
|
});
|
|
|
- // console.log(that.data.selected, "that.data.selected")
|
|
|
info = encodeURIComponent(info);
|
|
|
+
|
|
|
+ console.log(params, "params")
|
|
|
wx.navigateTo({
|
|
|
url: `../orders/order-detail?orderInfo=${info}`,
|
|
|
success: () => {
|
|
@@ -303,16 +432,6 @@ Page({
|
|
|
})
|
|
|
}, 500)()
|
|
|
},
|
|
|
- onSelectBuyer() {
|
|
|
- this.setData({
|
|
|
- showBuyer: true
|
|
|
- })
|
|
|
- },
|
|
|
- onCloseBuyer(e: {detail: any}) {
|
|
|
- this.setData({
|
|
|
- showBuyer: e.detail
|
|
|
- })
|
|
|
- },
|
|
|
onPreivewBannerImg(e: { currentTarget: { dataset: any } }) {
|
|
|
wx.previewImage({
|
|
|
current: e.currentTarget.dataset.src,
|
|
@@ -371,5 +490,606 @@ Page({
|
|
|
path: '/pages/index/index',
|
|
|
imageUrl: 'https://oss.dayaedu.com/ktyq/1733312164991.png'
|
|
|
}
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ onSelectBuyer() {
|
|
|
+ // 从缓存里面获取用户信息
|
|
|
+ this.getUserDetail()
|
|
|
+ if (this.data.areaList.length <= 0) {
|
|
|
+ this.getAreas()
|
|
|
+ }
|
|
|
+ this.getSchools()
|
|
|
+ this.setData({
|
|
|
+ showBuyer: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onCloseBuyer() {
|
|
|
+ this.setData({
|
|
|
+ showBuyer: false
|
|
|
+ }, () => {
|
|
|
+ if(!this.data.userBeneficiaryId) {
|
|
|
+ this.onSetCatch(this.data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ async getUserDetail() {
|
|
|
+ try {
|
|
|
+ // const { data } = await api_userBeneficiaryDetail({
|
|
|
+ // id: this.data.userBeneficiaryId
|
|
|
+ // })
|
|
|
+ // console.log(data, 'data')
|
|
|
+ const information = wx.getStorageSync('buyerInfomation')
|
|
|
+ const users = information ? JSON.parse(information) : null
|
|
|
+ if (users) {
|
|
|
+ this.setData({
|
|
|
+ phone: users.phone,
|
|
|
+ name: users.name,
|
|
|
+ gender: users.gender,
|
|
|
+ schoolAreaId: users.schoolAreaId,
|
|
|
+ schoolAreaName: users.schoolAreaName,
|
|
|
+ currentGradeTxt: users.currentGradeTxt,
|
|
|
+ currentClass: users.currentClass,
|
|
|
+ currentClassTxt: users.currentClassTxt,
|
|
|
+ currentGradeNum: users.currentGradeNum,
|
|
|
+ cityCode: users.cityCode,
|
|
|
+ cityName: users.cityName,
|
|
|
+ provinceCode: users.provinceCode,
|
|
|
+ provinceName: users.provinceName,
|
|
|
+ regionCode: users.regionCode,
|
|
|
+ regionName: users.regionName,
|
|
|
+ schoolAreaIndex: users.schoolAreaIndex,
|
|
|
+ gradeGradeIndex: users.gradeGradeIndex,
|
|
|
+ classIndex: users.classIndex
|
|
|
+ }, () => {
|
|
|
+ this.getSchoolAreaDetail()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /** 获取省市区 */
|
|
|
+ async getAreas() {
|
|
|
+ try {
|
|
|
+ const { data } = await api_sysAreaQueryAllProvince({})
|
|
|
+ this.setData({
|
|
|
+ areaList: this.formateArea(data.data)
|
|
|
+ })
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ },
|
|
|
+ formateArea(area: any[]) {
|
|
|
+ const province_list: { [_: string]: string } = {};
|
|
|
+ const city_list: { [_: string]: string } = {};
|
|
|
+ const county_list: { [_: string]: string } = {};
|
|
|
+ area.forEach((item: any) => {
|
|
|
+ province_list[item.code] = item.name;
|
|
|
+ });
|
|
|
+ area.forEach((item: any) => {
|
|
|
+ item.areas && item.areas.forEach((city: any) => {
|
|
|
+ city_list[city.code] = city.name;
|
|
|
+ });
|
|
|
+ });
|
|
|
+ area.forEach((item: any) => {
|
|
|
+ item.areas && item.areas.forEach((city: any) => {
|
|
|
+ city.areas && city.areas.forEach((county: any) => {
|
|
|
+ county_list[county.code] = county.name;
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return {
|
|
|
+ province_list,
|
|
|
+ city_list,
|
|
|
+ county_list
|
|
|
+ };
|
|
|
+ },
|
|
|
+ /** 获取学校列表 */
|
|
|
+ async getSchools(name?: string) {
|
|
|
+ this.setData({
|
|
|
+ schoolLoading: true
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ // 判断是否有地区信息
|
|
|
+ if (!this.data.provinceCode || !this.data.cityCode || !this.data.regionCode) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const { data } = await api_schoolAreaList({
|
|
|
+ name,
|
|
|
+ testFlag: true,
|
|
|
+ provinceCode: this.data.provinceCode,
|
|
|
+ cityCode: this.data.cityCode,
|
|
|
+ regionCode: this.data.regionCode
|
|
|
+ })
|
|
|
+ const result = data.data || []
|
|
|
+ const tempList: any[] = []
|
|
|
+ result.forEach((item: any) => {
|
|
|
+ tempList.push({
|
|
|
+ text: item.name,
|
|
|
+ value: item.id
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ let tempSchoolId = ''
|
|
|
+ if (tempList.length > 0) {
|
|
|
+ const first = tempList[0]
|
|
|
+ tempSchoolId = first.value || ''
|
|
|
+ }
|
|
|
+
|
|
|
+ this.setData({
|
|
|
+ schoolAreaList: tempList,
|
|
|
+ tempChangeSchoolAreaId: tempSchoolId
|
|
|
+ })
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ schoolLoading: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onCheckedGender() {
|
|
|
+ this.setData({
|
|
|
+ showGender: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onCloseGender() {
|
|
|
+ this.setData({
|
|
|
+ showGender: false,
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onSelectGender(e: any) {
|
|
|
+ const genderList = this.data.genderList
|
|
|
+ const gender = e.detail.value
|
|
|
+ genderList.forEach((item: any, index: number) => {
|
|
|
+ if (item.value === gender) {
|
|
|
+ item.className = index === 0 ? 'one-gender select-gender' : 'two-gender select-gender'
|
|
|
+ } else {
|
|
|
+ item.className = index === 0 ? 'one-gender cancel-gender' : 'two-gender cancel-gender'
|
|
|
+ }
|
|
|
+ })
|
|
|
+ console.log(e, genderList, gender, '1212')
|
|
|
+ this.setData({
|
|
|
+ gender,
|
|
|
+ genderList
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 获取学校详情 */
|
|
|
+ async getSchoolAreaDetail() {
|
|
|
+ if(!this.data.schoolAreaId) return
|
|
|
+ const { data } = await api_schoolAreaDetail({ id: this.data.schoolAreaId })
|
|
|
+ const result = data.data || {}
|
|
|
+ if (result.school) {
|
|
|
+ const schoolInfo = result.school || {};
|
|
|
+ const schoolInstrumentList = schoolInfo.schoolInstrumentList || [];
|
|
|
+ // forms.schoolInstrumentSetType = schoolInfo.instrumentSetType;
|
|
|
+ if (schoolInfo.instrumentSetType === 'SCHOOL') {
|
|
|
+ this.setData({
|
|
|
+ gradeGradeList: getGradeList(schoolInfo.gradeYear),
|
|
|
+ classList: classList,
|
|
|
+ schoolInstrumentSetType: schoolInfo.instrumentSetType
|
|
|
+ })
|
|
|
+ } else if (schoolInfo.instrumentSetType === 'GRADE') {
|
|
|
+ const gradeList: any = []
|
|
|
+ schoolInstrumentList.forEach((item: any) => {
|
|
|
+ gradeList.push({
|
|
|
+ text: GRADE_ENUM[item.gradeNum],
|
|
|
+ value: item.gradeNum,
|
|
|
+ instrumentId: item.instrumentId
|
|
|
+ })
|
|
|
+ });
|
|
|
+ gradeList.sort((a: any, b: any) => a.value - b.value);
|
|
|
+ this.setData({
|
|
|
+ gradeGradeList: gradeList,
|
|
|
+ classList: classList,
|
|
|
+ schoolInstrumentSetType: schoolInfo.instrumentSetType
|
|
|
+ })
|
|
|
+ } else if (schoolInfo.instrumentSetType === 'CLASS') {
|
|
|
+ // // 班级
|
|
|
+ const tempGradeList: any[] = [];
|
|
|
+ schoolInstrumentList.forEach((item: any) => {
|
|
|
+ if (!tempGradeList.includes(item.gradeNum)) {
|
|
|
+ tempGradeList.push(item.gradeNum);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ const lastGradeList: any[] = [];
|
|
|
+ tempGradeList.forEach((temp: any) => {
|
|
|
+ const list = {
|
|
|
+ text: GRADE_ENUM[temp],
|
|
|
+ value: temp,
|
|
|
+ instrumentId: '',
|
|
|
+ instrumentCode: '',
|
|
|
+ instrumentName: '',
|
|
|
+ classList: [] as any
|
|
|
+ };
|
|
|
+ schoolInstrumentList.forEach((item: any) => {
|
|
|
+ if (temp === item.gradeNum) {
|
|
|
+ list.instrumentId = item.instrumentId;
|
|
|
+ list.instrumentCode = item.instrumentCode;
|
|
|
+ list.instrumentName = item.instrumentName;
|
|
|
+ list.classList.push({
|
|
|
+ text: item.classNum + '班',
|
|
|
+ value: item.classNum,
|
|
|
+ instrumentCode: item.instrumentCode
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 排序班级
|
|
|
+ list.classList.sort((a: any, b: any) => a.value - b.value);
|
|
|
+ lastGradeList.push(list);
|
|
|
+ });
|
|
|
+ lastGradeList.sort((a: any, b: any) => a.value - b.value);
|
|
|
+
|
|
|
+ this.setData({
|
|
|
+ gradeGradeList: lastGradeList,
|
|
|
+ classList: lastGradeList[this.data.gradeGradeIndex]?.classList || [],
|
|
|
+ schoolInstrumentSetType: schoolInfo.instrumentSetType
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.setData({
|
|
|
+ gradeGradeList: getGradeList(),
|
|
|
+ classList: classList,
|
|
|
+ schoolInstrumentSetType: ''
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.setData({
|
|
|
+ gradeGradeList: getGradeList(),
|
|
|
+ classList: classList,
|
|
|
+ schoolInstrumentSetType: ''
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /** 选择男女 */
|
|
|
+ onCheckGender(e: any) {
|
|
|
+ const { dataset } = e.target
|
|
|
+ this.setData({
|
|
|
+ gender: dataset.gender
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 显示选择地区 */
|
|
|
+ onShowAreaList() {
|
|
|
+ this.setData({
|
|
|
+ showArea: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 关闭选择地区 */
|
|
|
+ onCloseAreaList() {
|
|
|
+ this.setData({
|
|
|
+ showArea: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 确定选择地区 */
|
|
|
+ submitArea(e: any) {
|
|
|
+ const selectedOptions: any = e.detail.values
|
|
|
+ this.setData({
|
|
|
+ provinceCode: selectedOptions[0].code,
|
|
|
+ cityCode: selectedOptions[1].code,
|
|
|
+ regionCode: selectedOptions[2].code,
|
|
|
+ provinceName: selectedOptions[0].name,
|
|
|
+ cityName: selectedOptions[1].name,
|
|
|
+ regionName: selectedOptions[2].name,
|
|
|
+ showArea: false,
|
|
|
+
|
|
|
+ searchName: '',
|
|
|
+ schoolAreaId: '',
|
|
|
+ schoolAreaName: '',
|
|
|
+ schoolAreaIndex: 0,
|
|
|
+ currentGradeNum: null,
|
|
|
+ currentGradeTxt: '',
|
|
|
+ gradeGradeIndex: 0,
|
|
|
+ currentClass: null,
|
|
|
+ currentClassTxt: '',
|
|
|
+ classIndex: 0
|
|
|
+ }, () => {
|
|
|
+ this.getSchools()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 关闭选择学校 */
|
|
|
+ onCloseSchool() {
|
|
|
+ this.setData({
|
|
|
+ showSchool: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 选择学校关闭后 */
|
|
|
+ onSchoolAfterLeave() {
|
|
|
+ this.setData({
|
|
|
+ showSchoolAfterLeave: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 选择学校打开前 */
|
|
|
+ onSchoolBeforeEnter() {
|
|
|
+ this.setData({
|
|
|
+ showSchoolAfterLeave: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 选择学校 */
|
|
|
+ onSelectSchool() {
|
|
|
+ if (!this.data.provinceName) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择地区',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ showSchool: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 确定选择学校 */
|
|
|
+ onSubmitSchool() {
|
|
|
+ const detail = this.data.schoolAreaList.find((item: any) => item.value === this.data.tempChangeSchoolAreaId)
|
|
|
+ const detailIndex = this.data.schoolAreaList.findIndex((item: any) => item.value === this.data.tempChangeSchoolAreaId)
|
|
|
+ // console.log(detail, detailIndex, this.data.tempChangeSchoolAreaId)
|
|
|
+ if (detailIndex === -1) return
|
|
|
+ this.setData({
|
|
|
+ schoolAreaName: detail.text,
|
|
|
+ schoolAreaId: detail.value,
|
|
|
+ schoolAreaIndex: detailIndex,
|
|
|
+ showSchool: false,
|
|
|
+
|
|
|
+ currentGradeNum: null,
|
|
|
+ currentGradeTxt: '',
|
|
|
+ gradeGradeIndex: 0,
|
|
|
+ currentClass: null,
|
|
|
+ currentClassTxt: '',
|
|
|
+ classIndex: 0
|
|
|
+ }, () => {
|
|
|
+ this.getSchoolAreaDetail()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onChangeSchool(e: any) {
|
|
|
+ const { value } = e.detail.value
|
|
|
+ this.setData({
|
|
|
+ tempChangeSchoolAreaId: value
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onSearch() {
|
|
|
+ this.setData({
|
|
|
+ schoolAreaIndex: 0
|
|
|
+ }, () => {
|
|
|
+ this.getSchools(this.data.searchName);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onSearchChange(e: any) {
|
|
|
+ this.setData({
|
|
|
+ searchName: e.detail
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 选择年级班级 */
|
|
|
+ onSelectGradeClass() {
|
|
|
+ if (!this.data.schoolAreaId) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择学校',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ showGradeClass: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 年级班级 */
|
|
|
+ onCloseGradeClass() {
|
|
|
+ this.setData({
|
|
|
+ showGradeClass: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onGradeClassBeforeEnter() {
|
|
|
+ this.setData({
|
|
|
+ showGradeClassAfterLeave: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onGradeClassAfterLeave() {
|
|
|
+ this.setData({
|
|
|
+ showGradeClassAfterLeave: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 确认选择年级班级 */
|
|
|
+ onSubmitGradeClass(e: any) {
|
|
|
+ const selectedOptions: any = e.detail.value
|
|
|
+ const selectedIndexs: any = e.detail.index
|
|
|
+ if (this.data.schoolInstrumentSetType === "CLASS") {
|
|
|
+ const gradeDetail = this.data.gradeGradeList;
|
|
|
+ const classList = gradeDetail?.find((item: any) => item.value === selectedOptions.value)
|
|
|
+ console.log(classList, "classList")
|
|
|
+ if (classList) {
|
|
|
+ this.setData({
|
|
|
+ classIndex: 0,
|
|
|
+ classList: classList.classList
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ currentGradeTxt: selectedOptions.text,
|
|
|
+ currentGradeNum: selectedOptions.value,
|
|
|
+ gradeGradeIndex: selectedIndexs,
|
|
|
+ showGradeClass: false,
|
|
|
+
|
|
|
+ currentClass: null,
|
|
|
+ currentClassTxt: ''
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /** 选择班级 */
|
|
|
+ onSelectClass() {
|
|
|
+ if (!this.data.schoolAreaId) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择所在年级',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ showClass: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 班级 */
|
|
|
+ onCloseClass() {
|
|
|
+ this.setData({
|
|
|
+ showClass: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onClassBeforeEnter() {
|
|
|
+ this.setData({
|
|
|
+ showClassAfterLeave: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onClassAfterLeave() {
|
|
|
+ this.setData({
|
|
|
+ showClassAfterLeave: true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 确认选择班级 */
|
|
|
+ onSubmitClass(e: any) {
|
|
|
+ const selectedOptions: any = e.detail.value
|
|
|
+ const selectedIndexs: any = e.detail.index
|
|
|
+ this.setData({
|
|
|
+ currentClassTxt: selectedOptions.text,
|
|
|
+ currentClass: selectedOptions.value,
|
|
|
+ classIndex: selectedIndexs,
|
|
|
+ showClass: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /** 最终提交 */
|
|
|
+ async onSubmitBuyer() {
|
|
|
+ try {
|
|
|
+ const params = this.data
|
|
|
+ if (!params.name) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请填写享用者姓名',
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!params.phone || !/^1[3456789]\d{9}$/.test(params.phone)) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请填写正确的电话号码',
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!params.gender) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择性别',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!params.provinceCode || !params.cityCode || !params.regionCode) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择学校地区',
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!params.schoolAreaId) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择所在学校',
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!params.currentGradeNum) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择所在年级',
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!params.currentClass) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择所在班级',
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ const objs = {
|
|
|
+ phone: params.phone,
|
|
|
+ name: params.name,
|
|
|
+ gender: params.gender,
|
|
|
+ currentGradeNum: params.currentGradeNum,
|
|
|
+ currentClass: params.currentClass,
|
|
|
+ schoolAreaId: params.schoolAreaId,
|
|
|
+ defaultStatus: false
|
|
|
+ }
|
|
|
+ const userBeneficiary = {
|
|
|
+ name: params.name,
|
|
|
+ phoneNumber: params.phone,
|
|
|
+ schoolInfo: params.schoolAreaName + params.currentGradeTxt + params.currentClassTxt
|
|
|
+ }
|
|
|
+ let userBeneficiaryId = ''
|
|
|
+ this.setData({
|
|
|
+ buyerLoading: true
|
|
|
+ })
|
|
|
+ if (params.userBeneficiaryId) {
|
|
|
+ const { data } = await api_userBeneficiaryUpdate({
|
|
|
+ id: params.userBeneficiaryId,
|
|
|
+ ...objs
|
|
|
+ })
|
|
|
+
|
|
|
+ wx.showToast({
|
|
|
+ title: '保存成功',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ userBeneficiaryId = data.data.id
|
|
|
+ } else {
|
|
|
+ const { data } = await api_userBeneficiarySave({
|
|
|
+ ...objs
|
|
|
+ })
|
|
|
+
|
|
|
+ wx.showToast({
|
|
|
+ title: '保存成功',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ userBeneficiaryId = data.data.id
|
|
|
+ }
|
|
|
+
|
|
|
+ this.setData({
|
|
|
+ userBeneficiaryId,
|
|
|
+ userBeneficiaryInfo: userBeneficiary
|
|
|
+ })
|
|
|
+
|
|
|
+ this.onSetCatch(params)
|
|
|
+ this.onCloseBuyer()
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+
|
|
|
+ this.setData({
|
|
|
+ buyerLoading: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 设置缓存 */
|
|
|
+ onSetCatch(params: any) {
|
|
|
+ wx.setStorageSync('buyerInfomation', JSON.stringify({
|
|
|
+ phone: params.phone,
|
|
|
+ name: params.name,
|
|
|
+ gender: params.gender,
|
|
|
+ schoolAreaId: params.schoolAreaId,
|
|
|
+ schoolAreaName: params.schoolAreaName,
|
|
|
+ currentGradeTxt: params.currentGradeTxt,
|
|
|
+ currentClass: params.currentClass,
|
|
|
+ currentClassTxt: params.currentClassTxt,
|
|
|
+ currentGradeNum: params.currentGradeNum,
|
|
|
+ cityCode: params.cityCode,
|
|
|
+ cityName: params.cityName,
|
|
|
+ provinceCode: params.provinceCode,
|
|
|
+ provinceName: params.provinceName,
|
|
|
+ regionCode: params.regionCode,
|
|
|
+ regionName: params.regionName,
|
|
|
+ schoolAreaIndex: params.schoolAreaIndex,
|
|
|
+ gradeGradeIndex: params.gradeGradeIndex,
|
|
|
+ classIndex: params.classIndex
|
|
|
+ }))
|
|
|
}
|
|
|
})
|