zhouwenxuan
2023-08-31 21d10974b1f1e19162b690c313c6f4014f182963
src/views/warningManage/warningInfo/index.vue
@@ -40,8 +40,9 @@
                            class="w100"
                            style="max-width: 180px"
                            size="default"
                            filterable
                        >
                            <el-option v-for="item in state.tableData.gasList" :key="item.label" :label="item.value" :value="item.label"></el-option>
                            <el-option v-for="item in state.tableData.gasList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                        </el-select>
                    </el-form-item>
                    <el-button size="default" type="primary" class="ml10" @click="search()">
@@ -60,28 +61,34 @@
            </div>
            <el-table :data="state.tableData.data" style="width: 100%">
                <el-table-column align="center" prop="content" label="预警内容"/>
                <el-table-column align="center" prop="warningTime" label="预警时间"/>
                <el-table-column align="center" prop="name" label="气体名称"/>
                <el-table-column align="center" prop="ppm" label="气体浓度"/>
                <el-table-column align="center" prop="level" label="预警级别" height="100">
                <el-table-column align="center" prop="warnTime" label="预警时间"/>
                <el-table-column align="center" prop="gasName" label="气体名称"/>
                <el-table-column align="center" prop="gasConcentration" label="气体浓度"/>
                <el-table-column align="center" prop="gasThresholdId" label="预警级别" height="100">
                    <template #default="scope">
                        <span class="yellow" v-if="scope.row.level == '1'">黄色预警</span>
                        <span class="red" v-if="scope.row.level == '2'">红色预警</span>
                        <span class="yellow" v-if="scope.row.gasThresholdId == '1'">黄色预警</span>
                        <span class="red" v-else-if="scope.row.gasThresholdId == '2'">红色预警</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" prop="notifier" label="通知人员"/>
                <el-table-column align="center" prop="managePeople" label="处理人"/>
                <el-table-column align="center" prop="manageTime" label="处理时间"/>
                <el-table-column align="center" prop="gasWarnLogSmsUsers" label="通知人员">
                    <template #default="scope">
                        <div v-for="(item, index) in scope.row.gasWarnLogSmsUsers" :key="index">
                            {{item.realname}}
                        </div>
                    </template>
                </el-table-column>
                <el-table-column align="center" prop="handlerRealName" label="处理人"/>
                <el-table-column align="center" prop="handlerTime" label="处理时间"/>
                <el-table-column align="center" prop="status" label="处理状态">
                    <template #default="scope">
                        <span v-if="scope.row.status == '1'">未处理</span>
                        <span v-if="scope.row.status == '2'">已处理</span>
                        <span v-if="scope.row.status == '0'">未处理</span>
                        <span v-if="scope.row.status == '1'">已处理</span>
                    </template>
                </el-table-column>
                <el-table-column label="操作" show-overflow-tooltip width="140">
                    <template #default="scope">
                        <el-button size="small" text type="primary" v-if="scope.row.status == '2'" @click="openDialog('查看', scope.row)">查看</el-button>
                        <el-button size="small" text type="primary" v-if="scope.row.status == '1'" @click="openDialog('处理', scope.row)">处理</el-button>
                        <el-button size="small" text type="primary" v-if="scope.row.status == '1'" @click="openDialog('查看', scope.row)">查看</el-button>
                        <el-button size="small" text type="primary" v-if="scope.row.status == '0'" @click="openDialog('处理', scope.row)">处理</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -106,42 +113,17 @@
</template>
<script setup lang="ts">
import {reactive, ref} from "vue";
import {reactive, ref, onMounted} from "vue";
import { ElMessage, ElMessageBox } from 'element-plus'
import {InfoDataState, PeopleDataState} from "/@/types/warning";
import infoDialog from "./component/infoDialog.vue";
import { gasManageApi } from "/@/api/basicDataManage/gasManage";
import {warningInfoApi} from "/@/api/warningManage/warningInfo";
const infoRef = ref();
const state = reactive<InfoDataState>({
    tableData: {
        data: [
            // {
            //     id: '1',
            //     content: '【气体监测预警提示】2023年10月20日8:30 甲烷气体浓度连续超标系统判断为黄色预警,请相关负责人及时检查处置。',
            //     warningTime: '2023年10月20日 8:30',
            //     name: '甲烷',
            //     ppm: '5ppm',
            //     level: '1',
            //     notifier: '老娄、老程',
            //     managePeople: '张三',
            //     manageTime: '2023年10月20日  11:30',
            //     status: '1',
            // },
            // {
            //     id: '1',
            //     content: '【气体监测预警提示】2023年10月20日8:30 甲烷气体浓度连续超标系统判断为黄色预警,请相关负责人及时检查处置。',
            //     warningTime: '2023年10月20日 8:30',
            //     name: '甲烷',
            //     ppm: '5ppm',
            //     level: '2',
            //     notifier: '老娄、老程',
            //     managePeople: '张三',
            //     manageTime: '2023年10月20日  11:30',
            //     status: '2',
            //     method:'xxx'
            // },
        ],
        data: [],
        total: 0,
        loading: false,
        listQuery: {
@@ -166,29 +148,64 @@
        ],
        statusList: [
            {
                label: '1',
                label: '0',
                value: '未处理'
            },
            {
                label: '2',
                label: '1',
                value: '已处理'
            }
        ],
        gasList: [
            {
                label: '1',
                value: '甲醛'
            },
            {
                label: '2',
                value: '甲烷'
            }
        ]
        gasList: []
    }
});
const initInfoData = () => {
    console.log("数据列表")
//页面加载
onMounted(() => {
    getGas();
    initInfoData();
});
//气体列表
const getGas = async () => {
    let res = await gasManageApi().getGas({});
    if(res.data.code == 100){
        state.tableData.gasList = res.data.data;
    }else {
        ElMessage({
            type: 'warning',
            message: res.data.msg
        });
    }
};
//预警信息列表
const initInfoData = async () => {
    const param = {
        pageIndex: state.tableData.listQuery.pageIndex,
        pageSize: state.tableData.listQuery.pageSize,
        searchParams: {
            startTime: state.tableData.listQuery.searchParams.time[0],
            endTime: state.tableData.listQuery.searchParams.time[1],
            gasCategoryId: state.tableData.listQuery.searchParams.gas,
            status: state.tableData.listQuery.searchParams.status,
            gasThresholdId: state.tableData.listQuery.searchParams.level,
        }
    };
    let res = await warningInfoApi().getWarnLogPage(param);
    console.log("res",res)
    if(res.data.code == 100) {
        state.tableData.data = res.data.data;
        state.tableData.total = res.data.total;
        state.tableData.listQuery.pageIndex = res.data.pageIndex;
        state.tableData.listQuery.pageSize = res.data.pageSize;
    }else {
        ElMessage({
            type: 'warning',
            message: res.data.msg
        });
    }
};
const onHandleSizeChange = (val: number) => {
    state.tableData.listQuery.pageSize = val;
@@ -221,9 +238,12 @@
};
const search = () => {
    state.tableData.listQuery.pageIndex = 1;
    initInfoData();
    console.log("vla",state.tableData.listQuery.searchParams)
}
const reset = () => {
    state.tableData.listQuery.pageIndex = 1;
    state.tableData.listQuery.searchParams.time = [];
    state.tableData.listQuery.searchParams.level = '';
    state.tableData.listQuery.searchParams.status = '';