gaosp
2024-01-14 0d626ae57149d5ed40a32bd8b808ca6069aa6d5e
src/container/maintenance/index.vue
@@ -1,110 +1,207 @@
<!--
 * @Date: 2024-01-06 17:40:19
 * @LastEditors: Sneed
 * @LastEditTime: 2024-01-09 00:37:23
 * @LastEditTime: 2024-01-14 16:13:57
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/maintenance/index.vue
-->
<template>
    <div class="maintenance">
        <div class="nav">设备保养/日常保养</div>
        <List ref="list" url="/component/pageQuery">
        <div class="nav">设备保养/{{navName}}</div>
        <List ref="list" url="/maintain/pageQuery">
            <template slot="search">
                <div class="item">
                    <span>统一编号</span>
                    <el-input class="item-value" v-model="query.no"></el-input>
                    <el-input class="item-value" v-model="queryInfo.uuid"></el-input>
                </div>
                <div class="item">
                    <span>设备名称</span>
                    <!-- <el-input class="item-value" v-model="query.no"></el-input> -->
                    <el-select class="item-value" v-model="query.no" placeholder="请选择">
                        <el-option
                        v-for="item in options"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value">
                    <el-select class="item-value" v-model="queryInfo.machineName" placeholder="请选择">
                        <el-option v-for="item in machineList" :key="item.id" :label="item.name" :value="item.id">
                        </el-option>
                    </el-select>
                </div>
                <div class="item">
                <!-- <div class="item">
                    <span>设备型号</span>
                    <el-input class="item-value" v-model="query.no"></el-input>
                    <el-input class="item-value" v-model="queryInfo.type"></el-input>
                </div>
                <div class="item">
                    <span>设备规格</span>
                    <el-input class="item-value" v-model="query.no"></el-input>
                </div>
                    <el-input class="item-value" v-model="queryInfo.specification"></el-input>
                </div> -->
                <div class="item">
                    <span>使用部门</span>
                    <el-input class="item-value" v-model="query.no"></el-input>
                    <el-select class="item-value" v-model="queryInfo.department">
                        <el-option v-for="item in departmentlist" :key="item.value" :label="item.label" :value="item.value">
                        </el-option>
                    </el-select>
                </div>
                <div class="item">
                <!-- <div class="item">
                    <span>安装位置</span>
                    <el-input class="item-value" v-model="query.no"></el-input>
                </div>
                    <el-input class="item-value" v-model="queryInfo.location"></el-input>
                </div> -->
                <div class="item">
                    <span>计划开始日期</span>
                    <!-- <el-input class="item-value" v-model="query.no"></el-input> -->
                    <el-date-picker
                        class="item-value"
                        v-model="query.no"
                        align="right"
                        type="date"
                        placeholder="选择日期"
                        >
                    <el-date-picker class="item-value" v-model="queryInfo.planStartDate" align="right" type="date" placeholder="选择日期">
                    </el-date-picker>
                </div>
                <div class="item">
                    <span>计划完成日期</span>
                    <el-date-picker
                        class="item-value"
                        v-model="query.no"
                        align="right"
                        type="date"
                        placeholder="选择日期"
                        >
                    <el-date-picker class="item-value" v-model="queryInfo.planFinishDate" align="right" type="date" placeholder="选择日期">
                    </el-date-picker>
                </div>
                <div class="item">
                    <div class="query btn">查询</div>
                    <el-button type="primary" size="small" @click="query">查询</el-button>
                </div>
                <div class="item">
                    <div class="reset btn">重置</div>
                    <el-button type="primary" size="small" @click="reset">重置</el-button>
                </div>
            </template>
            <template slot="table-tool">
                <el-button type="primary" size="mini" @click="addDevice(1)">添加</el-button>
            </template>
            <template slot="columns">
                <el-table-column
                    prop="date"
                    label="日期"
                    width="180">
                <!-- <el-table-column
                type="selection"
                align="center"
                width="55">
            </el-table-column> -->
                <!-- <el-table-column align="center" label="统一编号" prop="uuid">
                </el-table-column> -->
                <el-table-column align="center" label="设备名称" width="150" :show-overflow-tooltip="true" prop="machineName">
                </el-table-column>
                <el-table-column
                    prop="name"
                    label="姓名"
                    width="180">
                <el-table-column align="center" label="设备型号" prop="type">
                </el-table-column>
                <el-table-column
                    prop="address"
                    label="地址">
                <el-table-column align="center" label="设备规格" prop="specification">
                </el-table-column>
                <el-table-column align="center" label="使用单位" prop="department">
                </el-table-column>
                <el-table-column align="center" label="保养者" prop="userName">
                </el-table-column>
                <el-table-column align="center" label="保养周期" prop="period">
                </el-table-column>
                <el-table-column align="center" label="保养类型" prop="style">
                    <template slot-scope="scope">
                        <span>{{ scope.row.style === "1" ? "日常保养" : scope.row.style === "2" ? "一级保养" :
                            scope.row.style === "3" ? "二级保养" : "三级保养" }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" width="110" label="是否合格" prop="isQualified">
                    <template slot-scope="scope">
                        <span>{{ scope.row.isQualified === "1" ? "合格" : "不合格" }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" width="120" :show-overflow-tooltip="true" label="计划开始时间">
                    <template slot-scope="scope">
                        <span v-if="scope.row.startDateFrom">{{ scope.row.startDateFrom + '~' + scope.row.startDateTo }}</span>
                        <span v-else></span>
                    </template>
                </el-table-column>
                <el-table-column align="center" width="120" :show-overflow-tooltip="true" label="计划完成时间">
                    <template slot-scope="scope">
                        <span v-if="scope.row.completeDateFrom">{{ scope.row.completeDateFrom + '~'
                            + scope.row.completeDateTo }}</span>
                        <span v-else></span>
                    </template>
                </el-table-column>
                <el-table-column align="center" width="150" :show-overflow-tooltip="true" label="保养内容与存在问题" prop="detail">
                </el-table-column>
                <el-table-column align="center" label="操作" prop="editor">
                    <template slot-scope="scope">
                        <el-button size="mini" type="text" @click="addDevice(2, scope.row, $event)">编辑</el-button>
                        <el-button size="mini" type="text" @click="deleteHandle(2, scope.row)">删除</el-button>
                    </template>
                </el-table-column>
            </template>
        </List>
        <DailyMAddD ref="dailyMAddD" @reflash="submitForm" :style="navName" :departmentlist="departmentlist" :machineList="machineList" :userList="userList"></DailyMAddD>
    </div>
</template>
<script>
    import List from '../list/index.vue'
    export default {
        components: {
            List
        },
        data () {
            return {
                query: {
                    no: ''
                },
                options: [{}]
            }
import List from '../list/index.vue'
import { getUseDpts,getRequest } from '@/api/Api'
import { userList } from '@/api/MdcApi'
import DailyMAddD from './dailyMAdd.vue'
export default {
    components: {
        List,
        DailyMAddD
    },
    computed: {
        navName () {
            let names = ['日常保养','一级','二级','三级']
            return names[this.$route.params.style-1]
        }
    }
    },
    data() {
        return {
            departmentlist: [],
            userList: [],
            machineList: [],
            queryInfo: {
                uuid: '',
                machineName: '',
                type: '',
                specification: '',
                department: '',
                location: '',
                planStartDate: '',
                planFinishDate: '',
            },
        }
    },
    mounted() {
        this.init()
        this.query()
    },
    methods: {
        init () {
            // 查询使用部门
            getUseDpts().then(res => {
                this.departmentlist = res.data.map(item => {
                    return {
                        value: item.id,
                        label: item.name
                    }
                })
            })
            getRequest('machineList', {
            }).then(res => {
                this.machineList = res.data.list
                console.log(res)
            })
            getRequest('userList', {
            }).then(res => {
                this.userList = res.data.list
            })
        },
        query() {
            this.$refs.list.pageQuery(this.queryInfo)
        },
        reset() {
            Object.keys(this.queryInfo).forEach(key => {
                this.queryInfo[key] = ''
            })
        },
        addDevice(n, row, event) {
            if (n === 1) {
                this.$nextTick(() => {
                    this.$refs.dailyMAddD.init(n)
                })
            } else {
                this.$nextTick(() => {
                    this.$refs.dailyMAddD.init(n, row)
                })
            }
        },
        deleteHandle() {
        },
        submitForm() {
        }
    },
}
</script>
<style lang="scss">
.maintenance {
@@ -115,51 +212,67 @@
            border: 1px solid #435F9E;
        }
    }
    .el-button--mini {
        background: transparent;
    }
    .el-button--primary {
        background-color: transparent;
    }
}
</style>
<style lang="scss" scoped>
    .maintenance {
        width: 100%;
        height: 100%;
        overflow: hidden;
        color: #FFF;
.maintenance {
    width: 100%;
    height: 100%;
    overflow: hidden;
    color: #FFF;
    display: flex;
    flex-direction: column;
    .nav {
        padding: 10px 30px;
        font-size: 14px;
    }
    .item {
        margin-top: 20px;
        margin-left: 50px;
        display: flex;
        flex-direction: column;
        .nav {
            padding: 10px 30px;
        align-items: center;
        span {
            width: 120px;
            font-size: 16px;
            font-family: PingFangSC, PingFang SC;
            color: #C6DCE0;
            text-align: right;
            padding-right: 20px;
        }
        .item {
            margin-top: 20px;
            margin-left: 50px;
            display: flex;
            align-items: center;
            span {
                width: 120px;
                font-size: 16px;
                font-family: PingFangSC, PingFang SC;
                color: #C6DCE0;
                text-align: right;
                padding-right: 20px;
            }
            .item-value {
                width: 200px;
                border: 1px solid #435F9E;
            }
            .btn {
                line-height: 1.5;
                width: 100px;
                text-align: center;
                font-size: 16px;
                cursor: pointer;
            }
            .reset {
                background: #AAB6BA;
                color: #FFF;
            }
            .query {
                background: #5DD1FC;
                color: #FFF;
            }
        .item-value {
            width: 200px;
            border: 1px solid #435F9E;
        }
        .btn {
            line-height: 1.5;
            width: 100px;
            text-align: center;
            font-size: 16px;
            cursor: pointer;
        }
        .reset {
            background: #AAB6BA;
            color: #FFF;
        }
        .query {
            background: #5DD1FC;
            color: #FFF;
        }
    }
}
</style>