huang
2025-10-09 f970df80ad76eb1f0a20429510da3e950cad8d42
UI-Project/src/views/EngineerScheduling/engineerScheduling.vue
@@ -39,17 +39,17 @@
const fetchDataSource = async () => {
    try {
        // 根据当前标签页选择不同的接口
        const apiUrl = activeTab.value === 'tempered'
            ? '/cacheVerticalGlass/bigStorageCageDetails/queryEngineer'
        const apiUrl = activeTab.value === 'tempered'
            ? '/cacheVerticalGlass/bigStorageCageDetails/queryEngineer'
            : '/loadGlass/optimizeProject/queryEngineer';
        const response = await request.post(apiUrl)
        if (response.code === 200) {
            dataSource.value = response.data.map((item: any) => {
                const projectNo = activeTab.value === 'tempered' ? item.engineerId : item.projectNo
                const name = activeTab.value === 'tempered' ? item.engineerId : (item.projectNo + "-" + item.projectName)
                return {
                    key: projectNo,
                    label: name,
@@ -81,11 +81,11 @@
            type: type
        })
        if (response.code === 200) {
        if (response.code === 200) {
            // 对于所有标签页,使用projectNo作为key
            targetKeys.value = response.data.map((item: any) => item.projectNo)
            // 重要:将右侧数据添加到dataSource中,确保Transfer组件能找到对应的项
            // 将右侧数据添加到dataSource中,确保Transfer组件能找到对应的项
            response.data.forEach((item: any) => {
                // 检查dataSource中是否已存在该项
                const exists = dataSource.value.some(dataItem => dataItem.key === item.projectNo)
@@ -119,7 +119,7 @@
        } else if (activeTab.value === 'tempered') {
            type = 3; // 钢化
        }
        const engineerList = targetKeys.value.map(projectNo => {
            const dataItem = dataSource.value.find(item => item.key === projectNo)
            return {
@@ -127,7 +127,7 @@
                projectName: dataItem ? dataItem.projectName : ''
            }
        })
        const response = await request.post(`/loadGlass/optimizeProject/updateEngineerScheduling?type=${type}`, engineerList)
        if (response.code === 200) {
@@ -178,14 +178,14 @@
        </el-tabs>
        <div class="transfer-wrapper">
            <el-transfer
                v-model="targetKeys"
                filterable
                :data="dataSource"
                :titles="['待排产', getRightListTitle]"
                :button-texts="['', '']"
            />
            <el-transfer v-model="targetKeys" class="custom-transfer" filterable :data="dataSource"
                :titles="['待排产', getRightListTitle]" :button-texts="['', '']">
                <template #right-empty>
                    <el-empty :image-size="80" description="No data" />
                </template>
            </el-transfer>
            <div class="transfer-save">
                <el-button type="primary" @click="saveScheduling">
                    {{ t('searchOrder.makesure') }}
@@ -233,8 +233,8 @@
    height: 440px;
}
::v-deep(.el-transfer-panel-body-height) {
    height: 470px;
.custom-transfer {
    --el-transfer-panel-body-height: 400px;
}
::v-deep(.el-transfer-panel__header) {