王恒
2025-09-26 28ab9da809aa7c5d42e1871af5fd10c2de09ac66
policy/judgeApply/judgeApply.vue
@@ -1,252 +1,263 @@
<template>
   <view>
      <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
         <template slot="center">
            <view style="color: white;">审批详情</view>
         </template>
      </u-navbar>
      <view class="top-content"></view>
      <view class="main-page">
         <view class="status">
            {{mapStatus[details.checkStatus]}}
         </view>
         <view class="base-card">
            <view class="title">
               <text>基本信息</text>
            </view>
            <view class="view-form">
               <view class="view-form-item">
                  <view class="label">执法主题</view>
                  <view>{{details.enforceReason}}</view>
               </view>
               <view class="view-form-item">
                  <view class="label">执法对象</view>
                  <view>{{details.companyName}}</view>
               </view>
               <view class="view-form-item">
                  <view class="label">执法时间</view>
                  <view>{{details.planTime}}</view>
               </view>
               <view class="view-form-item">
                  <view class="label">执法类型</view>
                  <view>{{typeList}}</view>
               </view>
               <template v-if="!details.executeUser">
                  <view class="view-form-item">
                     <view class="label">执法人员</view>
                     <view>{{details.applyUser}}</view>
                  </view>
                  <view class="view-form-item">
                     <view class="label">执法部门</view>
                     <view>{{details.applyDeptName}}</view>
                  </view>
               </template>
               <template v-else>
                  <view class="view-form-item">
                     <view class="label">执法人员</view>
                     <view>{{details.executeUser}}</view>
                  </view>
                  <view class="view-form-item">
                     <view class="label">执法部门</view>
                     <view>{{details.executeDeptName}}</view>
                  </view>
               </template>
               <view class="view-form-item" >
                  <view class="label">随行人员</view>
                  <view>
                     <view v-for="(item,index) in details.peers" :key="index">
                        {{item.peerUser}}({{item.peerDeptName}})
                     </view>
                  </view>
               </view>
               <view class="view-form-item">
                  <view class="label">是否通知企业</view>
                  <view>{{details.isNoticeCompany == 0 ? '否': '是'}}</view>
               </view>
               <view class="view-form-item">
                  <view class="label">申请时间</view>
                  <view>{{details.applyTime}}</view>
               </view>
               <view class="view-form-item">
                  <view class="label">当前状态</view>
                  <view>{{mapStatus[details.checkStatus]}}</view>
               </view>
            </view>
         </view>
         <view class="base-card">
            <view class="title">
               <text>执法内容</text>
            </view>
            <view class="view-content">
               {{ details.enforceContent }}
            </view>
         </view>
         <!-- <view class="base-card" v-if="judgeDetails.length">
            <view class="title">
               <text>审批情况</text>
            </view>
            <view class="view-form">
               <view v-for="(item,index) in judgeDetails" :key="index">
                  <view class="view-form-item">
                     <view class="label">审批结果</view>
                     <view v-if="item.checkStatus == 1" style="color: #3EB47A;">通过</view>
                     <view v-else style="color: red">拒绝</view>
                  </view>
                  <view class="view-form-item">
                     <view class="label">审批人</view>
                     <view>{{item.checkUser}}</view>
                  </view>
                  <view class="view-form-item">
                     <view class="label">审批部门</view>
                     <view>{{item.checkDeptName}}</view>
                  </view>
                  <view class="view-form-item">
                     <view class="label">审批时间</view>
                     <view>{{item.checkTime}}</view>
                  </view>
               </view>
            </view>
         </view> -->
         <view class="base-card" v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length">
            <view class="title">
               <text>执法图片</text>
            </view>
            <view class="view-image">
               <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill" v-for="(item,index) in details.regionImgs" :key="index"></image>
            </view>
         </view>
         <view class="base-card">
            <view class="title">
               <text>审批进度</text>
            </view>
            <view class="view-step">
               <view class="step-content" :class="{none: index == nodeList.length - 1}" v-for="(item,index) in nodeList" :key="index">
                  <image class="icon" src="/static/policy/icon.png" mode="widthFix" v-if="!item.nodeReason"></image>
                  <image src="/static/policy/refject.png" mode="widthFix" class="icon" v-else></image>
                  <view class="top-title">
                     {{item.nodeName}}
                  </view>
                  <view class="down-tips">
                     <view class=" submit-per">提交人:<text>{{item.nodeUser}}</text></view>
                     <view class="time">{{item.nodeTime}}</view>
                  </view>
               </view>
               <!-- <view class="step-content">
                  <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
                  <view class="top-title">
                     审批通过
                  </view>
                  <view class="down-tips">
                     <view>提交人:<text>林小零</text></view>
                     <view class="time">2024-06-07 12:14</view>
                  </view>
               </view>
               <view class="step-content none">
                  <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
                  <image src="/static/policy/refject.png" mode="widthFix" class="icon"></image>
                  <view class="top-title">
                     提交申请
                  </view>
                  <view class="down-tips">
                     <view>提交人:<text>林小零</text></view>
                     <view class="time">2024-06-07 12:14</view>
                  </view>
               </view> -->
            </view>
         </view>
      </view>
   </view>
</template>
<script>
   import {
      orderDetails,
      orderNodeList,
      enforceLogList
   } from '@/api/policy.js'
   import { getDicts } from '@/api/data.js'
   import { config } from '@/common/config'
   export default {
      data() {
         return {
            details: {},
            nodeList: [],
            mapStatus: {
               // 1: '待审批',
               // 2: "待执行",
               // 3: "待上报",
               // '-1':"已拒绝",
               // 4: "已结束"
               // -1拒绝,0待审批,1审批中,2通过
               "-1": '已拒绝',
               0: '待审批',
               1: '审批中',
               2: "已审批"
            },
            typeList: '',
            judgeDetails: [],
            baseUrl: config.baseUrl
         }
      },
      onLoad(options) {
         this.getDetails(options.id)
         this.orderNodeList(options.id)
         this.enforceLogList(options.id)
         if(options.setTitle) {
            uni.setNavigationBarTitle({
               title: ''
            })
         }
      },
      methods: {
         getDetails(orderId) {
            orderDetails({
               orderId
            }).then(val => {
               this.details = val.data.data
               if(this.details.regionImgs){
                   this.details.regionImgs = this.details.regionImgs.split(",")
               }
               this.getDicts()
            })
         },
         // 节点
         orderNodeList(orderId) {
            orderNodeList({orderId}).then(val => {
               this.nodeList = val.data.data
            })
         },
         // 申请记录
         enforceLogList(orderId) {
            enforceLogList({orderId}).then(val => {
               // console.log(val.data.rows)
               this.judgeDetails = val.data.rows
            })
         },
         getDicts() {
            getDicts('enforce_type').then(val => {
               const value = val.data.data.find(item => item.dictCode == this.details.enforceType)
               this.typeList = value.dictLabel
            })
         },
         previewImage(list, index) {
            const data = list.map(item => this.baseUrl + item)
            console.log(data)
            uni.previewImage({
               urls: data,
               current: index
            })
         }
      }
   }
</script>
<style>
   page {
      background-color: #F4F4F4;
   }
</style>
<style lang="scss" scoped>
   @import "./judgeApply.scss";
<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 || 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.checkStatus]}}</view>
          </view>
        </view>
      </view>
      <view class="base-card">
        <view class="title">
          <text>执法内容</text>
        </view>
        <view class="view-content">
          {{ details.enforceContent }}
        </view>
      </view>
      <!-- <view class="base-card" v-if="judgeDetails.length">
            <view class="title">
               <text>审批情况</text>
            </view>
            <view class="view-form">
               <view v-for="(item,index) in judgeDetails" :key="index">
                  <view class="view-form-item">
                     <view class="label">审批结果</view>
                     <view v-if="item.checkStatus == 1" style="color: #3EB47A;">通过</view>
                     <view v-else style="color: red">拒绝</view>
                  </view>
                  <view class="view-form-item">
                     <view class="label">审批人</view>
                     <view>{{item.checkUser}}</view>
                  </view>
                  <view class="view-form-item">
                     <view class="label">审批部门</view>
                     <view>{{item.checkDeptName}}</view>
                  </view>
                  <view class="view-form-item">
                     <view class="label">审批时间</view>
                     <view>{{item.checkTime}}</view>
                  </view>
               </view>
            </view>
         </view> -->
      <view class="base-card"
        v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length">
        <view class="title">
          <text>执法图片</text>
        </view>
        <view class="view-image">
          <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill"
            v-for="(item,index) in details.regionImgs" :key="index"></image>
        </view>
      </view>
      <view class="base-card">
        <view class="title">
          <text>审批进度</text>
        </view>
        <view class="view-step">
          <view class="step-content" :class="{none: index == nodeList.length - 1}" v-for="(item,index) in nodeList"
            :key="index">
            <image class="icon" src="/static/policy/icon.png" mode="widthFix" v-if="!item.nodeReason"></image>
            <image src="/static/policy/refject.png" mode="widthFix" class="icon" v-else></image>
            <view class="top-title">
              {{item.nodeName}}
            </view>
            <view class="down-tips">
              <view class=" submit-per">提交人:<text>{{item.nodeUser}}</text></view>
              <view class="time">{{item.nodeTime}}</view>
            </view>
          </view>
          <!-- <view class="step-content">
                  <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
                  <view class="top-title">
                     审批通过
                  </view>
                  <view class="down-tips">
                     <view>提交人:<text>林小零</text></view>
                     <view class="time">2024-06-07 12:14</view>
                  </view>
               </view>
               <view class="step-content none">
                  <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
                  <image src="/static/policy/refject.png" mode="widthFix" class="icon"></image>
                  <view class="top-title">
                     提交申请
                  </view>
                  <view class="down-tips">
                     <view>提交人:<text>林小零</text></view>
                     <view class="time">2024-06-07 12:14</view>
                  </view>
               </view> -->
        </view>
      </view>
    </view>
  </view>
</template>
<script>
  import {
    orderDetails,
    orderNodeList,
    enforceLogList
  } from '@/api/policy.js'
  import {
    getDicts
  } from '@/api/data.js'
  import {
    config
  } from '@/common/config'
  export default {
    data() {
      return {
        details: {},
        nodeList: [],
        mapStatus: {
          // 1: '待审批',
          // 2: "待执行",
          // 3: "待上报",
          // '-1':"已拒绝",
          // 4: "已结束"
          // -1拒绝,0待审批,1审批中,2通过
          "-1": '已拒绝',
          0: '待审批',
          1: '审批中',
          2: "已审批"
        },
        typeList: '',
        judgeDetails: [],
        baseUrl: config.baseUrl
      }
    },
    onLoad(options) {
      this.getDetails(options.id)
      this.orderNodeList(options.id)
      this.enforceLogList(options.id)
      if (options.setTitle) {
        uni.setNavigationBarTitle({
          title: ''
        })
      }
    },
    methods: {
      getDetails(orderId) {
        orderDetails({
          orderId
        }).then(val => {
          this.details = val.data.data
          if (this.details.regionImgs) {
            this.details.regionImgs = this.details.regionImgs.split(",")
          }
          this.getDicts()
        })
      },
      // 节点
      orderNodeList(orderId) {
        orderNodeList({
          orderId
        }).then(val => {
          this.nodeList = val.data.data
        })
      },
      // 申请记录
      enforceLogList(orderId) {
        enforceLogList({
          orderId
        }).then(val => {
          // console.log(val.data.rows)
          this.judgeDetails = val.data.rows
        })
      },
      getDicts() {
        getDicts('enforce_type').then(val => {
          const value = val.data.data.find(item => item.dictCode == this.details.enforceType)
          this.typeList = value.dictLabel
        })
      },
      previewImage(list, index) {
        const data = list.map(item => this.baseUrl + item)
        console.log(data)
        uni.previewImage({
          urls: data,
          current: index
        })
      }
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
</style>
<style lang="scss" scoped>
  @import "./judgeApply.scss";
</style>