wjt
2024-06-25 244d89b41c0e0e995d38f635a126a0959b9ba25b
问题处理
4个文件已添加
34个文件已修改
1333 ■■■■ 已修改文件
App.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/qiye.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/config.js 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/upload.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/companyLogin/companyLogin.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/applyRecord/applyRecord.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/applyRecordDetails/applyRecordDetails.scss 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/applyRecordDetails/applyRecordDetails.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/components/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/components/mine.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/components/popup.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/components/tabs.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/components/upload.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/dataLook/dataLook.scss 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/dataLook/dataLook.vue 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/judgeApply/judgeApply.scss 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/judgeApply/judgeApply.vue 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/policyApply/perPicker.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/policyApply/policyApply.vue 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportDetails/reportDetails.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportPage/reportPage.scss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportRecord/reportRecord.scss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportRecord/reportRecord.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/scodePage/scodePage.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/translate/translate.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/translateRecord/translateRecord.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/complaint/complaint.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/complaint/details.vue 176 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/components/bottom.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/my/my.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/qiyeIndex/qiyeIndex.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/details.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/evaluate.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/record.vue 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/guocheng.png 补丁 | 查看 | 原始文档 | blame | 历史
uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
App.vue
@@ -71,4 +71,7 @@
    /*每个页面公共css */
    @import "@/uni_modules/uview-ui/index.scss";
    @import "@/common/scss/public.scss";
    .u-empty{
        margin-top: 340rpx !important;
    }
</style>
api/qiye.js
@@ -32,3 +32,17 @@
export function complaint(id){
    return http.get('/enforce/complaint/'+id, { custom: { loading: true }});
}
// /enforce/complaint/log/
export function complaintDetails(id){
    return http.get('/enforce/complaint/log/'+id, { custom: { loading: true }});
}
// /enforce/order/orderComplaintNodeList 投诉单节点
export function orderComplaintNodeList(data){
    return http.get('/enforce/order/orderComplaintNodeList',{params: data}, { custom: { loading: true }});
}
// 无orderid
export function orderNodeList(data){
    return http.get('/enforce/complaint/log/orderNodeList',{params: data}, { custom: { loading: true }});
}
common/config.js
@@ -3,14 +3,14 @@
    hasHead: true,
    authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=',
    webURL: 'https://jmy.jinmingyuan.com/ecosphere-user',
    serverTempl:"http://172.16.61.34:8089",
    serverTempl:"http://172.16.61.31:8089",
    socketTempl:"wss://yqzx.jinmingyuan.com/wsPerCode",
    h5Temp:"https://yqzx.jinmingyuan.com/ecosphere-h5",
    serverUrl: 'http://172.16.61.34:8089',
    h5Url: 'http://172.16.61.34:8089/service-merchant',
    serverUrl: 'http://172.16.61.31:8089',
    h5Url: 'http://172.16.61.31:8089/service-merchant',
    ftpUrl: 'https://yqzx.jinmingyuan.com/file',
    // ftpUrl: 'https://echftp.jinmingyuan.com',
    baseUrl: 'http://172.16.61.34:8089',
    baseUrl: 'http://172.16.61.31:8089',
    wx_appid: 'wxad8cc511da676bd4',
    ali_appid: '2021003199690698'
}
@@ -18,32 +18,18 @@
const prod = {
    authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=',
    webURL: 'https://jmy.jinmingyuan.com/ecosphere-user',
    serverTempl:"https://yqzx.jinmingyuan.com",
    serverTempl:"https://jmy.jinmingyuan.com",
    socketTempl:"wss://yqzx.jinmingyuan.com/wsPerCode",
    h5Temp:"https://yqzx.jinmingyuan.com/ecosphere-h5",
    serverUrl: 'https://yqzx.jinmingyuan.com/service-shop',
    h5Url: 'https://yqzx.jinmingyuan.com/service-merchant',
    ftpUrl: 'https://yqzx.jinmingyuan.com/file',
    h5Temp:"https://jmy.jinmingyuan.com/ecosphere-h5",
    serverUrl: 'https://jmy.jinmingyuan.com/prod-api',
    h5Url: 'https://jmy.jinmingyuan.com/service-merchant',
    ftpUrl: 'https://jmy.jinmingyuan.com/file',
    // ftpUrl: 'https://echftp.jinmingyuan.com',
    baseUrl: 'https://yqzx.jinmingyuan.com',
    baseUrl: 'https://jmy.jinmingyuan.com/prod-api',
    wx_appid: 'wxad8cc511da676bd4',
    ali_appid: '2021003199690698'
}
const ayprod = {
    authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=',
    webURL: 'https://ayecosphere.aysnsh.com/ecosphere-user',
    serverTempl:"https://ayecosphere.aysnsh.com",
    socketTempl:"wss://ayecosphere.aysnsh.com/wsPerCode",
    h5Temp:"https://ayecosphere.aysnsh.com/ecosphere-h5",
    serverUrl: 'https://ayecosphere.aysnsh.com/service-shop',
    h5Url: 'https://ayecosphere.aysnsh.com/service-merchant',
    ftpUrl: 'https://ayecosphere.aysnsh.com/service-base/ossFile',
    // ftpUrl: 'https://echftp.jinmingyuan.com',
    baseUrl: 'https://ayecosphere.aysnsh.com',
    wx_appid: 'wxd81ee034e03873b1',
    ali_appid:'2021004122689522'
}
module.exports = {
    kefuTel: '15824668510',
common/upload.js
@@ -2,7 +2,7 @@
export const upload  = (file) => {
    return new Promise((resolve,refject) => {
        uni.uploadFile({
            url: config.baseUrl + '/tool/file/upload',
            url: config.serverUrl + '/tool/file/upload',
            filePath: file,
            name: 'file',
            success: val => {
pages.json
@@ -100,7 +100,7 @@
                    "style" : 
                    {
                        "navigationBarTitleText" : "数据看板",
                        "navigationStyle": "custom"
                        "backgroundColor": "#1171E0"
                    }
                },
                {
@@ -128,7 +128,7 @@
                    "path" : "applyRecord/applyRecord",
                    "style" : 
                    {
                        "navigationBarTitleText" : "申请记录"
                        "navigationBarTitleText" : "记录查询"
                    }
                },
                {
@@ -160,6 +160,14 @@
                        "navigationBarTitleText" : "",
                        "navigationStyle": "custom"
                    }
                },
                {
                    "path" : "judgeApply/judgeApply",
                    "style" :
                    {
                        "navigationBarTitleText" : "审批详情",
                        "navigationStyle": "custom"
                    }
                }
            ]
        },
@@ -186,7 +194,8 @@
                "path" : "record/record",
                "style" : 
                {
                    "navigationBarTitleText" : "执法记录"
                    "navigationBarTitleText" : "执法记录",
                    "navigationStyle": "custom"
                }
            },
            {
pages/companyLogin/companyLogin.vue
@@ -165,11 +165,11 @@
                    uni.setStorageSync('userInfo',  val.data.data)
                    if(this.form.userType == '02') {
                        uni.reLaunch({
                            url:`/qiye/qiyeIndex/qiyeIndex`
                            url:`/qiye/qiyeIndex/qiyeIndex?id=${val.data.data.deptId}`
                        })
                    } else if(this.form.userType == '01'){
                        uni.reLaunch({
                            url:`/policy/policyIndex/policyIndex?id=${val.data.data.deptId}`
                            url:`/policy/policyIndex/policyIndex`
                        })
                    } else {
                        uni.reLaunch({
pages/index/index.vue
@@ -1,15 +1,15 @@
<template>
    <view>
        <img src="/static/head.png" class="head" alt="" />
        <view class="hqzc">
        <view class="hqzc" @click="more1()">
            <img src="/static/hqzc.png" class="img" alt="" />
            <view class="line"></view>
            <view class="font">
                <p v-for="(item,index) in list1" :key="index">{{item.docTitle}}</p>
                <p v-for="(item,index) in list1" :key="index" class="u-line-1">{{item.docTitle}}</p>
                <!-- <p>海关总署贸易持续发展2024年立法...</p>
                <p>国家医疗保障局办公室关于发布管理... </p> -->
            </view>
            <img src="/static/i06.png" class="more" @click="more1()" alt="" />
            <img src="/static/i06.png" class="more"  alt="" />
        </view>
        <view class="btnbox">
            <img src="/static/i01.png" class="more" alt="" style="margin-right: 18rpx;" @click="goMyCompany('01')"/>
@@ -125,9 +125,28 @@
    // 00营商办,01执法,02企业 区分不同的登陆页面
    export default {
        onLoad() {
        },
        onShow() {
            this.getInfo()
            const value = uni.getStorageSync("userInfo")
            const sessionToken = uni.getStorageSync('sessionToken')
            if(sessionToken && value && value.userType) {
                const qiyeData = uni.getStorageSync('qiyedata')
                if(value.userType == '02') {
                    uni.reLaunch({
                        url:`/qiye/qiyeIndex/qiyeIndex?id=${qiyeData.deptId}`
                    })
                } else if(value.userType == '01'){
                    uni.reLaunch({
                        url:`/policy/policyIndex/policyIndex`
                    })
                } else {
                    uni.reLaunch({
                        url:`/policy/policyIndex/policyIndex`
                    })
                }
            }
        },
        data() {
            return {
@@ -192,6 +211,7 @@
        top: 500rpx;
        padding: 24rpx;
        box-sizing: border-box;
        .line{
            width: 2rpx;
            height: 50rpx;
@@ -212,7 +232,8 @@
            color: #4A4E60;
            margin-right: 50rpx;
            width: 450rpx;
            text-align: center;
            // text-align: center;
            text-align: left;
        }
    }
    .btnbox{
policy/applyRecord/applyRecord.vue
@@ -1,17 +1,18 @@
<template>
    <view class="page-box">
        <u-sticky bgColor="white">
        <u-sticky bgColor="white"  :offsetTop="0" style="    position: -webkit-sticky;">
            <view class="set-search">
                <u-search placeholder="请输入申请记录关键词 " @search="search" @blur="search" shape="square" :showAction="false"></u-search>
            </view>
            <view class="border"></view>
            <u-tabs :list="list1" @click="click" :current="current" :scrollable="false" bgColor="white"></u-tabs>
            <u-tabs :list="list1" @click="click" :current="current" :scrollable="true" bgColor="white"></u-tabs>
        </u-sticky>
        <view class="list">
            <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in dataList" :key="index">
                <view class="top-title">
                    <text>{{item.enforceReason}}</text>
                    <text class="status">{{mapStatus[item.orderStatus]}}</text>
                    <text class="status" v-if="item.checkStatus != -1" :class="{status1: item.orderStatus == 1,status2: item.orderStatus == 2,status3: item.orderStatus == 3,status4: item.orderStatus == 4}">{{mapStatus[item.orderStatus]}}</text>
                    <text class="status status4" v-else >已拒绝</text>
                </view>
                <view class="user-info">
                    <text>{{item.applyUser}}</text>
@@ -31,7 +32,6 @@
                            <text>申请时间:</text>{{item.applyTime}}
                        </view>
                    </view>
                </view>
            </view>
             <u-empty v-if="!dataList.length"></u-empty>
@@ -47,26 +47,39 @@
                current: 0,
                list1: [{
                    name: '全部',
                    value: ''
                    value: {}
                }, {
                    name: '待审批',
                    value: 1
                    value: {
                        orderStatus: 1,
                        checkStatus: 0
                    }
                }, {
                    name: '待执行',
                    value: 2
                    value: {
                        orderStatus: 2
                    }
                }, {
                    name: '待上报',
                    value: 3
                    value: {
                        orderStatus: 3
                    }
                }, {
                    name: '已拒绝',
                    value: -1
                    value: {
                        checkStatus: -1
                    }
                }, {
                    name: '已结束',
                    value: 4
                    value: {
                        orderStatus: 4
                    }
                }],
                queryParams: {
                    pageNum: 1,
                    pageSize: 10
                    pageSize: 10,
                    isAsc: "desc",
                    orderByColumn: "apply_time"
                },
                total: 1,
                dataList: [],
@@ -102,7 +115,7 @@
                this.orderList()
            },
            orderList() {
                orderList({...this.queryParams, orderStatus: this.list1[this.current].value}).then(val => {
                orderList({...this.queryParams, ...this.list1[this.current].value}).then(val => {
                    this.total = val.data.total
                    this.dataList = [...this.dataList,...val.data.rows]
                })
@@ -123,4 +136,7 @@
</style>
<style lang="scss" scoped>
    @import "./applyRecord.scss";
    /deep/ .u-sticky{
            position: -webkit-sticky;
    }
</style>
policy/applyRecordDetails/applyRecordDetails.scss
@@ -9,8 +9,9 @@
    .status{
        color: white;
        margin: 20rpx 32rpx;
        font-size: 36rpx;
        font-size: 44rpx;
        margin-bottom: 24rpx;
        font-weight: 700;
    }
    .base-card{
        margin: 20rpx 32rpx;
@@ -60,6 +61,7 @@
            image{
                width: 100%;
                height: 220rpx;
                border: 2rpx solid gray;
            }
        }
        .view-step{
@@ -68,7 +70,7 @@
            .step-content{
                position: relative;
                padding-left: 64rpx;
                height: 100rpx;
                // height: 100rpx;
                padding-bottom: 64rpx;
                &::before{
                    content: '';
@@ -84,23 +86,25 @@
                    left: 0;
                    width: 40rpx;
                    height: 40rpx;
                    top: 0;
                }
                .top-title{
                    font-size: 32rpx;
                    color: #202D44;
                    margin-bottom: 16rpx;
                    line-height: 30rpx;
                }
                .down-tips{
                    color: #7E8596;
                    display: flex;
                    justify-content: flex-start;
                    align-items: center;
                    // display: flex;
                    // justify-content: flex-start;
                    // align-items: center;
                    .time{
                        margin-left: 32rpx;
                        width: 58%;
                        // margin-left: 32rpx;
                        // width: 60%;
                    }
                    .submit-per{
                        width: 42%;
                        // width: 40%;
                    }
                    text{
                        color: #4A4E60;
policy/applyRecordDetails/applyRecordDetails.vue
@@ -32,7 +32,7 @@
                        <view>{{typeList}}</view>
                    </view>
                    
                    <view v-if="!details.executeUser">
                    <template v-if="!details.executeUser">
                        <view class="view-form-item">
                            <view class="label">执法人员</view>
                            <view>{{details.applyUser}}</view>
@@ -41,8 +41,8 @@
                            <view class="label">执法部门</view>
                            <view>{{details.applyDeptName}}</view>
                        </view>
                    </view>
                    <view v-else>
                    </template>
                    <template v-else>
                        <view class="view-form-item">
                            <view class="label">执法人员</view>
                            <view>{{details.executeUser}}</view>
@@ -51,11 +51,11 @@
                            <view class="label">执法部门</view>
                            <view>{{details.executeDeptName}}</view>
                        </view>
                    </view>
                    <view class="view-form-item" style="margin-top: 20rpx;">
                    </template>
                    <view class="view-form-item" >
                        <view class="label">随行人员</view>
                        <view>
                            <view style="margin-bottom: 20rpx;"v-for="(item,index) in details.peers" :key="index">
                            <view v-for="(item,index) in details.peers" :key="index">
                                {{item.peerUser}}({{item.peerDeptName}})
                            </view>
                        </view>
@@ -79,10 +79,10 @@
                    <text>执法内容</text>
                </view>
                <view class="view-content">
                    {{ details.regionReason }}
                    {{ details.enforceContent }}
                </view>
            </view>
            <view class="base-card" v-if="judgeDetails.length">
            <!-- <view class="base-card" v-if="judgeDetails.length">
                <view class="title">
                    <text>审批情况</text>
                </view>
@@ -107,14 +107,13 @@
                        </view>
                    </view>
                </view>
            </view>
            <view class="base-card" v-if="details.orderStatus == 3 || details.orderStatus == 4">
            </view> -->
            <view class="base-card" v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length">
                <view class="title">
                    <text>执法图片</text>
                </view>
                <view class="view-image">
                    <image :src="baseUrl+item" mode="widthFix" v-for="(item,index) in details.regionImgs" :key="index"></image>
                    <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill" v-for="(item,index) in details.regionImgs" :key="index"></image>
                </view>
            </view>
            <view class="base-card">
@@ -129,10 +128,9 @@
                            {{item.nodeName}}
                        </view>
                        <view class="down-tips">
                            <view class="u-line-1 submit-per">提交人:<text>{{item.nodeUser}}</text></view>
                            <view class=" submit-per">提交人:<text>{{item.nodeUser}}</text></view>
                            <view class="time">{{item.nodeTime}}</view>
                        </view>
                    </view>
                    <!-- <view class="step-content">
                        <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
@@ -190,7 +188,11 @@
            this.getDetails(options.id)
            this.orderNodeList(options.id)
            this.enforceLogList(options.id)
            if(options.setTitle) {
                uni.setNavigationBarTitle({
                    title: ''
                })
            }
        },
        methods: {
            getDetails(orderId) {
@@ -222,6 +224,14 @@
                    const value = val.data.data.find(item => item.dictCode == this.details.enforceType)
                    this.typeList = value.dictLabel
                })
            },
            previewImage(list, index) {
                const data = list.map(item => this.baseUrl + item)
                console.log(data)
                uni.previewImage({
                    urls: data,
                    current: index
                })
            }
        }
    }
policy/components/index.vue
@@ -5,10 +5,10 @@
            <image src="/static/head.png" mode=""></image>
        </view>
        <view class="main-page-box">
            <view class="second-box">
            <view class="second-box" @click="goPolicyList">
                <image src="/static/hqzc.png" class="icon"></image>
                <view class="driver"></view>
                <view class="right-box" @click="goPolicyList">
                <view class="right-box" >
                    <view class="article-list">
                        <view class="u-line-1 margin-bottom" v-for="(item, index) in policyList" :key="index">
                            {{item.docTitle}}</view>
policy/components/mine.vue
@@ -159,7 +159,7 @@
            width: calc(100% - 64rpx);
            left: 32rpx;
            position: fixed;
            bottom: 180rpx;
            bottom: 220rpx;
        }
        .inckname{
            font-size: 36rpx;
policy/components/popup.vue
@@ -13,7 +13,7 @@
                    </u-radio-group>
                </view>
                <view class="margin-top">
                    <u-textarea  placeholder="请输入拒绝理由..." v-model="form.checkReason"></u-textarea>
                    <u-textarea  placeholder="请输入..." v-model="form.checkReason"></u-textarea>
                </view>
            </view>
            <view class="down">
policy/components/tabs.vue
@@ -69,14 +69,22 @@
        .code{
            width: 108rpx;
            height: 108rpx;
            position: absolute;
            top: -20rpx;
            left: 0;
            // position: absolute;
            // top: -20rpx;
            // left: 0;
        }
        .relative{
            position: relative;
            width: 108rpx;
            height: 108rpx;
            width: 136rpx;
            height: 136rpx;
            background-color: white;
            border-radius: 50%;
            padding: 12rpx;
            top: -40rpx;
            display: flex;
            box-sizing: border-box;
            justify-content: center;
            align-items: center;
        }
    }
</style>
policy/components/upload.vue
@@ -79,10 +79,13 @@
        width: 200rpx;
        height: 200rpx;
        text-align: center;
        line-height: 200rpx;
        // line-height: 200rpx;
        display: flex;
        justify-content: center;
        align-items: center;
        image{
            width: 28rpx;
            height: 28rpx;
            width: 60rpx;
            height: 60rpx;
        }
    }
    .grid-box{
policy/dataLook/dataLook.scss
@@ -4,15 +4,17 @@
    flex-shrink: 0;
    background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
    position: fixed;
    top: 50px;
    // top: 50px;
    z-index: -1;
}
.page-main{
    // position: relative;
    // top: -380rpx;
    padding-bottom: 140rpx;
    padding-top: 20rpx;
    .box{
        margin: 32rpx 32rpx 20rpx;
        margin: 0 32rpx 20rpx;
        background-color: white;
        border-radius: 10rpx;
        padding: 24rpx 0;
policy/dataLook/dataLook.vue
@@ -1,10 +1,10 @@
<template>
    <view>
        <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
        <!-- <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true" >
            <template slot="center">
                <view style="color: white;">数据看板</view>
            </template>
        </u-navbar>
        </u-navbar> -->
        <view class="donw-box"></view>
        <view class="page-main">
            <view class="box">
@@ -18,7 +18,7 @@
                    </view>
                    <view class="grid-item">
                        <view class="label">执法单位</view>
                        <view>{{infoData.enforceCompanyNum || 0}}</view>
                        <view>{{infoData.enforceDeptNum || 0}}</view>
                    </view>
                    <view class="grid-item">
                        <view class="label">执法人员</view>
@@ -26,7 +26,7 @@
                    </view>
                    <view class="grid-item">
                        <view class="label">执法申请</view>
                        <view>{{infoData.enforceOrderNum || 0}}</view>
                        <view>{{infoData.enforceorderNum || 0}}</view>
                    </view>
                    <view class="grid-item">
                        <view class="label">已审批</view>
@@ -46,7 +46,7 @@
                <view class="number">
                    <view class="date">{{pageQuerm.beginTimeStr1}} <text class="margin-text">至</text> {{pageQuerm.endTimeStr1}}</view>
                    <view class="progress-box">
                        <qiun-data-charts  key="11" type="bar"
                        <qiun-data-charts v-if="!show" key="11" type="bar"
                            :opts="opts" :chartData="chartData" />
                    </view>
                </view>
@@ -85,7 +85,7 @@
                <view class="number">
                    <view class="date" style="margin-bottom: 20rpx;">{{pageQuerm.beginTimeStr3}} <text class="margin-text">至</text> {{pageQuerm.endTimeStr3}}</view>
                    <view class="progress-box">
                        <qiun-data-charts type="rose"    tooltipFormat="tooltipDemo1"
                        <qiun-data-charts type="pie"   v-if="!show"  tooltipFormat="tooltipDemo1"
 key="22" :opts="opts1" :chartData="chartData1" />
                    </view>
@@ -94,6 +94,7 @@
        </view>
            <u-datetime-picker
                        :show="show"
                        @cancel="show = false"
                        :maxDate="new Date().getTime()"
                        v-model="currentValue"
                        mode="year-month"
@@ -136,16 +137,20 @@
                    padding: [15, 30, 0, 5],
                    enableScroll: false,
                    legend: {
                        show: false
                        show: false,
                    },
                    xAxis: {
                        boundaryGap: "justify",
                        disableGrid: false,
                        min: 0,
                        axisLine: false,
                        max: 40
                        max: 40,
                        gridColor: "#ededed"
                    },
                    yAxis: {},
                    yAxis: {
                        gridColor: "#ededed"
                    },
                    extra: {
                        bar: {
                            type: "group",
@@ -164,34 +169,26 @@
                chartData1: {},
                tooltipCustom: {},
                opts1: {
                    color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
                        "#ea7ccc"
                    ],
                    tooltipFormat: function (item) {
                        return "456"
                    },
                    color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
                    padding: [5, 5, 5, 5],
                    enableScroll: false,
                    legend: {
                        show: false,
                                position: "bottom",
                                lineHeight: 25,
                                width: '100%', // 设置图例宽度
                                // itemWidth: 25, // 设置图例标记宽度
                                itemGap: 10, // 设置图例项之间的间隔
                                float: 'left'
                    },
                    extra: {
                        rose: {
                            type: "area",
                            minRadius: 50,
                              pie: {
                            activeOpacity: 0.5,
                            activeRadius: 10,
                            offsetAngle: 0,
                            labelWidth: 15,
                                labelWidth: 10,
                            border: false,
                            borderWidth: 2,
                                borderWidth: 3,
                            borderColor: "#FFFFFF"
                        },
                        tooltip: {
                            // bgColor: "#fff",
                            // showArrow: false,
                            // fontColor: "#202D44",
                            // bgOpacity: 1,
                        }
                    }
                }
@@ -298,7 +295,6 @@
                        return {
                            name: item.k,
                            value: item.v,
                            "labelText": item.k
                        }
                    })
                    let res = {
policy/judgeApply/judgeApply.scss
New file
@@ -0,0 +1,123 @@
.top-content{
    width: 100%;
    height: 380rpx;
    background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
}
.main-page{
    position: relative;
    top: -380rpx;
    .status{
        color: white;
        margin: 20rpx 32rpx;
        font-size: 44rpx;
        margin-bottom: 24rpx;
        font-weight: 700;
    }
    .base-card{
        margin: 20rpx 32rpx;
        border-radius: 10rpx;
        background-color: white;
        padding: 24rpx 0;
        .title{
            padding: 0 24rpx;
            font-size: 32rpx;
            font-weight: 700;
            border-bottom: 2rpx solid #EEEEEE;
            padding-bottom: 14rpx;
            margin-bottom: 15rpx;
        }
        .view-form{
            padding: 0 24rpx;
            .view-form-item{
                display: flex;
                justify-content: flex-start;
                align-items: flex-start;
                margin-bottom: 34rpx;
                font-size: 30rpx;
                &:last-child{
                    margin-bottom: 0;
                }
                &>view{
                    width: 60%;
                    font-weight: 500;
                }
                .label{
                    color: #7E8596;
                    font-weight: normal;
                    width: 40%;
                }
            }
        }
        .view-content{
            font-size: 30rpx;
            padding: 0 24rpx;
            line-height: 52rpx;
        }
        .view-image{
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            grid-gap: 22rpx;
            padding: 0 32rpx;
            image{
                width: 100%;
                height: 220rpx;
                border: 2rpx solid gray;
            }
        }
        .view-step{
            padding: 0 24rpx;
            .step-content{
                position: relative;
                padding-left: 64rpx;
                // height: 100rpx;
                padding-bottom: 64rpx;
                &::before{
                    content: '';
                    display: block;
                    height: 100%;
                    width: 4rpx;
                    background-color: #E7F8F0;
                    position: absolute;
                    left: 19rpx;
                }
                .icon{
                    position: absolute;
                    left: 0;
                    width: 40rpx;
                    height: 40rpx;
                }
                .top-title{
                    font-size: 32rpx;
                    color: #202D44;
                    margin-bottom: 16rpx;
                }
                .down-tips{
                    color: #7E8596;
                    // display: flex;
                    // justify-content: flex-start;
                    // align-items: center;
                    .time{
                        // margin-left: 32rpx;
                        // width: 60%;
                    }
                    .submit-per{
                        // width: 40%;
                        margin-bottom: 10rpx;
                    }
                    text{
                        color: #4A4E60;
                    }
                }
            }
            .none{
                &::before{
                    display: none;
                }
                padding-bottom: 0;
            }
        }
    }
}
policy/judgeApply/judgeApply.vue
New file
@@ -0,0 +1,252 @@
<template>
    <view>
        <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
            <template slot="center">
                <view style="color: white;">申请详情</view>
            </template>
        </u-navbar>
        <view class="top-content"></view>
        <view class="main-page">
            <view class="status">
                {{mapStatus[details.checkStatus]}}
            </view>
            <view class="base-card">
                <view class="title">
                    <text>基本信息</text>
                </view>
                <view class="view-form">
                    <view class="view-form-item">
                        <view class="label">执法主题</view>
                        <view>{{details.enforceReason}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">执法对象</view>
                        <view>{{details.companyName}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">执法时间</view>
                        <view>{{details.planTime}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">执法类型</view>
                        <view>{{typeList}}</view>
                    </view>
                    <template v-if="!details.executeUser">
                        <view class="view-form-item">
                            <view class="label">执法人员</view>
                            <view>{{details.applyUser}}</view>
                        </view>
                        <view class="view-form-item">
                            <view class="label">执法部门</view>
                            <view>{{details.applyDeptName}}</view>
                        </view>
                    </template>
                    <template v-else>
                        <view class="view-form-item">
                            <view class="label">执法人员</view>
                            <view>{{details.executeUser}}</view>
                        </view>
                        <view class="view-form-item">
                            <view class="label">执法部门</view>
                            <view>{{details.executeDeptName}}</view>
                        </view>
                    </template>
                    <view class="view-form-item" >
                        <view class="label">随行人员</view>
                        <view>
                            <view v-for="(item,index) in details.peers" :key="index">
                                {{item.peerUser}}({{item.peerDeptName}})
                            </view>
                        </view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">是否通知企业</view>
                        <view>{{details.isNoticeCompany == 0 ? '否': '是'}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">申请时间</view>
                        <view>{{details.applyTime}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">当前状态</view>
                        <view>{{mapStatus[details.checkStatus]}}</view>
                    </view>
                </view>
            </view>
            <view class="base-card">
                <view class="title">
                    <text>执法内容</text>
                </view>
                <view class="view-content">
                    {{ details.enforceContent }}
                </view>
            </view>
            <!-- <view class="base-card" v-if="judgeDetails.length">
                <view class="title">
                    <text>审批情况</text>
                </view>
                <view class="view-form">
                    <view v-for="(item,index) in judgeDetails" :key="index">
                        <view class="view-form-item">
                            <view class="label">审批结果</view>
                            <view v-if="item.checkStatus == 1" style="color: #3EB47A;">通过</view>
                            <view v-else style="color: red">拒绝</view>
                        </view>
                        <view class="view-form-item">
                            <view class="label">审批人</view>
                            <view>{{item.checkUser}}</view>
                        </view>
                        <view class="view-form-item">
                            <view class="label">审批部门</view>
                            <view>{{item.checkDeptName}}</view>
                        </view>
                        <view class="view-form-item">
                            <view class="label">审批时间</view>
                            <view>{{item.checkTime}}</view>
                        </view>
                    </view>
                </view>
            </view> -->
            <view class="base-card" v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length">
                <view class="title">
                    <text>执法图片</text>
                </view>
                <view class="view-image">
                    <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill" v-for="(item,index) in details.regionImgs" :key="index"></image>
                </view>
            </view>
            <view class="base-card">
                <view class="title">
                    <text>审批进度</text>
                </view>
                <view class="view-step">
                    <view class="step-content" :class="{none: index == nodeList.length - 1}" v-for="(item,index) in nodeList" :key="index">
                        <image class="icon" src="/static/policy/icon.png" mode="widthFix" v-if="!item.nodeReason"></image>
                        <image src="/static/policy/refject.png" mode="widthFix" class="icon" v-else></image>
                        <view class="top-title">
                            {{item.nodeName}}
                        </view>
                        <view class="down-tips">
                            <view class=" submit-per">提交人:<text>{{item.nodeUser}}</text></view>
                            <view class="time">{{item.nodeTime}}</view>
                        </view>
                    </view>
                    <!-- <view class="step-content">
                        <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
                        <view class="top-title">
                            审批通过
                        </view>
                        <view class="down-tips">
                            <view>提交人:<text>林小零</text></view>
                            <view class="time">2024-06-07 12:14</view>
                        </view>
                    </view>
                    <view class="step-content none">
                        <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
                        <image src="/static/policy/refject.png" mode="widthFix" class="icon"></image>
                        <view class="top-title">
                            提交申请
                        </view>
                        <view class="down-tips">
                            <view>提交人:<text>林小零</text></view>
                            <view class="time">2024-06-07 12:14</view>
                        </view>
                    </view> -->
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    import {
        orderDetails,
        orderNodeList,
        enforceLogList
    } from '@/api/policy.js'
    import { getDicts } from '@/api/data.js'
    import { config } from '@/common/config'
    export default {
        data() {
            return {
                details: {},
                nodeList: [],
                mapStatus: {
                    // 1: '待审批',
                    // 2: "待执行",
                    // 3: "待上报",
                    // '-1':"已拒绝",
                    // 4: "已结束"
                    // -1拒绝,0待审批,1审批中,2通过
                    "-1": '已拒绝',
                    0: '待审批',
                    1: '审批中',
                    2: "已审批"
                },
                typeList: '',
                judgeDetails: [],
                baseUrl: config.baseUrl
            }
        },
        onLoad(options) {
            this.getDetails(options.id)
            this.orderNodeList(options.id)
            this.enforceLogList(options.id)
            if(options.setTitle) {
                uni.setNavigationBarTitle({
                    title: ''
                })
            }
        },
        methods: {
            getDetails(orderId) {
                orderDetails({
                    orderId
                }).then(val => {
                    this.details = val.data.data
                    if(this.details.regionImgs){
                         this.details.regionImgs = this.details.regionImgs.split(",")
                    }
                    this.getDicts()
                })
            },
            // 节点
            orderNodeList(orderId) {
                orderNodeList({orderId}).then(val => {
                    this.nodeList = val.data.data
                })
            },
            // 申请记录
            enforceLogList(orderId) {
                enforceLogList({orderId}).then(val => {
                    // console.log(val.data.rows)
                    this.judgeDetails = val.data.rows
                })
            },
            getDicts() {
                getDicts('enforce_type').then(val => {
                    const value = val.data.data.find(item => item.dictCode == this.details.enforceType)
                    this.typeList = value.dictLabel
                })
            },
            previewImage(list, index) {
                const data = list.map(item => this.baseUrl + item)
                console.log(data)
                uni.previewImage({
                    urls: data,
                    current: index
                })
            }
        }
    }
</script>
<style>
    page {
        background-color: #F4F4F4;
    }
</style>
<style lang="scss" scoped>
    @import "./judgeApply.scss";
</style>
policy/policyApply/perPicker.vue
New file
@@ -0,0 +1,118 @@
<template>
    <u-popup mode="bottm" :show="show"  :safeAreaInsetBottom="false">
        <view class="picker-view-box">
            <view class="options">
                <view class="button" @click="cancel" size="mini">取消</view>
                <view class="button entery" @click="entery" color="#1171E0" size="mini">确定</view>
            </view>
            <u-search v-model="companyName" @search="companyList" @clear="clearContent" @confirm="companyList" @custom="companyList()"></u-search>
            <view>
                <picker-view immediate-change :value="value" @change="bindChange" class="picker-view">
                    <picker-view-column>
                        <view  class="text-center" v-for="(item,index) in columns" :key="index">{{item[keyName]}}</view>
                    </picker-view-column>
                </picker-view>
            </view>
        </view>
    </u-popup>
</template>
<script>
    import { companyList } from '@/api/policy.js'
    export default {
        props: {
            keyName: {
                type: String,
                default: ''
            }
        },
        data() {
            return {
                columns: [],
                show: false,
                companyName: "",
                index: 0,
                value: []
            }
        },
        mounted() {
            this.companyList()
        },
        methods: {
            clearContent() {
                this.companyName = ""
                this.companyList()
            },
            cancel() {
                this.show = false
            },
            open() {
                this.show = true
            },
            bindChange(e) {
                this.index = e.detail.value[0]
            },
            companyList() {
                companyList({companyName: this.companyName}).then(val => {
                    if(val.data.code == 200){
                        if(!val.data.rows.length || !val.data.rows){
                            uni.showToast({
                                title: '没有符合的数据,请检查输入的执法对象',
                                icon: 'none',
                                duration: 3000
                            })
                        } else {
                            this.columns = val.data.rows
                        }
                    }
                })
            },
            entery() {
                const info = this.columns[this.index]
                this.$emit('confirm', info)
                this.show = false
            }
        }
    }
</script>
<style lang="scss" scoped>
    .picker-view-box{
        position: fixed;
        z-index: 120000;
        background-color: white;
        height: 600rpx;
        padding: 40rpx 32rpx 0;
        bottom: 0;
        width: 100%;
        box-sizing: border-box;
        border-radius: 20rpx 20rpx 0 0;
    }
    .options{
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 40rpx;
        .button{
            padding: 10rpx 20rpx;
            border-radius: 10rpx;
            font-size: 28rpx;
        }
        .entery{
            background-color: $main-color;
            color: white;
        }
    }
    .text-center{
        text-align: center;
        line-height: 34px;
    }
        .picker-view {
            width: 100%;
            height: 500rpx;
            margin-top: 20rpx;
        }
</style>
policy/policyApply/policyApply.vue
@@ -6,16 +6,17 @@
                    <view class="form-label require">
                        执法主题
                    </view>
                    <input type="text" placeholder="请输入" v-model="form.enforceReason"/>
                    <input type="text" placeholder="请输入" v-model.trim="form.enforceReason"/>
                </view>
                <view class="form-item">
                    <view class="form-label require">
                        执法对象
                    </view>
                    <view class="input">
                        <input type="text"  placeholder="请输入" v-model="form.companyName"/>
                        <!-- <u-icon name="arrow-right"></u-icon> -->
                        <u-text text='搜索' type="primary" @click="search"></u-text>
                    <view class="input" @click="search">
                        <input type="text" style="width: 80%;" disabled  placeholder="请输入" :value="form.companyName"/>
                        <u-icon name="arrow-right"></u-icon>
                        <!-- <u-text text='搜索' type="primary" style="width: 20%;" @click="search"></u-text> -->
                    </view>
                </view>
                <view class="form-item">
@@ -23,7 +24,7 @@
                        执法时间
                    </view>
                    <view class="input" @click="showTimeFun">
                        <input type="text" placeholder="请输入" disabled v-model="form.planTimeStr"/>
                        <input type="text" placeholder="请输入" disabled v-model.trim="form.planTimeStr"/>
                        <u-icon name="arrow-right"></u-icon>
                    </view>
                </view>
@@ -32,7 +33,7 @@
                        执法类型
                    </view>
                    <view class="input">
                        <input type="text" placeholder="请输入" v-model="form.enforceTypeName" disabled/>
                        <input type="text" placeholder="请输入" v-model.trim="form.enforceTypeName" disabled/>
                        <u-icon name="arrow-right"></u-icon>
                    </view>
                </view>
@@ -41,7 +42,7 @@
                        执法内容
                    </view>
                    <view class="back">
                        <u--textarea :height="120" v-model="form.enforceContent" placeholder="请输入" count maxlength="500"></u--textarea>
                        <u--textarea :height="120" v-model.trim="form.enforceContent" placeholder="请输入" count maxlength="500"></u--textarea>
                    </view>
                </view>
            </view>
@@ -52,13 +53,13 @@
                    <view class="form-label">
                        执法人员
                    </view>
                    <input type="text" placeholder="请输入" v-model="form.applyUser" disabled/>
                    <input type="text" placeholder="请输入" v-model.trim="form.applyUser" disabled/>
                </view>
                <view class="form-item">
                    <view class="form-label">
                        执法部门
                    </view>
                    <input type="text" placeholder="请输入" v-model="form.applyDeptName" disabled/>
                    <input type="text" placeholder="请输入" v-model.trim="form.applyDeptName" disabled/>
                </view>
                <view class="form-item sui" style="align-items: flex-start;" @click="openPer">
                    <view class="form-label require ">
@@ -122,24 +123,17 @@
        </u-form> -->
<!--         <u-button @click="submitApply">提交申请</u-button>
        <u-button @click="applyRecord">申请记录</u-button> -->
        <u-picker :show="show" @close="show = false" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"></u-picker>
        <!-- <u-datetime-picker
            :show="showTime"
            @close="showTime = false"
            @cancel="showTime = false"
            @confirm="confirmTime"
            :minDate="minDate"
            v-model="currentTime"
            @change="changeValue"
            mode="datetime"
            ref="datetimePicker"
            ></u-datetime-picker> -->
        <!-- <u-picker :show="show"   @close="show = false" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName">
        </u-picker> -->
        <perPicker ref="perPicker" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"></perPicker>
             <yt-dateTimePicker
                  ref="myPicker"
                  @submit="confirmTime"
                  :start-year="year"
                  :end-year="endYear"
                  :time-init="timeInit"
                  :start-year="year"
                  :startMonth="month"
                  :time-hide="[true, true, true, true, false, false]"
                />
            <u-picker :show="showType" @close="showType = false" @confirm="confirmType" @cancel="showType = false" :columns="columnsType" keyName="dictLabel"></u-picker>
@@ -152,11 +146,13 @@
    import { getInfo } from '@/api/auth.js'
    import { getDicts } from '@/api/data'
    import perPage from './perPage'
    import perPicker from './perPicker'
    import YtDateTimePicker from "uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue"
    export default {
        components: {
            YtDateTimePicker,
            perPage
            perPage,
            perPicker
        },
        data() {
            return {
@@ -170,7 +166,8 @@
                    planTimeStr: '',
                    peers: [],
                    orderStatus: 1,
                    enforceContent: ""
                    enforceContent: "",
                    companyName: ""
                },
                show: false,
                columns: [],
@@ -181,14 +178,18 @@
                year: '',
                endYear: '',
                timeInit: '',
                list: []
                list: [],
                startTime: "",
                month: ''
            }
        },
        onLoad() {
            this.year = new Date().getFullYear()
            this.month = new Date().getMonth() + 1
            this.endYear = this.year + 5
            this.minDate = new Date().valueOf()
            this.timeInit = this.$u.timeFormat(new Date(), 'yyyy-mm-dd')
            this.timeInit = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM')
            this.startTime =this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM')
            this.getInfo()
            this.getDicts()
            this.enforceList()
@@ -233,11 +234,11 @@
                return options;
            },
            authFile() {
                if(!this.form.enforceReason){
                if(!this.form.enforceReason || !this.form.enforceReason.replace(/\s+/g, "")){
                    return '请填写主题'
                }
                if(!this.form.companyName){
                    return '请填写确认执法对象'
                if(!this.form.companyName || !this.form.companyName.replace(/\s+/g, "")){
                    return '请选择执法对象'
                }
                if(!this.form.companyId) {
                    return '请点击搜索确认执法对象'
@@ -248,11 +249,12 @@
                if(!this.form.enforceTypeName){
                    return '请选择执法类型'
                }
                if(!this.form.enforceContent) {
                console.log(!this.form.enforceContent.replace(/\s+/g, ""))
                if(!this.form.enforceContent || !this.form.enforceContent.replace(/\s+/g, "")) {
                    return '请填写执法内容'
                }
                if(!this.form.peers.length){
                    return '请添加同行人'
                    return '请选择随行人员'
                }
                return ''
            },
@@ -283,35 +285,38 @@
                })
            },
            search() {
                companyList({companyName: this.form.companyName}).then(val => {
                    if(val.data.code == 200){
                        if(!val.data.rows.length || !val.data.rows){
                            uni.showToast({
                                title: '没有符合的数据,请检查输入的执法对象',
                                icon: 'none',
                                duration: 3000
                            })
                        } else {
                            this.columns = [val.data.rows]
                            this.show = true
                        }
                // companyList({companyName: this.form.companyName}).then(val => {
                //     if(val.data.code == 200){
                //         if(!val.data.rows.length || !val.data.rows){
                //             uni.showToast({
                //                 title: '没有符合的数据,请检查输入的执法对象',
                //                 icon: 'none',
                //                 duration: 3000
                //             })
                //         } else {
                        
                    }
                })
                //         }
                //     }
                // })
                this.$refs.perPicker.open()
            },
            confirmSearch(e){
                const value =    this.columns[0].find(item => item.companyName == e.value[0].companyName)
                this.form.companyName = e.value[0].companyName
                let value = e
                // const value =    this.columns[0].find(item => item.companyName == e.value[0].companyName)
                this.form.companyName = e.companyName
                this.form.companyCode = value.companyCode
                this.form.companyId     = value.companyId    
                this.form.companyPhone = value.companyPhone
                this.form.companyUser = value.companyUser
                this.form.companyAddress = value.companyAddress
                this.show = false
                console.log(this.form.companyName)
            },
            confirmTime(e) {
                this.form.planTime = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour + ":" + "00:00"
                this.form.planTimeStr = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour
                this.form.planTimeStr = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour + ":" + "00"
                this.timeInit = this.$u.timeFormat(new Date(this.form.planTimeStr), 'yyyy-mm-dd hh:MM')
            },
            showTimeFun() {
                // this.showTime = true
@@ -333,6 +338,7 @@
                this.$refs.perpage.open(this.list)
            },
            selectValue(value) {
                this.form.peers = []
                this.list.forEach(item => {
                    if(value.includes(item.userId)) {
                        this.form.peers.push({
policy/reportDetails/reportDetails.vue
@@ -47,7 +47,7 @@
                <view class="form-input-item">
                    <view class="form-label require">执法照片</view>
                    <view>
                        <view class="show-hint">可上传9张图,单张不得超过10m</view>
                        <view class="show-hint">可上传9张图,单张不得超过10M</view>
                    </view>
                    <view>
                        <uploadImage ref="uploadImage"></uploadImage>
policy/reportPage/reportPage.scss
@@ -1,4 +1,5 @@
.page-box{
    padding-bottom: 180rpx;
    .list{
        margin: 20rpx 32rpx;
        .list-item{
policy/reportRecord/reportRecord.scss
@@ -1,4 +1,5 @@
.page-box{
    padding-bottom: 120rpx;
    .padding{
        padding: 20rpx 32rpx;
    }
policy/reportRecord/reportRecord.vue
@@ -53,7 +53,9 @@
                queryParams: {
                    pageNum: 1,
                    pageSize: 10,
                    orderStatus: 4
                    orderStatus: 4,
                    isAsc: "desc",
                    orderByColumn: "execute_time"
                },
                searchContent: ''
            }
@@ -68,7 +70,7 @@
                return
            }
            this.queryParams.pageNum++
            this.orderList()
            this.executeList()
        },
        methods: {
            clean() {
@@ -93,6 +95,7 @@
                executeList(this.queryParams).then(val => {
                    this.list = [...this.list, ...val.data.rows]
                    this.total = val.data.total
                    console.log(this.total)
                })
            }
        }
policy/scodePage/scodePage.vue
@@ -76,7 +76,7 @@
                                <text>申请时间:</text>{{item.applyTime}}
                            </view>
                            <view class="button-entery">
                                <view class="button" @click="doScanOrder(item.orderId)">确认执法</view>
                                <view class="button" v-if="item.isSelect" @click="doScanOrder(item.orderId, index)">确认执法</view>
                            </view>
                        </view>
                    </swiper-item>
@@ -98,7 +98,8 @@
                uqrcodeImage: '',
                list: [],
                userInfo: {},
                color: ''
                color: '',
            }
        },
        onReady() {
@@ -112,7 +113,10 @@
        methods: {
            getScanList(companyCode){
                getScanList({companyCode}).then(val => {
                    this.list = val.data.data
                    this.list = val.data.data.map(item => {
                        item['isSelect'] = true
                        return item
                    })
                    if(this.list.length) {
                        this.color = 'green'
                    } else {
@@ -134,13 +138,14 @@
                    this.userInfo = val.data.data
                })
            },
            doScanOrder(item) {
            doScanOrder(item, index) {
                doScanOrder(item).then(val => {
                    if(val.data.code == 200) {
                        uni.showToast({
                            title: '确认执法成功',
                            icon: 'none'
                        })
                        this.list[index].isSelect = false
                    }
                })
            }
policy/translate/translate.vue
@@ -1,8 +1,8 @@
<template>
    <view class="page-box">
        <view class="list">
            <view class="select-box" v-for="(item,index) in list" :key="index" :class="{start: isJudege}">
                <view class="select-image" v-if="isJudege" @click="setIsSelect(index)">
            <view class="select-box" @click="setIsSelect(index)" v-for="(item,index) in list" :key="index" :class="{start: isJudege}">
                <view class="select-image" v-if="isJudege" >
                    <image src="/static/policy/checkbox.png" mode="widthFix" v-show="item.isSelect"></image>
                    <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!item.isSelect"></image>
                </view>
@@ -29,13 +29,13 @@
                                <text>申请时间:</text>{{item.applyTime}}
                            </view>
                        </view>
                        <view class="button" v-if="!isJudege" @click="goStartJudeg([item.orderId])">
                        <view class="button" v-if="!isJudege" @click.self="goStartJudeg([item.orderId])">
                            审批
                        </view>
                    </view>
                </view>
            </view>
            <u-empty v-if="!list.length"></u-empty>
            <u-empty v-if="!list.length" style="margin-top: 200rpx;"></u-empty>
        </view>
        <view class="down" v-if="!isJudege">
            <view class="button" @click="goRecord">审批记录</view>
@@ -70,7 +70,9 @@
                queryms: {
                    pageNum: 1,
                    pageSize: 10,
                    checkStatus: 0
                    orderStatus: 1,
                    isAsc: "desc",
                    orderByColumn: "apply_time"
                },
                recordList: []
            }
@@ -116,6 +118,9 @@
                this.isJudege = true
            },
            setIsSelect(index){
                if(!this.isJudege) {
                    return
                }
                this.list[index].isSelect = !this.list[index].isSelect
            },
            allSelect() {
policy/translateRecord/translateRecord.vue
@@ -1,6 +1,6 @@
<template>
    <view class="page-box">
        <u-sticky bgColor="white">
        <u-sticky bgColor="white" :offsetTop="0">
            <view class="set-search">
                <u-search placeholder="请输入执法主题 " v-model="value" @clear="value = '';search()" @search="search" @blur="search"  shape="square" :showAction="false"></u-search>
            </view>
@@ -8,11 +8,12 @@
            <u-tabs :list="list1" @click="click" :current="current" :scrollable="false" bgColor="white"></u-tabs>
        </u-sticky>
        <view class="list">
            <view class="list-item" @click="goReport" v-for="(item,index) in list" :key="index">
            <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in list" :key="index">
                <view class="top-title">
                    <text>{{item.enforceReason}}</text>
                    <text class="status status2" v-if="item.checkStatus == 2">通过</text>
                    <text class="status status4" v-else>拒绝</text>
                    <text class="status status2" v-if="item.checkStatus == 2 || item.checkStatus == 1">通过</text>
                    <!-- <text class="status " v-if="item.checkStatus == 1">审批中</text> -->
                    <text class="status status4" v-if="item.checkStatus == -1">拒绝</text>
                </view>
                <view class="user-info">
                    <text>{{item.applyUser}}</text>
@@ -47,7 +48,9 @@
                current: 0,
                queryParams: {
                    pageNum: 1,
                    pageSize: 10
                    pageSize: 10,
                    isAsc: "desc",
                    orderByColumn: "apply_time"
                },
                    list1: [{
                                    name: '全部',
@@ -83,8 +86,10 @@
                this.queryParams.pageNum = 1
                this.enforceLogList()
            },
            goReport() {
            goReport(order) {
                uni.navigateTo({
                    url: `/policy/judgeApply/judgeApply?id=${order}&title=setTitle`
                })
            },
            click(e) {
                this.list = []
@@ -108,4 +113,7 @@
</style>
<style lang="scss" scoped>
    @import "./translateRecord.scss";
    /deep/ .u-sticky{
            position: -webkit-sticky;
    }
</style>
qiye/complaint/complaint.vue
@@ -38,12 +38,13 @@
                        <p>执法单位:{{item.executeDeptName}}</p>
                        <p>执法时间:{{item.executeTime}}</p>
                    </view>
                    <view class="r" @click="chakan()">
                    <view class="r" @click="chakan(item.id, item.orderId)">
                        去查看
                    </view>
                </view>
            </view>
        </view>
        <u-empty v-if="!list1.length"></u-empty>
        <!-- <view class="item">
            <img src="/static/i05.png" class="img" alt="" />
            <view class="right">
@@ -122,7 +123,7 @@
                total: 1,
            }
        },
        onShow() {
        onLoad() {
            this.list1 = []
            this.queryParams.pageNum = 1
            this.getList()
@@ -135,27 +136,27 @@
            this.getList()
        },
        methods: {
            chakan(id){
            chakan(id, orderId){
                uni.navigateTo({
                    url: `/qiye/complaint/details?id=${id}`
                    url: `/qiye/complaint/details?id=${id}&orderId=${orderId}`
                })
            },
            getList() {
                let data = uni.getStorageSync("qiyedata")
                //this.queryParams.companyId = data.companyId
                logList({...this.queryParams}).then(val => {
                    // console.log(val.data)
                    console.log(val.data)
                    this.total = val.data.total
                    this.list1 = [...this.list1,...val.data.rows]
                })
            },
            search(e){
                this.list1 = []
                this.queryParams.pageNum =1
                this.queryParams.companyName = e
                this.getList()
            },
            click(i) {
                this.list1 = []
                this.queryParams.pageNum = 1
                this.queryParams.complaintStatus = this.list[i.index].value
qiye/complaint/details.vue
@@ -16,7 +16,7 @@
                        执法类型
                    </view>
                    <view class="v">
                        司法检查
                        {{dictLabel}}
                    </view>
                </view>
                <view class="item">
@@ -24,7 +24,7 @@
                        执法人
                    </view>
                    <view class="v">
                        刘欢欢
                        {{details.executeUser}}
                    </view>
                </view>
                <view class="item">
@@ -32,7 +32,7 @@
                        执法部门
                    </view>
                    <view class="v">
                        农业局
                        {{details.executeDeptName}}
                    </view>
                </view>
                <view class="item">
@@ -40,18 +40,19 @@
                        企业
                    </view>
                    <view class="v">
                        汉庭酒店
                        {{details.companyName}}
                    </view>
                </view>
            </view>
            <view style="height: 20rpx;"></view>
            <template v-if="orderId">
            <view class="wbox">
                <view class="item">
                    <view class="k">
                        执法主题
                    </view>
                    <view class="v">
                        汉庭酒店司法检查233号文件
                            {{details.enforceReason}}
                    </view>
                </view>
                <view class="item">
@@ -60,17 +61,16 @@
                    </view>
                </view>
                <view class="imgbox">
                    <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" />
                    <img src="/static/i02.png" class="more" alt="" />
                    <img src="/static/i03.png" class="more" alt="" />
                    <img src="/static/i04.png" class="more" alt="" />
                        <img :src="baseUrl+item" v-for="(item,index) in orderDetailsMsg.regionImgs" :key="index" class="more" @click="imgclick(item)" alt="" />
                </view>
                <view class="item">
                    <view class="k">
                        执法结果
                    </view>
                    <view class="v" style="color: #EB4746;">
                        停业整顿
                            <!-- {{details.regionStatus == 0? "正常" : "停业整顿" }} -->
                            {{orderDetailsMsg.regionReason}}
                    </view>
                </view>
                <view class="item">
@@ -78,17 +78,51 @@
                        执法时间
                    </view>
                    <view class="v">
                        2024-10-10 16:24
                            {{details.executeTime}}
                    </view>
                </view>
            </view>
            <view style="height: 20rpx;"></view>
            </template>
            <view class="wbox2">
                <view class="t">
                    投诉记录
                </view>
                <view class="jilu">
                    <img src="/static/policy/icon.png" class="img" alt="" />
                <view class="jilu" :class="{start: item.nodeName == '发起投诉' || item.nodeName == '已办结', handler: item.nodeName == '处理中', nonde: index == nodeList.length - 1}" v-for="(item,index) in nodeList" :key="index">
                    <image src="/static/policy/icon.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '发起投诉'"/>
                    <image src="/static/guocheng.png" class="img" alt=""  mode="widthFix"  v-if="item.nodeName == '处理中'"/>
                    <image src="/static/policy/refject.png" class="img"  mode="widthFix" alt="" v-if="item.nodeName == '已驳回'"/>
                    <image src="/static/policy/icon.png" class="img" alt=""  mode="widthFix" v-if="item.nodeName == '已办结'"/>
                    <view class="font" style="width: calc(100% - 50rpx);">
                        <view class="h" >
                            <view class="s" >
                                {{item.nodeName}}
                            </view>
                            <view class="time">
                                {{item.nodeTime}}
                            </view>
                        </view>
                        <view class="b">
                            <view class="name" style="margin-bottom: 18rpx;">
                                {{item.nodeUser}}
                            </view>
                            <view class="p" style="margin-bottom: 18rpx;">
                                <span>申诉主题:</span>
                                {{dictLabel1}}
                            </view>
                            <view class="p">
                                <span>申诉内容:</span>
                                {{details.complaintReason}}
                            </view>
                            <view class="p"  v-if="item.nodeName == '已驳回'">
                                <span>申诉内容:</span>
                                {{item.nodeReason}}
                            </view>
                        </view>
                    </view>
                </view>
                <!-- <view class="jilu">
                    <image src="/static/policy/refject.png" class="img" alt="" />
                    <view class="font">
                        <view class="h">
                            <view class="s">
@@ -100,25 +134,25 @@
                        </view>
                        <view class="b">
                            <view class="name">
                                林小零
                                {{details.companyUser}}
                            </view>
                            <view class="p">
                                <span>申诉主题:</span>
                                汉庭酒店司法检查233号文件
                                {{dictLabel1}}
                            </view>
                            <view class="p">
                                <span>申诉内容:</span>
                                我是一个内容;我是一个内容;我是一个内容;我是一个内容
                                {{details.complaintReason}}
                            </view>
                        </view>
                    </view>
                </view>
                <view class="jilu">
                    <img src="/static/policy/refject.png" class="img" alt="" />
                    <image src="/static/guocheng.png" class="img" alt=""  />
                    <view class="font">
                        <view class="h">
                            <view class="s">
                                已驳回
                                处理中
                            </view>
                            <view class="time">
                                2024-06-07 12:14
@@ -126,19 +160,20 @@
                        </view>
                        <view class="b">
                            <view class="name">
                                林小零
                                {{details.companyUser}}
                            </view>
                            <view class="p">
                                <span>申诉主题:</span>
                                汉庭酒店司法检查233号文件
                                {{dictLabel1}}
                            </view>
                            <view class="p">
                                <span>申诉内容:</span>
                                我是一个内容;我是一个内容;我是一个内容;我是一个内容
                                {{details.complaintReason}}
                            </view>
                        </view>
                    </view>
                </view>
             -->
            </view>
        </view>
        
@@ -146,18 +181,81 @@
</template>
<script>
    import { complaintDetails, orderNodeList, orderComplaintNodeList } from '@/api/qiye.js'
    import { orderDetails } from '@/api/policy.js'
    import { config } from '@/common/config.js'
    import { getDicts } from '@/api/data.js'
    export default {
        data() {
            return {
                details: {},
                orderId: "",
                orderDetailsMsg: {},
                baseUrl: config.baseUrl,
                dictLabel: "",
                dictLabel1: "",
                nodeList: []
            }
        },
        onLoad(options) {
            this.complaint(options.id)
            if(options.orderId) {
                this.orderId = options.orderId
                this.orderDetails()
            } else {
                this.orderNodeList(options.id)
            }
        },
        methods: {
            orderNodeList(id) {
                orderNodeList({id}).then(val => {
                    // console.log(val)
                    this.nodeList = val.data.data
                })
            },
            // 获取投诉类型
            getComtype() {
                getDicts('complaint_type').then(val => {
                    console.log(val)
                    this.dictLabel1 = val.data.data.find(item => item.dictCode == this.details.complaintType).dictLabel
                })
            },
            enforceType() {
                getDicts('enforce_type').then(val => {
                    console.log(val)
                    this.dictLabel = val.data.data.find(item => item.dictCode == this.orderDetailsMsg.enforceType).dictLabel
                })
            },
            imgclick(url) {
                url = this.baseUrl + url
                uni.previewImage({
                    urls: [url]
                })
            },
            complaint(details) {
                complaintDetails(details).then(val => {
                    // console.log(val.data.data)
                    this.details = val.data.data
                    this.getComtype()
                })
            },
            orderDetails() {
                orderDetails({ orderId: this.orderId}).then(val => {
                    // console.log(val.data.data)
                    val.data.data.regionImgs = val.data.data.regionImgs.split(",")
                    this.orderDetailsMsg = val.data.data
                    this.orderComplaintNodeList()
                    this.enforceType()
                })
            },
            orderComplaintNodeList() {
                orderComplaintNodeList({ orderId: this.orderId }).then(val => {
                    console.log(val.data.data, 'val===')
                    this.nodeList = val.data.data
                })
            }
        }
    }
</script>
@@ -247,16 +345,33 @@
        }
    
    }
    .jilu{
        display: flex;
        justify-content: space-between;
        padding: 24rpx;
        position: relative;
        &::before{
            content: '';
            display: inline-block;
            width: 2rpx;
            height: 100%;
            background: #eb47460d;
            position: absolute;
            left: 44rpx;
            top: 30rpx;
            z-index: 99;
        }
        .img{
            width: 70rpx;
            width: 50rpx;
            height: 50rpx;
            margin-right: 24rpx;
            position: relative;
            z-index: 100;
        }
        .font{
            width: calc(100% - 70rpx);
            .h{
                display: flex;
                justify-content: space-between;
@@ -292,4 +407,19 @@
            }
        }
    }
    .handler{
        &::before {
            background: #fe7b320d;
        }
    }
    .start{
        &::before{
            background: #E7F8F0;
        }
    }
    .nonde{
        &::before{
            background: none;
        }
    }
</style>
qiye/components/bottom.vue
@@ -38,17 +38,17 @@
                }
                this.active = number
                if(number==0){
                    uni.navigateTo({
                    uni.redirectTo({
                        url: `/qiye/qiyeIndex/qiyeIndex`
                    })
                }
                if(number==1){
                    uni.navigateTo({
                    uni.redirectTo({
                        url: `/qiye/record/record`
                    })
                }
                if(number==2){
                    uni.navigateTo({
                    uni.redirectTo({
                        url: `/qiye/my/my`
                    })
                }
@@ -66,7 +66,7 @@
        display: flex;
        justify-content: space-around;
        align-items: center;
        padding: 10rpx 0;
        padding: 10rpx 0 40rpx;
        background-color: white;
        font-size: 20rpx;
        color: #7E8596FF;
qiye/my/my.vue
@@ -17,7 +17,7 @@
            </view>
            <view class="show-phone-number">
                <text class="label">联系电话</text>
                <text>{{msg.companyPhone}}</text>
                <text>{{userPhone||""}}</text>
            </view>
            <view class="wbox">
                <view class="item" @click="tousu()">
@@ -60,7 +60,8 @@
<script>
    import tabsCom from '@/qiye/components/bottom.vue'
    import { getInfo } from '@/api/auth.js'
    import {  company } from '@/api/qiye.js'
    export default {
        components: {
            tabsCom
@@ -68,11 +69,23 @@
        data() {
            return {
                activeNumber: 2,
                msg:uni.getStorageSync("qiyedata"),
                src: '/static/policy/header.png'
                msg: {},
                src: '/static/policy/header.png',
                userPhone: ""
            }
        },
        onShow() {
            this.httoInfo()
        },
        methods: {
            httoInfo() {
                getInfo().then(val => {
                    this.userPhone = val.data.data.phonenumber
                    company(val.data.data.deptId).then(val => {
                        this.msg = val.data.data
                    })
                })
            },
            goChangePhone() {
                uni.navigateTo({
                    url: '/policy/changePhone/changePhone?code=02'
qiye/qiyeIndex/qiyeIndex.vue
@@ -1,17 +1,17 @@
<template>
    <view>
        <img src="/static/head.png" class="head" alt="" />
        <view class="hqzc">
        <view class="hqzc" @click="more1()">
            <img src="/static/hqzc.png" class="img" alt="" />
            <view class="line"></view>
            <view class="font">
                <p v-for="(item,index) in list1" :key="index">{{item.docTitle}}</p>
                <p v-for="(item,index) in list1" class="u-line-1" :key="index">{{item.docTitle}}</p>
            </view>
            <img src="/static/i06.png" class="more" @click="more1()" alt="" />
            <img src="/static/i06.png" class="more"  alt="" />
        </view>
        <view class="wbox">
            <view class="name">
                {{msg.companyUser}}
                {{msg.companyName}}
            </view>
            <view class="imgbox">
                <image :src="uqrcodeImage" mode="widthFix" class="qrcode-1"></image>
@@ -21,7 +21,7 @@
            
        </view>
        <view style="height: 50rpx;"></view>
        <uqrcode class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode" :value="companyCode" :options="{ backgroundColor: '#000000',useDynamicSize: true,  areaColor: '#ffffff', foregroundColor: '#ffffff' }"></uqrcode>
        <uqrcode  :errorCorrectLevel="1" class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode" :value="companyCode" :options="{ backgroundColor: '#000000',useDynamicSize: true,  areaColor: '#ffffff', foregroundColor: '#ffffff' }"></uqrcode>
        <tabsCom :activeNumber.sync="activeNumber"></tabsCom>
        
    </view>
@@ -31,13 +31,13 @@
    import tabsCom from '@/qiye/components/bottom.vue'
    import {  docList } from '@/api/index.js'
    import {  company } from '@/api/qiye.js'
    import { getInfo as httoInfo} from '@/api/auth.js'
    export default {
        components: {
            tabsCom
        },
        onShow() {
            this.getInfo()
            this.httoInfo()
        },
        data() {
            return {
@@ -50,16 +50,25 @@
            }
        },
        onReady() {
            this.$refs.uqrcode.toTempFilePath({
              success: res => {
                this.uqrcodeImage = res.tempFilePath
              }
            });
        },
        onLoad(options) {
            this.companyId = options.id||33
            // if(options.id) {
            //     this.companyId = options.id||33
            // }
            //  else {
            //     this.companyId = uni.getStorageSync('qiyedata').companyId
            //  }
        },
        methods: {
            httoInfo() {
                httoInfo().then(val => {
                    console.log(val.data.data.deptId)
                    this.companyId = val.data.data.deptId
                    this.getInfo()
                })
            },
            more1(){
                uni.navigateTo({
                    url: `/pages/hqzc/list`
@@ -77,9 +86,16 @@
                })
                company(this.companyId).then(val => {
                    this.msg = val.data.data
                    console.log(this.msg)
                    this.companyCode = this.msg.companyCode
                    uni.setStorageSync('qiyedata', this.msg)
                    setTimeout(() => {
                        this.$refs.uqrcode.toTempFilePath({
                          success: res => {
                            this.uqrcodeImage = res.tempFilePath
                          }
                        });
                    }, 500)
                    // this.msg.createTime = this.msg.createTime.slice(0, 10)
                    // this.msg.docContent = decodeURIComponent(this.msg.docContent)
                    // console.log(this.msg.docContent)
@@ -136,7 +152,7 @@
            color: #4A4E60;
            margin-right: 50rpx;
            width: 450rpx;
            text-align: center;
            // text-align: center;
        }
    }
    .hide-canvas{
qiye/record/details.vue
@@ -8,7 +8,7 @@
        <view class="donw-box"></view>
        <view class="page-main">
            <view class="title">
                <template v-if="msg.isEva==0">已执法待评价</template>
                <template v-if="msg.isEva==0">未评价</template>
                <template v-if="msg.isEva==1">已评价</template>
                <template v-if="msg.orderStatus==2">待执法</template>
            </view>
@@ -26,7 +26,7 @@
                        执法人
                    </view>
                    <view class="v">
                        {{msg.executeUser}}
                        {{msg.executeUser || msg.applyUser}}
                    </view>
                </view>
                <view class="item">
@@ -34,7 +34,7 @@
                        执法部门
                    </view>
                    <view class="v">
                        {{msg.executeDeptName}}
                        {{msg.executeDeptName || msg.applyDeptName}}
                    </view>
                </view>
                <view class="item">
@@ -60,9 +60,14 @@
                    <view class="k">
                        执法过程
                    </view>
                    <view class="v" v-if="!img.length">
                        {{msg.regionReason || '执法过程待上报'}}
                </view>
                <view class="imgbox">
                </view>
                <view class="imgbox"  v-if="img.length">
                    <template >
                    <img v-for="(item,index) in img" :key="index" :src="item" class="more" alt="" @click="imgclick(item)" />
                    </template>
                    
                    <!-- <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" />
                    <img src="/static/i02.png" class="more" alt="" />
@@ -74,7 +79,7 @@
                        执法结果
                    </view>
                    <view class="v" style="color: #EB4746;">
                        {{msg.regionReason}}
                        {{msg.regionReason || '执法结果待上报'}}
                    </view>
                </view>
                <view class="item">
@@ -82,7 +87,7 @@
                        执法时间
                    </view>
                    <view class="v">
                        {{msg.executeTime}}
                        {{msg.inTime || "待执法"}}
                    </view>
                </view>
            </view>
@@ -153,7 +158,7 @@
                </template>
                
                
                <view class="sbox">
                <view class="sbox" v-if="msg.evaluateVo.questionRemark">
                    <view class="t2">
                        对我们的评价
                    </view>
@@ -163,7 +168,7 @@
                </view>
            </view>
        </view>
        <view class="bottom">
        <view class="bottom" v-if="msg.orderStatus==3 || msg.orderStatus== 4">
            <view class="one" v-if="msg.isEva==1">
                <view class="b1" @click="open()">
                    投诉
@@ -199,7 +204,7 @@
                        投诉内容
                    </view>
                    <view class="margin-top">
                        <u-textarea v-model="complaintReason" placeholder="请输入..."></u-textarea>
                        <u-textarea :cursorSpacing="70" v-model="complaintReason" placeholder="请输入..."></u-textarea>
                    </view>
                </view>
                <view class="down">
@@ -243,14 +248,20 @@
                // const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
                // this.type = value.dictLabel
            })
            this.getdata()
        },
        onShow(options) {
            this.getdata()
        },
        methods: {
            getdata(){
                order(this.id).then(val => {
                    this.msg = val.data.data
                    getDicts('enforce_type').then(val => {
                        const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
                        this.type = value.dictLabel
                    })
                    let arr = this.msg.regionImgs.split(",");
                    for(let i = 0;i<arr.length;i++){
                        this.img.push(this.baseUrl+arr[i])
@@ -261,11 +272,7 @@
                            this.qlist[i].remark = Number(this.qlist[i].remark)
                        }
                    }
                    console.log(this.img)
                    getDicts('enforce_type').then(val => {
                        const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
                        this.type = value.dictLabel
                    })
                })
            },
            daxing(a) {
qiye/record/evaluate.vue
@@ -65,7 +65,7 @@
                <view class="t2" style="margin-bottom: 30rpx;">
                    对我们的评价
                </view>
                <u-textarea v-model="questionRemark" placeholder="请输入..."></u-textarea>
                <u-textarea :cursorSpacing="70" v-model="questionRemark" placeholder="请输入..."></u-textarea>
            </view>
        </view>
        <view style="height: 200rpx;"></view>
qiye/record/record.vue
@@ -1,6 +1,10 @@
<template>
    <view>
        <u-sticky bgColor="white">
            <u-navbar title="执法记录" :autoBack="true" placeholder>
                <view slot="left"></view>
            </u-navbar>
            <u-tabs :list="list" @change="click" :current="current" :scrollable="false" bgColor="white"></u-tabs>
        </u-sticky>
        <view class="item" v-for="(item,index) in list1">
@@ -28,8 +32,8 @@
                </view>
                <view class="box">
                    <view class="l">
                        <p>执法单位:{{item.executeDeptName}}</p>
                        <p>执法时间:{{item.executeTime}}</p>
                        <p>执法单位:{{item.executeDeptName|| item.applyDeptName}}</p>
                        <p>执法时间:{{item.inTime || item.planTime}}</p>
                    </view>
                    <view class="r" @click="chakan(item.orderId)">
                        去查看
@@ -37,6 +41,7 @@
                </view>
            </view>
        </view>
        <u-empty v-if="!list1.length"></u-empty>
        <!-- <view class="item">
            <img src="/static/i05.png" class="img" alt="" />
            <view class="right">
@@ -89,7 +94,9 @@
<script>
    import tabsCom from '@/qiye/components/bottom.vue'
    import { companyList } from '@/api/qiye.js'
    import {
        companyList
    } from '@/api/qiye.js'
    export default {
        components: {
@@ -100,12 +107,24 @@
                activeNumber: 1,
                list: [{
                    name: '全部',
                    value: {
                    }
                }, {
                    name: '待评价',
                    value: {
                        isEva: 0
                    }
                }, {
                    name: '未执法',
                    value: {
                        orderStatus: 2
                    }
                }, {
                    name: '已评价',
                    value: {
                        isEva: 1
                    }
                }],
                current: 0,
                list1:[],
@@ -138,7 +157,10 @@
            getList() {
                let data = uni.getStorageSync("qiyedata")
                this.queryParams.companyId = data.companyId
                companyList({...this.queryParams}).then(val => {
                companyList({
                    ...this.queryParams,
                    ...this.list[this.current].value
                }).then(val => {
                    // console.log(val.data)
                    this.total = val.data.total
                    this.list1 = [...this.list1,...val.data.rows]
@@ -147,19 +169,18 @@
            click(i) {
                this.list1 = []
                this.queryParams.pageNum = 1
                console.log(i.index)
                // if(i.index==0){
                this.current = i.index
                // console.log(i.index)
                    
                // if(i.index==1){
                //     this.queryParams.isEva = 0
                // }
                if(i.index==1){
                    this.queryParams.isEva = 0
                }
                if(i.index==2){
                    this.queryParams.orderStatus = 2
                }
                if(i.index==3){
                    this.queryParams.isEva = 1
                }
                // if(i.index==2){
                //     this.queryParams.orderStatus = 2
                // }
                // if(i.index==3){
                //     this.queryParams.isEva = 1
                // }
                this.getList()
            }
        }
@@ -172,7 +193,6 @@
    }
</style>
<style lang="scss" scoped>
    .item{
        background: #fff;
        border-radius: 5px;
@@ -180,15 +200,19 @@
        box-sizing: border-box;
        margin: 20rpx 32rpx;
        display: flex;
        .img{
            width: 56rpx;
            height: 56rpx;
        }
        .right{
            width: 90%;
            .name{
                display: flex;
                justify-content: space-between;
                .l{
                    color: #202d44;
                    font-size: 32rpx;
@@ -196,20 +220,24 @@
                    margin-bottom: 24rpx;
                    width: 80%;
                }
                .r{
                    font-size: 28rpx;    
                    width: 20%;
                    text-align: right;
                }
            }
            .box{
                display: flex;
                justify-content: space-between;
                .l{
                    font-size: 26rpx;
                     color: #7e8593;
                     max-width: 80%;
                }
                .r{
                    width: 132rpx;
                    height: 64rpx;
@@ -224,15 +252,18 @@
            }
        }
    }
    .color1{
        color: #FE7B32;
        //cheng
    }
    .color2{
        color: #EB4746;
        
        //hong
    }
    .color3{
        color: #3EB47A;
        //lv
static/guocheng.png
uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue
@@ -53,6 +53,14 @@
                type: Number,
                default: 2000,
            },
            startMonth: {
                type: Number,
                default: 0
            },
            startDay: {
                type: Number,
                default: 0
            },
            endYear: {
                type: Number,
                default: 2099,
@@ -68,7 +76,7 @@
            timeInit: {
                type: String,
                default: '', //new Date('2023-5-20').valueOf()
            },
            }
        },
        data() {
@@ -132,6 +140,7 @@
            initMonths() {
                const months = [];
                for (let month = 1; month <= 12; month++) {
                    months.push(month);
                    if (this.currentDatetime.getMonth() + 1 === month) {