董国庆
2025-02-26 3c531759ead7727a4b7ff58b289a77a0342dbbbe
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/H5/threeSide
19个文件已修改
2个文件已添加
432 ■■■■■ 已修改文件
H5/config/index.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/manifest.json 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages.json 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/Appeal/Appeal.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/add-progress/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/index/index.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/location/location.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/location/service.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/progress/progress.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/result-entry/index.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/maxVideo.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/postpone-apply.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/work-detail/work-detail.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/utils/request.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/components/RightContent/AvatarDropdown.tsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/setting/career/components/addAndEdit.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/setting/career/index.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/setting/career/service.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/work-order-setting/index.jsx 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/work-order-setting/service.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/utils/antdUtils.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/config/index.js
@@ -1,5 +1,5 @@
export default {
    // BASE_URL: 'https://huacheng.psciio.com',
    BASE_URL: 'http://192.168.110.188:6194',
    imageUrl: 'https://huacheng.psciio.com/api/huacheng-communitybackstage/communitypartybuilding/uploadimage',
    uploadToken: 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2NzYwOTg3NzQ0OTk0NjMxNjgsInR5cGUiOjMsImV4cCI6MTc0MTY4NjQ0OSwiY3JlYXRlZCI6MTc0MDM5MDQ0OTYxN30.UpanrjmCLuKlxm32IbBldBOSJJNYL8ZDrbZQM9z_HCW8X9cL8Ox8jwgX0j4_2nq3ALjYD7aPQWbVmMb2vHIIdA'
    imageUrl: 'https://huacheng.psciio.com/api/huacheng-applets/common/uploadimages',
}
H5/manifest.json
@@ -1,6 +1,6 @@
{
    "name": "三个身边",
    "appid": "",
    "appid": "__UNI__5950066",
    "description": "",
    "versionName": "1.0.0",
    "versionCode": "100",
@@ -76,6 +76,9 @@
            "treeShaking": {
                "enable": false
            }
        },
        "router": {
            "base": "./"
        }
    }
}
H5/pages.json
@@ -1,51 +1,52 @@
{
    "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
    {
        "path": "pages/index/index",
        "style": {
            "navigationBarTitleText": "首页",
            "navigationStyle": "custom"
        }
    },
    {
        "path": "pages/list/list",
        "style": {
            "navigationBarTitleText": "诉求列表",
            "navigationBarBackgroundColor": "#fff"
        }
    },
    {
        "path": "pages/delay/delay",
        "style": {
            "navigationBarTitleText": "延期情况说明",
            "navigationBarBackgroundColor": "#fff"
        }
    },
    {
        "path": "pages/progress/progress",
        "style": {
            "navigationBarTitleText": "办理进度",
            "navigationBarBackgroundColor": "#fff"
        }
    },
        {
            "path": "pages/index/index",
            "style": {
                "navigationBarTitleText": "首页",
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/list/list",
            "style": {
                "navigationBarTitleText": "诉求列表",
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/delay/delay",
            "style": {
                "navigationBarTitleText": "延期情况说明",
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/progress/progress",
            "style": {
                "navigationBarTitleText": "办理进度",
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/add-progress/index",
            "style": {
                "navigationBarTitleText": "办理进度",
                "navigationStyle": "custom"
            }
        }, {
            "path": "pages/work-detail/work-detail",
            "style": {
                "navigationBarBackgroundColor": "#ffffff",
                "navigationBarTitleText": "诉求详情",
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/work-detail/maxVideo",
            "style": {
                "navigationBarBackgroundColor": "#000000",
                "navigationBarTitleText": "播放视频",
                "navigationStyle": "custom"
            }
        },
@@ -53,26 +54,27 @@
            "path": "pages/problemReporting/problemReporting",
            "style": {
                "navigationBarTitleText": "问题上报",
                "navigationBarBackgroundColor": "#ffffff"
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/dispatchWorkOrder/dispatchWorkOrder",
            "style": {
                "navigationBarTitleText": "工单下派",
                "navigationBarBackgroundColor": "#ffffff"
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/Appeal/Appeal",
            "style": {
                "navigationBarTitleText": "诉求录入",
                "navigationBarBackgroundColor": "#ffffff"
                // "navigationBarTitleText": "诉求录入",
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/location/location",
            "style": {
                "navigationBarTitleText": "选择地点",
                "navigationStyle": "custom"
            }
        },
@@ -80,21 +82,21 @@
            "path": "pages/result-entry/index",
            "style": {
                "navigationBarTitleText": "办结结果录入",
                "navigationBarBackgroundColor": "#ffffff"
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/work-detail/postpone-apply",
            "style": {
                "navigationBarTitleText": "延期申请",
                "navigationBarBackgroundColor": "#ffffff"
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/progress/progress",
            "style": {
                "navigationBarTitleText": "办理进度录入",
                "navigationBarBackgroundColor": "#ffffff"
                "navigationStyle": "custom"
            }
        }
    ],
H5/pages/Appeal/Appeal.vue
@@ -4,16 +4,27 @@
            <view class="card  flex a-center h-108 j-between">
                <text class="w-108 fs-27 font-bold mr-85">发生时间</text>
                <view class=" flex a-center j-between flex1" @click="showDate=true">
                    <input v-model="time" disabled @click="showDate=true" placeholder-style="color: rgba(0,0,0,0.3);font-size:27rpx;"
                        class="uni-input flex1" maxlength="10" placeholder="请选择问题发生的时间" />
                    <image src="/static/Appeal/left.png" class="w-19 h-19" mode=""></image>
                    <view class=" flex a-center j-between flex1">
                        <view class="flex1" v-if="time">
                            {{time}}
                        </view>
                        <view class="flex1" v-else style="color: rgba(0,0,0,0.3);font-size:27rpx;">
                            请选择问题发生的时间
                        </view>
                        <image src="/static/Appeal/left.png" class="w-19 h-19" mode=""></image>
                    </view>
                </view>
            </view>
            <view class="card  flex a-center h-108 j-between">
                <text class="w-108 fs-27 font-bold mr-85">问题类型</text>
                <view class=" flex a-center j-between flex1" @click="showList=true">
                    <input v-model="problemType" disabled placeholder-style="color: rgba(0,0,0,0.3);font-size:27rpx;"
                        class="uni-input flex1" maxlength="10" placeholder="请选择问题类型" />
                    <view class="flex1" v-if="problemType">
                        {{problemType}}
                    </view>
                    <view class="flex1" v-else style="color: rgba(0,0,0,0.3);font-size:27rpx;">
                        请选择问题类型
                    </view>
                    <image src="/static/Appeal/left.png" class="w-19 h-19" mode=""></image>
                </view>
            </view>
@@ -32,8 +43,13 @@
            <view class="card  flex a-center h-108 j-between" @click="goTopagelocation()">
                <text class="w-108 fs-27 font-bold mr-85">地点</text>
                <view class=" flex a-center j-between flex1">
                    <input v-model="location" disabled placeholder-style="color: rgba(0,0,0,0.3);font-size:27rpx;"
                        class="uni-input flex1" placeholder="请选择问题发生具体地点" />
                    <view class="flex1" v-if="location">
                        {{location}}
                    </view>
                    <view class="flex1" v-else style="color: rgba(0,0,0,0.3);font-size:27rpx;">
                        请选择问题发生具体地点
                    </view>
                    <image src="/static/Appeal/left.png" class="w-19 h-19" mode=""></image>
                </view>
            </view>
@@ -102,6 +118,7 @@
        save,
        getproblem
    } from './service.js'
    import config from '@/config/index.js'
    export default {
        data() {
@@ -125,6 +142,11 @@
                images: [],
                videos: [],
            };
        },
        onReady() {
            uni.setNavigationBarTitle({
                title: '诉求录入'
            })
        },
        onLoad() {
            this.getproblem()
@@ -283,11 +305,11 @@
                        console.log(res, 'res');
                        uni.showLoading()
                        uni.uploadFile({
                            url: 'https://huacheng.psciio.com/api/huacheng-communitybackstage/communitypartybuilding/uploadimage',
                            url: config.imageUrl,
                            filePath: res.tempFilePaths[0],
                            name: 'file',
                            header: {
                                'Authorization': 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2NzYwOTg3NzQ0OTk0NjMxNjgsInR5cGUiOjMsImV4cCI6MTc0MTY4NjQ0OSwiY3JlYXRlZCI6MTc0MDM5MDQ0OTYxN30.UpanrjmCLuKlxm32IbBldBOSJJNYL8ZDrbZQM9z_HCW8X9cL8Ox8jwgX0j4_2nq3ALjYD7aPQWbVmMb2vHIIdA'
                                'Authorization': uni.getStorageSync('token')
                            },
                            success: (uploadFileRes) => {
                                console.log(JSON.parse(uploadFileRes.data), 'uploadFileRes');
@@ -313,11 +335,11 @@
                        console.log(res, 'res');
                        uni.showLoading()
                        uni.uploadFile({
                            url: 'https://huacheng.psciio.com/api/huacheng-communitybackstage/communitypartybuilding/uploadimage',
                            url: config.imageUrl,
                            filePath: res.tempFilePath,
                            name: 'file',
                            header: {
                                'Authorization': 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2NzYwOTg3NzQ0OTk0NjMxNjgsInR5cGUiOjMsImV4cCI6MTc0MTY4NjQ0OSwiY3JlYXRlZCI6MTc0MDM5MDQ0OTYxN30.UpanrjmCLuKlxm32IbBldBOSJJNYL8ZDrbZQM9z_HCW8X9cL8Ox8jwgX0j4_2nq3ALjYD7aPQWbVmMb2vHIIdA'
                                'Authorization': uni.getStorageSync('token')
                            },
                            success: (uploadFileRes) => {
                                console.log(JSON.parse(uploadFileRes.data).data, 'uploadFileRes');
H5/pages/add-progress/index.vue
@@ -1,6 +1,5 @@
<template>
    <view class="px-31 pt-38">
        <u-navbar placeholder title="办理进度" @leftClick="back"></u-navbar>
        <view v-if="Object.keys(info).length != 0" class="br-19 bs-1 pt-21 pb-35 px-27 bgcolor2">
            <view class="flex a-center j-between fs-23 lh-33 font-bold">
                <view>诉求号:{{ info.serialNumber }}</view>
@@ -158,7 +157,7 @@
                })
            },
            uploadImg(type) {
                if (!this.againCklicFlag) return
                // if (!this.againCklicFlag) return
                this.againCklicFlag = false
                if (type == 1) {
                    uni.chooseImage({
@@ -174,7 +173,7 @@
                                    timeout: 1000 * 45,
                                    name: 'file',
                                    header: {
                                        Authorization: config.uploadToken
                                        Authorization: uni.getStorageSync('token')
                                    },
                                    success: (res) => {
                                        if (JSON.parse(res.data).code == 200) {
@@ -209,6 +208,9 @@
                                })
                            }
                        },
                        fail: () => {
                            this.againCklicFlag = true
                        }
                    })
                } else {
                    uni.chooseVideo({
@@ -223,7 +225,7 @@
                                timeout: 1000 * 45,
                                name: 'file',
                                header: {
                                    Authorization: config.uploadToken
                                    Authorization: cuni.getStorageSync('token')
                                },
                                success: (res) => {
                                    if (JSON.parse(res.data).code == 200) {
@@ -254,6 +256,9 @@
                                    })
                                }
                            })
                        },
                        fail: () => {
                            this.againCklicFlag = true
                        }
                    })
                }
H5/pages/index/index.vue
@@ -23,7 +23,7 @@
                <text class="color2 fs-27" @click="showData =!showData">查看更多</text>
            </view>
            <view class="flex flex-wrap j-between">
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center" v-if="member==1" @click="onClick()" >
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center" v-if="member==1" @click="onClick()">
                    <image class="w-94 h-77 ml-38" src="/static/home/img7.png" mode=""></image>
                    <text class="ml-37 font-bold">党员证件</text>
                </view>
@@ -39,15 +39,16 @@
                    <image class="w-79 h-77 ml-38" src="/static/home/img1.png" mode=""></image>
                    <text class="ml-37 font-bold">回访评价</text>
                </view>
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center"  v-if="member==2">
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center" v-if="member==2">
                    <image class="w-81 h-77 ml-38" src="/static/home/img8.png" mode=""></image>
                    <text class="ml-37 font-bold">统计分析</text>
                </view>
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center"  v-if="showData&&member==1">
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center" v-if="showData&&member==1">
                    <image class="w-81 h-77 ml-38" src="/static/home/img8.png" mode=""></image>
                    <text class="ml-37 font-bold">统计分析</text>
                </view>
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center"  @click="onClick()" v-if="showData&&member==2">
                <view class="pt-38 pb-38 bg1 w-333 br-19 mt-19 flex a-center" @click="onClick()"
                    v-if="showData&&member==2">
                    <image class="w-94 h-77 ml-38" src="/static/home/img7.png" mode=""></image>
                    <text class="ml-37 font-bold">党员证</text>
                </view>
@@ -72,6 +73,10 @@
                    </view>
                </view>
                <view class="list mt-29">
                    <view v-if="isactive==1?msgList.length == 0:msgLists.length == 0" class="txt-center">
                        <image src="../../static/空空如也@2x.png" mode="widthFix" class="w80"></image>
                        <view class="fs-23 mt-20 mb-20 color4">暂无数据</view>
                    </view>
                    <view class="flex a-center mb-27" v-for="item in isactive==1?msgList:msgLists" :key="item.id">
                        <view class="avater pb-33">
                            <image class="w-85 h-85 br50" src="/static/home/img9.png" mode=""></image>
@@ -93,7 +98,8 @@
                            </view>
                        </view>
                    </view>
                    <text class="flex j-center fs-27 color4 pb-48" @click="Allread">全部已读</text>
                    <text v-if="isactive==1?msgList.length > 0:msgLists.length > 0"
                        class="flex j-center fs-27 color4 pb-48" @click="Allread">全部已读</text>
                </view>
@@ -146,7 +152,10 @@
            }
        },
        onLoad() {
        onLoad(e) {
            if (e.token) {
                uni.setStorageSync('token', 'Bearer ' + e.token)
            }
            this.getBanner()
            this.getMessagelist()
            this.getappletcinfo()
@@ -192,7 +201,8 @@
                        this.isLoading = false
                    }
                    this.msgListTotal = this.msgListTotal.map(item => {
                        const timeDifference = new Date().getTime() - new Date(item.createTime).getTime()
                        const timeDifference = new Date().getTime() - new Date(item.createTime)
                            .getTime()
                        // 使用 dayjs 的 duration 来处理时间差
@@ -214,9 +224,11 @@
                        return item
                    })
                    this.msgList = JSON.parse(JSON.stringify(this.msgListTotal)).filter(item => item.promptType ==
                    this.msgList = JSON.parse(JSON.stringify(this.msgListTotal)).filter(item => item
                        .promptType ==
                        2)
                    this.msgLists = JSON.parse(JSON.stringify(this.msgListTotal)).filter(item => item.promptType ==
                    this.msgLists = JSON.parse(JSON.stringify(this.msgListTotal)).filter(item => item
                        .promptType ==
                        1)
                    this.noreadlists = this.msgLists.filter(item => item.readStatus === 0)
                    this.noreadlist = this.msgList.filter(item => item.readStatus === 0)
@@ -226,11 +238,13 @@
            changeActive(value) {
                this.isactive = value
                if (value == 1) {
                    this.msgList = JSON.parse(JSON.stringify(this.msgListTotal)).filter(item => item.promptType == 2)
                this.noreadlist = this.msgList.filter(item => item.readStatus === 0)
                    this.msgList = JSON.parse(JSON.stringify(this.msgListTotal)).filter(item => item.promptType ==
                        2)
                    this.noreadlist = this.msgList.filter(item => item.readStatus === 0)
                } else {
                    this.msgLists = JSON.parse(JSON.stringify(this.msgListTotal)).filter(item => item.promptType == 1)
                    this.msgLists = JSON.parse(JSON.stringify(this.msgListTotal)).filter(item => item.promptType ==
                        1)
                    this.noreadlists = this.msgLists.filter(item => item.readStatus === 0)
                }
@@ -376,7 +390,7 @@
    }
    .bg-img {
        height: 648rpx;
        height: 550rpx;
    }
    .swiper {
H5/pages/location/location.vue
@@ -1,10 +1,8 @@
<template>
    <view class="content">
        <u-navbar title="选择地点" bgColor="transparent" titleStyle="font-size: 35rpx;font-weight:bold;" placeholder>
            <view slot="left" @click="back">
                <image src="/static/location/back.png" class="w-19 h-35" mode=""></image>
            </view>
        </u-navbar>
        <view slot="left" @click="back">
            <image src="/static/location/back.png" class="w-19 h-35" mode=""></image>
        </view>
        <view class="" id="container">
        </view>
@@ -24,8 +22,9 @@
            </view>
            <view class="card" @click="changeAdr(item.id,item)" :class="item.id ==uid ?'activecard':''"
                v-for="item in locationList" :key="item.id">
                <text>{{item.address}}</text>
                <text class="font-w500 fs-23 mt-25" style="color: rgba(0, 0, 0, 0.6);">{{item.address}}</text>
                <text>{{item.title || item.name}}</text>
                <text class="font-w500 fs-23 mt-25"
                    style="color: rgba(0, 0, 0, 0.6);">{{item.address || item.name}}</text>
            </view>
        </view>
@@ -34,6 +33,9 @@
</template>
<script>
    import {
        searchLocation
    } from './service'
    export default {
        data() {
            return {
@@ -44,29 +46,35 @@
                keyword: '',
                locationList: [],
                city: '攀枝花市',
                markers:[],
                markers: [],
            };
        },
        methods: {
 clearMarkers() {
            // 清除所有标点
            this.markers.forEach((marker) => {
                this.map.removeOverlay(marker);
            });
            this.markers = []; // 清空存储标点的数组
        },
            clearMarkers() {
                // 清除所有标点
                this.markers.forEach((marker) => {
                    this.map.removeOverlay(marker);
                });
                this.markers = []; // 清空存储标点的数组
            },
            back() {
                uni.navigateBack()
            },
            changeAdr(value, addr) {
                console.log(value, addr, 'asdasdada');
                this.uid = value
                const pages = getCurrentPages()
                let prevPage = pages[pages.length - 2];
                prevPage.location = addr.address
                prevPage.latitude = addr.point.lat
                prevPage.longitude = addr.point.lng
                if (addr.point) {
                    prevPage.latitude = addr.point.lat
                    prevPage.longitude = addr.point.lng
                }
                if (addr.location) {
                    prevPage.latitude = addr.location.lat
                    prevPage.longitude = addr.location.lng
                }
                prevPage.location = addr.address || addr.name
                setTimeout(() => {
                    uni.navigateBack()
                }, 200)
@@ -74,6 +82,24 @@
            // 搜索地点
            searchLocation() {
                if (!this.keyword) return;
                searchLocation({
                    query: this.keyword,
                    location: `${this.latitude},${this.longitude }`,
                }).then(res => {
                    if (res.code == 200) {
                        this.searchResults = res.data;
                        if (res.data.length > 0) {
                            this.latitude = res.data[0].location.lat
                            this.longitude = res.data[0].location.lng
                        }
                        this.locationList = res.data.map((result, index) => {
                            result.id = index + 1
                            return result
                        });
                        console.log(this.locationList);
                    }
                })
                return
                uni.request({
                    url: `https://api.map.baidu.com/place/v2/search`,
                    method: 'GET',
@@ -165,7 +191,7 @@
                    item.id = index + 1
                    return item
                })
                console.log(this.locationList);
            })
            this.map.addEventListener('click', (e) => {
                this.clearMarkers()
H5/pages/location/service.js
New file
@@ -0,0 +1,6 @@
import request from '@/utils/request.js'
// 地点搜索
export const searchLocation = (params) => {
    return request.get(`/api/huacheng-sangeshenbian/applet/home/search-location`, params)
}
H5/pages/progress/progress.vue
@@ -6,7 +6,7 @@
                <view class="color1">{{ ["正在办理", "延期办理", "超时办理", "已办结", "群众撤销", "上报待审核", "上级驳回"][info.status] }}</view>
            </view>
            <view class="mx-13 mt-33 pt-35 pb-33 px-27 br-19 flex a-center j-between bgcolor1">
                <view class="fs-27 lh-38 color2">{{ info.detailedAddress }}</view>
                <view class="fs-27 lh-38 color2">{{ info.location }}</view>
                <image src="@/static/detailImg/dwei.png" class="w-31 h-31 shrink0" />
            </view>
            <view class="flex a-center j-between mt-31 mx-13">
@@ -40,7 +40,7 @@
                    <view class="flex1">
                        <view class="flex a-center j-between mb-10">
                            <view class="name">{{ item.createByName }}</view>
                            <view class="time">{{ item.createTime }}</view>
                            <view class="time">{{ item.createTime | formatTime }}</view>
                        </view>
                        <view class="context">{{ item.describe }}</view>
                        <view class="proImg">
@@ -85,6 +85,7 @@
</template>
<script>
    import dayjs from '../../uni_modules/uview-ui/libs/util/dayjs'
    import {
        getComplaintDetail
    } from './service'
@@ -96,6 +97,12 @@
                type: true,
            }
        },
        filters: {
            formatTime(val) {
                if (!val) return ''
                return dayjs(val).format('YYYY-MM-DD HH:mm:ss')
            }
        },
        onLoad(params) {
            this.id = params.id
            if (params.type) {
H5/pages/result-entry/index.vue
@@ -32,12 +32,12 @@
                        <view class="shrink0 color2 font-w400">
                            <view>创建时间</view>
                            <view>问题类型</view>
                            <view>群众</view>
                            <view>群众姓名</view>
                            <view>联系电话</view>
                            <view>详细地址</view>
                        </view>
                        <view class="font-bold txt-aligin-r" style="max-width: 404rpx;">
                            <view>{{ info.createTime }}</view>
                            <view>{{ info.createTime | formatTime }}</view>
                            <view>{{ info.problemType }}</view>
                            <view>{{ info.name }}</view>
                            <view>{{ info.contactNumber }}</view>
@@ -55,8 +55,8 @@
                    </view>
                    <view class="fs-27 mt-35 lh-38 font-bold">描述图片</view>
                    <view class="flex wrap mt-27">
                        <view @tap="viewImage(item)" class="relative mr-15" v-for="item in info.images.split(',')"
                            :key="item">
                        <view @tap="viewImage(item)" class="relative mr-15"
                            v-for="item in info.images && info.images.split(',')" :key="item">
                            <image :src="item" class="w-140 h-140 shrink0 br-8" />
                            <view class="absolute w-140 h-140 bgcolor5 top0 left0 br-8 flex a-center j-center">
                                <image @tap="viewImage(item)" src="@/static/Appeal/amplify.png" class="w-19 h-19" />
@@ -65,8 +65,8 @@
                    </view>
                    <view class="fs-27 mt-37 lh-38 font-bold">描述视频</view>
                    <view class="flex wrap mt-27">
                        <view @tap="openVideo(item)" class="relative mr-15" v-for="item in info.videos.split(',')"
                            :key="item">
                        <view @tap="openVideo(item)" class="relative mr-15"
                            v-for="item in info.videos && info.videos.split(',')" :key="item">
                            <video id="myVideo" class="w-140 h-140 mt-19 shrink0" disabled :controls="false"
                                :show-center-play-btn="false" :src="item" />
                            <view class="videoOpen" @click.stop="openVideo(item)">
@@ -179,6 +179,7 @@
        saveResult,
        getComplaintDetail
    } from './service'
    import dayjs from '../../uni_modules/uview-ui/libs/util/dayjs'
    import config from '@/config/index.js'
    export default {
        data() {
@@ -208,6 +209,12 @@
                this.info = res.data
            })
        },
        filters: {
            formatTime(val) {
                if (!val) return ''
                return dayjs(val).format('YYYY-MM-DD HH:mm:ss')
            }
        },
        methods: {
            submit() {
                if (!this.status) {
@@ -226,20 +233,7 @@
                        mask: true
                    })
                }
                if (this.completionImages.length == 0) {
                    return uni.showToast({
                        title: '请上传办结结果图片',
                        icon: 'none',
                        mask: true
                    })
                }
                if (this.completionVideos.length == 0) {
                    return uni.showToast({
                        title: '请上传办结结果视频',
                        icon: 'none',
                        mask: true
                    })
                }
                saveResult({
                    id: this.id,
                    status: this.status == '已办结' ? 3 : 4,
@@ -291,7 +285,7 @@
                })
            },
            uploadImg(type) {
                if (!this.againCklicFlag) return
                // if (!this.againCklicFlag) return
                this.againCklicFlag = false
                if (type == 1) {
                    uni.chooseImage({
@@ -307,7 +301,7 @@
                                    timeout: 1000 * 45,
                                    name: 'file',
                                    header: {
                                        Authorization: config.uploadToken
                                        Authorization: uni.getStorageSync('token')
                                    },
                                    success: (res) => {
                                        if (JSON.parse(res.data).code == 200) {
@@ -358,7 +352,7 @@
                                timeout: 1000 * 45,
                                name: 'file',
                                header: {
                                    Authorization: config.uploadToken
                                    Authorization: uni.getStorageSync('token')
                                },
                                success: (res) => {
                                    if (JSON.parse(res.data).code == 200) {
H5/pages/work-detail/maxVideo.vue
@@ -1,7 +1,5 @@
<template>
    <view>
        <u-navbar title=" " bgColor="#000000" autoBack leftIconColor="#ffffff">
        </u-navbar>
        <view class="preview-full">
            <video class="videoMax" :autoplay="true" :src="videoUrl" :show-fullscreen-btn="false">
H5/pages/work-detail/postpone-apply.vue
@@ -200,7 +200,7 @@
                                    timeout: 1000 * 45,
                                    name: 'file',
                                    header: {
                                        Authorization: config.uploadToken
                                        Authorization: uni.getStorageSync('token')
                                    },
                                    success: (res) => {
                                        if (JSON.parse(res.data).code == 200) {
@@ -249,7 +249,7 @@
                                timeout: 1000 * 45,
                                name: 'file',
                                header: {
                                    Authorization: config.uploadToken
                                    Authorization: uni.getStorageSync('token')
                                },
                                success: (res) => {
                                    if (JSON.parse(res.data).code == 200) {
H5/pages/work-detail/work-detail.vue
@@ -1,7 +1,5 @@
<template>
    <view class="content">
        <u-navbar title="诉求详情" :bgColor="scoreTopHeight>100?'#ffffff':'transparent'" autoBack>
        </u-navbar>
        <view class="topColor">
        </view>
        <view class="allContent">
@@ -381,7 +379,7 @@
            }
        },
        onShow() {
            // alert(uni.getStorageSync('token'))
            this.getDetailInfo()
        },
        onLoad(params) {
@@ -392,7 +390,6 @@
            getUserInfo().then(res => {
                if (res.data == null) {
                    this.isParty = true
                    console.log('111111')
                }
                this.userInfo = {
                    ...res.data
H5/utils/request.js
@@ -19,16 +19,10 @@
    return new Promise(function(resolve, reject) {
        let token =
            'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE4OTI0ODk0OTc5Nzk5NDA4NjUsInR5cGUiOjEsImV4cCI6MTc0MTc2NDEyMiwiY3JlYXRlZCI6MTc0MDQ2ODEyMjU3MX0.LNEAn1IfHwgB0Xxr7AcDyBe9kKSGhW1R2EKvoIOymc0dAS8lMO7LLHfU9qB12e534cI2Cv8oummkOPI_70EO5w'
        //党员 eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE4OTI0ODk0OTc5Nzk5NDA4NjUsInR5cGUiOjEsImV4cCI6MTc0MTc2NDEyMiwiY3JlYXRlZCI6MTc0MDQ2ODEyMjU3MX0.LNEAn1IfHwgB0Xxr7AcDyBe9kKSGhW1R2EKvoIOymc0dAS8lMO7LLHfU9qB12e534cI2Cv8oummkOPI_70EO5w
        // 社区  eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE1OTAxNzYwNTgxNTY1NDgwOTgsInR5cGUiOjEsImV4cCI6MTc0MTcwNTE1OSwiY3JlYXRlZCI6MTc0MDQwOTE1OTEwMH0.AmeZFq2Pj2y2bRF1AolsRWHA4ehobBdx1-LtQHIJzub8WjEh_TxZ-PTEI7uiujlLWKhJE07PCVCggAdeuF3UIA
        // 市  eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE4OTI0MjE4MjgwODU4Mzc4MjYsInR5cGUiOjEsImV4cCI6MTc0MTY5ODg0OCwiY3JlYXRlZCI6MTc0MDQwMjg0ODMzN30.7IYRD37yTkhqcnKyXWcqKk_iTisMp3ar_ByfuVR7Go9rK8ZnGJrlwC3z4NF_ly7IIoBHgE2E4IAvfm3ccam8wg
        //街道  eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjY2OTc5LCJ0eXBlIjoxLCJleHAiOjE3NDE3MDU4NDMsImNyZWF0ZWQiOjE3NDA0MDk4NDMyNTZ9.MOPT3X3Cw9AUmeuIpqDA1a1xZd7V85NSraJddxCrPHvOkaZ8dMI-aUB9gqninzqsMzwmMx6phbD8aBpTlYcWwA
        // 县级  eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjU2MDYyLCJ0eXBlIjoxLCJleHAiOjE3NDE3MDU5MTgsImNyZWF0ZWQiOjE3NDA0MDk5MTg3MDF9.k9ck3gWfVElSCl1uUI_5fZ3lEbFgtbQs_OaJku4I4bXoUO77kUnHsghkPBFdRknFHa49fTdAEdHn0wsb_XN5tg
        let token = uni.getStorageSync('token')
        let header = {
            'content-type': type ? 'application/x-www-form-urlencoded;charset=UTF-8' : 'application/json',
            'Authorization': 'Bearer ' + token,
            'Authorization': token,
            'lang': uni.getStorageSync('locale') === 'zh-Hans' ? 'zh_CN' : 'zh-tw',
        }
        const requestTask = uni.request({
management/src/components/RightContent/AvatarDropdown.tsx
@@ -25,13 +25,13 @@
  const [unreadCount, setUnreadCount] = useState(0);
  useEffect(() => {
    const timer = setInterval(() => {
      getUnreadCount().then((res: any) => {
        setUnreadCount(res.data || 0);
      });
    }, 1000 * 5)
    // const timer = setInterval(() => {
    //   getUnreadCount().then((res: any) => {
    //     setUnreadCount(res.data || 0);
    //   });
    // }, 1000 * 5)
    return () => clearInterval(timer);
    // return () => clearInterval(timer);
  }, []);
management/src/pages/setting/career/components/addAndEdit.jsx
@@ -16,8 +16,8 @@
   */
  const okHandle = () => {
    form.validateFields().then((values) => {
      if (editData.deptId) {
        values.deptId = editData.deptId;
      if (editData.id) {
        values.id = editData.id;
        onUpdate(values);
      } else {
        onSave(values);
@@ -57,7 +57,7 @@
    >
      <Form layout="horizontal" {...formItemLayout} form={form} initialValues={{ isAuctioneer: 1 }}>
        <Form.Item
          name="deptName"
          name="name"
          required
          label="职位名称"
          rules={[{ required: true, message: '请输入职位名称' }]}
management/src/pages/setting/career/index.jsx
@@ -4,7 +4,7 @@
import { useRef, useState } from 'react';
import { Access, useAccess } from 'umi';
import AddAndEdit from './components/addAndEdit';
import { add, edit, del, getList, updateStatus, resetPaswword } from './service';
import { add, edit, del, getList } from './service';
const Account = () => {
  const actionRef = useRef();
  const addViewRef = useRef();
@@ -14,7 +14,7 @@
  const columns = [
    {
      title: '职位名称',
      dataIndex: 'deptName',
      dataIndex: 'name',
    },
    {
      title: '操作',
@@ -70,7 +70,7 @@
          columns={columns}
          pagination={false}
          request={async (params) => {
            return await buildProTableDataSource(getList, params);
            return  buildProTableDataSource(getList, params);
          }}
          toolBarRender={(action, selectRows) => [
            <Space>
management/src/pages/setting/career/service.js
@@ -1,16 +1,18 @@
import { request } from '@umijs/max';
// 分页获取部门列表
export const getList = async (data) => {
    return request(`/system/dept/list`, {
export const getList = async (params) => {
    console.log('111111111111',params);
    return request(`/api/huacheng-sangeshenbian/systemPost/list`, {
        method: 'GET',
        params:data
        params
    });
}
// 新增部门
export const add = async (data) => {
    return request('/system/dept', {
    return request('/api/huacheng-sangeshenbian/systemPost/add', {
        method: 'POST',
        data,
    });
@@ -18,15 +20,15 @@
// 修改部门
export const edit = async (data) => {
    return request('/system/dept', {
        method: 'PUT',
    return request('/api/huacheng-sangeshenbian/systemPost/edit', {
        method: 'POST',
        data
    });
}
// 删除部门管理
export const del = async (data) => {
    return request(`/system/dept/${data}`, {
    return request(`/api/huacheng-sangeshenbian/systemPost/delete/${data.id}`, {
        method: 'DELETE',
    });
}
management/src/pages/work-order-setting/index.jsx
@@ -7,7 +7,7 @@
// import AddAndEdit from './components/addAndEdit';
// import { getConfig, saveConfig } from './service';
import { getSetting, addSetting } from './service';
// const TabPane = Tabs.TabPane;
const Account = () => {
    const actionRef = useRef();
@@ -15,20 +15,26 @@
    const addViewRef1 = useRef();
    const [form] = Form.useForm();
    const [tab, setTab] = useState('1');
    const [modalVisible, handleModalVisible] = useState(false);
    const [selectedRowKeys, setSelectedRowKeys] = useState([]);
    const changeStatusRef = useRef();
    const [addWarnVisible, handleAddWarnVisible] = useState(false);
    const [dataSource, setDataSource] = useState([]);
    const [data, setData] = useState([]);
    const access = useAccess();
    useEffect(() => {
        getSetting().then(res => {
            if (res.code === 200) {
                setData(res.data);
                form.setFieldsValue(res.data);
            }
        })
    }, [])
    const save = () => {
        form.validateFields().then(async (values) => {
                values.id = 1
                sendRequest(addSetting, values).then(res => {
                    if (res.code === 200) {
                    }
                })
        });
    };
@@ -49,29 +55,29 @@
                            </span><span style={{ marginLeft: 8, color: '#a5a5a5' }}>超过时间未处理诉求,系统自动对该事件承办者发送短信提醒,并知会至上一级管理层进行督办。
                                </span></div>
                            <Space style={{ marginTop: 20, display: 'flex', flexWrap: 'wrap' }}>
                                <Form.Item label="市级账号" name="isAuctioneer" rules={
                                <Form.Item label="市级账号" name="cityHandlingTime" rules={
                                    [{ required: true, message: '请输入市级账号' }]
                                }>
                                    <InputNumber controls={false} precision={0} min={0} addonAfter="天内"  ></InputNumber>
                                </Form.Item>
                                <Form.Item label="区县账号" name="isAuctioneer" rules={
                                <Form.Item label="区县账号" name="districtHandlingTime" rules={
                                    [{ required: true, message: '请输入区县账号' }]
                                }>
                                    <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
                                </Form.Item>
                                <Form.Item label="街道账号" name="isAuctioneer" rules={
                                <Form.Item label="街道账号" name="streetHandlingTime" rules={
                                    [{ required: true, message: '请输入街道账号' }]
                                }>
                                    <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
                                </Form.Item>
                                <Form.Item label="社区账号" name="isAuctioneer" rules={
                                <Form.Item label="社区账号" name="communityHandlingTime" rules={
                                    [{ required: true, message: '请输入社区账号' }]
                                }>
                                    <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
                                </Form.Item>
                                <Form.Item label="党员账号" name="isAuctioneer" rules={
                                <Form.Item label="党员账号" name="partyMemberHandlingTime" rules={
                                    [{ required: true, message: '请输入党员账号' }]
                                }>
                                    <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
@@ -84,29 +90,29 @@
                                </span></div>
                            <Space style={{ marginTop: 20, display: 'flex', flexWrap: 'wrap' }}>
                                <Form.Item label="市级账号" name="isAuctioneer" rules={
                                <Form.Item label="市级账号" name="cityDeadlineReminder" rules={
                                    [{ required: true, message: '请输入市级账号' }]
                                }>
                                    <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
                                </Form.Item>
                                <Form.Item label="区县账号" name="isAuctioneer" rules={
                                <Form.Item label="区县账号" name="districtDeadlineReminder" rules={
                                    [{ required: true, message: '请输入区县账号' }]
                                }>
                                    <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
                                </Form.Item>
                                <Form.Item label="街道账号" name="isAuctioneer" rules={
                                <Form.Item label="街道账号" name="streetDeadlineReminder" rules={
                                    [{ required: true, message: '请输入街道账号' }]
                                }>
                                    <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
                                </Form.Item>
                                <Form.Item label="社区账号" name="isAuctioneer" rules={
                                <Form.Item label="社区账号" name="communityDeadlineReminder" rules={
                                    [{ required: true, message: '请输入社区账号' }]
                                }>
                                    <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
                                </Form.Item>
                                <Form.Item label="党员账号" name="isAuctioneer" rules={
                                <Form.Item label="党员账号" name="partyMemberDeadlineReminder" rules={
                                    [{ required: true, message: '请输入党员账号' }]
                                }>
                                    <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
@@ -117,7 +123,7 @@
                            <div style={{ marginBottom: 20 }}><span style={{ fontSize: '14px', fontWeight: 600 }}>*诉求处理时间:
                            </span><span style={{ marginLeft: 8, color: '#a5a5a5' }}>超过时间未处理诉求,系统自动对该事件承办者发送短信提醒,并知会至上一级管理层进行督办。
                                </span></div>
                            <Form.Item label="添加后处理时间" name="isAuctioneer" rules={
                            <Form.Item label="添加后处理时间" name="demandProcessingTime" rules={
                                [{ required: true, message: '请输入添加后处理时间' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" controls={false}></InputNumber>
@@ -125,7 +131,7 @@
                        </Card>
                        <Access accessible={access['/work_order_transaction_management/work_order_item_configuration/save'] || false}>
                            <div style={{ marginTop: 20, display: 'flex', justifyContent: 'center' }}>
                                <Button type="primary" htmlType="submit" style={{ marginRight: 20 }}>
                                <Button type="primary" htmlType="submit" style={{ marginRight: 20 }} onClick={() => {save()}} >
                                    保存
                                </Button>
                            </div>
management/src/pages/work-order-setting/service.js
New file
@@ -0,0 +1,17 @@
import { request } from '@umijs/max';
// 获取工单事项配置
export const getSetting = async (data) => {
    return request(`/api/huacheng-sangeshenbian/workOrderItemConfig/getWorkOrderItemConfigInfo`, {
        method: 'GET',
        params:data
    });
}
// 配置工单事项配置
export const addSetting = async (data) => {
    return request(`/api/huacheng-sangeshenbian/workOrderItemConfig/addWorkOrderItemConfig`, {
        method: 'POST',
        data
    });
}
management/src/utils/antdUtils.js
@@ -118,7 +118,8 @@
}
export async function buildProTableDataSource(fun, params) {
  params.pageNum = params.current;
  params.pageNum = params.current || 1;
  params.pageSize = params.pageSize || 10
  delete params.current
  const response = await fun(params);
  const data = Promise.resolve({