Files
dvcp_v2_webapp/project/xumu/AppAuthManage/authList.vue
aixianling a748a8b337 refactor(xumu): 统一接口添加 /api 前缀
- 在多个组件中,将请求路径从 "/user/config/page" 修改为 "/api/user/config/page"- 将请求路径从 "/siteUser/querySiteByUserId" 修改为 "/api/siteUser/querySiteByUserId"
- 将请求路径从 "/siteUser/del" 修改为 "/api/siteUser/del"
-将请求路径从 "/siteUser/add" 修改为 "/api/siteUser/add"
- 将请求路径从 "/user/auth/page" 修改为 "/api/user/auth/page"
- 将请求路径从 "/user/auth/update" 修改为 "/api/user/auth/update"
- 将请求路径从 "/user/update-status" 修改为 "/api/user/update-status"

通过添加 /api前缀,统一了接口请求路径的格式,提高了代码的一致性和可维护性。
2024-12-20 16:54:24 +08:00

121 lines
4.3 KiB
Vue

<script>
const columns = [
{label: "序号", type: "index"},
{label: "账号", prop: "userName"},
{label: "姓名", prop: "name"},
{label: "角色", prop: "roleName"},
{label: "所属端", prop: "type", dict: "roleType", width: 120, align: 'center'},
{label: "状态", prop: "authStatus", dict: "authStatus", width: 120, align: 'center'},
{label: "审核状态", prop: "auditStatus", dict: "auditStatus", width: 120, align: 'center'},
]
const certificates = [
{label: "身份证(正面)", prop: "frontCard"},
{label: "身份证(反面)", prop: "reverseCard"},
{label: "营业执照", prop: "businessPic", permit: ["breed"]},
{label: "畜禽经营许可证", prop: "breedPic", permit: ["breed"]},
{label: "动物防疫条件许可证", prop: "prevention", permit: ["breed"]},
{label: "组织机构证明", prop: "orgPic", permit: ["bank", "insurance"]},
]
export default {
name: "authList",
props: {
instance: Function,
dict: Object,
permissions: Function
},
data() {
return {
columns,
tableData: [],
page: {pageNum: 1, pageSize: 10, total: 0},
search: {name: ""},
dialog: false,
form: {}
}
},
methods: {
getTableData() {
this.instance.post("/api/user/auth/page", null, {
params: {...this.page, ...this.search}
}).then(res => {
if (res?.data) {
this.tableData = res.data?.records.map(e => ({...e, permit: `${e.authStatus}` + e.auditStatus}))
this.page.total = res.data.total
}
})
},
getNeedCerts(type) {
return certificates.filter(e => !e.permit || e.permit.includes(type))
},
handleConfirm() {
this.$refs.form.validate().then(() => {
this.instance.post("/api/user/auth/update", this.form).then(res => {
if (res?.code == '0' && res?.data != 1) {
this.dialog = false
this.$message.success("提交成功!")
this.getTableData()
}
})
})
}
},
created() {
this.dict.load("roleType", "authStatus", "auditStatus")
this.getTableData()
}
}
</script>
<template>
<ai-page class="authList" title="认证审核">
<ai-search-bar>
<template #left>
<el-button type="primary" icon="iconfont iconAdd" @click="$router.push({hash:'#add'})">添加</el-button>
</template>
<template #right>
<el-input size="small" placeholder="搜索账号" v-model="search.name" clearable
@change="page.pageNum=1, getTableData()" @getList="getTableData"/>
</template>
</ai-search-bar>
<ai-table :tableData="tableData" :colConfigs="columns" :dict="dict" @getList="getTableData"
:total="page.total" :current.sync="page.pageNum" :size.sync="page.pageSize">
<el-table-column slot="options" label="操作" fixed="right" align="center">
<template slot-scope="{row}">
<div class="table-options">
<el-button type="text" v-if="'12'.includes(row.permit)"
@click="$router.push({query:{id:row.id},hash:'#add'})">查看
</el-button>
<el-button class="deleteBtn" type="text" v-if="'11'.includes(row.permit)"
@click="$router.push({query:{id:row.id},hash:'#add'})">审核
</el-button>
<el-button type="text" v-if="'00|13'.includes(row.permit)"
@click="dialog=true,form=row">认证材料
</el-button>
</div>
</template>
</el-table-column>
</ai-table>
<ai-dialog v-model="dialog" title="认证材料" width="60%" @close="form=[]" @confirm="handleConfirm">
<el-form class="grid c-3" :model="form" ref="form" label-width="160px">
<el-form-item v-for="(op,i) in getNeedCerts(form.type)" :key="i" v-bind="op" :rules="{required:true,message:`请上传${op.label}`,trigger:'change'}">
<ai-uploader v-model="form[op.prop]" valueIsUrl :limit="1"/>
</el-form-item>
<el-form-item class="row" label="备注说明" prop="remark">
<el-input type="textarea" :rows="2" v-model="form.remark" placeholder="备注说明具体情况"/>
</el-form-item>
</el-form>
</ai-dialog>
</ai-page>
</template>
<style scoped lang="scss">
.authList {
height: 100%;
.deleteBtn {
color: $errorColor;
}
}
</style>