Files
kairos_miniapp/pages/joinFlow/person/index.js
2026-03-27 17:55:18 +08:00

165 lines
3.2 KiB
JavaScript

import request from "@/utils/request"
import { getToken, setToken } from "@/utils/auth/manageToken"
import { formatDate } from "@/utils/common"
const app = getApp()
Page({
data: {
loading: true,
parmas: {},
mood: "manual",
showPicker: false,
date: new Date().getTime(),
//手术
showSurgery: false,
surgeryList: [],
selectSurgery: [],
//医院信息
hospital: "",
department: "",
//其他信息
age: "",
allergy: "",
comorbidity: "",
},
onLoad(e) {
if (Object.keys(e).length > 0) {
this.setData({
parmas: e,
mood: "scan"
})
}
this.init()
},
//初始化
async init() {
let token = getToken()
//如果存在
if (token) {
let info = await request.get("/my-info")
this.handUser(info)
} else {
wx.login({
success: async (res) => {
let response = await request.post("/login", {
"wx_code": res.code
})
setToken(response.accessToken)
this.handUser(response)
},
})
}
},
//处理信息
async handUser(data) {
app.globalData.userInfo = data.userInfo
if (data.needProfile == 0) {
wx.switchTab({
url: "/pages/home/index",
})
} else {
let res = await request.get("/profile/surgicals")
this.setData({
surgeryList: res.list,
})
}
this.setData({
loading: false,
})
},
onInputChange(e) {
const { field } = e.currentTarget.dataset;
this.setData({
[`${field}`]: e.detail.value,
});
},
//选择手术
changeSurgeryShow() {
this.setData({
showSurgery: !this.data.showSurgery
})
},
handSelectSurgery(e) {
let { data } = e.currentTarget.dataset
let { selectSurgery } = this.data
let isHave = selectSurgery.find(item => item.id == data.id)
if (isHave) {
this.setData({
selectSurgery: selectSurgery.filter((item) => item.id != data.id)
})
} else {
this.setData({
selectSurgery: [...selectSurgery, data]
})
}
},
//选择时间
chaneTimeShow() {
this.setData({
showTime: !this.data.showTime
})
},
onTimeConfirm(e) {
let { value } = e.detail
this.setData({
date: value
})
},
//提交
async onSubmit() {
let { mood, hospital, department, date, age, allergy, comorbidity, parmas, selectSurgery } = this.data
let errorText = ""
if (mood == 'manual' && !hospital.trim()) {
errorText = "请输入医院"
}
else if (mood == 'manual' && !department.trim()) {
errorText = "请输入科室"
}
else if (selectSurgery.length == 0) {
errorText = "请选择手术"
}
else if (!date) {
errorText = "请选择时间"
}
else if (!age.trim()) {
errorText = "请填写年龄"
}
if (errorText) {
wx.showToast({
title: errorText,
icon: 'none'
})
return
}
try {
wx.showLoading({
title: '提交中',
mask: true
})
await request.post("/profile", {
entry_mode: mood,
...parmas,
hospital_name: hospital,
department_name: department,
surgical_ids: selectSurgery.map(item => item.id),
surgical_date: formatDate(date, 'YYYY-MM-DD'),
age: age,
allergy_history: allergy,
complication: comorbidity
})
wx.hideLoading()
wx.switchTab({
url: '/pages/home/index',
})
} catch (e) {
console.log(e);
wx.hideLoading()
}
}
})