迁移设备维修日志模块
This commit is contained in:
11
docs/功能测试-设备维修日志.md
Normal file
11
docs/功能测试-设备维修日志.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# 设备维修日志功能测试任务列表
|
||||||
|
|
||||||
|
- [ ] 进入 `设备模型 / 设备维修 / 设备维修日志`,页面正常加载,无控制台报错。
|
||||||
|
- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
|
||||||
|
- [ ] 输入关键字后点击查询,列表按条件刷新。
|
||||||
|
- [ ] 点击重置,查询条件清空并重新加载列表。
|
||||||
|
- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
|
||||||
|
- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
|
||||||
|
- [ ] 点击删除,确认后记录删除并刷新列表。
|
||||||
|
- [ ] 点击导出,系统可创建导出任务或返回成功提示。
|
||||||
|
- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
|
||||||
29
src/api/equipment-management/repair-logs.js
Normal file
29
src/api/equipment-management/repair-logs.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import { request } from '@/api/_service'
|
||||||
|
|
||||||
|
const BASE = 'device_management/device_repair/device_repair_log/'
|
||||||
|
|
||||||
|
function params (method, data = {}) { return { method, platform: 'background', ...data } }
|
||||||
|
|
||||||
|
export function getAll (data) {
|
||||||
|
return request({ url: BASE + 'all', method: 'get', params: params('device_management_device_repair_device_repair_log_all', data) })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getList (data) {
|
||||||
|
return request({ url: BASE + 'list', method: 'get', params: params('device_management_device_repair_device_repair_log_list', data) })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createItem (data) {
|
||||||
|
return request({ url: BASE + 'create', method: 'post', data: params('device_management_device_repair_device_repair_log_create', data) })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function editItem (data) {
|
||||||
|
return request({ url: BASE + 'edit', method: 'put', data: params('device_management_device_repair_device_repair_log_edit', data) })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteItem (data) {
|
||||||
|
return request({ url: BASE + 'delete', method: 'delete', data: params('device_management_device_repair_device_repair_log_delete', data) })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createExportTask (data) {
|
||||||
|
return request({ url: BASE + 'create_data_export_task', method: 'post', data: params('device_management_device_repair_device_repair_log_create_data_export_task', data) })
|
||||||
|
}
|
||||||
@@ -67,6 +67,12 @@ export default {
|
|||||||
name: `${pre}device_repair-device_repair_management`,
|
name: `${pre}device_repair-device_repair_management`,
|
||||||
meta: { ...meta, cache: true, title: '设备维修管理' },
|
meta: { ...meta, cache: true, title: '设备维修管理' },
|
||||||
component: _import('equipment-management/repair-management/repair-management')
|
component: _import('equipment-management/repair-management/repair-management')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'device_repair/device_repair_log',
|
||||||
|
name: `${pre}device_repair-device_repair_log`,
|
||||||
|
meta: { ...meta, cache: true, title: '设备维修日志' },
|
||||||
|
component: _import('equipment-management/repair-management/repair-logs')
|
||||||
}
|
}
|
||||||
])('device_management-')
|
])('device_management-')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
<template>
|
||||||
|
<d2-container>
|
||||||
|
<template #header><div class="search-bar"><el-form :inline="true" :model="search" size="mini"><el-form-item label="关键字"><el-input v-model.trim="search.keyword" placeholder="请输入关键字" clearable style="width:180px" @keyup.enter.native="onSearch" /></el-form-item><el-form-item><el-button type="primary" icon="el-icon-search" :disabled="loading" @click="onSearch">查询</el-button><el-button icon="el-icon-refresh" :disabled="loading" @click="onReset">重置</el-button><el-button type="primary" icon="el-icon-plus" @click="openDialog()">新增</el-button><el-button icon="el-icon-download" :disabled="loading" @click="exportTask">导出</el-button></el-form-item></el-form></div></template>
|
||||||
|
<el-table v-loading="loading" :data="tableData" size="mini" border height="calc(100vh - 220px)"><el-table-column type="index" width="55" /><el-table-column v-for="column in displayColumns" :key="column.prop" :prop="column.prop" :label="column.label" min-width="150" show-overflow-tooltip /><el-table-column v-if="canEdit || canDelete" label="操作" fixed="right" width="150"><template slot-scope="scope"><el-button v-if="canEdit" type="text" size="mini" @click="openDialog(scope.row)">编辑</el-button><el-button v-if="canDelete" type="text" size="mini" class="danger" @click="remove(scope.row)">删除</el-button></template></el-table-column><template #empty><el-empty description="暂无数据" :image-size="80" /></template></el-table>
|
||||||
|
<div class="pager"><el-pagination background layout="total, sizes, prev, pager, next, jumper" :current-page="pagination.current" :page-size="pagination.size" :total="pagination.total" @current-change="changePage" @size-change="changeSize" /></div>
|
||||||
|
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="640px"><el-form ref="form" :model="form" label-width="130px" size="mini"><el-form-item v-for="field in formFields" :key="field.prop" :label="field.label" :prop="field.prop"><el-input v-model="form[field.prop]" clearable /></el-form-item></el-form><template #footer><el-button size="mini" @click="dialogVisible=false">取消</el-button><el-button type="primary" size="mini" :loading="saving" @click="save">确定</el-button></template></el-dialog>
|
||||||
|
</d2-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { getList, createItem, editItem, deleteItem, createExportTask } from '@/api/equipment-management/repair-logs'
|
||||||
|
export default {
|
||||||
|
name: 'equipment-management-repair-logs',
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
saving: false,
|
||||||
|
canCreate: true,
|
||||||
|
canEdit: true,
|
||||||
|
canDelete: true,
|
||||||
|
canExport: true,
|
||||||
|
search: { keyword: '' },
|
||||||
|
tableData: [],
|
||||||
|
pagination: { current: 1, size: 10, total: 0 },
|
||||||
|
columns: [
|
||||||
|
{ prop: 'order_no', label: '维修单号' },
|
||||||
|
{ prop: 'device_code', label: '设备编码' },
|
||||||
|
{ prop: 'device_name', label: '设备名称' },
|
||||||
|
{ prop: 'repair_user', label: '维修人员' },
|
||||||
|
{ prop: 'repair_time', label: '维修时间' },
|
||||||
|
{ prop: 'repair_result', label: '维修结果' }
|
||||||
|
],
|
||||||
|
formFields: [
|
||||||
|
{ prop: 'order_no', label: '维修单号' },
|
||||||
|
{ prop: 'device_id', label: '设备ID' },
|
||||||
|
{ prop: 'repair_user', label: '维修人员' },
|
||||||
|
{ prop: 'repair_time', label: '维修时间' },
|
||||||
|
{ prop: 'repair_result', label: '维修结果' },
|
||||||
|
{ prop: 'remark', label: '备注' }
|
||||||
|
],
|
||||||
|
form: {},
|
||||||
|
dialogVisible: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: { dialogTitle () { return this.form && this.form.id ? '编辑设备维修日志' : '新增设备维修日志' }, displayColumns () { const keys = new Set(this.columns.map(item => item.prop)); const extra = Object.keys(this.tableData[0] || {}).filter(key => !keys.has(key) && key !== 'id').slice(0, 8).map(key => ({ prop: key, label: key })); return [...this.columns, ...extra] } },
|
||||||
|
mounted () { this.fetchData() },
|
||||||
|
methods: {
|
||||||
|
responseData (res) { return res && res.data !== undefined ? res.data : res },
|
||||||
|
normalizeList (data) { if (Array.isArray(data)) return { list: data, total: data.length }; if (data && Array.isArray(data.data)) return { list: data.data, total: Number(data.count || data.total || data.data.length) }; if (data && data.data && Array.isArray(data.data.data)) return { list: data.data.data, total: Number(data.data.count || data.data.total || data.data.data.length) }; return { list: [], total: 0 } },
|
||||||
|
buildParams () { return { ...this.search, page_no: this.pagination.current, page_size: this.pagination.size } },
|
||||||
|
async fetchData () { this.loading = true; try { const res = await getList(this.buildParams()); const data = this.normalizeList(this.responseData(res)); this.tableData = data.list; this.pagination.total = data.total } finally { this.loading = false } },
|
||||||
|
onSearch () { this.pagination.current = 1; this.fetchData() },
|
||||||
|
onReset () { this.search = { keyword: '' }; this.pagination.current = 1; this.fetchData() },
|
||||||
|
changePage (page) { this.pagination.current = page; this.fetchData() },
|
||||||
|
changeSize (size) { this.pagination.size = size; this.pagination.current = 1; this.fetchData() },
|
||||||
|
openDialog (row) { this.form = row ? { ...row } : {}; this.dialogVisible = true },
|
||||||
|
async save () {
|
||||||
|
this.saving = true
|
||||||
|
try {
|
||||||
|
if (this.form.id) await editItem(this.form)
|
||||||
|
else await createItem(this.form)
|
||||||
|
this.$message.success('操作成功')
|
||||||
|
this.dialogVisible = false
|
||||||
|
this.fetchData()
|
||||||
|
} finally { this.saving = false }
|
||||||
|
},
|
||||||
|
async remove (row) { await this.$confirm('确认删除该记录?', '提示', { type: 'warning' }); await deleteItem({ id: row.id }); this.$message.success('删除成功'); this.fetchData() },
|
||||||
|
async exportTask () { await this.$confirm('确认创建导出任务?', '提示', { type: 'warning' }); await createExportTask(this.buildParams()); this.$message.success('导出任务创建成功') }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>.search-bar { margin-bottom: -18px; }.pager { padding-top: 10px; text-align: right; }.danger { color: #f56c6c; }</style>
|
||||||
Reference in New Issue
Block a user