From 524f9e6e700ceeb418fb3d63fefa1dc09ae159aa Mon Sep 17 00:00:00 2001 From: SelfRidicule Date: Tue, 30 Jul 2024 16:33:21 +0800 Subject: [PATCH] 1 --- miniprogram/app.js | 4 +- miniprogram/app.json | 7 +- .../reportRepair/assign/affirm/affirm.js | 105 +++++ .../reportRepair/assign/affirm/affirm.json | 8 + .../reportRepair/assign/affirm/affirm.wxml | 44 ++ .../reportRepair/assign/affirm/affirm.wxss | 151 +++++++ .../reportRepair/assign/detail/detail.js | 92 ++++ .../reportRepair/assign/detail/detail.json | 6 + .../reportRepair/assign/detail/detail.wxml | 63 +++ .../reportRepair/assign/detail/detail.wxss | 194 ++++++++ .../reportRepair/assign/feedback/feedback.js | 66 +++ .../assign/feedback/feedback.json | 8 + .../assign/feedback/feedback.wxml | 14 + .../assign/feedback/feedback.wxss | 44 ++ .../assign/personList/personList.js | 181 ++++++++ .../assign/personList/personList.json | 9 + .../assign/personList/personList.wxml | 8 + .../assign/personList/personList.wxss | 0 .../reportRepair/assign/record/record.js | 425 ++++++++++++++++++ .../reportRepair/assign/record/record.json | 11 + .../reportRepair/assign/record/record.wxml | 42 ++ .../reportRepair/assign/record/record.wxss | 75 ++++ miniprogram/pages/reportRepair/index/index.js | 2 +- project.config.json | 2 +- 24 files changed, 1556 insertions(+), 5 deletions(-) create mode 100644 miniprogram/pages/reportRepair/assign/affirm/affirm.js create mode 100644 miniprogram/pages/reportRepair/assign/affirm/affirm.json create mode 100644 miniprogram/pages/reportRepair/assign/affirm/affirm.wxml create mode 100644 miniprogram/pages/reportRepair/assign/affirm/affirm.wxss create mode 100644 miniprogram/pages/reportRepair/assign/detail/detail.js create mode 100644 miniprogram/pages/reportRepair/assign/detail/detail.json create mode 100644 miniprogram/pages/reportRepair/assign/detail/detail.wxml create mode 100644 miniprogram/pages/reportRepair/assign/detail/detail.wxss create mode 100644 miniprogram/pages/reportRepair/assign/feedback/feedback.js create mode 100644 miniprogram/pages/reportRepair/assign/feedback/feedback.json create mode 100644 miniprogram/pages/reportRepair/assign/feedback/feedback.wxml create mode 100644 miniprogram/pages/reportRepair/assign/feedback/feedback.wxss create mode 100644 miniprogram/pages/reportRepair/assign/personList/personList.js create mode 100644 miniprogram/pages/reportRepair/assign/personList/personList.json create mode 100644 miniprogram/pages/reportRepair/assign/personList/personList.wxml create mode 100644 miniprogram/pages/reportRepair/assign/personList/personList.wxss create mode 100644 miniprogram/pages/reportRepair/assign/record/record.js create mode 100644 miniprogram/pages/reportRepair/assign/record/record.json create mode 100644 miniprogram/pages/reportRepair/assign/record/record.wxml create mode 100644 miniprogram/pages/reportRepair/assign/record/record.wxss diff --git a/miniprogram/app.js b/miniprogram/app.js index db7160e..d8137e2 100644 --- a/miniprogram/app.js +++ b/miniprogram/app.js @@ -1,6 +1,6 @@ App({ - // 上海长阳-配置信息 - APPID: 'wx08bf0d440e446e7c', + // 配置信息 + APPID: 'wx5582a07c1fbbcf06', APPSECRET: 'e0ef2bac28df376d8855d04ee8828d73', tenantId : '12', // 地区 parkId : '26', // 园区id diff --git a/miniprogram/app.json b/miniprogram/app.json index e6ac8c1..3f3a427 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -77,7 +77,12 @@ "pages/reportRepair/report/report", "pages/reportRepair/query/record/record", "pages/reportRepair/query/detail/detail", - "pages/reportRepair/query/evaluate/evaluate" + "pages/reportRepair/query/evaluate/evaluate", + "pages/reportRepair/assign/record/record", + "pages/reportRepair/assign/detail/detail", + "pages/reportRepair/assign/feedback/feedback", + "pages/reportRepair/assign/affirm/affirm", + "pages/reportRepair/assign/personList/personList" ], "window": { "backgroundTextStyle": "light", diff --git a/miniprogram/pages/reportRepair/assign/affirm/affirm.js b/miniprogram/pages/reportRepair/assign/affirm/affirm.js new file mode 100644 index 0000000..8612d57 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/affirm/affirm.js @@ -0,0 +1,105 @@ +const app = getApp() + +Page({ + + /** + * 页面的初始数据 + */ + data: { + IMG_NAME: app.IMG_NAME, + timeShow : true, + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + back(){ + wx.navigateBack() + }, + + // 提交反馈 + jumpFeedback(){ + wx.navigateTo({ + url: '/pages/reportRepair/assign/feedback/feedback', + }) + }, + + // 无效 + invalid(){ + wx.navigateBack() + }, + + // 跳转人员列表 + jumpPersonList(){ + wx.navigateTo({ + url: '/pages/reportRepair/assign/personList/personList', + }) + }, + + // 显示时间 + showTime(){ + this.setData({ + timeShow : true, + }) + }, + + // 关闭时间 + closeTime(){ + this.setData({ + timeShow : false, + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/affirm/affirm.json b/miniprogram/pages/reportRepair/assign/affirm/affirm.json new file mode 100644 index 0000000..3e0e955 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/affirm/affirm.json @@ -0,0 +1,8 @@ +{ + "navigationStyle": "custom", + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "van-datetime-picker": "@vant/weapp/datetime-picker/index", + "van-action-sheet": "@vant/weapp/action-sheet/index" + } +} \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/affirm/affirm.wxml b/miniprogram/pages/reportRepair/assign/affirm/affirm.wxml new file mode 100644 index 0000000..1a5935d --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/affirm/affirm.wxml @@ -0,0 +1,44 @@ + + + + + + + 返回 + + 确认损坏 + + + + 派单处理 + + + + + + YG123081273812 + 空调 + 待派单 + + + + 派单 + + + 请选择维修人员 + + + + 请选择预计完成时间 + + + + + + + + + + 提交 + + \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/affirm/affirm.wxss b/miniprogram/pages/reportRepair/assign/affirm/affirm.wxss new file mode 100644 index 0000000..6071318 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/affirm/affirm.wxss @@ -0,0 +1,151 @@ +.containerView.public { + background: none; + padding-bottom: 0; +} + +.elHidden { + visibility: hidden; +} + +.selfLine { + height: 2rpx; + background: rgb(126, 126, 126, 0.2); +} + +.topHead { + position: relative; + height: 400rpx; + background: #2b2d3d; +} + +.topHead .navigatorView { + position: absolute; + left: 0; + top: 120rpx; + width: 100%; + box-sizing: border-box; + padding: 0 30rpx; + +} + +.topHead .navigatorView .backView { + display: flex; + justify-content: flex-start; + align-items: center; +} + +.topHead .navigatorView .backView .label { + color: white; + font-size: 28rpx; + line-height: 1; + margin-left: 8rpx; +} + +.topHead .navigatorView .title { + position: absolute; + top: 14rpx; + left: 50%; + transform: translateX(-50%); + + font-size: 32rpx; + color: #FFFFFF; + line-height: 1rpx; +} + +.topHead .contentView { + position: absolute; + left: 30rpx; + bottom: 100rpx; +} + +.topHead .contentView .label1 { + font-size: 28rpx; + color: white; + line-height: 1; +} + +.topHead .contentView .label2 { + font-size: 24rpx; + color: white; + line-height: 1; + margin-top: 20rpx; +} + +.mainView { + position: relative; + box-sizing: border-box; + + margin: -20rpx 20rpx 20rpx; + z-index: 9; +} + +.mainView .statusView { + box-sizing: border-box; + position: relative; + padding: 40rpx 30rpx; + background: white; + border-radius: 8rpx; + line-height: 1; +} + +.mainView .statusView .label { + font-size: 28rpx; + font-weight: bold; +} + + +.mainView .statusView .tag { + position: absolute; + right: 30rpx; + top: 50%; + transform: translateY(-50%); + background: #ee6f21; + color: white; + padding: 10rpx 20rpx; + border-radius: 6rpx; + font-size: 22rpx; +} + +.mainView .statusView .time { + margin-top: 20rpx; +} + +.mainView .statusView .leftImg { + position: absolute; + top: 26rpx; + left: 20rpx; + + width: 60rpx; + height: 60rpx; + border-radius: 8rpx; +} + +.mainView .reportView { + margin-top: 20rpx; + padding-bottom: 60rpx; + + border-radius: 8rpx; + background: white; + min-height: 1000rpx; +} + +.mainView .reportView .topTitle { + padding: 30rpx; + font-size: 28rpx; + font-weight: bold; +} + +.mainView .reportView .itemView { + display: flex; + justify-content: space-between; + align-items: center; + margin: 0 30rpx; + padding: 30rpx 0; + border-bottom: 2rpx solid rgb(126, 126, 126, 0.2); +} + +.mainView .reportView .itemView .label { + flex-shrink: 0; + font-size: 30rpx; + color: gray; +} diff --git a/miniprogram/pages/reportRepair/assign/detail/detail.js b/miniprogram/pages/reportRepair/assign/detail/detail.js new file mode 100644 index 0000000..eb76774 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/detail/detail.js @@ -0,0 +1,92 @@ +const app = getApp() + +Page({ + + /** + * 页面的初始数据 + */ + data: { + IMG_NAME: app.IMG_NAME, + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + back(){ + wx.navigateBack() + }, + + + // 确认损坏 + jumpAffirm(){ + wx.navigateTo({ + url: '/pages/reportRepair/assign/affirm/affirm', + }) + }, + + + // 提交反馈 + jumpFeedback(){ + wx.navigateTo({ + url: '/pages/reportRepair/assign/feedback/feedback', + }) + }, + + // 无效 + invalid(){ + wx.navigateBack() + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/detail/detail.json b/miniprogram/pages/reportRepair/assign/detail/detail.json new file mode 100644 index 0000000..02854d6 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/detail/detail.json @@ -0,0 +1,6 @@ +{ + "navigationStyle": "custom", + "usingComponents": { + "van-icon": "@vant/weapp/icon/index" + } +} \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/detail/detail.wxml b/miniprogram/pages/reportRepair/assign/detail/detail.wxml new file mode 100644 index 0000000..c8e604f --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/detail/detail.wxml @@ -0,0 +1,63 @@ + + + + + + + 返回 + + 详情 + + + + 派单处理 + + + + + + YG123081273812 + 空调 + 待审核 + + + + 报修信息 + + + 设备名称 + 320828282828320828282828320828282828320828282828v + + + 设备地址 + 302会议室 + + + 维修描述 + 电脑蓝屏 + + + 损坏凭证 + + + + + + 报修人 + 13652025563 + + + 报修时间 + 2024-06-10 23:59:59 + + + + + + + 无效申请 + 确认损坏 + 提交反馈 + + + \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/detail/detail.wxss b/miniprogram/pages/reportRepair/assign/detail/detail.wxss new file mode 100644 index 0000000..4ee75be --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/detail/detail.wxss @@ -0,0 +1,194 @@ +.containerView.public { + background: none; +} + +.elHidden { + visibility: hidden; +} + +.selfLine { + height: 2rpx; + background: rgb(126, 126, 126, 0.2); +} + +.topHead { + position: relative; + height: 400rpx; + background: #2b2d3d; +} + +.topHead .navigatorView { + position: absolute; + left: 0; + top: 120rpx; + width: 100%; + box-sizing: border-box; + padding: 0 30rpx; + +} + +.topHead .navigatorView .backView { + display: flex; + justify-content: flex-start; + align-items: center; +} + +.topHead .navigatorView .backView .label { + color: white; + font-size: 28rpx; + line-height: 1; + margin-left: 8rpx; +} + +.topHead .navigatorView .title { + position: absolute; + top: 14rpx; + left: 50%; + transform: translateX(-50%); + + font-size: 32rpx; + color: #FFFFFF; + line-height: 1rpx; +} + +.topHead .contentView { + position: absolute; + left: 30rpx; + bottom: 100rpx; +} + +.topHead .contentView .label1 { + font-size: 28rpx; + color: white; + line-height: 1; +} + +.topHead .contentView .label2 { + font-size: 24rpx; + color: white; + line-height: 1; + margin-top: 20rpx; +} + +.mainView { + position: relative; + box-sizing: border-box; + + margin: -20rpx 20rpx 20rpx; + z-index: 999; +} + +.mainView .statusView { + box-sizing: border-box; + position: relative; + padding: 40rpx 30rpx; + background: white; + border-radius: 8rpx; + line-height: 1; +} + +.mainView .statusView .label { + font-size: 28rpx; + font-weight: bold; +} + + +.mainView .statusView .tag { + position: absolute; + right: 30rpx; + top: 50%; + transform: translateY(-50%); + background: #ee6f21; + color: white; + padding: 10rpx 20rpx; + border-radius: 6rpx; + font-size: 22rpx; +} + +.mainView .statusView .time { + margin-top: 20rpx; +} + +.mainView .statusView .leftImg { + position: absolute; + top: 26rpx; + left: 20rpx; + + width: 60rpx; + height: 60rpx; + border-radius: 8rpx; +} + +.mainView .reportView { + margin-top: 20rpx; + padding-bottom: 60rpx; + + border-radius: 8rpx; + background: white; +} + +.mainView .reportView .topTitle { + padding: 30rpx; + font-size: 28rpx; + font-weight: bold; +} + +.mainView .reportView .itemView { + display: flex; + justify-content: flex-start; + align-items: flex-start; + margin-top: 30rpx; + padding: 0 30rpx; + +} + +.mainView .reportView .itemView .label { + flex-shrink: 0; + width: 200rpx; + font-size: 30rpx; + color: gray; +} + +.mainView .reportView .itemView .content { + font-size: 30rpx; + word-break: break-all; +} + +.mainView .reportView .itemView .content .imgView { + width: 100rpx; + height: 100rpx; + margin-right: 10rpx; + margin-bottom: 10rpx; + display: inline-block; + vertical-align: middle; +} + +.bottomFixView { + position: fixed; + z-index: 999; + left: 0; + bottom: 0; + height: 140rpx; + width: 100vw; + border-top: 1rpx solid rgb(126, 126, 126, 0.2); + background: white; + + display: flex; + justify-content: flex-end; + align-items: center; +} + +.bottomFixView .btn { + box-sizing: border-box; + border-radius: 6rpx; + margin-right: 30rpx; + padding: 12rpx 24rpx; + + background: #579ff8; + font-size: 26rpx; + color: white; +} + +.bottomFixView .btn.red { + background: #ee6f21; +} diff --git a/miniprogram/pages/reportRepair/assign/feedback/feedback.js b/miniprogram/pages/reportRepair/assign/feedback/feedback.js new file mode 100644 index 0000000..b869e2f --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/feedback/feedback.js @@ -0,0 +1,66 @@ +// pages/reportRepair/reportEvaluate/evaluate.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/feedback/feedback.json b/miniprogram/pages/reportRepair/assign/feedback/feedback.json new file mode 100644 index 0000000..f99750a --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/feedback/feedback.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "提交反馈", + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "van-field": "@vant/weapp/field/index", + "van-uploader": "@vant/weapp/uploader/index" + } +} \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/feedback/feedback.wxml b/miniprogram/pages/reportRepair/assign/feedback/feedback.wxml new file mode 100644 index 0000000..f60a8d4 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/feedback/feedback.wxml @@ -0,0 +1,14 @@ + + + + 提交反馈 + + + + + + + + 提交 + + \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/feedback/feedback.wxss b/miniprogram/pages/reportRepair/assign/feedback/feedback.wxss new file mode 100644 index 0000000..792c018 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/feedback/feedback.wxss @@ -0,0 +1,44 @@ +.containerView.public { + background: none; +} + +.regionView { + margin-top: 2rpx; + padding: 30rpx 40rpx 40rpx; + background: white; +} + +.regionView .topTitle { + font-size: 30rpx; + font-weight: bold; + margin-bottom: 30rpx; +} + +.regionView .itemView { + display: flex; + justify-content: flex-start; + align-items: center; + margin-top: 20rpx; +} + +.regionView .itemView .label { + margin: 0 60rpx 0 20rpx; + font-size: 28rpx; + color: gray; +} + +.regionView .itemView .star { + margin-right: 10rpx; +} + +.selfTextarea{ + min-height: 200rpx !important; + max-height: 200rpx !important; +} + +.uploadImgView { + border: 1rpx dashed #c9c9c9; + margin-top: 10rpx; + padding: 10rpx 40rpx; + background-color: #ffffff; +} \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/personList/personList.js b/miniprogram/pages/reportRepair/assign/personList/personList.js new file mode 100644 index 0000000..9329537 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/personList/personList.js @@ -0,0 +1,181 @@ +import { + visitorListRq, + visitorSelectUserByCustomerRq, +} from "../../../../api/meeting/visitorIinvitation.js" + +Page({ + + data: { + title: '', + id: null, + /** 索引栏*/ + indexList: [], + /** 数据*/ + dataList: [], + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + let _this = this; + _this.setData({ + ...options + }) + // 获取所有的企业 + _this.getVisitorList() + }, + + // 获取所有的企业 + getVisitorList() { + let _this = this; + visitorListRq().then(res => { + console.log('getVisitorList', res); + let filterDataList = res.rows.map(item => { + return { + label: item.name, + otherData: JSON.stringify({ + id: item.id, + name: item.name, + }) + } + }) + // 赋值并且格式化数据 + _this.setAndFormatData(filterDataList) + }) + }, + + // 格式化数据 + setAndFormatData(transferList) { + let _this = this; + // 索引列 + let indexList = _this.getFirstCharacterList(transferList) + // 对应每个索引的数据列表 + let dataList = indexList.map(item => { + let title = item; + let collectList = []; + for (let i = 0; i < transferList.length; i++) { + let transferData = transferList[i]; + if (title == transferData.label.substring(0, 1)) { + collectList.push(transferData) + } + } + return { + title, + list: collectList + } + }) + _this.setData({ + indexList, + dataList + }) + }, + + // 获取第一个字符数组,不重复 + getFirstCharacterList(list) { + let firstNameList = list.map(item => { + return { + name: item.label.substring(0, 1), + exist: false + } + }); + for (let i = 0; i < firstNameList.length; i++) { + for (let j = i + 1; j < firstNameList.length; j++) { + // 已重复的数据直接跳过 + if (firstNameList[j].exist) { + continue; + } + // 数据重复 + if (firstNameList[i].name == firstNameList[j].name) { + firstNameList[j].exist = true; + } + } + } + return firstNameList.filter(item => !item.exist).map(item => item.name) + }, + + + + + // 选择 + selectClick(e) { + console.log('selectClick', e); + let _this = this; + // 获取点击行数据 + let label = e.currentTarget.dataset.label + let otherdata = JSON.parse(e.currentTarget.dataset.otherdata) + // + let pages = getCurrentPages(); //获取page + let prevPage = pages[pages.length - 2]; //上一个页面(父页面) + // 上个页面数据 + let detail = prevPage.data.detail; + // 更新上个页面对应的数据 + if (_this.data.title == '单位') { + detail.customerId = otherdata.id //企业id + detail.customerName = otherdata.name //企业名称 + detail.userId = null //被访人id + detail.username = null //被访人姓名 + detail.mobile = null //被访人手机号 + } + if (_this.data.title == '人员') { + detail.userId = otherdata.id //被访人id + detail.username = otherdata.username //被访人姓名 + detail.mobile = otherdata.mobile //被访人手机号 + } + // 赋值上个页面的数据 + prevPage.setData({ + detail + }) + // 后退页面 + wx.navigateBack(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/personList/personList.json b/miniprogram/pages/reportRepair/assign/personList/personList.json new file mode 100644 index 0000000..23789ab --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/personList/personList.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "人员列表", + "usingComponents": { + "van-cell": "@vant/weapp/cell/index", + "van-index-bar": "@vant/weapp/index-bar/index", + "van-index-anchor": "@vant/weapp/index-anchor/index", + "van-divider": "@vant/weapp/divider/index" + } +} \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/personList/personList.wxml b/miniprogram/pages/reportRepair/assign/personList/personList.wxml new file mode 100644 index 0000000..ebbdc23 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/personList/personList.wxml @@ -0,0 +1,8 @@ + + + + + + + +暂无数据 \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/personList/personList.wxss b/miniprogram/pages/reportRepair/assign/personList/personList.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram/pages/reportRepair/assign/record/record.js b/miniprogram/pages/reportRepair/assign/record/record.js new file mode 100644 index 0000000..8e216f8 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/record/record.js @@ -0,0 +1,425 @@ +const app = getApp() + +import Dialog from '@vant/weapp/dialog/dialog'; +import Notify from '@vant/weapp/notify/notify'; + +import { + selfFormatTimeYMD, + selfFormatTimeHM +} from "../../../../utils/util.js" + +import { + selectReservationListByUserIdRq, + selectVisitorInvitationRecordRq, + cancelOrderRq +} from "../../../../api/meeting/meetingRoom.js" + +Page({ + + /** + * 页面的初始数据 + */ + data: { + IMG_NAME: app.IMG_NAME, + userData: null, + dataChange: false, + tabTitle: '预约记录', + // 预约记录参数 + reservationPageNum: 1, + reservationPageSize: 10, + reservationDataList: [], + reservationIsDataAll: false, + // 参与记录参数 + participatePageNum: 1, + participatePageSize: 10, + participateDataList: [], + participateIsDataAll: false, + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + let _this = this; + _this.setData({ + userData: wx.getStorageSync('user'), + }) + // 获取数据 + let userId = _this.data.userData.id + // 获取预约数据 + _this.getReservationData({ + userId, + pageNum: _this.data.reservationPageNum, + pageSize: _this.data.reservationPageSize, + }) + // 获取参与数据 + _this.getParticipateData({ + userId, + pageNum: _this.data.participatePageNum, + pageSize: _this.data.participatePageSize + }) + }, + + // 获取数据 + getDataList() { + // 获取参数 + let _this = this; + let tabTitle = _this.data.tabTitle + let userId = _this.data.userData.id + let isDataAll = null + let pageNum = null + let pageSize = null + if (tabTitle == '预约记录') { + // 预约记录参数 + isDataAll = _this.data.reservationIsDataAll + pageNum = _this.data.reservationPageNum + pageSize = _this.data.reservationPageSize + + } else if (tabTitle == '预约记录') { + // 参与记录参数 + isDataAll = _this.data.participateIsDataAll + pageNum = _this.data.participatePageNum + pageSize = _this.data.participatePageSize + } else { + wx.showToast({ + title: `tab 切换错误(${tabTitle})`, + icon: 'none', + }); + return; + } + + // 判断数据是否已全部加载 + if (isDataAll) { + return; + } + // 传递参数 + let param = { + userId, + pageNum, + pageSize + } + if (tabTitle == '预约记录') { + // 获取预约数据 + _this.getReservationData(param) + } else if (tabTitle == '预约记录') { + // 获取参与数据 + _this.getParticipateData(param) + } + }, + + // 获取预约数据 + getReservationData(param) { + let _this = this; + let { + pageNum, + pageSize, + userId + } = param + // 查询数据 + selectReservationListByUserIdRq({ + pageNum, + pageSize, + userId + }).then(res => { + console.log('selectReservationListByUserIdRq', res); + // 判断数据是否全部查询 + let queryDataList = res.page.records; + if (queryDataList && queryDataList.length > 0) { + // 更新参数 + let reservationDataList = _this.data.reservationDataList.concat(_this.formartData(queryDataList)); + let reservationPageNum = _this.data.reservationPageNum + 1; + _this.setData({ + reservationPageNum, + reservationDataList, + }) + } else { + _this.setData({ + reservationIsDataAll: true + }) + } + }) + }, + + // 获取参与数据 + getParticipateData(param) { + let _this = this; + let { + pageNum, + pageSize, + userId + } = param + // 查询数据 + selectVisitorInvitationRecordRq({ + pageNum, + pageSize, + userId + }).then(res => { + console.log('selectVisitorInvitationRecordRq', res); + // 判断数据是否全部查询 + let queryDataList = res.page.records; + if (queryDataList && queryDataList.length > 0) { + // 更新参数 + let participateDataList = _this.data.participateDataList.concat(_this.formartData(queryDataList)); + let participatePageNum = _this.data.participatePageNum + 1; + _this.setData({ + participatePageNum, + participateDataList, + }) + } else { + _this.setData({ + participateIsDataAll: true + }) + } + }) + }, + + // 格式化数据 + formartData(queryDataList) { + // 格式化数据 + return queryDataList.map(item => { + item.timeSlot = selfFormatTimeYMD(item.startTime) + ' ' + selfFormatTimeHM(item.startTime) + '~' + selfFormatTimeHM(item.endDate); + // 状态字体颜色 + let statusColor = "#FFB119"; + // 按钮是否显示 + let statusValue = item.statusValue; + let showPay = false; + let showInvite = false; + let showCancel = false; + let showDetail = false; + // 待支付 0 :去支付、取消订单、查看详情 + if (statusValue == 0) { + showPay = true; + showCancel = true; + showDetail = true; + // 状态字体颜色 + statusColor = "#FFB119"; + } + // 待使用 1:去邀请、取消订单、查看详情 + if (statusValue == 1) { + showInvite = true; + showCancel = true; + showDetail = true; + // 状态字体颜色 + statusColor = "#3794FF"; + // 待使用 修改为 预约成功 + item.statusName = '预约成功' + } + // 进行中 2:去邀请、查看详情 + if (statusValue == 2) { + showInvite = true; + showDetail = true; + // 状态字体颜色 + statusColor = "#FF4040"; + } + // 已结束 3:查看详情 + if (statusValue == 3) { + showDetail = true; + // 状态字体颜色 + statusColor = "#333333"; + } + // 已取消 4:查看详情 + if (statusValue == 4) { + showDetail = true; + // 状态字体颜色 + statusColor = "#7F7F7F"; + } + // + // 赋值 + item.showPay = showPay; + item.showInvite = showInvite; + item.showCancel = showCancel; + item.showDetail = showDetail; + // 状态字体颜色 + item.statusColor = statusColor; + // 图片 + if (item.roomContent.indoorPicUrl) { + try { + item.roomContent.indoorPicUrlFirst = JSON.parse(item.roomContent.indoorPicUrl)[0].url + } catch (error) { + console.log(`JSON error : ${error}`); + } + } + return item; + }) + + }, + + // 跳转-支付 + jumpPay(e) { + console.log('jumpPay', e); + wx.navigateTo({ + url: "/pages/meeting/pay/waitPay/waitPay?id=" + e.currentTarget.dataset.id + "&type=meetingRoom" + }) + }, + + // 跳转-预约详情 + jumpMeetingDetail(e) { + console.log('jumpMeetingDetail', e); + let id = e.currentTarget.dataset.id + wx.navigateTo({ + url: "/pages/meeting/reservationRecord/meetingRecord/meetingDetail/meetingDetail?id=" + id, + }) + }, + + // 跳转-参与详情 + jumpParticipateDetail(e) { + console.log('jumpParticipateDetail', e); + let id = e.currentTarget.dataset.id + wx.navigateTo({ + url: "/pages/meeting/invite/invite?id=" + id, + }) + }, + + // tab 点击切换 + tabClickSwitch(event) { + console.log('tabClickSwitch', event); + let _this = this; + _this.setData({ + tabTitle: event.detail.title + }) + }, + + // 取消订单 + cancelOrder(e) { + console.log('cancelOrder', e); + let _this = this; + let id = e.currentTarget.dataset.id + const beforeClose = (action) => { + console.log('action', action); + return new Promise((resolve) => { + if (action === 'confirm') { + cancelOrderRq({ + id, + cancelResaon: "" + }).then(res => { + console.log('cancelOrderRq', res); + if (res.code == 0) { + // 刷新预约数据 + _this.setData({ + reservationPageNum: 1, + reservationDataList: [], + reservationIsDataAll: false, + }) + _this.getDataList() + } else { + // 危险通知 + Notify({ + type: 'danger', + message: res.msg + }); + } + resolve(true); + }) + } else { + // 拦截取消操作 + resolve(true); + } + }); + } + Dialog.confirm({ + title: '提示', + message: '是否取消预约!', + beforeClose, + }); + }, + + jumpDetail(){ + wx.navigateTo({ + url: '/pages/reportRepair/assign/detail/detail', + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + let _this = this; + // 数据是否变化 + if (_this.data.dataChange) { + // 刷新数据 + _this.setData({ + dataChange: false, + // 预约记录参数 + reservationPageNum: 1, + reservationDataList: [], + reservationIsDataAll: false, + // 参与记录参数 + participatePageNum: 1, + participateDataList: [], + participateIsDataAll: false, + }) + + // 获取数据 + let userId = _this.data.userData.id + // 获取预约数据 + _this.getReservationData({ + userId, + pageNum: _this.data.reservationPageNum, + pageSize: _this.data.reservationPageSize, + }) + // 获取参与数据 + _this.getParticipateData({ + userId, + pageNum: _this.data.participatePageNum, + pageSize: _this.data.participatePageSize + }) + } + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + console.log('onPullDownRefresh', '页面相关事件处理函数--监听用户下拉动作'); + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + console.log('onReachBottom', '页面上拉触底事件的处理函数'); + let _this = this; + // 获取数据 + _this.getDataList() + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage(e) { + console.log('onShareAppMessage', e); + let _this = this; + let id = e.target.dataset.id; + let detail = _this.data.reservationDataList.find(item => item.id == id) + // + let param = { + title: detail.title, + path: "/pages/meeting/invite/invite?id=" + id, + imageUrl: app.IMG_NAME + detail.roomContent.indoorPicUrlFirst, + } + console.log('onShareAppMessage', param); + return param; + } +}) \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/record/record.json b/miniprogram/pages/reportRepair/assign/record/record.json new file mode 100644 index 0000000..9de6165 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/record/record.json @@ -0,0 +1,11 @@ +{ + "navigationBarTitleText": "派单中心", + "usingComponents": { + "van-tab": "@vant/weapp/tab/index", + "van-tabs": "@vant/weapp/tabs/index", + "van-divider": "@vant/weapp/divider/index", + "van-dialog": "@vant/weapp/dialog/index", + "van-notify": "@vant/weapp/notify/index" + }, + "onReachBottomDistance": 100 +} \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/record/record.wxml b/miniprogram/pages/reportRepair/assign/record/record.wxml new file mode 100644 index 0000000..40e2ef5 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/record/record.wxml @@ -0,0 +1,42 @@ + + + + + 编号: T123123123 + + + + + 空调损坏 + 设备名称: 空调 + 设备地址: 301南楼 + + + + + 王军(18300011120) + 2024-01-01 12:12:00 + + + + 数据已全部加载 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/assign/record/record.wxss b/miniprogram/pages/reportRepair/assign/record/record.wxss new file mode 100644 index 0000000..d938817 --- /dev/null +++ b/miniprogram/pages/reportRepair/assign/record/record.wxss @@ -0,0 +1,75 @@ +.containerView.public { + background: none; + height: auto; +} + +.itemView { + background: white; + margin: 20rpx 20rpx; + border-radius: 8rpx; + box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0px 0.5px inset; + box-sizing: border-box; +} + +.itemView .topTitle { + padding: 20rpx 20rpx; + font-size: 26rpx; + color: gray; +} + +.itemView .centerView { + display: flex; + justify-content: flex-start; + align-items: center; + padding: 20rpx; +} + +.itemView .centerView .showImg { + width: 140rpx; + height: 140rpx; + border-radius: 8rpx; + flex-shrink: 0; +} + +.itemView .centerView .rightView { + margin-left: 40rpx; + flex: 1; + overflow: hidden; +} + +.itemView .centerView .rightView .labelName { + line-height: 1; + font-size: 28rpx; + font-weight: bold; +} + +.itemView .centerView .rightView .labelContent1 { + line-height: 1; + margin-top: 30rpx; + font-size: 24rpx; + color: gray; +} + +.itemView .centerView .rightView .labelContent2 { + line-height: 1; + margin-top: 10rpx; + font-size: 24rpx; + color: gray; +} + +.itemView .bottomLine { + height: 2rpx; + background: rgb(126, 126, 126, 0.2); + margin: 30rpx 0; +} + +.bottomView { + display: flex; + justify-content: space-between; + align-items: center; + padding: 20rpx 60rpx 20rpx 40rpx; +} + +.loadAllLine { + margin-top: 80rpx; +} \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/index/index.js b/miniprogram/pages/reportRepair/index/index.js index 0d306bb..1aca05f 100644 --- a/miniprogram/pages/reportRepair/index/index.js +++ b/miniprogram/pages/reportRepair/index/index.js @@ -22,7 +22,7 @@ Page({ }, { name: "派单入口", img: "/profile/static/index/menu-bxfw.png", - // path: "/pages/reportRepair/reportRepair" + path: "/pages/reportRepair/assign/record/record" }] }, diff --git a/project.config.json b/project.config.json index 3de6107..a7a5ed7 100644 --- a/project.config.json +++ b/project.config.json @@ -52,7 +52,7 @@ }, "compileType": "miniprogram", "libVersion": "3.4.0", - "appid": "wx08bf0d440e446e7c", + "appid": "wx5582a07c1fbbcf06", "projectname": "SmartPark", "simulatorType": "wechat", "simulatorPluginLibVersion": {},