@@ -58,10 +58,11 @@ | |||||
<textarea class="textarea card-content" :value="form.appealContent" @input="headleInput" | <textarea class="textarea card-content" :value="form.appealContent" @input="headleInput" | ||||
data-name="appealContent" maxlength="200" placeholder="请输入诉求内容,文字不超过200字"></textarea> | data-name="appealContent" maxlength="200" placeholder="请输入诉求内容,文字不超过200字"></textarea> | ||||
<view class="mt-16"> | <view class="mt-16"> | ||||
<van-uploader :file-list="fileList" :deletable="true" :after-read="afterRead" max-count="9" | |||||
@delete="imageDelete"> | |||||
<van-icon name="/src/images/camera.png" size="80px" /> | |||||
</van-uploader> | |||||
<van-uploader :after-read="afterRead" :before-delete="beforeDelete" v-model="fileList" :deletable="true" | |||||
max-count="9"> | |||||
<van-icon name="/src/images/camera.png" size="80px" /> | |||||
</van-uploader> | |||||
<view class="mt-16 card-block">附件不超过9个,每个大小不超过1M</view> | <view class="mt-16 card-block">附件不超过9个,每个大小不超过1M</view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -224,46 +225,26 @@ | |||||
this[name] = Listname === 'enterpriseList' ? List[e.detail.value].id : List[e.detail.value].value | this[name] = Listname === 'enterpriseList' ? List[e.detail.value].id : List[e.detail.value].value | ||||
}, | }, | ||||
// 清楚对应的image图片 | |||||
imageDelete(event) { | |||||
const { | |||||
index | |||||
} = event.detail; | |||||
const Image = this.fileList; | |||||
Image.splice(index, 1); | |||||
this.fileList = Image | |||||
}, | |||||
beforeDelete(file, dateil) { | |||||
this.appealEnclosure.splice(dateil.index, 1); | |||||
this.fileList.splice(dateil.index, 1) | |||||
}, | |||||
// 上传图片 | |||||
async afterRead(event) { | async afterRead(event) { | ||||
console.log(event) | |||||
const { | |||||
file | |||||
} = event; | |||||
const res = await getApp().globalData.upload({ | |||||
file | |||||
}); | |||||
if (res.code !== 0) { | |||||
uni.showToast({ | |||||
title: '上传图片失败', | |||||
icon: 'none' | |||||
}); | |||||
return false; | |||||
} | |||||
const { | |||||
fileList | |||||
} = this; | |||||
const { | |||||
appealEnclosure | |||||
} = this; | |||||
const url = res.data; | |||||
fileList.push({ | |||||
url | |||||
const { | |||||
file | |||||
} = event; | |||||
const res = await getApp().globalData.upload({ file }); | |||||
if (res.code !== 0) { | |||||
uni.showToast({ | |||||
title: '上传图片失败', | |||||
icon: 'none' | |||||
}); | }); | ||||
appealEnclosure.push(url); | |||||
this.fileList = fileList, | |||||
this.appealEnclosure = appealEnclosure | |||||
}, | |||||
return false; | |||||
} | |||||
this.appealEnclosure.push(res.data); | |||||
}, | |||||
// 输入框重新赋值 | // 输入框重新赋值 | ||||
headleInput(event) { | headleInput(event) { | ||||
@@ -100,9 +100,9 @@ | |||||
const { | const { | ||||
file | file | ||||
} = event.detail; | } = event.detail; | ||||
// const res = await app.globalData.upload({ | |||||
// file | |||||
// }); | |||||
const res = await getApp().globalData.upload({ | |||||
file | |||||
}); | |||||
if (res.code !== 0) { | if (res.code !== 0) { | ||||
uni.showToast({ | uni.showToast({ | ||||
title: '上传图片失败', | title: '上传图片失败', | ||||
@@ -120,9 +120,9 @@ | |||||
const { | const { | ||||
file | file | ||||
} = event.detail; | } = event.detail; | ||||
// const res = await app.globalData.upload({ | |||||
// file | |||||
// }); | |||||
const res = await getApp().globalData.upload({ | |||||
file | |||||
}); | |||||
if (res.code !== 0) { | if (res.code !== 0) { | ||||
uni.showToast({ | uni.showToast({ | ||||
title: '上传图片失败', | title: '上传图片失败', | ||||
@@ -181,9 +181,9 @@ | |||||
const { | const { | ||||
file | file | ||||
} = event.detail; | } = event.detail; | ||||
// const res = await app.globalData.upload({ | |||||
// file | |||||
// }); | |||||
const res = await getApp().globalData.upload({ | |||||
file | |||||
}); | |||||
if (res.code !== 0) { | if (res.code !== 0) { | ||||
uni.showToast({ | uni.showToast({ | ||||
title: '上传图片失败', | title: '上传图片失败', | ||||
@@ -1,5 +1,5 @@ | |||||
<template> | <template> | ||||
<view style="height: 100%"> | |||||
<view> | |||||
<custom-nav-bar position="fixed" color="black" :left-text="options.type === 'reply' ? '回复' : '修改'" left-arrow /> | <custom-nav-bar position="fixed" color="black" :left-text="options.type === 'reply' ? '回复' : '修改'" left-arrow /> | ||||
<view class="form-list"> | <view class="form-list"> | ||||
@@ -12,10 +12,10 @@ | |||||
</view> | </view> | ||||
<view class="form-item form-item-checkbox"> | <view class="form-item form-item-checkbox"> | ||||
<view class="label-image"> | <view class="label-image"> | ||||
<van-uploader @after-read="afterRead" :file-list="fileList" :deletable="true" max-count="9" | |||||
@delete="imageDelete"> | |||||
<image class="label-image-camera" src="/static/images/icon9.png"></image> | |||||
</van-uploader> | |||||
<van-uploader :after-read="afterRead" :before-delete="beforeDelete" v-model="fileList" :deletable="true" | |||||
max-count="9"> | |||||
<image class="label-image-camera" src="/static/images/icon9.png" ></image> | |||||
</van-uploader> | |||||
</view> | </view> | ||||
<view class="label-image-msg">附件不超过9个</view> | <view class="label-image-msg">附件不超过9个</view> | ||||
</view> | </view> | ||||
@@ -42,7 +42,8 @@ export default { | |||||
replyContent: '', | replyContent: '', | ||||
replyImages: '' | replyImages: '' | ||||
}, | }, | ||||
fileList: [] // 上传的图片 | |||||
fileList: [], // 上传的图片 | |||||
appealEnclosure:[] | |||||
}; | }; | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
@@ -116,38 +117,25 @@ export default { | |||||
} | } | ||||
}, | }, | ||||
// 上传图片 | |||||
async afterRead(event) { | async afterRead(event) { | ||||
// 如果设置上传图片多选file则为数组 | |||||
const { | const { | ||||
file | file | ||||
} = event.detail; | |||||
// const { | |||||
// data = '' | |||||
// } = await app.globalData.upload({ | |||||
// file | |||||
// }); | |||||
const { | |||||
fileList | |||||
} = this; | |||||
fileList.push({ | |||||
url: data | |||||
}); | |||||
this.setData({ | |||||
fileList | |||||
}); | |||||
}, | |||||
} = event; | |||||
// 删除图片 | |||||
imageDelete(event) { | |||||
const { | |||||
index | |||||
} = event.detail; | |||||
const Image = this.fileList; | |||||
Image.splice(index, 1); | |||||
this.setData({ | |||||
fileList: Image | |||||
}); | |||||
const res = await getApp().globalData.upload({ file }); | |||||
if (res.code !== 0) { | |||||
uni.showToast({ | |||||
title: '上传图片失败', | |||||
icon: 'none' | |||||
}); | |||||
return false; | |||||
} | |||||
// this.fileList.push({url:res.data}) | |||||
this.appealEnclosure.push(res.data); | |||||
}, | |||||
beforeDelete(file, dateil) { | |||||
this.appealEnclosure.splice(dateil.index, 1); | |||||
this.fileList.splice(dateil.index, 1) | |||||
}, | }, | ||||
headleInput(event) { | headleInput(event) { | ||||
@@ -161,11 +149,7 @@ export default { | |||||
}, | }, | ||||
handSubmit() { | handSubmit() { | ||||
this.setData({ | |||||
'form.replyImages': this.fileList.map((item) => { | |||||
return item.url; | |||||
}) | |||||
}); | |||||
this.form.replyImages = this.appealEnclosure | |||||
// 标识哪些数据为必填 | // 标识哪些数据为必填 | ||||
if (!this.form.replyContent) { | if (!this.form.replyContent) { | ||||
@@ -75,10 +75,10 @@ | |||||
</view> | </view> | ||||
<view class="view"> | <view class="view"> | ||||
<view class="flex flex-v-center"> | <view class="flex flex-v-center"> | ||||
<image class="inquiry-icon" :src="replyInfo.doctorPhoto" /> | |||||
<image class="inquiry-icon" v-if="replyInfo" :src="replyInfo.doctorPhoto" /> | |||||
<view class="inquiry-label"> | <view class="inquiry-label"> | ||||
<text class="inquiry-title">{{ replyInfo.replyUserName }}</text> | |||||
<text class="time">{{ toods.getDateTime(replyInfo.createTime) }}</text> | |||||
<text class="inquiry-title" v-if="replyInfo">{{ replyInfo.replyUserName }}</text> | |||||
<text class="time">{{ getDateTime(replyInfo.createTime) }}</text> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="inquiry-conent">{{ replyInfo.replyContent }}</view> | <view class="inquiry-conent">{{ replyInfo.replyContent }}</view> | ||||
@@ -99,7 +99,7 @@ | |||||
</view> | </view> | ||||
<view class="mt-28"> | <view class="mt-28"> | ||||
<view>{{ messsDetail.appraiseContent }}</view> | <view>{{ messsDetail.appraiseContent }}</view> | ||||
<view class="detail-appraise-image" v-if="messsDetail.appraiseImage.length"> | |||||
<view class="detail-appraise-image" v-if="messsDetail"> | |||||
<image :src="item" v-for="(item, index) in messsDetail.appraiseImage" :key="index"></image> | <image :src="item" v-for="(item, index) in messsDetail.appraiseImage" :key="index"></image> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -160,7 +160,7 @@ | |||||
seekHelptype: [], | seekHelptype: [], | ||||
show: false, | show: false, | ||||
userInfoCount: null, | userInfoCount: null, | ||||
replyInfo: null, | |||||
replyInfo: {}, | |||||
t: { | t: { | ||||
value: '', | value: '', | ||||
@@ -269,6 +269,7 @@ | |||||
}, | }, | ||||
handrReply(event) { | handrReply(event) { | ||||
console.log(event) | |||||
const { | const { | ||||
item, | item, | ||||
type | type | ||||
@@ -296,12 +297,11 @@ | |||||
}, | }, | ||||
async healedOrder(event, _dataset) { | async healedOrder(event, _dataset) { | ||||
console.log(event) | |||||
console.log(_dataset) | |||||
/* ---处理dataset begin--- */ | /* ---处理dataset begin--- */ | ||||
this.handleDataset(event, _dataset); | |||||
// this.handleDataset(event, _dataset); | |||||
/* ---处理dataset end--- */ | /* ---处理dataset end--- */ | ||||
const { | |||||
item | |||||
} = event.currentTarget.dataset; | |||||
const res = await peopleApi.seekHelpApi({ | const res = await peopleApi.seekHelpApi({ | ||||
id: item.id | id: item.id | ||||
}); | }); | ||||
@@ -20,8 +20,10 @@ | |||||
<view class="thenMesses-bg bg-orange"> | <view class="thenMesses-bg bg-orange"> | ||||
<view class="hide thenMesses-title" style="padding-right: 100rpx">{{ item.title }}</view> | <view class="hide thenMesses-title" style="padding-right: 100rpx">{{ item.title }}</view> | ||||
<view class="absolute orange"> | <view class="absolute orange"> | ||||
<text v-if="item.type + '' === t.value" v-for="(t, index1) in seekHelptype" | |||||
:key="index1">{{ t.label }}</text> | |||||
<block v-for="(t, index1) in seekHelptype" | |||||
:key="index1"> | |||||
<text v-if="item.type + '' === t.value" >{{ t.label }}</text> | |||||
</block> | |||||
</view> | </view> | ||||
<view :class=" | <view :class=" | ||||
'thenMesses-hint ' + | 'thenMesses-hint ' + | ||||
@@ -57,7 +59,7 @@ | |||||
<rich-text class="rich-text" :nodes="item.content"></rich-text> | <rich-text class="rich-text" :nodes="item.content"></rich-text> | ||||
</view> | </view> | ||||
<view class="thenMesses-content-image" v-if="item.images.length"> | |||||
<view class="thenMesses-content-image" v-if="item.images"> | |||||
<image :src="it" v-for="(it, index1) in item.images" :key="index1"></image> | <image :src="it" v-for="(it, index1) in item.images" :key="index1"></image> | ||||
</view> | </view> | ||||
@@ -72,11 +74,11 @@ | |||||
<image src="/static/images/ic-success.png" mode="aspectFill"></image> | <image src="/static/images/ic-success.png" mode="aspectFill"></image> | ||||
<text>{{ item.reply.replyUserName }}</text> | <text>{{ item.reply.replyUserName }}</text> | ||||
</view> | </view> | ||||
<view class="myAppeal-conent-block">{{ toods.getDateTime(item.reply.createTime, 0) }}</view> | |||||
<view class="myAppeal-conent-block">{{ getDateTime(item.reply.createTime, 0) }}</view> | |||||
</view> | </view> | ||||
<view class="myAppeal-bg-conent flex flex-col"> | <view class="myAppeal-bg-conent flex flex-col"> | ||||
<rich-text :nodes="item.reply.replyContent"></rich-text> | <rich-text :nodes="item.reply.replyContent"></rich-text> | ||||
<view class="inquiry-image" v-if="item.reply.replyImages.length"> | |||||
<view class="inquiry-image" v-if="item.reply.replyImages"> | |||||
<image class="image" :src="item" v-for="(item, index1) in item.reply.replyImages" :key="index1"> | <image class="image" :src="item" v-for="(item, index1) in item.reply.replyImages" :key="index1"> | ||||
</image> | </image> | ||||
</view> | </view> | ||||
@@ -99,6 +101,7 @@ | |||||
import * as publicApi from '@/api/publicApi'; | import * as publicApi from '@/api/publicApi'; | ||||
import * as myApi from '@/api/myApi'; | import * as myApi from '@/api/myApi'; | ||||
import utils from '@/utils/util.map' | |||||
const partyMember = [{ | const partyMember = [{ | ||||
icon: '/static/packages/my/image/order.png', | icon: '/static/packages/my/image/order.png', | ||||
name: '已接单', | name: '已接单', | ||||
@@ -148,6 +151,9 @@ | |||||
this.seekHelpPageApi(); | this.seekHelpPageApi(); | ||||
}, | }, | ||||
methods: { | methods: { | ||||
getDateTime(tiem){ | |||||
return utils.getDateTime(tiem) | |||||
}, | |||||
async seekHelpPageApi() { | async seekHelpPageApi() { | ||||
let params = { | let params = { | ||||
pageNo: this.pageNo, | pageNo: this.pageNo, | ||||
@@ -78,9 +78,9 @@ | |||||
const { | const { | ||||
file | file | ||||
} = event.detail; | } = event.detail; | ||||
// const res = await app.globalData.upload({ | |||||
// file | |||||
// }); | |||||
const res = await getApp().globalData.upload({ | |||||
file | |||||
}); | |||||
if (res.code !== 0) { | if (res.code !== 0) { | ||||
uni.showToast({ | uni.showToast({ | ||||
title: '上传图片失败', | title: '上传图片失败', | ||||
@@ -51,8 +51,8 @@ | |||||
<textarea class="textarea-class" maxlength="500" @input="headleInput" data-name="content" placeholder="请输入内容" | <textarea class="textarea-class" maxlength="500" @input="headleInput" data-name="content" placeholder="请输入内容" | ||||
auto-height :value="form.content"></textarea> | auto-height :value="form.content"></textarea> | ||||
<view class="form-image"> | <view class="form-image"> | ||||
<van-uploader :after-read="afterRead" :file-list="fileList" :deletable="true" max-count="9" | |||||
@delete="imageDelete"> | |||||
<van-uploader :after-read="afterRead" :before-delete="beforeDelete" v-model="fileList" :deletable="true" | |||||
max-count="9"> | |||||
<image class="camera" src="/static/images/icon9.png"></image> | <image class="camera" src="/static/images/icon9.png"></image> | ||||
</van-uploader> | </van-uploader> | ||||
</view> | </view> | ||||
@@ -91,7 +91,8 @@ | |||||
</view> | </view> | ||||
<view class="form-treaty"> | <view class="form-treaty"> | ||||
<van-checkbox label-disabled checked-color="red" v-model="checked" shape="square" use-icon-slot @change="onCheckbox"> | |||||
<van-checkbox label-disabled checked-color="red" v-model="checked" shape="square" use-icon-slot | |||||
@change="onCheckbox"> | |||||
<!-- <image class="ic-check" | <!-- <image class="ic-check" | ||||
:src="checked ? '/static/images/ic-radio1.png' : '/static/images/ic-radio.png'" /> --> | :src="checked ? '/static/images/ic-radio1.png' : '/static/images/ic-radio.png'" /> --> | ||||
<view class="checbox-text flex"> | <view class="checbox-text flex"> | ||||
@@ -114,15 +115,8 @@ | |||||
<van-popup v-model:show="isVisible" round position="bottom"> | <van-popup v-model:show="isVisible" round position="bottom"> | ||||
<van-cascader | |||||
v-model="currentValue" | |||||
title="请选择所在地区" | |||||
:options="optionData" | |||||
:field-names="defaultFieldNames" | |||||
@finish="onCloseVisible" | |||||
@close="onCloseVisible" | |||||
@change="onChangeVisible" | |||||
/> | |||||
<van-cascader v-model="currentValue" title="请选择所在地区" :options="optionData" :field-names="defaultFieldNames" | |||||
@finish="onCloseVisible" @close="onCloseVisible" @change="onChangeVisible" /> | |||||
</van-popup> | </van-popup> | ||||
<!-- <wux-cascader :visible="isVisible" title="所在村/社区" :options="optionData" :safe-area-inset-bottom="true" | <!-- <wux-cascader :visible="isVisible" title="所在村/社区" :options="optionData" :safe-area-inset-bottom="true" | ||||
@@ -131,459 +125,442 @@ | |||||
</template> | </template> | ||||
<script> | <script> | ||||
const app = getApp().globalData | |||||
console.log(app) | |||||
// const { | |||||
// publicApi, | |||||
// peopleApi | |||||
// } = app.globalData.api; | |||||
import * as peopleApi from '@/api/peopleApi'; | |||||
import * as publicApi from '@/api/publicApi'; | |||||
export default { | |||||
components: { | |||||
}, | |||||
data() { | |||||
return { | |||||
userInfoData: uni.getStorageSync('userInfoData'), | |||||
// 上传图片所需 | |||||
appealEnclosure: [], | |||||
fileList: [], | |||||
form: { | |||||
address: '', | |||||
posX: '', | |||||
posY: '', | |||||
content: '', | |||||
title: '', | |||||
mobile: '', | |||||
orgId: 0, | |||||
name: null, | |||||
type: 1, | |||||
showFlag: 1 | |||||
}, | |||||
checked: false, | |||||
columns: [{ | |||||
id: 1, | |||||
type: '求助' | |||||
}, | |||||
{ | |||||
id: 2, | |||||
type: '帮助' | |||||
} | |||||
], | |||||
agreeList: [{ | |||||
label: '否', | |||||
value: 0 | |||||
}, | |||||
{ | |||||
label: '是', | |||||
value: 1 | |||||
} | |||||
], | |||||
// 级连选择器数据 start | |||||
isVisible: false, | |||||
FiledVisible:true, | |||||
optionData: [], | |||||
currentTile: '请选择', | |||||
// 选择后的名称 | |||||
currentValue: null, | |||||
// 选择后的id | |||||
// 级联选择默认显示字段 | |||||
// 级连选择器数据 end | |||||
defaultFieldNames: { | |||||
text: 'name', | |||||
value: 'id', | |||||
children: 'children' | |||||
}, | |||||
isDialog: false, | |||||
name: '', | |||||
label: '' | |||||
}; | |||||
}, | |||||
onLoad() { | |||||
// this.form.address = app.globalData.config.locationInfo.name; | |||||
// this.form.posX = app.globalData.config.locationInfo.latitude; | |||||
// this.form.posY = app.globalData.config.locationInfo.longitude; | |||||
const userInfoData = uni.getStorageSync('userInfoData'); | |||||
this.isDialog = true | |||||
this.form = this.form | |||||
this.userInfoData = userInfoData | |||||
this.deptTreeApi(); | |||||
this.getTypeApi(); | |||||
}, | |||||
methods: { | |||||
// 获取群众点单字典 | |||||
async getTypeApi() { | |||||
const res = await publicApi.getDictDataApi({ | |||||
dictType: 'people_seek_help_type', | |||||
pageNo: 1, | |||||
pageSize: 100 | |||||
}); | |||||
if (res.data) { | |||||
this.columns = res.data.list | |||||
} | |||||
}, | |||||
/** | |||||
* 接口 | |||||
*/ | |||||
async deptTreeApi() { | |||||
// 获取所在村/社区 | |||||
const res = await publicApi.deptTreeApi(); | |||||
if (res.data && res.data.length) { | |||||
this.optionData = res.data | |||||
} | |||||
}, | |||||
async afterRead(event) { | |||||
const { | |||||
file | |||||
} = event; | |||||
const res = await getApp().globalData.upload({file}); | |||||
if (res.code !== 0) { | |||||
uni.showToast({ | |||||
title: '上传图片失败', | |||||
icon: 'none' | |||||
}); | |||||
return false; | |||||
} | |||||
const { | |||||
fileList | |||||
} = this; | |||||
const { | |||||
appealEnclosure | |||||
} = this; | |||||
const url = res.data; | |||||
fileList.push({ | |||||
url | |||||
}); | |||||
appealEnclosure.push(url); | |||||
this.fileList = fileList | |||||
this.appealEnclosure = appealEnclosure | |||||
const app = getApp().globalData | |||||
console.log(app) | |||||
// const { | |||||
// publicApi, | |||||
// peopleApi | |||||
// } = app.globalData.api; | |||||
import * as peopleApi from '@/api/peopleApi'; | |||||
import * as publicApi from '@/api/publicApi'; | |||||
export default { | |||||
components: { | |||||
}, | |||||
data() { | |||||
return { | |||||
userInfoData: uni.getStorageSync('userInfoData'), | |||||
// 上传图片所需 | |||||
appealEnclosure: [], | |||||
fileList: [], | |||||
form: { | |||||
address: '', | |||||
posX: '', | |||||
posY: '', | |||||
content: '', | |||||
title: '', | |||||
mobile: '', | |||||
orgId: 0, | |||||
name: null, | |||||
type: 1, | |||||
showFlag: 1 | |||||
}, | }, | ||||
async submit() { | |||||
const { | |||||
address, | |||||
content, | |||||
mobile, | |||||
name, | |||||
posX, | |||||
posY, | |||||
status, | |||||
title, | |||||
type, | |||||
showFlag | |||||
} = this.form; | |||||
const params = { | |||||
address, | |||||
content, | |||||
mobile, | |||||
name, | |||||
posX, | |||||
posY, | |||||
status, | |||||
title, | |||||
type, | |||||
showFlag, | |||||
userId: this.userInfoData.userId, | |||||
status: 1, | |||||
images: [], | |||||
orgId: this.currentValue | |||||
}; | |||||
params.images = this.fileList.map((item) => { | |||||
return item.url; | |||||
}); | |||||
params.type = this.columns[Number(params.type)].value; | |||||
if (type === '' || title === '' || content === '' || !params.orgId) { | |||||
let toastTitle = ''; | |||||
if (type === '') { | |||||
toastTitle = '请选择信息类型'; | |||||
} else if (title === '') { | |||||
toastTitle = '请输入标题'; | |||||
} else if (content === '') { | |||||
toastTitle = '请输入描述'; | |||||
} else if (!params.orgId) { | |||||
toastTitle = '请选择所在村/社区'; | |||||
} else { | |||||
toastTitle = '带*属于必填项'; | |||||
} | |||||
uni.showToast({ | |||||
title: toastTitle, | |||||
icon: 'none' | |||||
}); | |||||
return false; | |||||
} | |||||
const res = await peopleApi.seekHelpCreateApi(params); | |||||
if (res.code !== 0) { | |||||
uni.showToast({ | |||||
title: res.msg, | |||||
icon: 'none' | |||||
}); | |||||
return; | |||||
} | |||||
uni.showToast({ | |||||
title: '发布成功', | |||||
icon: 'none' | |||||
}); | |||||
wx.redirectTo({ | |||||
url: '/packages/people/pages/masses/masses', | |||||
}); | |||||
// 返回上一页 | |||||
uni.navigateBack(); | |||||
}, | |||||
checked: false, | |||||
headleInput(event) { | |||||
const { | |||||
value | |||||
} = event.detail; | |||||
const { | |||||
name | |||||
} = event.currentTarget.dataset; | |||||
this.form[name] = value; | |||||
this.form = this.form | |||||
this[name] = this[name] | |||||
columns: [{ | |||||
id: 1, | |||||
type: '求助' | |||||
}, | }, | ||||
{ | |||||
id: 2, | |||||
type: '帮助' | |||||
} | |||||
], | |||||
// 清楚对应的image图片 | |||||
imageDelete(event) { | |||||
const { | |||||
index | |||||
} = event.detail; | |||||
const Image = this.fileList; | |||||
Image.splice(index, 1); | |||||
this.fileList = Image | |||||
agreeList: [{ | |||||
label: '否', | |||||
value: 0 | |||||
}, | }, | ||||
{ | |||||
label: '是', | |||||
value: 1 | |||||
} | |||||
], | |||||
bindPickerChange: function(e) { | |||||
this.form.type = Number(e.detail.value); | |||||
this.form = this.form | |||||
}, | |||||
// 级连选择器数据 start | |||||
isVisible: false, | |||||
FiledVisible: true, | |||||
bindPickerShowFlag: function(e) { | |||||
this.form.showFlag = Number(e.detail.value); | |||||
this.form = this.form | |||||
}, | |||||
optionData: [], | |||||
currentTile: '请选择', | |||||
onCheckbox(event) { | |||||
this.checked = event | |||||
}, | |||||
// 选择后的名称 | |||||
currentValue: null, | |||||
onOpenVisible() { | |||||
this.isVisible = true | |||||
// 选择后的id | |||||
// 级联选择默认显示字段 | |||||
// 级连选择器数据 end | |||||
defaultFieldNames: { | |||||
text: 'name', | |||||
value: 'id', | |||||
children: 'children' | |||||
}, | }, | ||||
onCloseVisible() { | |||||
this.isVisible = false | |||||
}, | |||||
isDialog: false, | |||||
name: '', | |||||
label: '' | |||||
}; | |||||
}, | |||||
onLoad() { | |||||
// this.form.address = app.globalData.config.locationInfo.name; | |||||
// this.form.posX = app.globalData.config.locationInfo.latitude; | |||||
// this.form.posY = app.globalData.config.locationInfo.longitude; | |||||
const userInfoData = uni.getStorageSync('userInfoData'); | |||||
console.log(userInfoData) | |||||
this.isDialog = true | |||||
this.form = this.form | |||||
this.userInfoData = userInfoData | |||||
this.deptTreeApi(); | |||||
this.getTypeApi(); | |||||
}, | |||||
methods: { | |||||
// 获取群众点单字典 | |||||
async getTypeApi() { | |||||
const res = await publicApi.getDictDataApi({ | |||||
dictType: 'people_seek_help_type', | |||||
pageNo: 1, | |||||
pageSize: 100 | |||||
}); | |||||
if (res.data) { | |||||
this.columns = res.data.list | |||||
} | |||||
}, | |||||
onChangeVisible(e) { | |||||
this.currentTile = e.selectedOptions[e.tabIndex].name | |||||
this.currentValue =e.value | |||||
/** | |||||
* 接口 | |||||
*/ | |||||
async deptTreeApi() { | |||||
// 获取所在村/社区 | |||||
const res = await publicApi.deptTreeApi(); | |||||
if (res.data && res.data.length) { | |||||
this.optionData = res.data | |||||
} | } | ||||
} | |||||
}; | |||||
</script> | |||||
<style lang="less"> | |||||
page { | |||||
background-color: #fff; | |||||
} | |||||
}, | |||||
.line { | |||||
width: 100%; | |||||
height: 36rpx; | |||||
} | |||||
async afterRead(event) { | |||||
const { | |||||
file | |||||
} = event; | |||||
.red { | |||||
color: red; | |||||
} | |||||
const res = await getApp().globalData.upload({ file }); | |||||
if (res.code !== 0) { | |||||
uni.showToast({ | |||||
title: '上传图片失败', | |||||
icon: 'none' | |||||
}); | |||||
return false; | |||||
} | |||||
// this.fileList.push({url:res.data}) | |||||
this.appealEnclosure.push(res.data); | |||||
}, | |||||
.camera { | |||||
width: 160rpx; | |||||
height: 160rpx; | |||||
} | |||||
async submit() { | |||||
const { | |||||
address, | |||||
content, | |||||
mobile, | |||||
name, | |||||
posX, | |||||
posY, | |||||
status, | |||||
title, | |||||
type, | |||||
showFlag | |||||
} = this.form; | |||||
const params = { | |||||
address, | |||||
content, | |||||
mobile, | |||||
name, | |||||
posX, | |||||
posY, | |||||
status, | |||||
title, | |||||
type, | |||||
showFlag, | |||||
userId: this.userInfoData.userId, | |||||
status: 1, | |||||
images: [], | |||||
orgId: this.currentValue | |||||
}; | |||||
params.images = this.appealEnclosure | |||||
params.type = this.columns[Number(params.type)].value; | |||||
if (type === '' || title === '' || content === '' || !params.orgId) { | |||||
let toastTitle = ''; | |||||
if (type === '') { | |||||
toastTitle = '请选择信息类型'; | |||||
} else if (title === '') { | |||||
toastTitle = '请输入标题'; | |||||
} else if (content === '') { | |||||
toastTitle = '请输入描述'; | |||||
} else if (!params.orgId) { | |||||
toastTitle = '请选择所在村/社区'; | |||||
} else { | |||||
toastTitle = '带*属于必填项'; | |||||
} | |||||
uni.showToast({ | |||||
title: toastTitle, | |||||
icon: 'none' | |||||
}); | |||||
return false; | |||||
} | |||||
const res = await peopleApi.seekHelpCreateApi(params); | |||||
if (res.code !== 0) { | |||||
uni.showToast({ | |||||
title: res.msg, | |||||
icon: 'none' | |||||
}); | |||||
return; | |||||
} | |||||
uni.showToast({ | |||||
title: '发布成功', | |||||
icon: 'none' | |||||
}); | |||||
wx.redirectTo({ | |||||
url: '/packages/people/pages/masses/masses', | |||||
}); | |||||
// 返回上一页 | |||||
uni.navigateBack(); | |||||
}, | |||||
.form-list { | |||||
width: 100%; | |||||
} | |||||
headleInput(event) { | |||||
const { | |||||
value | |||||
} = event.detail; | |||||
const { | |||||
name | |||||
} = event.currentTarget.dataset; | |||||
this.form[name] = value; | |||||
this.form = this.form | |||||
this[name] = this[name] | |||||
}, | |||||
beforeDelete(file, dateil) { | |||||
this.appealEnclosure.splice(dateil.index, 1); | |||||
this.fileList.splice(dateil.index, 1) | |||||
}, | |||||
.form-body { | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
padding: 40rpx 40rpx 38rpx; | |||||
position: relative; | |||||
&::before { | |||||
content: ''; | |||||
position: absolute; | |||||
left: 50%; | |||||
bottom: 0; | |||||
transform: translateX(-50%); | |||||
width: 678rpx; | |||||
height: 1px; | |||||
background-color: #e1e1e1; | |||||
} | |||||
bindPickerChange: function (e) { | |||||
this.form.type = Number(e.detail.value); | |||||
this.form = this.form | |||||
}, | |||||
.label { | |||||
font-size: 28rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
} | |||||
bindPickerShowFlag: function (e) { | |||||
this.form.showFlag = Number(e.detail.value); | |||||
this.form = this.form | |||||
}, | |||||
.label-value { | |||||
font-size: 32rpx; | |||||
font-weight: 500; | |||||
color: #000000; | |||||
line-height: 32rpx; | |||||
.ic-xia { | |||||
margin-left: 27rpx; | |||||
width: 32rpx; | |||||
height: 32rpx; | |||||
} | |||||
} | |||||
onCheckbox(event) { | |||||
this.checked = event | |||||
}, | |||||
.picker { | |||||
margin-top: 24rpx; | |||||
} | |||||
onOpenVisible() { | |||||
this.isVisible = true | |||||
}, | |||||
.picker-text { | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
color: #999999; | |||||
} | |||||
onCloseVisible() { | |||||
this.isVisible = false | |||||
}, | |||||
.picker-line { | |||||
flex: 1; | |||||
onChangeVisible(e) { | |||||
this.currentTile = e.selectedOptions[e.tabIndex].name | |||||
this.currentValue = e.value | |||||
} | } | ||||
} | |||||
}; | |||||
</script> | |||||
<style lang="less"> | |||||
page { | |||||
background-color: #fff; | |||||
} | |||||
.line { | |||||
width: 100%; | |||||
height: 36rpx; | |||||
} | |||||
.red { | |||||
color: red; | |||||
} | |||||
.camera { | |||||
width: 160rpx; | |||||
height: 160rpx; | |||||
} | |||||
.form-list { | |||||
width: 100%; | |||||
} | |||||
.form-body { | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
padding: 40rpx 40rpx 38rpx; | |||||
position: relative; | |||||
&::before { | |||||
content: ''; | |||||
position: absolute; | |||||
left: 50%; | |||||
bottom: 0; | |||||
transform: translateX(-50%); | |||||
width: 678rpx; | |||||
height: 1px; | |||||
background-color: #e1e1e1; | |||||
} | |||||
.textarea-class { | |||||
margin-top: 26rpx; | |||||
width: 100%; | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
} | |||||
.label { | |||||
font-size: 28rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
} | |||||
.form-msg { | |||||
font-size: 26rpx; | |||||
font-weight: 400; | |||||
color: #999999; | |||||
line-height: 26rpx; | |||||
margin-top: 28rpx; | |||||
} | |||||
.label-value { | |||||
font-size: 32rpx; | |||||
font-weight: 500; | |||||
color: #000000; | |||||
line-height: 32rpx; | |||||
.location { | |||||
.ic-xia { | |||||
margin-left: 27rpx; | |||||
width: 32rpx; | width: 32rpx; | ||||
height: 32rpx; | height: 32rpx; | ||||
} | } | ||||
} | |||||
.location-info { | |||||
margin-top: 26rpx; | |||||
input { | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
} | |||||
} | |||||
.picker { | |||||
margin-top: 24rpx; | |||||
} | } | ||||
.form-col { | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-between; | |||||
text-align: right; | |||||
.picker-text { | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
color: #999999; | |||||
} | |||||
.textarea-class { | |||||
margin-top: 0; | |||||
} | |||||
.picker-line { | |||||
flex: 1; | |||||
} | |||||
.card-placeholder { | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
color: #000000; | |||||
} | |||||
.textarea-class { | |||||
margin-top: 26rpx; | |||||
width: 100%; | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
} | } | ||||
.form-location { | |||||
padding: 20rpx 35rpx; | |||||
border-radius: 16rpx; | |||||
.form-msg { | |||||
font-size: 26rpx; | |||||
font-weight: 400; | |||||
color: #999999; | |||||
line-height: 26rpx; | |||||
margin-top: 28rpx; | |||||
} | } | ||||
.form-treaty { | |||||
padding: 83rpx 40rpx 32rpx; | |||||
.location { | |||||
width: 32rpx; | |||||
height: 32rpx; | |||||
} | |||||
.ic-check { | |||||
width: 32rpx; | |||||
height: 32rpx; | |||||
} | |||||
.location-info { | |||||
margin-top: 26rpx; | |||||
.checbox-text { | |||||
font-size: 28rpx; | |||||
input { | |||||
font-size: 32rpx; | |||||
font-weight: 400; | font-weight: 400; | ||||
color: #000000; | |||||
line-height: 28rpx; | |||||
.jump-to { | |||||
color: var(--item-dominant-color); | |||||
} | |||||
} | } | ||||
} | } | ||||
} | |||||
.form-col { | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-between; | |||||
text-align: right; | |||||
.form-button { | |||||
padding: 25rpx 36rpx; | |||||
.textarea-class { | |||||
margin-top: 0; | |||||
} | } | ||||
.form-button-body { | |||||
height: 80rpx; | |||||
.card-placeholder { | |||||
font-size: 32rpx; | font-size: 32rpx; | ||||
font-weight: 400; | font-weight: 400; | ||||
color: #ffffff; | |||||
line-height: 80rpx; | |||||
text-align: center; | |||||
background: #c1c1c1; | |||||
border-radius: 8rpx; | |||||
color: #000000; | |||||
} | } | ||||
} | |||||
.form-button-body-select { | |||||
background: var(--item-dominant-color); | |||||
} | |||||
.form-location { | |||||
padding: 20rpx 35rpx; | |||||
border-radius: 16rpx; | |||||
} | |||||
.form-image { | |||||
margin: 20rpx 0rpx 20rpx 0; | |||||
display: flex; | |||||
align-items: center; | |||||
flex-wrap: wrap; | |||||
} | |||||
.form-treaty { | |||||
padding: 83rpx 40rpx 32rpx; | |||||
.form-image>view { | |||||
width: 31.3%; | |||||
position: relative; | |||||
margin-right: 13.5rpx; | |||||
.ic-check { | |||||
width: 32rpx; | |||||
height: 32rpx; | |||||
} | } | ||||
.form-image>view>image:nth-child(1) { | |||||
width: 100%; | |||||
height: 200rpx; | |||||
border-radius: 10rpx; | |||||
} | |||||
.checbox-text { | |||||
font-size: 28rpx; | |||||
font-weight: 400; | |||||
color: #000000; | |||||
line-height: 28rpx; | |||||
.form-image>view>image:nth-child(2) { | |||||
position: absolute; | |||||
top: -0rpx; | |||||
right: 0rpx; | |||||
width: 40rpx; | |||||
height: 40rpx; | |||||
.jump-to { | |||||
color: var(--item-dominant-color); | |||||
} | |||||
} | } | ||||
} | |||||
.form-button { | |||||
padding: 25rpx 36rpx; | |||||
} | |||||
.form-button-body { | |||||
height: 80rpx; | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
color: #ffffff; | |||||
line-height: 80rpx; | |||||
text-align: center; | |||||
background: #c1c1c1; | |||||
border-radius: 8rpx; | |||||
} | |||||
.form-button-body-select { | |||||
background: var(--item-dominant-color); | |||||
} | |||||
.form-image { | |||||
margin: 20rpx 0rpx 20rpx 0; | |||||
display: flex; | |||||
align-items: center; | |||||
flex-wrap: wrap; | |||||
} | |||||
.form-image>view { | |||||
width: 31.3%; | |||||
position: relative; | |||||
margin-right: 13.5rpx; | |||||
} | |||||
.form-image>view>image:nth-child(1) { | |||||
width: 100%; | |||||
height: 200rpx; | |||||
border-radius: 10rpx; | |||||
} | |||||
.form-image>view>image:nth-child(2) { | |||||
position: absolute; | |||||
top: -0rpx; | |||||
right: 0rpx; | |||||
width: 40rpx; | |||||
height: 40rpx; | |||||
} | |||||
</style> | </style> |
@@ -1,5 +1,5 @@ | |||||
<template> | <template> | ||||
<view style="height: 100%"> | |||||
<view> | |||||
<custom-nav-bar position="fixed" color="black" left-text="申请党员帮办" left-arrow /> | <custom-nav-bar position="fixed" color="black" left-text="申请党员帮办" left-arrow /> | ||||
<!-- 接单显示 --> | <!-- 接单显示 --> | ||||
@@ -15,8 +15,10 @@ | |||||
<view class="thenMesses-bg bg-violet"> | <view class="thenMesses-bg bg-violet"> | ||||
<view class="mb-2 thenMesses-title hide">{{ messsDetail.title }}</view> | <view class="mb-2 thenMesses-title hide">{{ messsDetail.title }}</view> | ||||
<view class="absolute1 mb-2"> | <view class="absolute1 mb-2"> | ||||
<text v-if="messsDetail.type + '' === t.value" v-for="(t, index) in seekHelptype" | |||||
:key="index">{{ t.label }}</text> | |||||
<block v-for="(t, index) in seekHelptype" | |||||
:key="index"> | |||||
<text v-if="messsDetail.type + '' === t.value" >{{ t.label }}</text> | |||||
</block> | |||||
</view> | </view> | ||||
<view class="flex flex-v-center flex-between thenMesses-image"> | <view class="flex flex-v-center flex-between thenMesses-image"> | ||||
@@ -71,7 +73,7 @@ | |||||
<van-icon name="location" color="#999999" /> | <van-icon name="location" color="#999999" /> | ||||
{{ messsDetail.address }} | {{ messsDetail.address }} | ||||
<view class="createTime" v-if="messsDetail.createTime"> | <view class="createTime" v-if="messsDetail.createTime"> | ||||
<text>{{ toods.getDateTime(messsDetail.createTime) }}</text> | |||||
<text>{{ getDateTime(messsDetail.createTime) }}</text> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<text class="slot"></text> | <text class="slot"></text> | ||||
@@ -107,6 +109,7 @@ | |||||
// const { peopleApi, publicApi } = app.globalData.api; | // const { peopleApi, publicApi } = app.globalData.api; | ||||
import * as peopleApi from '@/api/peopleApi'; | import * as peopleApi from '@/api/peopleApi'; | ||||
import * as publicApi from '@/api/publicApi'; | import * as publicApi from '@/api/publicApi'; | ||||
import utils from '@/utils/util.map' | |||||
export default { | export default { | ||||
components: {}, | components: {}, | ||||
data() { | data() { | ||||
@@ -140,11 +143,12 @@ | |||||
onLoad(val) { | onLoad(val) { | ||||
this.seekHelpGetApi(val.id); | this.seekHelpGetApi(val.id); | ||||
this.getTypeApi(); | this.getTypeApi(); | ||||
this.setData({ | |||||
pageId: val.id | |||||
}); | |||||
this.pageId = val.id | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getDateTime(time){ | |||||
return utils.getDateTime(time) | |||||
}, | |||||
async seekHelpGetApi(id) { | async seekHelpGetApi(id) { | ||||
let params = { | let params = { | ||||
id | id | ||||
@@ -152,9 +156,7 @@ | |||||
const res = await peopleApi.seekHelpGetApi(params); | const res = await peopleApi.seekHelpGetApi(params); | ||||
if (res.data) { | if (res.data) { | ||||
// res.data.createTime = app.globalData.util.timeFormat(res.data.createTime); | // res.data.createTime = app.globalData.util.timeFormat(res.data.createTime); | ||||
this.setData({ | |||||
messsDetail: res.data | |||||
}); | |||||
this.messsDetail = res.data | |||||
} | } | ||||
}, | }, | ||||
@@ -164,9 +166,7 @@ | |||||
dictType: 'people_seek_help_type' | dictType: 'people_seek_help_type' | ||||
}); | }); | ||||
if (res.data) { | if (res.data) { | ||||
this.setData({ | |||||
seekHelptype: res.data.list | |||||
}); | |||||
this.seekHelptype = res.data.list | |||||
} | } | ||||
}, | }, | ||||
@@ -71,8 +71,8 @@ | |||||
<textarea class="textarea-class" @input="inputeidt" maxlength="200" data-name="descInfo" | <textarea class="textarea-class" @input="inputeidt" maxlength="200" data-name="descInfo" | ||||
placeholder="请输入,不超过200字" :value="form.descInfo"></textarea> | placeholder="请输入,不超过200字" :value="form.descInfo"></textarea> | ||||
<view class="form-image"> | <view class="form-image"> | ||||
<van-uploader @after-read="afterRead" :file-list="fileList" :deletable="true" max-count="9" | |||||
@delete="closeImage"> | |||||
<van-uploader :after-read="afterRead" :before-delete="beforeDelete" v-model="fileList" :deletable="true" | |||||
max-count="9"> | |||||
<image class="camera" src="/static/images/icon9.png"></image> | <image class="camera" src="/static/images/icon9.png"></image> | ||||
</van-uploader> | </van-uploader> | ||||
</view> | </view> | ||||
@@ -99,8 +99,8 @@ | |||||
</van-checkbox> | </van-checkbox> | ||||
</view> | </view> | ||||
<view class="form-button"> | <view class="form-button"> | ||||
<van-button v-if="checked" disabled block color="#C1C1C1">发布信息</van-button> | |||||
<van-button @click="submit" v-if="!checked" block color="#FE3B53">发布信息</van-button> | |||||
<van-button v-if="!checked" disabled block color="#C1C1C1">发布信息</van-button> | |||||
<van-button @click="submit" v-if="checked" block color="#FE3B53">发布信息</van-button> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -147,7 +147,7 @@ | |||||
option: {}, | option: {}, | ||||
fileList: [], | fileList: [], | ||||
ImageList: [], | |||||
appealEnclosure: [], | |||||
caseType: '', | caseType: '', | ||||
// mediatorId: '', | // mediatorId: '', | ||||
@@ -221,12 +221,9 @@ | |||||
} | } | ||||
}, | }, | ||||
// 清除对应的图片 | |||||
closeImage(e) { | |||||
let index = e.currentTarget.dataset.index; | |||||
var arr = this.fileList; | |||||
arr.splice(index, 1); | |||||
this.fileList = arr | |||||
beforeDelete(file, dateil) { | |||||
this.appealEnclosure.splice(dateil.index, 1); | |||||
this.fileList.splice(dateil.index, 1) | |||||
}, | }, | ||||
// 输入框输入事件 | // 输入框输入事件 | ||||
@@ -235,8 +232,7 @@ | |||||
target: dataset, | target: dataset, | ||||
detail | detail | ||||
} = e; | } = e; | ||||
let attributeName = `form.${dataset.dataset.name}`; | |||||
this[attributeName] = detail.value | |||||
this.form[`${dataset.dataset.name}`] = detail.value | |||||
console.log(this.form); | console.log(this.form); | ||||
}, | }, | ||||
@@ -278,32 +274,21 @@ | |||||
this.checked = event | this.checked = event | ||||
}, | }, | ||||
// 上传图片 | |||||
async afterRead(event) { | async afterRead(event) { | ||||
const { | |||||
file | |||||
} = event.detail; | |||||
// const res = await app.globalData.upload({ | |||||
// file | |||||
// }); | |||||
if (res.code !== 0) { | |||||
uni.showToast({ | |||||
title: '上传图片失败', | |||||
icon: 'none' | |||||
}); | |||||
return false; | |||||
} | |||||
const fileList = this.fileList; | |||||
const ImageList = this.ImageList; | |||||
const url = res.data; | |||||
fileList.push({ | |||||
url | |||||
}); | |||||
ImageList.push(url); | |||||
this.fileList = fileList | |||||
this.fileList = ImageList | |||||
}, | |||||
const { | |||||
file | |||||
} = event; | |||||
const res = await getApp().globalData.upload({ file }); | |||||
if (res.code !== 0) { | |||||
uni.showToast({ | |||||
title: '上传图片失败', | |||||
icon: 'none' | |||||
}); | |||||
return false; | |||||
} | |||||
this.appealEnclosure.push(res.data); | |||||
}, | |||||
// 字典类型 | // 字典类型 | ||||
async getTypeList() { | async getTypeList() { | ||||
const res = await publicApi.getDictDataApi({ | const res = await publicApi.getDictDataApi({ | ||||
@@ -340,7 +325,7 @@ | |||||
caseType, | caseType, | ||||
title, | title, | ||||
descInfo, | descInfo, | ||||
pics: this.ImageList, | |||||
pics: this.appealEnclosure, | |||||
address: address, | address: address, | ||||
status: '1', | status: '1', | ||||
userId: this.form.userId, | userId: this.form.userId, | ||||
@@ -231,14 +231,11 @@ | |||||
if (this.searchValue) { | if (this.searchValue) { | ||||
param.name = this.searchValue; | param.name = this.searchValue; | ||||
} | } | ||||
const { | |||||
data: { | |||||
list = [] | |||||
} | |||||
} = await peopleApi.hospitalPageApi(param); | |||||
const res = await peopleApi.hospitalPageApi(param); | |||||
let list = res.data.list | |||||
if (list.length) { | if (list.length) { | ||||
list.forEach((e) => { | list.forEach((e) => { | ||||
e.createTime = util.timeFormat(e.createTime, 'yyyy-mm-ss'); | |||||
e.createTime = util.timeFormat(e.createTime, 'yyyy-mm-ss') || 0; | |||||
}); | }); | ||||
this.newsPageList = list | this.newsPageList = list | ||||
} | } | ||||
@@ -203,9 +203,9 @@ | |||||
const { | const { | ||||
file | file | ||||
} = event.detail; | } = event.detail; | ||||
// const res = await app.globalData.upload({ | |||||
// file | |||||
// }); | |||||
const res = await getApp().globalData.upload({ | |||||
file | |||||
}); | |||||
if (res.code !== 0) { | if (res.code !== 0) { | ||||
uni.showToast({ | uni.showToast({ | ||||
title: '上传图片失败', | title: '上传图片失败', | ||||
@@ -1,7 +1,7 @@ | |||||
<template> | <template> | ||||
<view> | <view> | ||||
<custom-nav-bar position="fixed" color="black" :left-text="optins.name" left-arrow /> | <custom-nav-bar position="fixed" color="black" :left-text="optins.name" left-arrow /> | ||||
<web-view v-if="optins.name === '手机充值' || optins.name === '生活缴费'" :src="url"></web-view> | |||||
<web-view v-if="optins.name === '手机充值' || optins.name === '生活缴费' || optins.name === '随手拍'" :src="url"></web-view> | |||||
<image v-else class="img" mode="aspectFit" src="/static/packages/public/pages/web-view/img.jpg" | <image v-else class="img" mode="aspectFit" src="/static/packages/public/pages/web-view/img.jpg" | ||||
:show-menu-by-longpress="true" /> | :show-menu-by-longpress="true" /> | ||||
@@ -38,6 +38,7 @@ | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
console.log(url) | |||||
this.url = url | this.url = url | ||||
}, | }, | ||||
methods: {} | methods: {} | ||||
@@ -317,7 +317,8 @@ | |||||
const res = await myApi.getProfileUserInfoApi(); | const res = await myApi.getProfileUserInfoApi(); | ||||
if (res.data) { | if (res.data) { | ||||
this.userInfo = res.data | this.userInfo = res.data | ||||
uni.setStorageSync("userInfoData", res.data); | |||||
this.userInfo.userId = res.data.id | |||||
uni.setStorageSync("userInfoData", this.userInfo); | |||||
} | } | ||||
}, | }, | ||||
async recursionApi() { | async recursionApi() { | ||||
@@ -13,10 +13,10 @@ export default async function (params) { | |||||
return await uni.uploadFile({ | return await uni.uploadFile({ | ||||
url, | url, | ||||
filePath: file.url, | |||||
file, | |||||
name: 'file', | name: 'file', | ||||
header: { | header: { | ||||
"content-type": "multipart/form-data", | |||||
// "Content-Type": "multipart/form-data", | |||||
'X-Access-Token': token, | 'X-Access-Token': token, | ||||
'Authorization': `Bearer ${token}` | 'Authorization': `Bearer ${token}` | ||||
}, | }, | ||||
@@ -132,38 +132,14 @@ function handleChildren(tree) { | |||||
* @returns {string} 时间格式,可选。默认yyyy-mm-dd hh:MM:ss,年为"yyyy",月为"mm",日为"dd",时为"hh",分为"MM",秒为"ss",格式可以自由搭配,如: yyyy:mm:dd yyyy-mm-dd yyyy年mm月dd日,yyyy年mm月dd日 hh时MM分ss秒,yyyy/mm/dd/,MM:ss等组合 | * @returns {string} 时间格式,可选。默认yyyy-mm-dd hh:MM:ss,年为"yyyy",月为"mm",日为"dd",时为"hh",分为"MM",秒为"ss",格式可以自由搭配,如: yyyy:mm:dd yyyy-mm-dd yyyy年mm月dd日,yyyy年mm月dd日 hh时MM分ss秒,yyyy/mm/dd/,MM:ss等组合 | ||||
*/ | */ | ||||
function timeFormat(dateTime = null, fmt = 'yyyy-mm-dd hh:MM:ss') { | function timeFormat(dateTime = null, fmt = 'yyyy-mm-dd hh:MM:ss') { | ||||
// 如果为null,则格式化当前时间 | |||||
if (!dateTime) { | |||||
dateTime = Number(new Date()); | |||||
} | |||||
// 如果dateTime长度为10或者13,则为秒和毫秒的时间戳,如果超过13位,则为其他的时间格式 | |||||
if (dateTime.toString().length == 10) { | |||||
dateTime *= 1000; | |||||
} | |||||
const date = new Date(dateTime); | |||||
let ret; | |||||
const opt = { | |||||
'y+': date.getFullYear().toString(), | |||||
// 年 | |||||
'm+': (date.getMonth() + 1).toString(), | |||||
// 月 | |||||
'd+': date.getDate().toString(), | |||||
// 日 | |||||
'h+': date.getHours().toString(), | |||||
// 时 | |||||
'M+': date.getMinutes().toString(), | |||||
// 分 | |||||
's+': date.getSeconds().toString() // 秒 | |||||
// 有其他格式化字符需求可以继续添加,必须转化成字符串 | |||||
}; | |||||
for (const k in opt) { | |||||
ret = new RegExp(`(${k})`).exec(fmt); | |||||
if (ret) { | |||||
fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')); | |||||
} | |||||
} | |||||
return fmt; | |||||
const time = new Date(dateTime); | |||||
const Y = time.getFullYear(); | |||||
const M = time.getMonth() + 1 < 10 ? "0" + (time.getMonth() + 1) : time.getMonth() + 1; | |||||
const D = time.getDate() < 10 ? "0" + time.getDate() : time.getDate(); | |||||
const h = time.getHours() < 10 ? "0" + time.getHours() : time.getHours(); | |||||
const m = time.getMinutes() < 10 ? "0" + time.getMinutes() : time.getMinutes(); | |||||
const s = time.getSeconds() < 10 ? "0" + time.getSeconds() : time.getSeconds(); | |||||
return Y + "-" + M + "-" + D + " " + h + ":" + m; | |||||
} | } | ||||
/** | /** | ||||