123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- const app= getApp();
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- noticeList: [ ],
- imageList: [], // 存储图片路径的数组
- showCustomPreview: false, // 是否显示自定义预览
- currentPreviewImages: [], // 当前预览的图片数组
- currentPreviewIndex: 0, // 当前预览的图片索引
- description: '',
- content: '',
- contact: '',
- phone: '',
- replyTime: '',
- replyContent: ''
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad(options) {
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady() {
- this.getNoticeList()
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide() {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload() {
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh() {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom() {
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage() {
- },
- // 获取列表数据
- getNoticeList() {
- const _this = this;
- wx.showLoading({
- title: '获取中...',
- mask: true,
- });
- // debugger;
- wx.request({
- url: app.globalData.interfaceUrls.mineFeedback,
- method: 'POST',
- header: {
- 'content-type': 'application/json', // 默认值
- 'token': app.globalData.userWxInfo.token,
- 'source': "wc",
- '!SAAS_LOGIN_TOKEN_!': app.globalData.currentAccountInfo.dsKey
- },
- success(res) {
- wx.hideLoading();
- let apiReturnData = res.data;
- let listData = apiReturnData.data;
- listData.forEach(data => {
- data.createdate = data.createdate.slice(0, 10);
- // 添加对file字段的空值检查
- let imgs = [];
- if (data.file) {
- imgs = data.file.split(',').filter(img => img).map(img => {
- return app.globalData.weChatImgPreviewUrl + 'FEEDBACK/' + img;
- });
- }
- data.hasAttachment = imgs.length > 0;
- data.attachments = imgs;
- data.isReplied = data.iscompleted == '1';
- if ((data.recoverydate || "") != '') {
- data.recoverydate = data.recoverydate.slice(0, 10);
- }
- });
- app.globalData.mineRepairList=listData;
- _this.setData({
- noticeList: listData,
- })
- },
- fail(error) {
- wx.hideLoading()
- utils.simleInfo('获取报修记录,请稍后再试')
- }
- });
- },
- previewImage: function(e) {
- // 获取当前点击项的id
- const id = e.currentTarget.dataset.id;
- // 根据id找到对应的投诉建议项
- const item = this.data.noticeList.find(item => item.id === id);
- // 确保有附件
- if (item && item.hasAttachment && item.attachments.length > 0) {
- this.setData({
- showCustomPreview: true,
- currentPreviewImages: item.attachments,
- currentPreviewIndex: 0
- });
- } else {
- console.log('没有找到附件或附件为空');
- }
- },
- // 关闭预览
- closePreview: function() {
- this.setData({
- showCustomPreview: false
- });
- },
- // 切换预览图片
- changePreviewImage: function(e) {
- const direction = e.currentTarget.dataset.direction;
- let newIndex = this.data.currentPreviewIndex;
-
- if (direction === 'prev') {
- newIndex = newIndex > 0 ? newIndex - 1 : this.data.currentPreviewImages.length - 1;
- } else {
- newIndex = newIndex < this.data.currentPreviewImages.length - 1 ? newIndex + 1 : 0;
- }
-
- this.setData({
- currentPreviewIndex: newIndex
- });
- },
- // 防止点击图片内容时关闭预览
- preventBubble: function() {
- return;
- },
- // 跳转到详情页
- goToDetail(e) {
- debugger;
- const id = e.currentTarget.dataset.id
- const item = this.data.noticeList.find(item => item.id === id);
-
- // 无论是否回复,都跳转到预览页面,但传递不同的回复状态参数
- wx.navigateTo({
- url: `/pages/tousujianyi/tousujianyi?id=${id}&mode=preview&isReplied=${item.isReplied}`
- })
- },
- // 跳转到表单页
- goToForm() {
- wx.navigateTo({
- url: '/pages/tousujianyi/tousujianyi'
- })
- },
- // 返回上一页
- goBack() {
- wx.navigateBack()
- },
- getDataById: function(id) {
- if (!id) {
- console.log('未获取到有效的ID');
- return;
- }
- const item = this.data.noticeList.find(item => item.id === id);
- if (item) {
- debugger
- this.setData({
- description: item.description,
- content: item.content,
- contact: item.contact,
- phone: item.phone,
- replyTime: item.recoverydate,
- replyContent: item.replycontent
- });
- }
- },
- })
|