| @@ -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; | |||||
| } | } | ||||
| /** | /** | ||||