Compare commits

..

No commits in common. "2065389094aff5229c2f8bca0fc7f01fed6bd217" and "c7043dbdb1291e98a343b491e1ea756914eb7c53" have entirely different histories.

3 changed files with 65 additions and 93 deletions

View File

@ -22,6 +22,21 @@
/>
</a-form-item>
<a-form-item label="提案类型">
<a-select
v-model="searchForm.type"
placeholder="请选择类型"
allow-clear
style="width: 150px"
>
<a-option value="">全部</a-option>
<a-option value="管理规范">管理规范</a-option>
<a-option value="操作流程">操作流程</a-option>
<a-option value="安全制度">安全制度</a-option>
<a-option value="其他">其他</a-option>
</a-select>
</a-form-item>
<a-form-item label="状态">
<a-select
v-model="searchForm.status"
@ -30,8 +45,8 @@
style="width: 150px"
>
<a-option value="">全部</a-option>
<a-option value="PUBLISHED">已公</a-option>
<a-option value="APPROVED">公示</a-option>
<a-option value="PUBLISHED">已公</a-option>
<a-option value="APPROVED">通过</a-option>
</a-select>
</a-form-item>
@ -168,6 +183,7 @@ const columns = [
const searchForm = reactive({
title: '',
proposer: '',
type: '',
status: ''
})
@ -197,19 +213,22 @@ const regulationStore = useRegulationStore()
//
const getStatusColor = (status: RegulationStatus) => {
const colors = {
[RegulationStatus.DRAFT]: 'blue',
[RegulationStatus.PUBLISHED]: 'purple',
[RegulationStatus.APPROVED]: 'green',
}
return colors[status] || 'purple'
return colors[status] || 'blue'
}
//
const getStatusText = (status: RegulationStatus) => {
const texts = {
[RegulationStatus.DRAFT]: '草稿',
[RegulationStatus.PUBLISHED]: '已公告',
[RegulationStatus.APPROVED]: '已公示',
}
return texts[status] || '已公告'
return texts[status] || '草稿'
}
//
@ -249,56 +268,21 @@ const getLevelText = (level: RegulationLevel) => {
const getTableData = async () => {
loading.value = true
try {
//
const requestParams: any = {
const response = await regulationApi.getRegulationList({
page: pagination.current,
size: pagination.pageSize,
title: searchForm.title || undefined,
proposer: searchForm.proposer || undefined
}
proposer: searchForm.proposer || undefined,
type: searchForm.type || undefined,
status: searchForm.status || undefined
})
if (searchForm.status) {
//
requestParams.status = searchForm.status
const response = await regulationApi.getRegulationList(requestParams)
if (response.status === 200) {
tableData.value = response.data.records
pagination.total = response.data.total
pagination.current = response.data.current
} else {
Message.error('搜索失败')
}
if (response.status === 200) {
tableData.value = response.data.records
pagination.total = response.data.total
pagination.current = response.data.current
} else {
//
//
const [publishedResponse, approvedResponse] = await Promise.all([
regulationApi.getRegulationList({
...requestParams,
status: RegulationStatus.PUBLISHED
}),
regulationApi.getRegulationList({
...requestParams,
status: RegulationStatus.APPROVED
})
])
if (publishedResponse.status === 200 && approvedResponse.status === 200) {
//
const allRecords = [
...publishedResponse.data.records,
...approvedResponse.data.records
]
//
allRecords.sort((a, b) => new Date(b.createTime).getTime() - new Date(a.createTime).getTime())
tableData.value = allRecords
pagination.total = allRecords.length
pagination.current = 1
} else {
Message.error('搜索失败')
}
Message.error('搜索失败')
}
} catch (error) {
console.error('搜索制度公示失败:', error)
@ -319,6 +303,7 @@ const reset = () => {
Object.assign(searchForm, {
title: '',
proposer: '',
type: '',
status: ''
})
pagination.current = 1

View File

@ -31,6 +31,21 @@
/>
</a-form-item>
<a-form-item label="提案类型">
<a-select
v-model="searchForm.type"
placeholder="请选择类型"
allow-clear
style="width: 150px"
>
<a-option value="">全部</a-option>
<a-option value="管理规范">管理规范</a-option>
<a-option value="操作流程">操作流程</a-option>
<a-option value="安全制度">安全制度</a-option>
<a-option value="其他">其他</a-option>
</a-select>
</a-form-item>
<a-form-item label="状态">
<a-select
v-model="searchForm.status"
@ -337,6 +352,7 @@ const columns = [
const searchForm = reactive({
title: '',
proposer: '',
type: '',
status: ''
})
@ -468,6 +484,7 @@ const getTableData = async () => {
size: pagination.pageSize,
title: searchForm.title || undefined,
proposer: searchForm.proposer || undefined,
type: searchForm.type || undefined,
status: searchForm.status || undefined
})
@ -497,6 +514,7 @@ const reset = () => {
Object.assign(searchForm, {
title: '',
proposer: '',
type: '',
status: ''
})
pagination.current = 1

View File

@ -30,8 +30,8 @@
style="width: 150px"
>
<a-option value="">全部</a-option>
<a-option value="CONFIRMED">已确认</a-option>
<a-option value="PENDING">待确认</a-option>
<a-option value="confirmed">已确认</a-option>
<a-option value="pending">待确认</a-option>
</a-select>
</a-form-item>
@ -64,8 +64,8 @@
</span>
</template>
<template #confirmStatus="{ record }">
<a-tag :color="record.confirmStatus === 'CONFIRMED' ? 'green' : 'orange'">
{{ record.confirmStatus === 'CONFIRMED' ? '已确认' : '待确认' }}
<a-tag :color="record.confirmStatus === 'confirmed' ? 'green' : 'orange'">
{{ record.confirmStatus === 'confirmed' ? '已确认' : '待确认' }}
</a-tag>
</template>
@ -96,11 +96,6 @@
<span>公示人: {{ currentRegulation.createByName }}</span>
<span>公示时间: {{ currentRegulation.publishTime }}</span>
<span>生效日期: {{ currentRegulation.effectiveTime }}</span>
<span>确认状态:
<a-tag :color="currentRegulation.confirmStatus === 'CONFIRMED' ? 'green' : 'orange'">
{{ currentRegulation.confirmStatus === 'CONFIRMED' ? '已确认' : '待确认' }}
</a-tag>
</span>
</div>
</div>
@ -123,20 +118,9 @@
<a-divider />
<div class="detail-footer">
<a-button
v-if="currentRegulation.confirmStatus !== 'CONFIRMED'"
type="primary"
@click="handleConfirm(currentRegulation)"
>
确认知晓并遵守
</a-button>
<a-button
v-else
type="primary"
disabled
>
已确认知晓
</a-button>
<a-button type="primary" @click="handleConfirm(currentRegulation)">
确认知晓并遵守
</a-button>
<a-button @click="handleDownload(currentRegulation)">
下载制度文件
</a-button>
@ -232,20 +216,10 @@ const getTableData = async () => {
})
if (response.status === 200) {
// confirmStatus
const records = response.data.records.map((record: any) => ({
...record,
confirmStatus: record.confirmStatus || 'PENDING'
}))
tableData.value = records
tableData.value = response.data.records
pagination.pageSize = response.data.size
pagination.current = response.data.current
pagination.total = response.data.total
} else {
Message.error('搜索失败')
}
@ -337,16 +311,11 @@ const submitConfirm = async () => {
Message.success('确认成功,您已承诺遵守该制度')
confirmModalVisible.value = false
//
await getTableData()
//
if (detailModalVisible.value && currentRegulation.value) {
const updatedRecord = tableData.value.find(item => item.regulationId === currentRegulation.value.regulationId)
if (updatedRecord) {
currentRegulation.value = updatedRecord
}
}
//
const index = tableData.value.findIndex(item => item.regulationId === currentRegulation.value.regulationId)
if (index !== -1) {
tableData.value[index].confirmStatus = 'confirmed'
}
}
} catch (error) {
console.error('确认失败:', error)