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>
<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-form-item label="状态">
<a-select <a-select
v-model="searchForm.status" v-model="searchForm.status"
@ -30,8 +45,8 @@
style="width: 150px" style="width: 150px"
> >
<a-option value="">全部</a-option> <a-option value="">全部</a-option>
<a-option value="PUBLISHED">已公</a-option> <a-option value="PUBLISHED">已公</a-option>
<a-option value="APPROVED">公示</a-option> <a-option value="APPROVED">通过</a-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
@ -168,6 +183,7 @@ const columns = [
const searchForm = reactive({ const searchForm = reactive({
title: '', title: '',
proposer: '', proposer: '',
type: '',
status: '' status: ''
}) })
@ -197,19 +213,22 @@ const regulationStore = useRegulationStore()
// //
const getStatusColor = (status: RegulationStatus) => { const getStatusColor = (status: RegulationStatus) => {
const colors = { const colors = {
[RegulationStatus.DRAFT]: 'blue',
[RegulationStatus.PUBLISHED]: 'purple', [RegulationStatus.PUBLISHED]: 'purple',
[RegulationStatus.APPROVED]: 'green', [RegulationStatus.APPROVED]: 'green',
} }
return colors[status] || 'purple' return colors[status] || 'blue'
} }
// //
const getStatusText = (status: RegulationStatus) => { const getStatusText = (status: RegulationStatus) => {
const texts = { const texts = {
[RegulationStatus.DRAFT]: '草稿',
[RegulationStatus.PUBLISHED]: '已公告', [RegulationStatus.PUBLISHED]: '已公告',
[RegulationStatus.APPROVED]: '已公示', [RegulationStatus.APPROVED]: '已公示',
} }
return texts[status] || '已公告' return texts[status] || '草稿'
} }
// //
@ -249,56 +268,21 @@ const getLevelText = (level: RegulationLevel) => {
const getTableData = async () => { const getTableData = async () => {
loading.value = true loading.value = true
try { try {
// const response = await regulationApi.getRegulationList({
const requestParams: any = {
page: pagination.current, page: pagination.current,
size: pagination.pageSize, size: pagination.pageSize,
title: searchForm.title || undefined, title: searchForm.title || undefined,
proposer: searchForm.proposer || undefined proposer: searchForm.proposer || undefined,
} type: searchForm.type || undefined,
status: searchForm.status || undefined
})
if (searchForm.status) { if (response.status === 200) {
// tableData.value = response.data.records
requestParams.status = searchForm.status pagination.total = response.data.total
const response = await regulationApi.getRegulationList(requestParams) pagination.current = response.data.current
if (response.status === 200) {
tableData.value = response.data.records
pagination.total = response.data.total
pagination.current = response.data.current
} else {
Message.error('搜索失败')
}
} else { } else {
// Message.error('搜索失败')
//
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('搜索失败')
}
} }
} catch (error) { } catch (error) {
console.error('搜索制度公示失败:', error) console.error('搜索制度公示失败:', error)
@ -319,6 +303,7 @@ const reset = () => {
Object.assign(searchForm, { Object.assign(searchForm, {
title: '', title: '',
proposer: '', proposer: '',
type: '',
status: '' status: ''
}) })
pagination.current = 1 pagination.current = 1

View File

@ -31,6 +31,21 @@
/> />
</a-form-item> </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-form-item label="状态">
<a-select <a-select
v-model="searchForm.status" v-model="searchForm.status"
@ -337,6 +352,7 @@ const columns = [
const searchForm = reactive({ const searchForm = reactive({
title: '', title: '',
proposer: '', proposer: '',
type: '',
status: '' status: ''
}) })
@ -468,6 +484,7 @@ const getTableData = async () => {
size: pagination.pageSize, size: pagination.pageSize,
title: searchForm.title || undefined, title: searchForm.title || undefined,
proposer: searchForm.proposer || undefined, proposer: searchForm.proposer || undefined,
type: searchForm.type || undefined,
status: searchForm.status || undefined status: searchForm.status || undefined
}) })
@ -497,6 +514,7 @@ const reset = () => {
Object.assign(searchForm, { Object.assign(searchForm, {
title: '', title: '',
proposer: '', proposer: '',
type: '',
status: '' status: ''
}) })
pagination.current = 1 pagination.current = 1

View File

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