王恒
2025-08-13 bdb3123664234ec9bfe7f43be21fac7250f9479f
'修改字段、处理空值'
10个文件已修改
4217 ■■■■ 已修改文件
common/config.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/message/details.vue 363 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/applyRecordDetails/applyRecordDetails.vue 397 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/judgeApply/judgeApply.vue 407 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/policyApply/policyApply.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/reportDetails/reportDetails.vue 288 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
policy/translate/translate.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/complaint/details.vue 898 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/complaint/details1.vue 739 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/details.vue 1113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/config.js
@@ -2,14 +2,14 @@
  hasHead: true,
  authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=',
  webURL: 'https://jmy.jinmingyuan.com/ecosphere-user',
  serverTempl: "http://172.16.60.20:8086",
  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.20:8086',
  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.20:8086',
  baseUrl: 'http://172.16.60.251:8086',
  wx_appid: 'wxad8cc511da676bd4',
  ali_appid: '2021003199690698'
}
pages/message/details.vue
@@ -1,188 +1,201 @@
<template>
    <view>
        <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
            <template slot="center">
                <view style="color: white;">信息公示详情</view>
            </template>
        </u-navbar>
        <view class="donw-box"></view>
        <view class="page-main">
            <view class="wbox">
                <view class="item">
                    <view class="k">
                        执法类型
                    </view>
                    <view class="v">
                        {{type}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        执法人
                    </view>
                    <view class="v">
                        {{msg.executeUser}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        执法部门
                    </view>
                    <view class="v">
                        {{msg.executeDeptName}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        企业
                    </view>
                    <view class="v">
                        {{msg.companyName}}
                    </view>
                </view>
            </view>
            <view style="height: 20rpx;"></view>
            <view class="wbox">
                <view class="item">
                    <view class="k">
                        执法主题
                    </view>
                    <view class="v">
                        {{msg.enforceReason}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        执法过程
                    </view>
                </view>
                <view class="imgbox">
                    <img v-for="(item,index) in img" :key="index" :src="item" class="more" alt="" @click="imgclick(item)" />
                    <!-- <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" />
  <view>
    <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
      <template slot="center">
        <view style="color: white;">信息公示详情</view>
      </template>
    </u-navbar>
    <view class="donw-box"></view>
    <view class="page-main">
      <view class="wbox">
        <view class="item">
          <view class="k">
            检查方式
          </view>
          <view class="v">
            {{type}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            执法人
          </view>
          <view class="v">
            {{msg.executeUser}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            执法部门
          </view>
          <view class="v">
            {{msg.executeDeptName}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            企业
          </view>
          <view class="v">
            {{msg.companyName}}
          </view>
        </view>
      </view>
      <view style="height: 20rpx;"></view>
      <view class="wbox">
        <view class="item">
          <view class="k">
            执法主题
          </view>
          <view class="v">
            {{msg.enforceReason}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            执法过程
          </view>
        </view>
        <view class="imgbox">
          <img v-for="(item,index) in img" :key="index" :src="item" class="more" alt="" @click="imgclick(item)" />
          <!-- <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" />
                    <img src="/static/i02.png" class="more" alt="" />
                    <img src="/static/i03.png" class="more" alt="" />
                    <img src="/static/i04.png" class="more" alt="" /> -->
                </view>
                <view class="item">
                    <view class="k">
                        执法结果
                    </view>
                    <view class="v" style="color: #EB4746;">
                        {{msg.regionReason}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        执法时间
                    </view>
                    <view class="v">
                        {{msg.executeTime}}
                    </view>
                </view>
            </view>
        </view>
    </view>
        </view>
        <view class="item">
          <view class="k">
            执法结果
          </view>
          <view class="v" style="color: #EB4746;">
            {{msg.regionReason}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            执法时间
          </view>
          <view class="v">
            {{msg.executeTime}}
          </view>
        </view>
      </view>
    </view>
  </view>
</template>
<script>
    import { order } from '@/api/index.js'
    import { getDicts } from '@/api/data.js'
    import { config } from '@/common/config'
    export default {
        data() {
            return {
                msg:{},
                type:'',
                img:[],
                baseUrl: config.baseUrl
            }
        },
        onLoad(options) {
            this.getdata(options.id)
        },
        methods: {
            getdata(id){
                order(id).then(val => {
                    this.msg = val.data.data
                    let arr = this.msg.regionImgs.split(",");
                    for(let i = 0;i<arr.length;i++){
                        this.img.push(this.baseUrl+arr[i])
                    }
                    console.log(this.img)
                    getDicts('enforce_type').then(val => {
                        const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
                        this.type = value.dictLabel
                    })
                })
            },
            imgclick(url){
                uni.previewImage({
                    urls: [url]
                })
            }
        }
    }
  import {
    order
  } from '@/api/index.js'
  import {
    getDicts
  } from '@/api/data.js'
  import {
    config
  } from '@/common/config'
  export default {
    data() {
      return {
        msg: {},
        type: '',
        img: [],
        baseUrl: config.baseUrl
      }
    },
    onLoad(options) {
      this.getdata(options.id)
    },
    methods: {
      getdata(id) {
        order(id).then(val => {
          this.msg = val.data.data
          let arr = this.msg.regionImgs.split(",");
          for (let i = 0; i < arr.length; i++) {
            this.img.push(this.baseUrl + arr[i])
          }
          console.log(this.img)
          getDicts('enforce_type').then(val => {
            const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
            this.type = value.dictLabel
          })
        })
      },
      imgclick(url) {
        uni.previewImage({
          urls: [url]
        })
      }
    }
  }
</script>
<style>
    page{
        background: #F4F4F4;
    }
  page {
    background: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
    .page-main{
        position: relative;
        top: -380rpx;
    }
    .donw-box{
        width: 100%;
        height: 380rpx;
        flex-shrink: 0;
        background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
    }
    .wbox{
        background: #fff;
        border-radius: 5px;
        padding: 24rpx;
        box-sizing: border-box;
        margin: 0 32rpx;
        .item{
            display: flex;
            margin-bottom: 20rpx;
            font-size: 30rpx;
            .k{
                color: #7E8596;
                width: 30%;
            }
            .v{
                color: #202D44;
                width: 70%;
            }
        }
        .item:last-child{
            margin-bottom: 0;
        }
        .imgbox{
            // display: flex;
            // flex-wrap: wrap;
            // justify-content: space-between;
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            grid-gap: 10rpx;
            border-radius: 10rpx;
            img{
                width: 198rpx;
                height: 198rpx;
                margin-bottom: 20rpx;
                border-radius: 10rpx;
            }
        }
    }
  .page-main {
    position: relative;
    top: -380rpx;
  }
  .donw-box {
    width: 100%;
    height: 380rpx;
    flex-shrink: 0;
    background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
  }
  .wbox {
    background: #fff;
    border-radius: 5px;
    padding: 24rpx;
    box-sizing: border-box;
    margin: 0 32rpx;
    .item {
      display: flex;
      margin-bottom: 20rpx;
      font-size: 30rpx;
      .k {
        color: #7E8596;
        width: 30%;
      }
      .v {
        color: #202D44;
        width: 70%;
      }
    }
    .item:last-child {
      margin-bottom: 0;
    }
    .imgbox {
      // display: flex;
      // flex-wrap: wrap;
      // justify-content: space-between;
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      grid-gap: 10rpx;
      border-radius: 10rpx;
      img {
        width: 198rpx;
        height: 198rpx;
        margin-bottom: 20rpx;
        border-radius: 10rpx;
      }
    }
  }
</style>
policy/applyRecordDetails/applyRecordDetails.vue
@@ -1,88 +1,88 @@
<template>
    <view>
        <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
            <template slot="center">
                <view style="color: white;">申请详情</view>
            </template>
        </u-navbar>
        <view class="top-content"></view>
        <view class="main-page">
            <view class="status">
                {{mapStatus[details.orderStatus]}}
            </view>
            <view class="base-card">
                <view class="title">
                    <text>基本信息</text>
                </view>
                <view class="view-form">
                    <view class="view-form-item">
                        <view class="label">执法主题</view>
                        <view>{{details.enforceReason}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">执法对象</view>
                        <view>{{details.companyName}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">执法时间</view>
                        <view>{{details.planTime}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">执法类型</view>
                        <view>{{typeList}}</view>
                    </view>
  <view>
    <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
      <template slot="center">
        <view style="color: white;">申请详情</view>
      </template>
    </u-navbar>
    <view class="top-content"></view>
    <view class="main-page">
      <view class="status">
        {{mapStatus[details.orderStatus]}}
      </view>
      <view class="base-card">
        <view class="title">
          <text>基本信息</text>
        </view>
        <view class="view-form">
          <view class="view-form-item">
            <view class="label">执法主题</view>
            <view>{{details.enforceReason}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">执法对象</view>
            <view>{{details.companyName}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">执法时间</view>
            <view>{{details.planTime || details.planMonth || ''}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">检查方式</view>
            <view>{{typeList}}</view>
          </view>
                    <template v-if="!details.executeUser">
                        <view class="view-form-item">
                            <view class="label">执法人员</view>
                            <view>{{details.applyUser}}</view>
                        </view>
                        <view class="view-form-item">
                            <view class="label">执法部门</view>
                            <view>{{details.applyDeptName}}</view>
                        </view>
                    </template>
                    <template v-else>
                        <view class="view-form-item">
                            <view class="label">执法人员</view>
                            <view>{{details.executeUser}}</view>
                        </view>
                        <view class="view-form-item">
                            <view class="label">执法部门</view>
                            <view>{{details.executeDeptName}}</view>
                        </view>
                    </template>
                    <view class="view-form-item" >
                        <view class="label">随行人员</view>
                        <view>
                            <view v-for="(item,index) in details.peers" :key="index">
                                {{item.peerUser}}({{item.peerDeptName}})
                            </view>
                        </view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">是否通知企业</view>
                        <view>{{details.isNoticeCompany == 0 ? '否': '是'}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">申请时间</view>
                        <view>{{details.applyTime}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">当前状态</view>
                        <view>{{mapStatus[details.orderStatus]}}</view>
                    </view>
                </view>
            </view>
            <view class="base-card">
                <view class="title">
                    <text>执法内容</text>
                </view>
                <view class="view-content">
                    {{ details.enforceContent }}
                </view>
            </view>
            <!-- <view class="base-card" v-if="judgeDetails.length">
          <template v-if="!details.executeUser">
            <view class="view-form-item">
              <view class="label">执法人员</view>
              <view>{{details.applyUser || ''}}</view>
            </view>
            <view class="view-form-item">
              <view class="label">执法部门</view>
              <view>{{details.applyDeptName || details.applyDeptNames || ''}}</view>
            </view>
          </template>
          <template v-else>
            <view class="view-form-item">
              <view class="label">执法人员</view>
              <view>{{details.executeUser}}</view>
            </view>
            <view class="view-form-item">
              <view class="label">执法部门</view>
              <view>{{details.executeDeptName}}</view>
            </view>
          </template>
          <view class="view-form-item">
            <view class="label">随行人员</view>
            <view>
              <view v-for="(item,index) in details.peers" :key="index">
                {{item.peerUser}}({{item.peerDeptName}})
              </view>
            </view>
          </view>
          <view class="view-form-item">
            <view class="label">是否通知企业</view>
            <view>{{details.isNoticeCompany == 0 ? '否': '是'}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">申请时间</view>
            <view>{{details.applyTime}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">当前状态</view>
            <view>{{mapStatus[details.orderStatus]}}</view>
          </view>
        </view>
      </view>
      <view class="base-card">
        <view class="title">
          <text>执法内容</text>
        </view>
        <view class="view-content">
          {{ details.enforceContent }}
        </view>
      </view>
      <!-- <view class="base-card" v-if="judgeDetails.length">
                <view class="title">
                    <text>审批情况</text>
                </view>
@@ -108,31 +108,34 @@
                    </view>
                </view>
            </view> -->
            <view class="base-card" v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length">
                <view class="title">
                    <text>执法图片</text>
                </view>
                <view class="view-image">
                    <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill" v-for="(item,index) in details.regionImgs" :key="index"></image>
                </view>
            </view>
            <view class="base-card">
                <view class="title">
                    <text>执法进度</text>
                </view>
                <view class="view-step">
                    <view class="step-content" :class="{none: index == nodeList.length - 1}" v-for="(item,index) in nodeList" :key="index">
                        <image class="icon" src="/static/policy/icon.png" mode="widthFix" v-if="!item.nodeReason"></image>
                        <image src="/static/policy/refject.png" mode="widthFix" class="icon" v-else></image>
                        <view class="top-title">
                            {{item.nodeName}}
                        </view>
                        <view class="down-tips">
                            <view class=" submit-per">提交人:<text>{{item.nodeUser}}</text></view>
                            <view class="time">{{item.nodeTime}}</view>
                        </view>
                    </view>
                    <!-- <view class="step-content">
      <view class="base-card"
        v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length">
        <view class="title">
          <text>执法图片</text>
        </view>
        <view class="view-image">
          <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill"
            v-for="(item,index) in details.regionImgs" :key="index"></image>
        </view>
      </view>
      <view class="base-card">
        <view class="title">
          <text>执法进度</text>
        </view>
        <view class="view-step">
          <view class="step-content" :class="{none: index == nodeList.length - 1}" v-for="(item,index) in nodeList"
            :key="index">
            <image class="icon" src="/static/policy/icon.png" mode="widthFix" v-if="!item.nodeReason"></image>
            <image src="/static/policy/refject.png" mode="widthFix" class="icon" v-else></image>
            <view class="top-title">
              {{item.nodeName}}
            </view>
            <view class="down-tips">
              <view class=" submit-per" v-if="item.nodeUser">提交人:<text>{{item.nodeUser}}</text></view>
              <view class="time">{{item.nodeTime}}</view>
            </view>
          </view>
          <!-- <view class="step-content">
                        <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
                        <view class="top-title">
                            审批通过
@@ -153,95 +156,103 @@
                            <view class="time">2024-06-07 12:14</view>
                        </view>
                    </view> -->
                </view>
            </view>
        </view>
    </view>
        </view>
      </view>
    </view>
  </view>
</template>
<script>
    import {
        orderDetails,
        orderNodeList,
        enforceLogList
    } from '@/api/policy.js'
    import { getDicts } from '@/api/data.js'
    import { config } from '@/common/config'
    export default {
        data() {
            return {
                details: {},
                nodeList: [],
                mapStatus: {
                    1: '待审批',
                    2: "待执行",
                    3: "待上报",
                    '-1':"已拒绝",
                    4: "已上报",
                    5: "企业已去人"
                },
                typeList: '',
                judgeDetails: [],
                baseUrl: config.baseUrl
            }
        },
        onLoad(options) {
            this.getDetails(options.id)
            this.orderNodeList(options.id)
            this.enforceLogList(options.id)
            if(options.setTitle) {
                uni.setNavigationBarTitle({
                    title: ''
                })
            }
        },
        methods: {
            getDetails(orderId) {
                orderDetails({
                    orderId
                }).then(val => {
                    this.details = val.data.data
                    if(this.details.regionImgs){
                         this.details.regionImgs = this.details.regionImgs.split(",")
                    }
                    this.getDicts()
                })
            },
            // 节点
            orderNodeList(orderId) {
                orderNodeList({orderId}).then(val => {
                    this.nodeList = val.data.data
                })
            },
            // 申请记录
            enforceLogList(orderId) {
                enforceLogList({orderId}).then(val => {
                    // console.log(val.data.rows)
                    this.judgeDetails = val.data.rows
                })
            },
            getDicts() {
                getDicts('enforce_type').then(val => {
                    const value = val.data.data.find(item => item.dictCode == this.details.enforceType)
                    this.typeList = value.dictLabel
                })
            },
            previewImage(list, index) {
                const data = list.map(item => this.baseUrl + item)
                console.log(data)
                uni.previewImage({
                    urls: data,
                    current: index
                })
            }
        }
    }
  import {
    orderDetails,
    orderNodeList,
    enforceLogList
  } from '@/api/policy.js'
  import {
    getDicts
  } from '@/api/data.js'
  import {
    config
  } from '@/common/config'
  export default {
    data() {
      return {
        details: {},
        nodeList: [],
        mapStatus: {
          1: '待审批',
          2: "待执行",
          3: "待上报",
          '-1': "已拒绝",
          4: "已上报",
          5: "企业已去人"
        },
        typeList: '',
        judgeDetails: [],
        baseUrl: config.baseUrl
      }
    },
    onLoad(options) {
      this.getDetails(options.id)
      this.orderNodeList(options.id)
      this.enforceLogList(options.id)
      if (options.setTitle) {
        uni.setNavigationBarTitle({
          title: ''
        })
      }
    },
    methods: {
      getDetails(orderId) {
        orderDetails({
          orderId
        }).then(val => {
          this.details = val.data.data
          if (this.details.regionImgs) {
            this.details.regionImgs = this.details.regionImgs.split(",")
          }
          this.getDicts()
        })
      },
      // 节点
      orderNodeList(orderId) {
        orderNodeList({
          orderId
        }).then(val => {
          this.nodeList = val.data.data
        })
      },
      // 申请记录
      enforceLogList(orderId) {
        enforceLogList({
          orderId
        }).then(val => {
          // console.log(val.data.rows)
          this.judgeDetails = val.data.rows
        })
      },
      getDicts() {
        getDicts('enforce_type').then(val => {
          const value = val.data.data.find(item => item.dictCode == this.details.enforceType)
          this.typeList = value.dictLabel
        })
      },
      previewImage(list, index) {
        const data = list.map(item => this.baseUrl + item)
        console.log(data)
        uni.previewImage({
          urls: data,
          current: index
        })
      }
    }
  }
</script>
<style>
    page {
        background-color: #F4F4F4;
    }
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
    @import "./applyRecordDetails.scss";
</style>
  @import "./applyRecordDetails.scss";
</style>
policy/judgeApply/judgeApply.vue
@@ -1,88 +1,88 @@
<template>
    <view>
        <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
            <template slot="center">
                <view style="color: white;">审批详情</view>
            </template>
        </u-navbar>
        <view class="top-content"></view>
        <view class="main-page">
            <view class="status">
                {{mapStatus[details.checkStatus]}}
            </view>
            <view class="base-card">
                <view class="title">
                    <text>基本信息</text>
                </view>
                <view class="view-form">
                    <view class="view-form-item">
                        <view class="label">执法主题</view>
                        <view>{{details.enforceReason}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">执法对象</view>
                        <view>{{details.companyName}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">执法时间</view>
                        <view>{{details.planTime}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">执法类型</view>
                        <view>{{typeList}}</view>
                    </view>
                    <template v-if="!details.executeUser">
                        <view class="view-form-item">
                            <view class="label">执法人员</view>
                            <view>{{details.applyUser}}</view>
                        </view>
                        <view class="view-form-item">
                            <view class="label">执法部门</view>
                            <view>{{details.applyDeptName}}</view>
                        </view>
                    </template>
                    <template v-else>
                        <view class="view-form-item">
                            <view class="label">执法人员</view>
                            <view>{{details.executeUser}}</view>
                        </view>
                        <view class="view-form-item">
                            <view class="label">执法部门</view>
                            <view>{{details.executeDeptName}}</view>
                        </view>
                    </template>
                    <view class="view-form-item" >
                        <view class="label">随行人员</view>
                        <view>
                            <view v-for="(item,index) in details.peers" :key="index">
                                {{item.peerUser}}({{item.peerDeptName}})
                            </view>
                        </view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">是否通知企业</view>
                        <view>{{details.isNoticeCompany == 0 ? '否': '是'}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">申请时间</view>
                        <view>{{details.applyTime}}</view>
                    </view>
                    <view class="view-form-item">
                        <view class="label">当前状态</view>
                        <view>{{mapStatus[details.checkStatus]}}</view>
                    </view>
                </view>
            </view>
            <view class="base-card">
                <view class="title">
                    <text>执法内容</text>
                </view>
                <view class="view-content">
                    {{ details.enforceContent }}
                </view>
            </view>
            <!-- <view class="base-card" v-if="judgeDetails.length">
  <view>
    <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
      <template slot="center">
        <view style="color: white;">审批详情</view>
      </template>
    </u-navbar>
    <view class="top-content"></view>
    <view class="main-page">
      <view class="status">
        {{mapStatus[details.checkStatus]}}
      </view>
      <view class="base-card">
        <view class="title">
          <text>基本信息</text>
        </view>
        <view class="view-form">
          <view class="view-form-item">
            <view class="label">执法主题</view>
            <view>{{details.enforceReason}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">执法对象</view>
            <view>{{details.companyName}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">执法时间</view>
            <view>{{details.planTime}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">检查方式</view>
            <view>{{typeList}}</view>
          </view>
          <template v-if="!details.executeUser">
            <view class="view-form-item">
              <view class="label">执法人员</view>
              <view>{{details.applyUser}}</view>
            </view>
            <view class="view-form-item">
              <view class="label">执法部门</view>
              <view>{{details.applyDeptName}}</view>
            </view>
          </template>
          <template v-else>
            <view class="view-form-item">
              <view class="label">执法人员</view>
              <view>{{details.executeUser}}</view>
            </view>
            <view class="view-form-item">
              <view class="label">执法部门</view>
              <view>{{details.executeDeptName}}</view>
            </view>
          </template>
          <view class="view-form-item">
            <view class="label">随行人员</view>
            <view>
              <view v-for="(item,index) in details.peers" :key="index">
                {{item.peerUser}}({{item.peerDeptName}})
              </view>
            </view>
          </view>
          <view class="view-form-item">
            <view class="label">是否通知企业</view>
            <view>{{details.isNoticeCompany == 0 ? '否': '是'}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">申请时间</view>
            <view>{{details.applyTime}}</view>
          </view>
          <view class="view-form-item">
            <view class="label">当前状态</view>
            <view>{{mapStatus[details.checkStatus]}}</view>
          </view>
        </view>
      </view>
      <view class="base-card">
        <view class="title">
          <text>执法内容</text>
        </view>
        <view class="view-content">
          {{ details.enforceContent }}
        </view>
      </view>
      <!-- <view class="base-card" v-if="judgeDetails.length">
                <view class="title">
                    <text>审批情况</text>
                </view>
@@ -108,31 +108,34 @@
                    </view>
                </view>
            </view> -->
            <view class="base-card" v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length">
                <view class="title">
                    <text>执法图片</text>
                </view>
                <view class="view-image">
                    <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill" v-for="(item,index) in details.regionImgs" :key="index"></image>
                </view>
            </view>
            <view class="base-card">
                <view class="title">
                    <text>审批进度</text>
                </view>
                <view class="view-step">
                    <view class="step-content" :class="{none: index == nodeList.length - 1}" v-for="(item,index) in nodeList" :key="index">
                        <image class="icon" src="/static/policy/icon.png" mode="widthFix" v-if="!item.nodeReason"></image>
                        <image src="/static/policy/refject.png" mode="widthFix" class="icon" v-else></image>
                        <view class="top-title">
                            {{item.nodeName}}
                        </view>
                        <view class="down-tips">
                            <view class=" submit-per">提交人:<text>{{item.nodeUser}}</text></view>
                            <view class="time">{{item.nodeTime}}</view>
                        </view>
                    </view>
                    <!-- <view class="step-content">
      <view class="base-card"
        v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length">
        <view class="title">
          <text>执法图片</text>
        </view>
        <view class="view-image">
          <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill"
            v-for="(item,index) in details.regionImgs" :key="index"></image>
        </view>
      </view>
      <view class="base-card">
        <view class="title">
          <text>审批进度</text>
        </view>
        <view class="view-step">
          <view class="step-content" :class="{none: index == nodeList.length - 1}" v-for="(item,index) in nodeList"
            :key="index">
            <image class="icon" src="/static/policy/icon.png" mode="widthFix" v-if="!item.nodeReason"></image>
            <image src="/static/policy/refject.png" mode="widthFix" class="icon" v-else></image>
            <view class="top-title">
              {{item.nodeName}}
            </view>
            <view class="down-tips">
              <view class=" submit-per">提交人:<text>{{item.nodeUser}}</text></view>
              <view class="time">{{item.nodeTime}}</view>
            </view>
          </view>
          <!-- <view class="step-content">
                        <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
                        <view class="top-title">
                            审批通过
@@ -153,100 +156,108 @@
                            <view class="time">2024-06-07 12:14</view>
                        </view>
                    </view> -->
                </view>
            </view>
        </view>
    </view>
        </view>
      </view>
    </view>
  </view>
</template>
<script>
    import {
        orderDetails,
        orderNodeList,
        enforceLogList
    } from '@/api/policy.js'
    import { getDicts } from '@/api/data.js'
    import { config } from '@/common/config'
    export default {
        data() {
            return {
                details: {},
                nodeList: [],
                mapStatus: {
                    // 1: '待审批',
                    // 2: "待执行",
                    // 3: "待上报",
                    // '-1':"已拒绝",
                    // 4: "已结束"
                    // -1拒绝,0待审批,1审批中,2通过
                    "-1": '已拒绝',
                    0: '待审批',
                    1: '审批中',
                    2: "已审批"
                },
                typeList: '',
                judgeDetails: [],
                baseUrl: config.baseUrl
            }
        },
        onLoad(options) {
            this.getDetails(options.id)
            this.orderNodeList(options.id)
            this.enforceLogList(options.id)
            if(options.setTitle) {
                uni.setNavigationBarTitle({
                    title: ''
                })
            }
        },
        methods: {
            getDetails(orderId) {
                orderDetails({
                    orderId
                }).then(val => {
                    this.details = val.data.data
                    if(this.details.regionImgs){
                         this.details.regionImgs = this.details.regionImgs.split(",")
                    }
                    this.getDicts()
                })
            },
            // 节点
            orderNodeList(orderId) {
                orderNodeList({orderId}).then(val => {
                    this.nodeList = val.data.data
                })
            },
            // 申请记录
            enforceLogList(orderId) {
                enforceLogList({orderId}).then(val => {
                    // console.log(val.data.rows)
                    this.judgeDetails = val.data.rows
                })
            },
            getDicts() {
                getDicts('enforce_type').then(val => {
                    const value = val.data.data.find(item => item.dictCode == this.details.enforceType)
                    this.typeList = value.dictLabel
                })
            },
            previewImage(list, index) {
                const data = list.map(item => this.baseUrl + item)
                console.log(data)
                uni.previewImage({
                    urls: data,
                    current: index
                })
            }
        }
    }
  import {
    orderDetails,
    orderNodeList,
    enforceLogList
  } from '@/api/policy.js'
  import {
    getDicts
  } from '@/api/data.js'
  import {
    config
  } from '@/common/config'
  export default {
    data() {
      return {
        details: {},
        nodeList: [],
        mapStatus: {
          // 1: '待审批',
          // 2: "待执行",
          // 3: "待上报",
          // '-1':"已拒绝",
          // 4: "已结束"
          // -1拒绝,0待审批,1审批中,2通过
          "-1": '已拒绝',
          0: '待审批',
          1: '审批中',
          2: "已审批"
        },
        typeList: '',
        judgeDetails: [],
        baseUrl: config.baseUrl
      }
    },
    onLoad(options) {
      this.getDetails(options.id)
      this.orderNodeList(options.id)
      this.enforceLogList(options.id)
      if (options.setTitle) {
        uni.setNavigationBarTitle({
          title: ''
        })
      }
    },
    methods: {
      getDetails(orderId) {
        orderDetails({
          orderId
        }).then(val => {
          this.details = val.data.data
          if (this.details.regionImgs) {
            this.details.regionImgs = this.details.regionImgs.split(",")
          }
          this.getDicts()
        })
      },
      // 节点
      orderNodeList(orderId) {
        orderNodeList({
          orderId
        }).then(val => {
          this.nodeList = val.data.data
        })
      },
      // 申请记录
      enforceLogList(orderId) {
        enforceLogList({
          orderId
        }).then(val => {
          // console.log(val.data.rows)
          this.judgeDetails = val.data.rows
        })
      },
      getDicts() {
        getDicts('enforce_type').then(val => {
          const value = val.data.data.find(item => item.dictCode == this.details.enforceType)
          this.typeList = value.dictLabel
        })
      },
      previewImage(list, index) {
        const data = list.map(item => this.baseUrl + item)
        console.log(data)
        uni.previewImage({
          urls: data,
          current: index
        })
      }
    }
  }
</script>
<style>
    page {
        background-color: #F4F4F4;
    }
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
    @import "./judgeApply.scss";
  @import "./judgeApply.scss";
</style>
policy/policyApply/policyApply.vue
@@ -29,7 +29,7 @@
        </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 />
@@ -252,7 +252,7 @@
          return '请填写执法时间'
        }
        if (!this.form.enforceTypeName) {
          return '请选择执法类型'
          return '请选择检查方式'
        }
        console.log(!this.form.enforceContent.replace(/\s+/g, ""))
        if (!this.form.enforceContent || !this.form.enforceContent.replace(/\s+/g, "")) {
policy/reportDetails/reportDetails.vue
@@ -1,149 +1,157 @@
<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>
  <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)
                    }
                })
            }
        }
    }
  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;
    }
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
    @import "./reportDetails.scss";
    ::v-deep .u-radio{
        margin-right: 80rpx;
    }
  @import "./reportDetails.scss";
  ::v-deep .u-radio {
    margin-right: 80rpx;
  }
</style>
policy/translate/translate.vue
@@ -40,7 +40,7 @@
                  <text>执法主题:</text>{{item.enforceReason}}
                </view>
                <view class="set-line">
                  <text>执法类型:</text>{{handlerType(item.enforceType)}}
                  <text>检查方式:</text>{{handlerType(item.enforceType)}}
                </view>
                <view class="set-line set-line-flex">
                  <text>执法内容:</text>
qiye/complaint/details.vue
@@ -1,433 +1,469 @@
<template>
    <view>
        <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
            <template slot="center">
                <view style="color: white;">投诉记录</view>
            </template>
        </u-navbar>
        <view class="donw-box"></view>
        <view class="page-main">
            <view class="title">
                <template v-if="msg.orderStatus>2&&msg.isEva==0">已执法待评价</template>
                <template v-if="msg.orderStatus>2&&msg.isEva==1">已评价</template>
                <template v-if="msg.orderStatus==2">待执法</template>
            </view>
            <view class="wbox">
                <view class="item" v-if="dictLabel">
                    <view class="k">
                        执法类型
                    </view>
                    <view class="v">
                        {{dictLabel}}
                    </view>
                </view>
                <view class="item" v-if="details.executeUser">
                    <view class="k">
                        执法人
                    </view>
                    <view class="v">
                        {{details.executeUser}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        执法部门
                    </view>
                    <view class="v">
                        {{details.executeDeptName}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        企业
                    </view>
                    <view class="v">
                        {{details.companyName}}
                    </view>
                </view>
            </view>
            <view style="height: 20rpx;"></view>
            <template v-if="orderId">
                <view class="wbox">
                    <view class="item">
                        <view class="k">
                            执法主题
                        </view>
                        <view class="v">
                            {{details.enforceReason}}
                        </view>
                    </view>
                    <view class="item">
                        <view class="k">
                            执法过程
                        </view>
                    </view>
                    <view class="imgbox">
                        <img :src="baseUrl+item" v-for="(item,index) in orderDetailsMsg.regionImgs" :key="index" class="more" @click="imgclick(item)" alt="" />
                    </view>
                    <view class="item">
                        <view class="k">
                            执法结果
                        </view>
                        <view class="v" style="color: #EB4746;">
                            <!-- {{details.regionStatus == 0? "正常" : "停业整顿" }} -->
                            {{orderDetailsMsg.regionReason}}
                        </view>
                    </view>
                    <view class="item">
                        <view class="k">
                            执法时间
                        </view>
                        <view class="v">
                            {{details.executeTime}}
                        </view>
                    </view>
                </view>
                <view style="height: 20rpx;"></view>
            </template>
            <view class="wbox2">
                <view class="t">
                    投诉记录
                </view>
                <view class="jilu" :class="{start: item.nodeName == '发起投诉' || item.nodeName == '已办结', handler: item.nodeName == '处理中', nonde: index == nodeList.length - 1}" v-for="(item,index) in nodeList" :key="index">
                    <image src="/static/policy/icon.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '发起投诉' || item.nodeName == '发起诉求'"/>
                    <image src="/static/guocheng.png" class="img" alt=""  mode="widthFix"  v-if="item.nodeName == '处理中'"/>
                    <image src="/static/policy/refject.png" class="img"  mode="widthFix" alt="" v-if="item.nodeName == '已驳回'"/>
                    <image src="/static/policy/icon.png" class="img" alt=""  mode="widthFix" v-if="item.nodeName == '已办结'"/>
                    <view class="font" style="width: calc(100% - 50rpx);">
                        <view class="h" >
                            <view class="s" >
                                {{item.nodeName}}
                            </view>
                            <view class="time">
                                {{item.nodeTime}}
                            </view>
                        </view>
                        <view class="b">
                            <view class="name" style="margin-bottom: 18rpx;">
                                {{item.nodeUser}}
                            </view>
                            <view class="p" style="margin-bottom: 18rpx;">
                                <span>申诉主题:</span>
                                {{dictLabel1}}
                            </view>
                            <view class="p" style="margin-bottom: 18rpx;">
                                <span>申诉内容:</span>
                                {{details.complaintReason}}
                            </view>
                            <view class="p"  v-if="item.nodeName == '已驳回'">
                                <span>驳回原因:</span>
                                {{item.nodeReason}}
<template>
  <view>
    <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
      <template slot="center">
        <view style="color: white;">投诉记录</view>
      </template>
    </u-navbar>
    <view class="donw-box"></view>
    <view class="page-main">
      <view class="title">
        <template v-if="msg.orderStatus>2&&msg.isEva==0">已执法待评价</template>
        <template v-if="msg.orderStatus>2&&msg.isEva==1">已评价</template>
        <template v-if="msg.orderStatus==2">待执法</template>
      </view>
      <view class="wbox">
        <view class="item" v-if="dictLabel">
          <view class="k">
            检查方式
          </view>
          <view class="v">
            {{dictLabel}}
          </view>
        </view>
        <view class="item" v-if="details.executeUser">
          <view class="k">
            执法人
          </view>
          <view class="v">
            {{details.executeUser}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            执法部门
          </view>
          <view class="v">
            {{details.executeDeptName}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            企业
          </view>
          <view class="v">
            {{details.companyName}}
          </view>
        </view>
      </view>
      <view style="height: 20rpx;"></view>
      <template v-if="orderId">
        <view class="wbox">
          <view class="item">
            <view class="k">
              执法主题
            </view>
            <view class="v">
              {{details.enforceReason}}
            </view>
          </view>
          <view class="item">
            <view class="k">
              执法过程
            </view>
          </view>
          <view class="imgbox">
            <img :src="baseUrl+item" v-for="(item,index) in orderDetailsMsg.regionImgs" :key="index" class="more"
              @click="imgclick(item)" alt="" />
          </view>
          <view class="item">
            <view class="k">
              执法结果
            </view>
            <view class="v" style="color: #EB4746;">
              <!-- {{details.regionStatus == 0? "正常" : "停业整顿" }} -->
              {{orderDetailsMsg.regionReason}}
            </view>
          </view>
          <view class="item">
            <view class="k">
              执法时间
            </view>
            <view class="v">
              {{details.executeTime}}
            </view>
          </view>
        </view>
        <view style="height: 20rpx;"></view>
      </template>
      <view class="wbox2">
        <view class="t">
          投诉记录
        </view>
        <view class="jilu"
          :class="{start: item.nodeName == '发起投诉' || item.nodeName == '已办结', handler: item.nodeName == '处理中', nonde: index == nodeList.length - 1}"
          v-for="(item,index) in nodeList" :key="index">
          <image src="/static/policy/icon.png" class="img" alt="" mode="widthFix"
            v-if="item.nodeName == '发起投诉' || item.nodeName == '发起诉求'" />
          <image src="/static/guocheng.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '处理中'" />
          <image src="/static/policy/refject.png" class="img" mode="widthFix" alt="" v-if="item.nodeName == '已驳回'" />
          <image src="/static/policy/icon.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '已办结'" />
          <view class="font" style="width: calc(100% - 50rpx);">
            <view class="h">
              <view class="s">
                {{item.nodeName}}
              </view>
              <view class="time">
                {{item.nodeTime}}
              </view>
            </view>
            <view class="b">
              <view class="name" style="margin-bottom: 18rpx;">
                {{item.nodeUser}}
              </view>
              <view class="p" style="margin-bottom: 18rpx;">
                <span>申诉主题:</span>
                {{dictLabel1}}
              </view>
              <view class="p" style="margin-bottom: 18rpx;">
                <span>申诉内容:</span>
                {{details.complaintReason}}
              </view>
              <view class="p" v-if="item.nodeName == '已驳回'">
                <span>驳回原因:</span>
                {{item.nodeReason}}
              </view>
              <view class="p" v-if="item.nodeName == '已办结' && item.nodeReason">
                <span>办结结果:</span>
                {{item.nodeReason}}
              </view>
            </view>
          </view>
        </view>
        <!-- <view class="jilu">
                    <image src="/static/policy/refject.png" class="img" alt="" />
                    <view class="font">
                        <view class="h">
                            <view class="s">
                                {{item.nodeName}}
                            </view>
                            <view class="p"  v-if="item.nodeName == '已办结' && item.nodeReason">
                                <span>办结结果:</span>
                                {{item.nodeReason}}
                            </view>
                        </view>
                    </view>
                </view>
                <!-- <view class="jilu">
                    <image src="/static/policy/refject.png" class="img" alt="" />
                    <view class="font">
                        <view class="h">
                            <view class="s">
                                {{item.nodeName}}
                            </view>
                            <view class="time">
                                {{item.nodeTime}}
                            </view>
                        </view>
                        <view class="b">
                            <view class="name">
                                {{details.companyUser}}
                            </view>
                            <view class="p">
                                <span>申诉主题:</span>
                                {{dictLabel1}}
                            </view>
                            <view class="p">
                                <span>申诉内容:</span>
                                {{details.complaintReason}}
                            </view>
                        </view>
                    </view>
                </view>
                <view class="jilu">
                    <image src="/static/guocheng.png" class="img" alt=""  />
                    <view class="font">
                        <view class="h">
                            <view class="s">
                                处理中
                            </view>
                            <view class="time">
                                2024-06-07 12:14
                            </view>
                        </view>
                        <view class="b">
                            <view class="name">
                                {{details.companyUser}}
                            </view>
                            <view class="p">
                                <span>申诉主题:</span>
                                {{dictLabel1}}
                            </view>
                            <view class="p">
                                <span>申诉内容:</span>
                                {{details.complaintReason}}
                            </view>
                        </view>
                    </view>
                </view>
             -->
            </view>
        </view>
    </view>
</template>
<script>
    import { complaintDetails, orderNodeList, orderComplaintNodeList } from '@/api/qiye.js'
    import { orderDetails, orderDetailsLog } from '@/api/policy.js'
    import { config } from '@/common/config.js'
    import { getDicts } from '@/api/data.js'
    export default {
        data() {
            return {
                details: {},
                orderId: "",
                orderDetailsMsg: {},
                baseUrl: config.baseUrl,
                dictLabel: "",
                dictLabel1: "",
                nodeList: []
            }
        },
        onLoad(options) {
            this.complaint(options.id)
            if(options.orderId && options.orderId !== 'null') {
                this.orderId = options.orderId
                this.orderDetails()
            } else {
                this.orderNodeList(options.id)
            }
        },
        methods: {
            orderNodeList(id) {
                orderNodeList({id}).then(val => {
                    // console.log(val)
                    this.nodeList = val.data.data
                })
            },
            // 获取投诉类型
            getComtype() {
                getDicts('complaint_type').then(val => {
                    this.dictLabel1 = val.data.data.find(item => item.dictCode == this.details.complaintType).dictLabel
                })
            },
            enforceType() {
                getDicts('enforce_type').then(val => {
                    console.log(val)
                    this.dictLabel = val.data.data.find(item => item.dictCode == this.orderDetailsMsg.enforceType).dictLabel
                })
            },
            imgclick(url) {
                url = this.baseUrl + url
                uni.previewImage({
                    urls: [url]
                })
            },
            complaint(details) {
                complaintDetails(details).then(val => {
                    // console.log(val.data.data)
                    this.details = val.data.data
                    this.getComtype()
                })
            },
            orderDetails() {
                orderDetails({ orderId: this.orderId}).then(val => {
                    // console.log(val.data.data)
                    val.data.data.regionImgs = val.data.data.regionImgs.split(",")
                    this.orderDetailsMsg = val.data.data
                    if(this.orderId) {
                        this.orderComplaintNodeList()
                    }
                    this.enforceType()
                })
            },
            orderComplaintNodeList() {
                orderComplaintNodeList({ orderId: this.orderId }).then(val => {
                    console.log(val.data.data, 'val===')
                    this.nodeList = val.data.data
                })
            }
        }
    }
</script>
<style>
    page {
        background: #F4F4F4;
    }
</style>
<style lang="scss" scoped>
    .page-main {
        position: relative;
        top: -380rpx;
    }
    .donw-box {
        width: 100%;
        height: 380rpx;
        flex-shrink: 0;
        background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
    }
    .wbox {
        background: #fff;
        border-radius: 5px;
        padding: 24rpx;
        box-sizing: border-box;
        margin: 0 32rpx;
        .item {
            display: flex;
            margin-bottom: 20rpx;
            font-size: 30rpx;
            .k {
                color: #7E8596;
                width: 30%;
            }
            .v {
                color: #202D44;
                width: 70%;
            }
        }
        .item:last-child {
            margin-bottom: 0;
        }
        .imgbox {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            border-radius: 10rpx;
            img {
                width: 198rpx;
                height: 198rpx;
                margin-bottom: 20rpx;
            }
        }
    }
    .title {
        color: #ffffff;
        font-size: 44rpx;
        font-weight: bold;
        padding-left: 32rpx;
        margin-top: 24rpx;
        margin-bottom: 24rpx;
    }
    .wbox2 {
        background: #fff;
        border-radius: 5px;
        box-sizing: border-box;
        margin: 0 32rpx;
        position: relative;
        z-index: 10;
        .t {
            padding: 24rpx;
            border-bottom: 1px solid #EEEEEE;
            color: #202d44;
            font-size: 36rpx;
            font-weight: bold;
        }
    }
    .jilu{
        display: flex;
        justify-content: space-between;
        padding: 24rpx;
        position: relative;
        &::before{
            content: '';
            display: inline-block;
            width: 2rpx;
            height: 100%;
            background: #eb47460d;
            position: absolute;
            left: 44rpx;
            top: 30rpx;
            z-index: 99;
        }
        .img{
            width: 50rpx;
            height: 50rpx;
            margin-right: 24rpx;
            position: relative;
            z-index: 100;
        }
        .font{
            width: calc(100% - 70rpx);
            .h{
                display: flex;
                justify-content: space-between;
                margin-bottom: 20rpx;
                .s{
                     color: #202d44;
                     font-size: 32rpx;
                }
                .time{
                    color: #7e8596;
                    font-size: 24rpx;
                }
            }
            .b{
                // width: 289px;
                // height: 111px;
                // flex-shrink: 0;
                border-radius: 4px;
                background: #F6F6F6;
                padding: 24rpx;
                .name{
                     color: #202d44;
                     font-size: 32rpx;
                }
                .p{
                    color: #202d44;
                    font-size: 26rpx;
                    span{
                        color: #666666;
                    }
                }
            }
        }
    }
    .handler{
        &::before {
            background: #fe7b320d;
        }
    }
    .start{
        &::before{
            background: #E7F8F0;
        }
    }
    .nonde{
        &::before{
            background: none;
        }
    }
                            <view class="time">
                                {{item.nodeTime}}
                            </view>
                        </view>
                        <view class="b">
                            <view class="name">
                                {{details.companyUser}}
                            </view>
                            <view class="p">
                                <span>申诉主题:</span>
                                {{dictLabel1}}
                            </view>
                            <view class="p">
                                <span>申诉内容:</span>
                                {{details.complaintReason}}
                            </view>
                        </view>
                    </view>
                </view>
                <view class="jilu">
                    <image src="/static/guocheng.png" class="img" alt=""  />
                    <view class="font">
                        <view class="h">
                            <view class="s">
                                处理中
                            </view>
                            <view class="time">
                                2024-06-07 12:14
                            </view>
                        </view>
                        <view class="b">
                            <view class="name">
                                {{details.companyUser}}
                            </view>
                            <view class="p">
                                <span>申诉主题:</span>
                                {{dictLabel1}}
                            </view>
                            <view class="p">
                                <span>申诉内容:</span>
                                {{details.complaintReason}}
                            </view>
                        </view>
                    </view>
                </view>
             -->
      </view>
    </view>
  </view>
</template>
<script>
  import {
    complaintDetails,
    orderNodeList,
    orderComplaintNodeList
  } from '@/api/qiye.js'
  import {
    orderDetails,
    orderDetailsLog
  } from '@/api/policy.js'
  import {
    config
  } from '@/common/config.js'
  import {
    getDicts
  } from '@/api/data.js'
  export default {
    data() {
      return {
        details: {},
        orderId: "",
        orderDetailsMsg: {},
        baseUrl: config.baseUrl,
        dictLabel: "",
        dictLabel1: "",
        nodeList: []
      }
    },
    onLoad(options) {
      this.complaint(options.id)
      if (options.orderId && options.orderId !== 'null') {
        this.orderId = options.orderId
        this.orderDetails()
      } else {
        this.orderNodeList(options.id)
      }
    },
    methods: {
      orderNodeList(id) {
        orderNodeList({
          id
        }).then(val => {
          // console.log(val)
          this.nodeList = val.data.data
        })
      },
      // 获取投诉类型
      getComtype() {
        getDicts('complaint_type').then(val => {
          this.dictLabel1 = val.data.data.find(item => item.dictCode == this.details.complaintType).dictLabel
        })
      },
      enforceType() {
        getDicts('enforce_type').then(val => {
          console.log(val)
          this.dictLabel = val.data.data.find(item => item.dictCode == this.orderDetailsMsg.enforceType).dictLabel
        })
      },
      imgclick(url) {
        url = this.baseUrl + url
        uni.previewImage({
          urls: [url]
        })
      },
      complaint(details) {
        complaintDetails(details).then(val => {
          // console.log(val.data.data)
          this.details = val.data.data
          this.getComtype()
        })
      },
      orderDetails() {
        orderDetails({
          orderId: this.orderId
        }).then(val => {
          // console.log(val.data.data)
          val.data.data.regionImgs = val.data.data.regionImgs.split(",")
          this.orderDetailsMsg = val.data.data
          if (this.orderId) {
            this.orderComplaintNodeList()
          }
          this.enforceType()
        })
      },
      orderComplaintNodeList() {
        orderComplaintNodeList({
          orderId: this.orderId
        }).then(val => {
          console.log(val.data.data, 'val===')
          this.nodeList = val.data.data
        })
      }
    }
  }
</script>
<style>
  page {
    background: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
  .page-main {
    position: relative;
    top: -380rpx;
  }
  .donw-box {
    width: 100%;
    height: 380rpx;
    flex-shrink: 0;
    background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
  }
  .wbox {
    background: #fff;
    border-radius: 5px;
    padding: 24rpx;
    box-sizing: border-box;
    margin: 0 32rpx;
    .item {
      display: flex;
      margin-bottom: 20rpx;
      font-size: 30rpx;
      .k {
        color: #7E8596;
        width: 30%;
      }
      .v {
        color: #202D44;
        width: 70%;
      }
    }
    .item:last-child {
      margin-bottom: 0;
    }
    .imgbox {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      border-radius: 10rpx;
      img {
        width: 198rpx;
        height: 198rpx;
        margin-bottom: 20rpx;
      }
    }
  }
  .title {
    color: #ffffff;
    font-size: 44rpx;
    font-weight: bold;
    padding-left: 32rpx;
    margin-top: 24rpx;
    margin-bottom: 24rpx;
  }
  .wbox2 {
    background: #fff;
    border-radius: 5px;
    box-sizing: border-box;
    margin: 0 32rpx;
    position: relative;
    z-index: 10;
    .t {
      padding: 24rpx;
      border-bottom: 1px solid #EEEEEE;
      color: #202d44;
      font-size: 36rpx;
      font-weight: bold;
    }
  }
  .jilu {
    display: flex;
    justify-content: space-between;
    padding: 24rpx;
    position: relative;
    &::before {
      content: '';
      display: inline-block;
      width: 2rpx;
      height: 100%;
      background: #eb47460d;
      position: absolute;
      left: 44rpx;
      top: 30rpx;
      z-index: 99;
    }
    .img {
      width: 50rpx;
      height: 50rpx;
      margin-right: 24rpx;
      position: relative;
      z-index: 100;
    }
    .font {
      width: calc(100% - 70rpx);
      .h {
        display: flex;
        justify-content: space-between;
        margin-bottom: 20rpx;
        .s {
          color: #202d44;
          font-size: 32rpx;
        }
        .time {
          color: #7e8596;
          font-size: 24rpx;
        }
      }
      .b {
        // width: 289px;
        // height: 111px;
        // flex-shrink: 0;
        border-radius: 4px;
        background: #F6F6F6;
        padding: 24rpx;
        .name {
          color: #202d44;
          font-size: 32rpx;
        }
        .p {
          color: #202d44;
          font-size: 26rpx;
          span {
            color: #666666;
          }
        }
      }
    }
  }
  .handler {
    &::before {
      background: #fe7b320d;
    }
  }
  .start {
    &::before {
      background: #E7F8F0;
    }
  }
  .nonde {
    &::before {
      background: none;
    }
  }
</style>
qiye/complaint/details1.vue
@@ -1,125 +1,128 @@
<template>
    <view>
        <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
            <template slot="center">
                <view style="color: white;">建议记录</view>
            </template>
        </u-navbar>
        <view class="donw-box"></view>
        <view class="page-main">
            <view class="title">
                <template v-if="msg.orderStatus>2&&msg.isEva==0">已执法待评价</template>
                <template v-if="msg.orderStatus>2&&msg.isEva==1">已评价</template>
                <template v-if="msg.orderStatus==2">待执法</template>
            </view>
            <view class="wbox">
                <view class="item" v-if="dictLabel">
                    <view class="k">
                        执法类型
                    </view>
                    <view class="v">
                        {{dictLabel}}
                    </view>
                </view>
                <view class="item" v-if="details.executeUser">
                    <view class="k">
                        执法人
                    </view>
                    <view class="v">
                        {{details.executeUser}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        企业
                    </view>
                    <view class="v">
                        {{details.companyName}}
                    </view>
                </view>
            </view>
            <view style="height: 20rpx;"></view>
            <template v-if="orderId">
                <view class="wbox">
                    <view class="item">
                        <view class="k">
                            执法主题
                        </view>
                        <view class="v">
                            {{details.enforceReason}}
                        </view>
                    </view>
                    <view class="item">
                        <view class="k">
                            执法过程
                        </view>
                    </view>
                    <view class="imgbox">
                        <img :src="baseUrl+item" v-for="(item,index) in orderDetailsMsg.regionImgs" :key="index" class="more" @click="imgclick(item)" alt="" />
                    </view>
                    <view class="item">
                        <view class="k">
                            执法结果
                        </view>
                        <view class="v" style="color: #EB4746;">
                            <!-- {{details.regionStatus == 0? "正常" : "停业整顿" }} -->
                            {{orderDetailsMsg.regionReason}}
                        </view>
                    </view>
                    <view class="item">
                        <view class="k">
                            执法时间
                        </view>
                        <view class="v">
                            {{details.executeTime}}
                        </view>
                    </view>
                </view>
                <view style="height: 20rpx;"></view>
            </template>
            <view class="wbox2">
                <view class="t">
                    建议记录
                </view>
                <view class="jilu" :class="{start: item.nodeName == '发起诉求' || item.nodeName == '已办结', handler: item.nodeName == '处理中', nonde: index == nodeList.length - 1}" v-for="(item,index) in nodeList" :key="index">
                    <image src="/static/policy/icon.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '发起诉求'"/>
                    <image src="/static/guocheng.png" class="img" alt=""  mode="widthFix"  v-if="item.nodeName == '处理中'"/>
                    <image src="/static/policy/refject.png" class="img"  mode="widthFix" alt="" v-if="item.nodeName == '已驳回'"/>
                    <image src="/static/policy/icon.png" class="img" alt=""  mode="widthFix" v-if="item.nodeName == '已办结'"/>
                    <view class="font" style="width: calc(100% - 50rpx);">
                        <view class="h" >
                            <view class="s" >
                                {{item.nodeName}}
                            </view>
                            <view class="time">
                                {{item.nodeTime}}
                            </view>
                        </view>
                        <view class="b">
                            <view class="name" style="margin-bottom: 18rpx;">
                                {{item.nodeUser}}
                            </view>
                            <!-- <view class="p" style="margin-bottom: 18rpx;">
  <view>
    <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
      <template slot="center">
        <view style="color: white;">建议记录</view>
      </template>
    </u-navbar>
    <view class="donw-box"></view>
    <view class="page-main">
      <view class="title">
        <template v-if="msg.orderStatus>2&&msg.isEva==0">已执法待评价</template>
        <template v-if="msg.orderStatus>2&&msg.isEva==1">已评价</template>
        <template v-if="msg.orderStatus==2">待执法</template>
      </view>
      <view class="wbox">
        <view class="item" v-if="dictLabel">
          <view class="k">
            检查方式
          </view>
          <view class="v">
            {{dictLabel}}
          </view>
        </view>
        <view class="item" v-if="details.executeUser">
          <view class="k">
            执法人
          </view>
          <view class="v">
            {{details.executeUser}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            企业
          </view>
          <view class="v">
            {{details.companyName}}
          </view>
        </view>
      </view>
      <view style="height: 20rpx;"></view>
      <template v-if="orderId">
        <view class="wbox">
          <view class="item">
            <view class="k">
              执法主题
            </view>
            <view class="v">
              {{details.enforceReason}}
            </view>
          </view>
          <view class="item">
            <view class="k">
              执法过程
            </view>
          </view>
          <view class="imgbox">
            <img :src="baseUrl+item" v-for="(item,index) in orderDetailsMsg.regionImgs" :key="index" class="more"
              @click="imgclick(item)" alt="" />
          </view>
          <view class="item">
            <view class="k">
              执法结果
            </view>
            <view class="v" style="color: #EB4746;">
              <!-- {{details.regionStatus == 0? "正常" : "停业整顿" }} -->
              {{orderDetailsMsg.regionReason}}
            </view>
          </view>
          <view class="item">
            <view class="k">
              执法时间
            </view>
            <view class="v">
              {{details.executeTime}}
            </view>
          </view>
        </view>
        <view style="height: 20rpx;"></view>
      </template>
      <view class="wbox2">
        <view class="t">
          建议记录
        </view>
        <view class="jilu"
          :class="{start: item.nodeName == '发起诉求' || item.nodeName == '已办结', handler: item.nodeName == '处理中', nonde: index == nodeList.length - 1}"
          v-for="(item,index) in nodeList" :key="index">
          <image src="/static/policy/icon.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '发起诉求'" />
          <image src="/static/guocheng.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '处理中'" />
          <image src="/static/policy/refject.png" class="img" mode="widthFix" alt="" v-if="item.nodeName == '已驳回'" />
          <image src="/static/policy/icon.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '已办结'" />
          <view class="font" style="width: calc(100% - 50rpx);">
            <view class="h">
              <view class="s">
                {{item.nodeName}}
              </view>
              <view class="time">
                {{item.nodeTime}}
              </view>
            </view>
            <view class="b">
              <view class="name" style="margin-bottom: 18rpx;">
                {{item.nodeUser}}
              </view>
              <!-- <view class="p" style="margin-bottom: 18rpx;">
                                <span>申诉主题:</span>
                                {{dictLabel1}}
                            </view> -->
                            <view class="p" style="margin-bottom: 18rpx;">
                                <span>申诉内容:</span>
                                {{details.complaintReason}}
                            </view>
                            <view class="p"  v-if="item.nodeName == '已驳回'">
                                <span>驳回原因:</span>
                                {{item.nodeReason}}
                            </view>
                            <view class="p"  v-if="item.nodeName == '已办结' && item.nodeReason">
                                <span>办结结果:</span>
                                {{item.nodeReason}}
                            </view>
                        </view>
                    </view>
                </view>
                <!-- <view class="jilu">
              <view class="p" style="margin-bottom: 18rpx;">
                <span>申诉内容:</span>
                {{details.complaintReason}}
              </view>
              <view class="p" v-if="item.nodeName == '已驳回'">
                <span>驳回原因:</span>
                {{item.nodeReason}}
              </view>
              <view class="p" v-if="item.nodeName == '已办结' && item.nodeReason">
                <span>办结结果:</span>
                {{item.nodeReason}}
              </view>
            </view>
          </view>
        </view>
        <!-- <view class="jilu">
                    <image src="/static/policy/refject.png" class="img" alt="" />
                    <view class="font">
                        <view class="h">
@@ -172,247 +175,279 @@
                    </view>
                </view>
             -->
            </view>
        </view>
    </view>
      </view>
    </view>
  </view>
</template>
<script>
    import { complaintDetails, orderNodeList, orderComplaintNodeList } from '@/api/qiye.js'
    import { orderDetails, orderDetailsLog } from '@/api/policy.js'
    import { config } from '@/common/config.js'
    import { getDicts } from '@/api/data.js'
    export default {
        data() {
            return {
                details: {},
                orderId: "",
                orderDetailsMsg: {},
                baseUrl: config.baseUrl,
                dictLabel: "",
                dictLabel1: "",
                nodeList: []
            }
        },
        onLoad(options) {
            this.complaint(options.id)
            if(options.orderId && options.orderId !== 'null') {
                this.orderId = options.orderId
                this.orderDetails()
            } else {
                this.orderNodeList(options.id)
            }
        },
        methods: {
            orderNodeList(id) {
                orderNodeList({id}).then(val => {
                    // console.log(val)
                    this.nodeList = val.data.data
                })
            },
            enforceType() {
                getDicts('enforce_type').then(val => {
                    console.log(val)
                    this.dictLabel = val.data.data.find(item => item.dictCode == this.orderDetailsMsg.enforceType).dictLabel
                })
            },
            imgclick(url) {
                url = this.baseUrl + url
                uni.previewImage({
                    urls: [url]
                })
            },
            complaint(details) {
                complaintDetails(details).then(val => {
                    // console.log(val.data.data)
                    this.details = val.data.data
                    // this.getComtype()
                })
            },
            orderDetails() {
                orderDetails({ orderId: this.orderId}).then(val => {
                    // console.log(val.data.data)
                    val.data.data.regionImgs = val.data.data.regionImgs.split(",")
                    this.orderDetailsMsg = val.data.data
                    if(this.orderId) {
                        this.orderComplaintNodeList()
                    }
                    this.enforceType()
                })
            },
            orderComplaintNodeList() {
                orderComplaintNodeList({ orderId: this.orderId }).then(val => {
                    console.log(val.data.data, 'val===')
                    this.nodeList = val.data.data
                })
            }
        }
    }
  import {
    complaintDetails,
    orderNodeList,
    orderComplaintNodeList
  } from '@/api/qiye.js'
  import {
    orderDetails,
    orderDetailsLog
  } from '@/api/policy.js'
  import {
    config
  } from '@/common/config.js'
  import {
    getDicts
  } from '@/api/data.js'
  export default {
    data() {
      return {
        details: {},
        orderId: "",
        orderDetailsMsg: {},
        baseUrl: config.baseUrl,
        dictLabel: "",
        dictLabel1: "",
        nodeList: []
      }
    },
    onLoad(options) {
      this.complaint(options.id)
      if (options.orderId && options.orderId !== 'null') {
        this.orderId = options.orderId
        this.orderDetails()
      } else {
        this.orderNodeList(options.id)
      }
    },
    methods: {
      orderNodeList(id) {
        orderNodeList({
          id
        }).then(val => {
          // console.log(val)
          this.nodeList = val.data.data
        })
      },
      enforceType() {
        getDicts('enforce_type').then(val => {
          console.log(val)
          this.dictLabel = val.data.data.find(item => item.dictCode == this.orderDetailsMsg.enforceType).dictLabel
        })
      },
      imgclick(url) {
        url = this.baseUrl + url
        uni.previewImage({
          urls: [url]
        })
      },
      complaint(details) {
        complaintDetails(details).then(val => {
          // console.log(val.data.data)
          this.details = val.data.data
          // this.getComtype()
        })
      },
      orderDetails() {
        orderDetails({
          orderId: this.orderId
        }).then(val => {
          // console.log(val.data.data)
          val.data.data.regionImgs = val.data.data.regionImgs.split(",")
          this.orderDetailsMsg = val.data.data
          if (this.orderId) {
            this.orderComplaintNodeList()
          }
          this.enforceType()
        })
      },
      orderComplaintNodeList() {
        orderComplaintNodeList({
          orderId: this.orderId
        }).then(val => {
          console.log(val.data.data, 'val===')
          this.nodeList = val.data.data
        })
      }
    }
  }
</script>
<style>
    page {
        background: #F4F4F4;
    }
  page {
    background: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
    .page-main {
        position: relative;
        top: -380rpx;
    }
    .donw-box {
        width: 100%;
        height: 380rpx;
        flex-shrink: 0;
        background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
    }
    .wbox {
        background: #fff;
        border-radius: 5px;
        padding: 24rpx;
        box-sizing: border-box;
        margin: 0 32rpx;
        .item {
            display: flex;
            margin-bottom: 20rpx;
            font-size: 30rpx;
            .k {
                color: #7E8596;
                width: 30%;
            }
            .v {
                color: #202D44;
                width: 70%;
            }
        }
        .item:last-child {
            margin-bottom: 0;
        }
        .imgbox {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            border-radius: 10rpx;
            img {
                width: 198rpx;
                height: 198rpx;
                margin-bottom: 20rpx;
            }
        }
    }
    .title {
        color: #ffffff;
        font-size: 44rpx;
        font-weight: bold;
        padding-left: 32rpx;
        margin-top: 24rpx;
        margin-bottom: 24rpx;
    }
    .wbox2 {
        background: #fff;
        border-radius: 5px;
        box-sizing: border-box;
        margin: 0 32rpx;
        position: relative;
        z-index: 10;
        .t {
            padding: 24rpx;
            border-bottom: 1px solid #EEEEEE;
            color: #202d44;
            font-size: 36rpx;
            font-weight: bold;
        }
    }
  .page-main {
    position: relative;
    top: -380rpx;
  }
    .jilu{
        display: flex;
        justify-content: space-between;
        padding: 24rpx;
        position: relative;
        &::before{
            content: '';
            display: inline-block;
            width: 2rpx;
            height: 100%;
            background: #eb47460d;
            position: absolute;
            left: 44rpx;
            top: 30rpx;
            z-index: 99;
        }
        .img{
            width: 50rpx;
            height: 50rpx;
            margin-right: 24rpx;
            position: relative;
            z-index: 100;
        }
        .font{
            width: calc(100% - 70rpx);
            .h{
                display: flex;
                justify-content: space-between;
                margin-bottom: 20rpx;
                .s{
                     color: #202d44;
                     font-size: 32rpx;
                }
                .time{
                    color: #7e8596;
                    font-size: 24rpx;
                }
            }
            .b{
                // width: 289px;
                // height: 111px;
                // flex-shrink: 0;
                border-radius: 4px;
                background: #F6F6F6;
                padding: 24rpx;
                .name{
                     color: #202d44;
                     font-size: 32rpx;
                }
                .p{
                    color: #202d44;
                    font-size: 26rpx;
                    span{
                        color: #666666;
                    }
                }
            }
        }
    }
    .handler{
        &::before {
            background: #fe7b320d;
        }
    }
    .start{
        &::before{
            background: #E7F8F0;
        }
    }
    .nonde{
        &::before{
            background: none;
        }
    }
  .donw-box {
    width: 100%;
    height: 380rpx;
    flex-shrink: 0;
    background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
  }
  .wbox {
    background: #fff;
    border-radius: 5px;
    padding: 24rpx;
    box-sizing: border-box;
    margin: 0 32rpx;
    .item {
      display: flex;
      margin-bottom: 20rpx;
      font-size: 30rpx;
      .k {
        color: #7E8596;
        width: 30%;
      }
      .v {
        color: #202D44;
        width: 70%;
      }
    }
    .item:last-child {
      margin-bottom: 0;
    }
    .imgbox {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      border-radius: 10rpx;
      img {
        width: 198rpx;
        height: 198rpx;
        margin-bottom: 20rpx;
      }
    }
  }
  .title {
    color: #ffffff;
    font-size: 44rpx;
    font-weight: bold;
    padding-left: 32rpx;
    margin-top: 24rpx;
    margin-bottom: 24rpx;
  }
  .wbox2 {
    background: #fff;
    border-radius: 5px;
    box-sizing: border-box;
    margin: 0 32rpx;
    position: relative;
    z-index: 10;
    .t {
      padding: 24rpx;
      border-bottom: 1px solid #EEEEEE;
      color: #202d44;
      font-size: 36rpx;
      font-weight: bold;
    }
  }
  .jilu {
    display: flex;
    justify-content: space-between;
    padding: 24rpx;
    position: relative;
    &::before {
      content: '';
      display: inline-block;
      width: 2rpx;
      height: 100%;
      background: #eb47460d;
      position: absolute;
      left: 44rpx;
      top: 30rpx;
      z-index: 99;
    }
    .img {
      width: 50rpx;
      height: 50rpx;
      margin-right: 24rpx;
      position: relative;
      z-index: 100;
    }
    .font {
      width: calc(100% - 70rpx);
      .h {
        display: flex;
        justify-content: space-between;
        margin-bottom: 20rpx;
        .s {
          color: #202d44;
          font-size: 32rpx;
        }
        .time {
          color: #7e8596;
          font-size: 24rpx;
        }
      }
      .b {
        // width: 289px;
        // height: 111px;
        // flex-shrink: 0;
        border-radius: 4px;
        background: #F6F6F6;
        padding: 24rpx;
        .name {
          color: #202d44;
          font-size: 32rpx;
        }
        .p {
          color: #202d44;
          font-size: 26rpx;
          span {
            color: #666666;
          }
        }
      }
    }
  }
  .handler {
    &::before {
      background: #fe7b320d;
    }
  }
  .start {
    &::before {
      background: #E7F8F0;
    }
  }
  .nonde {
    &::before {
      background: none;
    }
  }
</style>
qiye/record/details.vue
@@ -1,44 +1,44 @@
<template>
    <view>
        <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
            <template slot="center">
                <view style="color: white;">执法信息</view>
            </template>
        </u-navbar>
        <view class="donw-box"></view>
        <view class="page-main">
            <view class="title">
                执法详情
            <!--     <template v-if="msg.isEva==0">未评价</template>
  <view>
    <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
      <template slot="center">
        <view style="color: white;">执法信息</view>
      </template>
    </u-navbar>
    <view class="donw-box"></view>
    <view class="page-main">
      <view class="title">
        执法详情
        <!--     <template v-if="msg.isEva==0">未评价</template>
                <template v-if="msg.isEva==1">已评价</template>
                <template v-if="msg.orderStatus==2">待执法</template> -->
            </view>
            <view class="wbox">
                <view class="item">
                    <view class="k">
                        执法类型
                    </view>
                    <view class="v">
                        {{type}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        执法人
                    </view>
                    <view class="v">
                        {{msg.executeUser || msg.applyUser}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        执法部门
                    </view>
                    <view class="v">
                        {{msg.executeDeptName || msg.applyDeptName}}
                    </view>
                </view>
                <!-- <view class="item">
      </view>
      <view class="wbox">
        <view class="item">
          <view class="k">
            检查方式
          </view>
          <view class="v">
            {{type}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            执法人
          </view>
          <view class="v">
            {{msg.executeUser || msg.applyUser}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            执法部门
          </view>
          <view class="v">
            {{msg.executeDeptName || msg.applyDeptName}}
          </view>
        </view>
        <!-- <view class="item">
                    <view class="k">
                        企业
                    </view>
@@ -46,568 +46,581 @@
                        {{msg.companyName}}
                    </view>
                </view> -->
            </view>
            <view style="height: 20rpx;"></view>
            <view class="wbox">
                <view class="item">
                    <view class="k">
                        执法主题
                    </view>
                    <view class="v">
                        {{msg.enforceReason}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        执法内容
                    </view>
                    <view class="v" v-if="!img.length">
                        {{ msg.enforceContent}}
                    </view>
                </view>
                <view class="imgbox"  v-if="img.length">
                    <template >
                        <img v-for="(item,index) in img" :key="index" :src="item" class="more" alt="" @click="imgclick(item)" />
                    </template>
                    <!-- <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" />
      </view>
      <view style="height: 20rpx;"></view>
      <view class="wbox">
        <view class="item">
          <view class="k">
            执法主题
          </view>
          <view class="v">
            {{msg.enforceReason}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            执法内容
          </view>
          <view class="v" v-if="!img.length">
            {{ msg.enforceContent}}
          </view>
        </view>
        <view class="imgbox" v-if="img.length">
          <template>
            <img v-for="(item,index) in img" :key="index" :src="item" class="more" alt="" @click="imgclick(item)" />
          </template>
          <!-- <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" />
                    <img src="/static/i02.png" class="more" alt="" />
                    <img src="/static/i03.png" class="more" alt="" />
                    <img src="/static/i04.png" class="more" alt="" /> -->
                </view>
                <view class="item">
                    <view class="k">
                        执法结果
                    </view>
                    <view class="v" style="color: #EB4746;">
                        {{msg.regionReason || '--'}}
                    </view>
                </view>
                <view class="item">
                    <view class="k">
                        执法时间
                    </view>
                    <view class="v">
                        {{msg.inTime || msg.planTime}}
                    </view>
                </view>
            </view>
            <view style="height: 20rpx;"></view>
            <view class="wbox2" v-if="msg.isEva==1">
                <view class="t">
                    执法评价
                </view>
                <template v-for="(item,index) in qlist">
                    <view class="sbox" v-if="item.questionType==2">
                        <view class="t2">
                            {{item.questionName}}
                        </view>
                        <view class="xbox">
                            <view>
                                <img src="/static/qiye/xing1.png" alt="" />
                                <view>
                                    很糟糕
                                </view>
                            </view>
                            <view>
                                <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>
                                <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>
                                <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>
                                <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">
                            <u-radio v-for="(aa, ii) in item.answerList" :key="ii" :name="aa.answerId"
                            :disabled="item.remark!=aa.answerId">
                                {{aa.answerName}}
                            </u-radio>
                        </u-radio-group>
                        <!-- <u-radio-group v-model="value">
        </view>
        <view class="item">
          <view class="k">
            执法结果
          </view>
          <view class="v" style="color: #EB4746;">
            {{msg.regionReason || '--'}}
          </view>
        </view>
        <view class="item">
          <view class="k">
            执法时间
          </view>
          <view class="v">
            {{msg.inTime || msg.planTime}}
          </view>
        </view>
      </view>
      <view style="height: 20rpx;"></view>
      <view class="wbox2" v-if="msg.isEva==1">
        <view class="t">
          执法评价
        </view>
        <template v-for="(item,index) in qlist">
          <view class="sbox" v-if="item.questionType==2">
            <view class="t2">
              {{item.questionName}}
            </view>
            <view class="xbox">
              <view>
                <img src="/static/qiye/xing1.png" alt="" />
                <view>
                  很糟糕
                </view>
              </view>
              <view>
                <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>
                <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>
                <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>
                <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">
              <u-radio v-for="(aa, ii) in item.answerList" :key="ii" :name="aa.answerId"
                :disabled="item.remark!=aa.answerId">
                {{aa.answerName}}
              </u-radio>
            </u-radio-group>
            <!-- <u-radio-group v-model="value">
                            <u-radio name="orange">选中</u-radio>
                            <u-radio name="1" :disabled="true">未选中</u-radio>
                        </u-radio-group> -->
                        <view class="line"></view>
                    </view>
                </template>
                <view class="sbox" v-if="msg.evaluateVo.questionRemark">
                    <view class="t2">
                        对我们的评价
                    </view>
                    <view class="pjbox">
                        {{msg.evaluateVo.questionRemark}}
                    </view>
                </view>
            </view>
        </view>
        <view class="bottom" v-if=" msg.orderStatus== 5">
            <view class="one" v-if="msg.isComplaint != 1 && msg.isEva == 1">
                <view class="b1" @click="open()">
                    投诉
                </view>
            </view>
            <view class="two" v-if="msg.isComplaint != 1 && msg.isEva != 1">
                <view class="b2" @click="open()" >
                    投诉
                </view>
                <view class="b3" @click="pingjia()">
                    我要评价
                </view>
            </view>
            <view class="one" v-if="msg.isComplaint == 1 && msg.isEva != 1">
                <view class="b1" @click="pingjia()">
                    我要评价
                </view>
            </view>
        </view>
        <view class="bottom" v-if=" msg.orderStatus == 4">
            <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">
                <view class="title1">
                    企业投诉
                </view>
                <view class="border"></view>
                <view class="padding">
                    <view class="font">
                        投诉主题
                    </view>
                    <view>
                        <u-radio-group v-model="complaintType">
                                                    <u-radio v-for="(aa, ii) in list" :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>
            <view class="line"></view>
          </view>
        </template>
        <view class="sbox" v-if="msg.evaluateVo.questionRemark">
          <view class="t2">
            对我们的评价
          </view>
          <view class="pjbox">
            {{msg.evaluateVo.questionRemark}}
          </view>
        </view>
      </view>
    </view>
    <view class="bottom" v-if=" msg.orderStatus== 5">
      <view class="one" v-if="msg.isComplaint != 1 && msg.isEva == 1">
        <view class="b1" @click="open()">
          投诉
        </view>
      </view>
      <view class="two" v-if="msg.isComplaint != 1 && msg.isEva != 1">
        <view class="b2" @click="open()">
          投诉
        </view>
        <view class="b3" @click="pingjia()">
          我要评价
        </view>
      </view>
      <view class="one" v-if="msg.isComplaint == 1 && msg.isEva != 1">
        <view class="b1" @click="pingjia()">
          我要评价
        </view>
      </view>
    </view>
    <view class="bottom" v-if=" msg.orderStatus == 4">
      <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">
        <view class="title1">
          企业投诉
        </view>
        <view class="border"></view>
        <view class="padding">
          <view class="font">
            投诉主题
          </view>
          <view>
            <u-radio-group v-model="complaintType">
              <u-radio v-for="(aa, ii) in list" :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 { order } from '@/api/index.js'
    import { getDicts } from '@/api/data.js'
    import { config } from '@/common/config'
    import { orderComplaint, confirmOrderId } from '@/api/qiye.js'
    export default {
        data() {
            return {
                complaintType:'',
                complaintReason:'',
                id:'',
                msg:{},
                type:'',
                img:[],
                baseUrl: config.baseUrl,
                xing: 5,
                value: 'orange',
                //type: 2,
                show: false,
                list: [
                ],
                qlist:[]
            }
        },
        onLoad(options) {
            this.id = options.id
            //this.getdata(options.id)
            getDicts('complaint_type').then(val => {
                this.list = val.data.data
                console.log(this.list)
                // const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
                // this.type = value.dictLabel
            })
            // this.getdata()
        },
        onShow(options) {
            this.getdata()
        },
        methods: {
            enterOrder() {
                uni.showModal({
                    title: '提示',
                    content: '确认该订单?',
                    success: val => {
                        if(val.confirm) {
                            confirmOrderId({orderId: this.msg.orderId}).then(val => {
                                if(val.data.code == 200) {
                                    uni.showToast({
                                        title: '确认成功',
                                        icon: 'none'
                                    })
                                    this.getdata()
                                }
                            })
                        }
                    }
                })
            },
            getdata(){
                order(this.id).then(val => {
                    this.msg = val.data.data
                    getDicts('enforce_type').then(val => {
                        const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
                        this.type = value.dictLabel
                    })
                    let arr = this.msg.regionImgs.split(",");
                    for(let i = 0;i<arr.length;i++){
                        this.img.push(this.baseUrl+arr[i])
                    }
                    this.qlist = this.msg.evaluateVo.questionList
                    for(let i = 0;i<this.qlist.length;i++){
                        if(this.qlist[i].questionType==1&&this.qlist[i].remark){
                            this.qlist[i].remark = Number(this.qlist[i].remark)
                        }
                    }
                })
            },
            daxing(a) {
                this.xing = a
            },
            imgclick(url) {
                uni.previewImage({
                    urls: [url]
                })
            },
            pingjia(){
                uni.navigateTo({
                    url: `/qiye/record/evaluate?id=${this.msg.orderId}`
                })
            },
            open() {
                this.show = true
            },
            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.id),
                    complaintType:this.complaintType,
                    complaintReason:this.complaintReason
                }
                console.log(data)
                //return;
                orderComplaint(data).then(val => {
                    uni.showToast({
                        title: '提交成功',
                        icon: 'none'
                    })
                    this.show = false
                })
            },
  import {
    order
  } from '@/api/index.js'
  import {
    getDicts
  } from '@/api/data.js'
  import {
    config
  } from '@/common/config'
  import {
    orderComplaint,
    confirmOrderId
  } from '@/api/qiye.js'
  export default {
    data() {
      return {
        complaintType: '',
        complaintReason: '',
        id: '',
        msg: {},
        type: '',
        img: [],
        baseUrl: config.baseUrl,
        xing: 5,
        value: 'orange',
        //type: 2,
        show: false,
        list: [],
        qlist: []
      }
    },
    onLoad(options) {
      this.id = options.id
      //this.getdata(options.id)
      getDicts('complaint_type').then(val => {
        this.list = val.data.data
        console.log(this.list)
        // const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
        // this.type = value.dictLabel
      })
      // this.getdata()
    },
    onShow(options) {
      this.getdata()
    },
    methods: {
      enterOrder() {
        uni.showModal({
          title: '提示',
          content: '确认该订单?',
          success: val => {
            if (val.confirm) {
              confirmOrderId({
                orderId: this.msg.orderId
              }).then(val => {
                if (val.data.code == 200) {
                  uni.showToast({
                    title: '确认成功',
                    icon: 'none'
                  })
                  this.getdata()
                }
              })
            }
          }
        }
    }
        })
      },
      getdata() {
        order(this.id).then(val => {
          this.msg = val.data.data
          getDicts('enforce_type').then(val => {
            const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
            this.type = value.dictLabel
          })
          let arr = this.msg.regionImgs.split(",");
          for (let i = 0; i < arr.length; i++) {
            this.img.push(this.baseUrl + arr[i])
          }
          this.qlist = this.msg.evaluateVo.questionList
          for (let i = 0; i < this.qlist.length; i++) {
            if (this.qlist[i].questionType == 1 && this.qlist[i].remark) {
              this.qlist[i].remark = Number(this.qlist[i].remark)
            }
          }
        })
      },
      daxing(a) {
        this.xing = a
      },
      imgclick(url) {
        uni.previewImage({
          urls: [url]
        })
      },
      pingjia() {
        uni.navigateTo({
          url: `/qiye/record/evaluate?id=${this.msg.orderId}`
        })
      },
      open() {
        this.show = true
      },
      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.id),
          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;
    }
  page {
    background: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
    .page-main {
        position: relative;
        top: -380rpx;
    }
  .page-main {
    position: relative;
    top: -380rpx;
  }
    .donw-box {
        width: 100%;
        height: 380rpx;
        flex-shrink: 0;
        background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
    }
  .donw-box {
    width: 100%;
    height: 380rpx;
    flex-shrink: 0;
    background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
  }
    .wbox {
        background: #fff;
        border-radius: 5px;
        padding: 24rpx;
        box-sizing: border-box;
        margin: 0 32rpx;
  .wbox {
    background: #fff;
    border-radius: 5px;
    padding: 24rpx;
    box-sizing: border-box;
    margin: 0 32rpx;
        .item {
            display: flex;
            margin-bottom: 20rpx;
            font-size: 30rpx;
    .item {
      display: flex;
      margin-bottom: 20rpx;
      font-size: 30rpx;
            .k {
                color: #7E8596;
                width: 30%;
      .k {
        color: #7E8596;
        width: 30%;
            }
      }
            .v {
                color: #202D44;
                width: 70%;
      .v {
        color: #202D44;
        width: 70%;
            }
        }
      }
    }
        .item:last-child {
            margin-bottom: 0;
        }
    .item:last-child {
      margin-bottom: 0;
    }
        .imgbox {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            grid-gap: 10rpx;
            // display: flex;
            // flex-wrap: wrap;
            // justify-content: space-between;
            border-radius: 10rpx;
    .imgbox {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      grid-gap: 10rpx;
      // display: flex;
      // flex-wrap: wrap;
      // justify-content: space-between;
      border-radius: 10rpx;
            img {
                width: 198rpx;
                height: 198rpx;
                margin-bottom: 20rpx;
                border-radius: 10rpx;
            }
        }
    }
      img {
        width: 198rpx;
        height: 198rpx;
        margin-bottom: 20rpx;
        border-radius: 10rpx;
      }
    }
  }
    .title {
        color: #ffffff;
        font-size: 44rpx;
        font-weight: bold;
        padding-left: 32rpx;
        margin-top: 24rpx;
        margin-bottom: 24rpx;
  .title {
    color: #ffffff;
    font-size: 44rpx;
    font-weight: bold;
    padding-left: 32rpx;
    margin-top: 24rpx;
    margin-bottom: 24rpx;
    }
  }
    .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;
        }
      }
    }
  }
    .pjbox {
        background: #F4F4F4;
        border-radius: 5px;
        margin: 10rpx 0;
        padding: 24rpx;
        color: #202d44;
        font-size: 32rpx;
  .pjbox {
    background: #F4F4F4;
    border-radius: 5px;
    margin: 10rpx 0;
    padding: 24rpx;
    color: #202d44;
    font-size: 32rpx;
    }
  }
    ::v-deep .u-radio-group {
        margin-top: 20rpx;
        flex-wrap: wrap;
        .u-radio {
            margin-right: 20rpx;
            margin-bottom: 20rpx;
        }
    }
  ::v-deep .u-radio-group {
    margin-top: 20rpx;
    flex-wrap: wrap;
    .hei {
        color: #202D44;
    }
    .u-radio {
      margin-right: 20rpx;
      margin-bottom: 20rpx;
    }
  }
    .bottom {
        position: fixed;
        bottom: 0;
        width: 100%;
        left: 0;
        height: 132rpx;
        background: #fff;
  .hei {
    color: #202D44;
  }
        .one {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100%;
  .bottom {
    position: fixed;
    bottom: 0;
    width: 100%;
    left: 0;
    height: 132rpx;
    background: #fff;
            .b1 {
                width: 686rpx;
                height: 88rpx;
                border-radius: 10px;
                background: #F7F7F7;
                line-height: 88rpx;
                text-align: center;
            }
        }
    .one {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
        .two {
            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;
      }
    }
            .b2 {
                width: 146rpx;
                height: 88rpx;
                border-radius: 10px;
                background: #F7F7F7;
                line-height: 88rpx;
                text-align: center;
                margin-right: 18rpx;
            }
    .two {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
            .b3 {
                width: 524rpx;
                height: 88rpx;
                border-radius: 10px;
                background: #1171E0;
                line-height: 88rpx;
                text-align: center;
                color: #fff;
            }
        }
    }
      .b2 {
        width: 146rpx;
        height: 88rpx;
        border-radius: 10px;
        background: #F7F7F7;
        line-height: 88rpx;
        text-align: center;
        margin-right: 18rpx;
      }
    .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;
        }
      .b3 {
        width: 524rpx;
        height: 88rpx;
        border-radius: 10px;
        background: #1171E0;
        line-height: 88rpx;
        text-align: center;
        color: #fff;
      }
    }
  }
        .padding {
            padding: 0 24rpx;
        }
  .page-box {
    padding: 24rpx 0;
        .margin-top {
            margin-top: 20rpx;
        }
    .font {
      color: #4a4e60;
      font-size: 32rpx;
      margin-top: 20rpx;
    }
        .down {
            padding: 34rpx 30rpx 30rpx;
            display: flex;
            justify-content: space-between;
    .title1 {
      font-size: 36rpx;
      font-weight: 700;
      padding: 0 32rpx;
      border-bottom: 2rpx solid #F4F4F4;
      padding-bottom: 24rpx;
    }
            >view {
                display: inline-block;
            }
    .padding {
      padding: 0 24rpx;
    }
            .button {
                padding: 20rpx 40rpx;
                background: #F7F7F7;
                border-radius: 20rpx;
            }
    .margin-top {
      margin-top: 20rpx;
    }
            .enter {
                width: 100%;
                background: #1171E0;
                color: white;
                border-radius: 20rpx;
                padding: 20rpx 40rpx;
                text-align: center;
            }
        }
    }
    .down {
      padding: 34rpx 30rpx 30rpx;
      display: flex;
      justify-content: space-between;
    ::v-deep .u-textarea {
        background-color: #F4F4F4;
    }
      >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;
      }
    }
  }
  ::v-deep .u-textarea {
    background-color: #F4F4F4;
  }
</style>