apply.vue 5.62 KB
<template>
  <view>
    <view class="searchbar">
      <uni-easyinput v-model="queryParams.name" :input-border="false" placeholder="搜索考级名称"
                     placeholderStyle="font-size:30rpx" prefixIcon="search" @blur="getList" @clear="getList">
      </uni-easyinput>
      <view v-if="isExam=='0'" class="invertedbtn-red" @click="goAdd">+ 添加级位考试</view>
    </view>
    <view class="appList">
      <view v-for="(item,index) in list" :key="item.examId || index" class="appItem">
        <view class="status" @click="goDetail(item)">
          <text v-if="item.status=='0'" class="text-primary">{{ item.statusStr }}</text>
          <text v-if="item.status=='1'" class="text-primary">{{ item.statusStr }}</text>
          <text v-if="item.status=='2'" class="text-success">{{ item.statusStr }}</text>
          <text v-if="item.status=='3'" class="text-danger">{{ item.statusStr }}</text>
          <text v-if="item.status=='4'" class="text-warning">{{ item.statusStr }}</text>
        </view>
        <view v-if="item.status!='0'&&item.submitTime" class="date">提交时间:{{ item.submitTime }}</view>
        <view class="mt0" @click="goDetail(item)">
          <text class="text-primary">{{ item.examCode }}</text>
        </view>
        <view class="name mt0" @click="goDetail(item)">{{ item.name }}</view>
        <view class="pp esp">申请单位:{{ item.memberName }}</view>
        <view class="pp esp">考级日期:{{ item.startTime?.substring(0, 16) }}{{ item.endTime?.substring(0, 16) }}
        </view>
        <view class="flexbox" @click="goDetail(item)">
          <view>
            申请日期
            <view>{{ item.applyTime?.substring(0, 10) }}</view>
          </view>
          <view>
            考官
            <view>{{ item.examinerNames }}</view>
          </view>
          
          <view>
            通过人数
            <view>{{ item.pass }}</view>
          </view>
        </view>
        <view v-if="item.status=='0'||item.status=='3'||item.status=='4'||item.status=='9'" class="func">
          <button :disabled="item.status=='1'||item.status=='2'||item.status=='3'"
                  @click="handleDelete(item)">删除
          </button>
          <button :disabled="!(item.status=='0')" @click="editThis(item)">编辑</button>
          <button :disabled="item.status!='0'&&item.status!='9'||item.totalNum==0||item.pass==0"
                  @click="handleSubmit(item)">
            提交审核
          </button>
        </view>
      </view>
    </view>
    
    
    <view v-if="list.length==0" class="nodata">
      <image :src="config.baseUrl_api + '/fs/static/nodata.png'" mode="aspectFit"></image>
      <text>暂无数据</text>
    </view>
  </view>
</template>

<script setup>
import * as api from '@/common/api.js'
import config from '@/config.js'
import {
  onMounted,
  ref
} from 'vue'
import {
  onLoad,
  onShow
} from '@dcloudio/uni-app'

const app = getApp();
const queryParams = ref({
  // pageNum: 1,
  // pageSize: 10
  type: '1',
  rankStatus: '0'
})
const navs = ref(['未提交', '审核中', '审核通过', '审核拒绝'])
const current = ref()
const list = ref([])
const total = ref(0)
const deptType = ref('')
const userType = ref('')
const isExam = ref('1')
onShow(() => {
  if (app.globalData.isLogin) {
    init()
  } else {
    
    app.firstLoadCallback = () => {
      init()
    };
  }
})

function init() {
  uni.showLoading({
    title: '加载中',
    mask: true
  })
  deptType.value = app.globalData.deptType
  userType.value = app.globalData.userType
  isExam.value = app.globalData.isExam
  getList()
}


function getList() {
  api.getLevelList(queryParams.value).then(res => {
    uni.hideLoading()
    list.value = res.rows
    total.value = res.total
  })
}

function goAdd() {
  let path = `/level/addApply`
  uni.navigateTo({
    url: path
  });
}

function editThis(item) {
  let path = `/level/addApply?examId=${item.examId}`
  uni.navigateTo({
    url: path
  });
}

function handleSubmit(item) {
  uni.showModal({
    title: '提示',
    content: `请确认人员照片是否已更新`,
    success: function (res) {
      if (res.confirm) {
        // 跳转到付款详情页面
        uni.navigateTo({
          url: `/level/paymentDetail?examId=${item.examId}`
        });
      }
    }
  })
}

function handleDelete(row) {
  uni.showModal({
    title: '提示',
    content: `确定删除${row.name}吗`,
    success: function (res) {
      if (res.confirm) {
        uni.showLoading({
          title: `删除中`
        })
        api.delLevel(row.examId).then(res => {
          uni.showToast({
            title: '操作成功!',
            icon: 'none'
          })
          uni.hideLoading()
          getList()
        })
      }
    }
  })
}

function upApply(id) {
  api.submitVerity(id).then(res => {
    uni.hideLoading()
    getList()
    uni.showToast({
      title: `提交成功`
    })
  })
}


function goDetail(item) {
  if (item.status != '0') {
    let path = `/level/applyDetail?examId=${item.examId}`
    uni.navigateTo({
      url: path
    });
  } else {
    // 去编辑
    editThis(item)
  }
  
}
</script>


<style lang="scss" scoped>
.searchbar {
  display: flex;
  align-items: center;
  padding: 25rpx;
  box-sizing: border-box;
  
  :deep(.uni-easyinput .uni-easyinput__content) {
    border-radius: 35rpx;
    border: none;
    height: 70rpx;
  }
  
  :deep(.uni-easyinput__content-input) {
    font-size: 26rpx;
  }
  
  .invertedbtn-red {
    border-radius: 50px;
    background-color: #fff;
    
    font-size: 30rpx;
    padding: 10rpx 20rpx;
  }
}

.mt0 {
  margin-top: 0 !important;
}

.appList .appItem .name {
  width: 85%;
  word-break: break-all;
}
</style>