| | |
| | | name: 'StoreSilkList' |
| | | }); |
| | | |
| | | |
| | | const appStore = useAppStore(); |
| | | const { download } = useDownload(); |
| | | const { hasAuth } = useAuth(); |
| | |
| | | distimebegin: null, |
| | | distimeend: null, |
| | | siloid: null, |
| | | params: {} |
| | | params: { |
| | | beginTime: `${new Date(new Date().getTime() - 3 * 24 * 60 * 60 * 1000).getFullYear()}-${String(new Date(new Date().getTime() - 3 * 24 * 60 * 60 * 1000).getMonth() + 1).padStart(2, '0')}-${String(new Date(new Date().getTime() - 3 * 24 * 60 * 60 * 1000).getDate()).padStart(2, '0')} 00:00:00`, |
| | | endTime: `${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, '0')}-${String(new Date().getDate()).padStart(2, '0')} 23:59:59` |
| | | } |
| | | }); |
| | | |
| | | const tableSize = ref<'tiny' | 'small' | 'medium' | 'large'>('small'); |
| | | const tableSize = ref<'small' | 'medium' | 'large'>('small'); |
| | | |
| | | function handleTableSizeChange(size: 'tiny' | 'small' | 'medium' | 'large') { |
| | | function handleTableSizeChange(size: 'small' | 'medium' | 'large') { |
| | | tableSize.value = size; |
| | | } |
| | | |
| | | const { columns, columnChecks, data, getData, getDataByPage, loading, mobilePagination, scrollX } = |
| | | useNaivePaginatedTable({ |
| | | api: () => fetchGetStoreSilkList(searchParams.value), |
| | | transform: response => defaultTransform(response), |
| | | onPaginationParamsChange: params => { |
| | | searchParams.value.pageNum = params.page; |
| | | searchParams.value.pageSize = params.pageSize; |
| | | }, |
| | | columns: () => [ |
| | | { |
| | | type: 'selection', |
| | | align: 'center', |
| | | width: 48 |
| | | api: () => fetchGetStoreSilkList(searchParams.value), |
| | | transform: response => defaultTransform(response), |
| | | onPaginationParamsChange: params => { |
| | | searchParams.value.pageNum = params.page; |
| | | searchParams.value.pageSize = params.pageSize; |
| | | }, |
| | | { |
| | | key: 'index', |
| | | title: $t('common.index'), |
| | | align: 'center', |
| | | width: 64, |
| | | render: (_, index) => index + 1 |
| | | }, |
| | | { |
| | | key: 'materialname', |
| | | title: '牌号', |
| | | align: 'center', |
| | | minWidth: 120 |
| | | }, |
| | | { |
| | | key: 'batchcode', |
| | | title: '批次号', |
| | | align: 'center', |
| | | minWidth: 130 |
| | | }, |
| | | { |
| | | key: 'roller', |
| | | title: '卷接产量', |
| | | align: 'center', |
| | | minWidth: 100 |
| | | }, |
| | | { |
| | | key: 'packer', |
| | | title: '包装产量', |
| | | align: 'center', |
| | | minWidth: 100 |
| | | }, |
| | | { |
| | | key: 'actualstarttime', |
| | | title: '投料日期', |
| | | align: 'center', |
| | | width: 180 |
| | | }, |
| | | { |
| | | key: 'jobinput', |
| | | title: '投料重量', |
| | | align: 'center', |
| | | minWidth: 120 |
| | | }, |
| | | { |
| | | key: 'weight', |
| | | title: '储丝柜重量', |
| | | align: 'center', |
| | | minWidth: 120 |
| | | }, |
| | | { |
| | | key: 'distimebegin', |
| | | title: '储丝柜出料开始时间', |
| | | align: 'center', |
| | | width: 180 |
| | | }, |
| | | { |
| | | key: 'distimeend', |
| | | title: '储丝柜出料结束时间', |
| | | align: 'center', |
| | | width: 180 |
| | | }, |
| | | { |
| | | key: 'siloid', |
| | | title: '柜子号(末位)', |
| | | align: 'center', |
| | | width: 160 |
| | | }, |
| | | { |
| | | key: 'operate', |
| | | title: $t('common.operate'), |
| | | align: 'center', |
| | | fixed: 'right', |
| | | width: 130, |
| | | render: row => { |
| | | const divider = () => { |
| | | if (!hasAuth('analy:storeSilk:edit') || !hasAuth('analy:storeSilk:remove')) { |
| | | return null; |
| | | } |
| | | return <NDivider vertical />; |
| | | }; |
| | | columns: () => [ |
| | | { |
| | | type: 'selection', |
| | | align: 'center', |
| | | width: 48 |
| | | }, |
| | | { |
| | | key: 'index', |
| | | title: $t('common.index'), |
| | | align: 'center', |
| | | width: 64, |
| | | render: (_, index) => index + 1 |
| | | }, |
| | | { |
| | | key: 'materialname', |
| | | title: '牌号', |
| | | align: 'center', |
| | | minWidth: 120 |
| | | }, |
| | | { |
| | | key: 'batchcode', |
| | | title: '批次号', |
| | | align: 'center', |
| | | minWidth: 130 |
| | | }, |
| | | { |
| | | key: 'roller', |
| | | title: '卷接产量', |
| | | align: 'center', |
| | | minWidth: 100 |
| | | }, |
| | | { |
| | | key: 'packer', |
| | | title: '包装产量', |
| | | align: 'center', |
| | | minWidth: 100 |
| | | }, |
| | | { |
| | | key: 'actualstarttime', |
| | | title: '投料日期', |
| | | align: 'center', |
| | | width: 180 |
| | | }, |
| | | { |
| | | key: 'jobinput', |
| | | title: '投料重量', |
| | | align: 'center', |
| | | minWidth: 120 |
| | | }, |
| | | { |
| | | key: 'weight', |
| | | title: '储丝柜重量', |
| | | align: 'center', |
| | | minWidth: 120 |
| | | }, |
| | | { |
| | | key: 'distimebegin', |
| | | title: '储丝柜出料开始时间', |
| | | align: 'center', |
| | | width: 180 |
| | | }, |
| | | { |
| | | key: 'distimeend', |
| | | title: '储丝柜出料结束时间', |
| | | align: 'center', |
| | | width: 180 |
| | | }, |
| | | { |
| | | key: 'siloid', |
| | | title: '柜子号(末位)', |
| | | align: 'center', |
| | | width: 160 |
| | | }, |
| | | { |
| | | key: 'operate', |
| | | title: $t('common.operate'), |
| | | align: 'center', |
| | | fixed: 'right', |
| | | width: 130, |
| | | render: row => { |
| | | const divider = () => { |
| | | if (!hasAuth('analy:storeSilk:edit') || !hasAuth('analy:storeSilk:remove')) { |
| | | return null; |
| | | } |
| | | return <NDivider vertical />; |
| | | }; |
| | | |
| | | const editBtn = () => { |
| | | if (!hasAuth('analy:storeSilk:edit')) { |
| | | return null; |
| | | } |
| | | const editBtn = () => { |
| | | if (!hasAuth('analy:storeSilk:edit')) { |
| | | return null; |
| | | } |
| | | return ( |
| | | <ButtonIcon |
| | | text |
| | | type="primary" |
| | | icon="material-symbols:drive-file-rename-outline-outline" |
| | | tooltipContent={$t('common.edit')} |
| | | onClick={() => edit(row.id)} |
| | | /> |
| | | ); |
| | | }; |
| | | |
| | | const deleteBtn = () => { |
| | | if (!hasAuth('analy:storeSilk:remove')) { |
| | | return null; |
| | | } |
| | | return ( |
| | | <ButtonIcon |
| | | text |
| | | type="error" |
| | | icon="material-symbols:delete-outline" |
| | | tooltipContent={$t('common.delete')} |
| | | popconfirmContent={$t('common.confirmDelete')} |
| | | onPositiveClick={() => handleDelete(row.id)} |
| | | /> |
| | | ); |
| | | }; |
| | | |
| | | return ( |
| | | <ButtonIcon |
| | | text |
| | | type="primary" |
| | | icon="material-symbols:drive-file-rename-outline-outline" |
| | | tooltipContent={$t('common.edit')} |
| | | onClick={() => edit(row.id)} |
| | | /> |
| | | <div class="flex-center gap-8px"> |
| | | {editBtn()} |
| | | {divider()} |
| | | {deleteBtn()} |
| | | </div> |
| | | ); |
| | | }; |
| | | |
| | | const deleteBtn = () => { |
| | | if (!hasAuth('analy:storeSilk:remove')) { |
| | | return null; |
| | | } |
| | | return ( |
| | | <ButtonIcon |
| | | text |
| | | type="error" |
| | | icon="material-symbols:delete-outline" |
| | | tooltipContent={$t('common.delete')} |
| | | popconfirmContent={$t('common.confirmDelete')} |
| | | onPositiveClick={() => handleDelete(row.id)} |
| | | /> |
| | | ); |
| | | }; |
| | | |
| | | return ( |
| | | <div class="flex-center gap-8px"> |
| | | {editBtn()} |
| | | {divider()} |
| | | {deleteBtn()} |
| | | </div> |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | }); |
| | | ] |
| | | }); |
| | | |
| | | const { drawerVisible, operateType, editingData, handleAdd, handleEdit, checkedRowKeys, onBatchDeleted, onDeleted } = |
| | | useTableOperate(data, 'id', getData); |
| | |
| | | </template> |
| | | <NRadioGroup :value="tableSize" @update:value="handleTableSizeChange"> |
| | | <NSpace vertical> |
| | | <NRadio value="tiny">mini</NRadio> |
| | | <NRadio value="small">小</NRadio> |
| | | <NRadio value="medium">中</NRadio> |
| | | <NRadio value="large">大</NRadio> |
| | |
| | | remote |
| | | :row-key="row => row.id" |
| | | :pagination="mobilePagination" |
| | | :class="['sm:h-full', tableSize === 'tiny' ? 'table-size-mini' : '']" |
| | | class="sm:h-full" |
| | | /> |
| | | <StoreSilkOperateDrawer |
| | | v-model:visible="drawerVisible" |
| | |
| | | </template> |
| | | |
| | | <style scoped> |
| | | :deep(.table-size-mini .n-data-table-th), |
| | | :deep(.table-size-mini .n-data-table-td) { |
| | | :deep(.n-data-table-th), |
| | | :deep(.n-data-table-td) { |
| | | padding-top: 4px; |
| | | padding-bottom: 4px; |
| | | } |