viewView.vue 10.4 KB
<template>
  <div v-if="show">
    <el-dialog
      v-model="show" title="查看会员详情" class="dialog" :close-on-click-modal="true" width="80%"
      @close="close"
    >
      <!--      <h1 class="center">{{ form.content.name }}</h1>-->
      <!--      <el-row justify="space-between">-->
      <!--        <div v-if="form.content.commitTime">提交日期:<span>{{ form.content.commitTime }}</span> </div>-->
      <!--        <div>提交单位:<span>{{ form.content.memberName }}</span> </div>-->
      <!--      </el-row>-->
      <!--      <br>-->
      <!--      <div class="vipData">-->
      <!--        <div>人数合计:-->
      <!--          <span>{{ form.content.personCount }}</span>-->
      <!--        </div>-->
      <!--        <div>新会员合计:-->
      <!--          <span>{{ form.content.newPersonCount }}</span>-->
      <!--        </div>-->
      <!--        <div>续费合计人数:-->
      <!--          <span>{{ form.content.oldPersonCount }}</span>-->
      <!--        </div>-->
      <!--        <div v-if="(deptType==1||deptType==2||deptType==3)&&form.content.allFee ">费用合计:-->
      <!--          <span>{{ form.content.allFee }}</span>-->
      <!--        </div>-->
      <!--      </div>-->
      <!--      <br>-->
      <div>
        <el-form :inline="true" label-position="top" size="small">
          <el-row style="width: 100%;">
            <el-col :span="4">
              <el-form-item label="姓名">
                <el-input v-model.trim="queryParams.name" placeholder="" style="width: 100%;" @keyup.enter="searchFn" />
              </el-form-item>
            </el-col>
            <el-col :span="4">
              <el-form-item label="证件类型">
                <el-select v-model.trim="queryParams.idcType" style="width: 100%;" @change="searchFn">
                  <el-option
                    v-for="item in idcTypeList" :key="item.value" :hidden="item.value==3" :label="item.label"
                    :value="item.value"
                  />
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="4">
              <el-form-item label="证件号码">
                <el-input
                  v-model.trim="queryParams.idcCode" style="width: 100%;" placeholder="请输入"
                  @keyup.enter="searchFn"
                />
              </el-form-item>
            </el-col>
            <!--            <el-col :span="4">-->
            <!--              <el-form-item label="缴费编号">-->
            <!--                <el-input v-model.trim="queryParams.code" style="width: 100%;" placeholder="请输入" @keyup.enter="searchFn" />-->
            <!--              </el-form-item>-->
            <!--            </el-col>-->
            <el-col :span="4" style="min-width: 200px">
              <el-form-item label="&nbsp;">
                <el-button size="small" type="primary" @click="getList">查询</el-button>
                <el-button size="small" @click="rest">重置</el-button>
              </el-form-item>
            </el-col>
          </el-row>
        </el-form>
        <el-row justify="space-between">
          <div>
            <div v-if="!flag">
              <el-button v-if="form.auditStatus==0&&deptType!=2" size="small" type="primary" @click="auditFn">审核
              </el-button>
            </div>
          </div>
          <div>
            
            <el-button size="default" :icon="Download" type="warning" @click="exportFn">导出</el-button>
          </div>
        </el-row>
      </div>
      
      <br>
      <div>
        <el-table :data="list" max-height="600" border>
          <el-table-column type="index" width="55" align="center" label="序号" />
          <el-table-column label="姓名" align="center" prop="personName" min-width="100" />
          <el-table-column label="证件类型" align="center" prop="personIdcType" min-width="100">
            <template #default="scope">
              <div> {{ idcFilter(scope.row.personIdcType) }}</div>
            </template>
          </el-table-column>
          <el-table-column label="证件号码" align="center" prop="personIdcCode" min-width="180" />
          <el-table-column label="所属单位(单位会员)" align="center" prop="memberInfoName" min-width="210" />
          
          <el-table-column label="原有效期" align="center" prop="originValidityDate" min-width="100">
            <template #default="scope">
              <span v-if="scope.row.personIdcType==3">--</span>
              <span v-else>{{
                scope.row.originValidityDate ? parseTime(scope.row.originValidityDate, '{y}-{m}-{d}') : '/'
              }}</span>
            </template>
          </el-table-column>
          <!--          <el-table-column label="认证后有效期" align="center" prop="nowValidityDate" min-width="110">-->
          <!--            <template #default="scope">-->
          <!--              <span>{{ scope.row.personIdcType!=3? (scope.row.nowValidityDate? parseTime(scope.row.nowValidityDate, '{y}-{m}-{d}'):'/'):'&#45;&#45;' }}</span>-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <el-table-column
            v-if="deptType==1||deptType==2||deptType==3" label="单价" align="center" prop="unitPrice"
            min-width="100"
          />
          <el-table-column label="缴费年限" align="center" prop="payYear" min-width="100" />
          
          <el-table-column
            v-if="deptType==1||deptType==2||deptType==3" label="总价" align="center" prop="allPrice"
            min-width="100"
          />
          <el-table-column label="缴费编号" align="center" prop="" min-width="120">
            <template #default="props">
              <!-- <el-button style="margin: 0;" link type="primary" @click="orderFn(props.row)">{{ props.row.wfCode }}</el-button> -->
              {{ props.row.wfCode }}
            </template>
          </el-table-column>
        </el-table>
        
        <pagination
          v-show="total > 0"
          v-model:page="queryParams.pageNum"
          v-model:limit="queryParams.pageSize"
          :total="total"
          @pagination="getList"
        />
      </div>
      <br>
      
      <div v-if="!flag">
        <!-- 审核记录 -->
        <h2>审核记录</h2>
        <el-table :data="auditList" max-height="300" border>
          <el-table-column type="index" width="55" align="center" label="序号" />
          <el-table-column label="审核协会" align="center" prop="handlerDeptName" />
          <el-table-column label="审核状态" align="center" prop="">
            <template #default="props">
              <div v-if="props.row.auditStatus==0">审核中</div>
              <div v-if="props.row.auditStatus==1" class="text-success">审核通过</div>
              <div v-if="props.row.auditStatus==2" class="text-danger">审核拒绝</div>
              <div v-if="props.row.auditStatus==3" class="text-warning">已撤回</div>
              <div v-if="props.row.auditStatus==100">审核中</div>
            </template>
          </el-table-column>
          <el-table-column label="审核时间" align="center" prop="">
            <template #default="props">
              {{ parseTime(props.row.handleDate, '{y}-{m}-{d} {h}:{i}') }}
            </template>
          </el-table-column>
          <el-table-column label="备注" align="center" prop="reason" />
        </el-table>
      </div>
    
    </el-dialog>
    <DoDialog ref="DoAudit" @approval="approvalFN" />
    <orderDetail ref="orderDetailRef" />
  </div>
</template>

<script setup>
import { reactive } from '@vue/runtime-core'
import { toRefs, getCurrentInstance, computed, ref } from 'vue'
import DoDialog from '../cityAudit/do.vue'
import useUserStore from '@/store/modules/user'
import orderDetail from '@/views/member/cityAudit/orderDetail.vue'
import { getHistoryByRelateId, getDetailList } from '@/api/member/audit.js'
import { idcTypeList, idcFilter } from '@/utils/ruoyi'
import { Download } from '@element-plus/icons-vue'

const deptType = computed(() => useUserStore().deptType)
const { proxy } = getCurrentInstance()
const recordId = ref()
const emit = defineEmits(['approval'])
const data = reactive({
  show: false,
  form: {},
  list: [],
  queryParams: {
    pageNum: 1,
    pageSize: 10
  },
  auditList: [],
  rList: [],
  rInx: '',
  typeList: ['', '中跆协', '省协会', '直属协会', '市协会', '区协会', '道馆']
})
const { show, form, list, queryParams, auditList } = toRefs(data)
const id = ref()
const exam = null
const flag = ref()
const total = ref(0)

function open(params, rId, val) {
  data.show = true
  show.value = true
  flag.value = val || false
  queryParams.value.memId = params.memId
  queryParams.value.recordId = recordId.value = rId
  queryParams.value.rangeId = params.rangeId
  queryParams.value.code = params.code
  if (rId && params.memId) {
    getList()
  }
}

function searchFn() {
  queryParams.value.pageNum = 1
  getList()
}

// 查询
async function getList() {
  const res = await getDetailList(queryParams.value)
  if (res.code == 200) {
    list.value = res.rows
    total.value = res.total
    id.value = list.value?.[0]?.rangeId
    if (id.value) auditFN()
  }
}

// 审核记录
async function auditFN() {
  const res = await getHistoryByRelateId(id.value)
  auditList.value = res.data
}


// 重置
function rest() {
  queryParams.value = {
    recordId: recordId.value,
    memId: queryParams.value.memId,
    code: queryParams.value.code,
    pageNum: 1,
    pageSize: 10
  }
  getList()
}

function auditFn() {
  proxy.$refs['DoAudit'].open([form.value.recordId])
}

function approvalFN() {
  show.value = false
  form.value.auditStatus = 1
  close()
}

function close() {
  emit('approval', exam)
  show.value = false
  queryParams.value = {
    pageNum: 1,
    pageSize: 10
  }
  total.value = 0
}

function exportFn() {
  proxy.download('/person/paymentRange/exportDetailList', {
    ...queryParams.value
  }, `会员信息_${new Date().getTime()}.xlsx`)
}

defineExpose({
  open
})

</script>

<style lang="scss" scoped>
.center {
  text-align: center;
  margin-top: 0;
}

.flex {
  display: flex;
  // justify-content: space-between;
  font-size: 16px;
  
}

.x-flex {
  display: flex;
  font-size: 16px;
}

.el-button {
  margin-bottom: 18px;
}


.col-4 {
  padding: 10px;
  text-align: center;
  font-size: 16px;
  border: 1px solid #ebeef5
}

.first {
  background-color: #f8f8f9;
}


</style>