H5-录入诉求时快捷上报和办结、办结和上报成功后返回到首页通过判断跳转到list
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="btn" @click="submit"> |
| | | 保存 |
| | | <view class="footer"> |
| | | <view class="cancel" @click="submit(1)"> |
| | | 问题上报 |
| | | </view> |
| | | <view class="cancel" @click="submit(2)"> |
| | | 办理结果录入 |
| | | </view> |
| | | <view class="ok" @click="submit(3)"> |
| | | 保存 |
| | | </view> |
| | | </view> |
| | | <u-datetime-picker :show="showDate" v-model="value1" mode="date" :closeOnClickOverlay="true" |
| | | @confirm="confirmone" @close="close" @cancel="cancel"></u-datetime-picker> |
| | |
| | | longitude: '', |
| | | images: [], |
| | | videos: [], |
| | | userInfo: uni.getStorageSync('userInfo'), //个人信息 |
| | | }; |
| | | }, |
| | | onReady() { |
| | |
| | | longPressActions: { |
| | | itemList: ['发送给朋友', '保存图片', '收藏'], |
| | | success: function(data) { |
| | | |
| | | |
| | | }, |
| | | fail: function(err) { |
| | | |
| | | |
| | | } |
| | | } |
| | | }); |
| | |
| | | })] |
| | | })) |
| | | }, |
| | | submit() { |
| | | submit(type) { |
| | | const preciseRegex = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/; |
| | | if (!this.time) { |
| | | uni.showToast({ |
| | |
| | | images: this.images.join(','), |
| | | videos: this.videos.join(','), |
| | | } |
| | | save(data).then(resp => { |
| | | |
| | | if (resp.code == 200) { |
| | | uni.showToast({ |
| | | title: '保存成功', |
| | | icon: 'none' |
| | | }) |
| | | setTimeout(() => { |
| | | uni.navigateBack() |
| | | }, 1500) |
| | | } |
| | | }) |
| | | // 问题上报 |
| | | if (type == 1) { |
| | | uni.navigateTo({ |
| | | url: `/pages/problemReporting/problemReporting?data=${JSON.stringify(data)}` |
| | | }) |
| | | return |
| | | } |
| | | // 办理结果录入 |
| | | if (type == 2) { |
| | | uni.navigateTo({ |
| | | url: `/pages/result-entry/index?data=${JSON.stringify(data)}` |
| | | }) |
| | | return |
| | | } |
| | | // 添加 |
| | | if (type == 3) { |
| | | save(data).then(resp => { |
| | | if (resp.code == 200) { |
| | | uni.showToast({ |
| | | title: '保存成功', |
| | | icon: 'none' |
| | | }) |
| | | setTimeout(() => { |
| | | uni.navigateBack() |
| | | }, 1500) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | confirmone(e) { |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | .btn { |
| | | width: 688rpx; |
| | | height: 96rpx; |
| | | background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%); |
| | | border-radius: 48rpx; |
| | | font-weight: 600; |
| | | font-size: 35rpx; |
| | | color: #FFFFFF; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-top: 38rpx; |
| | | position: fixed; |
| | | bottom: 30rpx; |
| | | ; |
| | | } |
| | | |
| | | /deep/.u-popup__content { |
| | | border-radius: 16rpx 16rpx 0rpx 0rpx; |
| | | } |
| | |
| | | font-size: 30rpx; |
| | | color: #FF4948 !important; |
| | | } |
| | | |
| | | .footer { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | box-shadow: 0rpx -4rpx 27rpx 0rpx rgba(0, 0, 0, 0.08); |
| | | width: calc(100% - 20rpx); |
| | | background-color: #fff; |
| | | display: flex; |
| | | gap: 27rpx; |
| | | padding: 33rpx 10rpx; |
| | | |
| | | .cancel { |
| | | width: 331rpx; |
| | | height: 77rpx; |
| | | border: 2rpx solid rgba(252, 141, 85, 1); |
| | | border-radius: 38rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FF4948; |
| | | } |
| | | |
| | | .ok { |
| | | width: 331rpx; |
| | | height: 77rpx; |
| | | background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%); |
| | | border-radius: 48rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | overlayOpacity: 0.5 |
| | | } |
| | | }, |
| | | // watch: { |
| | | // '$store.state.isList': { |
| | | // handler(newVal, oldVal) { |
| | | // if (newVal) { |
| | | // uni.navigateTo({ |
| | | // url: '/pages/list/list' |
| | | // }) |
| | | // this.$store.commit('SET_ISLIST', false) |
| | | // } |
| | | // }, |
| | | // deep: true |
| | | // } |
| | | // }, |
| | | onPullDownRefresh() { |
| | | if (!this.isLoading) { |
| | | this.pageNum = this.pageNum + 1 |
| | |
| | | } |
| | | }, |
| | | onShow() { |
| | | if (this.$store.state.isList) { |
| | | uni.navigateTo({ |
| | | url: '/pages/list/list' |
| | | }) |
| | | this.$store.commit('SET_ISLIST', false) |
| | | return |
| | | } |
| | | this.getBanner() |
| | | this.getMessagelist() |
| | | this.getappletcinfo() |
| | |
| | | .content {
|
| | | height: 100%;
|
| | | background-color: #f7f7f7;
|
| | | } |
| | | }
|
| | |
|
| | | .tip {
|
| | | height: 40rpx;
|
| | |
| | | <view class="problem-report-page"> |
| | | <view class="info-cards"> |
| | | <view class="info-top"> |
| | | <view class="num">诉求号:{{detail.serialNumber}}</view> |
| | | <view class="num">诉求号:{{detail.serialNumber || '-'}}</view> |
| | | <view class="status">{{['正在办理','延期办理','超时办理','已办结','群众撤销','上报待审核','上级驳回'][detail.status]}}</view> |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | |
| | | <view class="btn" @tap="problemReports">{{accountLevel < 4 ? '提交至上级工作专班':'提交至上级部门'}}</view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | problemReport, |
| | | getDetail |
| | | getDetail, |
| | | saveAndReport |
| | | } from './service' |
| | | export default { |
| | | data() { |
| | |
| | | id: '', |
| | | detail: {}, |
| | | accountLevel: 1, //1、市级 2、区县 3、街道 4、社区 |
| | | appealData: {}, //述求录入数据 |
| | | }; |
| | | }, |
| | | onShow() { |
| | |
| | | }, |
| | | onLoad(option) { |
| | | // option.id = 1 |
| | | if (option.data) { |
| | | this.appealData = JSON.parse(option.data) |
| | | this.detail = JSON.parse(option.data) |
| | | } |
| | | if (option.id) { |
| | | this.id = option.id |
| | | getDetail({ |
| | |
| | | }, |
| | | methods: { |
| | | problemReports() { |
| | | // 述求录入并上报 |
| | | if (Object.keys(this.appealData).length != 0) { |
| | | saveAndReport({ |
| | | comment: this.content, |
| | | ...this.appealData |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: '上报成功' |
| | | }) |
| | | |
| | | setTimeout(() => { |
| | | uni.navigateBack({ |
| | | delta: 2, |
| | | success: () => { |
| | | this.$store.commit('SET_ISLIST', true) |
| | | } |
| | | }) |
| | | }, 1500) |
| | | } |
| | | }) |
| | | return |
| | | } |
| | | // 上报 |
| | | problemReport({ |
| | | comment: this.content, |
| | | complaintId: this.id |
| | |
| | | } |
| | | export const problemReport = (data) => { |
| | | return request.post(`/api/huacheng-sangeshenbian/applet/complaint/report`, data) |
| | | } |
| | | |
| | | // 诉求录入并上报 |
| | | export const saveAndReport = (data) => { |
| | | return request.post(`/api/huacheng-sangeshenbian/applet/complaint/saveAndReport`, data) |
| | | } |
| | |
| | | :class="unfoldFlag ? 'max-9999' : 'max-300'"> |
| | | <view> |
| | | <view class="flex a-center j-between fs-23 lh-33 font-bold"> |
| | | <view>诉求号:{{ info.serialNumber }}</view> |
| | | <view>诉求号:{{ info.serialNumber || '-' }}</view> |
| | | <view class="color1">{{ ["正在办理", "延期办理", "超时办理", "已办结", "群众撤销", "上报待审核", "上级驳回"][info.status] }} |
| | | </view> |
| | | </view> |
| | |
| | | <script> |
| | | import { |
| | | saveResult, |
| | | getComplaintDetail |
| | | getComplaintDetail, |
| | | saveAndComplete |
| | | } from './service' |
| | | import dayjs from '../../uni_modules/uview-ui/libs/util/dayjs' |
| | | import config from '@/config/index.js' |
| | |
| | | status: '', //处理状态 |
| | | againCklicFlag: true, |
| | | rulsFlag: false, |
| | | appealData: {}, //述求录入数据 |
| | | } |
| | | }, |
| | | onLoad(params) { |
| | | this.id = params.id |
| | | getComplaintDetail({ |
| | | id: params.id |
| | | }).then(res => { |
| | | this.info = res.data |
| | | }) |
| | | if (params.data) { |
| | | this.appealData = JSON.parse(params.data) |
| | | this.info = JSON.parse(params.data) |
| | | } |
| | | if (params.id) { |
| | | this.id = params.id |
| | | getComplaintDetail({ |
| | | id: params.id |
| | | }).then(res => { |
| | | this.info = res.data |
| | | }) |
| | | } |
| | | }, |
| | | filters: { |
| | | formatTime(val) { |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | comfirm() { |
| | | this.appealData = {} |
| | | uni.navigateBack() |
| | | }, |
| | | submit() { |
| | | if (!this.status) { |
| | | this.rulsFlag = true |
| | |
| | | mask: true |
| | | }) |
| | | } |
| | | |
| | | saveResult({ |
| | | id: this.id, |
| | | let data = { |
| | | status: this.status == '已办结' ? 3 : 4, |
| | | completionDescription: this.completionDescription, |
| | | completionImages: this.completionImages.join(','), |
| | | completionOtherDescription: this.completionOtherDescription, |
| | | completionVideos: this.completionVideos.join(',') |
| | | } |
| | | |
| | | // 述求录入并办结 |
| | | if (Object.keys(this.appealData).length != 0) { |
| | | saveAndComplete({ |
| | | complaintCompletionDTO: data, |
| | | ...this.appealData |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | uni.showToast({ |
| | | title: '提交成功', |
| | | icon: 'success', |
| | | mask: true |
| | | }) |
| | | setTimeout(() => { |
| | | uni.navigateBack({ |
| | | delta: 2, |
| | | success: () => { |
| | | this.$store.commit('SET_ISLIST', true) |
| | | } |
| | | }) |
| | | }, 1500) |
| | | } |
| | | }) |
| | | return |
| | | } |
| | | saveResult({ |
| | | id: this.id, |
| | | ...data |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | uni.showToast({ |
| | |
| | | } |
| | | |
| | | .bgcolor1 { |
| | | background: linear-gradient( 270deg, rgba(255,241,0,0.5) 0%, rgba(255,249,172,0.25) 48%, rgba(255,255,255,0.2) 100%, #FFFFFF 100%); |
| | | background: linear-gradient(270deg, rgba(255, 241, 0, 0.5) 0%, rgba(255, 249, 172, 0.25) 48%, rgba(255, 255, 255, 0.2) 100%, #FFFFFF 100%); |
| | | } |
| | | |
| | | .bgcolor2 { |
| | |
| | | // 工单详情 |
| | | export const getComplaintDetail = (params) => { |
| | | return request.get('/api/huacheng-sangeshenbian/applet/complaint/detail', params) |
| | | } |
| | | |
| | | // 诉求录入并办结 |
| | | export const saveAndComplete = (data) => { |
| | | return request.post('/api/huacheng-sangeshenbian/applet/complaint/saveAndComplete', data) |
| | | } |
| | |
| | | // 工单详情 |
| | | export const getComplaintDetail = (params) => { |
| | | return request.get('/api/huacheng-sangeshenbian/applet/complaint/detail', params) |
| | | } |
| | | |
| | | // 诉求上报撤回 |
| | | export const revoke = (data) => { |
| | | return request.post(`/api/huacheng-sangeshenbian/applet/complaint/revoke`, data) |
| | | } |
| | |
| | | <view class="btnAdd partyDown" @click="addProgress">添加办理进度</view> |
| | | <view class="btnAdd partyDown" @click="resultEntery">办理结果录入</view> |
| | | </view> |
| | | <!-- 党员并且属于本人工单上报 --> |
| | | <view class="btnButtom" v-if="isParty && orderInfo.status == 5 && !orderInfo.withdrawButtonStatus"> |
| | | <view class="btnAdd w100 txt-center" @click="revocation">撤回</view> |
| | | </view> |
| | | <!-- 党员显示 --> |
| | | <!-- v-if="[3].includes(orderInfo.status)" --> |
| | | <view class="btnButtom" v-if="orderInfo.evaluateButtonStatus == 0"> |
| | |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | |
| | | <CustomPopup ref="customPopup" :isOneBtn="true" @comfirm="comfirm"> |
| | | <view class="txt-center fs-31 lh-42 pt-44 pb-35 color5"> |
| | | 确认撤回当前审批操作吗 |
| | | </view> |
| | | </CustomPopup> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | workOrderDetail, |
| | | getUserInfo, |
| | | reportAudit, |
| | | delayAudit |
| | | delayAudit, |
| | | revoke |
| | | } from './service.js' |
| | | export default { |
| | | data() { |
| | |
| | | // }) |
| | | }, |
| | | methods: { |
| | | // 确认撤回 |
| | | comfirm() { |
| | | revoke({ |
| | | complaintId: this.id |
| | | }).then(res => { |
| | | this.$refs.customPopup.closePopup() |
| | | uni.showToast({ |
| | | title: '撤回成功', |
| | | icon: 'none', |
| | | mask: true, |
| | | }) |
| | | this.getDetailInfo() |
| | | }) |
| | | }, |
| | | // 撤回 |
| | | revocation() { |
| | | this.$refs.customPopup.showPopup() |
| | | }, |
| | | open() {}, |
| | | close() {}, |
| | | viewImage(item) { |
| | |
| | | </style> |
| | | |
| | | <style lang="scss" scoped> |
| | | .color5 { |
| | | color: #666160; |
| | | } |
| | | |
| | | // 处理 u-popup 组件层级过高,将 uni.showToast 覆盖问题 |
| | | /deep/ .u-transition.u-fade-enter-to.u-fade-enter-active { |
| | | z-index: 997 !important; |
| | |
| | | Vue.use(Vuex) |
| | | |
| | | const store = new Vuex.Store({ |
| | | state: {}, |
| | | mutations: {}, |
| | | state: { |
| | | isList: false, |
| | | }, |
| | | mutations: { |
| | | SET_ISLIST(state, data) { |
| | | state.isList = data |
| | | } |
| | | }, |
| | | actions: {} |
| | | }) |
| | | |