Subjection.vue 3.56 KB
<template>
  <div>
    <el-dialog
      v-if="show"
      v-model="show" class="dialog" title="绑定隶属" :close-on-click-modal="true" width="80%"
      draggable
    >
      <el-form
        ref="queryRef" size="small" :model="queryParams" :inline="true" label-width="auto"
      >
        <el-row style="width: 100%;">
          <el-form-item label="会员编号" prop="code" label-width="">
            <el-input
              v-model.trim="queryParams.code"
              placeholder=""
              clearable
              style="width: 100%;"
              @keyup.enter="selectFN"
            />
          </el-form-item>
          
          <div>
            <el-button size="small" type="primary" icon="Search" @click="selectFN">搜索</el-button>
          </div>
        
        </el-row>
      </el-form>
      
      <el-table v-loading="loading" :data="list" max-height="300" border style="width: 100%">
        <el-table-column type="index" width="55" label="序号" align="center" />
        <el-table-column label="会员名称" align="center" prop="baseName" min-width="100" />
        <el-table-column label="会员编号" align="center" prop="memCode" min-width="140px" />
        <el-table-column label="协会类型" align="center" prop="" min-width="100px">
          <template #default="scope">
            <div v-if="scope.row.deptType==1">中跆协</div>
            <div v-if="scope.row.deptType==2">一级协会</div>
            <div v-if="scope.row.deptType==3">一级协会</div>
            <div v-if="scope.row.deptType==4">二级协会</div>
            <div v-if="scope.row.deptType==5">三级协会</div>
            <div v-if="scope.row.deptType==6">职业性单位会员</div>
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" prop="" width="100px">
          <template #default="scope">
            <el-button type="primary" @click="handeBang(scope.row)">绑定隶属</el-button>
          </template>
        </el-table-column>
      </el-table>
    </el-dialog>
  
  
  </div>
</template>

<script setup>
import { toRefs, ref, reactive, getCurrentInstance } from 'vue'
import { searchMemberByCode, bindUpperMember } from '/@/api/groupMember'

const { proxy } = getCurrentInstance()
const emit = defineEmits(['success'])
const data = reactive({
  show: false,
  list: [],
  queryParams: {},
  form: {}
})
const { show, list, queryParams, form } = toRefs(data)
const loading = ref(false)


function open(row) {
  list.value = []
  form.value = row
  queryParams.value = {}
  show.value = true
}

async function getList() {
  loading.value = true
  if (!queryParams.value.code) return proxy.$modal.msgError('请输入会员编号')
  const res = await searchMemberByCode(queryParams.value)
  list.value = [res.data]
  loading.value = false
}

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

function handeBang(row) {
  if (row.memCode == form.value.memCode) return proxy.$modal.msgError('不能绑定自己')
  proxy.$modal.confirm('是否确认绑定会员编号为"' + row.memCode + '的数据项').then(function() {
    loading.value = true
    if (form.value.deptType < row.deptType) {
      return bindUpperMember({ curMemId: row.memId, upperMemId: form.value.memId })
    } else {
      return bindUpperMember({ curMemId: form.value.memId, upperMemId: row.memId })
    }
  }).then(() => {
    proxy.$modal.msgSuccess('操作成功')
    emit('success')
    show.value = false
  }).catch(() => {
  }).finally(() => {
    loading.value = false
  })
}


defineExpose({
  open
})

</script>

<style lang="scss" scoped>

</style>