王恒
2025-09-04 616e6be49d3f64f2397cb1b1c05d2c06df3db9a3
'新增综合查一次详情、调整二期新增的内容'
3个文件已添加
15个文件已修改
1643 ■■■■ 已修改文件
api/policy.js 146 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/qiye.js 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/config.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/applyLook/applyLook.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/applyRecord/applyRecord.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/policyApply/officePopup.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/policyApply/policyApply.vue 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/policyApply/rectifyPicker.vue 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportDetails/reportDetails.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportPage/reportPage.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportRecord/reportRecord.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/scodePage/scodePage.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/translate/translate.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/compositeDetails.vue 494 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/details.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/evaluate.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/record.vue 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/policy.js
@@ -1,73 +1,185 @@
import Vue from 'vue';
import { config } from '@/common/config.js'
import {
  config
} from '@/common/config.js'
const http = uni.$u.http
// 新增执法单
export function orderAdd(param) {
  return http.post('/enforce/order/add', param, { custom: { loading: true }});
  return http.post('/enforce/order/add', param, {
    custom: {
      loading: true
    }
  });
}
// 查询企业 
export function companyList(data){
    return http.get('/system/company/list', {params: data}, { custom: { loading: true }});
  return http.get('/system/company/list', {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 执法人员 /enforce/peer/list
export function enforceList(data) {
    return http.get('/enforce/order/peerList', {params: data}, { custom: { loading: true }});
  return http.get('/enforce/order/peerList', {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 申请记录 
export function orderList(data) {
    return http.get('/enforce/order/list', {params: data}, { custom: { loading: true }});
  return http.get('/enforce/order/list', {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 获取执法单 详情 /enforce/order/{orderId}
export function orderDetails(data) {
    return http.get(`/enforce/order/${data.orderId}`, {params: data}, { custom: { loading: true }});
  return http.get(`/enforce/order/${data.orderId}`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 获取执法单 详情 /enforce/order/{orderId}
export function orderDetailsLog(data) {
    return http.get(`/enforce/complaint/log/${data.id}`, {params: data}, { custom: { loading: true }});
  return http.get(`/enforce/complaint/log/${data.id}`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 执法审批列表 
export function checkLogList(data) {
    return http.get(`/enforce/order/checkList`, {params: data}, { custom: { loading: true }});
  return http.get(`/enforce/order/checkList`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 执法审批
export function checkUpd(data) {
    return http.post(`/tool/check/checkOrder`, data, { custom: { loading: true }});
  return http.post(`/tool/check/checkOrder`, data, {
    custom: {
      loading: true
    }
  });
}
// 执法单节点 
export function orderNodeList(data) {
    return http.get(`/enforce/order/orderNodeList`, {params: data}, { custom: { loading: true }});
  return http.get(`/enforce/order/orderNodeList`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 执法审批记录 /enforce/check/log/list
export function enforceLogList(data) {
    return http.get(`/enforce/check/log/list`, {params: data}, { custom: { loading: true }});
  return http.get(`/enforce/check/log/list`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 审批人审批记录 /enforce/order/checkedList
export function checkedList(data) {
    return http.get(`/enforce/order/checkedList`, {params: data}, { custom: { loading: true }});
  return http.get(`/enforce/order/checkedList`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 扫码接口 
export function getScanList(data) {
    return http.get(`/enforce/order/getScanList`, {params: data}, { custom: { loading: true }});
  return http.get(`/enforce/order/getScanList`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 确认执法 /enforce/order/doScanOrder/{orderId}
export function doScanOrder(data) {
    return http.post(`/enforce/order/doScanOrder/${data}`, {}, { custom: { loading: true }});
  return http.post(`/enforce/order/doScanOrder/${data}`, {}, {
    custom: {
      loading: true
    }
  });
}
// 带上报执法列表 /enforce/order/execute/list
export function executeList(data) {
    return http.get(`/enforce/order/execute/list`, {params: data}, { custom: { loading: true }});
  return http.get(`/enforce/order/execute/list`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 修改执法单 /enforce/order/upd
export function orderUpd(data) {
    return http.post(`/enforce/order/doResultOrder`, data, { custom: { loading: true }});
  return http.post(`/enforce/order/doResultOrder`, data, {
    custom: {
      loading: true
    }
  });
}
// /commonList
export function commonList(data) {
    return http.get(`/enforce/order/commonList`, {params: data}, { custom: { loading: true }});
  return http.get(`/enforce/order/commonList`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 获取科室列表
export function officeList(data) {
  return http.get(`/system/dept/list`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 获取整改计划列表
export function getRectifyList(data) {
  return http.get(`/enforce/order/enforceOrder/list`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
api/qiye.js
@@ -1,58 +1,133 @@
import Vue from 'vue';
import { config } from '@/common/config.js'
import {
  config
} from '@/common/config.js'
const http = uni.$u.http
// 企业详情
export function company(id){
    return http.get('/system/company/'+id, { custom: { loading: true }});
  return http.get('/system/company/' + id, {
    custom: {
      loading: true
    }
  });
}
// 执法记录列表
export function companyList(data){
    return http.get('/enforce/order/companyList', {params: data}, { custom: { loading: true }});
  return http.get('/enforce/order/companyList', {
    params: data
  }, {
    custom: {
      loading: true
}
  });
}
// 综合查一次执法记录列表
export function togetherList(data) {
  return http.get('/enforce/order/companyListNew', {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 获取执法评价配置详情
export function evaluate(){
    return http.get('/enforce/evaluate/detail', { custom: { loading: true }});
  return http.get('/enforce/evaluate/detail', {
    custom: {
      loading: true
    }
  });
}
// 保存执法评价
export function saveOrder(param) {
  return http.post('/enforce/evaluate/saveOrder', param, { custom: { loading: true }});
  return http.post('/enforce/evaluate/saveOrder', param, {
    custom: {
      loading: true
    }
  });
}
// 发起投诉
export function orderComplaint(param) {
  return http.post('/enforce/order/orderComplaint', param, { custom: { loading: true }});
  return http.post('/enforce/order/orderComplaint', param, {
    custom: {
      loading: true
    }
  });
}
// 投诉列表
export function logList(data){
    return http.get('/enforce/complaint/log/list', {params: data}, { custom: { loading: true }});
  return http.get('/enforce/complaint/log/list', {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// complaintList
// 投诉列表
export function complaintList(data){
    return http.get('/enforce/complaint/log/complaintList', {params: data}, { custom: { loading: true }});
  return http.get('/enforce/complaint/log/complaintList', {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 建议列表
export function pleaseList(data){
    return http.get('/enforce/complaint/log/pleaseList', {params: data}, { custom: { loading: true }});
  return http.get('/enforce/complaint/log/pleaseList', {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// 投诉详情
export function complaint(id){
    return http.get('/enforce/complaint/'+id, { custom: { loading: true }});
  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 }});
  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 }});
  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 }});
  return http.get('/enforce/complaint/log/orderNodeList', {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
// /system/company/list
@@ -62,5 +137,11 @@
// /enforce/order/confirm/{orderId}
export function confirmOrderId(data){
    return http.post(`/enforce/order/confirm/${data.orderId}`,{params: data}, { custom: { loading: true }});
  return http.post(`/enforce/order/confirm/${data.orderId}`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
common/config.js
@@ -2,14 +2,14 @@
  hasHead: true,
  authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=',
  webURL: 'https://jmy.jinmingyuan.com/ecosphere-user',
  serverTempl: "http://172.16.60.251:8086",
  serverTempl: "http://172.16.60.145:8086",
  socketTempl: "wss://yqzx.jinmingyuan.com/wsPerCode",
  h5Temp: "https://yqzx.jinmingyuan.com/ecosphere-h5",
  serverUrl: 'http://172.16.60.251:8086',
  serverUrl: 'http://172.16.60.145:8086',
  h5Url: 'http://172.16.60.172:8086/service-merchant',
  ftpUrl: 'https://yqzx.jinmingyuan.com/file',
  // ftpUrl: 'https://echftp.jinmingyuan.com',
  baseUrl: 'http://172.16.60.251:8086',
  baseUrl: 'http://172.16.60.145:8086',
  wx_appid: 'wxad8cc511da676bd4',
  ali_appid: '2021003199690698'
}
pages.json
@@ -27,166 +27,142 @@
        },
        {
            "path" : "pages/registerCompany/registerCompany",
            "style" :
            {
      "style": {
                "navigationBarTitleText" : "企业注册"
            }
        },
        {
            "path" : "pages/companyIndex/companyIndex",
            "style" :
            {
      "style": {
                "navigationBarTitleText" : "企业首页"
            }
        },
        {
            "path" : "pages/hqzc/list",
            "style" :
            {
      "style": {
                "navigationBarTitleText" : "惠企政策"
            }
        },
        {
            "path" : "pages/hqzc/details",
            "style" :
            {
      "style": {
                "navigationBarTitleText" : "惠企政策"
            }
        },
        {
            "path" : "pages/message/list",
            "style" :
            {
      "style": {
                "navigationBarTitleText" : "信息公示"
            }
        },
        {
            "path" : "pages/message/details",
            "style" :
            {
      "style": {
                "navigationBarTitleText" : "信息公示详情",
                "navigationStyle": "custom"
            }
        },
        {
            "path" : "pages/visitiorRegis/visitiorRegis",
            "style" :
            {
      "style": {
                "navigationBarTitleText" : "来访人员登记"
            }
        },
        {
            "path" : "pages/index/home",
            "style" :
            {
      "style": {
                "navigationBarTitleText" : ""
            }
        }
    ],
    "subPackages": [
        {
  "subPackages": [{
            "root": "policy",
            "pages": [
                {
      "pages": [{
                    "path" : "policyIndex/policyIndex",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "首页",
                        "navigationStyle": "custom"
                    }
                },
                {
                    "path" : "policyApply/policyApply",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "执法申请"
                    }
                },
                {
                    "path" : "changePhone/changePhone",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "修改手机号"
                    }
                },
                {
                    "path" : "dataLook/dataLook",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "数据看板",
                        "backgroundColor": "#1171E0"
                    }
                },
                {
                    "path" : "reportPage/reportPage",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "执法结果上报"
                    }
                },
                {
                    "path" : "reportDetails/reportDetails",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "上报结果"
                    }
                },
                {
                    "path" : "reportRecord/reportRecord",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "上报记录"
                    }
                },
                {
                    "path" : "applyRecord/applyRecord",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "记录查询"
                    }
                },
                {
                    "path" : "applyRecordDetails/applyRecordDetails",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "申请详情",
                        "navigationStyle": "custom"
                    }
                },
                {
                    "path" : "translate/translate",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "执法审批"
                    }
                },
                {
                    "path" : "translateRecord/translateRecord",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "审批记录"
                    }
                },
                {
                    "path" : "scodePage/scodePage",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "",
                        "navigationStyle": "custom"
                    }
                },
                {
                    "path" : "judgeApply/judgeApply",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : "审批详情",
                        "navigationStyle": "custom"
                    }
                },
                {
                    "path" : "applyLook/applyLook",
                    "style" :
                    {
          "style": {
                        "navigationBarTitleText" : ""
                    }
                }
@@ -196,16 +172,14 @@
            "root": "qiye",
            "pages": [{
                "path" : "qiyeIndex/qiyeIndex",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "my/my",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "",
                    "navigationStyle": "custom"
                    
@@ -213,16 +187,14 @@
            },
            {
                "path" : "record/record",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "执法记录",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "record/details",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "执法信息",
                    "navigationStyle": "custom"
                    
@@ -230,63 +202,61 @@
            },
            {
                "path" : "record/evaluate",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "评价"
                }
            },
            {
                "path" : "complaint/complaint",
                "style" :
          "path": "record/compositeDetails",
          "style": {
            "navigationBarTitleText": "执法记录",
            "navigationStyle": "custom"
          }
        },
                {
          "path": "complaint/complaint",
          "style": {
                    "navigationBarTitleText" : "投诉记录"
                }
            },
            {
                "path" : "complaint/details",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "complaint/details1",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "switchPhone/switchPhone",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "切换企业"
                }
            },
            {
                "path" : "proposal/proposal",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "投诉"
                }
            },
            {
                "path" : "proposal1/proposal1",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "建议"
                }
            },
            {
                "path" : "proprsalRecord/proprsalRecord",
                "style" :
                {
          "style": {
                    "navigationBarTitleText" : "建议记录"
                }
            }
            ]
        }
    ],
policy/applyLook/applyLook.vue
@@ -2,7 +2,8 @@
    <view class="page-box">
        <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>
        <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>
@@ -10,17 +11,18 @@
        <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" 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>{{item.enforceReason}}<text class="together" v-if="item.orderType == 2">(综合检查)</text></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>
          <text>{{item.applyUser || ''}}</text>
                    <!-- <view class="driver"></view> -->
                </view>
                <view class="user-info">
                    <text>{{item.applyDeptName}}</text>
          <text>{{item.applyDeptName || item.applyDeptNames || ''}}</text>
                </view>
                <view class="set-line">
                    <text>执法对象:</text>{{item.companyName}}
@@ -29,7 +31,7 @@
                <view class="set-flex set-start set-flex-content-between">
                    <view>
                        <view class="set-line1">
                            <text>执法时间:</text>{{item.planTime}}
              <text>执法时间:</text>{{item.planTime || item.planMonth || ''}}
                        </view>
                        <view class="set-line1">
                            <text>申请时间:</text>{{item.applyTime}}
@@ -43,7 +45,9 @@
</template>
<script>
    import { commonList } from '@/api/policy.js'
  import {
    commonList
  } from '@/api/policy.js'
    export default {
        data() {
            return {
@@ -120,7 +124,10 @@
            },
            orderList() {
                const userInfo = uni.getStorageSync('userInfo')
                commonList({...this.queryParams, ...this.list1[this.current].value}).then(val => {
        commonList({
          ...this.queryParams,
          ...this.list1[this.current].value
        }).then(val => {
                    this.total = val.data.total
                    this.dataList = [...this.dataList,...val.data.rows]
                })
@@ -141,7 +148,14 @@
</style>
<style lang="scss" scoped>
    @import "./applyLook.scss";
    ::v-deep .u-sticky{
            position: -webkit-sticky;
    }
  .together {
    margin-left: 10rpx;
    font-size: 24rpx;
    color: #ff0000;
  }
</style>
policy/applyRecord/applyRecord.vue
@@ -2,7 +2,8 @@
    <view class="page-box">
        <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>
        <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="true" bgColor="white"></u-tabs>
@@ -11,16 +12,17 @@
            <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" 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" 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>
          <text>{{item.applyUser || ''}}</text>
                    <!-- <view class="driver"></view> -->
                </view>
                <view class="user-info">
                    <text>{{item.applyDeptName}}</text>
          <text>{{item.applyDeptName || item.applyDeptNames || ''}}</text>
                </view>
                <view class="set-line">
                    <text>执法对象:</text>{{item.companyName}}
@@ -29,7 +31,7 @@
                <view class="set-flex set-start set-flex-content-between">
                    <view>
                        <view class="set-line1">
                            <text>执法时间:</text>{{item.planTime}}
              <text>执法时间:</text>{{item.planTime || item.planMonth || ''}}
                        </view>
                        <view class="set-line1">
                            <text>申请时间:</text>{{item.applyTime}}
@@ -43,7 +45,9 @@
</template>
<script>
    import { orderList } from '@/api/policy.js'
  import {
    orderList
  } from '@/api/policy.js'
    export default {
        data() {
            return {
@@ -124,7 +128,10 @@
                this.orderList()
            },
            orderList() {
                orderList({...this.queryParams, ...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]
                })
@@ -145,6 +152,7 @@
</style>
<style lang="scss" scoped>
    @import "./applyRecord.scss";
    ::v-deep .u-sticky{
            position: -webkit-sticky;
    }
policy/policyApply/officePopup.vue
New file
@@ -0,0 +1,125 @@
<template>
  <u-popup mode="button" :safeAreaInsetBottom="false" :show="officeShow" @close="close" @open="open" z-index="8000"
    bgColor="#fff">
    <view class="bg-box">
      <view class="title">选择执法部门</view>
      <scroll-view scroll-y="true" style="height: 500rpx;margin-top: 20rpx; margin-bottom: 100rpx;">
        <view v-if="list.length">
          <u-checkbox-group iconPlacement="right" v-model="checkboxValue" placement="column" @change="checkboxChange">
            <u-checkbox :customStyle="{marginBottom: '40rpx', }" v-for="(item, index) in list" :key="index"
              :name="item.deptId" :label="item.deptName">
            </u-checkbox>
          </u-checkbox-group>
        </view>
        <view class="set-color" v-else>
          <view class="set-center">
            <u-icon name="file-text" size="30" color="gray"></u-icon>
            <view style="width: 100%;margin-top: 20rpx;">暂无数据</view>
          </view>
        </view>
      </scroll-view>
      <view class="set-flex set-flex-content-between down-options">
        <view class="button-per">
          <u-button @click="close">取消</u-button>
        </view>
        <view class="button-per" @click="enteryResult">
          <u-button color="#1171E0">确认</u-button>
        </view>
      </view>
    </view>
  </u-popup>
</template>
<script>
  export default {
    props: {
      list: {
        type: Array,
        default: () => []
      },
      officeShow: {
        type: Boolean,
        default: false
      }
    },
    data() {
      return {
        checkboxValue: [],
        resultData: {}, // 返回结果
      }
    },
    methods: {
      checkboxChange(e) {
        const deptIds = e.join(',')
        const deptNames = e.map(item => this.list.find(obj => obj.deptId == item).deptName).join(',')
        this.resultData = {
          deptIds,
          deptNames
        }
      },
      close() {
        this.checkboxValue = []
        this.$emit('update:officeShow', false)
      },
      open() {
        console.log(this.list)
      },
      enteryResult() {
        if (!this.resultData.deptIds) return this.$u.toast('请选择执法部门')
        this.$emit('selectValue', this.resultData)
        this.close()
      },
    }
  }
</script>
<style scoped>
  .bg-box {
    position: fixed;
    bottom: 0;
    background-color: white;
    border-radius: 20rpx 20rpx 0 0;
    padding: 20rpx 32rpx 240rpx;
    z-index: 1000000;
    width: 100%;
    box-sizing: border-box;
    min-height: 400rpx;
    max-height: 800rpx;
  }
  .title {
    font-size: 36rpx;
    font-family: 500;
    margin-bottom: 40rpx;
  }
  .button-per {
    width: 48%;
  }
  .down-options {
    position: fixed;
    bottom: 40rpx;
    width: 100%;
    box-sizing: border-box;
    padding: 0 32rpx;
    left: 0;
  }
  .set-color {
    color: gray;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300rpx;
  }
  .set-center {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
  }
</style>
policy/policyApply/policyApply.vue
@@ -4,18 +4,17 @@
      <view class="form">
        <view class="form-item">
          <view class="form-label require">
            执法主题
            计划名称
          </view>
          <input type="text" placeholder="请输入" v-model.trim="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" @click="search">
            <input type="text" style="width: 80%;" disabled placeholder="请选择" :value="form.companyName" />
            <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">
@@ -29,19 +28,19 @@
        </view>
        <view class="form-item" @click="showType = true">
          <view class="form-label require">
            检查方式
            检查类型
          </view>
          <view class="input">
            <input type="text" placeholder="请选择" v-model.trim="form.enforceTypeName" disabled />
            <input type="text" placeholder="请选择检查类型" v-model.trim="form.enforceTypeName" disabled />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
        <view class="form-item last">
          <view class="form-label require">
            执法内容
            检查内容
          </view>
          <view class="back">
            <u--textarea :height="120" v-model.trim="form.enforceContent" placeholder="请输入" count
            <u--textarea :height="120" v-model.trim="form.enforceContent" placeholder="请输入检查内容" count
              maxlength="500"></u--textarea>
          </view>
        </view>
@@ -57,10 +56,13 @@
        </view>
        <view class="form-item">
          <view class="form-label">
            执法部门
            执行科室
          </view>
          <!-- <input type="text" placeholder="请输入" v-model.trim="form.applyDeptName" disabled/> -->
          <view style="width: 60%;">{{form.applyDeptName}}</view>
          <view class="select-content" @tap="openSelectOffice">
            <view>{{form.applyDeptNames}}</view>
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
        <view class="form-item sui" style="align-items: flex-start;" @click="openPer">
          <view class="form-label  ">
@@ -74,60 +76,34 @@
              </view>
            </view>
          </view>
          <!-- <u-textarea  border="none" disabled style="padding: 0;" placeholder="请选择" ></u-textarea> -->
        </view>
        <view class="form-item down-2">
        <view class="form-item">
          <view class="form-label">
            是否通知企业
          </view>
          <u-switch v-model="form.isNoticeCompany" :activeValue="1" :inactiveValue="0"></u-switch>
        </view>
        <view class="form-item" :class="{'down-2' : !isRectify }">
          <view class="form-label">
            是否创建整改
          </view>
          <u-switch v-model="isRectify" :activeValue="1" :inactiveValue="0" @change="changeRectify"></u-switch>
        </view>
        <view class="form-item down-2" v-if="isRectify == 1">
          <view class="form-label require">
            整改计划
          </view>
          <view class="input" @click="searchRectify">
            <input type="text" style="width: 80%;" disabled placeholder="请选择整改计划" :value="rectifyName" />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
      </view>
    </view>
    <view class="down-options">
      <view class="button record" @click="applyRecord">申请记录</view>
      <view class="button submit" @click="submitApply">提交申请</view>
    </view>
    <!-- <u-form label-position="top" label-width="120px">
            <u-form-item label="执法主题">
                <u-input placeholder="请输入" v-model="form.enforceReason"></u-input>
            </u-form-item>
            <u-form-item label="执法对象">
                <u-input placeholder="请输入" v-model="form.companyName">
                    <template  slot="suffix">
                        <text @click="search">搜索</text>
                    </template>
                </u-input>
            </u-form-item>
            <u-form-item label="执法时间" @click="showTimeFun">
                <u-input placeholder="请输入" v-model="form.applyTime" readonly></u-input>
            </u-form-item>
            <u-form-item label="执法类型" @click="showType = true">
                <u-input placeholder="请输入" v-model="form.enforceTypeName" readonly></u-input>
            </u-form-item>
            <u-form-item label="执法内容">
                <u-input placeholder="请输入" v-model="form.regionReason"></u-input>
            </u-form-item>
            <u-form-item label="执法人员">
                <u-input placeholder="请输入" v-model="form.applyName"></u-input>
            </u-form-item>
            <u-form-item label="执法部门">
                <u-input placeholder="请输入" v-model="form.applyDeptName"></u-input>
            </u-form-item>
            <u-form-item label="随行人员数量">
                <u-input placeholder="请输入" v-model="form.userNum"></u-input>
            </u-form-item>
            <u-form-item label="是否通知企业">
                <u-switch v-model="form.isNoticeCompany" :activeValue="1" :inactiveValue="0"></u-switch>
            </u-form-item>
        </u-form> -->
    <!--         <u-button @click="submitApply">提交申请</u-button>
        <u-button @click="applyRecord">申请记录</u-button> -->
    <!-- <u-picker :show="show"   @close="show = false" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName">
        </u-picker> -->
    <perPicker ref="perPicker" @setCompany="setCompany" :immediateChange="true" @confirm="confirmSearch"
      @cancel="show = false" :columns="columns" keyName="companyName"></perPicker>
    <yt-dateTimePicker ref="myPicker" @submit="confirmTime" :time-init="timeInit" :start-year="year" :startMonth="month"
@@ -135,6 +111,10 @@
    <u-picker :show="showType" @close="showType = false" @confirm="confirmType" @cancel="showType = false"
      :columns="columnsType" keyName="dictLabel"></u-picker>
    <perPage :list="list" ref="perpage" @selectValue="selectValue"></perPage>
    <officePopup :officeShow.sync="officeShow" :list="officeList" @selectValue="selectOfficeRes"></officePopup>
    <rectifyPicker ref="rectifyPicker" @setCompany="setCompany" :immediateChange="true" @confirm="confirmRectify"
      :applyOrgId="form.applyOrgId" :companyId="form.companyId" @cancel="show = false" :columns="columns"
      keyName="enforceReason"></rectifyPicker>
  </view>
</template>
@@ -142,7 +122,8 @@
  import {
    orderAdd,
    companyList,
    enforceList
    enforceList,
    officeList,
  } from '@/api/policy.js'
  import {
    getInfo
@@ -151,28 +132,38 @@
    getDicts
  } from '@/api/data'
  import perPage from './perPage'
  import officePopup from './officePopup'
  import perPicker from './perPicker'
  import rectifyPicker from './rectifyPicker'
  import YtDateTimePicker from "uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue"
  export default {
    components: {
      YtDateTimePicker,
      perPage,
      perPicker
      perPicker,
      officePopup,
      rectifyPicker
    },
    data() {
      return {
        currentTime: "",
        form: {
          applyUser: '',
          applyDeptName: '',
          enforceType: 1,
          isNoticeCompany: 0,
          // regionReason: 0,
          planTimeStr: '',
          peers: [],
          enforceReason: '', // 执法主题
          companyName: "", // 执法对象
          planTime: '', // 执法时间
          planTimeStr: '', // 执法时间
          enforceType: '', // 检查方式
          enforceTypeName: '', // 检查方式名称
          enforceContent: "", // 执法内容
          applyUser: '', // 执法人员
          applyOrgId: "", // 制定机构id
          applyOrgName: "", // 制定机构名称
          applyDeptIds: "", // 执行科室id
          applyDeptNames: "", // 执行科室名称
          peers: [], // 随行人员
          isNoticeCompany: 0, // 是否通知企业
          orderStatus: 1,
          enforceContent: "",
          companyName: ""
          joinOrderId: null,
        },
        show: false,
        columns: [],
@@ -185,7 +176,11 @@
        timeInit: '',
        list: [],
        startTime: "",
        month: ''
        month: '',
        officeList: [],
        officeShow: false,
        isRectify: 0, // 是否创建整改
        rectifyName: '', // 整改关联计划名称
      }
    },
    onLoad() {
@@ -203,6 +198,13 @@
    },
    methods: {
      changeRectify(e) {
        if (e == 0) {
          this.form.joinOrderId = null
          this.rectifyName = ''
        }
      },
      enforceList() {
        enforceList().then(val => {
          this.list = val.data.data
@@ -219,9 +221,14 @@
          // this.form.applyName = value.nickName
          this.form.applyUser = value.nickName
          this.form.applyId = value.userId
          this.form.applyDeptName = value.dept.deptName
          this.form.applyDeptId = value.dept.deptId
          this.form.applyPhone = value.phonenumber
          this.form.applyOrgId = value.dept.parentId // 制定机构id
          this.form.applyOrgName = value.dept.parentName // 制定机构名称
          this.form.applyDeptNames = value.dept.deptName // 科室名称
          this.form.applyDeptIds = value.dept.deptId // 科室id
          this.getOfficeList()
        })
      },
      timeFilter(mode, options) {
@@ -245,22 +252,27 @@
        if (!this.form.companyName || !this.form.companyName.replace(/\s+/g, "")) {
          return '请选择执法对象'
        }
        // if(!this.form.companyId) {
        //     return '请点击搜索确认执法对象'
        // }
        if (!this.form.planTimeStr) {
          return '请填写执法时间'
        }
        if (!this.form.enforceTypeName) {
          return '请选择检查方式'
        }
        console.log(!this.form.enforceContent.replace(/\s+/g, ""))
        if (!this.form.enforceContent || !this.form.enforceContent.replace(/\s+/g, "")) {
          return '请填写执法内容'
        }
        if (!this.form.applyDeptIds) {
          return '请选择执法部门'
        }
        // if(!this.form.peers.length){
        //     return '请选择随行人员'
        // }
        if (this.isRectify == 1) {
          if (this.form.joinOrderId == null) {
            return '请选择整改计划'
          }
        }
        return ''
      },
      submitApply() {
@@ -290,33 +302,30 @@
        })
      },
      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.$refs.perPicker.open()
      },
      searchRectify() {
        if (!this.form.companyId) return this.$u.toast('请先选择企业')
        this.$refs.rectifyPicker.open()
      },
      confirmRectify(e) {
        console.log(e)
        this.form.joinOrderId = e.orderId
        this.rectifyName = e.enforceReason
      },
      confirmSearch(e) {
        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
        // console.log(this.form.companyName)
        this.form.joinOrderId = null
        this.rectifyName = ''
      },
      setCompany(e) {
        this.form.companyName = e
@@ -366,7 +375,33 @@
          }
        }
        return newArr;
      },
      openSelectOffice() {
        this.officeShow = true
      },
      selectOfficeRes(data) {
        this.form.applyDeptIds = data.deptIds
        this.form.applyDeptNames = data.deptNames
      },
      async getOfficeList() {
        const {
          data: res
        } = await officeList({
          pageNum: 1,
          pageSize: 1000,
          parentId: this.form.applyOrgId,
        })
        this.officeList = res.data.map(obj => {
          return {
            deptId: obj.deptId,
            deptName: `${this.form.applyOrgName}-${obj.deptName}`
      }
        })
        console.log(this.officeList)
      },
    }
  }
</script>
@@ -400,6 +435,7 @@
        margin-bottom: 24rpx;
        .form-label {
          width: 236rpx !important;
          font-size: 30rpx;
          color: #4A4E60;
          width: 40%;
@@ -496,4 +532,15 @@
    line-height: 54rpx !important;
    margin-right: 15rpx;
  }
  .select-content {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    .select-word {
      flex: 1;
    }
  }
</style>
policy/policyApply/rectifyPicker.vue
New file
@@ -0,0 +1,207 @@
<template>
  <view>
    <u-popup mode="bottm" :show="show" @close="cancel" :safeAreaInsetBottom="false">
      <view class="picker-view-box">
        <view class="options" @click="cancel">
          <u-icon name="close" size="28rpx" color="#000"></u-icon>
        </view>
        <view class="set-flex">
          <u-search v-model="planName" @search="getRectifyList" @clear="clearContent" @confirm="getRectifyList"
            @custom="getRectifyList()"></u-search>
          <text @click="entery">确定</text>
        </view>
        <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>
    <u-popup mode="bottm" :show="showadd" :safeAreaInsetBottom="false">
      <view class="picker-view-box">
        <view class="head">
          新增临时企业
        </view>
        <view style="margin: 20rpx 0;">
          <u-input v-model="name" placeholder="请输入企业名称" type="text" />
        </view>
        <view class="bz">
          备注:如企业搜索无结果或企业无二维码,则该企业未在平台内进行注册,可点击“新增”输入该企业名称新增临时企业,新增的企业只需要提交申请-审批通过后即可填报执法结果,无需扫企业二维码。如企业已有二维码,请返回搜索页搜索并选择该企业,不要新增临时企业。
        </view>
        <view class="down-button">
          <view>
            <u-button shape="circle" @click="close">取消</u-button>
          </view>
          <view>
            <u-button shape="circle" color="#1171E0" @click="addContent">确定</u-button>
          </view>
        </view>
      </view>
    </u-popup>
  </view>
</template>
<script>
  import {
    companyList,
    getRectifyList
  } from '@/api/policy.js'
  export default {
    props: {
      keyName: {
        type: String,
        default: ''
      },
      companyId: {
        type: String,
        default: ''
      },
      applyOrgId: {
        type: String,
        default: ''
      },
    },
    data() {
      return {
        columns: [],
        show: false,
        planName: '',
        index: 0,
        value: [],
        showadd: false,
        name: ''
      }
    },
    methods: {
      clearContent() {
        this.planName = ""
        this.getRectifyList()
      },
      cancel() {
        this.show = false
      },
      open() {
        this.show = true
        this.getRectifyList()
      },
      bindChange(e) {
        this.index = e.detail.value[0]
      },
      getRectifyList() {
        return getRectifyList({
          enforceReason: this.planName,
          companyId: this.companyId,
          applyOrgId: this.applyOrgId,
        }).then(val => {
          console.log(val)
          if (val.data.code == 200) {
            this.columns = val.data.data || []
          }
        })
      },
      entery() {
        const info = this.columns[this.index]
        this.$emit('confirm', info)
        this.show = false
      },
      close() {
        this.show = true
        this.showadd = false
      },
      add() {
        this.show = false
        this.showadd = true
      },
      addContent() {
        if (this.name == '') {
          uni.showToast({
            title: '请输入企业名称',
            icon: 'none',
            duration: 3000
          })
          return
        }
        this.$emit('setCompany', this.name)
        this.show = false
        this.showadd = false
      }
    }
  }
</script>
<style lang="scss" scoped>
  .picker-view-box {
    position: fixed;
    z-index: 120000;
    background-color: white;
    height: 600rpx;
    padding: 20rpx 32rpx 0;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
    border-radius: 20rpx 20rpx 0 0;
  }
  .options {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    .button {
      position: absolute;
      right: 20rpx;
      top: -10rpx;
      padding: 10rpx 20rpx;
      border-radius: 10rpx;
      font-size: 28rpx;
    }
  }
  .text-center {
    text-align: center;
    line-height: 34px;
  }
  .picker-view {
    width: 100%;
    height: 500rpx;
    margin-top: 20rpx;
  }
  .set-flex {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    text {
      display: inline-block;
      background-color: $main-color;
      color: white;
      border-radius: 5px;
      padding: 5px 15px;
      margin-left: 20rpx;
      font-size: 24rpx;
    }
  }
  .bz {
    font-size: 24rpx;
    color: #999;
  }
  .down-button {
    margin-top: 60rpx;
    display: flex;
    justify-content: space-between;
    align-items: center;
    &>view {
      width: 45%;
    }
  }
</style>
policy/reportDetails/reportDetails.vue
@@ -12,7 +12,7 @@
        </view>
        <view class="form-item">
          <view class="label">执法时间</view>
          <view class="input">{{details.planTime}}</view>
          <view class="input">{{details.planTime || details.planMonth || ''}}</view>
        </view>
        <view class="form-item">
          <view class="label">检查方式</view>
@@ -44,6 +44,25 @@
          <u-textarea placeholder="请输入..." count v-model="form.regionReason" maxlength="500"></u-textarea>
        </view>
        <!-- 是否创建整改计划 -->
        <view class="form-input-item" style="margin-bottom: 40rpx;">
          <view class="form-label require" style="margin-bottom: 40rpx;">是否创建整改计划</view>
          <view>
            <u-radio-group v-model="isRectify" @change="changeRectify">
              <u-radio shape="circle" label="是" :name="1"></u-radio>
              <u-radio shape="circle" label="否" :name="0"></u-radio>
            </u-radio-group>
          </view>
        </view>
        <!-- 整改时间 -->
        <view v-if="isRectify == 1" class="form-input-item" style="margin-bottom: 40rpx;">
          <view class="form-label require" style="margin-bottom: 40rpx;">整改计划时间</view>
          <view class="form-input-content" @click="showTimeFun">
            <input type="text" placeholder="请选择整改计划时间" disabled v-model.trim="form.planTime" />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
        <view class="form-input-item">
          <view class="form-label require">执法照片</view>
          <view>
@@ -60,6 +79,9 @@
        上报结果
      </view>
    </view>
    <yt-dateTimePicker ref="myPicker" @submit="confirmTime" :time-init="timeInit" :start-year="year" :startMonth="month"
      :time-hide="[true, true, true, true, false, false]" />
  </view>
</template>
@@ -80,17 +102,30 @@
      return {
        form: {
          regionReason: '',
          regionStatus: '0'
          regionStatus: '0',
          planTime: null, // 整改计划时间
        },
        fileList1: [],
        details: {},
        enforceType: ""
        enforceType: "",
        timeInit: '',
        planTimeStr: '',
        isRectify: 0, // 是否创建整改
      }
    },
    onLoad(options) {
      this.orderDetails(options.id)
    },
    methods: {
      changeRectify(e) {
        console.log(e)
        if (e == 0) {
          this.form.planTime = null
          this.timeInit = ''
          this.planTimeStr = ''
        }
      },
      // 获取执法类型枚举
      getDicts() {
        getDicts('enforce_type').then(val => {
@@ -139,7 +174,17 @@
            }, 500)
          }
        })
      }
      },
      showTimeFun() {
        this.$refs.myPicker.show();
      },
      confirmTime(e) {
        this.form.planTime = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00:00"
        this.planTimeStr = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00"
        this.timeInit = this.$u.timeFormat(new Date(this.planTimeStr), 'yyyy-mm-dd hh:MM')
      },
    }
  }
</script>
@@ -154,4 +199,15 @@
  ::v-deep .u-radio {
    margin-right: 80rpx;
  }
  .form-input-content {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #F4F4F4;
    border-radius: 12rpx;
    padding: 10rpx 20rpx;
    box-sizing: border-box;
  }
</style>
policy/reportPage/reportPage.vue
@@ -23,7 +23,7 @@
                <view class="set-flex set-start set-flex-content-between">
                    <view>
                        <view class="set-line1">
                            <text>执法时间:</text>{{item.planTime}}
              <text>执法时间:</text>{{item.planTime || item.planMonth || ''}}
                        </view>
                        <view class="set-line1">
                            <text>申请时间:</text>{{item.applyTime}}
@@ -46,7 +46,9 @@
</template>
<script>
    import { executeList } from '@/api/policy.js'
  import {
    executeList
  } from '@/api/policy.js'
    export default {
        data() {
            return {
policy/reportRecord/reportRecord.vue
@@ -2,7 +2,8 @@
    <view class="page-box">
        <u-sticky bgColor="white">
            <view class="padding">
                <u-search placeholder="请输入申请记录关键词" v-model="queryParams.enforceReason" @clear="clean" shape="square" @confirm="search" :showAction="false"></u-search>
        <u-search placeholder="请输入申请记录关键词" v-model="queryParams.enforceReason" @clear="clean" shape="square"
          @confirm="search" :showAction="false"></u-search>
            </view>
        </u-sticky>
        <view class="list">
@@ -28,10 +29,10 @@
                 <view class="set-flex set-start set-flex-content-between">
                     <view>
                         <view class="set-line1">
                             <text>执法时间:</text>{{item.planTime}}
              <text>执法时间:</text>{{item.planTime || item.planMonth || ''}}
                         </view>
                         <view class="set-line1">
                             <text>申请时间:</text>{{item.applyTime}}
              <text>申请时间:</text>{{item.applyTime || ''}}
                         </view>
                     </view>
                     <!-- <view class="button" @click="goReport(item.orderId)" >
policy/scodePage/scodePage.vue
@@ -56,19 +56,19 @@
            <view class="box">
              <view class="title">{{item.enforceReason}}</view>
              <view class="user-news">
                <text>{{item.applyUser}}</text>
                <text>{{item.applyUser || ''}}</text>
                <view class="driver"></view>
                <text>{{item.applyDeptName}}</text>
                <text>{{item.applyDeptName || item.applyDeptNames || ''}}</text>
              </view>
              <view class="font-13">
                <text>执法对象:</text>{{item.companyName}}
              </view>
              <view class="border"></view>
              <view class="font-12 margin-bottom">
                <text>执法时间:</text>{{item.planTime}}
                <text>执法时间:</text>{{item.planTime || item.planMonth || ''}}
              </view>
              <view class="font-12">
                <text>申请时间:</text>{{item.applyTime}}
                <text>申请时间:</text>{{item.applyTime || ''}}
              </view>
              <view class="button-entery">
                <view class="button" v-if="item.isSelect" @click="doScanOrder(item.orderId, index)">确认执法</view>
policy/translate/translate.vue
@@ -120,11 +120,10 @@
      }
    },
    onLoad() {
      this.getDicts()
    },
    onReachBottom() {
      if (this.total == this.list.length) {
      if (this.total <= this.list.length) {
        return
      }
      this.queryms.pageNum++
qiye/record/compositeDetails.vue
New file
@@ -0,0 +1,494 @@
<template>
  <view>
    <u-sticky bgColor="white">
      <u-navbar title="执法记录" :autoBack="true" placeholder></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">
      <img src="/static/i05.png" class="img" alt="" />
      <view class="right">
        <view class="name">
          <view class="l">
            {{item.enforceReason}}
          </view>
          <!--  <template v-if="item.orderStatus==2">
            <view class="r color3">
              未执法
            </view>
          </template>
          <template v-if="item.isEva==0">
            <view class="r color2">
              待评价
            </view>
          </template>
          <template v-if="item.isEva==1">
            <view class="r color1">
              已评价
            </view>
          </template> -->
        </view>
        <view class="box">
          <view class="l">
            <p style="display: flex;justify-content: flex-start;align-items: flex-start;"><text
                style="display: inline-block;width: 35%;">执法单位:</text> <text
                style="display: inline-block;width: 65%;">{{item.executeDeptName|| item.applyDeptName}}</text></p>
            <p>执法时间:{{item.inTime || item.planTime}}</p>
          </view>
          <!-- 正常情况 -->
          <view class="r" @click="chakan(item.orderId)">
            去查看
          </view>
        </view>
      </view>
    </view>
    <u-empty v-if="!list1.length"></u-empty>
    <view style="height: 150rpx;"></view>
    <view class="bottom" v-if="current == 0 && list1.length">
      <view class="one">
        <view class="b1" style="background-color: #1171E0;color: white;" @click="enterOrder()">
          确认
        </view>
      </view>
    </view>
    <view class="bottom" v-if="list1.length && (current == 1 || current == 2)">
      <view class="two" v-if="current == 1">
        <view class="b2" @click="show = true">
          投诉
        </view>
        <view class="b3" @click="pingjia()">
          我要评价
        </view>
      </view>
    </view>
    <u-popup :show="show" @close="close" mode="bottom" round="10" closeable>
      <view class="page-box">
        <view class="title1">
          企业投诉
        </view>
        <view class="border"></view>
        <view class="padding">
          <view class="font">
            投诉主题
          </view>
          <view>
            <u-radio-group v-model="complaintType" style="flex-Wrap: wrap;">
              <u-radio :customStyle="{marginRigth: '20rpx'}" v-for="(aa, ii) in datalist" :key="ii" :name="aa.dictCode">
                {{aa.dictLabel}}
              </u-radio>
            </u-radio-group>
          </view>
          <view class="font">
            投诉内容
          </view>
          <view class="margin-top">
            <u-textarea :cursorSpacing="70" v-model="complaintReason" placeholder="请输入..."></u-textarea>
          </view>
        </view>
        <view class="down">
          <view class="enter" @click="entery()">提交</view>
        </view>
      </view>
    </u-popup>
  </view>
</template>
<script>
  import tabsCom from '@/qiye/components/bottom.vue'
  import {
    togetherList,
    confirmOrderId,
    orderComplaint
  } from '@/api/qiye.js'
  import {
    getDicts
  } from '@/api/data.js'
  export default {
    components: {
      tabsCom
    },
    data() {
      return {
        activeNumber: 1,
        list: [
          //       {
          //     name: '全部',
          //     value: {
          //     }
          // }, {
          //     name: '未执法',
          //     value: {
          //         orderStatus: 2
          //     }
          // },
          {
            name: '待确认',
            value: {
              orderStatus: 4
            }
          }, {
            name: '待评价',
            value: {
              isEva: 0,
              orderStatus: 5
            }
          }, {
            name: '已评价',
            value: {
              isEva: 1
            }
          }
        ],
        current: 0,
        list1: [],
        queryParams: {
          pageNum: 1,
          pageSize: 10,
          companyId: '',
        },
        total: 1,
        show: false,
        complaintType: '',
        complaintReason: '',
        datalist: []
      }
    },
    onLoad(options) {
      this.id = options.id
      this.getList()
      getDicts('complaint_type').then(val => {
        this.datalist = val.data.data
      })
      uni.$on('refresh', () => {
        this.queryParams.pageNum = 1
        this.list1 = []
        this.getList()
      })
    },
    onReachBottom() {
      if (this.list1.length == this.total) {
        return
      }
      this.queryParams.pageNum++
      this.getList()
    },
    methods: {
      chakan(id) {
        uni.navigateTo({
          url: `/qiye/record/details?id=${id}&type=1`
        })
      },
      // 综合查一次
      jumpCompositeDetail(id) {
        uni.navigateTo({
          url: `/qiye/record/compositeDetails?id=${id}`
        })
      },
      getList() {
        uni.showLoading({
          title: '加载中...',
          mask: true
        })
        let data = uni.getStorageSync("qiyedata")
        this.queryParams.companyId = data.companyId
        togetherList({
          ...this.queryParams,
          comprehensiveId: this.id,
          ...this.list[this.current].value
        }).then(val => {
          this.total = val.data.total
          this.list1 = [...this.list1, ...val.data.rows]
        }).catch(err => {
          uni.hideLoading()
        })
      },
      click(i) {
        this.list1 = []
        this.queryParams.pageNum = 1
        this.current = i.index
        // console.log(i.index)
        // if(i.index==1){
        //     this.queryParams.isEva = 0
        // }
        // if(i.index==2){
        //     this.queryParams.orderStatus = 2
        // }
        // if(i.index==3){
        //     this.queryParams.isEva = 1
        // }
        this.getList()
      },
      pingjia() {
        uni.navigateTo({
          url: `/qiye/record/evaluate?id=${this.list1[0].orderId}&type=1`
        })
      },
      enterOrder() {
        uni.showModal({
          title: '提示',
          content: '是否确认该检查内容?',
          success: val => {
            if (val.confirm) {
              confirmOrderId({
                orderId: this.list1[0].orderId
              }).then(val => {
                if (val.data.code == 200) {
                  uni.showToast({
                    title: '确认成功',
                    icon: 'none'
                  })
                  this.list1 = []
                  this.queryParams.pageNum = 1
                  this.getList()
                }
              })
            }
          }
        })
      },
      close() {
        this.show = false
        this.$emit('cancel')
      },
      entery() {
        this.$emit('entery')
        if (this.complaintType == '') {
          uni.showToast({
            title: '请选择投诉主题',
            icon: 'none'
          })
          return
        }
        if (this.complaintReason == '') {
          uni.showToast({
            title: '请输入投诉内容',
            icon: 'none'
          })
          return
        }
        let data = {
          orderId: Number(this.list1[0].orderId),
          complaintType: this.complaintType,
          complaintReason: this.complaintReason
        }
        console.log(data)
        //return;
        orderComplaint(data).then(val => {
          uni.showToast({
            title: '提交成功',
            icon: 'none'
          })
          this.show = false
        })
      },
    }
  }
</script>
<style>
  page {
    background: #f4f4f4;
  }
</style>
<style lang="scss">
  .item {
    background: #fff;
    border-radius: 5px;
    padding: 24rpx;
    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;
          line-height: 44rpx;
          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;
          line-height: 64rpx;
          border-radius: 5px;
          border: 1px solid #ABD2FF;
          background: #F0F8FF;
          color: #1171e0;
          text-align: center;
          font-size: 30rpx;
        }
      }
    }
  }
  .color1 {
    color: #FE7B32;
    //cheng
  }
  .color2 {
    color: #EB4746;
    //hong
  }
  .color3 {
    color: #3EB47A;
    //lv
  }
  .bottom {
    position: fixed;
    bottom: 0;
    width: 100%;
    left: 0;
    height: 132rpx;
    background: #fff;
    .one {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
      .b1 {
        width: 686rpx;
        height: 88rpx;
        border-radius: 10px;
        background: #F7F7F7;
        line-height: 88rpx;
        text-align: center;
      }
    }
    .two {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
      .b2 {
        width: 146rpx;
        height: 88rpx;
        border-radius: 10px;
        background: #F7F7F7;
        line-height: 88rpx;
        text-align: center;
        margin-right: 18rpx;
      }
      .b3 {
        width: 524rpx;
        height: 88rpx;
        border-radius: 10px;
        background: #1171E0;
        line-height: 88rpx;
        text-align: center;
        color: #fff;
      }
    }
  }
  .page-box {
    padding: 24rpx 0;
    .font {
      color: #4a4e60;
      font-size: 32rpx;
      margin-top: 20rpx;
    }
    .title1 {
      font-size: 36rpx;
      font-weight: 700;
      padding: 0 32rpx;
      border-bottom: 2rpx solid #F4F4F4;
      padding-bottom: 24rpx;
    }
    .padding {
      padding: 0 24rpx;
    }
    .margin-top {
      margin-top: 20rpx;
    }
    .down {
      padding: 34rpx 30rpx 30rpx;
      display: flex;
      justify-content: space-between;
      >view {
        display: inline-block;
      }
      .button {
        padding: 20rpx 40rpx;
        background: #F7F7F7;
        border-radius: 20rpx;
      }
      .enter {
        width: 100%;
        background: #1171E0;
        color: white;
        border-radius: 20rpx;
        padding: 20rpx 40rpx;
        text-align: center;
      }
    }
  }
  /deep/.u-radio {
    margin-bottom: 20rpx;
    margin-right: 20rpx !important;
  }
  /deep/.u-radio-group {
    margin-top: 10rpx !important;
    flex-wrap: wrap !important;
  }
</style>
qiye/record/details.vue
@@ -169,7 +169,7 @@
        </view>
      </view>
    </view>
    <view class="bottom" v-if=" msg.orderStatus== 5">
    <view class="bottom" v-if="msg.orderStatus== 5 && from != 1">
      <view class="one" v-if="msg.isComplaint != 1 && msg.isEva == 1">
        <view class="b1" @click="open()">
          投诉
@@ -189,14 +189,12 @@
        </view>
      </view>
    </view>
    <view class="bottom" v-if=" msg.orderStatus == 4">
    <view class="bottom" v-if="msg.orderStatus == 4 && from != 1">
      <view class="one">
        <view class="b1" style="background-color: #1171E0;color: white;" @click="enterOrder()">
          确认
        </view>
      </view>
    </view>
    <u-popup :show="show" @close="close" mode="bottom" round="10" closeable>
      <view class="page-box">
@@ -259,11 +257,13 @@
        //type: 2,
        show: false,
        list: [],
        qlist: []
        qlist: [],
        from: '', // 1 综合查一次
      }
    },
    onLoad(options) {
      this.id = options.id
      this.from = options.type || ''
      //this.getdata(options.id)
      getDicts('complaint_type').then(val => {
        this.list = val.data.data
@@ -280,7 +280,7 @@
      enterOrder() {
        uni.showModal({
          title: '提示',
          content: '确认该订单?',
          content: '是否确认该检查内容?',
          success: val => {
            if (val.confirm) {
              confirmOrderId({
qiye/record/evaluate.vue
@@ -78,11 +78,15 @@
</template>
<script>
    import { evaluate,saveOrder } from '@/api/qiye.js'
  import {
    evaluate,
    saveOrder
  } from '@/api/qiye.js'
    
    export default {
        data() {
            return {
        type: '', // 1综合查一次
                xing: 5,
                value: 'orange',
                msg:[],
@@ -92,6 +96,7 @@
        },
        onLoad(options) {
            this.orderId = options.id
      this.type = options.type || ''
            //this.getdata(options.id)
            evaluate().then(val => {
                this.msg = val.data.data.questionList
@@ -126,6 +131,9 @@
                    })
                    setTimeout(() => {
                        uni.navigateBack()
            if (this.type == 1) {
              uni.$emit('refresh')
            }
                    }, 500)
                })
            }
@@ -191,6 +199,7 @@
    .hei {
        color: #202D44;
    }
.bottom {
        position: fixed;
        bottom: 0;
@@ -201,6 +210,7 @@
        display: flex;
        justify-content: center;
        align-items: center;
        .b1 {
                width: 686rpx;
                height: 88rpx;
@@ -214,5 +224,4 @@
        
    }
</style>
qiye/record/record.vue
@@ -12,9 +12,9 @@
            <view class="right">
                <view class="name">
                    <view class="l">
                        {{item.companyName}}
            {{item.enforceReason}}
                    </view>
                    <template v-if="item.orderStatus==2">
          <!--  <template v-if="item.orderStatus==2">
                        <view class="r color3">
                            未执法
                        </view>
@@ -28,16 +28,25 @@
                        <view class="r color1">
                            已评价
                        </view>
                    </template>
          </template> -->
                </view>
                <view class="box">
                    <view class="l">
                        <p style="display: flex;justify-content: flex-start;align-items: flex-start;"><text style="display: inline-block;width: 35%;">执法单位:</text> <text style="display: inline-block;width: 65%;">{{item.executeDeptName|| item.applyDeptName}}</text></p>
            <p style="display: flex;justify-content: flex-start;align-items: flex-start;"><text
                style="display: inline-block;width: 35%;">执法单位:</text> <text
                style="display: inline-block;width: 65%;">{{item.executeDeptName|| item.applyDeptName}}</text></p>
                        <p>执法时间:{{item.inTime || item.planTime}}</p>
                    </view>
                    <view class="r" @click="chakan(item.orderId)">
          <!-- 综合查一次 -->
          <view v-if="item.orderType == 2" class="r" @click="jumpCompositeDetail(item.comprehensiveId)">
                        去查看
                    </view>
          <!-- 正常情况 -->
          <view v-else class="r" @click="chakan(item.orderId)">
            去查看
          </view>
                </view>
            </view>
        </view>
@@ -105,17 +114,19 @@
        data() {
            return {
                activeNumber: 1,
                list: [{
                    name: '全部',
                    value: {
        list: [
          //       {
          //     name: '全部',
          //     value: {
                    }
                }, {
                    name: '未执法',
                    value: {
                        orderStatus: 2
                    }
                }, {
          //     }
          // }, {
          //     name: '未执法',
          //     value: {
          //         orderStatus: 2
          //     }
          // },
          {
                    name: '待确认',
                    value: {
                        orderStatus: 4
@@ -131,7 +142,8 @@
                    value: {
                        isEva: 1
                    }
                }],
          }
        ],
                current: 0,
                list1: [],
                queryParams: {
@@ -160,6 +172,14 @@
                    url: `/qiye/record/details?id=${id}`
                })
            },
      // 综合查一次
      jumpCompositeDetail(id) {
        uni.navigateTo({
          url: `/qiye/record/compositeDetails?id=${id}`
        })
      },
            getList() {
                uni.showLoading({
                    title: '加载中...',