Lufaneng 7 months ago
parent a424e632eb
commit 847b479108

@ -6,13 +6,14 @@ const props = defineProps({
required: true,
},
row: [Object],
templateList: [Array],
})
const emit = defineEmits(['closed', 'onSuccess'])
const dialogVisible = ref(false)
const isAdd = computed(() => props.type === 'add')
const isCancel = computed(() => props.type === 'cancel')
const isApprove = computed(() => props.type === 'approve')
const isReject = computed(() => props.type === 'reject')
const isApproval = computed(() => isApprove.value || isReject.value)
@ -22,10 +23,8 @@ onMounted(() => {
})
const formRef = ref(null)
const formField = ref({ enabled: true, params: [], remark: '' })
const formField = ref({ remark: '' })
const formRules = reactive({
name: [{ required: true, message: '不可为空', trigger: 'change' }],
code: [{ required: true, message: '不可为空', trigger: 'change' }],
remark: [{ required: true, message: '备注不可为空', trigger: 'change' }],
})
@ -37,13 +36,13 @@ function closed() {
const submitForm = async () => {
await formRef.value.validate()
if (isApproval.value) {
//
const params = {
application_id: props.row.id,
action: isApprove.value ? 'approve' : 'reject',
remark: formField.value.remark
remark: formField.value.remark,
}
loading.value = true
RPC.post('/template_access_review', params)
@ -56,14 +55,13 @@ const submitForm = async () => {
loading.value = false
})
} else {
//
const api = isAdd.value ? '/vendor/create' : '/vendor/update'
const params = {
...formField.value,
id: isAdd.value ? null : props.row.id,
template_id: props.row.template_id,
user_id: props.row.user_id,
remark: formField.value.remark,
}
loading.value = true
RPC.post(api, params)
RPC.post('/template_access_revoke', params)
.then((res) => {
ElMessage.success('操作成功')
emit('onSuccess')
@ -74,18 +72,12 @@ const submitForm = async () => {
})
}
}
if (!isAdd.value && !isApproval.value) {
formField.value = {
...props.row,
}
}
</script>
<template>
<el-dialog
align-center
:title="isApprove ? '同意申请' : isReject ? '拒绝申请' : isAdd ? '新增' : '修改'"
:title="isApprove ? '同意申请' : isReject ? '拒绝申请' : isCancel ? '撤回权限' : ''"
:width="isApproval ? '500px' : '80%'"
v-model="dialogVisible"
@closed="closed"
@ -109,23 +101,29 @@ if (!isAdd.value && !isApproval.value) {
<span>{{ row?.reason }}</span>
</el-form-item>
<el-form-item prop="remark" label="备注">
<el-input
type="textarea"
:rows="4"
placeholder="请输入备注"
v-model="formField.remark"
/>
<el-input type="textarea" :rows="4" placeholder="请输入备注" v-model="formField.remark" />
</el-form-item>
</template>
<template v-else="isApproval">
<el-form-item label="撤回用户">
<span>{{ row?.nickname || row?.user_id }}</span>
</el-form-item>
<el-form-item label="撤回模板">
<span>
{{
templateList?.find((item) => item.id === row.template_id)?.name || row.template_id
}}</span
>
</el-form-item>
<el-form-item prop="remark" label="备注">
<el-input type="textarea" :rows="4" placeholder="请输入备注" v-model="formField.remark" />
</el-form-item>
</template>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="closed"> </el-button>
<el-button
:type="isReject ? 'danger' : 'primary'"
:loading="loading"
@click="submitForm"
>
<el-button :type="isReject ? 'danger' : 'primary'" :loading="loading" @click="submitForm">
{{ isApprove ? '同意' : isReject ? '拒绝' : '确定' }}
</el-button>
</div>

@ -34,7 +34,11 @@
v-loading="loading"
header-row-class-name="table-header"
>
<el-table-column align="center" label="申请用户" prop="nickname" show-overflow-tooltip />
<el-table-column align="center" label="申请用户" prop="nickname" show-overflow-tooltip>
<template #default="{ row }">
{{ row.nickname || row.user_id }}
</template>
</el-table-column>
<el-table-column align="center" label="申请原因" prop="reason" show-overflow-tooltip />
<el-table-column align="center" label="申请模板" prop="template_id" show-overflow-tooltip>
<template #default="{ row }">
@ -46,30 +50,38 @@
<span v-if="row.status === 'pending'"></span>
<span v-if="row.status === 'rejected'"></span>
<span v-if="row.status === 'approved'"></span>
<span v-if="row.status === 'revoked'"></span>
</template>
</el-table-column>
<el-table-column align="center" label="备注" prop="remark" show-overflow-tooltip />
<el-table-column align="center" label="操作" width="120">
<template #default="{ row }">
<el-button
<el-button
v-if="row.status === 'pending'"
link
type="primary"
link
type="primary"
@click="handleApproval(row, 'approve')"
>
同意
</el-button>
<el-button
v-if="row.status === 'approved'"
link
type="danger"
@click="handleApproval(row, 'cancel')"
>
撤回权限
</el-button>
<el-button
<el-button
v-if="row.status === 'pending'"
link
type="danger"
link
type="danger"
@click="handleApproval(row, 'reject')"
>
拒绝
>
拒绝
</el-button>
<span v-if="row.status !== 'pending'">-</span>
<span v-if="row.status !== 'pending' && row.status !== 'approved'">--</span>
</template>
</el-table-column>
</el-table>
@ -89,6 +101,7 @@
:row="currentRow"
@closed="isShowDialog = false"
@on-success="getList"
:templateList="templateList"
/>
</div>
</template>

Loading…
Cancel
Save