Commit e87263d7ce50aa542b183aaaed21d0961a9e6d87
1 parent
9c311762
工作办理 待办功能测试完成
Showing
10 changed files
with
524 additions
and
3 deletions
src/api/oa/visitUndoApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * 查询待办访客列表 | ||
| 5 | + * @param {Object} params 查询参数 | ||
| 6 | + * @returns {Promise} 返回Promise对象 | ||
| 7 | + */ | ||
| 8 | +export function queryUndoVisit(params) { | ||
| 9 | + return new Promise((resolve, reject) => { | ||
| 10 | + request({ | ||
| 11 | + url: '/visit.queryUndoVisit', | ||
| 12 | + method: 'get', | ||
| 13 | + params | ||
| 14 | + }).then(response => { | ||
| 15 | + const res = response.data | ||
| 16 | + resolve(res) | ||
| 17 | + }).catch(error => { | ||
| 18 | + reject(error) | ||
| 19 | + }) | ||
| 20 | + }) | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
src/api/resource/itemReleaseUndoApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | ||
| 2 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 3 | + | ||
| 4 | +// 查询待办放行单列表 | ||
| 5 | +export function queryUndoItemRelease(params) { | ||
| 6 | + return new Promise((resolve, reject) => { | ||
| 7 | + request({ | ||
| 8 | + url: '/itemRelease.queryUndoItemRelease', | ||
| 9 | + method: 'get', | ||
| 10 | + params: { | ||
| 11 | + ...params, | ||
| 12 | + communityId: getCommunityId() | ||
| 13 | + } | ||
| 14 | + }).then(response => { | ||
| 15 | + const res = response.data | ||
| 16 | + resolve(res) | ||
| 17 | + }).catch(error => { | ||
| 18 | + reject(error) | ||
| 19 | + }) | ||
| 20 | + }) | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +// 查询放行物品列表 | ||
| 24 | +export function listItemReleaseRes(params) { | ||
| 25 | + return new Promise((resolve, reject) => { | ||
| 26 | + request({ | ||
| 27 | + url: '/itemRelease.listItemReleaseRes', | ||
| 28 | + method: 'get', | ||
| 29 | + params: { | ||
| 30 | + ...params, | ||
| 31 | + communityId: getCommunityId() | ||
| 32 | + } | ||
| 33 | + }).then(response => { | ||
| 34 | + const res = response.data | ||
| 35 | + resolve(res) | ||
| 36 | + }).catch(error => { | ||
| 37 | + reject(error) | ||
| 38 | + }) | ||
| 39 | + }) | ||
| 40 | +} | ||
| 0 | \ No newline at end of file | 41 | \ No newline at end of file |
src/i18n/oaI18n.js
| @@ -52,6 +52,7 @@ import { messages as newOaWorkflowFormEditMessages } from '../views/oa/newOaWork | @@ -52,6 +52,7 @@ import { messages as newOaWorkflowFormEditMessages } from '../views/oa/newOaWork | ||
| 52 | import { messages as simplifyNotepadManageMessages } from '../views/oa/simplifyNotepadManageLang' | 52 | import { messages as simplifyNotepadManageMessages } from '../views/oa/simplifyNotepadManageLang' |
| 53 | import { messages as uodoComplaintsMessages } from '../views/oa/uodoComplaintsLang' | 53 | import { messages as uodoComplaintsMessages } from '../views/oa/uodoComplaintsLang' |
| 54 | import { messages as complaintDetailMessages } from '../views/oa/complaintDetailLang' | 54 | import { messages as complaintDetailMessages } from '../views/oa/complaintDetailLang' |
| 55 | +import { messages as visitUndoMessages } from '../views/oa/visitUndoLang' | ||
| 55 | 56 | ||
| 56 | 57 | ||
| 57 | export const messages ={ | 58 | export const messages ={ |
| @@ -109,6 +110,7 @@ export const messages ={ | @@ -109,6 +110,7 @@ export const messages ={ | ||
| 109 | ...simplifyNotepadManageMessages.en, | 110 | ...simplifyNotepadManageMessages.en, |
| 110 | ...uodoComplaintsMessages.en, | 111 | ...uodoComplaintsMessages.en, |
| 111 | ...complaintDetailMessages.en, | 112 | ...complaintDetailMessages.en, |
| 113 | + ...visitUndoMessages.en, | ||
| 112 | }, | 114 | }, |
| 113 | zh:{ | 115 | zh:{ |
| 114 | ...activitiesTypeManageMessages.zh, | 116 | ...activitiesTypeManageMessages.zh, |
| @@ -164,5 +166,6 @@ export const messages ={ | @@ -164,5 +166,6 @@ export const messages ={ | ||
| 164 | ...simplifyNotepadManageMessages.zh, | 166 | ...simplifyNotepadManageMessages.zh, |
| 165 | ...uodoComplaintsMessages.zh, | 167 | ...uodoComplaintsMessages.zh, |
| 166 | ...complaintDetailMessages.zh, | 168 | ...complaintDetailMessages.zh, |
| 169 | + ...visitUndoMessages.zh, | ||
| 167 | } | 170 | } |
| 168 | } | 171 | } |
| 169 | \ No newline at end of file | 172 | \ No newline at end of file |
src/i18n/resourceI18n.js
| @@ -39,6 +39,7 @@ import { messages as resourceOutManageMessages } from '../views/resource/resourc | @@ -39,6 +39,7 @@ import { messages as resourceOutManageMessages } from '../views/resource/resourc | ||
| 39 | import { messages as allocationStorehouseAuditOrdersMessages } from '../views/resource/allocationStorehouseAuditOrdersLang' | 39 | import { messages as allocationStorehouseAuditOrdersMessages } from '../views/resource/allocationStorehouseAuditOrdersLang' |
| 40 | import { messages as editAllocationStorehouseApplyMessages } from '../views/resource/editAllocationStorehouseApplyLang' | 40 | import { messages as editAllocationStorehouseApplyMessages } from '../views/resource/editAllocationStorehouseApplyLang' |
| 41 | import { messages as allocationStorehouseEnterMessages } from '../views/resource/allocationStorehouseEnterLang' | 41 | import { messages as allocationStorehouseEnterMessages } from '../views/resource/allocationStorehouseEnterLang' |
| 42 | +import { messages as itemReleaseUndoMessages } from '../views/resource/itemReleaseUndoLang' | ||
| 42 | 43 | ||
| 43 | export const messages = { | 44 | export const messages = { |
| 44 | en: { | 45 | en: { |
| @@ -81,6 +82,7 @@ export const messages = { | @@ -81,6 +82,7 @@ export const messages = { | ||
| 81 | ...allocationStorehouseAuditOrdersMessages.en, | 82 | ...allocationStorehouseAuditOrdersMessages.en, |
| 82 | ...editAllocationStorehouseApplyMessages.en, | 83 | ...editAllocationStorehouseApplyMessages.en, |
| 83 | ...allocationStorehouseEnterMessages.en, | 84 | ...allocationStorehouseEnterMessages.en, |
| 85 | + ...itemReleaseUndoMessages.en, | ||
| 84 | }, | 86 | }, |
| 85 | zh: { | 87 | zh: { |
| 86 | ...resourceAuditFlowMessages.zh, | 88 | ...resourceAuditFlowMessages.zh, |
| @@ -122,5 +124,6 @@ export const messages = { | @@ -122,5 +124,6 @@ export const messages = { | ||
| 122 | ...allocationStorehouseAuditOrdersMessages.zh, | 124 | ...allocationStorehouseAuditOrdersMessages.zh, |
| 123 | ...editAllocationStorehouseApplyMessages.zh, | 125 | ...editAllocationStorehouseApplyMessages.zh, |
| 124 | ...allocationStorehouseEnterMessages.zh, | 126 | ...allocationStorehouseEnterMessages.zh, |
| 127 | + ...itemReleaseUndoMessages.zh, | ||
| 125 | } | 128 | } |
| 126 | } | 129 | } |
| 127 | \ No newline at end of file | 130 | \ No newline at end of file |
src/router/oaRouter.js
| @@ -249,4 +249,9 @@ export default [ | @@ -249,4 +249,9 @@ export default [ | ||
| 249 | name: '/pages/complaint/complaintDetail', | 249 | name: '/pages/complaint/complaintDetail', |
| 250 | component: () => import('@/views/oa/complaintDetailList.vue') | 250 | component: () => import('@/views/oa/complaintDetailList.vue') |
| 251 | }, | 251 | }, |
| 252 | + { | ||
| 253 | + path: '/pages/property/visitUndo', | ||
| 254 | + name: '/pages/property/visitUndo', | ||
| 255 | + component: () => import('@/views/oa/visitUndoList.vue') | ||
| 256 | + }, | ||
| 252 | ] | 257 | ] |
| 253 | \ No newline at end of file | 258 | \ No newline at end of file |
src/router/resourceRouter.js
| @@ -181,9 +181,14 @@ export default [ | @@ -181,9 +181,14 @@ export default [ | ||
| 181 | component: () => import('@/views/resource/editAllocationStorehouseApplyList.vue') | 181 | component: () => import('@/views/resource/editAllocationStorehouseApplyList.vue') |
| 182 | }, | 182 | }, |
| 183 | { | 183 | { |
| 184 | - path:'/pages/resource/allocationStorehouseEnter', | ||
| 185 | - name:'/pages/resource/allocationStorehouseEnter', | 184 | + path: '/pages/resource/allocationStorehouseEnter', |
| 185 | + name: '/pages/resource/allocationStorehouseEnter', | ||
| 186 | component: () => import('@/views/resource/allocationStorehouseEnterList.vue') | 186 | component: () => import('@/views/resource/allocationStorehouseEnterList.vue') |
| 187 | - }, | 187 | + }, |
| 188 | + { | ||
| 189 | + path: '/pages/property/itemReleaseUndo', | ||
| 190 | + name: '/pages/property/itemReleaseUndo', | ||
| 191 | + component: () => import('@/views/resource/itemReleaseUndoList.vue') | ||
| 192 | + }, | ||
| 188 | 193 | ||
| 189 | ] | 194 | ] |
| 190 | \ No newline at end of file | 195 | \ No newline at end of file |
src/views/oa/visitUndoLang.js
0 → 100644
| 1 | +export const messages = { | ||
| 2 | + en: { | ||
| 3 | + visitUndo: { | ||
| 4 | + title: 'Visitor To-do List', | ||
| 5 | + back: 'Back', | ||
| 6 | + refresh: 'Refresh', | ||
| 7 | + visitorId: 'Visitor ID', | ||
| 8 | + visitor: 'Visitor', | ||
| 9 | + male: 'Male', | ||
| 10 | + female: 'Female', | ||
| 11 | + ownerName: 'Owner Name', | ||
| 12 | + visitReason: 'Visit Reason/Type', | ||
| 13 | + carNumber: 'Car Number', | ||
| 14 | + entourageCount: 'Entourage Count', | ||
| 15 | + createTime: 'Create Time', | ||
| 16 | + visitTime: 'Visit/Departure Time', | ||
| 17 | + status: 'Status', | ||
| 18 | + operation: 'Operation', | ||
| 19 | + process: 'Process', | ||
| 20 | + detail: 'Detail' | ||
| 21 | + } | ||
| 22 | + }, | ||
| 23 | + zh: { | ||
| 24 | + visitUndo: { | ||
| 25 | + title: '访客待办单', | ||
| 26 | + back: '返回', | ||
| 27 | + refresh: '刷新', | ||
| 28 | + visitorId: '访客ID', | ||
| 29 | + visitor: '访客', | ||
| 30 | + male: '男', | ||
| 31 | + female: '女', | ||
| 32 | + ownerName: '业主姓名', | ||
| 33 | + visitReason: '来访事由/类型', | ||
| 34 | + carNumber: '车牌号', | ||
| 35 | + entourageCount: '随行人数', | ||
| 36 | + createTime: '创建时间', | ||
| 37 | + visitTime: '来访/离开时间', | ||
| 38 | + status: '状态', | ||
| 39 | + operation: '操作', | ||
| 40 | + process: '办理', | ||
| 41 | + detail: '详情' | ||
| 42 | + } | ||
| 43 | + } | ||
| 44 | +} | ||
| 0 | \ No newline at end of file | 45 | \ No newline at end of file |
src/views/oa/visitUndoList.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="animated fadeInRight visit-undo-container"> | ||
| 3 | + <el-row> | ||
| 4 | + <el-col :span="24"> | ||
| 5 | + <el-card> | ||
| 6 | + <div slot="header" class="flex justify-between"> | ||
| 7 | + <span>{{ $t('visitUndo.title') }}</span> | ||
| 8 | + <div class="card-header-actions"> | ||
| 9 | + <el-button size="small" @click="goBack">{{ $t('visitUndo.back') }}</el-button> | ||
| 10 | + <el-button type="primary" size="small" @click="queryUndoOrders">{{ $t('visitUndo.refresh') }}</el-button> | ||
| 11 | + </div> | ||
| 12 | + </div> | ||
| 13 | + | ||
| 14 | + <el-table | ||
| 15 | + v-loading="loading" | ||
| 16 | + :data="visitUndoInfo.undos" | ||
| 17 | + border | ||
| 18 | + style="width: 100%" | ||
| 19 | + > | ||
| 20 | + <el-table-column prop="vId" :label="$t('visitUndo.visitorId')" align="center" /> | ||
| 21 | + <el-table-column :label="$t('visitUndo.visitor')" align="center"> | ||
| 22 | + <template slot-scope="scope"> | ||
| 23 | + {{ scope.row.vName }}({{ scope.row.phoneNumber }})/{{ scope.row.visitGender === '0' ? $t('visitUndo.male') : $t('visitUndo.female') }} | ||
| 24 | + </template> | ||
| 25 | + </el-table-column> | ||
| 26 | + <el-table-column prop="ownerName" :label="$t('visitUndo.ownerName')" align="center" /> | ||
| 27 | + <el-table-column :label="$t('visitUndo.visitReason')" align="center"> | ||
| 28 | + <template slot-scope="scope"> | ||
| 29 | + {{ scope.row.visitCase }}({{ scope.row.reasonTypeName }}) | ||
| 30 | + </template> | ||
| 31 | + </el-table-column> | ||
| 32 | + <el-table-column prop="carNum" :label="$t('visitUndo.carNumber')" align="center" /> | ||
| 33 | + <el-table-column prop="entourage" :label="$t('visitUndo.entourageCount')" align="center" /> | ||
| 34 | + <el-table-column prop="createTime" :label="$t('visitUndo.createTime')" align="center" /> | ||
| 35 | + <el-table-column :label="$t('visitUndo.visitTime')" align="center"> | ||
| 36 | + <template slot-scope="scope"> | ||
| 37 | + {{ scope.row.visitTime }}<br>{{ scope.row.departureTime }} | ||
| 38 | + </template> | ||
| 39 | + </el-table-column> | ||
| 40 | + <el-table-column prop="stateName" :label="$t('visitUndo.status')" align="center" /> | ||
| 41 | + <el-table-column :label="$t('visitUndo.operation')" align="center" width="200"> | ||
| 42 | + <template slot-scope="scope"> | ||
| 43 | + <el-button-group> | ||
| 44 | + <el-button size="mini" @click="openAuditUndoDetail(scope.row)">{{ $t('visitUndo.process') }}</el-button> | ||
| 45 | + <el-button size="mini" @click="openDetail(scope.row)">{{ $t('visitUndo.detail') }}</el-button> | ||
| 46 | + </el-button-group> | ||
| 47 | + </template> | ||
| 48 | + </el-table-column> | ||
| 49 | + </el-table> | ||
| 50 | + | ||
| 51 | + <el-pagination | ||
| 52 | + :current-page.sync="page.current" | ||
| 53 | + :page-sizes="[10, 20, 30, 50]" | ||
| 54 | + :page-size="page.size" | ||
| 55 | + :total="page.total" | ||
| 56 | + layout="total, sizes, prev, pager, next, jumper" | ||
| 57 | + @size-change="handleSizeChange" | ||
| 58 | + @current-change="handleCurrentChange" | ||
| 59 | + /> | ||
| 60 | + </el-card> | ||
| 61 | + </el-col> | ||
| 62 | + </el-row> | ||
| 63 | + </div> | ||
| 64 | +</template> | ||
| 65 | + | ||
| 66 | +<script> | ||
| 67 | +import { queryUndoVisit } from '@/api/oa/visitUndoApi' | ||
| 68 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 69 | + | ||
| 70 | +export default { | ||
| 71 | + name: 'VisitUndoList', | ||
| 72 | + data() { | ||
| 73 | + return { | ||
| 74 | + loading: false, | ||
| 75 | + communityId: '', | ||
| 76 | + visitUndoInfo: { | ||
| 77 | + undos: [], | ||
| 78 | + conditions: { | ||
| 79 | + vId: '', | ||
| 80 | + userName: '', | ||
| 81 | + auditLink: '' | ||
| 82 | + } | ||
| 83 | + }, | ||
| 84 | + page: { | ||
| 85 | + current: 1, | ||
| 86 | + size: 10, | ||
| 87 | + total: 0 | ||
| 88 | + } | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | + created() { | ||
| 92 | + this.communityId = getCommunityId() | ||
| 93 | + this.listUndoOrders() | ||
| 94 | + }, | ||
| 95 | + methods: { | ||
| 96 | + async listUndoOrders() { | ||
| 97 | + try { | ||
| 98 | + this.loading = true | ||
| 99 | + const params = { | ||
| 100 | + page: this.page.current, | ||
| 101 | + row: this.page.size, | ||
| 102 | + ...this.visitUndoInfo.conditions, | ||
| 103 | + communityId: this.communityId, | ||
| 104 | + audit: '1' | ||
| 105 | + } | ||
| 106 | + const { data, total } = await queryUndoVisit(params) | ||
| 107 | + this.visitUndoInfo.undos = data | ||
| 108 | + this.page.total = total | ||
| 109 | + } catch (error) { | ||
| 110 | + console.error('Failed to fetch undo orders:', error) | ||
| 111 | + } finally { | ||
| 112 | + this.loading = false | ||
| 113 | + } | ||
| 114 | + }, | ||
| 115 | + queryUndoOrders() { | ||
| 116 | + this.page.current = 1 | ||
| 117 | + this.listUndoOrders() | ||
| 118 | + }, | ||
| 119 | + openDetail(item) { | ||
| 120 | + this.$router.push({ | ||
| 121 | + path: '/views/property/visitDetail', | ||
| 122 | + query: { | ||
| 123 | + vId: item.vId, | ||
| 124 | + flowId: item.flowId | ||
| 125 | + } | ||
| 126 | + }) | ||
| 127 | + }, | ||
| 128 | + openAuditUndoDetail(undo) { | ||
| 129 | + this.$router.push({ | ||
| 130 | + path: '/views/property/visitDetail', | ||
| 131 | + query: { | ||
| 132 | + vId: undo.vId, | ||
| 133 | + flowId: undo.flowId, | ||
| 134 | + action: 'Audit', | ||
| 135 | + taskId: undo.taskId | ||
| 136 | + } | ||
| 137 | + }) | ||
| 138 | + }, | ||
| 139 | + goBack() { | ||
| 140 | + this.$router.go(-1) | ||
| 141 | + }, | ||
| 142 | + handleSizeChange(val) { | ||
| 143 | + this.page.size = val | ||
| 144 | + this.listUndoOrders() | ||
| 145 | + }, | ||
| 146 | + handleCurrentChange(val) { | ||
| 147 | + this.page.current = val | ||
| 148 | + this.listUndoOrders() | ||
| 149 | + } | ||
| 150 | + } | ||
| 151 | +} | ||
| 152 | +</script> | ||
| 153 | + | ||
| 154 | +<style lang="scss" scoped> | ||
| 155 | +.visit-undo-container { | ||
| 156 | + padding: 20px; | ||
| 157 | + | ||
| 158 | + .el-card { | ||
| 159 | + margin-bottom: 20px; | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + .card-header-actions { | ||
| 163 | + float: right; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + .el-pagination { | ||
| 167 | + margin-top: 20px; | ||
| 168 | + text-align: right; | ||
| 169 | + } | ||
| 170 | +} | ||
| 171 | +</style> | ||
| 0 | \ No newline at end of file | 172 | \ No newline at end of file |
src/views/resource/itemReleaseUndoLang.js
0 → 100644
| 1 | +export const messages = { | ||
| 2 | + en: { | ||
| 3 | + itemReleaseUndo: { | ||
| 4 | + title: 'Release Pending Orders', | ||
| 5 | + back: 'Back', | ||
| 6 | + refresh: 'Refresh', | ||
| 7 | + orderNo: 'Order No', | ||
| 8 | + releaseType: 'Release Type', | ||
| 9 | + applyUnit: 'Applicant Unit', | ||
| 10 | + applicant: 'Applicant', | ||
| 11 | + idCard: 'ID Card', | ||
| 12 | + phone: 'Phone', | ||
| 13 | + passTime: 'Pass Time', | ||
| 14 | + items: 'Items', | ||
| 15 | + viewItems: 'View Items', | ||
| 16 | + status: 'Status', | ||
| 17 | + plateNo: 'Plate No', | ||
| 18 | + none: 'None', | ||
| 19 | + operations: 'Operations', | ||
| 20 | + process: 'Process', | ||
| 21 | + detail: 'Detail' | ||
| 22 | + }, | ||
| 23 | + | ||
| 24 | + }, | ||
| 25 | + zh: { | ||
| 26 | + itemReleaseUndo: { | ||
| 27 | + title: '放行待办单', | ||
| 28 | + back: '返回', | ||
| 29 | + refresh: '刷新', | ||
| 30 | + orderNo: '单号', | ||
| 31 | + releaseType: '放行类型', | ||
| 32 | + applyUnit: '申请单位', | ||
| 33 | + applicant: '申请人', | ||
| 34 | + idCard: '身份证', | ||
| 35 | + phone: '手机号', | ||
| 36 | + passTime: '通行时间', | ||
| 37 | + items: '物品', | ||
| 38 | + viewItems: '查看物品', | ||
| 39 | + status: '状态', | ||
| 40 | + plateNo: '车牌号', | ||
| 41 | + none: '无', | ||
| 42 | + operations: '操作', | ||
| 43 | + process: '办理', | ||
| 44 | + detail: '详情' | ||
| 45 | + }, | ||
| 46 | + | ||
| 47 | + } | ||
| 48 | +} | ||
| 0 | \ No newline at end of file | 49 | \ No newline at end of file |
src/views/resource/itemReleaseUndoList.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="item-release-undo-container animated fadeInRight"> | ||
| 3 | + <el-card class="box-card"> | ||
| 4 | + <div slot="header" class="flex justify-between"> | ||
| 5 | + <span>{{ $t('itemReleaseUndo.title') }}</span> | ||
| 6 | + <div class="header-actions"> | ||
| 7 | + <el-button size="small" @click="goBack()"> | ||
| 8 | + {{ $t('itemReleaseUndo.back') }} | ||
| 9 | + </el-button> | ||
| 10 | + <el-button type="primary" size="small" @click="_queryUndoOrdersMethod()"> | ||
| 11 | + {{ $t('itemReleaseUndo.refresh') }} | ||
| 12 | + </el-button> | ||
| 13 | + </div> | ||
| 14 | + </div> | ||
| 15 | + | ||
| 16 | + <el-table :data="itemReleaseUndoInfo.undos" border style="width: 100%" v-loading="loading"> | ||
| 17 | + <el-table-column prop="irId" :label="$t('itemReleaseUndo.orderNo')" align="center" /> | ||
| 18 | + <el-table-column prop="typeName" :label="$t('itemReleaseUndo.releaseType')" align="center" /> | ||
| 19 | + <el-table-column prop="applyCompany" :label="$t('itemReleaseUndo.applyUnit')" align="center" /> | ||
| 20 | + <el-table-column prop="applyPerson" :label="$t('itemReleaseUndo.applicant')" align="center" /> | ||
| 21 | + <el-table-column prop="idCard" :label="$t('itemReleaseUndo.idCard')" align="center" /> | ||
| 22 | + <el-table-column prop="applyTel" :label="$t('itemReleaseUndo.phone')" align="center" /> | ||
| 23 | + <el-table-column prop="passTime" :label="$t('itemReleaseUndo.passTime')" align="center" /> | ||
| 24 | + <el-table-column :label="$t('itemReleaseUndo.items')" align="center"> | ||
| 25 | + <template slot-scope="scope"> | ||
| 26 | + {{ scope.row.amount }}(<el-link type="primary" @click="viewResName(scope.row)">{{ | ||
| 27 | + $t('itemReleaseUndo.viewItems') }}</el-link>) | ||
| 28 | + </template> | ||
| 29 | + </el-table-column> | ||
| 30 | + <el-table-column prop="stateName" :label="$t('itemReleaseUndo.status')" align="center" /> | ||
| 31 | + <el-table-column prop="carNum" :label="$t('itemReleaseUndo.plateNo')" align="center"> | ||
| 32 | + <template slot-scope="scope"> | ||
| 33 | + {{ scope.row.carNum || $t('itemReleaseUndo.none') }} | ||
| 34 | + </template> | ||
| 35 | + </el-table-column> | ||
| 36 | + <el-table-column :label="$t('itemReleaseUndo.operations')" align="center" width="180"> | ||
| 37 | + <template slot-scope="scope"> | ||
| 38 | + <el-button-group> | ||
| 39 | + <el-button size="mini" @click="_openAuditUndoDetail(scope.row)"> | ||
| 40 | + {{ $t('itemReleaseUndo.process') }} | ||
| 41 | + </el-button> | ||
| 42 | + <el-button size="mini" @click="_openDetail(scope.row)"> | ||
| 43 | + {{ $t('itemReleaseUndo.detail') }} | ||
| 44 | + </el-button> | ||
| 45 | + </el-button-group> | ||
| 46 | + </template> | ||
| 47 | + </el-table-column> | ||
| 48 | + </el-table> | ||
| 49 | + | ||
| 50 | + <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" | ||
| 51 | + :current-page="pagination.current" :page-sizes="[10, 20, 30, 50]" :page-size="pagination.size" | ||
| 52 | + layout="total, sizes, prev, pager, next, jumper" :total="pagination.total" class="pagination" /> | ||
| 53 | + | ||
| 54 | + <view-item-release-res ref="viewItemReleaseRes" /> | ||
| 55 | + </el-card> | ||
| 56 | + </div> | ||
| 57 | +</template> | ||
| 58 | + | ||
| 59 | +<script> | ||
| 60 | +import { queryUndoItemRelease } from '@/api/resource/itemReleaseUndoApi' | ||
| 61 | +import ViewItemReleaseRes from '@/components/work/viewItemReleaseRes' | ||
| 62 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 63 | +import { getUserId } from '@/api/user/userApi' | ||
| 64 | + | ||
| 65 | +export default { | ||
| 66 | + name: 'ItemReleaseUndoList', | ||
| 67 | + components: { | ||
| 68 | + ViewItemReleaseRes | ||
| 69 | + }, | ||
| 70 | + data() { | ||
| 71 | + return { | ||
| 72 | + loading: false, | ||
| 73 | + itemReleaseUndoInfo: { | ||
| 74 | + undos: [], | ||
| 75 | + conditions: { | ||
| 76 | + irId: '', | ||
| 77 | + userName: '', | ||
| 78 | + auditLink: '', | ||
| 79 | + page: 1, | ||
| 80 | + row: 10 | ||
| 81 | + }, | ||
| 82 | + currentUserId: '' | ||
| 83 | + }, | ||
| 84 | + pagination: { | ||
| 85 | + current: 1, | ||
| 86 | + size: 10, | ||
| 87 | + total: 0 | ||
| 88 | + } | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | + created() { | ||
| 92 | + this.itemReleaseUndoInfo.currentUserId = getUserId() | ||
| 93 | + this._listUndoOrders() | ||
| 94 | + }, | ||
| 95 | + methods: { | ||
| 96 | + async _listUndoOrders() { | ||
| 97 | + try { | ||
| 98 | + this.loading = true | ||
| 99 | + const params = { | ||
| 100 | + ...this.itemReleaseUndoInfo.conditions, | ||
| 101 | + communityId: getCommunityId(), | ||
| 102 | + audit: '1' | ||
| 103 | + } | ||
| 104 | + const { data, total } = await queryUndoItemRelease(params) | ||
| 105 | + this.itemReleaseUndoInfo.undos = data | ||
| 106 | + this.pagination.total = total | ||
| 107 | + } catch (error) { | ||
| 108 | + console.error('Error fetching undo orders:', error) | ||
| 109 | + } finally { | ||
| 110 | + this.loading = false | ||
| 111 | + } | ||
| 112 | + }, | ||
| 113 | + _queryUndoOrdersMethod() { | ||
| 114 | + this.pagination.current = 1 | ||
| 115 | + this._listUndoOrders() | ||
| 116 | + }, | ||
| 117 | + _openDetail(item) { | ||
| 118 | + this.$router.push({ | ||
| 119 | + path: '/views/property/itemReleaseDetail', | ||
| 120 | + query: { | ||
| 121 | + irId: item.irId, | ||
| 122 | + flowId: item.flowId | ||
| 123 | + } | ||
| 124 | + }) | ||
| 125 | + }, | ||
| 126 | + _openAuditUndoDetail(undo) { | ||
| 127 | + this.$router.push({ | ||
| 128 | + path: '/views/property/itemReleaseDetail', | ||
| 129 | + query: { | ||
| 130 | + irId: undo.irId, | ||
| 131 | + flowId: undo.flowId, | ||
| 132 | + action: 'Audit', | ||
| 133 | + taskId: undo.taskId | ||
| 134 | + } | ||
| 135 | + }) | ||
| 136 | + }, | ||
| 137 | + viewResName(item) { | ||
| 138 | + this.$refs.viewItemReleaseRes.open(item) | ||
| 139 | + }, | ||
| 140 | + handleSizeChange(val) { | ||
| 141 | + this.pagination.size = val | ||
| 142 | + this.itemReleaseUndoInfo.conditions.row = val | ||
| 143 | + this._listUndoOrders() | ||
| 144 | + }, | ||
| 145 | + handleCurrentChange(val) { | ||
| 146 | + this.pagination.current = val | ||
| 147 | + this.itemReleaseUndoInfo.conditions.page = val | ||
| 148 | + this._listUndoOrders() | ||
| 149 | + }, | ||
| 150 | + goBack() { | ||
| 151 | + this.$router.go(-1) | ||
| 152 | + } | ||
| 153 | + } | ||
| 154 | +} | ||
| 155 | +</script> | ||
| 156 | + | ||
| 157 | +<style lang="scss" scoped> | ||
| 158 | +.item-release-undo-container { | ||
| 159 | + padding: 20px; | ||
| 160 | + | ||
| 161 | + .box-card { | ||
| 162 | + margin-bottom: 20px; | ||
| 163 | + | ||
| 164 | + .clearfix { | ||
| 165 | + display: flex; | ||
| 166 | + justify-content: space-between; | ||
| 167 | + align-items: center; | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + .header-actions { | ||
| 171 | + display: flex; | ||
| 172 | + gap: 10px; | ||
| 173 | + } | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + .pagination { | ||
| 177 | + margin-top: 20px; | ||
| 178 | + text-align: right; | ||
| 179 | + } | ||
| 180 | +} | ||
| 181 | +</style> | ||
| 0 | \ No newline at end of file | 182 | \ No newline at end of file |