Browse Source

feat: 设备出库可编辑 & 增加时间排序

master
betaqi 2 weeks ago
parent
commit
2eba9cad13
  1. 6
      src/components/dashboard/Edfs-table/index.vue
  2. 9
      src/pages/deviceInfo/components/DeliveryInfo.vue
  3. 21
      src/pages/deviceInfo/index.vue
  4. 21
      src/pages/deviceStorage/index.vue

6
src/components/dashboard/Edfs-table/index.vue

@ -17,6 +17,7 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
class="edfs-table" class="edfs-table"
:span-method="spanMethod" :span-method="spanMethod"
@sort-change="handleScrollChange"
> >
<slot></slot> <slot></slot>
</el-table> </el-table>
@ -59,6 +60,7 @@ const emit = defineEmits<{
// 'page-size-change': [pageSize: number] // 'page-size-change': [pageSize: number]
'page-current-change': [currentPage: number] 'page-current-change': [currentPage: number]
'selection-change': [selection: any[]] 'selection-change': [selection: any[]]
'on-scroll-change':[data:any[]]
}>() }>()
function onCurrentChange(currentRow: any, oldCurrentRow: any) { function onCurrentChange(currentRow: any, oldCurrentRow: any) {
@ -75,6 +77,10 @@ function handleSelectionChange(selection: any[]) {
emit('selection-change', selection) emit('selection-change', selection)
} }
function handleScrollChange(data:any[]) {
emit('on-scroll-change',data)
}
// //
const pageSize = ref() const pageSize = ref()

9
src/pages/deviceInfo/components/DeliveryInfo.vue

@ -9,7 +9,7 @@
:options="customerList" :options="customerList"
placeholder="请选择出库流向" placeholder="请选择出库流向"
keyTag="id" keyTag="id"
:disabled="action === 'view' || !isShowSaveButton" :disabled="action === 'view' "
labelTag="name" labelTag="name"
valueTag="id" valueTag="id"
:isShowLabel="false" :isShowLabel="false"
@ -19,7 +19,7 @@
<div class="label">设备价格:</div> <div class="label">设备价格:</div>
<number-input <number-input
v-model="params.price" v-model="params.price"
:disabled="action === 'view' || !isShowSaveButton" :disabled="action === 'view' "
placeholder="请输入设备价格" placeholder="请输入设备价格"
/> />
</div> </div>
@ -31,7 +31,7 @@
type="textarea" type="textarea"
v-model="params.description" v-model="params.description"
placeholder="请输入备注" placeholder="请输入备注"
:disabled="action === 'view' || !isShowSaveButton" :disabled="action === 'view' "
:autosize="{ minRows: 3, maxRows: 4 }" :autosize="{ minRows: 3, maxRows: 4 }"
/> />
</div> </div>
@ -41,7 +41,7 @@
type="primary" type="primary"
class="save-button" class="save-button"
@click="onSave" @click="onSave"
v-if="isShowSaveButton" v-if="action != 'view'"
/> />
</div> </div>
</div> </div>
@ -105,6 +105,7 @@ async function onSave() {
const res = await storageOutDevice(options) const res = await storageOutDevice(options)
if (isResError(res)) return if (isResError(res)) return
message.success('出口成功')
emit('onSave') emit('onSave')
} }

21
src/pages/deviceInfo/index.vue

@ -23,6 +23,7 @@
:page-size="queryParams.pageSize" :page-size="queryParams.pageSize"
row-class-name="row" row-class-name="row"
@pageCurrentChange="handleJump" @pageCurrentChange="handleJump"
@onScrollChange="onScrollChange"
> >
<el-table-column type="index" label="序号" align="center" width="80"> <el-table-column type="index" label="序号" align="center" width="80">
<template #default="scope"> <template #default="scope">
@ -34,6 +35,7 @@
v-if="col.prop.endsWith('Time')" v-if="col.prop.endsWith('Time')"
:label="col.label" :label="col.label"
:min-width="col.minWidth" :min-width="col.minWidth"
sortable="custom"
> >
<template #default="scope"> <template #default="scope">
{{ dayjs(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }} {{ dayjs(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
@ -72,7 +74,7 @@
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item command="info"> <el-dropdown-item command="info">
<Icon icon="solar:clapperboard-edit-linear" />编辑基础信息 <Icon icon="solar:clapperboard-edit-linear" />编辑信息
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item command="test" v-if="scope.row.status === 1"> <el-dropdown-item command="test" v-if="scope.row.status === 1">
<Icon icon="solar:document-add-outline" />测试结果录入 <Icon icon="solar:document-add-outline" />测试结果录入
@ -133,7 +135,7 @@ const route = useRoute()
const updateId = ref<number | undefined>( const updateId = ref<number | undefined>(
route.query.updateId !== undefined && route.query.updateId !== null route.query.updateId !== undefined && route.query.updateId !== null
? Number(route.query.updateId) ? Number(route.query.updateId)
: undefined : undefined,
) )
onActivated(async () => { onActivated(async () => {
@ -166,7 +168,10 @@ const getList = async () => {
} }
loading.value = true loading.value = true
const options = Object.assign({}, queryParams, filter.value) const options = Object.assign({}, queryParams, filter.value, {
sortName: 'create_time',
sortAsc: isAscending.value,
})
const res = await getDevicePage(options) const res = await getDevicePage(options)
@ -183,6 +188,16 @@ function handleJump(page: number) {
getList() getList()
} }
const isAscending = ref(false)
watch(isAscending, () => {
getList()
})
function onScrollChange(data: any) {
isAscending.value = data.order === 'ascending'
}
const filter = ref<any>({}) const filter = ref<any>({})
function onSearch(search: any) { function onSearch(search: any) {
queryParams.pageNo = 1 queryParams.pageNo = 1

21
src/pages/deviceStorage/index.vue

@ -20,6 +20,7 @@
:page-size="queryParams.pageSize" :page-size="queryParams.pageSize"
row-class-name="row" row-class-name="row"
@pageCurrentChange="handleJump" @pageCurrentChange="handleJump"
@onScrollChange="onScrollChange"
> >
<el-table-column type="index" label="序号" align="center" width="80"> <el-table-column type="index" label="序号" align="center" width="80">
<template #default="scope"> <template #default="scope">
@ -31,6 +32,7 @@
v-if="col.prop.endsWith('Time')" v-if="col.prop.endsWith('Time')"
:label="storageStatus + col.label" :label="storageStatus + col.label"
:min-width="col.minWidth" :min-width="col.minWidth"
sortable="custom"
> >
<template #default="scope"> <template #default="scope">
{{ dayjs(scope.row[col.prop]).format('YYYY-MM-DD HH:mm:ss') }} {{ dayjs(scope.row[col.prop]).format('YYYY-MM-DD HH:mm:ss') }}
@ -107,7 +109,12 @@ const getList = async () => {
} }
loading.value = true loading.value = true
const res = await getStoragePage(Object.assign({}, queryParams, filter.value)) const res = await getStoragePage(
Object.assign({}, queryParams, filter.value, {
sortName: 'update_time',
sortAsc: isAscending.value,
}),
)
if (!isResError(res)) { if (!isResError(res)) {
list.value = res.data.list list.value = res.data.list
@ -118,7 +125,7 @@ const getList = async () => {
} }
const storageStatus = computed( const storageStatus = computed(
() => statusList.find(item => item.value === filter.value.status)?.colName ?? '' () => statusList.find(item => item.value === filter.value.status)?.colName ?? '',
) )
const filter = ref<any>({}) const filter = ref<any>({})
@ -133,6 +140,16 @@ function handleJump(page: number) {
getList() getList()
} }
const isAscending = ref(false)
watch(isAscending, () => {
getList()
})
function onScrollChange(data: any) {
isAscending.value = data.order === 'ascending'
}
function addMaintain(row: any) { function addMaintain(row: any) {
router.push({ router.push({
path: '/device/deviceOperation', path: '/device/deviceOperation',

Loading…
Cancel
Save