特权查询

This commit is contained in:
zhonghua.li
2026-05-01 11:27:57 +08:00
parent 3ba39d0f64
commit 166ec843e4
2 changed files with 104 additions and 0 deletions

View File

@@ -30,3 +30,11 @@ export function deleteLbPurchaseApply(id) {
method: 'delete'
})
}
export function needPrivilegeRecommenders(params) {
return request({
url: '/lbPurchaseApply/needPrivilegeRecommenders',
method: 'get',
params
})
}

View File

@@ -33,6 +33,18 @@
<el-card class="action-container" shadow="never">
<el-button type="primary" icon="el-icon-plus" @click="handleAdd">新增</el-button>
<el-date-picker
v-model="privilegeDateRange"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
style="width: 280px; margin-left: 12px"
/>
<el-button type="warning" icon="el-icon-view" :loading="privilegeLoading" @click="handleViewPrivilege">
查看特权
</el-button>
</el-card>
<el-card class="table-container" shadow="never">
@@ -119,6 +131,22 @@
<el-button type="primary" :loading="submitLoading" @click="handleSubmit">确定</el-button>
</div>
</el-dialog>
<el-dialog title="特权推荐人列表" :visible.sync="privilegeDialogVisible" width="760px" @close="resetPrivilegeDialog">
<el-table v-loading="privilegeLoading" :data="privilegeList" style="width: 100%">
<el-table-column type="index" label="#" width="60" />
<el-table-column label="申请人" prop="applyUser" min-width="120" show-overflow-tooltip />
<el-table-column label="申请电话" prop="applyPhone" min-width="140" show-overflow-tooltip />
<el-table-column label="同事姓名" prop="colleagueName" min-width="120" show-overflow-tooltip />
<el-table-column label="同事电话" prop="colleaguePhone" min-width="140" show-overflow-tooltip />
<el-table-column label="组长姓名" prop="teamLeader" min-width="120" show-overflow-tooltip />
<el-table-column label="申请日期" prop="applyDate" min-width="120" />
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="privilegeDialogVisible = false">关闭</el-button>
</div>
</el-dialog>
</div>
</template>
@@ -127,20 +155,26 @@ import {
addLbPurchaseApply,
deleteLbPurchaseApply,
getLbPurchaseApplyList,
needPrivilegeRecommenders,
updateLbPurchaseApply
} from '@/api/lb-purchase-apply'
export default {
name: 'LbPurchaseApply',
data() {
const today = this.getCurrentDate()
return {
loading: false,
submitLoading: false,
list: [],
total: 0,
dialogVisible: false,
privilegeDialogVisible: false,
dialogTitle: '',
isEdit: false,
privilegeLoading: false,
privilegeDateRange: [today, today],
privilegeList: [],
queryParams: {
current: 1,
size: 10,
@@ -168,6 +202,13 @@ export default {
this.fetchList()
},
methods: {
getCurrentDate() {
const date = new Date()
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
return `${year}-${month}-${day}`
},
fetchList() {
this.loading = true
getLbPurchaseApplyList(this.buildListParams())
@@ -238,6 +279,57 @@ export default {
this.$refs.dataForm && this.$refs.dataForm.clearValidate()
})
},
handleViewPrivilege() {
if (!Array.isArray(this.privilegeDateRange) || this.privilegeDateRange.length !== 2) {
this.$message.warning('请选择开始日期和结束日期')
return
}
const [startDate, endDate] = this.privilegeDateRange
if (!startDate || !endDate) {
this.$message.warning('请选择开始日期和结束日期')
return
}
this.privilegeLoading = true
needPrivilegeRecommenders({ startDate, endDate })
.then((res) => {
const result = this.normalizePrivilegeResponse(res)
const isSuccess = result && (result.success === true || result.code === 200 || result.code === 20000)
if (!isSuccess) {
this.$message.error((result && result.message) || '查询失败')
return
}
const list = this.extractPrivilegeList(result)
this.privilegeList = list
this.privilegeDialogVisible = true
if (!list.length) {
this.$message.info('该日期范围内暂无需要添加特权的推荐人')
}
})
.finally(() => {
this.privilegeLoading = false
})
},
normalizePrivilegeResponse(res) {
if (!res || typeof res !== 'object') return {}
if (res.data && typeof res.data === 'object' && !Array.isArray(res.data)) {
if (res.data.success !== undefined || Array.isArray(res.data.data) || Array.isArray(res.data.list)) {
return res.data
}
}
return res
},
extractPrivilegeList(res) {
let rawList = []
if (Array.isArray(res.data)) rawList = res.data
else if (res.data && Array.isArray(res.data.list)) rawList = res.data.list
else if (res.data && Array.isArray(res.data.rows)) rawList = res.data.rows
else if (res.data && Array.isArray(res.data.records)) rawList = res.data.records
else if (res.data && res.data.data && Array.isArray(res.data.data)) rawList = res.data.data
else if (Array.isArray(res.list)) rawList = res.list
else if (Array.isArray(res.rows)) rawList = res.rows
else if (Array.isArray(res.records)) rawList = res.records
return rawList
},
handleEdit(row) {
this.dialogTitle = '编辑进货申请'
this.isEdit = true
@@ -309,6 +401,9 @@ export default {
applyDate: ''
}
},
resetPrivilegeDialog() {
this.privilegeList = []
},
formatDateTime(dateTime) {
if (!dateTime) return '-'
const date = new Date(String(dateTime).replace('T', ' '))
@@ -341,5 +436,6 @@ export default {
text-align: right;
}
}
}
</style>