wxw
2024-09-10 6c010905f5e26438ea41a3faa62181975c89c9df
Web/src/views/device/deviceMonitor/index.vue
@@ -52,7 +52,6 @@
                <div class="lineButtonfix">
                    <el-form label-position="left" label-width="80px">
                        <el-form-item>
                            <el-button>写入</el-button>
                            <el-button @click="openDialog">设置</el-button>
                        </el-form-item>
                    </el-form>
@@ -85,6 +84,9 @@
                            <el-form-item label="目的工位">
                                <el-input v-model="deviceInfo.endLocatNo"></el-input>
                            </el-form-item>
                            <el-form-item label="托盘码">
                                <el-input v-model="deviceInfo.palletNo"></el-input>
                            </el-form-item>
                            <el-form-item label="PLC">
                                <el-input v-model="deviceInfo.plc"></el-input>
                            </el-form-item>
@@ -99,24 +101,47 @@
                    <div class="otherButtonfix">
                        <el-form label-position="left">
                            <el-form-item>
                                <el-button>写入</el-button>
                                <el-button @click="write(deviceInfo)">写入</el-button>
                            </el-form-item>
                        </el-form>
                    </div>
                </el-card>
            </div>
        </el-main>
        <setting ref="settingDialogRef" :title="title" v-model:listStationsData="listStationsData" v-model:stationValue="stationValue" />
        <setting ref="settingDialogRef" :title="title" v-model:listStationsData="listStationsData"
            v-model:stationValue="stationValue" />
    </el-container>
</template>
<script lang="ts" setup>
import { ref, reactive } from 'vue';
import { listWcsDevice } from '/@/api/wcs/wcsDevice';
import { ref, onMounted } from 'vue';
import { listWcsDevice, writeValue } from '/@/api/wcs/wcsDevice';
import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
import { listWcsPlc } from '/@/api/wcs/wcsPlc';
import { ElMessageBox, ElMessage } from 'element-plus';
import setting from '/@/views/device/deviceMonitor/component/setting.vue'
import { signalR } from './signalR';
//连接signalR 监听变更
onMounted(async () => {
    signalR.off('PublicPlcDevice');
    signalR.on('PublicPlcDevice', (data: any) => {
        //todo 需要测试
        if (data.type == 0) {
            var index = listStackingMachineData.value.findIndex(s => s.id == data.id);
            if (index !== -1) {
                listStackingMachineData.value.splice(index, 1, data);
            }
        }
        else if (data.type == 1) {
            stations.value.forEach(list => {
                var index = list.findIndex(s => s.id == data.id);
                if (index !== -1) {
                    list.splice(index, 1, data);
                }
            });
        }
    });
});
const stations = ref<any>([]);
const listStationsData = ref<any>([]);
@@ -138,6 +163,10 @@
const openDialog = async () => {
    settingDialogRef.value.openDialog(stationValue);
}
const write = async (row: any) => {
    await writeValue(row);
    ElMessage.success('写入成功!');
}
// 查询操作
const handleQuery = async () => {
    var listplc = await listWcsPlc({ type: 1 });
@@ -153,6 +182,19 @@
        listStationsData.value = stations.value[lineValue.value];
        stationValue.value = listStationsData.value[0];
    }
    else {
        listStationsData.value = [];
        stationValue.value = {
            stationNum: '',
            taskNo: '',
            taskType: '',
            startLocatNo: '',
            endLocatNo: '',
            plc: '',
            wcs: '',
            status: false
        };
    }
    title.value = listStationsData.value[0].text;
};