| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- const app = getApp();
- Page({
- data: {
- members: [],
- loading: true,
- empty: false,
- showDetail: false,
- detailMember: null,
- showEditModal: false,
- editForm: {},
- isPassAwayOptions: ['健在', '已故', '未知'],
- maritalStatusOptions: ['未知', '未婚', '已婚', '离异/丧偶'],
- sexOptions: ['未知', '男', '女'],
- submitting: false
- },
- onShow() {
- if (typeof this.getTabBar === 'function' && this.getTabBar()) {
- this.getTabBar().setData({ selected: 2 });
- }
- this.loadMyEntries();
- },
- loadMyEntries() {
- this.setData({ loading: true, empty: false });
- wx.request({
- url: `${app.globalData.baseUrl}/api/members/my`,
- method: 'GET',
- header: { 'Authorization': `Bearer ${app.globalData.token}` },
- success: (res) => {
- if (res.data && res.data.success) {
- const members = res.data.data || [];
- this.setData({
- members,
- loading: false,
- empty: members.length === 0
- });
- } else {
- wx.showToast({ title: res.data?.message || '加载失败', icon: 'none' });
- this.setData({ loading: false, empty: true });
- }
- },
- fail: () => {
- wx.showToast({ title: '网络请求失败', icon: 'none' });
- this.setData({ loading: false, empty: true });
- }
- });
- },
- onRefresh() {
- this.loadMyEntries();
- },
- viewDetail(e) {
- const member = e.currentTarget.dataset.member;
- this.setData({ showDetail: true, detailMember: member });
- },
- closeDetail() {
- this.setData({ showDetail: false, detailMember: null });
- },
- openEdit(e) {
- const member = e.currentTarget.dataset.member;
- this.setData({
- showEditModal: true,
- showDetail: false,
- editForm: {
- id: member.id,
- name: member.name || '',
- simplified_name: member.simplified_name || '',
- sex: member.sex != null ? member.sex : 1,
- birthday: member.birthday_date || '',
- family_rank: member.family_rank || '',
- name_word_generation: member.name_word_generation || '',
- is_pass_away: member.is_pass_away || 0,
- marital_status: member.marital_status || 0,
- phone: member.phone || '',
- notes: member.notes || ''
- }
- });
- },
- closeEdit() {
- this.setData({ showEditModal: false });
- },
- onEditInput(e) {
- const field = e.currentTarget.dataset.field;
- const editForm = { ...this.data.editForm };
- editForm[field] = e.detail.value;
- this.setData({ editForm });
- },
- onPickerChange(e) {
- const field = e.currentTarget.dataset.field;
- const editForm = { ...this.data.editForm };
- editForm[field] = parseInt(e.detail.value);
- this.setData({ editForm });
- },
- submitEdit() {
- if (this.data.submitting) return;
- const form = this.data.editForm;
- if (!form.name || !form.name.trim()) {
- wx.showToast({ title: '姓名不能为空', icon: 'none' });
- return;
- }
- this.setData({ submitting: true });
- wx.request({
- url: `${app.globalData.baseUrl}/api/member/${form.id}`,
- method: 'PUT',
- header: {
- 'Authorization': `Bearer ${app.globalData.token}`,
- 'Content-Type': 'application/json'
- },
- data: form,
- success: (res) => {
- this.setData({ submitting: false });
- if (res.data && res.data.success) {
- wx.showToast({ title: '修改成功', icon: 'success' });
- this.setData({ showEditModal: false });
- this.loadMyEntries();
- } else {
- wx.showToast({ title: res.data?.message || '修改失败', icon: 'none' });
- }
- },
- fail: () => {
- this.setData({ submitting: false });
- wx.showToast({ title: '网络请求失败', icon: 'none' });
- }
- });
- },
- confirmDelete(e) {
- const member = e.currentTarget.dataset.member;
- wx.showModal({
- title: '确认删除',
- content: `确定要删除「${member.name}」的录入信息吗?此操作不可撤销。`,
- confirmColor: '#e74c3c',
- success: (res) => {
- if (res.confirm) {
- this.deleteMember(member.id);
- }
- }
- });
- },
- deleteMember(id) {
- wx.request({
- url: `${app.globalData.baseUrl}/api/members/${id}`,
- method: 'DELETE',
- header: { 'Authorization': `Bearer ${app.globalData.token}` },
- success: (res) => {
- if (res.data && res.data.success) {
- wx.showToast({ title: '删除成功', icon: 'success' });
- this.loadMyEntries();
- } else {
- wx.showToast({ title: res.data?.message || '删除失败', icon: 'none' });
- }
- },
- fail: () => {
- wx.showToast({ title: '网络请求失败', icon: 'none' });
- }
- });
- },
- stopProp(e) {}
- });
|