From 1772504da433bec2f1695d47e5946c1192e876fb Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周二, 20 5月 2025 11:53:40 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo
---
HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx | 377 ++++++++++++++++++++++++++++++++++-------------------
1 files changed, 241 insertions(+), 136 deletions(-)
diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx
index 40d7b2b..16ba4de 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx
@@ -4,21 +4,24 @@
import styles from './WmsMaterialStockDetail.module.scss'
import { useWmsMaterialStock } from '../../../Controllers/WmsMaterialStock'
import IconButton from '@/components/IconButton/IconButton'
-import WmsMaterialStockDrawer from '../Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer'
+import WmsMaterialStockDetailQueryDrawer from '../Dialog/WmsMaterialStockDetailQuery/WmsMaterialStockDetailQueryDrawer'
import Search from '@/components/Search/Search'
import { columns } from './Config'
import TdButton from '@/components/TdButton/TdButton'
import { vPermission } from '@/libs/Permission/Permission'
import dayjs from 'dayjs'
+import { getWmsEnumData } from '@/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDrawer'
import {
+ ElInput,
+ ElSelect,
+ ElOption,
ElDatePicker,
ElForm,
ElFormItem,
- ElInput,
- ElOption,
- ElSelect,
} from 'element-plus'
-import { getWmsEnumData } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
+import { injectModel } from '@/libs/Provider/Provider'
+// 寮曞叆鍏叡閫夐」閰嶇疆
+import { FILTER_MODE_OPTIONS_STRING } from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'
interface RenderTableType {
url?: string
@@ -31,7 +34,7 @@
}
export default defineComponent({
- name: 'WmsMaterialStock',
+ name: 'WmsMaterialStockDetail',
directives: {
permission: vPermission,
},
@@ -40,6 +43,7 @@
dataSource,
contextMenu,
dialogConfig,
+ dialogConfigForQuery,
tableRef,
current,
search,
@@ -51,91 +55,82 @@
onConfirmWmsMaterialStock,
onCheck,
onAddWmsMaterialStock,
+ onAdvancedQuery,
onExport,
openDetail,
onSuccess,
onBeforeUpload,
} = useWmsMaterialStock(props, ctx)
+ //瀹氫箟楂樼骇鏌ヨ寮曠敤
+ const wmsMaterialStockDetailQueryDrawerRef = ref(null)
// 鏂板鐨勬煡璇㈡潯浠�
const queryForm = ref({
- containerNo: '',
- materialNo: '',
- materialName: '',
- containerType: '',
- containerStatus: '',
- storageTypeNo: 1,
- placeStatus: '',
- placeNo: '',
- isLock: '',
- emptyContainer: '',
- dateRange: [],
- filter: '',
+ searchVal: '',
+ str_searchFormInputAttrs: [],
+ searchVal_FilterMode: '',
})
-
- const queryParams = computed(() => ({
- ...queryForm.value,
- containerType: queryForm.value.containerType || '', // 澶勭悊涓嬫媺
- containerStatus: queryForm.value.containerStatus || '',
- storageTypeNo: queryForm.value.storageTypeNo || 1, // 澶勭悊涓嬫媺
- placeStatus: queryForm.value.placeStatus || '',
- islock: queryForm.value.isLock || '',
- emptyContainer: queryForm.value.emptyContainer || '',
- startTime: queryForm.value.dateRange[0] || '',
- endTime: queryForm.value.dateRange[1] || '',
- }))
+ //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂)
+ const _searchFormInputAttrs = ref(['OrderNo', 'MaterialNo', 'MaterialId'])
+ const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鐗╂枡ID')
// 鍔ㄦ�佹灇涓鹃�夐」
const enumOptions = reactive({
- containerType: [] as Array<{ label: string; value: any }>,
containerStatus: [] as Array<{ label: string; value: any }>,
- storageTypeNo: [] as Array<{ label: string; value: any }>,
+ containerType: [] as Array<{ label: string; value: any }>,
placeStatus: [] as Array<{ label: string; value: any }>,
- yesOrNo: [] as Array<{ label: string; value: any }>,
+ storageTypeNo: [] as Array<{ label: string; value: any }>,
+ checkStatus: [] as Array<{ label: string; value: any }>,
+ isLock: [] as Array<{ label: string; value: any }>,
+ emptyContainer: [] as Array<{ label: string; value: any }>,
})
// 鑾峰彇鏋氫妇鏁版嵁
const fetchEnumData = async () => {
try {
- // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇
- const containerTypeData = await getWmsEnumData({
- EnumName: 'ContainerTypeEnum',
- })
- enumOptions.containerType = containerTypeData.map((item) => ({
- label: item.description,
- value: item.value,
- }))
- // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇
- const storageTypeNoData = await getWmsEnumData({
- EnumName: 'PlaceTypeEnum',
- })
- enumOptions.storageTypeNo = storageTypeNoData.map((item) => ({
- label: item.description,
- value: item.value,
- }))
-
- // 鑾峰彇閲囪喘绫诲瀷鏋氫妇
- const placeStatusData = await getWmsEnumData({
- EnumName: 'PlaceStatusEnum',
- })
- enumOptions.placeStatus = placeStatusData.map((item) => ({
- label: item.description,
- value: item.value,
- }))
-
- // 鑾峰彇閲囪喘绫诲瀷鏋氫妇
- const containerStatusData = await getWmsEnumData({
+ const containerStatusEnumData = await getWmsEnumData({
EnumName: 'ContainerStatusEnum',
})
- enumOptions.containerStatus = containerStatusData.map((item) => ({
+ enumOptions.containerStatus = containerStatusEnumData.map((item) => ({
label: item.description,
value: item.value,
}))
-
- const yesNoData = await getWmsEnumData({
+ const containerTypeEnumData = await getWmsEnumData({
+ EnumName: 'ContainerTypeEnum',
+ })
+ enumOptions.containerType = containerTypeEnumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ const placeStatusEnumData = await getWmsEnumData({
+ EnumName: 'PlaceStatusEnum',
+ })
+ enumOptions.placeStatus = placeStatusEnumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ const placeTypeEnumData = await getWmsEnumData({
+ EnumName: 'PlaceTypeEnum',
+ })
+ enumOptions.storageTypeNo = placeTypeEnumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ const materialCheckStatusEnumData = await getWmsEnumData({
+ EnumName: 'MaterialCheckStatusEnum',
+ })
+ enumOptions.checkStatus = materialCheckStatusEnumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ const yesNoEnumData = await getWmsEnumData({
EnumName: 'YesNoEnum',
})
- enumOptions.yesOrNo = yesNoData.map((item) => ({
+ enumOptions.isLock = yesNoEnumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ enumOptions.emptyContainer = yesNoEnumData.map((item) => ({
label: item.description,
value: item.value,
}))
@@ -144,35 +139,79 @@
}
}
+ // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹�
+ const _curHighQueryData = ref({
+ searchVal: '',
+ str_searchFormInputAttrs: [],
+ searchVal_FilterMode: '',
+ })
// 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
onMounted(() => {
fetchEnumData()
- handleQuery()
+ queryForm.value.searchVal_FilterMode =
+ FILTER_MODE_OPTIONS_STRING[0]?.value || ''
+ _curHighQueryData.value.searchVal_FilterMode =
+ queryForm.value.searchVal_FilterMode
+ _curHighQueryData.value.str_searchFormInputAttrs =
+ _searchFormInputAttrs.value
})
- // 鏂板鐨勬煡璇㈡柟娉�
- const handleQuery = async () => {
- console.log('鏌ヨ鏉′欢:', queryParams.value)
- // tableRef.value.getTableList()
- tableRef.value.getList(queryParams.value)
+ // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級
+ const handleQueryForMain = async () => {
+ _curHighQueryData.value.searchVal = queryForm.value.searchVal
+ _curHighQueryData.value.searchVal_FilterMode =
+ queryForm.value.searchVal_FilterMode
+ _curHighQueryData.value.str_searchFormInputAttrs =
+ _searchFormInputAttrs.value
+ tableRef.value.getList(_curHighQueryData.value)
}
-
- // 閲嶇疆鏌ヨ鏉′欢
+ // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級
+ const handleQuery = async (extraParams = {}) => {
+ let filteredData = commonGetHighQueryForm(extraParams)
+ commonSaveCurHighQueryData(filteredData)
+ tableRef.value.getList(filteredData)
+ }
+ // 鏂扮増鐨勬煡璇㈤噸缃�
const resetQuery = () => {
- queryForm.value = {
- containerNo: '',
- materialNo: '',
- materialName: '',
- containerType: '',
- containerStatus: '',
- storageTypeNo: 1,
- placeStatus: '',
- placeNo: '',
- isLock: '',
- emptyContainer: '',
- dateRange: [],
- filter: '',
- }
+ queryForm.value.searchVal = ''
+ queryForm.value.searchVal_FilterMode =
+ FILTER_MODE_OPTIONS_STRING[0]?.value || ''
+ queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value
+ }
+ //鏂扮増鐨勫鍑烘柟娉�
+ const handleExport = () => {
+ onExport(_curHighQueryData.value)
+ }
+ // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶
+ const closeQuery = (extraParams = {}) => {
+ let filteredData = commonGetHighQueryForm(extraParams)
+ console.log('closeQuery鏂规硶')
+ console.log(filteredData)
+ commonSaveCurHighQueryData(filteredData)
+ }
+ //淇濆瓨鏌ヨ鍊�
+ const commonSaveCurHighQueryData = (filteredData = {}) => {
+ _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }
+ _curHighQueryData.value.searchVal = queryForm.value.searchVal
+ _curHighQueryData.value.searchVal_FilterMode =
+ queryForm.value.searchVal_FilterMode
+ _curHighQueryData.value.str_searchFormInputAttrs =
+ _searchFormInputAttrs.value
+ }
+ //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊�
+ const commonGetHighQueryForm = (extraParams = {}) => {
+ // 杩囨护鎺� undefined 鐨勫��
+ let filteredData = Object.assign(
+ {},
+ ...Object.entries(extraParams).map(([key, value]) =>
+ value !== undefined ? { [key]: value } : {}
+ )
+ )
+ //缁勫悎妯$硦鏌ヨ
+ filteredData.searchVal = queryForm.value.searchVal
+ filteredData.searchVal_FilterMode = queryForm.value.searchVal_FilterMode
+ filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value
+ return filteredData
}
/**
* @returns 琛ㄦ牸
@@ -187,20 +226,17 @@
params,
autoHeight,
} = props
- props.params = {
- ...queryParams.value,
- ...params,
- }
+
return (
<div
class={{
- [styles.wmsMaterialStockList]: true,
+ [styles.wmsMaterialStockDetailList]: true,
}}
>
<BaseTable
ref={tableRef}
url={url}
- sortUrlTpl="/api/v1/HIAWms/wmsMaterialStock/{id}/adjustsort/{sort}"
+ sortUrlTpl="/api/v1/HIAWms/wmsMaterialStockDetail/{id}/adjustsort/{sort}"
v-model:dataSource={dataSource.value}
columns={columns}
contextMenu={contextMenu}
@@ -218,6 +254,57 @@
<div>
{row.inStockTime != null
? dayjs(row.inStockTime).format('YYYY-MM-DD HH:mm:ss')
+ : '-'}
+ </div>
+ )
+ },
+ isDisabled: ({ row }: any) => {
+ return (
+ <div>
+ {row.isDisabled != null
+ ? row.isDisabled
+ ? '鏄�'
+ : '鍚�'
+ : '-'}
+ </div>
+ )
+ },
+ creationTime: ({ row }: any) => {
+ return (
+ <div>
+ {row.creationTime != null
+ ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss')
+ : '-'}
+ </div>
+ )
+ },
+ lastModificationTime: ({ row }: any) => {
+ return (
+ <div>
+ {row.lastModificationTime != null
+ ? dayjs(row.lastModificationTime).format(
+ 'YYYY-MM-DD HH:mm:ss'
+ )
+ : '-'}
+ </div>
+ )
+ },
+ isDeleted: ({ row }: any) => {
+ return (
+ <div>
+ {row.isDeleted != null
+ ? row.isDeleted
+ ? '鏄�'
+ : '鍚�'
+ : '-'}
+ </div>
+ )
+ },
+ deletionTime: ({ row }: any) => {
+ return (
+ <div>
+ {row.deletionTime != null
+ ? dayjs(row.deletionTime).format('YYYY-MM-DD HH:mm:ss')
: '-'}
</div>
)
@@ -242,20 +329,13 @@
</div>
)
}
+
return () => {
return (
- <div class={styles.wmsMaterialStockContent}>
- {/* 娣诲姞/缂栬緫 */}
- <WmsMaterialStockDrawer
- v-model={dialogConfig.visible}
- title={dialogConfig.title}
- row={current.value}
- sort={sort.value}
- onConfirm={onConfirmWmsMaterialStock}
- />
+ <div class={styles.wmsMaterialStockDetailContent}>
{/* 楂樼骇鏌ヨ */}
- {/* <WmsMaterialStockDetailDrawer
- ref="wmsTaskQueryDrawerRef"
+ <WmsMaterialStockDetailQueryDrawer
+ ref="wmsMaterialStockDetailQueryDrawerRef"
v-model={dialogConfigForQuery.visible}
title={dialogConfigForQuery.title}
row={current.value}
@@ -263,49 +343,74 @@
onConfirmQuery={handleQuery}
onRestQuery={resetQuery}
onClose={closeQuery}
- /> */}
+ />
+
<div class={styles.headerContent}>
<div class={styles.header}>
<IconButton
- v-permission="wmsMaterialStock-add"
- icon="add-p"
- onClick={onAddWmsMaterialStock}
- type="primary"
- >
- 娣诲姞
- </IconButton>
- <el-divider direction="vertical" />
- <el-upload
- v-permission="wmsMaterialStock-import"
- name="file"
- accept=".xlsx,.xls,.csv"
- show-file-list={false}
- onError={onError}
- onSuccess={onSuccess}
- before-upload={onBeforeUpload}
- headers={headers.value}
- action="/api/v1/HIAWms/wmsMaterialStock/import"
- >
- <IconButton icon="in">瀵煎叆</IconButton>
- </el-upload>
-
- <IconButton
- v-permission="wmsMaterialStock-output"
+ v-permission="wmsMaterialStockDetail-output"
icon="out"
onClick={onExport}
>
瀵煎嚭
</IconButton>
</div>
- {/* <Search
- placeholder="璇疯緭鍏ュ叧閿瓧"
- v-model={search.value}
- onConfirm={onSearch}
- style={{ marginTop: '-1px' }}
- /> */}
+ <ElFormItem style={{ marginTop: '15px' }}>
+ <ElFormItem label="鍏抽敭瀛�">
+ <el-tooltip
+ class="box-item"
+ effect="dark"
+ content={searchFormInputAttrs_Placeholder.value}
+ placement="top-start"
+ >
+ <ElInput
+ v-mode
+ class={styles.formItem}
+ placeholder={searchFormInputAttrs_Placeholder.value}
+ />
+ </el-tooltip>
+ </ElFormItem>
+ <ElFormItem label="" style="width:100px;">
+ <ElSelect
+ v-model={queryForm.value.searchVal_FilterMode}
+ // el={queryForm.value.searchVal}
+ // placeholder={searchFormInputAttrs_Placeholder.value}
+ clearable
+ placeholder="璇烽�夋嫨"
+ class={styles.formItem}
+ >
+ {FILTER_MODE_OPTIONS_STRING.map((option) => (
+ <ElOption
+ key={option.value}
+ label={option.label}
+ value={option.value}
+ />
+ ))}
+ </ElSelect>
+ </ElFormItem>
+ <IconButton
+ type="primary"
+ icon="search"
+ onClick={handleQueryForMain}
+ >
+ 鏌ヨ
+ </IconButton>
+ {/* <IconButton style="" icon="refresh" onClick={resetQuery}>
+ 閲嶇疆
+ </IconButton> */}
+ <IconButton
+ v-permission="wmsMaterialStockDetail-hightQuery"
+ icon="search"
+ onClick={onAdvancedQuery}
+ type="primary"
+ >
+ 楂樼骇鏌ヨ
+ </IconButton>
+ </ElFormItem>
</div>
+
<RenderBaseTable
- url="/api/v1/HIAWms/wmsMaterialStock"
+ url="/api/v1/HIAWms/wmsMaterialStock/StockDetail"
dataSource={dataSource}
isChecked={true}
isDrag={true}
--
Gitblit v1.9.3