H5-录入诉求时快捷上报和办结、办结和上报成功后返回到首页通过判断跳转到list
10个文件已修改
247 ■■■■ 已修改文件
H5/pages/Appeal/Appeal.vue 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/index/index.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/list/list.vue 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/problemReporting/problemReporting.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/problemReporting/service.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/result-entry/index.vue 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/result-entry/service.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/service.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/work-detail.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/store/index.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/Appeal/Appeal.vue
@@ -102,8 +102,16 @@
                </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>
@@ -141,6 +149,7 @@
                longitude: '',
                images: [],
                videos: [],
                userInfo: uni.getStorageSync('userInfo'), //个人信息
            };
        },
        onReady() {
@@ -188,7 +197,7 @@
                    })]
                }))
            },
            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({
@@ -247,8 +256,23 @@
                    images: this.images.join(','),
                    videos: this.videos.join(','),
                }
                // 问题上报
                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: '保存成功',
@@ -259,6 +283,7 @@
                        }, 1500)
                    }
                })
                }
            },
            confirmone(e) {
@@ -398,23 +423,6 @@
        }
    }
    .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;
    }
@@ -434,4 +442,38 @@
        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>
H5/pages/index/index.vue
@@ -233,6 +233,19 @@
                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
@@ -252,6 +265,13 @@
            }
        },
        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()
H5/pages/list/list.vue
H5/pages/problemReporting/problemReporting.vue
@@ -2,7 +2,7 @@
    <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>
@@ -45,14 +45,14 @@
        </view>
        <view class="btn" @tap="problemReports">{{accountLevel < 4 ? '提交至上级工作专班':'提交至上级部门'}}</view>
    </view>
</template>
<script>
    import {
        problemReport,
        getDetail
        getDetail,
        saveAndReport
    } from './service'
    export default {
        data() {
@@ -61,6 +61,7 @@
                id: '',
                detail: {},
                accountLevel: 1, //1、市级 2、区县 3、街道 4、社区
                appealData: {}, //述求录入数据
            };
        },
        onShow() {
@@ -68,6 +69,10 @@
        },
        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({
@@ -81,6 +86,31 @@
        },
        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
H5/pages/problemReporting/service.js
@@ -6,3 +6,8 @@
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)
}
H5/pages/result-entry/index.vue
@@ -4,7 +4,7 @@
            :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>
@@ -179,7 +179,8 @@
<script>
    import {
        saveResult,
        getComplaintDetail
        getComplaintDetail,
        saveAndComplete
    } from './service'
    import dayjs from '../../uni_modules/uview-ui/libs/util/dayjs'
    import config from '@/config/index.js'
@@ -201,15 +202,22 @@
                status: '', //处理状态
                againCklicFlag: true,
                rulsFlag: false,
                appealData: {}, //述求录入数据
            }
        },
        onLoad(params) {
            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) {
@@ -218,6 +226,10 @@
            }
        },
        methods: {
            comfirm() {
                this.appealData = {}
                uni.navigateBack()
            },
            submit() {
                if (!this.status) {
                    this.rulsFlag = true
@@ -235,14 +247,41 @@
                        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({
H5/pages/result-entry/service.js
@@ -10,3 +10,8 @@
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)
}
H5/pages/work-detail/service.js
@@ -27,3 +27,8 @@
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)
}
H5/pages/work-detail/work-detail.vue
@@ -322,6 +322,10 @@
            <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">
@@ -346,6 +350,12 @@
                </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>
@@ -355,7 +365,8 @@
        workOrderDetail,
        getUserInfo,
        reportAudit,
        delayAudit
        delayAudit,
        revoke
    } from './service.js'
    export default {
        data() {
@@ -407,6 +418,24 @@
            // })
        },
        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) {
@@ -599,6 +628,10 @@
</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;
H5/store/index.js
@@ -3,8 +3,14 @@
Vue.use(Vuex)
const store = new Vuex.Store({
    state: {},
    mutations: {},
    state: {
        isList: false,
    },
    mutations: {
        SET_ISLIST(state, data) {
            state.isList = data
        }
    },
    actions: {}
})