王恒
2025-09-04 616e6be49d3f64f2397cb1b1c05d2c06df3db9a3
'新增综合查一次详情、调整二期新增的内容'
3个文件已添加
15个文件已修改
6119 ■■■■■ 已修改文件
api/policy.js 256 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/qiye.js 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/config.js 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 574 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/applyLook/applyLook.vue 308 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/applyRecord/applyRecord.vue 310 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/policyApply/officePopup.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/policyApply/policyApply.vue 1043 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/policyApply/rectifyPicker.vue 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportDetails/reportDetails.vue 368 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportPage/reportPage.vue 206 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportRecord/reportRecord.vue 231 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/scodePage/scodePage.vue 330 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/translate/translate.vue 521 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/compositeDetails.vue 494 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/details.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/evaluate.vue 403 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/record.vue 444 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/policy.js
@@ -1,73 +1,185 @@
import Vue from 'vue';
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 }});
}
// 查询企业
export function companyList(data){
    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 }});
}
// 申请记录
export function orderList(data) {
    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 }});
}
// 获取执法单 详情 /enforce/order/{orderId}
export function orderDetailsLog(data) {
    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 }});
}
// 执法审批
export function checkUpd(data) {
    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 }});
}
// 执法审批记录 /enforce/check/log/list
export function enforceLogList(data) {
    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 }});
}
// 扫码接口
export function getScanList(data) {
    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 }});
}
// 带上报执法列表 /enforce/order/execute/list
export function executeList(data) {
    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 }});
}
// /commonList
export function commonList(data) {
    return http.get(`/enforce/order/commonList`, {params: data}, { custom: { loading: true }});
import Vue from 'vue';
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
    }
  });
}
// 查询企业
export function companyList(data) {
  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
    }
  });
}
// 申请记录
export function orderList(data) {
  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
    }
  });
}
// 获取执法单 详情 /enforce/order/{orderId}
export function orderDetailsLog(data) {
  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
    }
  });
}
// 执法审批
export function checkUpd(data) {
  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
    }
  });
}
// 执法审批记录 /enforce/check/log/list
export function enforceLogList(data) {
  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
    }
  });
}
// 扫码接口
export function getScanList(data) {
  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
    }
  });
}
// 带上报执法列表 /enforce/order/execute/list
export function executeList(data) {
  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
    }
  });
}
// /commonList
export function commonList(data) {
  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,66 +1,147 @@
import Vue from 'vue';
import { config } from '@/common/config.js'
const http = uni.$u.http
// 企业详情
export function company(id){
    return http.get('/system/company/'+id, { custom: { loading: true }});
}
// 执法记录列表
export function companyList(data){
    return http.get('/enforce/order/companyList', {params: data}, { custom: { loading: true }});
}
// 获取执法评价配置详情
export function evaluate(){
    return http.get('/enforce/evaluate/detail', { custom: { loading: true }});
}
// 保存执法评价
export function saveOrder(param) {
  return http.post('/enforce/evaluate/saveOrder', param, { custom: { loading: true }});
}
// 发起投诉
export function orderComplaint(param) {
  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 }});
}
// complaintList
// 投诉列表
export function complaintList(data){
    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 }});
}
// 投诉详情
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 }});
}
// /system/company/list
// export function getCompanyList(data){
//     return http.get('/system/company/list',{params: data}, { custom: { loading: true }});
// }
// /enforce/order/confirm/{orderId}
export function confirmOrderId(data){
    return http.post(`/enforce/order/confirm/${data.orderId}`,{params: data}, { custom: { loading: true }});
import Vue from 'vue';
import {
  config
} from '@/common/config.js'
const http = uni.$u.http
// 企业详情
export function company(id) {
  return http.get('/system/company/' + id, {
    custom: {
      loading: true
    }
  });
}
// 执法记录列表
export function companyList(data) {
  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
    }
  });
}
// 保存执法评价
export function saveOrder(param) {
  return http.post('/enforce/evaluate/saveOrder', param, {
    custom: {
      loading: true
    }
  });
}
// 发起投诉
export function orderComplaint(param) {
  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
    }
  });
}
// complaintList
// 投诉列表
export function complaintList(data) {
  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
    }
  });
}
// 投诉详情
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
    }
  });
}
// /system/company/list
// export function getCompanyList(data){
//     return http.get('/system/company/list',{params: data}, { custom: { loading: true }});
// }
// /enforce/order/confirm/{orderId}
export function confirmOrderId(data) {
  return http.post(`/enforce/order/confirm/${data.orderId}`, {
    params: data
  }, {
    custom: {
      loading: true
    }
  });
}
common/config.js
@@ -1,39 +1,39 @@
const test = {
  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",
  socketTempl: "wss://yqzx.jinmingyuan.com/wsPerCode",
  h5Temp: "https://yqzx.jinmingyuan.com/ecosphere-h5",
  serverUrl: 'http://172.16.60.251: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',
  wx_appid: 'wxad8cc511da676bd4',
  ali_appid: '2021003199690698'
}
const prod = {
  authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=',
  webURL: 'https://jmy.jinmingyuan.com/ecosphere-user',
  serverTempl: "https://jmy.jinmingyuan.com",
  socketTempl: "wss://yqzx.jinmingyuan.com/wsPerCode",
  h5Temp: "https://jmy.jinmingyuan.com/ecosphere-h5",
  serverUrl: 'https://jmy.jinmingyuan.com/smrq-api',
  h5Url: 'https://jmy.jinmingyuan.com/service-merchant',
  ftpUrl: 'https://jmy.jinmingyuan.com/file',
  // ftpUrl: 'https://echftp.jinmingyuan.com',
  baseUrl: 'https://jmy.jinmingyuan.com/smrq-api',
  wx_appid: 'wxad8cc511da676bd4',
  ali_appid: '2021003199690698'
}
module.exports = {
  kefuTel: '15824668510',
  config: prod,
  ACCESSTOKEN: "Authorization",
  /* 是否打印请求日志 */
  DEBUG: false,
const test = {
  hasHead: true,
  authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=',
  webURL: 'https://jmy.jinmingyuan.com/ecosphere-user',
  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.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.145:8086',
  wx_appid: 'wxad8cc511da676bd4',
  ali_appid: '2021003199690698'
}
const prod = {
  authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=',
  webURL: 'https://jmy.jinmingyuan.com/ecosphere-user',
  serverTempl: "https://jmy.jinmingyuan.com",
  socketTempl: "wss://yqzx.jinmingyuan.com/wsPerCode",
  h5Temp: "https://jmy.jinmingyuan.com/ecosphere-h5",
  serverUrl: 'https://jmy.jinmingyuan.com/smrq-api',
  h5Url: 'https://jmy.jinmingyuan.com/service-merchant',
  ftpUrl: 'https://jmy.jinmingyuan.com/file',
  // ftpUrl: 'https://echftp.jinmingyuan.com',
  baseUrl: 'https://jmy.jinmingyuan.com/smrq-api',
  wx_appid: 'wxad8cc511da676bd4',
  ali_appid: '2021003199690698'
}
module.exports = {
  kefuTel: '15824668510',
  config: prod,
  ACCESSTOKEN: "Authorization",
  /* 是否打印请求日志 */
  DEBUG: false,
}
pages.json
@@ -1,303 +1,273 @@
{
    "easycom": {
        "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue"
    },
    "pages": [{
            "path": "pages/index/index",
            "style": {
                "enablePullDownRefresh": false,
                "backgroundTextStyle": "dark",
                "navigationBarTitleText": "扫码入企",
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/mine/mine",
            "style": {
                "navigationBarTitleText": "我的"
            }
        },
        {
            "path": "pages/companyLogin/companyLogin",
            "style": {
                "navigationBarTitleText": "登录",
                "navigationStyle": "custom"
            }
        },
        {
            "path" : "pages/registerCompany/registerCompany",
            "style" :
            {
                "navigationBarTitleText" : "企业注册"
            }
        },
        {
            "path" : "pages/companyIndex/companyIndex",
            "style" :
            {
                "navigationBarTitleText" : "企业首页"
            }
        },
        {
            "path" : "pages/hqzc/list",
            "style" :
            {
                "navigationBarTitleText" : "惠企政策"
            }
        },
        {
            "path" : "pages/hqzc/details",
            "style" :
            {
                "navigationBarTitleText" : "惠企政策"
            }
        },
        {
            "path" : "pages/message/list",
            "style" :
            {
                "navigationBarTitleText" : "信息公示"
            }
        },
        {
            "path" : "pages/message/details",
            "style" :
            {
                "navigationBarTitleText" : "信息公示详情",
                "navigationStyle": "custom"
            }
        },
        {
            "path" : "pages/visitiorRegis/visitiorRegis",
            "style" :
            {
                "navigationBarTitleText" : "来访人员登记"
            }
        },
        {
            "path" : "pages/index/home",
            "style" :
            {
                "navigationBarTitleText" : ""
            }
        }
    ],
    "subPackages": [
        {
            "root": "policy",
            "pages": [
                {
                    "path" : "policyIndex/policyIndex",
                    "style" :
                    {
                        "navigationBarTitleText" : "首页",
                        "navigationStyle": "custom"
                    }
                },
                {
                    "path" : "policyApply/policyApply",
                    "style" :
                    {
                        "navigationBarTitleText" : "执法申请"
                    }
                },
                {
                    "path" : "changePhone/changePhone",
                    "style" :
                    {
                        "navigationBarTitleText" : "修改手机号"
                    }
                },
                {
                    "path" : "dataLook/dataLook",
                    "style" :
                    {
                        "navigationBarTitleText" : "数据看板",
                        "backgroundColor": "#1171E0"
                    }
                },
                {
                    "path" : "reportPage/reportPage",
                    "style" :
                    {
                        "navigationBarTitleText" : "执法结果上报"
                    }
                },
                {
                    "path" : "reportDetails/reportDetails",
                    "style" :
                    {
                        "navigationBarTitleText" : "上报结果"
                    }
                },
                {
                    "path" : "reportRecord/reportRecord",
                    "style" :
                    {
                        "navigationBarTitleText" : "上报记录"
                    }
                },
                {
                    "path" : "applyRecord/applyRecord",
                    "style" :
                    {
                        "navigationBarTitleText" : "记录查询"
                    }
                },
                {
                    "path" : "applyRecordDetails/applyRecordDetails",
                    "style" :
                    {
                        "navigationBarTitleText" : "申请详情",
                        "navigationStyle": "custom"
                    }
                },
                {
                    "path" : "translate/translate",
                    "style" :
                    {
                        "navigationBarTitleText" : "执法审批"
                    }
                },
                {
                    "path" : "translateRecord/translateRecord",
                    "style" :
                    {
                        "navigationBarTitleText" : "审批记录"
                    }
                },
                {
                    "path" : "scodePage/scodePage",
                    "style" :
                    {
                        "navigationBarTitleText" : "",
                        "navigationStyle": "custom"
                    }
                },
                {
                    "path" : "judgeApply/judgeApply",
                    "style" :
                    {
                        "navigationBarTitleText" : "审批详情",
                        "navigationStyle": "custom"
                    }
                },
                {
                    "path" : "applyLook/applyLook",
                    "style" :
                    {
                        "navigationBarTitleText" : ""
                    }
                }
            ]
        },
        {
            "root": "qiye",
            "pages": [{
                "path" : "qiyeIndex/qiyeIndex",
                "style" :
                {
                    "navigationBarTitleText" : "",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "my/my",
                "style" :
                {
                    "navigationBarTitleText" : "",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "record/record",
                "style" :
                {
                    "navigationBarTitleText" : "执法记录",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "record/details",
                "style" :
                {
                    "navigationBarTitleText" : "执法信息",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "record/evaluate",
                "style" :
                {
                    "navigationBarTitleText" : "评价"
                }
            },
            {
                "path" : "complaint/complaint",
                "style" :
                {
                    "navigationBarTitleText" : "投诉记录"
                }
            },
            {
                "path" : "complaint/details",
                "style" :
                {
                    "navigationBarTitleText" : "",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "complaint/details1",
                "style" :
                {
                    "navigationBarTitleText" : "",
                    "navigationStyle": "custom"
                }
            },
            {
                "path" : "switchPhone/switchPhone",
                "style" :
                {
                    "navigationBarTitleText" : "切换企业"
                }
            },
            {
                "path" : "proposal/proposal",
                "style" :
                {
                    "navigationBarTitleText" : "投诉"
                }
            },
            {
                "path" : "proposal1/proposal1",
                "style" :
                {
                    "navigationBarTitleText" : "建议"
                }
            },
            {
                "path" : "proprsalRecord/proprsalRecord",
                "style" :
                {
                    "navigationBarTitleText" : "建议记录"
                }
            }
            ]
        }
    ],
    "globalStyle": {
        "backgroundColor": "#F8F8F8",
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#fff",
        "navigationBarTitleText": "扫码入企",
        "navigationBarTextStyle": "black"
    },
    "uniIdRouter": {},
    "lazyCodeLoading": "requiredComponents",
    "sitemapLocation": "sitemap.json"
{
  "easycom": {
    "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue"
  },
  "pages": [{
      "path": "pages/index/index",
      "style": {
        "enablePullDownRefresh": false,
        "backgroundTextStyle": "dark",
        "navigationBarTitleText": "扫码入企",
        "navigationStyle": "custom"
      }
    },
    {
      "path": "pages/mine/mine",
      "style": {
        "navigationBarTitleText": "我的"
      }
    },
    {
      "path": "pages/companyLogin/companyLogin",
      "style": {
        "navigationBarTitleText": "登录",
        "navigationStyle": "custom"
      }
    },
    {
      "path": "pages/registerCompany/registerCompany",
      "style": {
        "navigationBarTitleText": "企业注册"
      }
    },
    {
      "path": "pages/companyIndex/companyIndex",
      "style": {
        "navigationBarTitleText": "企业首页"
      }
    },
    {
      "path": "pages/hqzc/list",
      "style": {
        "navigationBarTitleText": "惠企政策"
      }
    },
    {
      "path": "pages/hqzc/details",
      "style": {
        "navigationBarTitleText": "惠企政策"
      }
    },
    {
      "path": "pages/message/list",
      "style": {
        "navigationBarTitleText": "信息公示"
      }
    },
    {
      "path": "pages/message/details",
      "style": {
        "navigationBarTitleText": "信息公示详情",
        "navigationStyle": "custom"
      }
    },
    {
      "path": "pages/visitiorRegis/visitiorRegis",
      "style": {
        "navigationBarTitleText": "来访人员登记"
      }
    },
    {
      "path": "pages/index/home",
      "style": {
        "navigationBarTitleText": ""
      }
    }
  ],
  "subPackages": [{
      "root": "policy",
      "pages": [{
          "path": "policyIndex/policyIndex",
          "style": {
            "navigationBarTitleText": "首页",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "policyApply/policyApply",
          "style": {
            "navigationBarTitleText": "执法申请"
          }
        },
        {
          "path": "changePhone/changePhone",
          "style": {
            "navigationBarTitleText": "修改手机号"
          }
        },
        {
          "path": "dataLook/dataLook",
          "style": {
            "navigationBarTitleText": "数据看板",
            "backgroundColor": "#1171E0"
          }
        },
        {
          "path": "reportPage/reportPage",
          "style": {
            "navigationBarTitleText": "执法结果上报"
          }
        },
        {
          "path": "reportDetails/reportDetails",
          "style": {
            "navigationBarTitleText": "上报结果"
          }
        },
        {
          "path": "reportRecord/reportRecord",
          "style": {
            "navigationBarTitleText": "上报记录"
          }
        },
        {
          "path": "applyRecord/applyRecord",
          "style": {
            "navigationBarTitleText": "记录查询"
          }
        },
        {
          "path": "applyRecordDetails/applyRecordDetails",
          "style": {
            "navigationBarTitleText": "申请详情",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "translate/translate",
          "style": {
            "navigationBarTitleText": "执法审批"
          }
        },
        {
          "path": "translateRecord/translateRecord",
          "style": {
            "navigationBarTitleText": "审批记录"
          }
        },
        {
          "path": "scodePage/scodePage",
          "style": {
            "navigationBarTitleText": "",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "judgeApply/judgeApply",
          "style": {
            "navigationBarTitleText": "审批详情",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "applyLook/applyLook",
          "style": {
            "navigationBarTitleText": ""
          }
        }
      ]
    },
    {
      "root": "qiye",
      "pages": [{
          "path": "qiyeIndex/qiyeIndex",
          "style": {
            "navigationBarTitleText": "",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "my/my",
          "style": {
            "navigationBarTitleText": "",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "record/record",
          "style": {
            "navigationBarTitleText": "执法记录",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "record/details",
          "style": {
            "navigationBarTitleText": "执法信息",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "record/evaluate",
          "style": {
            "navigationBarTitleText": "评价"
          }
        },
        {
          "path": "record/compositeDetails",
          "style": {
            "navigationBarTitleText": "执法记录",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "complaint/complaint",
          "style": {
            "navigationBarTitleText": "投诉记录"
          }
        },
        {
          "path": "complaint/details",
          "style": {
            "navigationBarTitleText": "",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "complaint/details1",
          "style": {
            "navigationBarTitleText": "",
            "navigationStyle": "custom"
          }
        },
        {
          "path": "switchPhone/switchPhone",
          "style": {
            "navigationBarTitleText": "切换企业"
          }
        },
        {
          "path": "proposal/proposal",
          "style": {
            "navigationBarTitleText": "投诉"
          }
        },
        {
          "path": "proposal1/proposal1",
          "style": {
            "navigationBarTitleText": "建议"
          }
        },
        {
          "path": "proprsalRecord/proprsalRecord",
          "style": {
            "navigationBarTitleText": "建议记录"
          }
        }
      ]
    }
  ],
  "globalStyle": {
    "backgroundColor": "#F8F8F8",
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "扫码入企",
    "navigationBarTextStyle": "black"
  },
  "uniIdRouter": {},
  "lazyCodeLoading": "requiredComponents",
  "sitemapLocation": "sitemap.json"
}
policy/applyLook/applyLook.vue
@@ -1,147 +1,161 @@
<template>
    <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>
            </view>
            <view class="border"></view>
            <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(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 status4" v-else >已拒绝</text>
                </view>
                <view class="user-info">
                    <text>{{item.applyUser}}</text>
                    <!-- <view class="driver"></view> -->
                </view>
                <view class="user-info">
                    <text>{{item.applyDeptName}}</text>
                </view>
                <view class="set-line">
                    <text>执法对象:</text>{{item.companyName}}
                </view>
                <view class="line"></view>
                <view class="set-flex set-start set-flex-content-between">
                    <view>
                        <view class="set-line1">
                            <text>执法时间:</text>{{item.planTime}}
                        </view>
                        <view class="set-line1">
                            <text>申请时间:</text>{{item.applyTime}}
                        </view>
                    </view>
                </view>
            </view>
             <u-empty v-if="!dataList.length"></u-empty>
        </view>
    </view>
</template>
<script>
    import { commonList } from '@/api/policy.js'
    export default {
        data() {
            return {
                current: 0,
                list1: [{
                    name: '全部',
                    value: {}
                }, {
                    name: '待审批',
                    value: {
                        orderStatus: 1,
                        checkStatus: 0
                    }
                }, {
                    name: '待执行',
                    value: {
                        orderStatus: 2
                    }
                }, {
                    name: '已执行',
                    value: {
                        orderStatus: 3
                    }
                }, {
                    name: '已上报',
                    value: {
                        orderStatus: 4
                    }
                }, {
                    name: '企业已确认',
                    value: {
                        orderStatus: 5
                    }
                }],
                queryParams: {
                    pageNum: 1,
                    pageSize: 10,
                    isAsc: "desc",
                    orderByColumn: "apply_time"
                },
                total: 1,
                dataList: [],
                mapStatus: {
                    1: '待审批',
                    2: "待执行",
                    3: "待上报",
                    '-1':"已拒绝",
                    4: "已上报",
                    5: "企业已确认"
                }
            }
        },
        onLoad() {
            this.orderList()
        },
        onReachBottom() {
            if(this.dataList.length == this.total) {
                return
            }
            this.queryParams.pageNum++
            this.orderList()
        },
        methods: {
            goReport(id) {
                uni.navigateTo({
                    url: `/policy/applyRecordDetails/applyRecordDetails?id=${id}`
                })
            },
            click(e) {
                this.dataList = []
                this.queryParams.pageNum = 1
                this.current = e.index
                this.orderList()
            },
            orderList() {
                const userInfo = uni.getStorageSync('userInfo')
                commonList({...this.queryParams, ...this.list1[this.current].value}).then(val => {
                    this.total = val.data.total
                    this.dataList = [...this.dataList,...val.data.rows]
                })
            },
            search(e){
                this.dataList = []
                this.queryParams.pageNum =1
                this.queryParams.companyName = e
                this.orderList()
            }
        }
    }
</script>
<style>
    page {
        background-color: #F4F4F4;
    }
</style>
<style lang="scss" scoped>
    @import "./applyLook.scss";
    ::v-deep .u-sticky{
            position: -webkit-sticky;
    }
</style>
<template>
  <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>
      </view>
      <view class="border"></view>
      <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(item.orderId)" v-for="(item,index) in dataList" :key="index">
        <view class="top-title">
          <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>
          <!-- <view class="driver"></view> -->
        </view>
        <view class="user-info">
          <text>{{item.applyDeptName || item.applyDeptNames || ''}}</text>
        </view>
        <view class="set-line">
          <text>执法对象:</text>{{item.companyName}}
        </view>
        <view class="line"></view>
        <view class="set-flex set-start set-flex-content-between">
          <view>
            <view class="set-line1">
              <text>执法时间:</text>{{item.planTime || item.planMonth || ''}}
            </view>
            <view class="set-line1">
              <text>申请时间:</text>{{item.applyTime}}
            </view>
          </view>
        </view>
      </view>
      <u-empty v-if="!dataList.length"></u-empty>
    </view>
  </view>
</template>
<script>
  import {
    commonList
  } from '@/api/policy.js'
  export default {
    data() {
      return {
        current: 0,
        list1: [{
          name: '全部',
          value: {}
        }, {
          name: '待审批',
          value: {
            orderStatus: 1,
            checkStatus: 0
          }
        }, {
          name: '待执行',
          value: {
            orderStatus: 2
          }
        }, {
          name: '已执行',
          value: {
            orderStatus: 3
          }
        }, {
          name: '已上报',
          value: {
            orderStatus: 4
          }
        }, {
          name: '企业已确认',
          value: {
            orderStatus: 5
          }
        }],
        queryParams: {
          pageNum: 1,
          pageSize: 10,
          isAsc: "desc",
          orderByColumn: "apply_time"
        },
        total: 1,
        dataList: [],
        mapStatus: {
          1: '待审批',
          2: "待执行",
          3: "待上报",
          '-1': "已拒绝",
          4: "已上报",
          5: "企业已确认"
        }
      }
    },
    onLoad() {
      this.orderList()
    },
    onReachBottom() {
      if (this.dataList.length == this.total) {
        return
      }
      this.queryParams.pageNum++
      this.orderList()
    },
    methods: {
      goReport(id) {
        uni.navigateTo({
          url: `/policy/applyRecordDetails/applyRecordDetails?id=${id}`
        })
      },
      click(e) {
        this.dataList = []
        this.queryParams.pageNum = 1
        this.current = e.index
        this.orderList()
      },
      orderList() {
        const userInfo = uni.getStorageSync('userInfo')
        commonList({
          ...this.queryParams,
          ...this.list1[this.current].value
        }).then(val => {
          this.total = val.data.total
          this.dataList = [...this.dataList, ...val.data.rows]
        })
      },
      search(e) {
        this.dataList = []
        this.queryParams.pageNum = 1
        this.queryParams.companyName = e
        this.orderList()
      }
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
</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
@@ -1,151 +1,159 @@
<template>
    <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>
            </view>
            <view class="border"></view>
            <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" 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>
                    <!-- <view class="driver"></view> -->
                </view>
                <view class="user-info">
                    <text>{{item.applyDeptName}}</text>
                </view>
                <view class="set-line">
                    <text>执法对象:</text>{{item.companyName}}
                </view>
                <view class="line"></view>
                <view class="set-flex set-start set-flex-content-between">
                    <view>
                        <view class="set-line1">
                            <text>执法时间:</text>{{item.planTime}}
                        </view>
                        <view class="set-line1">
                            <text>申请时间:</text>{{item.applyTime}}
                        </view>
                    </view>
                </view>
            </view>
             <u-empty v-if="!dataList.length"></u-empty>
        </view>
    </view>
</template>
<script>
    import { orderList } from '@/api/policy.js'
    export default {
        data() {
            return {
                current: 0,
                list1: [{
                    name: '全部',
                    value: {}
                }, {
                    name: '待审批',
                    value: {
                        orderStatus: 1,
                        checkStatus: 0
                    }
                }, {
                    name: '待执行',
                    value: {
                        orderStatus: 2
                    }
                }, {
                    name: '待上报',
                    value: {
                        orderStatus: 3
                    }
                }, {
                    name: '已拒绝',
                    value: {
                        checkStatus: -1
                    }
                }, {
                    name: '已上报',
                    value: {
                        orderStatus: 4
                    }
                }, {
                    name: '企业已确认',
                    value: {
                        orderStatus: 5
                    }
                }],
                queryParams: {
                    pageNum: 1,
                    pageSize: 10,
                    isAsc: "desc",
                    orderByColumn: "apply_time"
                },
                total: 1,
                dataList: [],
                mapStatus: {
                    1: '待审批',
                    2: "待执行",
                    3: "待上报",
                    '-1':"已拒绝",
                    4: "已上报",
                    5: "企业已确认"
                }
            }
        },
        onLoad() {
            this.orderList()
        },
        onReachBottom() {
            if(this.dataList.length == this.total) {
                return
            }
            this.queryParams.pageNum++
            this.orderList()
        },
        methods: {
            goReport(id) {
                uni.navigateTo({
                    url: `/policy/applyRecordDetails/applyRecordDetails?id=${id}`
                })
            },
            click(e) {
                this.dataList = []
                this.queryParams.pageNum = 1
                this.current = e.index
                this.orderList()
            },
            orderList() {
                orderList({...this.queryParams, ...this.list1[this.current].value}).then(val => {
                    this.total = val.data.total
                    this.dataList = [...this.dataList,...val.data.rows]
                })
            },
            search(e){
                this.dataList = []
                this.queryParams.pageNum =1
                this.queryParams.companyName = e
                this.orderList()
            }
        }
    }
</script>
<style>
    page {
        background-color: #F4F4F4;
    }
</style>
<style lang="scss" scoped>
    @import "./applyRecord.scss";
    ::v-deep .u-sticky{
            position: -webkit-sticky;
    }
</style>
<template>
  <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>
      </view>
      <view class="border"></view>
      <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" 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>
          <!-- <view class="driver"></view> -->
        </view>
        <view class="user-info">
          <text>{{item.applyDeptName || item.applyDeptNames || ''}}</text>
        </view>
        <view class="set-line">
          <text>执法对象:</text>{{item.companyName}}
        </view>
        <view class="line"></view>
        <view class="set-flex set-start set-flex-content-between">
          <view>
            <view class="set-line1">
              <text>执法时间:</text>{{item.planTime || item.planMonth || ''}}
            </view>
            <view class="set-line1">
              <text>申请时间:</text>{{item.applyTime}}
            </view>
          </view>
        </view>
      </view>
      <u-empty v-if="!dataList.length"></u-empty>
    </view>
  </view>
</template>
<script>
  import {
    orderList
  } from '@/api/policy.js'
  export default {
    data() {
      return {
        current: 0,
        list1: [{
          name: '全部',
          value: {}
        }, {
          name: '待审批',
          value: {
            orderStatus: 1,
            checkStatus: 0
          }
        }, {
          name: '待执行',
          value: {
            orderStatus: 2
          }
        }, {
          name: '待上报',
          value: {
            orderStatus: 3
          }
        }, {
          name: '已拒绝',
          value: {
            checkStatus: -1
          }
        }, {
          name: '已上报',
          value: {
            orderStatus: 4
          }
        }, {
          name: '企业已确认',
          value: {
            orderStatus: 5
          }
        }],
        queryParams: {
          pageNum: 1,
          pageSize: 10,
          isAsc: "desc",
          orderByColumn: "apply_time"
        },
        total: 1,
        dataList: [],
        mapStatus: {
          1: '待审批',
          2: "待执行",
          3: "待上报",
          '-1': "已拒绝",
          4: "已上报",
          5: "企业已确认"
        }
      }
    },
    onLoad() {
      this.orderList()
    },
    onReachBottom() {
      if (this.dataList.length == this.total) {
        return
      }
      this.queryParams.pageNum++
      this.orderList()
    },
    methods: {
      goReport(id) {
        uni.navigateTo({
          url: `/policy/applyRecordDetails/applyRecordDetails?id=${id}`
        })
      },
      click(e) {
        this.dataList = []
        this.queryParams.pageNum = 1
        this.current = e.index
        this.orderList()
      },
      orderList() {
        orderList({
          ...this.queryParams,
          ...this.list1[this.current].value
        }).then(val => {
          this.total = val.data.total
          this.dataList = [...this.dataList, ...val.data.rows]
        })
      },
      search(e) {
        this.dataList = []
        this.queryParams.pageNum = 1
        this.queryParams.companyName = e
        this.orderList()
      }
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
  @import "./applyRecord.scss";
  ::v-deep .u-sticky {
    position: -webkit-sticky;
  }
</style>
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
@@ -1,499 +1,546 @@
<template>
  <view class="page-box">
    <view class="content-box">
      <view class="form">
        <view class="form-item">
          <view class="form-label require">
            执法主题
          </view>
          <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" />
            <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">
          <view class="form-label require">
            执法时间
          </view>
          <view class="input" @click="showTimeFun">
            <input type="text" placeholder="请选择" disabled v-model.trim="form.planTimeStr" />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </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 />
            <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
              maxlength="500"></u--textarea>
          </view>
        </view>
      </view>
    </view>
    <view class="content-box">
      <view class="form ">
        <view class="form-item">
          <view class="form-label">
            执法人员
          </view>
          <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.trim="form.applyDeptName" disabled/> -->
          <view style="width: 60%;">{{form.applyDeptName}}</view>
        </view>
        <view class="form-item sui" style="align-items: flex-start;" @click="openPer">
          <view class="form-label  ">
            随行人员
          </view>
          <view>
            <view style="color: #a2a2a2;" class="placeholder" v-if="!form.peers.length">请选择</view>
            <view v-else>
              <view style="margin-bottom: 20rpx;" v-for="(item,index) in form.peers" :key="index">
                {{item.peerUser}}({{item.peerDeptName}})
              </view>
            </view>
          </view>
          <!-- <u-textarea  border="none" disabled style="padding: 0;" placeholder="请选择" ></u-textarea> -->
        </view>
        <view class="form-item down-2">
          <view class="form-label">
            是否通知企业
          </view>
          <u-switch v-model="form.isNoticeCompany" :activeValue="1" :inactiveValue="0"></u-switch>
        </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"
      :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>
    <perPage :list="list" ref="perpage" @selectValue="selectValue"></perPage>
  </view>
</template>
<script>
  import {
    orderAdd,
    companyList,
    enforceList
  } from '@/api/policy.js'
  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,
      perPicker
    },
    data() {
      return {
        currentTime: "",
        form: {
          applyUser: '',
          applyDeptName: '',
          enforceType: 1,
          isNoticeCompany: 0,
          // regionReason: 0,
          planTimeStr: '',
          peers: [],
          orderStatus: 1,
          enforceContent: "",
          companyName: ""
        },
        show: false,
        columns: [],
        showTime: false,
        columnsType: [],
        showType: false,
        minDate: '',
        year: '',
        endYear: '',
        timeInit: '',
        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 hh:MM')
      this.startTime = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM')
      this.getInfo()
      this.getDicts()
      this.enforceList()
    },
    onShow() {
    },
    methods: {
      enforceList() {
        enforceList().then(val => {
          this.list = val.data.data
        })
      },
      getDicts() {
        getDicts('enforce_type').then(val => {
          this.columnsType = [val.data.data]
        })
      },
      getInfo() {
        getInfo().then(val => {
          const value = val.data.data
          // 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
        })
      },
      timeFilter(mode, options) {
        let d = new Date()
        // console.log(d.getFullYear());
        if (mode === 'year') {
          return options.filter((option) => option >= d.getFullYear())
        }
        if (mode === 'month') {
          return options.filter((option) => option >= d.getMonth() + 1)
        }
        if (mode === 'minute') {
          return options.filter((option) => option === '00' || option === '30');
        }
        return options;
      },
      authFile() {
        if (!this.form.enforceReason || !this.form.enforceReason.replace(/\s+/g, "")) {
          return '请填写主题'
        }
        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.peers.length){
        //     return '请选择随行人员'
        // }
        return ''
      },
      submitApply() {
        const res = this.authFile()
        if (res) {
          uni.showToast({
            title: res,
            icon: 'none'
          })
          return
        }
        orderAdd(this.form).then(val => {
          if (val.data.code == 200) {
            uni.showToast({
              title: '提交成功',
              icon: 'none'
            })
            setTimeout(() => {
              uni.navigateBack()
            }, 500)
          }
        })
      },
      applyRecord() {
        uni.navigateTo({
          url: `/policy/applyRecord/applyRecord`
        })
      },
      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()
      },
      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)
      },
      setCompany(e) {
        this.form.companyName = e
        this.form.companyCode = ''
        this.form.companyId = ''
        this.form.companyPhone = ''
        this.form.companyUser = ''
        this.form.companyAddress = ''
      },
      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 + ":" + "00"
        this.timeInit = this.$u.timeFormat(new Date(this.form.planTimeStr), 'yyyy-mm-dd hh:MM')
      },
      showTimeFun() {
        // this.showTime = true
        this.$refs.myPicker.show();
      },
      sheet() {
      },
      confirmType(e) {
        this.form.enforceType = e.value[0].dictCode
        this.form.enforceTypeName = e.value[0].dictLabel
        this.showType = false
      },
      changeValue(e, e1) {
        this.currentTime = e.value
      },
      openPer() {
        this.$refs.perpage.open(this.list)
      },
      selectValue(value) {
        value.forEach(val => {
          this.form.peers.push(val)
        });
        this.form.peers = this.uniqueArrJson(this.form.peers, 'peerId')
      },
      uniqueArrJson(arr, key) {
        var newobj = {},
          newArr = [];
        for (var i = 0; i < arr.length; i++) {
          var item = arr[i];
          if (!newobj[item[key]]) {
            newobj[item[key]] = newArr.push(item);
          }
        }
        return newArr;
      }
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
  .sui .u-textarea {
    padding: 0 !important;
  }
</style>
<style scoped lang="scss">
  .page-box {
    padding-bottom: 140rpx;
    .content-box {
      margin: 20rpx 32rpx;
      background-color: white;
      padding: 24rpx;
      border-radius: 10rpx;
    }
    .form {
      .form-item {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        border-bottom: 2rpx solid #F1F1F1;
        padding-bottom: 26rpx;
        margin-bottom: 24rpx;
        .form-label {
          font-size: 30rpx;
          color: #4A4E60;
          width: 40%;
        }
        .input {
          width: 60%;
          display: flex;
          justify-content: space-between;
          align-items: center;
        }
        .require {
          &::after {
            content: '*';
            color: #FF7500;
          }
        }
      }
      .down-2 {
        margin-bottom: 0;
        padding-bottom: 0;
        border: none;
      }
      .last {
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
        display: block;
        .form-label {
          margin-bottom: 16rpx;
        }
        .back {
          ::v-deep .u-textarea {
            background-color: #F4F4F4;
            border: none;
            .u-textarea__count {
              background: none !important;
            }
          }
        }
      }
    }
  }
  .down-options {
    background-color: white;
    position: fixed;
    bottom: 0;
    padding-bottom: 40rpx;
    width: 100%;
    padding: 22rpx 30rpx 40rpx;
    z-index: 800;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box;
    .record {
      box-sizing: border-box;
      border-radius: 20rpx;
      border: 2rpx solid #ABD2FF;
      background: #F0F8FF;
      color: #1171E0;
      font-size: 32rpx;
      padding: 20rpx 30rpx;
      width: 30%;
      text-align: center;
    }
    .submit {
      border-radius: 20rpx;
      border: 2rpx solid #1171E0;
      background-color: #1171E0;
      color: white;
      width: 65%;
      box-sizing: border-box;
      padding: 20rpx 30rpx;
      text-align: center;
    }
  }
  .sui {}
  ::v-deep .u-checkbox-label--right>text {
    line-height: 54rpx !important;
    margin-right: 15rpx;
  }
<template>
  <view class="page-box">
    <view class="content-box">
      <view class="form">
        <view class="form-item">
          <view class="form-label require">
            计划名称
          </view>
          <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" />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
        <view class="form-item">
          <view class="form-label require">
            执法时间
          </view>
          <view class="input" @click="showTimeFun">
            <input type="text" placeholder="请选择" disabled v-model.trim="form.planTimeStr" />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </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 />
            <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
              maxlength="500"></u--textarea>
          </view>
        </view>
      </view>
    </view>
    <view class="content-box">
      <view class="form ">
        <view class="form-item">
          <view class="form-label">
            执法人员
          </view>
          <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.trim="form.applyDeptName" disabled/> -->
          <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  ">
            随行人员
          </view>
          <view>
            <view style="color: #a2a2a2;" class="placeholder" v-if="!form.peers.length">请选择</view>
            <view v-else>
              <view style="margin-bottom: 20rpx;" v-for="(item,index) in form.peers" :key="index">
                {{item.peerUser}}({{item.peerDeptName}})
              </view>
            </view>
          </view>
        </view>
        <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>
    <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"
      :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>
    <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>
<script>
  import {
    orderAdd,
    companyList,
    enforceList,
    officeList,
  } from '@/api/policy.js'
  import {
    getInfo
  } from '@/api/auth.js'
  import {
    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,
      officePopup,
      rectifyPicker
    },
    data() {
      return {
        currentTime: "",
        form: {
          enforceReason: '', // 执法主题
          companyName: "", // 执法对象
          planTime: '', // 执法时间
          planTimeStr: '', // 执法时间
          enforceType: '', // 检查方式
          enforceTypeName: '', // 检查方式名称
          enforceContent: "", // 执法内容
          applyUser: '', // 执法人员
          applyOrgId: "", // 制定机构id
          applyOrgName: "", // 制定机构名称
          applyDeptIds: "", // 执行科室id
          applyDeptNames: "", // 执行科室名称
          peers: [], // 随行人员
          isNoticeCompany: 0, // 是否通知企业
          orderStatus: 1,
          joinOrderId: null,
        },
        show: false,
        columns: [],
        showTime: false,
        columnsType: [],
        showType: false,
        minDate: '',
        year: '',
        endYear: '',
        timeInit: '',
        list: [],
        startTime: "",
        month: '',
        officeList: [],
        officeShow: false,
        isRectify: 0, // 是否创建整改
        rectifyName: '', // 整改关联计划名称
      }
    },
    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 hh:MM')
      this.startTime = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM')
      this.getInfo()
      this.getDicts()
      this.enforceList()
    },
    onShow() {
    },
    methods: {
      changeRectify(e) {
        if (e == 0) {
          this.form.joinOrderId = null
          this.rectifyName = ''
        }
      },
      enforceList() {
        enforceList().then(val => {
          this.list = val.data.data
        })
      },
      getDicts() {
        getDicts('enforce_type').then(val => {
          this.columnsType = [val.data.data]
        })
      },
      getInfo() {
        getInfo().then(val => {
          const value = val.data.data
          // this.form.applyName = value.nickName
          this.form.applyUser = value.nickName
          this.form.applyId = value.userId
          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) {
        let d = new Date()
        // console.log(d.getFullYear());
        if (mode === 'year') {
          return options.filter((option) => option >= d.getFullYear())
        }
        if (mode === 'month') {
          return options.filter((option) => option >= d.getMonth() + 1)
        }
        if (mode === 'minute') {
          return options.filter((option) => option === '00' || option === '30');
        }
        return options;
      },
      authFile() {
        if (!this.form.enforceReason || !this.form.enforceReason.replace(/\s+/g, "")) {
          return '请填写主题'
        }
        if (!this.form.companyName || !this.form.companyName.replace(/\s+/g, "")) {
          return '请选择执法对象'
        }
        if (!this.form.planTimeStr) {
          return '请填写执法时间'
        }
        if (!this.form.enforceTypeName) {
          return '请选择检查方式'
        }
        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() {
        const res = this.authFile()
        if (res) {
          uni.showToast({
            title: res,
            icon: 'none'
          })
          return
        }
        orderAdd(this.form).then(val => {
          if (val.data.code == 200) {
            uni.showToast({
              title: '提交成功',
              icon: 'none'
            })
            setTimeout(() => {
              uni.navigateBack()
            }, 500)
          }
        })
      },
      applyRecord() {
        uni.navigateTo({
          url: `/policy/applyRecord/applyRecord`
        })
      },
      search() {
        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
        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.form.joinOrderId = null
        this.rectifyName = ''
      },
      setCompany(e) {
        this.form.companyName = e
        this.form.companyCode = ''
        this.form.companyId = ''
        this.form.companyPhone = ''
        this.form.companyUser = ''
        this.form.companyAddress = ''
      },
      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 + ":" + "00"
        this.timeInit = this.$u.timeFormat(new Date(this.form.planTimeStr), 'yyyy-mm-dd hh:MM')
      },
      showTimeFun() {
        // this.showTime = true
        this.$refs.myPicker.show();
      },
      sheet() {
      },
      confirmType(e) {
        this.form.enforceType = e.value[0].dictCode
        this.form.enforceTypeName = e.value[0].dictLabel
        this.showType = false
      },
      changeValue(e, e1) {
        this.currentTime = e.value
      },
      openPer() {
        this.$refs.perpage.open(this.list)
      },
      selectValue(value) {
        value.forEach(val => {
          this.form.peers.push(val)
        });
        this.form.peers = this.uniqueArrJson(this.form.peers, 'peerId')
      },
      uniqueArrJson(arr, key) {
        var newobj = {},
          newArr = [];
        for (var i = 0; i < arr.length; i++) {
          var item = arr[i];
          if (!newobj[item[key]]) {
            newobj[item[key]] = newArr.push(item);
          }
        }
        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>
<style>
  page {
    background-color: #F4F4F4;
  }
  .sui .u-textarea {
    padding: 0 !important;
  }
</style>
<style scoped lang="scss">
  .page-box {
    padding-bottom: 140rpx;
    .content-box {
      margin: 20rpx 32rpx;
      background-color: white;
      padding: 24rpx;
      border-radius: 10rpx;
    }
    .form {
      .form-item {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        border-bottom: 2rpx solid #F1F1F1;
        padding-bottom: 26rpx;
        margin-bottom: 24rpx;
        .form-label {
          width: 236rpx !important;
          font-size: 30rpx;
          color: #4A4E60;
          width: 40%;
        }
        .input {
          width: 60%;
          display: flex;
          justify-content: space-between;
          align-items: center;
        }
        .require {
          &::after {
            content: '*';
            color: #FF7500;
          }
        }
      }
      .down-2 {
        margin-bottom: 0;
        padding-bottom: 0;
        border: none;
      }
      .last {
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
        display: block;
        .form-label {
          margin-bottom: 16rpx;
        }
        .back {
          ::v-deep .u-textarea {
            background-color: #F4F4F4;
            border: none;
            .u-textarea__count {
              background: none !important;
            }
          }
        }
      }
    }
  }
  .down-options {
    background-color: white;
    position: fixed;
    bottom: 0;
    padding-bottom: 40rpx;
    width: 100%;
    padding: 22rpx 30rpx 40rpx;
    z-index: 800;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box;
    .record {
      box-sizing: border-box;
      border-radius: 20rpx;
      border: 2rpx solid #ABD2FF;
      background: #F0F8FF;
      color: #1171E0;
      font-size: 32rpx;
      padding: 20rpx 30rpx;
      width: 30%;
      text-align: center;
    }
    .submit {
      border-radius: 20rpx;
      border: 2rpx solid #1171E0;
      background-color: #1171E0;
      color: white;
      width: 65%;
      box-sizing: border-box;
      padding: 20rpx 30rpx;
      text-align: center;
    }
  }
  .sui {}
  ::v-deep .u-checkbox-label--right>text {
    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
@@ -1,157 +1,213 @@
<template>
  <view class="page-box">
    <view class="box">
      <view class="form">
        <view class="form-item">
          <view class="label">执法主题</view>
          <view class="input">{{details.enforceReason}}</view>
        </view>
        <view class="form-item">
          <view class="label">执法对象</view>
          <view class="input">{{details.companyName}}</view>
        </view>
        <view class="form-item">
          <view class="label">执法时间</view>
          <view class="input">{{details.planTime}}</view>
        </view>
        <view class="form-item">
          <view class="label">检查方式</view>
          <view class="input">{{enforceType}}</view>
        </view>
        <view class="form-item">
          <view class="label">执法人员</view>
          <view class="input">{{details.executeUser}}</view>
        </view>
        <view class="form-item">
          <view class="label">执法部门</view>
          <view class="input">{{details.executeDeptName}}</view>
        </view>
      </view>
    </view>
    <view class="box">
      <view class="form-input">
        <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="form.regionStatus">
              <u-radio shape="circle" label="正常" name="0"></u-radio>
              <u-radio shape="circle" label="待整改" name="1"></u-radio>
            </u-radio-group>
          </view>
        </view>
        <view class="form-input-item">
          <view class="form-label require">执法结果说明</view>
          <u-textarea placeholder="请输入..." count v-model="form.regionReason" maxlength="500"></u-textarea>
        </view>
        <view class="form-input-item">
          <view class="form-label require">执法照片</view>
          <view>
            <view class="show-hint">可上传9张图,单张不得超过10M</view>
          </view>
          <view>
            <uploadImage ref="uploadImage"></uploadImage>
          </view>
        </view>
      </view>
    </view>
    <view class="down">
      <view class="button" @click="startReport">
        上报结果
      </view>
    </view>
  </view>
</template>
<script>
  import uploadImage from '@/policy/components/upload.vue'
  import {
    orderDetails,
    orderUpd
  } from '@/api/policy.js'
  import {
    getDicts
  } from '@/api/data.js'
  export default {
    components: {
      uploadImage
    },
    data() {
      return {
        form: {
          regionReason: '',
          regionStatus: '0'
        },
        fileList1: [],
        details: {},
        enforceType: ""
      }
    },
    onLoad(options) {
      this.orderDetails(options.id)
    },
    methods: {
      // 获取执法类型枚举
      getDicts() {
        getDicts('enforce_type').then(val => {
          if (val.data.data) {
            this.enforceType = val.data.data.find(item => item.dictCode == this.details.enforceType).dictLabel
          }
        })
      },
      // 获取执法单详情
      orderDetails(id) {
        orderDetails({
          orderId: id
        }).then(val => {
          this.details = val.data.data
          this.getDicts()
        })
      },
      // 上报执行结果
      startReport() {
        if (!this.form.regionReason) {
          uni.showToast({
            title: '请填写执法结果',
            icon: 'none'
          })
          return
        }
        const image = this.$refs.uploadImage.imageList
        if (!image.length) {
          uni.showToast({
            title: '请上传执法图片',
            icon: 'none'
          })
          return
        }
        this.details.regionReason = this.form.regionReason
        this.form.regionImgs = image.join()
        this.form.orderId = this.details.orderId
        orderUpd(this.form).then(val => {
          if (val.data.code == 200) {
            uni.showToast({
              title: '上报成功',
              icon: 'none'
            })
            setTimeout(() => {
              uni.navigateBack()
            }, 500)
          }
        })
      }
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
  @import "./reportDetails.scss";
  ::v-deep .u-radio {
    margin-right: 80rpx;
  }
<template>
  <view class="page-box">
    <view class="box">
      <view class="form">
        <view class="form-item">
          <view class="label">执法主题</view>
          <view class="input">{{details.enforceReason}}</view>
        </view>
        <view class="form-item">
          <view class="label">执法对象</view>
          <view class="input">{{details.companyName}}</view>
        </view>
        <view class="form-item">
          <view class="label">执法时间</view>
          <view class="input">{{details.planTime || details.planMonth || ''}}</view>
        </view>
        <view class="form-item">
          <view class="label">检查方式</view>
          <view class="input">{{enforceType}}</view>
        </view>
        <view class="form-item">
          <view class="label">执法人员</view>
          <view class="input">{{details.executeUser}}</view>
        </view>
        <view class="form-item">
          <view class="label">执法部门</view>
          <view class="input">{{details.executeDeptName}}</view>
        </view>
      </view>
    </view>
    <view class="box">
      <view class="form-input">
        <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="form.regionStatus">
              <u-radio shape="circle" label="正常" name="0"></u-radio>
              <u-radio shape="circle" label="待整改" name="1"></u-radio>
            </u-radio-group>
          </view>
        </view>
        <view class="form-input-item">
          <view class="form-label require">执法结果说明</view>
          <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>
            <view class="show-hint">可上传9张图,单张不得超过10M</view>
          </view>
          <view>
            <uploadImage ref="uploadImage"></uploadImage>
          </view>
        </view>
      </view>
    </view>
    <view class="down">
      <view class="button" @click="startReport">
        上报结果
      </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>
<script>
  import uploadImage from '@/policy/components/upload.vue'
  import {
    orderDetails,
    orderUpd
  } from '@/api/policy.js'
  import {
    getDicts
  } from '@/api/data.js'
  export default {
    components: {
      uploadImage
    },
    data() {
      return {
        form: {
          regionReason: '',
          regionStatus: '0',
          planTime: null, // 整改计划时间
        },
        fileList1: [],
        details: {},
        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 => {
          if (val.data.data) {
            this.enforceType = val.data.data.find(item => item.dictCode == this.details.enforceType).dictLabel
          }
        })
      },
      // 获取执法单详情
      orderDetails(id) {
        orderDetails({
          orderId: id
        }).then(val => {
          this.details = val.data.data
          this.getDicts()
        })
      },
      // 上报执行结果
      startReport() {
        if (!this.form.regionReason) {
          uni.showToast({
            title: '请填写执法结果',
            icon: 'none'
          })
          return
        }
        const image = this.$refs.uploadImage.imageList
        if (!image.length) {
          uni.showToast({
            title: '请上传执法图片',
            icon: 'none'
          })
          return
        }
        this.details.regionReason = this.form.regionReason
        this.form.regionImgs = image.join()
        this.form.orderId = this.details.orderId
        orderUpd(this.form).then(val => {
          if (val.data.code == 200) {
            uni.showToast({
              title: '上报成功',
              icon: 'none'
            })
            setTimeout(() => {
              uni.navigateBack()
            }, 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>
<style>
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
  @import "./reportDetails.scss";
  ::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
@@ -1,102 +1,104 @@
<template>
    <view class="page-box">
        <view class="list">
            <view class="list-item" v-for="(item,index) in list" :key="index">
                <view class="top-title">
                    <text>{{item.enforceReason}}</text>
                    <text class="status">待上报</text>
                </view>
                <view class="user-info">
                    <text>{{item.executeUser || ''}}</text>
                    <!-- <view class="driver"></view>
                    <text>{{item.executeDeptName}}</text> -->
                </view>
                <view class="user-info">
                    <!-- <text>{{item.executeUser}}</text>
                    <view class="driver"></view> -->
                    <text>{{item.executeDeptName || ''}}</text>
                </view>
                <view class="set-line">
                    <text>执法对象:</text>{{item.companyName}}
                </view>
                <view class="line"></view>
                <view class="set-flex set-start set-flex-content-between">
                    <view>
                        <view class="set-line1">
                            <text>执法时间:</text>{{item.planTime}}
                        </view>
                        <view class="set-line1">
                            <text>申请时间:</text>{{item.applyTime}}
                        </view>
                    </view>
                    <view class="button" @click="goReport(item.orderId)" >
                        上报
                    </view>
                </view>
            </view>
             <u-empty v-if="!list.length" mode="data"></u-empty>
        </view>
        <view class="down">
            <view class="button" @click="goRecord">
                上报记录
            </view>
        </view>
    </view>
</template>
<script>
    import { executeList } from '@/api/policy.js'
    export default {
        data() {
            return {
                list: [],
                total: 1,
                queryParams: {
                    pageNum: 1,
                    pageSize: 10,
                    orderStatus: 3
                }
            }
        },
        onShow() {
            this.queryParams.pageNum = 1
            this.list = []
            this.executeList()
        },
        onReachBottom() {
            if(this.list.length == this.list.length) {
                return
            }
            this.queryParams.pageNum++
            this.executeList()
        },
        methods: {
            goReport(id) {
                uni.navigateTo({
                    url: `/policy/reportDetails/reportDetails?id=${id}`
                })
            },
            goRecord() {
                uni.navigateTo({
                    url: `/policy/reportRecord/reportRecord`
                })
            },
            // 获取待执法列表
            executeList() {
                executeList(this.queryParams).then(val => {
                    this.list = [...this.list, ...val.data.rows]
                    this.total = val.data.total
                })
            }
        }
    }
</script>
<style>
    page{
        background-color: #F4F4F4;
    }
</style>
<style lang="scss" scoped>
@import "./reportPage.scss";
</style>
<template>
  <view class="page-box">
    <view class="list">
      <view class="list-item" v-for="(item,index) in list" :key="index">
        <view class="top-title">
          <text>{{item.enforceReason}}</text>
          <text class="status">待上报</text>
        </view>
        <view class="user-info">
          <text>{{item.executeUser || ''}}</text>
          <!-- <view class="driver"></view>
                    <text>{{item.executeDeptName}}</text> -->
        </view>
        <view class="user-info">
          <!-- <text>{{item.executeUser}}</text>
                    <view class="driver"></view> -->
          <text>{{item.executeDeptName || ''}}</text>
        </view>
        <view class="set-line">
          <text>执法对象:</text>{{item.companyName}}
        </view>
        <view class="line"></view>
        <view class="set-flex set-start set-flex-content-between">
          <view>
            <view class="set-line1">
              <text>执法时间:</text>{{item.planTime || item.planMonth || ''}}
            </view>
            <view class="set-line1">
              <text>申请时间:</text>{{item.applyTime}}
            </view>
          </view>
          <view class="button" @click="goReport(item.orderId)">
            上报
          </view>
        </view>
      </view>
      <u-empty v-if="!list.length" mode="data"></u-empty>
    </view>
    <view class="down">
      <view class="button" @click="goRecord">
        上报记录
      </view>
    </view>
  </view>
</template>
<script>
  import {
    executeList
  } from '@/api/policy.js'
  export default {
    data() {
      return {
        list: [],
        total: 1,
        queryParams: {
          pageNum: 1,
          pageSize: 10,
          orderStatus: 3
        }
      }
    },
    onShow() {
      this.queryParams.pageNum = 1
      this.list = []
      this.executeList()
    },
    onReachBottom() {
      if (this.list.length == this.list.length) {
        return
      }
      this.queryParams.pageNum++
      this.executeList()
    },
    methods: {
      goReport(id) {
        uni.navigateTo({
          url: `/policy/reportDetails/reportDetails?id=${id}`
        })
      },
      goRecord() {
        uni.navigateTo({
          url: `/policy/reportRecord/reportRecord`
        })
      },
      // 获取待执法列表
      executeList() {
        executeList(this.queryParams).then(val => {
          this.list = [...this.list, ...val.data.rows]
          this.total = val.data.total
        })
      }
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
  @import "./reportPage.scss";
</style>
policy/reportRecord/reportRecord.vue
@@ -1,116 +1,117 @@
<template>
    <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>
            </view>
        </u-sticky>
        <view class="list">
             <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">已结束</text>
                 </view>
                 <view class="user-info">
                     <text>{{item.executeUser}}</text>
                     <!-- <view class="driver"></view>
                     <text>{{item.executeDeptName}}</text> -->
                 </view>
                <view class="user-info">
                    <!-- <text>{{item.executeUser}}</text>
                    <view class="driver"></view> -->
                    <text>{{item.executeDeptName}}</text>
                </view>
                 <view class="set-line">
                     <text>执法对象:</text>{{item.companyName}}
                 </view>
                 <view class="line"></view>
                 <view class="set-flex set-start set-flex-content-between">
                     <view>
                         <view class="set-line1">
                             <text>执法时间:</text>{{item.planTime}}
                         </view>
                         <view class="set-line1">
                             <text>申请时间:</text>{{item.applyTime}}
                         </view>
                     </view>
                     <!-- <view class="button" @click="goReport(item.orderId)" >
                         上报
                     </view> -->
                 </view>
             </view>
              <u-empty v-if="!list.length" mode="data"></u-empty>
        </view>
    </view>
</template>
<script>
    import {
        executeList
    } from '@/api/policy.js'
    export default {
        data() {
            return {
                list: [],
                total: 1,
                queryParams: {
                    pageNum: 1,
                    pageSize: 10,
                    orderStatus: 4,
                    isAsc: "desc",
                    orderByColumn: "execute_time"
                },
                searchContent: ''
            }
        },
        onShow() {
            this.queryParams.pageNum = 1
            this.list = []
            this.executeList()
        },
        onReachBottom() {
            if(this.list.length == this.total) {
                return
            }
            this.queryParams.pageNum++
            this.executeList()
        },
        methods: {
            clean() {
                this.queryParams.enforceReason = ""
                this.list = []
                this.executeList()
            },
            search() {
                this.queryParams.pageNum = 1
                this.list = []
                this.executeList()
            },
            goReport(order) {
                uni.navigateTo({
                    url: `/policy/applyRecordDetails/applyRecordDetails?id=${order}`
                })
            },
            click() {
            },
            executeList() {
                executeList(this.queryParams).then(val => {
                    this.list = [...this.list, ...val.data.rows]
                    this.total = val.data.total
                    console.log(this.total)
                })
            }
        }
    }
</script>
<style>
    page {
        background-color: #F4F4F4;
    }
</style>
<style lang="scss" scoped>
    @import "./reportRecord.scss";
<template>
  <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>
      </view>
    </u-sticky>
    <view class="list">
      <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">已结束</text>
        </view>
        <view class="user-info">
          <text>{{item.executeUser}}</text>
          <!-- <view class="driver"></view>
                     <text>{{item.executeDeptName}}</text> -->
        </view>
        <view class="user-info">
          <!-- <text>{{item.executeUser}}</text>
                    <view class="driver"></view> -->
          <text>{{item.executeDeptName}}</text>
        </view>
        <view class="set-line">
          <text>执法对象:</text>{{item.companyName}}
        </view>
        <view class="line"></view>
        <view class="set-flex set-start set-flex-content-between">
          <view>
            <view class="set-line1">
              <text>执法时间:</text>{{item.planTime || item.planMonth || ''}}
            </view>
            <view class="set-line1">
              <text>申请时间:</text>{{item.applyTime || ''}}
            </view>
          </view>
          <!-- <view class="button" @click="goReport(item.orderId)" >
                         上报
                     </view> -->
        </view>
      </view>
      <u-empty v-if="!list.length" mode="data"></u-empty>
    </view>
  </view>
</template>
<script>
  import {
    executeList
  } from '@/api/policy.js'
  export default {
    data() {
      return {
        list: [],
        total: 1,
        queryParams: {
          pageNum: 1,
          pageSize: 10,
          orderStatus: 4,
          isAsc: "desc",
          orderByColumn: "execute_time"
        },
        searchContent: ''
      }
    },
    onShow() {
      this.queryParams.pageNum = 1
      this.list = []
      this.executeList()
    },
    onReachBottom() {
      if (this.list.length == this.total) {
        return
      }
      this.queryParams.pageNum++
      this.executeList()
    },
    methods: {
      clean() {
        this.queryParams.enforceReason = ""
        this.list = []
        this.executeList()
      },
      search() {
        this.queryParams.pageNum = 1
        this.list = []
        this.executeList()
      },
      goReport(order) {
        uni.navigateTo({
          url: `/policy/applyRecordDetails/applyRecordDetails?id=${order}`
        })
      },
      click() {
      },
      executeList() {
        executeList(this.queryParams).then(val => {
          this.list = [...this.list, ...val.data.rows]
          this.total = val.data.total
          console.log(this.total)
        })
      }
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
  @import "./reportRecord.scss";
</style>
policy/scodePage/scodePage.vue
@@ -1,166 +1,166 @@
<template>
  <view>
    <u-navbar @rightClick="rightClick" :autoBack="true" :placeholder="false" bgColor="transparent"
      leftIconColor="white">
    </u-navbar>
    <image src="/static/policy/back.png" mode="widthFix" class="back-image"></image>
    <view class="page-box">
      <view class="code-hint">
        <template v-if="color == 'green'">
          <view>
            <image src="/static/policy/success.png" mode="widthFix"></image>
            <text>成功-绿码</text>
          </view>
          <view class="hint">
            可对此企业进行核查
          </view>
        </template>
        <template v-if="color == 'red'">
          <view>
            <image src="/static/policy/error.png" mode="widthFix"></image>
            <text>失败-红码</text>
          </view>
          <view class="hint">
            请核查企业信息
          </view>
        </template>
      </view>
      <!-- 二维码 -->
      <view class="qrcode">
        <image src="/static/policy/qrcode-border.png" class="border" mode="widthFix"></image>
        <image :src="uqrcodeImage" mode="widthFix" class="qrcode-1"></image>
        <view class="code-time">
          <text>扫码时间:</text>{{$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM:ss')}}
        </view>
      </view>
      <view class="code">
        <view class="item">
          <text class="label">执法人员</text>
          <text class="value">{{userInfo.nickName}}</text>
        </view>
        <view class="write-border"></view>
        <view class="item">
          <text class="label">执法部门</text>
          <text class="value">{{userInfo.dept.deptName}}</text>
        </view>
      </view>
      <view class="hint-text">
        当前企业存在<text>{{list.length}}</text>条未完成的执法任务
      </view>
      <!-- <view class="hint-text">
                当前企业未完成的执法任务
            </view> -->
      <view class="down-block">
        <swiper style="height: 500rpx;" :indicator-dots="false" :interval="3000" :duration="1000">
          <swiper-item v-for="(item,index) in list" :key="index">
            <view class="box">
              <view class="title">{{item.enforceReason}}</view>
              <view class="user-news">
                <text>{{item.applyUser}}</text>
                <view class="driver"></view>
                <text>{{item.applyDeptName}}</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}}
              </view>
              <view class="font-12">
                <text>申请时间:</text>{{item.applyTime}}
              </view>
              <view class="button-entery">
                <view class="button" v-if="item.isSelect" @click="doScanOrder(item.orderId, index)">确认执法</view>
              </view>
            </view>
          </swiper-item>
        </swiper>
      </view>
    </view>
    <uqrcode class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode"
      :value="companyCode"
      :options="{ backgroundColor: color,useDynamicSize: true,  areaColor: '#ffffff', foregroundColor: '#ffffff' }">
    </uqrcode>
  </view>
</template>
<script>
  import {
    getScanList,
    doScanOrder
  } from '@/api/policy.js'
  import {
    getInfo
  } from '@/api/auth.js'
  export default {
    data() {
      return {
        companyCode: '',
        uqrcodeImage: '',
        list: [],
        userInfo: {},
        color: '',
      }
    },
    onReady() {
    },
    onLoad(options) {
      this.getScanList(options.code)
      this.getInfo()
    },
    methods: {
      getScanList(companyCode) {
        getScanList({
          companyCode
        }).then(val => {
          this.list = val.data.data.map(item => {
            item['isSelect'] = true
            return item
          })
          if (this.list.length) {
            this.color = 'green'
          } else {
            this.color = 'red'
          }
          this.companyCode = companyCode
          setTimeout(() => {
            this.$refs.uqrcode.toTempFilePath({
              success: res => {
                this.uqrcodeImage = res.tempFilePath
              }
            });
          }, 500)
        })
      },
      getInfo() {
        getInfo().then(val => {
          this.userInfo = val.data.data
        })
      },
      doScanOrder(item, index) {
        doScanOrder(item).then(val => {
          if (val.data.code == 200) {
            uni.showToast({
              title: '确认执法成功',
              icon: 'none'
            })
            this.list[index].isSelect = false
          }
        })
      }
    }
  }
</script>
<style>
  page {
    padding-bottom: 20rpx;
  }
</style>
<style lang="scss" scoped>
  @import "./scodePage.scss";
<template>
  <view>
    <u-navbar @rightClick="rightClick" :autoBack="true" :placeholder="false" bgColor="transparent"
      leftIconColor="white">
    </u-navbar>
    <image src="/static/policy/back.png" mode="widthFix" class="back-image"></image>
    <view class="page-box">
      <view class="code-hint">
        <template v-if="color == 'green'">
          <view>
            <image src="/static/policy/success.png" mode="widthFix"></image>
            <text>成功-绿码</text>
          </view>
          <view class="hint">
            可对此企业进行核查
          </view>
        </template>
        <template v-if="color == 'red'">
          <view>
            <image src="/static/policy/error.png" mode="widthFix"></image>
            <text>失败-红码</text>
          </view>
          <view class="hint">
            请核查企业信息
          </view>
        </template>
      </view>
      <!-- 二维码 -->
      <view class="qrcode">
        <image src="/static/policy/qrcode-border.png" class="border" mode="widthFix"></image>
        <image :src="uqrcodeImage" mode="widthFix" class="qrcode-1"></image>
        <view class="code-time">
          <text>扫码时间:</text>{{$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM:ss')}}
        </view>
      </view>
      <view class="code">
        <view class="item">
          <text class="label">执法人员</text>
          <text class="value">{{userInfo.nickName}}</text>
        </view>
        <view class="write-border"></view>
        <view class="item">
          <text class="label">执法部门</text>
          <text class="value">{{userInfo.dept.deptName}}</text>
        </view>
      </view>
      <view class="hint-text">
        当前企业存在<text>{{list.length}}</text>条未完成的执法任务
      </view>
      <!-- <view class="hint-text">
                当前企业未完成的执法任务
            </view> -->
      <view class="down-block">
        <swiper style="height: 500rpx;" :indicator-dots="false" :interval="3000" :duration="1000">
          <swiper-item v-for="(item,index) in list" :key="index">
            <view class="box">
              <view class="title">{{item.enforceReason}}</view>
              <view class="user-news">
                <text>{{item.applyUser || ''}}</text>
                <view class="driver"></view>
                <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 || item.planMonth || ''}}
              </view>
              <view class="font-12">
                <text>申请时间:</text>{{item.applyTime || ''}}
              </view>
              <view class="button-entery">
                <view class="button" v-if="item.isSelect" @click="doScanOrder(item.orderId, index)">确认执法</view>
              </view>
            </view>
          </swiper-item>
        </swiper>
      </view>
    </view>
    <uqrcode class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode"
      :value="companyCode"
      :options="{ backgroundColor: color,useDynamicSize: true,  areaColor: '#ffffff', foregroundColor: '#ffffff' }">
    </uqrcode>
  </view>
</template>
<script>
  import {
    getScanList,
    doScanOrder
  } from '@/api/policy.js'
  import {
    getInfo
  } from '@/api/auth.js'
  export default {
    data() {
      return {
        companyCode: '',
        uqrcodeImage: '',
        list: [],
        userInfo: {},
        color: '',
      }
    },
    onReady() {
    },
    onLoad(options) {
      this.getScanList(options.code)
      this.getInfo()
    },
    methods: {
      getScanList(companyCode) {
        getScanList({
          companyCode
        }).then(val => {
          this.list = val.data.data.map(item => {
            item['isSelect'] = true
            return item
          })
          if (this.list.length) {
            this.color = 'green'
          } else {
            this.color = 'red'
          }
          this.companyCode = companyCode
          setTimeout(() => {
            this.$refs.uqrcode.toTempFilePath({
              success: res => {
                this.uqrcodeImage = res.tempFilePath
              }
            });
          }, 500)
        })
      },
      getInfo() {
        getInfo().then(val => {
          this.userInfo = val.data.data
        })
      },
      doScanOrder(item, index) {
        doScanOrder(item).then(val => {
          if (val.data.code == 200) {
            uni.showToast({
              title: '确认执法成功',
              icon: 'none'
            })
            this.list[index].isSelect = false
          }
        })
      }
    }
  }
</script>
<style>
  page {
    padding-bottom: 20rpx;
  }
</style>
<style lang="scss" scoped>
  @import "./scodePage.scss";
</style>
policy/translate/translate.vue
@@ -1,262 +1,261 @@
<template>
  <view class="page-box">
    <view class="list">
      <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>
        <view class="list-item">
          <view class="top-title">
            <text>{{item.enforceReason}}</text>
            <text class="status">待审批</text>
          </view>
          <view class="user-info">
            <text>{{item.applyUser}}</text>
            <!--     <view class="driver"></view>
                        <text>{{item.checkDeptName}}</text> -->
          </view>
          <view class="user-info">
            <!-- <text>{{item.applyUser}}</text>
                        <view class="driver"></view> -->
            <text>{{item.checkDeptName}}</text>
          </view>
          <view class="set-line">
            <text>执法对象:</text>{{item.companyName}}
          </view>
          <view class="line"></view>
          <view class="set-flex set-start set-flex-content-between">
            <view style="width: 75%;">
              <view class="set-line1">
                <text>执法时间:</text>{{item.planTime}}
              </view>
              <view class="set-line1">
                <text>申请时间:</text>{{item.applyTime}}
              </view>
              <view class="look" v-if="item.show">
                <view class="set-line">
                  <text>执法主题:</text>{{item.enforceReason}}
                </view>
                <view class="set-line">
                  <text>检查方式:</text>{{handlerType(item.enforceType)}}
                </view>
                <view class="set-line set-line-flex">
                  <text>执法内容:</text>
                  <view>{{item.enforceContent}}</view>
                </view>
              </view>
            </view>
            <view class="button" v-if="!isJudege" @click.self="goStartJudeg([item.orderId])">
              审批
            </view>
          </view>
          <view @click="showItem(item)" class="icon"
            style="text-align: center;display: flex;justify-content: center;align-items: center;">
            <u-icon name="arrow-down" color="#bfbfbf" size="20" v-if="!item.show"></u-icon>
            <u-icon name="arrow-up" color="#bfbfbf" size="20" v-else></u-icon>
          </view>
        </view>
      </view>
      <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>
      <view class="button more-options" @click="moreJudeg">批量审批</view>
    </view>
    <view class="down judge" v-else>
      <view class="select-image" @click="allSelect()">
        <image src="/static/policy/checkbox.png" mode="widthFix" v-show="isAllSelect"></image>
        <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!isAllSelect"></image>
        <view class="show-check">全选</view>
      </view>
      <view class="button more-options start-option" @click="moreStart">立即审批</view>
    </view>
    <popupCom ref="popup" @entery="entery" @cancel="cancelSelect"></popupCom>
  </view>
</template>
<script>
  import popupCom from '@/policy/components/popup.vue'
  import {
    checkLogList,
    checkUpd
  } from '@/api/policy.js'
  import {
    getDicts
  } from '@/api/data.js'
  export default {
    components: {
      popupCom
    },
    data() {
      return {
        isJudege: false,
        list: [
        ],
        total: 1,
        queryms: {
          pageNum: 1,
          pageSize: 10,
          orderStatus: 1,
          isAsc: "desc",
          orderByColumn: "apply_time"
        },
        recordList: [],
        typeList: []
      }
    },
    computed: {
      isAllSelect() {
        if (this.list.length) {
          const value = this.list.every(item => item.isSelect)
          return value
        } else {
          return false
        }
      }
    },
    onLoad() {
      this.getDicts()
    },
    onReachBottom() {
      if (this.total == this.list.length) {
        return
      }
      this.queryms.pageNum++
      this.checkLogList()
    },
    methods: {
      showItem(item) {
        item.show = !item.show
      },
      handlerType(type) {
        const value = this.typeList.find(item => item.dictCode == type)
        if (value) {
          return value.dictLabel
        } else {
          return ''
        }
      },
      getDicts(type) {
        getDicts('enforce_type').then(val => {
          this.typeList = val.data.data
          this.checkLogList()
        })
      },
      goRecord() {
        uni.navigateTo({
          url: `/policy/translateRecord/translateRecord`
        })
      },
      click() {
      },
      goStartJudeg(id) {
        this.recordList = id
        this.$refs.popup.open()
      },
      // 批量审批
      moreJudeg() {
        if (!this.list.length) {
          return
        }
        this.isJudege = true
      },
      setIsSelect(index) {
        if (!this.isJudege) {
          return
        }
        this.list[index].isSelect = !this.list[index].isSelect
      },
      allSelect() {
        const value = this.isAllSelect
        this.list.map(item => item.isSelect = !value)
      },
      moreStart() {
        const value = this.list.some(item => item.isSelect)
        if (value) {
          const valueData = this.list.filter(item => item.isSelect).map(item => item.orderId)
          // console.log(valueData)
          this.goStartJudeg(valueData)
        } else {
          uni.showToast({
            title: '请选择审批',
            icon: 'none'
          })
        }
      },
      entery(form) {
        // 1企业审批,2执法单审批
        checkUpd({
          ...form,
          ids: this.recordList,
          checkType: 2
        }).then(val => {
          if (val.data.code == 200) {
            uni.showToast({
              title: '审批成功',
              icon: 'none'
            })
          }
          this.list = []
          this.queryms.pageNum = 1
          this.checkLogList()
          this.$refs.popup.close()
          this.isJudege = false
        })
      },
      cancelSelect() {
        this.isJudege = false
        this.list.map(item => item.isSelect = false)
      },
      checkLogList() {
        checkLogList(this.queryms).then(val => {
          val.data.rows.map(item => {
            item.isSelect = false
            item.show = false
          })
          this.list = [...this.list, ...val.data.rows]
          this.total = val.data.total
        })
      }
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
  @import "./translate.scss";
  ::v-deep .u-radio {
    margin-right: 84rpx !important;
  }
  ::v-deep .u-textarea {
    background-color: #F4F4F4 !important;
    border: none;
  }
  .set-line-flex {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    text {
      width: 28%;
      display: inline-block;
    }
    &>view {
      width: 70%;
    }
  }
<template>
  <view class="page-box">
    <view class="list">
      <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>
        <view class="list-item">
          <view class="top-title">
            <text>{{item.enforceReason}}</text>
            <text class="status">待审批</text>
          </view>
          <view class="user-info">
            <text>{{item.applyUser}}</text>
            <!--     <view class="driver"></view>
                        <text>{{item.checkDeptName}}</text> -->
          </view>
          <view class="user-info">
            <!-- <text>{{item.applyUser}}</text>
                        <view class="driver"></view> -->
            <text>{{item.checkDeptName}}</text>
          </view>
          <view class="set-line">
            <text>执法对象:</text>{{item.companyName}}
          </view>
          <view class="line"></view>
          <view class="set-flex set-start set-flex-content-between">
            <view style="width: 75%;">
              <view class="set-line1">
                <text>执法时间:</text>{{item.planTime}}
              </view>
              <view class="set-line1">
                <text>申请时间:</text>{{item.applyTime}}
              </view>
              <view class="look" v-if="item.show">
                <view class="set-line">
                  <text>执法主题:</text>{{item.enforceReason}}
                </view>
                <view class="set-line">
                  <text>检查方式:</text>{{handlerType(item.enforceType)}}
                </view>
                <view class="set-line set-line-flex">
                  <text>执法内容:</text>
                  <view>{{item.enforceContent}}</view>
                </view>
              </view>
            </view>
            <view class="button" v-if="!isJudege" @click.self="goStartJudeg([item.orderId])">
              审批
            </view>
          </view>
          <view @click="showItem(item)" class="icon"
            style="text-align: center;display: flex;justify-content: center;align-items: center;">
            <u-icon name="arrow-down" color="#bfbfbf" size="20" v-if="!item.show"></u-icon>
            <u-icon name="arrow-up" color="#bfbfbf" size="20" v-else></u-icon>
          </view>
        </view>
      </view>
      <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>
      <view class="button more-options" @click="moreJudeg">批量审批</view>
    </view>
    <view class="down judge" v-else>
      <view class="select-image" @click="allSelect()">
        <image src="/static/policy/checkbox.png" mode="widthFix" v-show="isAllSelect"></image>
        <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!isAllSelect"></image>
        <view class="show-check">全选</view>
      </view>
      <view class="button more-options start-option" @click="moreStart">立即审批</view>
    </view>
    <popupCom ref="popup" @entery="entery" @cancel="cancelSelect"></popupCom>
  </view>
</template>
<script>
  import popupCom from '@/policy/components/popup.vue'
  import {
    checkLogList,
    checkUpd
  } from '@/api/policy.js'
  import {
    getDicts
  } from '@/api/data.js'
  export default {
    components: {
      popupCom
    },
    data() {
      return {
        isJudege: false,
        list: [
        ],
        total: 1,
        queryms: {
          pageNum: 1,
          pageSize: 10,
          orderStatus: 1,
          isAsc: "desc",
          orderByColumn: "apply_time"
        },
        recordList: [],
        typeList: []
      }
    },
    computed: {
      isAllSelect() {
        if (this.list.length) {
          const value = this.list.every(item => item.isSelect)
          return value
        } else {
          return false
        }
      }
    },
    onLoad() {
      this.getDicts()
    },
    onReachBottom() {
      if (this.total <= this.list.length) {
        return
      }
      this.queryms.pageNum++
      this.checkLogList()
    },
    methods: {
      showItem(item) {
        item.show = !item.show
      },
      handlerType(type) {
        const value = this.typeList.find(item => item.dictCode == type)
        if (value) {
          return value.dictLabel
        } else {
          return ''
        }
      },
      getDicts(type) {
        getDicts('enforce_type').then(val => {
          this.typeList = val.data.data
          this.checkLogList()
        })
      },
      goRecord() {
        uni.navigateTo({
          url: `/policy/translateRecord/translateRecord`
        })
      },
      click() {
      },
      goStartJudeg(id) {
        this.recordList = id
        this.$refs.popup.open()
      },
      // 批量审批
      moreJudeg() {
        if (!this.list.length) {
          return
        }
        this.isJudege = true
      },
      setIsSelect(index) {
        if (!this.isJudege) {
          return
        }
        this.list[index].isSelect = !this.list[index].isSelect
      },
      allSelect() {
        const value = this.isAllSelect
        this.list.map(item => item.isSelect = !value)
      },
      moreStart() {
        const value = this.list.some(item => item.isSelect)
        if (value) {
          const valueData = this.list.filter(item => item.isSelect).map(item => item.orderId)
          // console.log(valueData)
          this.goStartJudeg(valueData)
        } else {
          uni.showToast({
            title: '请选择审批',
            icon: 'none'
          })
        }
      },
      entery(form) {
        // 1企业审批,2执法单审批
        checkUpd({
          ...form,
          ids: this.recordList,
          checkType: 2
        }).then(val => {
          if (val.data.code == 200) {
            uni.showToast({
              title: '审批成功',
              icon: 'none'
            })
          }
          this.list = []
          this.queryms.pageNum = 1
          this.checkLogList()
          this.$refs.popup.close()
          this.isJudege = false
        })
      },
      cancelSelect() {
        this.isJudege = false
        this.list.map(item => item.isSelect = false)
      },
      checkLogList() {
        checkLogList(this.queryms).then(val => {
          val.data.rows.map(item => {
            item.isSelect = false
            item.show = false
          })
          this.list = [...this.list, ...val.data.rows]
          this.total = val.data.total
        })
      }
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
  @import "./translate.scss";
  ::v-deep .u-radio {
    margin-right: 84rpx !important;
  }
  ::v-deep .u-textarea {
    background-color: #F4F4F4 !important;
    border: none;
  }
  .set-line-flex {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    text {
      width: 28%;
      display: inline-block;
    }
    &>view {
      width: 70%;
    }
  }
</style>
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
@@ -1,218 +1,227 @@
<template>
    <view style="margin-top: 20rpx;">
        <view class="wbox2">
            <view class="t">
                执法评价
            </view>
            <template v-for="(item,index) in msg">
                <view class="sbox" v-if="item.questionType==2">
                    <view class="t2">
                        {{item.questionName}}
                    </view>
                    <view class="xbox">
                        <view @click="daxing(index,1)">
                            <img src="/static/qiye/xing1.png" alt="" />
                            <view>
                                很糟糕
                            </view>
                        </view>
                        <view @click="daxing(index,2)">
                            <img v-if="item.getScore>=2" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="item.getScore==2?'hei':''">
                                不满意
                            </view>
                        </view>
                        <view @click="daxing(index,3)">
                            <img v-if="item.getScore>=3" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="item.getScore==3?'hei':''">
                                一般般
                            </view>
                        </view>
                        <view @click="daxing(index,4)">
                            <img v-if="item.getScore>=4" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="item.getScore==4?'hei':''">
                                满意
                            </view>
                        </view>
                        <view @click="daxing(index,5)">
                            <img v-if="item.getScore>=5" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="item.getScore==5?'hei':''">
                                非常满意
                            </view>
                        </view>
                    </view>
                    <view class="line"></view>
                </view>
                <view class="sbox" v-if="item.questionType==1">
                    <view class="t2">
                        {{item.questionName}}
                    </view>
                    <u-radio-group v-model="item.remark" @change="radioGroupChange">
                        <u-radio v-for="(aa, ii) in item.answerList" :key="ii" :name="aa.answerId">
                            {{aa.answerName}}
                        </u-radio>
                    </u-radio-group>
                    <view class="line"></view>
                </view>
            </template>
            <view class="sbox">
                <view class="t2" style="margin-bottom: 30rpx;">
                    对我们的评价
                </view>
                <u-textarea :cursorSpacing="70" v-model="questionRemark" placeholder="请输入..."></u-textarea>
            </view>
        </view>
        <view style="height: 200rpx;"></view>
        <view class="bottom">
            <view class="b1" @click="submit()">
                提交
            </view>
        </view>
    </view>
  <view style="margin-top: 20rpx;">
    <view class="wbox2">
      <view class="t">
        执法评价
      </view>
      <template v-for="(item,index) in msg">
        <view class="sbox" v-if="item.questionType==2">
          <view class="t2">
            {{item.questionName}}
          </view>
          <view class="xbox">
            <view @click="daxing(index,1)">
              <img src="/static/qiye/xing1.png" alt="" />
              <view>
                很糟糕
              </view>
            </view>
            <view @click="daxing(index,2)">
              <img v-if="item.getScore>=2" src="/static/qiye/xing1.png" alt="" />
              <img v-else src="/static/qiye/xing2.png" alt="" />
              <view :class="item.getScore==2?'hei':''">
                不满意
              </view>
            </view>
            <view @click="daxing(index,3)">
              <img v-if="item.getScore>=3" src="/static/qiye/xing1.png" alt="" />
              <img v-else src="/static/qiye/xing2.png" alt="" />
              <view :class="item.getScore==3?'hei':''">
                一般般
              </view>
            </view>
            <view @click="daxing(index,4)">
              <img v-if="item.getScore>=4" src="/static/qiye/xing1.png" alt="" />
              <img v-else src="/static/qiye/xing2.png" alt="" />
              <view :class="item.getScore==4?'hei':''">
                满意
              </view>
            </view>
            <view @click="daxing(index,5)">
              <img v-if="item.getScore>=5" src="/static/qiye/xing1.png" alt="" />
              <img v-else src="/static/qiye/xing2.png" alt="" />
              <view :class="item.getScore==5?'hei':''">
                非常满意
              </view>
            </view>
          </view>
          <view class="line"></view>
        </view>
        <view class="sbox" v-if="item.questionType==1">
          <view class="t2">
            {{item.questionName}}
          </view>
          <u-radio-group v-model="item.remark" @change="radioGroupChange">
            <u-radio v-for="(aa, ii) in item.answerList" :key="ii" :name="aa.answerId">
              {{aa.answerName}}
            </u-radio>
          </u-radio-group>
          <view class="line"></view>
        </view>
      </template>
      <view class="sbox">
        <view class="t2" style="margin-bottom: 30rpx;">
          对我们的评价
        </view>
        <u-textarea :cursorSpacing="70" v-model="questionRemark" placeholder="请输入..."></u-textarea>
      </view>
    </view>
    <view style="height: 200rpx;"></view>
    <view class="bottom">
      <view class="b1" @click="submit()">
        提交
      </view>
    </view>
  </view>
</template>
<script>
    import { evaluate,saveOrder } from '@/api/qiye.js'
    export default {
        data() {
            return {
                xing: 5,
                value: 'orange',
                msg:[],
                questionRemark:'',
                orderId:''
            }
        },
        onLoad(options) {
            this.orderId = options.id
            //this.getdata(options.id)
            evaluate().then(val => {
                this.msg = val.data.data.questionList
                for(let i = 0;i<this.msg.length;i++){
                    if(this.msg[i].questionType==2){
                        this.msg[i].getScore = 5
                    }
                }
                //console.log(this.msg)
            })
        },
        methods: {
            daxing(i,a) {
                this.msg[i].getScore = a
                //this.xing = a
            },
            radioGroupChange(e){
                //console.log(this.msg)
            },
            submit(){
                let data = {
                    orderId:this.orderId,
                    questionList:this.msg,
                    questionRemark:this.questionRemark
                }
                console.log(data)
                //return;
                saveOrder(data).then(val => {
                    uni.showToast({
                        title: '提交成功',
                        icon: 'none'
                    })
                    setTimeout(() => {
                        uni.navigateBack()
                    }, 500)
                })
            }
        }
    }
  import {
    evaluate,
    saveOrder
  } from '@/api/qiye.js'
  export default {
    data() {
      return {
        type: '', // 1综合查一次
        xing: 5,
        value: 'orange',
        msg: [],
        questionRemark: '',
        orderId: ''
      }
    },
    onLoad(options) {
      this.orderId = options.id
      this.type = options.type || ''
      //this.getdata(options.id)
      evaluate().then(val => {
        this.msg = val.data.data.questionList
        for (let i = 0; i < this.msg.length; i++) {
          if (this.msg[i].questionType == 2) {
            this.msg[i].getScore = 5
          }
        }
        //console.log(this.msg)
      })
    },
    methods: {
      daxing(i, a) {
        this.msg[i].getScore = a
        //this.xing = a
      },
      radioGroupChange(e) {
        //console.log(this.msg)
      },
      submit() {
        let data = {
          orderId: this.orderId,
          questionList: this.msg,
          questionRemark: this.questionRemark
        }
        console.log(data)
        //return;
        saveOrder(data).then(val => {
          uni.showToast({
            title: '提交成功',
            icon: 'none'
          })
          setTimeout(() => {
            uni.navigateBack()
            if (this.type == 1) {
              uni.$emit('refresh')
            }
          }, 500)
        })
      }
    }
  }
</script>
<style>
    page {
        background: #F4F4F4;
    }
  page {
    background: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
    .wbox2 {
        background: #fff;
        border-radius: 5px;
        box-sizing: border-box;
        margin: 0 32rpx;
  .wbox2 {
    background: #fff;
    border-radius: 5px;
    box-sizing: border-box;
    margin: 0 32rpx;
        .t {
            padding: 24rpx;
            border-bottom: 1px solid #EEEEEE;
            color: #202d44;
            font-size: 36rpx;
            font-weight: bold;
        }
    .t {
      padding: 24rpx;
      border-bottom: 1px solid #EEEEEE;
      color: #202d44;
      font-size: 36rpx;
      font-weight: bold;
    }
        .sbox {
            padding: 24rpx;
    .sbox {
      padding: 24rpx;
            .line {
                border-bottom: 1px dashed #f1f1f1;
                margin-top: 32rpx;
            }
      .line {
        border-bottom: 1px dashed #f1f1f1;
        margin-top: 32rpx;
      }
            .xbox {
                display: flex;
                margin-top: 36rpx;
                justify-content: space-between;
      .xbox {
        display: flex;
        margin-top: 36rpx;
        justify-content: space-between;
                img {
                    width: 74rpx;
                    height: 74rpx;
                }
        img {
          width: 74rpx;
          height: 74rpx;
        }
                >view {
                    text-align: center;
                    font-size: 28rpx;
                    color: #C3C6CD;
                }
            }
        }
    }
        >view {
          text-align: center;
          font-size: 28rpx;
          color: #C3C6CD;
        }
      }
    }
  }
    ::v-deep .u-radio-group {
        margin-top: 20rpx;
  ::v-deep .u-radio-group {
    margin-top: 20rpx;
        .u-radio {
            margin-right: 20rpx;
        }
    }
    .u-radio {
      margin-right: 20rpx;
    }
  }
    .hei {
        color: #202D44;
    }
.bottom {
        position: fixed;
        bottom: 0;
        width: 100%;
        left: 0;
        height: 132rpx;
        background: #fff;
        display: flex;
        justify-content: center;
        align-items: center;
        .b1 {
                width: 686rpx;
                height: 88rpx;
                border-radius: 10px;
                background: #1171E0;
                line-height: 88rpx;
                text-align: center;
                color: #fff;
            }
  .hei {
    color: #202D44;
  }
    }
  .bottom {
    position: fixed;
    bottom: 0;
    width: 100%;
    left: 0;
    height: 132rpx;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    .b1 {
      width: 686rpx;
      height: 88rpx;
      border-radius: 10px;
      background: #1171E0;
      line-height: 88rpx;
      text-align: center;
      color: #fff;
    }
  }
</style>
qiye/record/record.vue
@@ -1,48 +1,57 @@
<template>
    <view>
  <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">
            <img src="/static/i05.png" class="img" alt="" />
            <view class="right">
                <view class="name">
                    <view class="l">
                        {{item.companyName}}
                    </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 class="item">
    <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">
      <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 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>
    <u-empty v-if="!list1.length"></u-empty>
    <!-- <view class="item">
            <img src="/static/i05.png" class="img" alt="" />
            <view class="right">
                <view class="name">
@@ -86,197 +95,208 @@
                </view>
            </view>
        </view> -->
        <view style="height: 150rpx;"></view>
        <tabsCom :activeNumber.sync="activeNumber"></tabsCom>
    <view style="height: 150rpx;"></view>
    <tabsCom :activeNumber.sync="activeNumber"></tabsCom>
    </view>
  </view>
</template>
<script>
    import tabsCom from '@/qiye/components/bottom.vue'
    import {
        companyList
    } from '@/api/qiye.js'
  import tabsCom from '@/qiye/components/bottom.vue'
  import {
    companyList
  } from '@/api/qiye.js'
    export default {
        components: {
            tabsCom
        },
        data() {
            return {
                activeNumber: 1,
                list: [{
                    name: '全部',
                    value: {
  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,
            }
        },
        onShow() {
            this.list1 = []
            this.queryParams.pageNum = 1
            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}`
                })
            },
            getList() {
                uni.showLoading({
                    title: '加载中...',
                    mask: true
                })
                let data = uni.getStorageSync("qiyedata")
                this.queryParams.companyId = data.companyId
                companyList({
                    ...this.queryParams,
                    ...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)
          //     }
          // }, {
          //     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,
      }
    },
    onShow() {
      this.list1 = []
      this.queryParams.pageNum = 1
      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}`
        })
      },
                // 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()
            }
        }
    }
      // 综合查一次
      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
        companyList({
          ...this.queryParams,
          ...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()
      }
    }
  }
</script>
<style>
    page {
        background: #f4f4f4;
    }
  page {
    background: #f4f4f4;
  }
</style>
<style lang="scss" scoped>
    .item {
        background: #fff;
        border-radius: 5px;
        padding: 24rpx;
        box-sizing: border-box;
        margin: 20rpx 32rpx;
        display: flex;
  .item {
    background: #fff;
    border-radius: 5px;
    padding: 24rpx;
    box-sizing: border-box;
    margin: 20rpx 32rpx;
    display: flex;
        .img {
            width: 56rpx;
            height: 56rpx;
        }
    .img {
      width: 56rpx;
      height: 56rpx;
    }
        .right {
            width: 90%;
    .right {
      width: 90%;
            .name {
                display: flex;
                justify-content: space-between;
      .name {
        display: flex;
        justify-content: space-between;
                .l {
                    color: #202d44;
                    font-size: 32rpx;
                    line-height: 44rpx;
                    margin-bottom: 24rpx;
                    width: 80%;
                }
        .l {
          color: #202d44;
          font-size: 32rpx;
          line-height: 44rpx;
          margin-bottom: 24rpx;
          width: 80%;
        }
                .r {
                    font-size: 28rpx;
                    width: 20%;
                    text-align: right;
                }
            }
        .r {
          font-size: 28rpx;
          width: 20%;
          text-align: right;
        }
      }
            .box {
                display: flex;
                justify-content: space-between;
      .box {
        display: flex;
        justify-content: space-between;
                .l {
                    font-size: 26rpx;
                    color: #7e8593;
                    max-width: 80%;
                }
        .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;
                }
            }
        }
    }
        .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
    }
  .color1 {
    color: #FE7B32;
    //cheng
  }
    .color2 {
        color: #EB4746;
  .color2 {
    color: #EB4746;
        //hong
    }
    //hong
  }
    .color3 {
        color: #3EB47A;
        //lv
    }
  .color3 {
    color: #3EB47A;
    //lv
  }
</style>