Browse Source

报修接口联调完成

epass
mk 2 months ago
parent
commit
98012b2868
  1. 4
      api/index.js
  2. 82
      subpages/eventAdd/add/add.js
  3. 23
      subpages/eventAdd/add/add.wxml
  4. 16
      subpages/eventAdd/add/add.wxss

4
api/index.js

@ -51,3 +51,7 @@ export function paySuccess(pamars) {
export function message(pamars) { export function message(pamars) {
return fly.get(`/bysmp/message/page`,pamars) return fly.get(`/bysmp/message/page`,pamars)
} }
// 提报
export function repairSubmit(data) {
return fly.post(`/bysmp/repair/submit`,data)
}

82
subpages/eventAdd/add/add.js

@ -1,5 +1,7 @@
// subpages/eventAdd/add/add.js // subpages/eventAdd/add/add.js
const app = getApp() const app = getApp()
var config = require('../../../utils/config')
import {repairSubmit} from "../../../api/index"
Page({ Page({
/** /**
@ -9,7 +11,6 @@ Page({
title: '报修', title: '报修',
radio: '1', radio: '1',
bxname: '', bxname: '',
questionText: '',
fileList: [ fileList: [
// { // {
// url: 'https://img.yzcdn.cn/vant/leaf.jpg', // url: 'https://img.yzcdn.cn/vant/leaf.jpg',
@ -21,6 +22,10 @@ Page({
// isImage: true, // isImage: true,
// }, // },
], ],
positionType:null,
repairItem:'',
faultDescribe:'',
position:''
}, },
deleteData(event) { deleteData(event) {
// 删除 // 删除
@ -36,26 +41,22 @@ Page({
file file
} = event.detail; } = event.detail;
console.log(file, 66) console.log(file, 66)
const _this = this
// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
wx.uploadFile({ wx.uploadFile({
url: 'https://example.weixin.qq.com/upload', // 仅为示例,非真实的接口地址 url: `${config.BASEURL()}/common/upload`, // 仅为示例,非真实的接口地址
filePath: file.url, filePath: file.url,
name: 'file', name: 'file',
formData: { header: {
user: 'test' "Content-type": "multipart/form-data",
'Authorization': wx.getStorageSync('token')
}, },
success(res) { success(res) {
// 上传完成需要更新 fileList const res1 = JSON.parse(res.data)
const { _this.setData({
fileList = [] fileList:_this.data.fileList.concat([{url:res1.url,name:new Date().getTime()}])
} = this.data;
fileList.push({
...file,
url: res.data
});
this.setData({
fileList
}); });
console.log(_this.data.fileList);
}, },
}); });
}, },
@ -68,21 +69,64 @@ Page({
}, },
onInput(e) { onInput(e) {
this.setData({ this.setData({
questionText: e.detail.value, faultDescribe: e.detail.value,
}); });
// console.log(this.data.questionText, 666) // console.log(this.data.questionText, 666)
}, },
onButtonTap() { repairSubmit() {
const {position,positionType,repairItem,faultDescribe,fileList} = this.data
if(!repairItem){
wx.showToast({ wx.showToast({
title: '按钮被点击了', title: '报修物品不能为空',
icon: 'none' icon:'none'
}); })
return
}
if(!faultDescribe){
wx.showToast({
title: '故障说明不能为空',
icon:'none'
})
return
}
if(positionType === null){
wx.showToast({
title: '位置不能为空',
icon:'none'
})
return
}
let parms = {
position,
images:fileList,
positionType,
repairItem,
faultDescribe
}
repairSubmit(parms).then(res=>{
if(res.code === 200){
wx.showToast({
title: '上报成功',
duration:2000,
success:()=>{
setTimeout(()=>{
wx.navigateBack()
},2000)
}
})
}
})
}, },
onChange(event) { onChange(event) {
this.setData({ this.setData({
radio: event.detail, radio: event.detail,
}); });
}, },
onChangeRadio(e){
this.setData({
positionType:e.detail
})
},
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */

23
subpages/eventAdd/add/add.wxml

@ -8,22 +8,25 @@
</view> </view>
<view class="bsCon2"> <view class="bsCon2">
<view class="bxName"> <view class="bxName">
<view class="bsSpan1">报修物品</view> <view class="bsSpan1"><text class="required">*</text> 报修物品</view>
<van-cell-group class="bxinput"> <van-cell-group class="bxinput" >
<van-field value="{{ bxname }}" placeholder="请输入" border="{{ false }}" bind:change="onChange" /> <van-field model:value="{{ repairItem }}" placeholder="请输入" border="{{ false }}" bind:change="onChange" />
</van-cell-group> </van-cell-group>
</view> </view>
<view class="bsSpan">故障说明</view> <view class="bsSpan "><text class="required">*</text> 故障说明</view>
<textarea class="question-input" placeholder="请输入内容" bindinput="onInput" value="{{questionText}}" maxlength="" /> <textarea class="question-input" placeholder="请输入内容" bindinput="onInput" value="{{faultDescribe}}" maxlength="" />
<view class="bsSpan" style="margin-top: 15rpx;margin-left: 0rpx;">上传图片/视频</view> <view class="bsSpan" style="margin-top: 15rpx;margin-left: 0rpx;">上传图片/视频</view>
<van-uploader file-list="{{ fileList }}" bind:after-read="afterRead" bind:before-read="beforeRead" bind:delete="deleteData" max-count="3" /> <van-uploader file-list="{{ fileList }}" bind:after-read="afterRead" bind:before-read="beforeRead" bind:delete="deleteData" max-count="3" />
</view> </view>
<view class="bsCon3"> <view class="bsCon3">
<view class="bsSpan1">位置</view> <view style="display: flex;">
<van-radio-group value="{{ radio }}" bind:change="onChange" direction="horizontal"> <view class="bsSpan1"> <text class="required">*</text> 位置</view>
<van-radio name="1">所住房间</van-radio> <van-radio-group value="{{positionType}}" bind:change="onChangeRadio" direction="horizontal">
<van-radio name="2">公共区域</van-radio> <van-radio name="{{0}}">所住房间</van-radio>
<van-radio name="{{1}}">公共区域</van-radio>
</van-radio-group> </van-radio-group>
</view> </view>
<view class="bsBtn" bindtap="onButtonTap">提交</view> <textarea wx:if="{{positionType === 1}}" value="{{position}}" style="min-height: 100rpx;background-color:#f6f6f6;width: 100%;margin-top:50rpx;padding: 10rpx 10rpx 30rpx 10rpx;" placeholder="请输入位置信息"/>
</view>
<view class="bsBtn" bindtap="repairSubmit">提交</view>
</view> </view>

16
subpages/eventAdd/add/add.wxss

@ -63,7 +63,7 @@
.bsCon3 { .bsCon3 {
border-radius: 10rpx; border-radius: 10rpx;
height: 100rpx; height: 400rpx;
overflow-y: auto; overflow-y: auto;
background-color: rgba(255, 255, 255, 1); background-color: rgba(255, 255, 255, 1);
position: absolute; position: absolute;
@ -73,8 +73,9 @@
padding: 2%; padding: 2%;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
justify-content: space-between; flex-direction: column;
align-items: center; margin-bottom: 200rpx;
padding-bottom: 100rpx;
} }
/* 输入框样式 */ /* 输入框样式 */
@ -87,7 +88,6 @@
padding: 15rpx; padding: 15rpx;
box-sizing: border-box; box-sizing: border-box;
background-color: rgba(246, 246, 246, 1); background-color: rgba(246, 246, 246, 1);
color: rgba(203, 203, 203, 1);
font-size: 28rpx; font-size: 28rpx;
} }
@ -117,7 +117,7 @@ van-uploader__upload {
color: rgba(255, 255, 255, 1); color: rgba(255, 255, 255, 1);
font-size: 34rpx; font-size: 34rpx;
text-align: center; text-align: center;
top: calc(7% + 1150rpx); top: calc(7% + 1308rpx);
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
} }
@ -139,12 +139,11 @@ van-uploader__upload {
font-size: 30rpx; font-size: 30rpx;
margin-left: 20rpx; margin-left: 20rpx;
display: inline-block; display: inline-block;
width: 20%; width: 21%;
} }
.bxinput { .bxinput {
display: inline-block; display: inline-block;
width: 40%;
} }
.bxName { .bxName {
@ -154,3 +153,6 @@ van-uploader__upload {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.required{
color: #f10a24;
}
Loading…
Cancel
Save