venueInfo.vue 11.5 KB
<template>
    <div class="app-container">
        <div class="query-from">
            <el-form :inline="true"  :model="queryParamsOfVenueInfo" class="demo-form-inline">
                <el-form-item label="场站编号" props="parkCode">
                    <el-input style="width: 120px;" v-model="queryParamsOfVenueInfo.parkCode" placeholder="请输入场站编号" clearable  @keyup.enter="handleQueryOfVenueInfo" />
                </el-form-item>

               
                <el-form-item label="场站名称" props="name">
                     <el-form-item label="场站名称" props="name">
                         <el-input style="width: 120px;" v-model="queryParamsOfVenueInfo.name" placeholder="请输入场站名称" clearable  @keyup.enter="handleQueryOfVenueInfo" />
                     </el-form-item>
                </el-form-item>

                <el-form-item>
                    <el-button type="primary" icon="Search" @click="handleQueryOfVenueInfo">搜索</el-button>
                    <el-button icon="Refresh" @click="resetQueryOfVenueInfo">重置</el-button>
                </el-form-item>
            </el-form>

            <el-row :gutter="10" class="mb8">
                <el-col :span="1.5">
                    <el-button type="primary" plain icon="Plus" @click="handleAddOfVenueInfo"  v-hasPermi="['venue:info:add']">新增</el-button>
                </el-col>

                <el-col :span="1.5">
                    <el-button type="success" plain icon="Edit" :disabled="singleVenueInfo" @click="handleUpdateOfVenueInfo"  v-hasPermi="['venue:info:update']">修改</el-button>
                </el-col>
    
                <right-toolbar v-model:showSearch="showSearchOfVenueInfo" @queryTable="getListOfVenueInfo"></right-toolbar>
            </el-row>
        </div>

        <el-table v-loading="loadingOfVenueInfo" :data="listOfVenueInfo" @selection-change="handleSelectionChangeOfVenueInfo" border max-height="600"
                  :default-expand-all="false" :row-class-name="tableRowClassName" @sort-change="sortChangeOfVenueInfo">
            <el-table-column type="selection" width="50" align="center" />
            <el-table-column label="序号" type="index" width="60" align="center">
                <template #default="scope">
                    {{ (queryParamsOfVenueInfo.pageNum - 1) * queryParamsOfVenueInfo.pageSize + scope.$index + 1 }}
                </template>
            </el-table-column>

            <el-table-column label="场站编号" align="center" prop="parkCode" sortable />
            <el-table-column label="场站名称" align="center" prop="name" sortable />
            <el-table-column label="地址" align="center" prop="parkAddr" sortable />
            <el-table-column label="是否删除" align="center" prop="deleteFlagStr" sortable />

            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="160">
                <template #default="scope">
                    <el-button type="success" plain icon="Edit" :disabled="singleVenueInfo" @click="handleUpdateOfVenueInfo(scope.row)"  v-hasPermi="['venue:info:update']">修改</el-button>

                </template>
            </el-table-column>
        </el-table>

        <pagination v-show="totalOfVenueInfo > 0" :total="totalOfVenueInfo" v-model:pageOfVenueInfo="queryParamsOfVenueInfo.pageNum" v-model:limit="queryParamsOfVenueInfo.pageSize"
                    @pagination="getListOfVenueInfo" />

        <el-dialog :title="titleOfVenueInfo" v-model="openOfVenueInfo" width="500px" append-to-body>
            <el-form  :model="formOfVenueInfo" ref="rulesOfVenueInfo" label-width="80px"   :rules="checkRulesOfVenueInfo">
            
                <el-form-item label="场站编号" prop="parkCode">
                    <el-input el-input="input" v-model="formOfVenueInfo.parkCode" placeholder="请输入场站编号" />
                </el-form-item>
                <el-form-item label="场站名称" prop="name">
                    <el-input el-input="input" v-model="formOfVenueInfo.name" placeholder="请输入场站名称" />
                </el-form-item>

                <el-form-item label="地址" prop="parkAddr">
                    <el-input el-input="input" v-model="formOfVenueInfo.parkAddr" placeholder="请输入地址" />
                </el-form-item>
                <el-form-item label="是否删除" prop="delFlag">
                    <el-select v-model="formOfVenueInfo.delFlag" placeholder="请选择" style="width: 380px;">
                        <el-option v-for="dict in deleteFlagsOfVenueInfo" :key="dict.value" :label="dict.dictLabel"   :value="dict.dictValue"></el-option>
                    </el-select>
                </el-form-item>
        
               
            </el-form>

            <template #footer>
                <div class="dialog-footer">
                    <el-button type="primary" @click="submitFormOfVenueInfo">确 定</el-button>
                    <el-button @click="cancelOfVenueInfo">取 消</el-button>
                </div>
            </template>
        </el-dialog>
    </div>
</template>


<script setup name="VenueInfo">
    import { getDicts,getDictsDelFlag } from '@/api/system/dict/data';
    import { listLimitOfVenueInfo, viewOfVenueInfo, addOfVenueInfo, updateOfVenueInfo,updateStatusOfVenueInfo,deleteOfVenueInfo } from "@/api/system/venueInfo";
    const { proxy } = getCurrentInstance();

    const listOfVenueInfo = ref([]);
    const openOfVenueInfo = ref(false);
    const titleOfVenueInfo = ref("");
    const loadingOfVenueInfo = ref(true);
    const showSearchOfVenueInfo = ref(true);
    const idsOfVenueInfo = ref([]);
    const singleVenueInfo = ref(true);
    const multipleVenueInfo = ref(true);


    const pageOfVenueInfo = ref(1) //第几页
    const sizeOfVenueInfo = ref(10) //一页多少条
    const totalOfVenueInfo = ref(0);
    const pageSizesOfVenueInfo = [5, 10, 20, 50]; //每页显示多少条
    const currentPageOfVenueInfo = ref(1) // 当前页
    const globalRowOfVenueInfo = ref(null) // 当前行数据

    const changeFlagOfVenueInfo = ref(true)
    const deleteFlagsOfVenueInfo = ref([])


    const dataOfVenueInfo = reactive({
        formOfVenueInfo: {},
        queryParamsOfVenueInfo: {
            pageNum: 1,
            pageSize: 10,
            id : null,
            parkCode : null,
            parkAddr : null,
            delFlag : null,
            createBy : null,
            crateTime : null,
            updateBy : null,
            updateTime : null,
            name : null,

        },
        checkRulesOfVenueInfo: {
            id : [
                { required: true, message: "", trigger: "blur" }
            ],
            parkCode : [
                { required: true, message: "场站编号", trigger: "blur" }
            ],
            parkAddr : [
                { required: true, message: "地址", trigger: "blur" }
            ],
            delFlag : [
                { required: true, message: "是否删除", trigger: "blur" }
            ],
            name : [
                { required: true, message: "场站名称", trigger: "blur" }
            ],
        }
    });

    const { queryParamsOfVenueInfo, formOfVenueInfo, checkRulesOfVenueInfo } = toRefs(dataOfVenueInfo );

    /** 查询设备信息列表 */
    function getListOfVenueInfo() {
        loadingOfVenueInfo.value = true;
        listLimitOfVenueInfo(queryParamsOfVenueInfo.value,queryParamsOfVenueInfo.value.pageNum,queryParamsOfVenueInfo.value.pageSize).then(response => {
            listOfVenueInfo.value = response.records;
            totalOfVenueInfo.value = response.total;
            deleteFlagsOfVenueInfoFunction(function (){
                loadingOfVenueInfo.value = false;
            })
        });
    }


    function deleteFlagsOfVenueInfoFunction(fun){
        getDictsDelFlag().then(response=>{
            deleteFlagsOfVenueInfo.value =  response.data;


            if(fun){
                fun(response);
            }
        });
    }
    /**排序*/
    function sortChangeOfVenueInfo(data){
        queryParamsOfVenueInfo.value.order=data.order;
        queryParamsOfVenueInfo.value.prop=data.prop;
        getListOfVenueInfo();
    }

    // 取消按钮
    function cancelOfVenueInfo() {
        openOfVenueInfo.value = false;
        globalRowOfVenueInfo.value = null
        resetOfVenueInfo();
    }

    const handleSizeChange = (val) => {
        sizeOfVenueInfo.value = val;
    }
    const handleCurrentChange = (val) => {
        pageOfVenueInfo.value = val;
    }


    // 表单重置
    function resetOfVenueInfo() {
        formOfVenueInfo.value = {
            id  : null,
            parkCode  : null,
            parkAddr  : null,
            delFlag  : null,
            createBy  : null,
            crateTime  : null,
            updateBy  : null,
            updateTime  : null,
            name  : null,
        };
        proxy.resetForm("rulesOfVenueInfo");
    }

    /** 搜索按钮操作 */
    function handleQueryOfVenueInfo() {
        queryParamsOfVenueInfo.value.pageNum = 1;
        getListOfVenueInfo();
    }

    /** 重置按钮操作 */
    function resetQueryOfVenueInfo() {
        proxy.resetForm("queryOfVenueInfo");
        handleQueryOfVenueInfo();
    }

    // 多选框选中数据
    function handleSelectionChangeOfVenueInfo(selection) {
        idsOfVenueInfo.value = selection.map(item => item.id);
        singleVenueInfo.value = selection.length != 1;
        multipleVenueInfo.value = !selection.length;
    }

    /** 新增按钮操作 */
    function handleAddOfVenueInfo() {
        resetOfVenueInfo();
        changeFlagOfVenueInfo.value = true;
        openOfVenueInfo.value = true;
        titleOfVenueInfo.value = "添加";
    }

    /** 修改按钮操作 */
    function handleUpdateOfVenueInfo(row) {
        resetOfVenueInfo();
        const _id = row.id || idsOfVenueInfo.value
        viewOfVenueInfo(_id).then(response => {
            formOfVenueInfo.value = response.data;
            openOfVenueInfo.value = true;
            titleOfVenueInfo.value = "修改";
        });
    }

    /** 提交按钮 */
    function submitFormOfVenueInfo() {
        proxy.$refs["rulesOfVenueInfo"].validate(valid => {
            if (valid) {
                if (formOfVenueInfo.value.id != null) {
                    updateOfVenueInfo(formOfVenueInfo.value).then(response => {
                        proxy.$modal.msgSuccess("修改成功");
                        openOfVenueInfo.value = false;
                        getListOfVenueInfo();
                    });
                } else {
                    addOfVenueInfo(formOfVenueInfo.value).then(response => {
                        proxy.$modal.msgSuccess("新增成功");
                        openOfVenueInfo.value = false;
                        getListOfVenueInfo();
                    });
                }
            }
        });
    }

    /** 删除按钮操作 */
    function handleDeleteOfVenueInfo(row) {
        const _idsOfVenueInfo = row.id || idsOfVenueInfo.value;
        proxy.$modal.confirm('是否确认删除  为"' + _idsOfVenueInfo + '"的数据项?').then(function () {
            return deleteOfVenueInfo(_idsOfVenueInfo);
        }).then(() => {
            getListOfVenueInfo();
            proxy.$modal.msgSuccess("删除成功");
        }).catch(() => { });
    }

    /** 导出按钮操作 */
    function handleExportOfVenueInfo() {
        proxy.download('venue/info/export', {
            ...queryParamsOfVenueInfo.value
        }, `VenueInfo_${new Date().getTime()}.xlsx`)
    }


    getListOfVenueInfo();
</script>