diff --git a/src/components/TableSelectDialog/TableSelectDialog.vue b/src/components/TableSelectDialog/TableSelectDialog.vue
index 4e278809..1866a348 100644
--- a/src/components/TableSelectDialog/TableSelectDialog.vue
+++ b/src/components/TableSelectDialog/TableSelectDialog.vue
@@ -9,6 +9,7 @@
:show-overflow-tooltip="true"
:stripe="true"
@selection-change="handleSelectionChange"
+ @row-click="handleRowClick"
>
) => Promise<{ list: any[]; total: number }>
+ selectionType?: 'single' | 'multiple'
rowKey?: string
pageSize?: number
initialRows?: any[]
}>(),
{
+ selectionType: 'multiple',
rowKey: 'id',
pageSize: 10,
initialRows: () => []
@@ -79,6 +82,7 @@ const queryParams = reactive({
})
const selectedMap = ref(new Map())
const syncingSelection = ref(false)
+const isSingleSelect = computed(() => props.selectionType === 'single')
const resolveRowKey = (row: Record) => row[props.rowKey]
@@ -115,6 +119,15 @@ const getList = async () => {
const handleSelectionChange = (rows: any[]) => {
if (syncingSelection.value) return
+ if (isSingleSelect.value) {
+ selectedMap.value.clear()
+ const latestRow = rows.length ? rows[rows.length - 1] : undefined
+ if (latestRow) {
+ selectedMap.value.set(resolveRowKey(latestRow), latestRow)
+ }
+ void refreshSelectionOnTable()
+ return
+ }
const pageIdSet = new Set(list.value.map((item) => resolveRowKey(item)))
pageIdSet.forEach((id) => {
selectedMap.value.delete(id)
@@ -124,9 +137,26 @@ const handleSelectionChange = (rows: any[]) => {
})
}
+const handleRowClick = (row: any) => {
+ if (!isSingleSelect.value) return
+ const table = tableRef.value
+ if (!table) return
+ syncingSelection.value = true
+ try {
+ table.clearSelection()
+ table.toggleRowSelection(row, true)
+ } finally {
+ syncingSelection.value = false
+ }
+ selectedMap.value.clear()
+ selectedMap.value.set(resolveRowKey(row), row)
+}
+
const open = async (rows?: any[]) => {
selectedMap.value.clear()
- ;(rows || props.initialRows).forEach((row) => {
+ const initialRows = rows || props.initialRows
+ const nextRows = isSingleSelect.value ? initialRows.slice(0, 1) : initialRows
+ nextRows.forEach((row) => {
selectedMap.value.set(resolveRowKey(row), row)
})
queryParams.pageNo = 1
diff --git a/src/locales/en.ts b/src/locales/en.ts
index 2a82872d..c3a7c925 100644
--- a/src/locales/en.ts
+++ b/src/locales/en.ts
@@ -3484,6 +3484,7 @@ export default {
tableCodeColumn: 'Plan Code',
tableProductColumn: 'Product',
+ tableDeviceNameColumn: 'Device Name',
tableFeedingPipelineColumn: 'Production Line',
tablePlanNumberColumn: 'Planned Qty',
tableFinishNumberColumn: 'Finished Qty',
diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts
index 622deb0f..4fe62873 100644
--- a/src/locales/zh-CN.ts
+++ b/src/locales/zh-CN.ts
@@ -3321,6 +3321,7 @@ export default {
tableCodeColumn: '计划编码',
tableProductColumn: '产品',
+ tableDeviceNameColumn: '设备名称',
tableFeedingPipelineColumn: '生产线',
tablePlanNumberColumn: '计划数量',
tableFinishNumberColumn: '完工数量',
diff --git a/src/views/mes/plan/PlanForm.vue b/src/views/mes/plan/PlanForm.vue
index 4566e8b5..1e44dbb4 100644
--- a/src/views/mes/plan/PlanForm.vue
+++ b/src/views/mes/plan/PlanForm.vue
@@ -4,7 +4,7 @@
ref="formRef"
:model="formData"
:rules="formRules"
- label-width="100px"
+ label-width="110px"
v-loading="formLoading"
>
@@ -68,30 +68,8 @@
-
-
-
-
-
-
-
+
+
@@ -110,6 +88,14 @@
+
+
+
@@ -145,6 +131,16 @@
class="!w-full"
/>
+
+
+
-
+
diff --git a/src/views/mes/tasksummary/components/TaskScheduleDialog.vue b/src/views/mes/tasksummary/components/TaskScheduleDialog.vue
index 320bdaa8..2f69e8db 100644
--- a/src/views/mes/tasksummary/components/TaskScheduleDialog.vue
+++ b/src/views/mes/tasksummary/components/TaskScheduleDialog.vue
@@ -483,7 +483,6 @@ const handleSubmit = async () => {
isCode: true,
planStartTime: new Date().getTime(),
planEndTime: new Date().getTime(),
- reyaNumber: planNumber,
productCode: row.barCode,
// Image fields
diff --git a/src/views/mes/tasksummary/index.vue b/src/views/mes/tasksummary/index.vue
index a1977b03..19927971 100644
--- a/src/views/mes/tasksummary/index.vue
+++ b/src/views/mes/tasksummary/index.vue
@@ -74,7 +74,7 @@ v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" hi
:formatter="dateFormatter2" sortable />
+ prop="deliveryDate" :formatter="deliveryDateFormatter" sortable />
@@ -158,6 +158,10 @@ const queryFormRef = ref() // 搜索的表单
const exportLoading = ref(false) // 导出的加载中
const { push } = useRouter()
const taskScheduleDialogRef = ref()
+const deliveryDateFormatter = (_row: any, _column: any, value: any) => {
+ if (value) return dateFormatter2(_row, _column, value)
+ return dateFormatter2(_row, _column, _row?.finishDate)
+}
/** 查询列表 */
const getList = async () => {
loading.value = true