wjt
2024-07-29 2ffea51205b7eb94cf3fb7221aede7ff66669fc1
policy/translate/translate.vue
@@ -1,40 +1,63 @@
<template>
   <view class="page-box">
      <view class="list">
         <view class="select-box" v-for="(item,index) in list" :key="index" :class="{start: isJudege}">
            <view class="select-image" v-if="isJudege" @click="setIsSelect(index)">
         <view class="select-box" @click="setIsSelect(index)" v-for="(item,index) in list" :key="index" :class="{start: isJudege}">
            <view class="select-image" v-if="isJudege" >
               <image src="/static/policy/checkbox.png" mode="widthFix" v-show="item.isSelect"></image>
               <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!item.isSelect"></image>
            </view>
            <view class="list-item">
               <view class="top-title">
                  <text>24年5月突击检查消防安全</text>
                  <text>{{item.enforceReason}}</text>
                  <text class="status">待审批</text>
               </view>
               <view class="user-info">
                  <text>王思雨</text>
                  <view class="driver"></view>
                  <text>执法一大队</text>
                  <text>{{item.applyUser}}</text>
               <!--    <view class="driver"></view>
                  <text>{{item.checkDeptName}}</text> -->
               </view>
               <view class="user-info">
                  <!-- <text>{{item.applyUser}}</text>
                  <view class="driver"></view> -->
                  <text>{{item.checkDeptName}}</text>
               </view>
               <view class="set-line">
                  <text>执法对象:</text>河南觉醒科技有限公司
                  <text>执法对象:</text>{{item.companyName}}
               </view>
               <view class="line"></view>
               <view class="set-flex set-start set-flex-content-between">
                  <view>
                  <view style="width: 75%;">
                     <view class="set-line1">
                        <text>执法时间:</text>2024-05-12 12:00
                        <text>执法时间:</text>{{item.planTime}}
                     </view>
                     <view class="set-line1">
                        <text>申请时间:</text>2024-05-12 12:00:12
                        <text>申请时间:</text>{{item.applyTime}}
                     </view>
                     <view class="look" v-if="item.show">
                        <view class="set-line">
                           <text>执法主题:</text>{{item.enforceReason}}
                        </view>
                        <view class="set-line">
                           <text>执法类型:</text>{{handlerType(item.enforceType)}}
                        </view>
                        <view class="set-line set-line-flex">
                           <text>执法内容:</text> <view>{{item.enforceContent}}</view>
                        </view>
                     </view>
                  </view>
                  <view class="button" v-if="!isJudege" @click="goStartJudeg">
                  <view class="button" v-if="!isJudege" @click.self="goStartJudeg([item.orderId])">
                     审批
                  </view>
               </view>
               <view @click="showItem(item)" class="icon" style="text-align: center;display: flex;justify-content: center;align-items: center;">
                  <u-icon name="arrow-down" color="#bfbfbf" size="20" v-if="!item.show"></u-icon>
                  <u-icon name="arrow-up" color="#bfbfbf" size="20" v-else></u-icon>
               </view>
            </view>
         </view>
         <u-empty v-if="!list.length" style="margin-top: 200rpx;"></u-empty>
      </view>
      <view class="down" v-if="!isJudege">
         <view class="button" @click="goRecord">审批记录</view>
@@ -54,32 +77,70 @@
<script>
   import popupCom from '@/policy/components/popup.vue'
   import { checkLogList, checkUpd } from '@/api/policy.js'
   import { getDicts } from '@/api/data.js'
   export default {
      components: {
         popupCom
      },
      data() {
         return {
            list1: [{
               name: '待上报',
            }, {
               name: '已上报',
            }],
            isJudege: false,
            list: [
               {
                  isSelect: false
               }
            ],
            total: 1,
            queryms: {
               pageNum: 1,
               pageSize: 10,
               orderStatus: 1,
               isAsc: "desc",
               orderByColumn: "apply_time"
            },
            recordList: [],
            typeList: []
         }
      },
      computed: {
         isAllSelect(){
            const value = this.list.every(item => item.isSelect)
            return value
            if(this.list.length) {
               const value = this.list.every(item => item.isSelect)
               return value
            } else {
               return false
            }
         }
      },
      onLoad() {
         this.getDicts()
      },
      onReachBottom() {
         if(this.total == this.list.length) {
            return
         }
         this.queryms.pageNum++
         this.checkLogList()
      },
      methods: {
         showItem(item) {
            item.show = !item.show
         },
         handlerType(type) {
            const value = this.typeList.find(item => item.dictCode == type)
            if(value) {
               return value.dictLabel
            } else {
               return ''
            }
         },
         getDicts(type) {
            getDicts('enforce_type').then(val => {
               this.typeList = val.data.data
               this.checkLogList()
            })
         },
         goRecord() {
            uni.navigateTo({
               url: `/policy/translateRecord/translateRecord`
@@ -88,7 +149,8 @@
         click() {
         },
         goStartJudeg() {
         goStartJudeg(id) {
            this.recordList = id
            this.$refs.popup.open()
         },
         // 批量审批
@@ -99,15 +161,21 @@
            this.isJudege = true
         },
         setIsSelect(index){
            if(!this.isJudege) {
               return
            }
            this.list[index].isSelect = !this.list[index].isSelect
         },
         allSelect() {
            this.list.map(item => item.isSelect = !this.isAllSelect)
            const value = this.isAllSelect
            this.list.map(item => item.isSelect = !value)
         },
         moreStart() {
            const value = this.list.some(item => item.isSelect)
            if(value) {
               this.goStartJudeg()
               const valueData = this.list.filter(item => item.isSelect).map(item => item.orderId)
               // console.log(valueData)
               this.goStartJudeg(valueData)
            } else {
               uni.showToast({
                  title: '请选择审批',
@@ -115,12 +183,36 @@
               })
            }
         },
         entery() {
            this.isJudege = false
         entery(form) {
            // 1企业审批,2执法单审批
            checkUpd({...form, ids: this.recordList, checkType: 2}).then(val => {
               if(val.data.code == 200) {
                  uni.showToast({
                     title: '审批成功',
                     icon: 'none'
                  })
               }
               this.list = []
               this.queryms.pageNum = 1
               this.checkLogList()
               this.$refs.popup.close()
               this.isJudege = false
            })
         },
         cancelSelect() {
            this.isJudege = false
            this.list.map(item => item.isSelect = false)
         },
         checkLogList() {
            checkLogList(this.queryms).then(val => {
               val.data.rows.map(item => {
                  item.isSelect = false
                  item.show = false
               })
               this.list = [...this.list,...val.data.rows ]
               this.total = val.data.total
            })
         }
      }
   }
@@ -141,4 +233,16 @@
      background-color: #F4F4F4 !important;
      border: none;
   }
   .set-line-flex{
      display: flex;
      justify-content: flex-start;
      align-items: flex-start;
      text{
         width: 28%;
         display: inline-block;
      }
      & > view{
         width: 70%;
      }
   }
</style>