mergeUp.vue 6.39 KB
<template>
  <view>
    <view class="text-center whitebg">
      <view class="cardNav">
        <view @click="goApply">审核</view>
        <view @click="goMerge">合并</view>
        <view class="active">提交</view>
      </view>
    </view>
    <!--  团队会员审核 -->
    <uni-segmented-control class="whitebg" :current="current" :values="navs" @clickItem="onClickItem"
                           styleType="text" activeColor="#AD181F"></uni-segmented-control>
    <view class="appList">
      <view class="appItem" v-for="(item,index) in list" :key="index">
        <view class="status" @click="goDetail(item)">
          <text v-if="item.status == 0" class="text-primary">审核中</text>
          <text v-if="item.status == 1" class="text-success">审核通过</text>
          <text v-if="item.status == 2" class="text-danger">审核拒绝</text>
          <text v-if="item.status == 3" class="text-warning">审核撤回</text>
        </view>
        <view class="date">提交日期:{{item.content.commitTime}}</view>
        <view class="date" v-if="item.content.validityTime">原有效期:{{item.content.validityTime}}</view>
        <view class="text-primary" v-if="item.content?.wfCode">{{item.content?.wfCode}}</view>
		<view class="name mt0" style="width: 100%;" @click="goDetail(item)">{{item.content?.certName}}</view>
        <view class="flexbox" @click="goDetail(item)">
          <view>
            年限
            <view>{{item.content.renewYear}}</view>
          </view>
          <view>
            会员/新会员
            <view>{{item.content.allCount}}/<text class="text-danger">{{item.content.newCount}}</text></view>
          </view>
          <view>
            费用合计
            <view> {{ (item?.content?.allFee*1).toFixed(2) }}</view>
          </view>
        </view>

        <view class="func" v-if="item.auditStatus == 100">
          <button @click="handleAudit(item)">提交</button>
          <button v-if="item.lastIds?.slice(0, 1) != '-'" @click="resolution(item)">取消合并</button>
        </view>
        <view class="func" v-if="item.auditStatus == 1 && item.isView == 1">
          <button @click="sendBack(item)">撤回</button>
        </view>
      </view>
    </view>

    <view class="nodata" v-if="list.length==0">
      <image mode="aspectFit" src="/static/nodata.png"></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
} from '@dcloudio/uni-app'
const app = getApp();
const queryParams = ref({
  // pageNum: 1,
  // pageSize: 10
  mergeFlag: 100,
  statusFlag: '101'
})
const navs = ref(['待提交','审核中', '审核通过', '审核拒绝', '已撤回'])
const current = ref()
const list = ref([])
const total = ref(0)
const deptType = ref('')
const userType = ref('')
onLoad(() => {
  if (app.globalData.isLogin) {
    init()
  } else {

    app.firstLoadCallback = () => {
      init()
    };
  }
})

function init() {
  deptType.value = app.globalData.deptType
  userType.value = app.globalData.userType
  // console.log(userType.value)
  getList()
}

function onClickItem(e) {
  console.log(e)
  switch(e.currentIndex){
    case 0:
      queryParams.value.statusFlag = 101
      break;
    case 1:
      queryParams.value.statusFlag = 102
      break;
    case 2:
      queryParams.value.statusFlag = 103
      break;
    case 3:
      queryParams.value.statusFlag = 104
      break;
    case 4:
      queryParams.value.statusFlag = 105
      break;
  }
  getList()
}

function getList() {
  uni.showLoading({
    title:'加载中'
  })
  if (queryParams.value.statusFlag == '') {
    queryParams.value.mergeFlag = 100
    queryParams.value.status = null
  }
  if (queryParams.value.statusFlag == 101) {
    queryParams.value.mergeFlag = 101
    queryParams.value.status = null
  }
  if (queryParams.value.statusFlag == 102) {
    queryParams.value.mergeFlag = 1
    queryParams.value.status = 0
  }
  if (queryParams.value.statusFlag == 103) {
    queryParams.value.mergeFlag = 1
    queryParams.value.status = 1
  }
  if (queryParams.value.statusFlag == 104) {
    queryParams.value.mergeFlag = 1
    queryParams.value.status = 2
  }
  if (queryParams.value.statusFlag == 105) {
    queryParams.value.mergeFlag = 100
    queryParams.value.status = 3
  }
  api.getGroupList(queryParams.value).then(res => {
    uni.hideLoading()
    list.value = res.rows
    list.value.forEach(item => {
      item.con = item.content
      item.content = JSON.parse(item.content)
    })
    total.value = res.total
  })
}

function handleAudit(item){
  uni.showModal({
    title: '提示',
    content: `确定提交${item.content.certName}吗`,
    success: function(res) {
      if (res.confirm) {
        api.groupAudit({
          flag: '1',
          recordIds: [item.recordId],
          reason: null
        }).then(res=>{
          getList()
          uni.showToast({
            title:`操作成功!`
          })
        })
      }
    }
  })
}
	
function goDetail(item) {
  const form  = encodeURIComponent(JSON.stringify(item))
  // 查看
  let path = `/group/apply/mergeUpDetail?&form=${form}`
  uni.navigateTo({
    url: path
  });
		
}
function goMerge(){
  let path = `/group/apply/merge`
  uni.redirectTo({
    url: path
  });
}
function goApply(){
  let path = `/group/apply/applyList`
  uni.redirectTo({
    url: path
  });
}
function sendBack(row){
  uni.showModal({
    title: '提示',
    content: `确定撤回${row.content.certName}吗`,
    success: function(res) {
      if (res.confirm) {
        api.certifiedwithDraw({
          recordId: row.recordId,
          reason: row.reason
        }).then(res => {
          uni.showToast({
            title: '操作成功',
            icon: 'none'
          })
          getList()
        })
		
      }
    }
  })
}
function resolution(row){
  uni.showModal({
    title: '提示',
    content: `确定拆分${row.content.certName}吗`,
    success: function(res) {
      if (res.confirm) {
        api.certifiedunMerge(row.recordId).then(res => {
          uni.showToast({
            title: '已拆分',
            icon: 'none'
          })
          getList()
        })
		
      }
    }
  })
}
</script>

<style scoped>
.mt0{margin-top: 0!important;}
.appList .appItem .name{width: 80%;word-break: break-all;}
</style>