checkpoint: 冻结资金开工前龙先生小程序本地备份(不推远程)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-26 18:39:32 +08:00
parent 09df206fd8
commit 16eecd1278
53 changed files with 2057 additions and 1116 deletions

View File

@@ -0,0 +1,26 @@
import request from '../../../utils/request.js'
Page({
data: { list: [], loading: false, page: 1 },
onShow() { this.load(true) },
goCreate() { wx.navigateTo({ url: '/pages/gongdan/create/create' }) },
goDetail(e) {
wx.navigateTo({ url: `/pages/gongdan/detail/detail?id=${e.currentTarget.dataset.id}` })
},
async load(reset) {
if (this.data.loading) return
this.setData({ loading: true })
try {
const page = reset ? 1 : this.data.page
const res = await request({ url: '/gongdan/my-list/', method: 'POST', data: { page, page_size: 20 } })
const body = res.data || {}
if (body.code === 200 || body.code === 0) {
const rows = (body.data && body.data.list) || []
this.setData({ list: reset ? rows : this.data.list.concat(rows), page: page + 1 })
}
} finally {
this.setData({ loading: false })
}
},
onReachBottom() { this.load(false) },
})

View File

@@ -0,0 +1 @@
{"navigationBarTitleText":"投诉记录","usingComponents":{}}

View File

@@ -0,0 +1,13 @@
<view class="page">
<view class="top-btn" bindtap="goCreate">+ 我要投诉</view>
<view wx:if="{{!list.length && !loading}}" class="empty">暂无投诉记录</view>
<view class="card" wx:for="{{list}}" wx:key="gongdan_id" bindtap="goDetail" data-id="{{item.gongdan_id}}">
<view class="row">
<text class="title">{{item.leixing_label}}</text>
<text class="status s{{item.zhuangtai}}">{{item.zhuangtai_label}}</text>
</view>
<view class="id">工单号 {{item.gongdan_id}}</view>
<view class="desc">{{item.shuoming}}</view>
<view class="time">{{item.CreateTime}}</view>
</view>
</view>

View File

@@ -0,0 +1,13 @@
.page{padding:24rpx;background:#f5f6f8;min-height:100vh;box-sizing:border-box}
.top-btn{background:#1a1a1a;color:#fff;text-align:center;padding:22rpx;border-radius:12rpx;margin-bottom:20rpx;font-size:28rpx}
.empty{text-align:center;color:#999;padding:80rpx 0}
.card{background:#fff;border-radius:16rpx;padding:24rpx;margin-bottom:16rpx}
.row{display:flex;justify-content:space-between;align-items:center}
.title{font-size:30rpx;font-weight:600;color:#222}
.status{font-size:22rpx;padding:4rpx 12rpx;border-radius:8rpx;background:#eee}
.s1{background:#fff3cd;color:#856404}
.s2{background:#d4edda;color:#155724}
.s3{background:#f8d7da;color:#721c24}
.s4{background:#e2e3e5;color:#383d41}
.id,.time{font-size:22rpx;color:#999;margin-top:8rpx}
.desc{font-size:26rpx;color:#555;margin-top:12rpx;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}